diff options
Diffstat (limited to 'indra/newview')
72 files changed, 1140 insertions, 378 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index ab01eabf73..97c8cbfa7b 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -10347,7 +10347,7 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>0</integer> + <integer>1</integer> </map> <key>VivoxDebugLevel</key> <map> diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index ea10917901..65503d4998 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1702,6 +1702,16 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it LLWearable* old_wearable = getWearable(type, 0); if (old_wearable) { + // Special case where you're putting on a wearable that has the same assetID + // as the previous (e.g. wear a shirt then wear a copy of that shirt) since in this + // case old_wearable == new_wearable. + if (old_wearable == new_wearable) + { + old_wearable->setLabelUpdated(); + new_wearable->setName(new_item->getName()); + new_wearable->setItemID(new_item->getUUID()); + } + const LLUUID& old_item_id = getWearableItemID(type, 0); if ((old_wearable->getAssetID() == new_wearable->getAssetID()) && (old_item_id == new_item->getUUID())) @@ -1717,7 +1727,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it continue; } } - + new_wearable->setItemID(new_item->getUUID()); setWearable(type,0,new_wearable); } diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp index 9917593c91..6b754bd065 100644 --- a/indra/newview/llfloaterimagepreview.cpp +++ b/indra/newview/llfloaterimagepreview.cpp @@ -611,7 +611,6 @@ LLImagePreviewAvatar::LLImagePreviewAvatar(S32 width, S32 height) : LLViewerDyna mCameraZoom = 1.f; mDummyAvatar = (LLVOAvatar*)gObjectList.createObjectViewer(LL_PCODE_LEGACY_AVATAR, gAgent.getRegion()); - mDummyAvatar->initInstance(); mDummyAvatar->createDrawable(&gPipeline); mDummyAvatar->mIsDummy = TRUE; mDummyAvatar->mSpecialRenderMode = 2; diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index e998d10fcc..3487f52f35 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -183,7 +183,6 @@ void LLVoiceSetKeyDialog::onCancel(void* user_data) // a static member and update all our static callbacks void handleNameTagOptionChanged(const LLSD& newvalue); -viewer_media_t get_web_media(); bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response); //bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater); @@ -191,23 +190,14 @@ bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator); -viewer_media_t get_web_media() -{ - viewer_media_t media_source = LLViewerMedia::newMediaImpl(LLUUID::null); - media_source->initializeMedia("text/html"); - return media_source; -} - - bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response) { S32 option = LLNotificationsUtil::getSelectedOption(notification, response); if ( option == 0 ) // YES { // clean web - viewer_media_t media_source = get_web_media(); - if (media_source && media_source->hasMedia()) - media_source->getMediaPlugin()->clear_cache(); + LLViewerMedia::clearAllCaches(); + LLViewerMedia::clearAllCookies(); // clean nav bar history LLNavigationBar::getInstance()->clearHistoryCache(); @@ -429,17 +419,14 @@ void LLFloaterPreference::apply() std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, ""); childSetText("cache_location", cache_location); - viewer_media_t media_source = get_web_media(); - if (media_source && media_source->hasMedia()) + LLViewerMedia::setCookiesEnabled(childGetValue("cookies_enabled")); + + if(hasChild("web_proxy_enabled") &&hasChild("web_proxy_editor") && hasChild("web_proxy_port")) { - media_source->getMediaPlugin()->enable_cookies(childGetValue("cookies_enabled")); - if(hasChild("web_proxy_enabled") &&hasChild("web_proxy_editor") && hasChild("web_proxy_port")) - { - bool proxy_enable = childGetValue("web_proxy_enabled"); - std::string proxy_address = childGetValue("web_proxy_editor"); - int proxy_port = childGetValue("web_proxy_port"); - media_source->getMediaPlugin()->proxy_setup(proxy_enable, proxy_address, proxy_port); - } + bool proxy_enable = childGetValue("web_proxy_enabled"); + std::string proxy_address = childGetValue("web_proxy_editor"); + int proxy_port = childGetValue("web_proxy_port"); + LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port); } // LLWString busy_response = utf8str_to_wstring(getChild<LLUICtrl>("busy_response")->getValue().asString()); diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 883d4cdf4b..7a538e372b 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -142,11 +142,12 @@ void LLNameListCtrl::showInspector(const LLUUID& avatar_id, bool is_group) void LLNameListCtrl::mouseOverHighlightNthItem( S32 target_index ) { - if (getHighlightedItemInx()!= target_index) + S32 cur_index = getHighlightedItemInx(); + if (cur_index != target_index) { - if(getHighlightedItemInx()!=-1) + if(0 <= cur_index && cur_index < (S32)getItemList().size()) { - LLScrollListItem* item = getItemList()[getHighlightedItemInx()]; + LLScrollListItem* item = getItemList()[cur_index]; LLScrollListText* cell = dynamic_cast<LLScrollListText*>(item->getColumn(mNameColumnIndex)); if(cell) cell->setTextWidth(cell->getTextWidth() + info_icon_size); diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index 483756b16e..af711b6943 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -96,11 +96,7 @@ LLGestureComboList::LLGestureComboList(const LLGestureComboList::Params& p) params.commit_on_keyboard_movement(false); mList = LLUICtrlFactory::create<LLScrollListCtrl>(params); - - // *HACK: adding list as a child to FloaterViewHolder to make it fully visible without - // making it top control (because it would cause problems). - gViewerWindow->getFloaterViewHolder()->addChild(mList); - mList->setVisible(FALSE); + addChild(mList); //****************************Gesture Part********************************/ @@ -115,7 +111,7 @@ LLGestureComboList::LLGestureComboList(const LLGestureComboList::Params& p) setFocusLostCallback(boost::bind(&LLGestureComboList::hideList, this)); } -BOOL LLGestureComboList::handleKey(KEY key, MASK mask, BOOL called_from_parent) +BOOL LLGestureComboList::handleKeyHere(KEY key, MASK mask) { BOOL handled = FALSE; @@ -126,7 +122,7 @@ BOOL LLGestureComboList::handleKey(KEY key, MASK mask, BOOL called_from_parent) } else { - handled = mList->handleKey(key, mask, called_from_parent); + handled = mList->handleKeyHere(key, mask); } return handled; @@ -135,18 +131,17 @@ BOOL LLGestureComboList::handleKey(KEY key, MASK mask, BOOL called_from_parent) void LLGestureComboList::showList() { LLRect rect = mList->getRect(); - LLRect screen; - mButton->localRectToScreen(getRect(), &screen); + LLRect button_rect = mButton->getRect(); // Calculating amount of space between the navigation bar and gestures combo LLNavigationBar* nb = LLNavigationBar::getInstance(); S32 x, nb_bottom; - nb->localPointToScreen(0, 0, &x, &nb_bottom); + nb->localPointToOtherView(0, 0, &x, &nb_bottom, this); - S32 max_height = nb_bottom - screen.mTop; + S32 max_height = nb_bottom - button_rect.mTop; mList->calcColumnWidths(); - rect.setOriginAndSize(screen.mLeft, screen.mTop, llmax(mList->getMaxContentWidth(),mButton->getRect().getWidth()), max_height); + rect.setOriginAndSize(button_rect.mLeft, button_rect.mTop, llmax(mList->getMaxContentWidth(),mButton->getRect().getWidth()), max_height); mList->setRect(rect); mList->fitContents( llmax(mList->getMaxContentWidth(),mButton->getRect().getWidth()), max_height); @@ -156,6 +151,7 @@ void LLGestureComboList::showList() // Show the list and push the button down mButton->setToggleState(TRUE); mList->setVisible(TRUE); + LLUI::addPopup(mList); } void LLGestureComboList::onButtonCommit() @@ -188,6 +184,7 @@ void LLGestureComboList::hideList() mButton->setToggleState(FALSE); mList->setVisible(FALSE); mList->mouseOverHighlightNthItem(-1); + LLUI::removePopup(mList); gFocusMgr.setKeyboardFocus(NULL); } } diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h index 559c1ee091..dd467d7978 100644 --- a/indra/newview/llnearbychatbar.h +++ b/indra/newview/llnearbychatbar.h @@ -70,7 +70,7 @@ public: LLCtrlListInterface* getListInterface() { return (LLCtrlListInterface*)mList; }; virtual void showList(); virtual void hideList(); - virtual BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent); + virtual BOOL handleKeyHere(KEY key, MASK mask); S32 getCurrentIndex() const; void onItemSelected(const LLSD& data); diff --git a/indra/newview/llpopupview.cpp b/indra/newview/llpopupview.cpp index d8ad59c90c..b010f4d72f 100644 --- a/indra/newview/llpopupview.cpp +++ b/indra/newview/llpopupview.cpp @@ -207,11 +207,7 @@ void LLPopupView::addPopup(LLView* popup) { if (popup) { - popup_list_t::iterator iter = std::find(mPopups.begin(), mPopups.end(), popup->getHandle()); - if(iter != mPopups.end()) - { - mPopups.erase(iter); - } + mPopups.remove(popup->getHandle()); mPopups.push_front(popup->getHandle()); } } @@ -220,11 +216,7 @@ void LLPopupView::removePopup(LLView* popup) { if (popup) { - popup_list_t::iterator iter = std::find(mPopups.begin(), mPopups.end(), popup->getHandle()); - if(iter != mPopups.end()) - { - mPopups.erase(iter); - } + mPopups.remove(popup->getHandle()); popup->onTopLost(); } } diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp index 120b584cd9..9b5e38d0aa 100644 --- a/indra/newview/llprogressview.cpp +++ b/indra/newview/llprogressview.cpp @@ -68,15 +68,16 @@ const F32 TOTAL_LOGIN_TIME = 10.f; // seconds, wild guess at time from GL contex S32 gLastStartAnimationFrame = 0; // human-style indexing, first image = 1 const S32 ANIMATION_FRAMES = 1; //13; +static LLRegisterPanelClassWrapper<LLProgressView> r("progress_view"); + + // XUI: Translate -LLProgressView::LLProgressView(const LLRect &rect) +LLProgressView::LLProgressView() : LLPanel(), mPercentDone( 0.f ), mMouseDownInActiveArea( false ), mUpdateEvents("LLProgressView") { - LLUICtrlFactory::getInstance()->buildPanel(this, "panel_progress.xml"); - reshape(rect.getWidth(), rect.getHeight()); mUpdateEvents.listen("self", boost::bind(&LLProgressView::handleUpdate, this, _1)); } @@ -92,6 +93,9 @@ BOOL LLProgressView::postBuild() getChild<LLTextBox>("message_text")->setClickedCallback(onClickMessage, this); + // hidden initially, until we need it + LLPanel::setVisible(FALSE); + sInstance = this; return TRUE; } @@ -126,19 +130,23 @@ BOOL LLProgressView::handleKeyHere(KEY key, MASK mask) void LLProgressView::setVisible(BOOL visible) { + // hiding progress view if (getVisible() && !visible) { - mFadeTimer.start(); + // hiding progress view, so show menu bars + LLUI::getRootView()->getChildView("menu_bar_holder")->setVisible(TRUE); } + // showing progress view else if (!getVisible() && visible) { - gViewerWindow->addPopup(this); - + // showing progress view, so hide menu bars + LLUI::getRootView()->getChildView("menu_bar_holder")->setVisible(FALSE); + setFocus(TRUE); mFadeTimer.stop(); mProgressTimer.start(); - LLPanel::setVisible(visible); + LLPanel::setVisible(TRUE); } } @@ -148,7 +156,7 @@ void LLProgressView::draw() static LLTimer timer; // Paint bitmap if we've got one - glPushMatrix(); + glPushMatrix(); if (gStartTexture) { LLGLSUIDefault gls_ui; @@ -189,7 +197,7 @@ void LLProgressView::draw() // Fade is complete, release focus gFocusMgr.releaseFocusIfNeeded( this ); LLPanel::setVisible(FALSE); - gViewerWindow->removePopup(this); + mFadeTimer.stop(); gStartTexture = NULL; } diff --git a/indra/newview/llprogressview.h b/indra/newview/llprogressview.h index 6853674d88..374b14be83 100644 --- a/indra/newview/llprogressview.h +++ b/indra/newview/llprogressview.h @@ -44,7 +44,7 @@ class LLProgressBar; class LLProgressView : public LLPanel { public: - LLProgressView(const LLRect& rect); + LLProgressView(); virtual ~LLProgressView(); BOOL postBuild(); diff --git a/indra/newview/llscrollingpanelparam.cpp b/indra/newview/llscrollingpanelparam.cpp index 32a915608e..dc64296521 100644 --- a/indra/newview/llscrollingpanelparam.cpp +++ b/indra/newview/llscrollingpanelparam.cpp @@ -168,25 +168,25 @@ void LLScrollingPanelParam::draw() LLPanel::draw(); // Draw the hints over the "less" and "more" buttons. - glPushMatrix(); + gGL.pushUIMatrix(); { const LLRect& r = mHintMin->getRect(); F32 left = (F32)(r.mLeft + BTN_BORDER); F32 bot = (F32)(r.mBottom + BTN_BORDER); - glTranslatef(left, bot, 0.f); + gGL.translateUI(left, bot, 0.f); mHintMin->draw(); } - glPopMatrix(); + gGL.popUIMatrix(); - glPushMatrix(); + gGL.pushUIMatrix(); { const LLRect& r = mHintMax->getRect(); F32 left = (F32)(r.mLeft + BTN_BORDER); F32 bot = (F32)(r.mBottom + BTN_BORDER); - glTranslatef(left, bot, 0.f); + gGL.translateUI(left, bot, 0.f); mHintMax->draw(); } - glPopMatrix(); + gGL.popUIMatrix(); // Draw labels on top of the buttons diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index 49770030c6..7a0712f8aa 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -550,7 +550,7 @@ bool LLTextureCacheRemoteWorker::doWrite() S32 cur_imagesize = 0; // Checks if this image is already in the entry list idx = mCache->getHeaderCacheEntry(mID, cur_imagesize); - if (idx >= 0 && (cur_imagesize >= 0)) + if (idx >= 0 && (cur_imagesize > 0)) { alreadyCached = true; // already there and non empty } @@ -846,9 +846,8 @@ bool LLTextureCache::updateTextureEntryList(const LLUUID& id, S32 bodysize) S32 idx = openAndReadEntry(id, entry, false); if (idx < 0) { - llwarns << "Failed to open entry: " << id << llendl; - removeHeaderCacheEntry(id); - LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool()); + llwarns << "Failed to open entry: " << id << llendl; + removeCachedTexture(id) ; return false; } else if (oldbodysize != entry.mBodySize) @@ -857,11 +856,7 @@ bool LLTextureCache::updateTextureEntryList(const LLUUID& id, S32 bodysize) llerrs << "Entry mismatch in mTextureSizeMap / mHeaderIDMap" << " idx=" << idx << " oldsize=" << oldbodysize << " entrysize=" << entry.mBodySize << llendl; } - entry.mBodySize = bodysize; - writeEntryAndClose(idx, entry); - - mTexturesSizeTotal -= oldbodysize; - mTexturesSizeTotal += bodysize; + updateEntry(idx, entry, entry.mImageSize, bodysize); if (mTexturesSizeTotal > sCacheMaxTexturesSize) { @@ -1002,7 +997,10 @@ LLAPRFile* LLTextureCache::openHeaderEntriesFile(bool readonly, S32 offset) llassert_always(mHeaderAPRFile == NULL); apr_int32_t flags = readonly ? APR_READ|APR_BINARY : APR_READ|APR_WRITE|APR_BINARY; mHeaderAPRFile = new LLAPRFile(mHeaderEntriesFileName, flags, getLocalAPRFilePool()); - mHeaderAPRFile->seek(APR_SET, offset); + if(offset > 0) + { + mHeaderAPRFile->seek(APR_SET, offset); + } return mHeaderAPRFile; } @@ -1022,6 +1020,12 @@ void LLTextureCache::readEntriesHeader() LLAPRFile::readEx(mHeaderEntriesFileName, (U8*)&mHeaderEntriesInfo, 0, sizeof(EntriesInfo), getLocalAPRFilePool()); } + else //create an empty entries header. + { + mHeaderEntriesInfo.mVersion = sHeaderCacheVersion ; + mHeaderEntriesInfo.mEntries = 0 ; + writeEntriesHeader() ; + } } void LLTextureCache::writeEntriesHeader() @@ -1034,8 +1038,7 @@ void LLTextureCache::writeEntriesHeader() } } -static S32 mHeaderEntriesMaxWriteIdx = 0; - +//mHeaderMutex is locked before calling this. S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create) { S32 idx = -1; @@ -1075,8 +1078,7 @@ S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create if (iter3 != mHeaderIDMap.end() && iter3->second >= 0) { idx = iter3->second; - mHeaderIDMap.erase(oldid); - mTexturesSizeMap.erase(oldid); + removeCachedTexture(oldid) ;//remove the existing cached texture to release the entry index. break; } } @@ -1086,22 +1088,9 @@ S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create } if (idx >= 0) { - // Set the header index - mHeaderIDMap[id] = idx; - llassert_always(mTexturesSizeMap.erase(id) == 0); - // Initialize the entry (will get written later) - entry.init(id, time(NULL)); - // Update Header - writeEntriesHeader(); - - //the new entry, write immediately. - // Write Entry - S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); - LLAPRFile* aprfile = openHeaderEntriesFile(false, offset); - S32 bytes_written = aprfile->write((void*)&entry, (S32)sizeof(Entry)); - llassert_always(bytes_written == sizeof(Entry)); - mHeaderEntriesMaxWriteIdx = llmax(mHeaderEntriesMaxWriteIdx, idx); - closeHeaderEntriesFile(); + entry.mID = id ; + entry.mImageSize = -1 ; //mark it is a brand-new entry. + entry.mBodySize = 0 ; } } } @@ -1117,36 +1106,108 @@ S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create } else { - S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); - LLAPRFile* aprfile = openHeaderEntriesFile(true, offset); - S32 bytes_read = aprfile->read((void*)&entry, (S32)sizeof(Entry)); - llassert_always(bytes_read == sizeof(Entry)); - closeHeaderEntriesFile(); + readEntryFromHeaderImmediately(idx, entry) ; } - llassert_always(entry.mImageSize == 0 || entry.mImageSize == -1 || entry.mImageSize > entry.mBodySize); + llassert_always(entry.mImageSize > entry.mBodySize); } return idx; } -void LLTextureCache::writeEntryAndClose(S32 idx, Entry& entry) +//mHeaderMutex is locked before calling this. +void LLTextureCache::writeEntryToHeaderImmediately(S32 idx, Entry& entry, bool write_header) +{ + LLAPRFile* aprfile ; + S32 bytes_written ; + S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); + if(write_header) + { + aprfile = openHeaderEntriesFile(false, 0); + bytes_written = aprfile->write((U8*)&mHeaderEntriesInfo, sizeof(EntriesInfo)) ; + llassert_always(bytes_written == sizeof(EntriesInfo)); + mHeaderAPRFile->seek(APR_SET, offset); + } + else + { + aprfile = openHeaderEntriesFile(false, offset); + } + bytes_written = aprfile->write((void*)&entry, (S32)sizeof(Entry)); + llassert_always(bytes_written == sizeof(Entry)); + closeHeaderEntriesFile(); + mUpdatedEntryMap.erase(idx) ; +} + +//mHeaderMutex is locked before calling this. +void LLTextureCache::readEntryFromHeaderImmediately(S32 idx, Entry& entry) { + S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); + LLAPRFile* aprfile = openHeaderEntriesFile(true, offset); + S32 bytes_read = aprfile->read((void*)&entry, (S32)sizeof(Entry)); + llassert_always(bytes_read == sizeof(Entry)); + closeHeaderEntriesFile(); +} + +//mHeaderMutex is locked before calling this. +//update an existing entry time stamp, delay writing. +void LLTextureCache::updateEntryTimeStamp(S32 idx, Entry& entry) +{ + static const U32 MAX_ENTRIES_WITHOUT_TIME_STAMP = (U32)(LLTextureCache::sCacheMaxEntries * 0.75f) ; + + if(mHeaderEntriesInfo.mEntries < MAX_ENTRIES_WITHOUT_TIME_STAMP) + { + return ; //there are enough empty entry index space, no need to stamp time. + } + if (idx >= 0) { if (!mReadOnly) { - entry.mTime = time(NULL); - llassert_always(entry.mImageSize == 0 || entry.mImageSize == -1 || entry.mImageSize > entry.mBodySize); - if (entry.mBodySize > 0) + llassert_always(entry.mImageSize > entry.mBodySize); + + entry.mTime = time(NULL); + mUpdatedEntryMap[idx] = entry ; + } + } +} + +//mHeaderMutex is locked before calling this. +//update an existing entry, write to header file immediately. +void LLTextureCache::updateEntry(S32 idx, Entry& entry, S32 new_image_size, S32 new_body_size) +{ + llassert_always(new_image_size > -1) ; + + if(new_image_size == entry.mImageSize && new_body_size == entry.mBodySize) + { + updateEntryTimeStamp(idx, entry) ; //nothing changed. + } + else if (idx >= 0) + { + if (!mReadOnly) + { + llassert_always(new_image_size > new_body_size) ; + + bool update_header = false ; + if(entry.mImageSize < 0) //is a brand-new entry { - mTexturesSizeMap[entry.mID] = entry.mBodySize; - } - else if(mTexturesSizeMap.find(entry.mID) != mTexturesSizeMap.end() && mTexturesSizeMap[entry.mID] > 0) + mHeaderIDMap[entry.mID] = idx; + mTexturesSizeMap[entry.mID] = new_body_size ; + mTexturesSizeTotal += new_body_size ; + + // Update Header + update_header = true ; + } + else if (entry.mBodySize != new_body_size) { - llerrs << "mTexturesSizeMap / mHeaderIDMap corrupted." << llendl ; + //already in mHeaderIDMap. + mTexturesSizeMap[entry.mID] = new_body_size ; + mTexturesSizeTotal -= entry.mBodySize ; + mTexturesSizeTotal += new_body_size ; } -// llinfos << "Updating TE: " << idx << ": " << id << " Size: " << entry.mBodySize << " Time: " << entry.mTime << llendl; - mHeaderEntriesMaxWriteIdx = llmax(mHeaderEntriesMaxWriteIdx, idx); - mUpdatedEntryMap[idx] = entry ; + entry.mTime = time(NULL); + entry.mImageSize = new_image_size ; + entry.mBodySize = new_body_size ; + +// llinfos << "Updating TE: " << idx << ": " << id << " Size: " << entry.mBodySize << " Time: " << entry.mTime << llendl; + writeEntryToHeaderImmediately(idx, entry, update_header) ; } } } @@ -1160,8 +1221,9 @@ U32 LLTextureCache::openAndReadEntries(std::vector<Entry>& entries) mFreeList.clear(); mTexturesSizeTotal = 0; - LLAPRFile* aprfile = openHeaderEntriesFile(false, (S32)sizeof(EntriesInfo)); + LLAPRFile* aprfile = openHeaderEntriesFile(true, 0); updatedHeaderEntriesFile() ; + aprfile->seek(APR_SET, (S32)sizeof(EntriesInfo)); for (U32 idx=0; idx<num_entries; idx++) { Entry entry; @@ -1175,19 +1237,15 @@ U32 LLTextureCache::openAndReadEntries(std::vector<Entry>& entries) } entries.push_back(entry); // llinfos << "ENTRY: " << entry.mTime << " TEX: " << entry.mID << " IDX: " << idx << " Size: " << entry.mImageSize << llendl; - if (entry.mImageSize < 0) + if(entry.mImageSize > entry.mBodySize) { - mFreeList.insert(idx); + mHeaderIDMap[entry.mID] = idx; + mTexturesSizeMap[entry.mID] = entry.mBodySize; + mTexturesSizeTotal += entry.mBodySize; } else { - mHeaderIDMap[entry.mID] = idx; - if (entry.mBodySize > 0) - { - mTexturesSizeMap[entry.mID] = entry.mBodySize; - mTexturesSizeTotal += entry.mBodySize; - } - llassert_always(entry.mImageSize == 0 || entry.mImageSize > entry.mBodySize); + mFreeList.insert(idx); } } closeHeaderEntriesFile(); @@ -1207,7 +1265,6 @@ void LLTextureCache::writeEntriesAndClose(const std::vector<Entry>& entries) S32 bytes_written = aprfile->write((void*)(&entries[idx]), (S32)sizeof(Entry)); llassert_always(bytes_written == sizeof(Entry)); } - mHeaderEntriesMaxWriteIdx = llmax(mHeaderEntriesMaxWriteIdx, num_entries-1); closeHeaderEntriesFile(); } } @@ -1280,12 +1337,11 @@ void LLTextureCache::readHeaderCache() U32 empty_entries = 0; typedef std::pair<U32, S32> lru_data_t; std::set<lru_data_t> lru; - std::set<LLUUID> purge_list; + std::set<U32> purge_list; for (U32 i=0; i<num_entries; i++) { Entry& entry = entries[i]; - const LLUUID& id = entry.mID; - if (entry.mImageSize < 0) + if (entry.mImageSize <= 0) { // This will be in the Free List, don't put it in the LRU ++empty_entries; @@ -1298,9 +1354,8 @@ void LLTextureCache::readHeaderCache() if (entry.mBodySize > entry.mImageSize) { // Shouldn't happen, failsafe only - llwarns << "Bad entry: " << i << ": " << id << ": BodySize: " << entry.mBodySize << llendl; - purge_list.insert(entry.mID); - entry.mImageSize = -1; // empty/available + llwarns << "Bad entry: " << i << ": " << entry.mID << ": BodySize: " << entry.mBodySize << llendl; + purge_list.insert(i); } } } @@ -1315,14 +1370,9 @@ void LLTextureCache::readHeaderCache() { for (std::set<lru_data_t>::iterator iter = lru.begin(); iter != lru.end(); ++iter) { - S32 idx = iter->second; - if (entries[idx].mImageSize >= 0) - { - purge_list.insert(entries[idx].mID); - entries[idx].mImageSize = -1; - if (purge_list.size() >= entries_to_purge) - break; - } + purge_list.insert(iter->second); + if (purge_list.size() >= entries_to_purge) + break; } } llassert_always(purge_list.size() >= entries_to_purge); @@ -1332,9 +1382,7 @@ void LLTextureCache::readHeaderCache() S32 lru_entries = (S32)((F32)sCacheMaxEntries * TEXTURE_CACHE_LRU_SIZE); for (std::set<lru_data_t>::iterator iter = lru.begin(); iter != lru.end(); ++iter) { - S32 idx = iter->second; - const LLUUID& id = entries[idx].mID; - mLRU.insert(id); + mLRU.insert(entries[iter->second].mID); // llinfos << "LRU: " << iter->first << " : " << iter->second << llendl; if (--lru_entries <= 0) break; @@ -1343,12 +1391,10 @@ void LLTextureCache::readHeaderCache() if (purge_list.size() > 0) { - for (std::set<LLUUID>::iterator iter = purge_list.begin(); iter != purge_list.end(); ++iter) + for (std::set<U32>::iterator iter = purge_list.begin(); iter != purge_list.end(); ++iter) { - const LLUUID& id = *iter; - bool res = removeHeaderCacheEntry(id); // sets entry size on disk to -1 - llassert_always(res); - LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool()); + std::string tex_filename = getTextureFileName(entries[*iter].mID); + removeEntry((S32)*iter, entries[*iter], tex_filename); } // If we removed any entries, we need to rebuild the entries list, // write the header, and call this again @@ -1356,13 +1402,14 @@ void LLTextureCache::readHeaderCache() for (U32 i=0; i<num_entries; i++) { const Entry& entry = entries[i]; - if (entry.mImageSize >=0) + if (entry.mImageSize > 0) { new_entries.push_back(entry); } } llassert_always(new_entries.size() <= sCacheMaxEntries); mHeaderEntriesInfo.mEntries = new_entries.size(); + writeEntriesHeader(); writeEntriesAndClose(new_entries); mHeaderMutex.unlock(); // unlock the mutex before calling again readHeaderCache(); // repeat with new entries file @@ -1370,7 +1417,7 @@ void LLTextureCache::readHeaderCache() } else { - writeEntriesAndClose(entries); + //entries are not changed, nothing here. } } } @@ -1398,6 +1445,7 @@ void LLTextureCache::purgeAllTextures(bool purge_directories) } if (purge_directories) { + gDirUtilp->deleteFilesInDir(mTexturesDirName,mask); LLFile::rmdir(mTexturesDirName); } } @@ -1435,7 +1483,6 @@ void LLTextureCache::purgeTextures(bool validate) U32 num_entries = openAndReadEntries(entries); if (!num_entries) { - writeEntriesAndClose(entries); return; // nothing to purge } @@ -1509,11 +1556,8 @@ void LLTextureCache::purgeTextures(bool validate) { purge_count++; LL_DEBUGS("TextureCache") << "PURGING: " << filename << LL_ENDL; - LLAPRFile::remove(filename, getLocalAPRFilePool()); + removeEntry(idx, entries[idx], filename) ; cache_size -= entries[idx].mBodySize; - mTexturesSizeTotal -= entries[idx].mBodySize; - entries[idx].mBodySize = 0; - mTexturesSizeMap.erase(entries[idx].mID); } } @@ -1568,7 +1612,7 @@ S32 LLTextureCache::getHeaderCacheEntry(const LLUUID& id, S32& imagesize) if (idx >= 0) { imagesize = entry.mImageSize; - writeEntryAndClose(idx, entry); // updates time + updateEntryTimeStamp(idx, entry); // updates time } return idx; } @@ -1582,8 +1626,7 @@ S32 LLTextureCache::setHeaderCacheEntry(const LLUUID& id, S32 imagesize) S32 idx = openAndReadEntry(id, entry, true); if (idx >= 0) { - entry.mImageSize = imagesize; - writeEntryAndClose(idx, entry); + updateEntry(idx, entry, imagesize, entry.mBodySize); mHeaderMutex.unlock(); } else // retry @@ -1722,34 +1765,56 @@ void LLTextureCache::addCompleted(Responder* responder, bool success) ////////////////////////////////////////////////////////////////////////////// -// Called from MAIN thread (endWork()) -// Ensure that mHeaderMutex is locked first! -bool LLTextureCache::removeHeaderCacheEntry(const LLUUID& id) +//called after mHeaderMutex is locked. +void LLTextureCache::removeCachedTexture(const LLUUID& id) { - Entry entry; - S32 idx = openAndReadEntry(id, entry, false); - if (idx >= 0) + if(mTexturesSizeMap.find(id) != mTexturesSizeMap.end()) + { + mTexturesSizeTotal -= mTexturesSizeMap[id] ; + mTexturesSizeMap.erase(id); + } + mHeaderIDMap.erase(id); + LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool()); +} + +//called after mHeaderMutex is locked. +void LLTextureCache::removeEntry(S32 idx, Entry& entry, std::string& filename) +{ + if(idx >= 0) //valid entry { entry.mImageSize = -1; entry.mBodySize = 0; - writeEntryAndClose(idx, entry); - mFreeList.insert(idx); - mHeaderIDMap.erase(id); - mTexturesSizeMap.erase(id); - return true; + mHeaderIDMap.erase(entry.mID); + mTexturesSizeMap.erase(entry.mID); + + mTexturesSizeTotal -= entry.mBodySize; + mFreeList.insert(idx); } - return false; + + LLAPRFile::remove(filename, getLocalAPRFilePool()); } -void LLTextureCache::removeFromCache(const LLUUID& id) +bool LLTextureCache::removeFromCache(const LLUUID& id) { //llwarns << "Removing texture from cache: " << id << llendl; + bool ret = false ; if (!mReadOnly) { - LLMutexLock lock(&mHeaderMutex); - removeHeaderCacheEntry(id); - LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool()); + lockHeaders() ; + + Entry entry; + S32 idx = openAndReadEntry(id, entry, false); + std::string tex_filename = getTextureFileName(id); + removeEntry(idx, entry, tex_filename) ; + if (idx >= 0) + { + writeEntryToHeaderImmediately(idx, entry); + ret = true; + } + + unlockHeaders() ; } + return ret ; } ////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h index b840619c1f..ca8815ee7e 100644 --- a/indra/newview/lltexturecache.h +++ b/indra/newview/lltexturecache.h @@ -123,7 +123,7 @@ public: bool writeComplete(handle_t handle, bool abort = false); void prioritizeWrite(handle_t handle); - void removeFromCache(const LLUUID& id); + bool removeFromCache(const LLUUID& id); // For LLTextureCacheWorker::Responder LLTextureCacheWorker* getReader(handle_t handle); @@ -161,12 +161,16 @@ private: void readEntriesHeader(); void writeEntriesHeader(); S32 openAndReadEntry(const LLUUID& id, Entry& entry, bool create); - void writeEntryAndClose(S32 idx, Entry& entry); + void updateEntry(S32 idx, Entry& entry, S32 new_image_size, S32 new_body_size); + void updateEntryTimeStamp(S32 idx, Entry& entry) ; U32 openAndReadEntries(std::vector<Entry>& entries); void writeEntriesAndClose(const std::vector<Entry>& entries); + void readEntryFromHeaderImmediately(S32 idx, Entry& entry) ; + void writeEntryToHeaderImmediately(S32 idx, Entry& entry, bool write_header = false) ; + void removeEntry(S32 idx, Entry& entry, std::string& filename); + void removeCachedTexture(const LLUUID& id) ; S32 getHeaderCacheEntry(const LLUUID& id, S32& imagesize); S32 setHeaderCacheEntry(const LLUUID& id, S32 imagesize); - bool removeHeaderCacheEntry(const LLUUID& id); void writeUpdatedEntries() ; void updatedHeaderEntriesFile() ; void lockHeaders() { mHeaderMutex.lock(); } diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index b9509a98f5..af42ed0dc9 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -982,6 +982,119 @@ bool LLViewerMedia::isParcelAudioPlaying() return (LLViewerMedia::hasParcelAudio() && gAudiop && LLAudioEngine::AUDIO_PLAYING == gAudiop->isInternetStreamPlaying()); } +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::clearAllCookies() +{ + // Clear all cookies for all plugins + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->mMediaSource) + { + pimpl->mMediaSource->clear_cookies(); + } + } + + // FIXME: this may not be sufficient, since the on-disk cookie file won't get written until some browser instance exits cleanly. + // It also won't clear cookies for other accounts, or for any account if we're not logged in, and won't do anything at all if there are no webkit plugins loaded. + // Until such time as we can centralize cookie storage, the following hack should cover these cases: + + // HACK: Look for cookie files in all possible places and delete them. + // NOTE: this assumes knowledge of what happens inside the webkit plugin (it's what adds 'browser_profile' to the path and names the cookie file) + + // Places that cookie files can be: + // <getOSUserAppDir>/browser_profile/cookies + // <getOSUserAppDir>/first_last/browser_profile/cookies (note that there may be any number of these!) + + std::string base_dir = gDirUtilp->getOSUserAppDir() + gDirUtilp->getDirDelimiter(); + std::string target; + std::string filename; + + lldebugs << "base dir = " << base_dir << llendl; + + // The non-logged-in version is easy + target = base_dir; + target += "browser_profile"; + target += gDirUtilp->getDirDelimiter(); + target += "cookies"; + lldebugs << "target = " << target << llendl; + if(LLFile::isfile(target)) + { + LLFile::remove(target); + } + + // the hard part: iterate over all user directories and delete the cookie file from each one + while(gDirUtilp->getNextFileInDir(base_dir, "*_*", filename, false)) + { + target = base_dir; + target += filename; + target += gDirUtilp->getDirDelimiter(); + target += "browser_profile"; + target += gDirUtilp->getDirDelimiter(); + target += "cookies"; + lldebugs << "target = " << target << llendl; + if(LLFile::isfile(target)) + { + LLFile::remove(target); + } + } + + +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::clearAllCaches() +{ + // Clear all plugins' caches + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + pimpl->clearCache(); + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setCookiesEnabled(bool enabled) +{ + // Set the "cookies enabled" flag for all loaded plugins + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->mMediaSource) + { + pimpl->mMediaSource->enable_cookies(enabled); + } + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setProxyConfig(bool enable, const std::string &host, int port) +{ + // Set the proxy config for all loaded plugins + impl_list::iterator iter = sViewerMediaImplList.begin(); + impl_list::iterator end = sViewerMediaImplList.end(); + for (; iter != end; iter++) + { + LLViewerMediaImpl* pimpl = *iter; + if(pimpl->mMediaSource) + { + pimpl->mMediaSource->proxy_setup(enable, host, port); + } + } +} + +///////////////////////////////////////////////////////////////////////////////////////// +// static bool LLViewerMedia::hasInWorldMedia() { if (sInWorldMediaDisabled) return false; @@ -1321,6 +1434,8 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type) media_source->focus(mHasFocus); media_source->setBackgroundColor(mBackgroundColor); + media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort")); + if(mClearCache) { mClearCache = false; diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index bc51e713a1..f9870fb3b9 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -133,6 +133,18 @@ public: static bool isParcelMediaPlaying(); static bool isParcelAudioPlaying(); + // Clear all cookies for all plugins + static void clearAllCookies(); + + // Clear all plugins' caches + static void clearAllCaches(); + + // Set the "cookies enabled" flag for all loaded plugins + static void setCookiesEnabled(bool enabled); + + // Set the proxy config for all loaded plugins + static void setProxyConfig(bool enable, const std::string &host, int port); + private: static void onTeleportFinished(); }; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index dc8185c770..5598a589cc 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -436,7 +436,8 @@ void init_menus() gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT)); gMenuBarView->setBackgroundColor( color ); - gMenuHolder->addChild(gMenuBarView); + LLView* menu_bar_holder = gViewerWindow->getRootView()->getChildView("menu_bar_holder"); + menu_bar_holder->addChild(gMenuBarView); gViewerWindow->setMenuBackgroundColor(false, LLViewerLogin::getInstance()->isInProductionGrid()); @@ -471,9 +472,10 @@ void init_menus() gLoginMenuBarView = LLUICtrlFactory::getInstance()->createFromFile<LLMenuBarGL>("menu_login.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); gLoginMenuBarView->arrangeAndClear(); LLRect menuBarRect = gLoginMenuBarView->getRect(); - gLoginMenuBarView->setRect(LLRect(menuBarRect.mLeft, menuBarRect.mTop, gViewerWindow->getRootView()->getRect().getWidth() - menuBarRect.mLeft, menuBarRect.mBottom)); + menuBarRect.setLeftTopAndSize(0, menu_bar_holder->getRect().getHeight(), menuBarRect.getWidth(), menuBarRect.getHeight()); + gLoginMenuBarView->setRect(menuBarRect); gLoginMenuBarView->setBackgroundColor( color ); - gMenuHolder->addChild(gLoginMenuBarView); + menu_bar_holder->addChild(gLoginMenuBarView); // tooltips are on top of EVERYTHING, including menus gViewerWindow->getRootView()->sendChildToFront(gToolTipView); diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 133b6ee8c9..dbbf0219c9 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -2262,11 +2262,14 @@ void LLViewerFetchedTexture::destroyRawImage() { sRawCount--; - if(mForceToSaveRawImage) + if(mIsRawImageValid) { - saveRawImage() ; - } - setCachedRawImage() ; + if(mForceToSaveRawImage) + { + saveRawImage() ; + } + setCachedRawImage() ; + } } mRawImage = NULL; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index adac4b9b40..e7d64c48a0 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1351,7 +1351,8 @@ LLViewerWindow::LLViewerWindow( mStatesDirty(false), mIsFullscreenChecked(false), mCurrResolutionIndex(0), - mViewerWindowListener(new LLViewerWindowListener(this)) + mViewerWindowListener(new LLViewerWindowListener(this)), + mProgressView(NULL) { LLNotificationChannel::buildChannel("VW_alerts", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alert")); LLNotificationChannel::buildChannel("VW_alertmodal", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alertmodal")); @@ -1588,8 +1589,7 @@ void LLViewerWindow::initBase() gToolTipView = getRootView()->getChild<LLToolTipView>("tooltip view"); // Add the progress bar view (startup view), which overrides everything - mProgressView = new LLProgressView(full_window); - getRootView()->addChild(mProgressView); + mProgressView = getRootView()->getChild<LLProgressView>("progress_view"); setShowProgress(FALSE); setProgressCancelButtonVisible(FALSE); diff --git a/indra/newview/llwearablelist.h b/indra/newview/llwearablelist.h index cf1a9bddff..5e564ba953 100644 --- a/indra/newview/llwearablelist.h +++ b/indra/newview/llwearablelist.h @@ -39,6 +39,12 @@ #include "llassetstorage.h" // Globally constructed; be careful that there's no dependency with gAgent. +/* + BUG: mList's system of mapping between assetIDs and wearables is flawed + since LLWearable* has an associated itemID, and you can have multiple + inventory items pointing to the same asset (i.e. more than one ItemID + per assetID). EXT-6252 +*/ class LLWearableList : public LLSingleton<LLWearableList> { public: diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index 5edf72d4ae..27757d19e5 100644 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -45,6 +45,7 @@ #include "llagent.h" #include "llcallingcard.h" +#include "llcommandhandler.h" #include "llviewercontrol.h" #include "llfloatermap.h" #include "llfloaterworldmap.h" @@ -1726,7 +1727,10 @@ BOOL LLWorldMapView::handleDoubleClick( S32 x, S32 y, MASK mask ) id.toString(uuid_str); uuid_str = uuid_str.substr(28); sscanf(uuid_str.c_str(), "%X", &event_id); - LLFloaterReg::showInstance("search", LLSD().with("category", "events").with("id", event_id)); + // Invoke the event details floater if someone is clicking on an event. + LLSD params(LLSD::emptyArray()); + params.append(event_id); + LLCommandDispatcher::dispatch("event", params, LLSD(), NULL, true); break; } case MAP_ITEM_LAND_FOR_SALE: diff --git a/indra/newview/skins/default/xui/da/floater_about_land.xml b/indra/newview/skins/default/xui/da/floater_about_land.xml index 6e7d16aa79..8525b324ab 100644 --- a/indra/newview/skins/default/xui/da/floater_about_land.xml +++ b/indra/newview/skins/default/xui/da/floater_about_land.xml @@ -1,5 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floaterland" title="OM LAND"> + <floater.string name="maturity_icon_general"> + "Parcel_PG_Dark" + </floater.string> + <floater.string name="maturity_icon_moderate"> + "Parcel_M_Dark" + </floater.string> + <floater.string name="maturity_icon_adult"> + "Parcel_R_Dark" + </floater.string> <floater.string name="Minutes"> [MINUTES] minutter </floater.string> @@ -15,7 +24,7 @@ <tab_container name="landtab"> <panel label="GENERELT" name="land_general_panel"> <panel.string name="new users only"> - Kun nye brugere + Kun nye beboere </panel.string> <panel.string name="anyone"> Alle @@ -421,6 +430,9 @@ Kun større parceller kan vises i søgning. <panel.string name="access_estate_defined"> (Defineret via estate) </panel.string> + <panel.string name="allow_public_access"> + Tillad adgang for alle ([MATURITY]) + </panel.string> <panel.string name="estate_override"> En eller flere af disse valg er indstillet på estate niveau </panel.string> diff --git a/indra/newview/skins/default/xui/da/floater_buy_land.xml b/indra/newview/skins/default/xui/da/floater_buy_land.xml index 57bcc7ad9d..970491b41f 100644 --- a/indra/newview/skins/default/xui/da/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/da/floater_buy_land.xml @@ -41,7 +41,7 @@ Prøv at vælge et mindre område. Det valgte område har ingen offentlige arealer. </floater.string> <floater.string name="not_owned_by_you"> - Jord, der ejes af en anden bruger er valgt. + Land ejet af en anden beboer valgt. Prøv at vælge et mindre område. </floater.string> <floater.string name="processing"> diff --git a/indra/newview/skins/default/xui/da/floater_camera.xml b/indra/newview/skins/default/xui/da/floater_camera.xml index 2596559609..37e3307960 100644 --- a/indra/newview/skins/default/xui/da/floater_camera.xml +++ b/indra/newview/skins/default/xui/da/floater_camera.xml @@ -9,6 +9,18 @@ <floater.string name="move_tooltip"> Flyt kamera op og ned, til venstre og højre </floater.string> + <floater.string name="orbit_mode_title"> + Kredsløb + </floater.string> + <floater.string name="pan_mode_title"> + Panorér + </floater.string> + <floater.string name="avatar_view_mode_title"> + Forvalg + </floater.string> + <floater.string name="free_mode_title"> + Se objekt + </floater.string> <panel name="controls"> <joystick_track name="cam_track_stick" tool_tip="Flyt kamera op og ned, til venstre og højre"/> <panel name="zoom" tool_tip="Zoom kamera mod fokus"> @@ -25,7 +37,7 @@ <panel name="buttons"> <button label="" name="orbit_btn" tool_tip="Rotér kamera"/> <button label="" name="pan_btn" tool_tip="Panorér kamera"/> - <button label="" name="avatarview_btn" tool_tip="Se som avatar"/> + <button label="" name="avatarview_btn" tool_tip="Forvalg"/> <button label="" name="freecamera_btn" tool_tip="Se objekt"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_event.xml b/indra/newview/skins/default/xui/da/floater_event.xml index 267a36b26c..1816144b45 100644 --- a/indra/newview/skins/default/xui/da/floater_event.xml +++ b/indra/newview/skins/default/xui/da/floater_event.xml @@ -9,6 +9,18 @@ <floater.string name="dont_notify"> Meddel ikke </floater.string> + <floater.string name="moderate"> + Moderat + </floater.string> + <floater.string name="adult"> + Voksent + </floater.string> + <floater.string name="general"> + Generelt + </floater.string> + <floater.string name="unknown"> + Ukendt + </floater.string> <layout_stack name="layout"> <layout_panel name="profile_stack"> <text name="event_name"> @@ -21,12 +33,21 @@ Afholdt af: </text> <text initial_value="(henter)" name="event_runby"/> + <text name="event_date_label"> + Dato: + </text> <text name="event_date"> 10/10/2010 </text> + <text name="event_duration_label"> + Varighed: + </text> <text name="event_duration"> 1 time </text> + <text name="event_covercharge_label"> + Pris: + </text> <text name="event_cover"> Gratis </text> @@ -36,6 +57,9 @@ <text name="event_location" value="SampleParcel, Name Long (145, 228, 26)"/> <text name="rating_label" value="Rating:"/> <text name="rating_value" value="ukendt"/> + <expandable_text name="event_desc"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + </expandable_text> </layout_panel> <layout_panel name="button_panel"> <button name="create_event_btn" tool_tip="Opret event"/> diff --git a/indra/newview/skins/default/xui/da/floater_god_tools.xml b/indra/newview/skins/default/xui/da/floater_god_tools.xml index ea045538c5..6b7f9ef209 100644 --- a/indra/newview/skins/default/xui/da/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/da/floater_god_tools.xml @@ -1,6 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="godtools floater" title="GOD TOOLS"> <tab_container name="GodTools Tabs"> + <panel label="Grid" name="grid"> + <button label="Spark alle beboere" label_selected="Spark alle beboere" name="Kick all users"/> + </panel> <panel label="Region" name="region"> <check_box label="Reset Home On Teleport" name="check reset home" tool_tip="Når beboere teleporterer væk, så sæt deres hjemmeadresse til deres destinations position."/> </panel> diff --git a/indra/newview/skins/default/xui/da/floater_im.xml b/indra/newview/skins/default/xui/da/floater_im.xml index 2ef8a7ce36..776bc9ab13 100644 --- a/indra/newview/skins/default/xui/da/floater_im.xml +++ b/indra/newview/skins/default/xui/da/floater_im.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <multi_floater name="im_floater" title="Personlig samtale (IM)"> <string name="only_user_message"> - Du er den eneste deltager i denne samtale + Du er den eneste beboer i denne session. </string> <string name="offline_message"> [FIRST] [LAST] er ikke logget på. @@ -31,7 +31,7 @@ Du er blevet "blokeret". </string> <string name="add_session_event"> - Ikke muligt at tilføge brugere til samtale med [RECIPIENT]. + Kunne ikke tilføje beboere til chat session med [RECIPIENT]. </string> <string name="message_session_event"> Ikke muligt at sende din besked til samtalen med [RECIPIENT]. diff --git a/indra/newview/skins/default/xui/da/floater_moveview.xml b/indra/newview/skins/default/xui/da/floater_moveview.xml index 258af489e7..8385924bda 100644 --- a/indra/newview/skins/default/xui/da/floater_moveview.xml +++ b/indra/newview/skins/default/xui/da/floater_moveview.xml @@ -18,6 +18,15 @@ <string name="fly_back_tooltip"> Flyv baglæns (Tryk på Ned piletast eller S) </string> + <string name="walk_title"> + Gå + </string> + <string name="run_title"> + Løb + </string> + <string name="fly_title"> + Flyv + </string> <panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="xxx Drej til venstre (Tryk på venstre piletast eller A)"/> <button label="" label_selected="" name="turn right btn" tool_tip="Drej til højre (Tryk på højre piletast eller D)"/> @@ -30,6 +39,5 @@ <button label="" name="mode_walk_btn" tool_tip="Gå tilstand"/> <button label="" name="mode_run_btn" tool_tip="Løbe tilstand"/> <button label="" name="mode_fly_btn" tool_tip="Flyve tilstand"/> - <button label="Stop flyvning" name="stop_fly_btn" tool_tip="Stop flyvning"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_publish_classified.xml b/indra/newview/skins/default/xui/da/floater_publish_classified.xml new file mode 100644 index 0000000000..220042f015 --- /dev/null +++ b/indra/newview/skins/default/xui/da/floater_publish_classified.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="publish_classified" title="Publicerer annoncer"> + <text name="explanation_text"> + Din annonce vil blive vist i en uge fra den dato den publiceres. + +Husk, annonceomkostninger kan ikke refunderes. + </text> + <spinner label="Pris for annonce:" name="price_for_listing" tool_tip="Pris for optagelse af annonce." value="50"/> + <text name="l$_text" value="L$"/> + <text name="more_info_text"> + Mere info (link til hjælp om annoncer) + </text> + <button label="Publicér" name="publish_btn"/> + <button label="Annullér" name="cancel_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/da/floater_water.xml b/indra/newview/skins/default/xui/da/floater_water.xml index 103feaa879..aedd1b442c 100644 --- a/indra/newview/skins/default/xui/da/floater_water.xml +++ b/indra/newview/skins/default/xui/da/floater_water.xml @@ -7,7 +7,7 @@ <button label="Gem" label_selected="Gem" name="WaterSavePreset"/> <button label="Slet" label_selected="Slet" name="WaterDeletePreset"/> <tab_container name="Water Tabs"> - <panel label="Opsætning" name="Settings"> + <panel label="INDSTILLINGER" name="Settings"> <text name="BHText"> Vandtåge farve </text> @@ -65,7 +65,7 @@ <button label="?" name="WaterBlurMultiplierHelp"/> <slider label="" name="WaterBlurMult"/> </panel> - <panel label="Billede" name="Waves"> + <panel label="BILLEDE" name="Waves"> <text name="BHText"> Retning for store bølger </text> diff --git a/indra/newview/skins/default/xui/da/floater_windlight_options.xml b/indra/newview/skins/default/xui/da/floater_windlight_options.xml index 4786609b53..65f3f67a70 100644 --- a/indra/newview/skins/default/xui/da/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/da/floater_windlight_options.xml @@ -1,18 +1,18 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="WindLight floater" title="AVANCERET OPSÆTNING FOR HIMMEL"> <text name="KeyFramePresetsText"> Faste indstillinger: </text> - <button label="Ny" label_selected="Ny" name="WLNewPreset" /> - <button label="Gem" label_selected="Gem" name="WLSavePreset" /> - <button label="Slet" label_selected="Slet" name="WLDeletePreset" /> - <button label="Dags cyklus" label_selected="Dags cyklus" name="WLDayCycleMenuButton" /> + <button label="Ny" label_selected="Ny" name="WLNewPreset"/> + <button label="Gem" label_selected="Gem" name="WLSavePreset"/> + <button label="Slet" label_selected="Slet" name="WLDeletePreset"/> + <button label="Dags cyklus" label_selected="Dags cyklus" name="WLDayCycleMenuButton"/> <tab_container name="WindLight Tabs"> - <panel label="Atmosfære" name="Atmosphere"> + <panel label="ATMOSFÆRE" name="Atmosphere"> <text name="BHText"> Blå - horisont </text> - <button label="?" name="WLBlueHorizonHelp" /> + <button label="?" name="WLBlueHorizonHelp"/> <text name="BHText2"> R </text> @@ -25,19 +25,19 @@ <text name="BHText5"> I </text> - <slider label="" name="WLBlueHorizonR" /> - <slider label="" name="WLBlueHorizonG" /> - <slider label="" name="WLBlueHorizonB" /> - <slider label="" name="WLBlueHorizonI" /> + <slider label="" name="WLBlueHorizonR"/> + <slider label="" name="WLBlueHorizonG"/> + <slider label="" name="WLBlueHorizonB"/> + <slider label="" name="WLBlueHorizonI"/> <text name="BDensText"> Dis - horisont </text> - <button label="?" name="WLHazeHorizonHelp" /> - <slider label="" name="WLHazeHorizon" /> + <button label="?" name="WLHazeHorizonHelp"/> + <slider label="" name="WLHazeHorizon"/> <text name="BDensText2"> Blå - tæthed </text> - <button label="?" name="WLBlueDensityHelp" /> + <button label="?" name="WLBlueDensityHelp"/> <text name="BHText6"> R </text> @@ -50,36 +50,36 @@ <text name="BHText9"> I </text> - <slider label="" name="WLBlueDensityR" /> - <slider label="" name="WLBlueDensityG" /> - <slider label="" name="WLBlueDensityB" /> - <slider label="" name="WLBlueDensityI" /> + <slider label="" name="WLBlueDensityR"/> + <slider label="" name="WLBlueDensityG"/> + <slider label="" name="WLBlueDensityB"/> + <slider label="" name="WLBlueDensityI"/> <text name="HDText"> Dis - intensitet </text> - <button label="?" name="WLHazeDensityHelp" /> - <slider label="" name="WLHazeDensity" /> + <button label="?" name="WLHazeDensityHelp"/> + <slider label="" name="WLHazeDensity"/> <text name="DensMultText"> Densitet faktor </text> - <button label="?" name="WLDensityMultHelp" /> - <slider label="" name="WLDensityMult" /> + <button label="?" name="WLDensityMultHelp"/> + <slider label="" name="WLDensityMult"/> <text name="WLDistanceMultText"> Distance faktor </text> - <button label="?" name="WLDistanceMultHelp" /> - <slider label="" name="WLDistanceMult" /> + <button label="?" name="WLDistanceMultHelp"/> + <slider label="" name="WLDistanceMult"/> <text name="MaxAltText"> Maximum højde </text> - <button label="?" name="WLMaxAltitudeHelp" /> - <slider label="" name="WLMaxAltitude" /> + <button label="?" name="WLMaxAltitudeHelp"/> + <slider label="" name="WLMaxAltitude"/> </panel> - <panel label="Lys" name="Lighting"> + <panel label="LYS" name="Lighting"> <text name="SLCText"> Sol/Måne farve </text> - <button label="?" name="WLSunlightColorHelp" /> + <button label="?" name="WLSunlightColorHelp"/> <text name="BHText"> R </text> @@ -92,19 +92,19 @@ <text name="BHText4"> I </text> - <slider label="" name="WLSunlightR" /> - <slider label="" name="WLSunlightG" /> - <slider label="" name="WLSunlightB" /> - <slider label="" name="WLSunlightI" /> + <slider label="" name="WLSunlightR"/> + <slider label="" name="WLSunlightG"/> + <slider label="" name="WLSunlightB"/> + <slider label="" name="WLSunlightI"/> <text name="TODText"> Sol/Måne position </text> - <button label="?" name="WLTimeOfDayHelp" /> - <slider label="" name="WLSunAngle" /> + <button label="?" name="WLTimeOfDayHelp"/> + <slider label="" name="WLSunAngle"/> <text name="WLAmbientText"> Omgivende </text> - <button label="?" name="WLAmbientHelp" /> + <button label="?" name="WLAmbientHelp"/> <text name="BHText5"> R </text> @@ -117,37 +117,37 @@ <text name="BHText8"> I </text> - <slider label="" name="WLAmbientR" /> - <slider label="" name="WLAmbientG" /> - <slider label="" name="WLAmbientB" /> - <slider label="" name="WLAmbientI" /> + <slider label="" name="WLAmbientR"/> + <slider label="" name="WLAmbientG"/> + <slider label="" name="WLAmbientB"/> + <slider label="" name="WLAmbientI"/> <text name="WLEastAngleText"> Øst vinkel </text> - <button label="?" name="WLEastAngleHelp" /> - <slider label="" name="WLEastAngle" /> + <button label="?" name="WLEastAngleHelp"/> + <slider label="" name="WLEastAngle"/> <text name="SunGlowText"> Sol glød </text> - <button label="?" name="WLSunGlowHelp" /> - <slider label="Fokus " name="WLGlowB" /> - <slider label="Størr. " name="WLGlowR" /> + <button label="?" name="WLSunGlowHelp"/> + <slider label="Fokus " name="WLGlowB"/> + <slider label="Størr. " name="WLGlowR"/> <text name="SceneGammaText"> Lysintensitet (gamma) </text> - <button label="?" name="WLSceneGammaHelp" /> - <slider label="" name="WLGamma" /> + <button label="?" name="WLSceneGammaHelp"/> + <slider label="" name="WLGamma"/> <text name="WLStarText"> Stjerne intensitet </text> - <button label="?" name="WLStarBrightnessHelp" /> - <slider label="" name="WLStarAlpha" /> + <button label="?" name="WLStarBrightnessHelp"/> + <slider label="" name="WLStarAlpha"/> </panel> - <panel label="Skyer" name="Clouds"> + <panel label="SKYER" name="Clouds"> <text name="WLCloudColorText"> Farve på skyer </text> - <button label="?" name="WLCloudColorHelp" /> + <button label="?" name="WLCloudColorHelp"/> <text name="BHText"> R </text> @@ -160,14 +160,14 @@ <text name="BHText4"> I </text> - <slider label="" name="WLCloudColorR" /> - <slider label="" name="WLCloudColorG" /> - <slider label="" name="WLCloudColorB" /> - <slider label="" name="WLCloudColorI" /> + <slider label="" name="WLCloudColorR"/> + <slider label="" name="WLCloudColorG"/> + <slider label="" name="WLCloudColorB"/> + <slider label="" name="WLCloudColorI"/> <text name="WLCloudColorText2"> Skyer XY/Tæthed </text> - <button label="?" name="WLCloudDensityHelp" /> + <button label="?" name="WLCloudDensityHelp"/> <text name="BHText5"> X </text> @@ -177,23 +177,23 @@ <text name="BHText7"> T </text> - <slider label="" name="WLCloudX" /> - <slider label="" name="WLCloudY" /> - <slider label="" name="WLCloudDensity" /> + <slider label="" name="WLCloudX"/> + <slider label="" name="WLCloudY"/> + <slider label="" name="WLCloudDensity"/> <text name="WLCloudCoverageText"> Skydække </text> - <button label="?" name="WLCloudCoverageHelp" /> - <slider label="" name="WLCloudCoverage" /> + <button label="?" name="WLCloudCoverageHelp"/> + <slider label="" name="WLCloudCoverage"/> <text name="WLCloudScaleText"> Skystørrelse </text> - <button label="?" name="WLCloudScaleHelp" /> - <slider label="" name="WLCloudScale" /> + <button label="?" name="WLCloudScaleHelp"/> + <slider label="" name="WLCloudScale"/> <text name="WLCloudDetailText"> Sky detaljer(XY/tæthed) </text> - <button label="?" name="WLCloudDetailHelp" /> + <button label="?" name="WLCloudDetailHelp"/> <text name="BHText8"> X </text> @@ -203,23 +203,23 @@ <text name="BHText10"> T </text> - <slider label="" name="WLCloudDetailX" /> - <slider label="" name="WLCloudDetailY" /> - <slider label="" name="WLCloudDetailDensity" /> + <slider label="" name="WLCloudDetailX"/> + <slider label="" name="WLCloudDetailY"/> + <slider label="" name="WLCloudDetailDensity"/> <text name="WLCloudScrollXText"> Sky drift X </text> - <button label="?" name="WLCloudScrollXHelp" /> - <check_box label="Lås" name="WLCloudLockX" /> - <slider label="" name="WLCloudScrollX" /> + <button label="?" name="WLCloudScrollXHelp"/> + <check_box label="Lås" name="WLCloudLockX"/> + <slider label="" name="WLCloudScrollX"/> <text name="WLCloudScrollYText"> Sky drift Y </text> - <button label="?" name="WLCloudScrollYHelp" /> - <check_box label="Lås" name="WLCloudLockY" /> - <slider label="" name="WLCloudScrollY" /> - <check_box label="Benyt simple skyer" name="DrawClassicClouds" /> - <button label="?" name="WLClassicCloudsHelp" /> + <button label="?" name="WLCloudScrollYHelp"/> + <check_box label="Lås" name="WLCloudLockY"/> + <slider label="" name="WLCloudScrollY"/> + <check_box label="Benyt simple skyer" name="DrawClassicClouds"/> + <button label="?" name="WLClassicCloudsHelp"/> </panel> </tab_container> <string name="WLDefaultSkyNames"> 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 7d4a81d655..898d291f1c 100644 --- a/indra/newview/skins/default/xui/da/floater_world_map.xml +++ b/indra/newview/skins/default/xui/da/floater_world_map.xml @@ -5,30 +5,66 @@ Forklaring </text> </panel> - <panel> + <panel name="layout_panel_2"> + <button name="Show My Location" tool_tip="Centrer kortet på din avatars lokation"/> <text name="me_label"> Mig </text> <text name="person_label"> Person </text> + <text name="infohub_label"> + Infohub + </text> + <text name="land_sale_label"> + Land til salg + </text> <text name="by_owner_label"> efter ejer </text> <text name="auction_label"> land auktion </text> + <button name="Go Home" tool_tip="Teleportér til min hjemmelokation"/> + <text name="Home_label"> + Hjem + </text> + <text name="events_label"> + Events: + </text> <text name="pg_label"> Generelt </text> + <check_box initial_value="sandt" name="event_mature_chk"/> <text name="mature_label"> Moderat </text> <text name="adult_label"> - Voksen + Voksent </text> </panel> - <panel> + <panel name="layout_panel_3"> + <text name="find_on_map_label"> + Find på kort + </text> + </panel> + <panel name="layout_panel_4"> + <combo_box label="Venner online" name="friend combo" tool_tip="Vis venner på kortet"> + <combo_box.item label="Mine venner som er online" name="item1"/> + </combo_box> + <combo_box label="Mine landemærker" name="landmark combo" tool_tip="Landemærke der skal vises på kort"> + <combo_box.item label="Mine landemærker" name="item1"/> + </combo_box> + <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"/> + <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"/> + </panel> + <panel name="layout_panel_5"> + <text name="zoom_label"> + Zoom + </text> </panel> </floater> diff --git a/indra/newview/skins/default/xui/da/menu_object.xml b/indra/newview/skins/default/xui/da/menu_object.xml index 232f3f64e2..c98a07e140 100644 --- a/indra/newview/skins/default/xui/da/menu_object.xml +++ b/indra/newview/skins/default/xui/da/menu_object.xml @@ -5,6 +5,7 @@ <menu_item_call label="Byg" name="Build"/> <menu_item_call label="Åben" name="Open"/> <menu_item_call label="Sid her" name="Object Sit"/> + <menu_item_call label="Stå op" name="Object Stand Up"/> <menu_item_call label="Objekt profil" name="Object Inspect"/> <menu_item_call label="Zoom In" name="Zoom In"/> <context_menu label="Tag på ▶" name="Put On"> diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml index 9193bd43e8..ea3527d63b 100644 --- a/indra/newview/skins/default/xui/da/notifications.xml +++ b/indra/newview/skins/default/xui/da/notifications.xml @@ -107,7 +107,7 @@ Vælg kun en genstand, og prøv igen. </notification> <notification name="FriendsAndGroupsOnly"> 'Ikke-venner' vil ikke vide, at du har valgt at ignorere deres opkald og personlige beskeder (IM) - <usetemplate name="okbutton" yestext="Ja"/> + <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="GrantModifyRights"> At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage ALLE genstande, du måtte have i verden. Vær MEGET forsigtig når uddeler denne tilladelse. @@ -243,9 +243,9 @@ Indtast venligst navn på region i Start lokation feltet eller vælg "Min s <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="UnsupportedHardware"> - Bare så du ved det, din computer opfylder ikke minimumskravene til [APP_NAME]. Du kan opleve dårlig hastighed. Desværre kan [SUPPORT_SITE] ikke give teknisk support til ikke-supporterede konfigurationer. -MINSPECS -Besøg [_URL] for mere information? + Din computer opfylder ikke minimumskravene til [APP_NAME]. Du kan risikere nedsat hastighed. Desværre kan [SUPPORT_SITE] ikke tilbyde teknisk support til konfigurationer der ikke er understøttet. + +Besøg [_URL] for yderligere information? <usetemplate ignoretext="Din computer hardware understøttes ikke" name="okcancelignore" notext="No" yestext="Yes"/> </notification> <notification name="UnknownGPU"> @@ -525,6 +525,10 @@ Download til dit Program bibliotek? <notification name="ReturnToOwner"> <usetemplate ignoretext="Bekræft før objekter returneres til deres ejere" name="okcancelignore" notext="Cancel" yestext="OK"/> </notification> + <notification name="ConfirmKick"> + Er du SIKKER på at du vil sparke alle beboere ud? + <usetemplate name="okcancelbuttons" notext="Cancel" yestext="Spark alle beboere ud"/> + </notification> <notification name="MuteLinden"> Beklager, men du kan ikke blokere en Linden. </notification> @@ -547,6 +551,15 @@ Chat og personlige beskeder vil blive skjult. Personlige beskeder vil få din &a Du er oppe på det maksimale antal grupper. Forlad venligst en gruppe inden du melder dig ind i enndnu en gruppe eller opretter en ny. <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="KickUser"> + Spark beboere ud med hvilken besked? + </notification> + <notification name="FreezeUser"> + Frys beboeren med hvilken besked? + </notification> + <notification name="UnFreezeUser"> + Fjern frysning af beboeren med hvilken besked? + </notification> <notification name="OfferTeleport"> <form name="form"> <input name="message"> @@ -556,6 +569,9 @@ Chat og personlige beskeder vil blive skjult. Personlige beskeder vil få din &a <button name="Cancel" text="Annullér"/> </form> </notification> + <notification name="OfferTeleportFromGod"> + Tilkald beboer til din lokation? + </notification> <notification name="TeleportFromLandmark"> Er du sikker på at du vil teleportere til <nolink>[LOCATION]</nolink>? <usetemplate ignoretext="Bekræft at jeg vil teleportere til et landemærke" name="okcancelignore" notext="Cancel" yestext="Teleport"/> @@ -568,6 +584,13 @@ Chat og personlige beskeder vil blive skjult. Personlige beskeder vil få din &a Teleport til [CLASSIFIED]? <usetemplate ignoretext="Bekræft at du ønsker at teleportere til lokation in annoncer" name="okcancelignore" notext="Annullér" yestext="Teleport"/> </notification> + <notification label="Change Linden Estate" name="ChangeLindenEstate"> + Du er i færd med at ændre et Linden ejet estate (mainland, teeen grid, orientation etc.). + +Dette er EKSTREMT FARLIGT da det kan ændre beboernes oplevelse fundamentalt. På mainland vil dette betyde ændring af tusinder af regioner og få spaceserveren til at kløjs i det. + +Fortsæt? + </notification> <notification name="RegionEntryAccessBlocked"> Du har ikke adgang til denne region på grund af din valgte indholdsrating. Dette kan skyldes manglende validering af din alder. @@ -1273,14 +1296,6 @@ Tillad denne anmodning? <button name="Ignore" text="Ignorér"/> </form> </notification> - <notification name="ScriptToast"> - [FIRST] [LAST]'s '[TITLE]' ønsker bruger-input. - <form name="form"> - <button name="Open" text="Åben dialog"/> - <button name="Ignore" text="Ignorér"/> - <button name="Block" text="Blokér"/> - </form> - </notification> <notification name="BuyLindenDollarSuccess"> Tak for din betaling! @@ -1407,7 +1422,7 @@ De vil blive blokeret nogle få sekunder af sikkerhedsmæssige årsager. </notification> <notification name="ConfirmCloseAll"> Er du sikker på at du vil lukke alle personlige samtaler (IM)? - <usetemplate name="okcancelignore" notext="Annullér" yestext="OK"/> + <usetemplate ignoretext="Bekræft før du lukker alle IMer" name="okcancelignore" notext="Annullér" yestext="OK"/> </notification> <notification name="AttachmentSaved"> Vedhæng er blevet gemt. diff --git a/indra/newview/skins/default/xui/da/panel_classified_info.xml b/indra/newview/skins/default/xui/da/panel_classified_info.xml index 6eba024981..28f8936457 100644 --- a/indra/newview/skins/default/xui/da/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/da/panel_classified_info.xml @@ -3,16 +3,46 @@ <panel.string name="l$_price"> L$[PRICE] </panel.string> + <panel.string name="click_through_text_fmt"> + [TELEPORT] teleport, [MAP] kort, [PROFILE] profil + </panel.string> + <panel.string name="date_fmt"> + [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] + </panel.string> + <panel.string name="auto_renew_on"> + Aktiv + </panel.string> + <panel.string name="auto_renew_off"> + Ikke aktiv + </panel.string> <text name="title" value="Annonce info"/> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> <text_editor name="classified_name" value="[name]"/> + <text name="classified_location_label" value="Sted:"/> <text_editor name="classified_location" value="[loading...]"/> + <text name="content_type_label" value="Indholdsype:"/> <text_editor name="content_type" value="[content type]"/> + <text name="category_label" value="Kategori:"/> <text_editor name="category" value="[category]"/> - <check_box label="Forny automatisk hver uge" name="auto_renew"/> - <text_editor name="price_for_listing" tool_tip="Pris for optagelse."/> - <text_editor name="classified_desc" value="[description]"/> + <text name="creation_date_label" value="Oprettet d.:"/> + <text_editor name="creation_date" tool_tip="Oprettet d." value="[date]"/> + <text name="price_for_listing_label" value="Pris for optagelse i lister:"/> + <text_editor name="price_for_listing" tool_tip="Pris for optagelse." value="[price]"/> + <layout_stack name="descr_stack"> + <layout_panel name="clickthrough_layout_panel"> + <text name="click_through_label" value="Klik:"/> + <text_editor name="click_through_text" tool_tip="Klik gennem data" value="[clicks]"/> + </layout_panel> + <layout_panel name="price_layout_panel"> + <text name="auto_renew_label" value="Forny automatisk:"/> + <text name="auto_renew" value="Aktiv"/> + </layout_panel> + <layout_panel name="descr_layout_panel"> + <text name="classified_desc_label" value="Beskrivelse:"/> + <text_editor name="classified_desc" value="[description]"/> + </layout_panel> + </layout_stack> </panel> </scroll_container> <panel name="buttons"> diff --git a/indra/newview/skins/default/xui/da/panel_edit_classified.xml b/indra/newview/skins/default/xui/da/panel_edit_classified.xml index 18689105ae..7fb2f930fa 100644 --- a/indra/newview/skins/default/xui/da/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/da/panel_edit_classified.xml @@ -3,12 +3,20 @@ <panel.string name="location_notice"> (vil blive opdateret efter gemning) </panel.string> + <string name="publish_label"> + Publicér + </string> + <string name="save_label"> + Gem + </string> <text name="title"> Rediger annonce </text> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Klik for at forstørre billede"/> + <panel name="snapshot_panel"> + <icon label="" name="edit_icon" tool_tip="Klik for at vælge et billede"/> + </panel> <text name="Name:"> Titel: </text> @@ -22,12 +30,19 @@ henter... </text> <button label="Sæt til nuværende lokation" name="set_to_curr_location_btn"/> + <text name="category_label" value="Kategori:"/> + <text name="content_type_label" value="Indholdstype:"/> + <icons_combo_box label="Generelt" name="content_type"> + <icons_combo_box.item label="Moderat" name="mature_ci" value="Voksent"/> + <icons_combo_box.item label="Generelt" name="pg_ci" value="PG"/> + </icons_combo_box> + <text name="price_for_listing_label" value="Pris for optagelse:"/> <spinner label="L$" name="price_for_listing" tool_tip="Pris for optagelse." value="50"/> <check_box label="Forny automatisk hver uge" name="auto_renew"/> </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> - <button label="Gem" name="save_changes_btn"/> + <button label="[LABEL]" name="save_changes_btn"/> <button label="Annullér" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_im_control_panel.xml b/indra/newview/skins/default/xui/da/panel_im_control_panel.xml index 1ba6b8b97f..be9bfab1f6 100644 --- a/indra/newview/skins/default/xui/da/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/da/panel_im_control_panel.xml @@ -13,7 +13,7 @@ <layout_panel name="share_btn_panel"> <button label="Del" name="share_btn"/> </layout_panel> - <layout_panel name="share_btn_panel"> + <layout_panel name="pay_btn_panel"> <button label="Betal" name="pay_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> diff --git a/indra/newview/skins/default/xui/da/panel_people.xml b/indra/newview/skins/default/xui/da/panel_people.xml index ecfac67b1a..93aac7d08b 100644 --- a/indra/newview/skins/default/xui/da/panel_people.xml +++ b/indra/newview/skins/default/xui/da/panel_people.xml @@ -7,6 +7,8 @@ <string name="no_friends" value="Ingen venner"/> <string name="people_filter_label" value="Filtrér personer"/> <string name="groups_filter_label" value="Filtrér grupper"/> + <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Try finding the group in search?]"/> + <string name="no_groups_msg" value="[secondlife:///app/search/groups Try searching for some groups to join.]"/> <filter_editor label="Filtrér" name="filter_input"/> <tab_container name="tabs"> <panel label="TÆT PÅ" name="nearby_panel"> diff --git a/indra/newview/skins/default/xui/da/panel_place_profile.xml b/indra/newview/skins/default/xui/da/panel_place_profile.xml index c1ed95f580..05ef22328f 100644 --- a/indra/newview/skins/default/xui/da/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/da/panel_place_profile.xml @@ -48,10 +48,63 @@ <text name="owner_label" value="Ejer:"/> <text name="maturity_value" value="ukendt"/> <accordion name="advanced_info_accordion"> - <accordion_tab name="parcel_characteristics_tab" title="Parcel"/> - <accordion_tab name="region_information_tab" title="Region"/> - <accordion_tab name="estate_information_tab" title="Estate"/> - <accordion_tab name="sales_tab" title="Til salg"/> + <accordion_tab name="parcel_characteristics_tab" title="Parcel"> + <panel name="parcel_characteristics_panel"> + <text name="rating_label" value="Rating:"/> + <text name="rating_value" value="ukendt"/> + <text name="voice_label" value="Stemme:"/> + <text name="voice_value" value="Til"/> + <text name="fly_label" value="Flyv:"/> + <text name="fly_value" value="Til"/> + <text name="push_label" value="Skub:"/> + <text name="push_value" value="Fra"/> + <text name="build_label" value="Bygge:"/> + <text name="build_value" value="Til"/> + <text name="scripts_label" value="Scripts:"/> + <text name="scripts_value" value="Til"/> + <text name="damage_label" value="Skade:"/> + <text name="damage_value" value="Fra"/> + <button label="Om land" name="about_land_btn"/> + </panel> + </accordion_tab> + <accordion_tab name="region_information_tab" title="Region"> + <panel name="region_information_panel"> + <text name="region_name_label" value="Region:"/> + <text name="region_name" value="Mooseland"/> + <text name="region_type_label" value="Type:"/> + <text name="region_type" value="Moose"/> + <text name="region_rating_label" value="Rating:"/> + <text name="region_rating" value="Voksent"/> + <text name="region_owner_label" value="Ejer:"/> + <text name="region_owner" value="moose Van Moose"/> + <text name="region_group_label" value="Gruppe:"/> + <text name="region_group"> + The Mighty Moose of mooseville soundvillemoose + </text> + <button label="Region/Estate" name="region_info_btn"/> + </panel> + </accordion_tab> + <accordion_tab name="estate_information_tab" title="Estate"> + <panel name="estate_information_panel"> + <text name="estate_name_label" value="Estate:"/> + <text name="estate_rating_label" value="Rating:"/> + <text name="estate_owner_label" value="Ejer:"/> + <text name="covenant_label" value="Regler:"/> + </panel> + </accordion_tab> + <accordion_tab name="sales_tab" title="Til salg"> + <panel name="sales_panel"> + <text name="sales_price_label" value="Pris:"/> + <text name="area_label" value="Areal:"/> + <text name="traffic_label" value="Trafik:"/> + <text name="primitives_label" value="Prims:"/> + <text name="parcel_scripts_label" value="Scripts:"/> + <text name="terraform_limits_label" value="Begræns terrænredigering:"/> + <text name="subdivide_label" value="Opdel/saml mulighed:"/> + <text name="resale_label" value="Mulighed for videresalg:"/> + <text name="sale_to_label" value="Til salg til:"/> + </panel> + </accordion_tab> </accordion> </panel> </scroll_container> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml index 3345bceff7..df71e29cb9 100644 --- a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml @@ -1,10 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Tekst chat" name="chat"> + <text name="font_size"> + Skriftstørrelse: + </text> <radio_group name="chat_font_size"> <radio_item label="Lille" name="radio" value="0"/> <radio_item label="Mellem" name="radio2" value="1"/> <radio_item label="Stor" name="radio3" value="2"/> </radio_group> + <text name="font_colors"> + Skriftfarve: + </text> <color_swatch label="Dig" name="user"/> <text name="text_box1"> Dig diff --git a/indra/newview/skins/default/xui/da/panel_region_estate.xml b/indra/newview/skins/default/xui/da/panel_region_estate.xml index c21fd9db37..7941553ade 100644 --- a/indra/newview/skins/default/xui/da/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/da/panel_region_estate.xml @@ -39,7 +39,7 @@ </string> <button label="?" name="abuse_email_address_help"/> <button label="Gem" name="apply_btn"/> - <button label="Smid bruger ud fra estate..." name="kick_user_from_estate_btn"/> + <button label="Spark en beboer ud af estate..." name="kick_user_from_estate_btn"/> <button label="Send besked til estate..." name="message_estate_btn"/> <text name="estate_manager_label"> Administratorer: diff --git a/indra/newview/skins/default/xui/da/panel_region_general.xml b/indra/newview/skins/default/xui/da/panel_region_general.xml index 6ffe1f34f3..5b5dd411ac 100644 --- a/indra/newview/skins/default/xui/da/panel_region_general.xml +++ b/indra/newview/skins/default/xui/da/panel_region_general.xml @@ -19,35 +19,25 @@ ukendt </text> <check_box label="Blokér for redigering af terræn" name="block_terraform_check"/> - <button label="?" name="terraform_help"/> <check_box label="Blokér for flyvning" name="block_fly_check"/> - <button label="?" name="fly_help"/> <check_box label="Tillad skader" name="allow_damage_check"/> - <button label="?" name="damage_help"/> <check_box label="Begræns skubning" name="restrict_pushobject"/> - <button label="?" name="restrict_pushobject_help"/> <check_box label="Tillad at sælge land" name="allow_land_resell_check"/> - <button label="?" name="land_resell_help"/> <check_box label="Tillad at samle/dele land" name="allow_parcel_changes_check"/> - <button label="?" name="parcel_changes_help"/> <check_box label="Blokér visning af land i Søgning" name="block_parcel_search_check" tool_tip="Lad beboere se denne region og dens parceller i søgeresultater"/> - <button label="?" name="parcel_search_help"/> <spinner label="Max besøgende" name="agent_limit_spin"/> - <button label="?" name="agent_limit_help"/> <spinner label="Objekt bonus" name="object_bonus_spin"/> - <button label="?" name="object_bonus_help"/> <text label="Indhold" name="access_text"> Rating: </text> - <combo_box label="Mature" name="access_combo"> - <combo_box.item label="Adult" name="Adult"/> - <combo_box.item label="Mature" name="Mature"/> - <combo_box.item label="PG" name="PG"/> - </combo_box> - <button label="?" name="access_help"/> + <icons_combo_box label="Mature" name="access_combo"> + <icons_combo_box.item label="Adult" name="Adult" value="42"/> + <icons_combo_box.item label="Mature" name="Mature" value="21"/> + <icons_combo_box.item label="PG" name="PG" value="13"/> + </icons_combo_box> <button label="Gem" name="apply_btn"/> - <button label="Send en beboer hjem ..." name="kick_btn"/> - <button label="Send alle beboere hjem..." name="kick_all_btn"/> + <button label="Teleportér en beboer hjem..." name="kick_btn"/> + <button label="Teleportér alle beboere hjem..." name="kick_all_btn"/> <button label="Send besked til region..." name="im_btn"/> <button label="Vedligehold telehub..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_region_general_layout.xml b/indra/newview/skins/default/xui/da/panel_region_general_layout.xml index 467684f712..f3c32d6169 100644 --- a/indra/newview/skins/default/xui/da/panel_region_general_layout.xml +++ b/indra/newview/skins/default/xui/da/panel_region_general_layout.xml @@ -36,8 +36,8 @@ <combo_box.item label="Generel" name="PG"/> </combo_box> <button label="Gem" name="apply_btn"/> - <button label="Send en beboer hjem ..." name="kick_btn"/> - <button label="Send alle beboere hjem..."" name="kick_all_btn"/> + <button label="Teleportér en beboer hjem..." name="kick_btn"/> + <button label="Teleportér alle beboere hjem..." name="kick_all_btn"/> <button label="Send besked til region..." name="im_btn"/> <button label="Vedligehold telehub..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_region_texture.xml b/indra/newview/skins/default/xui/da/panel_region_texture.xml index 8e324ab777..45946fd222 100644 --- a/indra/newview/skins/default/xui/da/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/da/panel_region_texture.xml @@ -25,16 +25,16 @@ Texture højde intervaller </text> <text name="height_text_lbl6"> - Sydvest + Nordvest </text> <text name="height_text_lbl7"> - Nordvest + Nordøst </text> <text name="height_text_lbl8"> - Sydøst + Sydvest </text> <text name="height_text_lbl9"> - Nordøst + Sydøst </text> <spinner label="Lav" name="height_start_spin_0"/> <spinner label="Lav" name="height_start_spin_1"/> diff --git a/indra/newview/skins/default/xui/da/panel_status_bar.xml b/indra/newview/skins/default/xui/da/panel_status_bar.xml index 08ffafd5a6..4618fe536d 100644 --- a/indra/newview/skins/default/xui/da/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/da/panel_status_bar.xml @@ -22,7 +22,7 @@ L$ [AMT] </panel.string> <button label="" label_selected="" name="buycurrency" tool_tip="Min balance"/> - <button label="Køb L$" name="buyL" tool_tip="Klik for at købe flere L$"/> + <button label="Køb" name="buyL" tool_tip="Klik for at købe flere L$"/> <text name="TimeText" tool_tip="Nuværende tid (Pacific)"> 24:00 PST </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 a1859b64d8..8a01659ffa 100644 --- a/indra/newview/skins/default/xui/da/panel_teleport_history.xml +++ b/indra/newview/skins/default/xui/da/panel_teleport_history.xml @@ -13,6 +13,6 @@ <accordion_tab name="6_months_and_older" title="6 måneder eller ældre"/> </accordion> <panel name="bottom_panel"> - <button name="gear_btn" tool_tip="Vi flere valgmuligheder"/> + <button name="gear_btn" tool_tip="Vis flere valgmuligheder"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/da/sidepanel_task_info.xml b/indra/newview/skins/default/xui/da/sidepanel_task_info.xml index add2fa3c73..4642c11d21 100644 --- a/indra/newview/skins/default/xui/da/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/da/sidepanel_task_info.xml @@ -38,16 +38,41 @@ </panel.string> <text name="title" value="Objekt profil"/> <text name="where" value="(verden)"/> - <panel label=""> + <panel label="" name="properties_panel"> + <text name="Name:"> + Navn: + </text> + <text name="Description:"> + Beskrivelse: + </text> <text name="CreatorNameLabel"> - Skaber + Skaber: </text> <text name="Creator Name"> Erica Linden </text> + <text name="Owner:"> + Ejer: + </text> + <text name="Owner Name"> + Erica Linden + </text> <text name="Group_label"> Gruppe: </text> + <button name="button set group" tool_tip="Vælg en gruppe for at dele dette objekts rettigheder"/> + <name_box initial_value="Henter..." name="Group Name Proxy"/> + <button label="Dedikér" label_selected="Dedikér" name="button deed" tool_tip="Dedikering giver denne genstand væk med den næste ejers rettigheder. Gruppe delte objekter kan dedikeres af en gruppe administrator."/> + <text name="label click action"> + Klik for at: + </text> + <combo_box name="clickaction"> + <combo_box.item label="Berør (standard)" name="Touch/grab(default)"/> + <combo_box.item label="Sid på objekt" name="Sitonobject"/> + <combo_box.item label="Køb objekt" name="Buyobject"/> + <combo_box.item label="Betal objekt" name="Payobject"/> + <combo_box.item label="Åben" name="Open"/> + </combo_box> <panel name="perms_inv"> <text name="perm_modify"> Du kan redigere dette objekt @@ -60,26 +85,33 @@ <text name="GroupLabel"> Gruppe: </text> - <check_box label="Del" name="checkbox share with group" tool_tip="Tillad alle medlemmer i den aktive gruppe at dele dine 'rediger' rettigheder for dette objekt. Du skal dedikere for at åbne for rolle begrænsninger."/> + <check_box label="Del" name="checkbox share with group" tool_tip="Tillad alle gruppemedlemmer i den valgte gruppe at dele dine redigeringsrettigheder for dette objekt. Du skal dedikere for at aktivere rollebegrænsninger"/> <text name="NextOwnerLabel"> Næste ejer: </text> <check_box label="Redigere" name="checkbox next owner can modify"/> <check_box label="Kopi" name="checkbox next owner can copy"/> - <check_box label="Give væk" name="checkbox next owner can transfer" tool_tip="Næste ejer kan give væk eller sælge objekt"/> + <check_box label="Overfør" name="checkbox next owner can transfer" tool_tip="Næste ejer kan give væk eller sælge dette objekt"/> </panel> <check_box label="Til salg" name="checkbox for sale"/> + <combo_box name="sale type"> + <combo_box.item label="Kopi" name="Copy"/> + <combo_box.item label="Indhold" name="Contents"/> + <combo_box.item label="Original" name="Original"/> + </combo_box> + <spinner label="Pris: L$" name="Edit Cost"/> + <check_box label="Vis i søgning" name="search_check" tool_tip="Lad personer se dette objekt i søgeresultater"/> <text name="B:"> - B: + S: </text> <text name="O:"> - O: + E: </text> <text name="G:"> G: </text> <text name="E:"> - E: + A: </text> <text name="N:"> N: @@ -92,5 +124,6 @@ <button label="Åben" name="open_btn"/> <button label="Betal" name="pay_btn"/> <button label="Køb" name="buy_btn"/> + <button label="Detaljer" name="details_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml index 412f946acc..2fb8a579d2 100644 --- a/indra/newview/skins/default/xui/da/strings.xml +++ b/indra/newview/skins/default/xui/da/strings.xml @@ -161,6 +161,7 @@ Klik for at starte secondlife:// kommando </string> <string name="CurrentURL" value=" Nuværende URL: [CurrentURL]"/> + <string name="TooltipPrice" value="L$[PRICE]-"/> <string name="SLurlLabelTeleport"> Teleportér til </string> @@ -734,6 +735,9 @@ <string name="invalid"> ugyldig </string> + <string name="NewWearable"> + Ny [WEARABLE_ITEM] + </string> <string name="next"> Næste </string> @@ -1432,6 +1436,9 @@ <string name="PanelContentsNewScript"> Nyt script </string> + <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="MuteByName"> (efter navn) </string> diff --git a/indra/newview/skins/default/xui/da/teleport_strings.xml b/indra/newview/skins/default/xui/da/teleport_strings.xml index 43f8e5144d..071aab46f4 100644 --- a/indra/newview/skins/default/xui/da/teleport_strings.xml +++ b/indra/newview/skins/default/xui/da/teleport_strings.xml @@ -63,6 +63,9 @@ Prøv evt. igen om lidt. <message name="completing"> Fuldfører teleport. </message> + <message name="completed_from"> + Teleport fuldført fra [T_SLURL] + </message> <message name="resolving"> Finder destination. </message> diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml index 186c2932c3..81c2f97263 100644 --- a/indra/newview/skins/default/xui/de/floater_about_land.xml +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -443,6 +443,9 @@ Nur große Parzellen können in der Suche aufgeführt werden. <panel.string name="access_estate_defined"> (Durch Grundstück festgelegt) </panel.string> + <panel.string name="allow_public_access"> + Öffentlichen Zugang erlauben ([MATURITY]) + </panel.string> <panel.string name="estate_override"> Eine oder mehrere dieser Optionen gelten auf Grundstücksebene </panel.string> diff --git a/indra/newview/skins/default/xui/de/panel_edit_pick.xml b/indra/newview/skins/default/xui/de/panel_edit_pick.xml index 0cb14177af..1ec4f09161 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_pick.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Auswahl bearbeiten" name="panel_edit_pick"> + <panel.string name="location_notice"> + (wird nach Speichern aktualisiert) + </panel.string> <text name="title"> Auswahl bearbeiten </text> @@ -22,7 +25,7 @@ </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> - <button label="[WHAT] speichern" name="save_changes_btn"/> + <button label="Auswahl speichern" name="save_changes_btn"/> <button label="Abbrechen" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_main_inventory.xml b/indra/newview/skins/default/xui/de/panel_main_inventory.xml index 7d57a3b3f2..d3eb9ae04c 100644 --- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml @@ -1,18 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Sonstiges" name="main inventory panel"> - <panel.string name="Title"> - Sonstiges + <panel.string name="ItemcountFetching"> + Inventar ([ITEM_COUNT] Artikel werden abgerufen... [FILTER] </panel.string> - <filter_editor label="Inventar filtern" name="inventory search editor"/> - <tab_container name="inventory filter tabs"> - <inventory_panel label="MEIN INVENTAR" name="All Items"/> - <inventory_panel label="AKTUELL" name="Recent Items"/> - </tab_container> - <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/> - <button name="add_btn" tool_tip="Neues Objekt hinzufügen"/> - <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/> - </panel> + <panel.string name="ItemcountCompleted"> + [ITEM_COUNT] Objekte [FILTER] + </panel.string> + <text name="ItemcountText"> + Objekte: + </text> <menu_bar name="Inventory Menu"> <menu label="Datei" name="File"> <menu_item_call label="Öffnen" name="Open"/> @@ -61,4 +57,14 @@ <menu_item_check label="Systemordner nach oben" name="System Folders To Top"/> </menu> </menu_bar> + <filter_editor label="Inventar filtern" name="inventory search editor"/> + <tab_container name="inventory filter tabs"> + <inventory_panel label="MEIN INVENTAR" name="All Items"/> + <inventory_panel label="AKTUELL" name="Recent Items"/> + </tab_container> + <panel name="bottom_panel"> + <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/> + <button name="add_btn" tool_tip="Neues Objekt hinzufügen"/> + <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_nearby_media.xml b/indra/newview/skins/default/xui/de/panel_nearby_media.xml index 2d97a25fa9..ad26f71245 100644 --- a/indra/newview/skins/default/xui/de/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/de/panel_nearby_media.xml @@ -19,10 +19,17 @@ <button label="Mehr >>" label_selected="Weniger <<" name="more_less_btn" tool_tip="Erweiterte Steuerung"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media"> + Medien in der Nähe + </text> + <text name="show"> + Anzeigen: + </text> <combo_box name="show_combo"> <combo_box.item label="Alle" name="All"/> <combo_box.item label="Auf dieser Parzelle" name="WithinParcel"/> <combo_box.item label="Außerhalb dieser Parzelle" name="OutsideParcel"/> + <combo_box.item label="An anderen Avataren" name="OnOthers"/> </combo_box> <scroll_list name="media_list"> <scroll_list.columns label="Umgebung" name="media_proximity"/> @@ -31,7 +38,7 @@ <scroll_list.columns label="Name" name="media_name"/> <scroll_list.columns label="Fehler beseitigen" name="media_debug"/> </scroll_list> - <panel> + <panel name="media_controls_panel"> <layout_stack name="media_controls"> <layout_panel name="stop"> <button name="stop_btn" tool_tip="Ausgewählte Medien stoppen"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml index 78c495e377..c0ab69fcdf 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml @@ -3,6 +3,9 @@ <panel.string name="aspect_ratio_text"> [NUM]:[DEN] </panel.string> + <panel.string name="middle_mouse"> + Mittlere Maustaste + </panel.string> <slider label="Sichtwinkel" name="camera_fov"/> <slider label="Abstand" name="camera_offset_scale"/> <text name="heading2"> @@ -16,7 +19,7 @@ <check_box label="Avatarlippen beim Sprechen bewegen" name="enable_lip_sync"/> <check_box label="Blasen-Chat" name="bubble_text_chat"/> <slider label="Deckkraft" label_width="66" name="bubble_chat_opacity"/> - <color_swatch name="background" tool_tip="Farbe für Blasen-Chat auswählen" left_pad="35"/> + <color_swatch left_pad="35" name="background" tool_tip="Farbe für Blasen-Chat auswählen"/> <check_box label="Skript-Fehler anzeigen:" name="show_script_errors"/> <radio_group name="show_location"> <radio_item label="Chat in der Nähe" name="0"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml index 45b560c759..aa1a93efac 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml @@ -46,6 +46,12 @@ <check_box initial_value="true" label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/> <check_box label="IMs per Email zuschicken, wenn ich offline bin" name="send_im_to_email"/> <check_box label="Kompakten Text-Chatverlauf aktivieren" name="plain_text_chat_history"/> + <text name="show_ims_in_label"> + IMs anzeigen in: + </text> + <text name="requires_restart_label"> + (Neustart erforderlich) + </text> <radio_group name="chat_window" tool_tip="Zeigen Sie Ihre Sofortnachrichten (Instant Messages) in einem anderen Fenster oder in einem einzigen Fenster mit viele Registerkarten an (Neustart erforderlich)."> <radio_item label="Getrennte Fenster" name="radio" value="0"/> <radio_item label="Registerkarten" name="radio2" value="1"/> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index fc01b69461..b99f31c892 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -23,7 +23,22 @@ Hardware wird erfasst... </string> <string name="StartupLoading"> - Wird geladen + [APP_NAME] wird geladen... + </string> + <string name="StartupClearingCache"> + Cache wird gelöscht... + </string> + <string name="StartupInitializingTextureCache"> + Textur-Cache wird initialisiert... + </string> + <string name="StartupInitializingVFS"> + VFS wird initialisiert... + </string> + <string name="ProgressRestoring"> + Wird wiederhergestellt... + </string> + <string name="ProgressChangingResolution"> + Auflösung wird geändert... </string> <string name="Fullbright"> Fullbright (Legacy) @@ -88,6 +103,9 @@ <string name="LoginFailedNoNetwork"> Netzwerk Fehler: Eine Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie Ihre Netzwerkverbindung. </string> + <string name="LoginFailed"> + Anmeldung fehlgeschlagen + </string> <string name="Quit"> Beenden </string> @@ -97,6 +115,24 @@ <string name="AgentLostConnection"> In dieser Region kann es zu Problemen kommen. Bitte überprüfen Sie Ihre Internetverbindung. </string> + <string name="SavingSettings"> + Ihr Einstellungen werden gespeichert... + </string> + <string name="LoggingOut"> + Abmeldung erfolgt... + </string> + <string name="ShuttingDown"> + Programm wird beendet... + </string> + <string name="YouHaveBeenDisconnected"> + Die Verbindung zu der Region ist abgebrochen. + </string> + <string name="SentToInvalidRegion"> + Sie wurden in eine ungültige Region geschickt. + </string> + <string name="TestingDisconnect"> + Verbindungsabbruch wird getestet + </string> <string name="TooltipPerson"> Person </string> @@ -151,6 +187,24 @@ <string name="TooltipAgentUrl"> Anklicken, um das Profil dieses Einwohners anzuzeigen </string> + <string name="TooltipAgentMute"> + Klicken, um diesen Einwohner stummzuschalten + </string> + <string name="TooltipAgentUnmute"> + Klicken, um diesen Einwohner freizuschalten + </string> + <string name="TooltipAgentIM"> + Klicken, um diesem Einwohner eine IM zu schicken. + </string> + <string name="TooltipAgentPay"> + Klicken, um diesen Einwohner zu bezahlen + </string> + <string name="TooltipAgentOfferTeleport"> + Klicken, um diesem Einwohner einen Teleport anzubieten. + </string> + <string name="TooltipAgentRequestFriend"> + Klicken, um diesem Einwohner ein Freundschaftsangebot zu schicken. + </string> <string name="TooltipGroupUrl"> Anklicken, um Beschreibung der Gruppe anzuzeigen </string> @@ -176,12 +230,31 @@ Anklicken, um Befehl secondlife:// auszuführen </string> <string name="CurrentURL" value=" CurrentURL: [CurrentURL]"/> + <string name="TooltipPrice" value="[PRICE] L$"/> <string name="SLurlLabelTeleport"> Teleportieren nach </string> <string name="SLurlLabelShowOnMap"> Karte anzeigen für </string> + <string name="SLappAgentMute"> + Stummschalten + </string> + <string name="SLappAgentUnmute"> + Stummschaltung aufheben + </string> + <string name="SLappAgentIM"> + IM + </string> + <string name="SLappAgentPay"> + Bezahlen + </string> + <string name="SLappAgentOfferTeleport"> + Teleportangebot an + </string> + <string name="SLappAgentRequestFriend"> + Freundschaftsangebot + </string> <string name="BUTTON_CLOSE_DARWIN"> Schließen (⌘W) </string> @@ -335,6 +408,9 @@ <string name="symbolic link"> Link </string> + <string name="symbolic folder link"> + Link zu Ordner + </string> <string name="AvatarEditingAppearance"> (Aussehen wird bearbeitet) </string> @@ -849,6 +925,7 @@ Keine Inhalte </string> <string name="WornOnAttachmentPoint" value=" (getragen am [ATTACHMENT_POINT])"/> + <string name="ActiveGesture" value="[GESLABEL] (aktiviert)"/> <string name="PermYes"> Ja </string> @@ -948,6 +1025,9 @@ <string name="InvFolder My Outfits"> Meine Outfits </string> + <string name="InvFolder Accessories"> + Zubehör + </string> <string name="InvFolder Friends"> Freunde </string> @@ -1471,6 +1551,9 @@ <string name="PanelContentsNewScript"> Neues Skript </string> + <string name="PanelContentsTooltip"> + Objektinhalt + </string> <string name="BusyModeResponseDefault"> Der Einwohner/Die Einwohnerin ist „beschäftigt", d.h. er/sie möchte im Moment nicht gestört werden. Ihre Nachricht wird dem Einwohner/der Einwohnerin als IM angezeigt, und kann später beantwortet werden. </string> @@ -3375,4 +3458,31 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ <string name="unread_chat_multiple"> [SOURCES] haben etwas Neues gesagt </string> + <string name="paid_you_ldollars"> + [NAME] hat Ihnen [AMOUNT] L$ bezahlt. + </string> + <string name="giving"> + Giving + </string> + <string name="uploading_costs"> + Kosten für Hochladen + </string> + <string name="this_costs"> + Kosten: + </string> + <string name="buying_selected_land"> + Ausgewähltes Land wird gekauft + </string> + <string name="this_object_costs"> + Dieses Objekt kostet + </string> + <string name="group_role_everyone"> + Jeder + </string> + <string name="group_role_officers"> + Offiziere + </string> + <string name="group_role_owners"> + Eigentümer + </string> </strings> diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml index 85853f39bb..1ace760816 100644 --- a/indra/newview/skins/default/xui/en/main_view.xml +++ b/indra/newview/skins/default/xui/en/main_view.xml @@ -143,12 +143,19 @@ <panel mouse_opaque="false" follows="left|right|top" name="status_bar_container" - tab_stop="false" + tab_stop="false" height="19" left="0" top="0" width="1024" visible="false"/> + <view mouse_opaque="false" + follows="all" + name="menu_bar_holder" + left="0" + top="0" + width="1024" + height="768"/> <notify_box_view top="0" follows="all" height="768" @@ -159,6 +166,15 @@ <panel top="0" follows="all" height="768" + mouse_opaque="true" + name="progress_view" + filename="panel_progress.xml" + class="progress_view" + width="1024" + visible="false"/> + <panel top="0" + follows="all" + height="768" mouse_opaque="false" name="popup_holder" class="popup_holder" diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml index 19c0da4f08..0eb5c47f85 100644 --- a/indra/newview/skins/default/xui/en/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml @@ -385,7 +385,7 @@ things in this group. There's a broad variety of Abilities. left="0" follows="left|top|right" right="-1" - max_length="295" + max_length="20" name="role_name" top_pad="0" width="300"> @@ -408,7 +408,7 @@ things in this group. There's a broad variety of Abilities. left="0" follows="left|top|right" right="-1" - max_length="295" + max_length="20" name="role_title" top_pad="0" width="300"> diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 627e616af5..d1e0746d9d 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -216,7 +216,7 @@ height="16" name="login_help" top_pad="2" right="-10" - width="180"> + width="190"> Need help logging in? </text> <!-- <text follows="right|bottom" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml index c658e0de6f..e604e401f6 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml @@ -164,7 +164,7 @@ Automatic position for: label="Opacity" layout="topleft" left="80" - label_width="50" + label_width="60" name="bubble_chat_opacity" width="200" /> <color_swatch diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index 15f8b33f5b..fe882730f4 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -283,7 +283,7 @@ layout="topleft" left_delta="0" name="external" - value="true" + value="1" tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen." top_delta="20" width="480" /> diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 0c870e155b..84664eedcc 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -94,10 +94,10 @@ <button follows="right|top" height="16" - image_selected="Pause_Off" - image_unselected="Play_Off" - image_pressed="Play_Press" - image_pressed_selected="Pause_Press" + image_selected="Play_Off" + image_unselected="Pause_Off" + image_pressed="Pause_Press" + image_pressed_selected="Play_Press" is_toggle="true" left_pad="15" top="1" 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 b5acd6299a..16ed27817e 100644 --- a/indra/newview/skins/default/xui/fr/floater_about_land.xml +++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml @@ -449,6 +449,9 @@ musique : <panel.string name="access_estate_defined"> (défini par le domaine </panel.string> + <panel.string name="allow_public_access"> + Autoriser l'accès public ([MATURITY]) + </panel.string> <panel.string name="estate_override"> Au moins une de ces options est définie au niveau du domaine. </panel.string> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_pick.xml b/indra/newview/skins/default/xui/fr/panel_edit_pick.xml index f234529764..0bbcbe833f 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_pick.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Modifier la préférence" name="panel_edit_pick"> + <panel.string name="location_notice"> + (mise à jour après enregistrement) + </panel.string> <text name="title"> Modifier la préférence </text> @@ -22,7 +25,7 @@ </panel> </scroll_container> <panel label="bottom_panel" name="bottom_panel"> - <button label="Enregistrer [WHAT]" name="save_changes_btn"/> + <button label="Enregistrer" name="save_changes_btn"/> <button label="Annuler" name="cancel_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml index 7c8365fdee..4be12054df 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml @@ -40,7 +40,7 @@ Page d'accueil : </text> <line_editor name="homepage_edit" value="http://"/> - <check_box label="Afficher dans les résultats de recherche" name="show_in_search_checkbox"/> + <check_box label="Afficher avec la recherche" name="show_in_search_checkbox"/> <text name="title_acc_status_text" value="Mon compte :"/> <text_editor name="acc_status_text" value="Résident. Aucune info de paiement enregistrée."/> <text name="my_account_link" value="[[URL] Accéder à ma Page d'accueil]"/> diff --git a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml index 5faba01339..1a4450cccc 100644 --- a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml @@ -1,18 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Choses" name="main inventory panel"> - <panel.string name="Title"> - Choses + <panel.string name="ItemcountFetching"> + Récupération de [ITEM_COUNT] objets... [FILTER] </panel.string> - <filter_editor label="Filtrer l'inventaire" name="inventory search editor"/> - <tab_container name="inventory filter tabs"> - <inventory_panel label="MON INVENTAIRE" name="All Items"/> - <inventory_panel label="RÉCENT" name="Recent Items"/> - </tab_container> - <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="Afficher d'autres options"/> - <button name="add_btn" tool_tip="Ajouter un nouvel article"/> - <dnd_button name="trash_btn" tool_tip="Supprimer l'article sélectionné"/> - </panel> + <panel.string name="ItemcountCompleted"> + [ITEM_COUNT] objets [FILTER] + </panel.string> + <text name="ItemcountText"> + Objets : + </text> <menu_bar name="Inventory Menu"> <menu label="Fichier" name="File"> <menu_item_call label="Ouvrir" name="Open"/> @@ -61,4 +57,14 @@ <menu_item_check label="Dossiers système en premier" name="System Folders To Top"/> </menu> </menu_bar> + <filter_editor label="Filtrer l'inventaire" name="inventory search editor"/> + <tab_container name="inventory filter tabs"> + <inventory_panel label="MON INVENTAIRE" name="All Items"/> + <inventory_panel label="RÉCENT" name="Recent Items"/> + </tab_container> + <panel name="bottom_panel"> + <button name="options_gear_btn" tool_tip="Afficher d'autres options"/> + <button name="add_btn" tool_tip="Ajouter un nouvel article"/> + <dnd_button name="trash_btn" tool_tip="Supprimer l'article sélectionné"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml index a1c4c92618..6bf8a94c68 100644 --- a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml @@ -19,10 +19,17 @@ <button label="Plus >>" label_selected="Moins <<" name="more_less_btn" tool_tip="Options avancées"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media"> + Média près de vous + </text> + <text name="show"> + Afficher : + </text> <combo_box name="show_combo"> <combo_box.item label="Tout" name="All"/> <combo_box.item label="Dans cette parcelle" name="WithinParcel"/> <combo_box.item label="En dehors de la parcelle" name="OutsideParcel"/> + <combo_box.item label="Sur les autres avatars" name="OnOthers"/> </combo_box> <scroll_list name="media_list"> <scroll_list.columns label="Proximité" name="media_proximity"/> @@ -31,19 +38,19 @@ <scroll_list.columns label="Nom" name="media_name"/> <scroll_list.columns label="Débogage" name="media_debug"/> </scroll_list> - <panel> + <panel name="media_controls_panel"> <layout_stack name="media_controls"> <layout_panel name="stop"> <button name="stop_btn" tool_tip="Arrêter le média sélectionné"/> </layout_panel> <layout_panel name="play"> - <button name="play_btn" tool_tip="Jouer le média sélectionné"/> + <button name="play_btn" tool_tip="Lire le média sélectionné"/> </layout_panel> <layout_panel name="pause"> - <button name="pause_btn" tool_tip="Pauser le média sélectionné"/> + <button name="pause_btn" tool_tip="Suspendre la lecture du média sélectionné"/> </layout_panel> <layout_panel name="volume_slider_ctrl"> - <slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volume audio pour le média sélectionné"/> + <slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volume audio du média sélectionné"/> </layout_panel> <layout_panel name="mute"> <button name="mute_btn" tool_tip="Couper l'audio sur le média sélectionné"/> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml index b47ed4bd8b..f8ecfbedac 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml @@ -3,6 +3,9 @@ <panel.string name="aspect_ratio_text"> [NUM]:[DEN] </panel.string> + <panel.string name="middle_mouse"> + Bouton central de la souris + </panel.string> <slider label="Angle de vue" name="camera_fov"/> <slider label="Distance" name="camera_offset_scale"/> <text name="heading2"> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml index 7e6e96aa49..64635fbac0 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml @@ -46,6 +46,12 @@ <check_box initial_value="true" label="Jouer l'animation clavier quand vous écrivez" name="play_typing_animation"/> <check_box label="M'envoyer les IM par e-mail une fois déconnecté" name="send_im_to_email"/> <check_box label="Activer l'historique des chats en texte brut" name="plain_text_chat_history"/> + <text name="show_ims_in_label"> + Afficher les IM dans : + </text> + <text name="requires_restart_label"> + (redémarrage requis) + </text> <radio_group name="chat_window" tool_tip="Afficher vos messages instantanés dans plusieurs fenêtres ou dans une seule fenêtre avec plusieurs onglets (redémarrage requis)"> <radio_item label="Plusieurs fenêtres" name="radio" value="0"/> <radio_item label="Onglets" name="radio2" value="1"/> diff --git a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml index cc99b1a07c..c8e76118a1 100644 --- a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml @@ -100,7 +100,7 @@ <combo_box.item label="Original" name="Original"/> </combo_box> <spinner label="Prix : L$" name="Edit Cost"/> - <check_box label="Afficher dans les résultats de recherche" name="search_check" tool_tip="Permettre aux autres résidents de voir cet objet dans les résultats de recherche"/> + <check_box label="Afficher avec la recherche" name="search_check" tool_tip="Permettre aux autres résidents de voir cet objet dans les résultats de recherche"/> <text name="B:"> B : </text> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index c031762d4b..ac78790807 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -23,7 +23,22 @@ Détection du matériel... </string> <string name="StartupLoading"> - Chargement + Chargement de [APP_NAME]... + </string> + <string name="StartupClearingCache"> + Vidage du cache... + </string> + <string name="StartupInitializingTextureCache"> + Initialisation du cache des textures... + </string> + <string name="StartupInitializingVFS"> + Initialisation VFS… + </string> + <string name="ProgressRestoring"> + Restauration... + </string> + <string name="ProgressChangingResolution"> + Changement de la résolution... </string> <string name="Fullbright"> Fullbright (Legacy) @@ -88,6 +103,9 @@ <string name="LoginFailedNoNetwork"> Erreur réseau : impossible d'établir la connexion. Veuillez vérifier votre connexion réseau. </string> + <string name="LoginFailed"> + Échec de la connexion. + </string> <string name="Quit"> Quitter </string> @@ -97,6 +115,24 @@ <string name="AgentLostConnection"> Il y a peut-être des problèmes techniques dans cette région. Veuillez vérifier votre connexion Internet. </string> + <string name="SavingSettings"> + Enregistrement des paramètres... + </string> + <string name="LoggingOut"> + Déconnexion... + </string> + <string name="ShuttingDown"> + Arrêt en cours... + </string> + <string name="YouHaveBeenDisconnected"> + Vous avez été déconnecté de la région où vous étiez. + </string> + <string name="SentToInvalidRegion"> + Vous avez été transféré vers une région non valide. + </string> + <string name="TestingDisconnect"> + Test de déconnexion du client + </string> <string name="TooltipPerson"> Personne </string> @@ -151,6 +187,24 @@ <string name="TooltipAgentUrl"> Cliquez pour afficher le profil de ce résident </string> + <string name="TooltipAgentMute"> + Cliquer pour ignorer ce résident + </string> + <string name="TooltipAgentUnmute"> + Cliquer pour ne plus ignorer ce résident + </string> + <string name="TooltipAgentIM"> + Cliquer pour envoyer un IM à ce résident + </string> + <string name="TooltipAgentPay"> + Cliquer pour payer ce résident + </string> + <string name="TooltipAgentOfferTeleport"> + Cliquer pour proposer une téléportation à ce résident + </string> + <string name="TooltipAgentRequestFriend"> + Cliquer pour demander à ce résident d'être votre ami + </string> <string name="TooltipGroupUrl"> Cliquez pour afficher la description de ce groupe </string> @@ -176,12 +230,31 @@ Cliquez pour exécuter la commande secondlife:// command </string> <string name="CurrentURL" value=" URL actuelle : [CurrentURL]"/> + <string name="TooltipPrice" value="[PRICE] L$-"/> <string name="SLurlLabelTeleport"> Me téléporter vers </string> <string name="SLurlLabelShowOnMap"> Afficher la carte pour </string> + <string name="SLappAgentMute"> + Ignorer + </string> + <string name="SLappAgentUnmute"> + Ne plus ignorer + </string> + <string name="SLappAgentIM"> + IM + </string> + <string name="SLappAgentPay"> + Payer + </string> + <string name="SLappAgentOfferTeleport"> + Proposer une téléportation à + </string> + <string name="SLappAgentRequestFriend"> + Demande d'amitié + </string> <string name="BUTTON_CLOSE_DARWIN"> Fermer (⌘W) </string> @@ -335,6 +408,9 @@ <string name="symbolic link"> lien </string> + <string name="symbolic folder link"> + lien du dossier + </string> <string name="AvatarEditingAppearance"> (Apparence en cours de modification) </string> @@ -849,6 +925,7 @@ Aucun contenu </string> <string name="WornOnAttachmentPoint" value=" (porté sur [ATTACHMENT_POINT])"/> + <string name="ActiveGesture" value="[GESLABEL] (actif)"/> <string name="PermYes"> Oui </string> @@ -948,6 +1025,9 @@ <string name="InvFolder My Outfits"> Mes tenues </string> + <string name="InvFolder Accessories"> + Accessoires + </string> <string name="InvFolder Friends"> Amis </string> @@ -1471,6 +1551,9 @@ <string name="PanelContentsNewScript"> Nouveau script </string> + <string name="PanelContentsTooltip"> + Contenu de l'objet + </string> <string name="BusyModeResponseDefault"> Le résident auquel vous avez envoyé un message est en mode Occupé, ce qui signifie qu'il a demandé à ne pas être dérangé. Votre message restera affiché dans son panneau IM afin qu'il puisse le lire ultérieurement. </string> @@ -2272,7 +2355,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE]. Brillant </string> <string name="Glove Fingers"> - Doigts avec gants + Gants avec doigts </string> <string name="Glove Length"> Longueur des gants @@ -3034,7 +3117,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE]. Cheveux lisses </string> <string name="Socks Length"> - Longueur des chaussettes + Longueur </string> <string name="Soulpatch"> Barbichette @@ -3375,4 +3458,31 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE]. <string name="unread_chat_multiple"> [SOURCES] ont dit quelque chose de nouveau </string> + <string name="paid_you_ldollars"> + [NAME] vous a payé [AMOUNT] L$ + </string> + <string name="giving"> + Giving + </string> + <string name="uploading_costs"> + Chargement des coûts + </string> + <string name="this_costs"> + This costs + </string> + <string name="buying_selected_land"> + Achat du terrain sélectionné + </string> + <string name="this_object_costs"> + This object costs" + </string> + <string name="group_role_everyone"> + Tous + </string> + <string name="group_role_officers"> + Officiers + </string> + <string name="group_role_owners"> + Propriétaires + </string> </strings> diff --git a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml index 0e1e2851e3..1fe6ad25ed 100644 --- a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml +++ b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml @@ -67,7 +67,7 @@ <button name="close_btn" tool_tip="Zoom Back"/> </layout_panel> <layout_panel name="new_window"> - <button name="new_window_btn" tool_tip="URLをブラウザで開く"/> + <button name="new_window_btn" tool_tip="URL をブラウザで開く"/> </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml index 3113a68505..36cf993ef7 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml @@ -16,7 +16,7 @@ (不明) </text> <text name="Only Allow"> - 次のアカウントのアクセス禁止: + 次のアカウントのみアクセスを許可: </text> <check_box label="支払情報登録済" name="limit_payment" tool_tip="未確認の住人の立入を禁止します"/> <check_box label="年齢確認" name="limit_age_verified" tool_tip="年齢確認を済ませていない住人の立入を禁止します。 詳しい情報は [SUPPORT_SITE] をご覧下さい。"/> |