我正在使用这个 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
文件中。