foreach($languageCodes as $lang) {
$l = \OC::$server->getL10N('settings', $lang);
// TRANSLATORS this is the language name for the language switcher in the personal settings and should be the localized version
- if(substr($l->t('__language_name__'), 0, 1) !== '_') {//first check if the language name is in the translation file
- $ln=array('code'=>$lang, 'name'=> (string)$l->t('__language_name__'));
+ $potentialName = (string) $l->t('__language_name__');
+ if($l->getLanguageCode() === $lang && substr($potentialName, 0, 1) !== '_') {//first check if the language name is in the translation file
+ $ln=array('code'=>$lang, 'name'=> $potentialName);
}elseif(isset($languageNames[$lang])) {
$ln=array('code'=>$lang, 'name'=>$languageNames[$lang]);
}else{//fallback to language code