我正在使用wxWidgets重写我们的应用程序。其中一个目标是取代我们对本地化字符串的旧方法。另一个可能的目标是将Python解释器嵌入到应用程序中,但只能在以后。无论如何,任何使用C++的代码或库都可以使用Python风格的字符串格式,使用卷轴括号。在
如果您不了解Python,下面是它的format函数的文档。您可以在里面找到对Format Specification Mini-Language的引用,以及Format examples。一些医生的摘录。。。(>>>是交互式Python模式的提示,下面的行显示了调用的结果。Python使用单引号或双引号作为字符串分隔符):>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{}, {}, {}'.format('a', 'b', 'c') # 3.1+ only
'a, b, c'
>>> '{2}, {1}, {0}'.format('a', 'b', 'c')
'c, b, a'
>>> '{0}{1}{0}'.format('abra', 'cad') # arguments' indices can be repeated
'abracadabra'
我还想使用Python格式和命名占位符(而不是数字索引)。在Python中,使用字符串的str.format_map(mapping)方法,其中映射是类似于^{的类型。例如,my_dictionary包含如下映射:
^{pr2}$
有一个如下所示的template字符串,我想得到result。。。在wxString template("{name} was born in {country}.");
wxString result(format_map(s, my_dictionary));
// the result should contain...
// "Guido was born in Netherlands."<>你知道有任何可替代的C或C++代码吗?或者我必须自己写?在
感谢您的时间和经验
彼得