function localize(english_text, ...interpolations) {
		function find_localization(english_text) {
			if (AccessKeys.has(english_text)) {
				const without_hotkey = AccessKeys.remove(english_text);
				if (localizations[without_hotkey]) {
					const hotkey_def = AccessKeys.get(english_text);
					if (localizations[without_hotkey].toUpperCase().indexOf(hotkey_def.toUpperCase()) > -1) {
						return localizations[without_hotkey];
					} else {
						if (AccessKeys.has(localizations[without_hotkey])) {
							// window.console?.warn(`Localization has differing access key hint: '${localizations[without_hotkey]}' vs '${english_text}'`);
							// @TODO: detect differing access key more generally
							return `${AccessKeys.remove(localizations[without_hotkey])} (${hotkey_def})`;
						}
						return `${localizations[without_hotkey]} (${hotkey_def})`;
					}
				}
			}
			if (localizations[english_text]) {
				return localizations[english_text];
			}
			return english_text;
		}
		function interpolate(text, interpolations) {
			for (let i = 0; i < interpolations.length; i++) {
				text = text.replace(`%${i + 1}`, interpolations[i]);
			}
			return text;
		}
		return interpolate(find_localization(english_text), interpolations);
	}
@param {string} english_text - The English text to localize
@param  {...string} interpolations - Strings to replace %1, %2, etc.
@returns {string} - Text in the current language