diff options
| author | James Cook <james@lindenlab.com> | 2010-04-19 13:54:50 -0700 | 
|---|---|---|
| committer | James Cook <james@lindenlab.com> | 2010-04-19 13:54:50 -0700 | 
| commit | 16aa2a2a0f29fa927455e616817eef2bedbbf7a7 (patch) | |
| tree | 632d76df24492aef0b8426591889f4d979231e2b | |
| parent | d38727e47ba5d7dd449c6ba62ac6c988ac66236f (diff) | |
DEV-49149 Localizable server error message for Display Names
Try to look up a specific translation for the error in the viewer,
but failing that, try to use a message sent by the server.
Reviewed with Simon.
| -rw-r--r-- | indra/newview/llpanelme.cpp | 36 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 9 | 
2 files changed, 35 insertions, 10 deletions
diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp index d81d84767b..c4fe613161 100644 --- a/indra/newview/llpanelme.cpp +++ b/indra/newview/llpanelme.cpp @@ -45,8 +45,8 @@  // Linden libraries  #include "llavatarnamecache.h"		// IDEVO -#include "llchat.h"					// IDEVO HACK  #include "lliconctrl.h" +#include "llnotifications.h"  #include "llnotificationsutil.h"	// IDEVO  #include "lltabcontainer.h"  #include "lltexturectrl.h" @@ -298,9 +298,6 @@ void LLPanelMyProfileEdit::onTexturePickerMouseLeave(LLUICtrl* ctrl)  	mTextureEditIconMap[ctrl->getName()]->setVisible(FALSE);  } -// IDEVO HACK -extern void send_chat_from_viewer(const std::string& utf8_out_text, EChatType type, S32 channel); -  void LLPanelMyProfileEdit::onCacheSetName(bool success,  										  const std::string& reason,  										  const LLSD& content) @@ -310,15 +307,34 @@ void LLPanelMyProfileEdit::onCacheSetName(bool success,  		// Re-fetch my name, as it may have been sanitized by the service  		LLAvatarNameCache::get(getAvatarId(),  			boost::bind(&LLPanelMyProfileEdit::onNameCache, this, _1, _2)); +		return;  	} -	else + +	// Request failed, notify the user +	std::string error_tag = content["error_tag"].asString(); +	llinfos << "set name failure error_tag " << error_tag << llendl; + +	// We might have a localized string for this message +	if (!error_tag.empty() +		&& LLNotifications::getInstance()->templateExists(error_tag))  	{ -		// JAMESDEBUG TODO: localize strings for reasons we couldn't -		// change the name -		LLNotificationsUtil::add("SetDisplayNameFailedGeneric"); -		// TODO: SetDisplayNameFailedThrottle with [FREQUENCY] -		// TODO: SetDisplayNameFailedUnavailable +		LLNotificationsUtil::add(error_tag); +		return;  	} + +	// The server error might have a localized message for us +	std::string lang_code = LLUI::getLanguage(); +	LLSD error_desc = content["error_description"]; +	if (error_desc.has( lang_code )) +	{ +		LLSD args; +		args["MESSAGE"] = error_desc[lang_code].asString(); +		LLNotificationsUtil::add("GenericAlert", args); +		return; +	} + +	// No specific error, throw a generic one +	LLNotificationsUtil::add("SetDisplayNameFailedGeneric");  }  void LLPanelMyProfileEdit::onDialogSetName(const LLSD& notification, const LLSD& response) diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index e57b21b05c..1e93c3cc98 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -3062,6 +3062,15 @@ Change your display name?    <notification     icon="alertmodal.tga" +   name="AgentDisplayNameSetLindenFailed" +   type="alertmodal"> +Sorry, your display name cannot contain the word 'Linden'. + +Please try a different name. +  </notification> + +  <notification +   icon="alertmodal.tga"     name="SetDisplayNameFailedThrottle"     type="alertmodal">      Sorry, you can only change your display name once every [FREQUENCY] hour(s).   | 
