Current File : /home/jvzmxxx/wiki/extensions/Wikibase/lib/includes/LanguageNameLookup.php
<?php

namespace Wikibase\Lib;

use Language;

/**
 * Service for looking up language names based on MediaWiki's Language
 * class.
 *
 * @since 0.5
 *
 * @license GPL-2.0+
 * @author Jeroen De Dauw < jeroendedauw@gmail.com >
 * @author Tobias Gritschacher
 * @author Jens Ohlig < jens.ohlig@wikimedia.de >
 * @author John Erling Blad < jeblad@gmail.com >
 * @author Marius Hoch < hoo@online.de >
 * @author Thiemo Mättig
 */
class LanguageNameLookup {

	/**
	 * @var string|null
	 */
	private $inLanguage = null;

	/**
	 * @param string|null $inLanguage Language code of the language in which to return the language
	 *  names. Use null for autonyms (returns each language name in it's own language).
	 */
	public function __construct( $inLanguage = null ) {
		if ( $inLanguage !== null ) {
			$this->inLanguage = $this->normalize( $inLanguage );
		}
	}

	/**
	 * @param string $languageCode
	 *
	 * @return string
	 */
	public function getName( $languageCode ) {
		$languageCode = $this->normalize( $languageCode );
		$name = Language::fetchLanguageName( $languageCode, $this->inLanguage );

		if ( $name === '' ) {
			return $languageCode;
		}

		return $name;
	}

	/**
	 * @param string $languageCode
	 *
	 * @return string
	 */
	private function normalize( $languageCode ) {
		return str_replace( '_', '-', $languageCode );
	}

}