private function _validate_element($element, $position)
	{
		$key = reset($element);
		$allowed_keys = array(self::CONTEXT, self::LANG, self::PARAMETER, self::STRING);
		if ( ! in_array($key, $allowed_keys))
		{
			throw new \InvalidArgumentException('Translation definition "'.$key.'" expected to be one of "'.implode('", "', $allowed_keys).'", "'.$key.'" found.');
		}
		$elements_count = count($element);
		if ($key !== self::PARAMETER && $elements_count !== 2)
		{
			throw new \InvalidArgumentException('Translation definition "'.$key.'" expected to have 2 elements, '.$elements_count.' found.');
		}
		elseif ($key === self::PARAMETER && ($elements_count < 2 || $elements_count > 3))
		{
			throw new \InvalidArgumentException('Translation definition "'.$key.'" at position '.($position + 1).' expected to have 2 or 3 elements, '.$elements_count.' found.');
		}
	}