O autor arquivou este repositório, então ele não é mais mantido.
README.md
JSONLang
Dependencies
Installation
Simply install to your project:
sampctl package install Tiaansu/JSONLang
Include in your code and begin using the library:
#include <JSONLang>
Usage
This package works by loading json files from I18n folder in the root directory.
These file should have the same keys, see the I18n directory in the repo for an example.
Loading JSON Languages
To load a language from a json file, use InitJsonLanguageFromFile with just the language filename (including extension), not the full file path. For example InitJsonLanguageFromFile("en-US.lang.json"); loads the I18n/en-US.lang.json file.
You could also combine this with the fsutil plugin and iterate through the I18n directory.
new
Directory:dir = OpenDir("I18n"),
entry[256],
ENTRY_TYPE:type,
name[64]
;
while (DirNext(dir, type, entry))
{
if (type == E_REGULAR)
{
PathBase(entry, name);
InitJsonLanguageFromFile(name);
}
}
CloseDir(dir);
or just by simply using InitJsonLanguages() in OnGameModeInit.
Using JSON Language Strings
Now you've loaded json languages, you can use strings from each json language with the GetJsonLanguageString(json_lang_id, const key[], bool:encode = false) function. The first parameter is the language ID, which you can obtain via name with GetJsonLanguageID.
For Example:
SendClientMessage(playerid, -1, GetJsonLanguageString(GetJsonLanguageID("en-US"), "greet"));
Would send the string from en-US keyed by greet.
Per-Player Language
You can store a language ID for each player with SetPlayerJsonLanguage and retrieve it with GetPlayerJsonLanguage. For example, your server could display a list of languages in a dialog with GetJsonLanguageList and when the player selects a language, call SetPlayerJsonLanguage with their selection and then in future you can use GetPlayerJsonLanguage to obtain the language ID that player selected.
There is also a useful macro @L(playerid, key[]) which you can use to quickly get a string for a player using their assigned language ID.
SendClientMessage(playerid, -1, @L(playerid, "greet"));
Testing
To test, simply run the package:
sampctl package run
languagemulti-language-systemsopen-mppawn-librarypawn-packagesa-mpsa-mp-library
Esta página é montada com o que o GitHub publica sobre o repositório. O samp.directory não hospeda o código. Avisar de um problema com esta página