Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/CreativeHandOficial/gm-i18n
- Owner: CreativeHandOficial
- License: mit
- Created: 2021-04-02T21:31:20.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-02-04T18:38:28.000Z (almost 2 years ago)
- Last Synced: 2024-08-02T07:10:05.437Z (5 months ago)
- Topics: game-maker-studio-2, gml, gms, gms2, i18n, json
- Language: Yacc
- Homepage:
- Size: 150 KB
- Stars: 13
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-gamemaker - gm-i18n - Internationalization of texts simply and quickly, using JSON files. (Localization / Recommendations)
README
Internationalization of texts simply and quickly, using JSON files
---
## Sample demonstration
---
## 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 StepreloadValuesWhenExchanged();
```### `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---
## Author---
## 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/)