Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/CreativeHandOficial/gm-i18n

i18n features for you projetct GMS 2.3
https://github.com/CreativeHandOficial/gm-i18n

game-maker-studio-2 gml gms gms2 i18n json

Last synced: 2 months ago
JSON representation

i18n features for you projetct GMS 2.3

Awesome Lists containing this project

README

        


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](https://github.com/CreativeHandOficial/gm-i18n/releases), 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](https://github.com/CreativeHandOficial/gm-i18n/blob/master/datafiles/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

```js
// @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

```js
// @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:

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

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

### `reloadValuesWhenExchanged()`

Method responsible for updating objects' create event variables

```js
// Begin Step

reloadValuesWhenExchanged();
```

### `switchLocale(_locale)`

Change your current location

```js
// @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

```js
@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

```js
// @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










Juju Adams




🌈



---
## Author




Coded By








Ramon Barbosa




🕹ī¸



---

## Architecture

Only in Portuguese. [Link Figma](https://www.figma.com/file/kDefQdVCSkPiTdrzNoxQDm/GM-i18n?node-id=0%3A1)

---

## License

This project is under license [MIT](./LICENSE).

Done with 💚 by [Creative Hand](https://creativehand.com.br/)