From 0846f8a96325646e75eea9ce7fb73e8f1bfc6439 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sun, 5 Aug 2012 20:40:02 -0400 Subject: [PATCH] Fixeds and ToDones -Color Fixies- Fixed Gemini skin not looking as it originally did. We now use DefaultListText to color all otherwise uncolored text in scroll list cells. All of our dark skins have been updated to use white here, as dark skins are intended to have white text... This includes the Dark we ship with. LLFloaterActiveSpeakers no longer uses hard coded font colors, it uses SpeakersInactive, DefaultListText, and SpeakersGhost. LLFloaterAvatarList no longer uses hard coded font colors, it uses DefaultListText, RadarTextChatRange, RadarTextShoutRange, and RadarTextDrawDist, in place of previously hard coded font colors Since the tooltip defines color meaning, these new colors should only be skinned to change shade. DefaultListText defaults to black; SpeaksInactive, gray(grey4); SpeakersGhost, Red; RadarTextChatRange, Red; RadarTextShoutRange, Yellow(yellow1); RadarTextDrawDist, Green(green2). -Translation update and fixies- Partial credit to viewer-development, thanks for hanging onto old strings! Also, updated to look more like v-d in translated areas. Punctuation strings can be used quite a lot. Brought them all in, just in case. AscentPrefs*: Drag and Drop points now use CurrentlySetTo, CurrentlyNotSet, AnItemNotOnThisAccount, and NotLoggedIn. (applies, as well, to FloaterAO) Power User message is now built from PowerUser1, PowerUser2, Unlocked:, PowerUser3, RightClick, PowerUser4 and PowerUser5; this should give translators enough space to explain any tough to translate, and make the message easier to alter in the future, if necessary. LLCompileQueue: Now uses translation strings from upstream Starting, Done, Resetting, Running, and NotRunning in its xml. CompileQueueTitle, CompileQueueStart, CompileQueueDownloadedCompiling, CompileQueueScriptNotFound, CompileQueueProblemDownloading, CompileQueueInsufficientPermDownload, CompileQueueInsufficientPermFor, CompileQueueUnknownFailure, ResetQueueTitle, ResetQueueStart, NotRunQueueTitle, and NotRunQueueStart from strings. LLFloaterAvatarList(floater_radar) now uses has_entered, has_left, the_sim, draw_distance, shout_range, and chat_range in its xml for translatable alerts. LLFloaterLand(floater_about_land) now uses minutes, 1_minute, 1_second, seconds, and remaining from its xml. LLFloaterLand, LLFolderView, LLPanelDirBrowser now make use of InventoryNoMatchingItems, NoneFound, and Searching in their searches. LLFolderView was brought closer to v-d in translation. LLGroupNotify now uses GroupNotifyGroupNotice, GroupNotifySentBy, GroupNotifyAttached, next (also now used by LLNotify), ok, GroupNotifyGroupNotices, GroupNotifyViewPastNotices, GroupNotifyOpenAttachment, and GroupNotifySaveAttachment. LLInventoryFilter synced with V-D for translation: Now uses Animations, Calling Cards, Clothing, Gestures, Landmarks, Notecards, Objects, Scripts, Sounds, Textures, Snapshots, No Filters, Since Logoff, and Worn. LLManipRotate now uses Direction_Forward, Direction_Left, Direction_Right, Direction_Back, Direction_North, Direction_South, Direction_West, Direction_East, Direction_Up, and Direction_Down, like upstream v-d. LLPanelAvatar(panel_avatar) now uses None string in its xml for when there are no groups, also removed cruft. Though the None has not been showing up for quite some time, anyway... LLPanelObjectInventory now uses Buy, LoadingContents and NoContents, however the last two strings did not seem to show up anyway... thanks to Latif Khalifa, Jean Horten, theGenius Indigo and Cubbi Bearcat for confirming this happens across many different versions and on both Windows and linux(32 and 64). LLPreviewScript now uses CompileSuccessful, SaveComplete, ObjectOutOfRange, and CompileSuccessfulSaving. LLScrollingPanelParam now translates Less and More. Avatar Shape Information strings now used for customize appearance panels. LLTextureCtrl now uses multiple_textures. LLToolpie has been updated to use v-d include order and now uses UnmuteAvatar, MuteAvatar, UnmuteObject, and MuteObject2 strings. LLVOAvatarSelf now uses BodyParts* strings for translation of toolpie entries pertaining to bodyparts. LLViewerMenuFile now uses UnknownFileExtension, and UploadingCosts. LLViewerMessage now uses Cancel(also used by LLViewerDisplay), AcquiredItems, Saved_message, IM_autoresponse_sent_item, IM_autoresponded_to, IM_announce_incoming, InvOfferDecline, InvOfferGaveYou, InvOfferOwnedByUnknownUser, InvOfferAnObjectNamed, InvOfferOwnedBy, InvOfferOwnedByUnknownGroup, and InvOfferOwnedByGroup. -AvatarRadar Update- AvatarRadar enhanced with code from both Cool VL Viewer and some avian corpse. e_radar_alert_type has been reworked to allow bitwise usage in the future. Cool stuff: gSavedSettings for radar are now CachedControls, entering boolean is now checked before going into the switchcase, Style changes, yay C++ style. Avian Flu: Distance for shout range corrected to be 96. handleKeyHere: If the user hits enter with an avatar on the radar selected, focus camera on selected avatar; ctrl-enter, teleport to selected avatar. Otherwise: Tiny spelling fixies, and a suggestive comment. --- indra/llui/llscrolllistctrl.cpp | 5 + indra/llui/llscrolllistctrl.h | 1 + indra/newview/ascentprefschat.cpp | 11 +- indra/newview/ascentprefssys.cpp | 13 +- indra/newview/floaterao.cpp | 11 +- indra/newview/llcompilequeue.cpp | 51 +- indra/newview/llfloateractivespeakers.cpp | 17 +- indra/newview/llfloateravatarlist.cpp | 252 +++--- indra/newview/llfloateravatarlist.h | 2 + indra/newview/llfloaterland.cpp | 30 +- indra/newview/llfolderview.cpp | 9 +- indra/newview/llgroupnotify.cpp | 21 +- indra/newview/llinventoryfilter.cpp | 76 +- indra/newview/llmaniprotate.cpp | 42 +- indra/newview/llnotify.cpp | 2 +- indra/newview/llpanelavatar.cpp | 7 +- indra/newview/llpaneldirbrowser.cpp | 4 +- indra/newview/llpanelobjectinventory.cpp | 31 +- indra/newview/llpreviewscript.cpp | 19 +- indra/newview/llscrollingpanelparam.cpp | 5 +- indra/newview/lltexturectrl.cpp | 2 +- indra/newview/lltoolpie.cpp | 13 +- indra/newview/llviewerdisplay.cpp | 4 +- indra/newview/llviewermenufile.cpp | 14 +- indra/newview/llviewermessage.cpp | 48 +- indra/newview/llvoavatarself.cpp | 27 +- indra/newview/skins/dark/colors.xml | 1 + indra/newview/skins/darkgred/colors.xml | 1 + indra/newview/skins/darkorange/colors.xml | 1 + indra/newview/skins/default/colors_base.xml | 8 + .../default/xui/en-us/floater_about_land.xml | 5 + .../skins/default/xui/en-us/floater_radar.xml | 10 +- .../xui/en-us/floater_script_queue.xml | 5 + .../skins/default/xui/en-us/panel_avatar.xml | 1 + .../skins/default/xui/en-us/strings.xml | 723 +++++++++++++++++- indra/newview/skins/gemini/colors.xml | 24 +- 36 files changed, 1175 insertions(+), 321 deletions(-) diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index e4ad47118..ea168a35c 100644 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -666,6 +666,7 @@ LLScrollListCtrl::LLScrollListCtrl(const std::string& name, const LLRect& rect, mFgUnselectedColor( LLUI::sColorsGroup->getColor("ScrollUnselectedColor") ), mFgDisabledColor( LLUI::sColorsGroup->getColor("ScrollDisabledColor") ), mHighlightedColor( LLUI::sColorsGroup->getColor("ScrollHighlightedColor") ), + mDefaultListTextColor( LLUI::sColorsGroup->getColor("DefaultListText") ), mBorderThickness( 2 ), mOnDoubleClickCallback( NULL ), mOnMaximumSelectCallback( NULL ), @@ -3543,6 +3544,10 @@ LLScrollListItem* LLScrollListCtrl::addElement(const LLSD& value, EAddPosition p { cell->setColor(color); } + else + { + cell->setColor(mDefaultListTextColor); + } new_item->setColumn(index, cell); if (columnp->mHeader && !value.asString().empty()) { diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h index ada8032f1..4060c1466 100644 --- a/indra/llui/llscrolllistctrl.h +++ b/indra/llui/llscrolllistctrl.h @@ -697,6 +697,7 @@ private: LLColor4 mFgUnselectedColor; LLColor4 mFgDisabledColor; LLColor4 mHighlightedColor; + LLColor4 mDefaultListTextColor; S32 mBorderThickness; void (*mOnDoubleClickCallback)(void* userdata); diff --git a/indra/newview/ascentprefschat.cpp b/indra/newview/ascentprefschat.cpp index 77bc6611e..5960024bd 100644 --- a/indra/newview/ascentprefschat.cpp +++ b/indra/newview/ascentprefschat.cpp @@ -42,6 +42,7 @@ #include "llviewercontrol.h" #include "NACLantispam.h" #include "lgghunspell_wrapper.h" +#include "lltrans.h" #include "llstartup.h" @@ -85,11 +86,11 @@ LLPrefsAscentChat::LLPrefsAscentChat() LLUUID itemid = (LLUUID)gSavedPerAccountSettings.getString("AscentInstantMessageResponseItemData"); LLViewerInventoryItem* item = gInventory.getItem(itemid); - if (item) childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); - else if (itemid.isNull()) childSetValue("im_give_disp_rect_txt","Currently not set"); - else childSetValue("im_give_disp_rect_txt","Currently set to an item not on this account"); + if (item) childSetValue("im_give_disp_rect_txt", LLTrans::getString("CurrentlySetTo") + LLTrans::getString(":") + " " +item->getName()); + else if (itemid.isNull()) childSetValue("im_give_disp_rect_txt", LLTrans::getString("CurrentlyNotSet")); + else childSetValue("im_give_disp_rect_txt", LLTrans::getString("CurrentlySetTo") + " " + LLTrans::getString("AnItemNotOnThisAccount")); } - else childSetValue("im_give_disp_rect_txt","Not logged in"); + else childSetValue("im_give_disp_rect_txt", LLTrans::getString("NotLoggedIn")); childSetCommitCallback("im_response", onCommitAutoResponse, this); @@ -240,7 +241,7 @@ void LLPrefsAscentChat::onCommitAutoResponse(LLUICtrl* ctrl, void* user_data) void LLPrefsAscentChat::SinguIMResponseItemDrop(LLViewerInventoryItem* item) { gSavedPerAccountSettings.setString("AscentInstantMessageResponseItemData", item->getUUID().asString()); - sInst->childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); + sInst->childSetValue("im_give_disp_rect_txt", LLTrans::getString("CurrentlySetTo") + LLTrans::getString(":") + " " +item->getName()); } //static diff --git a/indra/newview/ascentprefssys.cpp b/indra/newview/ascentprefssys.cpp index c9f883c05..684a2fb0a 100644 --- a/indra/newview/ascentprefssys.cpp +++ b/indra/newview/ascentprefssys.cpp @@ -45,6 +45,7 @@ #include "lluictrlfactory.h" #include "llviewercontrol.h" #include "llstartup.h" +#include "lltrans.h" LLDropTarget* mBuildDropTarget; LLPrefsAscentSys* LLPrefsAscentSys::sInst; @@ -102,11 +103,11 @@ LLPrefsAscentSys::LLPrefsAscentSys() LLUUID itemid = (LLUUID)gSavedPerAccountSettings.getString("EmeraldBuildPrefs_Item"); LLViewerInventoryItem* item = gInventory.getItem(itemid); - if (item) childSetValue("build_item_add_disp_rect_txt", "Currently set to:\n"+item->getName()); - else if (itemid.isNull()) childSetValue("build_item_add_disp_rect_txt", "Currently\nnot set"); - else childSetValue("build_item_add_disp_rect_txt", "Currently set to\nan item not on this account"); + if (item) childSetValue("build_item_add_disp_rect_txt", LLTrans::getString("CurrentlySetTo") + LLTrans::getString(":") + "\n" +item->getName()); + else if (itemid.isNull()) childSetValue("build_item_add_disp_rect_txt", LLTrans::getString("CurrentlyNotSet")); + else childSetValue("build_item_add_disp_rect_txt", LLTrans::getString("CurrentlySetTo") + "\n" + LLTrans::getString("AnItemNotOnThisAccount")); } - else childSetValue("build_item_add_disp_rect_txt", "You are\nnot logged in"); + else childSetValue("build_item_add_disp_rect_txt", LLTrans::getString("NotLoggedIn")); refreshValues(); refresh(); @@ -165,7 +166,7 @@ void LLPrefsAscentSys::onCommitCheckBox(LLUICtrl* ctrl, void* user_data) gAudiop->triggerSound(LLUUID("58a38e89-44c6-c52b-deb8-9f1ddc527319"), gAgent.getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_UI, lpos_global); LLChat chat; chat.mSourceType = CHAT_SOURCE_SYSTEM; - chat.mText = llformat("You are bestowed with powers beyond mortal comprehension.\nUse your newfound abilities wisely.\nUnlocked:\n- Animation Priority up to 7 - Meant for animations that should override anything and everything at all times. DO NOT USE THIS FOR GENERAL ANIMATIONS.\n- Right click > Destroy objects - Permanently deletes an object immediately, when you don't feel like waiting for the server to respond.\n- Right Click > Explode objects - Turns an object physical, temporary, and delinks it."); + chat.mText = LLTrans::getString("PowerUser1") + "\n" + LLTrans::getString("PowerUser2") + "\n" + LLTrans::getString("Unlocked:") + "\n" + LLTrans::getString("PowerUser3") + "\n- " + LLTrans::getString("RightClick") + " > " + LLTrans::getString("PowerUser4") + "\n- " + LLTrans::getString("RightClick") + " > " + LLTrans::getString("PowerUser5"); LLFloaterChat::addChat(chat); } } @@ -247,7 +248,7 @@ void LLPrefsAscentSys::onCommitTexturePicker(LLUICtrl* ctrl, void* userdata) void LLPrefsAscentSys::SinguBuildItemDrop(LLViewerInventoryItem* item) { gSavedPerAccountSettings.setString("EmeraldBuildPrefs_Item", item->getUUID().asString()); - sInst->childSetValue("build_item_add_disp_rect_txt","Currently set to:\n"+item->getName()); + sInst->childSetValue("build_item_add_disp_rect_txt", LLTrans::getString("CurrentlySetTo") + LLTrans::getString(":") + "\n" + item->getName()); } void LLPrefsAscentSys::refreshValues() diff --git a/indra/newview/floaterao.cpp b/indra/newview/floaterao.cpp index afc0fcb75..ec3fac0e5 100644 --- a/indra/newview/floaterao.cpp +++ b/indra/newview/floaterao.cpp @@ -22,6 +22,7 @@ #include "chatbar_as_cmdline.h" //#include "llfloaterchat.h" #include "llfirstuse.h" +#include "lltrans.h" #include "llinventory.h" #include "llinventoryfunctions.h" @@ -330,20 +331,20 @@ BOOL LLFloaterAO::postBuild() LLViewerInventoryItem* itemimport = gInventory.getItem(itemidimport); if(itemimport) { - childSetValue("ao_nc_text","Currently set to: "+itemimport->getName()); + childSetValue("ao_nc_text", LLTrans::getString("CurrentlySetTo") + LLTrans::getString(":") + " " +itemimport->getName()); } else if(itemidimport.isNull()) { - childSetValue("ao_nc_text","Currently not set"); + childSetValue("ao_nc_text", LLTrans::getString("CurrentlyNotSet")); } else { - childSetValue("ao_nc_text","Currently set to a item not on this account"); + childSetValue("ao_nc_text", LLTrans::getString("CurrentlySetTo") + " " + LLTrans::getString("AnItemNotOnThisAccount")); } } else { - childSetValue("ao_nc_text","Not logged in"); + childSetValue("ao_nc_text", LLTrans::getString("NotLoggedIn")); } childSetAction("more_btn", onClickMore, this); childSetAction("less_btn", onClickLess, this); @@ -794,7 +795,7 @@ void LLFloaterAO::setCurrentStandId(const LLUUID& id) void LLFloaterAO::AOItemDrop(LLViewerInventoryItem* item) { gSavedPerAccountSettings.setString("AOConfigNotecardID", item->getUUID().asString()); - sInstance->childSetValue("ao_nc_text","Currently set to: "+item->getName()); + sInstance->childSetValue("ao_nc_text", LLTrans::getString("CurrentlySetTo") + LLTrans::getString(":") + " " +item->getName()); } LLUUID LLFloaterAO::GetAnimID(const LLUUID& id) diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp index 97831b4b2..5cf8b7fdc 100644 --- a/indra/newview/llcompilequeue.cpp +++ b/indra/newview/llcompilequeue.cpp @@ -61,6 +61,7 @@ #include "llfloaterchat.h" #include "llviewerstats.h" #include "lluictrlfactory.h" +#include "lltrans.h" #include "llselectmgr.h" @@ -68,16 +69,6 @@ /// Local function declarations, constants, enums, and typedefs ///---------------------------------------------------------------------------- -// *TODO:Translate -const std::string COMPILE_QUEUE_TITLE("Recompilation Progress"); -const std::string COMPILE_START_STRING("recompile"); -const std::string RESET_QUEUE_TITLE("Reset Progress"); -const std::string RESET_START_STRING("reset"); -const std::string RUN_QUEUE_TITLE("Set Running Progress"); -const std::string RUN_START_STRING("set running"); -const std::string NOT_RUN_QUEUE_TITLE("Set Not Running Progress"); -const std::string NOT_RUN_START_STRING("set not running"); - struct LLScriptQueueData { LLUUID mQueueID; @@ -211,8 +202,11 @@ BOOL LLFloaterScriptQueue::start() n_objects = selectHandle->getRootObjectCount(); } - buffer = llformat("Starting %s of %d items.", mStartString.c_str(), n_objects); // *TODO: Translate - + LLStringUtil::format_map_t args; + args["[START]"] = mStartString; + args["[COUNT]"] = llformat ("%d", mObjectIDs.count()); + buffer = getString ("Starting", args); + LLScrollListCtrl* list = getChild("queue output"); list->addCommentText(buffer); @@ -250,8 +244,7 @@ BOOL LLFloaterScriptQueue::nextObject() LLScrollListCtrl* list = getChild("queue output"); mDone = TRUE; - std::string buffer = "Done."; // *TODO: Translate - list->addCommentText(buffer); + list->addCommentText(getString("Done")); childSetEnabled("close",TRUE); } return successful_start; @@ -346,7 +339,7 @@ LLFloaterCompileQueue* LLFloaterCompileQueue::create(BOOL mono) } LLFloaterCompileQueue::LLFloaterCompileQueue(const std::string& name, const LLRect& rect) -: LLFloaterScriptQueue(name, rect, COMPILE_QUEUE_TITLE, COMPILE_START_STRING) +: LLFloaterScriptQueue(name, rect, LLTrans::getString("CompileQueueTitle"), LLTrans::getString("CompileQueueStart")) { } LLFloaterCompileQueue::~LLFloaterCompileQueue() @@ -454,7 +447,7 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id, else { // It's now in the file, now compile it. - buffer = std::string("Downloaded, now compiling: ") + data->mScriptName; // *TODO: Translate + buffer = LLTrans::getString("CompileQueueDownloadedCompiling") + (": ") + data->mScriptName; // Write script to local file for compilation. LLFILE *fp = LLFile::fopen(filename, "wb"); /*Flawfinder: ignore*/ @@ -493,19 +486,21 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id, if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ) { - LLChat chat(std::string("Script not found on server.")); // *TODO: Translate + LLChat chat(LLTrans::getString("CompileQueueScriptNotFound")); LLFloaterChat::addChat(chat); - buffer = std::string("Problem downloading: ") + data->mScriptName; // *TODO: Translate + + buffer = LLTrans::getString("CompileQueueProblemDownloading") + LLTrans::getString(":") + " " + data->mScriptName; } else if (LL_ERR_INSUFFICIENT_PERMISSIONS == status) { - LLChat chat(std::string("Insufficient permissions to download a script.")); // *TODO: Translate + LLChat chat(LLTrans::getString("CompileQueueInsufficientPermDownload")); LLFloaterChat::addChat(chat); - buffer = std::string("Insufficient permissions for: ") + data->mScriptName; // *TODO: Translate + + buffer = LLTrans::getString("CompileQueueInsufficientPermFor") + LLTrans::getString(":") + " " + data->mScriptName; } else { - buffer = std::string("Unknown failure to download ") + data->mScriptName; // *TODO: Translate + buffer = LLTrans::getString("CompileQueueUnknownFailure") + (" ") + data->mScriptName; } llwarns << "Problem downloading script asset." << llendl; @@ -671,7 +666,7 @@ LLFloaterResetQueue* LLFloaterResetQueue::create() } LLFloaterResetQueue::LLFloaterResetQueue(const std::string& name, const LLRect& rect) -: LLFloaterScriptQueue(name, rect, RESET_QUEUE_TITLE, RESET_START_STRING) +: LLFloaterScriptQueue(name, rect, LLTrans::getString("ResetQueueTitle"), LLTrans::getString("ResetQueueStart")) { } LLFloaterResetQueue::~LLFloaterResetQueue() @@ -698,7 +693,7 @@ void LLFloaterResetQueue::handleInventory(LLViewerObject* viewer_obj, LLInventoryItem* item = (LLInventoryItem*)((LLInventoryObject*)(*it)); LLScrollListCtrl* list = getChild("queue output"); std::string buffer; - buffer = std::string("Resetting: ") + item->getName(); // *TODO: Translate + buffer = getString("Resetting") + LLTrans::getString(":") + " " + item->getName(); list->addCommentText(buffer); LLMessageSystem* msg = gMessageSystem; msg->newMessageFast(_PREHASH_ScriptReset); @@ -733,7 +728,7 @@ LLFloaterRunQueue* LLFloaterRunQueue::create() } LLFloaterRunQueue::LLFloaterRunQueue(const std::string& name, const LLRect& rect) -: LLFloaterScriptQueue(name, rect, RUN_QUEUE_TITLE, RUN_START_STRING) +: LLFloaterScriptQueue(name, rect, LLTrans::getString("RunQueueTitle"), LLTrans::getString("RunQueueStart")) { } LLFloaterRunQueue::~LLFloaterRunQueue() @@ -741,7 +736,7 @@ LLFloaterRunQueue::~LLFloaterRunQueue() } void LLFloaterRunQueue::handleInventory(LLViewerObject* viewer_obj, - LLInventoryObject::object_list_t* inv) + LLInventoryObject::object_list_t* inv) { // find all of the lsl, leaving off duplicates. We'll remove // all matching asset uuids on compilation success. @@ -760,7 +755,7 @@ void LLFloaterRunQueue::handleInventory(LLViewerObject* viewer_obj, LLInventoryItem* item = (LLInventoryItem*)((LLInventoryObject*)(*it)); LLScrollListCtrl* list = getChild("queue output"); std::string buffer; - buffer = std::string("Running: ") + item->getName(); // *TODO: Translate + buffer = getString("Running") + LLTrans::getString(":") + " " + item->getName(); list->addCommentText(buffer); LLMessageSystem* msg = gMessageSystem; @@ -797,7 +792,7 @@ LLFloaterNotRunQueue* LLFloaterNotRunQueue::create() } LLFloaterNotRunQueue::LLFloaterNotRunQueue(const std::string& name, const LLRect& rect) -: LLFloaterScriptQueue(name, rect, NOT_RUN_QUEUE_TITLE, NOT_RUN_START_STRING) +: LLFloaterScriptQueue(name, rect, LLTrans::getString("NotRunQueueTitle"), LLTrans::getString("NotRunQueueStart")) { } LLFloaterNotRunQueue::~LLFloaterNotRunQueue() @@ -824,7 +819,7 @@ void LLFloaterNotRunQueue::handleInventory(LLViewerObject* viewer_obj, LLInventoryItem* item = (LLInventoryItem*)((LLInventoryObject*)(*it)); LLScrollListCtrl* list = getChild("queue output"); std::string buffer; - buffer = std::string("Not running: ") +item->getName(); // *TODO: Translate + buffer = getString("NotRunning") + LLTrans::getString(":") + " " + item->getName(); list->addCommentText(buffer); LLMessageSystem* msg = gMessageSystem; diff --git a/indra/newview/llfloateractivespeakers.cpp b/indra/newview/llfloateractivespeakers.cpp index 321a825f1..6e49d5d91 100644 --- a/indra/newview/llfloateractivespeakers.cpp +++ b/indra/newview/llfloateractivespeakers.cpp @@ -531,15 +531,18 @@ void LLPanelActiveSpeakers::refreshSpeakers() LLScrollListCell* name_cell = itemp->getColumn(1); if (name_cell) { - //FIXME: remove hard coding of font colors if (speakerp->mStatus == LLSpeaker::STATUS_NOT_IN_CHANNEL) { - // draw inactive speakers in gray - name_cell->setColor(LLColor4::grey4); + // draw inactive speakers in different color + static LLCachedControl sSpeakersInactive(gColors, "SpeakersInactive"); + + name_cell->setColor(sSpeakersInactive); } else { - name_cell->setColor(LLColor4::black); + static LLCachedControl sDefaultListText(gColors, "DefaultListText"); + + name_cell->setColor(sDefaultListText); } // if(!mShowTextChatters && !(speakerp->mStatus == LLSpeaker::STATUS_NOT_IN_CHANNEL) && speakerp->mID != gAgent.getID()) @@ -560,7 +563,11 @@ void LLPanelActiveSpeakers::refreshSpeakers() } } if(!found) - name_cell->setColor(LLColor4::red); + { + static LLCachedControl sSpeakersGhost(gColors, "SpeakersGhost"); + + name_cell->setColor(sSpeakersGhost); + } } // diff --git a/indra/newview/llfloateravatarlist.cpp b/indra/newview/llfloateravatarlist.cpp index ff2f4247b..801633eaf 100644 --- a/indra/newview/llfloateravatarlist.cpp +++ b/indra/newview/llfloateravatarlist.cpp @@ -74,43 +74,55 @@ extern U32 gFrameCount; typedef enum e_radar_alert_type { - ALERT_TYPE_SIM = 0, - ALERT_TYPE_DRAW = 1, - ALERT_TYPE_SHOUTRANGE = 2, - ALERT_TYPE_CHATRANGE = 3 + ALERT_TYPE_SIM = 1, + ALERT_TYPE_DRAW = 2, + ALERT_TYPE_SHOUTRANGE = 4, + ALERT_TYPE_CHATRANGE = 8, } ERadarAlertType; void chat_avatar_status(std::string name, LLUUID key, ERadarAlertType type, bool entering) { - if (gSavedSettings.getBOOL("RadarChatAlerts")) + static LLCachedControl radar_chat_alerts(gSavedSettings, "RadarChatAlerts"); + static LLCachedControl radar_alert_sim(gSavedSettings, "RadarAlertSim"); + static LLCachedControl radar_alert_draw(gSavedSettings, "RadarAlertDraw"); + static LLCachedControl radar_alert_shout_range(gSavedSettings, "RadarAlertShoutRange"); + static LLCachedControl radar_alert_chat_range(gSavedSettings, "RadarAlertChatRange"); + static LLCachedControl radar_chat_keys(gSavedSettings, "RadarChatKeys"); + + if (radar_chat_alerts) { LLChat chat; + LLFloaterAvatarList* self = LLFloaterAvatarList::getInstance(); + std::string message = name + " " + self->getString(entering ? "has_entered" : "has_left") + " "; switch(type) { - case ALERT_TYPE_SIM: - if (gSavedSettings.getBOOL("RadarAlertSim")) - { - chat.mText = name+" has "+(entering ? "entered" : "left")+" the sim."; - } - break; - case ALERT_TYPE_DRAW: - if (gSavedSettings.getBOOL("RadarAlertDraw")) - { - chat.mText = name+" has "+(entering ? "entered" : "left")+" draw distance."; - } - break; - case ALERT_TYPE_SHOUTRANGE: - if (gSavedSettings.getBOOL("RadarAlertShoutRange")) - { - chat.mText = name+" has "+(entering ? "entered" : "left")+" shout range."; - } - break; - case ALERT_TYPE_CHATRANGE: - if (gSavedSettings.getBOOL("RadarAlertChatRange")) - { - chat.mText = name+" has "+(entering ? "entered" : "left")+" chat range."; - } - break; + case ALERT_TYPE_SIM: + if (radar_alert_sim) + { + chat.mText = message + self->getString("the_sim") + "."; + } + break; + + case ALERT_TYPE_DRAW: + if (radar_alert_draw) + { + chat.mText = message + self->getString("draw_distance") + "."; + } + break; + + case ALERT_TYPE_SHOUTRANGE: + if (radar_alert_shout_range) + { + chat.mText = message + self->getString("shout_range") + "."; + } + break; + + case ALERT_TYPE_CHATRANGE: + if (radar_alert_chat_range) + { + chat.mText = message + self->getString("chat_range") + "."; + } + break; } if (chat.mText != "") { @@ -309,6 +321,7 @@ BOOL LLFloaterAvatarList::postBuild() // Hide them until some other way is found // Users may not expect to find a Ban feature on the Eject button + // Perhaps turn it into a FlyOutButton? childSetVisible("estate_ban_btn", false); // Set callbacks @@ -471,7 +484,7 @@ void LLFloaterAvatarList::updateAvatarList() LLAvatarName avatar_name; if (LLAvatarNameCache::get(avatarp->getID(), &avatar_name)) { - static const LLCachedControl phoenix_name_system("PhoenixNameSystem", 0); + static LLCachedControl phoenix_name_system("PhoenixNameSystem", 0); switch (phoenix_name_system) { case 0 : name = avatar_name.getLegacyName(); break; @@ -662,7 +675,7 @@ void LLFloaterAvatarList::refreshAvatarList() LLUUID av_id; std::string av_name; - LLAvatarListEntry *entry = &iter->second; + LLAvatarListEntry* entry = &iter->second; // Skip if avatar hasn't been around if (entry->isDead()) @@ -738,9 +751,13 @@ void LLFloaterAvatarList::refreshAvatarList() estate_owner = parent_estate->getOwner(); } - static const LLCachedControl unselected_color(gColors, "ScrollUnselectedColor",LLColor4(LLColor4U(0, 0, 0, 204)) ); + static const LLCachedControl unselected_color(gColors, "ScrollUnselectedColor",LLColor4(0.f, 0.f, 0.f, 0.8f)); - LLColor4 name_color = unselected_color; + static LLCachedControl sDefaultListText(gColors, "DefaultListText"); + static LLCachedControl sRadarTextChatRange(gColors, "RadarTextChatRange"); + static LLCachedControl sRadarTextShoutRange(gColors, "RadarTextShoutRange"); + static LLCachedControl sRadarTextDrawDist(gColors, "RadarTextDrawDist"); + LLColor4 name_color = sDefaultListText; //Lindens are always more Linden than your friend, make that take precedence if(LLMuteList::getInstance()->isLinden(av_name)) @@ -772,7 +789,7 @@ void LLFloaterAvatarList::refreshAvatarList() element["columns"][LIST_AVATAR_NAME]["color"] = name_color.getValue(); char temp[32]; - LLColor4 color = LLColor4::black; + LLColor4 color = sDefaultListText; element["columns"][LIST_DISTANCE]["column"] = "distance"; element["columns"][LIST_DISTANCE]["type"] = "text"; if (UnknownAltitude) @@ -780,28 +797,28 @@ void LLFloaterAvatarList::refreshAvatarList() strcpy(temp, "?"); if (entry->isDrawn()) { - color = LLColor4::green2; + color = sRadarTextDrawDist; } } else { - if (distance < 100.0) + if (distance <= 96.0) { snprintf(temp, sizeof(temp), "%.1f", distance); if (distance > 20.0f) { - color = LLColor4::yellow1; + color = sRadarTextShoutRange; } else { - color = LLColor4::red; + color = sRadarTextChatRange; } } else { if (entry->isDrawn()) { - color = LLColor4::green2; + color = sRadarTextDrawDist; } snprintf(temp, sizeof(temp), "%d", (S32)distance); } @@ -893,9 +910,9 @@ void LLFloaterAvatarList::refreshAvatarList() //element["columns"][LIST_METADATA]["column"] = "metadata"; //element["columns"][LIST_METADATA]["type"] = "text"; - static const LLCachedControl avatar_name_color(gColors, "AvatarNameColor",LLColor4(LLColor4U(251, 175, 93, 255)) ); + static const LLCachedControl avatar_name_color(gColors, "AvatarNameColor",LLColor4(0.98f, 0.69f, 0.36f, 1.f)); LLColor4 client_color(avatar_name_color); - LLVOAvatar *avatarp = gObjectList.findAvatar(av_id); + LLVOAvatar* avatarp = gObjectList.findAvatar(av_id); if(avatarp) { std::string client = SHClientTagMgr::instance().getClientName(avatarp, false); @@ -971,9 +988,9 @@ void LLFloaterAvatarList::onClickIM(void* userdata) } } -void LLFloaterAvatarList::onClickTeleportOffer(void *userdata) +void LLFloaterAvatarList::onClickTeleportOffer(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; LLDynamicArray ids = self->mAvatarList->getSelectedIDs(); if (ids.size() > 0) @@ -982,11 +999,11 @@ void LLFloaterAvatarList::onClickTeleportOffer(void *userdata) } } -void LLFloaterAvatarList::onClickTrack(void *userdata) +void LLFloaterAvatarList::onClickTrack(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; - LLScrollListItem *item = self->mAvatarList->getFirstSelected(); + LLScrollListItem* item = self->mAvatarList->getFirstSelected(); if (!item) return; LLUUID agent_id = item->getUUID(); @@ -1054,15 +1071,15 @@ LLAvatarListEntry * LLFloaterAvatarList::getAvatarEntry(LLUUID avatar) } //static -void LLFloaterAvatarList::onClickMark(void *userdata) +void LLFloaterAvatarList::onClickMark(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; LLDynamicArray ids = self->mAvatarList->getSelectedIDs(); for (LLDynamicArray::iterator itr = ids.begin(); itr != ids.end(); ++itr) { LLUUID avid = *itr; - LLAvatarListEntry *entry = self->getAvatarEntry(avid); + LLAvatarListEntry* entry = self->getAvatarEntry(avid); if (entry != NULL) { entry->toggleMark(); @@ -1070,11 +1087,38 @@ void LLFloaterAvatarList::onClickMark(void *userdata) } } -void LLFloaterAvatarList::onClickFocus(void *userdata) +BOOL LLFloaterAvatarList::handleKeyHere(KEY key, MASK mask) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = getInstance(); + LLScrollListItem* item = self->mAvatarList->getFirstSelected(); + if(item) + { + LLUUID agent_id = item->getUUID(); + if (( KEY_RETURN == key ) && (MASK_NONE == mask)) + { + self->mFocusedAvatar = agent_id; + self->focusOnCurrent(); + return TRUE; + } + else if (( KEY_RETURN == key ) && (MASK_CONTROL == mask)) + { + LLAvatarListEntry* entry = self->getAvatarEntry(agent_id); + if (entry) + { +// llinfos << "Trying to teleport to " << entry->getName() << " at " << entry->getPosition() << llendl; + gAgent.teleportViaLocation(entry->getPosition()); + } + return TRUE; + } + } + return LLPanel::handleKeyHere(key, mask); +} - LLScrollListItem *item = self->mAvatarList->getFirstSelected(); +void LLFloaterAvatarList::onClickFocus(void* userdata) +{ + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; + + LLScrollListItem* item = self->mAvatarList->getFirstSelected(); if (item) { self->mFocusedAvatar = item->getUUID(); @@ -1088,7 +1132,7 @@ void LLFloaterAvatarList::removeFocusFromAll() for (iter = mAvatars.begin(); iter != mAvatars.end(); iter++) { - LLAvatarListEntry *entry = &iter->second; + LLAvatarListEntry* entry = &iter->second; entry->setFocus(FALSE); } } @@ -1096,7 +1140,7 @@ void LLFloaterAvatarList::removeFocusFromAll() void LLFloaterAvatarList::focusOnCurrent() { std::map::iterator iter; - LLAvatarListEntry *entry; + LLAvatarListEntry* entry; if (mAvatars.size() == 0) { @@ -1123,8 +1167,8 @@ void LLFloaterAvatarList::focusOnCurrent() void LLFloaterAvatarList::focusOnPrev(BOOL marked_only) { std::map::iterator iter; - LLAvatarListEntry *prev = NULL; - LLAvatarListEntry *entry; + LLAvatarListEntry* prev = NULL; + LLAvatarListEntry* entry; if (mAvatars.size() == 0) { @@ -1162,8 +1206,8 @@ void LLFloaterAvatarList::focusOnNext(BOOL marked_only) { std::map::iterator iter; BOOL found = FALSE; - LLAvatarListEntry *next = NULL; - LLAvatarListEntry *entry; + LLAvatarListEntry* next = NULL; + LLAvatarListEntry* entry; if (mAvatars.size() == 0) { @@ -1220,38 +1264,38 @@ void LLFloaterAvatarList::lookAtAvatar(LLUUID &uuid) } //static -void LLFloaterAvatarList::onClickPrevInList(void *userdata) +void LLFloaterAvatarList::onClickPrevInList(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; self->focusOnPrev(FALSE); } //static -void LLFloaterAvatarList::onClickNextInList(void *userdata) +void LLFloaterAvatarList::onClickNextInList(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; self->focusOnNext(FALSE); } //static -void LLFloaterAvatarList::onClickPrevMarked(void *userdata) +void LLFloaterAvatarList::onClickPrevMarked(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; self->focusOnPrev(TRUE); } //static -void LLFloaterAvatarList::onClickNextMarked(void *userdata) +void LLFloaterAvatarList::onClickNextMarked(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; self->focusOnNext(TRUE); } //static void LLFloaterAvatarList::onClickGetKey(void *userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; - LLScrollListItem *item = self->mAvatarList->getFirstSelected(); + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; + LLScrollListItem* item = self->mAvatarList->getFirstSelected(); if (NULL == item) return; @@ -1337,7 +1381,7 @@ void LLFloaterAvatarList::sound_trigger_hook(LLMessageSystem* msg,void **) msg->getUUIDFast(_PREHASH_SoundData, _PREHASH_OwnerID, owner_id); if(owner_id == gAgent.getID() && sound_id == LLUUID("76c78607-93f9-f55a-5238-e19b1a181389")) { - //lets ask if they want to turn it on. + //let's ask if they want to turn it on. if(gSavedSettings.getBOOL("RadarChatKeys")) { LLFloaterAvatarList::getInstance()->sendKeys(); @@ -1412,13 +1456,13 @@ static void send_eject(const LLUUID& avatar_id, bool ban) msg->nextBlock("Data"); msg->addUUID("TargetID", avatar_id); msg->addU32("Flags", flags); - msg->sendReliable( avatarp->getRegion()->getHost()); + msg->sendReliable(avatarp->getRegion()->getHost()); } } static void send_estate_message( const char* request, - const LLUUID &target) + const LLUUID& target) { LLMessageSystem* msg = gMessageSystem; @@ -1449,21 +1493,21 @@ static void send_estate_message( msg->sendReliable(gAgent.getRegion()->getHost()); } -static void cmd_freeze(const LLUUID& avatar, const std::string &name) { send_freeze(avatar, true); } -static void cmd_unfreeze(const LLUUID& avatar, const std::string &name) { send_freeze(avatar, false); } -static void cmd_eject(const LLUUID& avatar, const std::string &name) { send_eject(avatar, false); } -static void cmd_ban(const LLUUID& avatar, const std::string &name) { send_eject(avatar, true); } -static void cmd_profile(const LLUUID& avatar, const std::string &name) { LLFloaterAvatarInfo::showFromDirectory(avatar); } -static void cmd_estate_eject(const LLUUID &avatar, const std::string &name){ send_estate_message("teleporthomeuser", avatar); } +static void cmd_freeze(const LLUUID& avatar, const std::string& name) { send_freeze(avatar, true); } +static void cmd_unfreeze(const LLUUID& avatar, const std::string& name) { send_freeze(avatar, false); } +static void cmd_eject(const LLUUID& avatar, const std::string& name) { send_eject(avatar, false); } +static void cmd_ban(const LLUUID& avatar, const std::string& name) { send_eject(avatar, true); } +static void cmd_profile(const LLUUID& avatar, const std::string& name) { LLFloaterAvatarInfo::showFromDirectory(avatar); } +static void cmd_estate_eject(const LLUUID& avatar, const std::string& name){ send_estate_message("teleporthomeuser", avatar); } -void LLFloaterAvatarList::doCommand(void (*func)(const LLUUID &avatar, const std::string &name)) +void LLFloaterAvatarList::doCommand(void (*func)(const LLUUID& avatar, const std::string& name)) { LLDynamicArray ids = mAvatarList->getSelectedIDs(); for (LLDynamicArray::iterator itr = ids.begin(); itr != ids.end(); ++itr) { LLUUID avid = *itr; - LLAvatarListEntry *entry = getAvatarEntry(avid); + LLAvatarListEntry* entry = getAvatarEntry(avid); if (entry != NULL) { llinfos << "Executing command on " << entry->getName() << llendl; @@ -1480,7 +1524,7 @@ std::string LLFloaterAvatarList::getSelectedNames(const std::string& separator) for (LLDynamicArray::iterator itr = ids.begin(); itr != ids.end(); ++itr) { LLUUID avid = *itr; - LLAvatarListEntry *entry = getAvatarEntry(avid); + LLAvatarListEntry* entry = getAvatarEntry(avid); if (entry != NULL) { if (!ret.empty()) ret += separator; @@ -1494,7 +1538,7 @@ std::string LLFloaterAvatarList::getSelectedNames(const std::string& separator) std::string LLFloaterAvatarList::getSelectedName() { LLUUID id = getSelectedID(); - LLAvatarListEntry *entry = getAvatarEntry(id); + LLAvatarListEntry* entry = getAvatarEntry(id); if (entry) { return entry->getName(); @@ -1504,7 +1548,7 @@ std::string LLFloaterAvatarList::getSelectedName() LLUUID LLFloaterAvatarList::getSelectedID() { - LLScrollListItem *item = mAvatarList->getFirstSelected(); + LLScrollListItem* item = mAvatarList->getFirstSelected(); if (item) return item->getUUID(); return LLUUID::null; } @@ -1516,11 +1560,11 @@ void LLFloaterAvatarList::callbackFreeze(const LLSD& notification, const LLSD& r if (option == 0) { - getInstance()->doCommand( cmd_freeze ); + getInstance()->doCommand(cmd_freeze); } else if (option == 1) { - getInstance()->doCommand( cmd_unfreeze ); + getInstance()->doCommand(cmd_unfreeze); } } @@ -1531,11 +1575,11 @@ void LLFloaterAvatarList::callbackEject(const LLSD& notification, const LLSD& re if (option == 0) { - getInstance()->doCommand( cmd_eject ); + getInstance()->doCommand(cmd_eject); } else if (option == 1) { - getInstance()->doCommand( cmd_ban ); + getInstance()->doCommand(cmd_ban); } } @@ -1546,16 +1590,16 @@ void LLFloaterAvatarList::callbackEjectFromEstate(const LLSD& notification, cons if (option == 0) { - getInstance()->doCommand( cmd_estate_eject ); + getInstance()->doCommand(cmd_estate_eject); } } //static -void LLFloaterAvatarList::callbackIdle(void *userdata) +void LLFloaterAvatarList::callbackIdle(void* userdata) { if (instanceExists()) { - // Do not update at every frame: this would be insane ! + // Do not update at every frame: this would be insane! if (gFrameCount % getInstance()->mUpdateRate == 0) { getInstance()->updateAvatarList(); @@ -1563,7 +1607,7 @@ void LLFloaterAvatarList::callbackIdle(void *userdata) } } -void LLFloaterAvatarList::onClickFreeze(void *userdata) +void LLFloaterAvatarList::onClickFreeze(void* userdata) { LLSD args; LLSD payload; @@ -1572,7 +1616,7 @@ void LLFloaterAvatarList::onClickFreeze(void *userdata) } //static -void LLFloaterAvatarList::onClickEject(void *userdata) +void LLFloaterAvatarList::onClickEject(void* userdata) { LLSD args; LLSD payload; @@ -1581,9 +1625,9 @@ void LLFloaterAvatarList::onClickEject(void *userdata) } //static -void LLFloaterAvatarList::onClickMute(void *userdata) +void LLFloaterAvatarList::onClickMute(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; LLDynamicArray ids = self->mAvatarList->getSelectedIDs(); if (ids.size() > 0) @@ -1611,7 +1655,7 @@ void LLFloaterAvatarList::onClickMute(void *userdata) } //static -void LLFloaterAvatarList::onClickEjectFromEstate(void *userdata) +void LLFloaterAvatarList::onClickEjectFromEstate(void* userdata) { LLSD args; LLSD payload; @@ -1620,14 +1664,14 @@ void LLFloaterAvatarList::onClickEjectFromEstate(void *userdata) } //static -void LLFloaterAvatarList::onClickAR(void *userdata) +void LLFloaterAvatarList::onClickAR(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; - LLScrollListItem *item = self->mAvatarList->getFirstSelected(); + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; + LLScrollListItem* item = self->mAvatarList->getFirstSelected(); if (item) { LLUUID agent_id = item->getUUID(); - LLAvatarListEntry *entry = self->getAvatarEntry(agent_id); + LLAvatarListEntry* entry = self->getAvatarEntry(agent_id); if (entry) { LLFloaterReporter::showFromObject(entry->getID()); @@ -1638,19 +1682,19 @@ void LLFloaterAvatarList::onClickAR(void *userdata) // static void LLFloaterAvatarList::onClickProfile(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; self->doCommand(cmd_profile); } //static void LLFloaterAvatarList::onClickTeleport(void* userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; - LLScrollListItem *item = self->mAvatarList->getFirstSelected(); + LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; + LLScrollListItem* item = self->mAvatarList->getFirstSelected(); if (item) { LLUUID agent_id = item->getUUID(); - LLAvatarListEntry *entry = self->getAvatarEntry(agent_id); + LLAvatarListEntry* entry = self->getAvatarEntry(agent_id); if (entry) { // llinfos << "Trying to teleport to " << entry->getName() << " at " << entry->getPosition() << llendl; @@ -1663,11 +1707,11 @@ void LLFloaterAvatarList::onSelectName(LLUICtrl*, void* userdata) { LLFloaterAvatarList* self = (LLFloaterAvatarList*)userdata; - LLScrollListItem *item = self->mAvatarList->getFirstSelected(); + LLScrollListItem* item = self->mAvatarList->getFirstSelected(); if (item) { LLUUID agent_id = item->getUUID(); - LLAvatarListEntry *entry = self->getAvatarEntry(agent_id); + LLAvatarListEntry* entry = self->getAvatarEntry(agent_id); if (entry) { BOOL enabled = entry->isDrawn(); diff --git a/indra/newview/llfloateravatarlist.h b/indra/newview/llfloateravatarlist.h index 44bc3df84..6051a8b88 100644 --- a/indra/newview/llfloateravatarlist.h +++ b/indra/newview/llfloateravatarlist.h @@ -171,6 +171,8 @@ private: public: ~LLFloaterAvatarList(); + virtual BOOL handleKeyHere(KEY key, MASK mask); + /*virtual*/ void onClose(bool app_quitting); /*virtual*/ void onOpen(); /*virtual*/ BOOL postBuild(); diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 9f9e2d308..20f60e920 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -80,6 +80,7 @@ #include "llviewercontrol.h" #include "roles_constants.h" #include "llworld.h" +#include "lltrans.h" #include "hippogridmanager.h" @@ -1498,7 +1499,7 @@ void LLPanelLandObjects::onClickRefresh(void* userdata) // ready the list for results self->mOwnerList->deleteAllItems(); - self->mOwnerList->addCommentText(std::string("Searching...")); // *TODO: Translate + self->mOwnerList->addCommentText(LLTrans::getString("Searching")); self->mOwnerList->setEnabled(FALSE); self->mFirstReply = TRUE; @@ -1612,7 +1613,7 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo // check for no results if (0 == self->mOwnerList->getItemCount()) { - self->mOwnerList->addCommentText(std::string("None found.")); // *TODO: Translate + self->mOwnerList->addCommentText(LLTrans::getString("None_found")); } else { @@ -2446,7 +2447,6 @@ void LLPanelLandAccess::refresh() childSetToolTipArg("AccessList", "[LISTED]", llformat("%d",count)); childSetToolTipArg("AccessList", "[MAX]", llformat("%d",PARCEL_MAX_ACCESS_LIST)); - // *TODO: Translate for (access_map_const_iterator cit = parcel->mAccessList.begin(); cit != parcel->mAccessList.end(); ++cit) { @@ -2460,19 +2460,23 @@ void LLPanelLandAccess::refresh() suffix.assign(" ("); if (seconds >= 120) { - std::string buf = llformat("%d minutes", (seconds/60)); + std::string buf = llformat("%d ", (seconds/60)) + getString("minutes"); suffix.append(buf); } else if (seconds >= 60) { - suffix.append("1 minute"); + suffix.append(getString("1_minute")); + } + else if (seconds == 1) + { + suffix.append(getString("1_second")); } else { - std::string buf = llformat("%d seconds", seconds); + std::string buf = llformat("%d ", seconds) + getString("seconds"); suffix.append(buf); } - suffix.append(" remaining)"); + suffix.append(" " + getString("remaining") + ")"); } if (mListAccess) mListAccess->addNameItem(entry.mID, ADD_SORTED, TRUE, suffix); @@ -2499,19 +2503,23 @@ void LLPanelLandAccess::refresh() suffix.assign(" ("); if (seconds >= 120) { - std::string buf = llformat("%d minutes", (seconds/60)); + std::string buf = llformat("%d ", (seconds/60)) + getString("minutes"); suffix.append(buf); } else if (seconds >= 60) { - suffix.append("1 minute"); + suffix.append(getString("1_minute")); + } + else if (seconds == 1) + { + suffix.append(getString("1_second")); } else { - std::string buf = llformat("%d seconds", seconds); + std::string buf = llformat("%d ", seconds) + getString("seconds"); suffix.append(buf); } - suffix.append(" remaining)"); + suffix.append(" " + getString("remaining") + ")"); } mListBanned->addNameItem(entry.mID, ADD_SORTED, TRUE, suffix); } diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index f7ba56bf8..1fc54068c 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -959,11 +959,16 @@ void LLFolderView::draw() static LLCachedControl sSearchStatusColor(gColors, "InventorySearchStatusColor", LLColor4::white ); if (LLInventoryModelBackgroundFetch::instance().folderFetchActive() || mCompletedFilterGeneration < mFilter->getMinRequiredGeneration()) { - mStatusText = std::string("Searching..."); // *TODO:translate + mStatusText = LLTrans::getString("Searching"); } else { - mStatusText = std::string("No matching items found in inventory."); // *TODO:translate + // if(getFilter()) + // { + // LLStringUtil::format_map_t args; + // args["[SEARCH_TERM]"] = LLURI::escape(getFilter()->getFilterSubStringOrig()); + mStatusText = LLTrans::getString("InventoryNoMatchingItems"); //, args); + // } } mStatusTextBox->setWrappedText(mStatusText); mStatusTextBox->setVisible( TRUE ); diff --git a/indra/newview/llgroupnotify.cpp b/indra/newview/llgroupnotify.cpp index 24ff0408e..46f368300 100644 --- a/indra/newview/llgroupnotify.cpp +++ b/indra/newview/llgroupnotify.cpp @@ -48,6 +48,7 @@ #include "llfloatergroupinfo.h" #include "llinventoryicon.h" #include "llinventory.h" +#include "lltrans.h" #include "llglheaders.h" #include "llagent.h" @@ -143,14 +144,14 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject, }; // Title - addChild(new NoticeText(std::string("title"),LLRect(x,y,RIGHT - HPAD,y - LINE_HEIGHT),std::string("Group Notice"),LLFontGL::getFontSansSerifHuge())); + addChild(new NoticeText(std::string("title"),LLRect(x,y,RIGHT - HPAD,y - LINE_HEIGHT),LLTrans::getString("GroupNotifyGroupNotice"),LLFontGL::getFontSansSerifHuge())); y -= llfloor(1.5f*LINE_HEIGHT); x += HPAD + HPAD + ICON_WIDTH; std::stringstream from; - from << "Sent by " << from_name << ", " << group_name; + from << LLTrans::getString("GroupNotifySentBy") << " " + from_name << LLTrans::getString(",") + " " << group_name; addChild(new NoticeText(std::string("group"),LLRect(x,y,RIGHT - HPAD,y - LINE_HEIGHT),from.str(),LLFontGL::getFontSansSerif())); @@ -216,7 +217,7 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject, if (mHasInventory) { - addChild(new NoticeText(std::string("subjecttitle"),LLRect(x,y,x + LABEL_WIDTH,y - LINE_HEIGHT),std::string("Attached: "),LLFontGL::getFontSansSerif())); + addChild(new NoticeText(std::string("subjecttitle"),LLRect(x,y,x + LABEL_WIDTH,y - LINE_HEIGHT),LLTrans::getString("GroupNotifyAttached"),LLFontGL::getFontSansSerif())); LLUIImagePtr item_icon = LLInventoryIcon::getIcon(mInventoryOffer->mType, LLInventoryType::IT_TEXTURE, @@ -244,7 +245,7 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject, } LLButton* btn; - btn = new LLButton(std::string("next"), + btn = new LLButton(LLTrans::getString("next"), LLRect(getRect().getWidth()-26, BOTTOM_PAD + 20, getRect().getWidth()-2, BOTTOM_PAD), std::string("notify_next.png"), std::string("notify_next.png"), @@ -252,7 +253,7 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject, onClickNext, this, LLFontGL::getFontSansSerif()); - btn->setToolTip(std::string("Next")); // *TODO: Translate + btn->setToolTip(LLTrans::getString("next")); btn->setScaleImage(TRUE); addChild(btn); mNextBtn = btn; @@ -267,7 +268,7 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject, btn_width, BTN_HEIGHT); - btn = new LLButton(std::string("OK"), btn_rect, LLStringUtil::null, onClickOk, this); + btn = new LLButton(LLTrans::getString("ok"), btn_rect, LLStringUtil::null, onClickOk, this); addChild(btn, -1); setDefaultBtn(btn); @@ -279,8 +280,8 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject, wide_btn_width, BTN_HEIGHT); - btn = new LLButton(std::string("Group Notices"), btn_rect, LLStringUtil::null, onClickGroupInfo, this); - btn->setToolTip(std::string("View past notices or opt-out of receiving these messages here.")); // TODO: Translate + btn = new LLButton(LLTrans::getString("GroupNotifyGroupNotices"), btn_rect, LLStringUtil::null, onClickGroupInfo, this); + btn->setToolTip(LLTrans::getString("GroupNotifyViewPastNotices")); addChild(btn, -1); if (mHasInventory) @@ -295,11 +296,11 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject, std::string btn_lbl(""); if(is_openable(mInventoryOffer->mType)) { - btn_lbl = "Open Attachment"; + btn_lbl = LLTrans::getString("GroupNotifyOpenAttachment"); } else { - btn_lbl = "Save Attachment"; + btn_lbl = LLTrans::getString("GroupNotifySaveAttachment"); } mSaveInventoryBtn = new LLButton(btn_lbl, btn_rect, LLStringUtil::null, onClickSaveInventory, this); mSaveInventoryBtn->setVisible(mHasInventory); diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 42a4f5c46..429b68ac0 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -665,133 +665,156 @@ const std::string& LLInventoryFilter::getFilterText() if (isFilterObjectTypesWith(LLInventoryType::IT_ANIMATION)) { - filtered_types += " Animations,"; + //filtered_types += " Animations,"; + filtered_types += LLTrans::getString("Animations"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Animations,"; + //not_filtered_types += " Animations,"; + not_filtered_types += LLTrans::getString("Animations"); + filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_CALLINGCARD)) { - filtered_types += " Calling Cards,"; + //filtered_types += " Calling Cards,"; + filtered_types += LLTrans::getString("Calling Cards"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Calling Cards,"; + //not_filtered_types += " Calling Cards,"; + not_filtered_types += LLTrans::getString("Calling Cards"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_WEARABLE)) { - filtered_types += " Clothing,"; + //filtered_types += " Clothing,"; + filtered_types += LLTrans::getString("Clothing"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Clothing,"; + //not_filtered_types += " Clothing,"; + not_filtered_types += LLTrans::getString("Clothing"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_GESTURE)) { - filtered_types += " Gestures,"; + //filtered_types += " Gestures,"; + filtered_types += LLTrans::getString("Gestures"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Gestures,"; + //not_filtered_types += " Gestures,"; + not_filtered_types += LLTrans::getString("Gestures"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_LANDMARK)) { - filtered_types += " Landmarks,"; + //filtered_types += " Landmarks,"; + filtered_types += LLTrans::getString("Landmarks"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Landmarks,"; + //not_filtered_types += " Landmarks,"; + not_filtered_types += LLTrans::getString("Landmarks"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_NOTECARD)) { - filtered_types += " Notecards,"; + //filtered_types += " Notecards,"; + filtered_types += LLTrans::getString("Notecards"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Notecards,"; + //not_filtered_types += " Notecards,"; + not_filtered_types += LLTrans::getString("Notecards"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_OBJECT) && isFilterObjectTypesWith(LLInventoryType::IT_ATTACHMENT)) { - filtered_types += " Objects,"; + //filtered_types += " Objects,"; + filtered_types += LLTrans::getString("Objects"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Objects,"; + //not_filtered_types += " Objects,"; + not_filtered_types += LLTrans::getString("Objects"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_LSL)) { - filtered_types += " Scripts,"; + //filtered_types += " Scripts,"; + filtered_types += LLTrans::getString("Scripts"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Scripts,"; + //not_filtered_types += " Scripts,"; + not_filtered_types += LLTrans::getString("Scripts"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_SOUND)) { - filtered_types += " Sounds,"; + //filtered_types += " Sounds,"; + filtered_types += LLTrans::getString("Sounds"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Sounds,"; + //not_filtered_types += " Sounds,"; + not_filtered_types += LLTrans::getString("Sounds"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_TEXTURE)) { - filtered_types += " Textures,"; + //filtered_types += " Textures,"; + filtered_types += LLTrans::getString("Textures"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Textures,"; + //not_filtered_types += " Textures,"; + not_filtered_types += LLTrans::getString("Textures"); filtered_by_all_types = FALSE; } if (isFilterObjectTypesWith(LLInventoryType::IT_SNAPSHOT)) { - filtered_types += " Snapshots,"; + //filtered_types += " Snapshots,"; + filtered_types += LLTrans::getString("Snapshots"); filtered_by_type = TRUE; num_filter_types++; } else { - not_filtered_types += " Snapshots,"; + //not_filtered_types += " Snapshots,"; + not_filtered_types += LLTrans::getString("Snapshots"); filtered_by_all_types = FALSE; } @@ -806,7 +829,8 @@ const std::string& LLInventoryFilter::getFilterText() } else { - mFilterText += "No "; + //mFilterText += "No "; + mFilterText += LLTrans::getString("No Filters"); mFilterText += not_filtered_types; } // remove the ',' at the end @@ -815,12 +839,14 @@ const std::string& LLInventoryFilter::getFilterText() if (isSinceLogoff()) { - mFilterText += " - Since Logoff"; + //mFilterText += " - Since Logoff"; + mFilterText += LLTrans::getString("Since Logoff"); } if (getFilterWorn()) { - mFilterText += " - Worn"; + //mFilterText += " - Worn"; + mFilterText += LLTrans::getString("Worn"); } return mFilterText; diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp index 2940b764f..cd0118ee9 100644 --- a/indra/newview/llmaniprotate.cpp +++ b/indra/newview/llmaniprotate.cpp @@ -65,6 +65,7 @@ #include "pipeline.h" #include "lldrawable.h" #include "llglheaders.h" +#include "lltrans.h" const F32 RADIUS_PIXELS = 100.f; // size in screen space const F32 SQ_RADIUS = RADIUS_PIXELS * RADIUS_PIXELS; @@ -152,6 +153,7 @@ void LLManipRotate::render() gGL.pushMatrix(); { + // are we in the middle of a constrained drag? if (mManipPart >= LL_ROT_X && mManipPart <= LL_ROT_Z) { @@ -292,6 +294,7 @@ void LLManipRotate::render() // First pass: centers. Second pass: sides. for( S32 i=0; i<2; i++ ) { + gGL.pushMatrix(); { if (mHighlightedPart == LL_ROT_Z) @@ -350,6 +353,7 @@ void LLManipRotate::render() { mManipulatorScales = lerp(mManipulatorScales, LLVector4(1.f, 1.f, 1.f, SELECTED_MANIPULATOR_SCALE), LLCriticalDamp::getInterpolant(MANIPULATOR_SCALE_HALF_LIFE)); } + } } @@ -363,6 +367,7 @@ void LLManipRotate::render() gGL.popMatrix(); gGL.popMatrix(); + LLVector3 euler_angles; LLQuaternion object_rot = first_object->getRotationEdit(); object_rot.getEulerAngles(&(euler_angles.mV[VX]), &(euler_angles.mV[VY]), &(euler_angles.mV[VZ])); @@ -922,7 +927,6 @@ void LLManipRotate::renderSnapGuides() } gGL.end(); - // *TODO: Translate //RN: text rendering does own shadow pass, so only render once if (pass == 1 && render_text && i % 16 == 0) { @@ -930,32 +934,32 @@ void LLManipRotate::renderSnapGuides() { if (i == 0) { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Forward") : std::string("East"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Forward" : "Direction_East"), LLColor4::white); } else if (i == 16) { if (constraint_axis.mV[VZ] > 0.f) { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Left") : std::string("North"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Left" : "Direction_North"), LLColor4::white); } else { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Right") : std::string("South"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Right" : "Direction_South"), LLColor4::white); } } else if (i == 32) { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Back") : std::string("West"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Back" : "Direction_West"), LLColor4::white); } else { if (constraint_axis.mV[VZ] > 0.f) { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Right") : std::string("South"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Right" : "Direction_South"), LLColor4::white); } else { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Left") : std::string("North"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Left" : "Direction_North"), LLColor4::white); } } } @@ -963,32 +967,32 @@ void LLManipRotate::renderSnapGuides() { if (i == 0) { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Left") : std::string("North"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Left" : "Direction_North"), LLColor4::white); } else if (i == 16) { if (constraint_axis.mV[VX] > 0.f) { - renderTickText(text_point, std::string("Up"), LLColor4::white); + renderTickText(text_point, LLTrans::getString("Direction_Up"), LLColor4::white); } else { - renderTickText(text_point, std::string("Down"), LLColor4::white); + renderTickText(text_point, LLTrans::getString("Direction_Down"), LLColor4::white); } } else if (i == 32) { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Right") : std::string("South"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Right" : "Direction_South"), LLColor4::white); } else { if (constraint_axis.mV[VX] > 0.f) { - renderTickText(text_point, std::string("Down"), LLColor4::white); + renderTickText(text_point, LLTrans::getString("Direction_Down"), LLColor4::white); } else { - renderTickText(text_point, std::string("Up"), LLColor4::white); + renderTickText(text_point, LLTrans::getString("Direction_Up"), LLColor4::white); } } } @@ -996,32 +1000,32 @@ void LLManipRotate::renderSnapGuides() { if (i == 0) { - renderTickText(text_point, std::string("Up"), LLColor4::white); + renderTickText(text_point, LLTrans::getString("Direction_Up"), LLColor4::white); } else if (i == 16) { if (constraint_axis.mV[VY] > 0.f) { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Forward") : std::string("East"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Forward" : "Direction_East"), LLColor4::white); } else { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Back") : std::string("West"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Back" : "Direction_West"), LLColor4::white); } } else if (i == 32) { - renderTickText(text_point, std::string("Down"), LLColor4::white); + renderTickText(text_point, LLTrans::getString("Direction_Down"), LLColor4::white); } else { if (constraint_axis.mV[VY] > 0.f) { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Back") : std::string("West"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Back" : "Direction_West"), LLColor4::white); } else { - renderTickText(text_point, mObjectSelection->isAttachment() ? std::string("Forward") : std::string("East"), LLColor4::white); + renderTickText(text_point, LLTrans::getString(mObjectSelection->isAttachment() ? "Direction_Forward" : "Direction_East"), LLColor4::white); } } } diff --git a/indra/newview/llnotify.cpp b/indra/newview/llnotify.cpp index c942aee44..8b7f52afd 100644 --- a/indra/newview/llnotify.cpp +++ b/indra/newview/llnotify.cpp @@ -327,7 +327,7 @@ LLNotifyBox::LLNotifyBox(LLNotificationPtr notification, this, sFont); btn->setScaleImage(TRUE); - btn->setToolTip(std::string("Next")); // *TODO: Translate + btn->setToolTip(LLTrans::getString("next")); addChild(btn); mNextBtn = btn; diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 6d21cab60..14709805e 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -320,7 +320,7 @@ void LLPanelAvatarSecondLife::processProperties(void* data, EAvatarProcessorType // } if (0 == pAvatarGroups->group_list.size()) { - group_list->addCommentText(std::string("None")); // *TODO: Translate + group_list->addCommentText(getString("None")); } for(LLAvatarGroups::group_list_t::const_iterator it = pAvatarGroups->group_list.begin(); @@ -571,11 +571,6 @@ BOOL LLPanelAvatarSecondLife::postBuild(void) childSetVisible("online_yes",FALSE); - // These are cruft but may still exist in some xml files - // TODO: remove the following 2 lines once translators grab these changes - childSetVisible("online_unknown",FALSE); - childSetVisible("online_no",FALSE); - childSetAction("Find on Map", LLPanelAvatar::onClickTrack, getPanelAvatar()); childSetAction("Instant Message...", LLPanelAvatar::onClickIM, getPanelAvatar()); childSetAction("GroupInvite_Button", LLPanelAvatar::onClickGroupInvite, getPanelAvatar()); diff --git a/indra/newview/llpaneldirbrowser.cpp b/indra/newview/llpaneldirbrowser.cpp index a306d4730..4680780da 100644 --- a/indra/newview/llpaneldirbrowser.cpp +++ b/indra/newview/llpaneldirbrowser.cpp @@ -212,7 +212,7 @@ void LLPanelDirBrowser::updateResultCount() // add none found response if (list->getItemCount() == 0) { - list->addCommentText(std::string("None found.")); // *TODO: Translate + list->addCommentText(LLTrans::getString("NoneFound")); list->operateOnAll(LLCtrlListInterface::OP_DESELECT); } } @@ -1222,7 +1222,7 @@ void LLPanelDirBrowser::setupNewSearch() // ready the list for results list->operateOnAll(LLCtrlListInterface::OP_DELETE); - list->addCommentText(std::string("Searching...")); // *TODO: Translate + list->addCommentText(LLTrans::getString("Searching")); childDisable("results"); mResultsReceived = 0; diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index 31cb8bcc8..c78f3ce21 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -707,14 +707,13 @@ void LLTaskInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags) return; } - // *TODO: Translate if(gAgent.allowOperation(PERM_OWNER, item->getPermissions(), GP_OBJECT_MANIPULATE) && item->getSaleInfo().isForSale()) { items.push_back(std::string("Task Buy")); - std::string label("Buy"); + std::string label= LLTrans::getString("Buy"); // Check the price of the item. S32 price = getPrice(); if (-1 == price) @@ -1072,13 +1071,12 @@ void LLTaskSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags) std::vector items; std::vector disabled_items; - // *TODO: Translate if(item->getPermissions().getOwner() != gAgent.getID() && item->getSaleInfo().isForSale()) { items.push_back(std::string("Task Buy")); - std::string label("Buy"); + std::string label= LLTrans::getString("Buy"); // Check the price of the item. S32 price = getPrice(); if (-1 == price) @@ -1905,24 +1903,23 @@ void LLPanelObjectInventory::draw() if(mIsInventoryEmpty) { - // *TODO: Translate if((LLUUID::null != mTaskUUID) && (!mHaveInventory)) { - LLFontGL::getFontSansSerif()->renderUTF8(std::string("Loading contents..."), 0, - (S32)(getRect().getWidth() * 0.5f), - 10, - LLColor4( 1, 1, 1, 1 ), - LLFontGL::HCENTER, - LLFontGL::BOTTOM); + LLFontGL::getFontSansSerif()->renderUTF8(LLTrans::getString("LoadingContents"), 0, + (S32)(getRect().getWidth() * 0.5f), + 10, + LLColor4( 1, 1, 1, 1 ), + LLFontGL::HCENTER, + LLFontGL::BOTTOM); } else if(mHaveInventory) { - LLFontGL::getFontSansSerif()->renderUTF8(std::string("No contents"), 0, - (S32)(getRect().getWidth() * 0.5f), - 10, - LLColor4( 1, 1, 1, 1 ), - LLFontGL::HCENTER, - LLFontGL::BOTTOM); + LLFontGL::getFontSansSerif()->renderUTF8(LLTrans::getString("NoContents"), 0, + (S32)(getRect().getWidth() * 0.5f), + 10, + LLColor4( 1, 1, 1, 1 ), + LLFontGL::HCENTER, + LLFontGL::BOTTOM); } } } diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index c7850b9c9..baf963d68 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -1290,9 +1290,8 @@ LLPreviewLSL::LLPreviewLSL(const std::string& name, const LLRect& rect, void LLPreviewLSL::callbackLSLCompileSucceeded() { llinfos << "LSL Bytecode saved" << llendl; - // *TODO: Translate - mScriptEd->mErrorList->addCommentText(std::string("Compile successful!")); - mScriptEd->mErrorList->addCommentText(std::string("Save complete.")); + mScriptEd->mErrorList->addCommentText(LLTrans::getString("CompileSuccessful")); + mScriptEd->mErrorList->addCommentText(LLTrans::getString("SaveComplete")); closeIfNeeded(); } @@ -1890,9 +1889,8 @@ void LLLiveLSLEditor::callbackLSLCompileSucceeded(const LLUUID& task_id, bool is_script_running) { lldebugs << "LSL Bytecode saved" << llendl; - // *TODO: Translate - mScriptEd->mErrorList->addCommentText(std::string("Compile successful!")); - mScriptEd->mErrorList->addCommentText(std::string("Save complete.")); + mScriptEd->mErrorList->addCommentText(LLTrans::getString("CompileSuccessful")); + mScriptEd->mErrorList->addCommentText(LLTrans::getString("SaveComplete")); closeIfNeeded(); } @@ -2244,8 +2242,7 @@ void LLLiveLSLEditor::draw() { // HACK: Display this information in the title bar. // Really ought to put in main window. - // *TODO: Translate - setTitle(std::string("Script (object out of range)")); + setTitle(LLTrans::getString("ObjectOutOfRange")); runningCheckbox->setEnabled(FALSE); // object may have fallen out of range. mHaveRunningInfo = FALSE; @@ -2468,8 +2465,7 @@ void LLLiveLSLEditor::uploadAssetLegacy(const std::string& filename, else { llinfos << "Compile worked!" << llendl; - // *TODO: Translate - mScriptEd->mErrorList->addCommentText(std::string("Compile successful, saving...")); + mScriptEd->mErrorList->addCommentText(LLTrans::getString("CompileSuccessfulSaving")); if(gAssetStorage) { llinfos << "LLLiveLSLEditor::saveAsset " @@ -2543,8 +2539,7 @@ void LLLiveLSLEditor::onSaveBytecodeComplete(const LLUUID& asset_uuid, void* use if(self) { // Tell the user that the compile worked. - // *TODO: Translate - self->mScriptEd->mErrorList->addCommentText(std::string("Save complete.")); + self->mScriptEd->mErrorList->addCommentText(LLTrans::getString("SaveComplete")); // close the window if this completes both uploads self->getWindow()->decBusyCount(); self->mPendingUploads--; diff --git a/indra/newview/llscrollingpanelparam.cpp b/indra/newview/llscrollingpanelparam.cpp index 88127e68f..7afcf82c4 100644 --- a/indra/newview/llscrollingpanelparam.cpp +++ b/indra/newview/llscrollingpanelparam.cpp @@ -77,9 +77,8 @@ LLScrollingPanelParam::LLScrollingPanelParam( const std::string& name, mHintMin->setAllowsUpdates( FALSE ); mHintMax->setAllowsUpdates( FALSE ); - // *TODO::translate - std::string min_name = param->getMinDisplayName(); - std::string max_name = param->getMaxDisplayName(); + std::string min_name = LLTrans::getString(param->getMinDisplayName()); + std::string max_name = LLTrans::getString(param->getMaxDisplayName()); childSetValue("min param text", min_name); childSetValue("max param text", max_name); mLess = getChild("less"); diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index e39f3b7df..990a7228a 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -1099,7 +1099,7 @@ LLTextureCtrl::LLTextureCtrl( LLRect( 0, image_middle + line_height / 2, getRect().getWidth(), image_middle - line_height / 2 ), - std::string("Multiple"), + LLTrans::getString("multiple_textures"), LLFontGL::getFontSansSerifSmall() ); mTentativeLabel->setHAlign( LLFontGL::HCENTER ); mTentativeLabel->setFollowsAll(); diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 7d9f0a136..f2a9a7138 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -40,7 +40,6 @@ #include "llagent.h" #include "llagentcamera.h" -#include "llviewercontrol.h" #include "llfocusmgr.h" #include "llfirstuse.h" #include "llfloateravatarinfo.h" @@ -56,8 +55,10 @@ #include "lltoolgrab.h" #include "lltoolmgr.h" #include "lltoolselect.h" +#include "lltrans.h" #include "llviewercamera.h" #include "llviewerparcelmedia.h" +#include "llviewercontrol.h" #include "llviewermenu.h" #include "llviewerobjectlist.h" #include "llviewerobject.h" @@ -65,8 +66,8 @@ #include "llviewerwindow.h" #include "llwindow.h" #include "llviewermedia.h" -#include "llviewermediafocus.h" #include "llvoavatarself.h" +#include "llviewermediafocus.h" #include "llworld.h" #include "llui.h" #include "llweb.h" @@ -401,12 +402,12 @@ BOOL LLToolPie::pickAndShowMenu(BOOL always_show) std::string name = avatar->getFullname(); if (LLMuteList::getInstance()->isMuted(avatar->getID(), name)) { - gMenuHolder->childSetText("Avatar Mute", std::string("Unmute")); // *TODO:Translate + gMenuHolder->childSetText("Avatar Mute", LLTrans::getString("UnmuteAvatar")); //gMutePieMenu->setLabel("Unmute"); } else { - gMenuHolder->childSetText("Avatar Mute", std::string("Mute")); // *TODO:Translate + gMenuHolder->childSetText("Avatar Mute", LLTrans::getString("MuteAvatar")); //gMutePieMenu->setLabel("Mute"); } @@ -451,12 +452,12 @@ BOOL LLToolPie::pickAndShowMenu(BOOL always_show) } if (LLMuteList::getInstance()->isMuted(object->getID(), name)) { - gMenuHolder->childSetText("Object Mute", std::string("Unmute")); // *TODO:Translate + gMenuHolder->childSetText("Object Mute", LLTrans::getString("UnmuteObject")); //gMuteObjectPieMenu->setLabel("Unmute"); } else { - gMenuHolder->childSetText("Object Mute", std::string("Mute")); // *TODO:Translate + gMenuHolder->childSetText("Object Mute", LLTrans::getString("MuteObject2")); //gMuteObjectPieMenu->setLabel("Mute"); } diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 8b8c8b703..64f0b24ba 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -440,7 +440,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo case LLAgent::TELEPORT_START_ARRIVAL: // Transition to ARRIVING. Viewer has received avatar update, etc., from destination simulator gTeleportArrivalTimer.reset(); - gViewerWindow->setProgressCancelButtonVisible(FALSE, std::string("Cancel")); //TODO: Translate + gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel")); gViewerWindow->setProgressPercent(75.f); gAgent.setTeleportState( LLAgent::TELEPORT_ARRIVING ); gAgent.setTeleportMessage( @@ -459,7 +459,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo LLFirstUse::useTeleport(); gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); } - gViewerWindow->setProgressCancelButtonVisible(FALSE, std::string("Cancel")); //TODO: Translate + gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel")); gViewerWindow->setProgressPercent( arrival_fraction * 25.f + 75.f); gViewerWindow->setProgressString(message); } diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 63a9e002a..bb1ad75a4 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -46,6 +46,7 @@ #include "llsdserialize.h" #include "llsdutil.h" #include "llstring.h" +#include "lltrans.h" #include "lltransactiontypes.h" #include "lluictrlfactory.h" #include "lluuid.h" @@ -94,6 +95,7 @@ #include "lllocalinventory.h" // +#include "hippogridmanager.h" #include "importtracker.h" using namespace LLOldEvents; @@ -855,8 +857,7 @@ void upload_new_resource(const std::string& src_filename, std::string name, else { // Unknown extension - // *TODO: Translate? - error_message = llformat("Unknown file extension .%s\nExpected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh", exten.c_str()); + error_message = llformat(LLTrans::getString("UnknownFileExtension").c_str(), exten.c_str()); error = TRUE;; } @@ -1021,10 +1022,11 @@ void upload_done_callback(const LLUUID& uuid, void* user_data, S32 result, LLExt if(!(can_afford_transaction(expected_upload_cost))) { - LLFloaterBuyCurrency::buyCurrency( - llformat("Uploading %s costs", - data->mAssetInfo.getName().c_str()), // *TODO: Translate - expected_upload_cost); + LLStringUtil::format_map_t args; + args["[NAME]"] = data->mAssetInfo.getName(); + args["[CURRENCY]"] = gHippoGridManager->getConnectedGrid()->getCurrencySymbol(); + args["[AMOUNT]"] = llformat("%d", expected_upload_cost); + LLFloaterBuyCurrency::buyCurrency( LLTrans::getString("UploadingCosts", args), expected_upload_cost ); is_balance_sufficient = FALSE; } else if(region) diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 3b61f7af5..bd5932ad4 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1410,7 +1410,6 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& itemp = (LLViewerInventoryItem*)gInventory.getItem(mObjectID); } - // *TODO:translate std::string from_string; // Used in the pop-up. std::string chatHistory_string; // Used in chat history. if (mFromObject == TRUE) @@ -1420,13 +1419,18 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& std::string group_name; if (gCacheName->getGroupName(mFromID, group_name)) { - from_string = std::string("An object named '") + mFromName + "' owned by the group '" + group_name + "'"; - chatHistory_string = mFromName + " owned by the group '" + group_name + "'"; + from_string = LLTrans::getString("InvOfferAnObjectNamed") + " " + LLTrans::getString("'") + + mFromName + LLTrans::getString("'") + " " + LLTrans::getString("InvOfferOwnedByGroup") + + " " + LLTrans::getString("'") + group_name + LLTrans::getString("'"); + + chatHistory_string = mFromName + " " + LLTrans::getString("InvOfferOwnedByGroup") + + " " + group_name + + LLTrans::getString("'") + LLTrans::getString("."); } else { - from_string = std::string("An object named '") + mFromName + "' owned by an unknown group"; - chatHistory_string = mFromName + " owned by an unknown group"; + from_string = LLTrans::getString("InvOfferAnObjectNamed") + " " + LLTrans::getString("'") + + mFromName + LLTrans::getString("'") + " " + LLTrans::getString("InvOfferOwnedByUnknownGroup"); + chatHistory_string = mFromName + " " + LLTrans::getString("InvOfferOwnedByUnknownGroup" + LLTrans::getString(".")); } } else @@ -1439,16 +1443,19 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& { full_name = RlvStrings::getAnonym(full_name); } - from_string = std::string("An object named '") + mFromName + "' owned by " + full_name; - chatHistory_string = mFromName + " owned by " + full_name; + from_string = LLTrans::getString("InvOfferAnObjectNamed") + " " + LLTrans::getString("'") + mFromName + + LLTrans::getString("'") +" " + LLTrans::getString("InvOfferOwnedBy") + full_name; + chatHistory_string = mFromName + " " + LLTrans::getString("InvOfferOwnedBy") + " " + full_name + LLTrans::getString("."); // [/RLVa:KB] //from_string = std::string("An object named '") + mFromName + "' owned by " + first_name + " " + last_name; //chatHistory_string = mFromName + " owned by " + first_name + " " + last_name; } else { - from_string = std::string("An object named '") + mFromName + "' owned by an unknown user"; - chatHistory_string = mFromName + " owned by an unknown user"; + + from_string = LLTrans::getString("InvOfferAnObjectNamed") + " " + LLTrans::getString("'") + + mFromName + LLTrans::getString("'") + " " + LLTrans::getString("InvOfferOwnedByUnknownUser"); + chatHistory_string = mFromName + " " + LLTrans::getString("InvOfferOwnedByUnknownUser") + LLTrans::getString("."); } } } @@ -1504,7 +1511,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& //don't spam them if they are getting flooded if (check_offer_throttle(mFromName, true)) { - log_message = chatHistory_string + " gave you " + mDesc + "."; + log_message = chatHistory_string + " " + LLTrans::getString("InvOfferGaveYou") + " " + mDesc + LLTrans::getString("."); chat.mText = log_message; LLFloaterChat::addChatHistory(chat); } @@ -1590,7 +1597,10 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& } // [/RLVa:KB] - log_message = "You decline " + mDesc + " from " + mFromName + "."; + LLStringUtil::format_map_t log_message_args; + log_message_args["[DESC]"] = mDesc; + log_message_args["[NAME]"] = mFromName; + log_message = LLTrans::getString("InvOfferDecline", log_message_args); chat.mText = log_message; if( LLMuteList::getInstance()->isMuted(mFromID ) && ! LLMuteList::getInstance()->isLinden(mFromName) ) // muting for SL-42269 { @@ -2035,7 +2045,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) computed_session_id, from_id, name, - llformat("%s has begun an IM session with you.",name.c_str()), + llformat("%s ",name.c_str()) + LLTrans::getString("IM_announce_incoming"), name, IM_NOTHING_SPECIAL, parent_estate_id, @@ -2099,7 +2109,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) computed_session_id, from_id, SYSTEM_FROM, - llformat("Autoresponse sent to %s.",name.c_str()), + LLTrans::getString("IM_autoresponded_to") + llformat(" %s.",name.c_str()), LLStringUtil::null, IM_NOTHING_SPECIAL, parent_estate_id, @@ -2217,7 +2227,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) computed_session_id, from_id, SYSTEM_FROM, - llformat("Sent %s auto-response item \"%s\"",name.c_str(),item->getName().c_str()), + llformat("%s %s \"%s\"",name.c_str(), LLTrans::getString("IM_autoresponse_sent_item").c_str(), item->getName().c_str()), LLStringUtil::null, IM_NOTHING_SPECIAL, parent_estate_id, @@ -2368,7 +2378,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) std::string saved; if(offline == IM_OFFLINE) { - saved = llformat("(Saved %s) ", formatted_time(timestamp).c_str()); + LLStringUtil::format_map_t args; + args["[LONG_TIMESTAMP]"] = formatted_time(timestamp); + saved = LLTrans::getString("Saved_message", args); } buffer = separator_string + saved + message.substr(message_offset); @@ -3902,7 +3914,7 @@ void process_teleport_start(LLMessageSystem *msg, void**) } else { - gViewerWindow->setProgressCancelButtonVisible(TRUE, std::string("Cancel")); // *TODO: Translate + gViewerWindow->setProgressCancelButtonVisible(TRUE, LLTrans::getString("Cancel")); } // Freeze the UI and show progress bar @@ -3941,7 +3953,7 @@ void process_teleport_progress(LLMessageSystem* msg, void**) } else { - gViewerWindow->setProgressCancelButtonVisible(TRUE, std::string("Cancel")); //TODO: Translate + gViewerWindow->setProgressCancelButtonVisible(TRUE, LLTrans::getString("Cancel")); } std::string buffer; msg->getString("Info", "Message", buffer); @@ -6405,7 +6417,7 @@ void container_inventory_arrived(LLViewerObject* object, LLUUID cat_id; cat_id = gInventory.createNewCategory(gInventory.getRootFolderID(), LLFolderType::FT_NONE, - std::string("Acquired Items")); //TODO: Translate + LLTrans::getString("AcquiredItems")); LLInventoryObject::object_list_t::const_iterator it = inventory->begin(); LLInventoryObject::object_list_t::const_iterator end = inventory->end(); diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index fdfc565e3..bfa6dc60d 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -256,24 +256,23 @@ BOOL LLVOAvatarSelf::buildMenus() //------------------------------------------------------------------------- if(gNoRender) return TRUE; - // *TODO: Translate gAttachBodyPartPieMenus[0] = NULL; - gAttachBodyPartPieMenus[1] = new LLPieMenu(std::string("Right Arm >")); - gAttachBodyPartPieMenus[2] = new LLPieMenu(std::string("Head >")); - gAttachBodyPartPieMenus[3] = new LLPieMenu(std::string("Left Arm >")); + gAttachBodyPartPieMenus[1] = new LLPieMenu(LLTrans::getString("BodyPartsRightArm") + " >"); + gAttachBodyPartPieMenus[2] = new LLPieMenu(LLTrans::getString("BodyPartsHead") + " >"); + gAttachBodyPartPieMenus[3] = new LLPieMenu(LLTrans::getString("BodyPartsLeftArm") + " >"); gAttachBodyPartPieMenus[4] = NULL; - gAttachBodyPartPieMenus[5] = new LLPieMenu(std::string("Left Leg >")); - gAttachBodyPartPieMenus[6] = new LLPieMenu(std::string("Torso >")); - gAttachBodyPartPieMenus[7] = new LLPieMenu(std::string("Right Leg >")); + gAttachBodyPartPieMenus[5] = new LLPieMenu(LLTrans::getString("BodyPartsLeftLeg") + " >"); + gAttachBodyPartPieMenus[6] = new LLPieMenu(LLTrans::getString("BodyPartsTorso") + " >"); + gAttachBodyPartPieMenus[7] = new LLPieMenu(LLTrans::getString("BodyPartsRightLeg") + " >"); gDetachBodyPartPieMenus[0] = NULL; - gDetachBodyPartPieMenus[1] = new LLPieMenu(std::string("Right Arm >")); - gDetachBodyPartPieMenus[2] = new LLPieMenu(std::string("Head >")); - gDetachBodyPartPieMenus[3] = new LLPieMenu(std::string("Left Arm >")); + gDetachBodyPartPieMenus[1] = new LLPieMenu(LLTrans::getString("BodyPartsRightArm") + " >"); + gDetachBodyPartPieMenus[2] = new LLPieMenu(LLTrans::getString("BodyPartsHead") + " >"); + gDetachBodyPartPieMenus[3] = new LLPieMenu(LLTrans::getString("BodyPartsLeftArm") + " >"); gDetachBodyPartPieMenus[4] = NULL; - gDetachBodyPartPieMenus[5] = new LLPieMenu(std::string("Left Leg >")); - gDetachBodyPartPieMenus[6] = new LLPieMenu(std::string("Torso >")); - gDetachBodyPartPieMenus[7] = new LLPieMenu(std::string("Right Leg >")); + gDetachBodyPartPieMenus[5] = new LLPieMenu(LLTrans::getString("BodyPartsLeftLeg") + " >"); + gDetachBodyPartPieMenus[6] = new LLPieMenu(LLTrans::getString("BodyPartsTorso") + " >"); + gDetachBodyPartPieMenus[7] = new LLPieMenu(LLTrans::getString("BodyPartsRightLeg") + " >"); for (S32 i = 0; i < 8; i++) { @@ -2744,4 +2743,4 @@ void LLVOAvatarSelf::setInvisible(bool invisible) requestLayerSetUploads(); gAgent.sendAgentSetAppearance(); } -} \ No newline at end of file +} diff --git a/indra/newview/skins/dark/colors.xml b/indra/newview/skins/dark/colors.xml index 032351a88..2766ba09b 100644 --- a/indra/newview/skins/dark/colors.xml +++ b/indra/newview/skins/dark/colors.xml @@ -70,6 +70,7 @@ + diff --git a/indra/newview/skins/darkgred/colors.xml b/indra/newview/skins/darkgred/colors.xml index d7132d44d..22034c252 100644 --- a/indra/newview/skins/darkgred/colors.xml +++ b/indra/newview/skins/darkgred/colors.xml @@ -70,6 +70,7 @@ + diff --git a/indra/newview/skins/darkorange/colors.xml b/indra/newview/skins/darkorange/colors.xml index f3ff107f0..87e646e51 100644 --- a/indra/newview/skins/darkorange/colors.xml +++ b/indra/newview/skins/darkorange/colors.xml @@ -72,6 +72,7 @@ + diff --git a/indra/newview/skins/default/colors_base.xml b/indra/newview/skins/default/colors_base.xml index eafb95481..eaed66c4d 100644 --- a/indra/newview/skins/default/colors_base.xml +++ b/indra/newview/skins/default/colors_base.xml @@ -73,6 +73,7 @@ + @@ -149,6 +150,13 @@ + + + + + + + diff --git a/indra/newview/skins/default/xui/en-us/floater_about_land.xml b/indra/newview/skins/default/xui/en-us/floater_about_land.xml index 0cdb416c2..41ffa8969 100644 --- a/indra/newview/skins/default/xui/en-us/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en-us/floater_about_land.xml @@ -1345,6 +1345,11 @@ Select the thumbnail to choose a different texture. One or more of these options is set at the estate level + minutes + 1 minute + 1 second + seconds + remaining + has entered + has left + the sim + draw distance + shout range + chat range diff --git a/indra/newview/skins/default/xui/en-us/floater_script_queue.xml b/indra/newview/skins/default/xui/en-us/floater_script_queue.xml index 90d1ac12e..b626c1cb4 100644 --- a/indra/newview/skins/default/xui/en-us/floater_script_queue.xml +++ b/indra/newview/skins/default/xui/en-us/floater_script_queue.xml @@ -3,6 +3,11 @@ can_resize="true" enabled="true" height="400" left="408" min_height="100" min_width="100" mouse_opaque="true" name="queue" title="Reset Progress" width="300" border_bevel="none" border_thickness="0"> + Starting [START] of [COUNT] items. + Done. + Resetting + Running + Not Running