フォルダーの内容を一覧表示するスクリプトを翻訳したいと考えています。含まれているファイル、フォルダー、および合計サイズの概要が表示されます。これまでのところ、すべての文字列を を使用して翻訳しましたが、ここで立ち往生しており、複数の複数形を含む可能性gettext
のある文字列の翻訳を解決するエレガントな方法を探しています。言うまでもないかもしれませんが、言語はそれぞれ違うので、文字列の連結は避けたいです。
$summary = sprintf(_('%1$s folders and %2$s files, %3$s %4$s in total'), $total_folders, $total_files, $total_size, $unit);
可能な状態 (0 のケースは意図的に省略されています):
- 1フォルダ1ファイル、合計100キロバイト
- 1 フォルダと 2 ファイル、合計 200 キロバイト
- フォルダ2つとファイル1つ、合計100キロバイト
- フォルダ2つ、ファイル2つ、合計200キロバイト
ngettext()
の適切な置き換えになると思いますが_()
、それを私の例と組み合わせることは頭を悩ませています。