<?php

declare(strict_types=1);

namespace mirzaev\huesos\models\enumerations;

/**
 * Types of languages by ISO 639-1 standart
 *
 * @package mirzaev\huesos\models\enumerations
 *
 * @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
 * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
 */
enum language
{
	case en;
	case ru;

	/**
   * Label
   *
	 * Initialize label of the language
	 *
	 * @param language|null $language Language into which to translate
	 *
	 * @return string Translated label of the language
   *
	 * @todo
	 * 1. More languages
	 * 2. Cases???
	 */
	public function label(?language $language = language::en): string
	{
		// Exit (success)
		return match ($this) {
			language::en =>	match ($language) {
				language::en => 'English',
				language::ru => 'Английский'
			},
			language::ru => match ($language) {
				language::en => 'Russian',
				language::ru => 'Русский'
			}
		};
	}
}
