Complete C++ i18n gettext() “hello world” exampleには、単純な固定文字列で動作するC++コードがあります。私は現在、複数形で動作するサンプルプログラムを探しています。このコード例は6行を表示します。英語で正しいのは1つだけです。複数形は正しく扱えません。複数のC++のhello world
cat >helloplurals.cxx <<EOF
// hellopurals.cxx
#include <libintl.h>
#include <locale.h>
#include <iostream>
#include <stdio.h>
int main(){
setlocale(LC_ALL, "");
bindtextdomain("helloplurals", ".");
textdomain("helloplurals");
for (int ii=0; ii<5; ii++)
printf (gettext("Hello world with %d moon.\n"), ii);
}
EOF
g++ -o helloplurals helloplurals.cxx
./helloplurals
GNU gettext() for plural forms言語は、たとえば複数形を扱うさまざまな方法について説明します。
- 韓国語 - ノーpluals
- 英語 - 1のみ
- フランス語のための単数使用される二つの形式、 - 二つの形式、単数形を0と1の間で使用されます
- ポーランド語 - 3つの形式、1つの特殊な場合、2,3、または4で終わるいくつかの数字
私の期待は、上記のすべてのケースとここには記載されていないいくつかのバリエーションの両方について、コードが(特定のメッセージカタログを使用して)動作することです。
Hello world with 0 moons.
Hello world with 1 moon.
Hello world with 2 moons.
Hello world with 3 moons.
Hello world with 4 moons.
Quoting JS: "Downvoters:コメントをください。 - Jon Skeet May 8 at 9:25" –