Qt:QTranslator的一个参数::翻译()非单数

时间:2011-03-18 06:59:37

标签: qt localization internationalization

Qt QTranslator::translate() documentation declares

  

如果n不是-1,则用于为翻译选择合适的表格(例如“找到%n文件”与“找到%n个文件”)。

似乎没有办法将“%n人回答%n个问题”翻译为一个字符串(即我需要执行2个QTranslator :: translate()调用),或者我错了?

1 个答案:

答案 0 :(得分:4)

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

  • 这很棘手,涉及到tr()的多次调用。
  • 这很复杂。某些语言可以有两个以上的数字形式,翻译空间在O(n^m)中增长,其中n是语言中数字形式的数量,m是字符串中数字形式的数量被翻译的字符串。例证:阿拉伯语有六种形式,如果你的字符串中有两个%n,你需要36种不同的翻译。

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