title: How can I convert an IETF BCP 47 language code into a display string?
body: <p>How can I convert an IETF BCP 47 language code [e.g zh-cmn-Hant-HK] into a display string [e.g. "Mandarin Chinese, Traditional (Hong Kong SAR)"] in Android (Java)?</p>
  
  <p>Some background. I am working with the speech to text APIs. I am calling sendOrderedBroadcast, passing a BroadcastReceiver that receives a list of supported languages thru RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES. The EXTRA_SUPPORTED_LANGUAGES are provided as IETF BCP 47 codes rather than Java locale codes:
  <a href="http://developer.android.com/reference/android/speech/RecognizerIntent.html" rel="nofollow">http://developer.android.com/reference/android/speech/RecognizerIntent.html</a></p>
  
  <p>What support does Android provide for working with IETF BCP 47 codes? I am especially interested in getting display names as shown in the example above.</p>