Added new language natives (bug 4613, r+a13=dvander).
This commit is contained in:
		
							parent
							
								
									0824e49000
								
							
						
					
					
						commit
						ca75d0d765
					
				@ -104,6 +104,46 @@ static cell_t sm_GetLanguageInfo(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	return 1;
 | 
						return 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static cell_t sm_SetClientLanguage(IPluginContext *pContext, const cell_t *params)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						CPlayer *player = g_Players.GetPlayerByIndex(params[1]);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if (!player || !player->IsInGame())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return pContext->ThrowNativeError("Invalid client index %d", params[1]);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						player->m_LangId = params[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static cell_t sm_GetLanguageByCode(IPluginContext *pContext, const cell_t *params)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						char *code;
 | 
				
			||||||
 | 
						unsigned int langid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pContext->LocalToString(params[1], &code);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (g_Translator.GetLanguageByCode(code, &langid))
 | 
				
			||||||
 | 
							return langid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return -1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static cell_t sm_GetLanguageByName(IPluginContext *pContext, const cell_t *params)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						char *name;
 | 
				
			||||||
 | 
						unsigned int langid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pContext->LocalToString(params[1], &name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (g_Translator.GetLanguageByName(name, &langid))
 | 
				
			||||||
 | 
							return langid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return -1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
REGISTER_NATIVES(langNatives)
 | 
					REGISTER_NATIVES(langNatives)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	{"LoadTranslations",			sm_LoadTranslations},
 | 
						{"LoadTranslations",			sm_LoadTranslations},
 | 
				
			||||||
@ -112,5 +152,8 @@ REGISTER_NATIVES(langNatives)
 | 
				
			|||||||
	{"GetServerLanguage",			sm_GetServerLanguage},
 | 
						{"GetServerLanguage",			sm_GetServerLanguage},
 | 
				
			||||||
	{"GetLanguageCount",			sm_GetLanguageCount},
 | 
						{"GetLanguageCount",			sm_GetLanguageCount},
 | 
				
			||||||
	{"GetLanguageInfo",				sm_GetLanguageInfo},
 | 
						{"GetLanguageInfo",				sm_GetLanguageInfo},
 | 
				
			||||||
 | 
						{"SetClientLanguage",			sm_SetClientLanguage},
 | 
				
			||||||
 | 
						{"GetLanguageByCode",			sm_GetLanguageByCode},
 | 
				
			||||||
 | 
						{"GetLanguageByName",			sm_GetLanguageByName},
 | 
				
			||||||
	{NULL,							NULL},
 | 
						{NULL,							NULL},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -94,3 +94,28 @@ native GetLanguageCount();
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
native GetLanguageInfo(language, String:code[]="", codeLen=0, String:name[]="", nameLen=0);
 | 
					native GetLanguageInfo(language, String:code[]="", codeLen=0, String:name[]="", nameLen=0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sets the language number of a client.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param client	Client index.
 | 
				
			||||||
 | 
					 * @param language	Language number.
 | 
				
			||||||
 | 
					 * @noreturn
 | 
				
			||||||
 | 
					 * @error			Invalid client index or client not in game.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					native SetClientLanguage(client, language);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Retrieves the language number from a language code.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param code		Language code (2-3 characters usually).
 | 
				
			||||||
 | 
					 * @return			Language number. -1 if not found.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					native GetLanguageByCode(const String:code[]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Retrieves the language number from a language name.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param name		Language name (case insensitive).
 | 
				
			||||||
 | 
					 * @return			Language number. -1 if not found.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					native GetLanguageByName(const String:name[]);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user