xgettext复数参数字符串未提取到POT

时间:2016-01-21 19:41:28

标签: c# localization internationalization gettext xgettext

我正在使用这个C#类来使我的字符串国际化:

internal class T
{
    public static string _(string text) { /*...*/ }
    public static string _(string text, params object[] args) { /*...*/ }
    public static string _n(string text, string pluralText, long n) { /*...*/ }
    public static string _n(string text, string pluralText, long n, params object[] args) { /*...*/ }
    public static string _p(string context, string text) { /*...*/ }
    public static string _p(string context, string text, params object[] args) { /*...*/ }
    public static string _pn(string context, string text, string pluralText, long n) { /*...*/ }
    public static string _pn(string context, string text, string pluralText, long n, params object[] args) { /*...*/ }
}

我执行提取字符串:xgettext -k_ -k_n:1,2 -k_p:1c,2 -k_pn:1c,2,3 -LC# --omit-header --from-code=UTF-8 -o messages.pot -c -n -p PO ./TransClassOne.cs

我的TransClassOne课程是:

public class TransClassOne
{

    public string sayHello()
    {
        return Utils.T._("Hello!!");
    }

    public string sayHello(string person)
    {
        return String.Format(Utils.T._("Hello, {0}!!"), person);
    }

    public string sayHello(string person, int n)
    {
        return String.Format(Utils.T._n("Hello, {0} - once!!", "Hello, {0} - twice!!", n), person);
    }

    public string sayGoodBye()
    {
        return Utils.T._("Good Bye!!");
    }

    public string sayGoodBye(string person)
    {
        return String.Format(Utils.T._("Good Bye, {0}!!"), person);
    }

    public string sayGoodBye(string person, int n)
    {
        return String.Format(Utils.T._n("Good Bye, {0} - once!!", "Good Bye, {0} - twice or more!!", n), person);
    }
}

问题是Hello, {0} - twice or more!!而我的Good Bye, {0} - twice or more文件中未显示messages.pot

1 个答案:

答案 0 :(得分:0)

您的命令看起来不错。可能是您使用的xgettext工具中的错误。您正在使用哪个版本的xgettext? version 0.14也有类似的问题;现在我正在使用version 0.19,一切都很好。尝试从这里https://mlocati.github.io/articles/gettext-iconv-windows.html

下载