2016-08-03 13 views
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…)); 
} 

各ファイルには、明示的な必要はありませんので、ゲットext()関数の呼び出しでは、このような状況ではxgettextを個々のファイル(たとえば、xgettext -d FileOne -o FileOne.pot FileOne.cpp)に対して呼び出せませんでした。

プロジェクト全体(おそらくXcodeから)でxgettextを呼び出す方法は?

おかげ

+0

'xgettext'のマニュアルページはまだ読んでいませんでしたか? 'xgettext'のマニュアルページで' xgettext'に渡すオプションについて説明しています。たとえば、 'gettext_args()'の最初のパラメータは国際化されるべき文字列ですか? –

+0

はい、しました。ここでの問題は、コマンドラインから文字列を抽出するためにxgettextを実行すると、すべての.cppファイルにgettext()関数呼び出しが必要であると予想されることです。 FileOne.cppとFileTwo.cppから直接get text()を呼び出すことはできません。そのため、.potファイルを作成しません。私はそのマニュアルで説明したように使用することはできないと思います。 – BusyBee

+0

'xgettext'のマニュアルページで' xgettext'に渡すオプションについて説明しています。たとえば 'gettext_args()'の最初の引数は文字列です。マニュアルページを読んだ後、gettext()を呼び出さないファイルに対して 'xgettext'を実行しても問題はありませんが、' xgettext'は正しい文字列をすべて探します。 –

答えて

関連する問題