getAppRichPresenceLocalization(appID, language, callback) {
		return StdLib.Promises.timeoutCallbackPromise(10000, null, callback, (resolve, reject) => {
			let cacheKey = `${appID}_${language}`;
			let cache = this._richPresenceLocalization[cacheKey];
			if (cache && Date.now() - cache.timestamp < (1000 * 60 * 60)) {
				// Cache for 1 hour
				return resolve({tokens: cache.tokens});
			}

			if (typeof language == 'function') {
				callback = language;
				language = null;
			}

			language = language || this.options.language || 'english';

			this._sendUnified('Community.GetAppRichPresenceLocalization#1', {
				appid: appID,
				language
			}, (body) => {
				if (body.appid != appID) {
					return reject(new Error('Did not get localizations for requested app ' + appID + ' (' + body.appID + ')'));
				}

				let tokens = {};
				let foundLanguage = false;
				body.token_lists.forEach((list) => {
					if (list.language == language) {
						foundLanguage = true;
						list.tokens.forEach((token) => {
							tokens[token.name] = token.value;
						});
					}
				});

				if (!foundLanguage) {
					return reject(new Error('Did not get localizations for requested language ' + language));
				}

				if (Object.keys(tokens).length > 0) {
					this._richPresenceLocalization[cacheKey] = {
						timestamp: Date.now(),
						tokens
					};
				}

				return resolve({tokens});
			});
		});
	}
Get the localization keys for rich presence for an app on Steam.
@param {int} appID - The app you want rich presence localizations for
@param {string} [language] - The full name of the language you want localizations for (e.g. "english" or "spanish"); defaults to language passed to constructor
@param {function} [callback]
@returns {Promise}