dimanche 19 mars 2017

Can this CStringArray be simplified using c++11? Is it worth it?

This might sound like a simple question but I am trying to learn the benefits of the new features in c++ 11. So, given this method:

CString CMeetingScheduleAssistantApp::GetHtmlLanguageCode()
{
    CStringArray aryStrLangId;

    aryStrLangId.Add(_T("en"));
    aryStrLangId.Add(_T("de"));
    aryStrLangId.Add(_T("es"));
    aryStrLangId.Add(_T("it"));
    aryStrLangId.Add(_T("pl"));
    aryStrLangId.Add(_T("fr"));
    aryStrLangId.Add(_T("pt"));
    aryStrLangId.Add(_T("nl"));
    aryStrLangId.Add(_T("sv"));
    aryStrLangId.Add(_T("sl"));
    aryStrLangId.Add(_T("cs"));
    aryStrLangId.Add(_T("fi"));
    aryStrLangId.Add(_T("da"));
    aryStrLangId.Add(_T("uk"));
    aryStrLangId.Add(_T("ru"));
    aryStrLangId.Add(_T("tl"));
    aryStrLangId.Add(_T("ht"));
    aryStrLangId.Add(_T("af"));
    aryStrLangId.Add(_T("sq"));
    aryStrLangId.Add(_T("zh-Hans"));
    aryStrLangId.Add(_T("hr"));
    aryStrLangId.Add(_T("tr"));
    aryStrLangId.Add(_T("tw"));
    aryStrLangId.Add(_T("sw"));
    aryStrLangId.Add(_T("et"));
    aryStrLangId.Add(_T("ro"));
    aryStrLangId.Add(_T("el"));
    aryStrLangId.Add(_T("bg"));
    aryStrLangId.Add(_T("mg"));
    aryStrLangId.Add(_T("ar"));
    aryStrLangId.Add(_T("id"));
    aryStrLangId.Add(_T("hi"));
    aryStrLangId.Add(_T("ta"));
    aryStrLangId.Add(_T("vi"));
    aryStrLangId.Add(_T("zu"));
    aryStrLangId.Add(_T("guw")); // AJT v17.0.9 Gun 
    aryStrLangId.Add(_T("ln")); // AJT v17.0.9 Lingala
    aryStrLangId.Add(_T("pt")); // AJT v17.0.9 Portuguese Portugal
    aryStrLangId.Add(_T("pa")); // AJT v17.1.3 Punjabi

    return aryStrLangId.GetAt(GetProgramLanguage());
}

It is not hard to maintain, but can it be changed to a simpler set of code? It is simply a list of strings and returns the value given an index position.

Thank you.

Aucun commentaire:

Enregistrer un commentaire