我正在制作一个需要显示持续时间字符串的应用程序。一些例子:
目前,我有一个C++函数,在给定的秒/毫秒/分钟的时间内,您会得到一个字符串:
wxString getTimeStr(int value,
ETimeUnit time_unit, // milliseconds or seconds or minutes or hours
wxString const & lang) // english or russian
它由许多条件组成,具体取决于语言,时间单位和现有值。现在,我正在考虑将应用程序移植到其他语言,为每种新语言编写c++代码会有些痛苦。有没有办法使用标准函数来制作该字符串?
该应用程序是使用wxWidgets用C++编写的,到目前为止仅在Windows上有效。我宁愿不使用平台相关的功能,尽管了解它们会很高兴。
最佳答案
如果不为不同的语言编写不同的代码,您将无法完美地做到这一点。例如,我敢打赌,您现有的代码不允许产生“3点半之前5分钟”之类的时间,但这些时间仍用(说)德语。即使不作任何扩展,也请考虑将英语中的“三分之二”实际上翻译为“四分之一”。
因此,如果使用正式时间是不够的(如果可以,请查看wxLocale::GetInfo(wxLOCALE_TIME_FMT)
),则确实需要编写代码来至少专门处理某些语言。
关于c++ - 如何制作本地化的持续时间字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13219014/