使用c ++记录本地化的最佳方法

时间:2012-04-03 04:53:42

标签: c++ logging localization log4cpp

我正在开展一个多国项目,目标受众可能来自两个国家。因此,登录多种语言变得越来越重要,我正在考虑每次登录时根据语言写入2个不同的日志文件夹,但我也想知道是否有一些开箱即用的功能使用log4cpp等日志框架?

4 个答案:

答案 0 :(得分:1)

正如其他评论者所提到的那样,通过寻找多语言记录,听起来你走错了路。

我的建议是使用英语(这是技术信息的标准,我猜这是您最熟悉的语言),并确保您使用的语言清晰,< strong>语法正确和明确。然后,如果其中一位技术人员无法理解,他们可以通过谷歌翻译等机器翻译引擎轻松有效地运行它。或者他们确实可以处理日志并通过谷歌翻译运行所有内容以附加翻译文本,特别是如果您注释日志以标记语言内容。

假设输入语言写得很好,机器转换通常会给出最终用户可以理解的良好结果。如果消息不清楚,有拼写错误或缩写,那么这就是机器翻译失败的地方。

答案 1 :(得分:0)

写日志自然会降低执行速度,因为文件打开,搜索和写入操作都是其中的一部分。

这是许多开发人员和架构师建议在不同级别编写日志的一个主要原因。随着级别的增加,日志条目的深度越来越大,以便更好地追踪问题。在更高级别,您会注意到由于生成了更多日志条目,您的进程速度会下降。

建议您使用可以从一种语言翻译成其他语言的服务。 我确定有免费或付费的图书馆可以进行这种翻译。您可以创建一个在后台运行的小型实用程序,并在进程空闲时执行此转换。

答案 2 :(得分:0)

一个建议是你可以使用一个不同的进程/线程来监听你的日志消息,你可以从那里记录它。

这减少了主进程/线程中的I / O日志记录时间,您可以在那里进行与日志记录语言相关的所有更改。

对于多语言支持,我认为你可以尝试用widechar字符串写...虽然我不确定..

答案 3 :(得分:0)

  

使用c ++记录本地化的最佳方法

Install Qt 4并使用QObject :: tr / tr()宏作为字符串。用你想要的任何语言写出字符串。租用/获取翻译器使用QT语言学家本地化字符串。

请注意,完美翻译是不可能的,因此即使您的翻译是天才,也会有许多“有趣”的误解。因此,为编程团队选择主要语言可能是一个更好的主意。

- 编辑 -

之前没有注意到这一部分:

  

用多种语言

接近它的一种方法是实现日志阅读器。如果格式化字符串,您可以转储消息ID(由某种宏生成)和字符串参数,而不是编写纯文本消息。 “日志阅读器”将允许用户在查看日志文件时选择所需的语言,并使用类似于QTranslator的机制根据其ID /参数翻译消息。这种方法的好处在于您以后可以添加更多语言 - 因此可以重新翻译旧日志。不好的是,这种格式对于“普通人”来说将更难阅读,尽管除了消息ID和参数之外你还可以添加纯文本消息,你需要编写日志查看器。

Qt 4实现了大部分此框架(有将转换转换为文本/数据流的例程,等等)以及翻译工具。有关详细信息,请参阅QTranslator文档和Linguist manual