/root/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 | 0 | { |
37 | 0 | return original.empty(); |
38 | 0 | } |
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 | 132 | operator std::string() const { return translate_fn && *translate_fn ? (*translate_fn)(original) : original; } |
61 | 132 | 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_17TranslatedLiteralE Unexecuted instantiation: _ZN4utilplINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEET_RKS7_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 | 0 | 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: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS6_EERKDaSH_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS6_EERKDaSH_ Unexecuted instantiation: _ZZN10tinyformat6formatIJiiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIiEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSC_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS6_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA12_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA12_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSC_ Unexecuted instantiation: _ZZN10tinyformat6formatIJiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIiEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJiiN6wallet13WalletFeatureEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIiEERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJiiN6wallet13WalletFeatureEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJ13bilingual_strEEES1_N4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJjjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIjEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSP_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS3_EERKDaSP_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clISE_EERKDaSP_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS2_EERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clItEERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS6_EERKDaSH_ Unexecuted instantiation: _ZZN10tinyformat6formatIJljEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIlEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJljEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIjEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clISB_EERKDaSM_ Unexecuted instantiation: _ZZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clImEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIjEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clISB_EERKDaSM_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clImEERKDaSM_ Unexecuted instantiation: _ZZN10tinyformat6formatIJmEEE13bilingual_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: _ZZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS7_EERKDaSI_ 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_cA38_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E_clIS1_EERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA8_cA38_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: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS6_EERKDaSH_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS6_EERKDaSH_ Unexecuted instantiation: _ZZN10tinyformat6formatIJiiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIiEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSC_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS6_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA13_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA12_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA12_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSC_ Unexecuted instantiation: _ZZN10tinyformat6formatIJiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIiEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJiiN6wallet13WalletFeatureEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIiEERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJiiN6wallet13WalletFeatureEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJ13bilingual_strEEES1_N4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJjjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIjEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSP_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS3_EERKDaSP_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKcA42_cNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clISE_EERKDaSP_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS2_EERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clItEERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS6_EERKDaSH_ Unexecuted instantiation: _ZZN10tinyformat6formatIJljEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIlEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJljEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIjEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clISB_EERKDaSM_ Unexecuted instantiation: _ZZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clImEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIjEERKDaSB_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clISB_EERKDaSM_ Unexecuted instantiation: _ZZN10tinyformat6formatIJNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clImEERKDaSM_ Unexecuted instantiation: _ZZN10tinyformat6formatIJmEEE13bilingual_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: _ZZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSI_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS7_EERKDaSI_ 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_cA38_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ENKUlRKT_E0_clIS1_EERKDaSD_ Unexecuted instantiation: _ZZN10tinyformat6formatIJA8_cA38_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: _ZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJiiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA13_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA13_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA12_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA10_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJiEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJiiN6wallet13WalletFeatureEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJ13bilingual_strEEES1_N4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJjjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJPKcEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJPKcA42_cNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJPKctEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJljEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJmjEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJNSt8__detail14_Quoted_stringIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEEmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJmEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJlEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJdEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA13_ciiiA42_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA10_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_EEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA14_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA13_cA27_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ Unexecuted instantiation: _ZN10tinyformat6formatIJA8_cA38_cEEE13bilingual_strN4util12BilingualFmtIXsZT_EEEDpRKT_ |
108 | | } // namespace tinyformat |
109 | | |
110 | | #endif // BITCOIN_UTIL_TRANSLATION_H |