phaser3-rex-plugins
Version:
110 lines (100 loc) • 2.79 kB
TypeScript
import ComponentBase from '../../utils/componentbase/ComponentBase';
import i18next from 'i18next';
export default TextTranslation;
declare namespace TextTranslation {
/**
* Callback to apply translated text.
*/
type SetTextCallbackType = (
/**
* Target game object.
*/
gameObject: Phaser.GameObjects.GameObject,
/**
* Translated text.
*/
text: string
) => void;
/**
* Interpolation values.
*/
type InterpolationsType = Record<string, unknown>;
/**
* TextTranslation configuration.
*/
interface IConfig {
/**
* Translation key.
*/
translationKey?: string,
/**
* Interpolation values.
*/
interpolation?: InterpolationsType,
/**
* True to update text immediately.
*/
updateText?: boolean,
/**
* Custom text setter.
*/
setText?: SetTextCallbackType,
}
}
/**
* Text translation behavior using i18next.
*/
declare class TextTranslation extends ComponentBase {
/**
* Set the i18next instance used for translation.
* @param obj - i18next instance.
*/
static setI18Next(obj: typeof i18next): void;
/**
* Create a TextTranslation behavior.
* @param gameObject - Target game object.
* @param config - TextTranslation configuration.
*/
constructor(
gameObject: Phaser.GameObjects.GameObject,
config?: TextTranslation.IConfig
);
/**
* Set interpolation values.
* @param interpolation - Interpolation values.
* @returns This instance.
*/
setInterpolation(interpolation: TextTranslation.InterpolationsType): this;
/**
* Update a single interpolation value.
* @param key - Interpolation key.
* @param value - Interpolation value.
* @returns This instance.
*/
updateInterpolation(key: string, value: any): this;
/**
* Update interpolation values.
* @param interpolation - Interpolation values.
* @returns This instance.
*/
updateInterpolation(interpolation: TextTranslation.InterpolationsType): this;
/**
* Interpolation values.
*/
interpolation: TextTranslation.InterpolationsType;
/**
* Set translation key.
* @param key - Translation key.
* @returns This instance.
*/
setTranslationKey(key: string): this;
/**
* Translation key.
*/
translationKey: string;
/**
* Update text using current translation key and interpolation.
* @returns This instance.
*/
updateText(): this;
}