Qt:非奇异值的 QTranslator::translate() 的 n 参数

idl*_*ign 3 qt localization internationalization

Qt的QTranslator ::翻译()文档声明

如果 n 不是 -1,则它用于为翻译选择合适的形式(例如“%n file found”与“%n files found”)。

似乎没有办法将“%n men answers %n questions”翻译成一个字符串(即我需要执行 2 QTranslator::translate() 调用),还是我错了?

laa*_*lto 5

我建议不要尝试在单个可翻译字符串中使用多个数字形式。

  • 这很棘手,涉及多次调用tr().
  • 这很复杂。某些语言可以有两个以上的数字形式,并且翻译空间增长的O(n^m)地方n是语言中数字形式m的数量和要翻译的字符串中字符串中数字形式的数量。举个例子:阿拉伯语有六种数字形式,如果%n字符串中有两个s,则需要 36 种不同的翻译。

因此,最好构建可翻译的字符串,以便%n每个字符串最多需要一个。