diff options
275 files changed, 4002 insertions, 2106 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt index 2e4d803252..ef9f09bd23 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -17,11 +17,11 @@ Agathos Frascati CT-317 CT-352 Aimee Trescothick - VWR-1813 VWR-3321 VWR-3336 VWR-3903 VWR-4083 + VWR-4106 VWR-6348 VWR-6358 VWR-6360 @@ -42,9 +42,12 @@ Aimee Trescothick VWR-11100 VWR-11111 VWR-11844 + VWR-12631 + VWR-12696 + VWR-12748 + VWR-14087 VWR-14267 VWR-14278 - VWR-14087 Alejandro Rosenthal VWR-1184 Aleric Inglewood diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp index ed06c85e1a..b92ccd1d77 100644 --- a/indra/llaudio/llaudioengine.cpp +++ b/indra/llaudio/llaudioengine.cpp @@ -592,7 +592,7 @@ LLAudioBuffer * LLAudioEngine::getFreeBuffer() if (buffer_id >= 0) { - llinfos << "Taking over unused buffer " << buffer_id << llendl; + lldebugs << "Taking over unused buffer " << buffer_id << llendl; //llinfos << "Flushing unused buffer!" << llendl; mBuffers[buffer_id]->mAudioDatap->mBufferp = NULL; delete mBuffers[buffer_id]; diff --git a/indra/llcommon/llcursortypes.cpp b/indra/llcommon/llcursortypes.cpp index 23ede97af3..6751c235f6 100644 --- a/indra/llcommon/llcursortypes.cpp +++ b/indra/llcommon/llcursortypes.cpp @@ -72,6 +72,9 @@ ECursorType getCursorFromString(const std::string& cursor_string) cursor_string_table["UI_CURSOR_TOOLPAUSE"] = UI_CURSOR_TOOLPAUSE; cursor_string_table["UI_CURSOR_TOOLMEDIAOPEN"] = UI_CURSOR_TOOLMEDIAOPEN; cursor_string_table["UI_CURSOR_PIPETTE"] = UI_CURSOR_PIPETTE; + cursor_string_table["UI_CURSOR_TOOLSIT"] = UI_CURSOR_TOOLSIT; + cursor_string_table["UI_CURSOR_TOOLBUY"] = UI_CURSOR_TOOLBUY; + cursor_string_table["UI_CURSOR_TOOLOPEN"] = UI_CURSOR_TOOLOPEN; } std::map<std::string,U32>::const_iterator iter = cursor_string_table.find(cursor_string); diff --git a/indra/llcommon/llcursortypes.h b/indra/llcommon/llcursortypes.h index a1b8178bfe..143c2c64cf 100644 --- a/indra/llcommon/llcursortypes.h +++ b/indra/llcommon/llcursortypes.h @@ -68,6 +68,9 @@ enum ECursorType { UI_CURSOR_TOOLPAUSE, UI_CURSOR_TOOLMEDIAOPEN, UI_CURSOR_PIPETTE, + UI_CURSOR_TOOLSIT, + UI_CURSOR_TOOLBUY, + UI_CURSOR_TOOLOPEN, UI_CURSOR_COUNT // Number of elements in this enum (NOT a cursor) }; diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp index 0ed700b9da..0272c55db2 100644 --- a/indra/llcommon/llsys.cpp +++ b/indra/llcommon/llsys.cpp @@ -775,33 +775,6 @@ void LLMemoryInfo::stream(std::ostream& s) const #endif } -S32 LLDisplayInfo::getDisplayWidth() const -{ -#if LL_WINDOWS - return ::GetSystemMetrics(SM_CXVIRTUALSCREEN); -#elif LL_DARWIN - return 1024; //*FIXME -#elif LL_SOLARIS - return 1024; //*FIXME -#else - return 1024; //*FIXME -#endif -} - -S32 LLDisplayInfo::getDisplayHeight() const -{ -#if LL_WINDOWS - return ::GetSystemMetrics(SM_CYVIRTUALSCREEN); -#elif LL_DARWIN - return 768; //*FIXME -#elif LL_SOLARIS - return 768; //*FIXME -#else - return 768; //*FIXME -#endif -} - - std::ostream& operator<<(std::ostream& s, const LLOSInfo& info) { info.stream(s); diff --git a/indra/llcommon/llsys.h b/indra/llcommon/llsys.h index aa3fdd485b..f1dda1b2e2 100644 --- a/indra/llcommon/llsys.h +++ b/indra/llcommon/llsys.h @@ -122,22 +122,6 @@ public: U32 getPhysicalMemoryClamped() const; ///< Memory size in clamped bytes }; -//============================================================================= -// -// CLASS LLDisplayInfo -class LL_COMMON_API LLDisplayInfo - -/*! @brief Class to query the information about some display settings -*/ -{ -public: - LLDisplayInfo(){}; ///< Default constructor - - S32 getDisplayWidth() const; ///< display width - S32 getDisplayHeight() const; ///< display height - -}; - LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLOSInfo& info); LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLCPUInfo& info); LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLMemoryInfo& info); diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp index 5649b4cab7..7d0de18c7c 100644 --- a/indra/llimage/llimage.cpp +++ b/indra/llimage/llimage.cpp @@ -157,8 +157,9 @@ U8* LLImageBase::allocateData(S32 size) llerrs << llformat("LLImageBase::allocateData called with bad dimensions: %dx%dx%d",mWidth,mHeight,mComponents) << llendl; } } - else if (size <= 0 || (size > 4096*4096*16 && sSizeOverride == FALSE)) + if (size < 1 || (size > 4096*4096*16 && sSizeOverride == FALSE)) { + llinfos << "width: " << mWidth << " height: " << mHeight << " components: " << mComponents << llendl ; llerrs << "LLImageBase::allocateData: bad size: " << size << llendl; } diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 6a2449cf4b..cb62e46271 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -65,15 +65,19 @@ LLPluginClassMedia::~LLPluginClassMedia() reset(); } -bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path) +bool LLPluginClassMedia::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug) { LL_DEBUGS("Plugin") << "launcher: " << launcher_filename << LL_ENDL; LL_DEBUGS("Plugin") << "plugin: " << plugin_filename << LL_ENDL; - LL_DEBUGS("Plugin") << "user_data_path: " << user_data_path << LL_ENDL; mPlugin = new LLPluginProcessParent(this); mPlugin->setSleepTime(mSleepTime); - mPlugin->init(launcher_filename, plugin_filename, debug, user_data_path); + + // Queue up the media init message -- it will be sent after all the currently queued messages. + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "init"); + sendMessage(message); + + mPlugin->init(launcher_filename, plugin_filename, debug); return true; } @@ -678,6 +682,20 @@ void LLPluginClassMedia::paste() sendMessage(message); } +void LLPluginClassMedia::setUserDataPath(const std::string &user_data_path) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_user_data_path"); + message.setValue("path", user_data_path); + sendMessage(message); +} + +void LLPluginClassMedia::setLanguageCode(const std::string &language_code) +{ + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "set_language_code"); + message.setValue("language", language_code); + sendMessage(message); +} + LLPluginClassMedia::ETargetType getTargetTypeFromLLQtWebkit(int target_type) { // convert a LinkTargetType value from llqtwebkit to an ETargetType diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index 58e91fa0b4..6318c67f12 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -49,7 +49,9 @@ public: virtual ~LLPluginClassMedia(); // local initialization, called by the media manager when creating a source - virtual bool init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path); + virtual bool init(const std::string &launcher_filename, + const std::string &plugin_filename, + bool debug); // undoes everything init() didm called by the media manager when destroying a source virtual void reset(); @@ -173,6 +175,10 @@ public: void paste(); bool canPaste() const { return mCanPaste; }; + + // These can be called before init(), and they will be queued and sent before the media init message. + void setUserDataPath(const std::string &user_data_path); + void setLanguageCode(const std::string &language_code); /////////////////////////////////// // media browser class functions diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index 52b5a319ec..ccaf95b36d 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -155,7 +155,6 @@ void LLPluginProcessChild::idle(void) { setState(STATE_PLUGIN_INITIALIZING); LLPluginMessage message("base", "init"); - message.setValue("user_data_path", mUserDataPath); sendMessageToPlugin(message); } break; @@ -328,7 +327,6 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message) if(message_name == "load_plugin") { mPluginFile = parsed.getValue("file"); - mUserDataPath = parsed.getValue("user_data_path"); } else if(message_name == "shm_add") { diff --git a/indra/llplugin/llpluginprocesschild.h b/indra/llplugin/llpluginprocesschild.h index 58f8935ed1..0e5e85406a 100644 --- a/indra/llplugin/llpluginprocesschild.h +++ b/indra/llplugin/llpluginprocesschild.h @@ -98,8 +98,6 @@ private: std::string mPluginFile; - std::string mUserDataPath; - LLPluginInstance *mInstance; typedef std::map<std::string, LLPluginSharedMemory*> sharedMemoryRegionsType; diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index efd5df687e..895c858979 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -98,14 +98,12 @@ void LLPluginProcessParent::errorState(void) setState(STATE_ERROR); } -void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path) +void LLPluginProcessParent::init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug) { mProcess.setExecutable(launcher_filename); mPluginFile = plugin_filename; mCPUUsage = 0.0f; - mDebug = debug; - mUserDataPath = user_data_path; - + mDebug = debug; setState(STATE_INITIALIZED); } @@ -362,7 +360,6 @@ void LLPluginProcessParent::idle(void) { LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "load_plugin"); message.setValue("file", mPluginFile); - message.setValue("user_data_path", mUserDataPath); sendMessage(message); } diff --git a/indra/llplugin/llpluginprocessparent.h b/indra/llplugin/llpluginprocessparent.h index 524cd9923f..cc6c513615 100644 --- a/indra/llplugin/llpluginprocessparent.h +++ b/indra/llplugin/llpluginprocessparent.h @@ -59,7 +59,10 @@ public: LLPluginProcessParent(LLPluginProcessParentOwner *owner); ~LLPluginProcessParent(); - void init(const std::string &launcher_filename, const std::string &plugin_filename, bool debug, const std::string &user_data_path); + void init(const std::string &launcher_filename, + const std::string &plugin_filename, + bool debug); + void idle(void); // returns true if the plugin is on its way to steady state @@ -143,8 +146,6 @@ private: std::string mPluginFile; - std::string mUserDataPath; - LLPluginProcessParentOwner *mOwner; typedef std::map<std::string, LLPluginSharedMemory*> sharedMemoryRegionsType; diff --git a/indra/llrender/llfontregistry.cpp b/indra/llrender/llfontregistry.cpp index 7a3d6ec4f2..e619f89e1d 100644 --- a/indra/llrender/llfontregistry.cpp +++ b/indra/llrender/llfontregistry.cpp @@ -469,6 +469,8 @@ LLFontGL *LLFontRegistry::createFont(const LLFontDescriptor& desc) else { fontlist.push_back(fontp->mFontFreetype); + delete fontp; + fontp = NULL; } } } diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp index 4a6e3c9a13..c1d512e148 100644 --- a/indra/llui/llcombobox.cpp +++ b/indra/llui/llcombobox.cpp @@ -323,15 +323,19 @@ void LLComboBox::setValue(const LLSD& value) LLScrollListItem* item = mList->getFirstSelected(); if (item) { - setLabel( mList->getSelectedItemLabel() ); + setLabel(getSelectedItemLabel()); } mLastSelectedIndex = mList->getFirstSelectedIndex(); } + else + { + mLastSelectedIndex = -1; + } } const std::string LLComboBox::getSimple() const { - const std::string res = mList->getSelectedItemLabel(); + const std::string res = getSelectedItemLabel(); if (res.empty() && mAllowTextEntry) { return mTextEntry->getText(); @@ -410,7 +414,7 @@ BOOL LLComboBox::remove(S32 index) if (index < mList->getItemCount()) { mList->deleteSingleItem(index); - setLabel(mList->getSelectedItemLabel()); + setLabel(getSelectedItemLabel()); return TRUE; } return FALSE; @@ -451,7 +455,7 @@ BOOL LLComboBox::setCurrentByIndex( S32 index ) BOOL found = mList->selectNthItem( index ); if (found) { - setLabel(mList->getSelectedItemLabel()); + setLabel(getSelectedItemLabel()); mLastSelectedIndex = index; } return found; @@ -702,20 +706,13 @@ void LLComboBox::onListMouseUp() void LLComboBox::onItemSelected(const LLSD& data) { - const std::string name = mList->getSelectedItemLabel(); + setValue(data); - S32 cur_id = getCurrentIndex(); - mLastSelectedIndex = cur_id; - if (cur_id != -1) - { - setLabel(name); - - if (mAllowTextEntry) + if (mAllowTextEntry && mLastSelectedIndex != -1) { gFocusMgr.setKeyboardFocus(mTextEntry); mTextEntry->selectAll(); } - } // hiding the list reasserts the old value stored in the text editor/dropdown button hideList(); @@ -911,7 +908,7 @@ void LLComboBox::updateSelection() } else if (mList->selectItemByPrefix(left_wstring, FALSE)) { - LLWString selected_item = utf8str_to_wstring(mList->getSelectedItemLabel()); + LLWString selected_item = utf8str_to_wstring(getSelectedItemLabel()); LLWString wtext = left_wstring + selected_item.substr(left_wstring.size(), selected_item.size()); mTextEntry->setText(wstring_to_utf8str(wtext)); mTextEntry->setSelection(left_wstring.size(), mTextEntry->getWText().size()); @@ -1013,7 +1010,7 @@ BOOL LLComboBox::setCurrentByID(const LLUUID& id) if (found) { - setLabel(mList->getSelectedItemLabel()); + setLabel(getSelectedItemLabel()); mLastSelectedIndex = mList->getFirstSelectedIndex(); } @@ -1029,7 +1026,7 @@ BOOL LLComboBox::setSelectedByValue(const LLSD& value, BOOL selected) BOOL found = mList->setSelectedByValue(value, selected); if (found) { - setLabel(mList->getSelectedItemLabel()); + setLabel(getSelectedItemLabel()); } return found; } @@ -1068,3 +1065,42 @@ BOOL LLComboBox::selectItemRange( S32 first, S32 last ) { return mList->selectItemRange(first, last); } + + +static LLDefaultChildRegistry::Register<LLIconsComboBox> register_icons_combo_box("icons_combo_box"); + +LLIconsComboBox::Params::Params() +: icon_column("icon_column", ICON_COLUMN), + label_column("label_column", LABEL_COLUMN) +{} + +LLIconsComboBox::LLIconsComboBox(const LLIconsComboBox::Params& p) +: LLComboBox(p), + mIconColumnIndex(p.icon_column), + mLabelColumnIndex(p.label_column) +{} + +void LLIconsComboBox::setValue(const LLSD& value) +{ + BOOL found = mList->selectByValue(value); + if (found) + { + LLScrollListItem* item = mList->getFirstSelected(); + if (item) + { + setLabel(getSelectedItemLabel()); + } + mLastSelectedIndex = mList->getFirstSelectedIndex(); + } + else + { + mLastSelectedIndex = -1; + } +} + +const std::string LLIconsComboBox::getSelectedItemLabel(S32 column) const +{ + mButton->setImageOverlay(LLComboBox::getSelectedItemLabel(mIconColumnIndex), mButton->getImageOverlayHAlign()); + + return LLComboBox::getSelectedItemLabel(mLabelColumnIndex); +} diff --git a/indra/llui/llcombobox.h b/indra/llui/llcombobox.h index 82134c4ffe..965061ead2 100644 --- a/indra/llui/llcombobox.h +++ b/indra/llui/llcombobox.h @@ -150,7 +150,7 @@ public: // Get name of current item. Returns an empty string if not found. const std::string getSimple() const; // Get contents of column x of selected row - const std::string getSelectedItemLabel(S32 column = 0) const; + virtual const std::string getSelectedItemLabel(S32 column = 0) const; // Sets the label, which doesn't have to exist in the label. // This is probably a UI abuse. @@ -221,6 +221,7 @@ protected: LLPointer<LLUIImage> mArrowImage; LLUIString mLabel; BOOL mHasAutocompletedText; + S32 mLastSelectedIndex; private: BOOL mAllowTextEntry; @@ -230,7 +231,38 @@ private: commit_callback_t mPrearrangeCallback; commit_callback_t mTextEntryCallback; commit_callback_t mSelectionCallback; - boost::signals2::connection mTopLostSignalConnection; - S32 mLastSelectedIndex; + boost::signals2::connection mTopLostSignalConnection; +}; + +// A combo box with icons for the list of items. +class LLIconsComboBox +: public LLComboBox +{ +public: + struct Params + : public LLInitParam::Block<Params, LLComboBox::Params> + { + Optional<S32> icon_column, + label_column; + Params(); + }; + + /*virtual*/ void setValue(const LLSD& value); + /*virtual*/ const std::string getSelectedItemLabel(S32 column = 0) const; + +private: + enum EColumnIndex + { + ICON_COLUMN = 0, + LABEL_COLUMN + }; + + friend class LLUICtrlFactory; + LLIconsComboBox(const Params&); + virtual ~LLIconsComboBox() {}; + + S32 mIconColumnIndex; + S32 mLabelColumnIndex; }; + #endif diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index 2481249f91..2e5aeec41d 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -492,6 +492,12 @@ void LLFlatListView::onItemMouseClick(item_pair_t* item_pair, MASK mask) { if (!item_pair) return; + if (!item_pair->first) + { + llwarning("Attempt to selet an item pair containing null panel item", 0); + return; + } + setFocus(TRUE); bool select_item = !isSelected(item_pair); diff --git a/indra/llui/llradiogroup.cpp b/indra/llui/llradiogroup.cpp index 4087b484aa..e27792dc1d 100644 --- a/indra/llui/llradiogroup.cpp +++ b/indra/llui/llradiogroup.cpp @@ -106,7 +106,6 @@ LLRadioGroup::LLRadioGroup(const LLRadioGroup::Params& p) void LLRadioGroup::initFromParams(const Params& p) { - LLUICtrl::initFromParams(p); for (LLInitParam::ParamIterator<ItemParams>::const_iterator it = p.items().begin(); it != p.items().end(); ++it) @@ -124,6 +123,9 @@ void LLRadioGroup::initFromParams(const Params& p) LLRadioCtrl* item = LLUICtrlFactory::create<LLRadioCtrl>(item_params, this); mRadioButtons.push_back(item); } + + // call this *after* setting up mRadioButtons so we can handle setValue() calls + LLUICtrl::initFromParams(p); } @@ -138,10 +140,6 @@ BOOL LLRadioGroup::postBuild() { mRadioButtons[0]->setTabStop(true); } - if (mControlVariable) - { - setSelectedIndex(mControlVariable->getValue().asInteger()); - } return TRUE; } diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 35428e4227..e8e3459673 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -310,7 +310,6 @@ LLUrlEntryAgent::LLUrlEntryAgent() boost::regex::perl|boost::regex::icase); mMenuName = "menu_url_agent.xml"; mIcon = "Generic_Person"; - mTooltip = LLTrans::getString("TooltipAgentUrl"); mColor = LLUIColorTable::instance().getColor("AgentLinkColor"); } @@ -323,6 +322,38 @@ void LLUrlEntryAgent::onAgentNameReceived(const LLUUID& id, callObservers(id.asString(), first + " " + last); } +std::string LLUrlEntryAgent::getTooltip(const std::string &string) const +{ + // return a tooltip corresponding to the URL type instead of the generic one + std::string url = getUrl(string); + + if (LLStringUtil::endsWith(url, "/mute")) + { + return LLTrans::getString("TooltipAgentMute"); + } + if (LLStringUtil::endsWith(url, "/unmute")) + { + return LLTrans::getString("TooltipAgentUnmute"); + } + if (LLStringUtil::endsWith(url, "/im")) + { + return LLTrans::getString("TooltipAgentIM"); + } + if (LLStringUtil::endsWith(url, "/pay")) + { + return LLTrans::getString("TooltipAgentPay"); + } + if (LLStringUtil::endsWith(url, "/offerteleport")) + { + return LLTrans::getString("TooltipAgentOfferTeleport"); + } + if (LLStringUtil::endsWith(url, "/requestfriend")) + { + return LLTrans::getString("TooltipAgentRequestFriend"); + } + return LLTrans::getString("TooltipAgentUrl"); +} + std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCallback &cb) { if (!gCacheName) @@ -346,6 +377,31 @@ std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCa } else if (gCacheName->getFullName(agent_id, full_name)) { + // customize label string based on agent SLapp suffix + if (LLStringUtil::endsWith(url, "/mute")) + { + return LLTrans::getString("SLappAgentMute") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/unmute")) + { + return LLTrans::getString("SLappAgentUnmute") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/im")) + { + return LLTrans::getString("SLappAgentIM") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/pay")) + { + return LLTrans::getString("SLappAgentPay") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/offerteleport")) + { + return LLTrans::getString("SLappAgentOfferTeleport") + " " + full_name; + } + if (LLStringUtil::endsWith(url, "/requestfriend")) + { + return LLTrans::getString("SLappAgentRequestFriend") + " " + full_name; + } return full_name; } else diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index c947ef7259..84d0968779 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -169,6 +169,7 @@ class LLUrlEntryAgent : public LLUrlEntryBase public: LLUrlEntryAgent(); /*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); + /*virtual*/ std::string getTooltip(const std::string &string) const; private: void onAgentNameReceived(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group); diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index d0dbc99bc7..781c111474 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -152,7 +152,7 @@ LLView::~LLView() //llinfos << "Deleting view " << mName << ":" << (void*) this << llendl; if (LLView::sIsDrawing) { - llwarns << "Deleting view " << mName << " during UI draw() phase" << llendl; + lldebugs << "Deleting view " << mName << " during UI draw() phase" << llendl; } // llassert(LLView::sIsDrawing == FALSE); diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp index 1c6c9e6e9d..b77deb003f 100644 --- a/indra/llwindow/llwindow.cpp +++ b/indra/llwindow/llwindow.cpp @@ -407,3 +407,30 @@ BOOL LLWindowManager::isWindowValid(LLWindow *window) { return sWindowList.find(window) != sWindowList.end(); } + +S32 LLDisplayInfo::getDisplayWidth() const +{ +#if LL_WINDOWS + return LLWindowWin32::getDisplayWidth(); +#elif LL_DARWIN + return LLWindowMacOSX::getDisplayWidth(); +#elif LL_SDL + return LLWindowSDL::getDisplayWidth(); +#else + return 1024; //*FIXME +#endif +} + +S32 LLDisplayInfo::getDisplayHeight() const +{ +#if LL_WINDOWS + return LLWindowWin32::getDisplayHeight(); +#elif LL_DARWIN + return LLWindowMacOSX::getDisplayHeight(); +#elif LL_SDL + return LLWindowSDL::getDisplayHeight(); +#else + return 768; //*FIXME +#endif +} + diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h index 55b221e716..b769f5071b 100644 --- a/indra/llwindow/llwindow.h +++ b/indra/llwindow/llwindow.h @@ -281,4 +281,19 @@ extern const std::string gURLProtocolWhitelistHandler[]; void simpleEscapeString ( std::string& stringIn ); +//============================================================================= +// +// CLASS LLDisplayInfo +class LLDisplayInfo + +/*! @brief Class to query the information about some display settings +*/ +{ +public: + LLDisplayInfo(){}; ///< Default constructor + + S32 getDisplayWidth() const; ///< display width + S32 getDisplayHeight() const; ///< display height +}; + #endif // _LL_window_h_ diff --git a/indra/llwindow/llwindowmacosx-objc.h b/indra/llwindow/llwindowmacosx-objc.h index ed5d7b1e74..ed8c874dcb 100644 --- a/indra/llwindow/llwindowmacosx-objc.h +++ b/indra/llwindow/llwindowmacosx-objc.h @@ -40,4 +40,5 @@ void setupCocoa(); CursorRef createImageCursor(const char *fullpath, int hotspotX, int hotspotY); OSErr releaseImageCursor(CursorRef ref); OSErr setImageCursor(CursorRef ref); - +void getScreenSize(int* width, int* height); +void getVisibleScreen(int *x, int *y, int* width, int* height); diff --git a/indra/llwindow/llwindowmacosx-objc.mm b/indra/llwindow/llwindowmacosx-objc.mm index 59b25e1726..5cab2619fd 100644 --- a/indra/llwindow/llwindowmacosx-objc.mm +++ b/indra/llwindow/llwindowmacosx-objc.mm @@ -116,3 +116,22 @@ OSErr setImageCursor(CursorRef ref) return noErr; } +void getScreenSize(int* width, int* height) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSRect screen_rect = [[NSScreen mainScreen] frame]; + if (width) *width = (int)(screen_rect.size.width); + if (height) *height = (int)(screen_rect.size.height); + [pool release]; +} + +void getVisibleScreen(int *x, int *y, int* width, int* height) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSRect visible_rect = [[NSScreen mainScreen] visibleFrame]; + if (width) *width = (int)(visible_rect.size.width); + if (height) *height = (int)(visible_rect.size.height); + if (x) *x = (int)(visible_rect.origin.x); + if (y) *y = (int)(visible_rect.origin.y); + [pool release]; +} diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index ad97bc45fc..224314a490 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -1122,7 +1122,33 @@ BOOL LLWindowMacOSX::getMaximized() BOOL LLWindowMacOSX::maximize() { - // TODO + if (mWindow) + { + // *HACK: Because Mac OSX doesn't have a concept of a "maximized" window, we just + // stretch it out to the visible screen size. + Rect win_rect; + + int visible_x; + int visible_y; + int visible_width; + int visible_height; + int screen_width; + int screen_height; + + getScreenSize(&screen_width, &screen_height); + getVisibleScreen(&visible_x, &visible_y, &visible_width, &visible_height); + + int mac_os_menu_bar_height = screen_height - (visible_height + visible_y); + ::SetRect(&win_rect, + visible_x, + mac_os_menu_bar_height, + visible_width + visible_x, + visible_height + mac_os_menu_bar_height); + + ::SetWindowBounds(mWindow, kWindowStructureRgn, &win_rect); + + return TRUE; + } return FALSE; } @@ -2781,6 +2807,9 @@ const char* cursorIDToName(int id) case UI_CURSOR_TOOLPAUSE: return "UI_CURSOR_TOOLPAUSE"; case UI_CURSOR_TOOLMEDIAOPEN: return "UI_CURSOR_TOOLMEDIAOPEN"; case UI_CURSOR_PIPETTE: return "UI_CURSOR_PIPETTE"; + case UI_CURSOR_TOOLSIT: return "UI_CURSOR_TOOLSIT"; + case UI_CURSOR_TOOLBUY: return "UI_CURSOR_TOOLBUY"; + case UI_CURSOR_TOOLOPEN: return "UI_CURSOR_TOOLOPEN"; } llerrs << "cursorIDToName: unknown cursor id" << id << llendl; @@ -2883,6 +2912,9 @@ void LLWindowMacOSX::setCursor(ECursorType cursor) case UI_CURSOR_TOOLPLAY: case UI_CURSOR_TOOLPAUSE: case UI_CURSOR_TOOLMEDIAOPEN: + case UI_CURSOR_TOOLSIT: + case UI_CURSOR_TOOLBUY: + case UI_CURSOR_TOOLOPEN: result = setImageCursor(gCursors[cursor]); break; @@ -2924,6 +2956,9 @@ void LLWindowMacOSX::initCursors() initPixmapCursor(UI_CURSOR_TOOLPLAY, 1, 1); initPixmapCursor(UI_CURSOR_TOOLPAUSE, 1, 1); initPixmapCursor(UI_CURSOR_TOOLMEDIAOPEN, 1, 1); + initPixmapCursor(UI_CURSOR_TOOLSIT, 20, 15); + initPixmapCursor(UI_CURSOR_TOOLBUY, 20, 15); + initPixmapCursor(UI_CURSOR_TOOLOPEN, 20, 15); initPixmapCursor(UI_CURSOR_SIZENWSE, 10, 10); initPixmapCursor(UI_CURSOR_SIZENESW, 10, 10); @@ -3464,6 +3499,26 @@ MASK LLWindowMacOSX::modifiersToMask(SInt16 modifiers) return mask; } +// static +S32 LLWindowMacOSX::getDisplayWidth() +{ + S32 width = 1024; + // Need to invoke cocoa before use getScreenSize() + setupCocoa(); + getScreenSize(&width, NULL); + return width; +} + +// static +S32 LLWindowMacOSX::getDisplayHeight() +{ + S32 height = 768; + // Need to invoke cocoa before use getScreenSize() + setupCocoa(); + getScreenSize(NULL, &height); + return height; +} + #if LL_OS_DRAGDROP_ENABLED OSErr LLWindowMacOSX::dragTrackingHandler(DragTrackingMessage message, WindowRef theWindow, diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h index 7c6b324029..86036a261c 100644 --- a/indra/llwindow/llwindowmacosx.h +++ b/indra/llwindow/llwindowmacosx.h @@ -123,6 +123,8 @@ public: // Provide native key event data /*virtual*/ LLSD getNativeKeyData(); + static S32 getDisplayWidth(); + static S32 getDisplayHeight(); protected: LLWindowMacOSX(LLWindowCallbacks* callbacks, diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index 1f705f9e60..cb4e04511c 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -187,6 +187,47 @@ Display* LLWindowSDL::get_SDL_Display(void) } #endif // LL_X11 +// static +S32 LLWindowSDL::getDisplayWidth() +{ +#if LL_GTK + if (LLWindowSDL::ll_try_gtk_init()) + { + return gdk_screen_width(); + } +#endif // LL_GTK + +#if LL_X11 + Display *display = XOpenDisplay(NULL); + int screen_num = DefaultScreen(display); + S32 width = DisplayWidth(display, screen_num); + XCloseDisplay(display); + return width; +#endif //LL_X11 + + return 1024; +} + +// static +S32 LLWindowSDL::getDisplayHeight() +{ +#if LL_GTK + if (LLWindowSDL::ll_try_gtk_init()) + { + return gdk_screen_height(); + } +#endif // LL_GTK + +#if LL_X11 + Display *display = XOpenDisplay(NULL); + int screen_num = DefaultScreen(display); + S32 height = DisplayHeight(display, screen_num); + XCloseDisplay(display); + return height; +#endif //LL_X11 + + return 768; +} LLWindowSDL::LLWindowSDL(LLWindowCallbacks* callbacks, const std::string& title, S32 x, S32 y, S32 width, @@ -909,7 +950,68 @@ BOOL LLWindowSDL::getMaximized() if (mWindow) { - // TODO +#if LL_X11 + if (mSDL_Display) + { + maybe_lock_display(); + + // Return data in the specified format, XA_ATOM. + U8* prop; + // Actual format of the property. + int format; + // Actual number of items stored in the prop return data. + unsigned long nitems; + // Number of bytes remaining to be read in the property if a partial read was performed. + unsigned long bytes_after; + // Atom identifier that defines the actual type of the property. + Atom type; + + // Atom used to obtain list of hints describing the window state. + Atom wm_state = XInternAtom(mSDL_Display, "_NET_WM_STATE", False); + + // Atoms indicates that the window is vertically/horizontally maximized. + Atom max_vert = XInternAtom(mSDL_Display, "_NET_WM_STATE_MAXIMIZED_VERT", False); + Atom max_horz = XInternAtom(mSDL_Display, "_NET_WM_STATE_MAXIMIZED_HORZ", False); + + // How many atoms in which we interested are present in list of hints. + U32 pass = 0; + + do + { + nitems = 0; + bytes_after = 0; + type = None; + if ( (XGetWindowProperty (mSDL_Display, + mSDL_XWindowID, + wm_state, + 0, UINT_MAX, + False, XA_ATOM, + &type, &format, + &nitems, &bytes_after, + &prop) == Success) + && type != None ) + { + Atom *atoms = (Atom *)prop; + for (unsigned long i=0; i<nitems; ++i) + { + if (atoms[i] == max_horz) + ++pass; + else if (atoms[i] == max_vert) + ++pass; + } + XFree (atoms); + } + else + { + break; + } + } while (bytes_after > 0); + + result = (pass == 2); + + maybe_unlock_display(); + } +#endif // LL_X11 } return(result); @@ -917,7 +1019,103 @@ BOOL LLWindowSDL::getMaximized() BOOL LLWindowSDL::maximize() { - // TODO +#if LL_X11 + if (mSDL_Display && !mFullscreen) + { + maybe_lock_display(); + + BOOL is_maximize_allowed = FALSE; + + // Check if maximize is allowed + { + // Return data in the specified format, XA_ATOM. + U8* prop; + // Actual format of the property. + int format; + // Actual number of items stored in the prop return data. + unsigned long nitems; + // Number of bytes remaining to be read in the property if a partial read was performed. + unsigned long bytes_after; + // Atom identifier that defines the actual type of the property. + Atom type; + + // Atom used to obtain a list of atoms indicating user operations that the Window Manager supports for this window. + Atom allowed_act = XInternAtom(mSDL_Display, "_NET_WM_ALLOWED_ACTIONS", False); + + // Atoms that indicates that the window may be vertically/horizontally maximized. + Atom max_vert_act = XInternAtom(mSDL_Display, "_NET_WM_ACTION_MAXIMIZE_HORZ", False); + Atom max_horz_act = XInternAtom(mSDL_Display, "_NET_WM_ACTION_MAXIMIZE_VERT", False); + + // How many atoms in which we interested are present in list of hints. + U32 pass = 0; + + do + { + nitems = 0; + bytes_after = 0; + type = None; + if ( (XGetWindowProperty (mSDL_Display, + mSDL_XWindowID, + allowed_act, + 0, UINT_MAX, + False, XA_ATOM, + &type, &format, + &nitems, &bytes_after, + &prop) == Success) + && type != None ) + { + Atom *atoms = (Atom *)prop; + for (unsigned long i=0; i<nitems; ++i) + { + if (atoms[i] == max_vert_act) + ++pass; + else if (atoms[i] == max_horz_act) + ++pass; + } + XFree (atoms); + } + else + { + break; + } + } while (bytes_after > 0); + + is_maximize_allowed = (pass == 2); + } + + // Send maximize event to X11 system + if (is_maximize_allowed) + { + XEvent xev; + + // Atom describing the window state. + Atom wm_state = XInternAtom(mSDL_Display, "_NET_WM_STATE", False); + + // Atoms indicates that the window is vertically/horizontally maximized. + Atom max_vert = XInternAtom(mSDL_Display, "_NET_WM_STATE_MAXIMIZED_VERT", False); + Atom max_horz = XInternAtom(mSDL_Display, "_NET_WM_STATE_MAXIMIZED_HORZ", False); + + memset(&xev, 0, sizeof(xev)); + xev.type = ClientMessage; + xev.xclient.window = mSDL_XWindowID; + xev.xclient.message_type = wm_state; + xev.xclient.format = 32; + xev.xclient.data.l[0] = 1; // add/set property + xev.xclient.data.l[1] = max_vert; + xev.xclient.data.l[2] = max_horz; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + + XSendEvent(mSDL_Display, + DefaultRootWindow(mSDL_Display), + False, + SubstructureNotifyMask, &xev); + } + + maybe_unlock_display(); + return is_maximize_allowed; + } +#endif // LL_X11 return FALSE; } diff --git a/indra/llwindow/llwindowsdl.h b/indra/llwindow/llwindowsdl.h index e6bdd46a77..2311a361fa 100644 --- a/indra/llwindow/llwindowsdl.h +++ b/indra/llwindow/llwindowsdl.h @@ -148,6 +148,9 @@ public: static Display* get_SDL_Display(void); #endif // LL_X11 + static S32 getDisplayWidth(); + static S32 getDisplayHeight(); + protected: LLWindowSDL(LLWindowCallbacks* callbacks, const std::string& title, int x, int y, int width, int height, U32 flags, diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index c80392ad45..5f778d6208 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -46,6 +46,7 @@ #include "llerror.h" #include "llgl.h" #include "llstring.h" +#include "lldir.h" // System includes #include <commdlg.h> @@ -1545,6 +1546,11 @@ void LLWindowWin32::initCursors() mCursor[ UI_CURSOR_PIPETTE ] = LoadCursor(module, TEXT("TOOLPIPETTE")); // Color cursors + gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "res", "toolbuy.cur"); + + mCursor[UI_CURSOR_TOOLSIT] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolsit.cur").c_str()); + mCursor[UI_CURSOR_TOOLBUY] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolbuy.cur").c_str()); + mCursor[UI_CURSOR_TOOLOPEN] = LoadCursorFromFile(utf8str_to_utf16str(gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + "res" + gDirUtilp->getDirDelimiter() + "toolopen.cur").c_str()); mCursor[UI_CURSOR_TOOLPLAY] = loadColorCursor(TEXT("TOOLPLAY")); mCursor[UI_CURSOR_TOOLPAUSE] = loadColorCursor(TEXT("TOOLPAUSE")); mCursor[UI_CURSOR_TOOLMEDIAOPEN] = loadColorCursor(TEXT("TOOLMEDIAOPEN")); @@ -3714,5 +3720,16 @@ std::vector<std::string> LLWindowWin32::getDynamicFallbackFontList() return std::vector<std::string>(); } +// static +S32 LLWindowWin32::getDisplayWidth() +{ + return ::GetSystemMetrics(SM_CXVIRTUALSCREEN); +} + +// static +S32 LLWindowWin32::getDisplayHeight() +{ + return ::GetSystemMetrics(SM_CYVIRTUALSCREEN); +} #endif // LL_WINDOWS diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h index 9d57735772..c221ec0192 100644 --- a/indra/llwindow/llwindowwin32.h +++ b/indra/llwindow/llwindowwin32.h @@ -120,6 +120,9 @@ public: static std::vector<std::string> getDynamicFallbackFontList(); + static S32 getDisplayWidth(); + static S32 getDisplayHeight(); + protected: LLWindowWin32(LLWindowCallbacks* callbacks, const std::string& title, const std::string& name, int x, int y, int width, int height, U32 flags, diff --git a/indra/media_plugins/example/media_plugin_example.cpp b/indra/media_plugins/example/media_plugin_example.cpp index f5b077fea0..49bbca6c52 100644 --- a/indra/media_plugins/example/media_plugin_example.cpp +++ b/indra/media_plugins/example/media_plugin_example.cpp @@ -119,17 +119,6 @@ void MediaPluginExample::receiveMessage( const char* message_string ) std::string plugin_version = "Example media plugin, Example Version 1.0.0.0"; message.setValue( "plugin_version", plugin_version ); sendMessage( message ); - - // Plugin gets to decide the texture parameters to use. - message.setMessage( LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params" ); - message.setValueS32( "default_width", mWidth ); - message.setValueS32( "default_height", mHeight ); - message.setValueS32( "depth", mDepth ); - message.setValueU32( "internalformat", GL_RGBA ); - message.setValueU32( "format", GL_RGBA ); - message.setValueU32( "type", GL_UNSIGNED_BYTE ); - message.setValueBoolean( "coords_opengl", false ); - sendMessage( message ); } else if ( message_name == "idle" ) @@ -191,7 +180,20 @@ void MediaPluginExample::receiveMessage( const char* message_string ) else if ( message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA ) { - if ( message_name == "size_change" ) + if ( message_name == "init" ) + { + // Plugin gets to decide the texture parameters to use. + LLPluginMessage message( LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params" ); + message.setValueS32( "default_width", mWidth ); + message.setValueS32( "default_height", mHeight ); + message.setValueS32( "depth", mDepth ); + message.setValueU32( "internalformat", GL_RGBA ); + message.setValueU32( "format", GL_RGBA ); + message.setValueU32( "type", GL_UNSIGNED_BYTE ); + message.setValueBoolean( "coords_opengl", false ); + sendMessage( message ); + } + else if ( message_name == "size_change" ) { std::string name = message_in.getValue( "name" ); S32 width = message_in.getValueS32( "width" ); diff --git a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index 26173314a7..a69da3ff5a 100644 --- a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp @@ -946,33 +946,6 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) message.setValue("plugin_version", getVersion()); sendMessage(message); - - // Plugin gets to decide the texture parameters to use. - message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); - // lame to have to decide this now, it depends on the movie. Oh well. - mDepth = 4; - - mCurrentWidth = 1; - mCurrentHeight = 1; - mPreviousWidth = 1; - mPreviousHeight = 1; - mNaturalWidth = 1; - mNaturalHeight = 1; - mWidth = 1; - mHeight = 1; - mTextureWidth = 1; - mTextureHeight = 1; - - message.setValueU32("format", GL_RGBA); - message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV); - - message.setValueS32("depth", mDepth); - message.setValueS32("default_width", mWidth); - message.setValueS32("default_height", mHeight); - message.setValueU32("internalformat", GL_RGBA8); - message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left. - message.setValueBoolean("allow_downsample", true); // we respond with grace and performance if asked to downscale - sendMessage(message); } else if(message_name == "idle") { @@ -1037,7 +1010,36 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) } else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) { - if(message_name == "size_change") + if(message_name == "init") + { + // Plugin gets to decide the texture parameters to use. + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); + // lame to have to decide this now, it depends on the movie. Oh well. + mDepth = 4; + + mCurrentWidth = 1; + mCurrentHeight = 1; + mPreviousWidth = 1; + mPreviousHeight = 1; + mNaturalWidth = 1; + mNaturalHeight = 1; + mWidth = 1; + mHeight = 1; + mTextureWidth = 1; + mTextureHeight = 1; + + message.setValueU32("format", GL_RGBA); + message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV); + + message.setValueS32("depth", mDepth); + message.setValueS32("default_width", mWidth); + message.setValueS32("default_height", mHeight); + message.setValueU32("internalformat", GL_RGBA8); + message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left. + message.setValueBoolean("allow_downsample", true); // we respond with grace and performance if asked to downscale + sendMessage(message); + } + else if(message_name == "size_change") { std::string name = message_in.getValue("name"); S32 width = message_in.getValueS32("width"); diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp index e230fcc280..1f88301ca7 100644 --- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp +++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp @@ -859,36 +859,6 @@ void MediaPluginQuickTime::receiveMessage(const char *message_string) plugin_version += codec.str(); message.setValue("plugin_version", plugin_version); sendMessage(message); - - // Plugin gets to decide the texture parameters to use. - message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); - #if defined(LL_WINDOWS) - // Values for Windows - mDepth = 3; - message.setValueU32("format", GL_RGB); - message.setValueU32("type", GL_UNSIGNED_BYTE); - - // We really want to pad the texture width to a multiple of 32 bytes, but since we're using 3-byte pixels, it doesn't come out even. - // Padding to a multiple of 3*32 guarantees it'll divide out properly. - message.setValueU32("padding", 32 * 3); - #else - // Values for Mac - mDepth = 4; - message.setValueU32("format", GL_BGRA_EXT); - #ifdef __BIG_ENDIAN__ - message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV ); - #else - message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8); - #endif - - // Pad texture width to a multiple of 32 bytes, to line up with cache lines. - message.setValueU32("padding", 32); - #endif - message.setValueS32("depth", mDepth); - message.setValueU32("internalformat", GL_RGB); - message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left. - message.setValueBoolean("allow_downsample", true); - sendMessage(message); } else if(message_name == "idle") { @@ -953,7 +923,41 @@ void MediaPluginQuickTime::receiveMessage(const char *message_string) } else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) { - if(message_name == "size_change") + if(message_name == "init") + { + // This is the media init message -- all necessary data for initialization should have been received. + + // Plugin gets to decide the texture parameters to use. + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); + #if defined(LL_WINDOWS) + // Values for Windows + mDepth = 3; + message.setValueU32("format", GL_RGB); + message.setValueU32("type", GL_UNSIGNED_BYTE); + + // We really want to pad the texture width to a multiple of 32 bytes, but since we're using 3-byte pixels, it doesn't come out even. + // Padding to a multiple of 3*32 guarantees it'll divide out properly. + message.setValueU32("padding", 32 * 3); + #else + // Values for Mac + mDepth = 4; + message.setValueU32("format", GL_BGRA_EXT); + #ifdef __BIG_ENDIAN__ + message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8_REV ); + #else + message.setValueU32("type", GL_UNSIGNED_INT_8_8_8_8); + #endif + + // Pad texture width to a multiple of 32 bytes, to line up with cache lines. + message.setValueU32("padding", 32); + #endif + message.setValueS32("depth", mDepth); + message.setValueU32("internalformat", GL_RGB); + message.setValueBoolean("coords_opengl", true); // true == use OpenGL-style coordinates, false == (0,0) is upper left. + message.setValueBoolean("allow_downsample", true); + sendMessage(message); + } + else if(message_name == "size_change") { std::string name = message_in.getValue("name"); S32 width = message_in.getValueS32("width"); diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index e66ac3049f..24c53638d2 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -45,7 +45,7 @@ // set to 1 if you're using the version of llqtwebkit that's QPixmap-ified #if LL_LINUX -# define LL_QTWEBKIT_USES_PIXMAPS 1 +# define LL_QTWEBKIT_USES_PIXMAPS 0 #else # define LL_QTWEBKIT_USES_PIXMAPS 0 #endif // LL_LINUX @@ -88,10 +88,12 @@ public: private: std::string mProfileDir; + std::string mHostLanguage; enum { - INIT_STATE_UNINITIALIZED, // Browser instance hasn't been set up yet + INIT_STATE_UNINITIALIZED, // LLQtWebkit hasn't been set up yet + INIT_STATE_INITIALIZED, // LLQtWebkit has been set up, but no browser window has been created yet. INIT_STATE_NAVIGATING, // Browser instance has been set up and initial navigate to about:blank has been issued INIT_STATE_NAVIGATE_COMPLETE, // initial navigate to about:blank has completed INIT_STATE_WAIT_REDRAW, // First real navigate begin has been received, waiting for page changed event to start handling redraws @@ -191,13 +193,6 @@ private: if ( mInitState > INIT_STATE_UNINITIALIZED ) return true; - // not enough information to initialize the browser yet. - if ( mWidth < 0 || mHeight < 0 || mDepth < 0 || - mTextureWidth < 0 || mTextureHeight < 0 ) - { - return false; - }; - // set up directories char cwd[ FILENAME_MAX ]; // I *think* this is defined on all platforms we use if (NULL == getcwd( cwd, FILENAME_MAX - 1 )) @@ -208,12 +203,12 @@ private: std::string application_dir = std::string( cwd ); #if LL_DARWIN - // When running under the Xcode debugger, there's a setting called "Break on Debugger()/DebugStr()" which defaults to being turned on. - // This causes the environment variable USERBREAK to be set to 1, which causes these legacy calls to break into the debugger. - // This wouldn't cause any problems except for the fact that the current release version of the Flash plugin has a call to Debugger() in it - // which gets hit when the plugin is probed by webkit. - // Unsetting the environment variable here works around this issue. - unsetenv("USERBREAK"); + // When running under the Xcode debugger, there's a setting called "Break on Debugger()/DebugStr()" which defaults to being turned on. + // This causes the environment variable USERBREAK to be set to 1, which causes these legacy calls to break into the debugger. + // This wouldn't cause any problems except for the fact that the current release version of the Flash plugin has a call to Debugger() in it + // which gets hit when the plugin is probed by webkit. + // Unsetting the environment variable here works around this issue. + unsetenv("USERBREAK"); #endif #if LL_WINDOWS @@ -254,66 +249,92 @@ private: bool result = LLQtWebKit::getInstance()->init( application_dir, component_dir, mProfileDir, native_window_handle ); if ( result ) { - // create single browser window - mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight ); + mInitState = INIT_STATE_INITIALIZED; + + return true; + }; + + return false; + }; + + //////////////////////////////////////////////////////////////////////////////// + // + bool initBrowserWindow() + { + // already initialized + if ( mInitState > INIT_STATE_INITIALIZED ) + return true; + + // not enough information to initialize the browser yet. + if ( mWidth < 0 || mHeight < 0 || mDepth < 0 || + mTextureWidth < 0 || mTextureHeight < 0 ) + { + return false; + }; + + // Set up host language before creating browser window + if(!mHostLanguage.empty()) + { + LLQtWebKit::getInstance()->setHostLanguage(mHostLanguage); + } + + // create single browser window + mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight ); #if LL_WINDOWS - // Enable plugins - LLQtWebKit::getInstance()->enablePlugins(true); + // Enable plugins + LLQtWebKit::getInstance()->enablePlugins(true); #elif LL_DARWIN - // Enable plugins - LLQtWebKit::getInstance()->enablePlugins(true); + // Enable plugins + LLQtWebKit::getInstance()->enablePlugins(true); #elif LL_LINUX - // Enable plugins - LLQtWebKit::getInstance()->enablePlugins(true); + // Enable plugins + LLQtWebKit::getInstance()->enablePlugins(true); #endif - // Enable cookies - LLQtWebKit::getInstance()->enableCookies( true ); + // Enable cookies + LLQtWebKit::getInstance()->enableCookies( true ); - // tell LLQtWebKit about the size of the browser window - LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight ); + // tell LLQtWebKit about the size of the browser window + LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight ); - // observer events that LLQtWebKit emits - LLQtWebKit::getInstance()->addObserver( mBrowserWindowId, this ); + // observer events that LLQtWebKit emits + LLQtWebKit::getInstance()->addObserver( mBrowserWindowId, this ); - // append details to agent string - LLQtWebKit::getInstance()->setBrowserAgentId( "LLPluginMedia Web Browser" ); + // append details to agent string + LLQtWebKit::getInstance()->setBrowserAgentId( "LLPluginMedia Web Browser" ); #if !LL_QTWEBKIT_USES_PIXMAPS - // don't flip bitmap - LLQtWebKit::getInstance()->flipWindow( mBrowserWindowId, true ); + // don't flip bitmap + LLQtWebKit::getInstance()->flipWindow( mBrowserWindowId, true ); #endif // !LL_QTWEBKIT_USES_PIXMAPS - - // set background color - // convert background color channels from [0.0, 1.0] to [0, 255]; - LLQtWebKit::getInstance()->setBackgroundColor( mBrowserWindowId, int(mBackgroundR * 255.0f), int(mBackgroundG * 255.0f), int(mBackgroundB * 255.0f) ); - - // Set state _before_ starting the navigate, since onNavigateBegin might get called before this call returns. - setInitState(INIT_STATE_NAVIGATING); - - // Don't do this here -- it causes the dreaded "white flash" when loading a browser instance. - // FIXME: Re-added this because navigating to a "page" initializes things correctly - especially - // for the HTTP AUTH dialog issues (DEV-41731). Will fix at a later date. - // Build a data URL like this: "data:text/html,%3Chtml%3E%3Cbody bgcolor=%22#RRGGBB%22%3E%3C/body%3E%3C/html%3E" - // where RRGGBB is the background color in HTML style - std::stringstream url; - - url << "data:text/html,%3Chtml%3E%3Cbody%20bgcolor=%22#"; - // convert background color channels from [0.0, 1.0] to [0, 255]; - url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundR * 255.0f); - url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundG * 255.0f); - url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundB * 255.0f); - url << "%22%3E%3C/body%3E%3C/html%3E"; - - lldebugs << "data url is: " << url.str() << llendl; - - LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, url.str() ); -// LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, "about:blank" ); - - return true; - }; + + // set background color + // convert background color channels from [0.0, 1.0] to [0, 255]; + LLQtWebKit::getInstance()->setBackgroundColor( mBrowserWindowId, int(mBackgroundR * 255.0f), int(mBackgroundG * 255.0f), int(mBackgroundB * 255.0f) ); + + // Set state _before_ starting the navigate, since onNavigateBegin might get called before this call returns. + setInitState(INIT_STATE_NAVIGATING); + + // Don't do this here -- it causes the dreaded "white flash" when loading a browser instance. + // FIXME: Re-added this because navigating to a "page" initializes things correctly - especially + // for the HTTP AUTH dialog issues (DEV-41731). Will fix at a later date. + // Build a data URL like this: "data:text/html,%3Chtml%3E%3Cbody bgcolor=%22#RRGGBB%22%3E%3C/body%3E%3C/html%3E" + // where RRGGBB is the background color in HTML style + std::stringstream url; + + url << "data:text/html,%3Chtml%3E%3Cbody%20bgcolor=%22#"; + // convert background color channels from [0.0, 1.0] to [0, 255]; + url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundR * 255.0f); + url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundG * 255.0f); + url << std::setfill('0') << std::setw(2) << std::hex << int(mBackgroundB * 255.0f); + url << "%22%3E%3C/body%3E%3C/html%3E"; + + lldebugs << "data url is: " << url.str() << llendl; + + LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, url.str() ); +// LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, "about:blank" ); - return false; - }; + return true; + } void setVolume(F32 vol); @@ -676,9 +697,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) { if(message_name == "init") { - std::string user_data_path = message_in.getValue("user_data_path"); // n.b. always has trailing platform-specific dir-delimiter - mProfileDir = user_data_path + "browser_profile"; - LLPluginMessage message("base", "init_response"); LLSD versions = LLSD::emptyMap(); versions[LLPLUGIN_MESSAGE_CLASS_BASE] = LLPLUGIN_MESSAGE_CLASS_BASE_VERSION; @@ -690,23 +708,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) plugin_version += LLQtWebKit::getInstance()->getVersion(); message.setValue("plugin_version", plugin_version); sendMessage(message); - - // Plugin gets to decide the texture parameters to use. - mDepth = 4; - - message.setMessage(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); - message.setValueS32("default_width", 1024); - message.setValueS32("default_height", 1024); - message.setValueS32("depth", mDepth); - message.setValueU32("internalformat", GL_RGBA); -#if LL_QTWEBKIT_USES_PIXMAPS - message.setValueU32("format", GL_BGRA_EXT); // I hope this isn't system-dependant... is it? If so, we'll have to check the root window's pixel layout or something... yuck. -#else - message.setValueU32("format", GL_RGBA); -#endif // LL_QTWEBKIT_USES_PIXMAPS - message.setValueU32("type", GL_UNSIGNED_BYTE); - message.setValueBoolean("coords_opengl", true); - sendMessage(message); } else if(message_name == "idle") { @@ -771,7 +772,7 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) // std::cerr << "MediaPluginWebKit::receiveMessage: unknown base message: " << message_name << std::endl; } } - else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME) + else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME) { if(message_name == "set_volume") { @@ -781,7 +782,50 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) } else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) { - if(message_name == "size_change") + if(message_name == "init") + { + // This is the media init message -- all necessary data for initialization should have been received. + if(initBrowser()) + { + + // Plugin gets to decide the texture parameters to use. + mDepth = 4; + + LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "texture_params"); + message.setValueS32("default_width", 1024); + message.setValueS32("default_height", 1024); + message.setValueS32("depth", mDepth); + message.setValueU32("internalformat", GL_RGBA); + #if LL_QTWEBKIT_USES_PIXMAPS + message.setValueU32("format", GL_BGRA_EXT); // I hope this isn't system-dependant... is it? If so, we'll have to check the root window's pixel layout or something... yuck. + #else + message.setValueU32("format", GL_RGBA); + #endif // LL_QTWEBKIT_USES_PIXMAPS + message.setValueU32("type", GL_UNSIGNED_BYTE); + message.setValueBoolean("coords_opengl", true); + sendMessage(message); + } + else + { + // if initialization failed, we're done. + mDeleteMe = true; + } + + } + else if(message_name == "set_user_data_path") + { + std::string user_data_path = message_in.getValue("path"); // n.b. always has trailing platform-specific dir-delimiter + mProfileDir = user_data_path + "browser_profile"; + + // FIXME: Should we do anything with this if it comes in after the browser has been initialized? + } + else if(message_name == "set_language_code") + { + mHostLanguage = message_in.getValue("language"); + + // FIXME: Should we do anything with this if it comes in after the browser has been initialized? + } + else if(message_name == "size_change") { std::string name = message_in.getValue("name"); S32 width = message_in.getValueS32("width"); @@ -803,29 +847,36 @@ void MediaPluginWebKit::receiveMessage(const char *message_string) mWidth = width; mHeight = height; - // initialize (only gets called once) - initBrowser(); - - // size changed so tell the browser - LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight ); - -// std::cerr << "webkit plugin: set size to " << mWidth << " x " << mHeight -// << ", rowspan is " << LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) << std::endl; - - S32 real_width = LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) / LLQtWebKit::getInstance()->getBrowserDepth(mBrowserWindowId); - - // The actual width the browser will be drawing to is probably smaller... let the host know by modifying texture_width in the response. - if(real_width <= texture_width) + if(initBrowserWindow()) { - texture_width = real_width; + + // size changed so tell the browser + LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight ); + + // std::cerr << "webkit plugin: set size to " << mWidth << " x " << mHeight + // << ", rowspan is " << LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) << std::endl; + + S32 real_width = LLQtWebKit::getInstance()->getBrowserRowSpan(mBrowserWindowId) / LLQtWebKit::getInstance()->getBrowserDepth(mBrowserWindowId); + + // The actual width the browser will be drawing to is probably smaller... let the host know by modifying texture_width in the response. + if(real_width <= texture_width) + { + texture_width = real_width; + } + else + { + // This won't work -- it'll be bigger than the allocated memory. This is a fatal error. + // std::cerr << "Fatal error: browser rowbytes greater than texture width" << std::endl; + mDeleteMe = true; + return; + } } else { - // This won't work -- it'll be bigger than the allocated memory. This is a fatal error. -// std::cerr << "Fatal error: browser rowbytes greater than texture width" << std::endl; + // Setting up the browser window failed. This is a fatal error. mDeleteMe = true; - return; } + mTextureWidth = texture_width; mTextureHeight = texture_height; diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif Binary files differnew file mode 100644 index 0000000000..f366026c33 --- /dev/null +++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLBUY.tif diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif Binary files differnew file mode 100644 index 0000000000..e9e6a20cd9 --- /dev/null +++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLOPEN.tif diff --git a/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif b/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif Binary files differnew file mode 100644 index 0000000000..bea3d9d442 --- /dev/null +++ b/indra/newview/cursors_mac/UI_CURSOR_TOOLSIT.tif diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 7b55282ee5..65503d4998 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1702,6 +1702,16 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it LLWearable* old_wearable = getWearable(type, 0); if (old_wearable) { + // Special case where you're putting on a wearable that has the same assetID + // as the previous (e.g. wear a shirt then wear a copy of that shirt) since in this + // case old_wearable == new_wearable. + if (old_wearable == new_wearable) + { + old_wearable->setLabelUpdated(); + new_wearable->setName(new_item->getName()); + new_wearable->setItemID(new_item->getUUID()); + } + const LLUUID& old_item_id = getWearableItemID(type, 0); if ((old_wearable->getAssetID() == new_wearable->getAssetID()) && (old_item_id == new_item->getUUID())) @@ -1717,7 +1727,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it continue; } } - + new_wearable->setItemID(new_item->getUUID()); setWearable(type,0,new_wearable); } @@ -1759,6 +1769,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it if (mAvatarObject) { + mAvatarObject->setCompositeUpdatesEnabled(TRUE); mAvatarObject->updateVisualParams(); mAvatarObject->invalidateAll(); } diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index f08d8decfe..f2d15757c9 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -436,9 +436,9 @@ void LLWearableHoldingPattern::checkMissingWearables() } } + mWaitTime.reset(); if (!pollMissingWearables()) { - mWaitTime.reset(); doOnIdleRepeating(boost::bind(&LLWearableHoldingPattern::pollMissingWearables,this)); } } @@ -494,11 +494,12 @@ bool LLWearableHoldingPattern::pollFetchCompletion() bool completed = isFetchCompleted(); bool timed_out = isTimedOut(); bool done = completed || timed_out; - - llinfos << "polling, done status: " << completed << " timed out " << timed_out << " elapsed " << mWaitTime.getElapsedTimeF32() << llendl; if (done) { + llinfos << "polling, done status: " << completed << " timed out " << timed_out + << " elapsed " << mWaitTime.getElapsedTimeF32() << llendl; + mFired = true; if (timed_out) @@ -1129,6 +1130,22 @@ void LLAppearanceManager::updateAgentWearables(LLWearableHoldingPattern* holder, // dec_busy_count(); } +static void remove_non_link_items(LLInventoryModel::item_array_t &items) +{ + LLInventoryModel::item_array_t pruned_items; + for (LLInventoryModel::item_array_t::const_iterator iter = items.begin(); + iter != items.end(); + ++iter) + { + const LLViewerInventoryItem *item = (*iter); + if (item && item->getIsLinkType()) + { + pruned_items.push_back((*iter)); + } + } + items = pruned_items; +} + void LLAppearanceManager::updateAppearanceFromCOF() { // update dirty flag to see if the state of the COF matches @@ -1142,13 +1159,17 @@ void LLAppearanceManager::updateAppearanceFromCOF() bool follow_folder_links = true; LLUUID current_outfit_id = getCOF(); - // Find all the wearables that are in the COF's subtree. + // Find all the wearables that are in the COF's subtree. lldebugs << "LLAppearanceManager::updateFromCOF()" << llendl; LLInventoryModel::item_array_t wear_items; LLInventoryModel::item_array_t obj_items; LLInventoryModel::item_array_t gest_items; getUserDescendents(current_outfit_id, wear_items, obj_items, gest_items, follow_folder_links); - + // Get rid of non-links in case somehow the COF was corrupted. + remove_non_link_items(wear_items); + remove_non_link_items(obj_items); + remove_non_link_items(gest_items); + if(!wear_items.count()) { LLNotificationsUtil::add("CouldNotPutOnOutfit"); @@ -1172,7 +1193,7 @@ void LLAppearanceManager::updateAppearanceFromCOF() { LLViewerInventoryItem *item = wear_items.get(i); LLViewerInventoryItem *linked_item = item ? item->getLinkedItem() : NULL; - if (item && linked_item) + if (item && item->getIsLinkType() && linked_item) { LLFoundData found(linked_item->getUUID(), linked_item->getAssetUUID(), @@ -1199,11 +1220,11 @@ void LLAppearanceManager::updateAppearanceFromCOF() { if (!item) { - llwarns << "attempt to wear a null item " << llendl; + llwarns << "Attempt to wear a null item " << llendl; } else if (!linked_item) { - llwarns << "attempt to wear a broken link " << item->getName() << llendl; + llwarns << "Attempt to wear a broken link [ name:" << item->getName() << " ] " << llendl; } } } @@ -1733,6 +1754,13 @@ BOOL LLAppearanceManager::getIsProtectedCOFItem(const LLUUID& obj_id) const { if (!getIsInCOF(obj_id)) return FALSE; + // If a non-link somehow ended up in COF, allow deletion. + const LLInventoryObject *obj = gInventory.getObject(obj_id); + if (obj && !obj->getIsLinkType()) + { + return FALSE; + } + // For now, don't allow direct deletion from the COF. Instead, force users // to choose "Detach" or "Take Off". return TRUE; diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 36faeb100f..2384e6c5ba 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -305,7 +305,9 @@ static std::string gLaunchFileOnQuit; // Used on Win32 for other apps to identify our window (eg, win_setup) const char* const VIEWER_WINDOW_CLASSNAME = "Second Life"; static const S32 FIRST_RUN_WINDOW_WIDTH = 1024; -static const S32 FIRST_RUN_WINDOW_HRIGHT = 768; + +//should account for Windows task bar +static const S32 FIRST_RUN_WINDOW_HIGHT = 738; //---------------------------------------------------------------------------- // List of entries from strings.xml to always replace @@ -2199,10 +2201,12 @@ bool LLAppViewer::initConfiguration() // Display splash screen. Must be after above check for previous // crash as this dialog is always frontmost. - std::ostringstream splash_msg; - splash_msg << "Loading " << LLTrans::getString("SECOND_LIFE") << "..."; + std::string splash_msg; + LLStringUtil::format_map_t args; + args["[APP_NAME]"] = LLTrans::getString("SECOND_LIFE"); + splash_msg = LLTrans::getString("StartupLoading", args); LLSplashScreen::show(); - LLSplashScreen::update(splash_msg.str()); + LLSplashScreen::update(splash_msg); //LLVolumeMgr::initClass(); LLVolumeMgr* volume_manager = new LLVolumeMgr(); @@ -2382,12 +2386,12 @@ bool LLAppViewer::initWindow() if (first_run)//for first login { window_width = FIRST_RUN_WINDOW_WIDTH;//yep hardcoded - window_height = FIRST_RUN_WINDOW_HRIGHT; + window_height = FIRST_RUN_WINDOW_HIGHT; - //if screen resolution is lower then 1024*768 then show maximized + //if screen resolution is lower then first run width/height then show maximized LLDisplayInfo display_info; if(display_info.getDisplayWidth() <= FIRST_RUN_WINDOW_WIDTH - || display_info.getDisplayHeight()<=FIRST_RUN_WINDOW_HRIGHT) + || display_info.getDisplayHeight()<=FIRST_RUN_WINDOW_HIGHT) { show_maximized = true; } @@ -3066,11 +3070,11 @@ bool LLAppViewer::initCache() if (mPurgeCache) { - LLSplashScreen::update("Clearing cache..."); + LLSplashScreen::update(LLTrans::getString("StartupClearingCache")); purgeCache(); } - LLSplashScreen::update("Initializing Texture Cache..."); + LLSplashScreen::update(LLTrans::getString("StartupInitializingTextureCache")); // Init the texture cache // Allocate 80% of the cache size for textures @@ -3083,7 +3087,7 @@ bool LLAppViewer::initCache() S64 extra = LLAppViewer::getTextureCache()->initCache(LL_PATH_CACHE, texture_cache_size, read_only); texture_cache_size -= extra; - LLSplashScreen::update("Initializing VFS..."); + LLSplashScreen::update(LLTrans::getString("StartupInitializingVFS")); // Init the VFS S64 vfs_size = cache_size - texture_cache_size; @@ -3852,7 +3856,7 @@ void LLAppViewer::idleShutdown() S32 finished_uploads = total_uploads - pending_uploads; F32 percent = 100.f * finished_uploads / total_uploads; gViewerWindow->setProgressPercent(percent); - gViewerWindow->setProgressString("Saving your settings..."); + gViewerWindow->setProgressString(LLTrans::getString("SavingSettings")); return; } @@ -3864,7 +3868,7 @@ void LLAppViewer::idleShutdown() // Wait for a LogoutReply message gViewerWindow->setShowProgress(TRUE); gViewerWindow->setProgressPercent(100.f); - gViewerWindow->setProgressString("Logging out..."); + gViewerWindow->setProgressString(LLTrans::getString("LoggingOut")); return; } diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 12cff32780..63d9ed19ad 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -480,10 +480,12 @@ bool LLAppViewerWin32::initHardwareTest() gSavedSettings.setBOOL("ProbeHardwareOnStartup", FALSE); // Disable so debugger can work - std::ostringstream splash_msg; - splash_msg << LLTrans::getString("StartupLoading") << " " << LLAppViewer::instance()->getSecondLifeTitle() << "..."; + std::string splash_msg; + LLStringUtil::format_map_t args; + args["[APP_NAME]"] = LLAppViewer::instance()->getSecondLifeTitle(); + splash_msg = LLTrans::getString("StartupLoading", args); - LLSplashScreen::update(splash_msg.str()); + LLSplashScreen::update(splash_msg); } if (!restoreErrorTrap()) diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp index a2322e28b4..80cf8f1d61 100644 --- a/indra/newview/llassetuploadresponders.cpp +++ b/indra/newview/llassetuploadresponders.cpp @@ -55,6 +55,7 @@ #include "llviewermenufile.h" #include "llviewerwindow.h" #include "lltexlayer.h" +#include "lltrans.h" // library includes #include "lldir.h" @@ -181,7 +182,7 @@ void LLAssetUploadResponder::uploadFailure(const LLSD& content) // deal with L$ errors if (reason == "insufficient funds") { - LLFloaterBuyCurrency::buyCurrency("Uploading costs", LLGlobalEconomy::Singleton::getInstance()->getPriceUpload()); + LLFloaterBuyCurrency::buyCurrency(LLTrans::getString("uploading_costs"), LLGlobalEconomy::Singleton::getInstance()->getPriceUpload()); } else { diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp index 844f0ac509..6842d3dc74 100644 --- a/indra/newview/llfloaterinventory.cpp +++ b/indra/newview/llfloaterinventory.cpp @@ -64,42 +64,6 @@ BOOL LLFloaterInventory::postBuild() return TRUE; } - -void LLFloaterInventory::draw() -{ - updateTitle(); - LLFloater::draw(); -} - -void LLFloaterInventory::updateTitle() -{ - LLLocale locale(LLLocale::USER_LOCALE); - std::string item_count_string; - LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); - - LLStringUtil::format_map_t string_args; - string_args["[ITEM_COUNT]"] = item_count_string; - string_args["[FILTER]"] = mPanelMainInventory->getFilterText(); - - if (LLInventoryModel::backgroundFetchActive()) - { - setTitle(getString("TitleFetching", string_args)); - } - else if (LLInventoryModel::isEverythingFetched()) - { - setTitle(getString("TitleCompleted", string_args)); - } - else - { - setTitle(getString("Title")); - } -} - -void LLFloaterInventory::changed(U32 mask) -{ - updateTitle(); -} - LLInventoryPanel* LLFloaterInventory::getPanel() { if (mPanelMainInventory) diff --git a/indra/newview/llfloaterinventory.h b/indra/newview/llfloaterinventory.h index b661c391a7..473d2b189d 100644 --- a/indra/newview/llfloaterinventory.h +++ b/indra/newview/llfloaterinventory.h @@ -63,13 +63,9 @@ public: static void cleanup(); // Inherited functionality - /*virtual*/ void changed(U32 mask); - /*virtual*/ void draw(); /*virtual*/ void onOpen(const LLSD& key); LLInventoryPanel* getPanel(); -protected: - void updateTitle(); private: LLPanelMainInventory* mPanelMainInventory; }; diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 26c6db9652..65003d9b5c 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -86,6 +86,7 @@ static std::string OWNER_ONLINE = "0"; static std::string OWNER_OFFLINE = "1"; static std::string OWNER_GROUP = "2"; +static std::string MATURITY = "[MATURITY]"; // constants used in callbacks below - syntactic sugar. static const BOOL BUY_GROUP_LAND = TRUE; @@ -102,6 +103,22 @@ public: virtual void changed() { LLFloaterLand::refreshAll(); } }; +// class needed to get full access to textbox inside checkbox, because LLCheckBoxCtrl::setLabel() has string as its argument. +// It was introduced while implementing EXT-4706 +class LLCheckBoxWithTBAcess : public LLCheckBoxCtrl +{ +public: + LLTextBox* getTextBox() + { + return mLabel; + } +}; + +// inserts maturity info(icon and text) into target textbox +// names_floater - pointer to floater which contains strings with maturity icons filenames +// str_to_parse is string in format "txt1[MATURITY]txt2" where maturity icon and text will be inserted instead of [MATURITY] +void insert_maturity_into_textbox(LLTextBox* target_textbox, LLFloater* names_floater, std::string str_to_parse); + //--------------------------------------------------------------------------- // LLFloaterLand //--------------------------------------------------------------------------- @@ -554,7 +571,7 @@ void LLPanelLandGeneral::refresh() if (regionp) { - mContentRating->setText(regionp->getSimAccessString()); + insert_maturity_into_textbox(mContentRating, gFloaterView->getParentFloater(this), MATURITY); mLandType->setText(regionp->getSimProductName()); } @@ -803,16 +820,19 @@ void LLPanelLandGeneral::refreshNames() } mTextGroup->setText(group); - const LLUUID& auth_buyer_id = parcel->getAuthorizedBuyerID(); - if(auth_buyer_id.notNull()) - { - std::string name; - name = LLSLURL::buildCommand("agent", auth_buyer_id, "inspect"); - mSaleInfoForSale2->setTextArg("[BUYER]", name); - } - else + if (parcel->getForSale()) { - mSaleInfoForSale2->setTextArg("[BUYER]", getString("anyone")); + const LLUUID& auth_buyer_id = parcel->getAuthorizedBuyerID(); + if(auth_buyer_id.notNull()) + { + std::string name; + name = LLSLURL::buildCommand("agent", auth_buyer_id, "inspect"); + mSaleInfoForSale2->setTextArg("[BUYER]", name); + } + else + { + mSaleInfoForSale2->setTextArg("[BUYER]", getString("anyone")); + } } } @@ -2058,8 +2078,14 @@ void LLPanelLandOptions::refresh() { // not teen so fill in the data for the maturity control mMatureCtrl->setVisible(TRUE); - mMatureCtrl->setLabel(getString("mature_check_mature")); - mMatureCtrl->setToolTip(getString("mature_check_mature_tooltip")); + LLStyle::Params style; + style.image(LLUI::getUIImage(gFloaterView->getParentFloater(this)->getString("maturity_icon_moderate"))); + LLCheckBoxWithTBAcess* fullaccess_mature_ctrl = (LLCheckBoxWithTBAcess*)mMatureCtrl; + fullaccess_mature_ctrl->getTextBox()->setText(std::string("icon"),style); + fullaccess_mature_ctrl->getTextBox()->appendText(getString("mature_check_mature"), false); + fullaccess_mature_ctrl->setToolTip(getString("mature_check_mature_tooltip")); + fullaccess_mature_ctrl->reshape(fullaccess_mature_ctrl->getRect().getWidth(), fullaccess_mature_ctrl->getRect().getHeight(), FALSE); + // they can see the checkbox, but its disposition depends on the // state of the region LLViewerRegion* regionp = LLViewerParcelMgr::getInstance()->getSelectionRegion(); @@ -2460,19 +2486,26 @@ void LLPanelLandAccess::refresh() } } + LLCheckBoxWithTBAcess* maturity_checkbox = (LLCheckBoxWithTBAcess*) getChild<LLCheckBoxCtrl>( "public_access"); LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion(); if(region) { - std::string region_access = "("; - region_access += region->getSimAccessString(); - region_access += ")"; - childSetLabelArg( "public_access", "[MATURITY]", region_access ); + LLTextBox* maturity_textbox = maturity_checkbox->getTextBox(); + insert_maturity_into_textbox(maturity_textbox, gFloaterView->getParentFloater(this), getString("allow_public_access")); + maturity_checkbox->reshape(maturity_checkbox->getRect().getWidth(), maturity_checkbox->getRect().getHeight(), FALSE); } else { - childSetLabelArg( "public_access", "[MATURITY]", std::string() ); - } + std::string maturity_string = getString("allow_public_access"); + size_t maturity_pos = maturity_string.find(MATURITY); + + if (maturity_pos != std::string::npos) + { + maturity_string.replace(maturity_pos, MATURITY.length(), std::string("")); + } + maturity_checkbox->setLabel(maturity_string); + } if(parcel->getRegionDenyAnonymousOverride()) { @@ -2858,7 +2891,7 @@ void LLPanelLandCovenant::refresh() LLTextBox* region_maturity = getChild<LLTextBox>("region_maturity_text"); if (region_maturity) { - region_maturity->setText(region->getSimAccessString()); + insert_maturity_into_textbox(region_maturity, gFloaterView->getParentFloater(this), MATURITY); } LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause"); @@ -2939,3 +2972,51 @@ void LLPanelLandCovenant::updateEstateOwnerName(const std::string& name) if (editor) editor->setText(name); } } + +// inserts maturity info(icon and text) into target textbox +// names_floater - pointer to floater which contains strings with maturity icons filenames +// str_to_parse is string in format "txt1[MATURITY]txt2" where maturity icon and text will be inserted instead of [MATURITY] +void insert_maturity_into_textbox(LLTextBox* target_textbox, LLFloater* names_floater, std::string str_to_parse) +{ + LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion(); + if (!region) + return; + + LLStyle::Params style; + + U8 sim_access = region->getSimAccess(); + + switch(sim_access) + { + case SIM_ACCESS_PG: + style.image(LLUI::getUIImage(names_floater->getString("maturity_icon_general"))); + break; + + case SIM_ACCESS_ADULT: + style.image(LLUI::getUIImage(names_floater->getString("maturity_icon_adult"))); + break; + + case SIM_ACCESS_MATURE: + style.image(LLUI::getUIImage(names_floater->getString("maturity_icon_moderate"))); + break; + + default: + break; + } + + size_t maturity_pos = str_to_parse.find(MATURITY); + + if (maturity_pos == std::string::npos) + { + return; + } + + std::string text_before_rating = str_to_parse.substr(0, maturity_pos); + std::string text_after_rating = str_to_parse.substr(maturity_pos + MATURITY.length()); + + target_textbox->setText(text_before_rating); + // any text may be here instead of "icon" except "" + target_textbox->appendText(std::string("icon"), false, style); + target_textbox->appendText(LLViewerParcelMgr::getInstance()->getSelectionRegion()->getSimAccessString(), false); + target_textbox->appendText(text_after_rating, false); +} diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 8bffe9bf57..e998d10fcc 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -110,6 +110,9 @@ const F32 MAX_USER_FAR_CLIP = 512.f; const F32 MIN_USER_FAR_CLIP = 64.f; +//control value for middle mouse as talk2push button +const static std::string MIDDLE_MOUSE_CV = "MiddleMouse"; + class LLVoiceSetKeyDialog : public LLModalDialog { public: @@ -1008,9 +1011,17 @@ void LLFloaterPreference::setKey(KEY key) void LLFloaterPreference::onClickSetMiddleMouse() { - childSetValue("modifier_combo", "MiddleMouse"); + LLUICtrl* p2t_line_editor = getChild<LLUICtrl>("modifier_combo"); + // update the control right away since we no longer wait for apply - getChild<LLUICtrl>("modifier_combo")->onCommit(); + p2t_line_editor->setControlValue(MIDDLE_MOUSE_CV); + + //push2talk button "middle mouse" control value is in English, need to localize it for presentation + LLPanel* advanced_preferences = dynamic_cast<LLPanel*>(p2t_line_editor->getParent()); + if (advanced_preferences) + { + p2t_line_editor->setValue(advanced_preferences->getString("middle_mouse")); + } } /* void LLFloaterPreference::onClickSkipDialogs() @@ -1302,6 +1313,16 @@ BOOL LLPanelPreference::postBuild() getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2)); } + // Panel Advanced + if (hasChild("modifier_combo")) + { + //localizing if push2talk button is set to middle mouse + if (MIDDLE_MOUSE_CV == childGetValue("modifier_combo").asString()) + { + childSetValue("modifier_combo", getString("middle_mouse")); + } + } + apply(); return true; } diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp index 122bdc8bc7..daba3d8460 100644 --- a/indra/newview/llfloaterscriptlimits.cpp +++ b/indra/newview/llfloaterscriptlimits.cpp @@ -110,7 +110,7 @@ BOOL LLFloaterScriptLimits::postBuild() if(!mTab) { - llinfos << "Error! couldn't get scriptlimits_panels, aborting Script Information setup" << llendl; + llwarns << "Error! couldn't get scriptlimits_panels, aborting Script Information setup" << llendl; return FALSE; } @@ -214,7 +214,7 @@ void fetchScriptLimitsRegionInfoResponder::result(const LLSD& content) LLFloaterScriptLimits* instance = LLFloaterReg::getTypedInstance<LLFloaterScriptLimits>("script_limits"); if(!instance) { - llinfos << "Failed to get llfloaterscriptlimits instance" << llendl; + llwarns << "Failed to get llfloaterscriptlimits instance" << llendl; } } @@ -227,7 +227,7 @@ void fetchScriptLimitsRegionInfoResponder::result(const LLSD& content) void fetchScriptLimitsRegionInfoResponder::error(U32 status, const std::string& reason) { - llinfos << "Error from responder " << reason << llendl; + llwarns << "Error from responder " << reason << llendl; } void fetchScriptLimitsRegionSummaryResponder::result(const LLSD& content_ref) @@ -281,26 +281,40 @@ void fetchScriptLimitsRegionSummaryResponder::result(const LLSD& content_ref) OSMessageBox(nice_llsd.str(), "summary response:", 0); - llinfos << "summary response:" << *content << llendl; + llwarns << "summary response:" << *content << llendl; #endif LLFloaterScriptLimits* instance = LLFloaterReg::getTypedInstance<LLFloaterScriptLimits>("script_limits"); if(!instance) { - llinfos << "Failed to get llfloaterscriptlimits instance" << llendl; + llwarns << "Failed to get llfloaterscriptlimits instance" << llendl; } else { LLTabContainer* tab = instance->getChild<LLTabContainer>("scriptlimits_panels"); - LLPanelScriptLimitsRegionMemory* panel_memory = (LLPanelScriptLimitsRegionMemory*)tab->getChild<LLPanel>("script_limits_region_memory_panel"); - panel_memory->setRegionSummary(content); + if(tab) + { + LLPanelScriptLimitsRegionMemory* panel_memory = (LLPanelScriptLimitsRegionMemory*)tab->getChild<LLPanel>("script_limits_region_memory_panel"); + if(panel_memory) + { + panel_memory->childSetValue("loading_text", LLSD(std::string(""))); + + LLButton* btn = panel_memory->getChild<LLButton>("refresh_list_btn"); + if(btn) + { + btn->setEnabled(true); + } + + panel_memory->setRegionSummary(content); + } + } } } void fetchScriptLimitsRegionSummaryResponder::error(U32 status, const std::string& reason) { - llinfos << "Error from responder " << reason << llendl; + llwarns << "Error from responder " << reason << llendl; } void fetchScriptLimitsRegionDetailsResponder::result(const LLSD& content_ref) @@ -383,7 +397,7 @@ result (map) if(!instance) { - llinfos << "Failed to get llfloaterscriptlimits instance" << llendl; + llwarns << "Failed to get llfloaterscriptlimits instance" << llendl; } else { @@ -397,19 +411,19 @@ result (map) } else { - llinfos << "Failed to get scriptlimits memory panel" << llendl; + llwarns << "Failed to get scriptlimits memory panel" << llendl; } } else { - llinfos << "Failed to get scriptlimits_panels" << llendl; + llwarns << "Failed to get scriptlimits_panels" << llendl; } } } void fetchScriptLimitsRegionDetailsResponder::error(U32 status, const std::string& reason) { - llinfos << "Error from responder " << reason << llendl; + llwarns << "Error from responder " << reason << llendl; } void fetchScriptLimitsAttachmentInfoResponder::result(const LLSD& content_ref) @@ -471,7 +485,7 @@ void fetchScriptLimitsAttachmentInfoResponder::result(const LLSD& content_ref) if(!instance) { - llinfos << "Failed to get llfloaterscriptlimits instance" << llendl; + llwarns << "Failed to get llfloaterscriptlimits instance" << llendl; } else { @@ -481,29 +495,46 @@ void fetchScriptLimitsAttachmentInfoResponder::result(const LLSD& content_ref) LLPanelScriptLimitsAttachment* panel = (LLPanelScriptLimitsAttachment*)tab->getChild<LLPanel>("script_limits_my_avatar_panel"); if(panel) { + panel->childSetValue("loading_text", LLSD(std::string(""))); + + LLButton* btn = panel->getChild<LLButton>("refresh_list_btn"); + if(btn) + { + btn->setEnabled(true); + } + panel->setAttachmentDetails(content); } else { - llinfos << "Failed to get script_limits_my_avatar_panel" << llendl; + llwarns << "Failed to get script_limits_my_avatar_panel" << llendl; } } else { - llinfos << "Failed to get scriptlimits_panels" << llendl; + llwarns << "Failed to get scriptlimits_panels" << llendl; } } } void fetchScriptLimitsAttachmentInfoResponder::error(U32 status, const std::string& reason) { - llinfos << "Error from responder " << reason << llendl; + llwarns << "Error from responder " << reason << llendl; } ///---------------------------------------------------------------------------- // Memory Panel ///---------------------------------------------------------------------------- +LLPanelScriptLimitsRegionMemory::~LLPanelScriptLimitsRegionMemory() +{ + if(!mParcelId.isNull()) + { + LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelId, this); + mParcelId.setNull(); + } +}; + BOOL LLPanelScriptLimitsRegionMemory::getLandScriptResources() { LLSD body; @@ -544,6 +575,11 @@ void LLPanelScriptLimitsRegionMemory::setParcelID(const LLUUID& parcel_id) { if (!parcel_id.isNull()) { + if(!mParcelId.isNull()) + { + LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelId, this); + mParcelId.setNull(); + } LLRemoteParcelInfoProcessor::getInstance()->addObserver(parcel_id, this); LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(parcel_id); } @@ -597,7 +633,7 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content) if(!list) { - llinfos << "Error getting the scripts_list control" << llendl; + llwarns << "Error getting the scripts_list control" << llendl; return; } @@ -734,8 +770,6 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content) // save the structure to make object return easier mContent = content; - - childSetValue("loading_text", LLSD(std::string(""))); } void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content) @@ -754,7 +788,7 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content) } else { - llinfos << "summary doesn't contain memory info" << llendl; + llwarns << "summary doesn't contain memory info" << llendl; return; } @@ -772,7 +806,7 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content) } else { - llinfos << "summary doesn't contain urls info" << llendl; + llwarns << "summary doesn't contain urls info" << llendl; return; } @@ -919,8 +953,6 @@ void LLPanelScriptLimitsRegionMemory::clearList() // static void LLPanelScriptLimitsRegionMemory::onClickRefresh(void* userdata) { - llinfos << "LLPanelRegionGeneralInfo::onClickRefresh" << llendl; - LLFloaterScriptLimits* instance = LLFloaterReg::getTypedInstance<LLFloaterScriptLimits>("script_limits"); if(instance) { @@ -930,6 +962,13 @@ void LLPanelScriptLimitsRegionMemory::onClickRefresh(void* userdata) LLPanelScriptLimitsRegionMemory* panel_memory = (LLPanelScriptLimitsRegionMemory*)tab->getChild<LLPanel>("script_limits_region_memory_panel"); if(panel_memory) { + //To stop people from hammering the refesh button and accidentally dosing themselves - enough requests can crash the viewer! + //turn the button off, then turn it on when we get a response + LLButton* btn = panel_memory->getChild<LLButton>("refresh_list_btn"); + if(btn) + { + btn->setEnabled(false); + } panel_memory->clearList(); panel_memory->StartRequestChain(); @@ -969,7 +1008,6 @@ void LLPanelScriptLimitsRegionMemory::showBeacon() // static void LLPanelScriptLimitsRegionMemory::onClickHighlight(void* userdata) { - llinfos << "LLPanelRegionGeneralInfo::onClickHighlight" << llendl; LLFloaterScriptLimits* instance = LLFloaterReg::getTypedInstance<LLFloaterScriptLimits>("script_limits"); if(instance) { @@ -1075,7 +1113,6 @@ void LLPanelScriptLimitsRegionMemory::returnObjects() // static void LLPanelScriptLimitsRegionMemory::onClickReturn(void* userdata) { - llinfos << "LLPanelRegionGeneralInfo::onClickReturn" << llendl; LLFloaterScriptLimits* instance = LLFloaterReg::getTypedInstance<LLFloaterScriptLimits>("script_limits"); if(instance) { @@ -1178,6 +1215,12 @@ void LLPanelScriptLimitsAttachment::setAttachmentDetails(LLSD content) setAttachmentSummary(content); childSetValue("loading_text", LLSD(std::string(""))); + + LLButton* btn = getChild<LLButton>("refresh_list_btn"); + if(btn) + { + btn->setEnabled(true); + } } BOOL LLPanelScriptLimitsAttachment::postBuild() @@ -1218,7 +1261,7 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content) } else { - llinfos << "attachment details don't contain memory summary info" << llendl; + llwarns << "attachment details don't contain memory summary info" << llendl; return; } @@ -1236,7 +1279,7 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content) } else { - llinfos << "attachment details don't contain urls summary info" << llendl; + llwarns << "attachment details don't contain urls summary info" << llendl; return; } @@ -1267,16 +1310,23 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content) // static void LLPanelScriptLimitsAttachment::onClickRefresh(void* userdata) -{ - llinfos << "Refresh clicked" << llendl; - +{ LLFloaterScriptLimits* instance = LLFloaterReg::getTypedInstance<LLFloaterScriptLimits>("script_limits"); if(instance) { LLTabContainer* tab = instance->getChild<LLTabContainer>("scriptlimits_panels"); LLPanelScriptLimitsAttachment* panel_attachments = (LLPanelScriptLimitsAttachment*)tab->getChild<LLPanel>("script_limits_my_avatar_panel"); + LLButton* btn = panel_attachments->getChild<LLButton>("refresh_list_btn"); + + //To stop people from hammering the refesh button and accidentally dosing themselves - enough requests can crash the viewer! + //turn the button off, then turn it on when we get a response + if(btn) + { + btn->setEnabled(false); + } panel_attachments->clearList(); panel_attachments->requestAttachmentDetails(); + return; } else diff --git a/indra/newview/llfloaterscriptlimits.h b/indra/newview/llfloaterscriptlimits.h index 0cba4d72f2..3c32b9f701 100644 --- a/indra/newview/llfloaterscriptlimits.h +++ b/indra/newview/llfloaterscriptlimits.h @@ -153,10 +153,7 @@ public: mParcelMemoryMax(0), mParcelMemoryUsed(0) {}; - ~LLPanelScriptLimitsRegionMemory() - { - LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelId, this); - }; + ~LLPanelScriptLimitsRegionMemory(); // LLPanel virtual BOOL postBuild(); diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index cc807c2370..f74d912842 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -186,7 +186,7 @@ LLFolderView::LLFolderView(const Params& p) mNeedsAutoRename(FALSE), mDebugFilters(FALSE), mSortOrder(LLInventoryFilter::SO_FOLDERS_BY_NAME), // This gets overridden by a pref immediately - mFilter( new LLInventoryFilter(p.name) ), + mFilter( new LLInventoryFilter(p.title) ), mShowSelectionContext(FALSE), mShowSingleSelection(FALSE), mArrangeGeneration(0), @@ -417,11 +417,6 @@ S32 LLFolderView::arrange( S32* unused_width, S32* unused_height, S32 filter_gen S32 total_width = LEFT_PAD; S32 running_height = mDebugFilters ? llceil(LLFontGL::getFontMonospace()->getLineHeight()) : 0; S32 target_height = running_height; - if(!mHasVisibleChildren)// is there any filtered items ? - { - //Nope. We need to display status textbox, let's reserve some place for it - target_height += mStatusTextBox->getTextPixelHeight(); - } S32 parent_item_height = getRect().getHeight(); for (folders_t::iterator iter = mFolders.begin(); @@ -481,6 +476,13 @@ S32 LLFolderView::arrange( S32* unused_width, S32* unused_height, S32 filter_gen } } + if(!mHasVisibleChildren)// is there any filtered items ? + { + //Nope. We need to display status textbox, let's reserve some place for it + running_height = mStatusTextBox->getTextPixelHeight(); + target_height = running_height; + } + LLRect scroll_rect = mScrollContainer->getContentWindowRect(); reshape( llmax(scroll_rect.getWidth(), total_width), running_height ); @@ -837,11 +839,14 @@ void LLFolderView::sanitizeSelection() void LLFolderView::clearSelection() { - if (mSelectedItems.size() > 0) + for (selected_items_t::const_iterator item_it = mSelectedItems.begin(); + item_it != mSelectedItems.end(); + ++item_it) { - recursiveDeselect(FALSE); - mSelectedItems.clear(); + (*item_it)->setUnselected(); } + + mSelectedItems.clear(); mSelectThisID.setNull(); } @@ -1826,7 +1831,9 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask ) BOOL handled = childrenHandleRightMouseDown(x, y, mask) != NULL; S32 count = mSelectedItems.size(); LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get(); - if(handled && (count > 0) && menu) + if ( handled + && ( count > 0 && (hasVisibleChildren() || mFilter->getShowFolderState() == LLInventoryFilter::SHOW_ALL_FOLDERS) ) // show menu only if selected items are visible + && menu ) { if (mCallbackRegistrar) mCallbackRegistrar->pushScope(); diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index 38255b3cea..42390dfd17 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -93,8 +93,9 @@ class LLFolderView : public LLFolderViewFolder, public LLEditMenuHandler public: struct Params : public LLInitParam::Block<Params, LLFolderViewFolder::Params> { - Mandatory<LLPanel*> parent_panel; - Optional<LLUUID> task_id; + Mandatory<LLPanel*> parent_panel; + Optional<LLUUID> task_id; + Optional<std::string> title; }; LLFolderView(const Params&); virtual ~LLFolderView( void ); diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index 76607e4874..bb4c75d3ac 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -121,7 +121,6 @@ LLFolderViewItem::LLFolderViewItem(const LLFolderViewItem::Params& p) mHasVisibleChildren(FALSE), mIndentation(0), mItemHeight(p.item_height), - mNumDescendantsSelected(0), mPassedFilter(FALSE), mLastFilterGeneration(-1), mStringMatchOffset(std::string::npos), @@ -256,11 +255,30 @@ void LLFolderViewItem::refreshFromListener() // temporary attempt to display the inventory folder in the user locale. // mantipov: *NOTE: be sure this code is synchronized with LLFriendCardsManager::findChildFolderUUID // it uses the same way to find localized string - if (LLFolderType::lookupIsProtectedType(preferred_type)) + + // HACK: EXT - 6028 ([HARD CODED]? Inventory > Library > "Accessories" folder) + // Translation of Accessories folder in Library inventory folder + bool accessories = false; + if(mLabel == std::string("Accessories")) + { + //To ensure that Accessories folder is in Library we have to check its parent folder. + //Due to parent LLFolderViewFloder is not set to this item yet we have to check its parent via Inventory Model + LLInventoryCategory* cat = gInventory.getCategory(mListener->getUUID()); + if(cat) + { + const LLUUID& parent_folder_id = cat->getParentUUID(); + accessories = (parent_folder_id == gInventory.getLibraryRootFolderID()); + } + } + + //"Accessories" inventory category has folder type FT_NONE. So, this folder + //can not be detected as protected with LLFolderType::lookupIsProtectedType + if (accessories || LLFolderType::lookupIsProtectedType(preferred_type)) { LLTrans::findString(mLabel, "InvFolder " + mLabel); }; + setToolTip(mLabel); setIcon(mListener->getIcon()); time_t creation_date = mListener->getCreationDate(); if (mCreationDate != creation_date) @@ -497,22 +515,6 @@ BOOL LLFolderViewItem::changeSelection(LLFolderViewItem* selection, BOOL selecte return FALSE; } -void LLFolderViewItem::recursiveDeselect(BOOL deselect_self) -{ - if (mIsSelected && deselect_self) - { - mIsSelected = FALSE; - - // update ancestors' count of selected descendents - LLFolderViewFolder* parent_folder = getParentFolder(); - while(parent_folder) - { - parent_folder->mNumDescendantsSelected--; - parent_folder = parent_folder->getParentFolder(); - } - } -} - BOOL LLFolderViewItem::isMovable() { @@ -1459,7 +1461,6 @@ BOOL LLFolderViewFolder::setSelection(LLFolderViewItem* selection, BOOL openitem { rv = TRUE; child_selected = TRUE; - mNumDescendantsSelected++; } } for (items_t::iterator iter = mItems.begin(); @@ -1470,7 +1471,6 @@ BOOL LLFolderViewFolder::setSelection(LLFolderViewItem* selection, BOOL openitem { rv = TRUE; child_selected = TRUE; - mNumDescendantsSelected++; } } if(openitem && child_selected) @@ -1503,14 +1503,6 @@ BOOL LLFolderViewFolder::changeSelection(LLFolderViewItem* selection, folders_t::iterator fit = iter++; if((*fit)->changeSelection(selection, selected)) { - if (selected) - { - mNumDescendantsSelected++; - } - else - { - mNumDescendantsSelected--; - } rv = TRUE; } } @@ -1520,14 +1512,6 @@ BOOL LLFolderViewFolder::changeSelection(LLFolderViewItem* selection, items_t::iterator iit = iter++; if((*iit)->changeSelection(selection, selected)) { - if (selected) - { - mNumDescendantsSelected++; - } - else - { - mNumDescendantsSelected--; - } rv = TRUE; } } @@ -1544,7 +1528,6 @@ S32 LLFolderViewFolder::extendSelection(LLFolderViewItem* selection, LLFolderVie { folders_t::iterator fit = iter++; num_selected += (*fit)->extendSelection(selection, last_selected, selected_items); - mNumDescendantsSelected += num_selected; } // handle selection of our immediate children... @@ -1637,7 +1620,6 @@ S32 LLFolderViewFolder::extendSelection(LLFolderViewItem* selection, LLFolderVie if (item->changeSelection(item, TRUE)) { selected_items.put(item); - mNumDescendantsSelected++; num_selected++; } } @@ -1648,7 +1630,6 @@ S32 LLFolderViewFolder::extendSelection(LLFolderViewItem* selection, LLFolderVie if (selection->changeSelection(selection, TRUE)) { selected_items.put(selection); - mNumDescendantsSelected++; num_selected++; } } @@ -1656,47 +1637,6 @@ S32 LLFolderViewFolder::extendSelection(LLFolderViewItem* selection, LLFolderVie return num_selected; } -void LLFolderViewFolder::recursiveDeselect(BOOL deselect_self) -{ - // make sure we don't have negative values - llassert(mNumDescendantsSelected >= 0); - - if (mIsSelected && deselect_self) - { - mIsSelected = FALSE; - - // update ancestors' count of selected descendents - LLFolderViewFolder* parent_folder = getParentFolder(); - while(parent_folder) - { - parent_folder->mNumDescendantsSelected--; - parent_folder = parent_folder->getParentFolder(); - } - } - - if (0 == mNumDescendantsSelected) - { - return; - } - - for (items_t::iterator iter = mItems.begin(); - iter != mItems.end();) - { - items_t::iterator iit = iter++; - LLFolderViewItem* item = (*iit); - item->recursiveDeselect(TRUE); - } - - for (folders_t::iterator iter = mFolders.begin(); - iter != mFolders.end();) - { - folders_t::iterator fit = iter++; - LLFolderViewFolder* folder = (*fit); - folder->recursiveDeselect(TRUE); - } - -} - void LLFolderViewFolder::destroyView() { for (items_t::iterator iter = mItems.begin(); @@ -1730,8 +1670,6 @@ BOOL LLFolderViewFolder::removeItem(LLFolderViewItem* item) { if(item->remove()) { - //RN: this seem unneccessary as remove() moves to trash - //removeView(item); return TRUE; } return FALSE; @@ -1746,7 +1684,6 @@ void LLFolderViewFolder::removeView(LLFolderViewItem* item) return; } // deselect without traversing hierarchy - item->recursiveDeselect(TRUE); getRoot()->removeFromSelectionList(item); extractItem(item); delete item; diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h index be8e73a5a9..655ad89e99 100644 --- a/indra/newview/llfolderviewitem.h +++ b/indra/newview/llfolderviewitem.h @@ -150,7 +150,6 @@ protected: BOOL mHasVisibleChildren; S32 mIndentation; S32 mItemHeight; - S32 mNumDescendantsSelected; BOOL mPassedFilter; S32 mLastFilterGeneration; std::string::size_type mStringMatchOffset; @@ -231,9 +230,6 @@ public: // this method is used to group select items virtual S32 extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items){ return FALSE; } - // this method is used to group select items - virtual void recursiveDeselect(BOOL deselect_self); - // gets multiple-element selection virtual BOOL getSelectionList(std::set<LLUUID> &selection) const {return TRUE;} @@ -246,10 +242,10 @@ public: // destroys this item recursively virtual void destroyView(); - S32 getNumSelectedDescendants() { return mNumDescendantsSelected; } - BOOL isSelected() { return mIsSelected; } + void setUnselected() { mIsSelected = FALSE; } + void setIsCurSelection(BOOL select) { mIsCurSelection = select; } BOOL getIsCurSelection() { return mIsCurSelection; } @@ -441,8 +437,6 @@ public: // this method is used to group select items virtual S32 extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items); - virtual void recursiveDeselect(BOOL deselect_self); - // Returns true is this object and all of its children can be removed. virtual BOOL isRemovable(); diff --git a/indra/newview/llgrouplist.cpp b/indra/newview/llgrouplist.cpp index bcfb516b81..8a056f836f 100644 --- a/indra/newview/llgrouplist.cpp +++ b/indra/newview/llgrouplist.cpp @@ -127,7 +127,7 @@ BOOL LLGroupList::handleRightMouseDown(S32 x, S32 y, MASK mask) BOOL handled = LLUICtrl::handleRightMouseDown(x, y, mask); LLMenuGL* context_menu = (LLMenuGL*)mContextMenuHandle.get(); - if (context_menu) + if (context_menu && size() > 0) { context_menu->buildDrawLabels(); context_menu->updateParent(LLMenuGL::sMenuContainer); diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp index aeac3841f9..7f93a357de 100644 --- a/indra/newview/llgroupmgr.cpp +++ b/indra/newview/llgroupmgr.cpp @@ -54,6 +54,7 @@ #include "llgroupactions.h" #include "llnotificationsutil.h" #include "lluictrlfactory.h" +#include "lltrans.h" #include <boost/regex.hpp> #if LL_MSVC @@ -1062,6 +1063,24 @@ void LLGroupMgr::processGroupRoleDataReply(LLMessageSystem* msg, void** data) msg->getU64("RoleData","Powers",powers,i); msg->getU32("RoleData","Members",member_count,i); + //there are 3 predifined roles - Owners, Officers, Everyone + //there names are defined in lldatagroups.cpp + //lets change names from server to localized strings + if(name == "Everyone") + { + name = LLTrans::getString("group_role_everyone"); + } + else if(name == "Officers") + { + name = LLTrans::getString("group_role_officers"); + } + else if(name == "Owners") + { + name = LLTrans::getString("group_role_owners"); + } + + + lldebugs << "Adding role data: " << name << " {" << role_id << "}" << llendl; LLGroupRoleData* rd = new LLGroupRoleData(role_id,name,title,desc,powers,member_count); group_data->mRoles[role_id] = rd; diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 27a40c6ba0..1f918c72ea 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -683,14 +683,15 @@ void LLInvFVBridge::addTrashContextMenuOptions(menuentry_vec_t &items, void LLInvFVBridge::addDeleteContextMenuOptions(menuentry_vec_t &items, menuentry_vec_t &disabled_items) { + + const LLInventoryObject *obj = getInventoryObject(); + // Don't allow delete as a direct option from COF folder. - if (isCOFFolder()) + if (obj && obj->getIsLinkType() && isCOFFolder()) { return; } - const LLInventoryObject *obj = getInventoryObject(); - // "Remove link" and "Delete" are the same operation. if (obj && obj->getIsLinkType() && !get_is_item_worn(mUUID)) { @@ -2689,8 +2690,7 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) LLViewerInventoryCategory *cat = getCategory(); // BAP removed protected check to re-enable standard ops in untyped folders. // Not sure what the right thing is to do here. - if (!isCOFFolder() && cat && cat->getPreferredType()!=LLFolderType::FT_OUTFIT /*&& - LLAssetType::lookupIsProtectedCategoryType(cat->getPreferredType())*/) + if (!isCOFFolder() && cat && (cat->getPreferredType() != LLFolderType::FT_OUTFIT)) { // Do not allow to create 2-level subfolder in the Calling Card/Friends folder. EXT-694. if (!LLFriendCardsManager::instance().isCategoryInFriendFolder(cat)) @@ -3808,7 +3808,9 @@ std::string LLGestureBridge::getLabelSuffix() const { if( LLGestureManager::instance().isGestureActive(mUUID) ) { - return LLItemBridge::getLabelSuffix() + " (active)"; + LLStringUtil::format_map_t args; + args["[GESLABEL]"] = LLItemBridge::getLabelSuffix(); + return LLTrans::getString("ActiveGesture", args); } else { @@ -4157,7 +4159,7 @@ std::string LLObjectBridge::getLabelSuffix() const // e.g. "(worn on ...)" / "(attached to ...)" LLStringUtil::format_map_t args; - args["[ATTACHMENT_POINT]"] = attachment_point_name.c_str(); + args["[ATTACHMENT_POINT]"] = LLTrans::getString(attachment_point_name); return LLItemBridge::getLabelSuffix() + LLTrans::getString("WornOnAttachmentPoint", args); } else @@ -4276,7 +4278,7 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags) items.push_back(std::string("Attach Separator")); items.push_back(std::string("Detach From Yourself")); } - else if (!isItemInTrash() && !isLinkedObjectInTrash() && !isLinkedObjectMissing()) + else if (!isItemInTrash() && !isLinkedObjectInTrash() && !isLinkedObjectMissing() && !isCOFFolder()) { items.push_back(std::string("Attach Separator")); items.push_back(std::string("Object Wear")); @@ -4702,7 +4704,7 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags) disabled_items.push_back(std::string("Wearable Edit")); } // Don't allow items to be worn if their baseobj is in the trash. - if (isLinkedObjectInTrash() || isLinkedObjectMissing()) + if (isLinkedObjectInTrash() || isLinkedObjectMissing() || isCOFFolder()) { disabled_items.push_back(std::string("Wearable Wear")); disabled_items.push_back(std::string("Wearable Add")); diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 8097985ade..d7720b735c 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -118,6 +118,7 @@ BOOL LLInventoryPanel::postBuild() 0); LLFolderView::Params p; p.name = getName(); + p.title = getLabel(); p.rect = folder_rect; p.parent_panel = this; p.tool_tip = p.name; @@ -292,9 +293,6 @@ void LLInventoryPanel::modelChanged(U32 mask) bridge->clearDisplayName(); view_item->refresh(); - - // Set the new tooltip with the new display name. - view_item->setToolTip(bridge->getDisplayName()); } } } diff --git a/indra/newview/llloginhandler.cpp b/indra/newview/llloginhandler.cpp index 1be3430e07..e3817eecc4 100644 --- a/indra/newview/llloginhandler.cpp +++ b/indra/newview/llloginhandler.cpp @@ -35,6 +35,7 @@ #include "llloginhandler.h" // viewer includes +#include "lllogininstance.h" // to check if logged in yet #include "llpanellogin.h" // save_password_to_disk() #include "llstartup.h" // getStartupState() #include "llurlsimstring.h" @@ -169,6 +170,13 @@ bool LLLoginHandler::handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web) { + // do nothing if we are already logged in + if (LLLoginInstance::getInstance()->authSuccess()) + { + LL_WARNS_ONCE("SLURL") << "Already logged in! Ignoring login SLapp." << LL_ENDL; + return true; + } + if (tokens.size() == 1 && tokens[0].asString() == "show") { diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 883d4cdf4b..7a538e372b 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -142,11 +142,12 @@ void LLNameListCtrl::showInspector(const LLUUID& avatar_id, bool is_group) void LLNameListCtrl::mouseOverHighlightNthItem( S32 target_index ) { - if (getHighlightedItemInx()!= target_index) + S32 cur_index = getHighlightedItemInx(); + if (cur_index != target_index) { - if(getHighlightedItemInx()!=-1) + if(0 <= cur_index && cur_index < (S32)getItemList().size()) { - LLScrollListItem* item = getItemList()[getHighlightedItemInx()]; + LLScrollListItem* item = getItemList()[cur_index]; LLScrollListText* cell = dynamic_cast<LLScrollListText*>(item->getColumn(mNameColumnIndex)); if(cell) cell->setTextWidth(cell->getTextWidth() + info_icon_size); diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp index 9f24ddc799..021e1f5159 100644 --- a/indra/newview/llpanelclassified.cpp +++ b/indra/newview/llpanelclassified.cpp @@ -114,6 +114,23 @@ public: }; static LLDispatchClassifiedClickThrough sClassifiedClickThrough; +// Just to debug errors. Can be thrown away later. +class LLClassifiedClickMessageResponder : public LLHTTPClient::Responder +{ + LOG_CLASS(LLClassifiedClickMessageResponder); + +public: + // If we get back an error (not found, etc...), handle it here + virtual void errorWithContent( + U32 status, + const std::string& reason, + const LLSD& content) + { + llwarns << "Sending click message failed (" << status << "): [" << reason << "]" << llendl; + llwarns << "Content: [" << content << "]" << llendl; + } +}; + /* Re-expose this if we need to have classified ad HTML detail pages. JC @@ -1237,7 +1254,7 @@ void LLPanelClassifiedInfo::reshape(S32 width, S32 height, BOOL called_from_pare void LLPanelClassifiedInfo::onOpen(const LLSD& key) { - LLUUID avatar_id = key["avatar_id"]; + LLUUID avatar_id = key["classified_creator_id"]; if(avatar_id.isNull()) { return; @@ -1255,9 +1272,12 @@ void LLPanelClassifiedInfo::onOpen(const LLSD& key) scrollToTop(); setClassifiedId(key["classified_id"]); - setClassifiedName(key["name"]); - setDescription(key["desc"]); - setSnapshotId(key["snapshot_id"]); + setClassifiedName(key["classified_name"]); + setDescription(key["classified_desc"]); + setSnapshotId(key["classified_snapshot_id"]); + setFromSearch(key["from_search"]); + + llinfos << "Opening classified [" << getClassifiedName() << "] (" << getClassifiedId() << ")" << llendl; LLAvatarPropertiesProcessor::getInstance()->addObserver(getAvatarId(), this); LLAvatarPropertiesProcessor::getInstance()->sendClassifiedInfoRequest(getClassifiedId()); @@ -1274,6 +1294,10 @@ void LLPanelClassifiedInfo::onOpen(const LLSD& key) LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(getClassifiedId())); } + // Update classified click stats. + // *TODO: Should we do this when opening not from search? + sendClickMessage("profile"); + setInfoLoaded(false); } @@ -1289,6 +1313,8 @@ void LLPanelClassifiedInfo::processProperties(void* data, EAvatarProcessorType t setSnapshotId(c_info->snapshot_id); setParcelId(c_info->parcel_id); setPosGlobal(c_info->pos_global); + setSimName(c_info->sim_name); + setClassifiedLocation(createLocationText(c_info->parcel_name, c_info->sim_name, c_info->pos_global)); childSetValue("category", LLClassifiedInfo::sCategories[c_info->category]); @@ -1299,6 +1325,8 @@ void LLPanelClassifiedInfo::processProperties(void* data, EAvatarProcessorType t bool mature = is_cf_mature(c_info->flags); childSetValue("content_type", mature ? mature_str : pg_str); + getChild<LLIconCtrl>("content_type_moderate")->setVisible(mature); + getChild<LLIconCtrl>("content_type_general")->setVisible(!mature); std::string auto_renew_str = is_cf_auto_renew(c_info->flags) ? getString("auto_renew_on") : getString("auto_renew_off"); @@ -1323,7 +1351,19 @@ void LLPanelClassifiedInfo::resetData() setClassifiedLocation(LLStringUtil::null); setClassifiedId(LLUUID::null); setSnapshotId(LLUUID::null); - mPosGlobal.clearVec(); + setPosGlobal(LLVector3d::zero); + setParcelId(LLUUID::null); + setSimName(LLStringUtil::null); + setFromSearch(false); + + // reset click stats + mTeleportClicksOld = 0; + mMapClicksOld = 0; + mProfileClicksOld = 0; + mTeleportClicksNew = 0; + mMapClicksNew = 0; + mProfileClicksNew = 0; + childSetText("category", LLStringUtil::null); childSetText("content_type", LLStringUtil::null); childSetText("click_through_text", LLStringUtil::null); @@ -1331,6 +1371,8 @@ void LLPanelClassifiedInfo::resetData() childSetText("auto_renew", LLStringUtil::null); childSetText("creation_date", LLStringUtil::null); childSetText("click_through_text", LLStringUtil::null); + getChild<LLIconCtrl>("content_type_moderate")->setVisible(FALSE); + getChild<LLIconCtrl>("content_type_general")->setVisible(FALSE); } void LLPanelClassifiedInfo::resetControls() @@ -1368,6 +1410,11 @@ void LLPanelClassifiedInfo::setClassifiedLocation(const std::string& location) childSetValue("classified_location", location); } +std::string LLPanelClassifiedInfo::getClassifiedLocation() +{ + return childGetValue("classified_location").asString(); +} + void LLPanelClassifiedInfo::setSnapshotId(const LLUUID& id) { mSnapshotCtrl->setValue(id); @@ -1444,6 +1491,13 @@ void LLPanelClassifiedInfo::setClickThrough( ct_str.setArg("[PROFILE]", llformat("%d", self->mProfileClicksNew + self->mProfileClicksOld)); self->childSetText("click_through_text", ct_str.getString()); + // *HACK: remove this when there is enough room for click stats in the info panel + self->childSetToolTip("click_through_text", ct_str.getString()); + + llinfos << "teleport: " << llformat("%d", self->mTeleportClicksNew + self->mTeleportClicksOld) + << ", map: " << llformat("%d", self->mMapClicksNew + self->mMapClicksOld) + << ", profile: " << llformat("%d", self->mProfileClicksNew + self->mProfileClicksOld) + << llendl; } } @@ -1532,8 +1586,46 @@ void LLPanelClassifiedInfo::scrollToTop() scrollContainer->goToTop(); } +// static +// *TODO: move out of the panel +void LLPanelClassifiedInfo::sendClickMessage( + const std::string& type, + bool from_search, + const LLUUID& classified_id, + const LLUUID& parcel_id, + const LLVector3d& global_pos, + const std::string& sim_name) +{ + // You're allowed to click on your own ads to reassure yourself + // that the system is working. + LLSD body; + body["type"] = type; + body["from_search"] = from_search; + body["classified_id"] = classified_id; + body["parcel_id"] = parcel_id; + body["dest_pos_global"] = global_pos.getValue(); + body["region_name"] = sim_name; + + std::string url = gAgent.getRegion()->getCapability("SearchStatTracking"); + llinfos << "Sending click msg via capability (url=" << url << ")" << llendl; + llinfos << "body: [" << body << "]" << llendl; + LLHTTPClient::post(url, body, new LLClassifiedClickMessageResponder()); +} + +void LLPanelClassifiedInfo::sendClickMessage(const std::string& type) +{ + sendClickMessage( + type, + fromSearch(), + getClassifiedId(), + getParcelId(), + getPosGlobal(), + getSimName()); +} + void LLPanelClassifiedInfo::onMapClick() { + sendClickMessage("map"); LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal()); LLFloaterReg::showInstance("world_map", "center"); } @@ -1542,6 +1634,7 @@ void LLPanelClassifiedInfo::onTeleportClick() { if (!getPosGlobal().isExactlyZero()) { + sendClickMessage("teleport"); gAgent.teleportViaLocation(getPosGlobal()); LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal()); } @@ -1563,6 +1656,7 @@ static const S32 CB_ITEM_PG = 1; LLPanelClassifiedEdit::LLPanelClassifiedEdit() : LLPanelClassifiedInfo() , mIsNew(false) + , mIsNewWithErrors(false) , mCanClose(false) , mPublishFloater(NULL) { @@ -1621,21 +1715,12 @@ BOOL LLPanelClassifiedEdit::postBuild() return TRUE; } -void LLPanelClassifiedEdit::onOpen(const LLSD& key) +void LLPanelClassifiedEdit::fillIn(const LLSD& key) { - LLUUID classified_id = key["classified_id"]; + setAvatarId(gAgent.getID()); - mIsNew = classified_id.isNull(); - - scrollToTop(); - - if(mIsNew) + if(key.isUndefined()) { - setAvatarId(gAgent.getID()); - - resetData(); - resetControls(); - setPosGlobal(gAgent.getPositionGlobal()); LLUUID snapshot_id = LLUUID::null; @@ -1658,25 +1743,55 @@ void LLPanelClassifiedEdit::onOpen(const LLSD& key) childSetValue("classified_name", makeClassifiedName()); childSetValue("classified_desc", desc); setSnapshotId(snapshot_id); - setClassifiedLocation(createLocationText(getLocationNotice(), region_name, getPosGlobal())); - // server will set valid parcel id setParcelId(LLUUID::null); + } + else + { + setClassifiedId(key["classified_id"]); + setClassifiedName(key["name"]); + setDescription(key["desc"]); + setSnapshotId(key["snapshot_id"]); + setCategory((U32)key["category"].asInteger()); + setContentType((U32)key["content_type"].asInteger()); + setClassifiedLocation(key["location_text"]); + childSetValue("auto_renew", key["auto_renew"]); + childSetValue("price_for_listing", key["price_for_listing"].asInteger()); + } +} - enableVerbs(true); - enableEditing(true); +void LLPanelClassifiedEdit::onOpen(const LLSD& key) +{ + mIsNew = key.isUndefined(); + + scrollToTop(); + + // classified is not created yet + bool is_new = isNew() || isNewWithErrors(); + + if(is_new) + { + resetData(); + resetControls(); + + fillIn(key); + + if(isNew()) + { + LLAvatarPropertiesProcessor::getInstance()->addObserver(getAvatarId(), this); + } } else { LLPanelClassifiedInfo::onOpen(key); - enableVerbs(false); - enableEditing(false); } - std::string save_btn_label = isNew() ? getString("publish_label") : getString("save_label"); + std::string save_btn_label = is_new ? getString("publish_label") : getString("save_label"); childSetLabelArg("save_changes_btn", "[LABEL]", save_btn_label); + enableVerbs(is_new); + enableEditing(is_new); resetDirty(); setInfoLoaded(false); } @@ -1688,6 +1803,14 @@ void LLPanelClassifiedEdit::processProperties(void* data, EAvatarProcessorType t LLAvatarClassifiedInfo* c_info = static_cast<LLAvatarClassifiedInfo*>(data); if(c_info && getClassifiedId() == c_info->classified_id) { + // see LLPanelClassifiedEdit::sendUpdate() for notes + mIsNewWithErrors = false; + // for just created classified - panel will probably be closed when we get here. + if(!getVisible()) + { + return; + } + enableEditing(true); setClassifiedName(c_info->name); @@ -1697,19 +1820,22 @@ void LLPanelClassifiedEdit::processProperties(void* data, EAvatarProcessorType t setClassifiedLocation(createLocationText(c_info->parcel_name, c_info->sim_name, c_info->pos_global)); // *HACK see LLPanelClassifiedEdit::sendUpdate() - getChild<LLComboBox>("category")->setCurrentByIndex(c_info->category - 1); - getChild<LLComboBox>("category")->resetDirty(); + setCategory(c_info->category - 1); bool mature = is_cf_mature(c_info->flags); bool auto_renew = is_cf_auto_renew(c_info->flags); - getChild<LLComboBox>("content_type")->setCurrentByIndex(mature ? CB_ITEM_MATURE : CB_ITEM_PG); + setContentType(mature ? CB_ITEM_MATURE : CB_ITEM_PG); childSetValue("auto_renew", auto_renew); childSetValue("price_for_listing", c_info->price_for_listing); childSetEnabled("price_for_listing", isNew()); resetDirty(); setInfoLoaded(true); + enableVerbs(false); + + // for just created classified - in case user opened edit panel before processProperties() callback + childSetLabelArg("save_changes_btn", "[LABEL]", getString("save_label")); } } } @@ -1740,7 +1866,12 @@ void LLPanelClassifiedEdit::resetDirty() LLPanelClassifiedInfo::resetDirty(); getChild<LLUICtrl>("classified_snapshot")->resetDirty(); getChild<LLUICtrl>("classified_name")->resetDirty(); - getChild<LLUICtrl>("classified_desc")->resetDirty(); + + LLTextEditor* desc = getChild<LLTextEditor>("classified_desc"); + // call blockUndo() to really reset dirty(and make isDirty work as intended) + desc->blockUndo(); + desc->resetDirty(); + getChild<LLUICtrl>("category")->resetDirty(); getChild<LLUICtrl>("content_type")->resetDirty(); getChild<LLUICtrl>("auto_renew")->resetDirty(); @@ -1762,7 +1893,7 @@ void LLPanelClassifiedEdit::resetControls() LLPanelClassifiedInfo::resetControls(); getChild<LLComboBox>("category")->setCurrentByIndex(0); - getChild<LLComboBox>("content_type")->setCurrentByIndex(0); + getChild<LLIconsComboBox>("content_type")->setCurrentByIndex(0); childSetValue("auto_renew", false); childSetValue("price_for_listing", MINIMUM_PRICE_FOR_LISTING); childSetEnabled("price_for_listing", TRUE); @@ -1789,15 +1920,31 @@ void LLPanelClassifiedEdit::stretchSnapshot() getChild<LLUICtrl>("edit_icon")->setShape(mSnapshotCtrl->getRect()); } +U32 LLPanelClassifiedEdit::getContentType() +{ + LLComboBox* ct_cb = getChild<LLComboBox>("content_type"); + return ct_cb->getCurrentIndex(); +} + +void LLPanelClassifiedEdit::setContentType(U32 content_type) +{ + LLIconsComboBox* ct_cb = getChild<LLIconsComboBox>("content_type"); + ct_cb->setCurrentByIndex(content_type); + ct_cb->resetDirty(); +} + +bool LLPanelClassifiedEdit::getAutoRenew() +{ + return childGetValue("auto_renew").asBoolean(); +} + void LLPanelClassifiedEdit::sendUpdate() { LLAvatarClassifiedInfo c_data; if(getClassifiedId().isNull()) { - LLUUID id; - id.generate(); - setClassifiedId(id); + setClassifiedId(LLUUID::generateNewID()); } c_data.agent_id = gAgent.getID(); @@ -1814,6 +1961,14 @@ void LLPanelClassifiedEdit::sendUpdate() c_data.price_for_listing = getPriceForListing(); LLAvatarPropertiesProcessor::getInstance()->sendClassifiedInfoUpdate(&c_data); + + if(isNew()) + { + // Lets assume there will be some error. + // Successful sendClassifiedInfoUpdate will trigger processProperties and + // let us know there was no error. + mIsNewWithErrors = true; + } } U32 LLPanelClassifiedEdit::getCategory() @@ -1822,11 +1977,18 @@ U32 LLPanelClassifiedEdit::getCategory() return cat_cb->getCurrentIndex(); } +void LLPanelClassifiedEdit::setCategory(U32 category) +{ + LLComboBox* cat_cb = getChild<LLComboBox>("category"); + cat_cb->setCurrentByIndex(category); + cat_cb->resetDirty(); +} + U8 LLPanelClassifiedEdit::getFlags() { bool auto_renew = childGetValue("auto_renew").asBoolean(); - LLComboBox* content_cb = getChild<LLComboBox>("content_type"); + LLComboBox* content_cb = getChild<LLIconsComboBox>("content_type"); bool mature = content_cb->getCurrentIndex() == CB_ITEM_MATURE; return pack_classified_flags_request(auto_renew, false, mature, false); @@ -1917,17 +2079,14 @@ void LLPanelClassifiedEdit::onSaveClick() notifyInvalidName(); return; } - if(isNew()) + if(isNew() || isNewWithErrors()) { if(gStatusBar->getBalance() < getPriceForListing()) { LLNotificationsUtil::add("ClassifiedInsufficientFunds"); return; } - } - if(isNew()) - { mPublishFloater = LLFloaterReg::findTypedInstance<LLPublishClassifiedFloater>( "publish_classified", LLSD()); diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h index 78f095a9bb..1157649a16 100644 --- a/indra/newview/llpanelclassified.h +++ b/indra/newview/llpanelclassified.h @@ -221,6 +221,7 @@ private: class LLPanelClassifiedInfo : public LLPanel, public LLAvatarPropertiesObserver { + LOG_CLASS(LLPanelClassifiedInfo); public: static LLPanelClassifiedInfo* create(); @@ -255,6 +256,8 @@ public: void setClassifiedLocation(const std::string& location); + std::string getClassifiedLocation(); + void setPosGlobal(const LLVector3d& pos) { mPosGlobal = pos; } LLVector3d& getPosGlobal() { return mPosGlobal; } @@ -263,6 +266,14 @@ public: LLUUID getParcelId() { return mParcelId; } + void setSimName(const std::string& sim_name) { mSimName = sim_name; } + + std::string getSimName() { return mSimName; } + + void setFromSearch(bool val) { mFromSearch = val; } + + bool fromSearch() { return mFromSearch; } + bool getInfoLoaded() { return mInfoLoaded; } void setInfoLoaded(bool loaded) { mInfoLoaded = loaded; } @@ -274,6 +285,14 @@ public: S32 profile, bool from_new_table); + static void sendClickMessage( + const std::string& type, + bool from_search, + const LLUUID& classified_id, + const LLUUID& parcel_id, + const LLVector3d& global_pos, + const std::string& sim_name); + void setExitCallback(const commit_callback_t& cb); void setEditClassifiedCallback(const commit_callback_t& cb); @@ -296,6 +315,7 @@ protected: const LLVector3d& pos_global); void stretchSnapshot(); + void sendClickMessage(const std::string& type); LLRect getDefaultSnapshotRect(); @@ -315,6 +335,8 @@ private: LLUUID mClassifiedId; LLVector3d mPosGlobal; LLUUID mParcelId; + std::string mSimName; + bool mFromSearch; bool mInfoLoaded; LLScrollContainer* mScrollContainer; @@ -337,6 +359,7 @@ private: class LLPanelClassifiedEdit : public LLPanelClassifiedInfo { + LOG_CLASS(LLPanelClassifiedEdit); public: static LLPanelClassifiedEdit* create(); @@ -345,6 +368,8 @@ public: /*virtual*/ BOOL postBuild(); + void fillIn(const LLSD& key); + /*virtual*/ void onOpen(const LLSD& key); /*virtual*/ void processProperties(void* data, EAvatarProcessorType type); @@ -361,28 +386,38 @@ public: bool isNew() { return mIsNew; } + bool isNewWithErrors() { return mIsNewWithErrors; } + bool canClose(); void draw(); void stretchSnapshot(); + U32 getCategory(); + + void setCategory(U32 category); + + U32 getContentType(); + + void setContentType(U32 content_type); + + bool getAutoRenew(); + + S32 getPriceForListing(); + protected: LLPanelClassifiedEdit(); void sendUpdate(); - U32 getCategory(); - void enableVerbs(bool enable); void enableEditing(bool enable); std::string makeClassifiedName(); - S32 getPriceForListing(); - void setPriceForListing(S32 price); U8 getFlags(); @@ -408,6 +443,7 @@ protected: private: bool mIsNew; + bool mIsNewWithErrors; bool mCanClose; LLPublishClassifiedFloater* mPublishFloater; diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp index 56d52ccc65..143a64d08b 100644 --- a/indra/newview/llpanellandmarkinfo.cpp +++ b/indra/newview/llpanellandmarkinfo.cpp @@ -383,22 +383,41 @@ std::string LLPanelLandmarkInfo::getFullFolderName(const LLViewerInventoryCatego if (cat) { name = cat->getName(); - - // translate category name, if it's right below the root - // FIXME: it can throw notification about non existent string in strings.xml - if (cat->getParentUUID().notNull() && cat->getParentUUID() == gInventory.getRootFolderID()) - { - LLTrans::findString(name, "InvFolder " + name); - } + parent_id = cat->getParentUUID(); + bool is_under_root_category = parent_id == gInventory.getRootFolderID(); // we don't want "My Inventory" to appear in the name - while ((parent_id = cat->getParentUUID()).notNull() && parent_id != gInventory.getRootFolderID()) + while ((parent_id = cat->getParentUUID()).notNull()) { cat = gInventory.getCategory(parent_id); llassert(cat); if (cat) { - name = cat->getName() + "/" + name; + if (is_under_root_category || cat->getParentUUID() == gInventory.getRootFolderID()) + { + std::string localized_name; + if (is_under_root_category) + { + // translate category name, if it's right below the root + // FIXME: it can throw notification about non existent string in strings.xml + bool is_found = LLTrans::findString(localized_name, "InvFolder " + name); + name = is_found ? localized_name : name; + } + else + { + // FIXME: it can throw notification about non existent string in strings.xml + bool is_found = LLTrans::findString(localized_name, "InvFolder " + cat->getName()); + + // add translated category name to folder's full name + name = (is_found ? localized_name : cat->getName()) + "/" + name; + } + + break; + } + else + { + name = cat->getName() + "/" + name; + } } } } diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 45a8dc4cbe..4842fcac38 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -534,7 +534,7 @@ void LLLandmarksPanel::initLandmarksInventoryPanel() // subscribe to have auto-rename functionality while creating New Folder mLandmarksInventoryPanel->setSelectCallback(boost::bind(&LLInventoryPanel::onSelectionChange, mLandmarksInventoryPanel, _1, _2)); - initAccordion("tab_landmarks", mLandmarksInventoryPanel, true); + mMyLandmarksAccordionTab = initAccordion("tab_landmarks", mLandmarksInventoryPanel, true); } void LLLandmarksPanel::initMyInventoryPanel() @@ -588,7 +588,7 @@ void LLLandmarksPanel::initLandmarksPanel(LLPlacesInventoryPanel* inventory_list inventory_list->saveFolderState(); } -void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab) +LLAccordionCtrlTab* LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab) { LLAccordionCtrlTab* accordion_tab = getChild<LLAccordionCtrlTab>(accordion_tab_name); @@ -596,6 +596,7 @@ void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPl accordion_tab->setDropDownStateChangedCallback( boost::bind(&LLLandmarksPanel::onAccordionExpandedCollapsed, this, _2, inventory_list)); accordion_tab->setDisplayChildren(expand_tab); + return accordion_tab; } void LLLandmarksPanel::onAccordionExpandedCollapsed(const LLSD& param, LLPlacesInventoryPanel* inventory_list) @@ -656,9 +657,6 @@ void LLLandmarksPanel::initListCommandsHandlers() mListCommands->childSetAction(OPTIONS_BUTTON_NAME, boost::bind(&LLLandmarksPanel::onActionsButtonClick, this)); mListCommands->childSetAction(TRASH_BUTTON_NAME, boost::bind(&LLLandmarksPanel::onTrashButtonClick, this)); - mListCommands->getChild<LLButton>(ADD_BUTTON_NAME)->setHeldDownCallback(boost::bind(&LLLandmarksPanel::onAddButtonHeldDown, this)); - static const LLSD add_landmark_command("add_landmark"); - mListCommands->childSetAction(ADD_BUTTON_NAME, boost::bind(&LLLandmarksPanel::onAddAction, this, add_landmark_command)); LLDragAndDropButton* trash_btn = mListCommands->getChild<LLDragAndDropButton>(TRASH_BUTTON_NAME); trash_btn->setDragAndDropHandler(boost::bind(&LLLandmarksPanel::handleDragAndDropToTrash, this @@ -676,6 +674,8 @@ void LLLandmarksPanel::initListCommandsHandlers() mGearLandmarkMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_places_gear_landmark.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); mGearFolderMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_places_gear_folder.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); mMenuAdd = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_place_add_button.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); + + mListCommands->childSetAction(ADD_BUTTON_NAME, boost::bind(&LLLandmarksPanel::showActionMenu, this, mMenuAdd, ADD_BUTTON_NAME)); } @@ -713,11 +713,6 @@ void LLLandmarksPanel::onActionsButtonClick() showActionMenu(menu,OPTIONS_BUTTON_NAME); } -void LLLandmarksPanel::onAddButtonHeldDown() -{ - showActionMenu(mMenuAdd,ADD_BUTTON_NAME); -} - void LLLandmarksPanel::showActionMenu(LLMenuGL* menu, std::string spawning_view_name) { if (menu) @@ -777,6 +772,17 @@ void LLLandmarksPanel::onAddAction(const LLSD& userdata) const "category"), gInventory.findCategoryUUIDForType( LLFolderType::FT_LANDMARK)); } + else + { + //in case My Landmarks tab is completely empty (thus cannot be determined as being selected) + menu_create_inventory_item(mLandmarksInventoryPanel->getRootFolder(), NULL, LLSD("category"), + gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK)); + + if (mMyLandmarksAccordionTab) + { + mMyLandmarksAccordionTab->changeOpenClose(false); + } + } } } @@ -917,7 +923,7 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const return false; } } - else if (!root_folder_view) + else if (!root_folder_view && "category" != command_name) { return false; } @@ -953,7 +959,8 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const // ... but except Received folder return !isReceivedFolderSelected(); } - else return false; + //"Add a folder" is enabled by default (case when My Landmarks is empty) + else return true; } else if("create_pick" == command_name) { diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h index f1ce1a18b5..c9217a4b2f 100644 --- a/indra/newview/llpanellandmarks.h +++ b/indra/newview/llpanellandmarks.h @@ -112,7 +112,7 @@ private: void initMyInventoryPanel(); void initLibraryInventoryPanel(); void initLandmarksPanel(LLPlacesInventoryPanel* inventory_list); - void initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab); + LLAccordionCtrlTab* initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab); void onAccordionExpandedCollapsed(const LLSD& param, LLPlacesInventoryPanel* inventory_list); void deselectOtherThan(const LLPlacesInventoryPanel* inventory_list); @@ -121,7 +121,6 @@ private: void updateListCommands(); void onActionsButtonClick(); void showActionMenu(LLMenuGL* menu, std::string spawning_view_name); - void onAddButtonHeldDown(); void onTrashButtonClick() const; void onAddAction(const LLSD& command_name) const; void onClipboardAction(const LLSD& command_name) const; @@ -170,6 +169,8 @@ private: typedef std::vector<LLAccordionCtrlTab*> accordion_tabs_t; accordion_tabs_t mAccordionTabs; + + LLAccordionCtrlTab* mMyLandmarksAccordionTab; }; #endif //LL_LLPANELLANDMARKS_H diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 421c9df9a1..d40141c91d 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -44,6 +44,7 @@ #include "llfiltereditor.h" #include "llfloaterreg.h" #include "llpreviewtexture.h" +#include "llresmgr.h" #include "llscrollcontainer.h" #include "llsdserialize.h" #include "llspinctrl.h" @@ -538,7 +539,7 @@ BOOL LLPanelMainInventory::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, // virtual void LLPanelMainInventory::changed(U32) { - // empty, but must have this defined for abstract base class. + updateItemcountText(); } @@ -550,6 +551,34 @@ void LLPanelMainInventory::draw() mFilterEditor->setText(mFilterSubString); } LLPanel::draw(); + updateItemcountText(); +} + +void LLPanelMainInventory::updateItemcountText() +{ + LLLocale locale(LLLocale::USER_LOCALE); + std::string item_count_string; + LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); + + LLStringUtil::format_map_t string_args; + string_args["[ITEM_COUNT]"] = item_count_string; + string_args["[FILTER]"] = getFilterText(); + + std::string text = ""; + + if (LLInventoryModel::backgroundFetchActive()) + { + text = getString("ItemcountFetching", string_args); + } + else if (LLInventoryModel::isEverythingFetched()) + { + text = getString("ItemcountCompleted", string_args); + } + else + { + text = getString("ItemcountUnknown"); + } + childSetText("ItemcountText",text); } void LLPanelMainInventory::setFilterTextFromFilter() diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h index d9ea0da2da..b43e057f83 100644 --- a/indra/newview/llpanelmaininventory.h +++ b/indra/newview/llpanelmaininventory.h @@ -113,7 +113,8 @@ protected: void setSortBy(const LLSD& userdata); void saveTexture(const LLSD& userdata); bool isSaveTextureEnabled(const LLSD& userdata); - + void updateItemcountText(); + private: LLFloaterInventoryFinder* getFinder(); diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index 6fcba80845..7505581904 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -609,7 +609,7 @@ void LLTaskInvFVBridge::performAction(LLFolderView* folder, LLInventoryModel* mo { if (price > 0 && price > gStatusBar->getBalance()) { - LLFloaterBuyCurrency::buyCurrency("This costs", price); + LLFloaterBuyCurrency::buyCurrency(LLTrans::getString("this_costs"), price); } else { @@ -1575,9 +1575,10 @@ void LLPanelObjectInventory::reset() LLRect dummy_rect(0, 1, 1, 0); LLFolderView::Params p; p.name = "task inventory"; + p.title = "task inventory"; p.task_id = getTaskUUID(); p.parent_panel = this; - p.tool_tip= p.name; + p.tool_tip= LLTrans::getString("PanelContentsTooltip"); mFolders = LLUICtrlFactory::create<LLFolderView>(p); // this ensures that we never say "searching..." or "no items found" mFolders->getFilter()->setShowFolderState(LLInventoryFilter::SHOW_ALL_FOLDERS); @@ -1642,7 +1643,7 @@ void LLPanelObjectInventory::updateInventory() // We're still interested in this task's inventory. std::set<LLUUID> selected_items; BOOL inventory_has_focus = FALSE; - if (mHaveInventory && mFolders->getNumSelectedDescendants()) + if (mHaveInventory) { mFolders->getSelectionList(selected_items); inventory_has_focus = gFocusMgr.childHasKeyboardFocus(mFolders); diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp index 5ac0587550..f0dc493ebe 100644 --- a/indra/newview/llpanelpick.cpp +++ b/indra/newview/llpanelpick.cpp @@ -72,12 +72,6 @@ #define XML_BTN_ON_TXTR "edit_icon" #define XML_BTN_SAVE "save_changes_btn" -#define SAVE_BTN_LABEL "[WHAT]" -#define LABEL_PICK = "Pick" -#define LABEL_CHANGES = "Changes" - -std::string SET_LOCATION_NOTICE("(will update after save)"); - ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// @@ -150,8 +144,6 @@ BOOL LLPanelPickInfo::postBuild() { mSnapshotCtrl = getChild<LLTextureCtrl>(XML_SNAPSHOT); - childSetLabelArg(XML_BTN_SAVE, SAVE_BTN_LABEL, std::string("Pick")); - childSetAction("teleport_btn", boost::bind(&LLPanelPickInfo::onClickTeleport, this)); childSetAction("show_on_map_btn", boost::bind(&LLPanelPickInfo::onClickMap, this)); childSetAction("back_btn", boost::bind(&LLPanelPickInfo::onClickBack, this)); @@ -410,7 +402,7 @@ void LLPanelPickEdit::onOpen(const LLSD& key) childSetValue("pick_name", pick_name.empty() ? region_name : pick_name); childSetValue("pick_desc", pick_desc); setSnapshotId(snapshot_id); - setPickLocation(createLocationText(SET_LOCATION_NOTICE, pick_name, region_name, getPosGlobal())); + setPickLocation(createLocationText(getLocationNotice(), pick_name, region_name, getPosGlobal())); enableSaveButton(true); } @@ -578,7 +570,7 @@ void LLPanelPickEdit::onClickSetLocation() region_name = region->getName(); } - setPickLocation(createLocationText(SET_LOCATION_NOTICE, parcel_name, region_name, getPosGlobal())); + setPickLocation(createLocationText(getLocationNotice(), parcel_name, region_name, getPosGlobal())); mLocationChanged = true; enableSaveButton(TRUE); @@ -595,6 +587,12 @@ void LLPanelPickEdit::onClickSave() notifyParent(params); } +std::string LLPanelPickEdit::getLocationNotice() +{ + static std::string notice = getString("location_notice"); + return notice; +} + void LLPanelPickEdit::processProperties(void* data, EAvatarProcessorType type) { if(mNeedData) diff --git a/indra/newview/llpanelpick.h b/indra/newview/llpanelpick.h index 4f27760a8d..94ee2f83ab 100644 --- a/indra/newview/llpanelpick.h +++ b/indra/newview/llpanelpick.h @@ -248,6 +248,8 @@ protected: */ void onClickSave(); + std::string getLocationNotice(); + protected: bool mLocationChanged; diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 2ff2597f08..0a7c39db46 100644 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -140,10 +140,11 @@ public: params["open_tab_name"] = "panel_picks"; params["show_tab_panel"] = "classified_details"; params["classified_id"] = c_info->classified_id; - params["classified_avatar_id"] = c_info->creator_id; + params["classified_creator_id"] = c_info->creator_id; params["classified_snapshot_id"] = c_info->snapshot_id; params["classified_name"] = c_info->name; params["classified_desc"] = c_info->description; + params["from_search"] = true; LLSideTray::getInstance()->showPanel("panel_profile_view", params); } @@ -174,31 +175,6 @@ LLClassifiedHandler gClassifiedHandler; ////////////////////////////////////////////////////////////////////////// -/** - * Copy&Pasted from old LLPanelClassified. This class does nothing at the moment. - * Subscribing to "classifiedclickthrough" removes a few warnings. - */ -class LLClassifiedClickThrough : public LLDispatchHandler -{ -public: - - // "classifiedclickthrough" - // strings[0] = classified_id - // strings[1] = teleport_clicks - // strings[2] = map_clicks - // strings[3] = profile_clicks - virtual bool operator()( - const LLDispatcher* dispatcher, - const std::string& key, - const LLUUID& invoice, - const sparam_t& strings) - { - if (strings.size() != 4) - return false; - - return true; - } -}; //----------------------------------------------------------------------------- // LLPanelPicks @@ -216,13 +192,9 @@ LLPanelPicks::LLPanelPicks() mPicksAccTab(NULL), mClassifiedsAccTab(NULL), mPanelClassifiedInfo(NULL), - mPanelClassifiedEdit(NULL), - mClickThroughDisp(NULL), mNoClassifieds(false), mNoPicks(false) { - mClickThroughDisp = new LLClassifiedClickThrough(); - gGenericDispatcher.addHandler("classifiedclickthrough", mClickThroughDisp); } LLPanelPicks::~LLPanelPicks() @@ -231,8 +203,6 @@ LLPanelPicks::~LLPanelPicks() { LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this); } - - delete mClickThroughDisp; } void* LLPanelPicks::create(void* data /* = NULL */) @@ -414,6 +384,9 @@ BOOL LLPanelPicks::postBuild() registar.add("Pick.Teleport", boost::bind(&LLPanelPicks::onClickTeleport, this)); registar.add("Pick.Map", boost::bind(&LLPanelPicks::onClickMap, this)); registar.add("Pick.Delete", boost::bind(&LLPanelPicks::onClickDelete, this)); + LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registar; + enable_registar.add("Pick.Enable", boost::bind(&LLPanelPicks::onEnableMenuItem, this, _2)); + mPopupMenu = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>("menu_picks.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); LLUICtrl::CommitCallbackRegistry::ScopedRegistrar plus_registar; @@ -450,6 +423,22 @@ bool LLPanelPicks::isActionEnabled(const LLSD& userdata) const return true; } +bool LLPanelPicks::isClassifiedPublished(LLClassifiedItem* c_item) +{ + if(c_item) + { + LLPanelClassifiedEdit* panel = mEditClassifiedPanels[c_item->getClassifiedId()]; + if(panel) + { + return !panel->isNewWithErrors(); + } + + // we've got this classified from server - it's published + return true; + } + return false; +} + void LLPanelPicks::onAccordionStateChanged(const LLAccordionCtrlTab* acc_tab) { if(!mPicksAccTab->getDisplayChildren()) @@ -607,7 +596,11 @@ void LLPanelPicks::onClickTeleport() if(pick_item) pos = pick_item->getPosGlobal(); else if(c_item) + { pos = c_item->getPosGlobal(); + LLPanelClassifiedInfo::sendClickMessage("teleport", false, + c_item->getClassifiedId(), LLUUID::null, pos, LLStringUtil::null); + } if (!pos.isExactlyZero()) { @@ -626,7 +619,11 @@ void LLPanelPicks::onClickMap() if (pick_item) pos = pick_item->getPosGlobal(); else if(c_item) + { + LLPanelClassifiedInfo::sendClickMessage("map", false, + c_item->getClassifiedId(), LLUUID::null, pos, LLStringUtil::null); pos = c_item->getPosGlobal(); + } LLFloaterWorldMap::getInstance()->trackLocation(pos); LLFloaterReg::showInstance("world_map", "center"); @@ -678,6 +675,12 @@ void LLPanelPicks::updateButtons() childSetEnabled(XML_BTN_INFO, has_selected); childSetEnabled(XML_BTN_TELEPORT, has_selected); childSetEnabled(XML_BTN_SHOW_ON_MAP, has_selected); + + LLClassifiedItem* c_item = dynamic_cast<LLClassifiedItem*>(mClassifiedsList->getSelectedItem()); + if(c_item) + { + childSetEnabled(XML_BTN_INFO, isClassifiedPublished(c_item)); + } } void LLPanelPicks::setProfilePanel(LLPanelProfile* profile_panel) @@ -714,9 +717,10 @@ void LLPanelPicks::createNewPick() void LLPanelPicks::createNewClassified() { - createClassifiedEditPanel(); + LLPanelClassifiedEdit* panel = NULL; + createClassifiedEditPanel(&panel); - getProfilePanel()->openPanel(mPanelClassifiedEdit, LLSD()); + getProfilePanel()->openPanel(panel, LLSD()); } void LLPanelPicks::onClickInfo() @@ -756,26 +760,20 @@ void LLPanelPicks::openClassifiedInfo() if (selected_value.isUndefined()) return; LLClassifiedItem* c_item = getSelectedClassifiedItem(); + LLSD params; + params["classified_id"] = c_item->getClassifiedId(); + params["classified_creator_id"] = c_item->getAvatarId(); + params["classified_snapshot_id"] = c_item->getSnapshotId(); + params["classified_name"] = c_item->getClassifiedName(); + params["classified_desc"] = c_item->getDescription(); + params["from_search"] = false; - openClassifiedInfo(c_item->getClassifiedId(), c_item->getAvatarId(), - c_item->getSnapshotId(), c_item->getClassifiedName(), - c_item->getDescription()); + openClassifiedInfo(params); } -void LLPanelPicks::openClassifiedInfo(const LLUUID &classified_id, - const LLUUID &avatar_id, - const LLUUID &snapshot_id, - const std::string &name, const std::string &desc) +void LLPanelPicks::openClassifiedInfo(const LLSD ¶ms) { createClassifiedInfoPanel(); - - LLSD params; - params["classified_id"] = classified_id; - params["avatar_id"] = avatar_id; - params["snapshot_id"] = snapshot_id; - params["name"] = name; - params["desc"] = desc; - getProfilePanel()->openPanel(mPanelClassifiedInfo, params); } @@ -807,11 +805,10 @@ void LLPanelPicks::onPanelClassifiedSave(LLPanelClassifiedEdit* panel) if(panel->isNew()) { + mEditClassifiedPanels[panel->getClassifiedId()] = panel; + LLClassifiedItem* c_item = new LLClassifiedItem(getAvatarId(), panel->getClassifiedId()); - - c_item->setClassifiedName(panel->getClassifiedName()); - c_item->setDescription(panel->getDescription()); - c_item->setSnapshotId(panel->getSnapshotId()); + c_item->fillIn(panel); LLSD c_value; c_value.insert(CLASSIFIED_ID, c_item->getClassifiedId()); @@ -827,6 +824,11 @@ void LLPanelPicks::onPanelClassifiedSave(LLPanelClassifiedEdit* panel) mClassifiedsAccTab->changeOpenClose(false); showAccordion("tab_classifieds", true); } + else if(panel->isNewWithErrors()) + { + LLClassifiedItem* c_item = dynamic_cast<LLClassifiedItem*>(mClassifiedsList->getSelectedItem()); + c_item->fillIn(panel); + } else { onPanelClassifiedClose(panel); @@ -887,15 +889,16 @@ void LLPanelPicks::createClassifiedInfoPanel() } } -void LLPanelPicks::createClassifiedEditPanel() +void LLPanelPicks::createClassifiedEditPanel(LLPanelClassifiedEdit** panel) { - if(!mPanelClassifiedEdit) + if(panel) { - mPanelClassifiedEdit = LLPanelClassifiedEdit::create(); - mPanelClassifiedEdit->setExitCallback(boost::bind(&LLPanelPicks::onPanelClassifiedClose, this, mPanelClassifiedEdit)); - mPanelClassifiedEdit->setSaveCallback(boost::bind(&LLPanelPicks::onPanelClassifiedSave, this, mPanelClassifiedEdit)); - mPanelClassifiedEdit->setCancelCallback(boost::bind(&LLPanelPicks::onPanelClassifiedClose, this, mPanelClassifiedEdit)); - mPanelClassifiedEdit->setVisible(FALSE); + LLPanelClassifiedEdit* new_panel = LLPanelClassifiedEdit::create(); + new_panel->setExitCallback(boost::bind(&LLPanelPicks::onPanelClassifiedClose, this, new_panel)); + new_panel->setSaveCallback(boost::bind(&LLPanelPicks::onPanelClassifiedSave, this, new_panel)); + new_panel->setCancelCallback(boost::bind(&LLPanelPicks::onPanelClassifiedClose, this, new_panel)); + new_panel->setVisible(FALSE); + *panel = new_panel; } } @@ -968,16 +971,26 @@ void LLPanelPicks::onPanelClassifiedEdit() LLClassifiedItem* c_item = dynamic_cast<LLClassifiedItem*>(mClassifiedsList->getSelectedItem()); - createClassifiedEditPanel(); - LLSD params; params["classified_id"] = c_item->getClassifiedId(); - params["avatar_id"] = c_item->getAvatarId(); + params["classified_creator_id"] = c_item->getAvatarId(); params["snapshot_id"] = c_item->getSnapshotId(); params["name"] = c_item->getClassifiedName(); params["desc"] = c_item->getDescription(); - - getProfilePanel()->openPanel(mPanelClassifiedEdit, params); + params["category"] = (S32)c_item->getCategory(); + params["content_type"] = (S32)c_item->getContentType(); + params["auto_renew"] = c_item->getAutoRenew(); + params["price_for_listing"] = c_item->getPriceForListing(); + params["location_text"] = c_item->getLocationText(); + + LLPanelClassifiedEdit* panel = mEditClassifiedPanels[c_item->getClassifiedId()]; + if(!panel) + { + createClassifiedEditPanel(&panel); + mEditClassifiedPanels[c_item->getClassifiedId()] = panel; + } + getProfilePanel()->openPanel(panel, params); + panel->setPosGlobal(c_item->getPosGlobal()); } void LLPanelPicks::onClickMenuEdit() @@ -992,6 +1005,20 @@ void LLPanelPicks::onClickMenuEdit() } } +bool LLPanelPicks::onEnableMenuItem(const LLSD& user_data) +{ + std::string param = user_data.asString(); + + LLClassifiedItem* c_item = dynamic_cast<LLClassifiedItem*>(mClassifiedsList->getSelectedItem()); + if(c_item && "info" == param) + { + // dont show Info panel if classified was not created + return isClassifiedPublished(c_item); + } + + return true; +} + inline LLPanelProfile* LLPanelPicks::getProfilePanel() { llassert_always(NULL != mProfilePanel); @@ -1180,6 +1207,24 @@ void LLClassifiedItem::setValue(const LLSD& value) childSetVisible("selected_icon", value["selected"]); } +void LLClassifiedItem::fillIn(LLPanelClassifiedEdit* panel) +{ + if(!panel) + { + return; + } + + setClassifiedName(panel->getClassifiedName()); + setDescription(panel->getDescription()); + setSnapshotId(panel->getSnapshotId()); + setCategory(panel->getCategory()); + setContentType(panel->getContentType()); + setAutoRenew(panel->getAutoRenew()); + setPriceForListing(panel->getPriceForListing()); + setPosGlobal(panel->getPosGlobal()); + setLocationText(panel->getClassifiedLocation()); +} + void LLClassifiedItem::setClassifiedName(const std::string& name) { childSetValue("name", name); diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h index 3f757e482e..a98b8c413e 100644 --- a/indra/newview/llpanelpicks.h +++ b/indra/newview/llpanelpicks.h @@ -55,7 +55,6 @@ class LLPanelPickEdit; class LLToggleableMenu; class LLPanelClassifiedInfo; class LLPanelClassifiedEdit; -class LLClassifiedClickThrough; // *TODO // Panel Picks has been consolidated with Classifieds (EXT-2095), give LLPanelPicks @@ -99,6 +98,8 @@ private: void onPlusMenuItemClicked(const LLSD& param); bool isActionEnabled(const LLSD& userdata) const; + bool isClassifiedPublished(LLClassifiedItem* c_item); + void onListCommit(const LLFlatListView* f_list); void onAccordionStateChanged(const LLAccordionCtrlTab* acc_tab); @@ -115,14 +116,14 @@ private: void onPanelClassifiedEdit(); void onClickMenuEdit(); + bool onEnableMenuItem(const LLSD& user_data); + void createNewPick(); void createNewClassified(); void openPickInfo(); void openClassifiedInfo(); - void openClassifiedInfo(const LLUUID &classified_id, const LLUUID &avatar_id, - const LLUUID &snapshot_id, const std::string &name, - const std::string &desc); + void openClassifiedInfo(const LLSD& params); friend class LLPanelProfile; void showAccordion(const std::string& name, bool show); @@ -143,7 +144,7 @@ private: void createPickInfoPanel(); void createPickEditPanel(); void createClassifiedInfoPanel(); - void createClassifiedEditPanel(); + void createClassifiedEditPanel(LLPanelClassifiedEdit** panel); LLMenuGL* mPopupMenu; LLPanelProfile* mProfilePanel; @@ -152,15 +153,19 @@ private: LLFlatListView* mClassifiedsList; LLPanelPickInfo* mPanelPickInfo; LLPanelClassifiedInfo* mPanelClassifiedInfo; - LLPanelClassifiedEdit* mPanelClassifiedEdit; LLPanelPickEdit* mPanelPickEdit; LLToggleableMenu* mPlusMenu; + // <classified_id, edit_panel> + typedef std::map<LLUUID, LLPanelClassifiedEdit*> panel_classified_edit_map_t; + + // This map is needed for newly created classifieds. The purpose of panel is to + // sit in this map and listen to LLPanelClassifiedEdit::processProperties callback. + panel_classified_edit_map_t mEditClassifiedPanels; + LLAccordionCtrlTab* mPicksAccTab; LLAccordionCtrlTab* mClassifiedsAccTab; - LLClassifiedClickThrough* mClickThroughDisp; - //true if picks list is empty after processing picks bool mNoPicks; //true if classifieds list is empty after processing classifieds @@ -250,6 +255,8 @@ public: /*virtual*/ void setValue(const LLSD& value); + void fillIn(LLPanelClassifiedEdit* panel); + LLUUID getAvatarId() {return mAvatarId;} void setAvatarId(const LLUUID& avatar_id) {mAvatarId = avatar_id;} @@ -260,7 +267,11 @@ public: void setPosGlobal(const LLVector3d& pos) { mPosGlobal = pos; } - const LLVector3d& getPosGlobal() { return mPosGlobal; } + const LLVector3d getPosGlobal() { return mPosGlobal; } + + void setLocationText(const std::string location) { mLocationText = location; } + + std::string getLocationText() { return mLocationText; } void setClassifiedName (const std::string& name); @@ -274,10 +285,31 @@ public: LLUUID getSnapshotId(); + void setCategory(U32 cat) { mCategory = cat; } + + U32 getCategory() { return mCategory; } + + void setContentType(U32 ct) { mContentType = ct; } + + U32 getContentType() { return mContentType; } + + void setAutoRenew(U32 renew) { mAutoRenew = renew; } + + bool getAutoRenew() { return mAutoRenew; } + + void setPriceForListing(S32 price) { mPriceForListing = price; } + + S32 getPriceForListing() { return mPriceForListing; } + private: LLUUID mAvatarId; LLUUID mClassifiedId; LLVector3d mPosGlobal; + std::string mLocationText; + U32 mCategory; + U32 mContentType; + bool mAutoRenew; + S32 mPriceForListing; }; #endif // LL_LLPANELPICKS_H diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp index 9e5f9da0ea..cdd79b1559 100644 --- a/indra/newview/llpanelplaceprofile.cpp +++ b/indra/newview/llpanelplaceprofile.cpp @@ -569,7 +569,7 @@ void LLPanelPlaceProfile::onForSaleBannerClick() { if(parcel->getSalePrice() - gStatusBar->getBalance() > 0) { - LLFloaterBuyCurrency::buyCurrency("Buying selected land ", parcel->getSalePrice()); + LLFloaterBuyCurrency::buyCurrency(LLTrans::getString("buying_selected_land"), parcel->getSalePrice()); } else { diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index b5d85dfd4b..18da8dd48c 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -171,15 +171,13 @@ void LLPanelProfile::onOpen(const LLSD& key) } else if (panel == "classified_details") { - LLUUID classified_id = key["classified_id"].asUUID(); - LLUUID avatar_id = key["classified_avatar_id"].asUUID(); - LLUUID snapshot_id = key["classified_snapshot_id"].asUUID(); - std::string name = key["classified_name"].asString(); - std::string desc = key["classified_desc"].asString(); LLPanelPicks* picks = dynamic_cast<LLPanelPicks *>(getTabContainer()[PANEL_PICKS]); if (picks) { - picks->openClassifiedInfo(classified_id, avatar_id, snapshot_id, name, desc); + LLSD params = key; + params.erase("show_tab_panel"); + params.erase("open_tab_name"); + picks->openClassifiedInfo(params); } } } diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp index f1e450a083..ed0fb54051 100644 --- a/indra/newview/llplacesinventorypanel.cpp +++ b/indra/newview/llplacesinventorypanel.cpp @@ -92,6 +92,7 @@ BOOL LLPlacesInventoryPanel::postBuild() 0); LLPlacesFolderView::Params p; p.name = getName(); + p.title = getLabel(); p.rect = folder_rect; p.parent_panel = this; mFolders = (LLFolderView*)LLUICtrlFactory::create<LLPlacesFolderView>(p); diff --git a/indra/newview/llpopupview.cpp b/indra/newview/llpopupview.cpp index d8ad59c90c..b010f4d72f 100644 --- a/indra/newview/llpopupview.cpp +++ b/indra/newview/llpopupview.cpp @@ -207,11 +207,7 @@ void LLPopupView::addPopup(LLView* popup) { if (popup) { - popup_list_t::iterator iter = std::find(mPopups.begin(), mPopups.end(), popup->getHandle()); - if(iter != mPopups.end()) - { - mPopups.erase(iter); - } + mPopups.remove(popup->getHandle()); mPopups.push_front(popup->getHandle()); } } @@ -220,11 +216,7 @@ void LLPopupView::removePopup(LLView* popup) { if (popup) { - popup_list_t::iterator iter = std::find(mPopups.begin(), mPopups.end(), popup->getHandle()); - if(iter != mPopups.end()) - { - mPopups.erase(iter); - } + mPopups.remove(popup->getHandle()); popup->onTopLost(); } } diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp index eb71cc52c8..f35cb3516a 100644 --- a/indra/newview/llscriptfloater.cpp +++ b/indra/newview/llscriptfloater.cpp @@ -154,14 +154,17 @@ void LLScriptFloater::createForm(const LLUUID& notification_id) } // create new form - mScriptForm = new LLToastNotifyPanel(notification); + LLRect toast_rect = getRect(); + // LLToastNotifyPanel will fit own content in vertical direction, + // but it needs an initial rect to properly calculate its width + // Use an initial rect of the script floater to make the floater window more configurable. + mScriptForm = new LLToastNotifyPanel(notification, toast_rect); addChild(mScriptForm); // position form on floater mScriptForm->setOrigin(0, 0); // make floater size fit form size - LLRect toast_rect = getRect(); LLRect panel_rect = mScriptForm->getRect(); toast_rect.setLeftTopAndSize(toast_rect.mLeft, toast_rect.mTop, panel_rect.getWidth(), panel_rect.getHeight() + getHeaderHeight()); setShape(toast_rect); diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 025dd6029a..d4d6a74f0c 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1040,7 +1040,7 @@ bool idle_startup() if(STATE_LOGIN_PROCESS_RESPONSE == LLStartUp::getStartupState()) { std::ostringstream emsg; - emsg << "Login failed.\n"; + emsg << LLTrans::getString("LoginFailed") << "\n"; if(LLLoginInstance::getInstance()->authFailure()) { LL_INFOS("LLStartup") << "Login failed, LLLoginInstance::getResponse(): " diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp index 6ed95f2cbf..386b636367 100644 --- a/indra/newview/lltexlayer.cpp +++ b/indra/newview/lltexlayer.cpp @@ -1883,6 +1883,11 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) /*virtual*/ BOOL LLTexLayerTemplate::render(S32 x, S32 y, S32 width, S32 height) { + if(!mInfo) + { + return FALSE ; + } + BOOL success = TRUE; updateWearableCache(); for (wearable_cache_t::const_iterator iter = mWearableCache.begin(); iter!= mWearableCache.end(); iter++) diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index 4649b9cbef..54ac3850fd 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -550,7 +550,7 @@ bool LLTextureCacheRemoteWorker::doWrite() S32 cur_imagesize = 0; // Checks if this image is already in the entry list idx = mCache->getHeaderCacheEntry(mID, cur_imagesize); - if (idx >= 0 && (cur_imagesize >= 0)) + if (idx >= 0 && (cur_imagesize > 0)) { alreadyCached = true; // already there and non empty } @@ -846,9 +846,8 @@ bool LLTextureCache::updateTextureEntryList(const LLUUID& id, S32 bodysize) S32 idx = openAndReadEntry(id, entry, false); if (idx < 0) { - llwarns << "Failed to open entry: " << id << llendl; - removeHeaderCacheEntry(id); - LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool()); + llwarns << "Failed to open entry: " << id << llendl; + removeCachedTexture(id) ; return false; } else if (oldbodysize != entry.mBodySize) @@ -857,11 +856,7 @@ bool LLTextureCache::updateTextureEntryList(const LLUUID& id, S32 bodysize) llerrs << "Entry mismatch in mTextureSizeMap / mHeaderIDMap" << " idx=" << idx << " oldsize=" << oldbodysize << " entrysize=" << entry.mBodySize << llendl; } - entry.mBodySize = bodysize; - writeEntryAndClose(idx, entry); - - mTexturesSizeTotal -= oldbodysize; - mTexturesSizeTotal += bodysize; + updateEntry(idx, entry, entry.mImageSize, bodysize); if (mTexturesSizeTotal > sCacheMaxTexturesSize) { @@ -1002,7 +997,10 @@ LLAPRFile* LLTextureCache::openHeaderEntriesFile(bool readonly, S32 offset) llassert_always(mHeaderAPRFile == NULL); apr_int32_t flags = readonly ? APR_READ|APR_BINARY : APR_READ|APR_WRITE|APR_BINARY; mHeaderAPRFile = new LLAPRFile(mHeaderEntriesFileName, flags, getLocalAPRFilePool()); - mHeaderAPRFile->seek(APR_SET, offset); + if(offset > 0) + { + mHeaderAPRFile->seek(APR_SET, offset); + } return mHeaderAPRFile; } @@ -1022,6 +1020,12 @@ void LLTextureCache::readEntriesHeader() LLAPRFile::readEx(mHeaderEntriesFileName, (U8*)&mHeaderEntriesInfo, 0, sizeof(EntriesInfo), getLocalAPRFilePool()); } + else //create an empty entries header. + { + mHeaderEntriesInfo.mVersion = sHeaderCacheVersion ; + mHeaderEntriesInfo.mEntries = 0 ; + writeEntriesHeader() ; + } } void LLTextureCache::writeEntriesHeader() @@ -1034,8 +1038,7 @@ void LLTextureCache::writeEntriesHeader() } } -static S32 mHeaderEntriesMaxWriteIdx = 0; - +//mHeaderMutex is locked before calling this. S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create) { S32 idx = -1; @@ -1075,8 +1078,7 @@ S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create if (iter3 != mHeaderIDMap.end() && iter3->second >= 0) { idx = iter3->second; - mHeaderIDMap.erase(oldid); - mTexturesSizeMap.erase(oldid); + removeCachedTexture(oldid) ;//remove the existing cached texture to release the entry index. break; } } @@ -1086,22 +1088,9 @@ S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create } if (idx >= 0) { - // Set the header index - mHeaderIDMap[id] = idx; - llassert_always(mTexturesSizeMap.erase(id) == 0); - // Initialize the entry (will get written later) - entry.init(id, time(NULL)); - // Update Header - writeEntriesHeader(); - - //the new entry, write immediately. - // Write Entry - S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); - LLAPRFile* aprfile = openHeaderEntriesFile(false, offset); - S32 bytes_written = aprfile->write((void*)&entry, (S32)sizeof(Entry)); - llassert_always(bytes_written == sizeof(Entry)); - mHeaderEntriesMaxWriteIdx = llmax(mHeaderEntriesMaxWriteIdx, idx); - closeHeaderEntriesFile(); + entry.mID = id ; + entry.mImageSize = -1 ; //mark it is a brand-new entry. + entry.mBodySize = 0 ; } } } @@ -1117,32 +1106,108 @@ S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create } else { - S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); - LLAPRFile* aprfile = openHeaderEntriesFile(true, offset); - S32 bytes_read = aprfile->read((void*)&entry, (S32)sizeof(Entry)); - llassert_always(bytes_read == sizeof(Entry)); - closeHeaderEntriesFile(); + readEntryFromHeaderImmediately(idx, entry) ; } - llassert_always(entry.mImageSize == 0 || entry.mImageSize == -1 || entry.mImageSize > entry.mBodySize); + llassert_always(entry.mImageSize > entry.mBodySize); } return idx; } -void LLTextureCache::writeEntryAndClose(S32 idx, Entry& entry) +//mHeaderMutex is locked before calling this. +void LLTextureCache::writeEntryToHeaderImmediately(S32 idx, Entry& entry, bool write_header) +{ + LLAPRFile* aprfile ; + S32 bytes_written ; + S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); + if(write_header) + { + aprfile = openHeaderEntriesFile(false, 0); + bytes_written = aprfile->write((U8*)&mHeaderEntriesInfo, sizeof(EntriesInfo)) ; + llassert_always(bytes_written == sizeof(EntriesInfo)); + mHeaderAPRFile->seek(APR_SET, offset); + } + else + { + aprfile = openHeaderEntriesFile(false, offset); + } + bytes_written = aprfile->write((void*)&entry, (S32)sizeof(Entry)); + llassert_always(bytes_written == sizeof(Entry)); + closeHeaderEntriesFile(); + mUpdatedEntryMap.erase(idx) ; +} + +//mHeaderMutex is locked before calling this. +void LLTextureCache::readEntryFromHeaderImmediately(S32 idx, Entry& entry) +{ + S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); + LLAPRFile* aprfile = openHeaderEntriesFile(true, offset); + S32 bytes_read = aprfile->read((void*)&entry, (S32)sizeof(Entry)); + llassert_always(bytes_read == sizeof(Entry)); + closeHeaderEntriesFile(); +} + +//mHeaderMutex is locked before calling this. +//update an existing entry time stamp, delay writing. +void LLTextureCache::updateEntryTimeStamp(S32 idx, Entry& entry) { + static const U32 MAX_ENTRIES_WITHOUT_TIME_STAMP = (U32)LLTextureCache::sCacheMaxEntries * 0.75f ; + + if(mHeaderEntriesInfo.mEntries < MAX_ENTRIES_WITHOUT_TIME_STAMP) + { + return ; //there are enough empty entry index space, no need to stamp time. + } + if (idx >= 0) { if (!mReadOnly) { - entry.mTime = time(NULL); - llassert_always(entry.mImageSize == 0 || entry.mImageSize == -1 || entry.mImageSize > entry.mBodySize); - if (entry.mBodySize > 0) + llassert_always(entry.mImageSize > entry.mBodySize); + + entry.mTime = time(NULL); + mUpdatedEntryMap[idx] = entry ; + } + } +} + +//mHeaderMutex is locked before calling this. +//update an existing entry, write to header file immediately. +void LLTextureCache::updateEntry(S32 idx, Entry& entry, S32 new_image_size, S32 new_body_size) +{ + llassert_always(new_image_size > -1) ; + + if(new_image_size == entry.mImageSize && new_body_size == entry.mBodySize) + { + updateEntryTimeStamp(idx, entry) ; //nothing changed. + } + else if (idx >= 0) + { + if (!mReadOnly) + { + llassert_always(new_image_size > new_body_size) ; + + bool update_header = false ; + if(entry.mImageSize < 0) //is a brand-new entry + { + mHeaderIDMap[entry.mID] = idx; + mTexturesSizeMap[entry.mID] = new_body_size ; + mTexturesSizeTotal += new_body_size ; + + // Update Header + update_header = true ; + } + else if (entry.mBodySize != new_body_size) { - mTexturesSizeMap[entry.mID] = entry.mBodySize; + //already in mHeaderIDMap. + mTexturesSizeMap[entry.mID] = new_body_size ; + mTexturesSizeTotal -= entry.mBodySize ; + mTexturesSizeTotal += new_body_size ; } -// llinfos << "Updating TE: " << idx << ": " << id << " Size: " << entry.mBodySize << " Time: " << entry.mTime << llendl; - mHeaderEntriesMaxWriteIdx = llmax(mHeaderEntriesMaxWriteIdx, idx); - mUpdatedEntryMap[idx] = entry ; + entry.mTime = time(NULL); + entry.mImageSize = new_image_size ; + entry.mBodySize = new_body_size ; + +// llinfos << "Updating TE: " << idx << ": " << id << " Size: " << entry.mBodySize << " Time: " << entry.mTime << llendl; + writeEntryToHeaderImmediately(idx, entry, update_header) ; } } } @@ -1156,8 +1221,9 @@ U32 LLTextureCache::openAndReadEntries(std::vector<Entry>& entries) mFreeList.clear(); mTexturesSizeTotal = 0; - LLAPRFile* aprfile = openHeaderEntriesFile(false, (S32)sizeof(EntriesInfo)); + LLAPRFile* aprfile = openHeaderEntriesFile(true, 0); updatedHeaderEntriesFile() ; + aprfile->seek(APR_SET, (S32)sizeof(EntriesInfo)); for (U32 idx=0; idx<num_entries; idx++) { Entry entry; @@ -1171,19 +1237,15 @@ U32 LLTextureCache::openAndReadEntries(std::vector<Entry>& entries) } entries.push_back(entry); // llinfos << "ENTRY: " << entry.mTime << " TEX: " << entry.mID << " IDX: " << idx << " Size: " << entry.mImageSize << llendl; - if (entry.mImageSize < 0) + if(entry.mImageSize > entry.mBodySize) { - mFreeList.insert(idx); + mHeaderIDMap[entry.mID] = idx; + mTexturesSizeMap[entry.mID] = entry.mBodySize; + mTexturesSizeTotal += entry.mBodySize; } else { - mHeaderIDMap[entry.mID] = idx; - if (entry.mBodySize > 0) - { - mTexturesSizeMap[entry.mID] = entry.mBodySize; - mTexturesSizeTotal += entry.mBodySize; - } - llassert_always(entry.mImageSize == 0 || entry.mImageSize > entry.mBodySize); + mFreeList.insert(idx); } } closeHeaderEntriesFile(); @@ -1203,7 +1265,6 @@ void LLTextureCache::writeEntriesAndClose(const std::vector<Entry>& entries) S32 bytes_written = aprfile->write((void*)(&entries[idx]), (S32)sizeof(Entry)); llassert_always(bytes_written == sizeof(Entry)); } - mHeaderEntriesMaxWriteIdx = llmax(mHeaderEntriesMaxWriteIdx, num_entries-1); closeHeaderEntriesFile(); } } @@ -1276,12 +1337,11 @@ void LLTextureCache::readHeaderCache() U32 empty_entries = 0; typedef std::pair<U32, S32> lru_data_t; std::set<lru_data_t> lru; - std::set<LLUUID> purge_list; + std::set<U32> purge_list; for (U32 i=0; i<num_entries; i++) { Entry& entry = entries[i]; - const LLUUID& id = entry.mID; - if (entry.mImageSize < 0) + if (entry.mImageSize <= 0) { // This will be in the Free List, don't put it in the LRU ++empty_entries; @@ -1294,9 +1354,8 @@ void LLTextureCache::readHeaderCache() if (entry.mBodySize > entry.mImageSize) { // Shouldn't happen, failsafe only - llwarns << "Bad entry: " << i << ": " << id << ": BodySize: " << entry.mBodySize << llendl; - purge_list.insert(entry.mID); - entry.mImageSize = -1; // empty/available + llwarns << "Bad entry: " << i << ": " << entry.mID << ": BodySize: " << entry.mBodySize << llendl; + purge_list.insert(i); } } } @@ -1311,14 +1370,9 @@ void LLTextureCache::readHeaderCache() { for (std::set<lru_data_t>::iterator iter = lru.begin(); iter != lru.end(); ++iter) { - S32 idx = iter->second; - if (entries[idx].mImageSize >= 0) - { - purge_list.insert(entries[idx].mID); - entries[idx].mImageSize = -1; - if (purge_list.size() >= entries_to_purge) - break; - } + purge_list.insert(iter->second); + if (purge_list.size() >= entries_to_purge) + break; } } llassert_always(purge_list.size() >= entries_to_purge); @@ -1328,9 +1382,7 @@ void LLTextureCache::readHeaderCache() S32 lru_entries = (S32)((F32)sCacheMaxEntries * TEXTURE_CACHE_LRU_SIZE); for (std::set<lru_data_t>::iterator iter = lru.begin(); iter != lru.end(); ++iter) { - S32 idx = iter->second; - const LLUUID& id = entries[idx].mID; - mLRU.insert(id); + mLRU.insert(entries[iter->second].mID); // llinfos << "LRU: " << iter->first << " : " << iter->second << llendl; if (--lru_entries <= 0) break; @@ -1339,12 +1391,9 @@ void LLTextureCache::readHeaderCache() if (purge_list.size() > 0) { - for (std::set<LLUUID>::iterator iter = purge_list.begin(); iter != purge_list.end(); ++iter) + for (std::set<U32>::iterator iter = purge_list.begin(); iter != purge_list.end(); ++iter) { - const LLUUID& id = *iter; - bool res = removeHeaderCacheEntry(id); // sets entry size on disk to -1 - llassert_always(res); - LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool()); + removeEntry(*iter, entries[*iter], getTextureFileName(entries[*iter].mID)); } // If we removed any entries, we need to rebuild the entries list, // write the header, and call this again @@ -1352,13 +1401,14 @@ void LLTextureCache::readHeaderCache() for (U32 i=0; i<num_entries; i++) { const Entry& entry = entries[i]; - if (entry.mImageSize >=0) + if (entry.mImageSize > 0) { new_entries.push_back(entry); } } llassert_always(new_entries.size() <= sCacheMaxEntries); mHeaderEntriesInfo.mEntries = new_entries.size(); + writeEntriesHeader(); writeEntriesAndClose(new_entries); mHeaderMutex.unlock(); // unlock the mutex before calling again readHeaderCache(); // repeat with new entries file @@ -1366,7 +1416,7 @@ void LLTextureCache::readHeaderCache() } else { - writeEntriesAndClose(entries); + //entries are not changed, nothing here. } } } @@ -1394,6 +1444,7 @@ void LLTextureCache::purgeAllTextures(bool purge_directories) } if (purge_directories) { + gDirUtilp->deleteFilesInDir(mTexturesDirName,mask); LLFile::rmdir(mTexturesDirName); } } @@ -1431,7 +1482,6 @@ void LLTextureCache::purgeTextures(bool validate) U32 num_entries = openAndReadEntries(entries); if (!num_entries) { - writeEntriesAndClose(entries); return; // nothing to purge } @@ -1450,6 +1500,10 @@ void LLTextureCache::purgeTextures(bool validate) time_idx_set.insert(std::make_pair(entries[idx].mTime, idx)); // llinfos << "TIME: " << entries[idx].mTime << " TEX: " << entries[idx].mID << " IDX: " << idx << " Size: " << entries[idx].mImageSize << llendl; } + else + { + llerrs << "mTexturesSizeMap / mHeaderIDMap corrupted." << llendl ; + } } } @@ -1501,11 +1555,8 @@ void LLTextureCache::purgeTextures(bool validate) { purge_count++; LL_DEBUGS("TextureCache") << "PURGING: " << filename << LL_ENDL; - LLAPRFile::remove(filename, getLocalAPRFilePool()); + removeEntry(idx, entries[idx], filename) ; cache_size -= entries[idx].mBodySize; - mTexturesSizeTotal -= entries[idx].mBodySize; - entries[idx].mBodySize = 0; - mTexturesSizeMap.erase(entries[idx].mID); } } @@ -1560,7 +1611,7 @@ S32 LLTextureCache::getHeaderCacheEntry(const LLUUID& id, S32& imagesize) if (idx >= 0) { imagesize = entry.mImageSize; - writeEntryAndClose(idx, entry); // updates time + updateEntryTimeStamp(idx, entry); // updates time } return idx; } @@ -1574,8 +1625,7 @@ S32 LLTextureCache::setHeaderCacheEntry(const LLUUID& id, S32 imagesize) S32 idx = openAndReadEntry(id, entry, true); if (idx >= 0) { - entry.mImageSize = imagesize; - writeEntryAndClose(idx, entry); + updateEntry(idx, entry, imagesize, entry.mBodySize); mHeaderMutex.unlock(); } else // retry @@ -1714,34 +1764,55 @@ void LLTextureCache::addCompleted(Responder* responder, bool success) ////////////////////////////////////////////////////////////////////////////// -// Called from MAIN thread (endWork()) -// Ensure that mHeaderMutex is locked first! -bool LLTextureCache::removeHeaderCacheEntry(const LLUUID& id) +//called after mHeaderMutex is locked. +void LLTextureCache::removeCachedTexture(const LLUUID& id) { - Entry entry; - S32 idx = openAndReadEntry(id, entry, false); - if (idx >= 0) + if(mTexturesSizeMap.find(id) != mTexturesSizeMap.end()) + { + mTexturesSizeTotal -= mTexturesSizeMap[id] ; + mTexturesSizeMap.erase(id); + } + mHeaderIDMap.erase(id); + LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool()); +} + +//called after mHeaderMutex is locked. +void LLTextureCache::removeEntry(S32 idx, Entry& entry, std::string& filename) +{ + if(idx >= 0) //valid entry { entry.mImageSize = -1; entry.mBodySize = 0; - writeEntryAndClose(idx, entry); - mFreeList.insert(idx); - mHeaderIDMap.erase(id); - mTexturesSizeMap.erase(id); - return true; + mHeaderIDMap.erase(entry.mID); + mTexturesSizeMap.erase(entry.mID); + + mTexturesSizeTotal -= entry.mBodySize; + mFreeList.insert(idx); } - return false; + + LLAPRFile::remove(filename, getLocalAPRFilePool()); } -void LLTextureCache::removeFromCache(const LLUUID& id) +bool LLTextureCache::removeFromCache(const LLUUID& id) { //llwarns << "Removing texture from cache: " << id << llendl; + bool ret = false ; if (!mReadOnly) { - LLMutexLock lock(&mHeaderMutex); - removeHeaderCacheEntry(id); - LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool()); + lockHeaders() ; + + Entry entry; + S32 idx = openAndReadEntry(id, entry, false); + removeEntry(idx, entry, getTextureFileName(id)) ; + if (idx >= 0) + { + writeEntryToHeaderImmediately(idx, entry); + ret = true; + } + + unlockHeaders() ; } + return ret ; } ////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h index b840619c1f..ca8815ee7e 100644 --- a/indra/newview/lltexturecache.h +++ b/indra/newview/lltexturecache.h @@ -123,7 +123,7 @@ public: bool writeComplete(handle_t handle, bool abort = false); void prioritizeWrite(handle_t handle); - void removeFromCache(const LLUUID& id); + bool removeFromCache(const LLUUID& id); // For LLTextureCacheWorker::Responder LLTextureCacheWorker* getReader(handle_t handle); @@ -161,12 +161,16 @@ private: void readEntriesHeader(); void writeEntriesHeader(); S32 openAndReadEntry(const LLUUID& id, Entry& entry, bool create); - void writeEntryAndClose(S32 idx, Entry& entry); + void updateEntry(S32 idx, Entry& entry, S32 new_image_size, S32 new_body_size); + void updateEntryTimeStamp(S32 idx, Entry& entry) ; U32 openAndReadEntries(std::vector<Entry>& entries); void writeEntriesAndClose(const std::vector<Entry>& entries); + void readEntryFromHeaderImmediately(S32 idx, Entry& entry) ; + void writeEntryToHeaderImmediately(S32 idx, Entry& entry, bool write_header = false) ; + void removeEntry(S32 idx, Entry& entry, std::string& filename); + void removeCachedTexture(const LLUUID& id) ; S32 getHeaderCacheEntry(const LLUUID& id, S32& imagesize); S32 setHeaderCacheEntry(const LLUUID& id, S32 imagesize); - bool removeHeaderCacheEntry(const LLUUID& id); void writeUpdatedEntries() ; void updatedHeaderEntriesFile() ; void lockHeaders() { mHeaderMutex.lock(); } diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp index 6cd8a78b25..43913f3632 100644 --- a/indra/newview/lltextureview.cpp +++ b/indra/newview/lltextureview.cpp @@ -660,8 +660,9 @@ struct compare_decode_pair struct KillView { - void operator()(LLView* viewp) const + void operator()(LLView* viewp) { + viewp->getParent()->removeChild(viewp); viewp->die(); } }; @@ -676,8 +677,12 @@ void LLTextureView::draw() for_each(mTextureBars.begin(), mTextureBars.end(), KillView()); mTextureBars.clear(); - delete mGLTexMemBar; - mGLTexMemBar = 0; + if (mGLTexMemBar) + { + removeChild(mGLTexMemBar); + mGLTexMemBar->die(); + mGLTexMemBar = 0; + } typedef std::multiset<decode_pair_t, compare_decode_pair > display_list_t; display_list_t display_image_list; diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp index c47c017143..e6d13a7613 100644 --- a/indra/newview/lltoastnotifypanel.cpp +++ b/indra/newview/lltoastnotifypanel.cpp @@ -53,7 +53,7 @@ S32 BUTTON_WIDTH = 90; const LLFontGL* LLToastNotifyPanel::sFont = NULL; const LLFontGL* LLToastNotifyPanel::sFontSmall = NULL; -LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification) : +LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification, const LLRect& rect) : LLToastPanel(notification), mTextBox(NULL), mInfoPanel(NULL), @@ -63,6 +63,10 @@ mNumButtons(0), mAddedDefaultBtn(false) { LLUICtrlFactory::getInstance()->buildPanel(this, "panel_notification.xml"); + if(rect != LLRect::null) + { + this->setShape(rect); + } mInfoPanel = getChild<LLPanel>("info_panel"); mControlPanel = getChild<LLPanel>("control_panel"); BUTTON_WIDTH = gSavedSettings.getS32("ToastButtonWidth"); @@ -159,7 +163,12 @@ mAddedDefaultBtn(false) * for a scriptdialog toast h_pad can be < 2*HPAD if we have a lot of buttons. * In last case set default h_pad to avoid heaping of buttons */ - h_pad = 2*HPAD; + S32 button_per_row = button_panel_width / BUTTON_WIDTH; + h_pad = (button_panel_width % BUTTON_WIDTH) / (button_per_row - 1);// -1 because we do not need space after last button in a row + if(h_pad < 2*HPAD) // still not enough space between buttons ? + { + h_pad = 2*HPAD; + } } if (mIsScriptDialog) { @@ -224,7 +233,7 @@ LLButton* LLToastNotifyPanel::createButton(const LLSD& form_element, BOOL is_opt p.click_callback.function(boost::bind(&LLToastNotifyPanel::onClickButton, userdata)); p.rect.width = BUTTON_WIDTH; p.auto_resize = false; - p.follows.flags(FOLLOWS_RIGHT | FOLLOWS_LEFT | FOLLOWS_BOTTOM); + p.follows.flags(FOLLOWS_LEFT | FOLLOWS_BOTTOM); if (mIsCaution) { p.image_color(LLUIColorTable::instance().getColor("ButtonCautionImageColor")); diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h index e791eea469..152975e7de 100644 --- a/indra/newview/lltoastnotifypanel.h +++ b/indra/newview/lltoastnotifypanel.h @@ -53,7 +53,15 @@ class LLNotificationForm; class LLToastNotifyPanel: public LLToastPanel { public: - LLToastNotifyPanel(LLNotificationPtr&); + /** + * Constructor for LLToastNotifyPanel. + * + * @param pNotification a shared pointer to LLNotification + * @param rect an initial rectangle of the toast panel. + * If it is null then a loaded from xml rectangle will be used. + * @see LLNotification + */ + LLToastNotifyPanel(LLNotificationPtr& pNotification, const LLRect& rect = LLRect::null); virtual ~LLToastNotifyPanel(); LLPanel * getControlPanel() { return mControlPanel; } @@ -77,7 +85,7 @@ private: /* * It lays out buttons of the notification in mControlPanel. * Buttons will be placed from BOTTOM to TOP. - * @param h_pad horizontal space between buttons. It is depent on number of buttons. + * @param h_pad horizontal space between buttons. It is depend on number of buttons. * @param buttons vector of button to be added. */ void updateButtonsLayout(const std::vector<index_button_pair_t>& buttons, S32 h_pad); diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index fb78b6a415..d15db536e6 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -412,24 +412,24 @@ ECursorType cursor_from_object(LLViewerObject* object) case CLICK_ACTION_SIT: if ((gAgent.getAvatarObject() != NULL) && (!gAgent.getAvatarObject()->isSitting())) // not already sitting? { - cursor = UI_CURSOR_HAND; + cursor = UI_CURSOR_TOOLSIT; } break; case CLICK_ACTION_BUY: - cursor = UI_CURSOR_HAND; + cursor = UI_CURSOR_TOOLBUY; break; case CLICK_ACTION_OPEN: // Open always opens the parent. if (parent && parent->allowOpen()) { - cursor = UI_CURSOR_HAND; + cursor = UI_CURSOR_TOOLOPEN; } break; case CLICK_ACTION_PAY: if ((object && object->flagTakesMoney()) || (parent && parent->flagTakesMoney())) { - cursor = UI_CURSOR_HAND; + cursor = UI_CURSOR_TOOLBUY; } break; case CLICK_ACTION_ZOOM: @@ -901,6 +901,16 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l || !existing_inspector->getVisible() || existing_inspector->getKey()["object_id"].asUUID() != hover_object->getID())) { + + // Add price to tooltip for items on sale + bool for_sale = for_sale_selection(nodep); + if(for_sale) + { + LLStringUtil::format_map_t args; + args["[PRICE]"] = llformat ("%d", nodep->mSaleInfo.getSalePrice()); + tooltip_msg.append(LLTrans::getString("TooltipPrice", args) ); + } + if (nodep->mName.empty()) { tooltip_msg.append(LLTrans::getString("TooltipNoName")); @@ -931,7 +941,7 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l if (media_impl.notNull() && (media_impl->hasMedia())) { is_media_displaying = true; - LLStringUtil::format_map_t args; + //LLStringUtil::format_map_t args; media_plugin = media_impl->getMediaPlugin(); if(media_plugin) @@ -955,10 +965,13 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l } } - // Avoid showing tip over media that's displaying + + // Avoid showing tip over media that's displaying unless it's for sale // also check the primary node since sometimes it can have an action even though // the root node doesn't - bool needs_tip = !is_media_displaying && + + bool needs_tip = (!is_media_displaying || + for_sale) && (has_media || needs_tooltip(nodep) || needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode())); diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 85efe2724e..b9509a98f5 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1258,7 +1258,9 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ { LLPluginClassMedia* media_source = new LLPluginClassMedia(owner); media_source->setSize(default_width, default_height); - if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"), user_data_path)) + media_source->setUserDataPath(user_data_path); + media_source->setLanguageCode(LLUI::getLanguage()); + if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) { return media_source; } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index e13f423941..d546d2b16b 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -86,6 +86,7 @@ #include "lltoolmgr.h" #include "lltoolpie.h" #include "lltoolselectland.h" +#include "lltrans.h" #include "llviewergenericmessage.h" #include "llviewerhelp.h" #include "llviewermenufile.h" // init_menu_file() @@ -103,6 +104,7 @@ #include "llfloatercamera.h" #include "lluilistener.h" #include "llappearancemgr.h" +#include "lltrans.h" using namespace LLVOAvatarDefines; @@ -3274,7 +3276,7 @@ void handle_buy_object(LLSaleInfo sale_info) if (price > 0 && price > gStatusBar->getBalance()) { - LLFloaterBuyCurrency::buyCurrency("This object costs", price); + LLFloaterBuyCurrency::buyCurrency(LLTrans::getString("this_object_costs"), price); return; } @@ -7048,7 +7050,7 @@ LLVOAvatar* find_avatar_from_object( const LLUUID& object_id ) void handle_disconnect_viewer(void *) { - LLAppViewer::instance()->forceDisconnect("Testing viewer disconnect"); + LLAppViewer::instance()->forceDisconnect(LLTrans::getString("TestingDisconnect")); } void force_error_breakpoint(void *) diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 84b270f8cc..00762894cd 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -1001,7 +1001,7 @@ void upload_new_resource(const LLTransactionID &tid, LLAssetType::EType asset_ty if (balance < expected_upload_cost) { // insufficient funds, bail on this upload - LLFloaterBuyCurrency::buyCurrency("Uploading costs", expected_upload_cost); + LLFloaterBuyCurrency::buyCurrency(LLTrans::getString("uploading_costs"), expected_upload_cost); return; } } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 361f4e2326..bd0012057c 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -272,7 +272,7 @@ void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_ } else { - LLFloaterBuyCurrency::buyCurrency("Giving", amount); + LLFloaterBuyCurrency::buyCurrency(LLTrans::getString("giving"), amount); } } @@ -1500,7 +1500,9 @@ void inventory_offer_handler(LLOfferInfo* info) std::string typestr = ll_safe_string(LLAssetType::lookupHumanReadable(info->mType)); if (!typestr.empty()) { - args["OBJECTTYPE"] = typestr; + // human readable matches string name from strings.xml + // lets get asset type localized name + args["OBJECTTYPE"] = LLTrans::getString(typestr); } else { @@ -3078,7 +3080,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) << x << ":" << y << " current pos " << gAgent.getPositionGlobal() << LL_ENDL; - LLAppViewer::instance()->forceDisconnect("You were sent to an invalid region."); + LLAppViewer::instance()->forceDisconnect(LLTrans::getString("SentToInvalidRegion")); return; } @@ -4458,20 +4460,39 @@ void process_money_balance_reply( LLMessageSystem* msg, void** ) // have missed something during an event. // *TODO: Translate LLSD args; - args["MESSAGE"] = desc; + // this is a marker to retrieve avatar name from server message: // "<avatar name> paid you L$" const std::string marker = "paid you L$"; + args["MESSAGE"] = desc; + // extract avatar name from system message - std::string name = desc.substr(0, desc.find(marker, 0)); + S32 marker_pos = desc.find(marker, 0); + + std::string base_name = desc.substr(0, marker_pos); + + std::string name = base_name; LLStringUtil::trim(name); // if name extracted and name cache contains avatar id send loggable notification LLUUID from_id; if(name.size() > 0 && gCacheName->getUUID(name, from_id)) { + //description always comes not localized. lets fix this + + //ammount paid + std::string ammount = desc.substr(marker_pos + marker.length(),desc.length() - marker.length() - marker_pos); + + //reform description + LLStringUtil::format_map_t str_args; + str_args["NAME"] = base_name; + str_args["AMOUNT"] = ammount; + std::string new_description = LLTrans::getString("paid_you_ldollars", str_args); + + + args["MESSAGE"] = new_description; args["NAME"] = name; LLSD payload; payload["from_id"] = from_id; diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index 2c5c0a37e8..b967436df6 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -210,25 +210,29 @@ void LLViewerParcelMedia::play(LLParcel* parcel) // A new impl will be created below. } } - - if(!sMediaImpl) + + // Don't ever try to play if the media type is set to "none/none" + if(stricmp(mime_type.c_str(), "none/none") != 0) { - LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL; - - // There is no media impl, make a new one - sMediaImpl = LLViewerMedia::newMediaImpl( - placeholder_texture_id, - media_width, - media_height, - media_auto_scale, - media_loop); - sMediaImpl->setIsParcelMedia(true); - sMediaImpl->navigateTo(media_url, mime_type, true); - } + if(!sMediaImpl) + { + LL_DEBUGS("Media") << "new media impl with mime type " << mime_type << ", url " << media_url << LL_ENDL; + + // There is no media impl, make a new one + sMediaImpl = LLViewerMedia::newMediaImpl( + placeholder_texture_id, + media_width, + media_height, + media_auto_scale, + media_loop); + sMediaImpl->setIsParcelMedia(true); + sMediaImpl->navigateTo(media_url, mime_type, true); + } - //LLFirstUse::useMedia(); + //LLFirstUse::useMedia(); - LLViewerParcelMediaAutoPlay::playStarted(); + LLViewerParcelMediaAutoPlay::playStarted(); + } } // static @@ -312,11 +316,14 @@ std::string LLViewerParcelMedia::getURL() if(sMediaImpl.notNull()) url = sMediaImpl->getMediaURL(); - if (url.empty()) - url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL(); - - if (url.empty()) - url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaURL(); + if(stricmp(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaType().c_str(), "none/none") != 0) + { + if (url.empty()) + url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaCurrentURL(); + + if (url.empty()) + url = LLViewerParcelMgr::getInstance()->getAgentParcel()->getMediaURL(); + } return url; } diff --git a/indra/newview/llviewerparcelmediaautoplay.cpp b/indra/newview/llviewerparcelmediaautoplay.cpp index ad2723b66b..f55d6d89c4 100644 --- a/indra/newview/llviewerparcelmediaautoplay.cpp +++ b/indra/newview/llviewerparcelmediaautoplay.cpp @@ -86,6 +86,7 @@ BOOL LLViewerParcelMediaAutoPlay::tick() LLParcel *this_parcel = NULL; LLViewerRegion *this_region = NULL; std::string this_media_url; + std::string this_media_type; LLUUID this_media_texture_id; S32 this_parcel_id = 0; LLUUID this_region_id; @@ -101,7 +102,9 @@ BOOL LLViewerParcelMediaAutoPlay::tick() if (this_parcel) { - this_media_url = std::string(this_parcel->getMediaURL()); + this_media_url = this_parcel->getMediaURL(); + + this_media_type = this_parcel->getMediaType(); this_media_texture_id = this_parcel->getMediaID(); @@ -118,14 +121,15 @@ BOOL LLViewerParcelMediaAutoPlay::tick() mLastRegionID = this_region_id; } - mTimeInParcel += mPeriod; // increase mTimeInParcel by the amount of time between ticks + mTimeInParcel += mPeriod; // increase mTimeInParcel by the amount of time between ticks - if ((!mPlayed) && // if we've never played - (mTimeInParcel > AUTOPLAY_TIME) && // and if we've been here for so many seconds - (this_media_url.size() != 0) && // and if the parcel has media - (LLViewerParcelMedia::sMediaImpl.isNull())) // and if the media is not already playing + if ((!mPlayed) && // if we've never played + (mTimeInParcel > AUTOPLAY_TIME) && // and if we've been here for so many seconds + (!this_media_url.empty()) && // and if the parcel has media + (stricmp(this_media_type.c_str(), "none/none") != 0) && + (LLViewerParcelMedia::sMediaImpl.isNull())) // and if the media is not already playing { - if (this_media_texture_id.notNull()) // and if the media texture is good + if (this_media_texture_id.notNull()) // and if the media texture is good { LLViewerMediaTexture *image = LLViewerTextureManager::getMediaTexture(this_media_texture_id, FALSE) ; diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index 8059f866ba..41d9f6d067 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -827,7 +827,11 @@ void send_stats() S32 window_height = gViewerWindow->getWindowHeightRaw(); S32 window_size = (window_width * window_height) / 1024; misc["string_1"] = llformat("%d", window_size); - // misc["string_2"] = + if (gDebugTimers.find(0) != gDebugTimers.end() && gFrameTimeSeconds > 0) + { + misc["string_2"] = llformat("Texture Time: %.2f, Total Time: %.2f", gDebugTimers[0].getElapsedTimeF32(), gFrameTimeSeconds); + } + // misc["int_1"] = LLSD::Integer(gSavedSettings.getU32("RenderQualityPerformance")); // Steve: 1.21 // misc["int_2"] = LLSD::Integer(gFrameStalls); // Steve: 1.21 diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index b21758d3b3..dbbf0219c9 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -82,7 +82,7 @@ LLTexturePipelineTester* LLViewerTextureManager::sTesterp = NULL ; S32 LLViewerTexture::sImageCount = 0; S32 LLViewerTexture::sRawCount = 0; S32 LLViewerTexture::sAuxCount = 0; -LLTimer LLViewerTexture::sEvaluationTimer; +LLFrameTimer LLViewerTexture::sEvaluationTimer; F32 LLViewerTexture::sDesiredDiscardBias = 0.f; F32 LLViewerTexture::sDesiredDiscardScale = 1.1f; S32 LLViewerTexture::sBoundTextureMemoryInBytes = 0; @@ -102,7 +102,7 @@ F32 LLViewerTexture::sCurrentTime = 0.0f ; BOOL LLViewerTexture::sUseTextureAtlas = FALSE ; const F32 desired_discard_bias_min = -2.0f; // -max number of levels to improve image quality by -const F32 desired_discard_bias_max = 1.5f; // max number of levels to reduce image quality by +const F32 desired_discard_bias_max = (F32)MAX_DISCARD_LEVEL; // max number of levels to reduce image quality by const F64 log_2 = log(2.0); //---------------------------------------------------------------------------------------------- @@ -369,7 +369,7 @@ S32 LLViewerTexture::getCategoryFromIndex(S32 index) } // tuning params -const F32 discard_bias_delta = .05f; +const F32 discard_bias_delta = .25f; const F32 discard_delta_time = 0.5f; const S32 min_non_tex_system_mem = (128<<20); // 128 MB // non-const (used externally @@ -2262,11 +2262,14 @@ void LLViewerFetchedTexture::destroyRawImage() { sRawCount--; - if(mForceToSaveRawImage) + if(mIsRawImageValid) { - saveRawImage() ; - } - setCachedRawImage() ; + if(mForceToSaveRawImage) + { + saveRawImage() ; + } + setCachedRawImage() ; + } } mRawImage = NULL; @@ -2741,7 +2744,7 @@ void LLViewerLODTexture::processTextureStats() mCalculatedDiscardLevel = discard_level; } } - if (mBoostLevel < LLViewerTexture::BOOST_HIGH) + if (mBoostLevel < LLViewerTexture::BOOST_SCULPTED) { discard_level += sDesiredDiscardBias; discard_level *= sDesiredDiscardScale; // scale @@ -2767,8 +2770,7 @@ void LLViewerLODTexture::processTextureStats() // S32 current_discard = getDiscardLevel(); - if ((sDesiredDiscardBias > 0.0f) && - (current_discard >= 0 && mDesiredDiscardLevel >= current_discard)) + if (sDesiredDiscardBias > 0.0f && mBoostLevel < LLViewerTexture::BOOST_SCULPTED && current_discard >= 0) { // Limit the amount of GL memory bound each frame if ( BYTES_TO_MEGA_BYTES(sBoundTextureMemoryInBytes) > sMaxBoundTextureMemInMegaBytes * texmem_middle_bound_scale && diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index 6dc18085e0..a09a711cc7 100644 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -300,7 +300,7 @@ public: static S32 sImageCount; static S32 sRawCount; static S32 sAuxCount; - static LLTimer sEvaluationTimer; + static LLFrameTimer sEvaluationTimer; static F32 sDesiredDiscardBias; static F32 sDesiredDiscardScale; static S32 sBoundTextureMemoryInBytes; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 144ec2376e..e7d64c48a0 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1124,7 +1124,7 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated) { // if we're in world, show a progress bar to hide reloading of textures llinfos << "Restoring GL during activate" << llendl; - restoreGL("Restoring..."); + restoreGL(LLTrans::getString("ProgressRestoring")); } else { @@ -1385,7 +1385,7 @@ LLViewerWindow::LLViewerWindow( if (NULL == mWindow) { - LLSplashScreen::update("Shutting down..."); + LLSplashScreen::update(LLTrans::getString("ShuttingDown")); #if LL_LINUX || LL_SOLARIS llwarns << "Unable to create window, be sure screen is set at 32-bit color and your graphics driver is configured correctly. See README-linux.txt or README-solaris.txt for further information." << llendl; @@ -4758,7 +4758,7 @@ void LLViewerWindow::restartDisplay(BOOL show_progress_bar) stopGL(); if (show_progress_bar) { - restoreGL("Changing Resolution..."); + restoreGL(LLTrans::getString("ProgressChangingResolution")); } else { @@ -4845,7 +4845,7 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, llinfos << "Restoring GL during resolution change" << llendl; if (show_progress_bar) { - restoreGL("Changing Resolution..."); + restoreGL(LLTrans::getString("ProgressChangingResolution")); } else { diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 72b9c6df98..f5e83ed025 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -5785,11 +5785,6 @@ void LLVOAvatar::invalidateAll() { } -// virtual -void LLVOAvatar::setCompositeUpdatesEnabled( BOOL b ) -{ -} - void LLVOAvatar::onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL upload_bake ) { if (global_color == mTexSkinColor) diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index b5f0ec7176..d5485413f4 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -526,7 +526,9 @@ protected: public: virtual void invalidateComposite(LLTexLayerSet* layerset, BOOL upload_result); virtual void invalidateAll(); - virtual void setCompositeUpdatesEnabled(BOOL b); + virtual void setCompositeUpdatesEnabled(bool b) {} + virtual void setCompositeUpdatesEnabled(U32 index, bool b) {} + virtual bool isCompositeUpdateEnabled(U32 index) { return false; } //-------------------------------------------------------------------- // Static texture/mesh/baked dictionary diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 7dc8772753..98ca76ed01 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -489,7 +489,7 @@ BOOL LLVOAvatarSelf::buildMenus() { LLMenuItemCallGL::Params item_params; item_params.name = attachment->getName(); - item_params.label = attachment->getName(); + item_params.label = LLTrans::getString(attachment->getName()); item_params.on_click.function_name = "Object.AttachToAvatar"; item_params.on_click.parameter = attach_index; item_params.on_enable.function_name = "Object.EnableWear"; @@ -765,6 +765,7 @@ void LLVOAvatarSelf::removeMissingBakedTextures() { for (U32 i = 0; i < mBakedTextureDatas.size(); i++) { + mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled(TRUE); invalidateComposite(mBakedTextureDatas[i].mTexLayerSet, FALSE); } updateMeshTextures(); @@ -952,6 +953,7 @@ void LLVOAvatarSelf::wearableUpdated( EWearableType type, BOOL upload_result ) { if (mBakedTextureDatas[index].mTexLayerSet) { + mBakedTextureDatas[index].mTexLayerSet->setUpdatesEnabled(true); invalidateComposite(mBakedTextureDatas[index].mTexLayerSet, upload_result); } break; @@ -1364,17 +1366,31 @@ void LLVOAvatarSelf::invalidateAll() //----------------------------------------------------------------------------- // setCompositeUpdatesEnabled() //----------------------------------------------------------------------------- -void LLVOAvatarSelf::setCompositeUpdatesEnabled( BOOL b ) +void LLVOAvatarSelf::setCompositeUpdatesEnabled( bool b ) { for (U32 i = 0; i < mBakedTextureDatas.size(); i++) { - if (mBakedTextureDatas[i].mTexLayerSet ) - { - mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled( b ); - } + setCompositeUpdatesEnabled(i, b); + } +} + +void LLVOAvatarSelf::setCompositeUpdatesEnabled(U32 index, bool b) +{ + if (mBakedTextureDatas[index].mTexLayerSet ) + { + mBakedTextureDatas[index].mTexLayerSet->setUpdatesEnabled( b ); } } +bool LLVOAvatarSelf::isCompositeUpdateEnabled(U32 index) +{ + if (mBakedTextureDatas[index].mTexLayerSet) + { + return mBakedTextureDatas[index].mTexLayerSet->getUpdatesEnabled(); + } + return false; +} + void LLVOAvatarSelf::setupComposites() { for (U32 i = 0; i < mBakedTextureDatas.size(); i++) diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h index df3493c434..9514abc5bc 100644 --- a/indra/newview/llvoavatarself.h +++ b/indra/newview/llvoavatarself.h @@ -232,7 +232,9 @@ public: public: /* virtual */ void invalidateComposite(LLTexLayerSet* layerset, BOOL upload_result); /* virtual */ void invalidateAll(); - /* virtual */ void setCompositeUpdatesEnabled(BOOL b); // only works for self + /* virtual */ void setCompositeUpdatesEnabled(bool b); // only works for self + /* virtual */ void setCompositeUpdatesEnabled(U32 index, bool b); + /* virtual */ bool isCompositeUpdateEnabled(U32 index); void setupComposites(); void updateComposites(); diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp index acfbc23f62..3334c17a8f 100644 --- a/indra/newview/llwearable.cpp +++ b/indra/newview/llwearable.cpp @@ -56,6 +56,35 @@ using namespace LLVOAvatarDefines; // static S32 LLWearable::sCurrentDefinitionVersion = 1; +// support class - remove for 2.1 (hackity hack hack) +class LLOverrideBakedTextureUpdate +{ +public: + LLOverrideBakedTextureUpdate(bool temp_state) + { + mAvatar = gAgent.getAvatarObject(); + U32 num_bakes = (U32) LLVOAvatarDefines::BAKED_NUM_INDICES; + for( U32 index = 0; index < num_bakes; ++index ) + { + composite_enabled[index] = mAvatar->isCompositeUpdateEnabled(index); + } + mAvatar->setCompositeUpdatesEnabled(temp_state); + } + + ~LLOverrideBakedTextureUpdate() + { + U32 num_bakes = (U32)LLVOAvatarDefines::BAKED_NUM_INDICES; + for( U32 index = 0; index < num_bakes; ++index ) + { + mAvatar->setCompositeUpdatesEnabled(index, composite_enabled[index]); + } + } + +private: + bool composite_enabled[LLVOAvatarDefines::BAKED_NUM_INDICES]; + LLVOAvatarSelf *mAvatar; +}; + // Private local functions static std::string terse_F32_to_string(F32 f); static std::string asset_id_to_filename(const LLUUID &asset_id); @@ -216,6 +245,10 @@ BOOL LLWearable::importFile( LLFILE* file ) char text_buffer[2048]; /* Flawfinder: ignore */ S32 fields_read = 0; + // suppress texlayerset updates while wearables are being imported. Layersets will be updated + // when the wearables are "worn", not loaded. Note state will be restored when this object is destroyed. + LLOverrideBakedTextureUpdate stop_bakes(false); + // read header and version fields_read = fscanf( file, "LLWearable version %d\n", &mDefinitionVersion ); if( fields_read != 1 ) diff --git a/indra/newview/llwearablelist.h b/indra/newview/llwearablelist.h index cf1a9bddff..5e564ba953 100644 --- a/indra/newview/llwearablelist.h +++ b/indra/newview/llwearablelist.h @@ -39,6 +39,12 @@ #include "llassetstorage.h" // Globally constructed; be careful that there's no dependency with gAgent. +/* + BUG: mList's system of mapping between assetIDs and wearables is flawed + since LLWearable* has an associated itemID, and you can have multiple + inventory items pointing to the same asset (i.e. more than one ItemID + per assetID). EXT-6252 +*/ class LLWearableList : public LLSingleton<LLWearableList> { public: diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index d7e5b464a6..19f303ab88 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -45,6 +45,7 @@ #include "llhttpnode.h" #include "llregionhandle.h" #include "llsurface.h" +#include "lltrans.h" #include "llviewercamera.h" #include "llviewertexture.h" #include "llviewertexturelist.h" @@ -258,7 +259,7 @@ void LLWorld::removeRegion(const LLHost &host) llwarns << "gFrameTimeSeconds " << gFrameTimeSeconds << llendl; llwarns << "Disabling region " << regionp->getName() << " that agent is in!" << llendl; - LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in."); + LLAppViewer::instance()->forceDisconnect(LLTrans::getString("YouHaveBeenDisconnected")); return; } diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index 5edf72d4ae..27757d19e5 100644 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -45,6 +45,7 @@ #include "llagent.h" #include "llcallingcard.h" +#include "llcommandhandler.h" #include "llviewercontrol.h" #include "llfloatermap.h" #include "llfloaterworldmap.h" @@ -1726,7 +1727,10 @@ BOOL LLWorldMapView::handleDoubleClick( S32 x, S32 y, MASK mask ) id.toString(uuid_str); uuid_str = uuid_str.substr(28); sscanf(uuid_str.c_str(), "%X", &event_id); - LLFloaterReg::showInstance("search", LLSD().with("category", "events").with("id", event_id)); + // Invoke the event details floater if someone is clicking on an event. + LLSD params(LLSD::emptyArray()); + params.append(event_id); + LLCommandDispatcher::dispatch("event", params, LLSD(), NULL, true); break; } case MAP_ITEM_LAND_FOR_SALE: diff --git a/indra/newview/res-sdl/ll_icon.BMP b/indra/newview/res-sdl/ll_icon.BMP Binary files differindex 4a44aafbfa..6f9366df41 100644 --- a/indra/newview/res-sdl/ll_icon.BMP +++ b/indra/newview/res-sdl/ll_icon.BMP diff --git a/indra/newview/res/ll_icon.png b/indra/newview/res/ll_icon.png Binary files differindex 414b703111..ae573b3874 100644 --- a/indra/newview/res/ll_icon.png +++ b/indra/newview/res/ll_icon.png diff --git a/indra/newview/res/toolbuy.cur b/indra/newview/res/toolbuy.cur Binary files differnew file mode 100644 index 0000000000..7fd552a78e --- /dev/null +++ b/indra/newview/res/toolbuy.cur diff --git a/indra/newview/res/toolopen.cur b/indra/newview/res/toolopen.cur Binary files differnew file mode 100644 index 0000000000..1562f5bc95 --- /dev/null +++ b/indra/newview/res/toolopen.cur diff --git a/indra/newview/res/toolsit.cur b/indra/newview/res/toolsit.cur Binary files differnew file mode 100644 index 0000000000..a1f99cfe6d --- /dev/null +++ b/indra/newview/res/toolsit.cur diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc index 38291e45c9..7a965cf57e 100644 --- a/indra/newview/res/viewerRes.rc +++ b/indra/newview/res/viewerRes.rc @@ -2,19 +2,12 @@ // #include "resource.h" -#ifdef IDC_STATIC -#undef IDC_STATIC -#endif -#define IDC_STATIC (-1) -#include "winresrc.h" - #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // -// Commented out because it only compiles if you have MFC installed. -//#include "winres.h" +#include "winres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -34,18 +27,18 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // TEXTINCLUDE // -1 TEXTINCLUDE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#include ""winres.h""\r\n" "\0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" @@ -84,9 +77,8 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO +GUIDELINES DESIGNINFO BEGIN - "SPLASHSCREEN", DIALOG BEGIN LEFTMARGIN, 7 @@ -127,6 +119,9 @@ TOOLPIPETTE CURSOR "toolpipette.cur" TOOLPLAY CURSOR "toolplay.cur" TOOLPAUSE CURSOR "toolpause.cur" TOOLMEDIAOPEN CURSOR "toolmediaopen.cur" +TOOLOPEN CURSOR "toolopen.cur" +TOOLSIT CURSOR "toolsit.cur" +TOOLBUY CURSOR "toolbuy.cur" ///////////////////////////////////////////////////////////////////////////// // @@ -134,8 +129,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,0,200030 - PRODUCTVERSION 2,0,0,200030 + FILEVERSION 2,0,0,3422 + PRODUCTVERSION 2,0,0,3422 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -166,12 +161,6 @@ BEGIN END END - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/skins/default/textures/icons/SL_Logo.png b/indra/newview/skins/default/textures/icons/SL_Logo.png Binary files differindex c9fbde987a..8342d7cfee 100644 --- a/indra/newview/skins/default/textures/icons/SL_Logo.png +++ b/indra/newview/skins/default/textures/icons/SL_Logo.png diff --git a/indra/newview/skins/default/xui/da/floater_about_land.xml b/indra/newview/skins/default/xui/da/floater_about_land.xml index 9bda1397bc..6e7d16aa79 100644 --- a/indra/newview/skins/default/xui/da/floater_about_land.xml +++ b/indra/newview/skins/default/xui/da/floater_about_land.xml @@ -84,9 +84,9 @@ Gå til 'Verden' > 'Om land' eller vælg en anden parcel <text name="GroupText"> Leyla Linden </text> - <button label="Vælg..." label_selected="Vælg..." name="Set..."/> + <button label="Vælg" name="Set..."/> <check_box label="Tillad dedikering til gruppe" name="check deed" tool_tip="En gruppe administrator kan dedikere denne jord til gruppen, så det vil blive støttet af gruppen's jord tildeling."/> - <button label="Dedikér..." label_selected="Dedikér..." name="Deed..." tool_tip="Du kan kun dedikere jord, hvis du er en administrator i den valgte gruppe."/> + <button label="Dedikér" name="Deed..." tool_tip="Du kan kun dedikere jord, hvis du er en administrator i den valgte gruppe."/> <check_box label="Ejer bidrager ved dedikering" name="check contrib" tool_tip="Når land dedikeres til gruppe, kan den tidligere bidrage med nok land til at dække krav."/> <text name="For Sale:"> Til salg: @@ -97,7 +97,7 @@ Gå til 'Verden' > 'Om land' eller vælg en anden parcel <text name="For Sale: Price L$[PRICE]."> Pris: L$[PRICE] (L$[PRICE_PER_SQM]/m²). </text> - <button label="Sælg land..." label_selected="Sælg land..." name="Sell Land..."/> + <button label="Sælg land" name="Sell Land..."/> <text name="For sale to"> Til salg til: [BUYER] </text> @@ -126,13 +126,13 @@ Gå til 'Verden' > 'Om land' eller vælg en anden parcel <text name="DwellText"> 0 </text> - <button label="Køb land..." label_selected="Køb land..." name="Buy Land..."/> + <button label="Køb land" name="Buy Land..."/> <button label="Script Info" name="Scripts..."/> - <button label="Køb til gruppe..." label_selected="Køb til gruppe..." name="Buy For Group..."/> - <button label="Køb adgang..." label_selected="Køb adgang..." name="Buy Pass..." tool_tip="Giver adgang til midlertidig adgang til dette område."/> - <button label="Efterlad land..." label_selected="Efterlad land..." name="Abandon Land..."/> - <button label="Kræv tilbage..." label_selected="Kræv tilbage..." name="Reclaim Land..."/> - <button label="Linden salg..." label_selected="Linden salg..." name="Linden Sale..." tool_tip="Land skal være ejet, indholdsrating sat og ikke allerede på auktion."/> + <button label="Køb til gruppe" name="Buy For Group..."/> + <button label="Køb adgang" name="Buy Pass..." tool_tip="Giver adgang til midlertidig adgang til dette område."/> + <button label="Efterlad land" name="Abandon Land..."/> + <button label="Kræv tilbage" name="Reclaim Land..."/> + <button label="Linden salg" name="Linden Sale..." tool_tip="Land skal være ejet, indholdsrating sat og ikke allerede på auktion."/> </panel> <panel label="REGLER" name="land_covenant_panel"> <panel.string name="can_resell"> @@ -231,7 +231,7 @@ Gå til 'Verden' > 'Om land' eller vælg en anden parcel [COUNT] </text> <button label="Vis" label_selected="Vis" name="ShowOwner"/> - <button label="Returnér..." label_selected="Returnér..." name="ReturnOwner..." tool_tip="Returnér objekter til deres ejere."/> + <button label="Returnér" name="ReturnOwner..." tool_tip="Returnér objekter til deres ejere."/> <text name="Set to group:"> Sat til gruppe: </text> @@ -239,7 +239,7 @@ Gå til 'Verden' > 'Om land' eller vælg en anden parcel [COUNT] </text> <button label="Vis" label_selected="Vis" name="ShowGroup"/> - <button label="Returnér..." label_selected="Returnér..." name="ReturnGroup..." tool_tip="Returnér objekter til deres ejere."/> + <button label="Returnér" name="ReturnGroup..." tool_tip="Returnér objekter til deres ejere."/> <text name="Owned by others:"> Ejet af andre: </text> @@ -247,7 +247,7 @@ Gå til 'Verden' > 'Om land' eller vælg en anden parcel [COUNT] </text> <button label="Vis" label_selected="Vis" name="ShowOther"/> - <button label="Returnér..." label_selected="Returnér..." name="ReturnOther..." tool_tip="Returnér objekter til deres ejere."/> + <button label="Returnér" name="ReturnOther..." tool_tip="Returnér objekter til deres ejere."/> <text name="Selected / sat upon:"> Valgt/siddet på: </text> @@ -261,7 +261,7 @@ Gå til 'Verden' > 'Om land' eller vælg en anden parcel Objekt ejere: </text> <button label="Gentegn liste" label_selected="Gentegn liste" name="Refresh List" tool_tip="Refresh Object List"/> - <button label="Returnér objekter..." label_selected="Returnér objekter..." name="Return objects..."/> + <button label="Returnér objekter" name="Return objects..."/> <name_list name="owner list"> <name_list.columns label="Type" name="type"/> <name_list.columns label="Navn" name="name"/> diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml index 186c2932c3..81c2f97263 100644 --- a/indra/newview/skins/default/xui/de/floater_about_land.xml +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -443,6 +443,9 @@ Nur große Parzellen können in der Suche aufgeführt werden. <panel.string name="access_estate_defined"> (Durch Grundstück festgelegt) </panel.string> + <panel.string name="allow_public_access"> + Öffentlichen Zugang erlauben ([MATURITY]) + </panel.string> <panel.string name="estate_override"> Eine oder mehrere dieser Optionen gelten auf Grundstücksebene </panel.string> diff --git a/indra/newview/skins/default/xui/de/panel_edit_pick.xml b/indra/newview/skins/default/xui/de/panel_edit_pick.xml index 0cb14177af..1ec4f09161 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_pick.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Auswahl bearbeiten" name="panel_edit_pick"> + <panel.string name="location_notice"> + (wird nach Speichern aktualisiert) + </panel.string> <text name="title"> Auswahl bearbeiten </text> @@ -22,7 +25,7 @@ </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> - <button label="[WHAT] speichern" name="save_changes_btn"/> + <button label="Auswahl speichern" name="save_changes_btn"/> <button label="Abbrechen" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_main_inventory.xml b/indra/newview/skins/default/xui/de/panel_main_inventory.xml index 7d57a3b3f2..d3eb9ae04c 100644 --- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml @@ -1,18 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Sonstiges" name="main inventory panel"> - <panel.string name="Title"> - Sonstiges + <panel.string name="ItemcountFetching"> + Inventar ([ITEM_COUNT] Artikel werden abgerufen... [FILTER] </panel.string> - <filter_editor label="Inventar filtern" name="inventory search editor"/> - <tab_container name="inventory filter tabs"> - <inventory_panel label="MEIN INVENTAR" name="All Items"/> - <inventory_panel label="AKTUELL" name="Recent Items"/> - </tab_container> - <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/> - <button name="add_btn" tool_tip="Neues Objekt hinzufügen"/> - <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/> - </panel> + <panel.string name="ItemcountCompleted"> + [ITEM_COUNT] Objekte [FILTER] + </panel.string> + <text name="ItemcountText"> + Objekte: + </text> <menu_bar name="Inventory Menu"> <menu label="Datei" name="File"> <menu_item_call label="Öffnen" name="Open"/> @@ -61,4 +57,14 @@ <menu_item_check label="Systemordner nach oben" name="System Folders To Top"/> </menu> </menu_bar> + <filter_editor label="Inventar filtern" name="inventory search editor"/> + <tab_container name="inventory filter tabs"> + <inventory_panel label="MEIN INVENTAR" name="All Items"/> + <inventory_panel label="AKTUELL" name="Recent Items"/> + </tab_container> + <panel name="bottom_panel"> + <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/> + <button name="add_btn" tool_tip="Neues Objekt hinzufügen"/> + <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_nearby_media.xml b/indra/newview/skins/default/xui/de/panel_nearby_media.xml index 2d97a25fa9..ad26f71245 100644 --- a/indra/newview/skins/default/xui/de/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/de/panel_nearby_media.xml @@ -19,10 +19,17 @@ <button label="Mehr >>" label_selected="Weniger <<" name="more_less_btn" tool_tip="Erweiterte Steuerung"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media"> + Medien in der Nähe + </text> + <text name="show"> + Anzeigen: + </text> <combo_box name="show_combo"> <combo_box.item label="Alle" name="All"/> <combo_box.item label="Auf dieser Parzelle" name="WithinParcel"/> <combo_box.item label="Außerhalb dieser Parzelle" name="OutsideParcel"/> + <combo_box.item label="An anderen Avataren" name="OnOthers"/> </combo_box> <scroll_list name="media_list"> <scroll_list.columns label="Umgebung" name="media_proximity"/> @@ -31,7 +38,7 @@ <scroll_list.columns label="Name" name="media_name"/> <scroll_list.columns label="Fehler beseitigen" name="media_debug"/> </scroll_list> - <panel> + <panel name="media_controls_panel"> <layout_stack name="media_controls"> <layout_panel name="stop"> <button name="stop_btn" tool_tip="Ausgewählte Medien stoppen"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml index 78c495e377..c0ab69fcdf 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml @@ -3,6 +3,9 @@ <panel.string name="aspect_ratio_text"> [NUM]:[DEN] </panel.string> + <panel.string name="middle_mouse"> + Mittlere Maustaste + </panel.string> <slider label="Sichtwinkel" name="camera_fov"/> <slider label="Abstand" name="camera_offset_scale"/> <text name="heading2"> @@ -16,7 +19,7 @@ <check_box label="Avatarlippen beim Sprechen bewegen" name="enable_lip_sync"/> <check_box label="Blasen-Chat" name="bubble_text_chat"/> <slider label="Deckkraft" label_width="66" name="bubble_chat_opacity"/> - <color_swatch name="background" tool_tip="Farbe für Blasen-Chat auswählen" left_pad="35"/> + <color_swatch left_pad="35" name="background" tool_tip="Farbe für Blasen-Chat auswählen"/> <check_box label="Skript-Fehler anzeigen:" name="show_script_errors"/> <radio_group name="show_location"> <radio_item label="Chat in der Nähe" name="0"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml index 45b560c759..aa1a93efac 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml @@ -46,6 +46,12 @@ <check_box initial_value="true" label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/> <check_box label="IMs per Email zuschicken, wenn ich offline bin" name="send_im_to_email"/> <check_box label="Kompakten Text-Chatverlauf aktivieren" name="plain_text_chat_history"/> + <text name="show_ims_in_label"> + IMs anzeigen in: + </text> + <text name="requires_restart_label"> + (Neustart erforderlich) + </text> <radio_group name="chat_window" tool_tip="Zeigen Sie Ihre Sofortnachrichten (Instant Messages) in einem anderen Fenster oder in einem einzigen Fenster mit viele Registerkarten an (Neustart erforderlich)."> <radio_item label="Getrennte Fenster" name="radio" value="0"/> <radio_item label="Registerkarten" name="radio2" value="1"/> diff --git a/indra/newview/skins/default/xui/de/panel_profile.xml b/indra/newview/skins/default/xui/de/panel_profile.xml index cb598f89f6..cda2788e40 100644 --- a/indra/newview/skins/default/xui/de/panel_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_profile.xml @@ -41,10 +41,10 @@ </scroll_container> </layout_panel> <layout_panel name="profile_buttons_panel"> - <button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an" width="109"/> - <button label="IM" name="im" tool_tip="Instant Messenger öffnen" width="24"/> + <button label="Freund hinzufügen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/> + <button label="IM" name="im" tool_tip="Instant Messenger öffnen"/> <button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/> - <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen" width="36"/> + <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/> <button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/> <button label="▼" name="overflow_btn" tool_tip="Dem Einwohner Geld geben oder Inventar an den Einwohner schicken"/> </layout_panel> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index fc01b69461..b99f31c892 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -23,7 +23,22 @@ Hardware wird erfasst... </string> <string name="StartupLoading"> - Wird geladen + [APP_NAME] wird geladen... + </string> + <string name="StartupClearingCache"> + Cache wird gelöscht... + </string> + <string name="StartupInitializingTextureCache"> + Textur-Cache wird initialisiert... + </string> + <string name="StartupInitializingVFS"> + VFS wird initialisiert... + </string> + <string name="ProgressRestoring"> + Wird wiederhergestellt... + </string> + <string name="ProgressChangingResolution"> + Auflösung wird geändert... </string> <string name="Fullbright"> Fullbright (Legacy) @@ -88,6 +103,9 @@ <string name="LoginFailedNoNetwork"> Netzwerk Fehler: Eine Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie Ihre Netzwerkverbindung. </string> + <string name="LoginFailed"> + Anmeldung fehlgeschlagen + </string> <string name="Quit"> Beenden </string> @@ -97,6 +115,24 @@ <string name="AgentLostConnection"> In dieser Region kann es zu Problemen kommen. Bitte überprüfen Sie Ihre Internetverbindung. </string> + <string name="SavingSettings"> + Ihr Einstellungen werden gespeichert... + </string> + <string name="LoggingOut"> + Abmeldung erfolgt... + </string> + <string name="ShuttingDown"> + Programm wird beendet... + </string> + <string name="YouHaveBeenDisconnected"> + Die Verbindung zu der Region ist abgebrochen. + </string> + <string name="SentToInvalidRegion"> + Sie wurden in eine ungültige Region geschickt. + </string> + <string name="TestingDisconnect"> + Verbindungsabbruch wird getestet + </string> <string name="TooltipPerson"> Person </string> @@ -151,6 +187,24 @@ <string name="TooltipAgentUrl"> Anklicken, um das Profil dieses Einwohners anzuzeigen </string> + <string name="TooltipAgentMute"> + Klicken, um diesen Einwohner stummzuschalten + </string> + <string name="TooltipAgentUnmute"> + Klicken, um diesen Einwohner freizuschalten + </string> + <string name="TooltipAgentIM"> + Klicken, um diesem Einwohner eine IM zu schicken. + </string> + <string name="TooltipAgentPay"> + Klicken, um diesen Einwohner zu bezahlen + </string> + <string name="TooltipAgentOfferTeleport"> + Klicken, um diesem Einwohner einen Teleport anzubieten. + </string> + <string name="TooltipAgentRequestFriend"> + Klicken, um diesem Einwohner ein Freundschaftsangebot zu schicken. + </string> <string name="TooltipGroupUrl"> Anklicken, um Beschreibung der Gruppe anzuzeigen </string> @@ -176,12 +230,31 @@ Anklicken, um Befehl secondlife:// auszuführen </string> <string name="CurrentURL" value=" CurrentURL: [CurrentURL]"/> + <string name="TooltipPrice" value="[PRICE] L$"/> <string name="SLurlLabelTeleport"> Teleportieren nach </string> <string name="SLurlLabelShowOnMap"> Karte anzeigen für </string> + <string name="SLappAgentMute"> + Stummschalten + </string> + <string name="SLappAgentUnmute"> + Stummschaltung aufheben + </string> + <string name="SLappAgentIM"> + IM + </string> + <string name="SLappAgentPay"> + Bezahlen + </string> + <string name="SLappAgentOfferTeleport"> + Teleportangebot an + </string> + <string name="SLappAgentRequestFriend"> + Freundschaftsangebot + </string> <string name="BUTTON_CLOSE_DARWIN"> Schließen (⌘W) </string> @@ -335,6 +408,9 @@ <string name="symbolic link"> Link </string> + <string name="symbolic folder link"> + Link zu Ordner + </string> <string name="AvatarEditingAppearance"> (Aussehen wird bearbeitet) </string> @@ -849,6 +925,7 @@ Keine Inhalte </string> <string name="WornOnAttachmentPoint" value=" (getragen am [ATTACHMENT_POINT])"/> + <string name="ActiveGesture" value="[GESLABEL] (aktiviert)"/> <string name="PermYes"> Ja </string> @@ -948,6 +1025,9 @@ <string name="InvFolder My Outfits"> Meine Outfits </string> + <string name="InvFolder Accessories"> + Zubehör + </string> <string name="InvFolder Friends"> Freunde </string> @@ -1471,6 +1551,9 @@ <string name="PanelContentsNewScript"> Neues Skript </string> + <string name="PanelContentsTooltip"> + Objektinhalt + </string> <string name="BusyModeResponseDefault"> Der Einwohner/Die Einwohnerin ist „beschäftigt", d.h. er/sie möchte im Moment nicht gestört werden. Ihre Nachricht wird dem Einwohner/der Einwohnerin als IM angezeigt, und kann später beantwortet werden. </string> @@ -3375,4 +3458,31 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ <string name="unread_chat_multiple"> [SOURCES] haben etwas Neues gesagt </string> + <string name="paid_you_ldollars"> + [NAME] hat Ihnen [AMOUNT] L$ bezahlt. + </string> + <string name="giving"> + Giving + </string> + <string name="uploading_costs"> + Kosten für Hochladen + </string> + <string name="this_costs"> + Kosten: + </string> + <string name="buying_selected_land"> + Ausgewähltes Land wird gekauft + </string> + <string name="this_object_costs"> + Dieses Objekt kostet + </string> + <string name="group_role_everyone"> + Jeder + </string> + <string name="group_role_officers"> + Offiziere + </string> + <string name="group_role_owners"> + Eigentümer + </string> </strings> diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 4a81aea7ce..33977e9f1a 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -9,6 +9,18 @@ title="ABOUT LAND" width="490"> <floater.string + name="maturity_icon_general"> + "Parcel_PG_Dark" + </floater.string> + <floater.string + name="maturity_icon_moderate"> + "Parcel_M_Dark" + </floater.string> + <floater.string + name="maturity_icon_adult"> + "Parcel_R_Dark" + </floater.string> + <floater.string name="Minutes"> [MINUTES] minutes </floater.string> @@ -263,7 +275,7 @@ Leyla Linden </text> left_pad="4" right="-10" name="Set..." - width="50" + width="90" top_delta="-2"/> <check_box enabled="false" @@ -395,7 +407,7 @@ Leyla Linden </text> name="Cancel Land Sale" left_pad="5" top_pad="-25" - width="155" /> + width="180" /> <text type="string" length="1" @@ -474,10 +486,10 @@ Leyla Linden </text> height="23" label="Buy Land" layout="topleft" - left_delta="82" + left_delta="52" name="Buy Land..." top_pad="7" - width="100" /> + width="130" /> <button enabled="true" follows="left|top" @@ -487,7 +499,7 @@ Leyla Linden </text> left="10" name="Scripts..." top_pad="1" - width="100" /> + width="150" /> <button enabled="false" follows="left|top" @@ -504,11 +516,11 @@ Leyla Linden </text> height="23" label="Buy Pass" layout="topleft" - left_delta="-105" + left_delta="-135" name="Buy Pass..." tool_tip="A pass gives you temporary access to this land." top_delta="0" - width="100" /> + width="130" /> <button follows="left|top" height="23" @@ -1044,7 +1056,7 @@ Leyla Linden </text> left="10" name="Autoreturn" top_pad="0" - width="294"> + width="310"> Auto return other Residents' objects (minutes, 0 for off): </text> <line_editor @@ -1874,6 +1886,10 @@ Only large parcels can be listed in search. name="access_estate_defined"> (Defined by the Estate) </panel.string> + <panel.string + name="allow_public_access"> + Allow Public Access ([MATURITY]) + </panel.string> <panel.string name="estate_override"> One or more of these options is set at the estate level @@ -1894,7 +1910,6 @@ Only large parcels can be listed in search. <check_box follows="top|left" height="16" - label="Allow Public Access [MATURITY]" layout="topleft" left_delta="0" name="public_access" diff --git a/indra/newview/skins/default/xui/en/floater_animation_preview.xml b/indra/newview/skins/default/xui/en/floater_animation_preview.xml index 1ffedde29b..9dff4abe2c 100644 --- a/indra/newview/skins/default/xui/en/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_animation_preview.xml @@ -218,14 +218,14 @@ Maximum animation length is [MAX_LENGTH] seconds. increment="1" initial_value="0" label="In(%)" - label_width="49" + label_width="70" layout="topleft" top_pad="5" - left="30" + left="15" max_val="100" name="loop_in_point" tool_tip="Sets point in animation that looping returns to" - width="115" /> + width="130" /> <spinner bottom_delta="0" follows="left|top" @@ -238,8 +238,8 @@ Maximum animation length is [MAX_LENGTH] seconds. max_val="100" name="loop_out_point" tool_tip="Sets point in animation that ends a loop" - label_width="49" - width="115" /> + label_width="60" + width="120" /> <text type="string" length="1" @@ -256,10 +256,10 @@ Maximum animation length is [MAX_LENGTH] seconds. <combo_box height="23" layout="topleft" - left_pad="0" + left_pad="20" name="hand_pose_combo" tool_tip="Controls what hands do during animation" - width="150"> + width="130"> <combo_box.item label="Spread" name="Spread" @@ -328,9 +328,9 @@ Maximum animation length is [MAX_LENGTH] seconds. </text> <combo_box height="23" - width="150" + width="130" layout="topleft" - left_pad="0" + left_pad="20" name="emote_combo" tool_tip="Controls what face does during animation"> <combo_box.item @@ -409,9 +409,9 @@ Maximum animation length is [MAX_LENGTH] seconds. </text> <combo_box height="23" - width="150" + width="130" layout="topleft" - left_pad="0" + left_pad="20" name="preview_base_anim" tool_tip="Use this to test your animation behavior while your avatar performs common actions."> <combo_box.item @@ -433,27 +433,27 @@ Maximum animation length is [MAX_LENGTH] seconds. increment="0.01" initial_value="0" label="Ease In (sec)" - label_width="110" + label_width="140" layout="topleft" left="10" max_val="10" name="ease_in_time" tool_tip="Amount of time (in seconds) over which animations blends in" top_pad="10" - width="200" /> + width="210" /> <spinner follows="left|top" height="23" increment="0.01" initial_value="0" label="Ease Out (sec)" - label_width="110" + label_width="140" layout="topleft" top_pad="0" max_val="10" name="ease_out_time" tool_tip="Amount of time (in seconds) over which animations blends out" - width="200" /> + width="210" /> <button follows="top|right" height="23" diff --git a/indra/newview/skins/default/xui/en/floater_inventory.xml b/indra/newview/skins/default/xui/en/floater_inventory.xml index 0d381fe5cb..ba2e0d3277 100644 --- a/indra/newview/skins/default/xui/en/floater_inventory.xml +++ b/indra/newview/skins/default/xui/en/floater_inventory.xml @@ -14,22 +14,6 @@ single_instance="false" title="MY INVENTORY" width="467"> - <floater.string - name="Title"> - MY INVENTORY - </floater.string> - <floater.string - name="TitleFetching"> - MY INVENTORY (Fetching [ITEM_COUNT] Items...) [FILTER] - </floater.string> - <floater.string - name="TitleCompleted"> - MY INVENTORY ([ITEM_COUNT] Items) [FILTER] - </floater.string> - <floater.string - name="Fetched"> - Fetched - </floater.string> <panel bottom="560" class="panel_main_inventory" diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml index d7a7daf30c..b5a3764e73 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences.xml @@ -10,7 +10,7 @@ help_topic="preferences" single_instance="true" title="PREFERENCES" - width="620"> + width="658"> <button follows="right|bottom" height="23" @@ -48,7 +48,7 @@ tab_width="115" tab_padding_right="5" top="21" - width="620"> + width="658"> <panel class="panel_preference" filename="panel_preferences_general.xml" diff --git a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml index ead5b8c8f2..e9099211a3 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml @@ -25,10 +25,6 @@ name="Title"> Notecard: [NAME] </floater.string> - <floater.string - name="Save"> - Save - </floater.string> <icon follows="top|right" height="18" diff --git a/indra/newview/skins/default/xui/en/floater_script.xml b/indra/newview/skins/default/xui/en/floater_script.xml index 663899d4b3..12ade86b5f 100644 --- a/indra/newview/skins/default/xui/en/floater_script.xml +++ b/indra/newview/skins/default/xui/en/floater_script.xml @@ -3,7 +3,7 @@ legacy_header_height="18" background_visible="true" follows="left|top|right|bottom" - height="369" + height="250" layout="topleft" left="0" name="script_floater" @@ -11,8 +11,8 @@ can_dock="true" can_minimize="true" visible="false" - width="520" + width="350" can_resize="false" min_width="350" - min_height="369"> + min_height="200"> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 12d169b70a..43a221d0e1 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -705,7 +705,7 @@ left="135" name="button apply to selection" tool_tip="Modify selected land" - width="78"> + width="82"> <button.commit_callback function="BuildTool.applyToSelection"/> </button> @@ -741,7 +741,7 @@ halign="center" left="0" name="Object Info Tabs" - tab_max_width="54" + tab_max_width="100" tab_min_width="40" tab_position="top" tab_height="25" diff --git a/indra/newview/skins/default/xui/en/menu_picks.xml b/indra/newview/skins/default/xui/en/menu_picks.xml index 7e07a97016..ebb49c9004 100644 --- a/indra/newview/skins/default/xui/en/menu_picks.xml +++ b/indra/newview/skins/default/xui/en/menu_picks.xml @@ -8,6 +8,9 @@ name="pick_info"> <menu_item_call.on_click function="Pick.Info" /> + <menu_item_call.on_enable + function="Pick.Enable" + parameter="info" /> </menu_item_call> <menu_item_call label="Edit" @@ -16,6 +19,9 @@ visible="false"> <menu_item_call.on_click function="Pick.Edit" /> + <menu_item_call.on_enable + function="Pick.Enable" + parameter="edit" /> </menu_item_call> <menu_item_call label="Teleport" @@ -23,6 +29,9 @@ name="pick_teleport"> <menu_item_call.on_click function="Pick.Teleport" /> + <menu_item_call.on_enable + function="Pick.Enable" + parameter="teleport" /> </menu_item_call> <menu_item_call label="Map" @@ -30,6 +39,9 @@ name="pick_map"> <menu_item_call.on_click function="Pick.Map" /> + <menu_item_call.on_enable + function="Pick.Enable" + parameter="map" /> </menu_item_call> <menu_item_separator layout="topleft" @@ -42,5 +54,8 @@ visible="false"> <menu_item_call.on_click function="Pick.Delete" /> + <menu_item_call.on_enable + function="Pick.Enable" + parameter="delete" /> </menu_item_call> </context_menu> diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index a2540237c8..5680b91c05 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -5379,27 +5379,6 @@ Grant this request? </form> </notification> - <notification - icon="notify.tga" - name="ScriptToast" - type="notify"> - [FIRST] [LAST]'s '[TITLE]' is requesting Resident input. - <form name="form"> - <button - index="0" - name="Open" - text="Open Dialog"/> - <button - index="1" - name="Ignore" - text="Ignore"/> - <button - index="2" - name="Block" - text="Block"/> - </form> - </notification> - <!-- <notification icon="notify.tga" diff --git a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml index 1e2e74f882..876ff9961b 100644 --- a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml @@ -69,7 +69,7 @@ name="last_interaction" text_color="LtGray_50" value="0s" - width="24" /> + width="35" /> <button follows="right" height="16" diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index 015a2e91ff..e70a0512d6 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -59,9 +59,9 @@ height="28" layout="topleft" min_height="28" - width="100" + width="105" top_delta="0" - min_width="100" + min_width="54" name="speak_panel" user_resize="false"> <talk_button @@ -73,11 +73,13 @@ left="0" name="talk" top="5" - width="100"> + width="105"> <speak_button + halign="left" name="speak_btn" label="Speak" label_selected="Speak" + pad_left="12" /> <show_button> <show_button.init_callback diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml index 1535ce2978..e3b331799c 100644 --- a/indra/newview/skins/default/xui/en/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml @@ -24,7 +24,7 @@ </panel.string> <panel.string name="click_through_text_fmt"> - [TELEPORT] teleport, [MAP] map, [MAP] profile + [TELEPORT] teleport, [MAP] map, [PROFILE] profile </panel.string> <panel.string name="date_fmt"> @@ -156,6 +156,24 @@ top_pad="10" value="Content Type:" width="140" /> + <icon + follows="top|left" + height="16" + image_name="Parcel_M_Light" + layout="topleft" + left_pad="0" + name="content_type_moderate" + top_pad="-11" + width="18" /> + <icon + follows="top|left" + height="16" + image_name="Parcel_PG_Light" + layout="topleft" + left_delta="0" + name="content_type_general" + top_delta="0" + width="18" /> <text_editor allow_scroll="false" bg_visible="false" @@ -163,11 +181,11 @@ h_pad="0" height="18" layout="topleft" - left_pad="0" + left_pad="2" name="content_type" read_only="true" - width="150" - top_pad="-10" + width="130" + top_delta="1" v_pad="0" value="[content type]" /> <text diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml index 2d220327af..7383edf63d 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml @@ -217,25 +217,41 @@ top_pad="15" value="Content type:" width="250" /> - <combo_box - allow_text_entry="false" - follows="left|top" - height="23" + <icons_combo_box + follows="left|top" + height="23" + label="General Content" + layout="topleft" left="10" - name="content_type" + name="content_type" top_pad="5" width="156"> - <combo_item - name="mature_ci" - value="Mature"> - Moderate Content - </combo_item> - <combo_item - name="pg_ci" - value="PG"> - General Content - </combo_item> - </combo_box> + <icons_combo_box.drop_down_button + image_overlay="Parcel_PG_Light" + image_overlay_alignment="left" + imgoverlay_label_space="3" + pad_left="3"/> + <icons_combo_box.item + label="Moderate Content" + name="mature_ci" + value="Mature"> + <item.columns + halign="center" + type="icon" + value="Parcel_M_Light" + width="20"/> + </icons_combo_box.item> + <icons_combo_box.item + label="General Content" + name="pg_ci" + value="PG"> + <item.columns + halign="center" + type="icon" + value="Parcel_PG_Light" + width="20"/> + </icons_combo_box.item> + </icons_combo_box> <text follows="left|top" font.style="BOLD" diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml index 7445bb339d..08ee0306dd 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml @@ -12,6 +12,10 @@ help_topic="profile_edit_pick" top="0" width="333"> + <panel.string + name="location_notice"> + (will update after save) + </panel.string> <button follows="top|right" height="23" @@ -179,7 +183,7 @@ <button follows="bottom|left" height="23" - label="Save [WHAT]" + label="Save Pick" layout="topleft" name="save_changes_btn" left="0" diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml index 50983d2976..c7768c6eb6 100644 --- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml @@ -10,9 +10,34 @@ name="main inventory panel" width="330"> <panel.string - name="Title"> - Things + name="Itemcount"> </panel.string> + <panel.string + name="ItemcountFetching"> + Fetching [ITEM_COUNT] Items... [FILTER] + </panel.string> + <panel.string + name="ItemcountCompleted"> + [ITEM_COUNT] Items [FILTER] + </panel.string> + <panel.string + name="ItemcountUnknown"> + + </panel.string> + <text + type="string" + length="1" + follows="left|top" + height="13" + layout="topleft" + left="12" + name="ItemcountText" + font="SansSerifMedium" + text_color="EmphasisColor" + top_pad="0" + width="300"> + Items: + </text> <menu_bar bg_visible="false" follows="left|top|right" @@ -21,8 +46,8 @@ left="10" mouse_opaque="false" name="Inventory Menu" - top="0" - visible="true" + top="+10" + visible="true" width="290"> <menu height="101" @@ -377,30 +402,30 @@ <filter_editor text_pad_left="10" follows="left|top|right" - height="23" + height="23" label="Filter Inventory" layout="topleft" left="10" -max_length="300" + max_length="300" name="inventory search editor" - top="26" + top="+31" width="303" /> <tab_container - bg_opaque_color="DkGray2" + bg_opaque_color="DkGray2" bg_alpha_color="DkGray2" background_visible="true" background_opaque="true" -follows="all" -halign="center" - height="305" - layout="topleft" - left="6" - name="inventory filter tabs" - tab_height="30" - tab_position="top" - tab_min_width="100" - top_pad="10" - width="315"> + follows="all" + halign="center" + height="300" + layout="topleft" + left="6" + name="inventory filter tabs" + tab_height="30" + tab_position="top" + tab_min_width="100" + top_pad="10" + width="315"> <inventory_panel bg_opaque_color="DkGray2" bg_alpha_color="DkGray2" diff --git a/indra/newview/skins/default/xui/en/panel_nearby_media.xml b/indra/newview/skins/default/xui/en/panel_nearby_media.xml index 7c0ce9e62e..d14712a7fa 100644 --- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml @@ -95,6 +95,7 @@ follows="top|left" font="SansSerif" left="10" + name="nearby_media" width="100"> Nearby Media </text> @@ -105,6 +106,7 @@ font="SansSerif" top_pad="15" left="10" + name="show" width="40"> Show: </text> @@ -130,7 +132,7 @@ <combo_box.item label="On other Avatars" value="4" - ame="OnOthers" /> + name="OnOthers" /> </combo_box> <scroll_list name="media_list" @@ -179,6 +181,7 @@ top_pad="5" height="30" left="10" + name="media_controls_panel" right="-10"> <layout_stack name="media_controls" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml index 4be4d6b432..c658e0de6f 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml @@ -13,6 +13,10 @@ name="aspect_ratio_text"> [NUM]:[DEN] </panel.string> + <panel.string + name="middle_mouse"> + Middle Mouse + </panel.string> <icon follows="left|top" height="18" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml index 188fd3b7bc..516457dd93 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml @@ -51,13 +51,13 @@ Always show: </text> <scroll_list - follows="top|left" + follows="top|left|right" height="140" layout="topleft" left="10" multi_select="true" name="enabled_popups" - width="475" /> + width="495" /> <button enabled_control="FirstSelectedDisabledPopups" follows="top|left" @@ -99,11 +99,11 @@ Never show: </text> <scroll_list - follows="top|left" + follows="top|left|right" height="140" layout="topleft" left="10" multi_select="true" name="disabled_popups" - width="475" /> + width="495" /> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml index 3d434361b9..eb2112c586 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml @@ -337,6 +337,7 @@ top_pad="5" width="400" /> <text + name="show_ims_in_label" follows="left|top" layout="topleft" left="30" @@ -346,6 +347,7 @@ Show IMs in: </text> <text + name="requires_restart_label" follows="left|top" layout="topleft" top_delta="0" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml index d11aebe943..e667fa9a2b 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml @@ -365,12 +365,12 @@ use_ellipses="false" hover="false" commit_on_focus_lost = "true" - follows="left|top" + follows="left|top|right" height="60" layout="topleft" left="50" name="busy_response" - width="440" + width="450" word_wrap="true"> log_in_to_change </text_editor> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index 8723e0a832..15f8b33f5b 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -142,14 +142,14 @@ increment="1" initial_value="13000" label="Port number:" - label_width="75" + label_width="105" layout="topleft" left_delta="160" max_val="13050" min_val="13000" name="connection_port" - top_delta="-2" - width="140" /> + top_delta="3" + width="170" /> <text type="string" length="1" @@ -273,7 +273,7 @@ layout="topleft" left="0" name="internal" - value="0" + value="" tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside [APP_NAME]." top="0" width="480" /> @@ -283,7 +283,7 @@ layout="topleft" left_delta="0" name="external" - value="1" + value="true" tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen." top_delta="20" width="480" /> diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml index 1bbe9d80c0..ca9579284b 100644 --- a/indra/newview/skins/default/xui/en/panel_region_general.xml +++ b/indra/newview/skins/default/xui/en/panel_region_general.xml @@ -171,27 +171,51 @@ width="100"> Rating: </text> - <combo_box + <icons_combo_box + follows="left|top" height="20" label="Moderate" layout="topleft" left_delta="100" name="access_combo" top_delta="0" - width="85"> - <combo_box.item + width="105"> + <icons_combo_box.drop_down_button + image_overlay="Parcel_M_Light" + image_overlay_alignment="left" + imgoverlay_label_space="3" + pad_left="3"/> + <icons_combo_box.item label="Adult" name="Adult" - value="42" /> - <combo_box.item + value="42"> + <item.columns + halign="center" + type="icon" + value="Parcel_R_Light" + width="20"/> + </icons_combo_box.item> + <icons_combo_box.item label="Moderate" name="Mature" - value="21" /> - <combo_box.item + value="21"> + <item.columns + halign="center" + type="icon" + value="Parcel_M_Light" + width="20"/> + </icons_combo_box.item> + <icons_combo_box.item label="General" name="PG" - value="13" /> - </combo_box> + value="13"> + <item.columns + halign="center" + type="icon" + value="Parcel_PG_Light" + width="20"/> + </icons_combo_box.item> + </icons_combo_box> <button enabled="false" follows="left|top" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 59c54f0cad..3a766bb798 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -14,7 +14,14 @@ <!-- starting up --> <string name="StartupDetectingHardware">Detecting hardware...</string> - <string name="StartupLoading">Loading</string> + <string name="StartupLoading">Loading [APP_NAME]...</string> + <string name="StartupClearingCache">Clearing cache...</string> + <string name="StartupInitializingTextureCache">Initializing Texture Cache...</string> + <string name="StartupInitializingVFS">Initializing VFS...</string> + + <!-- progress --> + <string name="ProgressRestoring">Restoring...</string> + <string name="ProgressChangingResolution">Changing Resolution...</string> <!-- Legacy strings, almost never used --> <string name="Fullbright">Fullbright (Legacy)</string> <!-- used in the Build > materials dropdown--> @@ -40,12 +47,18 @@ <string name="LoginConnectingToRegion">Connecting to region...</string> <string name="LoginDownloadingClothing">Downloading clothing...</string> <string name="LoginFailedNoNetwork">Network Error: Could not establish connection, please check your network connection.</string> + <string name="LoginFailed">Login failed.</string> <string name="Quit">Quit</string> <string name="create_account_url">http://join.secondlife.com/</string> <!-- Disconnection --> <string name="AgentLostConnection">This region may be experiencing trouble. Please check your connection to the Internet.</string> - + <string name="SavingSettings">Saving your settings...</string> + <string name="LoggingOut">Logging out...</string> + <string name="ShuttingDown">Shutting down...</string> + <string name="YouHaveBeenDisconnected">You have been disconnected from the region you were in.</string> + <string name="SentToInvalidRegion">You were sent to an invalid region.</string> + <string name="TestingDisconnect">Testing viewer disconnect</string> <!-- Tooltip, lltooltipview.cpp --> <string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar --> @@ -68,6 +81,12 @@ <string name="TooltipHttpUrl">Click to view this web page</string> <string name="TooltipSLURL">Click to view this location's information</string> <string name="TooltipAgentUrl">Click to view this Resident's profile</string> + <string name="TooltipAgentMute">Click to mute this Resident</string> + <string name="TooltipAgentUnmute">Click to unmute this Resident</string> + <string name="TooltipAgentIM">Click to IM this Resident</string> + <string name="TooltipAgentPay">Click to Pay this Resident</string> + <string name="TooltipAgentOfferTeleport">Click to offer a teleport request to this Resident</string> + <string name="TooltipAgentRequestFriend">Click to send a friend request to this Resident</string> <string name="TooltipGroupUrl">Click to view this group's description</string> <string name="TooltipEventUrl">Click to view this event's description</string> <string name="TooltipClassifiedUrl">Click to view this classified</string> @@ -76,12 +95,22 @@ <string name="TooltipObjectIMUrl">Click to view this object's description</string> <string name="TooltipMapUrl">Click to view this location on a map</string> <string name="TooltipSLAPP">Click to run the secondlife:// command</string> - <string name="CurrentURL" value=" CurrentURL: [CurrentURL]" /> + <string name="CurrentURL" value=" CurrentURL: [CurrentURL]" /> + <string name="TooltipPrice" value=" L$[PRICE]-" /> + <!-- text for SLURL labels --> <string name="SLurlLabelTeleport">Teleport to</string> <string name="SLurlLabelShowOnMap">Show Map for</string> + <!-- label strings for secondlife:///app/agent SLapps --> + <string name="SLappAgentMute">Mute</string> + <string name="SLappAgentUnmute">Unmute</string> + <string name="SLappAgentIM">IM</string> + <string name="SLappAgentPay">Pay</string> + <string name="SLappAgentOfferTeleport">Offer Teleport to </string> + <string name="SLappAgentRequestFriend">Friend Request </string> + <!-- ButtonToolTips, llfloater.cpp --> <string name="BUTTON_CLOSE_DARWIN">Close (⌘W)</string> <string name="BUTTON_CLOSE_WIN">Close (Ctrl+W)</string> @@ -132,6 +161,7 @@ <string name="AssetErrorUnknownStatus">Unknown status</string> <!-- Asset Type human readable names: these will replace variable [TYPE] in notification FailedToFindWearable* --> + <!-- Will also replace [OBJECTTYPE] in notifications: UserGiveItem, ObjectGiveItem --> <string name="texture">texture</string> <string name="sound">sound</string> <string name="calling card">calling card</string> @@ -156,6 +186,7 @@ <string name="simstate">simstate</string> <string name="favorite">favorite</string> <string name="symbolic link">link</string> + <string name="symbolic folder link">folder link</string> <!-- llvoavatar. Displayed in the avatar chat bubble --> <string name="AvatarEditingAppearance">(Editing Appearance)</string> @@ -1821,6 +1852,7 @@ Clears (deletes) the media and all params from the given face. <string name="LoadingContents">Loading contents...</string> <string name="NoContents">No contents</string> <string name="WornOnAttachmentPoint" value=" (worn on [ATTACHMENT_POINT])" /> + <string name="ActiveGesture" value="[GESLABEL] (active)"/> <!-- Inventory permissions --> <string name="PermYes">Yes</string> <string name="PermNo">No</string> @@ -1877,6 +1909,7 @@ Clears (deletes) the media and all params from the given face. <string name="InvFolder favorite">Favorites</string> <string name="InvFolder Current Outfit">Current Outfit</string> <string name="InvFolder My Outfits">My Outfits</string> + <string name="InvFolder Accessories">Accessories</string> <!-- are used for Friends and Friends/All folders in Inventory "Calling cards" folder. See EXT-694--> <string name="InvFolder Friends">Friends</string> @@ -2106,6 +2139,7 @@ Clears (deletes) the media and all params from the given face. <!-- panel contents --> <string name="PanelContentsNewScript">New Script</string> + <string name="PanelContentsTooltip">Content of object</string> <!-- panel preferences general --> <string name="BusyModeResponseDefault">The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.</string> @@ -3013,4 +3047,17 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. <string name="unread_chat_multiple"> [SOURCES] have said something new </string>" + + <!-- Financial operations strings --> + <string name="paid_you_ldollars">[NAME] paid you L$[AMOUNT]</string> + <string name="giving">Giving</string> + <string name="uploading_costs">Uploading costs</string> + <string name="this_costs">This costs</string> + <string name="buying_selected_land">Buying selected land</string> + <string name="this_object_costs">This object costs"</string> + + <string name="group_role_everyone">Everyone</string> + <string name="group_role_officers">Officers</string> + <string name="group_role_owners">Owners</string> + </strings> diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml index 46531c5e58..006a82eab6 100644 --- a/indra/newview/skins/default/xui/es/floater_about_land.xml +++ b/indra/newview/skins/default/xui/es/floater_about_land.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floaterland" title="ACERCA DEL TERRENO"> + <floater.string name="maturity_icon_general"> + "Parcel_PG_Dark" + </floater.string> + <floater.string name="maturity_icon_moderate"> + "Parcel_M_Dark" + </floater.string> + <floater.string name="maturity_icon_adult"> + "Parcel_R_Dark" + </floater.string> <floater.string name="Minutes"> [MINUTES] minutos </floater.string> @@ -15,7 +24,7 @@ <tab_container name="landtab"> <panel label="GENERAL" name="land_general_panel"> <panel.string name="new users only"> - Sólo usuarios nuevos + Sólo nuevos Residentes </panel.string> <panel.string name="anyone"> Cualquiera @@ -84,9 +93,9 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s <text name="GroupText"> Leyla Linden </text> - <button label="Configurar..." label_selected="Configurar..." name="Set..."/> + <button label="Configurar" name="Set..."/> <check_box label="Permitir transferir al grupo" name="check deed" tool_tip="Un oficial del grupo puede transferir este terreno al grupo. El terreno será apoyado por el grupo en sus asignaciones de terreno."/> - <button label="Transferir..." label_selected="Transferir..." name="Deed..." tool_tip="Sólo si es usted un oficial del grupo seleccionado puede transferir terreno."/> + <button label="Transferir" name="Deed..." tool_tip="Sólo si es usted un oficial del grupo seleccionado puede transferir terreno."/> <check_box label="El propietario hace una contribución transfiriendo" name="check contrib" tool_tip="Cuando el terreno se transfiere al grupo, el antiguo propietario contribuye con una asignación suficiente de terreno."/> <text name="For Sale:"> En venta: @@ -97,7 +106,7 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s <text name="For Sale: Price L$[PRICE]."> Precio: [PRICE] L$ ([PRICE_PER_SQM] L$/m²). </text> - <button label="Vender el terreno..." label_selected="Vender el terreno..." name="Sell Land..."/> + <button label="Vender el terreno" name="Sell Land..."/> <text name="For sale to"> En venta a: [BUYER] </text> @@ -107,7 +116,7 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s <text name="Selling with no objects in parcel." width="216"> Los objetos no se incluyen en la venta. </text> - <button bottom="-245" font="SansSerifSmall" label="Cancelar la venta del terreno" label_selected="Cancelar la venta del terreno" left="275" name="Cancel Land Sale" width="165"/> + <button bottom="-245" font="SansSerifSmall" label="Cancelar la venta del terreno" label_selected="Cancelar la venta del terreno" left="275" name="Cancel Land Sale"/> <text name="Claimed:"> Reclamada: </text> @@ -126,13 +135,13 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s <text name="DwellText"> 0 </text> - <button label="Comprar terreno..." label_selected="Comprar terreno..." left="130" name="Buy Land..." width="125"/> + <button label="Comprar terreno" left="130" name="Buy Land..." width="125"/> <button label="Información del script" name="Scripts..."/> - <button label="Comprar para el grupo..." label_selected="Comprar para el grupo..." name="Buy For Group..."/> - <button label="Comprar un pase..." label_selected="Comprar un pase..." left="130" name="Buy Pass..." tool_tip="Un pase le da acceso temporal a este terreno." width="125"/> - <button label="Abandonar el terreno..." label_selected="Abandonar el terreno..." name="Abandon Land..."/> - <button label="Reclamar el terreno..." label_selected="Reclamar el terreno..." name="Reclaim Land..."/> - <button label="Venta Linden..." label_selected="Venta Linden..." name="Linden Sale..." tool_tip="El terreno debe estar en propiedad, con contenido, y no estar en subasta."/> + <button label="Comprar para el grupo" name="Buy For Group..."/> + <button label="Comprar un pase" left="130" name="Buy Pass..." tool_tip="Un pase le da acceso temporal a este terreno." width="125"/> + <button label="Abandonar el terreno" name="Abandon Land..."/> + <button label="Reclamar el terreno" name="Reclaim Land..."/> + <button label="Venta Linden" name="Linden Sale..." tool_tip="El terreno debe estar en propiedad, con contenido, y no estar en subasta."/> </panel> <panel label="CONTRATO" name="land_covenant_panel"> <panel.string name="can_resell"> @@ -231,7 +240,7 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/> - <button label="Devolver..." label_selected="Devolver..." name="ReturnOwner..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/> + <button label="Devolver" name="ReturnOwner..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/> <text left="14" name="Set to group:" width="180"> Del grupo: </text> @@ -239,7 +248,7 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/> - <button label="Devolver..." label_selected="Devolver..." name="ReturnGroup..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/> + <button label="Devolver" name="ReturnGroup..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/> <text left="14" name="Owned by others:" width="128"> Propiedad de otros: </text> @@ -247,7 +256,7 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/> - <button label="Devolver..." label_selected="Devolver..." name="ReturnOther..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/> + <button label="Devolver" name="ReturnOther..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/> <text left="14" name="Selected / sat upon:" width="193"> Seleccionados / con gente sentada: </text> @@ -262,7 +271,7 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s Propietarios de los objetos: </text> <button label="Actualizar la lista" label_selected="Actualizar la lista" left="158" name="Refresh List" tool_tip="Refresh Object List"/> - <button label="Devolver los objetos..." label_selected="Devolver los objetos..." left="270" name="Return objects..." width="164"/> + <button label="Devolver los objetos" left="270" name="Return objects..." width="164"/> <name_list name="owner list"> <name_list.columns label="Tipo" name="type"/> <name_list.columns label="Nombre" name="name"/> @@ -307,17 +316,17 @@ Sólo las parcelas más grandes pueden listarse en la búsqueda. </text> <check_box label="Editar el terreno" name="edit land check" tool_tip="Si se marca, cualquiera podrá modificar su terreno. Mejor dejarlo desmarcado, pues usted siempre puede modificar su terreno."/> <check_box label="Volar" name="check fly" tool_tip="Si se marca, los residentes podrán volar en su terreno. Si no, sólo podrán volar al cruzarlo o hasta que aterricen en él."/> - <text left="162" name="allow_label2"> + <text name="allow_label2"> Crear objetos: </text> <check_box label="Todos los residentes" left="255" name="edit objects check"/> <check_box label="El grupo" left="385" name="edit group objects check"/> - <text left="162" name="allow_label3"> + <text name="allow_label3"> Dejar objetos: </text> <check_box label="Todos los residentes" left="255" name="all object entry check"/> <check_box label="El grupo" left="385" name="group object entry check"/> - <text left="162" name="allow_label4"> + <text name="allow_label4"> Ejecutar scripts: </text> <check_box label="Todos los residentes" left="255" name="check other scripts"/> @@ -424,6 +433,9 @@ los media: <panel.string name="access_estate_defined"> (Definido por el Estado) </panel.string> + <panel.string name="allow_public_access"> + Permitir el acceso público ([MATURITY]) + </panel.string> <panel.string name="estate_override"> Una o más de esta opciones está configurada a nivel del estado </panel.string> diff --git a/indra/newview/skins/default/xui/es/floater_animation_preview.xml b/indra/newview/skins/default/xui/es/floater_animation_preview.xml index 2fc18e55f6..a40d53a8a8 100644 --- a/indra/newview/skins/default/xui/es/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/es/floater_animation_preview.xml @@ -115,14 +115,14 @@ La duración máxima de una animación es de [MAX_LENGTH] segundos. <text name="description_label"> Descripción: </text> - <spinner label="Prioridad:" label_width="72" name="priority" tool_tip="Controla qué otras animaciones pueden ser anuladas por ésta" width="110"/> - <check_box label="Bucle:" left="8" name="loop_check" tool_tip="Hace esta animación en bucle"/> - <spinner label="Empieza(%)" label_width="65" left="65" name="loop_in_point" tool_tip="Indica el punto en el que la animación vuelve a empezar" width="116"/> - <spinner label="Acaba(%)" label_width="50" left="185" name="loop_out_point" tool_tip="Indica el punto en el que la animación acaba el bucle"/> + <spinner label="Prioridad:" name="priority" tool_tip="Controla qué otras animaciones pueden ser anuladas por ésta"/> + <check_box label="Bucle:" name="loop_check" tool_tip="Hace esta animación en bucle"/> + <spinner label="Empieza(%)" name="loop_in_point" tool_tip="Indica el punto en el que la animación vuelve a empezar"/> + <spinner label="Acaba(%)" name="loop_out_point" tool_tip="Indica el punto en el que la animación acaba el bucle"/> <text name="hand_label"> Posición de las manos </text> - <combo_box left_delta="120" name="hand_pose_combo" tool_tip="Controla qué hacen las manos durante la animación" width="164"> + <combo_box name="hand_pose_combo" tool_tip="Controla qué hacen las manos durante la animación"> <combo_box.item label="Extendidas" name="Spread"/> <combo_box.item label="Relajadas" name="Relaxed"/> <combo_box.item label="Ambas señalan" name="PointBoth"/> @@ -140,7 +140,7 @@ La duración máxima de una animación es de [MAX_LENGTH] segundos. <text name="emote_label"> Expresión </text> - <combo_box left_delta="120" name="emote_combo" tool_tip="Controla qué hace la cara durante la animación" width="164"> + <combo_box name="emote_combo" tool_tip="Controla qué hace la cara durante la animación"> <combo_box.item label="(ninguno)" name="[None]"/> <combo_box.item label="Aaaaah" name="Aaaaah"/> <combo_box.item label="Con miedo" name="Afraid"/> @@ -162,17 +162,17 @@ La duración máxima de una animación es de [MAX_LENGTH] segundos. <combo_box.item label="Guiño" name="Wink"/> <combo_box.item label="Preocupación" name="Worry"/> </combo_box> - <text name="preview_label" width="250"> + <text name="preview_label"> Vista previa mientras </text> - <combo_box left_delta="120" name="preview_base_anim" tool_tip="Compruebe cómo se comporta su animación a la vez que el avatar realiza acciones comunes." width="130"> + <combo_box name="preview_base_anim" tool_tip="Compruebe cómo se comporta su animación a la vez que el avatar realiza acciones comunes."> <combo_box.item label="De pie" name="Standing"/> <combo_box.item label="Caminando" name="Walking"/> <combo_box.item label="Sentado/a" name="Sitting"/> <combo_box.item label="Volando" name="Flying"/> </combo_box> - <spinner label="Combinar (sec)" label_width="125" name="ease_in_time" tool_tip="Tiempo (en segundos) en el que se combinan las animaciones" width="192"/> - <spinner bottom_delta="-20" label="Dejar de combinar (sec)" label_width="125" left="10" name="ease_out_time" tool_tip="Tiempo (en segundos) en el que dejan de combinarse las animaciones" width="192"/> + <spinner label="Combinar (sec)" name="ease_in_time" tool_tip="Tiempo (en segundos) en el que se combinan las animaciones"/> + <spinner label="Dejar de combinar (sec)" name="ease_out_time" tool_tip="Tiempo (en segundos) en el que dejan de combinarse las animaciones"/> <button bottom_delta="-32" name="play_btn" tool_tip="Ejecutar tu animación"/> <button name="pause_btn" tool_tip="Pausar tu animación"/> <button label="" name="stop_btn" tool_tip="Parar la repetición de la animación"/> @@ -180,8 +180,7 @@ La duración máxima de una animación es de [MAX_LENGTH] segundos. <text name="bad_animation_text"> No se ha podido leer el archivo de la animación. -Recomendamos usar archivos BVH exportados de -Poser 4. +Recomendamos usar archivos BVH exportados de Poser 4. </text> <button label="Subir ([AMOUNT] L$)" name="ok_btn"/> <button label="Cancelar" name="cancel_btn"/> diff --git a/indra/newview/skins/default/xui/es/floater_buy_land.xml b/indra/newview/skins/default/xui/es/floater_buy_land.xml index 496e719c6d..9a0a566a55 100644 --- a/indra/newview/skins/default/xui/es/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/es/floater_buy_land.xml @@ -41,8 +41,8 @@ Inténtelo seleccionando un área más pequeña. El área seleccionada no tiene terreno público. </floater.string> <floater.string name="not_owned_by_you"> - Se ha seleccionado terreno propiedad de otro. -Inténtelo seleccionando un área más pequeña. + Está seleccionado un terreno propiedad de otro Residente. +Prueba a seleccionar un área más pequeña. </floater.string> <floater.string name="processing"> Procesando su compra... diff --git a/indra/newview/skins/default/xui/es/floater_camera.xml b/indra/newview/skins/default/xui/es/floater_camera.xml index 40c5603706..787c37e12c 100644 --- a/indra/newview/skins/default/xui/es/floater_camera.xml +++ b/indra/newview/skins/default/xui/es/floater_camera.xml @@ -9,6 +9,18 @@ <floater.string name="move_tooltip"> Mover la cámara arriba y abajo, izquierda y derecha </floater.string> + <floater.string name="orbit_mode_title"> + Orbital + </floater.string> + <floater.string name="pan_mode_title"> + Panorámica + </floater.string> + <floater.string name="avatar_view_mode_title"> + Posición de tu cámara + </floater.string> + <floater.string name="free_mode_title"> + Centrar el objeto + </floater.string> <panel name="controls"> <joystick_track name="cam_track_stick" tool_tip="Mueve la cámara arriba y abajo, a izquierda y derecha"/> <panel name="zoom" tool_tip="Hacer zoom con la cámara en lo enfocado"> diff --git a/indra/newview/skins/default/xui/es/floater_event.xml b/indra/newview/skins/default/xui/es/floater_event.xml index 81909e997c..4bc5221796 100644 --- a/indra/newview/skins/default/xui/es/floater_event.xml +++ b/indra/newview/skins/default/xui/es/floater_event.xml @@ -9,6 +9,18 @@ <floater.string name="dont_notify"> No notificar </floater.string> + <floater.string name="moderate"> + Moderado + </floater.string> + <floater.string name="adult"> + Adulto + </floater.string> + <floater.string name="general"> + General + </floater.string> + <floater.string name="unknown"> + desconocida + </floater.string> <layout_stack name="layout"> <layout_panel name="profile_stack"> <text name="event_name"> @@ -21,12 +33,21 @@ Organizado por: </text> <text initial_value="(obteniendo)" name="event_runby"/> + <text name="event_date_label"> + Fecha: + </text> <text name="event_date"> 10/10/2010 </text> + <text name="event_duration_label"> + Duración: + </text> <text name="event_duration"> 1 hora </text> + <text name="event_covercharge_label"> + Entrada: + </text> <text name="event_cover"> Gratis </text> @@ -36,6 +57,9 @@ <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/> <text name="rating_label" value="Calificación:"/> <text name="rating_value" value="desconocida"/> + <expandable_text name="event_desc"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + </expandable_text> </layout_panel> <layout_panel name="button_panel"> <button name="create_event_btn" tool_tip="Crear el evento"/> diff --git a/indra/newview/skins/default/xui/es/floater_god_tools.xml b/indra/newview/skins/default/xui/es/floater_god_tools.xml index b604f7f46f..73187f208b 100644 --- a/indra/newview/skins/default/xui/es/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/es/floater_god_tools.xml @@ -2,7 +2,7 @@ <floater name="godtools floater" title="HERRAMIENTAS DE DIOS"> <tab_container name="GodTools Tabs"> <panel label="Red" name="grid"> - <button label="Expulsar a todos los usuarios" label_selected="Expulsar a todos los usuarios" name="Kick all users"/> + <button label="Expulsar a todos los Residentes" label_selected="Expulsar a todos los Residentes" name="Kick all users"/> <button label="Vaciar los caches de visibilidad del mapa de la región" label_selected="Vaciar los caches de visibilidad del mapa de la región" name="Flush This Region's Map Visibility Caches"/> </panel> <panel label="Región" name="region"> diff --git a/indra/newview/skins/default/xui/es/floater_im.xml b/indra/newview/skins/default/xui/es/floater_im.xml index e6b01a4946..3850b94fd6 100644 --- a/indra/newview/skins/default/xui/es/floater_im.xml +++ b/indra/newview/skins/default/xui/es/floater_im.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <multi_floater name="im_floater" title="Mensaje Instantáneo"> <string name="only_user_message"> - Usted es el único usuario en esta sesión. + Eres el único Residente en esta sesión. </string> <string name="offline_message"> [FIRST] [LAST] no está conectado. @@ -31,7 +31,7 @@ Un moderador del grupo le ha desactivado el chat de texto. </string> <string name="add_session_event"> - No se ha podido añadir usuarios a la sesión de chat con [RECIPIENT]. + No es posible añadir Residentes a la sesión de chat con [RECIPIENT]. </string> <string name="message_session_event"> No se ha podido enviar su mensaje a la sesión de chat con [RECIPIENT]. diff --git a/indra/newview/skins/default/xui/es/floater_moveview.xml b/indra/newview/skins/default/xui/es/floater_moveview.xml index 1269943879..7cb41d3f5b 100644 --- a/indra/newview/skins/default/xui/es/floater_moveview.xml +++ b/indra/newview/skins/default/xui/es/floater_moveview.xml @@ -18,6 +18,15 @@ <string name="fly_back_tooltip"> Volar hacia atrás (cursor abajo o S) </string> + <string name="walk_title"> + Caminar + </string> + <string name="run_title"> + Correr + </string> + <string name="fly_title"> + Volar + </string> <panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Girar a la izq. (cursor izq. o A)"/> <button label="" label_selected="" name="turn right btn" tool_tip="Girar a la der. (cursor der. o D)"/> @@ -30,6 +39,5 @@ <button label="" name="mode_walk_btn" tool_tip="Modo de caminar"/> <button label="" name="mode_run_btn" tool_tip="Modo de correr"/> <button label="" name="mode_fly_btn" tool_tip="Modo de volar"/> - <button label="Dejar de volar" name="stop_fly_btn" tool_tip="Dejar de volar"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_publish_classified.xml b/indra/newview/skins/default/xui/es/floater_publish_classified.xml new file mode 100644 index 0000000000..5eed89d522 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_publish_classified.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="publish_classified" title="Publicación de clasificados"> + <text name="explanation_text"> + Tu anuncio clasificado se mostrará durante una semana a partir del día en que se publicó. + +Recuerda, no se reembolsarán las cantidades abonadas por clasificados. + </text> + <spinner label="Precio por el anuncio:" name="price_for_listing" tool_tip="Precio por publicarlo." value="50"/> + <text name="l$_text" value="L$"/> + <text name="more_info_text"> + Más información (enlace a ayuda de clasificados) + </text> + <button label="Publicar" name="publish_btn"/> + <button label="Cancelar" name="cancel_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_water.xml b/indra/newview/skins/default/xui/es/floater_water.xml index 9996860137..2c1f6cfbfb 100644 --- a/indra/newview/skins/default/xui/es/floater_water.xml +++ b/indra/newview/skins/default/xui/es/floater_water.xml @@ -7,7 +7,7 @@ <button label="Guardar" label_selected="Guardar" name="WaterSavePreset"/> <button label="Borrar" label_selected="Borrar" name="WaterDeletePreset"/> <tab_container name="Water Tabs"> - <panel label="Configuraciones" name="Settings"> + <panel label="CONFIGURACIÓN" name="Settings"> <text name="BHText"> Color del agua </text> @@ -55,7 +55,7 @@ </text> <button label="?" left="640" name="WaterBlurMultiplierHelp"/> </panel> - <panel label="Imagen" name="Waves"> + <panel label="IMAGEN" name="Waves"> <text name="BHText"> Sentido de la onda grande </text> diff --git a/indra/newview/skins/default/xui/es/floater_windlight_options.xml b/indra/newview/skins/default/xui/es/floater_windlight_options.xml index 0697f05553..9bc3750951 100644 --- a/indra/newview/skins/default/xui/es/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/es/floater_windlight_options.xml @@ -6,9 +6,9 @@ <button label="Nuevo" label_selected="Nuevo" name="WLNewPreset"/> <button label="Guardar" label_selected="Guardar" name="WLSavePreset"/> <button label="Borrar" label_selected="Borrar" name="WLDeletePreset"/> - <button font="SansSerifSmall" width="150" left_delta="90" label="Editor del ciclo de un día" label_selected="Editor del ciclo de un día" name="WLDayCycleMenuButton"/> + <button font="SansSerifSmall" label="Editor del ciclo de un día" label_selected="Editor del ciclo de un día" left_delta="90" name="WLDayCycleMenuButton" width="150"/> <tab_container name="WindLight Tabs"> - <panel label="Atmósfera" name="Atmosphere"> + <panel label="ATMÓSFERA" name="Atmosphere"> <text name="BHText"> Coloración </text> @@ -62,7 +62,7 @@ </text> <button label="?" name="WLMaxAltitudeHelp"/> </panel> - <panel label="Iluminación" name="Lighting"> + <panel label="LUZ" name="Lighting"> <text name="SLCText"> Color del Sol y de la Luna </text> @@ -118,11 +118,11 @@ </text> <button label="?" name="WLStarBrightnessHelp"/> </panel> - <panel label="Nubes" name="Clouds"> + <panel label="NUBES" name="Clouds"> <text name="WLCloudColorText"> Color de las nubes </text> - <button label="?" name="WLCloudColorHelp" left="190" /> + <button label="?" left="190" name="WLCloudColorHelp"/> <text name="BHText"> R </text> @@ -138,7 +138,7 @@ <text name="WLCloudColorText2"> Posición/Densidad de las nubes </text> - <button label="?" name="WLCloudDensityHelp" left="190"/> + <button label="?" left="190" name="WLCloudDensityHelp"/> <text name="BHText5"> X </text> @@ -156,12 +156,12 @@ Altitud de las nubes </text> <button label="?" name="WLCloudScaleHelp"/> - <text name="WLCloudDetailText" font="SansSerifSmall"> + <text font="SansSerifSmall" name="WLCloudDetailText"> Detalle de las nubes (Posición/Densidad) </text> <button label="?" name="WLCloudDetailHelp"/> - <text name="BHText8" bottom="-113"> + <text bottom="-113" name="BHText8"> X </text> <text name="BHText9"> @@ -182,7 +182,7 @@ <button label="?" name="WLCloudScrollYHelp"/> <check_box label="Bloquear" name="WLCloudLockY"/> <check_box label="Incluir nubes clásicas" name="DrawClassicClouds"/> - <button label="?" name="WLClassicCloudsHelp" left="618"/> + <button label="?" left="618" name="WLClassicCloudsHelp"/> </panel> </tab_container> <string name="WLDefaultSkyNames"> diff --git a/indra/newview/skins/default/xui/es/floater_world_map.xml b/indra/newview/skins/default/xui/es/floater_world_map.xml index a8dc05703c..38a12002f5 100644 --- a/indra/newview/skins/default/xui/es/floater_world_map.xml +++ b/indra/newview/skins/default/xui/es/floater_world_map.xml @@ -5,22 +5,37 @@ Leyenda </text> </panel> - <panel> + <panel name="layout_panel_2"> + <button name="Show My Location" tool_tip="Centrar el mapa en la posición de mi avatar"/> <text name="me_label"> Yo </text> <text name="person_label"> Persona </text> + <text name="infohub_label"> + Punto de Info + </text> + <text name="land_sale_label"> + Venta de terreno + </text> <text name="by_owner_label"> por el propietario </text> <text name="auction_label"> subasta de terreno </text> + <button name="Go Home" tool_tip="Teleportar a mi Base"/> + <text name="Home_label"> + Base + </text> + <text name="events_label"> + Eventos: + </text> <text name="pg_label"> General </text> + <check_box initial_value="verdadero" name="event_mature_chk"/> <text name="mature_label"> Moderado </text> @@ -28,7 +43,28 @@ Adulto </text> </panel> - <panel> + <panel name="layout_panel_3"> + <text name="find_on_map_label"> + Encontrar en el mapa + </text> + </panel> + <panel name="layout_panel_4"> + <combo_box label="Amigos online" name="friend combo" tool_tip="Ver a los amigos en el mapa"> + <combo_box.item label="Mis amigos conectados" name="item1"/> + </combo_box> + <combo_box label="Mis hitos" name="landmark combo" tool_tip="Hito a ver en el mapa"> + <combo_box.item label="Mis hitos" name="item1"/> + </combo_box> + <search_editor label="Regiones alfabéticamente" name="location" tool_tip="Escribe el nombre de una región"/> + <button label="Encontrar" name="DoSearch" tool_tip="Buscar una región"/> <button name="Clear" tool_tip="Limpia las marcas y actualiza el mapa"/> + <button label="Teleportar" name="Teleport" tool_tip="Teleportar a la localización seleccionada"/> + <button label="Copiar la SLurl" name="copy_slurl" tool_tip="Copiar la SLurl de esta posición para usarla en una web."/> + <button label="Ver lo elegido" name="Show Destination" tool_tip="Centrar el mapa en la localización seleccionada"/> + </panel> + <panel name="layout_panel_5"> + <text name="zoom_label"> + Zoom + </text> </panel> </floater> diff --git a/indra/newview/skins/default/xui/es/menu_object.xml b/indra/newview/skins/default/xui/es/menu_object.xml index 18b6363bbb..1677b9461e 100644 --- a/indra/newview/skins/default/xui/es/menu_object.xml +++ b/indra/newview/skins/default/xui/es/menu_object.xml @@ -5,6 +5,7 @@ <menu_item_call label="Construir" name="Build"/> <menu_item_call label="Abrir" name="Open"/> <menu_item_call label="Sentarse aquí" name="Object Sit"/> + <menu_item_call label="Levantarme" name="Object Stand Up"/> <menu_item_call label="Perfil del objeto" name="Object Inspect"/> <menu_item_call label="Acercar el zoom" name="Zoom In"/> <context_menu label="Ponerme ▶" name="Put On"> diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml index 9c08fbb2c8..a0886b3e00 100644 --- a/indra/newview/skins/default/xui/es/menu_viewer.xml +++ b/indra/newview/skins/default/xui/es/menu_viewer.xml @@ -11,7 +11,7 @@ <menu_item_check label="Mi Inventario" name="Inventory"/> <menu_item_check label="Mi Inventario" name="ShowSidetrayInventory"/> <menu_item_check label="Mis gestos" name="Gestures"/> - <menu label="Mi estatus" name="Status"> + <menu label="Mi estado" name="Status"> <menu_item_call label="Ausente" name="Set Away"/> <menu_item_call label="Ocupado" name="Set Busy"/> </menu> diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml index f99bb277cb..db1cc1caea 100644 --- a/indra/newview/skins/default/xui/es/notifications.xml +++ b/indra/newview/skins/default/xui/es/notifications.xml @@ -106,7 +106,7 @@ Asegúrate de que tu conexión a internet está funcionando adecuadamente. </notification> <notification name="FriendsAndGroupsOnly"> Quienes no sean tus amigos no sabrán que has elegido ignorar sus llamadas y mensajes instantáneos. - <usetemplate name="okbutton" yestext="Sí"/> + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="GrantModifyRights"> Al conceder permisos de modificación a otro Residente, le estás permitiendo cambiar, borrar o tomar CUALQUIER objeto que tengas en el mundo. Sé MUY cuidadoso al conceder este permiso. @@ -443,7 +443,6 @@ El objeto debe de haber sido borrado o estar fuera de rango ('out of range& <notification name="UnsupportedHardware"> Debes saber que tu ordenador no cumple los requisitos mínimos para la utilización de [APP_NAME]. Puede que experimentes un rendimiento muy bajo. Desafortunadamente, [SUPPORT_SITE] no puede dar asistencia técnica a sistemas con una configuración no admitida. -MINSPECS ¿Ir a [_URL] para más información? <url name="url" option="0"> http://secondlife.com/support/sysreqs.php?lang=es @@ -1309,8 +1308,8 @@ Esta actualización no es obligatoria, pero te sugerimos instalarla para mejorar <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="ConfirmKick"> - ¿DE VERDAD quiere expulsar a todos los usuarios de este grid? - <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar a todos los usuarios"/> + ¿Quieres realmente expulsar a todos los Residentes de la cuadrícula? + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar a todos los Residentes"/> </notification> <notification name="MuteLinden"> Lo sentimos, pero no puedes ignorar a un Linden. @@ -1351,7 +1350,7 @@ Se ocultará el chat y los mensajes instantáneos (éstos recibirán tu Respue <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="KickUser"> - ¿Con qué mensaje se expulsará a este usuario? + ¿Con qué mensaje quieres expulsar a este Residente? <form name="form"> <input name="message"> Un administrador le ha desconectado. @@ -1371,7 +1370,7 @@ Se ocultará el chat y los mensajes instantáneos (éstos recibirán tu Respue </form> </notification> <notification name="FreezeUser"> - ¿Con qué mensaje se congelará a este usuario? + ¿Con qué mensaje quieres congelar a este Residente? <form name="form"> <input name="message"> Ha sido usted congelado. No puede moverse o escribir en el chat. Un administrador contactará con usted a través de un mensaje instantáneo (MI). @@ -1381,7 +1380,7 @@ Se ocultará el chat y los mensajes instantáneos (éstos recibirán tu Respue </form> </notification> <notification name="UnFreezeUser"> - ¿Con qué mensaje se descongelará a este usuario? + ¿Con qué mensaje quieres congelar a este Residente? <form name="form"> <input name="message"> Ya no está usted congelado. @@ -1401,7 +1400,7 @@ Se ocultará el chat y los mensajes instantáneos (éstos recibirán tu Respue </form> </notification> <notification name="OfferTeleportFromGod"> - ¿Convocar a este usuario a su posición? + ¿Obligar a este Residente a ir a tu localización? <form name="form"> <input name="message"> Ven conmigo a [REGION] @@ -1431,11 +1430,11 @@ Se ocultará el chat y los mensajes instantáneos (éstos recibirán tu Respue </form> </notification> <notification label="Cambiar un estado Linden" name="ChangeLindenEstate"> - Va a hacer cambios en un estado propiedad de Linden (mainland, grid teen, orientación, etc.). + Estás a punto de cambiar un estado propiedad de Linden (continente, teen grid, orientación, etc.). -Esto es EXTREMADAMENTE PELIGROSO, porque puede afectar radicalmente al funcionamiento de los usuarios. En mainland, se cambiarán miles de regiones, y se provocará un colapso en el espacio del servidor. +Esto es EXTREMADAMENTE PELIGROSO porque puede afectar en gran manera la experiencia de los Residentes. En el Continente, cambiará miles de regiones y hará que se trastorne el servidor. -¿Proceder? +¿Continuar? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification label="Cambiar el acceso a un estado Linden" name="ChangeLindenAccess"> @@ -2424,14 +2423,6 @@ Si no confias en este objeto y en su creador, deberías rehusar esta petición. <button name="Ignore" text="Ignorar"/> </form> </notification> - <notification name="ScriptToast"> - El '[TITLE]' de [FIRST] [LAST] está esperando una respuesta del usuario. - <form name="form"> - <button name="Open" text="Abrir el diálogo"/> - <button name="Ignore" text="Ignorar"/> - <button name="Block" text="Ignorar"/> - </form> - </notification> <notification name="BuyLindenDollarSuccess"> ¡Gracias por tu pago! @@ -2557,7 +2548,7 @@ Por tu seguridad, serán bloqueadas durante unos segundos. </notification> <notification name="ConfirmCloseAll"> ¿Seguro que quieres cerrar todos los MI? - <usetemplate name="okcancelignore" notext="Cancelar" yestext="OK"/> + <usetemplate ignoretext="Confirmar antes de cerrar todos los MIs" name="okcancelignore" notext="Cancelar" yestext="OK"/> </notification> <notification name="AttachmentSaved"> Se ha guardado el adjunto. diff --git a/indra/newview/skins/default/xui/es/panel_classified_info.xml b/indra/newview/skins/default/xui/es/panel_classified_info.xml index d46eadde48..f583cf2957 100644 --- a/indra/newview/skins/default/xui/es/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/es/panel_classified_info.xml @@ -3,16 +3,46 @@ <panel.string name="l$_price"> [PRICE] L$ </panel.string> + <panel.string name="click_through_text_fmt"> + [TELEPORT] teleportes, [MAP] mapa, [PROFILE] perfil + </panel.string> + <panel.string name="date_fmt"> + [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt] + </panel.string> + <panel.string name="auto_renew_on"> + Activada + </panel.string> + <panel.string name="auto_renew_off"> + Desactivada + </panel.string> <text name="title" value="Información del clasificado"/> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> <text_editor name="classified_name" value="[nombre]"/> + <text name="classified_location_label" value="Localización:"/> <text_editor name="classified_location" value="[cargando...]"/> + <text name="content_type_label" value="Tipo de contenido:"/> <text_editor name="content_type" value="[tipo de contenido]"/> + <text name="category_label" value="Categoría:"/> <text_editor name="category" value="[categoría]"/> - <check_box label="Renovar automáticamente cada semana" name="auto_renew"/> - <text_editor name="price_for_listing" tool_tip="Precio por publicarlo."/> - <text_editor name="classified_desc" value="[descripción]"/> + <text name="creation_date_label" value="Fecha de creación:"/> + <text_editor name="creation_date" tool_tip="Fecha de creación" value="[date]"/> + <text name="price_for_listing_label" value="Precio por publicarlo:"/> + <text_editor name="price_for_listing" tool_tip="Precio por publicarlo." value="[price]"/> + <layout_stack name="descr_stack"> + <layout_panel name="clickthrough_layout_panel"> + <text name="click_through_label" value="Clics:"/> + <text_editor name="click_through_text" tool_tip="Información sobre Click through" value="[clicks]"/> + </layout_panel> + <layout_panel name="price_layout_panel"> + <text name="auto_renew_label" value="Renovación:"/> + <text name="auto_renew" value="Activada"/> + </layout_panel> + <layout_panel name="descr_layout_panel"> + <text name="classified_desc_label" value="Descripción:"/> + <text_editor name="classified_desc" value="[description]"/> + </layout_panel> + </layout_stack> </panel> </scroll_container> <panel name="buttons"> diff --git a/indra/newview/skins/default/xui/es/panel_edit_classified.xml b/indra/newview/skins/default/xui/es/panel_edit_classified.xml index e612104b3f..7afa50c0a2 100644 --- a/indra/newview/skins/default/xui/es/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/es/panel_edit_classified.xml @@ -3,12 +3,20 @@ <panel.string name="location_notice"> (se actualizará tras guardarlo) </panel.string> + <string name="publish_label"> + Publicar + </string> + <string name="save_label"> + Guardar + </string> <text name="title"> Editar el clasificado </text> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Pulsa para elegir una imagen"/> + <panel name="snapshot_panel"> + <icon label="" name="edit_icon" tool_tip="Pulsa para elegir una imagen"/> + </panel> <text name="Name:"> Título: </text> @@ -22,12 +30,19 @@ cargando... </text> <button label="Configurarlo en esta localización" name="set_to_curr_location_btn"/> + <text name="category_label" value="Categoría:"/> + <text name="content_type_label" value="Tipo de contenido:"/> + <icons_combo_box label="Contenido general" name="content_type"> + <icons_combo_box.item label="Contenido moderado" name="mature_ci" value="Moderado"/> + <icons_combo_box.item label="Contenido general" name="pg_ci" value="General"/> + </icons_combo_box> + <text name="price_for_listing_label" value="Precio por publicarlo:"/> <spinner label="L$" name="price_for_listing" tool_tip="Precio por publicarlo." value="50"/> <check_box label="Renovar automáticamente cada semana" name="auto_renew"/> </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> - <button label="Guardar" name="save_changes_btn"/> + <button label="[LABEL]" name="save_changes_btn"/> <button label="Cancelar" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_im_control_panel.xml b/indra/newview/skins/default/xui/es/panel_im_control_panel.xml index c3d5b017ad..7d4db6a630 100644 --- a/indra/newview/skins/default/xui/es/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/es/panel_im_control_panel.xml @@ -13,7 +13,7 @@ <layout_panel name="share_btn_panel"> <button label="Compartir" name="share_btn"/> </layout_panel> - <layout_panel name="share_btn_panel"> + <layout_panel name="pay_btn_panel"> <button label="Pagar" name="pay_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> diff --git a/indra/newview/skins/default/xui/es/panel_login.xml b/indra/newview/skins/default/xui/es/panel_login.xml index c5494d8199..1a7040d01f 100644 --- a/indra/newview/skins/default/xui/es/panel_login.xml +++ b/indra/newview/skins/default/xui/es/panel_login.xml @@ -12,12 +12,19 @@ Nombre: </text> <line_editor label="Nombre" name="first_name_edit" tool_tip="[SECOND_LIFE] First Name"/> + <text name="last_name_text"> + Apellido: + </text> <line_editor label="Apellido" name="last_name_edit" tool_tip="[SECOND_LIFE] Last Name"/> + <text name="password_text"> + Contraseña: + </text> <check_box label="Recordar la contraseña" name="remember_check"/> <text name="start_location_text"> Empezar en: </text> <combo_box name="start_location_combo"> + <combo_box.item label="Mi última localización" name="MyLastLocation"/> <combo_box.item label="Mi Base" name="MyHome"/> </combo_box> <button label="Iniciar sesión" name="connect_btn"/> @@ -26,6 +33,9 @@ <text name="create_new_account_text"> Registrarme </text> + <text name="forgot_password_text"> + ¿Olvidaste el nombre o la contraseña? + </text> <text name="login_help"> ¿Necesitas ayuda para conectarte? </text> diff --git a/indra/newview/skins/default/xui/es/panel_people.xml b/indra/newview/skins/default/xui/es/panel_people.xml index 03c449da93..55e3df5a0a 100644 --- a/indra/newview/skins/default/xui/es/panel_people.xml +++ b/indra/newview/skins/default/xui/es/panel_people.xml @@ -7,6 +7,8 @@ <string name="no_friends" value="No hay amigos"/> <string name="people_filter_label" value="Filtrar a la gente"/> <string name="groups_filter_label" value="Filtrar a los grupos"/> + <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Intenta encontrar el grupo con una búsqueda]"/> + <string name="no_groups_msg" value="[secondlife:///app/search/groups Intenta encontrar grupos a los que unirte.]"/> <filter_editor label="Filtrar" name="filter_input"/> <tab_container name="tabs"> <panel label="CERCANÍA" name="nearby_panel"> diff --git a/indra/newview/skins/default/xui/es/panel_place_profile.xml b/indra/newview/skins/default/xui/es/panel_place_profile.xml index 2c873ef464..6fe7895d45 100644 --- a/indra/newview/skins/default/xui/es/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/es/panel_place_profile.xml @@ -70,10 +70,17 @@ <accordion_tab name="region_information_tab" title="Región"> <panel name="region_information_panel"> <text name="region_name_label" value="Región:"/> + <text name="region_name" value="Mooseland"/> <text name="region_type_label" value="Tipo:"/> + <text name="region_type" value="Moose"/> <text name="region_rating_label" value="Calificación:"/> + <text name="region_rating" value="Adulto"/> <text name="region_owner_label" value="Propietario:"/> + <text name="region_owner" value="moose Van Moose"/> <text name="region_group_label" value="Grupo:"/> + <text name="region_group"> + The Mighty Moose of mooseville soundvillemoose + </text> <button label="Región/Estado" name="region_info_btn"/> </panel> </accordion_tab> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml index 17e3b45beb..a7e5429adc 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat de texto" name="chat"> <text name="font_size"> - Font size: + Tamaño de la fuente: </text> <radio_group name="chat_font_size"> <radio_item label="Disminuir" name="radio" value="0"/> @@ -9,7 +9,7 @@ <radio_item label="Aumentar" name="radio3" value="2"/> </radio_group> <text name="font_colors"> - Font colors: + Colores de la fuente: </text> <color_swatch label="Usted" name="user"/> <text name="text_box1"> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml index 6ec3a04a02..87e7dc1e8a 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml @@ -52,7 +52,7 @@ m </text> <slider label="Núm. máx. de partículas:" name="MaxParticleCount"/> - <slider label="Calidad del procesamiento:" label_width="142" name="RenderPostProcess"/> + <slider label="Calidad de procesamiento:" label_width="142" name="RenderPostProcess"/> <text name="MeshDetailText"> Detalle de la malla: </text> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml index ebf2b1084b..2465612a64 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml @@ -18,7 +18,7 @@ kbps </text> <check_box label="Personalizar el puerto" name="connection_port_enabled"/> - <spinner label="Número de puerto:" name="connection_port"/> + <spinner label="Nº del puerto:" name="connection_port"/> <text name="cache_size_label_l"> Tamaño de la caché </text> @@ -42,5 +42,5 @@ Localización del proxy: </text> <line_editor name="web_proxy_editor" tool_tip="Nombre o dirección IP del proxy que quieres usar"/> - <spinner label="Número de puerto:" name="web_proxy_port"/> + <spinner label="Nº del puerto:" name="web_proxy_port"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_region_estate.xml b/indra/newview/skins/default/xui/es/panel_region_estate.xml index 53d05cf2c9..c51c3815d1 100644 --- a/indra/newview/skins/default/xui/es/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/es/panel_region_estate.xml @@ -39,7 +39,7 @@ </string> <button label="?" name="abuse_email_address_help"/> <button label="Aplicar" name="apply_btn"/> - <button label="Echar usuarios del estado..." name="kick_user_from_estate_btn"/> + <button label="Expulsar a un Residente del Estado..." name="kick_user_from_estate_btn"/> <button label="Enviar un mensaje al estado..." name="message_estate_btn"/> <text name="estate_manager_label"> Administradores del estado: diff --git a/indra/newview/skins/default/xui/es/panel_region_general.xml b/indra/newview/skins/default/xui/es/panel_region_general.xml index ca8da6ccaf..54b60b276c 100644 --- a/indra/newview/skins/default/xui/es/panel_region_general.xml +++ b/indra/newview/skins/default/xui/es/panel_region_general.xml @@ -19,35 +19,26 @@ desconocido </text> <check_box label="No permitir modificar el terreno" name="block_terraform_check"/> - <button label="?" name="terraform_help"/> <check_box label="Prohibir volar" name="block_fly_check"/> - <button label="?" name="fly_help"/> <check_box label="Permitir el daño" name="allow_damage_check"/> - <button label="?" name="damage_help"/> <check_box label="Impedir los 'empujones'" name="restrict_pushobject"/> - <button label="?" name="restrict_pushobject_help"/> <check_box label="Permitir la reventa del terreno" name="allow_land_resell_check"/> - <button label="?" name="land_resell_help"/> <check_box label="Permitir unir/dividir el terreno" name="allow_parcel_changes_check"/> - <button label="?" name="parcel_changes_help"/> - <check_box label="Bloquear el mostrar el terreno en la búsqueda." name="block_parcel_search_check" tool_tip="Permitir que la gente vea esta región y sus parcelas en los resultados de la búsqueda."/> - <button label="?" name="parcel_search_help"/> - <spinner label="Nº máximo de avatares" name="agent_limit_spin" label_width="120" width="180"/> - <button label="?" name="agent_limit_help"/> - <spinner label="Plus de objetos" name="object_bonus_spin" label_width="120" width="180"/> - <button label="?" name="object_bonus_help"/> + <check_box label="Bloquear el mostrar el terreno en +la búsqueda." name="block_parcel_search_check" tool_tip="Permitir que la gente vea esta región y sus parcelas en los resultados de la búsqueda."/> + <spinner label="Nº máximo de avatares" label_width="120" name="agent_limit_spin" width="180"/> + <spinner label="Plus de objetos" label_width="120" name="object_bonus_spin" width="180"/> <text label="Calificación" name="access_text"> Calificación: </text> - <combo_box label="'Mature'" name="access_combo"> - <combo_box.item label="'Adult'" name="Adult"/> - <combo_box.item label="'Mature'" name="Mature"/> - <combo_box.item label="'PG'" name="PG"/> - </combo_box> - <button label="?" name="access_help"/> + <icons_combo_box label="'Mature'" name="access_combo"> + <icons_combo_box.item label="'Adult'" name="Adult" value="42"/> + <icons_combo_box.item label="'Mature'" name="Mature" value="21"/> + <icons_combo_box.item label="'PG'" name="PG" value="13"/> + </icons_combo_box> <button label="Aplicar" name="apply_btn"/> - <button label="Teleportar a su Base a un usuario..." name="kick_btn"/> - <button label="Teleportar a su Base a todos los usuarios..." name="kick_all_btn"/> - <button label="Enviar un mensaje a toda la región..." name="im_btn" width="250" /> + <button label="Teleportar a su Base a un Residente..." name="kick_btn"/> + <button label="Teleportar a sus Bases a todos los Residentes..." name="kick_all_btn"/> + <button label="Enviar un mensaje a toda la región..." name="im_btn" width="250"/> <button label="Administrar el Punto de Teleporte..." name="manage_telehub_btn" width="210"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_region_general_layout.xml b/indra/newview/skins/default/xui/es/panel_region_general_layout.xml index 89ad5549c8..9ff88e2f79 100644 --- a/indra/newview/skins/default/xui/es/panel_region_general_layout.xml +++ b/indra/newview/skins/default/xui/es/panel_region_general_layout.xml @@ -36,8 +36,8 @@ <combo_box.item label="General" name="PG"/> </combo_box> <button label="Aplicar" name="apply_btn"/> - <button label="Teleportar a su Base a un usuario..." name="kick_btn"/> - <button label="Teleportar a sus Bases a todos los usuarios..." name="kick_all_btn"/> + <button label="Teleportar a su Base a un Residente..." name="kick_btn"/> + <button label="Teleportar a sus Bases a todos los Residentes..." name="kick_all_btn"/> <button label="Enviar un mensaje a toda la región..." name="im_btn"/> <button label="Administrar el Punto de Teleporte..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_region_texture.xml b/indra/newview/skins/default/xui/es/panel_region_texture.xml index 83c22d20eb..047e8f2f30 100644 --- a/indra/newview/skins/default/xui/es/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/es/panel_region_texture.xml @@ -25,16 +25,16 @@ Rangos de la elevación de la textura </text> <text name="height_text_lbl6"> - Suroeste + Noroeste </text> <text name="height_text_lbl7"> - Noroeste + Noreste </text> <text name="height_text_lbl8"> - Sureste + Suroeste </text> <text name="height_text_lbl9"> - Noreste + Sureste </text> <spinner label="Baja" name="height_start_spin_0"/> <spinner label="Baja" name="height_start_spin_1"/> diff --git a/indra/newview/skins/default/xui/es/panel_status_bar.xml b/indra/newview/skins/default/xui/es/panel_status_bar.xml index d4404fd9b5..1afa68106e 100644 --- a/indra/newview/skins/default/xui/es/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/es/panel_status_bar.xml @@ -22,7 +22,7 @@ [AMT] L$ </panel.string> <button label="" label_selected="" name="buycurrency" tool_tip="Mi saldo"/> - <button label="Comprar L$" name="buyL" tool_tip="Pulsa para comprar más L$"/> + <button label="Comprar" name="buyL" tool_tip="Pulsa para comprar más L$"/> <text name="TimeText" tool_tip="Hora actual (Pacífico)"> 24:00 AM PST </text> diff --git a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml index 0cd3b40ca6..923201e4f3 100644 --- a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml @@ -38,16 +38,41 @@ </panel.string> <text name="title" value="Perfil del objeto"/> <text name="where" value="(en el mundo)"/> - <panel label=""> + <panel label="" name="properties_panel"> + <text name="Name:"> + Nombre: + </text> + <text name="Description:"> + Descripción: + </text> <text name="CreatorNameLabel"> Creador: </text> <text name="Creator Name"> Erica Linden </text> + <text name="Owner:"> + Propietario: + </text> + <text name="Owner Name"> + Erica Linden + </text> <text name="Group_label"> Grupo: </text> + <button name="button set group" tool_tip="Elige un grupo con el que compartir los permisos de este objeto"/> + <name_box initial_value="Cargando..." name="Group Name Proxy"/> + <button label="Transferir" label_selected="Transferir" name="button deed" tool_tip="La transferencia entrega este objeto con los permisos del próximo propietario. Los objetos compartidos por el grupo pueden ser transferidos por un oficial del grupo."/> + <text name="label click action"> + Pulsa para: + </text> + <combo_box name="clickaction"> + <combo_box.item label="Tocarlo (por defecto)" name="Touch/grab(default)"/> + <combo_box.item label="Sentarme en el objeto" name="Sitonobject"/> + <combo_box.item label="Comprar el objeto" name="Buyobject"/> + <combo_box.item label="Pagar el objeto" name="Payobject"/> + <combo_box.item label="Abrir" name="Open"/> + </combo_box> <panel name="perms_inv"> <text name="perm_modify"> Puedes modificar este objeto @@ -55,20 +80,27 @@ <text name="Anyone can:"> Cualquiera: </text> - <check_box label="Copiarlo" name="checkbox allow everyone copy"/> - <check_box label="Moverlo" name="checkbox allow everyone move"/> + <check_box label="Copiar" name="checkbox allow everyone copy"/> + <check_box label="Mover" name="checkbox allow everyone move"/> <text name="GroupLabel"> Grupo: </text> - <check_box label="Compartir" name="checkbox share with group" tool_tip="Permite que todos los miembros del grupo compartan tus permisos de modificación en este objeto. Debes transferirlo para activar las restricciones según los roles."/> + <check_box label="Compartir" name="checkbox share with group" tool_tip="Permite que todos los miembros del grupo compartan tus permisos de modificación de este objeto. Debes transferirlo para activar las restricciones según los roles."/> <text name="NextOwnerLabel"> Próximo propietario: </text> - <check_box label="Modificarlo" name="checkbox next owner can modify"/> - <check_box label="Copiarlo" name="checkbox next owner can copy"/> - <check_box label="Transferirlo" name="checkbox next owner can transfer" tool_tip="El próximo propietario puede dar o revender este objeto"/> + <check_box label="Modificar" name="checkbox next owner can modify"/> + <check_box label="Copiar" name="checkbox next owner can copy"/> + <check_box label="Transferir" name="checkbox next owner can transfer" tool_tip="El próximo propietario puede dar o revender este objeto"/> </panel> <check_box label="En venta" name="checkbox for sale"/> + <combo_box name="sale type"> + <combo_box.item label="Copiar" name="Copy"/> + <combo_box.item label="Contenidos" name="Contents"/> + <combo_box.item label="Original" name="Original"/> + </combo_box> + <spinner label="Precio: L$" name="Edit Cost"/> + <check_box label="Mostrar en la búsqueda" name="search_check" tool_tip="Permitir que la gente vea este objeto en los resultados de la búsqueda"/> <text name="B:"> B: </text> @@ -92,5 +124,6 @@ <button label="Abrir" name="open_btn"/> <button label="Pagar" name="pay_btn"/> <button label="Comprar" name="buy_btn"/> + <button label="Detalles" name="details_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index 619094bbfa..6aca1439aa 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -164,6 +164,7 @@ Pulsa para ejecutar el comando secondlife:// </string> <string name="CurrentURL" value="URL actual: [CurrentURL]"/> + <string name="TooltipPrice" value="[PRICE] L$"/> <string name="SLurlLabelTeleport"> Teleportarse a </string> @@ -737,6 +738,9 @@ <string name="invalid"> inválido/a </string> + <string name="NewWearable"> + Nuevo [WEARABLE_ITEM] + </string> <string name="next"> Siguiente </string> @@ -1435,6 +1439,9 @@ <string name="PanelContentsNewScript"> Script nuevo </string> + <string name="BusyModeResponseDefault"> + El Residente al que has enviado un mensaje ha solicitado que no se le moleste porque está en modo ocupado. Podrá ver tu mensaje más adelante, ya que éste aparecerá en su panel de MI. + </string> <string name="MuteByName"> (por el nombre) </string> diff --git a/indra/newview/skins/default/xui/es/teleport_strings.xml b/indra/newview/skins/default/xui/es/teleport_strings.xml index 0a605277f2..7e7ed6202f 100644 --- a/indra/newview/skins/default/xui/es/teleport_strings.xml +++ b/indra/newview/skins/default/xui/es/teleport_strings.xml @@ -60,6 +60,9 @@ Vuelva a intentarlo en un momento. <message name="completing"> Completando el teleporte. </message> + <message name="completed_from"> + Teleporte realizado desde [T_SLURL] + </message> <message name="resolving"> Especificando el destino. </message> diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml index e370e8d3b8..c8643708da 100644 --- a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml @@ -10,8 +10,8 @@ <menu_item_call label="Chaussettes" name="Socks"/> <menu_item_call label="Veste" name="Jacket"/> <menu_item_call label="Gants" name="Gloves"/> - <menu_item_call label="Sous-vêtements (homme)" name="Self Undershirt"/> - <menu_item_call label="Sous-vêtements (femme)" name="Self Underpants"/> + <menu_item_call label="Débardeur" name="Self Undershirt"/> + <menu_item_call label="Caleçon" name="Self Underpants"/> <menu_item_call label="Tatouage" name="Self Tattoo"/> <menu_item_call label="Alpha" name="Self Alpha"/> <menu_item_call label="Tous les habits" name="All Clothes"/> diff --git a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml index 0e5abdad0a..57b0a768c2 100644 --- a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml @@ -18,8 +18,8 @@ <menu_item_call label="Nouvelle veste" name="New Jacket"/> <menu_item_call label="Nouvelle jupe" name="New Skirt"/> <menu_item_call label="Nouveaux gants" name="New Gloves"/> - <menu_item_call label="Nouveaux sous-vêtements (homme)" name="New Undershirt"/> - <menu_item_call label="Nouveaux sous-vêtements (femme)" name="New Underpants"/> + <menu_item_call label="Nouveau débardeur" name="New Undershirt"/> + <menu_item_call label="Nouveau caleçon" name="New Underpants"/> <menu_item_call label="Nouvel alpha" name="New Alpha"/> <menu_item_call label="Nouveau tatouage" name="New Tattoo"/> </menu> diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml index 5925d28565..ff4a40b1ce 100644 --- a/indra/newview/skins/default/xui/fr/menu_viewer.xml +++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml @@ -396,8 +396,8 @@ <menu_item_call label="Chaussettes" name="Socks"/> <menu_item_call label="Veste" name="Jacket"/> <menu_item_call label="Gants" name="Gloves"/> - <menu_item_call label="Sous-vêtements (homme)" name="Menu Undershirt"/> - <menu_item_call label="Sous-vêtements (femme)" name="Menu Underpants"/> + <menu_item_call label="Débardeur" name="Menu Undershirt"/> + <menu_item_call label="Caleçon" name="Menu Underpants"/> <menu_item_call label="Jupe" name="Skirt"/> <menu_item_call label="Alpha" name="Alpha"/> <menu_item_call label="Tatouage" name="Tattoo"/> diff --git a/indra/newview/skins/default/xui/fr/panel_classified_info.xml b/indra/newview/skins/default/xui/fr/panel_classified_info.xml index e064846c48..c6aae57c2d 100644 --- a/indra/newview/skins/default/xui/fr/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/fr/panel_classified_info.xml @@ -41,7 +41,7 @@ <text_editor name="click_through_text" tool_tip="Parcourir les données en cliquant" value="[clics]"/> </layout_panel> <layout_panel name="price_layout_panel"> - <text name="auto_renew_label" value="Renouvellement automatique :"/> + <text name="auto_renew_label" value="Renouv. auto :"/> <text name="auto_renew" value="Activé"/> </layout_panel> <layout_panel name="descr_layout_panel"> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_classified.xml b/indra/newview/skins/default/xui/fr/panel_edit_classified.xml index 9ea7ff8122..2e2b848c93 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_classified.xml @@ -38,7 +38,7 @@ </icons_combo_box> <text name="price_for_listing_label" value="Coût de l'annonce :"/> <spinner label="L$" name="price_for_listing" tool_tip="Coût de l'annonce." value="50"/> - <check_box label="Renouvellement automatique toutes les semaines" name="auto_renew"/> + <check_box label="Renouvellement auto toutes les semaines" name="auto_renew"/> </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml index 7c8365fdee..4be12054df 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml @@ -40,7 +40,7 @@ Page d'accueil : </text> <line_editor name="homepage_edit" value="http://"/> - <check_box label="Afficher dans les résultats de recherche" name="show_in_search_checkbox"/> + <check_box label="Afficher avec la recherche" name="show_in_search_checkbox"/> <text name="title_acc_status_text" value="Mon compte :"/> <text_editor name="acc_status_text" value="Résident. Aucune info de paiement enregistrée."/> <text name="my_account_link" value="[[URL] Accéder à ma Page d'accueil]"/> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml index 75b6c044f6..1efc9b00a4 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml @@ -34,10 +34,10 @@ Modification des gants </string> <string name="edit_undershirt_title"> - Modification des sous-vêtements (homme) + Modification du débardeur </string> <string name="edit_underpants_title"> - Modification des sous-vêtements (femme) + Modification du caleçon </string> <string name="edit_alpha_title"> Modification du masque alpha @@ -79,10 +79,10 @@ Gants : </string> <string name="undershirt_desc_text"> - Sous-vêtements (homme) : + Débardeur : </string> <string name="underpants_desc_text"> - Sous-vêtements (femme) : + Caleçon : </string> <string name="alpha_desc_text"> Masque alpha : diff --git a/indra/newview/skins/default/xui/fr/panel_place_profile.xml b/indra/newview/skins/default/xui/fr/panel_place_profile.xml index f2bdb3d745..598e94166e 100644 --- a/indra/newview/skins/default/xui/fr/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/fr/panel_place_profile.xml @@ -18,16 +18,16 @@ <string name="all_residents_text" value="Tous les résidents"/> <string name="group_text" value="Groupe"/> <string name="can_resell"> - Le terrain acheté dans cette région peut être revendu. + Le terrain acheté dans la région peut être revendu. </string> <string name="can_not_resell"> - Le terrain acheté dans cette région ne peut pas être revendu. + Le terrain acheté dans la région ne peut pas être revendu. </string> <string name="can_change"> - Le terrain acheté dans cette région peut être fusionné ou divisé. + Le terrain acheté dans la région peut être fusionné ou divisé. </string> <string name="can_not_change"> - Le terrain acheté dans cette région ne peut pas être fusionné ou divisé. + Le terrain acheté dans la région ne peut être fusionné ou divisé. </string> <string name="server_update_text"> Les informations sur le lieu ne sont pas disponibles sans mise à jour du serveur. diff --git a/indra/newview/skins/default/xui/fr/panel_profile.xml b/indra/newview/skins/default/xui/fr/panel_profile.xml index 8cb4641937..f801aee312 100644 --- a/indra/newview/skins/default/xui/fr/panel_profile.xml +++ b/indra/newview/skins/default/xui/fr/panel_profile.xml @@ -42,8 +42,8 @@ </layout_panel> <layout_panel name="profile_buttons_panel"> <button label="Devenir amis" name="add_friend" tool_tip="Proposer à un résident de devenir votre ami"/> - <button label="IM" name="im" tool_tip="Ouvrir une session IM" width="30"/> - <button label="Appeler" name="call" tool_tip="Appeler ce résident" width="60"/> + <button label="IM" name="im" tool_tip="Ouvrir une session IM"/> + <button label="Appeler" name="call" tool_tip="Appeler ce résident"/> <button label="Carte" name="show_on_map_btn" tool_tip="Afficher le résident sur la carte"/> <button label="Téléporter" name="teleport" tool_tip="Proposez une téléportation"/> <button label="▼" name="overflow_btn" tool_tip="Payer ou partager l'inventaire avec le résident"/> diff --git a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml index cd1d0c4886..a30306d116 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml @@ -70,13 +70,12 @@ toutes les parcelles du domaine. Le terrain acheté dans cette région peut être revendu. </string> <string name="can_not_resell"> - Le terrain acheté dans cette région ne peut pas être revendu. + Le terrain acheté dans la région ne peut pas être revendu. </string> <string name="can_change"> - Le terrain acheté dans cette région peut être fusionné ou divisé. + Le terrain acheté dans la région peut être fusionné ou divisé. </string> <string name="can_not_change"> - Le terrain acheté dans cette région ne peut pas être fusionné ou -divisé. + Le terrain acheté dans la région ne peut être fusionné ou divisé. </string> </panel> diff --git a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml index cc99b1a07c..c8e76118a1 100644 --- a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml @@ -100,7 +100,7 @@ <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Prix : L$" name="Edit Cost"/> - <check_box label="Afficher dans les résultats de recherche" name="search_check" tool_tip="Permettre aux autres résidents de voir cet objet dans les résultats de recherche"/> + <check_box label="Afficher avec la recherche" name="search_check" tool_tip="Permettre aux autres résidents de voir cet objet dans les résultats de recherche"/> <text name="B:"> B : </text> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index f759f5f41a..32aff9dd79 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -828,7 +828,7 @@ Appuyez sur ESC pour quitter la vue subjective </string> <string name="InventoryNoMatchingItems"> - Aucun objet correspondant dans l'inventaire. Essayer la [secondlife:///app/search/groups "Recherche"]. + Objet inexistant dans l'inventaire. Voir [secondlife:///app/search/groups "Rechercher"]. </string> <string name="FavoritesNoMatchingItems"> Faites glisser un repère ici pour l'ajouter à vos Favoris. @@ -2272,7 +2272,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE]. Brillant </string> <string name="Glove Fingers"> - Doigts avec gants + Gants avec doigts </string> <string name="Glove Length"> Longueur des gants @@ -3034,7 +3034,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE]. Cheveux lisses </string> <string name="Socks Length"> - Longueur des chaussettes + Longueur </string> <string name="Soulpatch"> Barbichette diff --git a/indra/newview/skins/default/xui/it/floater_about.xml b/indra/newview/skins/default/xui/it/floater_about.xml index a2fcaa63f6..767f727d40 100644 --- a/indra/newview/skins/default/xui/it/floater_about.xml +++ b/indra/newview/skins/default/xui/it/floater_about.xml @@ -5,7 +5,7 @@ [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]] </floater.string> <floater.string name="AboutCompiler"> - Fatto con [COMPILER] versione [COMPILER_VERSION] + Generato con [COMPILER] versione [COMPILER_VERSION] </floater.string> <floater.string name="AboutPosition"> Tu sei in [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] a [REGION] ospitata da [HOSTNAME] ([HOSTIP]) @@ -15,12 +15,12 @@ <floater.string name="AboutSystem"> CPU: [CPU] Memoria: [MEMORY_MB] MB -Versione Sistema Operativo: [OS_VERSION] -Venditore Scheda Grafica: [GRAPHICS_CARD_VENDOR] -Scheda Grafica: [GRAPHICS_CARD] +Versione sistema operativo: [OS_VERSION] +Venditore scheda grafica: [GRAPHICS_CARD_VENDOR] +Scheda grafica: [GRAPHICS_CARD] </floater.string> <floater.string name="AboutDriver"> - Versione Driver Scheda Grafica: [GRAPHICS_DRIVER_VERSION] + Versione driver Windows per grafica: [GRAPHICS_DRIVER_VERSION] </floater.string> <floater.string name="AboutLibs"> Versione OpenGL: [OPENGL_VERSION] @@ -35,7 +35,7 @@ Versione Vivox: [VIVOX_VERSION] (nessuno) </floater.string> <floater.string name="AboutTraffic"> - Pacchetti Perduti: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) + Pacchetti perduti: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) Informazioni </floater.string> <tab_container name="about_tab"> <panel label="Informazioni" name="support_panel"> diff --git a/indra/newview/skins/default/xui/it/floater_about_land.xml b/indra/newview/skins/default/xui/it/floater_about_land.xml index 4c82475a6f..2323220872 100644 --- a/indra/newview/skins/default/xui/it/floater_about_land.xml +++ b/indra/newview/skins/default/xui/it/floater_about_land.xml @@ -82,9 +82,9 @@ Vai al menu Mondo > Informazioni sul terreno oppure seleziona un altro appezz Gruppo: </text> <text left="119" name="GroupText" width="227"/> - <button label="Imposta..." label_selected="Imposta..." name="Set..."/> + <button label="Imposta" name="Set..."/> <check_box label="Permetti cessione al gruppo" left="119" name="check deed" tool_tip="Un funzionario del gruppo può cedere questa terra al gruppo stesso cosicchè essa sarà supportata dalle terre del gruppo."/> - <button label="Cedi..." label_selected="Cedi..." name="Deed..." tool_tip="Puoi solo offrire terra se sei un funzionario del gruppo selezionato."/> + <button label="Cedi" name="Deed..." tool_tip="Puoi solo offrire terra se sei un funzionario del gruppo selezionato."/> <check_box label="Il proprietario fa un contributo con la cessione" left="119" name="check contrib" tool_tip="Quando la terra è ceduta al gruppo, il proprietario precedente contribuisce con abbastanza allocazione di terra per supportarlo."/> <text name="For Sale:"> In vendita: @@ -126,11 +126,11 @@ Vai al menu Mondo > Informazioni sul terreno oppure seleziona un altro appezz 0 </text> <button label="Acquista il terreno..." label_selected="Acquista il terreno..." left="130" name="Buy Land..." width="125"/> - <button label="Acquista per il gruppo..." label_selected="Acquista per il gruppo..." name="Buy For Group..."/> + <button label="Acquista per il gruppo" name="Buy For Group..."/> <button label="Compra pass..." label_selected="Compra pass..." left="130" name="Buy Pass..." tool_tip="Un pass ti da un accesso temporaneo in questo territorio." width="125"/> - <button label="Abbandona la terra..." label_selected="Abbandona la terra..." name="Abandon Land..."/> - <button label="Reclama la terra..." label_selected="Reclama la terra..." name="Reclaim Land..."/> - <button label="Vendita Linden..." label_selected="Vendita Linden..." name="Linden Sale..." tool_tip="La terra deve essere posseduta, con contenuto impostato, e non già messa in asta."/> + <button label="Abbandona la terra" name="Abandon Land..."/> + <button label="Reclama la terra" name="Reclaim Land..."/> + <button label="Vendita Linden" name="Linden Sale..." tool_tip="La terra deve essere posseduta, con contenuto impostato, e non già messa in asta."/> </panel> <panel label="COVENANT" name="land_covenant_panel"> <panel.string name="can_resell"> @@ -231,7 +231,7 @@ o suddivisa. [COUNT] </text> <button label="Mostra" label_selected="Mostra" name="ShowOwner" right="-135" width="60"/> - <button label="Restituisci..." label_selected="Restituisci..." name="ReturnOwner..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/> + <button label="Restituisci" name="ReturnOwner..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/> <text left="14" name="Set to group:" width="180"> Imposta al gruppo: </text> @@ -239,7 +239,7 @@ o suddivisa. [COUNT] </text> <button label="Mostra" label_selected="Mostra" name="ShowGroup" right="-135" width="60"/> - <button label="Restituisci..." label_selected="Restituisci..." name="ReturnGroup..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/> + <button label="Restituisci" name="ReturnGroup..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/> <text left="14" name="Owned by others:" width="180"> Posseduti da altri: </text> @@ -247,7 +247,7 @@ o suddivisa. [COUNT] </text> <button label="Mostra" label_selected="Mostra" name="ShowOther" right="-135" width="60"/> - <button label="Restituisci..." label_selected="Restituisci..." name="ReturnOther..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/> + <button label="Restituisci" name="ReturnOther..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/> <text left="14" name="Selected / sat upon:" width="193"> Selezionati / sui quali sei sopra: </text> diff --git a/indra/newview/skins/default/xui/it/floater_animation_preview.xml b/indra/newview/skins/default/xui/it/floater_animation_preview.xml index 74a994825d..f483b19624 100644 --- a/indra/newview/skins/default/xui/it/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/it/floater_animation_preview.xml @@ -23,22 +23,22 @@ La lunghezza massima è [MAX_LENGTH] secondi. Impossibile leggere la definizione del vincolo. </floater.string> <floater.string name="E_ST_NO_FILE"> - Non può aprire il file BVH. + Impossibile aprire il file BVH. </floater.string> <floater.string name="E_ST_NO_HIER"> - HIERARCHY header non valido. + Intestazione HIERARCHY non valida. </floater.string> <floater.string name="E_ST_NO_JOINT"> - Impossibile trovare la RADICE o UNIONE. ???????????? + Impossibile trovare la ROOT o JOINT. </floater.string> <floater.string name="E_ST_NO_NAME"> - Impossibile trovare il nome MISTO. ?????? + Impossibile trovare il nome JOINT. </floater.string> <floater.string name="E_ST_NO_OFFSET"> Impossibile trovare OFFSET. </floater.string> <floater.string name="E_ST_NO_CHANNELS"> - Impossibile trovare CHANNELS. ????? + Impossibile trovare CHANNELS. </floater.string> <floater.string name="E_ST_NO_ROTATION"> Impossibile ottenere un ordine di rotazione. @@ -47,22 +47,22 @@ La lunghezza massima è [MAX_LENGTH] secondi. Rotazione dell'asse non disponibile. </floater.string> <floater.string name="E_ST_NO_MOTION"> - Impossibile trovare il GESTO. + Impossibile trovare MOTION. </floater.string> <floater.string name="E_ST_NO_FRAMES"> - Impossibile ottenere il numero dei frames. + Impossibile ottenere il numero dei frame. </floater.string> <floater.string name="E_ST_NO_FRAME_TIME"> Impossibile ottenere il tempo del frame. </floater.string> <floater.string name="E_ST_NO_POS"> - Impossibile ottenre una posizione dei valori. + Impossibile ottenere i valori della posizione. </floater.string> <floater.string name="E_ST_NO_ROT"> Impossibile ottenere i valori di rotazione. </floater.string> <floater.string name="E_ST_NO_XLT_FILE"> - Impossibile aprire la traduzione del file. + Impossibile aprire il file di traduzione. </floater.string> <floater.string name="E_ST_NO_XLT_HEADER"> Impossibile leggere l'intestazione della traduzione. @@ -71,31 +71,31 @@ La lunghezza massima è [MAX_LENGTH] secondi. Impossibile leggere i nomi della traduzione. </floater.string> <floater.string name="E_ST_NO_XLT_IGNORE"> - Impossibile leggere la traduzione ignora il valore. ????? + Impossibile leggere la traduzione, ignora il valore. </floater.string> <floater.string name="E_ST_NO_XLT_RELATIVE"> Impossibile leggere la traduzione del valore relativo. </floater.string> <floater.string name="E_ST_NO_XLT_OUTNAME"> - Cannot read translation outname value. + Valore non trovato. </floater.string> <floater.string name="E_ST_NO_XLT_MATRIX"> Impossibile leggere la matrice di traduzione. </floater.string> <floater.string name="E_ST_NO_XLT_MERGECHILD"> - Impossibile unire il nome del bambino. + Impossibile trovare il nome mergechild. </floater.string> <floater.string name="E_ST_NO_XLT_MERGEPARENT"> - Impossibile unire il nome del genitore. + Impossibile ottenere il nome mergeparent. </floater.string> <floater.string name="E_ST_NO_XLT_PRIORITY"> - Impossibile ottenre il valore di priorità. + Impossibile ottenere il valore di priorità. </floater.string> <floater.string name="E_ST_NO_XLT_LOOP"> - Impossibile ottenere il valore di loop. + Impossibile ottenere il valore di ripetizione. </floater.string> <floater.string name="E_ST_NO_XLT_EASEIN"> - Impossibile essere in agio nei valori. ????????? + Impossibile ottenere i valori easeIn. </floater.string> <floater.string name="E_ST_NO_XLT_EASEOUT"> Cannot get ease Out values. @@ -112,32 +112,32 @@ La lunghezza massima è [MAX_LENGTH] secondi. <text name="description_label"> Descrizione: </text> - <spinner label="Priorità" label_width="72" name="priority" tool_tip="Controlla quali altre animazioni possono prevalere su questa animazione" width="110"/> - <check_box label="Ciclica" name="loop_check" tool_tip="Rendi questa animazione in loop"/> - <spinner label="In(%)" name="loop_in_point" tool_tip="Imposta il momento nel quale l'animazione inizia il loop"/> - <spinner label="Out(%)" name="loop_out_point" tool_tip="Imposta il momento nel quale l'animazione ferma il loop"/> + <spinner label="Priorità" label_width="72" name="priority" tool_tip="Definisce quali altre animazioni possono essere sostituite da questa animazione" width="110"/> + <check_box label="Ciclica" name="loop_check" tool_tip="Riproduce questa animazione in ripetizione"/> + <spinner label="In(%)" name="loop_in_point" tool_tip="Imposta il punto sul quale ritorna l'animazione"/> + <spinner label="Out(%)" name="loop_out_point" tool_tip="Imposta il punto sul quale termina l'animazione"/> <text name="hand_label"> Postura della mano </text> - <combo_box left_delta="100" name="hand_pose_combo" tool_tip="Controlla ciò che fanno le mani durante l'animazione" width="184"> + <combo_box left_delta="100" name="hand_pose_combo" tool_tip="Definisce ciò che fanno le mani durante l'animazione" width="184"> <combo_box.item label="Stendi" name="Spread"/> <combo_box.item label="Rilassato" name="Relaxed"/> - <combo_box.item label="indica entrambi" name="PointBoth"/> + <combo_box.item label="Indica entrambi" name="PointBoth"/> <combo_box.item label="Pugno" name="Fist"/> <combo_box.item label="Sinistra rilassata" name="RelaxedLeft"/> <combo_box.item label="Indica sinistra" name="PointLeft"/> - <combo_box.item label="Pugno sinistra" name="FistLeft"/> + <combo_box.item label="Pugno con la sinistra" name="FistLeft"/> <combo_box.item label="Destra rilassata" name="RelaxedRight"/> <combo_box.item label="Indica destra" name="PointRight"/> - <combo_box.item label="Pugno Destro" name="FistRight"/> - <combo_box.item label="Saluta Destra" name="SaluteRight"/> - <combo_box.item label="Scrivendo" name="Typing"/> - <combo_box.item label="Pace Destra" name="PeaceRight"/> + <combo_box.item label="Pugno destro" name="FistRight"/> + <combo_box.item label="Saluta a destra" name="SaluteRight"/> + <combo_box.item label="Battitura" name="Typing"/> + <combo_box.item label="Pace a destra" name="PeaceRight"/> </combo_box> <text name="emote_label"> Espressione </text> - <combo_box left_delta="100" name="emote_combo" tool_tip="Controlla ciò che fà il viso durante l'animazione" width="184"> + <combo_box left_delta="100" name="emote_combo" tool_tip="Definisce ciò che fa il viso durante l'animazione" width="184"> <combo_box.item label="(Nessuno)" name="[None]"/> <combo_box.item label="Aaaaah" name="Aaaaah"/> <combo_box.item label="Spavento" name="Afraid"/> @@ -147,7 +147,7 @@ La lunghezza massima è [MAX_LENGTH] secondi. <combo_box.item label="Pianto" name="Cry"/> <combo_box.item label="Disdegno" name="Disdain"/> <combo_box.item label="Imbarazzato" name="Embarrassed"/> - <combo_box.item label="Accigliato ?????" name="Frown"/> + <combo_box.item label="Accigliato" name="Frown"/> <combo_box.item label="Bacio" name="Kiss"/> <combo_box.item label="Risata" name="Laugh"/> <combo_box.item label="Plllppt" name="Plllppt"/> @@ -165,13 +165,13 @@ La lunghezza massima è [MAX_LENGTH] secondi. <combo_box left_delta="154" name="preview_base_anim" tool_tip="Da usarsi per controllare il comportamento dell'animazione mentre l'avatar svolge azioni abituali." width="130"> <combo_box.item label="In piedi" name="Standing"/> <combo_box.item label="Camminando" name="Walking"/> - <combo_box.item label="Sedendo" name="Sitting"/> - <combo_box.item label="Volando" name="Flying"/> + <combo_box.item label="Seduto" name="Sitting"/> + <combo_box.item label="Volo" name="Flying"/> </combo_box> - <spinner label="Avvio lento (sec)" label_width="125" name="ease_in_time" tool_tip="Tempo (in seconds) oltre il quale le animazioni si miscelano" width="192"/> - <spinner bottom_delta="-20" label="Arresto lento (sec)" label_width="125" left="10" name="ease_out_time" tool_tip="Tempo (in seconds) oltre il quale le animazioni terminano di miscelarsi" width="192"/> + <spinner label="Avvio lento (sec)" label_width="125" name="ease_in_time" tool_tip="Durata (in secondi) della fusione in entrata delle animazioni" width="192"/> + <spinner bottom_delta="-20" label="Arresto lento (sec)" label_width="125" left="10" name="ease_out_time" tool_tip="Durata (in secondi) della fusione in uscita delle animazioni" width="192"/> <button bottom_delta="-32" name="play_btn" tool_tip="Riproduci la tua animazione"/> - <button name="pause_btn" tool_tip="La tua animazione in Pause"/> + <button name="pause_btn" tool_tip="Metti in pausa la tua animazione"/> <button label="" name="stop_btn" tool_tip="Ferma la riproduzione dell'animazione"/> <text name="bad_animation_text"> Impossibile leggere il file dell'animazione. diff --git a/indra/newview/skins/default/xui/it/floater_buy_contents.xml b/indra/newview/skins/default/xui/it/floater_buy_contents.xml index e84d396138..a54751e629 100644 --- a/indra/newview/skins/default/xui/it/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/it/floater_buy_contents.xml @@ -8,8 +8,7 @@ </text> <button label="Annulla" label_selected="Annulla" name="cancel_btn" width="73"/> <button label="Compra" label_selected="Compra" left_delta="-77" name="buy_btn" width="73"/> - <check_box bottom="-234" label="Indossa adesso -l'indumento" left_delta="-125" name="wear_check"/> + <check_box bottom="-234" label="Indossa adesso l'indumento" left_delta="-125" name="wear_check"/> <string name="no_copy_text"> (non copiabile) </string> diff --git a/indra/newview/skins/default/xui/it/floater_buy_land.xml b/indra/newview/skins/default/xui/it/floater_buy_land.xml index 9fa5bd5570..e9c5334746 100644 --- a/indra/newview/skins/default/xui/it/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/it/floater_buy_land.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="buy land" title="COMPRA LA TERRA"> +<floater name="buy land" title="ACQUISTA TERRENO"> <text name="region_name_label"> Regione: </text> @@ -58,8 +58,8 @@ </text> <text name="info_price"> L$ 1500 -(L$ 1.1/m²) -sold with objects +( 1.1 L$/m²) +venduto con oggetti </text> <text name="info_action"> Comprando questa terra: @@ -75,16 +75,16 @@ sold with objects Solo i membri premium possono possedere terra. </text> <combo_box name="account_level"> - <combo_box.item label="US$9.95/mese, addebitato mensilmente" name="US$9.95/month,billedmonthly"/> - <combo_box.item label="US$7.50/mese, addebitato trimestralmente" name="US$7.50/month,billedquarterly"/> - <combo_box.item label="US$6.00/mese, addebitato annualmente" name="US$6.00/month,billedannually"/> + <combo_box.item label="US$ 9.95 al mese, addebitato mensilmente" name="US$9.95/month,billedmonthly"/> + <combo_box.item label="US$ 7.50 al mese, addebitato trimestralmente" name="US$7.50/month,billedquarterly"/> + <combo_box.item label="US$ 6.00 al mese, addebitato annualmente" name="US$6.00/month,billedannually"/> </combo_box> <text name="land_use_action"> Aumenta il tasso di pagamento mensile delle tasse d'uso della terra a 40 US$/mese. </text> <text name="land_use_reason"> Tu occupi 1309 m² di terreno. -This parcel is 512 m² di terreno. +Questo lotto consiste in 512 m² di terreno. </text> <text name="purchase_action"> Paga il residente Joe 4000 L$ per la terra @@ -99,7 +99,7 @@ This parcel is 512 m² di terreno. 1000 </line_editor> <text name="currency_est"> - per circa. [LOCAL_AMOUNT] + per circa [LOCAL_AMOUNT] </text> <text name="currency_balance"> Possiedi 2.100 L$. @@ -181,26 +181,26 @@ Prova a selezionare un'area più piccola. Il tuo account può possedere terra. </string> <string name="land_holdings"> - Tu occupi [BUYER] m² di terreno. + Sei proprietario di [BUYER] m² di terreno. </string> <string name="pay_to_for_land"> Paga [AMOUNT] L$ a [SELLER] per questa terra </string> <string name="buy_for_US"> - Compra L$ [AMOUNT] per circa. [LOCAL_AMOUNT], + Acquista L$ [AMOUNT] per circa [LOCAL_AMOUNT], </string> <string name="parcel_meters"> - Questo parcel è [AMOUNT] m² + Questo lotto è di [AMOUNT] m² </string> <string name="premium_land"> - Questo terreno è premium, e costerà [AMOUNT] m². + Questo terreno è premium, e costerà come [AMOUNT] m². </string> <string name="discounted_land"> - Questo terreno è scontato, e costerà [AMOUNT] m². + Questo terreno è scontato, e costerà come [AMOUNT] m². </string> <string name="meters_supports_object"> [AMOUNT] m² -mantiene [AMOUNT2] oggetti +consente [AMOUNT2] oggetti </string> <string name="sold_with_objects"> venduta con oggetti @@ -210,7 +210,7 @@ mantiene [AMOUNT2] oggetti </string> <string name="info_price_string"> L$ [PRICE] -(L$ [PREZZO_PER_QM]/m²) +([PREZZO_PER_MQ] L$/m²) [VENDUTO_CON_OGGETTI] </string> <string name="insufficient_land_credits"> diff --git a/indra/newview/skins/default/xui/it/floater_device_settings.xml b/indra/newview/skins/default/xui/it/floater_device_settings.xml index 2410a16882..97aa64086d 100644 --- a/indra/newview/skins/default/xui/it/floater_device_settings.xml +++ b/indra/newview/skins/default/xui/it/floater_device_settings.xml @@ -1,2 +1,2 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_device_settings" title="OPZIONI PER IL DISPOSITIVO VOICE CHAT"/> +<floater name="floater_device_settings" title="OPZIONI CHAT VOCALE"/> diff --git a/indra/newview/skins/default/xui/it/floater_hardware_settings.xml b/indra/newview/skins/default/xui/it/floater_hardware_settings.xml index 08326b1da3..384e7c1272 100644 --- a/indra/newview/skins/default/xui/it/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/it/floater_hardware_settings.xml @@ -22,8 +22,7 @@ Attiva VBO: </text> <check_box initial_value="true" label="Attiva oggetti OpenGL Vertex Buffer" name="vbo" tool_tip="Attivandolo su un hardware moderno aumenta la performance. Ma, su un vecchio hardware, spesso l'implementazione dei VBO è scarsa e potresti avere dei crash quando è attivato."/> - <slider label="Texture Memory (MB):" name="GraphicsCardTextureMemory" tool_tip="Spazio di memoria da ssegnare alle textures. Memoria della scheda video in Defaults. Ridurre questa impostazione potrebbe migliorare il rendimento ma potrebbe anche rendere le textures poco definite."/> - <spinner label="Indice della distanza -della nebbia:" name="fog"/> + <slider label="Memoria texture (MB):" name="GraphicsCardTextureMemory" tool_tip="Spazio di memoria da ssegnare alle textures. Utilizza la memoria della scheda video come impostazione predefinita. La riduzione di questa impostazione potrebbe migliorare il rendimento ma potrebbe anche rendere le texture poco definite."/> + <spinner label="Indice della distanza della nebbia:" name="fog"/> <button label="OK" label_selected="OK" name="OK"/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_inventory.xml b/indra/newview/skins/default/xui/it/floater_inventory.xml index 5049bb3e58..e332891ed2 100644 --- a/indra/newview/skins/default/xui/it/floater_inventory.xml +++ b/indra/newview/skins/default/xui/it/floater_inventory.xml @@ -10,7 +10,7 @@ Inventario ([ITEM_COUNT] Items) [FILTER] </floater.string> <floater.string name="Fetched"> - Raggiunto ?????????? + Completato </floater.string> <panel label="Pannello dell'Inventario" name="Inventory Panel"/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml index aaf7b71656..d3dc4d7eae 100644 --- a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml @@ -56,7 +56,7 @@ </text> <check_box label="Condividi" name="CheckShareWithGroup"/> <text name="NextOwnerLabel" width="230"> - Prossimo Proprietario: + Proprietario successivo: </text> <check_box label="Modifica" name="CheckNextOwnerModify"/> <check_box label="Copiare" left_delta="88" name="CheckNextOwnerCopy"/> diff --git a/indra/newview/skins/default/xui/it/floater_mute_object.xml b/indra/newview/skins/default/xui/it/floater_mute_object.xml index 81cd46ec4d..dd1a2b67d7 100644 --- a/indra/newview/skins/default/xui/it/floater_mute_object.xml +++ b/indra/newview/skins/default/xui/it/floater_mute_object.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="mute by name" title="BLOCCA OGGETTO PER NOME"> +<floater name="mute by name" title="BLOCCA OGGETTO IN BASE AL NOME"> <text name="message"> Blocca un oggetto: </text> diff --git a/indra/newview/skins/default/xui/it/floater_outgoing_call.xml b/indra/newview/skins/default/xui/it/floater_outgoing_call.xml index b4536e31cc..f179364080 100644 --- a/indra/newview/skins/default/xui/it/floater_outgoing_call.xml +++ b/indra/newview/skins/default/xui/it/floater_outgoing_call.xml @@ -1,28 +1,28 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="outgoing call" title="CHIAMANDO"> +<floater name="outgoing call" title="CHIAMATA IN CORSO"> <floater.string name="localchat"> - Voice Chat nei dintorni + Chat vocale nei dintorni </floater.string> <floater.string name="anonymous"> anonimo </floater.string> <floater.string name="VoiceInviteP2P"> - stà chiamando. + sta chiamando. </floater.string> <floater.string name="VoiceInviteAdHoc"> - ha aderito ad una chiamata Voice Chat con una chat in conferenza. + ha aderito ad una chiamata in chat vocale in conferenza. </floater.string> <text name="connecting"> - Connettendo a [CALLEE_NAME] + Collegamento in corso a [CALLEE_NAME] </text> <text name="calling"> - Chiamando [CALLEE_NAME] + Chiamata a [CALLEE_NAME] </text> <text name="noanswer"> - Nessuna risposta. Per favore riprova più tardi. + Nessuna risposta. Riprova più tardi. </text> <text name="leaving"> - Abbandonando [CURRENT_CHAT]. + Chiusura chat [CURRENT_CHAT]. </text> - <button label="Cancella" label_selected="Cancella" name="Cancel"/> + <button label="Annulla" label_selected="Annulla" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_pay.xml b/indra/newview/skins/default/xui/it/floater_pay.xml index 59004bbbd7..c1ea8ec9c8 100644 --- a/indra/newview/skins/default/xui/it/floater_pay.xml +++ b/indra/newview/skins/default/xui/it/floater_pay.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> <string name="payee_group"> - Paga Gruppo + Paga gruppo </string> <string name="payee_resident"> - Paga Residente + Paga residente </string> <text left="5" name="payee_label" width="105"> Paga: @@ -18,7 +18,7 @@ <button label="10 L$" label_selected="10 L$" left="118" name="fastpay 10" width="80"/> <button label="20 L$" label_selected="20 L$" left="210" name="fastpay 20"/> <text left="4" name="amount text"> - O, scegli importo: + Oppure, scegli importo: </text> <line_editor left="70" name="amount" width="49"/> <button label="Paga" label_selected="Paga" left="127" name="pay btn"/> diff --git a/indra/newview/skins/default/xui/it/floater_pay_object.xml b/indra/newview/skins/default/xui/it/floater_pay_object.xml index c51a2b7b31..97e04c8bf4 100644 --- a/indra/newview/skins/default/xui/it/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/it/floater_pay_object.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> <string halign="left" name="payee_group" width="100"> - Paga Gruppo + Paga gruppo </string> <string halign="left" name="payee_resident" width="120"> - Pags Residente + Paga residente </string> <icon name="icon_person" tool_tip="Persona"/> <text left="120" name="payee_name"> @@ -22,7 +22,7 @@ <button label="10 L$" label_selected="10 L$" left="125" name="fastpay 10" width="70"/> <button label="20 L$" label_selected="20 L$" left="200" name="fastpay 20" width="70"/> <text halign="left" left="5" name="amount text"> - O, scegli importo: + Oppure, scegli importo: </text> <line_editor left="74" name="amount" width="50"/> <button label="Paga" label_selected="Paga" name="pay btn"/> diff --git a/indra/newview/skins/default/xui/it/floater_report_abuse.xml b/indra/newview/skins/default/xui/it/floater_report_abuse.xml index a1e430b6b2..2692779e7c 100644 --- a/indra/newview/skins/default/xui/it/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/it/floater_report_abuse.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_report_abuse" title="DENUNCIA DI ABUSO"> <floater.string name="Screenshot"> - Fotografia + Immagine </floater.string> - <check_box label="Utilizza questa fotografia" name="screen_check"/> + <check_box label="Utilizza questa immagine" name="screen_check"/> <text name="reporter_title"> Segnalato da: </text> @@ -82,7 +82,7 @@ <text name="abuser_name_title"> Nome di chi ha commesso l'abuso: </text> - <button label="Scegli un residente" label_selected="" name="select_abuser" tool_tip="Scegli il nome di chi ha commesso l'abuso dalla lista"/> + <button label="Scegli" label_selected="" name="select_abuser" tool_tip="Scegli il nome di chi ha commesso l'abuso dalla lista"/> <text name="abuser_name_title2"> Luogo dell'abuso: </text> @@ -93,10 +93,10 @@ Dettagli: </text> <text name="bug_aviso"> - Specifica data, luogo, natura dell'abuso, testo rilevante di chat/IM, e se possibile indica l'oggetto. + Fornisci informazioni specifiche il più possibile </text> <text name="incomplete_title"> - * Nota: segnalazioni incomplete non saranno esaminate + * le segnalazioni incomplete non saranno esaminate </text> <button label="Segnala abuso" label_selected="Segnala abuso" name="send_btn"/> <button label="Annulla" label_selected="Annulla" name="cancel_btn"/> diff --git a/indra/newview/skins/default/xui/it/floater_sell_land.xml b/indra/newview/skins/default/xui/it/floater_sell_land.xml index 2a4fa05b54..0f8d24ebbd 100644 --- a/indra/newview/skins/default/xui/it/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/it/floater_sell_land.xml @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="sell land" title="VENDI LA TERRA"> +<floater name="sell land" title="VENDI TERRENO"> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> <text name="info_parcel_label"> - Parcel: + Lotto: </text> <text left="82" name="info_parcel"> - NOME DEL PARCEL + NOME DEL LOTTO </text> <text name="info_size_label"> - Misura: + Dimensioni: </text> <text left="82" name="info_size"> [AREA] m² </text> <text bottom_delta="-57" height="28" name="info_action"> - Vendere questo parcel: + Per vendere questo lotto: </text> <text name="price_label"> 1. Imposta un prezzo: @@ -30,36 +30,36 @@ 0 </line_editor> <text name="price_per_m"> - (L$[PER_METER] per m²) + ([PER_METER] L$ per m²) </text> <text name="sell_to_label"> - 2. Vendi la terra a: + 2. Vendi il terreno a: </text> <text name="sell_to_text"> - Scegli se vendere a chiunque o ad un specifico compratore. + Scegli se vendere a chiunque o ad un determinato acquirente. </text> <combo_box name="sell_to"> <combo_box.item label="- Seleziona uno -" name="--selectone--"/> <combo_box.item label="Chiunque" name="Anyone"/> - <combo_box.item label="Persona Specifica:" name="Specificuser:"/> + <combo_box.item label="Persona specifica:" name="Specificuser:"/> </combo_box> <button label="Seleziona" name="sell_to_select_agent"/> <text name="sell_objects_label"> 3. Vendi gli oggetti con la terra? </text> <text name="sell_objects_text"> - Gli oggetti trasferibili del proprietaio della Terra cambieranno proprietà. + Gli oggetti trasferibili del proprietario presenti sul lotto cambieranno di proprietà. </text> <radio_group bottom_delta="-58" name="sell_objects"> - <radio_item label="No, mantieni la proprietà sugli oggetti" name="no"/> + <radio_item label="No, mantieni la proprietà degli oggetti" name="no"/> <radio_item label="Si, vendi gli oggetti con la terra" name="yes"/> </radio_group> - <button label="Mostra Oggetti" name="show_objects"/> + <button label="Mostra oggetti" name="show_objects"/> <text name="nag_message_label"> RICORDA: Tutte le vendite sono definitive. </text> - <button label="Imposta Terra in Vendita" name="sell_btn"/> - <button label="Cancella" name="cancel_btn"/> + <button label="Imposta terreno come in vendita" name="sell_btn"/> + <button label="Annulla" name="cancel_btn"/> </panel> </scroll_container> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_stats.xml b/indra/newview/skins/default/xui/it/floater_stats.xml index 7c8e6ba1a1..aed2a03a21 100644 --- a/indra/newview/skins/default/xui/it/floater_stats.xml +++ b/indra/newview/skins/default/xui/it/floater_stats.xml @@ -2,68 +2,68 @@ <floater name="Statistics" title="STATISTICHE"> <scroll_container name="statistics_scroll"> <container_view name="statistics_view"> - <stat_view label="Base" name="basic"> + <stat_view label="Di base" name="basic"> <stat_bar label="FPS" name="fps"/> - <stat_bar label="Larghezza Banda" name="bandwidth"/> - <stat_bar label="Perdita Pacchetti" name="packet_loss"/> + <stat_bar label="Larghezza banda" name="bandwidth"/> + <stat_bar label="Perdita pacchetti" name="packet_loss"/> <stat_bar label="Tempo Ping Sim" name="ping"/> </stat_view> - <stat_view label="Avanzato" name="advanced"> + <stat_view label="Avanzata" name="advanced"> <stat_view label="Render" name="render"> - <stat_bar label="KTris Disegnate" name="ktrisframe"/> - <stat_bar label="KTris Disegnate" name="ktrissec"/> - <stat_bar label="Totale Oggetti" name="objs"/> - <stat_bar label="Nuovi Oggetti" name="newobjs"/> + <stat_bar label="KTris disegnate" name="ktrisframe"/> + <stat_bar label="KTris disegnate" name="ktrissec"/> + <stat_bar label="Totale oggetti" name="objs"/> + <stat_bar label="Nuovi oggetti" name="newobjs"/> </stat_view> <stat_view label="Texture" name="texture"> <stat_bar label="Conteggio" name="numimagesstat"/> - <stat_bar label="Conteggio Grezzo" name="numrawimagesstat"/> + <stat_bar label="Conteggio grezzo" name="numrawimagesstat"/> <stat_bar label="Memoria GL" name="gltexmemstat"/> - <stat_bar label="Memoria Formattata" name="formattedmemstat"/> - <stat_bar label="Memoria Complessiva" name="rawmemstat"/> - <stat_bar label="Memoria Impegnata" name="glboundmemstat"/> + <stat_bar label="Memoria formattata" name="formattedmemstat"/> + <stat_bar label="Memoria complessiva" name="rawmemstat"/> + <stat_bar label="Memoria impegnata" name="glboundmemstat"/> </stat_view> <stat_view label="Rete" name="network"> - <stat_bar label="Pacchetti In Ingresso" name="packetsinstat"/> - <stat_bar label="Pacchetti In Uscita" name="packetsoutstat"/> + <stat_bar label="Pacchetti in ingresso" name="packetsinstat"/> + <stat_bar label="Pacchetti in uscita" name="packetsoutstat"/> <stat_bar label="Oggetti" name="objectkbitstat"/> <stat_bar label="Texture" name="texturekbitstat"/> - <stat_bar label="Risorse Server" name="assetkbitstat"/> + <stat_bar label="Risorse server" name="assetkbitstat"/> <stat_bar label="Layer" name="layerskbitstat"/> - <stat_bar label="Effettivi In Ingresso" name="actualinkbitstat"/> - <stat_bar label="Effettivi in Uscita" name="actualoutkbitstat"/> + <stat_bar label="Effettivi in ingresso" name="actualinkbitstat"/> + <stat_bar label="Effettivi in uscita" name="actualoutkbitstat"/> <stat_bar label="Operazioni pendenti VFS" name="vfspendingoperations"/> </stat_view> </stat_view> <stat_view label="Simulatore" name="sim"> <stat_bar label="Dilatazione temporale" name="simtimedilation"/> <stat_bar label="FPS Sim" name="simfps"/> - <stat_bar label="FPS Motore Fisico" name="simphysicsfps"/> - <stat_view label="Dettagli Motore Fisico" name="physicsdetail"> - <stat_bar label="Oggetti Pinzati" name="physicspinnedtasks"/> + <stat_bar label="FPS motore fisico" name="simphysicsfps"/> + <stat_view label="Dettagli motore fisico" name="physicsdetail"> + <stat_bar label="Oggetti pinzati" name="physicspinnedtasks"/> <stat_bar label="Oggetti a basso LOD" name="physicslodtasks"/> - <stat_bar label="Memoria Allocata" name="physicsmemoryallocated"/> - <stat_bar label="Agenti Aggiornamenti al Sec" name="simagentups"/> - <stat_bar label="Agenti Principali" name="simmainagents"/> - <stat_bar label="Agenti Figli" name="simchildagents"/> + <stat_bar label="Memoria allocata" name="physicsmemoryallocated"/> + <stat_bar label="Aggiornamenti agenti al sec" name="simagentups"/> + <stat_bar label="Avatar principali" name="simmainagents"/> + <stat_bar label="Avatar secondari" name="simchildagents"/> <stat_bar label="Oggetti" name="simobjects"/> - <stat_bar label="Oggetti Attivi" name="simactiveobjects"/> - <stat_bar label="Script Attivi" name="simactivescripts"/> - <stat_bar label="Eventi Script" name="simscripteps"/> - <stat_bar label="Pacchetti In Ingresso" name="siminpps"/> - <stat_bar label="Pacchetti In Uscita" name="simoutpps"/> - <stat_bar label="Download Pendenti" name="simpendingdownloads"/> - <stat_bar label="Upload Pendenti" name="simpendinguploads"/> - <stat_bar label="Numero totale byte non risposti" name="simtotalunackedbytes"/> + <stat_bar label="Oggetti attivi" name="simactiveobjects"/> + <stat_bar label="Script attivi" name="simactivescripts"/> + <stat_bar label="Eventi di script" name="simscripteps"/> + <stat_bar label="Pacchetti in ingresso" name="siminpps"/> + <stat_bar label="Pacchetti in uscita" name="simoutpps"/> + <stat_bar label="Download in attesa" name="simpendingdownloads"/> + <stat_bar label="Caricamenti in attesa" name="simpendinguploads"/> + <stat_bar label="Numero totale byte non confermati (Unacked)" name="simtotalunackedbytes"/> </stat_view> <stat_view label="Tempo (ms)" name="simperf"> - <stat_bar label="Tempo Totale Frame" name="simframemsec"/> - <stat_bar label="Tempo Netto" name="simnetmsec"/> - <stat_bar label="Tempo Motore Fisico" name="simsimphysicsmsec"/> - <stat_bar label="Tempo Simulazione" name="simsimothermsec"/> - <stat_bar label="Tempo Agenti" name="simagentmsec"/> - <stat_bar label="Tempo Immagini" name="simimagesmsec"/> - <stat_bar label="Tempo Script" name="simscriptmsec"/> + <stat_bar label="Tempo totale Frame" name="simframemsec"/> + <stat_bar label="Tempo netto" name="simnetmsec"/> + <stat_bar label="Tempo motore fisico" name="simsimphysicsmsec"/> + <stat_bar label="Tempo simulazione" name="simsimothermsec"/> + <stat_bar label="Tempo avatar" name="simagentmsec"/> + <stat_bar label="Tempo immagini" name="simimagesmsec"/> + <stat_bar label="Tempo script" name="simscriptmsec"/> </stat_view> </stat_view> </container_view> diff --git a/indra/newview/skins/default/xui/it/floater_tos.xml b/indra/newview/skins/default/xui/it/floater_tos.xml index f3f8072f56..bc7f2197d0 100644 --- a/indra/newview/skins/default/xui/it/floater_tos.xml +++ b/indra/newview/skins/default/xui/it/floater_tos.xml @@ -4,7 +4,7 @@ <button label="Annulla" label_selected="Annulla" name="Cancel"/> <check_box label="Accetto i Termini di Servizio" name="agree_chk"/> <text name="tos_heading"> - Per favore leggi attentamente i seguenti Termini di Servizio. Per continuare il log in [SECOND_LIFE], devi accettare le condizioni. + Sei pregato di leggere attentamente i seguenti Termini del servizio. Per continuare l'accesso a [SECOND_LIFE], devi accettare le condizioni. </text> <text_editor name="tos_text"> TOS_TEXT diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml index edb9490914..8e51af0d9f 100644 --- a/indra/newview/skins/default/xui/it/menu_inventory.xml +++ b/indra/newview/skins/default/xui/it/menu_inventory.xml @@ -12,7 +12,7 @@ <menu_item_call label="Nuovo Script" name="New Script"/> <menu_item_call label="Nuova Notecard" name="New Note"/> <menu_item_call label="Nuova Gesture" name="New Gesture"/> - <menu label="Maglietta Intima" name="New Clothes"> + <menu label="Maglietta intima" name="New Clothes"> <menu_item_call label="Nuova Maglietta" name="New Shirt"/> <menu_item_call label="Nuovi Pantaloni" name="New Pants"/> <menu_item_call label="Nuove Scarpe" name="New Shoes"/> @@ -23,46 +23,46 @@ <menu_item_call label="Nuova Canottiera" name="New Undershirt"/> <menu_item_call label="Nuove Mutande" name="New Underpants"/> <menu_item_call label="Nuovo Alfa Mask" name="New Alpha Mask"/> - <menu_item_call label="Nuovo Tatuaggio" name="New Tattoo"/> + <menu_item_call label="Nuovo tatuaggio" name="New Tattoo"/> </menu> - <menu label="Nuove Parti del Corpo" name="New Body Parts"> + <menu label="Nuove parti del corpo" name="New Body Parts"> <menu_item_call label="Nuova Forma del corpo" name="New Shape"/> <menu_item_call label="Nuova Pelle" name="New Skin"/> <menu_item_call label="Nuovi Capelli" name="New Hair"/> <menu_item_call label="Nuovi Occhi" name="New Eyes"/> </menu> - <menu label="Cambia Tipo" name="Change Type"> + <menu label="Cambia tipo" name="Change Type"> <menu_item_call label="Predefinito" name="Default"/> <menu_item_call label="Guanti" name="Gloves"/> <menu_item_call label="Giacca" name="Jacket"/> <menu_item_call label="Pantaloni" name="Pants"/> - <menu_item_call label="Shape" name="Shape"/> + <menu_item_call label="Figura corporea" name="Shape"/> <menu_item_call label="Scarpe" name="Shoes"/> <menu_item_call label="Camicia" name="Shirt"/> <menu_item_call label="Gonna" name="Skirt"/> <menu_item_call label="Slip" name="Underpants"/> - <menu_item_call label="Maglietta Intima" name="Undershirt"/> + <menu_item_call label="Maglietta intima" name="Undershirt"/> </menu> <menu_item_call label="Teletrasportati" name="Landmark Open"/> <menu_item_call label="Apri" name="Animation Open"/> <menu_item_call label="Apri" name="Sound Open"/> <menu_item_call label="Elimina oggetto" name="Purge Item"/> <menu_item_call label="Ripristina oggetto" name="Restore Item"/> - <menu_item_call label="Vai al Link" name="Goto Link"/> + <menu_item_call label="Vai al link" name="Goto Link"/> <menu_item_call label="Apri" name="Open"/> <menu_item_call label="Proprietà" name="Properties"/> <menu_item_call label="Rinomina" name="Rename"/> <menu_item_call label="Copia UUID dell'oggetto" name="Copy Asset UUID"/> <menu_item_call label="Copia" name="Copy"/> <menu_item_call label="Incolla" name="Paste"/> - <menu_item_call label="Incolla come Link" name="Paste As Link"/> + <menu_item_call label="Incolla come link" name="Paste As Link"/> <menu_item_call label="Cancella" name="Delete"/> <menu_item_call label="Togli gli oggetti" name="Take Off Items"/> <menu_item_call label="Aggiungi all'outfit" name="Add To Outfit"/> <menu_item_call label="Sostituisci outfit" name="Replace Outfit"/> <menu_item_call label="Inizia la conferenza chat" name="Conference Chat Folder"/> <menu_item_call label="Esegui" name="Sound Play"/> - <menu_item_call label="Informazioni sul Landmark" name="About Landmark"/> + <menu_item_call label="Informazioni sul punto di riferimento" name="About Landmark"/> <menu_item_call label="Esegui inworld" name="Animation Play"/> <menu_item_call label="Esegui localmente" name="Animation Audition"/> <menu_item_call label="Invia un Instant Message" name="Send Instant Message"/> diff --git a/indra/newview/skins/default/xui/it/menu_inventory_add.xml b/indra/newview/skins/default/xui/it/menu_inventory_add.xml index d33dabc4c3..e458944f79 100644 --- a/indra/newview/skins/default/xui/it/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/it/menu_inventory_add.xml @@ -1,32 +1,32 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="menu_inventory_add"> - <menu label="Carica sul server" name="upload"> + <menu label="Carica nel server" name="upload"> <menu_item_call label="Immagine ([COST]L$)..." name="Upload Image"/> <menu_item_call label="Suono ([COST]L$)..." name="Upload Sound"/> <menu_item_call label="Animazione ([COST]L$)..." name="Upload Animation"/> <menu_item_call label="In blocco ([COST]L$ per file)..." name="Bulk Upload"/> </menu> - <menu_item_call label="Nuova Cartella" name="New Folder"/> - <menu_item_call label="Nuovo Script" name="New Script"/> - <menu_item_call label="Nuova Notecard" name="New Note"/> - <menu_item_call label="Nuova Gesture" name="New Gesture"/> - <menu label="Nuovi Abiti" name="New Clothes"> - <menu_item_call label="Nuova Camicia" name="New Shirt"/> - <menu_item_call label="Nuovi Pantaloni" name="New Pants"/> - <menu_item_call label="Nuove Scarpe" name="New Shoes"/> - <menu_item_call label="Nuove Calze" name="New Socks"/> - <menu_item_call label="Nuova Giacca" name="New Jacket"/> - <menu_item_call label="Nuova Gonna" name="New Skirt"/> - <menu_item_call label="Nuovi Guanti" name="New Gloves"/> - <menu_item_call label="Nuova Maglietta Intima" name="New Undershirt"/> - <menu_item_call label="Nuovi Slip" name="New Underpants"/> - <menu_item_call label="Nuovo Alfa (Trasparenza)" name="New Alpha"/> - <menu_item_call label="Nuovo Tatuaggio" name="New Tattoo"/> + <menu_item_call label="Nuova cartella" name="New Folder"/> + <menu_item_call label="Nuovo script" name="New Script"/> + <menu_item_call label="Nuovo appunto" name="New Note"/> + <menu_item_call label="Nuova gesture" name="New Gesture"/> + <menu label="Maglietta intima" name="New Clothes"> + <menu_item_call label="Nuova camicia" name="New Shirt"/> + <menu_item_call label="Nuovi pantaloni" name="New Pants"/> + <menu_item_call label="Nuove scarpe" name="New Shoes"/> + <menu_item_call label="Nuove calze" name="New Socks"/> + <menu_item_call label="Nuova giacca" name="New Jacket"/> + <menu_item_call label="Nuova gonna" name="New Skirt"/> + <menu_item_call label="Nuovi guanti" name="New Gloves"/> + <menu_item_call label="Nuova maglietta intima" name="New Undershirt"/> + <menu_item_call label="Nuovi slip" name="New Underpants"/> + <menu_item_call label="Nuovo Alfa (trasparenza)" name="New Alpha"/> + <menu_item_call label="Nuovo tatuaggio" name="New Tattoo"/> </menu> - <menu label="Nuove Parti del Corpo" name="New Body Parts"> - <menu_item_call label="Nuova Shape" name="New Shape"/> - <menu_item_call label="Nuova Pelle" name="New Skin"/> - <menu_item_call label="Nuovi Capelli" name="New Hair"/> - <menu_item_call label="Nuovi Occhi" name="New Eyes"/> + <menu label="Nuove parti del corpo" name="New Body Parts"> + <menu_item_call label="Nuova figura corporea" name="New Shape"/> + <menu_item_call label="Nuova pelle" name="New Skin"/> + <menu_item_call label="Nuovi capelli" name="New Hair"/> + <menu_item_call label="Nuovi occhi" name="New Eyes"/> </menu> </menu> diff --git a/indra/newview/skins/default/xui/it/menu_picks.xml b/indra/newview/skins/default/xui/it/menu_picks.xml index e84b321ccf..000d219ed0 100644 --- a/indra/newview/skins/default/xui/it/menu_picks.xml +++ b/indra/newview/skins/default/xui/it/menu_picks.xml @@ -4,5 +4,5 @@ <menu_item_call label="Modifica" name="pick_edit"/> <menu_item_call label="Teleport" name="pick_teleport"/> <menu_item_call label="Mappa" name="pick_map"/> - <menu_item_call label="Cancella" name="pick_delete"/> + <menu_item_call label="Elimina" name="pick_delete"/> </context_menu> diff --git a/indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml index 2c5b8a848c..32d7abc259 100644 --- a/indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml +++ b/indra/newview/skins/default/xui/it/menu_places_gear_landmark.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="menu_ladmark_gear"> <menu_item_call label="Teleport" name="teleport"/> - <menu_item_call label="Maggiori Informazioni" name="more_info"/> - <menu_item_call label="Mostra sulla Mappa" name="show_on_map"/> - <menu_item_call label="Aggiungi Landmark" name="add_landmark"/> - <menu_item_call label="Aggiungi Cartella" name="add_folder"/> + <menu_item_call label="Maggiori informazioni" name="more_info"/> + <menu_item_call label="Mostra sulla mappa" name="show_on_map"/> + <menu_item_call label="Aggiungi Punto di riferimento" name="add_landmark"/> + <menu_item_call label="Aggiungi cartella" name="add_folder"/> <menu_item_call label="Taglia" name="cut"/> - <menu_item_call label="Copia Landmark" name="copy_landmark"/> + <menu_item_call label="Copia punto di riferimento" name="copy_landmark"/> <menu_item_call label="Copia SLurl" name="copy_slurl"/> <menu_item_call label="Incolla" name="paste"/> - <menu_item_call label="Rinomina" name="rename"/> - <menu_item_call label="Cancella" name="delete"/> + <menu_item_call label="Modifica nome" name="rename"/> + <menu_item_call label="Elimina" name="delete"/> <menu_item_call label="Apri tutte le cartelle" name="expand_all"/> <menu_item_call label="Chiudi tutte le cartelle" name="collapse_all"/> - <menu_item_check label="Ordina per Data" name="sort_by_date"/> - <menu_item_call label="Crea Luogo Consigliato" name="create_pick"/> + <menu_item_check label="Ordina in base alla data" name="sort_by_date"/> + <menu_item_call label="Crea Luogo consigliato" name="create_pick"/> </menu> diff --git a/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml index 4a7c9b11c7..b55a786719 100644 --- a/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml +++ b/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml @@ -2,7 +2,7 @@ <panel name="panel_im_control_panel"> <panel name="panel_call_buttons"> <button label="Chiama" name="call_btn"/> - <button label="Abbandona Chiamata" name="end_call_btn"/> - <button label="Voice Controls" name="voice_ctrls_btn"/> + <button label="Abbandona chiamata" name="end_call_btn"/> + <button label="Regolazione voce" name="voice_ctrls_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml index cf833924ae..c79d73b339 100644 --- a/indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml +++ b/indra/newview/skins/default/xui/it/panel_block_list_sidetray.xml @@ -4,7 +4,7 @@ Lista bloccata </text> <scroll_list name="blocked" tool_tip="Lista dei residenti bloccati"/> - <button label="Blocca il Residente..." label_selected="Blocca Residente..." name="Block resident..." tool_tip="Scegli un residente da bloccare"/> + <button label="Blocca il residente..." label_selected="Blocca il residente..." name="Block resident..." tool_tip="Scegli un residente da bloccare"/> <button label="Blocca l'oggetto per nome..." label_selected="Blocca l'oggetto per nome..." name="Block object by name..."/> <button label="Sblocca" label_selected="Sblocca" name="Unblock" tool_tip="Rimuovi dalla lista il residente o l'oggetto bloccato"/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_edit_pick.xml b/indra/newview/skins/default/xui/it/panel_edit_pick.xml index 7f2e82e4ff..c1a9ce7dd2 100644 --- a/indra/newview/skins/default/xui/it/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/it/panel_edit_pick.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Modifica scelta ????" name="panel_edit_pick"> +<panel label="Modifica scelta" name="panel_edit_pick"> <text name="title"> - Modifica scelta ???? + Modifica scelta </text> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> @@ -16,13 +16,13 @@ Luogo: </text> <text name="pick_location"> - caricando... + caricamento... </text> <button label="Imposta come luogo attuale" name="set_to_curr_location_btn"/> </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> <button label="Salva [WHAT]" name="save_changes_btn"/> - <button label="Cancella" name="cancel_btn"/> + <button label="Annulla" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_friends.xml b/indra/newview/skins/default/xui/it/panel_friends.xml index a3a985f5aa..ec9d69e65e 100644 --- a/indra/newview/skins/default/xui/it/panel_friends.xml +++ b/indra/newview/skins/default/xui/it/panel_friends.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="friends"> <string name="Multiple"> - Amici multipli + Più amici </string> <scroll_list name="friend_list" tool_tip="Tieni premuto shift o control mentre clicchi per selezionare più di un amico"> <column name="icon_online_status" tool_tip="Stato Online"/> diff --git a/indra/newview/skins/default/xui/it/panel_group_general.xml b/indra/newview/skins/default/xui/it/panel_group_general.xml index 0ca1ce2064..a1b19b5855 100644 --- a/indra/newview/skins/default/xui/it/panel_group_general.xml +++ b/indra/newview/skins/default/xui/it/panel_group_general.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Generale" name="general_tab"> <panel.string name="help_text"> - La tabella generale contiene informazioni generali su questo gruppo, lista dei membri, preferenze generali del gruppo e opzioni dei membri. + La scheda generale contiene informazioni generali su questo gruppo, lista dei soci, preferenze del gruppo e opzioni dei soci. -Muovi il tuo mouse sopra le opzioni per maggior aiuto. +Muovi il tuo mouse sopra le opzioni per maggiore aiuto. </panel.string> <panel.string name="group_info_unchanged"> Le informazioni generali sul gruppo sono cambiate @@ -15,23 +15,23 @@ Muovi il tuo mouse sopra le opzioni per maggior aiuto. Statuto del gruppo </text_editor> <name_list name="visible_members"> - <name_list.columns label="Membro" name="name"/> + <name_list.columns label="Socio" name="name"/> <name_list.columns label="Titolo" name="title"/> </name_list> <text name="active_title_label"> - Mio Titolo + Il mio titolo </text> - <combo_box name="active_title" tool_tip="Imposta il titolo nella tag del tuo avatar quando questo gruppo è attivo."/> - <check_box label="Ricevi notice dal gruppo" name="receive_notices" tool_tip="Imposta se vuoi ricevere Notice da questo. De-seleziona questa casella se il gruppo ti manda spam."/> - <check_box label="Mostra nel mio Profilo" name="list_groups_in_profile" tool_tip="Imposta se vuoi mostrare questo gruppo nel tuo profilo"/> + <combo_box name="active_title" tool_tip="Imposta il titolo che compare con il nome del tuo avatar quando questo gruppo è attivo."/> + <check_box label="Ricevi avvisi dal gruppo" name="receive_notices" tool_tip="Imposta se vuoi ricevere avvisi da questo gruppo. Deseleziona questa casella se il gruppo ti manda messaggi indesiderati."/> + <check_box label="Mostra nel mio profilo" name="list_groups_in_profile" tool_tip="Imposta se vuoi mostrare questo gruppo nel tuo profilo"/> <panel name="preferences_container"> <check_box label="Iscrizione libera" name="open_enrollement" tool_tip="Imposta se questo gruppo permette ai nuovi membri di aderire senza essere invitati."/> <check_box label="Tassa d'iscrizione" name="check_enrollment_fee" tool_tip="Imposta se richiedere una tassa d'iscrizione per aderire al gruppo"/> - <spinner label="L$" left_delta="136" name="spin_enrollment_fee" tool_tip="I nuovi membri devono pagare questa tassa d'iscrizione quando tassa d'iscrizione è selezionata." width="60"/> + <spinner label="L$" left_delta="136" name="spin_enrollment_fee" tool_tip="I nuovi soci devono pagare questa tassa d'iscrizione quando è selezionata." width="60"/> <combo_box name="group_mature_check" tool_tip="Imposta se le informazioni sul tuo gruppo sono da considerarsi Mature."> <combo_box.item label="Contenuto PG" name="pg"/> <combo_box.item label="Contenuto Mature" name="mature"/> </combo_box> - <check_box initial_value="true" label="Mostra nella ricerca" name="show_in_group_list" tool_tip="Permetti alle persone di vedere questo gruppo nei risultati del Cerca"/> + <check_box initial_value="true" label="Mostra nella ricerca" name="show_in_group_list" tool_tip="Permetti alle persone di vedere questo gruppo nei risultati della ricerca"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml index 26255943ed..a439c3ddb5 100644 --- a/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml @@ -1,33 +1,33 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Informazioni sul gruppo" name="GroupInfo"> <panel.string name="default_needs_apply_text"> - Ci sono variazioni non salvate nella tabella attuale + Ci sono modifiche non salvate nella scheda attuale </panel.string> <panel.string name="want_apply_text"> - Vuoi salvare queste variazioni? + Vuoi salvare le modifiche? </panel.string> <panel.string name="group_join_btn"> - Aderisci (L$[AMOUNT]) + Aderisci ([AMOUNT] L$) </panel.string> <panel.string name="group_join_free"> Gratis </panel.string> - <text name="group_name" value="(Caricando...)"/> - <line_editor label="Scrivi qui il nuovo nome del tuo gruppo" name="group_name_editor"/> - <texture_picker label="" name="insignia" tool_tip="Clicca per scegliere uan fotografia"/> + <text name="group_name" value="(Caricamento in corso...)"/> + <line_editor label="Scrivi qui il nome del gruppo" name="group_name_editor"/> + <texture_picker label="" name="insignia" tool_tip="Clicca per scegliere una fotografia"/> <text name="prepend_founded_by"> Fondatore: </text> - <name_box initial_value="(recuperando)" name="founder_name"/> + <name_box initial_value="(recupero)" name="founder_name"/> <text name="join_cost_text"> Gratis </text> - <button label="ADERISCI ORA!" name="btn_join"/> + <button label="ADERISCI ADESSO!" name="btn_join"/> <accordion name="groups_accordion"> <accordion_tab name="group_general_tab" title="Generale"/> <accordion_tab name="group_roles_tab" title="Ruoli"/> - <accordion_tab name="group_notices_tab" title="Notice"/> - <accordion_tab name="group_land_tab" title="Terra/Beni ?????"/> + <accordion_tab name="group_notices_tab" title="Avvisi"/> + <accordion_tab name="group_land_tab" title="Terra/Beni"/> </accordion> <panel name="button_row"> <button label="Crea" label_selected="Nuovo gruppo" name="btn_create"/> diff --git a/indra/newview/skins/default/xui/it/panel_group_roles.xml b/indra/newview/skins/default/xui/it/panel_group_roles.xml index bc98fdacaf..1a2934b7ff 100644 --- a/indra/newview/skins/default/xui/it/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/it/panel_group_roles.xml @@ -4,7 +4,7 @@ Ci sono modifiche non salvate nella scheda attuale </panel.string> <panel.string name="want_apply_text"> - Vuoi salvare queste modifiche? + Vuoi salvare le modifiche? </panel.string> <tab_container height="164" name="roles_tab_container"> <panel height="148" label="MEMBRI" name="members_sub_tab" tool_tip="Membri"> @@ -15,24 +15,25 @@ cliccando sui loro nomi. </panel.string> <filter_editor label="Filtra Membri" name="filter_input"/> <name_list bottom_delta="-105" height="104" name="member_list"> - <name_list.columns label="Nome del Membro" name="name"/> + <name_list.columns label="Socio" name="name"/> <name_list.columns label="Donazioni" name="donated"/> - <name_list.columns label="Status" name="online"/> + <name_list.columns label="Online" name="online"/> </name_list> <button label="Invita" name="member_invite" width="165"/> <button label="Espelli" name="member_eject"/> </panel> <panel height="148" label="RUOLI" name="roles_sub_tab"> <panel.string name="help_text"> - I ruoli hanno un titolo con un elenco di abilità permesse che i membri possono eseguire. - I membri possono avere uno o più ruoli. Un gruppo può avere fino a 10 ruoli, inclusi il ruolo base o "Membro" e - il ruolo del Capogruppo. + I ruoli hanno un titolo con un elenco di abilità permesse +che i membri possono eseguire. I membri possono avere +uno o più ruoli. Un gruppo può avere fino a 10 ruoli, +fra cui il ruolo base o "Tutti" e il ruolo del Proprietario, ovvero il capogruppo. </panel.string> <panel.string name="cant_delete_role"> I Ruoli 'Everyone' e 'Owners' sono speciali e non possono essere cancellati. </panel.string> <panel.string name="power_folder_icon"> - Cartella Inventario chiusa + Inv_FolderClosed </panel.string> <filter_editor label="Filtra i ruoli" name="filter_input"/> <scroll_list bottom_delta="-104" height="104" name="role_list"> @@ -43,7 +44,7 @@ cliccando sui loro nomi. <button label="Crea nuovo ruolo" name="role_create"/> <button label="Elimina ruolo" name="role_delete"/> </panel> - <panel height="148" label="ABILITA'" name="actions_sub_tab" tool_tip="Puoi vedere la descrizione dell'abilità e quali Ruoli o Membri possono eseguirla."> + <panel height="148" label="ABILITÀ" name="actions_sub_tab" tool_tip="Puoi vedere la descrizione dell'abilità e quali ruoli o membri possono eseguirla."> <panel.string name="help_text"> Le abilità permettono ai membri nei ruoli di fare cose specifiche in questo gruppo. C'è una vasta gamma di abilità. @@ -59,7 +60,7 @@ in questo gruppo. C'è una vasta gamma di abilità. <text name="static2"> Abilità permesse </text> - <scroll_list name="member_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi il pannello abilità."/> + <scroll_list name="member_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi la scheda abilità."/> </panel> <panel name="roles_footer"> <text name="static"> @@ -83,11 +84,11 @@ in questo gruppo. C'è una vasta gamma di abilità. <text name="static4"> Ruoli assegnati </text> - <check_box label="Mostrare i membri" name="role_visible_in_list" tool_tip="Imposta nella tabella Generale per i membri con questo ruolo di poter essere visti dalle persone esterne a questo gruppo."/> + <check_box label="Visualizza membri" name="role_visible_in_list" tool_tip="Imposta nella scheda Generale per i membri di questo ruolo la visibilità da parte dei residenti esterni al gruppo."/> <text name="static5" tool_tip="Una lista delle abilità che il ruolo ora selezionato può eseguire."> Abilità permesse </text> - <scroll_list name="role_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi il pannello abilità."/> + <scroll_list name="role_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi la scheda abilità."/> </panel> <panel name="actions_footer"> <text name="static"> diff --git a/indra/newview/skins/default/xui/it/panel_login.xml b/indra/newview/skins/default/xui/it/panel_login.xml index 7706a044fa..aec58738b8 100644 --- a/indra/newview/skins/default/xui/it/panel_login.xml +++ b/indra/newview/skins/default/xui/it/panel_login.xml @@ -6,29 +6,33 @@ <panel.string name="forgot_password_url"> http://secondlife.com/account/request.php?lang=it </panel.string> - <layout_stack name="login_widgets"> - <layout_panel name="login"> - <text name="first_name_text"> - Nome: - </text> - <line_editor label="Nome" name="first_name_edit" tool_tip="[SECOND_LIFE] First Name"/> - <line_editor label="Cognome" name="last_name_edit" tool_tip="[SECOND_LIFE] Last Name"/> - <check_box label="Ricordare" name="remember_check"/> - <text name="start_location_text"> - Iniziare presso: - </text> - <combo_box name="start_location_combo"> - <combo_box.item label="Casa mia" name="MyHome"/> - </combo_box> - <button label="Log In" name="connect_btn"/> - </layout_panel> - <layout_panel name="links"> - <text name="create_new_account_text"> - Aderire - </text> - <text name="login_help"> - Aiuto quando log in? - </text> - </layout_panel> - </layout_stack> + <panel name="login_widgets"> + <text name="first_name_text"> + Nome: + </text> + <line_editor name="first_name_edit" tool_tip="[SECOND_LIFE] Nome"/> + <text name="last_name_text"> + Cognome: + </text> + <line_editor name="last_name_edit" tool_tip="[SECOND_LIFE] Cognome"/> + <text name="password_text"> + Password: + </text> + <button label="Accedi" label_selected="Accedi" name="connect_btn"/> + <text name="start_location_text"> + Luogo di partenza: + </text> + <combo_box name="start_location_combo"> + <combo_box.item label="La mia ultima ubicazione" name="MyLastLocation"/> + <combo_box.item label="La mia casa" name="MyHome"/> + <combo_box.item label="<Scrivi nome regione>" name="Typeregionname"/> + </combo_box> + <check_box label="Ricorda password" name="remember_check"/> + <text name="create_new_account_text"> + Crea nuovo account + </text> + <text name="forgot_password_text"> + Hai dimenticato il nome o la password? + </text> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_main_inventory.xml b/indra/newview/skins/default/xui/it/panel_main_inventory.xml index edaab6e60c..8c2479a019 100644 --- a/indra/newview/skins/default/xui/it/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/it/panel_main_inventory.xml @@ -9,9 +9,9 @@ <inventory_panel label="Elementi recenti" name="Recent Items"/> </tab_container> <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="Mostra ulteriori opzioni"/> + <button name="options_gear_btn" tool_tip="Mostra opzioni addizionali"/> <button name="add_btn" tool_tip="Aggiungi nuovo elemento"/> - <dnd_button name="trash_btn" tool_tip="Rimuovi l'elemento selezionato"/> + <dnd_button name="trash_btn" tool_tip="Rimuovi l'articolo selezionato"/> </panel> <menu_bar name="Inventory Menu"> <menu label="File" name="File"> @@ -22,42 +22,42 @@ <menu_item_call label="Animazione ([COST]L$)..." name="Upload Animation"/> <menu_item_call label="In blocco ([COST]L$ per file)..." name="Bulk Upload"/> </menu> - <menu_item_call label="Nuova Finestra" name="New Window"/> - <menu_item_call label="Mostra Filtri" name="Show Filters"/> - <menu_item_call label="Cancella Filtri" name="Reset Current"/> - <menu_item_call label="Chiudi tutte le Cartelle" name="Close All Folders"/> - <menu_item_call label="Svuota Cestino" name="Empty Trash"/> - <menu_item_call label="Svuota Oggetti Smarriti" name="Empty Lost And Found"/> + <menu_item_call label="Nuova finestra" name="New Window"/> + <menu_item_call label="Mostra filtri" name="Show Filters"/> + <menu_item_call label="Ripristina filtri" name="Reset Current"/> + <menu_item_call label="Chiudi tutte le cartelle" name="Close All Folders"/> + <menu_item_call label="Svuota cestino" name="Empty Trash"/> + <menu_item_call label="Svuota oggetti smarriti" name="Empty Lost And Found"/> </menu> <menu label="Crea" name="Create"> - <menu_item_call label="Nuova Cartella" name="New Folder"/> - <menu_item_call label="Nuovo Script" name="New Script"/> - <menu_item_call label="Nuova Notecard" name="New Note"/> - <menu_item_call label="Nuova Gesture" name="New Gesture"/> - <menu label="Nuovi Abiti" name="New Clothes"> - <menu_item_call label="Nuova Camicia" name="New Shirt"/> - <menu_item_call label="Nuovi Pantaloni" name="New Pants"/> - <menu_item_call label="Nuove Scarpe" name="New Shoes"/> - <menu_item_call label="Nuove Calze" name="New Socks"/> - <menu_item_call label="Nuova Giacca" name="New Jacket"/> - <menu_item_call label="Nuova Gonna" name="New Skirt"/> - <menu_item_call label="Nuovi Guanti" name="New Gloves"/> - <menu_item_call label="Nuova Maglietta Intima" name="New Undershirt"/> - <menu_item_call label="Nuovi Slip" name="New Underpants"/> - <menu_item_call label="Nuovo Alfa (Trasparenza)" name="New Alpha"/> - <menu_item_call label="Nuovo Tatuaggio" name="New Tattoo"/> + <menu_item_call label="Nuova cartella" name="New Folder"/> + <menu_item_call label="Nuovo script" name="New Script"/> + <menu_item_call label="Nuovo appunto" name="New Note"/> + <menu_item_call label="Nuova gesture" name="New Gesture"/> + <menu label="Maglietta intima" name="New Clothes"> + <menu_item_call label="Nuova camicia" name="New Shirt"/> + <menu_item_call label="Nuovi pantaloni" name="New Pants"/> + <menu_item_call label="Nuove scarpe" name="New Shoes"/> + <menu_item_call label="Nuove calze" name="New Socks"/> + <menu_item_call label="Nuova giacca" name="New Jacket"/> + <menu_item_call label="Nuova gonna" name="New Skirt"/> + <menu_item_call label="Nuovi guanti" name="New Gloves"/> + <menu_item_call label="Nuova maglietta intima" name="New Undershirt"/> + <menu_item_call label="Nuovi slip" name="New Underpants"/> + <menu_item_call label="Nuovo Alfa (trasparenza)" name="New Alpha"/> + <menu_item_call label="Nuovo tatuaggio" name="New Tattoo"/> </menu> - <menu label="Nuove Parti del Corpo" name="New Body Parts"> - <menu_item_call label="Nuova Shape" name="New Shape"/> - <menu_item_call label="Nuova Pelle" name="New Skin"/> - <menu_item_call label="Nuovi Capelli" name="New Hair"/> - <menu_item_call label="Nuovi Occhi" name="New Eyes"/> + <menu label="Nuove parti del corpo" name="New Body Parts"> + <menu_item_call label="Nuova figura corporea" name="New Shape"/> + <menu_item_call label="Nuova pelle" name="New Skin"/> + <menu_item_call label="Nuovi capelli" name="New Hair"/> + <menu_item_call label="Nuovi occhi" name="New Eyes"/> </menu> </menu> <menu label="Ordina" name="Sort"> - <menu_item_check label="Per Nome" name="By Name"/> - <menu_item_check label="Per Data" name="By Date"/> - <menu_item_check label="Cartelle sempre per Nome" name="Folders Always By Name"/> + <menu_item_check label="In base al nome" name="By Name"/> + <menu_item_check label="In base alla data" name="By Date"/> + <menu_item_check label="Cartelle sempre in base al nome" name="Folders Always By Name"/> <menu_item_check label="Cartelle di sistema all'inizio" name="System Folders To Top"/> </menu> </menu_bar> diff --git a/indra/newview/skins/default/xui/it/panel_media_settings_general.xml b/indra/newview/skins/default/xui/it/panel_media_settings_general.xml index cb629e5cfb..5ed7b23679 100644 --- a/indra/newview/skins/default/xui/it/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/it/panel_media_settings_general.xml @@ -4,27 +4,27 @@ Home Page: </text> <text name="home_fails_whitelist_label"> - (Questa pagina non passa la lista bianca specifica) + (Questa pagina non supera la revisione o lista bianca specifica) </text> - <line_editor name="home_url" tool_tip="La home page per questa fonte media"/> + <line_editor name="home_url" tool_tip="La home page per questa fonte multimediale"/> <text name="preview_label"> Anteprima </text> <text name="current_url_label"> Pagina attuale: </text> - <text name="current_url" tool_tip="La pagina attuale per questa fonte media" value=""/> - <button label="Resetta" name="current_url_reset_btn"/> - <check_box initial_value="false" label="Auto Loop" name="auto_loop"/> - <check_box initial_value="false" label="Primo Click Interagisce" name="first_click_interact"/> - <check_box initial_value="false" label="Auto Zoom" name="auto_zoom"/> - <check_box initial_value="false" label="Auto Play Media" name="auto_play"/> + <text name="current_url" tool_tip="La pagina attuale per questa fonte multimediale" value=""/> + <button label="Reimposta" name="current_url_reset_btn"/> + <check_box initial_value="false" label="Ripetizione automatica" name="auto_loop"/> + <check_box initial_value="false" label="Interazione col primo clic" name="first_click_interact"/> + <check_box initial_value="false" label="Zoom automatico" name="auto_zoom"/> + <check_box initial_value="false" label="Riproduzione multimediale automatica" name="auto_play"/> <text name="media_setting_note"> - Nota: I Residenti possono annullare questa impostazione + Nota: I residenti possono annullare questa impostazione </text> - <check_box initial_value="false" label="Auto Scale Media on Face of Object" name="auto_scale"/> + <check_box initial_value="false" label="Messa in scala automatica dell'elemento multimediale sulla faccia dell'oggetto" name="auto_scale"/> <text name="size_label"> - Misura: + Dimensioni: </text> <text name="X_label"> X diff --git a/indra/newview/skins/default/xui/it/panel_pick_info.xml b/indra/newview/skins/default/xui/it/panel_pick_info.xml index 4771457825..7c059b443d 100644 --- a/indra/newview/skins/default/xui/it/panel_pick_info.xml +++ b/indra/newview/skins/default/xui/it/panel_pick_info.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_pick_info"> - <text name="title" value="Scegli Info ????"/> + <text name="title" value="Scegli Info"/> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> <text name="pick_name" value="[nome]"/> - <text name="pick_location" value="[Caricando...]"/> + <text name="pick_location" value="[caricamento...]"/> <text name="pick_desc" value="[descrizione]"/> </panel> </scroll_container> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml index 13ffabbebf..bb05d549cc 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml @@ -6,8 +6,8 @@ <panel.string name="aspect_ratio_text"> [NUM]:[DEN] </panel.string> - <check_box label="Chat a Bolle" name="bubble_text_chat"/> - <color_swatch name="background" tool_tip="Scegli il colore delle vignette della Chat"/> + <check_box label="Chat a bolla" name="bubble_text_chat"/> + <color_swatch name="background" tool_tip="Scegli il colore delle vignette della chat"/> <slider label="Opacità" name="bubble_chat_opacity"/> <text name="AspectRatioLabel1" tool_tip="larghezza/altezza"> Rapporto di visualizzazione @@ -20,29 +20,29 @@ </combo_box> <check_box label="Rilevamento automatico" name="aspect_auto_detect"/> <text name="heading1"> - Camera: + Fotocamera: </text> <slider label="Angolazione della visuale" name="camera_fov"/> <slider label="Distanza" name="camera_offset_scale"/> <text name="heading2"> - Posizionamento Automatico per: + Posizionamento automatico per: </text> - <check_box label="Costruire/Modificare" name="edit_camera_movement" tool_tip="Utilizza il posizionamento automatico della camera entrando e uscendo dalla modalità modifica"/> - <check_box label="Aspetto Fisico" name="appearance_camera_movement" tool_tip="Utilizza il posizionamento automatico della camera in modalità modifica"/> + <check_box label="Costruire/Modificare" name="edit_camera_movement" tool_tip="Utilizza il posizionamento automatico della fotocamera entrando o uscendo dalla modalità modifica"/> + <check_box label="Aspetto fisico" name="appearance_camera_movement" tool_tip="Utilizza il posizionamento automatico della camera in modalità modifica"/> <text name="heading3"> Avatar: </text> <check_box label="Mostra in modalità Mouselook" name="first_person_avatar_visible"/> - <check_box label="Cammino sempre con le frecce di movimento" name="arrow_keys_move_avatar_check"/> - <check_box label="Doppio Click-Tieni Premuto per correre" name="tap_tap_hold_to_run"/> - <check_box label="Consente il movimento delle labbra dell'Avatar quando parla" name="enable_lip_sync"/> + <check_box label="Le frecce di direzione mi fanno sempre spostare" name="arrow_keys_move_avatar_check"/> + <check_box label="Doppio click e tieni premuto per correre" name="tap_tap_hold_to_run"/> + <check_box label="Consente il movimento delle labbra dell'avatar quando parla" name="enable_lip_sync"/> <check_box label="Mostra errori degli script" name="show_script_errors"/> <radio_group name="show_location"> <radio_item label="In chat" name="0"/> <radio_item label="In una finestra" name="1"/> </radio_group> - <check_box label="Modalità del microfono "interruttore ON/OFF" quando premo l'interruttore PARLA:" name="push_to_talk_toggle_check" tool_tip="In modalità "interruttore ON/OFF" premi il tasto per attivare o disattivare il microfono. Quando non usi questa modalità, il microfono è attivo solo se tieni premuto il tasto."/> - <line_editor label="Premi il pulsante per parlare" name="modifier_combo"/> - <button label="Imposta" name="set_voice_hotkey_button"/> - <button label="Pulsante centrale del Mouse" name="set_voice_middlemouse_button"/> + <check_box label="Attiva/disattiva modalità microfono quando premo il tasto di comando Parla:" name="push_to_talk_toggle_check" tool_tip="In modalità "interruttore ON/OFF" premi il tasto una volta per attivare o disattivare il microfono. Quando non usi questa modalità, il microfono è attivo solo se tieni premuto il tasto di comando."/> + <line_editor label="Pulsante di comando della funzione Premi per parlare" name="modifier_combo"/> + <button label="Imposta tasto" name="set_voice_hotkey_button"/> + <button label="Pulsante centrale del mouse" name="set_voice_middlemouse_button"/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/it/panel_preferences_alerts.xml index 02da9de4a4..e5d57cffbe 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_alerts.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Pop-up" name="popups" title="Pop-up"> <text name="tell_me_label"> - Dimmi: + Avvisami: </text> <check_box label="Quando spendo o ottengo L$" name="notify_money_change_checkbox"/> <check_box label="Quando i miei amici entrano o escono da SL" name="friends_online_notify_checkbox"/> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml index 9c064c2716..582ffd43f3 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Text Chat" name="chat"> <radio_group name="chat_font_size"> - <radio_item label="Piccolo" name="radio"/> - <radio_item label="Medio" name="radio2"/> + <radio_item label="Piccola" name="radio"/> + <radio_item label="Media" name="radio2"/> <radio_item label="Grande" name="radio3"/> </radio_group> <color_swatch label="Tuo" name="user"/> @@ -38,7 +38,7 @@ URLs </text> <check_box initial_value="true" label="Simula la battitura tasti quando scrivi" name="play_typing_animation"/> - <check_box label="Spediscimi nella email gli IM quando sono OFF-LINE" name="send_im_to_email"/> + <check_box label="Quando sono OFF-LINE, spediscimi gli IM in una e-mail" name="send_im_to_email"/> <radio_group name="chat_window" tool_tip="Mostra i tuoi Instant Messages in finestre separate, o in una finestra con diverse tabelle (Requires restart)"> <radio_item label="Finestre multiple" name="radio"/> <radio_item label="Una finestra" name="radio2"/> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml index 80b152752b..7463c88d96 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml @@ -4,7 +4,7 @@ Lingua: </text> <combo_box name="language_combobox"> - <combo_box.item label="System default" name="System Default Language"/> + <combo_box.item label="Default di sistema" name="System Default Language"/> <combo_box.item label="English" name="English"/> <combo_box.item label="Dansk (Danese) - Beta" name="Danish"/> <combo_box.item label="Deutsch (Tedesco) - Beta" name="Deutsch(German)"/> @@ -17,7 +17,7 @@ <combo_box.item label="日本語 (Giapponese) - Beta" name="(Japanese)"/> </combo_box> <text name="language_textbox2"> - (Richiede restart) + (Richiede il riavvio) </text> <text name="maturity_desired_prompt"> Voglio accedere al contenuto di tipo: @@ -29,15 +29,15 @@ <combo_box.item label="PG" name="Desired_PG"/> </combo_box> <text name="start_location_textbox"> - Luogo d'inizio: + Luogo di partenza: </text> <combo_box name="start_location_combo"> <combo_box.item label="Ultimo posto visitato" name="MyLastLocation" tool_tip="Vai nell'ultimo posto visitato di default quando fai login."/> <combo_box.item label="Casa mia" name="MyHome" tool_tip="Vai a casa di default quando fai login"/> </combo_box> - <check_box initial_value="true" label="Mostra su login" name="show_location_checkbox"/> + <check_box initial_value="true" label="Mostra con il login" name="show_location_checkbox"/> <text name="name_tags_textbox"> - Nome sulle tags: + Nome: </text> <radio_group name="Name_Tag_Preference"> <radio_item label="Off" name="radio"/> @@ -45,14 +45,14 @@ <radio_item label="Mostra brevemente" name="radio3"/> </radio_group> <check_box label="Mostra il mio nome" name="show_my_name_checkbox1"/> - <check_box initial_value="true" label="Nome piccolo sulle tags" name="small_avatar_names_checkbox"/> + <check_box initial_value="true" label="Nome in piccolo" name="small_avatar_names_checkbox"/> <check_box label="Mostra titoli del gruppo" name="show_all_title_checkbox1"/> <text name="effects_color_textbox"> - Miei effetti: + I miei effetti: </text> <color_swatch label="" name="effect_color_swatch" tool_tip="Clicca per aprire la tavolozza dei colori"/> <text name="title_afk_text"> - Pausa di Away: + Pausa assenza: </text> <spinner label="Assente dopo:" name="afk_timeout_spinner"/> <text name="seconds_textbox"> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_sound.xml b/indra/newview/skins/default/xui/it/panel_preferences_sound.xml index c4d46291dd..2ac60412ff 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_sound.xml @@ -1,20 +1,20 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Suoni" name="Preference Media panel"> - <slider label="Principale" name="System Volume"/> + <slider label="Comando volume centrale" name="System Volume"/> <check_box initial_value="true" label="Spegni suono se minimizzato" name="mute_when_minimized"/> <slider label="Ambiente" name="Wind Volume"/> <slider label="Pulsanti" name="UI Volume"/> - <slider label="MultiMedia" name="Media Volume"/> - <slider label="Effetto Suoni" name="SFX Volume"/> - <slider label="Musica" name="Music Volume"/> + <slider label="Multimediale" name="Media Volume"/> + <slider label="Effetti sonori" name="SFX Volume"/> + <slider label="Musica in streaming" name="Music Volume"/> <check_box label="Voce" name="enable_voice_check"/> <slider label="Voice" name="Voice Volume"/> <text name="Listen from"> Ascolta da: </text> <radio_group name="ear_location"> - <radio_item label="Posizione della Camera" name="0"/> - <radio_item label="Posizione dell'Avatar" name="1"/> + <radio_item label="Posizione della fotocamera" name="0"/> + <radio_item label="Posizione dell'avatar" name="1"/> </radio_group> <button label="Dispositivi di Input/Output" name="device_settings_btn" width="165"/> <panel label="Impostazioni del dispositivo" name="device_settings_panel"> @@ -25,7 +25,7 @@ Input </text> <text name="My volume label"> - Mio volume: + Il mio volume: </text> <slider_bar initial_value="1.0" name="mic_volume_slider" tool_tip="Cambia il volume utilizzando questa barra"/> <text name="wait_text"> diff --git a/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml index dc7d59084e..9e95fbc600 100644 --- a/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml +++ b/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml @@ -2,27 +2,27 @@ <panel name="MediaControls"> <layout_stack name="media_controls"> <layout_panel name="media_address"> - <line_editor name="media_address_url" tool_tip="Media URL"/> + <line_editor name="media_address_url" tool_tip="URL multimedia"/> <layout_stack name="media_address_url_icons"> <layout_panel> - <icon name="media_whitelist_flag" tool_tip="Lista Bianca attivata"/> + <icon name="media_whitelist_flag" tool_tip="Lista bianca attivata"/> </layout_panel> <layout_panel> - <icon name="media_secure_lock_flag" tool_tip="Secured Browsing"/> + <icon name="media_secure_lock_flag" tool_tip="Navigazione sicura"/> </layout_panel> </layout_stack> </layout_panel> <layout_panel name="media_play_position"> - <slider_bar initial_value="0.5" name="media_play_slider" tool_tip="Avanzamento riproduzione Movie"/> + <slider_bar initial_value="0.5" name="media_play_slider" tool_tip="Avanzamento riproduzione filmato"/> </layout_panel> <layout_panel name="media_volume"> - <button name="media_mute_button" tool_tip="Silenzia questo Media ????"/> - <slider name="volume_slider" tool_tip="Volume Media"/> + <button name="media_mute_button" tool_tip="Silenzia questo elemento multimediale"/> + <slider name="volume_slider" tool_tip="Volume multimedia"/> </layout_panel> </layout_stack> <layout_stack> <panel name="media_progress_indicator"> - <progress_bar name="media_progress_bar" tool_tip="Media stà caricando"/> + <progress_bar name="media_progress_bar" tool_tip="L'elemento multimediale è in caricamento"/> </panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_region_estate.xml b/indra/newview/skins/default/xui/it/panel_region_estate.xml index b6dc60a9c2..35d683aa9b 100644 --- a/indra/newview/skins/default/xui/it/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/it/panel_region_estate.xml @@ -24,10 +24,10 @@ avranno effetto su tutte le regioni della proprietà. <check_box label="Permetti accesso pubblico" name="externally_visible_check"/> <button label="?" name="externally_visible_help"/> <text name="Only Allow"> - Accesso ristretto ai Residenti verificati con: + Consenti l'accesso soltanto ai residenti verificati tramite: </text> - <check_box label="Informazioni di pagamento on File" name="limit_payment" tool_tip="Espelli residenti non identificati"/> - <check_box label="Verifica dell'età" name="limit_age_verified" tool_tip="Espelli i residenti che non hanno verificato l'età. Vedi [SUPPORT_SITE] per maggiori informazioni."/> + <check_box label="Informazioni di pagamento in archivio" name="limit_payment" tool_tip="Espelli residenti non identificati"/> + <check_box label="Verifica età" name="limit_age_verified" tool_tip="Espelli i residenti che non hanno verificato l'età. Vedi [SUPPORT_SITE] per maggiori informazioni."/> <check_box label="Permetti la chat voice" name="voice_chat_check"/> <button label="?" name="voice_chat_help"/> <check_box label="Permetti teleport diretto" name="allow_direct_teleport"/> diff --git a/indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml index 5e5f229ce4..753e89f2fd 100644 --- a/indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml +++ b/indra/newview/skins/default/xui/it/panel_side_tray_tab_caption.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="sidetray_tab_panel"> - <text name="sidetray_tab_title" value="Vaschetta laterale"/> + <text name="sidetray_tab_title" value="Pannello laterale"/> <button name="show_help" tool_tip="Mostra Aiuto"/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_world_map.xml b/indra/newview/skins/default/xui/it/panel_world_map.xml index 1349b36e2c..8d18e0ee0b 100644 --- a/indra/newview/skins/default/xui/it/panel_world_map.xml +++ b/indra/newview/skins/default/xui/it/panel_world_map.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="world_map"> <panel.string name="Loading"> - Sto Caricando... + Caricamento in corso... </panel.string> <panel.string name="InvalidLocation"> Luogo non valido diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml index 910e6e0960..28b12f2bdf 100644 --- a/indra/newview/skins/default/xui/it/strings.xml +++ b/indra/newview/skins/default/xui/it/strings.xml @@ -17,13 +17,13 @@ Ricerca hardware... </string> <string name="StartupLoading"> - In Caricamento + Caricamento in corso </string> <string name="LoginInProgress"> In connessione. [APP_NAME] può sembrare rallentata. Attendi. </string> <string name="LoginInProgressNoFrozen"> - Logging in... + Accesso in corso... </string> <string name="LoginAuthenticating"> In autenticazione @@ -80,7 +80,7 @@ Errore di rete: Non è stato possibile stabilire un collegamento, controlla la tua connessione. </string> <string name="Quit"> - Termina + Esci </string> <string name="create_account_url"> http://join.secondlife.com/index.php?lang=it-IT @@ -152,10 +152,10 @@ Clicca per vedere questa inserzione </string> <string name="TooltipParcelUrl"> - Clicca per vedere la descrizione della parcel + Clicca per vedere la descrizione del lotto </string> <string name="TooltipTeleportUrl"> - Clicca per teleportarti a questa destinazione + Clicca per effettuare il teleport a questa destinazione </string> <string name="TooltipObjectIMUrl"> Clicca per vedere la descrizione dell'oggetto @@ -166,7 +166,7 @@ <string name="TooltipSLAPP"> Clicca per avviare il comando secondlife:// </string> - <string name="CurrentURL" value=" URL attuale: [CurrentURL]"/> + <string name="CurrentURL" value="URL attuale: [CurrentURL]"/> <string name="SLurlLabelTeleport"> Teleportati a </string> @@ -174,7 +174,7 @@ Mostra la mappa per </string> <string name="BUTTON_CLOSE_DARWIN"> - Chiudi (⌘W) + Chiudi (⌘W) </string> <string name="BUTTON_CLOSE_WIN"> Chiudi (Ctrl+W) @@ -195,10 +195,10 @@ Disàncora </string> <string name="BUTTON_HELP"> - Mostra gli aiuti + Mostra Aiuto </string> <string name="Searching"> - In ricerca... + Ricerca in corso... </string> <string name="NoneFound"> Nessun risultato. @@ -267,19 +267,19 @@ biglietto da visita </string> <string name="landmark"> - landmark + punto di riferimento </string> <string name="legacy script"> script (vecchia versione) </string> <string name="clothing"> - abito + vestiario </string> <string name="object"> oggetto </string> <string name="note card"> - notecard + biglietto </string> <string name="folder"> cartella @@ -309,7 +309,7 @@ immagine targa </string> <string name="trash"> - cestino + Cestino </string> <string name="jpeg image"> immagine jpeg @@ -546,7 +546,7 @@ Si </string> <string name="texture_loading"> - In Caricamento... + Caricamento in corso... </string> <string name="worldmap_offline"> Offline @@ -684,25 +684,25 @@ Scegli la cartella </string> <string name="AvatarSetNotAway"> - Imposta non assente + Imposta come non assente </string> <string name="AvatarSetAway"> - Imposta assente + Imposta come assente </string> <string name="AvatarSetNotBusy"> - Imposta non occupato + Imposta come non occupato </string> <string name="AvatarSetBusy"> - Imposta occupato + Imposta come occupato </string> <string name="shape"> - Shape + Figura corporea </string> <string name="skin"> - Skin + Pelle </string> <string name="hair"> - Capelli + Capigliature </string> <string name="eyes"> Occhi @@ -717,7 +717,7 @@ Scarpe </string> <string name="socks"> - Calze + Calzini </string> <string name="jacket"> Giacca @@ -729,7 +729,7 @@ Maglietta intima </string> <string name="underpants"> - slip + Slip </string> <string name="skirt"> Gonna @@ -744,16 +744,16 @@ non valido </string> <string name="next"> - Seguente + Avanti </string> <string name="ok"> OK </string> <string name="GroupNotifyGroupNotice"> - Notice di gruppo + Avviso di gruppo </string> <string name="GroupNotifyGroupNotices"> - Notice di gruppo + Avvisi di gruppo </string> <string name="GroupNotifySentBy"> Inviato da @@ -762,7 +762,7 @@ Allegato: </string> <string name="GroupNotifyViewPastNotices"> - Visualizza i notice passati o scegli qui di non riceverne. + Visualizza gli avvisi precedenti o scegli qui di non riceverne. </string> <string name="GroupNotifyOpenAttachment"> Apri l'allegato @@ -771,7 +771,7 @@ Salva l'allegato </string> <string name="TeleportOffer"> - Offerta di Teletrasporto + Offerta di Teleport </string> <string name="StartUpNotification"> [%d] una nuova notifica è arrivata mentre eri assente... @@ -819,40 +819,40 @@ Non hai una copia di questa texture in inventario. </string> - <string name="no_transfer" value=" (no transfer)"/> - <string name="no_modify" value=" (no modify)"/> - <string name="no_copy" value=" (no copy)"/> - <string name="worn" value=" (indossato)"/> - <string name="link" value=" (link)"/> - <string name="broken_link" value=" (broken_link)"/> + <string name="no_transfer" value="(nessun trasferimento)"/> + <string name="no_modify" value="(nessuna modifica)"/> + <string name="no_copy" value="(nessuna copia)"/> + <string name="worn" value="(indossato)"/> + <string name="link" value="(link)"/> + <string name="broken_link" value="(broken_link)""/> <string name="LoadingContents"> - Contenuto in caricamento... + Caricamento del contenuto... </string> <string name="NoContents"> Nessun contenuto </string> - <string name="WornOnAttachmentPoint" value=" (indossato su [ATTACHMENT_POINT])"/> - <string name="Chat" value=" Chat :"/> - <string name="Sound" value=" Suono :"/> - <string name="Wait" value=" --- Attendi :"/> - <string name="AnimFlagStop" value=" Ferma l'Animazione :"/> - <string name="AnimFlagStart" value=" Inizia l'Animazione :"/> - <string name="Wave" value=" Wave"/> - <string name="HelloAvatar" value=" Ciao, avatar!"/> - <string name="ViewAllGestures" value=" Visualizza tutte le gesture >>"/> - <string name="Animations" value=" Animazioni,"/> - <string name="Calling Cards" value=" Biglietti da visita,"/> - <string name="Clothing" value=" Vestiti,"/> - <string name="Gestures" value=" Gesture,"/> - <string name="Landmarks" value=" Landmark,"/> - <string name="Notecards" value=" Notecard,"/> - <string name="Objects" value=" Oggetti,"/> - <string name="Scripts" value=" Script,"/> - <string name="Sounds" value=" Suoni,"/> - <string name="Textures" value=" Texture,"/> - <string name="Snapshots" value=" Fotografie,"/> - <string name="No Filters" value="No "/> - <string name="Since Logoff" value=" - Dalla disconnessione"/> + <string name="WornOnAttachmentPoint" value="(indossato su [ATTACHMENT_POINT])"/> + <string name="Chat" value="Chat :"/> + <string name="Sound" value="Suono :"/> + <string name="Wait" value="--- Attendi :"/> + <string name="AnimFlagStop" value="Ferma l'animazione :"/> + <string name="AnimFlagStart" value="Inizia l'animazione :"/> + <string name="Wave" value="Saluta con la mano"/> + <string name="HelloAvatar" value="Ciao, avatar!"/> + <string name="ViewAllGestures" value="Visualizza tutto >>"/> + <string name="Animations" value="Animazioni,"/> + <string name="Calling Cards" value="Biglietti da visita,"/> + <string name="Clothing" value="Vestiti,"/> + <string name="Gestures" value="Gesture,"/> + <string name="Landmarks" value="Punti di riferimento,"/> + <string name="Notecards" value="Biglietti,"/> + <string name="Objects" value="Oggetti,"/> + <string name="Scripts" value="Script,"/> + <string name="Sounds" value="Suoni,"/> + <string name="Textures" value="Texture,"/> + <string name="Snapshots" value="Fotografie,"/> + <string name="No Filters" value="No"/> + <string name="Since Logoff" value="- Dall'uscita"/> <string name="InvFolder My Inventory"> Il mio inventario </string> @@ -869,22 +869,22 @@ di questa texture in inventario. Suoni </string> <string name="InvFolder Calling Cards"> - Biglieti da visita + Biglietti da visita </string> <string name="InvFolder Landmarks"> - Landmark + Punti di riferimento </string> <string name="InvFolder Scripts"> Script </string> <string name="InvFolder Clothing"> - Vestiti + Vestiario </string> <string name="InvFolder Objects"> Oggetti </string> <string name="InvFolder Notecards"> - Notecard + Biglietti </string> <string name="InvFolder New Folder"> Nuova cartella @@ -920,22 +920,22 @@ di questa texture in inventario. Preferiti </string> <string name="InvFolder Current Outfit"> - Outfit attuale + Abbigliamento attuale </string> <string name="InvFolder My Outfits"> - I miei Outfit + Il mio vestiario </string> <string name="InvFolder Friends"> Amici </string> <string name="InvFolder All"> - Tutti + Tutto </string> <string name="Buy"> - Compra + Acquista </string> <string name="BuyforL$"> - Compra per L$ + Acquista per L$ </string> <string name="Stone"> Pietra @@ -962,7 +962,7 @@ di questa texture in inventario. Luce </string> <string name="KBShift"> - Shift + Maiusc </string> <string name="KBCtrl"> Ctrl @@ -1112,13 +1112,13 @@ di questa texture in inventario. [COUNT] giorni </string> <string name="GroupMembersA"> - [COUNT] membro + [COUNT] iscritto </string> <string name="GroupMembersB"> - [COUNT] membri + [COUNT] iscritti </string> <string name="GroupMembersC"> - [COUNT] membri + [COUNT] iscritti </string> <string name="AcctTypeResident"> Residente @@ -1127,10 +1127,10 @@ di questa texture in inventario. In prova </string> <string name="AcctTypeCharterMember"> - Membro onorario + Socio onorario </string> <string name="AcctTypeEmployee"> - Impiegato Linden Lab + Dipendente Linden Lab </string> <string name="PaymentInfoUsed"> Informazioni di pagamento usate @@ -1139,7 +1139,7 @@ di questa texture in inventario. Informazioni di pagamento registrate </string> <string name="NoPaymentInfoOnFile"> - Nessuna informazione di pagamento + Nessuna informazione di pagamento disponibile </string> <string name="AgeVerified"> Età verificata @@ -1154,7 +1154,7 @@ di questa texture in inventario. In alto a destra </string> <string name="Top"> - In alto + in alto </string> <string name="Top Left"> In alto a sinistra @@ -1196,22 +1196,22 @@ di questa texture in inventario. ricompila </string> <string name="ResetQueueTitle"> - Avanzamento reset + Azzera avanzamento </string> <string name="ResetQueueStart"> - reset + azzera </string> <string name="RunQueueTitle"> - Avanzamento attivazione + Attiva avanzamento </string> <string name="RunQueueStart"> - Attiva + attiva </string> <string name="NotRunQueueTitle"> - Avanzamento disattivazione + Disattiva avanzamento </string> <string name="NotRunQueueStart"> - Disattivazione + disattiva </string> <string name="CompileSuccessful"> Compilazione riuscita! @@ -1231,18 +1231,18 @@ di questa texture in inventario. <string name="GroupsNone"> nessuno </string> - <string name="Group" value=" (gruppo)"/> + <string name="Group" value="(gruppo)"/> <string name="Unknown"> (Sconosciuto) </string> <string name="SummaryForTheWeek" value="Riassunto della settimana, partendo dal"/> - <string name="NextStipendDay" value="Il prossimo giorno di stipendio è "/> - <string name="GroupIndividualShare" value=" Gruppo Dividendi individuali"/> + <string name="NextStipendDay" value="Il prossimo giorno di stipendio è"/> + <string name="GroupIndividualShare" value="Gruppo Dividendi individuali"/> <string name="Balance"> Saldo </string> <string name="Credits"> - Crediti + Ringraziamenti </string> <string name="Debits"> Debiti @@ -1257,7 +1257,7 @@ di questa texture in inventario. Proprietà principale </string> <string name="IMMainland"> - mainland + continente </string> <string name="IMTeen"> teen @@ -1266,13 +1266,13 @@ di questa texture in inventario. errore </string> <string name="RegionInfoAllEstatesOwnedBy"> - la proprietà posseduta da [OWNER] + tutte le proprietà immobiliari di [OWNER] </string> <string name="RegionInfoAllEstatesYouOwn"> - Le proprietà che possiedi + tutte le tue proprietà immobiliari </string> <string name="RegionInfoAllEstatesYouManage"> - Le proprietà di cui sei manager per conto di [OWNER] + tutte le proprietà immobiliari che gestisci per conto di [OWNER] </string> <string name="RegionInfoAllowedResidents"> Residenti ammessi: ([ALLOWEDAGENTS], massimo [MAXACCESS]) @@ -1287,10 +1287,10 @@ di questa texture in inventario. [COUNT] trovato/i </string> <string name="PanelContentsNewScript"> - Nuovo Script + Nuovo script </string> <string name="MuteByName"> - (per nome) + (in base al nome) </string> <string name="MuteAgent"> (residente) @@ -1302,18 +1302,18 @@ di questa texture in inventario. (gruppo) </string> <string name="RegionNoCovenant"> - Non esiste nessun regolamento per questa proprietà. + Non esiste alcun regolamento per questa proprietà. </string> <string name="RegionNoCovenantOtherOwner"> - Non esiste nessun regolamento per questa proprietà. Il terreno di questa proprietà è messo in vendita dal proprietario, non dalla Linden Lab. Contatta il proprietario del terreno per i dettagli della vendita. + Non esiste alcun regolamento per questa proprietà. Il terreno di questa proprietà è messo in vendita dal proprietario, non dalla Linden Lab. Contatta il proprietario del terreno per i dettagli della vendita. </string> <string name="covenant_last_modified"> Ultima modifica: </string> - <string name="none_text" value=" (nessuno) "/> - <string name="never_text" value=" (mai) "/> + <string name="none_text" value="(nessuno)"/> + <string name="never_text" value="(mai)"/> <string name="GroupOwned"> - Posseduta da un gruppo + Di proprietà di un gruppo </string> <string name="Public"> Pubblica @@ -1328,22 +1328,22 @@ di questa texture in inventario. Anteprima </string> <string name="MultiPropertiesTitle"> - Proprietà + Beni immobiliari </string> <string name="InvOfferAnObjectNamed"> - Un oggetto chiamato + Un oggetto denominato </string> <string name="InvOfferOwnedByGroup"> - Posseduto dal gruppo + di proprietà del gruppo </string> <string name="InvOfferOwnedByUnknownGroup"> - Posseduto da un gruppo sconosciuto + di proprietà di un gruppo sconosciuto </string> <string name="InvOfferOwnedBy"> - Posseduto da + di proprietà di </string> <string name="InvOfferOwnedByUnknownUser"> - Posseduto da un'utente sconosciuto + di proprietà di un utente sconosciuto </string> <string name="InvOfferGaveYou"> Ti ha offerto @@ -1379,7 +1379,7 @@ di questa texture in inventario. Saldo </string> <string name="GroupMoneyCredits"> - Crediti + Ringraziamenti </string> <string name="GroupMoneyDebits"> Debiti @@ -1391,7 +1391,7 @@ di questa texture in inventario. Oggetti acquisiti </string> <string name="Cancel"> - Cancella + Annulla </string> <string name="UploadingCosts"> Costi di caricamento [%s] @@ -1401,22 +1401,22 @@ di questa texture in inventario. Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh </string> <string name="AddLandmarkNavBarMenu"> - Aggiungi landmark... + Aggiungi punto di riferimento... </string> <string name="EditLandmarkNavBarMenu"> - Modifica landmark... + Modifica punto di riferimento... </string> <string name="accel-mac-control"> - ⌃ + ⌃ </string> <string name="accel-mac-command"> - ⌘ + ⌘ </string> <string name="accel-mac-option"> - ⌥ + ⌥ </string> <string name="accel-mac-shift"> - ⇧ + ⇧ </string> <string name="accel-win-control"> Ctrl+ @@ -1428,22 +1428,22 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Shift+ </string> <string name="FileSaved"> - File Salvato + File salvato </string> <string name="Receiving"> In ricezione </string> <string name="AM"> - AM + antemeridiane </string> <string name="PM"> - PM + pomeridiane </string> <string name="PST"> - PST + Ora Pacifico </string> <string name="PDT"> - PDT + Ora legale Pacifico </string> <string name="Forward"> Avanti @@ -1455,7 +1455,7 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Destra </string> <string name="Back"> - Dietro + Indietro </string> <string name="North"> Nord @@ -1476,13 +1476,13 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Giù </string> <string name="Any Category"> - Tutte le categorie + Qualsiasi categoria </string> <string name="Shopping"> - Shopping + Acquisti </string> <string name="Land Rental"> - Affitto terreni + Affitto terreno </string> <string name="Property Rental"> Affitto proprietà @@ -1494,13 +1494,13 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Nuovi prodotti </string> <string name="Employment"> - Impiego + Lavoro </string> <string name="Wanted"> - Richiesti + Cercasi </string> <string name="Service"> - Servizi + Servizio </string> <string name="Personal"> Personale @@ -1539,7 +1539,7 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Residenziale </string> <string name="Stage"> - Stage + Fase </string> <string name="Other"> Altro @@ -1551,10 +1551,10 @@ Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh Tu </string> <string name="Multiple Media"> - Media Multipli + Più supporti </string> <string name="Play Media"> - Media Play/Pausa + Riproduci/Pausa supporto </string> <string name="MBCmdLineError"> Un errore è stato riscontrato analizzando la linea di comando. @@ -1562,17 +1562,17 @@ Per informazioni: http://wiki.secondlife.com/wiki/Client_parameters Errore: </string> <string name="MBCmdLineUsg"> - uso linea di comando del programma [APP_NAME] : + Uso linea di comando del programma [APP_NAME] : </string> <string name="MBUnableToAccessFile"> Il programma [APP_NAME] non è in grado di accedere ad un file necessario. -Potrebbe darsi che tu abbia copie multiple attivate, o il tuo sistema reputa erroneamente che il file sia già aperto. +Potrebbe darsi che tu abbia copie multiple attivate o che il tuo sistema reputi erroneamente che il file sia già aperto. Se il problema persiste, riavvia il computer e riprova. -Se il problema persiste ancora, dovresti completamente disinstallare l'applicazione [APP_NAME] e reinstallarla. +Se il problema continua ancora, dovresti completamente disinstallare l'applicazione [APP_NAME] e reinstallarla. </string> <string name="MBFatalError"> - Errore fatale + Errore critico </string> <string name="MBRequiresAltiVec"> Il programma [APP_NAME] richiede un processore con AltiVec (G4 o superiore). @@ -1591,7 +1591,7 @@ Vuoi mandare un crash report? </string> <string name="MBNoDirectX"> Il programmma [APP_NAME] non riesce a trovare una DirectX 9.0b o superiore. -[APP_NAME] usa le DirectX per determinare hardware e/o i driver non aggiornati che possono causare problemi di stabilità, scarsa performance e interruzioni. Sebbene tu possa avviare il programma [APP_NAME] senza di esse, raccomandiamo caldamente di installare le DirectX 9.0b. +[APP_NAME] usa DirectX per rilevare hardware e/o i driver non aggiornati che possono causare problemi di stabilità, scarsa performance e interruzioni. Benché tu possa avviare il programma [APP_NAME] senza di esse, consigliamo caldamente l'esecuzione con DirectX 9.0b. Vuoi continuare? </string> @@ -1599,8 +1599,8 @@ Vuoi continuare? Attenzione </string> <string name="MBNoAutoUpdate"> - L'aggiornamento automatico non è stato ancora implementato per Linux. -Raccomandiamo di scaricare l'utima versione da www.secondlife.com. + L'aggiornamento automatico non è stato ancora realizzato per Linux. +Consigliamo di scaricare l'ultima versione direttamente da www.secondlife.com. </string> <string name="MBRegClassFailed"> RegisterClass non riuscito @@ -1609,8 +1609,8 @@ Raccomandiamo di scaricare l'utima versione da www.secondlife.com. Errore </string> <string name="MBFullScreenErr"> - Impossibile visualizzare a schermo intero a risoluzione [WIDTH] x [HEIGHT]. -Visualizzazione corrente ridotta a finestra. + Impossibile visualizzare a schermo intero con risoluzione [WIDTH] x [HEIGHT]. +Visualizzazione corrente in modalità finestra. </string> <string name="MBDestroyWinFailed"> Errore di arresto durante il tentativo di chiusura della finestra (DestroyWindow() non riuscito) @@ -1628,14 +1628,14 @@ Visualizzazione corrente ridotta a finestra. Impossibile ottenere una descrizione del formato pixel </string> <string name="MBTrueColorWindow"> - [APP_NAME] richiede True Color (32-bit) per funzionare. -Vai alle impostazioni dello schermo del tuo computer e imposta il colore in modalità 32-bit. + [APP_NAME] richiede True Color (32 bit) per funzionare. +Vai alle impostazioni dello schermo del tuo computer e imposta il colore in modalità 32 bit. </string> <string name="MBAlpha"> - [APP_NAME] non funziona poichè è impossibile trovare un canale alpha ad 8 Bit. Questo problema normalmente deriva dai driver della scheda video. + [APP_NAME] non funziona poichè è impossibile trovare un canale alpha a 8 bit. Questo problema normalmente deriva dai driver della scheda video. Assicurati di avere installato i driver della scheda video più recenti. -Assicurati anche che il monitor sia impostato a True Color (32-bit) nel pannello di controllo > Display > Settings. -Se il messaggio persiste, contatta contatta [SUPPORT_SITE]. +Assicurati anche che il monitor sia impostato a True Color (32 bit) nel Pannello di controllo > Schermo > Impostazioni. +Se il messaggio persiste, contatta [SUPPORT_SITE]. </string> <string name="MBPixelFmtSetErr"> Impossibile impostare il formato pixel @@ -1647,7 +1647,7 @@ Se il messaggio persiste, contatta contatta [SUPPORT_SITE]. Impossibile attivare il GL rendering </string> <string name="MBVideoDrvErr"> - [APP_NAME] Non riesce ad avviarsi perchè i driver della tua scheda video non sono stati installati correttamente, non sono aggiornati, o sono per un hardware non supportato. Assicurati di avere i driver della scheda video più recenti e anche se li hai installati, prova a reinstallarli di nuovo. + [APP_NAME] Non riesce ad avviarsi perchè i driver della tua scheda video non sono stati installati correttamente, non sono aggiornati, o sono per un hardware non supportato. Assicurati di avere i driver della scheda video più recenti e anche se li hai installati, prova a installarli di nuovo. Se il messaggio persiste, contatta [SUPPORT_SITE]. </string> @@ -1673,43 +1673,43 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Lobi attaccati </string> <string name="Back Bangs"> - #Back Bangs + Frangetta da dietro </string> <string name="Back Bangs Down"> - #Back Bangs Down + Frangetta da dietro giù </string> <string name="Back Bangs Up"> - #Back Bangs Up + Frangetta da dietro su </string> <string name="Back Fringe"> Frangetta all'indietro </string> <string name="Back Hair"> - #Back Hair + Capelli da dietro </string> <string name="Back Hair Down"> - #Back Hair Down + Capelli da dietro giù </string> <string name="Back Hair Up"> - #Back Hair Up + Capelli da dietro su </string> <string name="Baggy"> - Con le borse + Larghi </string> <string name="Bangs"> Frange </string> <string name="Bangs Down"> - #Bangs Down + Frangetta giù </string> <string name="Bangs Up"> - #Bangs Up + Frangetta su </string> <string name="Beady Eyes"> Occhi piccoli </string> <string name="Belly Size"> - punto vita + Punto vita </string> <string name="Big"> Grande @@ -1718,22 +1718,22 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Sedere grande </string> <string name="Big Eyeball"> - #Big Eyeball + Bulbo oculare grande </string> <string name="Big Hair Back"> - Gonfiore dei capelli: dietro + Capigliatura grande: Indietro </string> <string name="Big Hair Front"> - Gonfiore dei capelli: davanti + Capigliatura grande: anteriore </string> <string name="Big Hair Top"> - Gonfiore dei capelli: sopra + Capigliatura grande: in alto </string> <string name="Big Head"> - Grandezza testa + Grande testa </string> <string name="Big Pectorals"> - Grandezza pettorali + Grandi pettorali </string> <string name="Big Spikes"> Capelli con punte @@ -1766,13 +1766,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Lentiggini e nei </string> <string name="Body Thick"> - Corpo robusto + Corpo più robusto </string> <string name="Body Thickness"> Robustezza del corpo </string> <string name="Body Thin"> - Magrezza del corpo + Corpo più magro </string> <string name="Bow Legged"> Gambe arcuate @@ -1781,7 +1781,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Altezza del seno </string> <string name="Breast Cleavage"> - Avvicinamento dei seni + Décolleté </string> <string name="Breast Size"> Grandezza del seno @@ -1796,7 +1796,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Grandezza delle sopracciglia </string> <string name="Bug Eyes"> - Sporgenza degli occhi + Occhi sporgenti </string> <string name="Bugged Eyes"> Occhi sporgenti @@ -1817,19 +1817,19 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Grandezza del sedere </string> <string name="bustle skirt"> - Arricciatura posteriore + Crinolina </string> <string name="no bustle"> - Meno arricciatura + Nessuna crinolina </string> <string name="more bustle"> - Più arricciatura + Più crinolina </string> <string name="Chaplin"> Baffetti </string> <string name="Cheek Bones"> - Mascella + Zigomi </string> <string name="Chest Size"> Ampiezza del torace @@ -1838,7 +1838,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Angolo del mento </string> <string name="Chin Cleft"> - Fessura inf. del mento + Fossetta sul mento </string> <string name="Chin Curtains"> Barba sottomento @@ -1847,16 +1847,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Profondità mento </string> <string name="Chin Heavy"> - Appuntita verso l'alto + Mento forte </string> <string name="Chin In"> Mento in dentro </string> <string name="Chin Out"> - Mento in fuori + Mento sporgente </string> <string name="Chin-Neck"> - Grandezza mento-collo + Mento-collo </string> <string name="Clear"> Trasparente @@ -1871,46 +1871,46 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Chiusa </string> <string name="Closed Back"> - Spacco chiuso dietro + Chiuso dietro </string> <string name="Closed Front"> - Spacco chiuso davanti + Chiuso davanti </string> <string name="Closed Left"> - Spacco chiuso sx + Chiuso sinistra </string> <string name="Closed Right"> - Spacco chiuso dx + Chiuso destra </string> <string name="Coin Purse"> Meno pronunciati </string> <string name="Collar Back"> - Scollatura posteriore + Colletto posteriore </string> <string name="Collar Front"> - Scollatura anteriore + Colletto anteriore </string> <string name="Corner Down"> Angolo all'ingiù </string> <string name="Corner Normal"> - Angolo Normale + Angolo normale </string> <string name="Corner Up"> Angolo all'insù </string> <string name="Creased"> - Alzato + Piega </string> <string name="Crooked Nose"> Naso storto </string> <string name="Cropped Hair"> - Capelli raccolti + Capelli corti </string> <string name="Cuff Flare"> - Fondo pantalone + Svasato con risvolto </string> <string name="Dark"> Scuro @@ -1922,7 +1922,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Più scuro </string> <string name="Deep"> - Più pronunciato + Profondo </string> <string name="Default Heels"> Tacchi standard @@ -1931,40 +1931,40 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Punta del piede standard </string> <string name="Dense"> - Meno rade + Folti </string> <string name="Dense hair"> - #Dense Hair + Capelli folti </string> <string name="Double Chin"> Doppio mento </string> <string name="Downturned"> - Naso all'ingiù + All'ingiù </string> <string name="Duffle Bag"> Più pronunciati </string> <string name="Ear Angle"> - Orecchie a sventola + Angolo orecchie </string> <string name="Ear Size"> Grandezza orecchie </string> <string name="Ear Tips"> - Tipo di orecchio + Estremità orecchie </string> <string name="Egg Head"> Ovalizzazione testa </string> <string name="Eye Bags"> - Borse sotto agli occhi + Occhiaie </string> <string name="Eye Color"> Colore degli occhi </string> <string name="Eye Depth"> - Occhi incavati + Profondità degli occhi </string> <string name="Eye Lightness"> Luminosità degli occhi @@ -1973,7 +1973,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Apertura degli occhi </string> <string name="Eye Pop"> - Differenza apertura occhi + Prominenza degli occhi </string> <string name="Eye Size"> Grandezza occhi @@ -1982,7 +1982,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Distanza occhi </string> <string name="Eyeball Size"> - #Eyeball Size + Grandezza bulbo oculare </string> <string name="Eyebrow Arc"> Arco delle sopracciglia @@ -2009,64 +2009,64 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Colore dell'eyeliner </string> <string name="Eyes Back"> - #Eyes Back + Occhi indietro </string> <string name="Eyes Bugged"> Occhi sporgenti </string> <string name="Eyes Forward"> - #Eyes Forward + Occhi in avanti </string> <string name="Eyes Long Head"> - #Eyes Long Head + Occhi testa lunga </string> <string name="Eyes Shear Left Up"> - Distorsione occhi in alto a sx + Occhio a sinistra verso l'alto </string> <string name="Eyes Shear Right Up"> - Distorsione occhi in alto a dx + Occhio a destra verso il basso </string> <string name="Eyes Short Head"> - #Eyes Short Head + Occhi testa corta </string> <string name="Eyes Spread"> - #Eyes Spread + Spaziatura occhi </string> <string name="Eyes Sunken"> - #Eyes Sunken + Occhi infossati </string> <string name="Eyes Together"> - #Eyes Together + Occhi ravvicinati </string> <string name="Face Shear"> - Distorsione del viso + Taglio del viso </string> <string name="Facial Definition"> - Lineamenti del viso + Definizione del viso </string> <string name="Far Set Eyes"> Occhi distanti </string> <string name="Fat"> - #Fat + Grasso </string> <string name="Fat Head"> - #Fat Head + Testa grossa </string> <string name="Fat Lips"> Labbra carnose </string> <string name="Fat Lower"> - #Fat Lower + Inferiore carnoso </string> <string name="Fat Lower Lip"> Labbro inferiore sporgente </string> <string name="Fat Torso"> - #Fat Torso + Torace grosso </string> <string name="Fat Upper"> - #Fat Upper + Torace grosso </string> <string name="Fat Upper Lip"> Labbro superiore sporgente @@ -2081,7 +2081,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Dita </string> <string name="Flared Cuffs"> - Fondo largo + Risvolti svasati </string> <string name="Flat"> Piatto @@ -2090,88 +2090,88 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Sedere piatto </string> <string name="Flat Head"> - Viso piatto + Testa piatta </string> <string name="Flat Toe"> Punta piatta </string> <string name="Foot Size"> - Grandezza piede + Misura piede </string> <string name="Forehead Angle"> Angolo della fronte </string> <string name="Forehead Heavy"> - Appuntita verso il basso + Fronte sporgente </string> <string name="Freckles"> Lentiggini </string> <string name="Front Bangs Down"> - #Front Bangs Down + Frangette in giù </string> <string name="Front Bangs Up"> - #Front Bangs Up + Frangette in su </string> <string name="Front Fringe"> Frangetta </string> <string name="Front Hair"> - #Front Hair + Capelli davanti </string> <string name="Front Hair Down"> - #Front Hair Down + Capelli davanti sciolti </string> <string name="Front Hair Up"> - #Front Hair Up + Capelli davanti raccolti </string> <string name="Full Back"> - Scostati + Dietro gonfi </string> <string name="Full Eyeliner"> - Con eyeliner + Eyeliner marcato </string> <string name="Full Front"> - Anteriore pieno + Anteriore gonfio </string> <string name="Full Hair Sides"> - Riempimento lati + Lati capelli gonfi </string> <string name="Full Sides"> - Pieni + Lati gonfi </string> <string name="Glossy"> Lucido </string> <string name="Glove Fingers"> - Dita dei guanti + Dita con guanti </string> <string name="Glove Length"> Lunghezza guanti </string> <string name="Hair"> - Capelli + Capigliature </string> <string name="Hair Back"> - Capelli: dietro + Capelli: Indietro </string> <string name="Hair Front"> - Capelli: davanti + Capelli: anteriore </string> <string name="Hair Sides"> Capelli: lati </string> <string name="Hair Sweep"> - Traslazione + Direzione capigliatura </string> <string name="Hair Thickess"> - Spessore + Foltezza </string> <string name="Hair Thickness"> - Spessore barba + Foltezza </string> <string name="Hair Tilt"> - Rotazione capelli + Inclinazione </string> <string name="Hair Tilted Left"> Verso sinistra @@ -2180,16 +2180,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Verso destra </string> <string name="Hair Volume"> - Capelli: volume + Capelli: Volume </string> <string name="Hand Size"> Grandezza mani </string> <string name="Handlebars"> - Baffi lunghi + Baffi a manubrio </string> <string name="Head Length"> - Sporgenza del viso + Lunghezza testa </string> <string name="Head Shape"> Forma della testa @@ -2198,7 +2198,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Grandezza della testa </string> <string name="Head Stretch"> - Compressione lat testa + Allungamento testa </string> <string name="Heel Height"> Altezza tacchi @@ -2222,7 +2222,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Alta </string> <string name="High and Tight"> - Cavallo alto + Alto e stretto </string> <string name="Higher"> Più alto @@ -2267,7 +2267,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Forma del mento </string> <string name="Join"> - Avvicinati + Iscriviti </string> <string name="Jowls"> Guance @@ -2297,7 +2297,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Meno </string> <string name="Less Body Fat"> - Meno grasso + Meno grasso corporeo </string> <string name="Less Curtains"> Meno @@ -2339,16 +2339,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Meno </string> <string name="Lighter"> - Più chiaro + Più leggero </string> <string name="Lip Cleft"> - Distanza divis. labbro sup. + Distanza fossetta labbro </string> <string name="Lip Cleft Depth"> - Prof. spacco labbro sup. + Prof. fossetta labbro </string> <string name="Lip Fullness"> - Riempimento delle labbra + Volume labbra </string> <string name="Lip Pinkness"> Tonalità rosa labbra @@ -2375,7 +2375,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Lungo </string> <string name="Long Head"> - Viso sporgente + Testa lunga </string> <string name="Long Hips"> Bacino alto @@ -2387,7 +2387,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Collo lungo </string> <string name="Long Pigtails"> - Ciuffi laterali lunghi + Codini lunghi </string> <string name="Long Ponytail"> Codino lungo @@ -2399,16 +2399,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Braccia lunghe </string> <string name="Longcuffs"> - Longcuffs + Maniche lunghe </string> <string name="Loose Pants"> - Non attillati + Pantaloni ampi </string> <string name="Loose Shirt"> - Non attillata + Camicia ampia </string> <string name="Loose Sleeves"> - Maniche lente + Maniche non attillate </string> <string name="Love Handles"> Maniglie dell'amore @@ -2426,7 +2426,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Bassa </string> <string name="Low and Loose"> - Cavallo basso + Basso e ampio </string> <string name="Lower"> Più basso @@ -2435,7 +2435,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Parte bassa del setto </string> <string name="Lower Cheeks"> - Guance + Guance inferiori </string> <string name="Male"> Maschio @@ -2444,13 +2444,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Riga nel mezzo </string> <string name="More"> - Di più + Altro </string> <string name="More Blush"> Più fard </string> <string name="More Body Fat"> - Più grasso + Più grasso corporeo </string> <string name="More Curtains"> Più @@ -2519,7 +2519,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Posizione della bocca </string> <string name="Mowhawk"> - Vuoti + Moicana </string> <string name="Muscular"> Muscolatura @@ -2597,10 +2597,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Superiore normale </string> <string name="Nose Left"> - Storto a sinistra + Naso a sinistra </string> <string name="Nose Right"> - Storto a destra + Naso a destra </string> <string name="Nose Size"> Grandezza naso @@ -2630,13 +2630,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Opaco </string> <string name="Open"> - Aperto + Apri </string> <string name="Open Back"> Retro aperto </string> <string name="Open Front"> - Aperto Frontale + Davanti aperto </string> <string name="Open Left"> Lato sin. aperto @@ -2672,7 +2672,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Genitali </string> <string name="Painted Nails"> - Unghie colorate + Unghie smaltate </string> <string name="Pale"> Pallido @@ -2687,7 +2687,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Lunghezza pantaloni </string> <string name="Pants Waist"> - Altezza slip + Taglia pantalone </string> <string name="Pants Wrinkles"> Pantaloni con le grinze @@ -2705,7 +2705,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Pigmento </string> <string name="Pigtails"> - Ciuffi + Codini </string> <string name="Pink"> Rosa @@ -2807,16 +2807,16 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Meno pronunciato </string> <string name="Shear Back"> - Accostamento posteriore + Taglio posteriore </string> <string name="Shear Face"> - Distorsione viso + Taglio del viso </string> <string name="Shear Front"> - Riempimento davanti + Taglio anteriore </string> <string name="Shear Left"> - A sinistra + Taglio a sinistra </string> <string name="Shear Left Up"> Distorto a sinistra @@ -2828,10 +2828,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Distorto a destra </string> <string name="Sheared Back"> - Accostati + Taglio verso dietro </string> <string name="Sheared Front"> - Anteriormente vuoto + Taglio verso davanti </string> <string name="Shift Left"> A sinistra @@ -2867,10 +2867,10 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Collo corto </string> <string name="Short Pigtails"> - Ciuffi laterali corti + Codini corti </string> <string name="Short Ponytail"> - Codino Corto + Codino corto </string> <string name="Short Sideburns"> Basette corte @@ -2900,13 +2900,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Basette </string> <string name="Sides Hair"> - Capigliatura later. + Capigliatura di lato </string> <string name="Sides Hair Down"> - Giù + Capigliatura di lato sciolta </string> <string name="Sides Hair Up"> - Su + Capigliatura di lato raccolta </string> <string name="Skinny"> Skinny @@ -2930,19 +2930,19 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Morbidezza maniche </string> <string name="Slit Back"> - Spacco: posteriore + Spacco: Indietro </string> <string name="Slit Front"> Spacco: anteriore </string> <string name="Slit Left"> - Spacco: sinistro + Spacco: Sinistra </string> <string name="Slit Right"> - Spacco: destro + Spacco: Destra </string> <string name="Small"> - Piccolo + Piccola </string> <string name="Small Hands"> Mani piccole @@ -3032,37 +3032,37 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Punta spessa </string> <string name="Thickness"> - Thickness + Spessore </string> <string name="Thin"> - Ossute + Sottili </string> <string name="Thin Eyebrows"> - Sopracciglia fini + Sopracciglia sottili </string> <string name="Thin Lips"> - Labbra fini + Labbra sottili </string> <string name="Thin Nose"> - Naso fino + Naso sottile </string> <string name="Tight Chin"> - Mento magro + Mento stretto </string> <string name="Tight Cuffs"> Fondo stretto </string> <string name="Tight Pants"> - Attillati + Pantaloni attillati </string> <string name="Tight Shirt"> - Attilata + Camicia attillata </string> <string name="Tight Skirt"> - Attillata + Gonna attillata </string> <string name="Tight Sleeves"> - Attillate + Maniche strette </string> <string name="Tilt Left"> Tilt Left @@ -3089,7 +3089,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Distaccato </string> <string name="Uncreased"> - Abbassato + Senza piega </string> <string name="Underbite"> Denti inf. in fuori @@ -3104,13 +3104,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Parte alta degli zigomi </string> <string name="Upper Chin Cleft"> - Fessura sup. del mento + Fossetta sup. del mento </string> <string name="Upper Eyelid Fold"> Piega palpebra sup. </string> <string name="Upturned"> - Naso all'insù + All'insù </string> <string name="Very Red"> Molto rossi @@ -3125,13 +3125,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Capelli bianchi </string> <string name="Wide"> - Spalancati + Largo </string> <string name="Wide Back"> - Laterali post. larghi + Dietro largo </string> <string name="Wide Front"> - Laterali ant. larghi + Davanti largo </string> <string name="Wide Lips"> Labbra larghe @@ -3143,31 +3143,31 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Grinze </string> <string name="LocationCtrlAddLandmarkTooltip"> - Aggiungi ai miei landmark + Aggiungi ai miei punti di riferimento </string> <string name="LocationCtrlEditLandmarkTooltip"> - Modifica i miei landmark + Modifica i miei punti di riferimento </string> <string name="LocationCtrlInfoBtnTooltip"> - maggiori informazioni sulla posizione attuale + Maggiori informazioni sulla posizione attuale </string> <string name="LocationCtrlComboBtnTooltip"> - Lo storico delle mie posizioni + La cronologia delle mie posizioni </string> <string name="UpdaterWindowTitle"> Aggiornamento [APP_NAME] </string> <string name="UpdaterNowUpdating"> - [APP_NAME] In aggiornamento... + Aggiornamento di [APP_NAME]... </string> <string name="UpdaterNowInstalling"> - [APP_NAME] In installazione... + Installazione di [APP_NAME]... </string> <string name="UpdaterUpdatingDescriptive"> - Il Viewer del programma [APP_NAME] si sta aggiornando all'ultima versione. Potrebbe volerci del tempo, attendi. + Il Viewer del programma [APP_NAME] si sta aggiornando all'ultima versione. Potrebbe volerci del tempo, attendi. </string> <string name="UpdaterProgressBarTextWithEllipses"> - Aggiornamento in download... + Download dell'aggiornamento... </string> <string name="UpdaterProgressBarText"> Download dell'aggiornamento @@ -3176,13 +3176,13 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. Download dell'aggiornamento non riuscito </string> <string name="UpdaterFailUpdateDescriptive"> - Il programma [APP_NAME] ha riscontrato un'errore nel tentativo di aggiornamento. Consigliamo di scaricare l'ultima versione direttamente da www.secondlife.com. + Il programma [APP_NAME] ha riscontrato un'errore durante il tentativo di aggiornamento. Consigliamo di scaricare l'ultima versione direttamente da www.secondlife.com. </string> <string name="UpdaterFailInstallTitle"> - Tentativo di installazione aggiornamento non riuscito + Installazione dell'aggiornamento non riuscita </string> <string name="UpdaterFailStartTitle"> - Errore nell'apertura del viewer + Errore nell'avvio del viewer </string> <string name="IM_logging_string"> -- Registrazione messaggi instantanei abilitata -- @@ -3194,7 +3194,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. (anonimo) </string> <string name="IM_moderated_chat_label"> - (Moderato: Voice spento di default) + (Moderato: Voci disattivate di default) </string> <string name="IM_unavailable_text_label"> La chat di testo non è disponibile per questa chiamata. @@ -3203,7 +3203,7 @@ Se il messaggio persiste, contatta [SUPPORT_SITE]. La chat di testo è stata disabilitata da un moderatore di gruppo. </string> <string name="IM_default_text_label"> - Clicca qua per inviare un messaggio instantaneo. + Clicca qui per inviare un messaggio instantaneo. </string> <string name="IM_to_label"> A diff --git a/indra/newview/skins/default/xui/it/teleport_strings.xml b/indra/newview/skins/default/xui/it/teleport_strings.xml index eff7516050..4a1fcee0f9 100644 --- a/indra/newview/skins/default/xui/it/teleport_strings.xml +++ b/indra/newview/skins/default/xui/it/teleport_strings.xml @@ -2,12 +2,12 @@ <teleport_messages> <message_set name="errors"> <message name="invalid_tport"> - C'è stato un problema nell'elaborare la tua richiesta di teleport. Potresti aver bisogno di ricollegarti prima di poter usare il teleport. Se continui ad avere problemi, controlla per favore le FAQ del Supporto Tecnico a: -www.secondlife.com/support. + C'è stato un problema nell'elaborare la tua richiesta di teleport. Potresti dover effettuare nuovamente l'accesso prima di poter usare il teleport. +Se si continua a visualizzare questo messaggio, consulta la pagina [SUPPORT_SITE]. </message> <message name="invalid_region_handoff"> - C'è stato un problema nell'elaborare il cambio di regione. Potresti aver bisogno di ricollegarti prima di poterlo effetuare. Se continui ad avere problemi, controlla per favore le FAQ del Supporto Tecnico a: -www.secondlife.com/support. + Si è verificato un problema nel tentativo di attraversare regioni. È possibile che per potere attraversare le regioni, tu debba effettuare nuovamente l'accesso. +Se si continua a visualizzare questo messaggio, consulta la pagina [SUPPORT_SITE]. </message> <message name="blocked_tport"> Spiacenti, il teletrasporto è bloccato al momento. Prova di nuovo tra pochi istanti. Se ancora non potrai teletrasportarti, per favore scollegati e ricollegati per risolvere il problema. diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml index ceda48109e..bdd1cc60b7 100644 --- a/indra/newview/skins/default/xui/ja/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml @@ -442,6 +442,9 @@ <panel.string name="access_estate_defined"> (エステートに限定) </panel.string> + <panel.string name="allow_public_access"> + パブリックアクセスを許可 ([MATURITY]) + </panel.string> <panel.string name="estate_override"> 1 つ以上のオプションが、不動産レベルで設定されています。 </panel.string> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_pick.xml b/indra/newview/skins/default/xui/ja/panel_edit_pick.xml index 88c05fbae7..e58fa979d7 100644 --- a/indra/newview/skins/default/xui/ja/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/ja/panel_edit_pick.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="ピック編集" name="panel_edit_pick"> + <panel.string name="location_notice"> + (掲載後更新) + </panel.string> <text name="title"> ピック編集 </text> @@ -22,7 +25,7 @@ </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> - <button label="[WHAT] を保存" name="save_changes_btn"/> + <button label="ピックを保存" name="save_changes_btn"/> <button label="キャンセル" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml index c0449f1221..ef6d8cce47 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml @@ -45,7 +45,7 @@ あなたの貢献: </text> <text name="your_contribution_units"> - 平方メートル + m² </text> <text name="your_contribution_max_value"> (最大 [AMOUNT]) diff --git a/indra/newview/skins/default/xui/ja/panel_group_roles.xml b/indra/newview/skins/default/xui/ja/panel_group_roles.xml index db6fe268c7..8a629be910 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_roles.xml @@ -17,7 +17,7 @@ Ctrl キーを押しながらメンバー名をクリックすると <name_list name="member_list"> <name_list.columns label="メンバー" name="name"/> <name_list.columns label="寄付" name="donated"/> - <name_list.columns label="ステータス" name="online"/> + <name_list.columns label="ログイン" name="online"/> </name_list> <button label="招待" name="member_invite"/> <button label="追放" name="member_eject"/> @@ -44,7 +44,7 @@ Ctrl キーを押しながらメンバー名をクリックすると <filter_editor label="役割を選別" name="filter_input"/> <scroll_list name="role_list"> <scroll_list.columns label="役割" name="name"/> - <scroll_list.columns label="肩書き" name="title"/> + <scroll_list.columns label="タイトル" name="title"/> <scroll_list.columns label="#" name="members"/> </scroll_list> <button label="新しい役割" name="role_create"/> diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml index 36c7b75f97..9981d13bbb 100644 --- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml @@ -1,18 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="もの" name="main inventory panel"> - <panel.string name="Title"> - もの + <panel.string name="ItemcountFetching"> + [ITEM_COUNT] 個のアイテムを取得中です... [FILTER] </panel.string> - <filter_editor label="持ち物をフィルター" name="inventory search editor"/> - <tab_container name="inventory filter tabs"> - <inventory_panel label="持ち物" name="All Items"/> - <inventory_panel label="最新" name="Recent Items"/> - </tab_container> - <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="その他のオプションを表示します"/> - <button name="add_btn" tool_tip="新しいアイテムを追加します"/> - <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除します"/> - </panel> + <panel.string name="ItemcountCompleted"> + [ITEM_COUNT] 個のアイテム [FILTER] + </panel.string> + <text name="ItemcountText"> + アイテム: + </text> <menu_bar name="Inventory Menu"> <menu label="ファイル" name="File"> <menu_item_call label="開く" name="Open"/> @@ -61,4 +57,14 @@ <menu_item_check label="システムフォルダを上に並べる" name="System Folders To Top"/> </menu> </menu_bar> + <filter_editor label="持ち物をフィルター" name="inventory search editor"/> + <tab_container name="inventory filter tabs"> + <inventory_panel label="持ち物" name="All Items"/> + <inventory_panel label="最新" name="Recent Items"/> + </tab_container> + <panel name="bottom_panel"> + <button name="options_gear_btn" tool_tip="その他のオプションを表示します"/> + <button name="add_btn" tool_tip="新しいアイテムを追加します"/> + <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除します"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml index eae9ac03c3..fb273de420 100644 --- a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml @@ -19,10 +19,17 @@ <button label="詳細 >>" label_selected="簡易 <<" name="more_less_btn" tool_tip="アドバンスコントロール"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media"> + 近くのメディア + </text> + <text name="show"> + 表示: + </text> <combo_box name="show_combo"> <combo_box.item label="すべて" name="All"/> <combo_box.item label="この区画内" name="WithinParcel"/> <combo_box.item label="この区画外" name="OutsideParcel"/> + <combo_box.item label="他のアバター" name="OnOthers"/> </combo_box> <scroll_list name="media_list"> <scroll_list.columns label="近接" name="media_proximity"/> @@ -31,7 +38,7 @@ <scroll_list.columns label="名前" name="media_name"/> <scroll_list.columns label="デバッグ" name="media_debug"/> </scroll_list> - <panel> + <panel name="media_controls_panel"> <layout_stack name="media_controls"> <layout_panel name="stop"> <button name="stop_btn" tool_tip="選択したメディアを停止"/> diff --git a/indra/newview/skins/default/xui/ja/panel_places.xml b/indra/newview/skins/default/xui/ja/panel_places.xml index a7fbc79884..acfa0bf4e8 100644 --- a/indra/newview/skins/default/xui/ja/panel_places.xml +++ b/indra/newview/skins/default/xui/ja/panel_places.xml @@ -2,7 +2,7 @@ <panel label="場所" name="places panel"> <string name="landmarks_tab_title" value="マイ ランドマーク"/> <string name="teleport_history_tab_title" value="テレポートの履歴"/> - <filter_editor label="私の場所をフィルターする" name="Filter"/> + <filter_editor label="場所をフィルター" name="Filter"/> <panel name="button_panel"> <button label="テレポート" name="teleport_btn" tool_tip="該当するエリアにテレポートします"/> <button label="地図" name="map_btn"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml index 87cd772143..a8520a51cc 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml @@ -3,6 +3,9 @@ <panel.string name="aspect_ratio_text"> [NUM]:[DEN] </panel.string> + <panel.string name="middle_mouse"> + マウスの中央 + </panel.string> <slider label="視界角" name="camera_fov"/> <slider label="距離" name="camera_offset_scale"/> <text name="heading2"> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml index a521556c79..e5780697b1 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml @@ -46,6 +46,12 @@ <check_box initial_value="true" label="チャット中にタイピング動作のアニメーションを再生" name="play_typing_animation"/> <check_box label="オフライン時に受け取った IM をメールで受信" name="send_im_to_email"/> <check_box label="チャット履歴に文字だけ表示する" name="plain_text_chat_history"/> + <text name="show_ims_in_label"> + IM の表示方法: + </text> + <text name="requires_restart_label"> + (再起動後に反映) + </text> <radio_group name="chat_window" tool_tip="インスタントメッセージを別フローター、または1つのフローターに複数タブで表示します(要再起動)"> <radio_item label="別々のウィンドウ" name="radio" value="0"/> <radio_item label="タブ" name="radio2" value="1"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml index 6df59ca189..4ccb70b321 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml @@ -44,7 +44,7 @@ <radio_item label="オン" name="radio2" value="1"/> <radio_item label="一時的に表示" name="radio3" value="2"/> </radio_group> - <check_box label="私の名前を表示" name="show_my_name_checkbox1"/> + <check_box label="自分の名前を表示" name="show_my_name_checkbox1"/> <check_box initial_value="true" label="小さいアバター名" name="small_avatar_names_checkbox"/> <check_box label="グループタイトルを表示" name="show_all_title_checkbox1"/> <text name="effects_color_textbox"> @@ -53,12 +53,12 @@ <text name="title_afk_text"> 一時退席までの時間: </text> - <color_swatch label="" name="effect_color_swatch" tool_tip="カラー・ピッカーをクリックして開く"/> + <color_swatch label="" name="effect_color_swatch" tool_tip="クリックでカラーピッカーを開きます"/> <combo_box label="一時退席までの時間:" name="afk"> - <combo_box.item label="2分" name="item0"/> - <combo_box.item label="5分" name="item1"/> - <combo_box.item label="10分" name="item2"/> - <combo_box.item label="30分" name="item3"/> + <combo_box.item label="2 分" name="item0"/> + <combo_box.item label="5 分" name="item1"/> + <combo_box.item label="10 分" name="item2"/> + <combo_box.item label="30 分" name="item3"/> <combo_box.item label="一時退席設定なし" name="item4"/> </combo_box> <text name="text_box3"> diff --git a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml index 4fba4b1567..94be8ba73d 100644 --- a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml @@ -10,7 +10,7 @@ MyOutfit With a really Long Name like MOOSE </text> </panel> - <filter_editor label="アウトフィットのフィルター" name="Filter"/> + <filter_editor label="アウトフィットをフィルター" name="Filter"/> <button label="装着" name="wear_btn"/> <button label="新しいアウトフィット" name="newlook_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 688e4751de..fb70c7db09 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -23,7 +23,22 @@ ハードウェアの検出中です... </string> <string name="StartupLoading"> - ローディング + [APP_NAME] をインストール中です... + </string> + <string name="StartupClearingCache"> + キャッシュをクリア中です... + </string> + <string name="StartupInitializingTextureCache"> + テクスチャキャッシュを初期化中です... + </string> + <string name="StartupInitializingVFS"> + VFS を初期化中です... + </string> + <string name="ProgressRestoring"> + 復元中です... + </string> + <string name="ProgressChangingResolution"> + 解像度を変更中です... </string> <string name="Fullbright"> 明るさ全開(レガシー) @@ -88,6 +103,9 @@ <string name="LoginFailedNoNetwork"> ネットワークエラー: 接続を確立できませんでした。お使いのネットワーク接続をご確認ください。 </string> + <string name="LoginFailed"> + ログインに失敗しました。 + </string> <string name="Quit"> 終了 </string> @@ -97,6 +115,24 @@ <string name="AgentLostConnection"> このリージョンに不都合が発生している可能性があります。 ご使用のインターネット接続をご確認ください。 </string> + <string name="SavingSettings"> + 設定を保存中です... + </string> + <string name="LoggingOut"> + ログアウト中です... + </string> + <string name="ShuttingDown"> + シャットダウン中です... + </string> + <string name="YouHaveBeenDisconnected"> + あなたがいたリージョンへの接続が切れました。 + </string> + <string name="SentToInvalidRegion"> + 無効なリージョンにテレポートされました。 + </string> + <string name="TestingDisconnect"> + ビューワの接続を切るテスト中 + </string> <string name="TooltipPerson"> 人 </string> @@ -151,6 +187,24 @@ <string name="TooltipAgentUrl"> クリックしてこの住人のプロフィールを見ます </string> + <string name="TooltipAgentMute"> + クリックしてこの住人に対して無視設定をします + </string> + <string name="TooltipAgentUnmute"> + クリックしてこの住人に対する無視設定を解除します + </string> + <string name="TooltipAgentIM"> + クリックしてこの住人に IM を送ります + </string> + <string name="TooltipAgentPay"> + クリックしてこの住人に支払います + </string> + <string name="TooltipAgentOfferTeleport"> + クリックしてこの住人にテレポートのリクエストを送ります + </string> + <string name="TooltipAgentRequestFriend"> + クリックしてこの住人にフレンド登録リクエストを送ります + </string> <string name="TooltipGroupUrl"> クリックしてこのグループの説明文を見ます </string> @@ -176,12 +230,31 @@ クリックして secondlife:// コマンドを出します </string> <string name="CurrentURL" value=" 現在の URL: [CurrentURL]"/> + <string name="TooltipPrice" value="L$[PRICE]-"/> <string name="SLurlLabelTeleport"> テレポート </string> <string name="SLurlLabelShowOnMap"> 地図に表示 </string> + <string name="SLappAgentMute"> + 無視 + </string> + <string name="SLappAgentUnmute"> + ミュート解除 + </string> + <string name="SLappAgentIM"> + IM + </string> + <string name="SLappAgentPay"> + 支払う + </string> + <string name="SLappAgentOfferTeleport"> + 次の場所にテレポートを送ります: + </string> + <string name="SLappAgentRequestFriend"> + フレンド登録リクエスト + </string> <string name="BUTTON_CLOSE_DARWIN"> 閉じる (⌘W) </string> @@ -335,6 +408,9 @@ <string name="symbolic link"> リンク </string> + <string name="symbolic folder link"> + フォルダのリンク + </string> <string name="AvatarEditingAppearance"> (容姿の編集中) </string> @@ -828,7 +904,7 @@ ESC キーを押してワールドビューに戻ります </string> <string name="InventoryNoMatchingItems"> - 一致するアイテムが持ち物にありませんでした。 [secondlife:///app/search/groups 「検索」] をお試しください。 + 一致するアイテムがありませんでした。[secondlife:///app/search/groups 「検索」]をお試しください。 </string> <string name="FavoritesNoMatchingItems"> ここにランドマークをドラッグして、お気に入りに追加します。 @@ -849,6 +925,7 @@ コンテンツなし </string> <string name="WornOnAttachmentPoint" value=" ([ATTACHMENT_POINT] に装着中)"/> + <string name="ActiveGesture" value="[GESLABEL] (アクティブ)"/> <string name="PermYes"> はい </string> @@ -948,6 +1025,9 @@ <string name="InvFolder My Outfits"> マイ アウトフィット </string> + <string name="InvFolder Accessories"> + アクセサリ + </string> <string name="InvFolder Friends"> フレンド </string> @@ -1301,7 +1381,7 @@ 許可された住人: ([ALLOWEDAGENTS] 人、最大 [MAXACCESS] 人) </string> <string name="RegionInfoAllowedGroups"> - 許可されたグループ: ([ALLOWEDGROUPS]、最大 [MAXACCESS] グループ) + 許可されたグループ: ([ALLOWEDGROUPS]、最大 [MAXACCESS] ) </string> <string name="ScriptLimitsParcelScriptMemory"> 区画スクリプトメモリ @@ -1471,6 +1551,9 @@ <string name="PanelContentsNewScript"> 新規スクリプト </string> + <string name="PanelContentsTooltip"> + オブジェクトの中身 + </string> <string name="BusyModeResponseDefault"> メッセージを送った住人は、誰にも邪魔をされたくないため現在「取り込み中」モードです。 あなたのメッセージは、あとで確認できるように IM パネルに表示されます。 </string> @@ -3375,4 +3458,31 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ <string name="unread_chat_multiple"> [SOURCES] は何か新しいことを言いました。 </string> + <string name="paid_you_ldollars"> + [NAME] は L$[AMOUNT] 支払いました + </string> + <string name="giving"> + Giving + </string> + <string name="uploading_costs"> + アップロード代金 + </string> + <string name="this_costs"> + This costs + </string> + <string name="buying_selected_land"> + 選択した土地を購入 + </string> + <string name="this_object_costs"> + This object costs" + </string> + <string name="group_role_everyone"> + 全員 + </string> + <string name="group_role_officers"> + オフィサー + </string> + <string name="group_role_owners"> + オーナー + </string> </strings> diff --git a/indra/newview/skins/default/xui/nl/floater_about_land.xml b/indra/newview/skins/default/xui/nl/floater_about_land.xml index 3a77de70d2..8f27e08f66 100644 --- a/indra/newview/skins/default/xui/nl/floater_about_land.xml +++ b/indra/newview/skins/default/xui/nl/floater_about_land.xml @@ -26,14 +26,14 @@ <text name="OwnerText" left="102" width="242"> Leyla Linden </text> - <button label="Profiel..." label_selected="Profiel..." name="Profile..."/> + <button label="Profiel" name="Profile..."/> <text name="Group:"> Groep: </text> <text left="102" name="GroupText" width="242"/> - <button label="Instellen..." label_selected="Instellen..." name="Set..."/> + <button label="Instellen" name="Set..."/> <check_box label="Overdracht aan groep toestaan" name="check deed" tool_tip="Een groepofficier kan dit land aan de groep overdragen, zodat het ondersteund wordt door de landallocatie van de groep."/> - <button label="Overdragen..." label_selected="Overdragen..." name="Deed..." tool_tip="U mag alleen land overdragen indien u een officier bent in de geselecteerde groep."/> + <button label="Overdragen" name="Deed..." tool_tip="U mag alleen land overdragen indien u een officier bent in de geselecteerde groep."/> <check_box label="Eigenaar maakt bijdrage met overdracht" name="check contrib" tool_tip="Wanneer het land is overgedragen aan de groep, draagt de voormalig eigenaar voldoende landtoewijzing bij om het te ondersteunen."/> <text name="For Sale:"> Te koop: @@ -44,7 +44,7 @@ <text name="For Sale: Price L$[PRICE]."> Prijs: L$[PRICE] (L$[PRICE_PER_SQM]/m²). </text> - <button label="Verkoop land..." label_selected="Verkoop land..." name="Sell Land..."/> + <button label="Verkoop land" name="Sell Land..."/> <text name="For sale to"> Te koop voor: [BUYER] </text> @@ -74,11 +74,11 @@ 0 </text> <button left="130" width="125" label="Koop land..." label_selected="Koop land..." name="Buy Land..."/> - <button label="Koop voor groep..." label_selected="Koop voor groep..." name="Buy For Group..."/> + <button label="Koop voor groep" name="Buy For Group..."/> <button left="130" width="125" label="Koop toegangspas..." label_selected="Koop toegangspas..." name="Buy Pass..." tool_tip="Een toegangspas geeft u tijdelijk toegang tot dit land."/> - <button label="Land Afstaan..." label_selected="Land Afstaan..." name="Abandon Land..."/> - <button label="Land terugvorderen..." label_selected="Land terugvorderen..." name="Reclaim Land..."/> - <button label="Lindenverkoop..." label_selected="Lindenverkoop..." name="Linden Sale..." tool_tip="Land moet in bezit zijn, de inhoud moet ingesteld zijn en niet al ter veiling zijn aangeboden."/> + <button label="Land Afstaan" name="Abandon Land..."/> + <button label="Land terugvorderen" name="Reclaim Land..."/> + <button label="Lindenverkoop" name="Linden Sale..." tool_tip="Land moet in bezit zijn, de inhoud moet ingesteld zijn en niet al ter veiling zijn aangeboden."/> <panel.string name="new users only"> Alleen nieuwe gebruikers </panel.string> @@ -224,7 +224,7 @@ of opgedeeld. [COUNT] </text> <button label="Toon" label_selected="Toon" name="ShowOwner" right="-135" width="60"/> - <button label="Retourneren..." label_selected="Retourneren..." name="ReturnOwner..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/> + <button label="Retourneren" name="ReturnOwner..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/> <text name="Set to group:" left="14" width="180"> Groep toewijzen: </text> @@ -232,7 +232,7 @@ of opgedeeld. [COUNT] </text> <button label="Toon" label_selected="Toon" name="ShowGroup" right="-135" width="60"/> - <button label="Retourneren..." label_selected="Retourneren..." name="ReturnGroup..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/> + <button label="Retourneren" name="ReturnGroup..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/> <text name="Owned by others:" left="14" width="128"> Eigendom van anderen: </text> @@ -240,7 +240,7 @@ of opgedeeld. [COUNT] </text> <button label="Toon" label_selected="Toon" name="ShowOther" right="-135" width="60"/> - <button label="Retourneren..." label_selected="Retourneren..." name="ReturnOther..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/> + <button label="Retourneren" name="ReturnOther..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/> <text name="Selected / sat upon:" left="14" width="193"> Geselecteerd/Er op gezeten </text> @@ -256,7 +256,7 @@ of opgedeeld. Objecteigenaren: </text> <button label="Ververs lijst" label_selected="Ververs lijst" name="Refresh List" bottom="-213"/> - <button label="Retourneer objecten..." label_selected="Retourneer objecten..." name="Return objects..." width="164" bottom="-213"/> + <button label="Retourneer objecten" name="Return objects..." width="164" bottom="-213"/> <name_list name="owner list" height="104"> <column label="Type" name="type"/> <column label="Naam" name="name"/> diff --git a/indra/newview/skins/default/xui/pl/floater_about_land.xml b/indra/newview/skins/default/xui/pl/floater_about_land.xml index d456ea26b4..8a4b1a4d53 100644 --- a/indra/newview/skins/default/xui/pl/floater_about_land.xml +++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml @@ -26,13 +26,13 @@ <text name="OwnerText"> Leyla Linden </text> - <button label="Profile..." label_selected="Profile..." name="Profile..."/> + <button label="Profile" name="Profile..."/> <text name="Group:"> Grupa: </text> - <button label="Ustaw..." label_selected="Ustaw..." name="Set..."/> + <button label="Ustaw" name="Set..."/> <check_box label="Udostępnij przypisywanie na grupę" name="check deed" tool_tip="Oficer grupy ma prawo przepisać prawo własności posiadłości na grupę. Posiadłość wspierana jest przez przydziały pochodzące od członków grupy."/> - <button label="Przypisz..." label_selected="Przypisz..." name="Deed..." tool_tip="Prawo przypisania posiadłości na grupę może dokonać jedynie oficer grupy."/> + <button label="Przypisz" name="Deed..." tool_tip="Prawo przypisania posiadłości na grupę może dokonać jedynie oficer grupy."/> <check_box label="Właścicel dokonuje wpłat związanych z posiadłością" name="check contrib" tool_tip="Kiedy posiadłość zostaje przypisana na grupę, poprzedni właściciel realizuje wpłaty z nią związane w celu jej utrzymania."/> <text name="For Sale:"> Na Sprzedaż: @@ -43,7 +43,7 @@ <text name="For Sale: Price L$[PRICE]."> Cena: L$[PRICE] (L$[PRICE_PER_SQM]/m²). </text> - <button label="Sprzedaj Posiadłość..." label_selected="Sprzedaj Posiadłość..." name="Sell Land..."/> + <button label="Sprzedaj Posiadłość" name="Sell Land..."/> <text name="For sale to"> Na sprzedaż dla: [BUYER] </text> @@ -73,11 +73,11 @@ 0 </text> <button label="Kup Posiadłość..." label_selected="Kup Posiadłość..." left="130" name="Buy Land..." width="125"/> - <button label="Kup dla Grupy..." label_selected="Kup dla Grupy..." name="Buy For Group..."/> + <button label="Kup dla Grupy" name="Buy For Group..."/> <button label="Kup Przepustkę..." label_selected="Kup Przeputkę..." left="130" name="Buy Pass..." tool_tip="Przepustka udostępnia tymczasowy wstęp na posiadłość." width="125"/> - <button label="Porzuć z Posiadłości..." label_selected="Porzuć z Posiadłości..." name="Abandon Land..."/> - <button label="Odzyskaj Posiadłość..." label_selected="Odzyskaj Posiadłość..." name="Reclaim Land..."/> - <button label="Sprzedaż przez Lindenów..." label_selected="Sprzedaż przez Lindenów..." name="Linden Sale..." tool_tip="Posiadłość musi mieć właściciela, zawartość oraz nie może być wystawiona na aukcę."/> + <button label="Porzuć z Posiadłości" name="Abandon Land..."/> + <button label="Odzyskaj Posiadłość" name="Reclaim Land..."/> + <button label="Sprzedaż przez Lindenów" name="Linden Sale..." tool_tip="Posiadłość musi mieć właściciela, zawartość oraz nie może być wystawiona na aukcę."/> <panel.string name="new users only"> Tylko nowi użytkownicy </panel.string> @@ -224,7 +224,7 @@ Idź do Świat > O Posiadłości albo wybierz inną posiadłość żeby pokaz [COUNT] </text> <button label="Pokaż" label_selected="Pokaż" name="ShowOwner"/> - <button label="Zwróć..." label_selected="Zwróć..." name="ReturnOwner..." tool_tip="Zwróć obiekty do ich właścicieli."/> + <button label="Zwróć" name="ReturnOwner..." tool_tip="Zwróć obiekty do ich właścicieli."/> <text name="Set to group:"> Grupy: </text> @@ -232,7 +232,7 @@ Idź do Świat > O Posiadłości albo wybierz inną posiadłość żeby pokaz [COUNT] </text> <button label="Pokaż" label_selected="Pokaż" name="ShowGroup"/> - <button label="Zwróć..." label_selected="Zwróć..." name="ReturnGroup..." tool_tip="Zwróć obiekty do ich właścicieli.."/> + <button label="Zwróć" name="ReturnGroup..." tool_tip="Zwróć obiekty do ich właścicieli.."/> <text name="Owned by others:"> Innych Rezydentów: </text> @@ -240,7 +240,7 @@ Idź do Świat > O Posiadłości albo wybierz inną posiadłość żeby pokaz [COUNT] </text> <button label="Pokaż" label_selected="Pokaż" name="ShowOther"/> - <button label="Zwróć..." label_selected="Zwróć..." name="ReturnOther..." tool_tip="Zwróć obiekty do ich właścicieli."/> + <button label="Zwróć" name="ReturnOther..." tool_tip="Zwróć obiekty do ich właścicieli."/> <text name="Selected / sat upon:"> Wybranych: </text> diff --git a/indra/newview/skins/default/xui/pt/floater_about_land.xml b/indra/newview/skins/default/xui/pt/floater_about_land.xml index ebb9bfc32d..7b943f2f67 100644 --- a/indra/newview/skins/default/xui/pt/floater_about_land.xml +++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floaterland" title="SOBRE O TERRENO"> + <floater.string name="maturity_icon_general"> + "Parcel_PG_Dark + </floater.string> + <floater.string name="maturity_icon_moderate"> + "Parcel_M_Dark" + </floater.string> + <floater.string name="maturity_icon_adult"> + "Parcel_R_Dark" + </floater.string> <floater.string name="Minutes"> [MINUTES] minutos </floater.string> @@ -15,7 +24,7 @@ <tab_container name="landtab"> <panel label="GERAL" name="land_general_panel"> <panel.string name="new users only"> - Somente novos usuários + Somente novos residentes </panel.string> <panel.string name="anyone"> Qualquer um @@ -84,9 +93,9 @@ Vá para o menu Mundo > Sobre a Terra ou selecione outro lote para mostrar se <text name="GroupText"> Leyla Linden </text> - <button label="Ajustar..." label_selected="Ajustar..." name="Set..."/> + <button label="Ajustar" name="Set..."/> <check_box label="Permitir posse para o grupo" name="check deed" tool_tip="O gerente do grupo pode acionar essa terra ao grupo, então esta será mantida pelo gestor da ilha"/> - <button label="Passar..." label_selected="Passar..." name="Deed..." tool_tip="Você só pode delegar esta terra se você for um gerente selecionado pelo grupo."/> + <button label="Passar" name="Deed..." tool_tip="Você só pode delegar esta terra se você for um gerente selecionado pelo grupo."/> <check_box label="Proprietário faz contribuição com delegação" name="check contrib" tool_tip="Quando a terra é delegada ao grupo, o proprietário anterior contribui alocando terra suficiente para mantê-la."/> <text name="For Sale:"> À Venda: @@ -97,7 +106,7 @@ Vá para o menu Mundo > Sobre a Terra ou selecione outro lote para mostrar se <text name="For Sale: Price L$[PRICE]."> Preço: L$[PRICE] (L$[PRICE_PER_SQM]/m²). </text> - <button label="Vender Terra..." label_selected="Vender Terra..." name="Sell Land..."/> + <button label="Vender Terra" name="Sell Land..."/> <text name="For sale to"> À venda para: [BUYER] </text> @@ -128,11 +137,11 @@ Vá para o menu Mundo > Sobre a Terra ou selecione outro lote para mostrar se </text> <button label="Comprar Terra..." label_selected="Comprar Terra..." left="130" name="Buy Land..." width="125"/> <button label="Dados do script" name="Scripts..."/> - <button label="Comprar para o Grupo..." label_selected="Comprar para o Grupo..." name="Buy For Group..."/> + <button label="Comprar para o Grupo" name="Buy For Group..."/> <button label="Comprar Passe..." label_selected="Comprar Passe..." left="130" name="Buy Pass..." tool_tip="Um passe concede a você acesso temporário a esta terra." width="125"/> <button label="Abandonar Terra.." label_selected="Abandonar Terra.." name="Abandon Land..."/> - <button label="Reclamar Terra..." label_selected="Reclamar Terra..." name="Reclaim Land..."/> - <button label="Venda Linden..." label_selected="Venda Linden..." name="Linden Sale..." tool_tip="A terra precisa ser possuída, estar com o conteúdo configurado e não estar pronta para leilão."/> + <button label="Reclamar Terra" name="Reclaim Land..."/> + <button label="Venda Linden" name="Linden Sale..." tool_tip="A terra precisa ser possuída, estar com o conteúdo configurado e não estar pronta para leilão."/> </panel> <panel label="CONTRATO" name="land_covenant_panel"> <panel.string name="can_resell"> @@ -233,7 +242,7 @@ ou sub-dividida. [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/> - <button label="Retornar..." label_selected="Retornar..." name="ReturnOwner..." right="-10" tool_tip="Retornar os objetos aos seus donos." width="119"/> + <button label="Retornar" name="ReturnOwner..." right="-10" tool_tip="Retornar os objetos aos seus donos." width="119"/> <text left="14" name="Set to group:" width="180"> Configurados ao grupo: </text> @@ -241,7 +250,7 @@ ou sub-dividida. [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/> - <button label="Retornar..." label_selected="Retornar..." name="ReturnGroup..." right="-10" tool_tip="Retornar os objetos para seus donos." width="119"/> + <button label="Retornar" name="ReturnGroup..." right="-10" tool_tip="Retornar os objetos para seus donos." width="119"/> <text left="14" name="Owned by others:" width="128"> Propriedade de Outros: </text> @@ -249,7 +258,7 @@ ou sub-dividida. [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/> - <button label="Retornar..." label_selected="Retornar..." name="ReturnOther..." right="-10" tool_tip="Retornar os objetos aos seus donos." width="119"/> + <button label="Retornar" name="ReturnOther..." right="-10" tool_tip="Retornar os objetos aos seus donos." width="119"/> <text left="14" name="Selected / sat upon:" width="193"> Selecionado/Sentado: </text> @@ -426,6 +435,9 @@ Mídia: <panel.string name="access_estate_defined"> (Definições do terreno) </panel.string> + <panel.string name="allow_public_access"> + Acesso para público: [MATURITY] + </panel.string> <panel.string name="estate_override"> Uma ou mais destas opções está definida no nível de propriedade. </panel.string> diff --git a/indra/newview/skins/default/xui/pt/floater_buy_land.xml b/indra/newview/skins/default/xui/pt/floater_buy_land.xml index 9500ba94e5..73b483acf2 100644 --- a/indra/newview/skins/default/xui/pt/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/pt/floater_buy_land.xml @@ -40,7 +40,8 @@ A área selecionada não tem terras públicas. </floater.string> <floater.string name="not_owned_by_you"> - Está selecionada uma terra pertencente a outro usuário. Tente selecionar uma área menor. + Terrenos de outros residentes foram selecionados. +Tente selecionar uma área menor. </floater.string> <floater.string name="processing"> Processando sua compra... diff --git a/indra/newview/skins/default/xui/pt/floater_camera.xml b/indra/newview/skins/default/xui/pt/floater_camera.xml index 5114b19336..7989ce66bc 100644 --- a/indra/newview/skins/default/xui/pt/floater_camera.xml +++ b/indra/newview/skins/default/xui/pt/floater_camera.xml @@ -9,6 +9,18 @@ <floater.string name="move_tooltip"> Mover a Câmera para Cima e para Baixo, para a Esquerda e para a Direita </floater.string> + <floater.string name="orbit_mode_title"> + Órbita + </floater.string> + <floater.string name="pan_mode_title"> + Pan + </floater.string> + <floater.string name="avatar_view_mode_title"> + Predefinições + </floater.string> + <floater.string name="free_mode_title"> + Visualizar objeto + </floater.string> <panel name="controls"> <joystick_track name="cam_track_stick" tool_tip="Move a câmera para cima e para baixo, direita e esquerda"/> <panel name="zoom" tool_tip="Aproximar a Câmera in direção ao Foco"> @@ -25,7 +37,7 @@ <panel name="buttons"> <button label="" name="orbit_btn" tool_tip="Câmera orbital"/> <button label="" name="pan_btn" tool_tip="Câmera Pan"/> - <button label="" name="avatarview_btn" tool_tip="ver como o avatar"/> + <button label="" name="avatarview_btn" tool_tip="Predefinições"/> <button label="" name="freecamera_btn" tool_tip="Visualizar objeto"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_event.xml b/indra/newview/skins/default/xui/pt/floater_event.xml index 4b2489654a..1cd4dcbda4 100644 --- a/indra/newview/skins/default/xui/pt/floater_event.xml +++ b/indra/newview/skins/default/xui/pt/floater_event.xml @@ -9,6 +9,18 @@ <floater.string name="dont_notify"> Não avisar </floater.string> + <floater.string name="moderate"> + Moderado + </floater.string> + <floater.string name="adult"> + Adulto + </floater.string> + <floater.string name="general"> + Público geral + </floater.string> + <floater.string name="unknown"> + Desconhecido + </floater.string> <layout_stack name="layout"> <layout_panel name="profile_stack"> <text name="event_name"> @@ -21,12 +33,21 @@ Organização: </text> <text initial_value="(pesquisando)" name="event_runby"/> + <text name="event_date_label"> + Data: + </text> <text name="event_date"> 10/10/2010 </text> + <text name="event_duration_label"> + Duração: + </text> <text name="event_duration"> 1 hora </text> + <text name="event_covercharge_label"> + Cover: + </text> <text name="event_cover"> Grátis </text> @@ -36,6 +57,9 @@ <text name="event_location" value="LoteExemplo, Nome extenso (145, 228, 26)"/> <text name="rating_label" value="Classificação:"/> <text name="rating_value" value="(Desconhecido)"/> + <expandable_text name="event_desc"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + </expandable_text> </layout_panel> <layout_panel name="button_panel"> <button name="create_event_btn" tool_tip="Criar evento"/> diff --git a/indra/newview/skins/default/xui/pt/floater_god_tools.xml b/indra/newview/skins/default/xui/pt/floater_god_tools.xml index 93b2f3e90d..2e63d86281 100644 --- a/indra/newview/skins/default/xui/pt/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/pt/floater_god_tools.xml @@ -2,7 +2,7 @@ <floater name="godtools floater" title="FERRAMENTAS DE DEUS"> <tab_container name="GodTools Tabs"> <panel label="Grade" name="grid"> - <button label="Desconectar todos os usuários" label_selected="Desconectar todos os usuários" name="Kick all users"/> + <button label="Chutar todos" label_selected="Chutar todos" name="Kick all users"/> <button label="Limpar os cachês de visibilidade do mapa da região." label_selected="Limpar os cachês de visibilidade do mapa da região." name="Flush This Region's Map Visibility Caches"/> </panel> <panel label="Região" name="region"> diff --git a/indra/newview/skins/default/xui/pt/floater_im.xml b/indra/newview/skins/default/xui/pt/floater_im.xml index f6057c48f1..c81d0dd7ef 100644 --- a/indra/newview/skins/default/xui/pt/floater_im.xml +++ b/indra/newview/skins/default/xui/pt/floater_im.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <multi_floater name="im_floater" title="Mensagem Instantânea"> <string name="only_user_message"> - Você é o único usuário desta sessão. + Você é o único residente nesta sessão </string> <string name="offline_message"> [FIRST] [LAST] está offline. @@ -31,7 +31,7 @@ Um moderador do grupo desabilitou seu bate-papo em texto. </string> <string name="add_session_event"> - Não foi possível adicionar usuários na sessão de bate-papo com [RECIPIENT]. + Não foi possível adicionar residentes ao bate-papo com [RECIPIENT]. </string> <string name="message_session_event"> Não foi possível enviar sua mensagem na sessão de bate- papo com [RECIPIENT]. diff --git a/indra/newview/skins/default/xui/pt/floater_moveview.xml b/indra/newview/skins/default/xui/pt/floater_moveview.xml index f67a16bb46..9c02570076 100644 --- a/indra/newview/skins/default/xui/pt/floater_moveview.xml +++ b/indra/newview/skins/default/xui/pt/floater_moveview.xml @@ -18,6 +18,15 @@ <string name="fly_back_tooltip"> Voar para trás (flecha para baixo ou S) </string> + <string name="walk_title"> + Andar + </string> + <string name="run_title"> + Correr + </string> + <string name="fly_title"> + Voar + </string> <panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Virar à esquerda (flecha ESQ ou A)"/> <button label="" label_selected="" name="turn right btn" tool_tip="Virar à direita (flecha DIR ou D)"/> @@ -30,6 +39,5 @@ <button label="" name="mode_walk_btn" tool_tip="Modo caminhar"/> <button label="" name="mode_run_btn" tool_tip="Modo correr"/> <button label="" name="mode_fly_btn" tool_tip="Modo voar"/> - <button label="Parar de voar" name="stop_fly_btn" tool_tip="Parar de voar"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_publish_classified.xml b/indra/newview/skins/default/xui/pt/floater_publish_classified.xml new file mode 100644 index 0000000000..988f8f2ce1 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/floater_publish_classified.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="publish_classified" title="Publicando anúncio"> + <text name="explanation_text"> + Seu anúncio será publicado por uma semana a partir da data de publicação. + +Lembre-se, o pagamento do anúncio não é reembolsável + </text> + <spinner label="Preço do anúncio:" name="price_for_listing" tool_tip="Preço do anúncio." value="50"/> + <text name="l$_text" value="L$"/> + <text name="more_info_text"> + Mais informações (link para ajuda com anúncios) + </text> + <button label="Publicar" name="publish_btn"/> + <button label="Cancelar" name="cancel_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_voice_controls.xml b/indra/newview/skins/default/xui/pt/floater_voice_controls.xml index 6ab10db96f..5ef8479b7a 100644 --- a/indra/newview/skins/default/xui/pt/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/pt/floater_voice_controls.xml @@ -17,7 +17,7 @@ </string> <layout_stack name="my_call_stack"> <layout_panel name="my_panel"> - <text name="user_text" value="Mya Avatar:"/> + <text name="user_text" value="Meu avatar:"/> </layout_panel> <layout_panel name="leave_call_btn_panel"> <button label="Desligar" name="leave_call_btn"/> diff --git a/indra/newview/skins/default/xui/pt/floater_water.xml b/indra/newview/skins/default/xui/pt/floater_water.xml index 36b995d4fd..b4613e0890 100644 --- a/indra/newview/skins/default/xui/pt/floater_water.xml +++ b/indra/newview/skins/default/xui/pt/floater_water.xml @@ -8,7 +8,7 @@ <button label="Salvar" label_selected="Salvar" name="WaterSavePreset"/> <button label="Deletar" label_selected="Deletar" name="WaterDeletePreset"/> <tab_container name="Water Tabs"> - <panel label="Configurações" name="Settings"> + <panel label="DEFINIÇÕES" name="Settings"> <text name="BHText"> Cor da névoa da Água </text> @@ -56,7 +56,7 @@ </text> <button label="?" left="640" name="WaterBlurMultiplierHelp"/> </panel> - <panel label="Imagem" name="Waves"> + <panel label="IMAGEM" name="Waves"> <text name="BHText"> Direção da Onda Maior </text> diff --git a/indra/newview/skins/default/xui/pt/floater_windlight_options.xml b/indra/newview/skins/default/xui/pt/floater_windlight_options.xml index 951e37a1a6..22632a4ef8 100644 --- a/indra/newview/skins/default/xui/pt/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/pt/floater_windlight_options.xml @@ -5,11 +5,11 @@ </text> <combo_box left_delta="130" name="WLPresetsCombo"/> <button label="Novo" label_selected="Novo" name="WLNewPreset"/> - <button label="Salvar" label_selected="Salvar" name="WLSavePreset" left_delta="72"/> - <button label="Deletar" label_selected="Deletar" name="WLDeletePreset" left_delta="72"/> - <button label="Editor de Ciclos do Dia" label_selected="Editor de Ciclos do Dia" name="WLDayCycleMenuButton" width="150" left_delta="84" /> + <button label="Salvar" label_selected="Salvar" left_delta="72" name="WLSavePreset"/> + <button label="Deletar" label_selected="Deletar" left_delta="72" name="WLDeletePreset"/> + <button label="Editor de Ciclos do Dia" label_selected="Editor de Ciclos do Dia" left_delta="84" name="WLDayCycleMenuButton" width="150"/> <tab_container name="WindLight Tabs"> - <panel label="Atmosfera" name="Atmosphere"> + <panel label="ATMOSFERA" name="Atmosphere"> <text name="BHText"> Horizonte Azul </text> @@ -53,17 +53,17 @@ <text name="DensMultText"> Multiplicador de Densidade </text> - <button label="?" name="WLDensityMultHelp" left="635"/> + <button label="?" left="635" name="WLDensityMultHelp"/> <text name="WLDistanceMultText"> Multiplicador de Distância </text> - <button label="?" name="WLDistanceMultHelp" left="635"/> + <button label="?" left="635" name="WLDistanceMultHelp"/> <text name="MaxAltText"> Altitude Máxima </text> - <button label="?" name="WLMaxAltitudeHelp" left="635"/> + <button label="?" left="635" name="WLMaxAltitudeHelp"/> </panel> - <panel label="Iluminação" name="Lighting"> + <panel label="ILUMINAÇÃO" name="Lighting"> <text name="SLCText"> Cor do Sol/Lua </text> @@ -119,7 +119,7 @@ </text> <button label="?" name="WLStarBrightnessHelp"/> </panel> - <panel label="Nuvens" name="Clouds"> + <panel label="NUVENS" name="Clouds"> <text name="WLCloudColorText"> Cor da Nuvem </text> @@ -157,10 +157,10 @@ Escala da Nuvem </text> <button label="?" name="WLCloudScaleHelp"/> - <text name="WLCloudDetailText" font="SansSerifSmall"> + <text font="SansSerifSmall" name="WLCloudDetailText"> Detalhe da Nuvem (XY/Densidade) </text> - <button label="?" name="WLCloudDetailHelp" left="421"/> + <button label="?" left="421" name="WLCloudDetailHelp"/> <text name="BHText8"> X </text> @@ -181,7 +181,7 @@ <button label="?" name="WLCloudScrollYHelp"/> <check_box label="Travar" name="WLCloudLockY"/> <check_box label="Desenhar Nuvens Clássicas" name="DrawClassicClouds"/> - <button label="?" name="WLClassicCloudsHelp" left="645"/> + <button label="?" left="645" name="WLClassicCloudsHelp"/> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_world_map.xml b/indra/newview/skins/default/xui/pt/floater_world_map.xml index 95bb899071..115192203f 100644 --- a/indra/newview/skins/default/xui/pt/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pt/floater_world_map.xml @@ -5,8 +5,7 @@ Legenda </text> </panel> - <panel - name="layout_panel_2"> + <panel name="layout_panel_2"> <button font="SansSerifSmall" label="Mostra minha localização" label_selected="Mostra minha localização" left_delta="91" name="Show My Location" tool_tip="Centrar o mapa na localização do meu avatar" width="135"/> <text name="me_label"> Eu @@ -24,60 +23,56 @@ Venda de terreno </text> <text name="by_owner_label"> - pelo dono + o proprietário </text> <text name="auction_label"> leilão de terrenos </text> - <button label="Ir para Casa" label_selected="Ir para casa" name="Go Home" tool_tip="Teletransportar para minha casa"/> + <button label="Ir para Casa" label_selected="Ir para casa" name="Go Home" tool_tip="Teletransportar para meu início"/> <text name="Home_label"> - Casa + Início </text> <text name="events_label"> Eventos: </text> <check_box label="PG" name="event_chk"/> <text name="pg_label"> - Geral + Público geral </text> - <check_box initial_value="true" label="Mature" name="event_mature_chk"/> + <check_box initial_value="verdadeiro" label="Mature" name="event_mature_chk"/> <text name="mature_label"> Moderado </text> <check_box label="Adult" name="event_adult_chk"/> <text name="adult_label"> - Público adulto + Adulto </text> </panel> - <panel - name="layout_panel_3"> + <panel name="layout_panel_3"> <text name="find_on_map_label"> Localizar no mapa </text> </panel> - <panel - name="layout_panel_4"> - <combo_box label="Amigos Conectados" name="friend combo" tool_tip="Mostrar amigos no mapa"> + <panel name="layout_panel_4"> + <combo_box label="Amigos online" name="friend combo" tool_tip="Mostrar amigos no mapa"> <combo_box.item label="Amigos conectados" name="item1"/> </combo_box> <combo_box label="Meus marcos" name="landmark combo" tool_tip="Mostrar marco no mapa"> <combo_box.item label="Meus marcos" name="item1"/> </combo_box> - <search_editor label="Regiões por nome" name="location" tool_tip="Digite o nome de uma Região"/> - <button label="Buscar" name="DoSearch" tool_tip="Procurar por região"/> - <button name="Clear" tool_tip="Limpara linhas e redefinir mapa"/> - <button font="SansSerifSmall" label="Teletransporte" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para a posição selecionada"/> + <search_editor label="Regiões por nome" name="location" tool_tip="Digite o nome da região"/> + <button label="Buscar" name="DoSearch" tool_tip="Buscar região"/> + <button name="Clear" tool_tip="Limpar linhas e redefinir mapa"/> + <button font="SansSerifSmall" label="Teletransportar" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para o lugar selecionado"/> <button font="SansSerifSmall" label="Copiar SLurl" name="copy_slurl" tool_tip="Copia a localização atual como um SLurl para usar na web."/> - <button font="SansSerifSmall" label="Mostrar seleção" label_selected="Mostrar Destino" left_delta="91" name="Show Destination" tool_tip="Centralizar mapa na posição selecionada" width="135"/> + <button font="SansSerifSmall" label="Mostrar seleção" label_selected="Mostrar Destino" left_delta="91" name="Show Destination" tool_tip="Centrar mapa no local selecionado" width="135"/> </panel> - <panel - name="layout_panel_5"> + <panel name="layout_panel_5"> <text name="zoom_label"> Zoom </text> </panel> - <panel - name="layout_panel_6"> + <panel name="layout_panel_6"> <slider label="Zoom" name="zoom slider"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/pt/menu_object.xml b/indra/newview/skins/default/xui/pt/menu_object.xml index 5121c9d048..a5969cacc3 100644 --- a/indra/newview/skins/default/xui/pt/menu_object.xml +++ b/indra/newview/skins/default/xui/pt/menu_object.xml @@ -5,6 +5,7 @@ <menu_item_call label="Construir" name="Build"/> <menu_item_call label="Abrir" name="Open"/> <menu_item_call label="Sentar aqui" name="Object Sit"/> + <menu_item_call label="Ficar de pé" name="Object Stand Up"/> <menu_item_call label="Perfil do objeto" name="Object Inspect"/> <menu_item_call label="Mais zoom" name="Zoom In"/> <context_menu label="Colocar no(a)" name="Put On"> diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml index 60113bcf0b..1480343dc1 100644 --- a/indra/newview/skins/default/xui/pt/notifications.xml +++ b/indra/newview/skins/default/xui/pt/notifications.xml @@ -106,7 +106,7 @@ Por favor, selecione apenas um objeto e tente novamente. </notification> <notification name="FriendsAndGroupsOnly"> Residentes que não são amigos não veem que você decidiu ignorar ligações e MIs deles. - <usetemplate name="okbutton" yestext="Sim"/> + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="GrantModifyRights"> Conceder direitos de modificação a outros residentes vai autorizá-los a mudar, apagar ou pegar TODOS os seus objetos. Seja MUITO cuidadoso ao conceder esta autorização. @@ -442,7 +442,6 @@ O objeto pode estar fora de alcance ou ter sido deletado. <notification name="UnsupportedHardware"> Sabe de uma coisa? Seu computador não tem os requisitos mínimos do [APP_NAME]. Talvez o desempenho seja um pouco sofrível. O suporte não pode atender pedidos de assistência técnicas em sistemas não suportados. -MINSPECS Consultar [_URL] para mais informações? <url name="url" option="0"> http://secondlife.com/support/sysreqs.php?lang=pt @@ -1287,8 +1286,8 @@ Deixar este grupo? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Deixar"/> </notification> <notification name="ConfirmKick"> - Você quer REALMENTE expulsar todos os usuários deste grid? - <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar todos os usuários"/> + Tem CERTEZA de que deseja expulsar todos os residentes do grid? + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Chutar todos"/> </notification> <notification name="MuteLinden"> Desculpe, nenhum Linden pode ser bloqueado. @@ -1328,7 +1327,7 @@ O bate-papo e MIs não serão exibidos. MIs enviadas para você receberão sua <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="KickUser"> - Expulsar este usuário com qual mensagem? + Chutar este residente com qual mensagem? <form name="form"> <input name="message"> Um administrador desligou você. @@ -1348,7 +1347,7 @@ O bate-papo e MIs não serão exibidos. MIs enviadas para você receberão sua </form> </notification> <notification name="FreezeUser"> - Paralise este usuário com qual mensagem? + Congelar este residente com qual mensagem? <form name="form"> <input name="message"> Você foi congelado. Você não pode se mover ou conversar. Um administrador irá contatá-lo via mensagem instantânea (MI). @@ -1358,7 +1357,7 @@ O bate-papo e MIs não serão exibidos. MIs enviadas para você receberão sua </form> </notification> <notification name="UnFreezeUser"> - Liberar este usuário com qual mensagem? + Descongelar este residente com qual mensagem? <form name="form"> <input name="message"> Você não está mais congelado. @@ -1378,7 +1377,7 @@ O bate-papo e MIs não serão exibidos. MIs enviadas para você receberão sua </form> </notification> <notification name="OfferTeleportFromGod"> - God user convocou para a sua localização? + Convocar residente à sua localização com poderes de deus? <form name="form"> <input name="message"> Junte-se a mim em [REGION] @@ -1408,11 +1407,11 @@ O bate-papo e MIs não serão exibidos. MIs enviadas para você receberão sua </form> </notification> <notification label="Mudar propriedade Linden" name="ChangeLindenEstate"> - Você está prestes a mudar uma propriedade pertencente a Linden (continente, teen grid, orientação, etc.) + Você está prestes a modificar uma propriedade da Linden (continente, teen, grid, orientação, etc) -Isto é EXTREMAMENTE PERIGOSO porque pode fundamentalmente afetar a experiência do usuário. No continente, vai mudar milhares de regiões e fazer o spaceserver soluçar. +Esta ação é EXTREMAMENTE PERIGOSA -- ela pode afetar a experiência dos residentes. No continente, isso vai mudar milhares de regiões e deixar o spaceserver sobrecarregado. -Proceder? +Deseja prosseguir? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Mudar Propriedade"/> </notification> <notification label="Mudar o acesso à propriedade Linden" name="ChangeLindenAccess"> @@ -2399,14 +2398,6 @@ Deixar? <button name="Ignore" text="Ignorar"/> </form> </notification> - <notification name="ScriptToast"> - [FIRST] [LAST], '[TITLE]' está pedindo dados de usuário. - <form name="form"> - <button name="Open" text="Abrir diálogo"/> - <button name="Ignore" text="Ignorar"/> - <button name="Block" text="Bloquear"/> - </form> - </notification> <notification name="BuyLindenDollarSuccess"> Obrigado e volte sempre! @@ -2533,7 +2524,7 @@ Para sua segurança, os SLurls serão bloqueados por alguns instantes. </notification> <notification name="ConfirmCloseAll"> Tem certeza de que quer fechar todas as MIs? - <usetemplate name="okcancelignore" notext="Cancelar" yestext="OK"/> + <usetemplate ignoretext="Confirmar antes de fechar todas as MIs" name="okcancelignore" notext="Cancelar" yestext="OK"/> </notification> <notification name="AttachmentSaved"> Anexo salvo. diff --git a/indra/newview/skins/default/xui/pt/panel_classified_info.xml b/indra/newview/skins/default/xui/pt/panel_classified_info.xml index 8441cd9913..31d9bc2b26 100644 --- a/indra/newview/skins/default/xui/pt/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/pt/panel_classified_info.xml @@ -3,16 +3,46 @@ <panel.string name="l$_price"> L$ [PRICE] </panel.string> + <panel.string name="click_through_text_fmt"> + [TELEPORT] teletransporte, [MAP] mapa, [PROFILE] perfil + </panel.string> + <panel.string name="date_fmt"> + [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] + </panel.string> + <panel.string name="auto_renew_on"> + Ativado + </panel.string> + <panel.string name="auto_renew_off"> + Desativado + </panel.string> <text name="title" value="Dados do anúncio"/> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> <text_editor name="classified_name" value="[nome]"/> + <text name="classified_location_label" value="Localização:"/> <text_editor name="classified_location" value="[carregando...]"/> + <text name="content_type_label" value="Tipo de conteúdo:"/> <text_editor name="content_type" value="[content type]"/> + <text name="category_label" value="Categoria:"/> <text_editor name="category" value="[category]"/> - <check_box label="Renovar automaticamente todas as semanas" name="auto_renew"/> - <text_editor name="price_for_listing" tool_tip="Preço do anúncio."/> - <text_editor name="classified_desc" value="[descrição]"/> + <text name="creation_date_label" value="Data de criação"/> + <text_editor name="creation_date" tool_tip="Data de criação" value="[date]"/> + <text name="price_for_listing_label" value="Preço do anúncio:"/> + <text_editor name="price_for_listing" tool_tip="Preço do anúncio." value="[price]"/> + <layout_stack name="descr_stack"> + <layout_panel name="clickthrough_layout_panel"> + <text name="click_through_label" value="Cliques:"/> + <text_editor name="click_through_text" tool_tip="Dados de click-through" value="[cliques]"/> + </layout_panel> + <layout_panel name="price_layout_panel"> + <text name="auto_renew_label" value="Renovação automática:"/> + <text name="auto_renew" value="Ativado"/> + </layout_panel> + <layout_panel name="descr_layout_panel"> + <text name="classified_desc_label" value="Descrição:"/> + <text_editor name="classified_desc" value="[descrição]"/> + </layout_panel> + </layout_stack> </panel> </scroll_container> <panel name="buttons"> diff --git a/indra/newview/skins/default/xui/pt/panel_edit_classified.xml b/indra/newview/skins/default/xui/pt/panel_edit_classified.xml index a754c5f070..f6fb223599 100644 --- a/indra/newview/skins/default/xui/pt/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/pt/panel_edit_classified.xml @@ -3,12 +3,20 @@ <panel.string name="location_notice"> (salvar para atualizar) </panel.string> + <string name="publish_label"> + Publicar + </string> + <string name="save_label"> + Salvar + </string> <text name="title"> Editar anúncio </text> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Selecione uma imagem"/> + <panel name="snapshot_panel"> + <icon label="" name="edit_icon" tool_tip="Selecione uma imagem"/> + </panel> <text name="Name:"> Cargo: </text> @@ -22,12 +30,19 @@ Carregando... </text> <button label="Usar configuração local" name="set_to_curr_location_btn"/> + <text name="category_label" value="Categoria:"/> + <text name="content_type_label" value="Tipo de conteúdo:"/> + <icons_combo_box label="Público geral" name="content_type"> + <icons_combo_box.item label="Moderado" name="mature_ci" value="Adulto"/> + <icons_combo_box.item label="Público geral" name="pg_ci" value="Adequado para menores"/> + </icons_combo_box> + <text name="price_for_listing_label" value="Preço do anúncio:"/> <spinner label="L$" name="price_for_listing" tool_tip="Preço do anúncio" value="50"/> <check_box label="Renovação automática semanal" name="auto_renew"/> </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> - <button label="Salvar" name="save_changes_btn"/> + <button label="[LABEL]" name="save_changes_btn"/> <button label="Cancelar" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml b/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml index 11e1ba0039..2535340f4c 100644 --- a/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml @@ -13,7 +13,7 @@ <layout_panel name="share_btn_panel"> <button label="Compartilhar" name="share_btn"/> </layout_panel> - <layout_panel name="share_btn_panel"> + <layout_panel name="pay_btn_panel"> <button label="Pagar" name="pay_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> diff --git a/indra/newview/skins/default/xui/pt/panel_login.xml b/indra/newview/skins/default/xui/pt/panel_login.xml index 415451b49f..61cdbaef13 100644 --- a/indra/newview/skins/default/xui/pt/panel_login.xml +++ b/indra/newview/skins/default/xui/pt/panel_login.xml @@ -12,12 +12,19 @@ Primeiro nome: </text> <line_editor label="Nome" name="first_name_edit" tool_tip="[SECOND_LIFE] First Name"/> + <text name="last_name_text"> + Sobrenome: + </text> <line_editor label="Sobrenome" name="last_name_edit" tool_tip="[SECOND_LIFE] Last Name"/> + <text name="password_text"> + Senha: + </text> <check_box label="Lembrar senha" name="remember_check"/> <text name="start_location_text"> Começar em: </text> <combo_box name="start_location_combo"> + <combo_box.item label="Última posição" name="MyLastLocation"/> <combo_box.item label="Minha casa" name="MyHome"/> </combo_box> <button label="conectar" name="connect_btn"/> @@ -26,6 +33,9 @@ <text name="create_new_account_text"> Cadastre-se </text> + <text name="forgot_password_text"> + Esqueceu seu nome ou senha? + </text> <text name="login_help"> Precisa de ajuda ao conectar? </text> diff --git a/indra/newview/skins/default/xui/pt/panel_people.xml b/indra/newview/skins/default/xui/pt/panel_people.xml index 5061788757..66938e8f6f 100644 --- a/indra/newview/skins/default/xui/pt/panel_people.xml +++ b/indra/newview/skins/default/xui/pt/panel_people.xml @@ -7,6 +7,8 @@ <string name="no_friends" value="Nenhum amigo"/> <string name="people_filter_label" value="Filtro de pessoas"/> <string name="groups_filter_label" value="Filtro de grupos"/> + <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Tente encontrar o grupo na Busca]"/> + <string name="no_groups_msg" value="[secondlife:///app/search/groups Tente procurar grupos que lhe interessam]"/> <filter_editor label="Filtro" name="filter_input"/> <tab_container name="tabs"> <panel label="PROXIMIDADE" name="nearby_panel"> @@ -26,7 +28,7 @@ <button name="del_btn" tool_tip="Remover a pessoa selecionada da sua lista de amigos"/> </panel> <text name="no_friends_msg"> - Para adicionar amigos, use a [secondlife:///app/search/people busca de pessoas] ou clique em um usuário para adicioná-lo. + Para adicionar amigos, use a [secondlife:///app/search/people busca de pessoas] ou clique em um residente para adicioná-lo. Para conhecer mais gente, use [secondlife:///app/worldmap o Mapa]. </text> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_place_profile.xml b/indra/newview/skins/default/xui/pt/panel_place_profile.xml index 453c56d280..5c81c7649b 100644 --- a/indra/newview/skins/default/xui/pt/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/pt/panel_place_profile.xml @@ -51,12 +51,12 @@ <accordion_tab name="parcel_characteristics_tab" title="Lote"> <panel name="parcel_characteristics_panel"> <text name="rating_label" value="Classificação:"/> - <text name="rating_value" value="(Desconhecido)"/> + <text name="rating_value" value="desconhecido"/> <text name="voice_label" value="Voz:"/> <text name="voice_value" value="Ligar"/> <text name="fly_label" value="Voar:"/> <text name="fly_value" value="Ligar"/> - <text name="push_label" value="Push:"/> + <text name="push_label" value="Empurrar:"/> <text name="push_value" value="Desligar"/> <text name="build_label" value="Construir:"/> <text name="build_value" value="Ligar"/> @@ -70,10 +70,17 @@ <accordion_tab name="region_information_tab" title="Região"> <panel name="region_information_panel"> <text name="region_name_label" value="Região:"/> + <text name="region_name" value="Alcelândia"/> <text name="region_type_label" value="Tipo:"/> + <text name="region_type" value="Alce"/> <text name="region_rating_label" value="Classificação:"/> + <text name="region_rating" value="Adulto"/> <text name="region_owner_label" value="Proprietário:"/> + <text name="region_owner" value="moose Van Moose"/> <text name="region_group_label" value="Grupo:"/> + <text name="region_group"> + The Mighty Moose of mooseville soundvillemoose + </text> <button label="Região/Propriedade" name="region_info_btn"/> </panel> </accordion_tab> @@ -93,7 +100,7 @@ <text name="primitives_label" value="Prims:"/> <text name="parcel_scripts_label" value="Scripts:"/> <text name="terraform_limits_label" value="Limite de terraplenagem:"/> - <text name="subdivide_label" value="Juntar/subdividir:"/> + <text name="subdivide_label" value="Capacidade de juntar/subdividir:"/> <text name="resale_label" value="Revenda:"/> <text name="sale_to_label" value="À venda para:"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml index d9b18724e2..18348d0332 100644 --- a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml @@ -1,10 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat" name="chat"> + <text name="font_size"> + Tamanho da fonte: + </text> <radio_group name="chat_font_size"> <radio_item label="Pequeno" name="radio" value="0"/> <radio_item label="Média" name="radio2" value="1"/> <radio_item label="Grande" name="radio3" value="2"/> </radio_group> + <text name="font_colors"> + Cor da fonte: + </text> <color_swatch label="Você" name="user"/> <text name="text_box1"> Eu diff --git a/indra/newview/skins/default/xui/pt/panel_region_estate.xml b/indra/newview/skins/default/xui/pt/panel_region_estate.xml index 0f173ab21a..e5d394865c 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_estate.xml @@ -39,7 +39,7 @@ </string> <button label="?" name="abuse_email_address_help"/> <button label="Aplicar" name="apply_btn"/> - <button label="Chutar usuário da propriedade..." name="kick_user_from_estate_btn"/> + <button label="Expulsar da propriedade..." name="kick_user_from_estate_btn"/> <button label="Enviar mensagem à Propriedade" name="message_estate_btn"/> <text name="estate_manager_label"> Gerentes da propriedade: diff --git a/indra/newview/skins/default/xui/pt/panel_region_general.xml b/indra/newview/skins/default/xui/pt/panel_region_general.xml index 1a06d91aa8..d1a5eaa11e 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_general.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_general.xml @@ -19,35 +19,25 @@ desconhecido </text> <check_box label="Bloquear Terraform" name="block_terraform_check"/> - <button label="?" name="terraform_help"/> <check_box label="Bloquear Vôo" name="block_fly_check"/> - <button label="?" name="fly_help"/> <check_box label="Permitir Dano" name="allow_damage_check"/> - <button label="?" name="damage_help"/> <check_box label="Restringir Empurrar" name="restrict_pushobject"/> - <button label="?" name="restrict_pushobject_help"/> <check_box label="Permitir Revenda de Terra" name="allow_land_resell_check"/> - <button label="?" name="land_resell_help"/> <check_box label="Permitir Unir/Dividir Terra" name="allow_parcel_changes_check"/> - <button label="?" name="parcel_changes_help"/> <check_box label="Bloquear Mostrar Terra na Busca" name="block_parcel_search_check" tool_tip="Permitir que as pessoas vejam esta região e seus lotes nos resultados de busca"/> - <button label="?" name="parcel_search_help"/> <spinner label="Limit do Agente" name="agent_limit_spin"/> - <button label="?" name="agent_limit_help"/> <spinner label="Objeto Bonus" name="object_bonus_spin"/> - <button label="?" name="object_bonus_help"/> <text label="Maturidade" name="access_text"> Classificação: </text> - <combo_box label="Mature" name="access_combo"> - <combo_box.item label="Adult" name="Adult"/> - <combo_box.item label="Mature" name="Mature"/> - <combo_box.item label="PG" name="PG"/> - </combo_box> - <button label="?" name="access_help"/> + <icons_combo_box label="Mature" name="access_combo"> + <icons_combo_box.item label="Adult" name="Adult" value="42"/> + <icons_combo_box.item label="Mature" name="Mature" value="21"/> + <icons_combo_box.item label="PG" name="PG" value="13"/> + </icons_combo_box> <button label="Aplicar" name="apply_btn"/> - <button label="Teletransportar um usuário para Casa..." name="kick_btn"/> - <button label="Teletransportar Todos os Usuários..." name="kick_all_btn"/> + <button label="Teletransportar um residente para início..." name="kick_btn"/> + <button label="Teletransportar todos para início..." name="kick_all_btn"/> <button label="Enviar Mensagem para a Região..." name="im_btn"/> <button label="Gerenciar Telehub..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_region_general_layout.xml b/indra/newview/skins/default/xui/pt/panel_region_general_layout.xml index 89fcb05658..d2d5fb649c 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_general_layout.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_general_layout.xml @@ -36,7 +36,7 @@ <combo_box.item label="Geral" name="PG"/> </combo_box> <button label="Aplicar" name="apply_btn"/> - <button label="Teletransportar para início..." name="kick_btn"/> + <button label="Teletransportar um residente para início..." name="kick_btn"/> <button label="Teletransportar todos para início..." name="kick_all_btn"/> <button label="Enviar mensagem para região..." name="im_btn"/> <button label="Gerenciar telehub..." name="manage_telehub_btn"/> diff --git a/indra/newview/skins/default/xui/pt/panel_region_texture.xml b/indra/newview/skins/default/xui/pt/panel_region_texture.xml index 7f37919af2..35928ccc67 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_texture.xml @@ -25,16 +25,16 @@ Escalas de Elevação de Terreno </text> <text name="height_text_lbl6"> - Sudeste + Noroeste </text> <text name="height_text_lbl7"> - Noroeste + Nordeste </text> <text name="height_text_lbl8"> Sudoeste </text> <text name="height_text_lbl9"> - Noroeste + Sudeste </text> <spinner label="Baixo" name="height_start_spin_0"/> <spinner label="Baixo" name="height_start_spin_1"/> diff --git a/indra/newview/skins/default/xui/pt/panel_status_bar.xml b/indra/newview/skins/default/xui/pt/panel_status_bar.xml index a320d9d56d..ae2879f4a9 100644 --- a/indra/newview/skins/default/xui/pt/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/pt/panel_status_bar.xml @@ -22,7 +22,7 @@ L$ [AMT] </panel.string> <button label="" label_selected="" name="buycurrency" tool_tip="Meu saldo"/> - <button label="Comprar L$" name="buyL" tool_tip="Comprar mais L$"/> + <button label="Comprar" name="buyL" tool_tip="Comprar mais L$"/> <text name="TimeText" tool_tip="Hora atual (Pacífico)"> 24:00 AM PST </text> diff --git a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml index 7981cd106f..9193730018 100644 --- a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml @@ -38,7 +38,7 @@ </panel.string> <text name="title" value="Perfil do objeto"/> <text name="where" value="(inworld)"/> - <panel label=""> + <panel label="" name="properties_panel"> <text name="Name:"> Nome: </text> @@ -54,12 +54,15 @@ <text name="Owner:"> Proprietário: </text> + <text name="Owner Name"> + Erica Linden + </text> <text name="Group_label"> Grupo: </text> <button name="button set group" tool_tip="Selecione o grupo que terá acesso à autorização do objeto"/> <name_box initial_value="Carregando..." name="Group Name Proxy"/> - <button label="Doar" label_selected="Doar" name="button deed" tool_tip="Ao doar este item, o próximo dono terá permissões de próximo dono. Objetos de grupos podem ser doados por um oficial do grupo."/> + <button label="Doar" label_selected="Doar" name="button deed" tool_tip="Ao doar este item, o próximo dono terá permissões de próximo dono. Objetos de grupos podem ser doados por um oficial do grupo."/> <text name="label click action"> Clique para: </text> @@ -121,5 +124,6 @@ <button label="Abrir" name="open_btn"/> <button label="Pagar" name="pay_btn"/> <button label="Comprar" name="buy_btn"/> + <button label="Detalhes" name="details_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml index 195345abc0..5b8f76c2e9 100644 --- a/indra/newview/skins/default/xui/pt/strings.xml +++ b/indra/newview/skins/default/xui/pt/strings.xml @@ -164,6 +164,7 @@ Clique para ativar no secondlife:// commando </string> <string name="CurrentURL" value="URL atual: [CurrentURL]"/> + <string name="TooltipPrice" value="L$[PRICE]-"/> <string name="SLurlLabelTeleport"> Teletransportar para </string> @@ -737,6 +738,9 @@ <string name="invalid"> inválido </string> + <string name="NewWearable"> + Novo [WEARABLE_ITEM] + </string> <string name="next"> Próximo </string> @@ -1435,6 +1439,9 @@ <string name="PanelContentsNewScript"> Novo Script </string> + <string name="BusyModeResponseDefault"> + O residente para o qual escreveu está no modo 'ocupado', ou seja, ele prefere não receber nada no momento. Sua mensagem será exibida como uma MI mais tarde. + </string> <string name="MuteByName"> (por nome) </string> diff --git a/indra/newview/skins/default/xui/pt/teleport_strings.xml b/indra/newview/skins/default/xui/pt/teleport_strings.xml index 1a0461082b..92ffee0233 100644 --- a/indra/newview/skins/default/xui/pt/teleport_strings.xml +++ b/indra/newview/skins/default/xui/pt/teleport_strings.xml @@ -59,6 +59,9 @@ Se você continuar a receber esta mensagem, por favor consulte o [SUPPORT_SITE]. <message name="completing"> Completando teletransporte. </message> + <message name="completed_from"> + Teletransporte de [T_SLURL] concluído + </message> <message name="resolving"> Identificando destino. </message> diff --git a/indra/test/llpermissions_tut.cpp b/indra/test/llpermissions_tut.cpp index 4eadc64b5a..d5795ef4a0 100644 --- a/indra/test/llpermissions_tut.cpp +++ b/indra/test/llpermissions_tut.cpp @@ -61,7 +61,7 @@ namespace tut uuid2 == LLUUID::null && uuid3 == LLUUID::null)); ensure("LLPermission Get Functions failed", (permissions.getMaskBase() == PERM_ALL && permissions.getMaskOwner() == PERM_ALL && permissions.getMaskGroup() == PERM_ALL && permissions.getMaskEveryone() == PERM_ALL && permissions.getMaskNextOwner() == PERM_ALL)); - ensure("Ownership functions failed", (permissions.isGroupOwned() == FALSE && permissions.isOwned() == FALSE)); + ensure("Ownership functions failed", ((! permissions.isGroupOwned()) && (! permissions.isOwned()))); } template<> template<> @@ -204,7 +204,7 @@ namespace tut LLPermissions perm1; LLUUID uuid; BOOL is_group_owned = FALSE; - ensure("1:getOwnership:failed ", (FALSE == perm1.getOwnership(uuid,is_group_owned))); + ensure("1:getOwnership:failed ", ! perm1.getOwnership(uuid,is_group_owned)); LLPermissions perm; LLUUID creator("abf0d56b-82e5-47a2-a8ad-74741bb2c29e"); @@ -213,11 +213,11 @@ namespace tut LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); perm.init(creator,owner,lastOwner,group); perm.getOwnership(uuid,is_group_owned); - ensure("2:getOwnership:failed ", ((uuid == owner) && (FALSE == is_group_owned))); + ensure("2:getOwnership:failed ", ((uuid == owner) && (! is_group_owned))); perm.init(creator,LLUUID::null,lastOwner,group); perm.getOwnership(uuid,is_group_owned); - ensure("3:getOwnership:failed ", ((uuid == group) && (TRUE == is_group_owned))); + ensure("3:getOwnership:failed ", ((uuid == group) && is_group_owned)); } template<> template<> @@ -240,17 +240,17 @@ namespace tut LLUUID agent("abf0d56b-82e5-47a2-a8ad-74741bb2c29e"); LLUUID owner("68edcf47-ccd7-45b8-9f90-1649d7f12806"); LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); - bool is_atomic = TRUE; - ensure("setOwnerAndGroup():failed ", (TRUE == perm.setOwnerAndGroup(agent,owner,group,is_atomic))); + bool is_atomic = true; + ensure("setOwnerAndGroup():failed ", perm.setOwnerAndGroup(agent,owner,group,is_atomic)); LLUUID owner2("68edcf47-ccd7-45b8-9f90-1649d7f12807"); LLUUID group2("9c8eca51-53d5-42a7-bb58-cef070395db9"); // cant change - agent need to be current owner - ensure("setOwnerAndGroup():failed ", (FALSE == perm.setOwnerAndGroup(agent,owner2,group2,is_atomic))); + ensure("setOwnerAndGroup():failed ", ! perm.setOwnerAndGroup(agent,owner2,group2,is_atomic)); // should be able to change - agent and owner same as current owner - ensure("setOwnerAndGroup():failed ", (TRUE == perm.setOwnerAndGroup(owner,owner,group2,is_atomic))); + ensure("setOwnerAndGroup():failed ", perm.setOwnerAndGroup(owner,owner,group2,is_atomic)); } template<> template<> @@ -259,7 +259,7 @@ namespace tut LLPermissions perm; LLUUID agent; LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); - ensure("deedToGroup():failed ", (TRUE == perm.deedToGroup(agent,group))); + ensure("deedToGroup():failed ", perm.deedToGroup(agent,group)); } template<> template<> void permission_object_t::test<11>() @@ -268,12 +268,12 @@ namespace tut LLUUID agent; BOOL set = 1; U32 bits = PERM_TRANSFER | PERM_MODIFY; - ensure("setBaseBits():failed ", (TRUE == perm.setBaseBits(agent, set, bits))); - ensure("setOwnerBits():failed ", (TRUE == perm.setOwnerBits(agent, set, bits))); + ensure("setBaseBits():failed ", perm.setBaseBits(agent, set, bits)); + ensure("setOwnerBits():failed ", perm.setOwnerBits(agent, set, bits)); LLUUID agent1("9c8eca51-53d5-42a7-bb58-cef070395db8"); - ensure("setBaseBits():failed ", (FALSE == perm.setBaseBits(agent1, set, bits))); - ensure("setOwnerBits():failed ", (FALSE == perm.setOwnerBits(agent1, set, bits))); + ensure("setBaseBits():failed ", ! perm.setBaseBits(agent1, set, bits)); + ensure("setOwnerBits():failed ", ! perm.setOwnerBits(agent1, set, bits)); } template<> template<> @@ -284,14 +284,14 @@ namespace tut LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); BOOL set = 1; U32 bits = 10; - ensure("setGroupBits():failed ", (TRUE == perm.setGroupBits(agent,group, set, bits))); - ensure("setEveryoneBits():failed ", (TRUE == perm.setEveryoneBits(agent,group, set, bits))); - ensure("setNextOwnerBits():failed ", (TRUE == perm.setNextOwnerBits(agent,group, set, bits))); - - LLUUID agent1("abf0d56b-82e5-47a2-a8ad-74741bb2c29e"); - ensure("setGroupBits():failed ", (FALSE == perm.setGroupBits(agent1,group, set, bits))); - ensure("setEveryoneBits():failed ", (FALSE == perm.setEveryoneBits(agent1,group, set, bits))); - ensure("setNextOwnerBits():failed ", (FALSE == perm.setNextOwnerBits(agent1,group, set, bits))); + ensure("setGroupBits():failed ", perm.setGroupBits(agent,group, set, bits)); + ensure("setEveryoneBits():failed ", perm.setEveryoneBits(agent,group, set, bits)); + ensure("setNextOwnerBits():failed ", perm.setNextOwnerBits(agent,group, set, bits)); + + LLUUID agent1("abf0d56b-82e5-47a2-a8ad-74741bb2c29e"); + ensure("setGroupBits():failed ", ! perm.setGroupBits(agent1,group, set, bits)); + ensure("setEveryoneBits():failed ", ! perm.setEveryoneBits(agent1,group, set, bits)); + ensure("setNextOwnerBits():failed ", ! perm.setNextOwnerBits(agent1,group, set, bits)); } template<> template<> @@ -301,14 +301,14 @@ namespace tut LLUUID agent; LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); U32 bits = 10; - ensure("allowOperationBy():failed ", (TRUE == perm.allowOperationBy(bits,agent,group))); + ensure("allowOperationBy():failed ", perm.allowOperationBy(bits,agent,group)); LLUUID agent1("abf0d56b-82e5-47a2-a8ad-74741bb2c29e"); LLUUID creator("abf0d56b-82e5-47a2-a8ad-74741bb2c29e"); LLUUID owner("68edcf47-ccd7-45b8-9f90-1649d7f12806"); LLUUID lastOwner("5e47a0dc-97bf-44e0-8b40-de06718cee9d"); perm.init(creator,owner,lastOwner,group); - ensure("allowOperationBy():failed ", (TRUE == perm.allowOperationBy(bits,agent1,group))); + ensure("allowOperationBy():failed ", perm.allowOperationBy(bits,agent1,group)); } template<> template<> @@ -321,15 +321,12 @@ namespace tut LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); perm.init(creator,owner,lastOwner,group); LLUUID agent; - ensure("1:allowModifyBy():failed ", (TRUE == perm.allowModifyBy(agent))); - ensure("2:allowModifyBy():failed ", (TRUE == perm.allowModifyBy(agent,group))); + ensure("1:allowModifyBy():failed ", perm.allowModifyBy(agent)); + ensure("2:allowModifyBy():failed ", perm.allowModifyBy(agent,group)); - U32 val1 = 0x7FFFFFFF; - S32 sVal = 1 << 14; - sVal = val1 & sVal; LLUUID agent1("9c8eca51-53d5-42a7-bb58-cef070395db8"); - ensure("3:allowModifyBy():failed ", (sVal == perm.allowModifyBy(agent1))); - ensure("4:allowModifyBy():failed ", (sVal == perm.allowModifyBy(agent1,group))); + ensure("3:allowModifyBy():failed ", perm.allowModifyBy(agent1)); + ensure("4:allowModifyBy():failed ", perm.allowModifyBy(agent1,group)); } template<> template<> @@ -342,15 +339,12 @@ namespace tut LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); perm.init(creator,owner,lastOwner,group); LLUUID agent; - ensure("1:allowCopyBy():failed ", (TRUE == perm.allowModifyBy(agent))); - ensure("2:allowCopyBy():failed ", (TRUE == perm.allowModifyBy(agent,group))); + ensure("1:allowCopyBy():failed ", perm.allowModifyBy(agent)); + ensure("2:allowCopyBy():failed ", perm.allowModifyBy(agent,group)); - U32 val1 = 0x7FFFFFFF; - S32 sVal = 1 << 15; - sVal = val1 & sVal; LLUUID agent1("9c8eca51-53d5-42a7-bb58-cef070395db8"); - ensure("3:allowCopyBy():failed ", (sVal == perm.allowCopyBy(agent1))); - ensure("4:allowCopyBy():failed ", (sVal == perm.allowCopyBy(agent1,group))); + ensure("3:allowCopyBy():failed ", perm.allowCopyBy(agent1)); + ensure("4:allowCopyBy():failed ", perm.allowCopyBy(agent1,group)); } template<> template<> @@ -363,15 +357,12 @@ namespace tut LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); perm.init(creator,owner,lastOwner,group); LLUUID agent; - ensure("1:allowMoveBy():failed ", (TRUE == perm.allowMoveBy(agent))); - ensure("2:allowMoveBy():failed ", (TRUE == perm.allowMoveBy(agent,group))); + ensure("1:allowMoveBy():failed ", perm.allowMoveBy(agent)); + ensure("2:allowMoveBy():failed ", perm.allowMoveBy(agent,group)); - U32 val1 = 0x7FFFFFFF; - S32 sVal = 1 << 19; - sVal = val1 & sVal; LLUUID agent1("9c8eca51-53d5-42a7-bb58-cef070395db8"); - ensure("3:allowMoveBy():failed ", (sVal == perm.allowMoveBy(agent1))); - ensure("4:allowMoveBy():failed ", (sVal == perm.allowMoveBy(agent1,group))); + ensure("3:allowMoveBy():failed ", perm.allowMoveBy(agent1)); + ensure("4:allowMoveBy():failed ", perm.allowMoveBy(agent1,group)); } template<> template<> @@ -383,20 +374,17 @@ namespace tut LLUUID lastOwner("5e47a0dc-97bf-44e0-8b40-de06718cee9d"); LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); LLUUID agent; - ensure("1:allowMoveBy():failed ", (TRUE == perm.allowTransferTo(agent))); + ensure("1:allowMoveBy():failed ", perm.allowTransferTo(agent)); perm.init(creator,owner,lastOwner,group); - U32 val1 = 0x7FFFFFFF; - S32 sVal = 1 << 13; - sVal = val1 & sVal; - ensure("2:allowMoveBy():failed ", (sVal == perm.allowTransferTo(agent))); + ensure("2:allowMoveBy():failed ", perm.allowTransferTo(agent)); } template<> template<> void permission_object_t::test<18>() { LLPermissions perm,perm1; - ensure("1:Operator==:failed ", perm == perm1); + ensure_equals("1:Operator==:failed ", perm, perm1); LLUUID creator("abf0d56b-82e5-47a2-a8ad-74741bb2c29e"); LLUUID owner("68edcf47-ccd7-45b8-9f90-1649d7f12806"); @@ -404,7 +392,7 @@ namespace tut LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); perm.init(creator,owner,lastOwner,group); perm = perm1; - ensure("2:Operator==:failed ", perm == perm1); + ensure_equals("2:Operator==:failed ", perm, perm1); } template<> template<> @@ -416,7 +404,7 @@ namespace tut LLUUID lastOwner("5e47a0dc-97bf-44e0-8b40-de06718cee9d"); LLUUID group("9c8eca51-53d5-42a7-bb58-cef070395db8"); perm.init(creator,owner,lastOwner,group); - ensure("2:Operator==:failed ", perm != perm1); + ensure_not_equals("2:Operator==:failed ", perm, perm1); } template<> template<> @@ -453,7 +441,7 @@ namespace tut } perm1.importFile(fp); fclose(fp); - ensure("exportFile()/importFile():failed to export and import the data ", perm1 == perm); + ensure_equals("exportFile()/importFile():failed to export and import the data ", perm1, perm); } template<> template<> @@ -479,7 +467,7 @@ namespace tut std::istringstream istream(ostream.str()); perm1.importLegacyStream(istream); - ensure("exportLegacyStream()/importLegacyStream():failed to export and import the data ", perm1 == perm); + ensure_equals("exportLegacyStream()/importLegacyStream():failed to export and import the data ", perm1, perm); } template<> template<> @@ -502,7 +490,7 @@ namespace tut stream1 << perm; perm1.init(creator,owner,lastOwner,group); stream2 << perm1; - ensure("1:operator << failed",(stream1.str() == stream2.str())); + ensure_equals("1:operator << failed", stream1.str(), stream2.str()); } template<> template<> @@ -533,19 +521,19 @@ namespace tut { LLAggregatePermissions AggrPermission; LLAggregatePermissions AggrPermission1; - ensure("getU8() function failed", (AggrPermission.getU8() == 0)); - ensure("isEmpty() function failed", (AggrPermission.isEmpty() == TRUE)); + ensure_equals("getU8() function failed", AggrPermission.getU8(), 0); + ensure("isEmpty() function failed", AggrPermission.isEmpty()); AggrPermission.getValue(PERM_TRANSFER); ensure_equals("getValue() function failed", AggrPermission.getValue(PERM_TRANSFER), 0x00); AggrPermission.aggregate(PERM_ITEM_UNRESTRICTED); - ensure("aggregate() function failed", (AggrPermission.isEmpty() == FALSE)); + ensure("aggregate() function failed", ! AggrPermission.isEmpty()); AggrPermission1.aggregate(AggrPermission); - ensure("aggregate() function failed", (AggrPermission1.isEmpty() == FALSE)); + ensure("aggregate() function failed", ! AggrPermission1.isEmpty()); std::ostringstream stream1; stream1 << AggrPermission; - ensure("operator<< failed", (stream1.str() == "{PI_COPY=All, PI_MODIFY=All, PI_TRANSFER=All}")); + ensure_equals("operator<< failed", stream1.str(), "{PI_COPY=All, PI_MODIFY=All, PI_TRANSFER=All}"); } } diff --git a/indra/test_apps/llplugintest/bookmarks.txt b/indra/test_apps/llplugintest/bookmarks.txt index b8b83df386..2ff64f217f 100644 --- a/indra/test_apps/llplugintest/bookmarks.txt +++ b/indra/test_apps/llplugintest/bookmarks.txt @@ -18,20 +18,20 @@ (Flash) Scribd,http://www.scribd.com/doc/14427744/Second-Life-Quickstart-Guide (Flash) MAME,http://yvern.com/fMAME/fMAME.html (QT) Local sample,file:///C|/Program Files/QuickTime/Sample.mov -(QT) Movie - Watchmen Trailer,http://movies.apple.com/movies/wb/watchmen/watchmen-tlr2_480p.mov -(QT) Movie - Transformers - Revenge of the Fallen,http://movies.apple.com/movies/paramount/transformers2/transformersrevengeofthefallen-tlr1_h.320.mov -(QT) Movie - Terminator Salvation,http://movies.apple.com/movies/wb/terminatorsalvation/terminatorsalvation-tlr3_h.320.mov -(QT) Movie - Angels and Demons,http://movies.apple.com/movies/sony_pictures/angelsanddemons/angelsanddemons-video_h.320.mov -(QT) Movie - Sin City Trailer,http://movies.apple.com/movies/miramax/sin_city/sin_city_480.mov -(QT) Movie - The Incredibles Trailer,http://movies.apple.com/movies/disney/the_incredibles/the_incredibles-tlr_a480.mov +(QT) Movie - Watchmen Trailer,http://trailers.apple.com/movies/wb/watchmen/watchmen-tlr2_480p.mov +(QT) Movie - Transformers - Revenge of the Fallen,http://trailers.apple.com/movies/paramount/transformers2/transformersrevengeofthefallen-tlr1_h.320.mov +(QT) Movie - Terminator Salvation,http://trailers.apple.com/movies/wb/terminatorsalvation/terminatorsalvation-tlr3_h.320.mov +(QT) Movie - Angels and Demons,http://trailers.apple.com/movies/sony_pictures/angelsanddemons/angelsanddemons-video_h.320.mov +(QT) Movie - Sin City Trailer,http://trailers.apple.com/movies/miramax/sin_city/sin_city_480.mov +(QT) Movie - The Incredibles Trailer,http://trailers.apple.com/movies/disney/the_incredibles/the_incredibles-tlr_a480.mov (QT) Movie - Streaming Apple Event,http://stream.qtv.apple.com/events/mar/0903lajkszg/m_090374535329zdwg_650_ref.mov (QT) Movie - MPEG-4 from Amazon S3,http://s3.amazonaws.com/callum-linden/flashdemo/interactive_flash_demo.mp4 -(QT) Movie - Star Trek,http://movies.apple.com/movies/paramount/star_trek/startrek-tlr3_h.320.mov -(QT) Movie - Ice Age 3,http://movies.apple.com/movies/fox/ice_age_iii/iceage3-tlrd_h.320.mov -(QT) Movie - AstroBoy,http://movies.apple.com/movies/summit/astroboy/astroboy-tsr_h.320.mov -(QT) Movie - Ante Up,http://movies.apple.com/movies/independent/anteup/anteup_h.320.mov -(QT) Movie - Every Little Step,http://movies.apple.com/movies/sony/everylittlestep/everylittlestep-clip_h.320.mov -(QT) Movie - The Informers,http://movies.apple.com/movies/independent/theinformers/theinformers_h.320.mov +(QT) Movie - Star Trek,http://trailers.apple.com/movies/paramount/star_trek/startrek-tlr3_h.320.mov +(QT) Movie - Ice Age 3,http://trailers.apple.com/movies/fox/ice_age_iii/iceage3-tlrd_h.320.mov +(QT) Movie - AstroBoy,http://trailers.apple.com/movies/summit/astroboy/astroboy-tsr_h.320.mov +(QT) Movie - Ante Up,http://trailers.apple.com/movies/independent/anteup/anteup_h.320.mov +(QT) Movie - Every Little Step,http://trailers.apple.com/movies/sony/everylittlestep/everylittlestep-clip_h.320.mov +(QT) Movie - The Informers,http://trailers.apple.com/movies/independent/theinformers/theinformers_h.320.mov (QT) Animated GIF,http://upload.wikimedia.org/wikipedia/commons/4/44/Optical.greysquares.arp-animated.gif (QT) Apple Text Descriptors,http://ubrowser.com/tmp/apple_text.txt (EX) Example Plugin,example://blah diff --git a/indra/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp index e5a846f15a..5677308fb0 100644 --- a/indra/test_apps/llplugintest/llmediaplugintest.cpp +++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp @@ -1593,8 +1593,8 @@ void LLMediaPluginTest::addMediaPanel( std::string url ) } std::string user_data_path = std::string( cwd ) + "/"; #endif - - media_source->init( launcher_name, plugin_name, false, user_data_path ); + media_source->setUserDataPath(user_data_path); + media_source->init( launcher_name, plugin_name, false ); media_source->setDisableTimeout(mDisableTimeout); // make a new panel and save parameters @@ -1831,7 +1831,8 @@ void LLMediaPluginTest::replaceMediaPanel( mediaPanel* panel, std::string url ) std::string user_data_path = std::string( cwd ) + "/"; #endif - media_source->init( launcher_name, plugin_name, false, user_data_path ); + media_source->setUserDataPath(user_data_path); + media_source->init( launcher_name, plugin_name, false ); media_source->setDisableTimeout(mDisableTimeout); // make a new panel and save parameters diff --git a/install.xml b/install.xml index 3cd40d8893..7337241cf8 100644 --- a/install.xml +++ b/install.xml @@ -298,25 +298,6 @@ </map> </map> </map> - <key>pulseaudio</key> - <map> - <key>copyright</key> - <string>Copyright 2004-2006 Lennart Poettering, Copyright 2006 Pierre Ossman (ossman@cendio.se) for Cendio AB</string> - <key>description</key> - <string>pulseaudio: headers only</string> - <key>license</key> - <string>lgpl</string> - <key>packages</key> - <map> - <key>linux</key> - <map> - <key>md5sum</key> - <string>30cb00069fe2a545fbf7be1070386236</string> - <key>url</key> - <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/linux-pulse-headers-0.9.14.tar.bz2</uri> - </map> - </map> - </map> <key>elfio</key> <map> <key>license</key> @@ -967,23 +948,23 @@ anguage Infrstructure (CLI) international standard</string> <key>darwin</key> <map> <key>md5sum</key> - <string>95f44f0023dddc80be4398fc4f213861</string> + <string>8321cbd098e6e791a02cb00ed3bcff6c</string> <key>url</key> - <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.6-darwin-20100208.tar.bz2</uri> + <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-4.6-darwin-20100312.tar.bz2</uri> </map> <key>linux</key> <map> <key>md5sum</key> - <string>4b1913c509ea8bec78523960700d7005</string> + <string>ba22560ea01b03c40f3a37013b335f56</string> <key>url</key> - <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-20100304.tar.bz2</uri> + <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-linux-20100311.tar.bz2</uri> </map> <key>windows</key> <map> <key>md5sum</key> - <string>1e9798dc424a6f6c2bea50649bbcc7ae</string> + <string>ee5d242ea468ba9a82d2bf8581aa308d</string> <key>url</key> - <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-windows-qt4.6-20100210.tar.bz2</uri> + <uri>http://viewer-source-downloads.s3.amazonaws.com/install_pkgs/llqtwebkit-windows-qt4.6-20100312.tar.bz2</uri> </map> </map> </map> @@ -1285,6 +1266,25 @@ anguage Infrstructure (CLI) international standard</string> </map> </map> </map> + <key>pulseaudio</key> + <map> + <key>copyright</key> + <string>Copyright 2004-2006 Lennart Poettering, Copyright 2006 Pierre Ossman (ossman@cendio.se) for Cendio AB</string> + <key>description</key> + <string>pulseaudio: headers only</string> + <key>license</key> + <string>lgpl</string> + <key>packages</key> + <map> + <key>linux</key> + <map> + <key>md5sum</key> + <string>30cb00069fe2a545fbf7be1070386236</string> + <key>url</key> + <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/linux-pulse-headers-0.9.14.tar.bz2</uri> + </map> + </map> + </map> <key>quicktime</key> <map> <key>copyright</key> |