formatTitle( hotkey, title ) {
		const { intl, layoutMap } = this;
		const combination = [];

		// use Ember.get here, because hotkey can be an ObjectProxy wrapping a hotkey record
		const { code, altKey, ctrlKey, metaKey, shiftKey }
			= getProperties( hotkey, "code", "altKey", "ctrlKey", "metaKey", "shiftKey" );

		ctrlKey && combination.push( intl.t( "hotkeys.modifiers.ctrlKey" ).toString() );
		shiftKey && combination.push( intl.t( "hotkeys.modifiers.shiftKey" ).toString() );
		metaKey && combination.push( intl.t( "hotkeys.modifiers.metaKey" ).toString() );
		altKey && combination.push( intl.t( "hotkeys.modifiers.altKey" ).toString() );

		// look for translations of special hotkeys, eg. "Space"
		combination.push( intl.exists( `hotkeys.codes.${code}` )
			? intl.t( `hotkeys.codes.${code}` ).toString()
			: layoutMap.has( code )
				? layoutMap.get( code ).toUpperCase()
				: code
		);

		const str = combination.join( "+" );

		return title
			? `[${str}] ${title}`
			: str;
	}
@param {Hotkey} hotkey
@param {string} title
@returns {string}