diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2011-11-18 12:54:15 -0500 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2011-11-18 12:54:15 -0500 |
commit | 7ee4c04365407920fb938311e3c237f7af687cc4 (patch) | |
tree | 8c11ca25e7381555c16be9b227a8c960fb8c4430 /indra | |
parent | e0759c82be89963c105fbc906ce219d1e922a636 (diff) | |
parent | 4bcdcd02fb7e83a2754084f2fb599b56ea6c8743 (diff) |
merge
Diffstat (limited to 'indra')
76 files changed, 411 insertions, 920 deletions
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index b31fd1f8ae..b50405421d 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 3; const S32 LL_VERSION_MINOR = 2; -const S32 LL_VERSION_PATCH = 3; +const S32 LL_VERSION_PATCH = 4; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; diff --git a/indra/llui/llsdparam.cpp b/indra/llui/llsdparam.cpp index 6fa90933a4..0e29873bb0 100644 --- a/indra/llui/llsdparam.cpp +++ b/indra/llui/llsdparam.cpp @@ -36,6 +36,8 @@ static LLInitParam::Parser::parser_write_func_map_t sWriteFuncs; static LLInitParam::Parser::parser_inspect_func_map_t sInspectFuncs; static const LLSD NO_VALUE_MARKER; +LLFastTimer::DeclareTimer FTM_SD_PARAM_ADAPTOR("LLSD to LLInitParam conversion"); + // // LLParamSDParser // diff --git a/indra/llui/llsdparam.h b/indra/llui/llsdparam.h index c1cfa98399..3dfc6d020e 100644 --- a/indra/llui/llsdparam.h +++ b/indra/llui/llsdparam.h @@ -91,6 +91,8 @@ private: LLSD* mCurWriteSD; }; + +extern LLFastTimer::DeclareTimer FTM_SD_PARAM_ADAPTOR; template<typename T> class LLSDParamAdapter : public T { @@ -98,8 +100,11 @@ public: LLSDParamAdapter() {} LLSDParamAdapter(const LLSD& sd) { + LLFastTimer _(FTM_SD_PARAM_ADAPTOR); LLParamSDParser parser; - parser.readSD(sd, *this); + // don't spam for implicit parsing of LLSD, as we want to allow arbitrary freeform data and ignore most of it + bool parse_silently = true; + parser.readSD(sd, *this, parse_silently); } operator LLSD() const diff --git a/indra/llui/llurlaction.cpp b/indra/llui/llurlaction.cpp index 42b779bd28..fd9b3d9a6d 100644 --- a/indra/llui/llurlaction.cpp +++ b/indra/llui/llurlaction.cpp @@ -33,28 +33,28 @@ #include "llurlregistry.h" // global state for the callback functions -void (*LLUrlAction::sOpenURLCallback) (const std::string& url) = NULL; -void (*LLUrlAction::sOpenURLInternalCallback) (const std::string& url) = NULL; -void (*LLUrlAction::sOpenURLExternalCallback) (const std::string& url) = NULL; -bool (*LLUrlAction::sExecuteSLURLCallback) (const std::string& url) = NULL; +LLUrlAction::url_callback_t LLUrlAction::sOpenURLCallback; +LLUrlAction::url_callback_t LLUrlAction::sOpenURLInternalCallback; +LLUrlAction::url_callback_t LLUrlAction::sOpenURLExternalCallback; +LLUrlAction::execute_url_callback_t LLUrlAction::sExecuteSLURLCallback; -void LLUrlAction::setOpenURLCallback(void (*cb) (const std::string& url)) +void LLUrlAction::setOpenURLCallback(url_callback_t cb) { sOpenURLCallback = cb; } -void LLUrlAction::setOpenURLInternalCallback(void (*cb) (const std::string& url)) +void LLUrlAction::setOpenURLInternalCallback(url_callback_t cb) { sOpenURLInternalCallback = cb; } -void LLUrlAction::setOpenURLExternalCallback(void (*cb) (const std::string& url)) +void LLUrlAction::setOpenURLExternalCallback(url_callback_t cb) { sOpenURLExternalCallback = cb; } -void LLUrlAction::setExecuteSLURLCallback(bool (*cb) (const std::string& url)) +void LLUrlAction::setExecuteSLURLCallback(execute_url_callback_t cb) { sExecuteSLURLCallback = cb; } @@ -63,7 +63,7 @@ void LLUrlAction::openURL(std::string url) { if (sOpenURLCallback) { - (*sOpenURLCallback)(url); + sOpenURLCallback(url); } } @@ -71,7 +71,7 @@ void LLUrlAction::openURLInternal(std::string url) { if (sOpenURLInternalCallback) { - (*sOpenURLInternalCallback)(url); + sOpenURLInternalCallback(url); } } @@ -79,7 +79,7 @@ void LLUrlAction::openURLExternal(std::string url) { if (sOpenURLExternalCallback) { - (*sOpenURLExternalCallback)(url); + sOpenURLExternalCallback(url); } } @@ -87,18 +87,18 @@ void LLUrlAction::executeSLURL(std::string url) { if (sExecuteSLURLCallback) { - (*sExecuteSLURLCallback)(url); + sExecuteSLURLCallback(url); } } void LLUrlAction::clickAction(std::string url) { // Try to handle as SLURL first, then http Url - if ( (sExecuteSLURLCallback) && !(*sExecuteSLURLCallback)(url) ) + if ( (sExecuteSLURLCallback) && !sExecuteSLURLCallback(url) ) { if (sOpenURLCallback) { - (*sOpenURLCallback)(url); + sOpenURLCallback(url); } } } diff --git a/indra/llui/llurlaction.h b/indra/llui/llurlaction.h index 0132dbaaf0..c34960b826 100644 --- a/indra/llui/llurlaction.h +++ b/indra/llui/llurlaction.h @@ -29,6 +29,7 @@ #define LL_LLURLACTION_H #include <string> +#include <boost/function.hpp> /// /// The LLUrlAction class provides a number of static functions that @@ -77,17 +78,21 @@ public: static void showProfile(std::string url); /// specify the callbacks to enable this class's functionality - static void setOpenURLCallback(void (*cb) (const std::string& url)); - static void setOpenURLInternalCallback(void (*cb) (const std::string& url)); - static void setOpenURLExternalCallback(void (*cb) (const std::string& url)); - static void setExecuteSLURLCallback(bool (*cb) (const std::string& url)); + typedef boost::function<void (const std::string&)> url_callback_t; + typedef boost::function<bool(const std::string& url)> execute_url_callback_t; + + static void setOpenURLCallback(url_callback_t cb); + static void setOpenURLInternalCallback(url_callback_t cb); + static void setOpenURLExternalCallback(url_callback_t cb); + static void setExecuteSLURLCallback(execute_url_callback_t cb); private: // callbacks for operations we can perform on Urls - static void (*sOpenURLCallback) (const std::string& url); - static void (*sOpenURLInternalCallback) (const std::string& url); - static void (*sOpenURLExternalCallback) (const std::string& url); - static bool (*sExecuteSLURLCallback) (const std::string& url); + static url_callback_t sOpenURLCallback; + static url_callback_t sOpenURLInternalCallback; + static url_callback_t sOpenURLExternalCallback; + + static execute_url_callback_t sExecuteSLURLCallback; }; #endif diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index e41aa9820f..da2222ad51 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -63,6 +63,9 @@ extern BOOL gDebugWindowProc; const S32 MAX_NUM_RESOLUTIONS = 200; +const S32 MIN_WINDOW_WIDTH = 1024; +const S32 MIN_WINDOW_HEIGHT = 768; + // static variable for ATI mouse cursor crash work-around: static bool ATIbug = false; @@ -1843,11 +1846,15 @@ void LLWindowSDL::gatherInput() break; case SDL_VIDEORESIZE: // *FIX: handle this? + { llinfos << "Handling a resize event: " << event.resize.w << "x" << event.resize.h << llendl; + S32 width = llmax(event.resize.w, MIN_WINDOW_WIDTH); + S32 height = llmax(event.resize.h, MIN_WINDOW_HEIGHT); + // *FIX: I'm not sure this is necessary! - mWindow = SDL_SetVideoMode(event.resize.w, event.resize.h, 32, mSDLFlags); + mWindow = SDL_SetVideoMode(width, height, 32, mSDLFlags); if (!mWindow) { // *FIX: More informative dialog? @@ -1861,9 +1868,9 @@ void LLWindowSDL::gatherInput() break; } - mCallbacks->handleResize(this, event.resize.w, event.resize.h ); + mCallbacks->handleResize(this, width, height); break; - + } case SDL_ACTIVEEVENT: if (event.active.state & SDL_APPINPUTFOCUS) { diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index ff9cf3199e..ba05f6288b 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -207,7 +207,6 @@ set(viewer_SOURCE_FILES llfloaterland.cpp llfloaterlandholdings.cpp llfloatermap.cpp - llfloatermediabrowser.cpp llfloatermediasettings.cpp llfloatermemleak.cpp llfloatermodelpreview.cpp @@ -781,7 +780,6 @@ set(viewer_HEADER_FILES llfloaterland.h llfloaterlandholdings.h llfloatermap.h - llfloatermediabrowser.h llfloatermediasettings.h llfloatermemleak.h llfloatermodelpreview.h diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index c937f604fc..8bf4d94059 100755 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -847,9 +847,9 @@ bool LLAppViewer::init() LLWeb::initClass(); // do this after LLUI // Provide the text fields with callbacks for opening Urls - LLUrlAction::setOpenURLCallback(&LLWeb::loadURL); - LLUrlAction::setOpenURLInternalCallback(&LLWeb::loadURLInternal); - LLUrlAction::setOpenURLExternalCallback(&LLWeb::loadURLExternal); + LLUrlAction::setOpenURLCallback(boost::bind(&LLWeb::loadURL, _1, LLStringUtil::null, LLStringUtil::null)); + LLUrlAction::setOpenURLInternalCallback(boost::bind(&LLWeb::loadURLInternal, _1, LLStringUtil::null, LLStringUtil::null)); + LLUrlAction::setOpenURLExternalCallback(boost::bind(&LLWeb::loadURLExternal, _1, true, LLStringUtil::null)); LLUrlAction::setExecuteSLURLCallback(&LLURLDispatcher::dispatchFromTextEditor); // Let code in llui access the viewer help floater diff --git a/indra/newview/llfloaterhelpbrowser.h b/indra/newview/llfloaterhelpbrowser.h index 80b0ecc06b..bf4f544a14 100644 --- a/indra/newview/llfloaterhelpbrowser.h +++ b/indra/newview/llfloaterhelpbrowser.h @@ -1,5 +1,5 @@ /** - * @file llfloatermediabrowser.h + * @file llfloaterhelpbrowser.h * @brief HTML Help floater - uses embedded web browser control * * $LicenseInfo:firstyear=2006&license=viewerlgpl$ diff --git a/indra/newview/llfloatermediabrowser.cpp b/indra/newview/llfloatermediabrowser.cpp deleted file mode 100644 index 7a670dd90c..0000000000 --- a/indra/newview/llfloatermediabrowser.cpp +++ /dev/null @@ -1,462 +0,0 @@ -/** - * @file llfloatermediabrowser.cpp - * @brief media browser floater - uses embedded media browser control - * - * $LicenseInfo:firstyear=2006&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llfloatermediabrowser.h" - -#include "llfloaterreg.h" -#include "llparcel.h" -#include "llpluginclassmedia.h" -#include "lluictrlfactory.h" -#include "llmediactrl.h" -#include "llviewerwindow.h" -#include "llviewercontrol.h" -#include "llviewerparcelmgr.h" -#include "llweb.h" -#include "llui.h" -#include "roles_constants.h" - -#include "llurlhistory.h" -#include "llmediactrl.h" -#include "llviewermedia.h" -#include "llviewerparcelmedia.h" -#include "llcombobox.h" -#include "llwindow.h" -#include "lllayoutstack.h" -#include "llcheckboxctrl.h" - -#include "llnotifications.h" - -// TEMP -#include "llsdutil.h" - -LLFloaterMediaBrowser::LLFloaterMediaBrowser(const LLSD& key) - : LLFloater(key) -{ -} - -//static -void LLFloaterMediaBrowser::create(const std::string &url, const std::string& target, const std::string& uuid) -{ - lldebugs << "url = " << url << ", target = " << target << ", uuid = " << uuid << llendl; - - std::string tag = target; - - if(target.empty() || target == "_blank") - { - if(!uuid.empty()) - { - tag = uuid; - } - else - { - // create a unique tag for this instance - LLUUID id; - id.generate(); - tag = id.asString(); - } - } - - S32 browser_window_limit = gSavedSettings.getS32("MediaBrowserWindowLimit"); - - if(LLFloaterReg::findInstance("media_browser", tag) != NULL) - { - // There's already a media browser for this tag, so we won't be opening a new window. - } - else if(browser_window_limit != 0) - { - // showInstance will open a new window. Figure out how many media browsers are already open, - // and close the least recently opened one if this will put us over the limit. - - LLFloaterReg::const_instance_list_t &instances = LLFloaterReg::getFloaterList("media_browser"); - lldebugs << "total instance count is " << instances.size() << llendl; - - for(LLFloaterReg::const_instance_list_t::const_iterator iter = instances.begin(); iter != instances.end(); iter++) - { - lldebugs << " " << (*iter)->getKey() << llendl; - } - - if(instances.size() >= (size_t)browser_window_limit) - { - // Destroy the least recently opened instance - (*instances.begin())->closeFloater(); - } - } - - LLFloaterMediaBrowser *browser = dynamic_cast<LLFloaterMediaBrowser*> (LLFloaterReg::showInstance("media_browser", tag)); - llassert(browser); - if(browser) - { - browser->mUUID = uuid; - - // tell the browser instance to load the specified URL - browser->openMedia(url, target); - LLViewerMedia::proxyWindowOpened(target, uuid); - } -} - -//static -void LLFloaterMediaBrowser::closeRequest(const std::string &uuid) -{ - LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("media_browser"); - lldebugs << "instance list size is " << inst_list.size() << ", incoming uuid is " << uuid << llendl; - for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter) - { - LLFloaterMediaBrowser* i = dynamic_cast<LLFloaterMediaBrowser*>(*iter); - lldebugs << " " << i->mUUID << llendl; - if (i && i->mUUID == uuid) - { - i->closeFloater(false); - return; - } - } -} - -//static -void LLFloaterMediaBrowser::geometryChanged(const std::string &uuid, S32 x, S32 y, S32 width, S32 height) -{ - LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("media_browser"); - lldebugs << "instance list size is " << inst_list.size() << ", incoming uuid is " << uuid << llendl; - for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter) - { - LLFloaterMediaBrowser* i = dynamic_cast<LLFloaterMediaBrowser*>(*iter); - lldebugs << " " << i->mUUID << llendl; - if (i && i->mUUID == uuid) - { - i->geometryChanged(x, y, width, height); - return; - } -} -} - -void LLFloaterMediaBrowser::geometryChanged(S32 x, S32 y, S32 width, S32 height) -{ - // Make sure the layout of the browser control is updated, so this calculation is correct. - LLLayoutStack::updateClass(); - - // TODO: need to adjust size and constrain position to make sure floaters aren't moved outside the window view, etc. - LLCoordWindow window_size; - getWindow()->getSize(&window_size); - - // Adjust width and height for the size of the chrome on the Media Browser window. - width += getRect().getWidth() - mBrowser->getRect().getWidth(); - height += getRect().getHeight() - mBrowser->getRect().getHeight(); - - LLRect geom; - geom.setOriginAndSize(x, window_size.mY - (y + height), width, height); - - lldebugs << "geometry change: " << geom << llendl; - - handleReshape(geom,false); -} - - -void LLFloaterMediaBrowser::draw() -{ - getChildView("go")->setEnabled(!mAddressCombo->getValue().asString().empty()); - LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); - if(parcel) - { - getChildView("parcel_owner_controls")->setVisible( LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_MEDIA)); - getChildView("assign")->setEnabled(!mAddressCombo->getValue().asString().empty()); - } - bool show_time_controls = false; - bool media_playing = false; - if(mBrowser) - { - LLPluginClassMedia* media_plugin = mBrowser->getMediaPlugin(); - if(media_plugin) - { - show_time_controls = media_plugin->pluginSupportsMediaTime(); - media_playing = media_plugin->getStatus() == LLPluginClassMediaOwner::MEDIA_PLAYING; - } - } - getChildView("rewind")->setVisible( show_time_controls); - getChildView("play")->setVisible( show_time_controls && ! media_playing); - getChildView("pause")->setVisible( show_time_controls && media_playing); - getChildView("stop")->setVisible( show_time_controls); - getChildView("seek")->setVisible( show_time_controls); - - getChildView("play")->setEnabled(! media_playing); - getChildView("stop")->setEnabled(media_playing); - - getChildView("back")->setEnabled(mBrowser->canNavigateBack()); - getChildView("forward")->setEnabled(mBrowser->canNavigateForward()); - - LLFloater::draw(); -} - -BOOL LLFloaterMediaBrowser::postBuild() -{ - mBrowser = getChild<LLMediaCtrl>("browser"); - mBrowser->addObserver(this); - - mAddressCombo = getChild<LLComboBox>("address"); - mAddressCombo->setCommitCallback(onEnterAddress, this); - mAddressCombo->sortByName(); - - childSetAction("back", onClickBack, this); - childSetAction("forward", onClickForward, this); - childSetAction("reload", onClickRefresh, this); - childSetAction("rewind", onClickRewind, this); - childSetAction("play", onClickPlay, this); - childSetAction("stop", onClickStop, this); - childSetAction("pause", onClickPlay, this); - childSetAction("seek", onClickSeek, this); - childSetAction("go", onClickGo, this); - childSetAction("close", onClickClose, this); - childSetAction("open_browser", onClickOpenWebBrowser, this); - childSetAction("assign", onClickAssign, this); - - buildURLHistory(); - - return TRUE; -} - -void LLFloaterMediaBrowser::buildURLHistory() -{ - LLCtrlListInterface* url_list = childGetListInterface("address"); - if (url_list) - { - url_list->operateOnAll(LLCtrlListInterface::OP_DELETE); - } - - // Get all of the entries in the "browser" collection - LLSD browser_history = LLURLHistory::getURLHistory("browser"); - - LLSD::array_iterator iter_history = - browser_history.beginArray(); - LLSD::array_iterator end_history = - browser_history.endArray(); - for(; iter_history != end_history; ++iter_history) - { - std::string url = (*iter_history).asString(); - if(! url.empty()) - url_list->addSimpleElement(url); - } - - // initialize URL history in the plugin - if(mBrowser && mBrowser->getMediaPlugin()) - { - mBrowser->getMediaPlugin()->initializeUrlHistory(browser_history); - } -} - -std::string LLFloaterMediaBrowser::getSupportURL() -{ - return getString("support_page_url"); -} - -//virtual -void LLFloaterMediaBrowser::onClose(bool app_quitting) -{ - LLViewerMedia::proxyWindowClosed(mUUID); - //setVisible(FALSE); - destroy(); -} - -void LLFloaterMediaBrowser::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event) -{ - if(event == MEDIA_EVENT_LOCATION_CHANGED) - { - setCurrentURL(self->getLocation()); - } - else if(event == MEDIA_EVENT_NAVIGATE_COMPLETE) - { - // This is the event these flags are sent with. - getChildView("back")->setEnabled(self->getHistoryBackAvailable()); - getChildView("forward")->setEnabled(self->getHistoryForwardAvailable()); - } - else if(event == MEDIA_EVENT_CLOSE_REQUEST) - { - // The browser instance wants its window closed. - closeFloater(); - } - else if(event == MEDIA_EVENT_GEOMETRY_CHANGE) - { - geometryChanged(self->getGeometryX(), self->getGeometryY(), self->getGeometryWidth(), self->getGeometryHeight()); - } -} - -void LLFloaterMediaBrowser::setCurrentURL(const std::string& url) -{ - mCurrentURL = url; - - mAddressCombo->remove(mCurrentURL); - mAddressCombo->add(mCurrentURL); - mAddressCombo->selectByValue(mCurrentURL); - - // Serialize url history - LLURLHistory::removeURL("browser", mCurrentURL); - LLURLHistory::addURL("browser", mCurrentURL); - - getChildView("back")->setEnabled(mBrowser->canNavigateBack()); - getChildView("forward")->setEnabled(mBrowser->canNavigateForward()); - getChildView("reload")->setEnabled(TRUE); -} - -//static -void LLFloaterMediaBrowser::onEnterAddress(LLUICtrl* ctrl, void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - self->mBrowser->navigateTo(self->mAddressCombo->getValue().asString()); -} - -//static -void LLFloaterMediaBrowser::onClickRefresh(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - if( self->mBrowser->getMediaPlugin() && self->mBrowser->getMediaPlugin()->pluginSupportsMediaBrowser()) - { - bool ignore_cache = true; - self->mBrowser->getMediaPlugin()->browse_reload( ignore_cache ); - } - else - { - self->mBrowser->navigateTo(self->mCurrentURL); - } -} - -//static -void LLFloaterMediaBrowser::onClickForward(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - self->mBrowser->navigateForward(); -} - -//static -void LLFloaterMediaBrowser::onClickBack(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - self->mBrowser->navigateBack(); -} - -//static -void LLFloaterMediaBrowser::onClickGo(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - self->mBrowser->navigateTo(self->mAddressCombo->getValue().asString()); -} - -//static -void LLFloaterMediaBrowser::onClickClose(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - self->closeFloater(); -} - -//static -void LLFloaterMediaBrowser::onClickOpenWebBrowser(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - std::string url = self->mCurrentURL.empty() ? - self->mBrowser->getHomePageUrl() : - self->mCurrentURL; - LLWeb::loadURLExternal(url); -} - -void LLFloaterMediaBrowser::onClickAssign(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); - if (!parcel) - { - return; - } - std::string media_url = self->mAddressCombo->getValue().asString(); - LLStringUtil::trim(media_url); - - if(parcel->getMediaType() != "text/html") - { - parcel->setMediaURL(media_url); - parcel->setMediaCurrentURL(media_url); - parcel->setMediaType(std::string("text/html")); - LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate( parcel, true ); - LLViewerParcelMedia::sendMediaNavigateMessage(media_url); - LLViewerParcelMedia::stop(); - // LLViewerParcelMedia::update( parcel ); - } - LLViewerParcelMedia::sendMediaNavigateMessage(media_url); -} -//static -void LLFloaterMediaBrowser::onClickRewind(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - if(self->mBrowser->getMediaPlugin()) - self->mBrowser->getMediaPlugin()->start(-2.0f); -} -//static -void LLFloaterMediaBrowser::onClickPlay(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - LLPluginClassMedia* plugin = self->mBrowser->getMediaPlugin(); - if(plugin) - { - if(plugin->getStatus() == LLPluginClassMediaOwner::MEDIA_PLAYING) - { - plugin->pause(); - } - else - { - plugin->start(); - } - } -} -//static -void LLFloaterMediaBrowser::onClickStop(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - if(self->mBrowser->getMediaPlugin()) - self->mBrowser->getMediaPlugin()->stop(); -} -//static -void LLFloaterMediaBrowser::onClickSeek(void* user_data) -{ - LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; - - if(self->mBrowser->getMediaPlugin()) - self->mBrowser->getMediaPlugin()->start(2.0f); -} -void LLFloaterMediaBrowser::openMedia(const std::string& media_url, const std::string& target) -{ - mBrowser->setHomePageUrl(media_url); - mBrowser->setTarget(target); - mBrowser->navigateTo(media_url); - setCurrentURL(media_url); -} - - diff --git a/indra/newview/llfloatermediabrowser.h b/indra/newview/llfloatermediabrowser.h deleted file mode 100644 index 152d221a01..0000000000 --- a/indra/newview/llfloatermediabrowser.h +++ /dev/null @@ -1,86 +0,0 @@ -/** - * @file llfloatermediabrowser.h - * @brief media browser floater - uses embedded media browser control - * - * $LicenseInfo:firstyear=2006&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#ifndef LL_LLFLOATERMEDIABROWSER_H -#define LL_LLFLOATERMEDIABROWSER_H - -#include "llfloater.h" -#include "llmediactrl.h" - - -class LLComboBox; -class LLMediaCtrl; -class LLNotification; - -class LLFloaterMediaBrowser : - public LLFloater, - public LLViewerMediaObserver -{ -public: - LOG_CLASS(LLFloaterMediaBrowser); - LLFloaterMediaBrowser(const LLSD& key); - - static void create(const std::string &url, const std::string& target, const std::string& uuid = LLStringUtil::null); - - static void closeRequest(const std::string &uuid); - static void geometryChanged(const std::string &uuid, S32 x, S32 y, S32 width, S32 height); - void geometryChanged(S32 x, S32 y, S32 width, S32 height); - - /*virtual*/ BOOL postBuild(); - /*virtual*/ void onClose(bool app_quitting); - /*virtual*/ void draw(); - - // inherited from LLViewerMediaObserver - /*virtual*/ void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event); - - void openMedia(const std::string& media_url, const std::string& target); - void buildURLHistory(); - std::string getSupportURL(); - void setCurrentURL(const std::string& url); - - static void onEnterAddress(LLUICtrl* ctrl, void* user_data); - static void onClickRefresh(void* user_data); - static void onClickBack(void* user_data); - static void onClickForward(void* user_data); - static void onClickGo(void* user_data); - static void onClickClose(void* user_data); - static void onClickOpenWebBrowser(void* user_data); - static void onClickAssign(void* user_data); - static void onClickRewind(void* user_data); - static void onClickPlay(void* user_data); - static void onClickStop(void* user_data); - static void onClickSeek(void* user_data); - -private: - LLMediaCtrl* mBrowser; - LLComboBox* mAddressCombo; - std::string mCurrentURL; - boost::shared_ptr<LLNotification> mCurNotification; - std::string mUUID; -}; - -#endif // LL_LLFLOATERMEDIABROWSER_H - diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 18c3f76826..acbec531b6 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -1128,19 +1128,78 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open) { // Make sure the floater is not minimized (STORM-438). if (active_inv_floaterp && active_inv_floaterp->isMinimized()) + { active_inv_floaterp->setMinimized(FALSE); + } + } + else if (auto_open) + { + floater_inventory->openFloater(); - return res; + res = sidepanel_inventory->getActivePanel(); } + + return res; +} + +//static +void LLInventoryPanel::openInventoryPanelAndSetSelection(BOOL auto_open, const LLUUID& obj_id) +{ + LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(auto_open); + + if (active_panel) + { + LL_DEBUGS("Messaging") << "Highlighting" << obj_id << LL_ENDL; - // C. If no panels are open and we don't want to force open a panel, then just abort out. - if (!auto_open) return NULL; - - // D. Open the inventory side panel floater and use that. - floater_inventory->openFloater(); - return sidepanel_inventory->getActivePanel(); + LLViewerInventoryItem * item = gInventory.getItem(obj_id); + LLViewerInventoryCategory * cat = gInventory.getCategory(obj_id); + + bool in_inbox = false; + bool in_outbox = false; + + LLViewerInventoryCategory * parent_cat = NULL; + + if (item) + { + parent_cat = gInventory.getCategory(item->getParentUUID()); + } + else if (cat) + { + parent_cat = gInventory.getCategory(cat->getParentUUID()); + } + + if (parent_cat) + { + in_inbox = (LLFolderType::FT_INBOX == parent_cat->getPreferredType()); + in_outbox = (LLFolderType::FT_OUTBOX == parent_cat->getPreferredType()); + } + + if (in_inbox || in_outbox) + { + LLSidepanelInventory * sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory"); + LLInventoryPanel * inventory_panel = NULL; + + if (in_inbox) + { + sidepanel_inventory->openInbox(); + inventory_panel = sidepanel_inventory->getInboxPanel(); + } + else + { + sidepanel_inventory->openOutbox(); + inventory_panel = sidepanel_inventory->getOutboxPanel(); + } - return NULL; + if (inventory_panel) + { + inventory_panel->setSelection(obj_id, TAKE_FOCUS_YES); + } + } + else + { + active_panel->setSelection(obj_id, TAKE_FOCUS_YES); + } + } } void LLInventoryPanel::addHideFolderType(LLFolderType::EType folder_type) diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h index 8635ebc5c8..2a24327115 100644 --- a/indra/newview/llinventorypanel.h +++ b/indra/newview/llinventorypanel.h @@ -175,6 +175,8 @@ public: // Find whichever inventory panel is active / on top. // "Auto_open" determines if we open an inventory panel if none are open. static LLInventoryPanel *getActiveInventoryPanel(BOOL auto_open = TRUE); + + static void openInventoryPanelAndSetSelection(BOOL auto_open, const LLUUID& obj_id); protected: void openStartFolderOrMyInventory(); // open the first level of inventory diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 58ba0219cc..74fa5d350a 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -57,7 +57,6 @@ #include "llcheckboxctrl.h" #include "llnotifications.h" #include "lllineeditor.h" -#include "llfloatermediabrowser.h" #include "llfloaterwebcontent.h" #include "llwindowshade.h" @@ -1082,26 +1081,6 @@ void LLMediaCtrl::onPopup(const LLSD& notification, const LLSD& response) { if (response["open"]) { - // name of default floater to open - std::string floater_name = "media_browser"; - - // look for parent floater name - if ( gFloaterView ) - { - if ( gFloaterView->getParentFloater(this) ) - { - floater_name = gFloaterView->getParentFloater(this)->getInstanceName(); - } - else - { - lldebugs << "No gFloaterView->getParentFloater(this) for onPopuup()" << llendl; - }; - } - else - { - lldebugs << "No gFloaterView for onPopuup()" << llendl; - }; - LLWeb::loadURL(notification["payload"]["url"], notification["payload"]["target"], notification["payload"]["uuid"]); } else diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index fc264db5af..146bcbe47b 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -54,7 +54,6 @@ #include "llworldmapmessage.h" #include "llappviewer.h" #include "llviewercontrol.h" -#include "llfloatermediabrowser.h" #include "llweb.h" #include "llhints.h" diff --git a/indra/newview/llpanelmarketplaceinboxinventory.cpp b/indra/newview/llpanelmarketplaceinboxinventory.cpp index df89adb8da..678e4f2843 100644 --- a/indra/newview/llpanelmarketplaceinboxinventory.cpp +++ b/indra/newview/llpanelmarketplaceinboxinventory.cpp @@ -189,16 +189,16 @@ void LLInboxFolderViewFolder::draw() void LLInboxFolderViewFolder::selectItem() { - LLFolderViewFolder::selectItem(); - deFreshify(); + + LLFolderViewFolder::selectItem(); } void LLInboxFolderViewFolder::toggleOpen() { - LLFolderViewFolder::toggleOpen(); - deFreshify(); + + LLFolderViewFolder::toggleOpen(); } void LLInboxFolderViewFolder::computeFreshness() @@ -270,7 +270,9 @@ BOOL LLInboxFolderViewItem::addToFolder(LLFolderViewFolder* folder, LLFolderView BOOL LLInboxFolderViewItem::handleDoubleClick(S32 x, S32 y, MASK mask) { - return TRUE; + deFreshify(); + + return LLFolderViewItem::handleDoubleClick(x, y, mask); } // virtual @@ -290,9 +292,9 @@ void LLInboxFolderViewItem::draw() void LLInboxFolderViewItem::selectItem() { - LLFolderViewItem::selectItem(); - deFreshify(); + + LLFolderViewItem::selectItem(); } void LLInboxFolderViewItem::computeFreshness() diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 04e78e04e3..50dc66ed7c 100755 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -134,7 +134,10 @@ public: LLFloater* picks_floater = LLFloaterReg::showInstance("picks"); LLPanelPicks* picks = picks_floater->findChild<LLPanelPicks>("panel_picks"); - picks->createNewPick(); + if (picks) + { + picks->createNewPick(); + } } void editPick(LLPickData* pick_info) @@ -147,7 +150,7 @@ public: params["snapshot_id"] = pick_info->snapshot_id; params["pick_name"] = pick_info->name; params["pick_desc"] = pick_info->desc; - LLFloaterSidePanelContainer::showPanel("my_profile", params); + LLFloaterSidePanelContainer::showPanel("picks", params); } /*virtual*/ void processProperties(void* data, EAvatarProcessorType type) @@ -251,7 +254,10 @@ public: LLFloater* picks_floater = LLFloaterReg::showInstance("picks"); LLPanelPicks* picks = picks_floater->findChild<LLPanelPicks>("panel_picks"); - picks->createNewClassified(); + if (picks) + { + picks->createNewClassified(); + } } void openClassified(LLAvatarClassifiedInfo* c_info) @@ -269,7 +275,7 @@ public: params["classified_name"] = c_info->name; params["classified_desc"] = c_info->description; params["from_search"] = true; - LLFloaterSidePanelContainer::showPanel("people", "panel_profile_view", params); + LLFloaterSidePanelContainer::showPanel("picks", params); } else if (mRequestVerb == "edit") { diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp index 91f8035556..9d069c3996 100644 --- a/indra/newview/llsidepanelinventory.cpp +++ b/indra/newview/llsidepanelinventory.cpp @@ -450,6 +450,24 @@ void LLSidepanelInventory::enableOutbox(bool enabled) } } +void LLSidepanelInventory::openInbox() +{ + if (mInboxEnabled) + { + getChild<LLButton>(INBOX_BUTTON_NAME)->setToggleState(true); + onToggleInboxBtn(); + } +} + +void LLSidepanelInventory::openOutbox() +{ + if (mOutboxEnabled) + { + getChild<LLButton>(OUTBOX_BUTTON_NAME)->setToggleState(true); + onToggleOutboxBtn(); + } +} + void LLSidepanelInventory::onInboxChanged(const LLUUID& inbox_id) { // Trigger a load of the entire inbox so we always know the contents and their creation dates for sorting diff --git a/indra/newview/llsidepanelinventory.h b/indra/newview/llsidepanelinventory.h index 4e34926a4b..2c6f807013 100644 --- a/indra/newview/llsidepanelinventory.h +++ b/indra/newview/llsidepanelinventory.h @@ -58,6 +58,9 @@ public: /*virtual*/ void onOpen(const LLSD& key); LLInventoryPanel* getActivePanel(); // Returns an active inventory panel, if any. + LLInventoryPanel* getInboxPanel() const { return mInventoryPanelInbox; } + LLInventoryPanel* getOutboxPanel() const { return mInventoryPanelOutbox; } + LLPanelMainInventory* getMainInventoryPanel() const { return mPanelMainInventory; } BOOL isMainInventoryPanelActive() const; @@ -77,6 +80,9 @@ public: void enableInbox(bool enabled); void enableOutbox(bool enabled); + void openInbox(); + void openOutbox(); + bool isInboxEnabled() const { return mInboxEnabled; } bool isOutboxEnabled() const { return mOutboxEnabled; } diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 9d8d1be0f5..66187f6b42 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -2034,7 +2034,7 @@ bool idle_startup() show_debug_menus(); // Debug menu visiblity and First Use trigger // If we've got a startup URL, dispatch it - LLStartUp::dispatchURL(); + //LLStartUp::dispatchURL(); // Retrieve information about the land data // (just accessing this the first time will fetch it, @@ -2694,12 +2694,12 @@ void LLStartUp::cleanupNameCache() bool LLStartUp::dispatchURL() { // ok, if we've gotten this far and have a startup URL - if (!getStartSLURL().isValid()) + if (!getStartSLURL().isValid()) { return false; } - if(getStartSLURL().getType() != LLSLURL::APP) - { + if(getStartSLURL().getType() != LLSLURL::APP) + { // If we started with a location, but we're already // at that location, don't pop dialogs open. diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 74c4f6d2dc..273bf822bc 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -64,7 +64,6 @@ #include "llfloatergroups.h" #include "llfloaterhardwaresettings.h" #include "llfloaterhelpbrowser.h" -#include "llfloatermediabrowser.h" #include "llfloaterwebcontent.h" #include "llfloatermediasettings.h" #include "llfloaterhud.h" @@ -226,7 +225,6 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("land_holdings", "floater_land_holdings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLandHoldings>); LLFloaterReg::add("mem_leaking", "floater_mem_leaking.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMemLeak>); - LLFloaterReg::add("media_browser", "floater_media_browser.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMediaBrowser>); LLFloaterReg::add("media_settings", "floater_media_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMediaSettings>); LLFloaterReg::add("message_critical", "floater_critical.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTOS>); LLFloaterReg::add("message_tos", "floater_tos.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTOS>); diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 2858330597..67c8a4b902 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -69,7 +69,6 @@ #include "llwindow.h" -#include "llfloatermediabrowser.h" // for handling window close requests and geometry change requests in media browser windows. #include "llfloaterwebcontent.h" // for handling window close requests and geometry change requests in media browser windows. #include <boost/bind.hpp> // for SkinFolder listener @@ -3374,7 +3373,6 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla { // This close request is directed at another instance pass_through = false; - LLFloaterMediaBrowser::closeRequest(uuid); LLFloaterWebContent::closeRequest(uuid); } } @@ -3394,7 +3392,6 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla { // This request is directed at another instance pass_through = false; - LLFloaterMediaBrowser::geometryChanged(uuid, plugin->getGeometryX(), plugin->getGeometryY(), plugin->getGeometryWidth(), plugin->getGeometryHeight()); LLFloaterWebContent::geometryChanged(uuid, plugin->getGeometryX(), plugin->getGeometryY(), plugin->getGeometryWidth(), plugin->getGeometryHeight()); } } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 7cae19a1d2..dca5cdd06d 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1256,14 +1256,7 @@ void open_inventory_offer(const uuid_vec_t& objects, const std::string& from_nam const BOOL auto_open = gSavedSettings.getBOOL("ShowInInventory") && // don't open if showininventory is false !from_name.empty(); // don't open if it's not from anyone. - LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(auto_open); - if(active_panel) - { - LL_DEBUGS("Messaging") << "Highlighting" << obj_id << LL_ENDL; - LLFocusableElement* focus_ctrl = gFocusMgr.getKeyboardFocus(); - active_panel->setSelection(obj_id, TAKE_FOCUS_NO); - gFocusMgr.setKeyboardFocus(focus_ctrl); - } + LLInventoryPanel::openInventoryPanelAndSetSelection(auto_open, obj_id); } } diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp index b2f35892d0..d2d48dc68f 100644 --- a/indra/newview/llweb.cpp +++ b/indra/newview/llweb.cpp @@ -34,7 +34,6 @@ #include "llagent.h" #include "llappviewer.h" -#include "llfloatermediabrowser.h" #include "llfloaterwebcontent.h" #include "llfloaterreg.h" #include "lllogininstance.h" @@ -78,32 +77,15 @@ void LLWeb::initClass() } -// static -void LLWeb::loadURL(const std::string& url, const std::string& target, const std::string& uuid) -{ - loadWebURL(url, target, uuid); - //if(target == "_internal") - //{ - // // Force load in the internal browser, as if with a blank target. - // loadURLInternal(url, "", uuid); - //} - //else if (gSavedSettings.getBOOL("UseExternalBrowser") || (target == "_external")) - //{ - // loadURLExternal(url); - //} - //else - //{ - // loadURLInternal(url, target, uuid); - //} -} + // static -void LLWeb::loadWebURL(const std::string& url, const std::string& target, const std::string& uuid) +void LLWeb::loadURL(const std::string& url, const std::string& target, const std::string& uuid) { if(target == "_internal") { // Force load in the internal browser, as if with a blank target. - loadWebURLInternal(url, "", uuid); + loadURLInternal(url, "", uuid); } else if (gSavedSettings.getBOOL("UseExternalBrowser") || (target == "_external")) { @@ -111,19 +93,13 @@ void LLWeb::loadWebURL(const std::string& url, const std::string& target, const } else { - loadWebURLInternal(url, target, uuid); + loadURLInternal(url, target, uuid); } } // static -void LLWeb::loadURLInternal(const std::string &url, const std::string& target, const std::string& uuid) -{ - LLFloaterMediaBrowser::create(url, target, uuid); -} - -// static // Explicitly open a Web URL using the Web content floater -void LLWeb::loadWebURLInternal(const std::string &url, const std::string& target, const std::string& uuid) +void LLWeb::loadURLInternal(const std::string &url, const std::string& target, const std::string& uuid) { LLFloaterWebContent::Params p; p.url(url).target(target).id(uuid); diff --git a/indra/newview/llweb.h b/indra/newview/llweb.h index 376abc0ece..0b95f664d6 100644 --- a/indra/newview/llweb.h +++ b/indra/newview/llweb.h @@ -42,23 +42,15 @@ class LLWeb public: static void initClass(); - /// Load the given url in the user's preferred web browser - static void loadURL(const std::string& url, const std::string& target, const std::string& uuid = LLStringUtil::null); - static void loadURL(const std::string& url) { loadURL(url, LLStringUtil::null); } - /// Load the given url in the user's preferred web browser - static void loadURL(const char* url, const std::string& target = LLStringUtil::null) { loadURL( ll_safe_string(url), target); } - /// Load the given url in the Second Life internal web browser - static void loadURLInternal(const std::string &url, const std::string& target, const std::string& uuid = LLStringUtil::null); - static void loadURLInternal(const std::string &url) { loadURLInternal(url, LLStringUtil::null, LLStringUtil::null);} /// Load the given url in the operating system's web browser, async if we want to return immediately /// before browser has spawned static void loadURLExternal(const std::string& url) {loadURLExternal(url, LLStringUtil::null);} static void loadURLExternal(const std::string& url, const std::string& uuid); static void loadURLExternal(const std::string& url, bool async, const std::string& uuid = LLStringUtil::null); - // Explicitly open a Web URL using the Web content floater vs. the more general media browser - static void loadWebURL(const std::string& url, const std::string& target, const std::string& uuid); - static void loadWebURLInternal(const std::string &url, const std::string& target = LLStringUtil::null, const std::string& uuid = LLStringUtil::null); + static void loadURL(const std::string& url, const std::string& target = LLStringUtil::null, const std::string& uuid = LLStringUtil::null); + // load content using built-in browser + static void loadURLInternal(const std::string &url, const std::string& target = LLStringUtil::null, const std::string& uuid = LLStringUtil::null); /// Returns escaped url (eg, " " to "%20") - used by all loadURL methods static std::string escapeURL(const std::string& url); diff --git a/indra/newview/llworldmapmessage.cpp b/indra/newview/llworldmapmessage.cpp index 66d0d698ba..8307d32336 100644 --- a/indra/newview/llworldmapmessage.cpp +++ b/indra/newview/llworldmapmessage.cpp @@ -210,15 +210,14 @@ void LLWorldMapMessage::processMapBlockReply(LLMessageSystem* msg, void**) } // Handle the SLURL callback if any - if(LLWorldMapMessage::getInstance()->mSLURLCallback != NULL) + url_callback_t callback = LLWorldMapMessage::getInstance()->mSLURLCallback; + if(callback != NULL) { U64 handle = to_region_handle(x_world, y_world); // Check if we reached the requested region if ((LLStringUtil::compareInsensitive(LLWorldMapMessage::getInstance()->mSLURLRegionName, name)==0) || (LLWorldMapMessage::getInstance()->mSLURLRegionHandle == handle)) { - url_callback_t callback = LLWorldMapMessage::getInstance()->mSLURLCallback; - LLWorldMapMessage::getInstance()->mSLURLCallback = NULL; LLWorldMapMessage::getInstance()->mSLURLRegionName.clear(); LLWorldMapMessage::getInstance()->mSLURLRegionHandle = 0; diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index 80e310a873..8ac1ac9e09 100644 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -167,13 +167,6 @@ function="Floater.Show" parameter="message_critical" /> </menu_item_call> - <menu_item_call - label="Media Browser Test" - name="Web Browser Test"> - <menu_item_call.on_click - function="Advanced.WebBrowserTest" - parameter="http://join.secondlife.com/"/> - </menu_item_call> <menu_item_call label="Web Content Floater Debug Test" name="Web Content Floater Debug Test"> diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml index f47e9874b4..0e29ed0d0b 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml @@ -22,6 +22,7 @@ draw_border="false" height="24" left="25" + bottom="1" name="speaker" visible="false" width="20" /> diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml index 8dfdf95e80..77011139bf 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml @@ -22,6 +22,7 @@ draw_border="false" height="24" left="25" + bottom="1" name="speaker" visible="false" width="20" /> diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml index cef698e577..8b56a8f0f6 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml @@ -22,6 +22,7 @@ draw_border="false" height="24" left="25" + bottom="1" name="speaker" visible="false" width="20" /> diff --git a/indra/newview/skins/default/xui/ru/floater_about_land.xml b/indra/newview/skins/default/xui/ru/floater_about_land.xml index 488d2cda17..3c278fce52 100644 --- a/indra/newview/skins/default/xui/ru/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ru/floater_about_land.xml @@ -141,16 +141,16 @@ </panel> <panel label="СОГЛАШЕНИЕ" name="land_covenant_panel"> <panel.string name="can_resell"> - Приобретенная в этом регионе земля может быть перепродана. + Купленная в этом регионе земля может быть перепродана. </panel.string> <panel.string name="can_not_resell"> - Приобретенная в этом регионе земля не может быть перепродана. + Купленная в этом регионе земля не может быть перепродана. </panel.string> <panel.string name="can_change"> - Приобретенная в этом регионе земля может быть объединена или разделена. + Купленная в этом регионе земля может быть объединена или разделена. </panel.string> <panel.string name="can_not_change"> - Приобретенная в этом регионе земля не может быть объединена или разделена. + Купленная в этом регионе земля не может быть объединена или разделена. </panel.string> <text name="estate_section_lbl"> Землевладение: @@ -270,7 +270,7 @@ <name_list name="owner list"> <name_list.columns label="Тип" name="type"/> <name_list.columns label="Название" name="name"/> - <name_list.columns label="Количество" name="count"/> + <name_list.columns label="Кол-во" name="count"/> <name_list.columns label="Последний объект" name="mostrecent"/> </name_list> </panel> @@ -286,10 +286,10 @@ Этот параметр недоступен, потому что вы не можете изменять его на этом участке. </panel.string> <panel.string name="mature_check_mature"> - Moderate-контент + Умеренный контент </panel.string> <panel.string name="mature_check_adult"> - Содержимое для взрослых + Контент для взрослых </panel.string> <panel.string name="mature_check_mature_tooltip"> Информация или содержимое вашего участка расценивается как moderate. @@ -366,7 +366,7 @@ <combo_box.item label="Аренда" name="item13"/> <combo_box.item label="Другое" name="item12"/> </combo_box> - <check_box label="Moderate-контент" name="MatureCheck" tool_tip=" "/> + <check_box label="Умеренный контент" name="MatureCheck" tool_tip=" "/> <text name="Snapshot:"> Снимок: </text> @@ -374,7 +374,7 @@ <text name="allow_label5"> Позволить жителям с других участков: </text> - <check_box label="Видеть аватары" name="SeeAvatarsCheck" tool_tip="Жители с других участков могут видеть жителей этого участка и общаться с ними в чате (вы также сможете видеть жителей с других участков и общаться с ними)."/> + <check_box label="Видны аватары" name="SeeAvatarsCheck" tool_tip="Жители с других участков могут видеть жителей этого участка и общаться с ними в чате (вы также сможете видеть жителей с других участков и общаться с ними)."/> <text name="landing_point"> В точку телепортации: [LANDING] </text> @@ -395,7 +395,7 @@ </text> <combo_box name="media type" tool_tip="Укажите, чем является ссылка – видео, веб-страница или другое медиа"/> <text name="at URL:"> - Домашняя страница: + Дом. страница: </text> <button label="Задать" name="set_media_url"/> <text name="Description:"> @@ -403,7 +403,7 @@ </text> <line_editor name="url_description" tool_tip="Текст, показываемый рядом с кнопкой проигрывания/загрузки"/> <text name="Media texture:"> - Заменяемая текстура: + Замена текстуры: </text> <texture_picker name="media texture" tool_tip="Щелкните для выбора изображения"/> <text name="replace_texture_help"> @@ -416,7 +416,7 @@ <spinner name="media_size_width" tool_tip="Размер отображения веб-медиа, по умолчанию – 0."/> <spinner name="media_size_height" tool_tip="Размер отображения веб-медиа, по умолчанию – 0."/> <text name="pixels"> - пикселей + пикс. </text> <text name="Options:"> Опции: @@ -425,7 +425,7 @@ </panel> <panel label="ЗВУК" name="land_audio_panel"> <text name="MusicURL:"> - URL-адрес для музыки: + URL музыки: </text> <text name="Sound:"> Звук: @@ -448,18 +448,18 @@ (Определено на землевладении) </panel.string> <panel.string name="allow_public_access"> - Разрешить публичный доступ ([MATURITY]) (Примечание. Снятие приведет к созданию линий запрета) + Разрешить общий доступ ([MATURITY]) (Снятие приведет к созданию линий запрета) </panel.string> <panel.string name="estate_override"> - Часть этих параметров установлены на уровне землевладения + Часть этих параметров установлена на уровне землевладения </panel.string> <text name="Limit access to this parcel to:"> Доступ на этот участок </text> <text name="Only Allow"> - Ограничить жителям доступ проверкой: + Разрешить доступ только жителям, у которых: </text> - <check_box label="Информация об оплате в файле [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Банить нераспознанных жителей."/> + <check_box label="Записана информация об оплате [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Банить нераспознанных жителей."/> <check_box label="Проверка возраста [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Банить жителей, не прошедших проверку возраста. Более подробная информация находится здесь: [SUPPORT_SITE]."/> <check_box label="Разрешить доступ группе: [GROUP]" name="GroupCheck" tool_tip="Группа устанавливается на основной вкладке."/> <check_box label="Продать доступ:" name="PassCheck" tool_tip="Разрешить временный доступ к участку."/> diff --git a/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml index a497c14cac..ccf13cf02a 100644 --- a/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/ru/floater_bulk_perms.xml @@ -24,7 +24,7 @@ <button label="√ Все" name="check_all"/> <button label="Очистить" label_selected="Нет" name="check_none"/> <text name="newperms"> - Новые разрешения на использование контента + Новые разрешения на контент </text> <text name="GroupLabel"> Группа: diff --git a/indra/newview/skins/default/xui/ru/floater_buy_currency.xml b/indra/newview/skins/default/xui/ru/floater_buy_currency.xml index 197a2a3327..7690ff2a6c 100644 --- a/indra/newview/skins/default/xui/ru/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/ru/floater_buy_currency.xml @@ -60,7 +60,7 @@ <button label="Приобрести" name="buy_btn"/> <button label="Отмена" name="cancel_btn"/> <text name="info_cannot_buy"> - Невозможно приобрести + Нельзя купить </text> <button label="Продолжить в Интернете" name="error_web"/> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_color_picker.xml b/indra/newview/skins/default/xui/ru/floater_color_picker.xml index d6e737d584..b7034bef0b 100644 --- a/indra/newview/skins/default/xui/ru/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/ru/floater_color_picker.xml @@ -13,7 +13,7 @@ Оттенок: </text> <text name="s_val_text"> - Насыщенность: + Насыщен.: </text> <text name="l_val_text"> Яркость: diff --git a/indra/newview/skins/default/xui/ru/floater_destinations.xml b/indra/newview/skins/default/xui/ru/floater_destinations.xml index e769812beb..5ba0841564 100644 --- a/indra/newview/skins/default/xui/ru/floater_destinations.xml +++ b/indra/newview/skins/default/xui/ru/floater_destinations.xml @@ -1,2 +1,2 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Destinations" title="МЕСТА"/> +<floater name="Destinations" title="ПУНКТЫ"/>
\ No newline at end of file diff --git a/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml index 1adc8173c6..61d708c567 100644 --- a/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml +++ b/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml @@ -16,25 +16,25 @@ -Выбор настройки- </string> <text name="label"> - Название настройки: + Имя настройки: </text> <text name="note"> Примечание. Если изменить имя настройки, будет создана новая настройка, а изменения в существующей не будут сохранены. </text> <text name="hint_item1"> - - Чтобы изменить определенные настройки неба и времени, выберите соответствующую вкладку. + - Для изменения настроек неба и времени выберите соответствующую вкладку. </text> <text name="hint_item2"> - - Чтобы задать время переходов, вабирайте и перетаскивайте вкладки. + - Чтобы задать время переходов, перетаскивайте вкладки. </text> <text name="hint_item3"> - - Используйте скребок для предварительного просмотра суточного цикла. + - Скребок служит для просмотра суточного цикла. </text> <panel name="day_cycle_slider_panel"> <multi_slider initial_value="0" name="WLTimeSlider"/> <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="Добавить отметку" label_selected="Добавить отметку" name="WLAddKey"/> - <button label="Удалить отметку" label_selected="Удалить отметку" name="WLDeleteKey"/> + <button label="+ отметку" label_selected="+ отметку" name="WLAddKey"/> + <button label="- отметку" label_selected="- отметку" name="WLDeleteKey"/> <text name="WL12am"> 12 ночи </text> @@ -91,14 +91,14 @@ </text> </panel> <text name="WLCurKeyPresetText"> - Настройка неба: + Небо: </text> - <combo_box label="Стандартная" name="WLSkyPresets"/> + <combo_box label="Стандарт" name="WLSkyPresets"/> <text name="WLCurKeyTimeText"> Время: </text> <time name="time" value="6:00"/> - <check_box label="Установить в качестве нового суточного цикла" name="make_default_cb"/> + <check_box label="Установить как новый суточный цикл" name="make_default_cb"/> <button label="Сохранить" name="save"/> <button label="Отмена" name="cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml index aa60cb6337..354120ea72 100644 --- a/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml +++ b/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml @@ -19,7 +19,7 @@ Чтобы изменить настройку, задайте ее параметры с помощью элементов управления и нажмите кнопку «Сохранить». </text> <text name="label"> - Название настройки: + Имя настройки: </text> <text name="note"> Примечание. Если изменить имя настройки, будет создана новая настройка, а изменения в существующей не будут сохранены. @@ -58,7 +58,7 @@ <text name="SunGlowText"> Сияние солнца </text> - <slider label="Отчетливость" name="WLGlowB"/> + <slider label="Фокус" name="WLGlowB"/> <slider label="Размер" name="WLGlowR"/> <text name="WLStarText"> Яркость звезд @@ -102,7 +102,7 @@ </text> <time name="WLDayTime" value="6:00"/> <text name="WLEastAngleText"> - Смещение относительно востока + Смещение отн. востока </text> </panel> <panel label="ОБЛАКА" name="Clouds"> @@ -122,7 +122,7 @@ Размеры </text> <text name="WLCloudDetailText"> - Детализация (положение/плотность) + Детали (положение/плотность) </text> <slider label="X" name="WLCloudDetailX"/> <slider label="Y" name="WLCloudDetailY"/> diff --git a/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml index 3befe4b038..f6def86380 100644 --- a/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml +++ b/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml @@ -19,7 +19,7 @@ Чтобы изменить настройку, задайте ее параметры с помощью элементов управления и нажмите кнопку «Сохранить». </text> <text name="label"> - Название настройки: + Имя настройки: </text> <text name="note"> Примечание. Если изменить имя настройки, будет создана новая настройка, а изменения в существующей не будут сохранены. diff --git a/indra/newview/skins/default/xui/ru/floater_god_tools.xml b/indra/newview/skins/default/xui/ru/floater_god_tools.xml index ec64a5c7af..81329475aa 100644 --- a/indra/newview/skins/default/xui/ru/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/ru/floater_god_tools.xml @@ -72,10 +72,10 @@ </panel> <panel label="Запрос" name="request"> <text name="Destination:"> - Место назначения: + Пункт назначения: </text> <combo_box name="destination"> - <combo_box.item label="назначенное" name="item1"/> + <combo_box.item label="назначенный" name="item1"/> <combo_box.item label="текущий регион" name="item2"/> </combo_box> <text name="Request:"> diff --git a/indra/newview/skins/default/xui/ru/floater_image_preview.xml b/indra/newview/skins/default/xui/ru/floater_image_preview.xml index ae7c77ea0e..dbc4c32b98 100644 --- a/indra/newview/skins/default/xui/ru/floater_image_preview.xml +++ b/indra/newview/skins/default/xui/ru/floater_image_preview.xml @@ -23,7 +23,7 @@ </combo_box> <text name="bad_image_text"> Невозможно прочитать изображение. -Попробуйте сохранить изображение как 24-разрядный TGA-файл (Targa). +Попробуйте сохранить изображение как 24-битный TGA-файл (Targa). </text> <check_box label="Использовать сжатие без потерь" name="lossless_check"/> <button label="Отмена" name="cancel_btn"/> diff --git a/indra/newview/skins/default/xui/ru/floater_joystick.xml b/indra/newview/skins/default/xui/ru/floater_joystick.xml index cc93152225..66568563da 100644 --- a/indra/newview/skins/default/xui/ru/floater_joystick.xml +++ b/indra/newview/skins/default/xui/ru/floater_joystick.xml @@ -3,7 +3,7 @@ <floater.string name="NoDevice"> устройство не выбрано </floater.string> - <check_box label="Включить джойстик:" name="enable_joystick"/> + <check_box label="Вкл. джойстик:" name="enable_joystick"/> <spinner label="Наложение по X" name="JoystickAxis1"/> <spinner label="Наложение по Y" name="JoystickAxis2"/> <spinner label="Наложение по Z" name="JoystickAxis0"/> diff --git a/indra/newview/skins/default/xui/ru/floater_lagmeter.xml b/indra/newview/skins/default/xui/ru/floater_lagmeter.xml index 48f7dd969f..c420006a03 100644 --- a/indra/newview/skins/default/xui/ru/floater_lagmeter.xml +++ b/indra/newview/skins/default/xui/ru/floater_lagmeter.xml @@ -106,7 +106,7 @@ Возможная причина: слишком много физических объектов </floater.string> <floater.string name="server_scripts_cause_msg"> - Возможная причина: слишком мало физических объектов + Возможная причина: слишком много скриптовых объектов </floater.string> <floater.string name="server_net_cause_msg"> Возможная причина: слишком большой сетевой трафик diff --git a/indra/newview/skins/default/xui/ru/floater_land_holdings.xml b/indra/newview/skins/default/xui/ru/floater_land_holdings.xml index c88c88988b..17d347867d 100644 --- a/indra/newview/skins/default/xui/ru/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/ru/floater_land_holdings.xml @@ -9,7 +9,7 @@ <scroll_list.columns label="Тип" name="type"/> <scroll_list.columns label="Площадь" name="area"/> </scroll_list> - <button label="Телепортация" label_selected="Телепортация" name="Teleport" tool_tip="Телепортироваться в центр этой земли."/> + <button label="Телепорт" label_selected="Телепорт" name="Teleport" tool_tip="Телепортироваться в центр этой земли."/> <button label="Карта" label_selected="Карта" name="Show on Map" tool_tip="Показать эту землю на карте мира."/> <text name="contrib_label"> Ваши вложения в группы: diff --git a/indra/newview/skins/default/xui/ru/floater_model_wizard.xml b/indra/newview/skins/default/xui/ru/floater_model_wizard.xml index 204f752cd9..ef2fe8e5a5 100644 --- a/indra/newview/skins/default/xui/ru/floater_model_wizard.xml +++ b/indra/newview/skins/default/xui/ru/floater_model_wizard.xml @@ -13,7 +13,7 @@ </panel> <panel name="content"> <text name="advanced_users_text"> - Пользователям, работающим в расширенном режиме: если вы умеете создавать трехмерные графические объекты, то, возможно, захотите воспользоваться средством Advanced Uploader, которое предоставляет расширенные возможности передачи объектов. + Пользователям в расширенном режиме: если вы умеете создавать трехмерные графические объекты, то, возможно, захотите воспользоваться средством Advanced Uploader, которое предоставляет расширенные возможности передачи объектов. </text> <button label="Перейти в расширенный режим" name="switch_to_advanced"/> <text name="Cache location"> @@ -78,17 +78,17 @@ <panel name="physics_panel"> <panel name="header_panel"> <text name="header_text"> - Настроить физические параметры + Настроить физику </text> </panel> <text name="description"> Мы создадим форму для внешнего каркаса модели. Настройте уровень детализации формы в соответствии с целями, для которых предназначена модель. </text> <panel name="content"> - <button label="Пересчитать физические данные" name="recalculate_physics_btn"/> + <button label="Пересчитать физику" name="recalculate_physics_btn"/> <button label="Пересчет..." name="recalculating_physics_btn"/> <text name="lod_label"> - Просмотр физических данных + Просмотр физики </text> <combo_box name="preview_lod_combo2" tool_tip="Уровень детализации при предварительном просмотре"> <combo_item name="high"> diff --git a/indra/newview/skins/default/xui/ru/floater_select_key.xml b/indra/newview/skins/default/xui/ru/floater_select_key.xml index 84cc4a3ef3..99c2b9a2c4 100644 --- a/indra/newview/skins/default/xui/ru/floater_select_key.xml +++ b/indra/newview/skins/default/xui/ru/floater_select_key.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="modal container"> <text name="Save item as:"> - Нажмите кнопку для установки триггера включения разговора. + Нажмите клавишу для включения/выключения речи. </text> <button label="Отмена" label_selected="Отмена" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_snapshot.xml b/indra/newview/skins/default/xui/ru/floater_snapshot.xml index a3b40a4f1c..f85d602be7 100644 --- a/indra/newview/skins/default/xui/ru/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/ru/floater_snapshot.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Snapshot" title="ПРОСМОТР СНИМКА"> <floater.string name="unknown"> - неизвестен + неизвестно </floater.string> <radio_group label="Тип снимка" name="snapshot_type_radio"> <radio_item label="Электронная почта" name="postcard"/> diff --git a/indra/newview/skins/default/xui/ru/floater_tools.xml b/indra/newview/skins/default/xui/ru/floater_tools.xml index 660eca51c6..eb9083f7fc 100644 --- a/indra/newview/skins/default/xui/ru/floater_tools.xml +++ b/indra/newview/skins/default/xui/ru/floater_tools.xml @@ -1,28 +1,28 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="toolbox floater" short_title="ИНСТРУМЕНТЫ ДЛЯ СТРОИТЕЛЬСТВА"> <floater.string name="status_rotate"> - Перемещайте цветные полосы для вращения объекта + Перетягивайте цветные полосы для вращения объекта </floater.string> <floater.string name="status_scale"> - Щелкните и переместите для растяжения выбранной стороны + Щелкните и перетащите для растяжения выбранной стороны </floater.string> <floater.string name="status_move"> - Переместите для перемещения, переместите с одновременным нажатием клавиши Shift для копирования + Перемещение: перетащить, копирование: перетащить при нажатой клавише Shift </floater.string> <floater.string name="status_modifyland"> Щелкните и удерживайте для изменения земли </floater.string> <floater.string name="status_camera"> - Щелкните и переместите для перемещения камеры + Щелкните и перетащите для перемещения камеры </floater.string> <floater.string name="status_grab"> - Переместите для перемещения, нажмите клавишу Ctrl для подъема, нажмите клавиши Ctrl+Shift для вращения + Перемещение: перетащить, подъем: нажать Ctrl, вращение: нажать Ctrl+Shift </floater.string> <floater.string name="status_place"> Щелкните для создания </floater.string> <floater.string name="status_selectland"> - Щелкните и переместите для выделения земли + Щелкните и перетащите для выделения земли </floater.string> <floater.string name="status_selectcount"> Выбрано объектов: [OBJ_COUNT], влияние на землю [LAND_IMPACT] @@ -30,13 +30,13 @@ <floater.string name="status_remaining_capacity"> Остаток емкости [LAND_CAPACITY]. </floater.string> - <button name="button focus" tool_tip="Отчетливость"/> + <button name="button focus" tool_tip="Фокус"/> <button name="button move" tool_tip="Переместить"/> <button name="button edit" tool_tip="Изменить"/> <button name="button create" tool_tip="Создать"/> <button name="button land" tool_tip="Земля"/> <text name="text status"> - Переместите для перемещения, переместите с одновременным нажатием клавиши Shift для копирования + Перемещение: перетащить, копирование: перетащить при нажатой клавише Shift </text> <radio_group name="focus_radio_group"> <radio_item label="Увеличение" name="radio zoom"/> @@ -52,14 +52,14 @@ <radio_group name="edit_radio_group"> <radio_item label="Переместить" name="radio position"/> <radio_item label="Вращение (Ctrl)" name="radio rotate"/> - <radio_item label="Растягивание (Ctrl+Shift)" name="radio stretch"/> + <radio_item label="Растяжка (Ctrl+Shift)" name="radio stretch"/> <radio_item label="Выбор грани" name="radio select face"/> </radio_group> <check_box label="Редактировать объединенные" name="checkbox edit linked parts"/> <button label="Объединить" name="link_btn"/> <button label="Разъединить" name="unlink_btn"/> - <text label="Растягивать в обе стороны" name="checkbox uniform label"> - Растягивать в обе стороны + <text label="Растяжка обеих сторон" name="checkbox uniform label"> + Растяжка обеих сторон </text> <check_box initial_value="истина" label="Растягивать текстуры" name="checkbox stretch textures"/> <check_box initial_value="истина" label="Привязка" name="checkbox snap to grid"/> @@ -79,9 +79,9 @@ <button name="ToolRing" tool_tip="Кольцо"/> <button name="ToolTree" tool_tip="Дерево"/> <button name="ToolGrass" tool_tip="Трава"/> - <check_box label="Оставить инструмент выбранным" name="checkbox sticky"/> - <check_box label="Копировать выделенное" name="checkbox copy selection"/> - <check_box initial_value="истина" label="Центрировать копию" name="checkbox copy centers"/> + <check_box label="Держать инструмент" name="checkbox sticky"/> + <check_box label="Копировать выдел." name="checkbox copy selection"/> + <check_box initial_value="истина" label="Центрир. копию" name="checkbox copy centers"/> <check_box label="Повернуть копию" name="checkbox copy rotates"/> <radio_group name="land_radio_group"> <radio_item label="Выбрать землю" name="radio select land"/> @@ -105,7 +105,7 @@ <slider_bar initial_value="0.00" name="slider force"/> <button label="Применить" label_selected="Применить" name="button apply to selection" tool_tip="Изменить выбранную землю"/> <text name="selection_empty"> - Ничего не выбрано. + Не выбрано. </text> <text name="remaining_capacity"> [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Дополнительная информация] @@ -168,7 +168,7 @@ <check_box label="Поделиться" name="checkbox share with group" tool_tip="Позволить всем участникам выбранной группы получить установленные вам права на этот объект. Для включения ролевых ограничений необходимо произвести сделку."/> <button label="Сделка" label_selected="Сделка" name="button deed" tool_tip="В результате сделки объект передается группе, при этом права на него будут соответствовать правам следующего владельца. Переданный группе объект может передаваться должностным лицом группы."/> <text name="label click action"> - Действие по щелчку: + По щелчку: </text> <combo_box name="clickaction"> <combo_box.item label="Коснуться (по умолчанию)" name="Touch/grab(default)"/> @@ -185,7 +185,7 @@ <combo_box.item label="Оригинал" name="Original"/> </combo_box> <spinner label="Цена: L$" name="Edit Cost"/> - <check_box label="Показать в результатах поиска" name="search_check" tool_tip="Показывать объект в результатах поиска"/> + <check_box label="Показать в поиске" name="search_check" tool_tip="Показывать объект в результатах поиска"/> <panel name="perms_build"> <text name="perm_modify"> Этот объект можно изменять @@ -349,9 +349,9 @@ <spinner label="Парусность" name="FlexFriction"/> <spinner label="Ветер" name="FlexWind"/> <spinner label="Упругость" name="FlexTension"/> - <spinner label="Действие по X" name="FlexForceX"/> - <spinner label="Действие по Y" name="FlexForceY"/> - <spinner label="Действие по Z" name="FlexForceZ"/> + <spinner label="X-действие" name="FlexForceX"/> + <spinner label="Y-действие" name="FlexForceY"/> + <spinner label="Z-действие" name="FlexForceZ"/> <check_box label="Свет" name="Light Checkbox Ctrl" tool_tip="Объект будет излучать свет"/> <color_swatch name="colorswatch" tool_tip="Щелкните для выбора цвета"/> <texture_picker label="" name="light texture control" tool_tip="Щелкните для выбора проецируемого изображения (действует только с включенной отложенной отрисовкой)"/> @@ -362,7 +362,7 @@ <spinner label="Ослабление" name="Light Falloff"/> <spinner label="Окружение" name="Light Ambiance"/> <text name="label physicsshapetype"> - Тип физической формы: + Тип физич. формы: </text> <combo_box name="Physics Shape Type Combo Ctrl" tool_tip="Выберите тип физической формы"/> <combo_box name="material"> @@ -394,7 +394,7 @@ <text name="glow label"> Свечение </text> - <check_box label="Собственная яркость" name="checkbox fullbright"/> + <check_box label="Собств. яркость" name="checkbox fullbright"/> <text name="tex gen"> Наложение </text> @@ -476,7 +476,7 @@ Площадь: [AREA] м² </text> <button label="О земле" label_selected="О земле" name="button about land"/> - <check_box label="Показать владельцев" name="checkbox show owners" tool_tip="Цвет участка в зависимости от типа владения: зеленый = ваша земля голубой = земля вашей группы красный = чужая земля желтый = для продажи фиолетовый = для аукциона серый = общая"/> + <check_box label="Показать владельцев" name="checkbox show owners" tool_tip="Цвет участка в зависимости от типа владения: зеленый = ваша земля; голубой = земля вашей группы; красный = чужая земля; желтый = для продажи; фиолетовый = для аукциона; серый = общая"/> <text name="label_parcel_modify"> Изменение участка </text> diff --git a/indra/newview/skins/default/xui/ru/floater_toybox.xml b/indra/newview/skins/default/xui/ru/floater_toybox.xml index eb03e8c8bf..8d7431d393 100644 --- a/indra/newview/skins/default/xui/ru/floater_toybox.xml +++ b/indra/newview/skins/default/xui/ru/floater_toybox.xml @@ -6,5 +6,5 @@ <text name="toybox label 2"> Кнопки будут отображены в исходном виде или в виде значков, в зависимости от настроек каждой панели инструментов. </text> - <button label="Восстановить умолчания" label_selected="Восстановить умолчания" name="btn_restore_defaults"/> + <button label="Вернуть стандартные" label_selected="Вернуть стандартные" name="btn_restore_defaults"/> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml index 6520a4342c..c1fb858d48 100644 --- a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_voice_controls" title="УПРАВЛЕНИЕ ГОЛОСОМ"> <string name="title_nearby"> - Голоса собеседников + Настройки голоса </string> <string name="title_group"> Звонок группе [GROUP] diff --git a/indra/newview/skins/default/xui/ru/floater_windlight_options.xml b/indra/newview/skins/default/xui/ru/floater_windlight_options.xml index 6667e6b19a..bbb37aaaa0 100644 --- a/indra/newview/skins/default/xui/ru/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/ru/floater_windlight_options.xml @@ -98,7 +98,7 @@ <text name="SunGlowText"> Сияние солнца </text> - <slider label="Отчетливость" name="WLGlowB"/> + <slider label="Фокус" name="WLGlowB"/> <slider label="Размер" name="WLGlowR"/> <text name="SceneGammaText"> Гамма-коррекция сцены diff --git a/indra/newview/skins/default/xui/ru/floater_world_map.xml b/indra/newview/skins/default/xui/ru/floater_world_map.xml index 5fa45bd5e5..ef8dfe22ae 100644 --- a/indra/newview/skins/default/xui/ru/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ru/floater_world_map.xml @@ -37,7 +37,7 @@ </text> <check_box initial_value="истина" name="events_mature_chk"/> <text name="events_mature_label"> - Умеренный + Умеренные </text> <text name="events_adult_label"> Для взрослых @@ -62,7 +62,7 @@ Место: </text> <button label="Телепортация" name="Teleport" tool_tip="Телепортация в выбранное место"/> - <button label="Копировать URL-адрес SL" name="copy_slurl" tool_tip="Копировать текущее место в виде URL-адреса SL для использования в Интернете."/> + <button label="Копировать URL SL" name="copy_slurl" tool_tip="Копировать текущее место в виде URL-адреса SL для использования в интернете."/> <button label="Показать выбранное" name="Show Destination" tool_tip="Центрировать карту на выбранном месте"/> </panel> <panel name="layout_panel_5"> diff --git a/indra/newview/skins/default/xui/ru/menu_attachment_other.xml b/indra/newview/skins/default/xui/ru/menu_attachment_other.xml index 72063737eb..fb1c24448b 100644 --- a/indra/newview/skins/default/xui/ru/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/ru/menu_attachment_other.xml @@ -4,7 +4,7 @@ <menu_item_call label="Смотреть профиль" name="Profile..."/> <menu_item_call label="В друзья" name="Add Friend"/> <menu_item_call label="IM" name="Send IM..."/> - <menu_item_call label="Позвонить" name="Call"/> + <menu_item_call label="Звонок" name="Call"/> <menu_item_call label="Пригласить в группу" name="Invite..."/> <menu_item_call label="Заблокировать" name="Avatar Mute"/> <menu_item_call label="Пожаловаться" name="abuse"/> diff --git a/indra/newview/skins/default/xui/ru/menu_gesture_gear.xml b/indra/newview/skins/default/xui/ru/menu_gesture_gear.xml index 78b1768761..d0b68cefbd 100644 --- a/indra/newview/skins/default/xui/ru/menu_gesture_gear.xml +++ b/indra/newview/skins/default/xui/ru/menu_gesture_gear.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <toggleable_menu name="menu_gesture_gear"> - <menu_item_call label="Добавить/удалить из избранного" name="activate"/> + <menu_item_call label="Добавить в избранное/удалить" name="activate"/> <menu_item_call label="Копировать" name="copy_gesture"/> <menu_item_call label="Вставить" name="paste"/> <menu_item_call label="Копировать UUID" name="copy_uuid"/> diff --git a/indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml index d500f0fac6..9fc0b6d44e 100644 --- a/indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml @@ -8,7 +8,7 @@ <menu_item_call label="Показать фильтры" name="show_filters"/> <menu_item_call label="Сбросить фильтры" name="reset_filters"/> <menu_item_call label="Закрыть все папки" name="close_folders"/> - <menu_item_call label="Очистить Lost and Found" name="empty_lostnfound"/> + <menu_item_call label="Очистить бюро находок" name="empty_lostnfound"/> <menu_item_call label="Сохранить текстуру как" name="Save Texture As"/> <menu_item_call label="Поделиться" name="Share"/> <menu_item_call label="Найти оригинал" name="Find Original"/> diff --git a/indra/newview/skins/default/xui/ru/menu_landmark.xml b/indra/newview/skins/default/xui/ru/menu_landmark.xml index 11d6e37e81..24b60f9d86 100644 --- a/indra/newview/skins/default/xui/ru/menu_landmark.xml +++ b/indra/newview/skins/default/xui/ru/menu_landmark.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <toggleable_menu name="landmark_overflow_menu"> - <menu_item_call label="Копировать URL-адрес SL" name="copy"/> + <menu_item_call label="Копировать URL SL" name="copy"/> <menu_item_call label="Удалить" name="delete"/> <menu_item_call label="Создать подборку" name="pick"/> <menu_item_call label="Добавить в любимые" name="add_to_favbar"/> diff --git a/indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml b/indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml index b7949b30d9..5ae5e7dfbc 100644 --- a/indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml +++ b/indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <toggleable_menu name="model_menu_gear_default"> <menu_item_check label="Показать грани" name="show_edges"/> - <menu_item_check label="Показать физические параметры" name="show_physics"/> + <menu_item_check label="Показать физику" name="show_physics"/> <menu_item_check label="Показать текстуры" name="show_textures"/> <menu_item_check label="Показать вес кожи" name="show_skin_weight"/> <menu_item_check label="Показать положение сочленений" name="show_joint_positions"/> diff --git a/indra/newview/skins/default/xui/ru/menu_participant_list.xml b/indra/newview/skins/default/xui/ru/menu_participant_list.xml index 8bbf2d52bf..932ad5bacf 100644 --- a/indra/newview/skins/default/xui/ru/menu_participant_list.xml +++ b/indra/newview/skins/default/xui/ru/menu_participant_list.xml @@ -5,7 +5,7 @@ <menu_item_call label="Открыть профиль" name="View Profile"/> <menu_item_call label="Добавить в друзья" name="Add Friend"/> <menu_item_call label="IM" name="IM"/> - <menu_item_call label="Позвонить" name="Call"/> + <menu_item_call label="Звонок" name="Call"/> <menu_item_call label="Поделиться" name="Share"/> <menu_item_call label="Заплатить" name="Pay"/> <menu_item_check label="Показывать значки участников" name="View Icons"/> diff --git a/indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml index a838dd5c42..b1ebd4af83 100644 --- a/indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml +++ b/indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml @@ -8,7 +8,7 @@ <menu_item_call label="Восстановить вещь" name="restore_item"/> <menu_item_call label="Вырезать" name="cut"/> <menu_item_call label="Копировать закладку" name="copy_landmark"/> - <menu_item_call label="Копировать URL-адрес SL" name="copy_slurl"/> + <menu_item_call label="Копировать URL SL" name="copy_slurl"/> <menu_item_call label="Вставить" name="paste"/> <menu_item_call label="Переименовать" name="rename"/> <menu_item_call label="Удалить" name="delete"/> diff --git a/indra/newview/skins/default/xui/ru/menu_viewer.xml b/indra/newview/skins/default/xui/ru/menu_viewer.xml index 322a27003f..b9f403c04b 100644 --- a/indra/newview/skins/default/xui/ru/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ru/menu_viewer.xml @@ -54,7 +54,7 @@ <menu_item_check label="Владельцы земли" name="Land Owners"/> <menu_item_check label="Координаты" name="Coordinates"/> <menu_item_check label="Свойства участка" name="Parcel Properties"/> - <menu_item_check label="Дополнительное меню" name="Show Advanced Menu"/> + <menu_item_check label="Меню «Дополнительно»" name="Show Advanced Menu"/> </menu> <menu_item_call label="Телепортироваться домой" name="Teleport Home"/> <menu_item_call label="Установить дом здесь" name="Set Home to Here"/> @@ -203,7 +203,7 @@ <menu_item_check label="Поиск" name="Search"/> <menu_item_call label="Освободить клавиши" name="Release Keys"/> <menu_item_call label="Сбросить размер интерфейса" name="Set UI Size to Default"/> - <menu_item_check label="Показать дополнительное меню – устаревшее сочетание клавиш" name="Show Advanced Menu - legacy shortcut"/> + <menu_item_check label="Показать меню «Дополнительно» - старое сочетание клавиш" name="Show Advanced Menu - legacy shortcut"/> <menu_item_call label="Закрыть окно" name="Close Window"/> <menu_item_call label="Закрыть все окна" name="Close All Windows"/> <menu_item_call label="Сохранить снимок на диске" name="Snapshot to Disk"/> diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml index 87ae9d06dd..d43d907164 100644 --- a/indra/newview/skins/default/xui/ru/notifications.xml +++ b/indra/newview/skins/default/xui/ru/notifications.xml @@ -724,13 +724,13 @@ Телепортация сейчас заблокирована. Повторите попытку позже. Если все равно не удается телепортироваться, выйдите из программы и войдите снова, чтобы устранить проблему. </notification> <notification name="nolandmark_tport"> - Системе не удалось определить место назначения закладки. + Системе не удалось определить пункт назначения закладки. </notification> <notification name="timeout_tport"> Системе не удалось выполнить подключение телепорта. Повторите попытку позже. </notification> <notification name="noaccess_tport"> - У вас нет доступа к точке назначения этого телепорта. + У вас нет доступа в пункт назначения этого телепорта. </notification> <notification name="missing_attach_tport"> Ваши присоединения еще не доставлены. Подождите несколько секунд либо выйдите из программы и войдите снова, прежде чем повторить попытку телепортации. @@ -745,7 +745,7 @@ Системе не удалось своевременно выполнить ваше пересечение границы. Повторите попытку через несколько минут. </notification> <notification name="no_host"> - Не удалось найти точку назначения телепорта. Возможно, место назначения временно недоступно или уже не существует. Повторите попытку через несколько минут. + Не удалось найти точку назначения телепорта. Возможно, пункт назначения временно недоступен или уже не существует. Повторите попытку через несколько минут. </notification> <notification name="no_inventory_host"> Система инвентаря сейчас недоступна. @@ -2381,7 +2381,7 @@ http://secondlife.com/download. Не найден регион назначения. </notification> <notification name="NotAllowedInDest"> - Вам не разрешен доступ к месту назначения. + Вам не разрешен доступ в пункт назначения. </notification> <notification name="RegionParcelBan"> Нельзя пересечь границу региона по пути на забаненный участок. Выберите другой путь. @@ -2390,7 +2390,7 @@ http://secondlife.com/download. Вы перенаправлены на телехаб. </notification> <notification name="CouldntTPCloser"> - Не удалось телепортироваться ближе к месту назначения. + Не удалось телепортироваться ближе к пункту назначения. </notification> <notification name="TPCancelled"> Телепортация отменена. @@ -2904,7 +2904,7 @@ http://secondlife.com/download. При скрытии кнопки «Говорить» голосовая функция отключается. </notification> <notification label="Исследование мира" name="HintDestinationGuide"> - Путеводитель по местам назначения содержит тысячи новых мест, в которых вы можете побывать. Выберите место и нажмите кнопку «Телепортация», чтобы начать исследование. + Путеводитель по пунктам назначения содержит тысячи новых мест, в которых вы можете побывать. Выберите место и нажмите кнопку «Телепортация», чтобы начать исследование. </notification> <notification label="Боковая панель" name="HintSidePanel"> Быстрый доступ к вашему инвентарю, костюмам, профилю и многому другому открывается на боковой панели. diff --git a/indra/newview/skins/default/xui/ru/panel_edit_alpha.xml b/indra/newview/skins/default/xui/ru/panel_edit_alpha.xml index 38789c1c5e..7cde4099ef 100644 --- a/indra/newview/skins/default/xui/ru/panel_edit_alpha.xml +++ b/indra/newview/skins/default/xui/ru/panel_edit_alpha.xml @@ -2,8 +2,8 @@ <panel name="edit_alpha_panel"> <scroll_container name="avatar_alpha_color_panel_scroll"> <panel name="avatar_alpha_color_panel"> - <texture_picker label="Альфа нижних частей тела" name="Lower Alpha" tool_tip="Щелкните для выбора изображения"/> - <texture_picker label="Альфа верхних частей тела" name="Upper Alpha" tool_tip="Щелкните для выбора изображения"/> + <texture_picker label="Альфа низа" name="Lower Alpha" tool_tip="Щелкните для выбора изображения"/> + <texture_picker label="Альфа верха" name="Upper Alpha" tool_tip="Щелкните для выбора изображения"/> <texture_picker label="Альфа головы" name="Head Alpha" tool_tip="Щелкните для выбора изображения"/> <texture_picker label="Альфа глаз" name="Eye Alpha" tool_tip="Щелкните для выбора изображения"/> <texture_picker label="Альфа волос" name="Hair Alpha" tool_tip="Щелкните для выбора изображения"/> diff --git a/indra/newview/skins/default/xui/ru/panel_edit_shape.xml b/indra/newview/skins/default/xui/ru/panel_edit_shape.xml index b185ce1d45..312ad593a1 100644 --- a/indra/newview/skins/default/xui/ru/panel_edit_shape.xml +++ b/indra/newview/skins/default/xui/ru/panel_edit_shape.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="edit_shape_panel"> <string name="meters"> - метров + м </string> <string name="feet"> футов diff --git a/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml b/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml index f1cba0d3be..2a23cdb800 100644 --- a/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml @@ -17,7 +17,7 @@ <button label="Заплатить" name="pay_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> - <button label="Позвонить" name="call_btn"/> + <button label="Звонок" name="call_btn"/> </layout_panel> <layout_panel name="end_call_btn_panel"> <button label="Завершить звонок" name="end_call_btn"/> diff --git a/indra/newview/skins/default/xui/ru/panel_landmarks.xml b/indra/newview/skins/default/xui/ru/panel_landmarks.xml index 66c5b3b574..7d684cd479 100644 --- a/indra/newview/skins/default/xui/ru/panel_landmarks.xml +++ b/indra/newview/skins/default/xui/ru/panel_landmarks.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="Landmarks"> <accordion name="landmarks_accordion"> - <accordion_tab name="tab_favorites" title="Панель «Избранное»"/> + <accordion_tab name="tab_favorites" title="Избранное"/> <accordion_tab name="tab_landmarks" title="Мои закладки"/> <accordion_tab name="tab_inventory" title="Мой инвентарь"/> <accordion_tab name="tab_library" title="Библиотека"/> diff --git a/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml index d9890acff2..5e3de180f9 100644 --- a/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml @@ -12,7 +12,7 @@ <layout_panel name="favorites_layout_panel"> <favorites_bar name="favorite" tool_tip="Перетаскивайте сюда закладки, чтобы было удобнее переходить в любимые места в Second Life!"> <label name="favorites_bar_label" tool_tip="Перетаскивайте сюда закладки, чтобы было удобнее переходить в любимые места в Second Life!"> - Панель «Избранное» + Избранное </label> <more_button name=">>" tool_tip="Показать больше избранного"> Больше ▼ diff --git a/indra/newview/skins/default/xui/ru/panel_notes.xml b/indra/newview/skins/default/xui/ru/panel_notes.xml index f88b4f13c3..aa74383349 100644 --- a/indra/newview/skins/default/xui/ru/panel_notes.xml +++ b/indra/newview/skins/default/xui/ru/panel_notes.xml @@ -21,7 +21,7 @@ <button label="IM" name="im" tool_tip="Начать сеанс IM"/> </layout_panel> <layout_panel name="call_btn_lp"> - <button label="Позвонить" name="call" tool_tip="Позвонить этому жителю"/> + <button label="Звонок" name="call" tool_tip="Позвонить этому жителю"/> </layout_panel> <layout_panel name="show_on_map_btn_lp"> <button label="Карта" name="show_on_map_btn" tool_tip="Показать жителя на карте"/> diff --git a/indra/newview/skins/default/xui/ru/panel_outfit_edit.xml b/indra/newview/skins/default/xui/ru/panel_outfit_edit.xml index 0657e6ff40..91c03342a7 100644 --- a/indra/newview/skins/default/xui/ru/panel_outfit_edit.xml +++ b/indra/newview/skins/default/xui/ru/panel_outfit_edit.xml @@ -2,7 +2,7 @@ <!-- Side tray Outfit Edit panel --> <panel name="outfit_edit"> <string name="No Outfit" value="Нет костюма"/> - <string name="unsaved_changes" value="Не сохраненные изменения"/> + <string name="unsaved_changes" value="Несохраненные изменения"/> <string name="now_editing" value="Сейчас редактируется"/> <panel.string name="not_available"> (нет) @@ -35,7 +35,7 @@ </layout_stack> </layout_panel> <layout_panel name="add_wearables_panel"> - <button label="Вещь, которая носится" name="plus_btn"/> + <button label="Носимая вещь" name="plus_btn"/> </layout_panel> </layout_stack> <panel name="no_add_wearables_button_bar"> diff --git a/indra/newview/skins/default/xui/ru/panel_people.xml b/indra/newview/skins/default/xui/ru/panel_people.xml index e8a25d5349..607921f2d6 100644 --- a/indra/newview/skins/default/xui/ru/panel_people.xml +++ b/indra/newview/skins/default/xui/ru/panel_people.xml @@ -64,13 +64,13 @@ <panel name="button_bar"> <layout_stack name="bottom_bar_ls"> <layout_panel name="view_profile_btn_lp"> - <button label="Профиль" name="view_profile_btn" tool_tip="Показывает изображение, группы и прочую информацию о жителе"/> + <button label="Профиль" name="view_profile_btn" tool_tip="Показать изображение, группы и прочую информацию о жителе"/> </layout_panel> <layout_panel name="im_btn_lp"> <button label="IM" name="im_btn" tool_tip="Начать сеанс IM"/> </layout_panel> <layout_panel name="call_btn_lp"> - <button label="Позвонить" name="call_btn" tool_tip="Позвонить этому жителю"/> + <button label="Звонок" name="call_btn" tool_tip="Позвонить этому жителю"/> </layout_panel> <layout_panel name="share_btn_lp"> <button label="Поделиться" name="share_btn" tool_tip="Поделиться объектом из инвентаря"/> @@ -81,13 +81,13 @@ </layout_stack> <layout_stack name="bottom_bar_ls1"> <layout_panel name="group_info_btn_lp"> - <button label="Профиль группы" name="group_info_btn" tool_tip="Показывает информацию о группе"/> + <button label="Профиль группы" name="group_info_btn" tool_tip="Показать информацию о группе"/> </layout_panel> <layout_panel name="chat_btn_lp"> - <button label="Групповой чат" name="chat_btn" tool_tip="Открывает сеанс чата"/> + <button label="Групповой чат" name="chat_btn" tool_tip="Открыть сеанс чата"/> </layout_panel> <layout_panel name="group_call_btn_lp"> - <button label="Звонок группе" name="group_call_btn" tool_tip="Звонок этой группе"/> + <button label="Звонок группе" name="group_call_btn" tool_tip="Позвонить этой группе"/> </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml index fb368b8b5e..a3ee5b7815 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml @@ -30,7 +30,7 @@ <spinner label="Время отображения всплывающих реплик:" name="nearby_toasts_lifetime"/> <spinner label="Время затухания всплывающих реплик:" name="nearby_toasts_fadingtime"/> <text name="translate_chb_label"> - Использовать машинный перевод во время общения + Использовать машинный перевод при общении </text> <text name="translate_language_text"> Переводить чат на: diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml index 878a729113..a6e9b00f2a 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml @@ -5,12 +5,12 @@ <text name="heading2"> Автоматическая установка позиции для: </text> - <check_box label="создания/редактирования" name="edit_camera_movement" tool_tip="Производить автоматическое позиционирование камеры при входе в режим редактирования и выходе из него"/> - <check_box label="внешности" name="appearance_camera_movement" tool_tip="Производить автоматическое позиционирование камеры в режиме изменения внешности"/> + <check_box label="создания/редактирования" name="edit_camera_movement" tool_tip="Автоматическое позиционирование камеры при входе в режим редактирования и выходе из него"/> + <check_box label="внешности" name="appearance_camera_movement" tool_tip="Автоматическое позиционирование камеры в режиме редактирования"/> <text name="keyboard_lbl"> Клавиатура: </text> - <check_box label="Клавиши стрелок всегда перемещают меня" name="arrow_keys_move_avatar_check"/> + <check_box label="Клавиши со стрелками всегда перемещают меня" name="arrow_keys_move_avatar_check"/> <check_box label="Бег после двойного нажатия клавиши" name="tap_tap_hold_to_run"/> <text name="mouse_lbl"> Мышь: diff --git a/indra/newview/skins/default/xui/ru/panel_profile.xml b/indra/newview/skins/default/xui/ru/panel_profile.xml index 79c060c050..fab57d678c 100644 --- a/indra/newview/skins/default/xui/ru/panel_profile.xml +++ b/indra/newview/skins/default/xui/ru/panel_profile.xml @@ -53,10 +53,10 @@ <button label="IM" name="im" tool_tip="Начать сеанс IM"/> </layout_panel> <layout_panel name="call_btn_lp"> - <button label="Позвонить" name="call" tool_tip="Позвонить этому жителю"/> + <button label="Звонок" name="call" tool_tip="Позвонить этому жителю"/> </layout_panel> <layout_panel name="chat_btn_lp"> - <button label="Телепортироваться" name="teleport" tool_tip="Предложить телепортацию"/> + <button label="Телепортация" name="teleport" tool_tip="Предложить телепортацию"/> </layout_panel> <layout_panel name="overflow_btn_lp"> <menu_button label="▼" name="overflow_btn" tool_tip="Заплатить жителю или поделиться с ним вещами"/> diff --git a/indra/newview/skins/default/xui/ru/panel_region_estate.xml b/indra/newview/skins/default/xui/ru/panel_region_estate.xml index d957274026..27ec10b323 100644 --- a/indra/newview/skins/default/xui/ru/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/ru/panel_region_estate.xml @@ -18,16 +18,16 @@ <check_box label="Глобальное время" name="use_global_time_check"/> <check_box label="Фиксированное" name="fixed_sun_check"/> <slider label="Фаза" name="sun_hour_slider"/> - <check_box label="Разрешить публичный доступ" name="externally_visible_check"/> + <check_box label="Разрешить общий доступ" name="externally_visible_check"/> <text name="Only Allow"> - Ограничить доступ проверкой: + Разрешить доступ только аккаунтам с подтверждением: </text> <check_box label="Информации об оплате в файле" name="limit_payment" tool_tip="Банить нераспознанных жителей"/> <check_box label="Проверка возраста" name="limit_age_verified" tool_tip="Банить жителей, не прошедших проверку возраста. Более подробная информация находится здесь: [SUPPORT_SITE]."/> <check_box label="Разрешить голосовое общение" name="voice_chat_check"/> <check_box label="Разрешить прямой телепорт" name="allow_direct_teleport"/> <button label="Применить" name="apply_btn"/> - <button label="Отправить сообщение в землевладение..." name="message_estate_btn"/> + <button label="Сообщение в землевладение..." name="message_estate_btn"/> <button label="Выкинуть жителя с землевладения..." name="kick_user_from_estate_btn"/> <text name="estate_manager_label"> Менеджеры землевладения: diff --git a/indra/newview/skins/default/xui/ru/panel_region_general.xml b/indra/newview/skins/default/xui/ru/panel_region_general.xml index 97bfbbeeea..8559be6c9e 100644 --- a/indra/newview/skins/default/xui/ru/panel_region_general.xml +++ b/indra/newview/skins/default/xui/ru/panel_region_general.xml @@ -31,10 +31,10 @@ <text label="Дозволенность" name="access_text"> Категория: </text> - <icons_combo_box label="Умеренная" name="access_combo"> + <icons_combo_box label="Умеренный" name="access_combo"> <icons_combo_box.item label="Для взрослых" name="Adult" value="42"/> - <icons_combo_box.item label="Умеренная" name="Mature" value="21"/> - <icons_combo_box.item label="Общая" name="PG" value="13"/> + <icons_combo_box.item label="Умеренный" name="Mature" value="21"/> + <icons_combo_box.item label="Общий" name="PG" value="13"/> </icons_combo_box> <button label="Применить" name="apply_btn"/> <button label="Телепортировать домой одного жителя..." name="kick_btn"/> diff --git a/indra/newview/skins/default/xui/ru/panel_region_terrain.xml b/indra/newview/skins/default/xui/ru/panel_region_terrain.xml index 08258b5034..af25565226 100644 --- a/indra/newview/skins/default/xui/ru/panel_region_terrain.xml +++ b/indra/newview/skins/default/xui/ru/panel_region_terrain.xml @@ -7,13 +7,13 @@ неизвестен </text> <spinner label="Уровень воды" name="water_height_spin"/> - <spinner label="Верхняя точка ландшафта" name="terrain_raise_spin"/> - <spinner label="Нижняя точка ландшафта" name="terrain_lower_spin"/> + <spinner label="Верх. точка ландшафта" name="terrain_raise_spin"/> + <spinner label="Ниж. точка ландшафта" name="terrain_lower_spin"/> <text name="detail_texture_text"> - Текстуры ландшафта (требования: 512x512, 24-разрядные, TGA) + Текстуры ландшафта (требования: 512x512, 24-битные, TGA) </text> <text name="height_text_lbl"> - 1 (Нижняя) + 1 (Низ) </text> <text name="height_text_lbl2"> 2 @@ -22,7 +22,7 @@ 3 </text> <text name="height_text_lbl4"> - 4 (Верхняя) + 4 (Верх) </text> <text name="height_text_lbl5"> Диапазон высот текстур @@ -31,7 +31,7 @@ Эти значения определяют степень смешивания наложенных текстур. </text> <text name="height_text_lbl11"> - Измеряются в метрах. Значение «Нижняя» – это МАКСИМАЛЬНАЯ высота текстуры №1, а значение «Верхняя» – это МИНИМАЛЬНАЯ высота текстуры №4. + Измеряются в метрах. Значение «Низ» – это МАКСИМАЛЬНАЯ высота текстуры №1, а значение «Верх» – это МИНИМАЛЬНАЯ высота текстуры №4. </text> <text name="height_text_lbl6"> Северо-запад @@ -39,20 +39,20 @@ <text name="height_text_lbl7"> Северо-восток </text> - <spinner label="Нижняя" name="height_start_spin_1"/> - <spinner label="Нижняя" name="height_start_spin_3"/> - <spinner label="Верхняя" name="height_range_spin_1"/> - <spinner label="Верхняя" name="height_range_spin_3"/> + <spinner label="Низ" name="height_start_spin_1"/> + <spinner label="Низ" name="height_start_spin_3"/> + <spinner label="Верх" name="height_range_spin_1"/> + <spinner label="Верх" name="height_range_spin_3"/> <text name="height_text_lbl8"> Юго-запад </text> <text name="height_text_lbl9"> Юго-восток </text> - <spinner label="Нижняя" name="height_start_spin_0"/> - <spinner label="Нижняя" name="height_start_spin_2"/> - <spinner label="Верхняя" name="height_range_spin_0"/> - <spinner label="Верхняя" name="height_range_spin_2"/> + <spinner label="Низ" name="height_start_spin_0"/> + <spinner label="Низ" name="height_start_spin_2"/> + <spinner label="Верх" name="height_range_spin_0"/> + <spinner label="Верх" name="height_range_spin_2"/> <button label="Загрузить ландшафт RAW..." name="download_raw_btn" tool_tip="Доступно только землевладельцам, не менеджерам"/> <button label="Передать ландшафт RAW..." name="upload_raw_btn" tool_tip="Доступно только землевладельцам, не менеджерам"/> <button label="Зафиксировать пределы" name="bake_terrain_btn" tool_tip="Установить высоту ландшафта по средней точке между верхней и нижней точками"/> diff --git a/indra/newview/skins/default/xui/ru/panel_region_texture.xml b/indra/newview/skins/default/xui/ru/panel_region_texture.xml index 369beb1e9b..c4b35a536d 100644 --- a/indra/newview/skins/default/xui/ru/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/ru/panel_region_texture.xml @@ -7,10 +7,10 @@ неизвестен </text> <text name="detail_texture_text"> - Текстуры ландшафта (требования: 512x512, 24-разрядные TGA-файлы) + Текстуры ландшафта (требования: 512x512, 24-битные TGA-файлы) </text> <text name="height_text_lbl"> - 1 (нижняя) + 1 (низ) </text> <text name="height_text_lbl2"> 2 @@ -19,7 +19,7 @@ 3 </text> <text name="height_text_lbl4"> - 4 (верхняя) + 4 (верх) </text> <text name="height_text_lbl5"> Диапазон высот текстур @@ -30,25 +30,25 @@ <text name="height_text_lbl7"> Северо-восток </text> - <spinner label="Низко" name="height_start_spin_1"/> - <spinner label="Низко" name="height_start_spin_3"/> - <spinner label="Высоко" name="height_range_spin_1"/> - <spinner label="Высоко" name="height_range_spin_3"/> + <spinner label="Низ" name="height_start_spin_1"/> + <spinner label="Низ" name="height_start_spin_3"/> + <spinner label="Верх" name="height_range_spin_1"/> + <spinner label="Верх" name="height_range_spin_3"/> <text name="height_text_lbl8"> Юго-запад </text> <text name="height_text_lbl9"> Юго-восток </text> - <spinner label="Низко" name="height_start_spin_0"/> - <spinner label="Низко" name="height_start_spin_2"/> - <spinner label="Высоко" name="height_range_spin_0"/> - <spinner label="Высоко" name="height_range_spin_2"/> + <spinner label="Низ" name="height_start_spin_0"/> + <spinner label="Низ" name="height_start_spin_2"/> + <spinner label="Верх" name="height_range_spin_0"/> + <spinner label="Верх" name="height_range_spin_2"/> <text name="height_text_lbl10"> Эти значения отображают диапазон перекрытия вышеуказанных текстур. </text> <text name="height_text_lbl11"> - Измеряется в метрах, НИЖНЕЕ значение – это МАКСИМАЛЬНАЯ высота текстуры №1, ВЕРХНЕЕ значение – это МИНИМАЛЬНАЯ высота текстуры №4. + Измеряется в метрах, значение «Низ» – это МАКСИМАЛЬНАЯ высота текстуры №1, значение «Верх» – это МИНИМАЛЬНАЯ высота текстуры №4. </text> <button label="Применить" name="apply_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml index df657b39c6..7fef5797a9 100644 --- a/indra/newview/skins/default/xui/ru/strings.xml +++ b/indra/newview/skins/default/xui/ru/strings.xml @@ -872,7 +872,7 @@ support@secondlife.com. Новое сопоставление элементов управления </string> <string name="AnimateYourAvatar"> - Анимация аватара + Анимировать ваш аватар </string> <string name="AttachToYourAvatar"> Прикрепить к аватару @@ -899,10 +899,10 @@ support@secondlife.com. Нет подключения </string> <string name="SIM_ACCESS_PG"> - Общая + Общий </string> <string name="SIM_ACCESS_MATURE"> - Умеренная + Умеренный </string> <string name="SIM_ACCESS_ADULT"> Для взрослых @@ -1073,7 +1073,7 @@ support@secondlife.com. Тату не надето </string> <string name="physics_not_worn"> - Физические данные не учитываются + Физика не учитывается </string> <string name="invalid_not_worn"> ошибка @@ -1124,7 +1124,7 @@ support@secondlife.com. Создать тату </string> <string name="create_new_physics"> - Создать физические данные + Создать физику </string> <string name="create_new_invalid"> ошибка @@ -1437,7 +1437,7 @@ support@secondlife.com. Резина </string> <string name="Light"> - Освещение + Светлый </string> <string name="KBShift"> SHIFT @@ -1617,7 +1617,7 @@ support@secondlife.com. Есть информация о платежах </string> <string name="PaymentInfoOnFile"> - Есть информация в файле о платежах + Есть зарегистрир. информация о платежах </string> <string name="NoPaymentInfoOnFile"> Нет информации о платежах @@ -2340,13 +2340,13 @@ support@secondlife.com. Не удается получить описание формата пикселей </string> <string name="MBTrueColorWindow"> - Для работы [APP_NAME] необходим режим True Color (32 разряда). -Задайте в настройках дисплея 32-разрядный режим цвета. + Для работы [APP_NAME] необходим режим True Color (32 бита). +Задайте в настройках дисплея 32-битный режим цвета. </string> <string name="MBAlpha"> - Не удается запустить [APP_NAME] из-за отсутствия доступа к 8-разрядному альфа-каналу. Обычно эта проблема возникает из-за неполадок с драйвером видеокарты. + Не удается запустить [APP_NAME] из-за отсутствия доступа к 8-битному альфа-каналу. Обычно эта проблема возникает из-за неполадок с драйвером видеокарты. Установите новые драйверы видеокарты. -Также задайте для монитора 32-разрядный режим True Color (Панель управления > Экран > Параметры). +Также задайте для монитора 32-битный режим True Color (Панель управления > Экран > Параметры). Если это сообщение продолжает отображаться, обратитесь на сайт [SUPPORT_SITE]. </string> <string name="MBPixelFmtSetErr"> @@ -2363,7 +2363,7 @@ support@secondlife.com. Если это сообщение продолжает отображаться, обратитесь на сайт [SUPPORT_SITE]. </string> <string name="5 O'Clock Shadow"> - Легкие сумерки + Жидкие </string> <string name="All White"> Полностью белые @@ -2381,10 +2381,10 @@ support@secondlife.com. Прикреплено </string> <string name="Attached Earlobes"> - Примыкающие мочки + Приросшие мочки </string> <string name="Back Fringe"> - Черная челка + Затылок </string> <string name="Baggy"> С мешками @@ -2417,7 +2417,7 @@ support@secondlife.com. Большая голова </string> <string name="Big Pectorals"> - Большие грудные мышцы + Выпуклая грудь </string> <string name="Big Spikes"> Большие «шипы» @@ -2603,7 +2603,7 @@ support@secondlife.com. Кустистые брови </string> <string name="Bushy Hair"> - Вьющиеся волосы + Пышные </string> <string name="Butt Size"> Размер зада @@ -2636,7 +2636,7 @@ support@secondlife.com. Ямка на подбородке </string> <string name="Chin Curtains"> - Борода в стиле Линкольна + Шкиперская бородка </string> <string name="Chin Depth"> Толщина подбородка @@ -2654,10 +2654,10 @@ support@secondlife.com. Переход от подбородка к шее </string> <string name="Clear"> - Очистить + Чистый </string> <string name="Cleft"> - Щелкой + Ямка </string> <string name="Close Set Eyes"> Близко посаженные @@ -2711,7 +2711,7 @@ support@secondlife.com. Темнее </string> <string name="Deep"> - Глубокий + Глубоко </string> <string name="Default Heels"> Стандартные каблуки @@ -2726,7 +2726,7 @@ support@secondlife.com. Вниз </string> <string name="Duffle Bag"> - Сумка из плотной ткани + Больше </string> <string name="Ear Angle"> Оттопыренность ушей @@ -2756,7 +2756,7 @@ support@secondlife.com. Открытость глаз </string> <string name="Eye Pop"> - Взмах ресницами + Вытаращить глаз </string> <string name="Eye Size"> Размер глаз @@ -2774,7 +2774,7 @@ support@secondlife.com. Высота бровей </string> <string name="Eyebrow Points"> - Точки бровей + Кончики бровей </string> <string name="Eyebrow Size"> Размер бровей @@ -2792,10 +2792,10 @@ support@secondlife.com. Выпученные глаза </string> <string name="Face Shear"> - Овал лица + Перекос лица </string> <string name="Facial Definition"> - Описание лица + Черты лица </string> <string name="Far Set Eyes"> Широко расставленные глаза @@ -2816,7 +2816,7 @@ support@secondlife.com. С манжетами </string> <string name="Flat"> - Плоский + Плоские </string> <string name="Flat Butt"> Плоский зад @@ -2903,7 +2903,7 @@ support@secondlife.com. Размер кисти </string> <string name="Handlebars"> - Рули + Длинные усы </string> <string name="Head Length"> Длина головы @@ -2924,10 +2924,10 @@ support@secondlife.com. Форма каблука </string> <string name="Height"> - Высота + Рост </string> <string name="High"> - высокий + Высокие </string> <string name="High Heels"> Высокий каблук @@ -2939,7 +2939,7 @@ support@secondlife.com. Высокая платформа </string> <string name="High and Tight"> - Высокое и плотное + Высокий и плотный </string> <string name="Higher"> Выше @@ -2951,13 +2951,13 @@ support@secondlife.com. Ширина бедер </string> <string name="In"> - Внутри + Внутрь </string> <string name="In Shdw Color"> Цвет внутренних теней </string> <string name="In Shdw Opacity"> - Прозрачность внутренних теней + Прозрачность внутр. теней </string> <string name="Inner Eye Corner"> Внутренние уголки глаз @@ -2990,13 +2990,13 @@ support@secondlife.com. Щеки </string> <string name="Knee Angle"> - Угол коленей + Угол колен </string> <string name="Knock Kneed"> - Ровность ног + Колченогие </string> <string name="Large"> - Большие + Больше </string> <string name="Large Hands"> Большие кисти @@ -3029,7 +3029,7 @@ support@secondlife.com. Меньше притяжения </string> <string name="Less Love"> - Меньше любви + Меньше </string> <string name="Less Muscles"> Меньше мышц @@ -3044,7 +3044,7 @@ support@secondlife.com. Меньше округлости </string> <string name="Less Saddle"> - Меньше седлообразности + Меньше </string> <string name="Less Square"> Меньше угловатости @@ -3053,16 +3053,16 @@ support@secondlife.com. Меньше объема </string> <string name="Less soul"> - Меньше энергичности + Меньше </string> <string name="Lighter"> Светлее </string> <string name="Lip Cleft"> - Зазор между губ + Ямка между губ </string> <string name="Lip Cleft Depth"> - Глубина зазора + Глубина ямки </string> <string name="Lip Fullness"> Полнота губ @@ -3128,28 +3128,28 @@ support@secondlife.com. Отложения на талии </string> <string name="Low"> - Низкое + Низкие </string> <string name="Low Heels"> Низкий каблук </string> <string name="Low Jaw"> - Низкая челюсть + Челюсть низко </string> <string name="Low Platforms"> Низкая платформа </string> <string name="Low and Loose"> - Низкое и свободное + Низкий и свободный </string> <string name="Lower"> Ниже </string> <string name="Lower Bridge"> - Ниже переносицу + Спинка носа </string> <string name="Lower Cheeks"> - Ниже щеки + Щеки ниже </string> <string name="Male"> Мужчина @@ -3185,7 +3185,7 @@ support@secondlife.com. Больше помады </string> <string name="More Love"> - Больше любви + Больше </string> <string name="More Lower Lip"> Больше нижняя губа @@ -3194,7 +3194,7 @@ support@secondlife.com. Больше мышц </string> <string name="More Muscular"> - Более мускулистое + Больше мышц </string> <string name="More Rosy"> Больше румянца @@ -3203,7 +3203,7 @@ support@secondlife.com. Больше округлости </string> <string name="More Saddle"> - Более седлообразно + Больше </string> <string name="More Sloped"> Более наклонный @@ -3218,10 +3218,10 @@ support@secondlife.com. Более вертикальный </string> <string name="More Volume"> - Больший объем + Больше объема </string> <string name="More soul"> - Больше духа + Больше </string> <string name="Moustache"> Усы @@ -3251,7 +3251,7 @@ support@secondlife.com. Узко </string> <string name="Narrow Back"> - Узкая спина + Узко сзади </string> <string name="Narrow Front"> Узкий перед @@ -3260,7 +3260,7 @@ support@secondlife.com. Узкие губы </string> <string name="Natural"> - Естественно + Естественный </string> <string name="Neck Length"> Длина шеи @@ -3356,13 +3356,13 @@ support@secondlife.com. Оранжевый </string> <string name="Out"> - Снаружи + Наружу </string> <string name="Out Shdw Color"> Цвет внешних теней </string> <string name="Out Shdw Opacity"> - Прозрачность внешних теней + Прозрачность внеш. теней </string> <string name="Outer Eye Corner"> Внешние уголки глаз @@ -3377,7 +3377,7 @@ support@secondlife.com. Глубокий прикус </string> <string name="Package"> - Пакет + Гульфик </string> <string name="Painted Nails"> Покрашенные @@ -3386,7 +3386,7 @@ support@secondlife.com. Бледный </string> <string name="Pants Crotch"> - Мотня + Шаг </string> <string name="Pants Fit"> Облегающие брюки @@ -3404,13 +3404,13 @@ support@secondlife.com. Пробор </string> <string name="Part Bangs"> - Челки с пробором + Челка с пробором </string> <string name="Pectorals"> Грудные мышцы </string> <string name="Pigment"> - Пигмент + Пигментация </string> <string name="Pigtails"> Хвосты по бокам @@ -3428,7 +3428,7 @@ support@secondlife.com. Ширина платформы </string> <string name="Pointy"> - Острый + Острые </string> <string name="Pointy Heels"> Острый каблук @@ -3440,13 +3440,13 @@ support@secondlife.com. Пышная юбка </string> <string name="Pop Left Eye"> - Хлопнуть левым глазом + Левый глаз </string> <string name="Pop Right Eye"> - Хлопнуть правым глазом + Правый глаз </string> <string name="Puffy"> - Припухшие + Пухлые </string> <string name="Puffy Eyelids"> Припухлость век @@ -3473,13 +3473,13 @@ support@secondlife.com. Румянец </string> <string name="Ruddy"> - Румяное + Румяный </string> <string name="Rumpled Hair"> Взъерошенные </string> <string name="Saddle Bags"> - Седельные сумки + Галифе </string> <string name="Scrawny Leg"> Сухопарая нога @@ -3488,25 +3488,25 @@ support@secondlife.com. Разделить </string> <string name="Shallow"> - Мелкий + Мелко </string> <string name="Shear Back"> - Очертание спины + Скос сзади </string> <string name="Shear Face"> - Овал лица + Перекос лица </string> <string name="Shear Front"> - Очертание спереди + Скос спереди </string> <string name="Shear Left Up"> - Очертание левой верхней части + Скос влево вверх </string> <string name="Shear Right Up"> - Очертание правой верхней части + Скос вправо вверх </string> <string name="Sheared Back"> - Уменьшенная спина + Уменьшено сзади </string> <string name="Sheared Front"> Уменьшено спереди @@ -3533,7 +3533,7 @@ support@secondlife.com. Высота обуви </string> <string name="Short"> - Короче + Ниже </string> <string name="Short Arms"> Короткие руки @@ -3608,7 +3608,7 @@ support@secondlife.com. Разрез: справа </string> <string name="Small"> - Маленький + Меньше </string> <string name="Small Hands"> Маленькие кисти @@ -3620,13 +3620,13 @@ support@secondlife.com. Гладко </string> <string name="Smooth Hair"> - Приглаженные волосы + Приглаженные </string> <string name="Socks Length"> Длина носков </string> <string name="Soulpatch"> - Бородка под губой + Эспаньолка </string> <string name="Sparse"> Жидкие @@ -3662,13 +3662,13 @@ support@secondlife.com. Зачесанные вперед </string> <string name="Tall"> - Высокие + Выше </string> <string name="Taper Back"> - Градуировка сзади + Конус сзади </string> <string name="Taper Front"> - Градуировка спереди + Конус спереди </string> <string name="Thick Heels"> Широкий каблук @@ -3737,16 +3737,16 @@ support@secondlife.com. Неестественный </string> <string name="Upper Bridge"> - Переносицу выше + Переносица </string> <string name="Upper Cheeks"> Щеки выше </string> <string name="Upper Chin Cleft"> - Ямку на подбородке выше + Ямка на подбородке выше </string> <string name="Upper Eyelid Fold"> - Складку века выше + Складка верхнего века </string> <string name="Upturned"> Вверх @@ -3758,7 +3758,7 @@ support@secondlife.com. Высота талии </string> <string name="Well-Fed"> - Упитанное + Упитанные </string> <string name="White Hair"> Белые волосы @@ -3767,7 +3767,7 @@ support@secondlife.com. Широко </string> <string name="Wide Back"> - Широкая спина + Широко сзади </string> <string name="Wide Front"> Широкий перед @@ -4252,7 +4252,7 @@ support@secondlife.com. Женщина – ух ты! </string> <string name="/bow"> - /поклон + /поклониться </string> <string name="/clap"> /хлопнуть @@ -4794,7 +4794,7 @@ support@secondlife.com. Компас </string> <string name="Command_Destinations_Label"> - Места + Пункты </string> <string name="Command_Gestures_Label"> Жесты @@ -4845,16 +4845,16 @@ support@secondlife.com. Вид </string> <string name="Command_Voice_Label"> - Голоса собеседников + Настройки голоса </string> <string name="Command_AboutLand_Tooltip"> Информация о посещаемой вами земле </string> <string name="Command_Appearance_Tooltip"> - Сменить аватар + Изменить аватар </string> <string name="Command_Avatar_Tooltip"> - Выберите весь аватар + Выбор аватара </string> <string name="Command_Build_Tooltip"> Построение объектов и формирование ландшафта @@ -4917,7 +4917,7 @@ support@secondlife.com. Изменение угла камеры </string> <string name="Command_Voice_Tooltip"> - Люди около вас с оспособностью говорить + Громкость звонков и голосов окружающих вас людей </string> <string name="Retain%"> Остаток% |