gpt4 book ai didi

c++ - 本地化测试,用 XXXXX 格式化所有字符串

转载 作者:搜寻专家 更新时间:2023-10-31 01:24:02 25 4
gpt4 key购买 nike

我们正在尝试优化我们的本地化测试。

我们的 QA 小组有一个特殊模式的建议,强制资源中的所有字符串完全包含在 X 中。我们已经 API 劫持了 LoadString 和它的 MFC 实现,所以这样做应该不是主要障碍。

我的问题是您将如何解决格式问题?

Examples -

CString str ;
str . LoadString ( IDS_MYSTRING ) ;

where IDS_MYSTRING is "Hello World", should return "XXXXX XXXXX"
where IDS_MYSTRING is "Hello\nWorld", should return "XXXXX\nXXXXX"
where IDS_MYSTRING is "Hello%dWorld", should return "XXXXX%dXXXXX"
where IDS_MYSTRING is "Hello%.2fWorld", should return "XXXXX%.2fXXXXX"
where IDS_MYSTRING is "Hello%%World", should return "XXXXX%%XXXXX"

所以总而言之,如果在 printf 或 Format 语句中使用该字符串应该有效,它应该支持转义字符。

所以这是一道纯代码题,C++/MFC,

CString ConvertStringToXXXX ( const CString& aSource ) 
{
CString lResult = aSource ;

// Insert your code here

return lResult ;
}

我知道这可以使用 .RC 文件上的工具来完成,但我们想要构建英语,然后像这样运行 -

应用-L10NTEST

最佳答案

如果此方法是在应用程序中突出显示格式化字符串(或格式序列)(即除 XXXX 之外出现的所有文本),您可以找到转义序列(可能使用正则表达式)并在格式化(替换)周围插入 block 引号值,
例如一些\n文本 -> 一些[\n]文本

您可以获得可读性(所有字符串如 XXX 可能难以使用该应用程序)并且还可以检测非资源(硬编码)字符串。

话虽如此,如果您希望检测非资源加载字符串(硬编码字符串),而不是替换 X,为什么不直接在字符串前添加前缀呢?您将能够轻松地从硬编码字符串中轻松分辨出资源加载的字符串,
例如Some\ntext -> [ZH]Some\ntext

希望对您有所帮助?

关于c++ - 本地化测试,用 XXXXX 格式化所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/190263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com