amxmodx/plugins/include/lang.inc

120 lines
3.0 KiB
SourcePawn
Executable File

// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
// https://alliedmods.net/amxmodx-license
//
// Language Functions
//
#if defined _lang_included
#endinput
#endif
#define _lang_included
/**
* Returns the number of languages loaded.
*
* @return Number of languages loaded.
*/
native get_langsnum();
/**
* Returns the two-letter name of a language returned by get_langsnum()
*
* @param id Language index, starting at 0
* @param name Buffer to store the name in
*
* @noreturn
*/
native get_lang(id, name[3]);
/**
* Registers a dictionary file, making sure the words are in the dictionary.
*
* @note The file should be in "addons/amxmodx/data/lang", but only the name
* needs to be given. For example, register_dictionary("file.txt") will
* be "addons/amxmodx/data/lang/file.txt".
*
* @param filename Dictionary file name
*
* @return On success, the function will return 1, otherwise it will
* return 0 if the file couldn't be found or opened, and -1 if
* the dictionary was already registered by a plugin
*/
native register_dictionary(const filename[]);
/**
* Checks if the language is loaded.
*
* @return 1 if it is, 0 otherwise
*/
native lang_exists(const name[]);
enum TransKey
{
TransKey_Bad = -1,
};
/**
* Creates a new or finds an existing translation key.
*
* @param key Key to create or find
*
* @return Key index
*/
native TransKey:CreateLangKey(const key[]);
/**
* Finds a translation key index without adding on failure.
*
* @param key Key to search for
*
* @return Key index, or -1 if not found
*/
native TransKey:GetLangTransKey(const key[]);
/**
* Adds a new translation.
*
* @param lang Two-letter language name
* @param key Language key
* @param phrase Translated text
*
* @noreturn
*/
native AddTranslation(const lang[3], TransKey:key, const phrase[]);
/**
* Looks up the translation of the key for the given type.
*
* @note This does NOT format the output text! For example, if the key
* contains %s, the outputted text will also contain %s.
* @note LANG_PLAYER is invalid in this, use a player index or LANG_SERVER.
*
* @param Output Buffer to store the output in
* @param OutputSize Maximum buffer size
* @param Key Language key
* @param id Client index or LANG_SERVER
*
* @return 1 on success, 0 otherwise
*/
native LookupLangKey(Output[], OutputSize, const Key[], const &id);
/**
* Sets the global language target.
*
* @note This is useful for creating functions
* that will be compatible with the %l format specifier. Note that invalid
* indexes can be specified but the error will occur during translation,
* not during this function call.
*
* @param client Client index or LANG_SERVER
* @noreturn
*/
native SetGlobalTransTarget(client);