[C++] 195 ローカライズ対応 日本語・英語

[Windows11, MinGW g++ 9.2.0, FLTK 1.3.8, NO IDE]

カラーアプリWindows版をローカライズ対応させました。

LC_CTYPEマクロでロケールを取得し、その結果によって変数を決定するようにしました。

MacOSではLC_CTYPE=”ja_JP.UTF-8″等になるため、#ifdefでOS毎の切り替えが必要になります。

ネット検索の上位結果にはこのような情報は見当たりませんでした。これ位は簡単に思いつくので記事にするまでもないということでしょうか。

タブ名のみ英語対応
vector<string> tab_names;

int main(int argc, char **argv) {
    char* locale = setlocale(LC_CTYPE, "");
    cout << "locale " << locale << endl;
    char* p = strstr(locale,"Japan");

    if (p != NULL){
        cout << "Japan detect" << endl;
        tab_names = { "140色", "和色赤系", "和色黄系", "和色青系", "和色黒系"};
    } else {
        tab_names = { "140 COLORS", "TRAD RED", "TRAD YEL", "TRAD BLUE", "TRAD BLACK"};
    }