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

非奇点的QTranslator::translate()的Qt:n参数,qt,localization,internationalization,Qt,Localization,Internationalization,那 如果n不是-1,则用于为翻译选择适当的形式(例如找到%n个文件”与找到%n个文件) 似乎无法将“%n个男人回答了%n个问题”转换为一个字符串(即,我需要执行2个QTTranslator::translate()调用),或者我错了吗?我建议不要尝试在一个可翻译字符串中使用多个数字形式 这很棘手,涉及到对tr()的多个调用 这很复杂。某些语言可以有两个以上的数字形式,并且翻译空间在O(n^m)中增长,其中n是语言中数字形式的数量,m是字符串中要翻译的数字形式的数量。举个例子:阿拉伯语有六种nu

如果n不是-1,则用于为翻译选择适当的形式(例如找到%n个文件”与找到%n个文件)


似乎无法将“%n个男人回答了%n个问题”转换为一个字符串(即,我需要执行2个QTTranslator::translate()调用),或者我错了吗?

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

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

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

公式很明显,但谢谢,我接受它作为答案:)虽然不是我希望的答案,但它提出了一个令人信服的论点。。。I18n是硬的,有时:-)