0
我正在使用GNU xgettext,Xcode在C++中實現i18n。如何用參數調用GNU gettext()?
的情況如下
FileOne.cpp
void somefunction()
{
string file = 「fileName";
loggerClass.addlog(gettext_args(「some %s missing 「, file));
}
FileTwo.cpp
void someOtherfunction()
{
string doc = 「docName";
loggerClass.addlog(gettext_args(「some %s missing 「, doc));
}
FileThree.cpp
std::string gettext_args(const std::string& format, Args ...args)
{
return string_format(gettext(format.c_str(), args…));
}
由於每個文件沒有明確的GETT ext()函數調用時,我無法針對這種情況爲單個文件調用xgettext(如:xgettext -d FileOne -o FileOne.pot FileOne.cpp
)。
我應該如何爲整個項目調用xgettext(可能來自Xcode)?
感謝
您是否閱讀過'xgettext'手冊頁,如果不是,爲什麼不呢? 'xgettext'手冊頁解釋了傳遞給'xgettext'的選項,以便它能夠識別,例如,gettext_args()的第一個參數是一個應該國際化的字符串? –
是的,我做到了。這裏的問題是如果我運行xgettext從命令行中提取字符串,它期望所有的.cpp文件應該有一個gettext()函數調用。因爲沒有直接從FileOne.cpp和FileTwo.cpp調用text(),所以它不會爲它們創建.pot文件。我想我不能像在手冊中解釋的那樣使用它。 – BusyBee
'xgettext'手冊頁說明了傳遞給'xgettext'的選項,例如,'gettext_args()'的第一個參數是一個字符串。我可以向你保證,在閱讀手冊頁後,我沒有任何問題在沒有任何調用gettext()的文件上運行'xgettext',但是,不知何故'xgettext'找到了所有正確的字符串。 –