diff options
Diffstat (limited to 'indra/newview')
84 files changed, 696 insertions, 421 deletions
diff --git a/indra/newview/English.lproj/InfoPlist.strings b/indra/newview/English.lproj/InfoPlist.strings index fc531f93d4..5c7cacedec 100644 --- a/indra/newview/English.lproj/InfoPlist.strings +++ b/indra/newview/English.lproj/InfoPlist.strings @@ -2,6 +2,6 @@ CFBundleName = "Second Life"; -CFBundleShortVersionString = "Second Life version 2.1.0.0"; -CFBundleGetInfoString = "Second Life version 2.1.0.0, Copyright 2004-2009 Linden Research, Inc."; +CFBundleShortVersionString = "Second Life version 2.1.0.13828"; +CFBundleGetInfoString = "Second Life version 2.1.0.13828, Copyright 2004-2009 Linden Research, Inc."; diff --git a/indra/newview/Info-SecondLife.plist b/indra/newview/Info-SecondLife.plist index 9bc95f9b95..f7b11b217c 100644 --- a/indra/newview/Info-SecondLife.plist +++ b/indra/newview/Info-SecondLife.plist @@ -60,7 +60,7 @@ </dict> </array> <key>CFBundleVersion</key> - <string>2.1.0.0</string> + <string>2.1.0.13828</string> <key>CSResourcesFileMapped</key> <true/> </dict> diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 4dc78e9a1d..e97e152a38 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -1149,10 +1149,9 @@ void LLAgentCamera::updateCamera() static LLFastTimer::DeclareTimer ftm("Camera"); LLFastTimer t(ftm); - //Ventrella - changed camera_skyward to the new global "mCameraUpVector" + // - changed camera_skyward to the new global "mCameraUpVector" mCameraUpVector = LLVector3::z_axis; //LLVector3 camera_skyward(0.f, 0.f, 1.f); - //end Ventrella U32 camera_mode = mCameraAnimating ? mLastCameraMode : mCameraMode; @@ -1162,10 +1161,8 @@ void LLAgentCamera::updateCamera() gAgentAvatarp->isSitting() && camera_mode == CAMERA_MODE_MOUSELOOK) { - //Ventrella //changed camera_skyward to the new global "mCameraUpVector" mCameraUpVector = mCameraUpVector * gAgentAvatarp->getRenderRotation(); - //end Ventrella } if (cameraThirdPerson() && mFocusOnAvatar && LLFollowCamMgr::getActiveFollowCamParams()) @@ -1173,13 +1170,11 @@ void LLAgentCamera::updateCamera() changeCameraToFollow(); } - //Ventrella //NOTE - this needs to be integrated into a general upVector system here within llAgent. if ( camera_mode == CAMERA_MODE_FOLLOW && mFocusOnAvatar ) { mCameraUpVector = mFollowCam.getUpVector(); } - //end Ventrella if (mSitCameraEnabled) { @@ -1256,7 +1251,6 @@ void LLAgentCamera::updateCamera() // lerp camera focus offset mCameraFocusOffset = lerp(mCameraFocusOffset, mCameraFocusOffsetTarget, LLCriticalDamp::getInterpolant(CAMERA_FOCUS_HALF_LIFE)); - //Ventrella if ( mCameraMode == CAMERA_MODE_FOLLOW ) { if (isAgentAvatarValid()) @@ -1283,7 +1277,6 @@ void LLAgentCamera::updateCamera() } } } - // end Ventrella BOOL hit_limit; LLVector3d camera_pos_global; @@ -1414,10 +1407,8 @@ void LLAgentCamera::updateCamera() // Move the camera - //Ventrella LLViewerCamera::getInstance()->updateCameraLocation(mCameraPositionAgent, mCameraUpVector, focus_agent); //LLViewerCamera::getInstance()->updateCameraLocation(mCameraPositionAgent, camera_skyward, focus_agent); - //end Ventrella // Change FOV LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / (1.f + mCameraCurrentFOVZoomFactor)); @@ -1532,12 +1523,11 @@ LLVector3d LLAgentCamera::calcFocusPositionTargetGlobal() clearFocusObject(); } - // Ventrella if (mCameraMode == CAMERA_MODE_FOLLOW && mFocusOnAvatar) { mFocusTargetGlobal = gAgent.getPosGlobalFromAgent(mFollowCam.getSimulatedFocus()); return mFocusTargetGlobal; - }// End Ventrella + } else if (mCameraMode == CAMERA_MODE_MOUSELOOK) { LLVector3d at_axis(1.0, 0.0, 0.0); @@ -1706,11 +1696,10 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit) LLVector3d camera_position_global; - // Ventrella if (mCameraMode == CAMERA_MODE_FOLLOW && mFocusOnAvatar) { camera_position_global = gAgent.getPosGlobalFromAgent(mFollowCam.getSimulatedPosition()); - }// End Ventrella + } else if (mCameraMode == CAMERA_MODE_MOUSELOOK) { if (!isAgentAvatarValid() || gAgentAvatarp->mDrawable.isNull()) @@ -2130,7 +2119,6 @@ void LLAgentCamera::changeCameraToDefault() } -// Ventrella //----------------------------------------------------------------------------- // changeCameraToFollow() //----------------------------------------------------------------------------- diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 337878cf96..5db16d9250 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1756,7 +1756,7 @@ void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj LLViewerObject *objectp = (*attachment_iter); if (objectp) { - LLUUID object_item_id = objectp->getItemID(); + LLUUID object_item_id = objectp->getAttachmentItemID(); if (requested_item_ids.find(object_item_id) != requested_item_ids.end()) { // Object currently worn, was requested. diff --git a/indra/newview/llagentwearablesfetch.cpp b/indra/newview/llagentwearablesfetch.cpp index d911d123f4..f6bb1b9bc9 100644 --- a/indra/newview/llagentwearablesfetch.cpp +++ b/indra/newview/llagentwearablesfetch.cpp @@ -215,7 +215,7 @@ void LLInitialWearablesFetch::processWearablesMessage() { LLViewerObject* attached_object = (*attachment_iter); if (!attached_object) continue; - const LLUUID& item_id = attached_object->getItemID(); + const LLUUID& item_id = attached_object->getAttachmentItemID(); if (item_id.isNull()) continue; ids.push_back(item_id); } diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index cecb2ee6ad..b844803cb6 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -1305,16 +1305,8 @@ bool LLAppearanceMgr::getCanReplaceCOF(const LLUUID& outfit_cat_id) return false; } - // Check whether the outfit contains any non-worn wearables. - LLInventoryModel::cat_array_t cats; - LLInventoryModel::item_array_t items; - LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ true); - gInventory.collectDescendentsIf(outfit_cat_id, - cats, - items, - LLInventoryModel::EXCLUDE_TRASH, - not_worn); - return items.size() > 0; + // Check whether the outfit contains the full set of body parts (shape+skin+hair+eyes). + return getCanMakeFolderIntoOutfit(outfit_cat_id); } void LLAppearanceMgr::purgeBaseOutfitLink(const LLUUID& category) diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 7c33923f04..7204e6c39c 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -699,8 +699,9 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL { LLStyle::Params link_params(style_params); link_params.overwriteFrom(LLStyleMap::instance().lookupAgent(chat.mFromID)); - // Convert the name to a hotlink and add to message. - mEditor->appendText(chat.mFromName + delimiter, false, link_params); + // Add link to avatar's inspector and delimiter to message. + mEditor->appendText(link_params.link_href, false, style_params); + mEditor->appendText(delimiter, false, style_params); } else { diff --git a/indra/newview/llfloatergroups.cpp b/indra/newview/llfloatergroups.cpp index 8558345efa..834f517734 100644 --- a/indra/newview/llfloatergroups.cpp +++ b/indra/newview/llfloatergroups.cpp @@ -47,7 +47,6 @@ #include "llbutton.h" #include "llgroupactions.h" #include "llscrolllistctrl.h" -#include "llselectmgr.h" #include "lltextbox.h" #include "lluictrlfactory.h" #include "lltrans.h" @@ -90,8 +89,6 @@ BOOL LLFloaterGroupPicker::postBuild() list_ctrl->setContextMenu(LLScrollListCtrl::MENU_GROUP); } - LLSelectMgr::getInstance()->mUpdateSignal.connect(boost::bind(&LLFloaterGroupPicker::onBtnCancel, this)); - childSetAction("OK", onBtnOK, this); childSetAction("Cancel", onBtnCancel, this); diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 49d80a0249..d37886806b 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -62,6 +62,7 @@ #include "llviewerwindow.h" #include "llvoavatar.h" #include "llfloaterproperties.h" +#include "llnotificationsutil.h" // Linden library includes #include "lldbstrings.h" @@ -104,7 +105,6 @@ void copy_selected_item(void* user_data); void open_selected_items(void* user_data); void properties_selected_items(void* user_data); void paste_items(void* user_data); -void renamer_focus_lost( LLFocusableElement* handler, void* user_data ); //--------------------------------------------------------------------------- @@ -274,6 +274,8 @@ LLFolderView::LLFolderView(const Params& p) // Destroys the object LLFolderView::~LLFolderView( void ) { + closeRenamer(); + // The release focus call can potentially call the // scrollcontainer, which can potentially be called with a partly // destroyed scollcontainer. Just null it out here, and no worries @@ -289,8 +291,6 @@ LLFolderView::~LLFolderView( void ) LLView::deleteViewByHandle(mPopupMenuHandle); - gViewerWindow->removePopup(mRenamer); - mAutoOpenItems.removeAllNodes(); clearSelection(); mItems.clear(); @@ -561,9 +561,7 @@ void LLFolderView::addToSelectionList(LLFolderViewItem* item) void LLFolderView::removeFromSelectionList(LLFolderViewItem* item) { - // If items are filtered while background fetch is in progress - // scrollbar resets to the first filtered item. See EXT-3981. - if (!LLInventoryModelBackgroundFetch::instance().backgroundFetchActive() && mSelectedItems.size()) + if (mSelectedItems.size()) { mSelectedItems.back()->setIsCurSelection(FALSE); } @@ -999,12 +997,7 @@ void LLFolderView::finishRenamingItem( void ) mRenameItem->rename( mRenamer->getText() ); } - gViewerWindow->removePopup(mRenamer); - - if( mRenameItem ) - { - setSelectionFromRoot( mRenameItem, TRUE ); - } + closeRenamer(); // List is re-sorted alphabeticly, so scroll to make sure the selected item is visible. scrollToShowSelection(); @@ -1012,20 +1005,26 @@ void LLFolderView::finishRenamingItem( void ) void LLFolderView::closeRenamer( void ) { - // will commit current name (which could be same as original name) - mRenamer->setFocus( FALSE ); - mRenamer->setVisible( FALSE ); - gViewerWindow->removePopup(mRenamer); - - if( mRenameItem ) + if (mRenamer && mRenamer->getVisible()) { - setSelectionFromRoot( mRenameItem, TRUE ); - mRenameItem = NULL; + // Triggers onRenamerLost() that actually closes the renamer. + gViewerWindow->removePopup(mRenamer); } } void LLFolderView::removeSelectedItems( void ) { + if (mSelectedItems.empty()) return; + LLSD args; + args["QUESTION"] = LLTrans::getString(mSelectedItems.size() > 1 ? "DeleteItems" : "DeleteItem"); + LLNotificationsUtil::add("DeleteItems", args, LLSD(), boost::bind(&LLFolderView::onItemsRemovalConfirmation, this, _1, _2)); +} + +void LLFolderView::onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option != 0) return; // canceled + if(getVisible() && getEnabled()) { // just in case we're removing the renaming item. @@ -1445,8 +1444,7 @@ void LLFolderView::startRenamingSelectedItem( void ) mRenamer->setVisible( TRUE ); // set focus will fail unless item is visible mRenamer->setFocus( TRUE ); - mRenamer->setTopLostCallback(boost::bind(&LLFolderView::onRenamerLost, this, _1)); - mRenamer->setFocusLostCallback(boost::bind(&LLFolderView::onRenamerLost, this, _1)); + mRenamer->setTopLostCallback(boost::bind(&LLFolderView::onRenamerLost, this)); gViewerWindow->addPopup(mRenamer); } } @@ -1967,10 +1965,7 @@ BOOL LLFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, void LLFolderView::deleteAllChildren() { - if(mRenamer == gFocusMgr.getTopCtrl()) - { - gViewerWindow->removePopup(mRenamer); - } + closeRenamer(); LLView::deleteViewByHandle(mPopupMenuHandle); mPopupMenuHandle = LLHandle<LLView>(); mRenamer = NULL; @@ -1981,7 +1976,9 @@ void LLFolderView::deleteAllChildren() void LLFolderView::scrollToShowSelection() { - if (mSelectedItems.size()) + // If items are filtered while background fetch is in progress + // scrollbar resets to the first filtered item. See EXT-3981. + if (!LLInventoryModelBackgroundFetch::instance().backgroundFetchActive() && mSelectedItems.size()) { mNeedsScroll = TRUE; } @@ -2453,13 +2450,20 @@ S32 LLFolderView::notify(const LLSD& info) /// Local function definitions ///---------------------------------------------------------------------------- -void LLFolderView::onRenamerLost( LLFocusableElement* renamer) +void LLFolderView::onRenamerLost() { - mRenameItem = NULL; - LLUICtrl* uictrl = dynamic_cast<LLUICtrl*>(renamer); - if (uictrl) + if (mRenamer && mRenamer->getVisible()) + { + mRenamer->setVisible(FALSE); + + // will commit current name (which could be same as original name) + mRenamer->setFocus(FALSE); + } + + if( mRenameItem ) { - uictrl->setVisible(FALSE); + setSelectionFromRoot( mRenameItem, TRUE ); + mRenameItem = NULL; } } diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index a7763e8eeb..21004fdb16 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -283,7 +283,7 @@ protected: LLScrollContainer* mScrollContainer; // NULL if this is not a child of a scroll container. void commitRename( const LLSD& data ); - void onRenamerLost( LLFocusableElement* renamer); + void onRenamerLost(); void finishRenamingItem( void ); void closeRenamer( void ); @@ -293,6 +293,8 @@ protected: BOOL addNoOptions(LLMenuGL* menu) const; + void onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response); + protected: LLHandle<LLView> mPopupMenuHandle; diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 7e710ce8e1..53622f7188 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -3989,6 +3989,11 @@ std::string LLObjectBridge::getLabelSuffix() const { if (get_is_item_worn(mUUID)) { + if (!isAgentAvatarValid()) + { + return LLItemBridge::getLabelSuffix() + LLTrans::getString("worn"); + } + std::string attachment_point_name = gAgentAvatarp->getAttachedPointName(mUUID); // e.g. "(worn on ...)" / "(attached to ...)" diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp index f921bca623..f2207e5c00 100644 --- a/indra/newview/lloutfitslist.cpp +++ b/indra/newview/lloutfitslist.cpp @@ -403,6 +403,12 @@ void LLOutfitsList::onOpen(const LLSD& /*info*/) mIsInitialized = true; } + + LLAccordionCtrlTab* selected_tab = mAccordion->getSelectedTab(); + if (!selected_tab) return; + + // Pass focus to the selected outfit tab. + selected_tab->showAndFocusHeader(); } void LLOutfitsList::refreshList(const LLUUID& category_id) @@ -1038,14 +1044,7 @@ void LLOutfitsList::wearSelectedItems() return; } - uuid_vec_t::const_iterator it; - // Wear items from all selected lists(if possible- add, else replace) - for (it = selected_uuids.begin(); it != selected_uuids.end()-1; ++it) - { - LLAppearanceMgr::getInstance()->wearItemOnAvatar(*it, false, false); - } - // call update only when wearing last item - LLAppearanceMgr::getInstance()->wearItemOnAvatar(*it, true, false); + wear_multiple(selected_uuids, false); } void LLOutfitsList::onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y) diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index b399e41791..6f47fc60b0 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -522,6 +522,9 @@ void LLLandmarksPanel::setParcelID(const LLUUID& parcel_id) { if (!parcel_id.isNull()) { + //ext-4655, defensive. remove now incase this gets called twice without a remove + LLRemoteParcelInfoProcessor::getInstance()->removeObserver(parcel_id, this); + LLRemoteParcelInfoProcessor::getInstance()->addObserver(parcel_id, this); LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(parcel_id); } diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp index 0464aa377e..cfd31b6829 100644 --- a/indra/newview/llpaneloutfitedit.cpp +++ b/indra/newview/llpaneloutfitedit.cpp @@ -543,12 +543,26 @@ BOOL LLPanelOutfitEdit::postBuild() childSetAction(REVERT_BTN, boost::bind(&LLAppearanceMgr::wearBaseOutfit, LLAppearanceMgr::getInstance())); + /* + * By default AT_CLOTHING are sorted by (in in MY OUTFITS): + * - by type (types order determined in LLWearableType::EType) + * - each LLWearableType::EType by outer layer on top + * + * In Add More panel AT_CLOTHING should be sorted in a such way: + * - by type (types order determined in LLWearableType::EType) + * - each LLWearableType::EType by name (EXT-8205) + */ + mWearableListViewItemsComparator = new LLWearableItemTypeNameComparator(); + mWearableListViewItemsComparator->setOrder(LLAssetType::AT_CLOTHING, LLWearableItemTypeNameComparator::ORDER_RANK_1, false, true); + mWearablesListViewPanel = getChild<LLPanel>("filtered_wearables_panel"); mWearableItemsList = getChild<LLWearableItemsList>("list_view"); mWearableItemsList->setCommitOnSelectionChange(true); mWearableItemsList->setCommitCallback(boost::bind(&LLPanelOutfitEdit::updatePlusButton, this)); mWearableItemsList->setDoubleClickCallback(boost::bind(&LLPanelOutfitEdit::onPlusBtnClicked, this)); + mWearableItemsList->setComparator(mWearableListViewItemsComparator); + mSaveComboBtn.reset(new LLSaveOutfitComboBtn(this)); return TRUE; } diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h index 871ed8d7ec..8d0325a4d6 100644 --- a/indra/newview/llpaneloutfitedit.h +++ b/indra/newview/llpaneloutfitedit.h @@ -232,6 +232,7 @@ private: LLFilteredWearableListManager* mWearableListManager; LLWearableItemsList* mWearableItemsList; LLPanel* mWearablesListViewPanel; + LLWearableItemTypeNameComparator* mWearableListViewItemsComparator; LLCOFDragAndDropObserver* mCOFDragAndDropObserver; diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp index 11b51f4dd4..54eb21422e 100644 --- a/indra/newview/llpanelpick.cpp +++ b/indra/newview/llpanelpick.cpp @@ -210,6 +210,9 @@ void LLPanelPickInfo::sendParcelInfoRequest() { if (mParcelId != mRequestedId) { + //ext-4655, remove now incase this gets called twice without a remove + LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mRequestedId, this); + LLRemoteParcelInfoProcessor::getInstance()->addObserver(mParcelId, this); LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(mParcelId); diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp index 1ca4a048a4..095cd79aaf 100644 --- a/indra/newview/llpanelplaceinfo.cpp +++ b/indra/newview/llpanelplaceinfo.cpp @@ -133,6 +133,10 @@ void LLPanelPlaceInfo::sendParcelInfoRequest() { if (mParcelID != mRequestedID) { + //ext-4655, defensive. remove now incase this gets called twice without a remove + //as panel never closes its ok atm (but wrong :) + LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mRequestedID, this); + LLRemoteParcelInfoProcessor::getInstance()->addObserver(mParcelID, this); LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(mParcelID); diff --git a/indra/newview/llpaneltopinfobar.cpp b/indra/newview/llpaneltopinfobar.cpp index 68dc1cdf71..e73d1fb7c2 100644 --- a/indra/newview/llpaneltopinfobar.cpp +++ b/indra/newview/llpaneltopinfobar.cpp @@ -161,6 +161,8 @@ BOOL LLPanelTopInfoBar::postBuild() mParcelMgrConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( boost::bind(&LLPanelTopInfoBar::onAgentParcelChange, this)); + setVisibleCallback(boost::bind(&LLPanelTopInfoBar::onVisibilityChange, this, _2)); + return TRUE; } @@ -174,6 +176,27 @@ void LLPanelTopInfoBar::onNavBarShowParcelPropertiesCtrlChanged() setParcelInfoText(new_text); } +// when panel is shown, all minimized floaters should be shifted downwards to prevent overlapping of +// PanelTopInfoBar. See EXT-7951. +void LLPanelTopInfoBar::onVisibilityChange(const LLSD& show) +{ + // this height is used as a vertical offset for ALREADY MINIMIZED floaters + // when PanelTopInfoBar visibility changes + S32 height = getRect().getHeight(); + + // this vertical offset is used for a start minimize position of floaters that + // are NOT MIMIMIZED YET + S32 minimize_pos_offset = 0; + + if (show.asBoolean()) + { + height = minimize_pos_offset = -height; + } + + gFloaterView->shiftFloaters(0, height); + gFloaterView->setMinimizePositionVerticalOffset(minimize_pos_offset); +} + void LLPanelTopInfoBar::draw() { updateParcelInfoText(); diff --git a/indra/newview/llpaneltopinfobar.h b/indra/newview/llpaneltopinfobar.h index 6e6fbc08ab..0603ee744f 100644 --- a/indra/newview/llpaneltopinfobar.h +++ b/indra/newview/llpaneltopinfobar.h @@ -58,6 +58,11 @@ public: */ void handleLoginComplete(); + /** + * Called when the top info bar gets shown or hidden + */ + void onVisibilityChange(const LLSD& show); + private: class LLParcelChangeObserver; diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index adfd457664..33a464fea6 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -473,7 +473,7 @@ void LLSidepanelAppearance::fetchInventory() { LLViewerObject* attached_object = (*attachment_iter); if (!attached_object) continue; - const LLUUID& item_id = attached_object->getItemID(); + const LLUUID& item_id = attached_object->getAttachmentItemID(); if (item_id.isNull()) continue; ids.push_back(item_id); } diff --git a/indra/newview/llstylemap.cpp b/indra/newview/llstylemap.cpp index 8fab3bb361..b3d7dddde8 100644 --- a/indra/newview/llstylemap.cpp +++ b/indra/newview/llstylemap.cpp @@ -46,20 +46,12 @@ const LLStyle::Params &LLStyleMap::lookupAgent(const LLUUID &source) if (mMap.find(source) == mMap.end()) { LLStyle::Params style_params; - if (source != LLUUID::null && source != gAgent.getID() ) + if (source != LLUUID::null) { style_params.color.control = "HTMLLinkColor"; style_params.readonly_color.control = "HTMLLinkColor"; - style_params.link_href = - LLSLURL("agent", source, "inspect").getSLURLString(); + style_params.link_href = LLSLURL("agent", source, "inspect").getSLURLString(); } - else - { - // Make the resident's own name white and don't make the name clickable. - style_params.color = LLColor4::white; - style_params.readonly_color = LLColor4::white; - } - mMap[source] = style_params; } return mMap[source]; diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 65a40a5b3a..f4899d0d5d 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -54,6 +54,7 @@ #include "llviewertexturelist.h" #include "llviewertexture.h" #include "llviewerregion.h" +#include "llviewerstats.h" #include "llworld.h" ////////////////////////////////////////////////////////////////////////////// @@ -150,7 +151,7 @@ public: ~LLTextureFetchWorker(); void relese() { --mActiveCount; } - void callbackHttpGet(const LLChannelDescriptors& channels, + S32 callbackHttpGet(const LLChannelDescriptors& channels, const LLIOPipe::buffer_ptr_t& buffer, bool partial, bool success); void callbackCacheRead(bool success, LLImageFormatted* image, @@ -335,8 +336,9 @@ public: worker->setGetStatus(status, reason); // llwarns << "CURL GET FAILED, status:" << status << " reason:" << reason << llendl; } - mFetcher->removeFromHTTPQueue(mID); - worker->callbackHttpGet(channels, buffer, partial, success); + + S32 data_size = worker->callbackHttpGet(channels, buffer, partial, success); + mFetcher->removeFromHTTPQueue(mID, data_size); } else { @@ -850,19 +852,10 @@ bool LLTextureFetchWorker::doWork(S32 param) { if(mCanUseHTTP) { - // *TODO: Integrate this with llviewerthrottle - // Note: LLViewerThrottle uses dynamic throttling which makes sense for UDP, - // but probably not for Textures. - // Set the throttle to the entire bandwidth, assuming UDP packets will get priority - // when they are needed - F32 max_bandwidth = mFetcher->mMaxBandwidth; - if (mFetcher->isHTTPThrottled(mDesiredSize) || - mFetcher->getTextureBandwidth() > max_bandwidth) - { - // Make normal priority and return (i.e. wait until there is room in the queue) - setPriority(LLWorkerThread::PRIORITY_NORMAL | mWorkPriority); - return false; - } + //NOTE: + //it seems ok to let sim control the UDP traffic + //so there is no throttle for http here. + // mFetcher->removeFromNetworkQueue(this, false); @@ -872,10 +865,17 @@ bool LLTextureFetchWorker::doWork(S32 param) cur_size = mFormattedImage->getDataSize(); // amount of data we already have if (mFormattedImage->getDiscardLevel() == 0) { - // We already have all the data, just decode it - mLoadedDiscard = mFormattedImage->getDiscardLevel(); - mState = DECODE_IMAGE; - return false; + if(cur_size > 0) + { + // We already have all the data, just decode it + mLoadedDiscard = mFormattedImage->getDiscardLevel(); + mState = DECODE_IMAGE; + return false; + } + else + { + return true ; //abort. + } } } mRequestedSize = mDesiredSize; @@ -892,7 +892,7 @@ bool LLTextureFetchWorker::doWork(S32 param) mGetReason.clear(); LL_DEBUGS("Texture") << "HTTP GET: " << mID << " Offset: " << offset << " Bytes: " << mRequestedSize - << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << max_bandwidth + << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << mFetcher->mMaxBandwidth << LL_ENDL; setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); mState = WAIT_HTTP_REQ; @@ -972,6 +972,7 @@ bool LLTextureFetchWorker::doWork(S32 param) else { resetFormattedData(); + mState = DONE; return true; // failed } } @@ -982,6 +983,17 @@ bool LLTextureFetchWorker::doWork(S32 param) } } + llassert_always(mBufferSize == cur_size + mRequestedSize); + if(!mBufferSize)//no data received. + { + delete[] mBuffer; + mBuffer = NULL; + + //abort. + mState = DONE; + return true; + } + if (mFormattedImage.isNull()) { // For now, create formatted image based on extension @@ -992,8 +1004,7 @@ bool LLTextureFetchWorker::doWork(S32 param) mFormattedImage = new LLImageJ2C; // default } } - - llassert_always(mBufferSize == cur_size + mRequestedSize); + if (mHaveAllData && mRequestedDiscard == 0) //the image file is fully loaded. { mFileSize = mBufferSize; @@ -1052,7 +1063,12 @@ bool LLTextureFetchWorker::doWork(S32 param) if (mFormattedImage->getDataSize() <= 0) { - llerrs << "Decode entered with invalid mFormattedImage. ID = " << mID << llendl; + //llerrs << "Decode entered with invalid mFormattedImage. ID = " << mID << llendl; + + //abort, don't decode + mState = DONE; + setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); + return true; } if (mLoadedDiscard < 0) { @@ -1249,8 +1265,7 @@ bool LLTextureFetchWorker::deleteOK() if ((haveWork() && // not ok to delete from these states - ((mState == WAIT_HTTP_REQ) || - (mState >= WRITE_TO_CACHE && mState <= WAIT_ON_WRITE)))) + ((mState >= WRITE_TO_CACHE && mState <= WAIT_ON_WRITE)))) { delete_ok = false; } @@ -1329,29 +1344,29 @@ bool LLTextureFetchWorker::processSimulatorPackets() ////////////////////////////////////////////////////////////////////////////// -void LLTextureFetchWorker::callbackHttpGet(const LLChannelDescriptors& channels, +S32 LLTextureFetchWorker::callbackHttpGet(const LLChannelDescriptors& channels, const LLIOPipe::buffer_ptr_t& buffer, bool partial, bool success) { + S32 data_size = 0 ; + LLMutexLock lock(&mWorkMutex); if (mState != WAIT_HTTP_REQ) { llwarns << "callbackHttpGet for unrequested fetch worker: " << mID << " req=" << mSentRequest << " state= " << mState << llendl; - return; + return data_size; } if (mLoaded) { llwarns << "Duplicate callback for " << mID.asString() << llendl; - return; // ignore duplicate callback + return data_size ; // ignore duplicate callback } if (success) { // get length of stream: - S32 data_size = buffer->countAfter(channels.in(), NULL); - - gTextureList.sTextureBits += data_size * 8; // Approximate - does not include header bits + data_size = buffer->countAfter(channels.in(), NULL); LL_DEBUGS("Texture") << "HTTP RECEIVED: " << mID.asString() << " Bytes: " << data_size << LL_ENDL; if (data_size > 0) @@ -1388,6 +1403,8 @@ void LLTextureFetchWorker::callbackHttpGet(const LLChannelDescriptors& channels, } mLoaded = TRUE; setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); + + return data_size ; } ////////////////////////////////////////////////////////////////////////////// @@ -1506,15 +1523,11 @@ LLTextureFetch::LLTextureFetch(LLTextureCache* cache, LLImageDecodeThread* image mTextureCache(cache), mImageDecodeThread(imagedecodethread), mTextureBandwidth(0), + mHTTPTextureBits(0), mCurlGetRequest(NULL) { mMaxBandwidth = gSavedSettings.getF32("ThrottleBandwidthKBPS"); mTextureInfo.setUpLogging(gSavedSettings.getBOOL("LogTextureDownloadsToViewerLog"), gSavedSettings.getBOOL("LogTextureDownloadsToSimulator"), gSavedSettings.getU32("TextureLoggingThreshold")); - - for(S32 i = 0 ; i < TOTAL_TEXTURE_TYPES; i++) - { - mHTTPThrottleFlag[i] = FALSE ; - } } LLTextureFetch::~LLTextureFetch() @@ -1656,69 +1669,11 @@ void LLTextureFetch::addToHTTPQueue(const LLUUID& id) mHTTPTextureQueue.insert(id); } -void LLTextureFetch::removeFromHTTPQueue(const LLUUID& id) +void LLTextureFetch::removeFromHTTPQueue(const LLUUID& id, S32 received_size) { LLMutexLock lock(&mNetworkQueueMutex); mHTTPTextureQueue.erase(id); -} - -void LLTextureFetch::clearHTTPThrottleFlag() -{ - static const F32 WAIT_TIME = 0.3f ; //seconds. - static LLFrameTimer timer ; - - if(timer.getElapsedTimeF32() < WAIT_TIME) //wait for WAIT_TIME - { - return ; - } - timer.reset() ; - - LLMutexLock lock(&mNetworkQueueMutex); - for(S32 i = 0 ; i < TOTAL_TEXTURE_TYPES; i++)//reset the http throttle flags. - { - mHTTPThrottleFlag[i] = FALSE ; - } -} - -//check if need to throttle this fetching request. -//rule: if a request can not be inserted into the http queue due to a full queue, -// block all future insertions of requests with larger fetching size requirement. -//because: -// later insertions are usually at lower priorities; and -// small textures need chance to be fetched. -bool LLTextureFetch::isHTTPThrottled(S32 requested_size) -{ - static const S32 SMALL_TEXTURE_MAX_SIZE = 64 * 64 * 4 ; - static const S32 MEDIUM_TEXTURE_MAX_SIZE = 256 * 256 * 4 ; - static const U32 MAX_HTTP_QUEUE_SIZE = 8 ; - - //determine the class of the texture: SMALL, MEDIUM, or LARGE. - S32 type = LARGE_TEXTURE ; - if(requested_size <= SMALL_TEXTURE_MAX_SIZE) - { - type = SMALL_TEXTURE ; - } - else if(requested_size <= MEDIUM_TEXTURE_MAX_SIZE) - { - type = MEDIUM_TEXTURE ; - } - - LLMutexLock lock(&mNetworkQueueMutex); - - if(mHTTPTextureQueue.size() >= MAX_HTTP_QUEUE_SIZE)//if the http queue is full. - { - if(!mHTTPThrottleFlag[type + 1]) - { - for(S32 i = type + 1 ; i < TOTAL_TEXTURE_TYPES; i++) //block all requests with fetching size larger than this request. - { - mHTTPThrottleFlag[i] = TRUE ; - } - } - - return true ; - } - - return mHTTPThrottleFlag[type] ; //true if this request can not be inserted to the http queue. + mHTTPTextureBits += received_size * 8; // Approximate - does not include header bits } void LLTextureFetch::deleteRequest(const LLUUID& id, bool cancel) @@ -1866,12 +1821,19 @@ bool LLTextureFetch::updateRequestPriority(const LLUUID& id, F32 priority) //virtual S32 LLTextureFetch::update(U32 max_time_ms) { - S32 res; - static LLCachedControl<F32> band_width(gSavedSettings,"ThrottleBandwidthKBPS"); - mMaxBandwidth = band_width ; - - res = LLWorkerThread::update(max_time_ms); + + { + mNetworkQueueMutex.lock() ; + mMaxBandwidth = band_width ; + + gTextureList.sTextureBits += mHTTPTextureBits ; + mHTTPTextureBits = 0 ; + + mNetworkQueueMutex.unlock() ; + } + + S32 res = LLWorkerThread::update(max_time_ms); if (!mDebugPause) { @@ -1887,7 +1849,6 @@ S32 LLTextureFetch::update(U32 max_time_ms) lldebugs << "processed: " << processed << " messages." << llendl; } } - clearHTTPThrottleFlag(); return res; } diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h index c31c38b04a..2024165e7e 100644 --- a/indra/newview/lltexturefetch.h +++ b/indra/newview/lltexturefetch.h @@ -94,9 +94,7 @@ protected: void addToNetworkQueue(LLTextureFetchWorker* worker); void removeFromNetworkQueue(LLTextureFetchWorker* worker, bool cancel); void addToHTTPQueue(const LLUUID& id); - void removeFromHTTPQueue(const LLUUID& id); - bool isHTTPThrottled(S32 requested_size); - void clearHTTPThrottleFlag(); + void removeFromHTTPQueue(const LLUUID& id, S32 received_size = 0); void removeRequest(LLTextureFetchWorker* worker, bool cancel); // Called from worker thread (during doWork) void processCurlRequests(); @@ -136,15 +134,7 @@ private: F32 mMaxBandwidth; LLTextureInfo mTextureInfo; - enum - { - SMALL_TEXTURE = 0 , //size <= 64 * 64 - MEDIUM_TEXTURE, //size <= 256 * 256 - LARGE_TEXTURE, //size > 256 * 256 - DUMMY, - TOTAL_TEXTURE_TYPES - }; - BOOL mHTTPThrottleFlag[TOTAL_TEXTURE_TYPES]; + U32 mHTTPTextureBits; }; #endif // LL_LLTEXTUREFETCH_H diff --git a/indra/newview/llviewerjointattachment.cpp b/indra/newview/llviewerjointattachment.cpp index 2b4b78d82d..da4960b69d 100644 --- a/indra/newview/llviewerjointattachment.cpp +++ b/indra/newview/llviewerjointattachment.cpp @@ -172,19 +172,7 @@ BOOL LLViewerJointAttachment::addObject(LLViewerObject* object) // re-connect object to the joint correctly } - // Find the inventory item ID of the attached object - LLNameValue* item_id_nv = object->getNVPair("AttachItemID"); - if( item_id_nv ) - { - const char* s = item_id_nv->getString(); - if( s ) - { - LLUUID item_id; - item_id.set(s); - object->setItemID(item_id); - lldebugs << "getNVPair( AttachItemID ) = " << item_id << llendl; - } - } + object->extractAttachmentItemID(); mAttachedObjects.push_back(object); setupDrawable(object); @@ -303,7 +291,7 @@ void LLViewerJointAttachment::removeObject(LLViewerObject *object) { mUpdateXform = FALSE; } - object->setItemID(LLUUID::null); + object->setAttachmentItemID(LLUUID::null); } //----------------------------------------------------------------------------- @@ -429,7 +417,7 @@ const LLViewerObject *LLViewerJointAttachment::getAttachedObject(const LLUUID &o ++iter) { const LLViewerObject* attached_object = (*iter); - if (attached_object->getItemID() == object_id) + if (attached_object->getAttachmentItemID() == object_id) { return attached_object; } @@ -444,7 +432,7 @@ LLViewerObject *LLViewerJointAttachment::getAttachedObject(const LLUUID &object_ ++iter) { LLViewerObject* attached_object = (*iter); - if (attached_object->getItemID() == object_id) + if (attached_object->getAttachmentItemID() == object_id) { return attached_object; } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 92195f0a4d..2a72e255d0 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -1083,6 +1083,8 @@ class LLAdvancedToggleWireframe : public view_listener_t bool handleEvent(const LLSD& userdata) { gUseWireframe = !(gUseWireframe); + LLPipeline::updateRenderDeferred(); + gPipeline.resetVertexBuffers(); return true; } }; @@ -5950,7 +5952,8 @@ void LLObjectAttachToAvatar::confirmReplaceAttachment(S32 option, LLViewerJointA delta = delta * 0.5f; walkToSpot -= delta; - CallbackData* user_data = new CallbackData(attachment_point, mReplace); // *TODO: leak if the callback isn't called? + // The callback will be called even if avatar fails to get close enough to the object, so we won't get a memory leak. + CallbackData* user_data = new CallbackData(attachment_point, mReplace); gAgent.startAutoPilotGlobal(gAgent.getPosGlobalFromAgent(walkToSpot), "Attach", NULL, onNearAttachObject, user_data, stop_distance); gAgentCamera.clearFocusObject(); } @@ -6071,7 +6074,7 @@ static bool onEnableAttachmentLabel(LLUICtrl* ctrl, const LLSD& data) const LLViewerObject* attached_object = (*attachment_iter); if (attached_object) { - LLViewerInventoryItem* itemp = gInventory.getItem(attached_object->getItemID()); + LLViewerInventoryItem* itemp = gInventory.getItem(attached_object->getAttachmentItemID()); if (itemp) { label += std::string(" (") + itemp->getName() + std::string(")"); @@ -6190,14 +6193,14 @@ class LLAttachmentEnableDrop : public view_listener_t { // make sure item is in your inventory (it could be a delayed attach message being sent from the sim) // so check to see if the item is in the inventory already - item = gInventory.getItem((*attachment_iter)->getItemID()); + item = gInventory.getItem((*attachment_iter)->getAttachmentItemID()); if (!item) { // Item does not exist, make an observer to enable the pie menu // when the item finishes fetching worst case scenario // if a fetch is already out there (being sent from a slow sim) // we refetch and there are 2 fetches - LLWornItemFetchedObserver* worn_item_fetched = new LLWornItemFetchedObserver((*attachment_iter)->getItemID()); + LLWornItemFetchedObserver* worn_item_fetched = new LLWornItemFetchedObserver((*attachment_iter)->getAttachmentItemID()); worn_item_fetched->startFetch(); gInventory.addObserver(worn_item_fetched); } @@ -6544,7 +6547,7 @@ void handle_dump_attachments(void*) !attached_object->mDrawable->isRenderType(0)); LLVector3 pos; if (visible) pos = attached_object->mDrawable->getPosition(); - llinfos << "ATTACHMENT " << key << ": item_id=" << attached_object->getItemID() + llinfos << "ATTACHMENT " << key << ": item_id=" << attached_object->getAttachmentItemID() << (attached_object ? " present " : " absent ") << (visible ? "visible " : "invisible ") << " at " << pos diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 15bdf126c5..d3e6f01bc8 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -5233,3 +5233,28 @@ void LLViewerObject::resetChildrenPosition(const LLVector3& offset, BOOL simplif return ; } +const LLUUID &LLViewerObject::getAttachmentItemID() const +{ + return mAttachmentItemID; +} + +void LLViewerObject::setAttachmentItemID(const LLUUID &id) +{ + mAttachmentItemID = id; +} + +const LLUUID &LLViewerObject::extractAttachmentItemID() +{ + LLUUID item_id = LLUUID::null; + LLNameValue* item_id_nv = getNVPair("AttachItemID"); + if( item_id_nv ) + { + const char* s = item_id_nv->getString(); + if( s ) + { + item_id.set(s); + } + } + setAttachmentItemID(item_id); + return getAttachmentItemID(); +} diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index be83fb7ef8..33fda9fa2d 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -678,11 +678,15 @@ protected: private: static S32 sNumObjects; + //-------------------------------------------------------------------- + // For objects that are attachments + //-------------------------------------------------------------------- public: - const LLUUID &getItemID() const { return mAttachmentItemID; } - void setItemID(const LLUUID &id) { mAttachmentItemID = id; } + const LLUUID &getAttachmentItemID() const; + void setAttachmentItemID(const LLUUID &id); + const LLUUID &extractAttachmentItemID(); // find&set the inventory item ID of the attached object private: - LLUUID mAttachmentItemID; // ItemID when item is in user inventory. + LLUUID mAttachmentItemID; // ItemID of the associated object is in user inventory. }; /////////////////// diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 9d4f6fdd0c..8491b19f89 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -814,7 +814,7 @@ void LLViewerTexture::generateGLTexture() LLImageGL* LLViewerTexture::getGLTexture() const { llassert(mGLTexturep.notNull()) ; - + return mGLTexturep ; } @@ -1489,8 +1489,13 @@ void LLViewerFetchedTexture::setKnownDrawSize(S32 width, S32 height) //virtual void LLViewerFetchedTexture::processTextureStats() { - if(mFullyLoaded) + if(mForceToSaveRawImage && mDesiredSavedRawDiscardLevel >= 0) //force to refetch the texture. { + mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, (S8)mDesiredSavedRawDiscardLevel) ; + } + + if(mFullyLoaded) + { if(mDesiredDiscardLevel <= mMinDesiredDiscardLevel)//already loaded { return ; diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 31f0998fab..02097ea06d 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -853,14 +853,14 @@ F32 LLViewerTextureList::updateImagesFetchTextures(F32 max_time) } min_count--; } - if (fetch_count == 0) - { - gDebugTimers[0].pause(); - } - else - { - gDebugTimers[0].unpause(); - } + //if (fetch_count == 0) + //{ + // gDebugTimers[0].pause(); + //} + //else + //{ + // gDebugTimers[0].unpause(); + //} return image_op_timer.getElapsedTimeF32(); } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 298ac28ca8..455900eb3a 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2753,7 +2753,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) { // update chat bubble //-------------------------------------------------------------------- - // draw text label over characters head + // draw text label over character's head //-------------------------------------------------------------------- if (mChatTimer.getElapsedTimeF32() > BUBBLE_CHAT_TIME) { @@ -5553,6 +5553,7 @@ BOOL LLVOAvatar::setParent(LLViewerObject* parent) void LLVOAvatar::addChild(LLViewerObject *childp) { + childp->extractAttachmentItemID(); // find the inventory item this object is associated with. LLViewerObject::addChild(childp); if (childp->mDrawable) { @@ -5642,6 +5643,15 @@ BOOL LLVOAvatar::canAttachMoreObjects() const } //----------------------------------------------------------------------------- +// canAttachMoreObjects() +// Returns true if we can attach <n> more objects. +//----------------------------------------------------------------------------- +BOOL LLVOAvatar::canAttachMoreObjects(U32 n) const +{ + return (getNumAttachments() + n) <= MAX_AGENT_ATTACHMENTS; +} + +//----------------------------------------------------------------------------- // lazyAttach() //----------------------------------------------------------------------------- void LLVOAvatar::lazyAttach() diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 5de08e8e27..3f603dda8b 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -687,6 +687,7 @@ public: void rebuildHUD(); void resetHUDAttachments(); BOOL canAttachMoreObjects() const; + BOOL canAttachMoreObjects(U32 n) const; protected: U32 getNumAttachments() const; // O(N), not O(1) diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index bddde08ca9..95402c2e06 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -1067,7 +1067,7 @@ const LLViewerJointAttachment *LLVOAvatarSelf::attachObject(LLViewerObject *view // Should just be the last object added if (attachment->isObjectAttached(viewer_object)) { - const LLUUID& attachment_id = viewer_object->getItemID(); + const LLUUID& attachment_id = viewer_object->getAttachmentItemID(); LLAppearanceMgr::instance().registerAttachment(attachment_id); } @@ -1077,7 +1077,7 @@ const LLViewerJointAttachment *LLVOAvatarSelf::attachObject(LLViewerObject *view //virtual BOOL LLVOAvatarSelf::detachObject(LLViewerObject *viewer_object) { - const LLUUID attachment_id = viewer_object->getItemID(); + const LLUUID attachment_id = viewer_object->getAttachmentItemID(); if (LLVOAvatar::detachObject(viewer_object)) { // the simulator should automatically handle permission revocation diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp index 194213f880..4d916db714 100644 --- a/indra/newview/llwearableitemslist.cpp +++ b/indra/newview/llwearableitemslist.cpp @@ -527,6 +527,8 @@ bool LLWearableItemTypeNameComparator::doCompare(const LLPanelInventoryListItemB const LLWearableType::EType item_wearable_type2 = wearable_item2->getWearableType(); if (item_wearable_type1 != item_wearable_type2) + // If items are of different LLWearableType::EType types they are compared + // by LLWearableType::EType. types order determined in LLWearableType::EType. { // If items are of different LLWearableType::EType types they are compared // by LLWearableType::EType. types order determined in LLWearableType::EType. @@ -549,6 +551,7 @@ LLWearableItemTypeNameComparator::ETypeListOrder LLWearableItemTypeNameComparato { wearable_type_order_map_t::const_iterator const_it = mWearableOrder.find(item_type); + if(const_it == mWearableOrder.end()) { llwarns<<"Absent information about order rang of items of "<<LLAssetType::getDesc(item_type)<<" type"<<llendl; @@ -562,25 +565,30 @@ bool LLWearableItemTypeNameComparator::sortAssetTypeByName(LLAssetType::EType it { wearable_type_order_map_t::const_iterator const_it = mWearableOrder.find(item_type); + if(const_it == mWearableOrder.end()) { llwarns<<"Absent information about sorting items of "<<LLAssetType::getDesc(item_type)<<" type"<<llendl; return true; } + return const_it->second.mSortAssetTypeByName; } + bool LLWearableItemTypeNameComparator::sortWearableTypeByName(LLAssetType::EType item_type) const { wearable_type_order_map_t::const_iterator const_it = mWearableOrder.find(item_type); + if(const_it == mWearableOrder.end()) { llwarns<<"Absent information about sorting items of "<<LLAssetType::getDesc(item_type)<<" type"<<llendl; return true; } + return const_it->second.mSortWearableTypeByName; } @@ -869,7 +877,7 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu setMenuItemVisible(menu, "wear_wear", n_already_worn == 0 && n_worn == 0 && can_be_worn); setMenuItemEnabled(menu, "wear_wear", n_already_worn == 0 && n_worn == 0); setMenuItemVisible(menu, "wear_add", wear_add_visible); - setMenuItemEnabled(menu, "wear_add", n_items == 1 && canAddWearable(ids.front())); + setMenuItemEnabled(menu, "wear_add", canAddWearables(ids)); setMenuItemVisible(menu, "wear_replace", n_worn == 0 && n_already_worn != 0 && can_be_worn); //visible only when one item selected and this item is worn setMenuItemVisible(menu, "edit", !standalone && mask & (MASK_CLOTHING|MASK_BODYPART) && n_worn == n_items && n_worn == 1); @@ -978,31 +986,61 @@ void LLWearableItemsList::ContextMenu::createNewWearable(const LLUUID& item_id) LLAgentWearables::createWearable(item->getWearableType(), true); } -// Can we wear another wearable of the given item's wearable type? +// Returns true if all the given objects and clothes can be added. // static -bool LLWearableItemsList::ContextMenu::canAddWearable(const LLUUID& item_id) +bool LLWearableItemsList::ContextMenu::canAddWearables(const uuid_vec_t& item_ids) { // TODO: investigate wearables may not be loaded at this point EXT-8231 - LLViewerInventoryItem* item = gInventory.getItem(item_id); - if (!item) + U32 n_objects = 0; + boost::unordered_map<LLWearableType::EType, U32> clothes_by_type; + + // Count given clothes (by wearable type) and objects. + for (uuid_vec_t::const_iterator it = item_ids.begin(); it != item_ids.end(); ++it) { - return false; + LLViewerInventoryItem* item = gInventory.getItem(*it); + if (!item) + { + return false; + } + + if (item->getType() == LLAssetType::AT_OBJECT) + { + ++n_objects; + } + else if (item->getType() == LLAssetType::AT_CLOTHING) + { + ++clothes_by_type[item->getWearableType()]; + } + else + { + llwarns << "Unexpected wearable type" << llendl; + return false; + } } - if (item->getType() == LLAssetType::AT_OBJECT) + // Check whether we can add all the objects. + if (!isAgentAvatarValid() || !gAgentAvatarp->canAttachMoreObjects(n_objects)) { - // *TODO: is this the right check? - return isAgentAvatarValid() && gAgentAvatarp->canAttachMoreObjects(); + return false; } - if (item->getType() != LLAssetType::AT_CLOTHING) + // Check whether we can add all the clothes. + boost::unordered_map<LLWearableType::EType, U32>::const_iterator m_it; + for (m_it = clothes_by_type.begin(); m_it != clothes_by_type.end(); ++m_it) { - return false; + LLWearableType::EType w_type = m_it->first; + U32 n_clothes = m_it->second; + + U32 wearable_count = gAgentWearables.getWearableCount(w_type); + if ((wearable_count + n_clothes) > LLAgentWearables::MAX_CLOTHING_PER_TYPE) + { + return false; + } + } - U32 wearable_count = gAgentWearables.getWearableCount(item->getWearableType()); - return wearable_count < LLAgentWearables::MAX_CLOTHING_PER_TYPE; + return true; } // EOF diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h index 81f1cd1b40..b5e64abad0 100644 --- a/indra/newview/llwearableitemslist.h +++ b/indra/newview/llwearableitemslist.h @@ -325,7 +325,7 @@ protected: /** * All information about sort order is stored in mWearableOrder map * - * mWearableOrder : KYES VALUES + * mWearableOrder : KEYS VALUES * [LLAssetType] [struct LLWearableTypeOrder] * *--------------------------------------------------------------------------------------------- @@ -431,7 +431,7 @@ public: static void setMenuItemEnabled(LLContextMenu* menu, const std::string& name, bool val); static void updateMask(U32& mask, LLAssetType::EType at); static void createNewWearable(const LLUUID& item_id); - static bool canAddWearable(const LLUUID& item_id); + static bool canAddWearables(const uuid_vec_t& item_ids); LLWearableItemsList* mParent; }; diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc index df2fb2a6ea..9bafc28705 100644 --- a/indra/newview/res/viewerRes.rc +++ b/indra/newview/res/viewerRes.rc @@ -129,8 +129,8 @@ TOOLSIT CURSOR "toolsit.cur" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,1,0,0 - PRODUCTVERSION 2,1,0,0 + FILEVERSION 2,1,0,13828 + PRODUCTVERSION 2,1,0,13828 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -147,12 +147,12 @@ BEGIN BEGIN VALUE "CompanyName", "Linden Lab" VALUE "FileDescription", "Second Life" - VALUE "FileVersion", "2.1.0.0" + VALUE "FileVersion", "2.1.0.13828" VALUE "InternalName", "Second Life" VALUE "LegalCopyright", "Copyright © 2001-2008, Linden Research, Inc." VALUE "OriginalFilename", "SecondLife.exe" VALUE "ProductName", "Second Life" - VALUE "ProductVersion", "2.1.0.0" + VALUE "ProductVersion", "2.1.0.13828" END END BLOCK "VarFileInfo" diff --git a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml index a26f2f95c9..bd2b194717 100644 --- a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml @@ -42,7 +42,12 @@ <text name="library_label"> Type: </text> - <scroll_list name="library_list"/> + <scroll_list name="library_list"> + <scroll_list.rows name="action_animation" value="Animation"/> + <scroll_list.rows name="action_sound" value="Lyd"/> + <scroll_list.rows name="action_chat" value="Chat"/> + <scroll_list.rows name="action_wait" value="Vent"/> + </scroll_list> <button label="Tilføj >>" name="add_btn"/> <text name="steps_label"> Trin: diff --git a/indra/newview/skins/default/xui/da/floater_world_map.xml b/indra/newview/skins/default/xui/da/floater_world_map.xml index ca18faa0bb..97364e0f9f 100644 --- a/indra/newview/skins/default/xui/da/floater_world_map.xml +++ b/indra/newview/skins/default/xui/da/floater_world_map.xml @@ -19,12 +19,12 @@ <text name="land_sale_label"> Land til salg </text> - <text name="by_owner_label"> - efter ejer - </text> <text name="auction_label"> land auktion </text> + <text name="by_owner_label"> + efter ejer + </text> <button name="Go Home" tool_tip="Teleportér til min hjemmelokation"/> <text name="Home_label"> Hjem @@ -35,7 +35,7 @@ <text name="pg_label"> Generelt </text> - <check_box name="events_mature_chk"/> + <check_box initial_value="true" name="events_mature_chk"/> <text name="events_mature_label"> Moderat </text> @@ -58,6 +58,9 @@ <search_editor label="Regioner efter navn" name="location" tool_tip="Indtast navn pÃ¥ en region"/> <button label="Find" name="DoSearch" tool_tip="Led efter region"/> <button name="Clear" tool_tip="Fjern søgelinier og nulstil kort"/> + <text name="events_label"> + Lokation: + </text> <button label="Teleport" name="Teleport" tool_tip="Teleportér til valgte sted"/> <button label="Kopiér SLurl" name="copy_slurl" tool_tip="Kopierer nuværende lokation som SLurl der kan sendes pÃ¥ web."/> <button label="Vis valgte" name="Show Destination" tool_tip="Centrér kortet pÃ¥ valgte lokation"/> diff --git a/indra/newview/skins/default/xui/da/menu_viewer.xml b/indra/newview/skins/default/xui/da/menu_viewer.xml index bb4ee1800a..fa74568c2d 100644 --- a/indra/newview/skins/default/xui/da/menu_viewer.xml +++ b/indra/newview/skins/default/xui/da/menu_viewer.xml @@ -92,6 +92,7 @@ <menu_item_call label="Sæt scripts til "Not Running"" name="Set Scripts to Not Running"/> </menu> <menu label="Valg" name="Options"> + <menu_item_call label="Sæt standard rettigher for upload" name="perm prefs"/> <menu_item_check label="Vis avancerede rettigheder" name="DebugPermissions"/> <menu_item_check label="Vælg kun egne objekter" name="Select Only My Objects"/> <menu_item_check label="Vis kun flytbare objekter" name="Select Only Movable Objects"/> @@ -109,7 +110,6 @@ <menu_item_call label="Lyd (L$[COST])..." name="Upload Sound"/> <menu_item_call label="Animation (L$[COST])..." name="Upload Animation"/> <menu_item_call label="Mange (L$[COST] pr. fil)..." name="Bulk Upload"/> - <menu_item_call label="Sæt standardværdier for upload rettigheder" name="perm prefs"/> </menu> </menu> <menu label="Hjælp" name="Help"> diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml index 73a42e7fb8..62d9c5a203 100644 --- a/indra/newview/skins/default/xui/da/notifications.xml +++ b/indra/newview/skins/default/xui/da/notifications.xml @@ -231,7 +231,7 @@ Er du sikker pÃ¥ at du vil fortsætte? Slet favorit <nolink>[PICK]</nolink>? </notification> <notification name="DeleteOutfits"> - Slet det valgte sæt? + Slet valgte sæt? <usetemplate name="okcancelbuttons" notext="Annullér" yestext="OK"/> </notification> <notification name="CacheWillClear"> @@ -1635,8 +1635,8 @@ Check venligst din netværks- og firewall setup. Avatar '[NAME]' forsvandt helt "uploaded". </notification> <notification name="AvatarRezSelfBakeNotification"> - ( [EXISTENCE] seconds alive ) -Du sendte en [RESOLUTION] tekstur til '[BODYREGION]' efter [TIME] sekunder. + ( [EXISTENCE] sekunder i live ) +You [ACTION] a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds. </notification> <notification name="ConfirmLeaveCall"> Er du sikker pÃ¥ at du vil forlade dette opkald? @@ -1660,4 +1660,7 @@ Hvis du bliver ved med at have problemer, besøg venligst [SUPPORT_SITE]. Hvis du selv ejer land, kan du benytte det til hjemme lokation. Ellers kan du se pÃ¥ verdenskortet og finde steder markeret med "Infohub". </global> + <global name="You died and have been teleported to your home location"> + Du døde og er blevet teleporteret til din hjemmelokation. + </global> </notifications> diff --git a/indra/newview/skins/default/xui/da/panel_group_notices.xml b/indra/newview/skins/default/xui/da/panel_group_notices.xml index d8e8cb3c2a..0a0b8f5e04 100644 --- a/indra/newview/skins/default/xui/da/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/da/panel_group_notices.xml @@ -24,7 +24,7 @@ Maksimum er 200 pr. gruppe pr. dag <text name="notice_list_none_found"> Ingen fundet </text> - <button label="Lav en ny besked" label_selected="Lav ny besked" name="create_new_notice" tool_tip="Lav en ny besked"/> + <button label="Ny besked" label_selected="Lav ny besked" name="create_new_notice" tool_tip="Lav en ny besked"/> <button label="Genopfrisk" label_selected="Genopfrisk liste" name="refresh_notices" tool_tip="Genopfrisk beskedliste"/> <panel label="Lav ny besked" name="panel_create_new_notice"> <text name="lbl"> diff --git a/indra/newview/skins/default/xui/da/panel_group_roles.xml b/indra/newview/skins/default/xui/da/panel_group_roles.xml index 3ab3dd8bf8..ebc773f7ed 100644 --- a/indra/newview/skins/default/xui/da/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/da/panel_group_roles.xml @@ -13,6 +13,9 @@ Vælg flere medlemmer ved at holde Ctrl-tasten nede og klik pÃ¥ deres navne. </panel.string> + <panel.string name="donation_area"> + [AREA] m² + </panel.string> <filter_editor label="Filtrér medlemmer" name="filter_input"/> <name_list name="member_list"> <name_list.columns label="Medlemsnavn" name="name"/> @@ -76,21 +79,15 @@ ting i denne gruppe. Der er en bred vifte af rettigheder. <text name="static"> Rolle navn </text> - <line_editor name="role_name"> - Ansatte - </line_editor> + <line_editor name="role_name"/> <text name="static3"> Rolle titel </text> - <line_editor name="role_title"> - (venter) - </line_editor> + <line_editor name="role_title"/> <text name="static2"> Beskrivelse </text> - <text_editor name="role_description"> - (venter) - </text_editor> + <text_editor name="role_description"/> <text name="static4"> Tildelte roller </text> @@ -105,9 +102,6 @@ ting i denne gruppe. Der er en bred vifte af rettigheder. </scroll_list> </panel> <panel name="actions_footer"> - <text name="static"> - Beskrivelse - </text> <text_editor name="action_description"> Denne rettigheder 'Udmeld medlemmer fra denne gruppe'. Kun en ejer kan udmelde en anden ejer. </text_editor> diff --git a/indra/newview/skins/default/xui/da/panel_nearby_media.xml b/indra/newview/skins/default/xui/da/panel_nearby_media.xml index a269e35f4b..b4be70a22a 100644 --- a/indra/newview/skins/default/xui/da/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/da/panel_nearby_media.xml @@ -45,25 +45,25 @@ <panel name="media_controls_panel"> <layout_stack name="media_controls"> <layout_panel name="stop"> - <button name="stop_btn" tool_tip="Stop valgte medie"/> + <button name="stop_btn" tool_tip="Stop valgte media"/> </layout_panel> <layout_panel name="play"> - <button name="play_btn" tool_tip="Afspil valgte medie"/> + <button name="play_btn" tool_tip="Afspil valgte media"/> </layout_panel> <layout_panel name="pause"> - <button name="pause_btn" tool_tip="Pause valgt medie"/> + <button name="pause_btn" tool_tip="Pause valgte media"/> </layout_panel> <layout_panel name="volume_slider_ctrl"> - <slider_bar initial_value="0.5" name="volume_slider" tool_tip="Lydstyrke for valgte medie"/> + <slider_bar initial_value="0.5" name="volume_slider" tool_tip="Lydstyrke for valgte media"/> </layout_panel> <layout_panel name="mute"> - <button name="mute_btn" tool_tip="Sluk lyd fra valgte medie"/> + <button name="mute_btn" tool_tip="Sluk lyd for valgte media"/> </layout_panel> <layout_panel name="zoom"> - <button name="zoom_btn" tool_tip="Zoom til valgte medie"/> + <button name="zoom_btn" tool_tip="Zoom til valgte media"/> </layout_panel> <layout_panel name="unzoom"> - <button name="unzoom_btn" tool_tip="Zoom tilbage fra valgte medie"/> + <button name="unzoom_btn" tool_tip="Zoom tilbage fra valgte media"/> </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_sound.xml b/indra/newview/skins/default/xui/da/panel_preferences_sound.xml index a1b47c3c1f..18cb0e47b9 100644 --- a/indra/newview/skins/default/xui/da/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_sound.xml @@ -11,8 +11,8 @@ <check_box label="Aktiveret" name="enable_media"/> <slider label="Stemme chat" name="Voice Volume"/> <check_box label="Aktiveret" name="enable_voice_check"/> - <check_box label="Tillad media at afspilles automatisk" name="media_auto_play_btn" tool_tip="Vælg dette for at media afspille automatisk hvis det ønsker det" /> - <check_box label="Afspil media vedhæftet andre avatarer" name="media_show_on_others_btn" tool_tip="Deaktiver dette for at skjule vedhæftet media for avatarer i nærheden" /> + <check_box label="Tillad media at afspilles automatisk" name="media_auto_play_btn" tool_tip="Vælg dette for at media afspille automatisk hvis det ønsker det" value="true"/> + <check_box label="Afspil media vedhæftet andre avatarer" name="media_show_on_others_btn" tool_tip="Deaktiver dette for at skjule vedhæftet media for avatarer i nærheden" value="true"/> <text name="voice_chat_settings"> Stemme chat opsætning </text> @@ -28,6 +28,12 @@ <panel.string name="default_text"> Standard </panel.string> + <panel.string name="default system device"> + Standard systemenhed + </panel.string> + <panel.string name="no device"> + Ingen enheder + </panel.string> <text name="Input"> Input </text> diff --git a/indra/newview/skins/default/xui/da/panel_teleport_history.xml b/indra/newview/skins/default/xui/da/panel_teleport_history.xml index 8a01659ffa..e6e78028f5 100644 --- a/indra/newview/skins/default/xui/da/panel_teleport_history.xml +++ b/indra/newview/skins/default/xui/da/panel_teleport_history.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="Teleport History"> <accordion name="history_accordion"> + <no_matched_tabs_text name="no_matched_teleports_msg" value="Fandt du ikke hvad du søgte? Prøv [secondlife:///app/search/places/[SEARCH_TERM] Search]."/> + <no_visible_tabs_text name="no_teleports_msg" value="Teleport historik er tom. Prøv [secondlife:///app/search/places/ Search]."/> <accordion_tab name="today" title="I dag"/> <accordion_tab name="yesterday" title="I gÃ¥r"/> <accordion_tab name="2_days_ago" title="2 dage siden"/> - 5 <accordion_tab name="3_days_ago" title="3 dage siden"/> <accordion_tab name="4_days_ago" title="4 dage siden"/> <accordion_tab name="5_days_ago" title="5 dage siden"/> diff --git a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml index b1ec2c44df..2350af8d49 100644 --- a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml @@ -23,8 +23,7 @@ </panel.string> <text name="title" value="Profil for genstand"/> <text name="origin" value="(Beholdning)"/> - <panel label="" - name="item_profile"> + <panel label="" name="item_profile"> <text name="LabelItemNameTitle"> Navn: </text> @@ -40,7 +39,7 @@ </text> <button label="Profil..." name="BtnOwner"/> <text name="LabelAcquiredTitle"> - Erhvervet: + Anskaffet: </text> <text name="LabelAcquiredDate"/> <panel name="perms_inv"> @@ -49,21 +48,21 @@ </text> <check_box label="Redigere" name="CheckOwnerModify"/> <check_box label="Kopiere" name="CheckOwnerCopy"/> - <check_box label="Give væk" name="CheckOwnerTransfer"/> + <check_box label="Overfør" name="CheckOwnerTransfer"/> <text name="AnyoneLabel"> - Enhver: + Alle: </text> <check_box label="Kopiere" name="CheckEveryoneCopy"/> <text name="GroupLabel"> Gruppe: </text> - <check_box label="Dele" name="CheckShareWithGroup" tool_tip="Tillad alle medlemmer i den aktive gruppe at dele dine 'redigere' rettigheder for dette objekt. Du skal dedikere for at Ã¥bne for rolle begrænsninger."/> + <check_box label="Del" name="CheckShareWithGroup" tool_tip="Giver alle medlemmer adgang til at give gruppen ret til at ændre rettigheder for dette objekt. Du skal dedikere for at Ã¥bne for rolle begrænsninger."/> <text name="NextOwnerLabel"> Næste ejer: </text> <check_box label="Redigere" name="CheckNextOwnerModify"/> <check_box label="Kopiere" name="CheckNextOwnerCopy"/> - <check_box label="Give væk" name="CheckNextOwnerTransfer" tool_tip="Næste ejer kan give væk eller sælge dette objekt"/> + <check_box label="Overføre" name="CheckNextOwnerTransfer" tool_tip="Næste ejer kan give væk eller sælge dette objekt"/> </panel> <check_box label="Til salg" name="CheckPurchase"/> <combo_box name="combobox sale copy"> diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml index 9b33ca6f0d..3152661fd4 100644 --- a/indra/newview/skins/default/xui/da/strings.xml +++ b/indra/newview/skins/default/xui/da/strings.xml @@ -642,6 +642,9 @@ <string name="worldmap_offline"> Offline </string> + <string name="worldmap_item_tooltip_format"> + [AREA] m² L$[PRICE] + </string> <string name="worldmap_results_none_found"> Ingen fundet. </string> @@ -1031,6 +1034,7 @@ <string name="AnimFlagStop" value=" Stop Animation : "/> <string name="AnimFlagStart" value=" Start Animation : "/> <string name="Wave" value=" Vink "/> + <string name="GestureActionNone" value="Ingen"/> <string name="HelloAvatar" value=" Hej, avatar! "/> <string name="ViewAllGestures" value=" Se alle >>"/> <string name="GetMoreGestures" value="FÃ¥ mere >>"/> @@ -1113,12 +1117,12 @@ <string name="InvFolder Favorite"> Favoritter </string> - <string name="InvFolder favorite"> - Favoritter - </string> <string name="InvFolder Current Outfit"> Nuværende sæt </string> + <string name="InvFolder Initial Outfits"> + Start sæt + </string> <string name="InvFolder My Outfits"> Mine sæt </string> @@ -1438,6 +1442,7 @@ <string name="SummaryForTheWeek" value="Opsummering for denne uge, begyndende med "/> <string name="NextStipendDay" value="Næste stipendie dag er "/> <string name="GroupIndividualShare" value=" Gruppe Individuel Delt"/> + <string name="GroupColumn" value="Gruppe"/> <string name="Balance"> Balance </string> @@ -1651,6 +1656,12 @@ <string name="BusyModeResponseDefault"> Beboeren du sendte en besked er 'optaget', hvilket betyder at han/hun ikke vil forstyrres. Din besked vil blive vis i hans/hendes IM panel til senere visning. </string> + <string name="NoOutfits"> + You don't have any outfits yet. Try [secondlife:///app/search/all/ Search] + </string> + <string name="NoOutfitsTabsMatched"> + Fandt du ikke hvad du søgte? Prøv [secondlife:///app/search/all/[SEARCH_TERM] Search]. + </string> <string name="MuteByName"> (Efter navn) </string> @@ -3571,6 +3582,9 @@ Hvis du bliver ved med at modtage denne besked, kontakt venligst [SUPPORT_SITE]. <string name="group_role_owners"> Ejere </string> + <string name="group_member_status_online"> + Online + </string> <string name="uploading_abuse_report"> Uploader... @@ -3624,9 +3638,15 @@ Krænkelsesanmeldelse <string name="Invalid Wearable"> Kan ikke tages pÃ¥ </string> + <string name="New Gesture"> + Ny bevægelse + </string> <string name="New Script"> Nyt script </string> + <string name="New Note"> + Ny note + </string> <string name="New Folder"> Ny folder </string> @@ -3684,6 +3704,15 @@ Krænkelsesanmeldelse <string name="Male - Wow"> Mand - Wow </string> + <string name="Female - Chuckle"> + Kvinde - Kluklatter + </string> + <string name="Female - Cry"> + Kvinde - grÃ¥d + </string> + <string name="Female - Embarrassed"> + Kvinde - Flov + </string> <string name="Female - Excuse me"> Kvinde - Undskyld mig </string> @@ -3702,9 +3731,21 @@ Krænkelsesanmeldelse <string name="Female - Hey"> Kvinde - Hey </string> + <string name="Female - Hey baby"> + Kvinde - Hey baby + </string> <string name="Female - Laugh"> Kvinde - Latter </string> + <string name="Female - Looking good"> + Kvinde - "Ser godt ud" + </string> + <string name="Female - Over here"> + Kvinde - Herovre + </string> + <string name="Female - Please"> + Kvinde - Be´ om + </string> <string name="Female - Repulsed"> Kvinde - Frastødt </string> @@ -3754,4 +3795,46 @@ Krænkelsesanmeldelse <string name="dateTimePM"> PM </string> + <string name="LocalEstimateUSD"> + US$ [AMOUNT] + </string> + <string name="Membership"> + Medlemsskab + </string> + <string name="Roles"> + Roller + </string> + <string name="Group Identity"> + Gruppe identitet + </string> + <string name="Parcel Management"> + Parcel hÃ¥ndtering + </string> + <string name="Parcel Identity"> + Parcel identitet + </string> + <string name="Parcel Settings"> + Parcel opsætning + </string> + <string name="Parcel Powers"> + Parcel beføjelser + </string> + <string name="Parcel Access"> + Parcel adgang + </string> + <string name="Parcel Content"> + Parcel indhold + </string> + <string name="Object Management"> + Objekt hÃ¥ndtering + </string> + <string name="Accounting"> + Regnskab + </string> + <string name="Notices"> + Beskeder + </string> + <string name="Chat"> + Chat + </string> </strings> diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml index c3c017ae97..6d3635fa8d 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml @@ -64,6 +64,7 @@ </radio_group> <check_box label="bis alle Animationen beendet sind" name="wait_anim_check"/> <check_box label="Zeit in Sekunden:" name="wait_time_check"/> + <line_editor name="wait_time_editor"/> <text name="help_label"> Alle Schritte werden gleichzeitig ausgeführt, wenn keine Pausen hinzugefügt wurden. </text> diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml index 7be9cfbb71..691472633e 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml @@ -310,7 +310,7 @@ left_delta="0" name="wait_time_check" top_delta="20" - width="100" /> + width="115" /> <line_editor follows="top|left" height="20" diff --git a/indra/newview/skins/default/xui/en/floater_search.xml b/indra/newview/skins/default/xui/en/floater_search.xml index 49b3b58113..354f1de85e 100644 --- a/indra/newview/skins/default/xui/en/floater_search.xml +++ b/indra/newview/skins/default/xui/en/floater_search.xml @@ -22,7 +22,7 @@ Done </floater.string> <layout_stack - bottom="595" + height="580" follows="left|right|top|bottom" layout="topleft" left="10" @@ -30,6 +30,7 @@ top="20" width="630"> <layout_panel + height="570" layout="topleft" left_delta="0" top_delta="0" @@ -37,13 +38,12 @@ user_resize="false" width="630"> <web_browser - bottom="-10" follows="left|right|top|bottom" layout="topleft" left="0" name="browser" top="0" - height="555" + height="540" width="630" /> <text follows="bottom|left" @@ -51,7 +51,7 @@ layout="topleft" left_delta="0" name="status_text" - top_pad="7" + top_pad="10" width="150" /> <text visible="false" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index a2d06f77a9..60b0b1e8dc 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4023,6 +4023,19 @@ Are you sure you want to quit? <notification icon="alertmodal.tga" + name="DeleteItems" + type="alertmodal"> + [QUESTION] + <usetemplate + ignoretext="Confirm before deleting items" + name="okcancelignore" + notext="Cancel" + yestext="OK"/> + <unique/> + </notification> + + <notification + icon="alertmodal.tga" name="HelpReportAbuseEmailLL" type="alert"> Use this tool to report violations of the [http://secondlife.com/corporate/tos.php Terms of Service] and [http://secondlife.com/corporate/cs.php Community Standards]. diff --git a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml index 06bd1e9ff4..20ff492c0f 100644 --- a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml +++ b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml @@ -9,6 +9,7 @@ layout="topleft" name="Mockup Tab" selection_enabled="true" + tab_stop="false" title="Mockup Tab" translate="false" width="0"> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 9941732c30..7a292ab943 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2282,6 +2282,9 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh <string name="accel-win-alt">Alt+</string> <string name="accel-win-shift">Shift+</string> + <string name="Key_Esc">Esc</string> + <string name="Key_Home">Home</string> + <!-- Previews --> <string name="FileSaved">File Saved</string> <string name="Receiving">Receiving</string> @@ -3258,4 +3261,8 @@ Abuse Report</string> <string name="Notices">Notices</string> <string name="Chat">Chat</string> + <!-- Question strings for delete items notifications --> + <string name="DeleteItems">Delete selected items?</string> + <string name="DeleteItem">Delete selected item?</string> + </strings> diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml index 5c71e50282..5263de4532 100644 --- a/indra/newview/skins/default/xui/fr/floater_about_land.xml +++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml @@ -220,7 +220,7 @@ ou divisé. [COUNT] sur [MAX] ([DELETED] seront supprimés) </panel.string> <text name="parcel_object_bonus"> - Facteur Bonus Objets : [BONUS] + Facteur Bonus objets : [BONUS] </text> <text name="Simulator primitive usage:"> Utilisation des primitives : diff --git a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml index 87c8847cbd..0ce17b9dc6 100644 --- a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml @@ -80,12 +80,12 @@ </text> <spinner label="Heure" name="WLLengthOfDayHour"/> <spinner label="Min" name="WLLengthOfDayMin"/> - <spinner label="S" name="WLLengthOfDaySec"/> + <spinner label="Sec" name="WLLengthOfDaySec"/> <text name="DayCycleText3"> Aperçu : </text> <button label="Lire" label_selected="Lire" name="WLAnimSky"/> - <button label="Stop !" label_selected="Stop" name="WLStopAnimSky"/> + <button label="Arrêter" label_selected="Stop" name="WLStopAnimSky"/> <button label="Utiliser heure domaine" label_selected="Aller heure domaine" name="WLUseLindenTime"/> <button label="Enregistrer jour test" label_selected="Enregistrer jour test" name="WLSaveDayCycle"/> <button label="Charger jour test" label_selected="Charger jour test" name="WLLoadDayCycle"/> diff --git a/indra/newview/skins/default/xui/fr/floater_postcard.xml b/indra/newview/skins/default/xui/fr/floater_postcard.xml index 0f3a4541e2..91a943ef15 100644 --- a/indra/newview/skins/default/xui/fr/floater_postcard.xml +++ b/indra/newview/skins/default/xui/fr/floater_postcard.xml @@ -16,7 +16,7 @@ Objet : </text> <line_editor left="143" name="subject_form" width="130" left_delta="146"/> - <line_editor label="Saisissez votre objet ici." name="subject_form"/> + <line_editor label="Saisir ici votre objet" name="subject_form"/> <text name="msg_label"> Message : </text> @@ -24,7 +24,7 @@ <check_box label="Contenu adulte" name="mature_check" tool_tip="Cette carte postale est à caractère adulte."/> <button label="?" name="publish_help_btn"/> <text_editor name="msg_form"> - Saisissez votre message ici. + Saisir ici votre message. </text_editor> <text name="fine_print"> Si le destinataire s'inscrit sur [SECOND_LIFE], vous recevrez un bonus. diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml index 26d097d549..92f02ad1fa 100644 --- a/indra/newview/skins/default/xui/fr/floater_tools.xml +++ b/indra/newview/skins/default/xui/fr/floater_tools.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="toolbox floater" short_title="OUTILS POUR LA CONSTRUCTION" title=""> <floater.string name="status_rotate"> - Pour faire tourner l'objet, faîtes glisser les bandes de couleur. + Pour faire tourner l'objet, faites glisser les bandes de couleur. </floater.string> <floater.string name="status_scale"> Pour étirer le côté sélectionné, cliquez et faites glisser. @@ -54,7 +54,7 @@ </radio_group> <radio_group name="move_radio_group"> <radio_item label="Déplacer" name="radio move"/> - <radio_item label="Orbite (Ctrl)" name="radio lift"/> + <radio_item label="Soulever (Ctrl)" name="radio lift"/> <radio_item label="Faire tourner (Ctrl+Maj)" name="radio spin"/> </radio_group> <radio_group name="edit_radio_group"> @@ -190,7 +190,7 @@ Cliquer pour : </text> <combo_box name="clickaction" width="178"> - <combo_box.item label="Toucher (défaut)" name="Touch/grab(default)"/> + <combo_box.item label="Toucher (par défaut)" name="Touch/grab(default)"/> <combo_box.item label="S'asseoir sur l'objet" name="Sitonobject"/> <combo_box.item label="Acheter l'objet" name="Buyobject"/> <combo_box.item label="Payer l'objet" name="Payobject"/> @@ -402,8 +402,8 @@ Application </text> <combo_box name="combobox texgen"> - <combo_box.item label="Défaut" name="Default"/> - <combo_box.item label="Planar" name="Planar"/> + <combo_box.item label="Par défaut" name="Default"/> + <combo_box.item label="Plan" name="Planar"/> </combo_box> <text name="label shininess"> Brillance diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml index 6cfc2b5c66..c1321b71ea 100644 --- a/indra/newview/skins/default/xui/fr/notifications.xml +++ b/indra/newview/skins/default/xui/fr/notifications.xml @@ -1683,7 +1683,7 @@ Publier cette petite annonce maintenant pour [AMOUNT] L$ ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification label="Envoyer un message à la région" name="MessageRegion"> - Saisissez une message qui sera envoyé à tous les résidents présents dans cette région. + Saisissez un message qui sera envoyé à tous les résidents présents dans cette région. <form name="form"> <input name="message"/> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/fr/panel_group_notices.xml b/indra/newview/skins/default/xui/fr/panel_group_notices.xml index bcf2cc8ec9..3364dd9dbc 100644 --- a/indra/newview/skins/default/xui/fr/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/fr/panel_group_notices.xml @@ -21,7 +21,7 @@ Vous pouvez désactiver la réception des notices dans l'onglet Général. <text name="notice_list_none_found"> Aucun résultat </text> - <button label="Nouvelle notice" label_selected="Créer une notice" name="create_new_notice" tool_tip="Créer une notice"/> + <button label="Nouv. notice" label_selected="Créer une notice" name="create_new_notice" tool_tip="Créer une notice"/> <button label="Rafraîchir" label_selected="Rafraîchir la liste" name="refresh_notices" tool_tip="Actualiser la liste des notices"/> <panel label="Créer une notice" name="panel_create_new_notice"> <text name="lbl"> diff --git a/indra/newview/skins/default/xui/fr/panel_landmarks.xml b/indra/newview/skins/default/xui/fr/panel_landmarks.xml index 9c15b0bbd3..9e0d08958b 100644 --- a/indra/newview/skins/default/xui/fr/panel_landmarks.xml +++ b/indra/newview/skins/default/xui/fr/panel_landmarks.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="Landmarks"> <accordion name="landmarks_accordion"> - <accordion_tab name="tab_favorites" title="Barre des Favoris"/> + <accordion_tab name="tab_favorites" title="Barre des favoris"/> <accordion_tab name="tab_landmarks" title="Mes repères"/> <accordion_tab name="tab_inventory" title="Mon inventaire"/> <accordion_tab name="tab_library" title="Bibliothèque"/> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index 6cab902ab6..1204d3325a 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -415,7 +415,7 @@ image targa </string> <string name="trash"> - Poubelle + Corbeille </string> <string name="jpeg image"> image jpeg @@ -1127,7 +1127,7 @@ Parties du corps </string> <string name="InvFolder Trash"> - Poubelle + Corbeille </string> <string name="InvFolder Photo Album"> Albums photo @@ -3780,7 +3780,7 @@ de l'infraction signalée Homme - Demander pardon </string> <string name="Male - Get lost"> - Homme - Dire d'aller au diable + Homme - Get lost </string> <string name="Male - Blow kiss"> Homme - Envoyer un baiser @@ -3822,7 +3822,7 @@ de l'infraction signalée Femme - Demander pardon </string> <string name="Female - Get lost"> - Femme - Dire d'aller au diable + Femme - Get lost </string> <string name="Female - Blow kiss"> Femme - Envoyer un baiser diff --git a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml index 9c4006b4e6..7e29db6336 100644 --- a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml @@ -30,15 +30,15 @@ <text name="trigger_label"> Parole chiave: </text> - <text left="208" name="replace_text" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave 'salve' con 'ciao' modificherà la chat 'Volevo solo dire salve' in 'Volevo solo dire ciao' e avvierà la gesture!"> + <text name="replace_text" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave 'salve' con 'ciao' modificherà la chat 'Volevo solo dire salve' in 'Volevo solo dire ciao' e avvierà la gesture!"> Sostituisci con: </text> <line_editor name="replace_editor" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave 'salve' con 'ciao' modificherà la chat 'Volevo solo dire salve' in 'Volevo solo dire ciao' e avvierà la gesture!"/> <text name="key_label"> Scorciatoia da tastiera: </text> - <combo_box label="Nessuno" left="156" name="modifier_combo" width="76"/> - <combo_box label="Nessuno" left_delta="80" name="key_combo" width="76"/> + <combo_box label="Nessuno" name="modifier_combo" /> + <combo_box label="Nessuno" name="key_combo" /> <text name="library_label"> Libreria: </text> @@ -62,9 +62,9 @@ <radio_item label="Attiva" name="start"/> <radio_item label="Ferma" name="stop"/> </radio_group> - <check_box label="finché le animazioni sono eseguite" left="226" name="wait_anim_check"/> + <check_box label="finché le animazioni sono eseguite" name="wait_anim_check"/> <check_box label="durata in secondi:" name="wait_time_check"/> - <line_editor left_delta="114" name="wait_time_editor"/> + <line_editor name="wait_time_editor"/> <text name="help_label"> Tutte le fasi avvengono contemporaneamente, a meno che non aggiungi fasi di attesa. </text> 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 d0521fefc3..c68e1c72ce 100644 --- a/indra/newview/skins/default/xui/pl/floater_about_land.xml +++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml @@ -327,7 +327,7 @@ Jedynie wiÄ™ksze posiadÅ‚oÅ›ci mogÄ… być umieszczone w bazie wyszukiwarki. <check_box label="Wszyscy" name="edit objects check"/> <check_box label="Grupa" name="edit group objects check"/> <text name="allow_label3"> - Nowe Obiekty: + Nowe obiekty: </text> <check_box label="Wszyscy" name="all object entry check"/> <check_box label="Grupa" name="group object entry check"/> @@ -380,7 +380,7 @@ Jedynie wiÄ™ksze posiadÅ‚oÅ›ci mogÄ… być umieszczone w bazie wyszukiwarki. Punkt LÄ…dowania: [LANDING] </text> <button label="Ustaw" label_selected="Ustaw" name="Set" tool_tip="Ustal miejsce lÄ…dowania dla przybywajÄ…cych goÅ›ci. Używa poÅ‚ożenia Twojego awatara na tej posiadÅ‚oÅ›ci."/> - <button label="Nowy" label_selected="Nowy" name="Clear" tool_tip="Clear the landing point."/> + <button label="Nowy" label_selected="Nowy" name="Clear" tool_tip="UsuÅ„ dotychczasowe miejsce lÄ…dowania."/> <text name="Teleport Routing: "> Trasa teleportacji: </text> @@ -399,7 +399,7 @@ Jedynie wiÄ™ksze posiadÅ‚oÅ›ci mogÄ… być umieszczone w bazie wyszukiwarki. URL mediów: </text> <button label="Ustaw" name="set_media_url"/> - <check_box label="Ukryj URL mediów" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym Użytkownikom. Nie dotyczy to jednak typów HTML."/> + <check_box label="Ukryj URL mediów" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym Rezydentom. Nie dotyczy to jednak typów HTML."/> <text name="Description:"> Opis: </text> @@ -431,14 +431,14 @@ Mediów: <check_box label="Ukryj URL muzyki" name="hide_music_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów muzycznych w posiadÅ‚oÅ›ci wszystkim nieautoryzowanym Użytkownikom"/> <check_box label="Rozmowy dozwolone" name="parcel_enable_voice_channel"/> <check_box label="Rozmowy dozwolone (ustawione przez MajÄ…tek)" name="parcel_enable_voice_channel_is_estate_disabled"/> - <check_box label="Ogranicz komunikacjÄ™ gÅ‚osowÄ… w tej posiadÅ‚oÅ›ci." name="parcel_enable_voice_channel_local"/> + <check_box label="Ogranicz komunikacjÄ™ gÅ‚osowÄ… w tej PosiadÅ‚oÅ›ci." name="parcel_enable_voice_channel_local"/> </panel> <panel label="DOSTĘP" name="land_access_panel"> <panel.string name="access_estate_defined"> (Zdefiniowane przez MajÄ…tek) </panel.string> <panel.string name="allow_public_access"> - UdostÄ™pnij dostÄ™p publiczny ([MATURITY]) + UdostÄ™pnij publicznie ([MATURITY]) </panel.string> <panel.string name="estate_override"> Jedna lub wiÄ™cej z tych opcji ustawiona jest z poziomu PosiadÅ‚oÅ›ci diff --git a/indra/newview/skins/default/xui/pl/floater_animation_preview.xml b/indra/newview/skins/default/xui/pl/floater_animation_preview.xml index d8ae185687..3402d8d31f 100644 --- a/indra/newview/skins/default/xui/pl/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/pl/floater_animation_preview.xml @@ -26,7 +26,7 @@ Maksymalna dÅ‚ugość pliku animacji wynosi [MAX_LENGTH] sekund. Plik BVH nie może zostać otworzony. </floater.string> <floater.string name="E_ST_NO_HIER"> - NiewÅ‚aÅ›ciwy nagłówek HIERARCHI. + NiewÅ‚aÅ›ciwy nagłówek HIERARCHII. </floater.string> <floater.string name="E_ST_NO_JOINT"> ROOT oraz JOINT nieodnalezione. @@ -104,7 +104,7 @@ Maksymalna dÅ‚ugość pliku animacji wynosi [MAX_LENGTH] sekund. Brak otrzymania wartoÅ›ci morfizacji. </floater.string> <floater.string name="E_ST_NO_XLT_EMOTE"> - Niemożliwość przeczytania nazwy emocji. + Nie można odczytać nazwy emocji. </floater.string> <floater.string name="E_ST_BAD_ROOT"> NieprawidÅ‚owa nazwa, użyj "hip". @@ -120,7 +120,7 @@ Maksymalna dÅ‚ugość pliku animacji wynosi [MAX_LENGTH] sekund. <spinner label="Od(%)" name="loop_in_point" tool_tip="Wybierz punkt, od którego chcesz zacząć powtarzać animacjÄ™"/> <spinner label="Do(%)" name="loop_out_point" tool_tip="Wybierz punkt, od którego chcesz zakoÅ„czyć powtarzanie animacji"/> <text name="hand_label"> - Pozycja RÄ™ki + Pozycja rÄ™ki </text> <combo_box label="" name="hand_pose_combo" tool_tip="Kontroluje co robi rÄ™ka podczas animacji"> <combo_box.item label="RozciÄ…gaj" name="Spread"/> @@ -128,14 +128,14 @@ Maksymalna dÅ‚ugość pliku animacji wynosi [MAX_LENGTH] sekund. <combo_box.item label="Wskazuj" name="PointBoth"/> <combo_box.item label="Pięść" name="Fist"/> <combo_box.item label="Lewa-Odpocznij" name="RelaxedLeft"/> - <combo_box.item label="Wskazuj LewÄ…" name="PointLeft"/> - <combo_box.item label="ZaciÅ›nij LewÄ…" name="FistLeft"/> - <combo_box.item label="Prawa-Odpocznij" name="RelaxedRight"/> - <combo_box.item label="Wskazuj PrawÄ…" name="PointRight"/> - <combo_box.item label="ZaciÅ›nij PrawÄ…" name="FistRight"/> - <combo_box.item label="Salutuj PrawÄ…" name="SaluteRight"/> + <combo_box.item label="Wskazuj lewÄ…" name="PointLeft"/> + <combo_box.item label="ZaciÅ›nij lewÄ…" name="FistLeft"/> + <combo_box.item label="Prawa-odpocznij" name="RelaxedRight"/> + <combo_box.item label="Wskazuj prawÄ…" name="PointRight"/> + <combo_box.item label="ZaciÅ›nij prawÄ…" name="FistRight"/> + <combo_box.item label="Salutuj prawÄ…" name="SaluteRight"/> <combo_box.item label="Pisz" name="Typing"/> - <combo_box.item label="Prawa-Pokój" name="PeaceRight"/> + <combo_box.item label="Prawa-pokój" name="PeaceRight"/> </combo_box> <text name="emote_label"> Ekspresja @@ -145,18 +145,18 @@ Maksymalna dÅ‚ugość pliku animacji wynosi [MAX_LENGTH] sekund. <item label="Aaaaah" name="Aaaaah" value="Aaaaah"/> <item label="Obawa" name="Afraid" value="Obawa"/> <item label="ZÅ‚ość" name="Angry" value="ZÅ‚ość"/> - <item label="Duży UÅ›miech" name="BigSmile" value="Duży uÅ›miech"/> + <item label="Duży uÅ›miech" name="BigSmile" value="Duży uÅ›miech"/> <item label="Znudzenie" name="Bored" value="Znudzenie"/> <item label="PÅ‚acz" name="Cry" value="PÅ‚acz"/> <item label="Wzgarda" name="Disdain" value="Wzgarda"/> <item label="ZakÅ‚opotanie" name="Embarrassed" value="ZakÅ‚opotanie"/> - <item label="Marszczenie Brwi" name="Frown" value="Marszczenie brwi"/> + <item label="Marszczenie brwi" name="Frown" value="Marszczenie brwi"/> <item label="PocaÅ‚unek" name="Kiss" value="PocaÅ‚unek"/> <item label="Åšmiech" name="Laugh" value="Åšmiech"/> <item label="Plllppt" name="Plllppt" value="Plllppt"/> <item label="Odrzucenie" name="Repulsed" value="Odrzucenie"/> <item label="Smutek" name="Sad" value="Smutek"/> - <item label="Wzruszenie Ramionami" name="Shrug" value="Wzruszenie ramionami"/> + <item label="Wzruszenie ramionami" name="Shrug" value="Wzruszenie ramionami"/> <item label="UÅ›miech" name="Smile" value="UÅ›miech"/> <item label="Niespodzianka" name="Surprise" value="Niespodzianka"/> <item label="MrugniÄ™cie" name="Wink" value="MrugniÄ™cie"/> @@ -175,7 +175,7 @@ Maksymalna dÅ‚ugość pliku animacji wynosi [MAX_LENGTH] sekund. <spinner label="ZÅ‚agodzić na zewnÄ…trz (sekund)" name="ease_out_time" tool_tip="Ilość Czasu (w sekundach), w których animacje oddzielajÄ… siÄ™"/> <button label="" name="play_btn" tool_tip="Odtwarzaj animacjÄ™"/> <button name="pause_btn" tool_tip="Zatrzymaj animacjÄ™"/> - <button label="" name="stop_btn" tool_tip="Stop animation playback"/> + <button label="" name="stop_btn" tool_tip="ZakoÅ„cz odtwarzanie animacji"/> <slider label="" name="playback_slider"/> <text name="bad_animation_text"> Brak możliwoÅ›ci wczytania pliku animacji. diff --git a/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml b/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml index 5c623e251f..45b9e066e9 100644 --- a/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml @@ -6,8 +6,7 @@ <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> <text name="label"> - Baked -Textures + Tekstury bakowane </text> <text name="composite_label"> Tekstury kompozytowe diff --git a/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml b/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml index f4721b05d8..ed2e037d3c 100644 --- a/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml @@ -48,7 +48,7 @@ </text> <check_box label="Modyfikuje" name="next_owner_modify"/> <check_box label="Kopiuje" name="next_owner_copy"/> - <check_box initial_value="true" label="Oddaj/Sprzedaj" name="next_owner_transfer" tool_tip="NastÄ™pny wÅ‚aÅ›ciciel może oddać lub sprzedać ten obiekt."/> + <check_box initial_value="true" label="Oddaj/Sprzedaj" name="next_owner_transfer" tool_tip="NastÄ™pny WÅ‚aÅ›ciciel może oddać lub sprzedać ten obiekt."/> <button label="OK" name="apply"/> <button label="Anuluj" name="close"/> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_camera.xml b/indra/newview/skins/default/xui/pl/floater_camera.xml index bdff791609..5b9dd47616 100644 --- a/indra/newview/skins/default/xui/pl/floater_camera.xml +++ b/indra/newview/skins/default/xui/pl/floater_camera.xml @@ -16,7 +16,7 @@ W prawo lub w lewo </floater.string> <floater.string name="presets_mode_title"> - Preset Views + Ustaw widok </floater.string> <floater.string name="free_mode_title"> Zobacz obiekt @@ -58,7 +58,7 @@ </panel> </panel> <panel name="buttons"> - <button label="" name="presets_btn" tool_tip="Preset Views"/> + <button label="" name="presets_btn" tool_tip="Ustaw widok"/> <button label="" name="pan_btn" tool_tip="Kamera horyzontalna"/> <button label="" name="avatarview_btn" tool_tip="Ustawienia"/> </panel> diff --git a/indra/newview/skins/default/xui/pl/floater_customize.xml b/indra/newview/skins/default/xui/pl/floater_customize.xml index dd1d5cf684..373e74ffe0 100644 --- a/indra/newview/skins/default/xui/pl/floater_customize.xml +++ b/indra/newview/skins/default/xui/pl/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="WYGLÄ„D"> <tab_container name="customize tab container"> - <text label="Części CiaÅ‚a" name="body_parts_placeholder"> + <text label="Części ciaÅ‚a" name="body_parts_placeholder"> Części ciaÅ‚a </text> <panel label="KsztaÅ‚t" name="Shape"> @@ -157,7 +157,7 @@ <texture_picker label="MateriaÅ‚" name="Fabric" tool_tip="Kliknij by wybrać teksturÄ™"/> <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/> <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/> - <button label="Nowa Koszula" label_selected="Nowa Koszula" name="Create New"/> + <button label="Nowa koszula" label_selected="Nowa Koszula" name="Create New"/> <button label="Zapisz" label_selected="Zapisz" name="Save"/> <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/> <button label="Wróć" label_selected="Wróć" name="Revert"/> @@ -183,7 +183,7 @@ Nie posiadasz prawa do modyfikowania tej koszuli. </text> <text name="Item Action Label"> - Koszulka: + Koszula: </text> </panel> <panel label="Spodnie" name="Pants"> @@ -504,7 +504,7 @@ <text name="not worn instructions"> Załóż nowÄ… maskÄ™ alpha poprzez przeciÄ…gniÄ™cie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asnÄ… z plików roboczych. </text> - <button label="Stwórz nowÄ… Alpha" label_selected="Utwórz NowÄ… Alpha" name="Create New"/> + <button label="Stwórz nowÄ… Alpha" label_selected="Utwórz nowÄ… Alpha" name="Create New"/> <text name="no modify instructions"> Nie posiadasz uprawnieÅ„ do modyfikowania tych ubraÅ„/części ciaÅ‚a. </text> diff --git a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml index e7f73faca7..f3929df3e3 100644 --- a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Day Cycle Floater" title="EDYTOR CYKLU DNIA"> <tab_container name="Day Cycle Tabs"> - <panel label="Cykl Dnia" name="Day Cycle"> + <panel label="Cykl dnia" name="Day Cycle"> <button label="?" name="WLDayCycleHelp"/> <multi_slider label="" name="WLTimeSlider"/> <multi_slider label="" name="WLDayCycleKeys"/> diff --git a/indra/newview/skins/default/xui/pl/floater_event.xml b/indra/newview/skins/default/xui/pl/floater_event.xml index 7588493464..80862bfd2f 100644 --- a/indra/newview/skins/default/xui/pl/floater_event.xml +++ b/indra/newview/skins/default/xui/pl/floater_event.xml @@ -16,7 +16,7 @@ Adult </floater.string> <floater.string name="general"> - PG + General </floater.string> <floater.string name="unknown"> Nieznana @@ -62,8 +62,8 @@ </expandable_text> </layout_panel> <layout_panel name="button_panel"> - <button name="create_event_btn" tool_tip="Stwórz ImprezÄ™"/> - <button name="god_delete_event_btn" tool_tip="Skasuj ImprezÄ™"/> + <button name="create_event_btn" tool_tip="Stwórz imprezÄ™"/> + <button name="god_delete_event_btn" tool_tip="Skasuj imprezÄ™"/> <button label="Zawiadom mnie" name="notify_btn"/> <button label="Teleportuj" name="teleport_btn"/> <button label="Mapa" name="map_btn"/> diff --git a/indra/newview/skins/default/xui/pl/floater_gesture.xml b/indra/newview/skins/default/xui/pl/floater_gesture.xml index 750a9e4a66..0c27e4d0bb 100644 --- a/indra/newview/skins/default/xui/pl/floater_gesture.xml +++ b/indra/newview/skins/default/xui/pl/floater_gesture.xml @@ -18,8 +18,8 @@ <panel label="bottom_panel" name="bottom_panel"> <menu_button name="gear_btn" tool_tip="WiÄ™cej opcji"/> <button name="new_gesture_btn" tool_tip="Stwórz nowÄ… gesturÄ™"/> - <button name="activate_btn" tool_tip="Aktywuj/Dezaktywuj wybrany gest"/> - <button name="del_btn" tool_tip="UsuÅ„ gest"/> + <button name="activate_btn" tool_tip="Aktywuj/Dezaktywuj wybranÄ… gesturÄ™"/> + <button name="del_btn" tool_tip="UsuÅ„ gesturÄ™"/> </panel> <button label="Edytuj" name="edit_btn"/> <button label="Odtwarzaj" name="play_btn"/> diff --git a/indra/newview/skins/default/xui/pl/floater_god_tools.xml b/indra/newview/skins/default/xui/pl/floater_god_tools.xml index 1f4502b9a4..828898de54 100644 --- a/indra/newview/skins/default/xui/pl/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/pl/floater_god_tools.xml @@ -10,16 +10,16 @@ </text> <line_editor left="115" name="region name" width="178"/> <check_box label="WstÄ™p" name="check prelude" tool_tip="Set this to make the region a prelude"/> - <check_box label="Korekta SÅ‚oÅ„ca" name="check fixed sun" tool_tip="Skorektuj ustawienia pozycji sÅ‚oÅ„ca."/> + <check_box label="Korekta sÅ‚oÅ„ca" name="check fixed sun" tool_tip="Skoryguj ustawienia pozycji sÅ‚oÅ„ca."/> <check_box height="32" label="Zresetuj pozycjÄ™ Miejsca Startowego" name="check reset home" tool_tip="Zresetuj miejsce startu Rezydentów po teleportacji"/> <check_box bottom_delta="-32" label="Widoczny" name="check visible" tool_tip="Wybierz tÄ… opcjÄ™ by ustawić region widocznym dla wszystkich."/> <check_box label="Zniszczenia" name="check damage" tool_tip="Wybierz tÄ™ opcjÄ™ by uruchomić opcjÄ™ zniszczeÅ„ w regionie."/> - <check_box label="Zablokuj Monitorowanie Trafficu" name="block dwell" tool_tip="Wybierz tÄ… opcjÄ™ by zablokować monitorowanie trafficu w regionie."/> - <check_box label="Zablokuj Terraformowanie" name="block terraform" tool_tip="Wybierz tÄ… opcjÄ™ by zablokować terraforming w regionie"/> + <check_box label="Zablokuj monitorowanie trafficu" name="block dwell" tool_tip="Wybierz tÄ… opcjÄ™ by zablokować monitorowanie trafficu w regionie."/> + <check_box label="Zablokuj terraformowanie" name="block terraform" tool_tip="Wybierz tÄ… opcjÄ™ by zablokować terraforming w regionie"/> <check_box label="Piaskownica" name="is sandbox" tool_tip="Toggle whether this is a sandbox region"/> <button label="Ustal teren" label_selected="Ustal teren" name="Bake Terrain" tool_tip="ZapamiÄ™taj obecny teren jako poczÄ…tkowy dla cofniÄ™cia modyfikacji terenu." width="138"/> <button label="CofniÄ™cie modyfikacji" label_selected="CofniÄ™cie modyfikacji" name="Revert Terrain" tool_tip="Przywróć ustawienia domyÅ›lne Regionu." width="138"/> - <button label="ZamieÅ„ teren" label_selected="ZamieÅ„ teren" name="Swap Terrain" tool_tip="Swap current terrain with default" width="138"/> + <button label="ZamieÅ„ teren" label_selected="ZamieÅ„ teren" name="Swap Terrain" tool_tip="ZmieÅ„ bieżący teren domyÅ›lnie" width="138"/> <text name="estate id"> ID Regionu: </text> @@ -46,8 +46,8 @@ L$/m²: </text> <spinner name="land cost"/> - <button label="OdÅ›wież" label_selected="OdÅ›wież" name="Refresh" tool_tip="Click here to refresh the above information"/> - <button label="Zastosuj" label_selected="Zastosuj" name="Apply" tool_tip="Click here to apply any changes from above"/> + <button label="OdÅ›wież" label_selected="OdÅ›wież" name="Refresh" tool_tip="Kliknij tutaj aby odswieżyć powyższe informacje"/> + <button label="Zastosuj" label_selected="Zastosuj" name="Apply" tool_tip="Kliknij tutaj aby zastosować powyższe zmiany"/> <button label="Wybierz Region" label_selected="Wybierz Region" left="156" name="Select Region" tool_tip="Wybierz caÅ‚y Region za pomocÄ… narzÄ™dzi edycji terenu" width="150"/> <button label="Automatyczne zapisanie" label_selected="Automatyczne zapisanie" left="156" name="Autosave now" tool_tip="Save gzipped state to autosave directory" width="150"/> </panel> @@ -58,17 +58,17 @@ <text left_delta="110" name="region name"> Welsh </text> - <check_box label="WyÅ‚Ä…cz skrypty" name="disable scripts" tool_tip="Set this to disable all scripts in this region"/> + <check_box label="WyÅ‚Ä…cz skrypty" name="disable scripts" tool_tip="Wybierz aby wyÅ‚Ä…czyć skrypty w tym Regionie"/> <check_box label="Deaktywuj kolizje" name="disable collisions" tool_tip="Set this to disable non-agent collisions in this region"/> - <check_box label="WylÄ…cz fizykÄ™" name="disable physics" tool_tip="Set this to disable all physics in this region"/> - <button label="Zastosuj" label_selected="Zastosuj" name="Apply" tool_tip="Click here to apply any changes from above"/> - <button label="Ustaw Cel" label_selected="Set Target" name="Set Target" tool_tip="Set the target avatar for object deletion"/> + <check_box label="WylÄ…cz fizykÄ™" name="disable physics" tool_tip="Wybierz aby wyÅ‚Ä…czyć fizykÄ™ w tym Regionie"/> + <button label="Zastosuj" label_selected="Zastosuj" name="Apply" tool_tip="Kliknij tu aby zastosować powyższe zmiany"/> + <button label="Ustaw cel" label_selected="Ustaw cel" name="Set Target" tool_tip="Ustaw docelowego awatara w celu skasowania obiektów"/> <text name="target_avatar_name"> (brak) </text> - <button label="UsuÅ„ cel z oskryptowanych obiektów na innych posiadÅ‚oÅ›ciach" label_selected="UsuÅ„ cel 's skryptowane obiekty na innych posiadÅ‚oÅ›ciach" name="Delete Target's Scripted Objects On Others Land" tool_tip="Delete all scripted objects owned by the target on land not owned by the target. (no copy) objects will be returned."/> - <button label="UsuÅ„ cel z oskryptowanych obiektów na jakichkolwiek posiadÅ‚oÅ›ciach" label_selected="UsuÅ„ cel 's skryptowane obiekty na jakichkolwiek posiadÅ‚oÅ›ciach" name="Delete Target's Scripted Objects On *Any* Land" tool_tip="Delete all scripted objects owned by the target in this region. (no copy) objects will be returned."/> - <button label="UsuÅ„ wszystkie cele i obiekty" label_selected="UsuÅ„ wszystkie cele i obiekty" name="Delete *ALL* Of Target's Objects" tool_tip="Delete all objects owned by the target in this region. (no copy) objects will be returned."/> + <button label="UsuÅ„ cel z oskryptowanych obiektów na innych posiadÅ‚oÅ›ciach" label_selected="UsuÅ„ cel 's skryptowane obiekty na innych posiadÅ‚oÅ›ciach" name="Delete Target's Scripted Objects On Others Land" tool_tip="Skasuj wszystkie oskryptowane obiekty posiadane przez cel na PosiadÅ‚oÅ›ci, której nie jest wÅ‚aÅ›cicielem. (obiekty bez praw kopiowania zostanÄ… zwrócone)"/> + <button label="UsuÅ„ cel z oskryptowanych obiektów na jakichkolwiek posiadÅ‚oÅ›ciach" label_selected="UsuÅ„ cel 's skryptowane obiekty na jakichkolwiek posiadÅ‚oÅ›ciach" name="Delete Target's Scripted Objects On *Any* Land" tool_tip="Skasuj wszystkie oksryptowane obiekty posiadane przez cel w tym Regionie. (obiekty bez praw kopiowania zostanÄ… zwrócone)"/> + <button label="UsuÅ„ wszystkie cele i obiekty" label_selected="UsuÅ„ wszystkie cele i obiekty" name="Delete *ALL* Of Target's Objects" tool_tip="Skasuj wszystkie obiekty posiadane przez cel w tym Regionie. (obiekty bez praw kopiowania zostanÄ… zwrócone)"/> <button label="Główne kolizje" label_selected="Główne kolizje" name="Get Top Colliders" tool_tip="Gets list of objects experiencing the most narrowphase callbacks"/> <button label="Główne skrypty" label_selected="Główne skrypty" name="Get Top Scripts" tool_tip="Gets list of objects spending the most time running scripts"/> <button label="Treść skryptów" label_selected="Treść skryptów" name="Scripts digest" tool_tip="WyÅ›wietla listÄ™ wszystkich skryptów i liczbÄ™ ich zastosowaÅ„."/> diff --git a/indra/newview/skins/default/xui/pl/floater_image_preview.xml b/indra/newview/skins/default/xui/pl/floater_image_preview.xml index 6b0770af84..ba9724ff9a 100644 --- a/indra/newview/skins/default/xui/pl/floater_image_preview.xml +++ b/indra/newview/skins/default/xui/pl/floater_image_preview.xml @@ -12,12 +12,12 @@ <combo_box label="Rodzaj Ubrania" name="clothing_type_combo"> <item label="Obraz" name="Image" value="Tekstura"/> <item label="WÅ‚osy" name="Hair" value="WÅ‚osy"/> - <item label="Damska gÅ‚owa" name="FemaleHead" value="GÅ‚owa kobiety"/> - <item label="Damska górna część ciaÅ‚a" name="FemaleUpperBody" value="Górna część ciaÅ‚a kobiety"/> - <item label="Damska górna część ciaÅ‚a" name="FemaleLowerBody" value="Dolna część ciaÅ‚a kobiety"/> - <item label="MÄ™ska gÅ‚owa" name="MaleHead" value="GÅ‚owa mężczyzny"/> - <item label="MÄ™ska górna część ciaÅ‚a" name="MaleUpperBody" value="Górna część ciaÅ‚a mężczyzny"/> - <item label="MÄ™ska dolna część ciaÅ‚a" name="MaleLowerBody" value="Dolna część ciaÅ‚a mężczyzny"/> + <item label="GÅ‚owa kobiety" name="FemaleHead" value="GÅ‚owa kobiety"/> + <item label="Górna część ciaÅ‚a kobiety" name="FemaleUpperBody" value="Górna część ciaÅ‚a kobiety"/> + <item label="Dolna część ciaÅ‚a kobiety" name="FemaleLowerBody" value="Dolna część ciaÅ‚a kobiety"/> + <item label="GÅ‚owa mężczyzny" name="MaleHead" value="GÅ‚owa mężczyzny"/> + <item label="Górna część ciaÅ‚a mężczyzny" name="MaleUpperBody" value="Górna część ciaÅ‚a mężczyzny"/> + <item label="Dona część ciaÅ‚a mężczyzny" name="MaleLowerBody" value="Dolna część ciaÅ‚a mężczyzny"/> <item label="Spódnica" name="Skirt" value="Spódnica"/> <item label="Prim sculptowy" name="SculptedPrim" value="Prim sculptowy"/> </combo_box> diff --git a/indra/newview/skins/default/xui/pl/floater_inventory.xml b/indra/newview/skins/default/xui/pl/floater_inventory.xml index 0dc4d5b96d..c42f57fb55 100644 --- a/indra/newview/skins/default/xui/pl/floater_inventory.xml +++ b/indra/newview/skins/default/xui/pl/floater_inventory.xml @@ -7,7 +7,7 @@ MOJA SZAFA (Dostarczanie [ITEM_COUNT] obiektów...) [FILTER] </floater.string> <floater.string name="TitleCompleted"> - MOJA SZAFA ([ITEM_COUNT] Obiektów) [FILTER] + MOJA SZAFA ([ITEM_COUNT] obiektów) [FILTER] </floater.string> <floater.string name="Fetched"> Dostarczono diff --git a/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml b/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml index 2756f5e850..9ae63031b6 100644 --- a/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml @@ -42,7 +42,12 @@ <text name="library_label"> Zbiór: </text> - <scroll_list name="library_list"/> + <scroll_list name="library_list"> + <scroll_list.rows name="action_animation" value="Animacja"/> + <scroll_list.rows name="action_sound" value="DźwiÄ™k"/> + <scroll_list.rows name="action_chat" value="Czat"/> + <scroll_list.rows name="action_wait" value="Wstrzymaj"/> + </scroll_list> <button label="Dodaj >>" name="add_btn"/> <text name="steps_label"> Etapy: diff --git a/indra/newview/skins/default/xui/pl/floater_world_map.xml b/indra/newview/skins/default/xui/pl/floater_world_map.xml index 3e62393e7a..5bf394f45a 100644 --- a/indra/newview/skins/default/xui/pl/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pl/floater_world_map.xml @@ -19,12 +19,12 @@ <text name="land_sale_label"> Sprzedaż PosiadÅ‚oÅ›ci </text> - <text name="by_owner_label"> - przez WÅ‚aÅ›ciciela - </text> <text name="auction_label"> aukcja PosiadÅ‚oÅ›ci </text> + <text name="by_owner_label"> + przez WÅ‚aÅ›ciciela + </text> <button name="Go Home" tool_tip="Teleportuj do mojego Miejsca Startowego"/> <text name="Home_label"> Miejsce Startu @@ -35,7 +35,7 @@ <text name="pg_label"> Ogólne </text> - <check_box name="events_mature_chk"/> + <check_box initial_value="true" name="events_mature_chk"/> <text name="events_mature_label"> Moderuj </text> @@ -58,6 +58,9 @@ <search_editor label="Regiony WedÅ‚ug Nazwy" name="location" tool_tip="Wpisz nazwÄ™ regionu"/> <button label="Znajdź" name="DoSearch" tool_tip="Szukaj regionu"/> <button name="Clear" tool_tip="Wyczyść zapamiÄ™tane linie oraz zresetuj mapÄ™"/> + <text name="events_label"> + Lokalizacja: + </text> <button label="Teleportuj" name="Teleport" tool_tip="Teleportuj do wybranego miejsca"/> <button label="Kopiuj SLurl" name="copy_slurl" tool_tip="Kopie obecnego miejsca jako SLurl mogÄ… zostać użyte na stronie internetowej."/> <button label="Pokaż wybrane" name="Show Destination" tool_tip="WyÅ›rodkuj mapÄ™ w wybranym miejscu"/> diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml index 16a89b2b27..97a94584c4 100644 --- a/indra/newview/skins/default/xui/pl/menu_viewer.xml +++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml @@ -92,6 +92,7 @@ <menu_item_call label="Wstrzymaj DziaÅ‚anie Skryptów w Selekcji" name="Set Scripts to Not Running"/> </menu> <menu label="Opcje" name="Options"> + <menu_item_call label="Ustaw domyÅ›lne pozwolenia Å‚adowania" name="perm prefs"/> <menu_item_check label="Pokaż Zaawansowane Pozwolenia" name="DebugPermissions"/> <menu_item_check label="Wybierz Tylko Moje Obiekty" name="Select Only My Objects"/> <menu_item_check label="Wybierz Tylko Obiekty Przesuwalne" name="Select Only Movable Objects"/> @@ -109,7 +110,6 @@ <menu_item_call label="dźwiÄ™k (L$[COST])..." name="Upload Sound"/> <menu_item_call label="animacjÄ™ (L$[COST])..." name="Upload Animation"/> <menu_item_call label="zbiór plików (L$[COST] za jeden plik)..." name="Bulk Upload"/> - <menu_item_call label="Ustaw domyÅ›lne pozwolenia Å‚adowania" name="perm prefs"/> </menu> </menu> <menu label="Pomoc" name="Help"> diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml index 58ca77411d..14718e8f6f 100644 --- a/indra/newview/skins/default/xui/pl/notifications.xml +++ b/indra/newview/skins/default/xui/pl/notifications.xml @@ -355,7 +355,7 @@ Czy na pewno chcesz kontynuować? <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="DeleteOutfits"> - Czy usunąć wybrany strój? + Skasować wybrane stroje? <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> <notification name="PromptGoToEventsPage"> @@ -2720,8 +2720,8 @@ ProszÄ™ sprawdź swojÄ… sieć i ustawienia firewall. Awatar '[NAME]' pozostaÅ‚ w peÅ‚ni zaÅ‚adowany. </notification> <notification name="AvatarRezSelfBakeNotification"> - ( [EXISTENCE] sekund w Second Life) -ZaÅ‚adowano [RESOLUTION] teksturÄ™ dla '[BODYREGION]' po [TIME] sekundach. + ( [EXISTENCE] sekund w Second Life ) +You [ACTION] a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds. </notification> <notification name="ConfirmLeaveCall"> Czy jestes pewien/pewna, że chcesz zakoÅ„czyć rozmowÄ™? @@ -2758,4 +2758,7 @@ Jeżeli wciąż masz problemy sprawdź: [SUPPORT_SITE]. JeÅ›li jesteÅ› wÅ‚aÅ›cicielem posiadÅ‚oÅ›ci, możesz ustawić na niej miejsce startu. W innym przypadku możesz poszukać na mapie miejsca oznaczone jako "Infohub". </global> + <global name="You died and have been teleported to your home location"> + NastÄ…piÅ‚a Å›mierć i teleportacja do Miejsca Startu. + </global> </notifications> diff --git a/indra/newview/skins/default/xui/pl/panel_group_roles.xml b/indra/newview/skins/default/xui/pl/panel_group_roles.xml index 8a422e2586..5526694863 100644 --- a/indra/newview/skins/default/xui/pl/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/pl/panel_group_roles.xml @@ -12,6 +12,9 @@ Możesz dodawać i usuwać Funkcje przypisane do CzÅ‚onków. Możesz wybrać wielu CzÅ‚onków naciskajÄ…c Ctrl i klikajÄ…c na ich imionach. </panel.string> + <panel.string name="donation_area"> + [AREA] m² + </panel.string> <filter_editor label="Filtruj CzÅ‚onków" name="filter_input"/> <name_list name="member_list"> <name_list.columns label="CzÅ‚onek" name="name"/> @@ -75,21 +78,15 @@ Istnieje wiele Przywilei. <text name="static"> Nazwa Funkcji </text> - <line_editor name="role_name"> - Liczba - </line_editor> + <line_editor name="role_name"/> <text name="static3"> Nazwa Funkcji </text> - <line_editor name="role_title"> - (proszÄ™ czekać) - </line_editor> + <line_editor name="role_title"/> <text name="static2"> Opis </text> - <text_editor name="role_description"> - (proszÄ™ czekać) - </text_editor> + <text_editor name="role_description"/> <text name="static4"> Przypisane Funkcje </text> @@ -104,9 +101,6 @@ Istnieje wiele Przywilei. </scroll_list> </panel> <panel name="actions_footer"> - <text name="static"> - Opis Przywileju - </text> <text_editor name="action_description"> Przywilej 'UsuÅ„ CzÅ‚onka z Grupy'. Tylko WÅ‚aÅ›ciciel może usunąć innego WÅ‚aÅ›ciciela. </text_editor> diff --git a/indra/newview/skins/default/xui/pl/panel_login.xml b/indra/newview/skins/default/xui/pl/panel_login.xml index 7447efe667..5e4955c28c 100644 --- a/indra/newview/skins/default/xui/pl/panel_login.xml +++ b/indra/newview/skins/default/xui/pl/panel_login.xml @@ -12,19 +12,27 @@ Użytkownik: </text> <line_editor label="Użytkownik" name="username_edit" tool_tip="[SECOND_LIFE] Użytkownik"/> + <text name="password_text"> + HasÅ‚o: + </text> <check_box label="ZapamiÄ™taj HasÅ‚o" name="remember_check"/> <button label="PoÅ‚Ä…cz" name="connect_btn"/> <text name="start_location_text"> Rozpocznij w: </text> <combo_box name="start_location_combo"> + <combo_box.item label="Ostatnie Miejsce" name="MyLastLocation"/> <combo_box.item label="Moje Miejsce Startu" name="MyHome"/> + <combo_box.item label="<Wpisz Region>" name="Typeregionname"/> </combo_box> </layout_panel> <layout_panel name="links"> <text name="create_new_account_text"> Utwórz nowe konto </text> + <text name="forgot_password_text"> + Nie pamiÄ™tasz hasÅ‚a? + </text> <text name="login_help"> Potrzebujesz pomocy z logowaniem siÄ™? </text> diff --git a/indra/newview/skins/default/xui/pl/panel_nearby_media.xml b/indra/newview/skins/default/xui/pl/panel_nearby_media.xml index 926ca806ac..a78ab4d6f8 100644 --- a/indra/newview/skins/default/xui/pl/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/pl/panel_nearby_media.xml @@ -45,7 +45,7 @@ <panel name="media_controls_panel"> <layout_stack name="media_controls"> <layout_panel name="stop"> - <button name="stop_btn" tool_tip="WyÅ‚Ä…cz wybrane media"/> + <button name="stop_btn" tool_tip="Zatrzymaj wybrane media"/> </layout_panel> <layout_panel name="play"> <button name="play_btn" tool_tip="WÅ‚Ä…cz wybrane media"/> @@ -57,13 +57,13 @@ <slider_bar initial_value="0.5" name="volume_slider" tool_tip="GÅ‚oÅ›ność audio dla wybranych mediów"/> </layout_panel> <layout_panel name="mute"> - <button name="mute_btn" tool_tip="Wycisz audio dla wybranych mediów"/> + <button name="mute_btn" tool_tip="Wycisz audio wybranych mediów"/> </layout_panel> <layout_panel name="zoom"> <button name="zoom_btn" tool_tip="Przybliż wybrane media"/> </layout_panel> <layout_panel name="unzoom"> - <button name="unzoom_btn" tool_tip="Oddal wybrane media"/> + <button name="unzoom_btn" tool_tip="Oddal od wybranych mediów"/> </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml b/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml index 6ab5be77d8..b0d02179fd 100644 --- a/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="DźwiÄ™ki" name="Preference Media panel"> <slider label="Główny" name="System Volume"/> - <check_box label="Wycisz podczas minimalizacji" name="mute_when_minimized"/> + <check_box initial_value="true" label="Wycisz podczas minimalizacji" name="mute_when_minimized"/> <slider label="Interfejs" name="UI Volume"/> <slider label="Otoczenie" name="Wind Volume"/> <slider label="Efekty dźwiÄ™kowe" name="SFX Volume"/> @@ -11,8 +11,8 @@ <check_box label="Odtwarzaj media" name="enable_media"/> <slider label="Komunikacja GÅ‚osowa" name="Voice Volume"/> <check_box label="Pozwól na rozmowy gÅ‚osowe" name="enable_voice_check"/> - <check_box label="Automatycznie odtwarzaj media" name="media_auto_play_btn" tool_tip="Zaznacz tÄ™ funkcjÄ™ by uruchomić automatyczne uruchamianie mediów"/> - <check_box label="Uruchom media zaÅ‚Ä…czone do innych awatarów" name="media_show_on_others_btn" tool_tip="Odznacz tÄ™ funkcjÄ™ by ukryć media zaÅ‚Ä…czone to awatarów w publiżu"/> + <check_box label="Automatycznie odtwarzaj media" name="media_auto_play_btn" tool_tip="Zaznacz tÄ™ funkcjÄ™ by uruchomić automatyczne uruchamianie mediów" value="true"/> + <check_box label="Uruchom media zaÅ‚Ä…czone do innych awatarów" name="media_show_on_others_btn" tool_tip="Odznacz tÄ™ funkcjÄ™ by ukryć media zaÅ‚Ä…czone to awatarów w publiżu" value="true"/> <text name="voice_chat_settings"> Ustawienia Komunikacji GÅ‚osowej </text> @@ -28,6 +28,12 @@ <panel.string name="default_text"> DomyÅ›lne </panel.string> + <panel.string name="default system device"> + DomyÅ›lne ustawienia sprzÄ™towe + </panel.string> + <panel.string name="no device"> + Brak sprzÄ™tu + </panel.string> <text name="Input"> WejÅ›ciowe </text> diff --git a/indra/newview/skins/default/xui/pl/panel_teleport_history.xml b/indra/newview/skins/default/xui/pl/panel_teleport_history.xml index d143843eaf..b43bd96536 100644 --- a/indra/newview/skins/default/xui/pl/panel_teleport_history.xml +++ b/indra/newview/skins/default/xui/pl/panel_teleport_history.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="Teleport History"> <accordion name="history_accordion"> + <no_matched_tabs_text name="no_matched_teleports_msg" value="Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/places/[SEARCH_TERM] Szukaj]."/> + <no_visible_tabs_text name="no_teleports_msg" value="Historia teleportacji jest pusta. Spróbuj [secondlife:///app/search/places/ Szukaj]."/> <accordion_tab name="today" title="Dzisiaj"/> <accordion_tab name="yesterday" title="Wczoraj"/> <accordion_tab name="2_days_ago" title="2 dni temu"/> - 5 <accordion_tab name="3_days_ago" title="3 dni temu"/> <accordion_tab name="4_days_ago" title="4 dni temu"/> <accordion_tab name="5_days_ago" title="5 dni temu"/> diff --git a/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml b/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml index 0c6169c9c0..3282926bcd 100644 --- a/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml @@ -23,8 +23,7 @@ </panel.string> <text name="title" value="Profil obiektu"/> <text name="origin" value="(Szafa)"/> - <panel label="" - name="item_profile"> + <panel label="" name="item_profile"> <text name="LabelItemNameTitle"> Nazwa: </text> @@ -45,10 +44,10 @@ <text name="LabelAcquiredDate"/> <panel name="perms_inv"> <text name="perm_modify"> - Ty możesz: + Możesz: </text> <check_box label="Zmienia" name="CheckOwnerModify"/> - <check_box label="Kopiuje" name="CheckOwnerCopy"/> + <check_box label="Kopiuj" name="CheckOwnerCopy"/> <check_box label="Sprzedaje/Oddaje" name="CheckOwnerTransfer"/> <text name="AnyoneLabel"> Każdy: @@ -57,18 +56,18 @@ <text name="GroupLabel"> Grupa: </text> - <check_box label="UdostÄ™pnij" name="CheckShareWithGroup" tool_tip="Pozwól wszystkim czÅ‚onkom ustawionej grupy na dzielenie prawa do modyfikacji dla tego obiektu. Musisz Przypisać aby aktywować ograniczenia wynikajÄ…ce z roli."/> + <check_box label="UdostÄ™pnij" name="CheckShareWithGroup" tool_tip="Pozwól wszystkim czÅ‚onkom ustawionej grupy na dzielenie prawa do modyfikacji dla tego obiektu. Musisz przypisać obiekt grupie aby aktywować ograniczenia wynikajÄ…ce z roli."/> <text name="NextOwnerLabel"> NastÄ™pny WÅ‚aÅ›ciciel: </text> <check_box label="Modyfikuje" name="CheckNextOwnerModify"/> <check_box label="Kopiuje" name="CheckNextOwnerCopy"/> - <check_box label="Sprzedaje/Oddaje" name="CheckNextOwnerTransfer" tool_tip="NastÄ™pny wÅ‚aÅ›ciciel może oddać lub sprzedać ten obiekt"/> + <check_box label="Sprzedaje/Oddaje" name="CheckNextOwnerTransfer" tool_tip="NastÄ™pny WÅ‚aÅ›ciciel może oddawać lub sprzedawać ten obiekt"/> </panel> - <check_box label="Na Sprzedaż" name="CheckPurchase"/> + <check_box label="Na sprzedaż" name="CheckPurchase"/> <combo_box name="combobox sale copy"> - <combo_box.item label="Kopia" name="Copy"/> - <combo_box.item label="OriginaÅ‚" name="Original"/> + <combo_box.item label="Kopiuje" name="Copy"/> + <combo_box.item label="Oryginalny" name="Original"/> </combo_box> <spinner label="Cena: L$" name="Edit Cost"/> </panel> diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml index bd1fb6a5da..e4423dc5ce 100644 --- a/indra/newview/skins/default/xui/pl/strings.xml +++ b/indra/newview/skins/default/xui/pl/strings.xml @@ -642,6 +642,9 @@ <string name="worldmap_offline"> Mapa Åšwiata jest NiedostÄ™pna </string> + <string name="worldmap_item_tooltip_format"> + [AREA] m² L$[PRICE] + </string> <string name="worldmap_results_none_found"> Miejsce Nieodnalezione. </string> @@ -1031,6 +1034,7 @@ <string name="AnimFlagStop" value=" Zatrzymaj AnimacjÄ™ :"/> <string name="AnimFlagStart" value=" Rozpocznij AnimacjÄ™ :"/> <string name="Wave" value=" Wave"/> + <string name="GestureActionNone" value="Å»adne"/> <string name="HelloAvatar" value=" Witaj, Awatarze!"/> <string name="ViewAllGestures" value=" Zobacz Wszystkie >>"/> <string name="GetMoreGestures" value="WiÄ™cej gesturek >>"/> @@ -1110,12 +1114,12 @@ <string name="InvFolder Gestures"> Gesturki </string> - <string name="InvFolder favorite"> - Ulubione - </string> <string name="InvFolder Current Outfit"> Obecne Ubranie </string> + <string name="InvFolder Initial Outfits"> + PoczÄ…tkowe stroje + </string> <string name="InvFolder My Outfits"> Moje Ubranie </string> @@ -1435,6 +1439,7 @@ <string name="SummaryForTheWeek" value="Podsumowanie dla tego tygodnia, poczÄ…wszy od "/> <string name="NextStipendDay" value="NastÄ™pna wypÅ‚ata bÄ™dzie w "/> <string name="GroupIndividualShare" value=" Groupa UdziaÅ‚y Indywidualne"/> + <string name="GroupColumn" value="Grupa"/> <string name="Balance"> Stan </string> @@ -1648,6 +1653,12 @@ <string name="BusyModeResponseDefault"> Rezydent, do którego wysÅ‚aÅ‚eÅ› wiadomość prywatnÄ… znajduje siÄ™ w trybie pracy. Oznacza to, iż Twoja wiadomość zostanie zapisana do przeglÄ…dniÄ™cia poźniej. </string> + <string name="NoOutfits"> + Nie posiadasz jeszcze żadnych strojów. Spróbuj [secondlife:///app/search/all/ Szukaj] + </string> + <string name="NoOutfitsTabsMatched"> + Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Szukaj]. + </string> <string name="MuteByName"> (Nazwa) </string> @@ -3568,6 +3579,9 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj siÄ™ z [SUPPORT_SITE]. <string name="group_role_owners"> WÅ‚aÅ›ciciele </string> + <string name="group_member_status_online"> + Obecnie w SL + </string> <string name="uploading_abuse_report"> Pobieranie... @@ -3621,9 +3635,15 @@ Raport o Nadużyciu <string name="Invalid Wearable"> Nieaktualne ubranie/część ciaÅ‚a </string> + <string name="New Gesture"> + Nowy gest + </string> <string name="New Script"> Nowy skrypt </string> + <string name="New Note"> + Stwórz nowe ogÅ‚oszenie + </string> <string name="New Folder"> Nowy folder </string> @@ -3681,6 +3701,15 @@ Raport o Nadużyciu <string name="Male - Wow"> Mężczyzna - Wow </string> + <string name="Female - Chuckle"> + Kobieta - Chichot + </string> + <string name="Female - Cry"> + Kobieta - PÅ‚acze + </string> + <string name="Female - Embarrassed"> + Kobieta - ZakÅ‚opotana + </string> <string name="Female - Excuse me"> Kobieta - Excuse me </string> @@ -3699,9 +3728,21 @@ Raport o Nadużyciu <string name="Female - Hey"> Kobieta - Hey </string> + <string name="Female - Hey baby"> + Kobieta - Hey baby + </string> <string name="Female - Laugh"> Kobieta - Åšmiech </string> + <string name="Female - Looking good"> + Kobieta - Looking good + </string> + <string name="Female - Over here"> + Kobieta - Over here + </string> + <string name="Female - Please"> + Kobieta - Please + </string> <string name="Female - Repulsed"> Kobieta - Odrzucenie </string> @@ -3751,4 +3792,46 @@ Raport o Nadużyciu <string name="dateTimePM"> PM </string> + <string name="LocalEstimateUSD"> + US$ [AMOUNT] + </string> + <string name="Membership"> + CzÅ‚onkostwo + </string> + <string name="Roles"> + Funkcje + </string> + <string name="Group Identity"> + Status Grupy + </string> + <string name="Parcel Management"> + Parcel Management + </string> + <string name="Parcel Identity"> + Parcel Identity + </string> + <string name="Parcel Settings"> + Parcel Settings + </string> + <string name="Parcel Powers"> + Parcel Powers + </string> + <string name="Parcel Access"> + DostÄ™p do posiadÅ‚oÅ›ci + </string> + <string name="Parcel Content"> + Parcel Content + </string> + <string name="Object Management"> + Object Management + </string> + <string name="Accounting"> + Accounting + </string> + <string name="Notices"> + OgÅ‚oszenia + </string> + <string name="Chat"> + Czat + </string> </strings> |