2017-11-01 6 views
1

私はgettextを使ってC/C++プログラムのメッセージを翻訳しています。 プログラムでは、実行中に変更される可能性があるため、ユーザー定義可能な翻訳もあります。 実行時にgettextデータベースを更新できますか?gettextの翻訳をrumtimeに追加する

答えて

0

プログラムが実際に実行されている間に翻訳を変更するかどうか、またはプログラムが既にコンパイルされた後に翻訳が変更される可能性があるかどうかは不明です。

後であれば、何もする必要はありません。それは単にgettextの仕組みです。コアデータベースを作成し、翻訳を別個のファイルとしてプラグインします。

実際に文字通り、前者を意味する場合、それを行う方法はありません。 gettextは、実際の翻訳のロード方法を保証しておらず、実行時に翻訳データベースを置き換えることは安全ではありません。

可能性のあることは、翻訳が変更される可能性があることをプログラムが認識している場合は、データベースを手動でフラッシュしてリロードすることです。 textdomain(3)を呼び出して、別のテキストドメインに切り替えた後、戻るとデータベースがリロードされることがあります。

+0

はい、私は前者を意味します。私はあなたが必要に応じてmoファイルを作成し、それをリロードしなければならないということを意味すると思います。私はそれが1つの可能な方法だと思いますが、C APIからデータベースを更新する方法があるかどうかを知りたかったのです。とにかく答えてくれてありがとう。 –

関連する問題