Skip to content

CreativeHandOficial/gm-i18n

Repository files navigation

GMi18n

Internationalization of texts simply and quickly, using JSON files

Release v0.3.2 Follow @CreativeHandOf


Sample demonstration


GMi18n


Usage

To use GM i18n, download the latest release, and import the .yymps package into your project.

Location files must be included in the GMS include file. Example of how to create a file: en-US.json

Once imported to your project, you can use any of the API functions below. Remembering that it is necessary to configure gmi18nSetup();


API

gmi18nSetup(_locales*, _defaultLocale*, _fallBackLocale)

This function is responsible for configuring the creation of the locations configuration file, defining what will be the default location and configuring the return location.

I recommend using the object oSetupi18n to speed up initial setup

// @desc Method for configuring in18 within your project, using locations as parameters. The default location. And a return location if there is no requested structure.
// @param	{array}  _locales*		    Required Locales configuration array, must contain code, file and lang
// @param	{string} _defaultLocale*  Required Setting the default location
// @param	{string} _fallBackLocale  Optional Setting the return location, if it does not exist at the current location
// @example

// Configuring gmi18n to generate the information needed to initialize it.

locales = [
	{ code: "pt-BR", file: "pt-BR.json", lang: "Portugues" },
	{ code: "en-US", file: "en-US.json", lang: "English" },
	{ code: "es-ES", file: "es-ES.json", lang: "Espanhol" }
];

defaultLocale = "pt-BR";
fallBackLocale = "pt-BR";

gmi18nSetup(locales, defaultLocale, fallBackLocale);

useTranslation(_param, _varName)

This function is responsible for returning the text that was configured in the json file of the chosen location

// @desc    Method responsible for returning the text within the .json file of the previously chosen location
// @param	 {string} _param*  | Required | Structure created within your .json localization file
// @param	 {string} _varName | Optional | The name of the variable that must remain static
// @returns {string} Returns the text chosen in the parameter
// @example

// Search for the welcome text according to the chosen location
draw_text(x, y, useTranslation('welcome'));

-----------------------------------------------------------------

// Using the function within Create Event, this way it will be possible to update the variable value whenever there is a language change

name = useTranslation('welcome', 'name');

Recommendation

It is possible to abbreviate the useTranslation() call, to make the code less verbose.

Example:

// Create
t = method(self, useTranslation);

// Draw
draw_text(x, y, t('welcome'));

reloadValuesWhenExchanged()

Method responsible for updating objects' create event variables

// Begin Step

reloadValuesWhenExchanged();

switchLocale(_locale)

Change your current location

// @desc     Method responsible for making the language localization change
// @param    {string} _locale* Required Location to be changed
// @example

// Changing the language to pt-BR

switchLocale("pt-BR");

getCurrentLocale()

Returns the current location code

@desc    Returns the current chosen location
@returns {string} _locale Return the code
@example

// Returns the current code: "pt-BR"

getCurrentLocale();

getLocales()

Returns an array with all the locations configured during setup

// @desc    Returns an array with all the locations configured during setup
// @returns {Array} _locales Return all locations configured in the setup
// @example

// Returns the following array:
// [
//  { code: "pt-BR", file: "pt-BR.json", lang: "Portugues" },
//  { code: "en-US", file: "en-US.json", lang: "English" },
//  { code: "es-ES", file: "es-ES.json", lang: "Espanhol" }
// ];

getLocales();

Contributors


Author


Architecture

Only in Portuguese. Link Figma


License

This project is under license MIT.

Done with 💚 by Creative Hand