/Users/eugenesiegel/btc/bitcoin/src/util/translation.h
| Line | Count | Source (jump to first uncovered line) | 
| 1 |  | // Copyright (c) 2019-present The Bitcoin Core developers | 
| 2 |  | // Distributed under the MIT software license, see the accompanying | 
| 3 |  | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | 
| 4 |  |  | 
| 5 |  | #ifndef BITCOIN_UTIL_TRANSLATION_H | 
| 6 |  | #define BITCOIN_UTIL_TRANSLATION_H | 
| 7 |  |  | 
| 8 |  | #include <tinyformat.h> | 
| 9 |  | #include <util/string.h> | 
| 10 |  |  | 
| 11 |  | #include <cassert> | 
| 12 |  | #include <functional> | 
| 13 |  | #include <string> | 
| 14 |  |  | 
| 15 |  | /** Translate a message to the native language of the user. */ | 
| 16 |  | using TranslateFn = std::function<std::string(const char*)>; | 
| 17 |  | const extern TranslateFn G_TRANSLATION_FUN; | 
| 18 |  |  | 
| 19 |  | /** | 
| 20 |  |  * Bilingual messages: | 
| 21 |  |  *   - in GUI: user's native language + untranslated (i.e. English) | 
| 22 |  |  *   - in log and stderr: untranslated only | 
| 23 |  |  */ | 
| 24 |  | struct bilingual_str { | 
| 25 |  |     std::string original; | 
| 26 |  |     std::string translated; | 
| 27 |  |  | 
| 28 |  |     bilingual_str& operator+=(const bilingual_str& rhs) | 
| 29 | 0 |     { | 
| 30 | 0 |         original += rhs.original; | 
| 31 | 0 |         translated += rhs.translated; | 
| 32 | 0 |         return *this; | 
| 33 | 0 |     } | 
| 34 |  |  | 
| 35 |  |     bool empty() const | 
| 36 | 153k |     { | 
| 37 | 153k |         return original.empty(); | 
| 38 | 153k |     } | 
| 39 |  |  | 
| 40 |  |     void clear() | 
| 41 | 0 |     { | 
| 42 | 0 |         original.clear(); | 
| 43 | 0 |         translated.clear(); | 
| 44 | 0 |     } | 
| 45 |  | }; | 
| 46 |  |  | 
| 47 |  | inline bilingual_str operator+(bilingual_str lhs, const bilingual_str& rhs) | 
| 48 | 0 | { | 
| 49 | 0 |     lhs += rhs; | 
| 50 | 0 |     return lhs; | 
| 51 | 0 | } | 
| 52 |  |  | 
| 53 |  | namespace util { | 
| 54 |  | //! Compile-time literal string that can be translated with an optional translation function. | 
| 55 |  | struct TranslatedLiteral { | 
| 56 |  |     const char* const original; | 
| 57 |  |     const TranslateFn* translate_fn; | 
| 58 |  |  | 
| 59 | 0 |     consteval TranslatedLiteral(const char* str, const TranslateFn* fn = &G_TRANSLATION_FUN) : original{str}, translate_fn{fn} { assert(original); } | 
| 60 | 512k |     operator std::string() const { return translate_fn && *translate_fn ? (*translate_fn)(original)0: original; } | 
| 61 | 512k |     operator bilingual_str() const { return {original, std::string{*this}}; } | 
| 62 |  | }; | 
| 63 |  |  | 
| 64 |  | // TranslatedLiteral operators for formatting and adding to strings. | 
| 65 | 0 | inline std::ostream& operator<<(std::ostream& os, const TranslatedLiteral& lit) { return os << std::string{lit}; } | 
| 66 |  | template<typename T> | 
| 67 | 0 | T operator+(const T& lhs, const TranslatedLiteral& rhs) { return lhs + static_cast<T>(rhs); }Unexecuted instantiation: _ZN4utilplI13bilingual_strEET_RKS2_RKNS_17TranslatedLiteralEUnexecuted instantiation: _ZN4utilplINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEET_RKS8_RKNS_17TranslatedLiteralE | 
| 68 |  | template<typename T> | 
| 69 | 0 | T operator+(const TranslatedLiteral& lhs, const T& rhs) { return static_cast<T>(lhs) + rhs; } | 
| 70 |  |  | 
| 71 |  | template <unsigned num_params> | 
| 72 |  | struct BilingualFmt { | 
| 73 |  |     const ConstevalFormatString<num_params> original; | 
| 74 |  |     TranslatedLiteral lit; | 
| 75 |  |     consteval BilingualFmt(TranslatedLiteral l) : original{l.original}, lit{l} {} | 
| 76 |  | }; | 
| 77 |  | } // namespace util | 
| 78 |  |  | 
| 79 |  | consteval auto _(util::TranslatedLiteral str) { return str; } | 
| 80 |  |  | 
| 81 |  | /** Mark a bilingual_str as untranslated */ | 
| 82 | 21.8k | inline bilingual_str Untranslated(std::string original) { return {original, original}; } | 
| 83 |  |  | 
| 84 |  | // Provide an overload of tinyformat::format for BilingualFmt format strings and bilingual_str or TranslatedLiteral args. | 
| 85 |  | namespace tinyformat { | 
| 86 |  | template <typename... Args> | 
| 87 |  | bilingual_str format(util::BilingualFmt<sizeof...(Args)> fmt, const Args&... args) | 
| 88 | 0 | { | 
| 89 | 0 |     const auto original_arg{[](const auto& arg) -> const auto& { | 
| 90 | 0 |         if constexpr (std::is_same_v<decltype(arg), const bilingual_str&>) { | 
| 91 | 0 |             return arg.original; | 
| 92 |  |         } else if constexpr (std::is_same_v<decltype(arg), const util::TranslatedLiteral&>) { | 
| 93 |  |             return arg.original; | 
| 94 | 0 |         } else { | 
| 95 | 0 |             return arg; | 
| 96 | 0 |         } | 
| 97 | 0 |     }}; Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA7_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA7_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA14_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA14_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJiiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIiEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSC_Unexecuted instantiation: _ZZN10tinyformat6formatIJjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIjEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJjjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIjEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA12_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA12_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSC_Unexecuted instantiation: _ZZN10tinyformat6formatIJiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIiEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJ13bilingual_strEEES1_N4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt3__121__quoted_output_proxyIcNS4_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt3__121__quoted_output_proxyIcNS4_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS3_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt3__121__quoted_output_proxyIcNS4_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clItEERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_S7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_Unexecuted instantiation: _ZZN10tinyformat6formatIJxjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIxEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJxjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIjEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__121__quoted_output_proxyIcNS1_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS5_EERKDaSG_Unexecuted instantiation: _ZZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clImEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIjEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__121__quoted_output_proxyIcNS1_11char_traitsIcEEEEyEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS5_EERKDaSG_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__121__quoted_output_proxyIcNS1_11char_traitsIcEEEEyEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIyEERKDaSG_Unexecuted instantiation: _ZZN10tinyformat6formatIJyEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIyEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJmmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clImEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJlEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIlEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJdEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIdEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_ciiiA42_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_ciiiA42_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIiEERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_ciiiA42_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cA27_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cA27_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA8_cA37_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA8_cA37_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSD_ | 
| 98 | 0 |     const auto translated_arg{[](const auto& arg) -> const auto& { | 
| 99 | 0 |         if constexpr (std::is_same_v<decltype(arg), const bilingual_str&>) { | 
| 100 | 0 |             return arg.translated; | 
| 101 | 0 |         } else { | 
| 102 | 0 |             return arg; | 
| 103 | 0 |         } | 
| 104 | 0 |     }}; Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA7_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA7_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA14_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA14_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJiiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIiEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSC_Unexecuted instantiation: _ZZN10tinyformat6formatIJjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIjEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJjjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIjEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA12_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA12_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSC_Unexecuted instantiation: _ZZN10tinyformat6formatIJiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIiEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJ13bilingual_strEEES1_N4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt3__121__quoted_output_proxyIcNS4_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt3__121__quoted_output_proxyIcNS4_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS3_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt3__121__quoted_output_proxyIcNS4_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS8_EERKDaSJ_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clItEERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_S7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_Unexecuted instantiation: _ZZN10tinyformat6formatIJxjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIxEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJxjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIjEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__121__quoted_output_proxyIcNS1_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS5_EERKDaSG_Unexecuted instantiation: _ZZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clImEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIjEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__121__quoted_output_proxyIcNS1_11char_traitsIcEEEEyEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS5_EERKDaSG_Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt3__121__quoted_output_proxyIcNS1_11char_traitsIcEEEEyEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIyEERKDaSG_Unexecuted instantiation: _ZZN10tinyformat6formatIJyEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIyEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJmmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clImEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJlEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIlEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJdEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIdEERKDaSB_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_ciiiA42_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_ciiiA42_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIiEERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_ciiiA42_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cA27_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cA27_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA8_cA37_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSD_Unexecuted instantiation: _ZZN10tinyformat6formatIJA8_cA37_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSD_ | 
| 105 | 0 |     return bilingual_str{tfm::format(fmt.original, original_arg(args)...), | 
| 106 | 0 |                          tfm::format(RuntimeFormat{std::string{fmt.lit}}, translated_arg(args)...)}; | 
| 107 | 0 | } Unexecuted instantiation: _ZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA10_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA7_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA14_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJiiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJjjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJPKcEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA13_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA12_cNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA10_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJ13bilingual_strEEES1_N4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJPKcA42_cNSt3__121__quoted_output_proxyIcNS4_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES7_S7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJxjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJNSt3__121__quoted_output_proxyIcNS1_11char_traitsIcEEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJNSt3__121__quoted_output_proxyIcNS1_11char_traitsIcEEEEyEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJyEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJmmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJlEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJdEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA13_ciiiA42_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA13_cA27_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_Unexecuted instantiation: _ZN10tinyformat6formatIJA8_cA37_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ | 
| 108 |  | } // namespace tinyformat | 
| 109 |  |  | 
| 110 |  | #endif // BITCOIN_UTIL_TRANSLATION_H |