STORM-153 FIXED Localized Conference and non-existent IM session name strings.

- Moved the "no session" string to XML and used it in code instead of hardcode.



- Conference string turned out to be already translated, but the way translation was happening ad-hoc chat log files on disk
would get localized names, and thus be inconsistent (and that would create problems with browsing them later).
It didn't happen already just because this string wasn't translated in other locales somewhy.
So moved localization of session name after the the creation of log file.
Also changed value of string according to Eli's comment in ticket.
master
Andrew Dyukov 2010-09-17 20:11:17 +03:00
parent 27bbf79c89
commit 98c49322c1
3 changed files with 28 additions and 24 deletions

View File

@ -69,7 +69,6 @@ const static std::string IM_TEXT("message");
const static std::string IM_FROM("from");
const static std::string IM_FROM_ID("from_id");
const static std::string NO_SESSION("(IM Session Doesn't Exist)");
const static std::string ADHOC_NAME_SUFFIX(" Conference");
const static std::string NEARBY_P2P_BY_OTHER("nearby_P2P_by_other");
@ -231,25 +230,6 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
new LLSessionTimeoutTimer(mSessionID, SESSION_INITIALIZATION_TIMEOUT);
}
// *WORKAROUND: for server hard-coded string in indra\newsim\llsimchatterbox.cpp
if (isAdHocSessionType() && IM_SESSION_INVITE == type)
{
// For an ad-hoc incoming chat name is received from the server and is in a form of "<Avatar's name> Conference"
// Lets update it to localize the "Conference" word. See EXT-8429.
S32 separator_index = mName.rfind(" ");
std::string name = mName.substr(0, separator_index);
++separator_index;
std::string conference_word = mName.substr(separator_index, mName.length());
// additional check that session name is what we expected
if ("Conference" == conference_word)
{
LLStringUtil::format_map_t args;
args["[AGENT_NAME]"] = name;
LLTrans::findString(mName, "conference-title-incoming", args);
}
}
if (IM_NOTHING_SPECIAL == type)
{
mCallBackEnabled = LLVoiceClient::getInstance()->isSessionCallBackPossible(mSessionID);
@ -266,6 +246,27 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
LLLogChat::loadAllHistory(mHistoryFileName, chat_history);
addMessagesFromHistory(chat_history);
}
// Localizing name of ad-hoc session. STORM-153
// Changing name should happen here- after the history file was created, so that
// history files have consistent (English) names in different locales.
if (isAdHocSessionType() && IM_SESSION_INVITE == type)
{
// Name here has a form of "<Avatar's name> Conference"
// Lets update it to localize the "Conference" word. See EXT-8429.
S32 separator_index = mName.rfind(" ");
std::string name = mName.substr(0, separator_index);
++separator_index;
std::string conference_word = mName.substr(separator_index, mName.length());
// additional check that session name is what we expected
if ("Conference" == conference_word)
{
LLStringUtil::format_map_t args;
args["[AGENT_NAME]"] = name;
LLTrans::findString(mName, "conference-title-incoming", args);
}
}
}
void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction)
@ -791,14 +792,14 @@ LLIMModel::LLIMSession* LLIMModel::addMessageSilently(const LLUUID& session_id,
}
const std::string& LLIMModel::getName(const LLUUID& session_id) const
const std::string LLIMModel::getName(const LLUUID& session_id) const
{
LLIMSession* session = findIMSession(session_id);
if (!session)
{
llwarns << "session " << session_id << "does not exist " << llendl;
return NO_SESSION;
return LLTrans::getString("no_session_message");
}
return session->mName;

View File

@ -230,7 +230,7 @@ public:
* For an incoming ad-hoc chat - is received from the server and is in a from of "<Avatar's name> Conference"
* It is updated in LLIMModel::LLIMSession's constructor to localize the "Conference".
*/
const std::string& getName(const LLUUID& session_id) const;
const std::string getName(const LLUUID& session_id) const;
/**
* Get number of unread messages in a session with session_id

View File

@ -3029,7 +3029,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
Ad-hoc Conference
</string>
<string name="conference-title-incoming">
[AGENT_NAME] Conference
Conference with [AGENT_NAME]
</string>
<string name="inventory_item_offered-im">
Inventory item offered
@ -3039,6 +3039,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
</string>
<string name="no_session_message">
(IM Session Doesn't Exist)
</string>
<string name="only_user_message">
You are the only user in this session.
</string>