diff options
261 files changed, 3179 insertions, 1541 deletions
@@ -530,3 +530,4 @@ b4d76b5590fdf8bab72c64442353753a527cbc44 5.0.5-release 3e5035dfd8af49bd4c0009f0a76ef46a15991a45 5.0.6-release abcab37e1b29414ab8c03af9ca2ab489d809788a 5.0.7-release 505a492f30bd925bb48e2e093ae77c3c2b4c740f 5.0.8-release +40ca7118765be85a043b31b011e4ee6bd9e33c95 5.0.9-release diff --git a/autobuild.xml b/autobuild.xml index 48eb3b7e93..20dfba27bb 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -556,9 +556,9 @@ <key>archive</key> <map> <key>hash</key> - <string>7b15c464cfa7c10281842a755417e948</string> + <string>6a0977e833aaeeba3603b2f8fab702cd</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11002/61105/dullahan-1.1.888_3.3202.1686.gd665578-darwin64-510883.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11410/64519/dullahan-1.1.901_3.3202.1686.gd665578-darwin64-511200.tar.bz2</string> </map> <key>name</key> <string>darwin64</string> @@ -568,9 +568,9 @@ <key>archive</key> <map> <key>hash</key> - <string>588614c46b080939af64fd062ca1efba</string> + <string>bc7fead36b6ff9905af1005485b3e293</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11004/61115/dullahan-1.1.888_3.3202.1686.gd665578-windows-510883.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11413/64532/dullahan-1.1.901_3.3202.1686.gd665578-windows-511200.tar.bz2</string> </map> <key>name</key> <string>windows</string> @@ -580,16 +580,16 @@ <key>archive</key> <map> <key>hash</key> - <string>8d89bb3be1d1e91748e5fc93f0122a6e</string> + <string>32acc396c6d7a369f0d2dc49b953dc89</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11003/61113/dullahan-1.1.888_3.3202.1686.gd665578-windows64-510883.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11412/64535/dullahan-1.1.901_3.3202.1686.gd665578-windows64-511200.tar.bz2</string> </map> <key>name</key> <string>windows64</string> </map> </map> <key>version</key> - <string>1.1.888_3.3202.1686.gd665578</string> + <string>1.1.901_3.3202.1686.gd665578</string> </map> <key>elfio</key> <map> @@ -3231,9 +3231,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>archive</key> <map> <key>hash</key> - <string>2eb437006a918ea1e9915d5ae47412e7</string> + <string>92235fabdca2d3865014f7ec630e2688</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/10361/53495/viewer_manager-1.0.510348-darwin64-510348.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11444/64857/viewer_manager-1.0.511221-darwin64-511221.tar.bz2</string> </map> <key>name</key> <string>darwin64</string> @@ -3255,9 +3255,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>archive</key> <map> <key>hash</key> - <string>56c56241ef88fb97bea3501e66e3644b</string> + <string>bfea9c61d0b29d741081c0c8a315d364</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/10363/53501/viewer_manager-1.0.510348-windows-510348.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11446/64863/viewer_manager-1.0.511221-windows-511221.tar.bz2</string> </map> <key>name</key> <string>windows</string> @@ -3268,7 +3268,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>source_type</key> <string>hg</string> <key>version</key> - <string>1.0.510348</string> + <string>1.0.511221</string> </map> <key>vlc-bin</key> <map> diff --git a/doc/contributions.txt b/doc/contributions.txt index 0b6fcc1626..c98c974e62 100755 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -215,6 +215,7 @@ Ansariel Hiller MAINT-7028 MAINT-7059 MAINT-6519 + MAINT-7899 STORM-2105 Aralara Rajal Arare Chantilly @@ -825,6 +826,7 @@ Kitty Barnett MAINT-6568 STORM-2149 MAINT-7581 + MAINT-7081 Kolor Fall Komiko Okamoto Korvel Noh diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py index 7050ce43b7..598261e3d7 100755 --- a/indra/lib/python/indra/util/llmanifest.py +++ b/indra/lib/python/indra/util/llmanifest.py @@ -529,7 +529,7 @@ class LLManifest(object): print "Running command:", command sys.stdout.flush() try: - subprocess.check_call(command, shell=True) + subprocess.check_call(command) except subprocess.CalledProcessError as err: raise ManifestError( "Command %s returned non-zero status (%s)" % (command, err.returncode) ) @@ -545,6 +545,7 @@ class LLManifest(object): def put_in_file(self, contents, dst, src=None): # write contents as dst dst_path = self.dst_path_of(dst) + self.cmakedirs(os.path.dirname(dst_path)) f = open(dst_path, "wb") try: f.write(contents) diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp index 1e1dfd2602..c5ba23f68c 100644 --- a/indra/llcommon/llcoros.cpp +++ b/indra/llcommon/llcoros.cpp @@ -40,6 +40,10 @@ #include "stringize.h" #include "llexception.h" +#if LL_WINDOWS +#include <excpt.h> +#endif + namespace { void no_op() {} } // anonymous namespace @@ -276,6 +280,43 @@ void LLCoros::setStackSize(S32 stacksize) mStackSize = stacksize; } +#if LL_WINDOWS + +static const U32 STATUS_MSC_EXCEPTION = 0xE06D7363; // compiler specific + +U32 exception_filter(U32 code, struct _EXCEPTION_POINTERS *exception_infop) +{ + if (code == STATUS_MSC_EXCEPTION) + { + // C++ exception, go on + return EXCEPTION_CONTINUE_SEARCH; + } + else + { + // handle it + return EXCEPTION_EXECUTE_HANDLER; + } +} + +void LLCoros::winlevel(const callable_t& callable) +{ + __try + { + callable(); + } + __except (exception_filter(GetExceptionCode(), GetExceptionInformation())) + { + // convert to C++ styled exception + // Note: it might be better to use _se_set_translator + // if you want exception to inherit full callstack + char integer_string[32]; + sprintf(integer_string, "SEH, code: %lu\n", GetExceptionCode()); + throw std::exception(integer_string); + } +} + +#endif + // Top-level wrapper around caller's coroutine callable. This function accepts // the coroutine library's implicit coro::self& parameter and saves it, but // does not pass it down to the caller's callable. @@ -286,7 +327,11 @@ void LLCoros::toplevel(coro::self& self, CoroData* data, const callable_t& calla // run the code the caller actually wants in the coroutine try { +#if LL_WINDOWS + winlevel(callable); +#else callable(); +#endif } catch (const LLContinueError&) { diff --git a/indra/llcommon/llcoros.h b/indra/llcommon/llcoros.h index bbe2d22af4..884d6b159c 100644 --- a/indra/llcommon/llcoros.h +++ b/indra/llcommon/llcoros.h @@ -182,6 +182,9 @@ private: bool cleanup(const LLSD&); struct CoroData; static void no_cleanup(CoroData*); +#if LL_WINDOWS + static void winlevel(const callable_t& callable); +#endif static void toplevel(coro::self& self, CoroData* data, const callable_t& callable); static CoroData& get_CoroData(const std::string& caller); diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp index bb345e282a..cd7125197c 100644 --- a/indra/llimage/llimage.cpp +++ b/indra/llimage/llimage.cpp @@ -1536,7 +1536,7 @@ LLPointer<LLImageRaw> LLImageRaw::scaled(S32 new_width, S32 new_height) if ((old_width == new_width) && (old_height == new_height)) { result = new LLImageRaw(old_width, old_height, components); - if (!result) + if (!result || result->isBufferInvalid()) { LL_WARNS() << "Failed to allocate new image" << LL_ENDL; return result; @@ -1550,7 +1550,7 @@ LLPointer<LLImageRaw> LLImageRaw::scaled(S32 new_width, S32 new_height) if (new_data_size > 0) { result = new LLImageRaw(new_width, new_height, components); - if (!result) + if (!result || result->isBufferInvalid()) { LL_WARNS() << "Failed to allocate new image" << LL_ENDL; return result; diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index 44a33d9bc3..8b73f0ae8e 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -2032,13 +2032,8 @@ void LLPathParams::copyParams(const LLPathParams ¶ms) setSkew(params.getSkew()); } -S32 profile_delete_lock = 1 ; LLProfile::~LLProfile() { - if(profile_delete_lock) - { - LL_ERRS() << "LLProfile should not be deleted here!" << LL_ENDL ; - } } @@ -2103,9 +2098,7 @@ LLVolume::~LLVolume() sNumMeshPoints -= mMesh.size(); delete mPathp; - profile_delete_lock = 0 ; delete mProfilep; - profile_delete_lock = 1 ; mPathp = NULL; mProfilep = NULL; diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h index bf81c978a0..bba691d243 100644 --- a/indra/llmath/llvolume.h +++ b/indra/llmath/llvolume.h @@ -681,6 +681,8 @@ protected: class LLProfile { + friend class LLVolume; + public: LLProfile() : mOpen(FALSE), @@ -691,8 +693,6 @@ public: { } - ~LLProfile(); - S32 getTotal() const { return mTotal; } S32 getTotalOut() const { return mTotalOut; } // Total number of outside points BOOL isFlat(S32 face) const { return (mFaces[face].mCount == 2); } @@ -725,6 +725,8 @@ public: friend std::ostream& operator<<(std::ostream &s, const LLProfile &profile); protected: + ~LLProfile(); + static S32 getNumNGonPoints(const LLProfileParams& params, S32 sides, F32 offset=0.0f, F32 bevel = 0.0f, F32 ang_scale = 1.f, S32 split = 0); void genNGon(const LLProfileParams& params, S32 sides, F32 offset=0.0f, F32 bevel = 0.0f, F32 ang_scale = 1.f, S32 split = 0); diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp index 768dc8284b..8401cb976e 100644 --- a/indra/llprimitive/lldaeloader.cpp +++ b/indra/llprimitive/lldaeloader.cpp @@ -862,16 +862,26 @@ bool LLDAELoader::OpenFile(const std::string& filename) setLoadState( READING_FILE ); //no suitable slm exists, load from the .dae file + + // Collada expects file and folder names to be escaped + // Note: cdom::nativePathToUri() + const char* allowed = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789" + "%-._~:\"|\\/"; + std::string uri_filename = LLURI::escape(filename, allowed); + DAE dae; domCOLLADA* dom; if (mPreprocessDAE) { - dom = dae.openFromMemory(filename, preprocessDAE(filename).c_str()); + dom = dae.openFromMemory(uri_filename, preprocessDAE(filename).c_str()); } else { LL_INFOS() << "Skipping dae preprocessing" << LL_ENDL; - dom = dae.open(filename); + dom = dae.open(uri_filename); } if (!dom) @@ -900,7 +910,7 @@ bool LLDAELoader::OpenFile(const std::string& filename) daeInt count = db->getElementCount(NULL, COLLADA_TYPE_MESH); - daeDocument* doc = dae.getDoc(filename); + daeDocument* doc = dae.getDoc(uri_filename); if (!doc) { LL_WARNS() << "can't find internal doc" << LL_ENDL; diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index 420cd2d9c4..5048799854 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -1065,7 +1065,14 @@ LLVertexBuffer::~LLVertexBuffer() sVertexCount -= mNumVerts; sIndexCount -= mNumIndices; - llassert_always(!mMappedData && !mMappedIndexData); + if (mMappedData) + { + LL_ERRS() << "Failed to clear vertex buffer's vertices" << LL_ENDL; + } + if (mMappedIndexData) + { + LL_ERRS() << "Failed to clear vertex buffer's indices" << LL_ENDL; + } }; void LLVertexBuffer::placeFence() const @@ -1167,7 +1174,7 @@ void LLVertexBuffer::releaseIndices() sGLCount--; } -void LLVertexBuffer::createGLBuffer(U32 size) +bool LLVertexBuffer::createGLBuffer(U32 size) { if (mGLBuffer) { @@ -1176,9 +1183,11 @@ void LLVertexBuffer::createGLBuffer(U32 size) if (size == 0) { - return; + return true; } + bool sucsess = true; + mEmpty = true; mMappedDataUsingVBOs = useVBOs(); @@ -1196,9 +1205,15 @@ void LLVertexBuffer::createGLBuffer(U32 size) mSize = size; claimMem(mSize); } + + if (!mMappedData) + { + sucsess = false; + } + return sucsess; } -void LLVertexBuffer::createGLIndices(U32 size) +bool LLVertexBuffer::createGLIndices(U32 size) { if (mGLIndices) { @@ -1207,9 +1222,11 @@ void LLVertexBuffer::createGLIndices(U32 size) if (size == 0) { - return; + return true; } + bool sucsess = true; + mEmpty = true; //pad by 16 bytes for aligned copies @@ -1230,6 +1247,12 @@ void LLVertexBuffer::createGLIndices(U32 size) mGLIndices = ++gl_buffer_idx; mIndicesSize = size; } + + if (!mMappedIndexData) + { + sucsess = false; + } + return sucsess; } void LLVertexBuffer::destroyGLBuffer() @@ -1272,10 +1295,12 @@ void LLVertexBuffer::destroyGLIndices() //unbind(); } -void LLVertexBuffer::updateNumVerts(S32 nverts) +bool LLVertexBuffer::updateNumVerts(S32 nverts) { llassert(nverts >= 0); + bool sucsess = true; + if (nverts > 65536) { LL_WARNS() << "Vertex buffer overflow!" << LL_ENDL; @@ -1286,31 +1311,37 @@ void LLVertexBuffer::updateNumVerts(S32 nverts) if (needed_size > mSize || needed_size <= mSize/2) { - createGLBuffer(needed_size); + sucsess &= createGLBuffer(needed_size); } sVertexCount -= mNumVerts; mNumVerts = nverts; sVertexCount += mNumVerts; + + return sucsess; } -void LLVertexBuffer::updateNumIndices(S32 nindices) +bool LLVertexBuffer::updateNumIndices(S32 nindices) { llassert(nindices >= 0); + bool sucsess = true; + U32 needed_size = sizeof(U16) * nindices; if (needed_size > mIndicesSize || needed_size <= mIndicesSize/2) { - createGLIndices(needed_size); + sucsess &= createGLIndices(needed_size); } sIndexCount -= mNumIndices; mNumIndices = nindices; sIndexCount += mNumIndices; + + return sucsess; } -void LLVertexBuffer::allocateBuffer(S32 nverts, S32 nindices, bool create) +bool LLVertexBuffer::allocateBuffer(S32 nverts, S32 nindices, bool create) { stop_glerror(); @@ -1320,13 +1351,15 @@ void LLVertexBuffer::allocateBuffer(S32 nverts, S32 nindices, bool create) LL_ERRS() << "Bad vertex buffer allocation: " << nverts << " : " << nindices << LL_ENDL; } - updateNumVerts(nverts); - updateNumIndices(nindices); + bool sucsess = true; + + sucsess &= updateNumVerts(nverts); + sucsess &= updateNumIndices(nindices); if (create && (nverts || nindices)) { //actually allocate space for the vertex buffer if using VBO mapping - flush(); + flush(); //unmap if (gGLManager.mHasVertexArrayObject && useVBOs() && sUseVAO) { @@ -1336,6 +1369,8 @@ void LLVertexBuffer::allocateBuffer(S32 nverts, S32 nindices, bool create) setupVertexArray(); } } + + return sucsess; } static LLTrace::BlockTimerStatHandle FTM_SETUP_VERTEX_ARRAY("Setup VAO"); @@ -1466,23 +1501,27 @@ void LLVertexBuffer::setupVertexArray() unbind(); } -void LLVertexBuffer::resizeBuffer(S32 newnverts, S32 newnindices) +bool LLVertexBuffer::resizeBuffer(S32 newnverts, S32 newnindices) { llassert(newnverts >= 0); llassert(newnindices >= 0); - updateNumVerts(newnverts); - updateNumIndices(newnindices); + bool sucsess = true; + + sucsess &= updateNumVerts(newnverts); + sucsess &= updateNumIndices(newnindices); if (useVBOs()) { - flush(); + flush(); //unmap if (mGLArray) { //if size changed, offsets changed setupVertexArray(); } } + + return sucsess; } bool LLVertexBuffer::useVBOs() const diff --git a/indra/llrender/llvertexbuffer.h b/indra/llrender/llvertexbuffer.h index c05fd01595..bd27296eb6 100644 --- a/indra/llrender/llvertexbuffer.h +++ b/indra/llrender/llvertexbuffer.h @@ -214,12 +214,12 @@ protected: bool bindGLArray(); void releaseBuffer(); void releaseIndices(); - void createGLBuffer(U32 size); - void createGLIndices(U32 size); + bool createGLBuffer(U32 size); + bool createGLIndices(U32 size); void destroyGLBuffer(); void destroyGLIndices(); - void updateNumVerts(S32 nverts); - void updateNumIndices(S32 nindices); + bool updateNumVerts(S32 nverts); + bool updateNumIndices(S32 nindices); void unmapBuffer(); public: @@ -235,8 +235,8 @@ public: virtual void setBuffer(U32 data_mask); // calls setupVertexBuffer() if data_mask is not 0 void flush(); //flush pending data to GL memory // allocate buffer - void allocateBuffer(S32 nverts, S32 nindices, bool create); - virtual void resizeBuffer(S32 newnverts, S32 newnindices); + bool allocateBuffer(S32 nverts, S32 nindices, bool create); + virtual bool resizeBuffer(S32 newnverts, S32 newnindices); // Only call each getVertexPointer, etc, once before calling unmapBuffer() // call unmapBuffer() after calls to getXXXStrider() before any cals to setBuffer() diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 8c7df45884..510a2537b9 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -808,11 +808,12 @@ void LLButton::draw() } else { - imagep->draw(0, 0, (enabled ? mImageColor.get() : disabled_color) % alpha ); + S32 y = getLocalRect().getHeight() - imagep->getHeight(); + imagep->draw(0, y, (enabled ? mImageColor.get() : disabled_color) % alpha); if (mCurGlowStrength > 0.01f) { gGL.setSceneBlendType(glow_type); - imagep->drawSolid(0, 0, glow_color % (mCurGlowStrength * alpha)); + imagep->drawSolid(0, y, glow_color % (mCurGlowStrength * alpha)); gGL.setSceneBlendType(LLRender::BT_ALPHA); } } @@ -954,7 +955,8 @@ void LLButton::drawBorder(LLUIImage* imagep, const LLColor4& color, S32 size) } else { - imagep->drawBorder(0, 0, color, size); + S32 y = getLocalRect().getHeight() - imagep->getHeight(); + imagep->drawBorder(0, y, color, size); } } diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 3ece1c12bf..a245dd8f78 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1145,11 +1145,11 @@ void LLFloater::handleReshape(const LLRect& new_rect, bool by_user) { setDocked( false, false); } - storeRectControl(); mPositioning = LLFloaterEnums::POSITIONING_RELATIVE; LLRect screen_rect = calcScreenRect(); mPosition = LLCoordGL(screen_rect.getCenterX(), screen_rect.getCenterY()).convert(); - } + } + storeRectControl(); // gather all snapped dependents for(handle_set_iter_t dependent_it = mDependents.begin(); diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 8dd0b06ed2..f67bb22f5b 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -47,7 +47,9 @@ #include "llfloatercamera.h" #include "llfloaterimcontainer.h" #include "llfloaterperms.h" +#include "llfloaterpreference.h" #include "llfloaterreg.h" +#include "llfloatersnapshot.h" #include "llfloatertools.h" #include "llgroupactions.h" #include "llgroupmgr.h" @@ -4334,15 +4336,145 @@ void LLAgent::sendAgentDataUpdateRequest() void LLAgent::sendAgentUserInfoRequest() { - if(getID().isNull()) - return; // not logged in - gMessageSystem->newMessageFast(_PREHASH_UserInfoRequest); - gMessageSystem->nextBlockFast(_PREHASH_AgentData); - gMessageSystem->addUUIDFast(_PREHASH_AgentID, getID()); - gMessageSystem->addUUIDFast(_PREHASH_SessionID, getSessionID()); - sendReliableMessage(); + std::string cap; + + if (getID().isNull()) + return; // not logged in + + if (mRegionp) + cap = mRegionp->getCapability("UserInfo"); + + if (!cap.empty()) + { + LLCoros::instance().launch("requestAgentUserInfoCoro", + boost::bind(&LLAgent::requestAgentUserInfoCoro, this, cap)); + } + else + { + sendAgentUserInfoRequestMessage(); + } } +void LLAgent::requestAgentUserInfoCoro(std::string capurl) +{ + LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID); + LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t + httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("requestAgentUserInfoCoro", httpPolicy)); + LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); + LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions); + LLCore::HttpHeaders::ptr_t httpHeaders; + + httpOpts->setFollowRedirects(true); + + LLSD result = httpAdapter->getAndSuspend(httpRequest, capurl, httpOpts, httpHeaders); + + LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS]; + LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults); + + if (!status) + { + LL_WARNS("UserInfo") << "Failed to get user information." << LL_ENDL; + return; + } + else if (!result["success"].asBoolean()) + { + LL_WARNS("UserInfo") << "Failed to get user information: " << result["message"] << LL_ENDL; + return; + } + + bool im_via_email; + bool is_verified_email; + std::string email; + std::string dir_visibility; + + im_via_email = result["im_via_email"].asBoolean(); + is_verified_email = result["is_verified"].asBoolean(); + email = result["email"].asString(); + dir_visibility = result["directory_visibility"].asString(); + + // TODO: This should probably be changed. I'm not entirely comfortable + // having LLAgent interact directly with the UI in this way. + LLFloaterPreference::updateUserInfo(dir_visibility, im_via_email, is_verified_email); + LLFloaterSnapshot::setAgentEmail(email); +} + +void LLAgent::sendAgentUpdateUserInfo(bool im_via_email, const std::string& directory_visibility) +{ + std::string cap; + + if (getID().isNull()) + return; // not logged in + + if (mRegionp) + cap = mRegionp->getCapability("UserInfo"); + + if (!cap.empty()) + { + LLCoros::instance().launch("updateAgentUserInfoCoro", + boost::bind(&LLAgent::updateAgentUserInfoCoro, this, cap, im_via_email, directory_visibility)); + } + else + { + sendAgentUpdateUserInfoMessage(im_via_email, directory_visibility); + } +} + + +void LLAgent::updateAgentUserInfoCoro(std::string capurl, bool im_via_email, std::string directory_visibility) +{ + LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID); + LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t + httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("requestAgentUserInfoCoro", httpPolicy)); + LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); + LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions); + LLCore::HttpHeaders::ptr_t httpHeaders; + + httpOpts->setFollowRedirects(true); + LLSD body(LLSDMap + ("dir_visibility", LLSD::String(directory_visibility)) + ("im_via_email", LLSD::Boolean(im_via_email))); + + LLSD result = httpAdapter->postAndSuspend(httpRequest, capurl, body, httpOpts, httpHeaders); + + LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS]; + LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults); + + if (!status) + { + LL_WARNS("UserInfo") << "Failed to set user information." << LL_ENDL; + } + else if (!result["success"].asBoolean()) + { + LL_WARNS("UserInfo") << "Failed to set user information: " << result["message"] << LL_ENDL; + } +} + +// deprecated: +// May be removed when UserInfo cap propagates to all simhosts in grid +void LLAgent::sendAgentUserInfoRequestMessage() +{ + gMessageSystem->newMessageFast(_PREHASH_UserInfoRequest); + gMessageSystem->nextBlockFast(_PREHASH_AgentData); + gMessageSystem->addUUIDFast(_PREHASH_AgentID, getID()); + gMessageSystem->addUUIDFast(_PREHASH_SessionID, getSessionID()); + sendReliableMessage(); +} + +void LLAgent::sendAgentUpdateUserInfoMessage(bool im_via_email, const std::string& directory_visibility) +{ + gMessageSystem->newMessageFast(_PREHASH_UpdateUserInfo); + gMessageSystem->nextBlockFast(_PREHASH_AgentData); + gMessageSystem->addUUIDFast(_PREHASH_AgentID, getID()); + gMessageSystem->addUUIDFast(_PREHASH_SessionID, getSessionID()); + gMessageSystem->nextBlockFast(_PREHASH_UserData); + gMessageSystem->addBOOLFast(_PREHASH_IMViaEMail, im_via_email); + gMessageSystem->addString("DirectoryVisibility", directory_visibility); + gAgent.sendReliableMessage(); + +} +// end deprecated +//------ + void LLAgent::observeFriends() { if(!mFriendObserver) @@ -4410,18 +4542,6 @@ const void LLAgent::getTeleportSourceSLURL(LLSLURL& slurl) const slurl = *mTeleportSourceSLURL; } -void LLAgent::sendAgentUpdateUserInfo(bool im_via_email, const std::string& directory_visibility ) -{ - gMessageSystem->newMessageFast(_PREHASH_UpdateUserInfo); - gMessageSystem->nextBlockFast(_PREHASH_AgentData); - gMessageSystem->addUUIDFast(_PREHASH_AgentID, getID()); - gMessageSystem->addUUIDFast(_PREHASH_SessionID, getSessionID()); - gMessageSystem->nextBlockFast(_PREHASH_UserData); - gMessageSystem->addBOOLFast(_PREHASH_IMViaEMail, im_via_email); - gMessageSystem->addString("DirectoryVisibility", directory_visibility); - gAgent.sendReliableMessage(); -} - // static void LLAgent::dumpGroupInfo() { diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index b5da5e9062..4bb4d317e8 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -912,9 +912,17 @@ public: void sendReliableMessage(); void sendAgentDataUpdateRequest(); void sendAgentUserInfoRequest(); - // IM to Email and Online visibility + +// IM to Email and Online visibility void sendAgentUpdateUserInfo(bool im_to_email, const std::string& directory_visibility); +private: + void requestAgentUserInfoCoro(std::string capurl); + void updateAgentUserInfoCoro(std::string capurl, bool im_via_email, std::string directory_visibility); + // DEPRECATED: may be removed when User Info cap propagates + void sendAgentUserInfoRequestMessage(); + void sendAgentUpdateUserInfoMessage(bool im_via_email, const std::string& directory_visibility); + //-------------------------------------------------------------------- // Receive //-------------------------------------------------------------------- diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index c320c9c0be..087a672d69 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -685,7 +685,6 @@ LLAppViewer::LLAppViewer() mSavePerAccountSettings(false), // don't save settings on logout unless login succeeded. mQuitRequested(false), mLogoutRequestSent(false), - mYieldTime(-1), mLastAgentControlFlags(0), mLastAgentForceUpdate(0), mMainloopTimeout(NULL), @@ -1449,10 +1448,11 @@ bool LLAppViewer::frame() LL_RECORD_BLOCK_TIME(FTM_SLEEP); // yield some time to the os based on command line option - if(mYieldTime >= 0) + static LLCachedControl<S32> yield_time(gSavedSettings, "YieldTime", -1); + if(yield_time >= 0) { LL_RECORD_BLOCK_TIME(FTM_YIELD); - ms_sleep(mYieldTime); + ms_sleep(yield_time); } // yield cooperatively when not running as foreground window @@ -2738,8 +2738,6 @@ bool LLAppViewer::initConfiguration() } } - mYieldTime = gSavedSettings.getS32("YieldTime"); - // Display splash screen. Must be after above check for previous // crash as this dialog is always frontmost. diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index 75ce1b5524..6eb45d2495 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -289,7 +289,6 @@ private: bool mQuitRequested; // User wants to quit, may have modified documents open. bool mLogoutRequestSent; // Disconnect message sent to simulator, no longer safe to send messages to the sim. - S32 mYieldTime; U32 mLastAgentControlFlags; F32 mLastAgentForceUpdate; struct SettingsFiles* mSettingsLocationList; diff --git a/indra/newview/llcommandhandler.cpp b/indra/newview/llcommandhandler.cpp index 5ea7efc045..76d965b1f1 100644 --- a/indra/newview/llcommandhandler.cpp +++ b/indra/newview/llcommandhandler.cpp @@ -134,7 +134,11 @@ bool LLCommandHandlerRegistry::dispatch(const std::string& cmd, { break; } - + //skip initial request from external browser before STATE_BROWSER_INIT + if (LLStartUp::getStartupState() == STATE_FIRST) + { + return true; + } cur_time = LLTimer::getElapsedSeconds(); if (cur_time < last_throttle_time + THROTTLE_PERIOD) { diff --git a/indra/newview/llconversationlog.cpp b/indra/newview/llconversationlog.cpp index 4e69896b69..9ccf9b98f7 100644 --- a/indra/newview/llconversationlog.cpp +++ b/indra/newview/llconversationlog.cpp @@ -196,8 +196,6 @@ LLConversationLog::LLConversationLog() : keep_log_ctrlp->getSignal()->connect(boost::bind(&LLConversationLog::enableLogging, this, _2)); if (log_mode > 0) { - loadFromFile(getFileName()); - enableLogging(log_mode); } } @@ -483,16 +481,15 @@ bool LLConversationLog::saveToFile(const std::string& filename) // examples of two file entries // [1343221177] 0 1 0 John Doe| 7e4ec5be-783f-49f5-71dz-16c58c64c145 4ec62a74-c246-0d25-2af6-846beac2aa55 john.doe| // [1343222639] 2 0 0 Ad-hoc Conference| c3g67c89-c479-4c97-b21d-32869bcfe8rc 68f1c33e-4135-3e3e-a897-8c9b23115c09 Ad-hoc Conference hash597394a0-9982-766d-27b8-c75560213b9a| - fprintf(fp, "[%lld] %d %d %d %s| %s %s %s|\n", (S64)conv_it->getTime().value(), (S32)conv_it->getConversationType(), (S32)0, (S32)conv_it->hasOfflineMessages(), - conv_it->getConversationName().c_str(), + conv_it->getConversationName().c_str(), participant_id.c_str(), conversation_id.c_str(), - conv_it->getHistoryFileName().c_str()); + LLURI::escape(conv_it->getHistoryFileName()).c_str()); } fclose(fp); return true; @@ -511,6 +508,7 @@ bool LLConversationLog::loadFromFile(const std::string& filename) LL_WARNS() << "Couldn't open call log list" << filename << LL_ENDL; return false; } + bool purge_required = false; char buffer[MAX_STRING]; char conv_name_buffer[MAX_STRING]; @@ -546,7 +544,7 @@ bool LLConversationLog::loadFromFile(const std::string& filename) .conversation_name(conv_name_buffer) .participant_id(LLUUID(part_id_buffer)) .session_id(LLUUID(conv_id_buffer)) - .history_filename(history_file_name); + .history_filename(LLURI::unescape(history_file_name)); LLConversation conversation(params); @@ -555,6 +553,7 @@ bool LLConversationLog::loadFromFile(const std::string& filename) // being over 30 days old should be purged from the conversation log text file on login. if (conversation.isOlderThan(CONVERSATION_LIFETIME)) { + purge_required = true; continue; } @@ -562,8 +561,11 @@ bool LLConversationLog::loadFromFile(const std::string& filename) } fclose(fp); - LLFile::remove(filename); - cache(); + if(purge_required) + { + LLFile::remove(filename); + cache(); + } notifyObservers(); return true; diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp index b221221f16..8128790eb6 100644 --- a/indra/newview/lldrawpoolavatar.cpp +++ b/indra/newview/lldrawpoolavatar.cpp @@ -1485,15 +1485,34 @@ void LLDrawPoolAvatar::getRiggedGeometry( { buffer = new LLVertexBuffer(data_mask, GL_STREAM_DRAW_ARB); } - buffer->allocateBuffer(vol_face.mNumVertices, vol_face.mNumIndices, true); + + if (!buffer->allocateBuffer(vol_face.mNumVertices, vol_face.mNumIndices, true)) + { + LL_WARNS("LLDrawPoolAvatar") << "Failed to allocate Vertex Buffer to " + << vol_face.mNumVertices << " vertices and " + << vol_face.mNumIndices << " indices" << LL_ENDL; + // allocate dummy triangle + buffer->allocateBuffer(1, 3, true); + memset((U8*)buffer->getMappedData(), 0, buffer->getSize()); + memset((U8*)buffer->getMappedIndices(), 0, buffer->getIndicesSize()); + } } else { //resize existing buffer - buffer->resizeBuffer(vol_face.mNumVertices, vol_face.mNumIndices); + if(!buffer->resizeBuffer(vol_face.mNumVertices, vol_face.mNumIndices)) + { + LL_WARNS("LLDrawPoolAvatar") << "Failed to resize Vertex Buffer to " + << vol_face.mNumVertices << " vertices and " + << vol_face.mNumIndices << " indices" << LL_ENDL; + // allocate dummy triangle + buffer->resizeBuffer(1, 3); + memset((U8*)buffer->getMappedData(), 0, buffer->getSize()); + memset((U8*)buffer->getMappedIndices(), 0, buffer->getIndicesSize()); + } } - face->setSize(vol_face.mNumVertices, vol_face.mNumIndices); + face->setSize(buffer->getNumVerts(), buffer->getNumIndices()); face->setVertexBuffer(buffer); U16 offset = 0; @@ -1594,6 +1613,14 @@ void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer( } } + if (buffer.isNull() || + buffer->getNumVerts() != vol_face.mNumVertices || + buffer->getNumIndices() != vol_face.mNumIndices) + { + // Allocation failed + return; + } + if (sShaderLevel <= 0 && face->mLastSkinTime < avatar->getLastSkinTime()) { //perform software vertex skinning for this face diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp index 52e678ce24..a9e4d752ac 100644 --- a/indra/newview/llfloaterimagepreview.cpp +++ b/indra/newview/llfloaterimagepreview.cpp @@ -801,7 +801,13 @@ void LLImagePreviewSculpted::setPreviewTarget(LLImageRaw* imagep, F32 distance) U32 num_vertices = vf.mNumVertices; mVertexBuffer = new LLVertexBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_NORMAL | LLVertexBuffer::MAP_TEXCOORD0, 0); - mVertexBuffer->allocateBuffer(num_vertices, num_indices, TRUE); + if (!mVertexBuffer->allocateBuffer(num_vertices, num_indices, TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer for image preview to" + << num_vertices << " vertices and " + << num_indices << " indices" << LL_ENDL; + // We are likely to crash on getTexCoord0Strider() + } LLStrider<LLVector3> vertex_strider; LLStrider<LLVector3> normal_strider; diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index b3885bf36c..da84a6b8f8 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -2568,13 +2568,21 @@ void LLModelPreview::genLODs(S32 which_lod, U32 decimation, bool enforce_tri_lim if (sizes[i*2+1] > 0 && sizes[i*2] > 0) { - buff->allocateBuffer(sizes[i*2+1], sizes[i*2], true); + if (!buff->allocateBuffer(sizes[i * 2 + 1], sizes[i * 2], true)) + { + // Todo: find a way to stop preview in this case instead of crashing + LL_ERRS() << "Failed buffer allocation during preview LOD generation." + << " Vertices: " << sizes[i * 2 + 1] + << " Indices: " << sizes[i * 2] << LL_ENDL; + } buff->setBuffer(type_mask); glodFillElements(mObject[base], names[i], GL_UNSIGNED_SHORT, (U8*) buff->getIndicesPointer()); stop_gloderror(); } else - { //this face was eliminated, create a dummy triangle (one vertex, 3 indices, all 0) + { + // This face was eliminated or we failed to allocate buffer, + // attempt to create a dummy triangle (one vertex, 3 indices, all 0) buff->allocateBuffer(1, 3, true); memset((U8*) buff->getMappedData(), 0, buff->getSize()); memset((U8*) buff->getIndicesPointer(), 0, buff->getIndicesSize()); @@ -3322,7 +3330,13 @@ void LLModelPreview::genBuffers(S32 lod, bool include_skin_weights) vb = new LLVertexBuffer(mask, 0); - vb->allocateBuffer(num_vertices, num_indices, TRUE); + if (!vb->allocateBuffer(num_vertices, num_indices, TRUE)) + { + // We are likely to crash due this failure, if this happens, find a way to gracefully stop preview + LL_WARNS() << "Failed to allocate Vertex Buffer for model preview " + << num_vertices << " vertices and " + << num_indices << " indices" << LL_ENDL; + } LLStrider<LLVector3> vertex_strider; LLStrider<LLVector3> normal_strider; diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 1f460c05ec..5222637039 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -1016,12 +1016,12 @@ void LLFloaterPreference::onBtnCancel(const LLSD& userdata) } // static -void LLFloaterPreference::updateUserInfo(const std::string& visibility, bool im_via_email) +void LLFloaterPreference::updateUserInfo(const std::string& visibility, bool im_via_email, bool is_verified_email) { LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences"); if (instance) { - instance->setPersonalInfo(visibility, im_via_email); + instance->setPersonalInfo(visibility, im_via_email, is_verified_email); } } @@ -1830,7 +1830,7 @@ bool LLFloaterPreference::moveTranscriptsAndLog() return true; } -void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im_via_email) +void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im_via_email, bool is_verified_email) { mGotPersonalInfo = true; mOriginalIMViaEmail = im_via_email; @@ -1855,8 +1855,16 @@ void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im getChildView("friends_online_notify_checkbox")->setEnabled(TRUE); getChild<LLUICtrl>("online_visibility")->setValue(mOriginalHideOnlineStatus); getChild<LLUICtrl>("online_visibility")->setLabelArg("[DIR_VIS]", mDirectoryVisibility); - getChildView("send_im_to_email")->setEnabled(TRUE); - getChild<LLUICtrl>("send_im_to_email")->setValue(im_via_email); + getChildView("send_im_to_email")->setEnabled(is_verified_email); + + std::string tooltip; + if (!is_verified_email) + tooltip = getString("email_unverified_tooltip"); + + getChildView("send_im_to_email")->setToolTip(tooltip); + + // *TODO: Show or hide verify email text here based on is_verified_email + getChild<LLUICtrl>("send_im_to_email")->setValue(im_via_email); getChildView("favorites_on_login_check")->setEnabled(TRUE); getChildView("log_path_button")->setEnabled(TRUE); getChildView("chat_font_size")->setEnabled(TRUE); diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 2bb2e7e9ff..444ad5a928 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -75,7 +75,7 @@ public: /*virtual*/ void changed(const LLUUID& session_id, U32 mask) {}; // static data update, called from message handler - static void updateUserInfo(const std::string& visibility, bool im_via_email); + static void updateUserInfo(const std::string& visibility, bool im_via_email, bool is_verified_email); // refresh all the graphics preferences menus static void refreshEnabledGraphics(); @@ -147,7 +147,7 @@ public: void onClickLogPath(); bool moveTranscriptsAndLog(); void enableHistory(); - void setPersonalInfo(const std::string& visibility, bool im_via_email); + void setPersonalInfo(const std::string& visibility, bool im_via_email, bool is_verified_email); void refreshEnabledState(); void onCommitWindowedMode(); void refresh(); // Refresh enable/disable diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp index 6af2e666b2..bd403f68d7 100644 --- a/indra/newview/llfloatertos.cpp +++ b/indra/newview/llfloatertos.cpp @@ -74,7 +74,7 @@ BOOL LLFloaterTOS::postBuild() } // disable Agree to TOS radio button until the page has fully loaded - updateAgreeEnabled(false); + updateAgreeEnabled(false); // hide the SL text widget if we're displaying TOS with using a browser widget. LLUICtrl *editor = getChild<LLUICtrl>("tos_text"); @@ -148,6 +148,8 @@ void LLFloaterTOS::setSiteIsAlive( bool alive ) // normally this is set when navigation to TOS page navigation completes (so you can't accept before TOS loads) // but if the page is unavailable, we need to do this now updateAgreeEnabled(true); + LLTextBox* tos_list = getChild<LLTextBox>("agree_list"); + tos_list->setEnabled(true); } } #endif diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp index d53cf2a9a3..b93dfaf061 100644 --- a/indra/newview/llfolderviewmodelinventory.cpp +++ b/indra/newview/llfolderviewmodelinventory.cpp @@ -232,8 +232,9 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter) return true; } */ - - const bool passed_filter_folder = (getInventoryType() == LLInventoryType::IT_CATEGORY) ? filter.checkFolder(this) : true; + + bool is_folder = (getInventoryType() == LLInventoryType::IT_CATEGORY); + const bool passed_filter_folder = is_folder ? filter.checkFolder(this) : true; setPassedFolderFilter(passed_filter_folder, filter_generation); bool continue_filtering = true; @@ -258,7 +259,7 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter) { // This is where filter check on the item done (CHUI-849) const bool passed_filter = filter.check(this); - if (passed_filter && mChildren.empty()) // Update the latest filter generation for empty folders + if (passed_filter && mChildren.empty() && is_folder) // Update the latest filter generation for empty folders { LLFolderViewModelItemInventory* view_model = this; while (view_model && view_model->mMostFilteredDescendantGeneration < filter_generation) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 3f18039376..904bc29929 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1876,17 +1876,11 @@ void LLItemBridge::buildDisplayName() const { mDisplayName.assign(LLStringUtil::null); } - S32 old_length = mSearchableName.length(); - S32 new_length = mDisplayName.length() + getLabelSuffix().length(); mSearchableName.assign(mDisplayName); mSearchableName.append(getLabelSuffix()); LLStringUtil::toUpper(mSearchableName); - if ((old_length > new_length) && getInventoryFilter()) - { - getInventoryFilter()->setModified(LLFolderViewFilter::FILTER_MORE_RESTRICTIVE); - } //Name set, so trigger a sort if(mParent) { diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 67ddd79230..8b50e4248e 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -264,7 +264,9 @@ void update_marketplace_category(const LLUUID& cur_uuid, bool perform_consistenc // is limited to 4. // We also take care of degenerated cases so we don't update all folders in the inventory by mistake. - if (cur_uuid.isNull()) + if (cur_uuid.isNull() + || gInventory.getCategory(cur_uuid) == NULL + || gInventory.getCategory(cur_uuid)->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN) { return; } @@ -275,9 +277,13 @@ void update_marketplace_category(const LLUUID& cur_uuid, bool perform_consistenc { // Retrieve the listing uuid this object is in LLUUID listing_uuid = nested_parent_id(cur_uuid, depth); + LLViewerInventoryCategory* listing_cat = gInventory.getCategory(listing_uuid); + bool listing_cat_loaded = listing_cat != NULL && listing_cat->getVersion() != LLViewerInventoryCategory::VERSION_UNKNOWN; // Verify marketplace data consistency for this listing - if (perform_consistency_enforcement && LLMarketplaceData::instance().isListed(listing_uuid)) + if (perform_consistency_enforcement + && listing_cat_loaded + && LLMarketplaceData::instance().isListed(listing_uuid)) { LLUUID version_folder_uuid = LLMarketplaceData::instance().getVersionFolder(listing_uuid); S32 version_depth = depth_nesting_in_marketplace(version_folder_uuid); @@ -299,7 +305,9 @@ void update_marketplace_category(const LLUUID& cur_uuid, bool perform_consistenc } // Check if the count on hand needs to be updated on SLM - if (perform_consistency_enforcement && (compute_stock_count(listing_uuid) != LLMarketplaceData::instance().getCountOnHand(listing_uuid))) + if (perform_consistency_enforcement + && listing_cat_loaded + && (compute_stock_count(listing_uuid) != LLMarketplaceData::instance().getCountOnHand(listing_uuid))) { LLMarketplaceData::instance().updateCountOnHand(listing_uuid,1); } diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index dc75e09ad9..054db2a3ec 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -2058,11 +2058,6 @@ bool LLInventoryModel::loadSkeleton( // correct contents the next time the viewer opens the folder. tcat->setVersion(NO_VERSION); } - else if (tcat->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) - { - // Do not trust stock folders being updated - tcat->setVersion(NO_VERSION); - } else { cached_ids.insert(tcat->getUUID()); diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 8f93796ec7..d610b920b9 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -495,6 +495,11 @@ void LLInventoryPanel::modelChanged(U32 mask) view_item->refresh(); } + LLFolderViewFolder* parent = view_item->getParentFolder(); + if(parent) + { + parent->getViewModelItem()->dirtyDescendantsFilter(); + } } } diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 00043d1e72..a8025906c7 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -805,44 +805,8 @@ void LLMediaCtrl::draw() F32 max_u = ( F32 )media_plugin->getWidth() / ( F32 )media_plugin->getTextureWidth(); F32 max_v = ( F32 )media_plugin->getHeight() / ( F32 )media_plugin->getTextureHeight(); - LLRect r = getRect(); - S32 width, height; - S32 x_offset = 0; - S32 y_offset = 0; - - if(mStretchToFill) - { - if(mMaintainAspectRatio) - { - F32 media_aspect = (F32)(media_plugin->getWidth()) / (F32)(media_plugin->getHeight()); - F32 view_aspect = (F32)(r.getWidth()) / (F32)(r.getHeight()); - if(media_aspect > view_aspect) - { - // max width, adjusted height - width = r.getWidth(); - height = llmin(llmax(ll_round(width / media_aspect), 0), r.getHeight()); - } - else - { - // max height, adjusted width - height = r.getHeight(); - width = llmin(llmax(ll_round(height * media_aspect), 0), r.getWidth()); - } - } - else - { - width = r.getWidth(); - height = r.getHeight(); - } - } - else - { - width = llmin(media_plugin->getWidth(), r.getWidth()); - height = llmin(media_plugin->getHeight(), r.getHeight()); - } - - x_offset = (r.getWidth() - width) / 2; - y_offset = (r.getHeight() - height) / 2; + S32 x_offset, y_offset, width, height; + calcOffsetsAndSize(&x_offset, &y_offset, &width, &height); // draw the browser gGL.begin( LLRender::QUADS ); @@ -901,8 +865,56 @@ void LLMediaCtrl::draw() //////////////////////////////////////////////////////////////////////////////// // +void LLMediaCtrl::calcOffsetsAndSize(S32 *x_offset, S32 *y_offset, S32 *width, S32 *height) +{ + const LLRect &r = getRect(); + *x_offset = *y_offset = 0; + + if (mStretchToFill) + { + if (mMaintainAspectRatio && mMediaSource && mMediaSource->getMediaPlugin()) + { + F32 media_aspect = (F32)(mMediaSource->getMediaPlugin()->getWidth()) / (F32)(mMediaSource->getMediaPlugin()->getHeight()); + F32 view_aspect = (F32)(r.getWidth()) / (F32)(r.getHeight()); + if (media_aspect > view_aspect) + { + // max width, adjusted height + *width = r.getWidth(); + *height = llmin(llmax(ll_round(*width / media_aspect), 0), r.getHeight()); + } + else + { + // max height, adjusted width + *height = r.getHeight(); + *width = llmin(llmax(ll_round(*height * media_aspect), 0), r.getWidth()); + } + } + else + { + *width = r.getWidth(); + *height = r.getHeight(); + } + } + else + { + *width = llmin(mMediaSource->getMediaPlugin()->getWidth(), r.getWidth()); + *height = llmin(mMediaSource->getMediaPlugin()->getHeight(), r.getHeight()); + } + + *x_offset = (r.getWidth() - *width) / 2; + *y_offset = (r.getHeight() - *height) / 2; +} + +//////////////////////////////////////////////////////////////////////////////// +// void LLMediaCtrl::convertInputCoords(S32& x, S32& y) { + S32 x_offset, y_offset, width, height; + calcOffsetsAndSize(&x_offset, &y_offset, &width, &height); + + x -= x_offset; + y -= y_offset; + bool coords_opengl = false; if(mMediaSource && mMediaSource->hasMedia()) diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index 125a67e23e..11400c8274 100644 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -181,6 +181,9 @@ public: protected: void convertInputCoords(S32& x, S32& y); + private: + void calcOffsetsAndSize(S32 *x_offset, S32 *y_offset, S32 *width, S32 *height); + private: void onVisibilityChanged ( const LLSD& new_visibility ); void onPopup(const LLSD& notification, const LLSD& response); diff --git a/indra/newview/lloutfitgallery.cpp b/indra/newview/lloutfitgallery.cpp index cca65f2ce1..c38d3ab140 100644 --- a/indra/newview/lloutfitgallery.cpp +++ b/indra/newview/lloutfitgallery.cpp @@ -72,6 +72,7 @@ LLOutfitGallery::LLOutfitGallery(const LLOutfitGallery::Params& p) mItemsAddedCount(0), mOutfitLinkPending(NULL), mOutfitRenamePending(NULL), + mSnapshotFolderID(NULL), mRowPanelHeight(p.row_panel_height), mVerticalGap(p.vertical_gap), mHorizontalGap(p.horizontal_gap), @@ -1011,8 +1012,8 @@ void LLOutfitGallery::onTextureSelectionChanged(LLInventoryItem* itemp) void LLOutfitGallery::loadPhotos() { //Iterate over inventory - LLUUID textures = gInventory.findCategoryUUIDForType(LLFolderType::FT_TEXTURE); - LLViewerInventoryCategory* textures_category = gInventory.getCategory(textures); + mSnapshotFolderID = gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_TEXTURE); + LLViewerInventoryCategory* textures_category = gInventory.getCategory(mSnapshotFolderID); if (!textures_category) return; if (mTexturesObserver == NULL) @@ -1022,12 +1023,26 @@ void LLOutfitGallery::loadPhotos() } // Start observing changes in "Textures" category. - mTexturesObserver->addCategory(textures, - boost::bind(&LLOutfitGallery::refreshTextures, this, textures)); - + mTexturesObserver->addCategory(mSnapshotFolderID, + boost::bind(&LLOutfitGallery::refreshTextures, this, mSnapshotFolderID)); + textures_category->fetch(); } +void LLOutfitGallery::updateSnapshotFolderObserver() +{ + if(mSnapshotFolderID != gInventory.findUserDefinedCategoryUUIDForType(LLFolderType::FT_TEXTURE)) + { + if (gInventory.containsObserver(mTexturesObserver)) + { + gInventory.removeObserver(mTexturesObserver); + } + delete mTexturesObserver; + mTexturesObserver = NULL; + loadPhotos(); + } +} + void LLOutfitGallery::refreshOutfit(const LLUUID& category_id) { LLViewerInventoryCategory* category = gInventory.getCategory(category_id); @@ -1200,7 +1215,7 @@ void LLOutfitGallery::uploadPhoto(LLUUID outfit_id) LLViewerInventoryCategory *outfit_cat = gInventory.getCategory(outfit_id); if (!outfit_cat) return; - + updateSnapshotFolderObserver(); checkRemovePhoto(outfit_id); std::string upload_pending_name = outfit_id.asString(); std::string upload_pending_desc = ""; @@ -1372,6 +1387,7 @@ void LLOutfitGallery::onBeforeOutfitSnapshotSave() if (!selected_outfit_id.isNull()) { checkRemovePhoto(selected_outfit_id); + updateSnapshotFolderObserver(); } } diff --git a/indra/newview/lloutfitgallery.h b/indra/newview/lloutfitgallery.h index b1ca850508..383924a7d6 100644 --- a/indra/newview/lloutfitgallery.h +++ b/indra/newview/lloutfitgallery.h @@ -130,6 +130,7 @@ protected: private: void loadPhotos(); void uploadPhoto(LLUUID outfit_id); + void updateSnapshotFolderObserver(); LLUUID getPhotoAssetId(const LLUUID& outfit_id); LLUUID getDefaultPhoto(); void linkPhotoToOutfit(LLUUID outfit_id, LLUUID photo_id); @@ -168,6 +169,7 @@ private: LLPanel* mLastRowPanel; LLUUID mOutfitLinkPending; LLUUID mOutfitRenamePending; + LLUUID mSnapshotFolderID; LLTextBox* mMessageTextBox; bool mGalleryCreated; int mRowCount; diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index a16259886d..7e75dca908 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -1623,6 +1623,15 @@ void LLPanelFace::updateShinyControls(bool is_setting_texture, bool mess_with_sh } } } + else + { + if (shiny_texture_ID.isNull() && comboShiny && comboShiny->itemExists(USE_TEXTURE)) + { + comboShiny->remove(SHINY_TEXTURE); + comboShiny->selectFirstItem(); + } + } + LLComboBox* combo_matmedia = getChild<LLComboBox>("combobox matmedia"); LLRadioGroup* radio_mat_type = getChild<LLRadioGroup>("radio_material_type"); @@ -2368,8 +2377,8 @@ void LLPanelFace::onCommitPlanarAlign(LLUICtrl* ctrl, void* userdata) void LLPanelFace::onTextureSelectionChanged(LLInventoryItem* itemp) { LL_DEBUGS("Materials") << "item asset " << itemp->getAssetUUID() << LL_ENDL; - LLRadioGroup* radio_mat_type = getChild<LLRadioGroup>("radio_material_type"); - if(radio_mat_type) + LLRadioGroup* radio_mat_type = findChild<LLRadioGroup>("radio_material_type"); + if(!radio_mat_type) { return; } diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index a88c10521c..0bcbdf7e67 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -75,6 +75,7 @@ LLPanelLogin *LLPanelLogin::sInstance = NULL; BOOL LLPanelLogin::sCapslockDidNotification = FALSE; +BOOL LLPanelLogin::sCredentialSet = FALSE; class LLLoginLocationAutoHandler : public LLCommandHandler { @@ -176,6 +177,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, setBackgroundOpaque(TRUE); mPasswordModified = FALSE; + LLPanelLogin::sInstance = this; LLView* login_holder = gViewerWindow->getLoginPanelHolder(); @@ -458,6 +460,7 @@ void LLPanelLogin::setFields(LLPointer<LLCredential> credential, LL_WARNS() << "Attempted fillFields with no login view shown" << LL_ENDL; return; } + sCredentialSet = TRUE; LL_INFOS("Credentials") << "Setting login fields to " << *credential << LL_ENDL; LLSD identifier = credential->getIdentifier(); @@ -680,10 +683,8 @@ void LLPanelLogin::onUpdateStartSLURL(const LLSLURL& new_start_slurl) } if ( new_start_slurl.getLocationString().length() ) { - if (location_combo->getCurrentIndex() == -1) - { - location_combo->setLabel(new_start_slurl.getLocationString()); - } + + location_combo->setLabel(new_start_slurl.getLocationString()); sInstance->mLocationLength = new_start_slurl.getLocationString().length(); sInstance->updateLoginButtons(); } @@ -862,6 +863,7 @@ void LLPanelLogin::onClickConnect(void *) } else { + sCredentialSet = FALSE; LLPointer<LLCredential> cred; BOOL remember; getFields(cred, remember); diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index 869f2f8d39..82ef048493 100644 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -56,9 +56,11 @@ public: void* callback_data); static void setFields(LLPointer<LLCredential> credential, BOOL remember); - + static void getFields(LLPointer<LLCredential>& credential, BOOL& remember); + static BOOL isCredentialSet() { return sCredentialSet; } + static BOOL areCredentialFieldsDirty(); static void setLocation(const LLSLURL& slurl); static void autologinToLocation(const LLSLURL& slurl); @@ -115,6 +117,8 @@ private: static LLPanelLogin* sInstance; static BOOL sCapslockDidNotification; bool mFirstLoginThisInstall; + + static BOOL sCredentialSet; unsigned int mUsernameLength; unsigned int mPasswordLength; diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index f771a027e0..ec80ff8de7 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -162,6 +162,7 @@ BOOL LLPanelMainInventory::postBuild() recent_items_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); LLInventoryFilter& recent_filter = recent_items_panel->getFilter(); recent_filter.setFilterObjectTypes(recent_filter.getFilterObjectTypes() & ~(0x1 << LLInventoryType::IT_CATEGORY)); + recent_filter.setEmptyLookupMessage("InventoryNoMatchingRecentItems"); recent_filter.markDefault(); recent_items_panel->setSelectCallback(boost::bind(&LLPanelMainInventory::onSelectionChange, this, recent_items_panel, _1, _2)); } diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h index 530f4e618c..2904d5de76 100644 --- a/indra/newview/llpanelmaininventory.h +++ b/indra/newview/llpanelmaininventory.h @@ -91,6 +91,8 @@ public: static void newWindow(); + void toggleFindOptions(); + protected: // // Misc functions @@ -98,7 +100,6 @@ protected: void setFilterTextFromFilter(); void startSearch(); - void toggleFindOptions(); void onSelectionChange(LLInventoryPanel *panel, const std::deque<LLFolderViewItem*>& items, BOOL user_action); static BOOL filtersVisible(void* user_data); @@ -111,7 +112,7 @@ protected: const std::string getFilterSubString(); void setFilterSubString(const std::string& string); - + // menu callbacks void doToSelected(const LLSD& userdata); void closeAllFolders(); @@ -144,6 +145,7 @@ private: LLComboBox* mSearchTypeCombo; + ////////////////////////////////////////////////////////////////////////////////// // List Commands // protected: diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 007ab4dd63..8019335f97 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -68,7 +68,7 @@ LLPanelOutfitsInventory::LLPanelOutfitsInventory() : LLPanelOutfitsInventory::~LLPanelOutfitsInventory() { - if (mAppearanceTabs) + if (mAppearanceTabs && mInitialized) { gSavedSettings.setS32("LastAppearanceTab", mAppearanceTabs->getCurrentPanelIndex()); } diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp index c9f8683e0e..b1895bfc9b 100644 --- a/indra/newview/llpanelvolume.cpp +++ b/indra/newview/llpanelvolume.cpp @@ -710,22 +710,20 @@ void LLPanelVolume::onLightCancelColor(const LLSD& data) void LLPanelVolume::onLightCancelTexture(const LLSD& data) { LLTextureCtrl* LightTextureCtrl = getChild<LLTextureCtrl>("light texture control"); - - if (LightTextureCtrl) - { - LightTextureCtrl->setImageAssetID(mLightSavedTexture); - } - LLVOVolume *volobjp = (LLVOVolume *) mObject.get(); - if(volobjp) + + if (volobjp && LightTextureCtrl) { // Cancel the light texture as requested // NORSPEC-292 - // + // + // Texture picker triggers cancel both in case of actual cancel and in case of + // selection of "None" texture. + LLUUID tex_id = LightTextureCtrl->getImageAssetID(); bool is_spotlight = volobjp->isLightSpotlight(); - volobjp->setLightTextureID(mLightSavedTexture); //updates spotlight + volobjp->setLightTextureID(tex_id); //updates spotlight - if (!is_spotlight && mLightSavedTexture.notNull()) + if (!is_spotlight && tex_id.notNull()) { LLVector3 spot_params = volobjp->getSpotLightParams(); getChild<LLUICtrl>("Light FOV")->setValue(spot_params.mV[0]); @@ -769,7 +767,6 @@ void LLPanelVolume::onLightSelectTexture(const LLSD& data) { LLUUID id = LightTextureCtrl->getImageAssetID(); volobjp->setLightTextureID(id); - mLightSavedTexture = id; } } diff --git a/indra/newview/llpanelvolume.h b/indra/newview/llpanelvolume.h index deb6b6f2a6..e3453ae99c 100644 --- a/indra/newview/llpanelvolume.h +++ b/indra/newview/llpanelvolume.h @@ -111,7 +111,6 @@ protected: LLColor4 mLightSavedColor; - LLUUID mLightSavedTexture; LLPointer<LLViewerObject> mObject; LLPointer<LLViewerObject> mRootObject; diff --git a/indra/newview/llphysicsmotion.cpp b/indra/newview/llphysicsmotion.cpp index ea10d03264..15d39c231f 100644 --- a/indra/newview/llphysicsmotion.cpp +++ b/indra/newview/llphysicsmotion.cpp @@ -171,8 +171,8 @@ protected: F32 behavior_maxeffect); F32 toLocal(const LLVector3 &world); - F32 calculateVelocity_local(); - F32 calculateAcceleration_local(F32 velocity_local); + F32 calculateVelocity_local(const F32 time_delta); + F32 calculateAcceleration_local(F32 velocity_local, const F32 time_delta); private: const std::string mParamDriverName; const std::string mParamControllerName; @@ -425,23 +425,22 @@ F32 LLPhysicsMotion::toLocal(const LLVector3 &world) return world * dir_world; } -F32 LLPhysicsMotion::calculateVelocity_local() +F32 LLPhysicsMotion::calculateVelocity_local(const F32 time_delta) { const F32 world_to_model_scale = 100.0f; LLJoint *joint = mJointState->getJoint(); const LLVector3 position_world = joint->getWorldPosition(); const LLVector3 last_position_world = mPosition_world; const LLVector3 positionchange_world = (position_world-last_position_world) * world_to_model_scale; - const LLVector3 velocity_world = positionchange_world; - const F32 velocity_local = toLocal(velocity_world); + const F32 velocity_local = toLocal(positionchange_world) / time_delta; return velocity_local; } -F32 LLPhysicsMotion::calculateAcceleration_local(const F32 velocity_local) +F32 LLPhysicsMotion::calculateAcceleration_local(const F32 velocity_local, const F32 time_delta) { // const F32 smoothing = getParamValue("Smoothing"); static const F32 smoothing = 3.0f; // Removed smoothing param since it's probably not necessary - const F32 acceleration_local = velocity_local - mVelocityJoint_local; + const F32 acceleration_local = (velocity_local - mVelocityJoint_local) / time_delta; const F32 smoothed_acceleration_local = acceleration_local * 1.0/smoothing + @@ -544,9 +543,9 @@ BOOL LLPhysicsMotion::onUpdate(F32 time) // Calculate velocity and acceleration in parameter space. // - //const F32 velocity_joint_local = calculateVelocity_local(time_iteration_step); - const F32 velocity_joint_local = calculateVelocity_local(); - const F32 acceleration_joint_local = calculateAcceleration_local(velocity_joint_local); + const F32 joint_local_factor = 30.0; + const F32 velocity_joint_local = calculateVelocity_local(time_delta * joint_local_factor); + const F32 acceleration_joint_local = calculateAcceleration_local(velocity_joint_local, time_delta * joint_local_factor); // // End velocity and acceleration diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index 850c3b350d..d4a8bbdf45 100644 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -163,6 +163,16 @@ BOOL LLPreviewNotecard::canClose() } } +/* virtual */ +void LLPreviewNotecard::setObjectID(const LLUUID& object_id) +{ + LLPreview::setObjectID(object_id); + + LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor"); + editor->setNotecardObjectID(mObjectUUID); + editor->makePristine(); +} + const LLInventoryItem* LLPreviewNotecard::getDragItem() { LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor"); diff --git a/indra/newview/llpreviewnotecard.h b/indra/newview/llpreviewnotecard.h index 017c4485ba..46a6d0ef50 100644 --- a/indra/newview/llpreviewnotecard.h +++ b/indra/newview/llpreviewnotecard.h @@ -47,6 +47,7 @@ public: virtual ~LLPreviewNotecard(); bool saveItem(); + void setObjectID(const LLUUID& object_id); // llview virtual void draw(); diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp index b2c450aa0c..da912ef3d4 100644 --- a/indra/newview/llscriptfloater.cpp +++ b/indra/newview/llscriptfloater.cpp @@ -349,8 +349,8 @@ void LLScriptFloater::hideToastsIfNeeded() ////////////////////////////////////////////////////////////////////////// LLScriptFloaterManager::LLScriptFloaterManager() + : mDialogLimitationsSlot() { - gSavedSettings.getControl("ScriptDialogLimitations")->getCommitSignal()->connect(boost::bind(&clearScriptNotifications)); } void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id) @@ -361,6 +361,19 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id) return; } + if (!mDialogLimitationsSlot.connected()) + { + LLPointer<LLControlVariable> cntrl_ptr = gSavedSettings.getControl("ScriptDialogLimitations"); + if (cntrl_ptr.notNull()) + { + mDialogLimitationsSlot = cntrl_ptr->getCommitSignal()->connect(boost::bind(&clearScriptNotifications)); + } + else + { + LL_WARNS() << "Unable to set signal on setting 'ScriptDialogLimitations'" << LL_ENDL; + } + } + // get scripted Object's ID LLUUID object_id = notification_id_to_object_id(notification_id); diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h index 0192a8893e..3695b8a3e1 100644 --- a/indra/newview/llscriptfloater.h +++ b/indra/newview/llscriptfloater.h @@ -139,6 +139,7 @@ private: typedef std::map<LLUUID, FloaterPositionInfo> floater_position_map_t; floater_position_map_t mFloaterPositions; + boost::signals2::connection mDialogLimitationsSlot; }; /** diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp index 94b838e829..d2a87ee2af 100644 --- a/indra/newview/llspatialpartition.cpp +++ b/indra/newview/llspatialpartition.cpp @@ -448,16 +448,32 @@ void LLSpatialPartition::rebuildGeom(LLSpatialGroup* group) (group->mBufferUsage != group->mVertexBuffer->getUsage() && LLVertexBuffer::sEnableVBOs)) { group->mVertexBuffer = createVertexBuffer(mVertexDataMask, group->mBufferUsage); - group->mVertexBuffer->allocateBuffer(vertex_count, index_count, true); + if (!group->mVertexBuffer->allocateBuffer(vertex_count, index_count, true)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer on rebuild to " + << vertex_count << " vertices and " + << index_count << " indices" << LL_ENDL; + group->mVertexBuffer = NULL; + group->mBufferMap.clear(); + } stop_glerror(); } else { - group->mVertexBuffer->resizeBuffer(vertex_count, index_count); + if (!group->mVertexBuffer->resizeBuffer(vertex_count, index_count)) + { + // Is likely to cause a crash. If this gets triggered find a way to avoid it (don't forget to reset face) + LL_WARNS() << "Failed to resize Vertex Buffer on rebuild to " + << vertex_count << " vertices and " + << index_count << " indices" << LL_ENDL; + group->mVertexBuffer = NULL; + group->mBufferMap.clear(); + } stop_glerror(); } } + if (group->mVertexBuffer) { LL_RECORD_BLOCK_TIME(FTM_GET_GEOMETRY); getGeometry(group); diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index db74689df9..ad9a554ef5 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -766,7 +766,7 @@ bool idle_startup() // Show the login dialog login_show(); // connect dialog is already shown, so fill in the names - if (gUserCredential.notNull()) + if (gUserCredential.notNull() && !LLPanelLogin::isCredentialSet()) { LLPanelLogin::setFields( gUserCredential, gRememberPassword); } @@ -2766,6 +2766,7 @@ void LLStartUp::postStartupState() stateInfo["str"] = getStartupStateString(); stateInfo["enum"] = gStartupState; sStateWatcher->post(stateInfo); + gDebugInfo["StartupState"] = getStartupStateString(); } diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index f0c28041d1..435d833345 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -387,22 +387,35 @@ bool LLTextureCacheRemoteWorker::doRead() } // Allocate read buffer mReadData = (U8*)ALLOCATE_MEM(LLImageBase::getPrivatePool(), mDataSize); - S32 bytes_read = LLAPRFile::readEx(local_filename, - mReadData, mOffset, mDataSize, mCache->getLocalAPRFilePool()); - if (bytes_read != mDataSize) + + if (mReadData) { - LL_WARNS() << "Error reading file from local cache: " << local_filename - << " Bytes: " << mDataSize << " Offset: " << mOffset + S32 bytes_read = LLAPRFile::readEx( local_filename, + mReadData, + mOffset, + mDataSize, + mCache->getLocalAPRFilePool()); + + if (bytes_read != mDataSize) + { + LL_WARNS() << "Error reading file from local cache: " << local_filename + << " Bytes: " << mDataSize << " Offset: " << mOffset << " / " << mDataSize << LL_ENDL; - mDataSize = 0; - FREE_MEM(LLImageBase::getPrivatePool(), mReadData); - mReadData = NULL; + mDataSize = 0; + FREE_MEM(LLImageBase::getPrivatePool(), mReadData); + mReadData = NULL; + } + else + { + mImageSize = local_size; + mImageLocal = TRUE; + } } else { - //LL_INFOS() << "texture " << mID.asString() << " found in local_assets" << LL_ENDL; - mImageSize = local_size; - mImageLocal = TRUE; + LL_WARNS() << "Error allocating memory for cache: " << local_filename + << " of size: " << mDataSize << LL_ENDL; + mDataSize = 0; } // We're done... done = true; @@ -477,44 +490,55 @@ bool LLTextureCacheRemoteWorker::doRead() // Reserve the whole data buffer first U8* data = (U8*)ALLOCATE_MEM(LLImageBase::getPrivatePool(), mDataSize); - - // Set the data file pointers taking the read offset into account. 2 cases: - if (mOffset < TEXTURE_CACHE_ENTRY_SIZE) - { - // Offset within the header record. That means we read something from the header cache. - // Note: most common case is (mOffset = 0), so this is the "normal" code path. - data_offset = TEXTURE_CACHE_ENTRY_SIZE - mOffset; // i.e. TEXTURE_CACHE_ENTRY_SIZE if mOffset nul (common case) - file_offset = 0; - file_size = mDataSize - data_offset; - // Copy the raw data we've been holding from the header cache into the new sized buffer - llassert_always(mReadData); - memcpy(data, mReadData, data_offset); - FREE_MEM(LLImageBase::getPrivatePool(), mReadData); - mReadData = NULL; - } - else + if (data) { - // Offset bigger than the header record. That means we haven't read anything yet. - data_offset = 0; - file_offset = mOffset - TEXTURE_CACHE_ENTRY_SIZE; - file_size = mDataSize; - // No data from header cache to copy in that case, we skipped it all - } + // Set the data file pointers taking the read offset into account. 2 cases: + if (mOffset < TEXTURE_CACHE_ENTRY_SIZE) + { + // Offset within the header record. That means we read something from the header cache. + // Note: most common case is (mOffset = 0), so this is the "normal" code path. + data_offset = TEXTURE_CACHE_ENTRY_SIZE - mOffset; // i.e. TEXTURE_CACHE_ENTRY_SIZE if mOffset nul (common case) + file_offset = 0; + file_size = mDataSize - data_offset; + // Copy the raw data we've been holding from the header cache into the new sized buffer + llassert_always(mReadData); + memcpy(data, mReadData, data_offset); + FREE_MEM(LLImageBase::getPrivatePool(), mReadData); + mReadData = NULL; + } + else + { + // Offset bigger than the header record. That means we haven't read anything yet. + data_offset = 0; + file_offset = mOffset - TEXTURE_CACHE_ENTRY_SIZE; + file_size = mDataSize; + // No data from header cache to copy in that case, we skipped it all + } - // Now use that buffer as the object read buffer - llassert_always(mReadData == NULL); - mReadData = data; + // Now use that buffer as the object read buffer + llassert_always(mReadData == NULL); + mReadData = data; - // Read the data at last - S32 bytes_read = LLAPRFile::readEx(filename, - mReadData + data_offset, - file_offset, file_size, - mCache->getLocalAPRFilePool()); - if (bytes_read != file_size) + // Read the data at last + S32 bytes_read = LLAPRFile::readEx(filename, + mReadData + data_offset, + file_offset, file_size, + mCache->getLocalAPRFilePool()); + if (bytes_read != file_size) + { + LL_WARNS() << "LLTextureCacheWorker: " << mID + << " incorrect number of bytes read from body: " << bytes_read + << " / " << file_size << LL_ENDL; + FREE_MEM(LLImageBase::getPrivatePool(), mReadData); + mReadData = NULL; + mDataSize = -1; // failed + done = true; + } + } + else { LL_WARNS() << "LLTextureCacheWorker: " << mID - << " incorrect number of bytes read from body: " << bytes_read - << " / " << file_size << LL_ENDL; + << " failed to allocate memory for reading: " << mDataSize << LL_ENDL; FREE_MEM(LLImageBase::getPrivatePool(), mReadData); mReadData = NULL; mDataSize = -1; // failed @@ -550,9 +574,11 @@ bool LLTextureCacheRemoteWorker::doWrite() { if ((mOffset != 0) // We currently do not support write offsets || (mDataSize <= 0) // Things will go badly wrong if mDataSize is nul or negative... - || (mImageSize < mDataSize)) + || (mImageSize < mDataSize) + || (mRawDiscardLevel < 0) + || (mRawImage->isBufferInvalid())) // decode failed or malfunctioned, don't write { - LL_WARNS() << "INIT state check failed" << LL_ENDL; + LL_WARNS() << "INIT state check failed for image: " << mID << " Size: " << mImageSize << " DataSize: " << mDataSize << " Discard:" << mRawDiscardLevel << LL_ENDL; mDataSize = -1; // failed done = true; } @@ -577,15 +603,12 @@ bool LLTextureCacheRemoteWorker::doWrite() idx = mCache->setHeaderCacheEntry(mID, entry, mImageSize, mDataSize); // create the new entry. if(idx >= 0) { - // (almost always) write to the fast cache. - if (mRawImage->getDataSize()) + // write to the fast cache. + if(!mCache->writeToFastCache(idx, mRawImage, mRawDiscardLevel)) { - if(!mCache->writeToFastCache(idx, mRawImage, mRawDiscardLevel)) - { - LL_WARNS() << "writeToFastCache failed" << LL_ENDL; - mDataSize = -1; // failed - done = true; - } + LL_WARNS() << "writeToFastCache failed" << LL_ENDL; + mDataSize = -1; // failed + done = true; } } } @@ -936,7 +959,7 @@ BOOL LLTextureCache::isInLocal(const LLUUID& id) ////////////////////////////////////////////////////////////////////////////// //static -F32 LLTextureCache::sHeaderCacheVersion = 1.7f; +F32 LLTextureCache::sHeaderCacheVersion = 1.71f; U32 LLTextureCache::sCacheMaxEntries = 1024 * 1024; //~1 million textures. S64 LLTextureCache::sCacheMaxTexturesSize = 0; // no limit std::string LLTextureCache::sHeaderCacheEncoderVersion = LLImageJ2C::getEngineInfo(); @@ -1793,24 +1816,30 @@ S32 LLTextureCache::getHeaderCacheEntry(const LLUUID& id, Entry& entry) S32 LLTextureCache::setHeaderCacheEntry(const LLUUID& id, Entry& entry, S32 imagesize, S32 datasize) { mHeaderMutex.lock(); - S32 idx = openAndReadEntry(id, entry, true); + S32 idx = openAndReadEntry(id, entry, true); // read or create mHeaderMutex.unlock(); - if (idx >= 0) - { - updateEntry(idx, entry, imagesize, datasize); - } - - if(idx < 0) // retry + if(idx < 0) // retry once { readHeaderCache(); // We couldn't write an entry, so refresh the LRU - + mHeaderMutex.lock(); - llassert_always(!mLRU.empty() || mHeaderEntriesInfo.mEntries < sCacheMaxEntries); + idx = openAndReadEntry(id, entry, true); mHeaderMutex.unlock(); + } - idx = setHeaderCacheEntry(id, entry, imagesize, datasize); // assert above ensures no inf. recursion + if (idx >= 0) + { + updateEntry(idx, entry, imagesize, datasize); + } + else + { + LL_WARNS() << "Failed to set cache entry for image: " << id << LL_ENDL; + // We couldn't write to file, switch to read only mode and clear data + setReadOnly(true); + clearCorruptedCache(); // won't remove files due to "read only" } + return idx; } @@ -1962,7 +1991,7 @@ LLPointer<LLImageRaw> LLTextureCache::readFromFastCache(const LLUUID& id, S32& d bool LLTextureCache::writeToFastCache(S32 id, LLPointer<LLImageRaw> raw, S32 discardlevel) { //rescale image if needed - if (raw.isNull() || !raw->getData()) + if (raw.isNull() || raw->isBufferInvalid() || !raw->getData()) { LL_ERRS() << "Attempted to write NULL raw image to fastcache" << LL_ENDL; return false; diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 8447cf893e..f917faadd4 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -1890,11 +1890,10 @@ bool LLTextureFetchWorker::doWork(S32 param) if (mDecodedDiscard < 0) { - LL_DEBUGS(LOG_TXT) << mID << ": Failed to Decode." << LL_ENDL; if (mCachedSize > 0 && !mInLocalCache && mRetryAttempt == 0) { // Cache file should be deleted, try again - LL_WARNS(LOG_TXT) << mID << ": Decode of cached file failed (removed), retrying" << LL_ENDL; + LL_DEBUGS(LOG_TXT) << mID << ": Decode of cached file failed (removed), retrying" << LL_ENDL; llassert_always(mDecodeHandle == 0); mFormattedImage = NULL; ++mRetryAttempt; @@ -1904,7 +1903,7 @@ bool LLTextureFetchWorker::doWork(S32 param) } else { -// LL_WARNS(LOG_TXT) << "UNABLE TO LOAD TEXTURE: " << mID << " RETRIES: " << mRetryAttempt << LL_ENDL; + LL_DEBUGS(LOG_TXT) << "Failed to Decode image " << mID << " after " << mRetryAttempt << " retries" << LL_ENDL; setState(DONE); // failed } } diff --git a/indra/newview/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp index 2d458db36b..06a2caf75b 100644 --- a/indra/newview/lltoolmorph.cpp +++ b/indra/newview/lltoolmorph.cpp @@ -162,8 +162,16 @@ void LLVisualParamHint::preRender(BOOL clear_depth) // Calling LLCharacter version, as we don't want position/height changes to cause the avatar to jump // up and down when we're doing preview renders. -Nyx gAgentAvatarp->LLCharacter::updateVisualParams(); - gAgentAvatarp->updateGeometry(gAgentAvatarp->mDrawable); - gAgentAvatarp->updateLOD(); + + if (gAgentAvatarp->mDrawable.notNull()) + { + gAgentAvatarp->updateGeometry(gAgentAvatarp->mDrawable); + gAgentAvatarp->updateLOD(); + } + else + { + LL_WARNS() << "Attempting to update avatar's geometry, but drawable doesn't exist yet" << LL_ENDL; + } LLViewerDynamicTexture::preRender(clear_depth); } diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index e53db403e1..96ef160c72 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -441,6 +441,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) gAgent.setTeleportMessage( LLAgent::sTeleportProgressMessages["requesting"]); gViewerWindow->setProgressString(LLAgent::sTeleportProgressMessages["requesting"]); + gViewerWindow->setProgressMessage(gAgent.mMOTD); break; case LLAgent::TELEPORT_REQUESTED: @@ -518,6 +519,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) } gViewerWindow->setProgressPercent( percent_done ); + gViewerWindow->setProgressMessage(std::string()); } else if (gRestoreGL) @@ -539,6 +541,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) gViewerWindow->setProgressPercent( percent_done ); } + gViewerWindow->setProgressMessage(std::string()); } ////////////////////////// diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 6c9fe5e39b..1ab7ec0156 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -60,7 +60,9 @@ #include "llappearancemgr.h" #include "llcommandhandler.h" #include "llviewermessage.h" +#include "llpanelmaininventory.h" #include "llsidepanelappearance.h" +#include "llsidepanelinventory.h" #include "llavatarnamecache.h" #include "llavataractions.h" #include "lllogininstance.h" @@ -248,6 +250,20 @@ public: return true; } + if (params[0].asString() == "filters") + { + LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory"); + if (sidepanel_inventory) + { + LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel(); + if (main_inventory) + { + main_inventory->toggleFindOptions(); + } + } + return true; + } + // otherwise, we need a UUID and a verb... if (params.size() < 2) { diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index e7917c043f..94a86a7831 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -5664,7 +5664,8 @@ static void process_money_balance_reply_extended(LLMessageSystem* msg) args["NAME"] = source_slurl; is_name_group = is_source_group; name_id = source_id; - if (!reason.empty()) + + if (!reason.empty() && !LLMuteList::getInstance()->isMuted(source_id)) { message = LLTrans::getString("paid_you_ldollars" + gift_suffix, args); } @@ -7258,7 +7259,7 @@ void send_places_query(const LLUUID& query_id, gAgent.sendReliableMessage(); } - +// Deprecated in favor of cap "UserInfo" void process_user_info_reply(LLMessageSystem* msg, void**) { LLUUID agent_id; @@ -7276,7 +7277,8 @@ void process_user_info_reply(LLMessageSystem* msg, void**) std::string dir_visibility; msg->getString( "UserData", "DirectoryVisibility", dir_visibility); - LLFloaterPreference::updateUserInfo(dir_visibility, im_via_email); + // For Message based user info information the is_verified is assumed to be false. + LLFloaterPreference::updateUserInfo(dir_visibility, im_via_email, false); LLFloaterSnapshot::setAgentEmail(email); } diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index f15c6d26ec..6c2d4d7fea 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -2214,7 +2214,9 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mesgsys->getSender()); if (cdp) { - F32 ping_delay = 0.5f * time_dilation * ( ((F32)cdp->getPingDelay().valueInUnits<LLUnits::Seconds>()) + gFrameDTClamped); + // Note: delay is U32 and usually less then second, + // converting it into seconds with valueInUnits will result in 0 + F32 ping_delay = 0.5f * time_dilation * ( ((F32)cdp->getPingDelay().value()) * 0.001f + gFrameDTClamped); LLVector3 diff = getVelocity() * ping_delay; new_pos_parent += diff; } diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 06b5c48e6c..5b61eab5f7 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -2896,6 +2896,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames) capabilityNames.append("UpdateScriptAgent"); capabilityNames.append("UpdateScriptTask"); capabilityNames.append("UploadBakedTexture"); + capabilityNames.append("UserInfo"); capabilityNames.append("ViewerAsset"); capabilityNames.append("ViewerMetrics"); capabilityNames.append("ViewerStartAuction"); diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index 256e69d029..db2897d387 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -445,8 +445,6 @@ void send_stats() LLViewerStats::instance().getRecording().pause(); - body["session_id"] = gAgentSessionID; - LLSD &agent = body["agent"]; time_t ltime; @@ -600,9 +598,13 @@ void send_stats() body["MinimalSkin"] = false; + LL_INFOS("LogViewerStatsPacket") << "Sending viewer statistics: " << body << LL_ENDL; + + // The session ID token must never appear in logs + body["session_id"] = gAgentSessionID; + LLViewerStats::getInstance()->addToMessage(body); - LL_INFOS("LogViewerStatsPacket") << "Sending viewer statistics: " << body << LL_ENDL; LLCoreHttpUtil::HttpCoroutineAdapter::messageHttpPost(url, body, "Statistics posted to sim", "Failed to post statistics to sim"); LLViewerStats::instance().getRecording().resume(); diff --git a/indra/newview/llviewertexteditor.h b/indra/newview/llviewertexteditor.h index 33cfca4f90..44f104dde1 100644 --- a/indra/newview/llviewertexteditor.h +++ b/indra/newview/llviewertexteditor.h @@ -71,7 +71,8 @@ public: mObjectID = object_id; mPreviewID = preview_id; } - + void setNotecardObjectID(const LLUUID& object_id){ mObjectID = object_id;} + void setASCIIEmbeddedText(const std::string& instr); void setEmbeddedText(const std::string& instr); std::string getEmbeddedText(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 6b201ffe37..119c1a9db6 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4381,6 +4381,8 @@ BOOL LLViewerWindow::saveImageNumbered(LLImageFormatted *image, BOOL force_picke else pick_type = LLFilePicker::FFSAVE_ALL; // ??? + BOOL is_snapshot_name_loc_set = isSnapshotLocSet(); + // Get a base file location if needed. if (force_picker || !isSnapshotLocSet()) { @@ -4429,7 +4431,12 @@ BOOL LLViewerWindow::saveImageNumbered(LLImageFormatted *image, BOOL force_picke filepath = sSnapshotDir; filepath += gDirUtilp->getDirDelimiter(); filepath += sSnapshotBaseName; - filepath += llformat("_%.3d",i); + + if (is_snapshot_name_loc_set) + { + filepath += llformat("_%.3d",i); + } + filepath += extension; llstat stat_info; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index efcdb07176..eae8f2cc56 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2085,7 +2085,17 @@ void LLVOAvatar::updateMeshData() if(!facep->getVertexBuffer()) { buff = new LLVertexBufferAvatar(); - buff->allocateBuffer(num_vertices, num_indices, TRUE); + if (!buff->allocateBuffer(num_vertices, num_indices, TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer for Mesh to " + << num_vertices << " vertices and " + << num_indices << " indices" << LL_ENDL; + // Attempt to create a dummy triangle (one vertex, 3 indices, all 0) + facep->setSize(1, 3); + buff->allocateBuffer(1, 3, true); + memset((U8*) buff->getMappedData(), 0, buff->getSize()); + memset((U8*) buff->getMappedIndices(), 0, buff->getIndicesSize()); + } facep->setVertexBuffer(buff); } else @@ -2097,7 +2107,15 @@ void LLVOAvatar::updateMeshData() } else { - buff->resizeBuffer(num_vertices, num_indices); + if (!buff->resizeBuffer(num_vertices, num_indices)) + { + LL_WARNS() << "Failed to allocate vertex buffer for Mesh, Substituting" << LL_ENDL; + // Attempt to create a dummy triangle (one vertex, 3 indices, all 0) + facep->setSize(1, 3); + buff->resizeBuffer(1, 3); + memset((U8*) buff->getMappedData(), 0, buff->getSize()); + memset((U8*) buff->getMappedIndices(), 0, buff->getIndicesSize()); + } } } @@ -2109,20 +2127,24 @@ void LLVOAvatar::updateMeshData() LL_ERRS() << "non-zero geom index: " << facep->getGeomIndex() << " in LLVOAvatar::restoreMeshData" << LL_ENDL; } - for(S32 k = j ; k < part_index ; k++) + if (num_vertices == buff->getNumVerts() && num_indices == buff->getNumIndices()) { - bool rigid = false; - if (k == MESH_ID_EYEBALL_LEFT || - k == MESH_ID_EYEBALL_RIGHT) - { //eyeballs can't have terse updates since they're never rendered with - //the hardware skinning shader - rigid = true; - } - - LLViewerJoint* mesh = getViewerJoint(k); - if (mesh) + for(S32 k = j ; k < part_index ; k++) { - mesh->updateFaceData(facep, mAdjustedPixelArea, k == MESH_ID_HAIR, terse_update && !rigid); + bool rigid = false; + if (k == MESH_ID_EYEBALL_LEFT || + k == MESH_ID_EYEBALL_RIGHT) + { + //eyeballs can't have terse updates since they're never rendered with + //the hardware skinning shader + rigid = true; + } + + LLViewerJoint* mesh = getViewerJoint(k); + if (mesh) + { + mesh->updateFaceData(facep, mAdjustedPixelArea, k == MESH_ID_HAIR, terse_update && !rigid); + } } } @@ -7025,7 +7047,7 @@ void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapse record["elapsed"] = elapsed; record["completed"] = completed; U32 grid_x(0), grid_y(0); - if (getRegion()) + if (getRegion() && LLWorld::instance().isRegionListed(getRegion())) { record["central_bake_version"] = LLSD::Integer(getRegion()->getCentralBakeVersion()); grid_from_region_handle(getRegion()->getHandle(), &grid_x, &grid_y); diff --git a/indra/newview/llvoground.cpp b/indra/newview/llvoground.cpp index c1273e684c..71a7623fb4 100644 --- a/indra/newview/llvoground.cpp +++ b/indra/newview/llvoground.cpp @@ -94,7 +94,12 @@ BOOL LLVOGround::updateGeometry(LLDrawable *drawable) { face->setSize(5, 12); LLVertexBuffer* buff = new LLVertexBuffer(LLDrawPoolGround::VERTEX_DATA_MASK, GL_STREAM_DRAW_ARB); - buff->allocateBuffer(face->getGeomCount(), face->getIndicesCount(), TRUE); + if (!buff->allocateBuffer(face->getGeomCount(), face->getIndicesCount(), TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer for VOGround to " + << face->getGeomCount() << " vertices and " + << face->getIndicesCount() << " indices" << LL_ENDL; + } face->setGeomIndex(0); face->setIndicesIndex(0); face->setVertexBuffer(buff); diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp index 6e5db526b0..f7b21338f8 100644 --- a/indra/newview/llvopartgroup.cpp +++ b/indra/newview/llvopartgroup.cpp @@ -61,7 +61,15 @@ void LLVOPartGroup::restoreGL() //TODO: optimize out binormal mask here. Specular and normal coords as well. sVB = new LLVertexBuffer(VERTEX_DATA_MASK | LLVertexBuffer::MAP_TANGENT | LLVertexBuffer::MAP_TEXCOORD1 | LLVertexBuffer::MAP_TEXCOORD2, GL_STREAM_DRAW_ARB); U32 count = LL_MAX_PARTICLE_COUNT; - sVB->allocateBuffer(count*4, count*6, true); + if (!sVB->allocateBuffer(count*4, count*6, true)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer to " + << count*4 << " vertices and " + << count * 6 << " indices" << LL_ENDL; + // we are likelly to crash at following getTexCoord0Strider(), so unref and return + sVB = NULL; + return; + } //indices and texcoords are always the same, set once LLStrider<U16> indicesp; @@ -764,7 +772,7 @@ void LLParticlePartition::rebuildGeom(LLSpatialGroup* group) addGeometryCount(group, vertex_count, index_count); - if (vertex_count > 0 && index_count > 0) + if (vertex_count > 0 && index_count > 0 && LLVOPartGroup::sVB) { group->mBuilt = 1.f; //use one vertex buffer for all groups diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index 6b4a450e6f..c131cb886f 100644 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -1462,7 +1462,12 @@ BOOL LLVOSky::updateHeavenlyBodyGeometry(LLDrawable *drawable, const S32 f, cons { facep->setSize(4, 6); LLVertexBuffer* buff = new LLVertexBuffer(LLDrawPoolSky::VERTEX_DATA_MASK, GL_STREAM_DRAW_ARB); - buff->allocateBuffer(facep->getGeomCount(), facep->getIndicesCount(), TRUE); + if (!buff->allocateBuffer(facep->getGeomCount(), facep->getIndicesCount(), TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer for vosky to " + << facep->getGeomCount() << " vertices and " + << facep->getIndicesCount() << " indices" << LL_ENDL; + } facep->setGeomIndex(0); facep->setIndicesIndex(0); facep->setVertexBuffer(buff); @@ -1869,7 +1874,12 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H, { face->setSize(quads * 4, quads * 6); LLVertexBuffer* buff = new LLVertexBuffer(LLDrawPoolWater::VERTEX_DATA_MASK, GL_STREAM_DRAW_ARB); - buff->allocateBuffer(face->getGeomCount(), face->getIndicesCount(), TRUE); + if (!buff->allocateBuffer(face->getGeomCount(), face->getIndicesCount(), TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer for vosky to " + << face->getGeomCount() << " vertices and " + << face->getIndicesCount() << " indices" << LL_ENDL; + } face->setIndicesIndex(0); face->setGeomIndex(0); face->setVertexBuffer(buff); diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp index 4dcc267e96..369ddebe2d 100644 --- a/indra/newview/llvotree.cpp +++ b/indra/newview/llvotree.cpp @@ -525,7 +525,14 @@ BOOL LLVOTree::updateGeometry(LLDrawable *drawable) } mReferenceBuffer = new LLVertexBuffer(LLDrawPoolTree::VERTEX_DATA_MASK, 0); - mReferenceBuffer->allocateBuffer(max_vertices, max_indices, TRUE); + if (!mReferenceBuffer->allocateBuffer(max_vertices, max_indices, TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer on update to " + << max_vertices << " vertices and " + << max_indices << " indices" << LL_ENDL; + mReferenceBuffer = NULL; //unref + return TRUE; + } LLStrider<LLVector3> vertices; LLStrider<LLVector3> normals; @@ -883,7 +890,21 @@ void LLVOTree::updateMesh() LLFace* facep = mDrawable->getFace(0); if (!facep) return; LLVertexBuffer* buff = new LLVertexBuffer(LLDrawPoolTree::VERTEX_DATA_MASK, GL_STATIC_DRAW_ARB); - buff->allocateBuffer(vert_count, index_count, TRUE); + if (!buff->allocateBuffer(vert_count, index_count, TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer on mesh update to " + << vert_count << " vertices and " + << index_count << " indices" << LL_ENDL; + buff->allocateBuffer(1, 3, true); + memset((U8*)buff->getMappedData(), 0, buff->getSize()); + memset((U8*)buff->getMappedIndices(), 0, buff->getIndicesSize()); + facep->setSize(1, 3); + facep->setVertexBuffer(buff); + mReferenceBuffer->flush(); + buff->flush(); + return; + } + facep->setVertexBuffer(buff); LLStrider<LLVector3> vertices; diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 90ba814a15..f77b48ff80 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -5638,18 +5638,25 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac } //create vertex buffer - LLVertexBuffer* buffer = NULL; + LLPointer<LLVertexBuffer> buffer; { LL_RECORD_BLOCK_TIME(FTM_GEN_DRAW_INFO_ALLOCATE); buffer = createVertexBuffer(mask, buffer_usage); - buffer->allocateBuffer(geom_count, index_count, TRUE); + if(!buffer->allocateBuffer(geom_count, index_count, TRUE)) + { + LL_WARNS() << "Failed to allocate group Vertex Buffer to " + << geom_count << " vertices and " + << index_count << " indices" << LL_ENDL; + buffer = NULL; + } } - group->mGeometryBytes += buffer->getSize() + buffer->getIndicesSize(); - - - buffer_map[mask][*face_iter].push_back(buffer); + if (buffer) + { + group->mGeometryBytes += buffer->getSize() + buffer->getIndicesSize(); + buffer_map[mask][*face_iter].push_back(buffer); + } //add face geometry @@ -5657,8 +5664,17 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac U16 index_offset = 0; while (face_iter < i) - { //update face indices for new buffer + { + //update face indices for new buffer facep = *face_iter; + if (buffer.isNull()) + { + // Bulk allocation failed + facep->setVertexBuffer(buffer); + facep->setSize(0, 0); // mark as no geometry + ++face_iter; + continue; + } facep->setIndicesIndex(indices_index); facep->setGeomIndex(index_offset); facep->setVertexBuffer(buffer); @@ -5983,7 +5999,10 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac ++face_iter; } - buffer->flush(); + if (buffer) + { + buffer->flush(); + } } group->mBufferMap[mask].clear(); diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp index 9ce16a1674..ccda92810e 100644 --- a/indra/newview/llvowater.cpp +++ b/indra/newview/llvowater.cpp @@ -155,14 +155,22 @@ BOOL LLVOWater::updateGeometry(LLDrawable *drawable) if (!buff || !buff->isWriteable()) { buff = new LLVertexBuffer(LLDrawPoolWater::VERTEX_DATA_MASK, GL_DYNAMIC_DRAW_ARB); - buff->allocateBuffer(face->getGeomCount(), face->getIndicesCount(), TRUE); + if (!buff->allocateBuffer(face->getGeomCount(), face->getIndicesCount(), TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer on water update to " + << face->getGeomCount() << " vertices and " + << face->getIndicesCount() << " indices" << LL_ENDL; + } face->setIndicesIndex(0); face->setGeomIndex(0); face->setVertexBuffer(buff); } else { - buff->resizeBuffer(face->getGeomCount(), face->getIndicesCount()); + if (!buff->resizeBuffer(face->getGeomCount(), face->getIndicesCount())) + { + LL_WARNS() << "Failed to resize Vertex Buffer" << LL_ENDL; + } } index_offset = face->getGeometry(verticesp,normalsp,texCoordsp, indicesp); diff --git a/indra/newview/llvowlsky.cpp b/indra/newview/llvowlsky.cpp index 16130b5ca7..3b9b96e9f1 100644 --- a/indra/newview/llvowlsky.cpp +++ b/indra/newview/llvowlsky.cpp @@ -313,7 +313,12 @@ BOOL LLVOWLSky::updateGeometry(LLDrawable * drawable) #if DOME_SLICES { mFanVerts = new LLVertexBuffer(LLDrawPoolWLSky::SKY_VERTEX_DATA_MASK, GL_STATIC_DRAW_ARB); - mFanVerts->allocateBuffer(getFanNumVerts(), getFanNumIndices(), TRUE); + if (!mFanVerts->allocateBuffer(getFanNumVerts(), getFanNumIndices(), TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer on sky update to " + << getFanNumVerts() << " vertices and " + << getFanNumIndices() << " indices" << LL_ENDL; + } BOOL success = mFanVerts->getVertexStrider(vertices) && mFanVerts->getTexCoord0Strider(texCoords) @@ -375,7 +380,12 @@ BOOL LLVOWLSky::updateGeometry(LLDrawable * drawable) const U32 num_indices_this_seg = 1+num_stacks_this_seg*(2+2*verts_per_stack); llassert(num_indices_this_seg * sizeof(U16) <= max_buffer_bytes); - segment->allocateBuffer(num_verts_this_seg, num_indices_this_seg, TRUE); + if (!segment->allocateBuffer(num_verts_this_seg, num_indices_this_seg, TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer on update to " + << num_verts_this_seg << " vertices and " + << num_indices_this_seg << " indices" << LL_ENDL; + } // lock the buffer BOOL success = segment->getVertexStrider(vertices) @@ -777,7 +787,10 @@ BOOL LLVOWLSky::updateStarGeometry(LLDrawable *drawable) if (mStarsVerts.isNull() || !mStarsVerts->isWriteable()) { mStarsVerts = new LLVertexBuffer(LLDrawPoolWLSky::STAR_VERTEX_DATA_MASK, GL_DYNAMIC_DRAW); - mStarsVerts->allocateBuffer(getStarsNumVerts()*6, 0, TRUE); + if (!mStarsVerts->allocateBuffer(getStarsNumVerts()*6, 0, TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer for Sky to " << getStarsNumVerts() * 6 << " vertices" << LL_ENDL; + } } BOOL success = mStarsVerts->getVertexStrider(verticesp) diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index c38dafee53..1d083bb2fd 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -3903,7 +3903,14 @@ void LLPipeline::postSort(LLCamera& camera) } //flush particle VB - LLVOPartGroup::sVB->flush(); + if (LLVOPartGroup::sVB) + { + LLVOPartGroup::sVB->flush(); + } + else + { + LL_WARNS_ONCE() << "Missing particle buffer" << LL_ENDL; + } /*bool use_transform_feedback = gTransformPositionProgram.mProgramObject && !mMeshDirtyGroup.empty(); diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml index fbd75618ca..1e18ab20e8 100644 --- a/indra/newview/skins/default/xui/de/floater_about_land.xml +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -433,13 +433,10 @@ Nur große Parzellen können in der Suche aufgeführt werden. <panel.string name="estate_override"> Eine oder mehrere dieser Optionen gelten auf Grundbesitzebene </panel.string> - <check_box label="Öffentlichen Zugang gestatten (bei Deaktivierung dieser Option werden Bannlinien generiert)" name="public_access"/> - <text name="Only Allow" width="400"> - Zugang nur Einwohnern gestatten, die: - </text> - <check_box label="Zahlungsinformationen hinterlegt haben [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Um diese Parzelle besuchen zu können, müssen Einwohner Zahlungsinformationen hinterlegt haben. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> - <check_box label="Sind mindestens 18 Jahre alt [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Nur Einwohner, die mindestens 18 Jahre alt sind, können diese Parzelle betreten. Weitere Informationen finden Sie unter [SUPPORT_SITE]."/> - <check_box label="Gruppenzugang erlauben: [GROUP]" name="GroupCheck" tool_tip="Gruppe im Register „Allgemein“ festlegen."/> + <check_box label="Alle Besucher sind zugelassen (Bei Deaktivierung dieser Option werden Bannlinien generiert)" name="public_access"/> + <check_box label="Muss 18+ sein [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Nur Einwohner, die mindestens 18 Jahre alt sind, können diese Parzelle betreten. Weitere Informationen finden Sie unter [SUPPORT_SITE]."/> + <check_box label="Muss über Zahlungsinfo in Datei [ESTATE_PAYMENT_LIMIT] verfügen" name="limit_payment" tool_tip="Um diese Parzelle besuchen zu können, müssen Einwohner Zahlungsinformationen hinterlegt haben. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> + <check_box label="Gruppe [GROUP] ohne Beschränkungen zulassen" name="GroupCheck" tool_tip="Gruppe im Register „Allgemein“ festlegen."/> <check_box label="Pässe verkaufen an:" name="PassCheck" tool_tip="Ermöglicht befristeten Zugang zu dieser Parzelle"/> <combo_box name="pass_combo"> <combo_box.item label="Jeden" name="Anyone"/> @@ -447,9 +444,12 @@ Nur große Parzellen können in der Suche aufgeführt werden. </combo_box> <spinner label="Preis in L$:" name="PriceSpin"/> <spinner label="Online-Zeit:" name="HoursSpin"/> + <text name="OwnerLimited"> + (Der Grundbesitzer kann diese Auswahl eingeschränkt haben) + </text> <panel name="Allowed_layout_panel"> <text label="Immer erlauben" name="AllowedText"> - Zulässige Einwohner ([COUNT], max. [MAX]) + Immer zulässig ([COUNT], max. [MAX]) </text> <name_list name="AccessList" tool_tip="([LISTED] aufgeführt, [MAX] max)"/> <button label="Hinzufügen" name="add_allowed"/> @@ -457,7 +457,7 @@ Nur große Parzellen können in der Suche aufgeführt werden. </panel> <panel name="Banned_layout_panel"> <text label="Verbannen" name="BanCheck"> - Verbannte Einwohner ([COUNT], max. [MAX]) + Immer verbannt ([COUNT], max. [MAX]) </text> <name_list name="BannedList" tool_tip="([LISTED] aufgeführt, [MAX] max)"/> <button label="Hinzufügen" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml index f66b87b76c..9e3ec4d93e 100644 --- a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> „[TEXT]“ nicht gefunden </floater.string> + <floater.string name="not_found_text"> + Einwohner nicht gefunden. + </floater.string> <floater.string name="no_one_near"> Keiner in der Nähe </floater.string> diff --git a/indra/newview/skins/default/xui/de/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/de/floater_avatar_render_settings.xml index e73ace4296..6632f34a6d 100644 --- a/indra/newview/skins/default/xui/de/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/de/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="Name" name="name"/> <name_list.columns label="Darstellungseinstellung" name="setting"/> + <name_list.columns label="Hinzugefügt am" name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml index 23c7157333..cdacabec90 100644 --- a/indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/de/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="Alle" label_selected="Alle" name="All"/> <button label="Keine" label_selected="Keine" name="None"/> <check_box label="Ordner immer anzeigen" name="check_show_empty"/> + <check_box label="Von mir erstellt" name="check_created_by_me"/> + <check_box label="Von anderen erstellt" name="check_created_by_others"/> <check_box label="Seit Abmeldung" name="check_since_logoff"/> <text name="- OR -"> - ODER - diff --git a/indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml index f80bc1da8d..a423f3efea 100644 --- a/indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/de/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="Pathfinding-Linksets"> +<floater name="floater_pathfinding_linksets" title="REGIONSOBJEKTE"> <floater.string name="messaging_get_inprogress"> Pathfinding-Linksets werden abgerufen... </floater.string> @@ -16,7 +16,7 @@ Keine Pathfinding-Linksets. </floater.string> <floater.string name="messaging_complete_available"> - [NUM_SELECTED] Linksets von [NUM_TOTAL] ausgewählt. + [NUM_SELECTED] von [NUM_TOTAL] ausgewählt. </floater.string> <floater.string name="messaging_not_enabled"> Pathfinding ist in dieser Region nicht aktiviert. @@ -118,7 +118,7 @@ <scroll_list.columns label="Geskriptet" name="scripted"/> <scroll_list.columns label="Belastung" name="land_impact"/> <scroll_list.columns label="Abstand" name="dist_from_you"/> - <scroll_list.columns label="Linkset-Nutzung" name="linkset_use"/> + <scroll_list.columns label="Pathfinding verwenden" name="linkset_use"/> <scroll_list.columns label="A %" name="a_percent"/> <scroll_list.columns label="B %" name="b_percent"/> <scroll_list.columns label="C %" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - Aktionen für ausgewählte Linksets (wenn ein Linkset aus der Welt entfernt wird, gehen seine Attribute u. U. verloren): + Aktionen für Auswahl </text> <check_box label="Beacon anzeigen" name="show_beacon"/> <button label="Nehmen" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - Bearbeiten Sie die Attribute ausgewählter Linksets und klicken Sie auf die Schaltfläche, um die änderungen zu übernehmen + Pathfinding-Attribute bearbeiten </text> <text name="walkability_coefficients_label"> Begehbarkeit: diff --git a/indra/newview/skins/default/xui/de/floater_tos.xml b/indra/newview/skins/default/xui/de/floater_tos.xml index 6fee9b5204..636c2629da 100644 --- a/indra/newview/skins/default/xui/de/floater_tos.xml +++ b/indra/newview/skins/default/xui/de/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Wird geladen %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3EServicebedingungen%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="Weiter" label_selected="Weiter" name="Continue"/> - <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/> - <check_box label="Ich stimme den Servicebedingungen und Datenschutzbestimmungen zu." name="agree_chk"/> <text name="tos_heading"> - Lesen Sie die folgenden Servicebedingungen und Datenbestimmungen sorgfältig durch. Sie müssen den Servicebedingungen zustimmen, um sich bei [SECOND_LIFE] anmelden zu können. + Bitte lesen Sie die Allgemeinen Geschäftsbedingungen, die Datenschutzrichtlinie und die Servicebedingungen von Second Life inklusive der Anforderungen zur Anwendung von Schiedsverfahren sowie zum Verzicht auf jegliche Klassen- oder Gruppenansprüche zur Beilegung von Streitigkeiten. Um sich weiterhin bei [SECOND_LIFE] anmelden zu können, müssen Sie diese Bedingungen akzeptieren. </text> <text name="external_tos_required"> Sie müssen sich unter https://my.secondlife.com anmelden und die Servicebedingungen akzeptieren, bevor Sie fortfahren können. Vielen Dank! </text> + <check_box label="Ich habe die" name="agree_chk"/> + <text name="agree_list"> + Allgemeinen Geschäftsbedingungen, die Datenschutzrichtlinie sowie die Servicebedingungen inklusive der Anforderungen zur Streitschlichtung gelesen und akzeptiere diese. + </text> + <button label="Weiter" label_selected="Weiter" name="Continue"/> + <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/de/menu_attachment_other.xml b/indra/newview/skins/default/xui/de/menu_attachment_other.xml index 7d8fc9a1f6..26c760894e 100644 --- a/indra/newview/skins/default/xui/de/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/de/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="Standard" name="RenderNormally"/> <menu_item_check label="Immer" name="AlwaysRenderFully"/> <menu_item_check label="Nie" name="DoNotRender"/> + <menu_item_call label="Ausnahmen..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Partikeleigentümer blockieren" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml index ad47f1d37d..33f6a51002 100644 --- a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="Profil anzeigen" name="Show Profile"/> <menu_item_call label="IM senden..." name="Send IM"/> <menu_item_call label="Teleport anfordern" name="Request Teleport"/> <menu_item_call label="Freund hinzufügen..." name="Add Friend"/> <menu_item_call label="Freund entfernen..." name="Remove Friend"/> -</menu> + <context_menu label="Moderationsoptionen" name="Moderator Options"> + <menu_item_check label="Text-Chat zulassen" name="AllowTextChat"/> + <menu_item_call label="Diesen Teilnehmer stummschalten" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="Stummschaltung für diesen Teilnehmer aufheben" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="Mitglied verbannen" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/de/menu_avatar_other.xml b/indra/newview/skins/default/xui/de/menu_avatar_other.xml index 9bfab36f76..9f795e7683 100644 --- a/indra/newview/skins/default/xui/de/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/de/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="Standard" name="RenderNormally"/> <menu_item_check label="Immer" name="AlwaysRenderFully"/> <menu_item_check label="Nie" name="DoNotRender"/> + <menu_item_call label="Ausnahmen..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Partikeleigentümer blockieren" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml index 178f8f6589..e02d464a3d 100644 --- a/indra/newview/skins/default/xui/de/menu_inventory.xml +++ b/indra/newview/skins/default/xui/de/menu_inventory.xml @@ -75,10 +75,12 @@ <menu_item_call label="Eigenschaften" name="Properties"/> <menu_item_call label="Umbenennen" name="Rename"/> <menu_item_call label="Asset-UUID kopieren" name="Copy Asset UUID"/> + <menu_item_call label="Im Hauptfeld anzeigen" name="Show in Main Panel"/> <menu_item_call label="Ausschneiden" name="Cut"/> <menu_item_call label="Kopieren" name="Copy"/> <menu_item_call label="Einfügen" name="Paste"/> <menu_item_call label="Als Link einfügen" name="Paste As Link"/> + <menu_item_call label="Links ersetzen" name="Replace Links"/> <menu_item_call label="Löschen" name="Delete"/> <menu_item_call label="Systemordner löschen" name="Delete System Folder"/> <menu_item_call label="Konferenz-Chat starten" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml index 7438fc5aa2..5f62166284 100644 --- a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml @@ -13,5 +13,6 @@ <menu_item_call label="Teilen" name="Share"/> <menu_item_call label="Original suchen" name="Find Original"/> <menu_item_call label="Alle Links suchen" name="Find All Links"/> + <menu_item_call label="Links ersetzen" name="Replace Links"/> <menu_item_call label="Papierkorb ausleeren" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/de/menu_login.xml b/indra/newview/skins/default/xui/de/menu_login.xml index 9d4c49b05d..681a27fceb 100644 --- a/indra/newview/skins/default/xui/de/menu_login.xml +++ b/indra/newview/skins/default/xui/de/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="Ich" name="File"> <menu_item_call label="Einstellungen..." name="Preferences..."/> + <menu_item_call label="Fenster schließen" name="Close Window"/> <menu_item_check label="Grid-Auswahl anzeigen" name="Show Grid Picker"/> <menu_item_call label="[APP_NAME] schließen" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index 5feedef965..58c691351c 100644 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -121,7 +121,7 @@ <menu_item_call label="Nächsten Teil oder nächste Fläche einschließen" name="Include Next Part or Face"/> <menu_item_call label="Vorherigen Teil oder vorherige Fläche einschließen" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="Linksets..." name="pathfinding_linkset_menu_item"/> + <menu_item_call label="Regionsobjekte" name="pathfinding_linkset_menu_item"/> <menu_item_call label="Fokus auf Auswahl" name="Focus on Selection"/> <menu_item_call label="Auf Auswahl zoomen" name="Zoom to Selection"/> <menu label="Objekt" name="Object"> @@ -141,7 +141,7 @@ <menu_item_call label="Skripts auf nicht ausführen einstellen" name="Set Scripts to Not Running"/> </menu> <menu label="Pathfinding" name="Pathfinding"> - <menu_item_call label="Linksets..." name="pathfinding_linksets_menu_item"/> + <menu_item_call label="Regionsobjekte" name="pathfinding_linksets_menu_item"/> <menu_item_call label="Figuren..." name="pathfinding_characters_menu_item"/> <menu_item_call label="Anzeigen/Testen..." name="pathfinding_console_menu_item"/> <menu_item_call label="Region neu formen" name="pathfinding_rebake_navmesh_item"/> diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 9da6f4ac8b..09b69fdbfd 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> Nicht mehr anzeigen </global> + <global name="skipnexttimesessiononly"> + Nicht mehr anzeigen +(während der aktuellen Sitzung) + </global> <global name="alwayschoose"> Diese Option immer auswählen </global> @@ -349,7 +353,7 @@ Fortfahren? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Beitreten"/> </notification> <notification name="JoinGroupNoCost"> - Sie treten der Gruppe [NAME] bei. + Sie treten der Gruppe <nolink>[NAME]</nolink> bei. Fortfahren? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Beitreten"/> </notification> @@ -363,6 +367,40 @@ Gruppen müssen mehr als ein Mitglied haben oder sie werden gelöscht. Bitte laden Sie innerhalb von 48 Stunden Mitglieder in Ihre Gruppe ein. <usetemplate canceltext="Abbrechen" name="okcancelbuttons" notext="Abbrechen" yestext="Gruppe für 100 L$ erstellen"/> </notification> + <notification name="JoinGroupInaccessible"> + Diese Gruppe ist für Sie nicht verfügbar. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupError"> + Fehler bei der Verarbeitung Ihrer Anfrage zur Gruppenmitgliedschaft. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupErrorReason"> + Beitritt zur Gruppe nicht möglich: [reason] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupTrialUser"> + Leider können Testbenutzer keinen Gruppen beitreten. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupMaxGroups"> + Sie können "<nolink>[group_name]</nolink>" nicht beitreten: +Sie sind bereits Mitglied in [group_count] Gruppen, die maximale zulässige Anzahl beträgt [max_groups] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + Sie können "<nolink>[group_name]</nolink>" nicht beitreten: +Die Gruppe steht für freie Registrierungen nicht mehr zur Verfügung. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupSuccess"> + Sie wurden der Gruppe hinzugefügt. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + Die erforderliche L$ [membership_fee] Mitgliedschaftsgebühr kann nicht übertragen werden. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="LandBuyPass"> Sie können dieses Land („[PARCEL_NAME]“) für [COST] L$ [TIME] Stunden lang betreten. Pass kaufen? @@ -385,9 +423,9 @@ Der Verkaufspreis beträgt [SALE_PRICE] L$. Der Verkauf an [NAME] wird zu diesem <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - Möchten Sie alle Ihre Objekte auf dieser Parzelle, die der Gruppe „[NAME]“ gehören, zurück in das jeweilige Inventar ihrer vorherigen Eigentümer transferieren? + Möchten Sie alle Ihre Objekte auf dieser Parzelle, die gemeinsam mit der Gruppe "<nolink>[NAME]</nolink>" verwendet werden, zurück in das Inventar ihrer vorherigen Eigentümer transferieren? -*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht! +*WARNUNG* Hierdurch werden alle nicht transferierbaren Objekte gelöscht, die der Gruppe übertragen wurden. Objekte: [N] <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> @@ -431,7 +469,7 @@ Objekte: [N] <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - Objekte auf dieser Parzelle, die von der Gruppe [NAME] nicht gemeinsam genutzt werden, an ihre Eigentümer zurückgeben? + Möchten Sie die Objekte auf dieser Parzelle, die NICHT gemeinsam mit der Gruppe <nolink>[NAME]</nolink> verwendet werden, an ihre Eigentümer zurückgeben? Objekte: [N] <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> @@ -479,7 +517,7 @@ Um Medien nur auf einer Fläche einzufügen, wählen Sie „Oberfläche auswähl Ein Report-Screenshot konnte aus folgendem Grund nicht hochgeladen werden: [REASON] </notification> <notification name="MustAgreeToLogIn"> - Bevor Sie sich in [SECOND_LIFE] anmelden können, müssen Sie den Nutzungsbedingungen zustimmen. + Bevor Sie sich weiterhin in [SECOND_LIFE] anmelden können, müssen Sie den Allgemeinen Geschäftsbedingungen, der Datenschutzrichtlinien sowie den Servicebedingungen zustimmen. </notification> <notification name="CouldNotPutOnOutfit"> Outfit konnte nicht angezogen werden. @@ -732,7 +770,7 @@ Der Avatar wird außer Gefecht gesetzt und kann sich nicht mehr bewegen, chatten <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Hinauswerfen"/> </notification> <notification name="EjectAvatarFromGroup"> - Sie haben [AVATAR_NAME] aus der Gruppe [GROUP_NAME] geworfen. + Sie haben [AVATAR_NAME] aus der Gruppe <nolink>[GROUP_NAME]</nolink> entfernt. </notification> <notification name="AcquireErrorTooManyObjects"> FEHLER: Zu viele Objekte ausgewählt. @@ -1336,19 +1374,18 @@ Möchten Sie diese Objekte nehmen? Wählen Sie ein kleineres Gebiet und versuchen Sie es erneut. </notification> <notification name="DeedLandToGroup"> - Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt. -Dem Eigentümer wird der Kaufpreis für das Land nicht rückerstattet. Bei Verkauf der übertragenen Parzelle wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt. + Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt. +Dem Eigentümer wird der Kaufpreis für das Land nicht zurückerstattet. Bei einem Verkauf der übertragenen Parzelle wird der Erlös zu gleichen Teilen unter den Gruppenmitgliedern aufgeteilt. -Der Gruppe „[GROUP_NAME]“ - [AREA] m² Land schenken? +Der Gruppe "<nolink>[GROUP_NAME]</nolink>" diese [AREA] m² Land schenken? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="DeedLandToGroupWithContribution"> - Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt. -Die Schenkung beinhaltet eine Landübertragung an die Gruppe von „[NAME]“. -Dem Eigentümer wird der Kaufpreis für das Land nicht rückerstattet. Bei Verkauf der übertragenen Parzelle wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt. + Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt. +Die Schenkung beinhaltet eine Landübertragung an die Gruppe von "[NAME]". +Dem Eigentümer wird der Kaufpreis für das Land nicht zurückerstattet. Bei einem Verkauf der übertragenen Parzelle wird der Erlös zu gleichen Teilen unter den Gruppenmitgliedern aufgeteilt. -Der Gruppe „[GROUP_NAME]“ [AREA] m² an Land schenken? +Der Gruppe "<nolink>[GROUP_NAME]</nolink>" diese [AREA] m² Land schenken? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="DisplaySetToSafe"> @@ -1759,7 +1796,7 @@ Diese Gruppe verlassen? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="GroupDepart"> - Sie haben die Gruppe „[group_name]“ verlassen. + Sie haben die Gruppe "<nolink>[group_name]</nolink>" verlassen. </notification> <notification name="OwnerCannotLeaveGroup"> Sie können die Gruppe nicht verlassen, da Sie der letzte Besitzer der Gruppe sind. Weisen Sie die Besitzerrolle zuerst einem anderen Mitglied zu. @@ -2032,6 +2069,10 @@ Tausende Regionen werden verändert und der Spaceserver wird dadurch stark belas Möchten Sie den Grundbesitzvertrag wirklich ändern? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> + <notification name="EstateParcelAccessOverride"> + Durch Deaktivieren dieser Option können Einstellungen der Parzellenbesitzer zum Schutz vor Belästigungen, zur Aufrechterhaltung der Privatsphäre oder zum Schutz von Minderjährigen vor nicht altersgemäßen Inhalten aufgehoben werden. Bitte sprechen Sie mit den Parzellenbesitzern, falls erforderlich. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="RegionEntryAccessBlocked"> Die Region, die Sie besuchen möchten, enthält Inhalte, die Ihre aktuellen Einstellungen überschreiten. Sie können Ihre Einstellungen unter „Ich“ > „Einstellungen“ > „Allgemein“ ändern. <usetemplate name="okbutton" yestext="OK"/> @@ -2373,7 +2414,17 @@ Diese Aktion kann nicht rückgängig gemacht werden. </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Vor dem Löschen von Objekten bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/> + <form name="form"> + <ignore name="ignore" text="Vor dem Löschen von Objekten bestätigen"/> + <button name="Yes" text="OK"/> + <button name="No" text="Abbrechen"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + Ihr Inventar wird zur Zeit gefiltert, und nicht alle Objekte, die gelöscht werden sollen, sind momentan sichtbar. + +Möchten Sie diese Objekte wirklich löschen? + <usetemplate ignoretext="Vor dem Löschen gefilterter Objekte bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/> </notification> <notification name="ConfirmUnlink"> Dies ist eine große Auswahl mit Linksets. Wenn Sie die Verknüpfung auflösen, kann sie möglicherweise nicht erneut hergestellt werden. Als Vorsichtsmaßnahme empfiehlt es sich, Kopien von Linksets in Ihr Inventar aufzunehmen. @@ -2449,13 +2500,17 @@ Möchten Sie den Nicht-stören-Modus deaktivieren, bevor Sie diese Transaktion a Der Ordner „[FOLDERNAME]“ ist ein Systemordner. Das Löschen von Systemordnern kann zu instabiler Leistung führen. Möchten Sie fortfahren? <usetemplate ignoretext="Bestätigen, bevor ich einen Systemordner lösche." name="okcancelignore" notext="Abbrechen" yestext="OK"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] Objekt(e) wird/werden dauerhaft gelöscht. Möchten Sie das/die ausgewählte(n) Objekt(e) wirklich dauerhaft aus dem Papierkorb löschen? + <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> + </notification> <notification name="ConfirmEmptyTrash"> - Sind Sie sicher, dass Sie den Inhalt Ihres Papierkorbs löschen möchten? - <usetemplate ignoretext="Bestätigen, bevor der Ordner Papierkorb im Inventar geleert wird" name="okcancelignore" notext="Abbrechen" yestext="OK"/> + [COUNT] Objekte werden dauerhaft gelöscht. Möchten Sie den Inhalt Ihres Papierkorbs wirklich dauerhaft löschen? + <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="TrashIsFull"> Ihr Papierkorb läuft über. Dies kann zu Anmeldeproblemen führen. - <usetemplate name="okcancelbuttons" notext="Papierkorb später leeren" yestext="Papierkorb jetzt leeren"/> + <usetemplate name="okcancelbuttons" notext="Papierkorb später leeren" yestext="Papierkorb ansehen"/> </notification> <notification name="ConfirmClearBrowserCache"> Sind Sie sicher, dass Sie Ihren Reise-, Internet- und Suchverlauf löschen möchten? @@ -2584,6 +2639,9 @@ Von einer Webseite zu diesem Formular linken, um anderen leichten Zugang zu dies <notification name="AddSelfFriend"> Obwohl Sie ein sehr netter Mensch sind, können Sie sich nicht selbst als Freund hinzufügen. </notification> + <notification name="AddSelfRenderExceptions"> + Sie können sich nicht selbst der Rendering-Ausnahmeliste hinzufügen. + </notification> <notification name="UploadingAuctionSnapshot"> In-Welt- und Website-Fotos werden hochgeladen... (Dauert ca. 5 Minuten.) @@ -2777,9 +2835,9 @@ Bitte installieren Sie das Plugin erneut. Falls weiterhin Problem auftreten, kon Alle Objekte auf der ausgewählten Parzelle, die Einwohner '[NAME]' gehören, wurden an ihren Eigentümern zurückgegeben. </notification> <notification name="GroupObjectsReturned"> - Die mit der Gruppe [GROUPNAME] gemeinsam genutzten Objekte auf dieser Parzelle wurden in das Inventar ihrer Eigentümer transferiert. -Transferierbare übertragene Objekte wurden an ihre früheren Eigentümer zurückgegeben. -Nicht transferierbare an die Gruppe übertragene Objekte wurden gelöscht. + Die mit der Gruppe <nolink>[GROUPNAME]</nolink> gemeinsam verwendeten Objekte auf dieser Parzelle wurden zurück in das Inventar ihrer Eigentümer transferiert. +Transferierbare, an die Gruppe übertragene Objekte wurden an ihre früheren Eigentümer zurückgegeben. +Nicht transferierbare, an die Gruppe übertragene Objekte wurden gelöscht. </notification> <notification name="UnOwnedObjectsReturned"> Alle Objekte auf der ausgewählten Parzelle, die NICHT Ihnen gehören, wurden ihren Eigentümern zurückgegeben. @@ -3164,7 +3222,7 @@ Um diese Berechtigung zu gewähren, laden Sie die neueste Version des Viewers vo </form> </notification> <notification name="ScriptDialogGroup"> - „<nolink>[TITLE]</nolink>“ von [GROUPNAME] + <nolink>[GROUPNAME]</nolink>s "<nolink>[TITLE]</nolink>" [MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="Blockieren"/> @@ -3212,8 +3270,8 @@ Klicken Sie auf 'Akzeptieren ', um dem Gespräch beizutreten, oder au [NAME] wurde ein Inventarobjekt angeboten und wird nicht länger ignoriert. </notification> <notification name="VoiceInviteGroup"> - [NAME] ist einem Voice-Chat mit der Gruppe [GROUP] beigetreten. -Klicken Sie auf 'Akzeptieren ', um dem Gespräch beizutreten, oder auf 'Ablehnen ', um die Einladung auszuschlagen. Klicken Sie auf Ignorieren, um diesen Anrufer zu ignorieren. + [NAME] ist einem Voice-Chat mit der Gruppe <nolink>[GROUP]</nolink> beigetreten. +Klicken Sie auf „Annehmen“, um die Einladung zu akzeptieren, oder auf „Ablehnen“, um die Einladung nicht zu akzeptieren. Klicken Sie auf „Ignorieren“, um diesen Anrufer zu ignorieren. <form name="form"> <button name="Accept" text="Akzeptieren"/> <button name="Decline" text="Ablehnen"/> @@ -3321,6 +3379,9 @@ Diese werden für ein paar Sekunden sicherheitshalber gesperrt. <notification name="AppearanceToXMLFailed"> Fehler beim Speichern des Erscheinungsbilds als XML. </notification> + <notification name="SnapshotToComputerFailed"> + Fehler beim Speichern des Bildes unter [PATH]: Zu wenig Speicherplatz auf dem Medium. [NEED_MEMORY]KB werden benötigt, es stehen jedoch nur [FREE_MEMORY]KB zur Verfügung. + </notification> <notification name="PresetNotSaved"> Fehler beim Speichern der Voreinstellung [NAME]. </notification> @@ -3358,9 +3419,14 @@ Die Schaltfläche wird angezeigt, wenn genügend Platz vorhanden ist. <notification name="ShareNotification"> Wählen Sie Einwohner aus, für die Sie das Objekt freigeben möchten. </notification> + <notification name="MeshUploadErrorDetails"> + [LABEL] konnte nicht hochgeladen werden: [MESSAGE] +[DETAILS]Siehe SecondLife.log für weitere Details + </notification> <notification name="MeshUploadError"> - [LABEL] konnte nicht hochgeladen werden: [MESSAGE] [IDENTIFIER] -[DETAILS]Details finden Sie in SecondLife.log. + [LABEL] konnte nicht hochgeladen werden: [MESSAGE] + +Siehe SecondLife.log für weitere Details </notification> <notification name="MeshUploadPermError"> Fehler beim Anfordern der Berechtigungen zum Hochladen des Netzes diff --git a/indra/newview/skins/default/xui/de/panel_main_inventory.xml b/indra/newview/skins/default/xui/de/panel_main_inventory.xml index 92bbed6b07..d265f040ab 100644 --- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> Objekte: </text> - <filter_editor label="Inventar filtern" name="inventory search editor"/> + <filter_editor label="Suchtext eingeben" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="Name" name="Name" value="search_by_name"/> + <item label="Ersteller" name="Creator" value="search_by_creator"/> + <item label="Beschreibung" name="Description" value="search_by_description"/> + <item label="UUID" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="MEIN INVENTAR" name="All Items"/> <recent_inventory_panel label="AKTUELL" name="Recent Items"/> + <inventory_panel label="GETRAGEN" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml index b8ddc63b93..fcccd56762 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml @@ -6,7 +6,7 @@ <text name="Cache:"> Cache: </text> - <spinner label="Cache-Größe (256 – 9.984 MB)" name="cachesizespinner"/> + <spinner label="Cachegröße (256 - 9984 MB)" name="cachesizespinner"/> <text name="text_box5"> MB </text> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml index e9ced1a0d2..550a99fe0a 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Text-Chat" name="chat"> + <check_box initial_value="true" label="Automatische Gestenvervollständigung beim Chat in der Nähe" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/> <check_box label="IMs per E-Mail zustellen, wenn ich offline bin" name="send_im_to_email"/> diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml index b087451391..2a7b654954 100644 --- a/indra/newview/skins/default/xui/de/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml @@ -15,58 +15,34 @@ <text name="estate_owner"> (unbekannt) </text> - <text name="Only Allow"> - Zugang nur Einwohnern gestatten, die: - </text> - <check_box label="Zahlungsinformationen hinterlegt haben" name="limit_payment" tool_tip="Um diesen Grundbesitz besuchen zu können, müssen Einwohner Zahlungsinformationen hinterlegt haben. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> - <check_box label="Sind mindestens 18 Jahre alt" name="limit_age_verified" tool_tip="Nur Einwohner, die mindestens 18 Jahre alt sind, können diesen Grundbesitz betreten. Weitere Informationen finden Sie unter [SUPPORT_SITE]."/> + <radio_group name="externally_visible_radio"> + <radio_item label="Nur nachstehend aufgelistete Einwohner und Gruppen zulassen" name="estate_restricted_access"/> + <radio_item label="Alle Besucher zugelassen" name="estate_public_access"/> + </radio_group> + <check_box label="Muss 18+ sein" name="limit_age_verified" tool_tip="Nur Einwohner, die mindestens 18 Jahre alt sind, können diesen Grundbesitz betreten. Weitere Informationen finden Sie unter [SUPPORT_SITE]."/> + <check_box label="Muss über Zahlungsinfo in Datei verfügen" name="limit_payment" tool_tip="Um diesen Grundbesitz besuchen zu können, müssen Einwohner Zahlungsinformationen hinterlegt haben. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> + <check_box label="Parzellenbesitzer können restriktiver sein" name="parcel_access_override"/> <check_box label="Voice-Chat erlauben" name="voice_chat_check"/> - <button label="?" name="voice_chat_help"/> - <text name="abuse_email_text" width="222"> - E-Mail-Adresse für Missbrauchsmeldungen: - </text> - <string name="email_unsupported"> - Funktion nicht unterstützt - </string> - <button label=" ?" name="abuse_email_address_help"/> - <button label="?" name="estate_manager_help"/> - <button label="Hinzufügen..." name="add_estate_manager_btn"/> - <button label="Entfernen..." name="remove_estate_manager_btn"/> - <check_box label="Globale Zeit verwenden" name="use_global_time_check"/> - <button label="?" name="use_global_time_help"/> - <check_box label="Sonne fest" name="fixed_sun_check"/> - <button label="?" name="fixed_sun_help"/> - <slider label="Phase" name="sun_hour_slider"/> - <check_box label="Freien Zugang erlauben" name="externally_visible_check"/> - <button label="?" name="externally_visible_help"/> <check_box label="Direktteleport zulassen" name="allow_direct_teleport"/> - <button label="?" name="allow_direct_teleport_help"/> - <text name="region_text_lbl"> - Zugang nach Zahlungsstatus verweigern: - </text> - <check_box label="Verweigern - keine archivierte Zahlungsinfo" name="deny_anonymous"/> - <check_box label="Verweigern - Zahlungsinfo archiviert" name="deny_identified"/> - <check_box label="Verweigern - Zahlungsinfo verwendet" name="deny_transacted"/> <button label="Ãœbernehmen" name="apply_btn"/> <text name="estate_manager_label"> Grundbesitzsverwalter: </text> <text name="allow_resident_label"> - Zulässige Einwohner: + Immer zugelassen: </text> - <button label="?" name="allow_resident_help"/> + <button label="Hinzufügen..." name="add_estate_manager_btn"/> + <button label="Entfernen..." name="remove_estate_manager_btn"/> <button label="Hinzufügen..." name="add_allowed_avatar_btn"/> <button label="Entfernen..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - Zulässige Gruppen: + Immer zugelassene Gruppen: </text> - <button label="?" name="allow_group_help"/> - <button label="Hinzufügen..." name="add_allowed_group_btn"/> - <button label="Entfernen..." name="remove_allowed_group_btn"/> <text name="ban_resident_label"> - Verbannte Einwohner: + Immer verbannt: </text> - <button label="?" name="ban_resident_help"/> + <button label="Hinzufügen..." name="add_allowed_group_btn"/> + <button label="Entfernen..." name="remove_allowed_group_btn"/> <button label="Hinzufügen..." name="add_banned_avatar_btn"/> <button label="Entfernen..." name="remove_banned_avatar_btn"/> <button label="Nachricht an Grundbesitz" name="message_estate_btn"/> diff --git a/indra/newview/skins/default/xui/de/panel_tools_texture.xml b/indra/newview/skins/default/xui/de/panel_tools_texture.xml index 3314c0c7b6..e0505ce128 100644 --- a/indra/newview/skins/default/xui/de/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/de/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="Unebenheit (normal)" name="Bumpiness (normal)" value="1"/> <radio_item label="Glanzlicht (Spiegel)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="Aktualisierung sperren" name="checkbox_sync_settings" tool_tip="Alle Kartenaktualisierungen gleichzeitig durchführen"/> <texture_picker label="Textur" name="texture control" tool_tip="Klicken, um ein Bild zu wählen"/> <text name="label alphamode"> Alpha-Modus diff --git a/indra/newview/skins/default/xui/de/role_actions.xml b/indra/newview/skins/default/xui/de/role_actions.xml index e3fbe2a630..daddefd69e 100644 --- a/indra/newview/skins/default/xui/de/role_actions.xml +++ b/indra/newview/skins/default/xui/de/role_actions.xml @@ -38,7 +38,7 @@ <action description="„Terrain bearbeiten“ zulassen" longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter „Land-Info“ > „Optionen“ deaktiviert ist." name="land allow edit land" value="23"/> <action description="„Fliegen“ zulassen" longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter „Land-Info“ > „Optionen“ deaktiviert ist." name="land allow fly" value="24"/> <action description="„Objekte erstellen“ zulassen" longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter „Land-Info“ > „Optionen“ deaktiviert ist." name="land allow create" value="25"/> - <action description="„Landmarke erstellen“ zulassen" longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können für eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter „Land-Info“ > „Optionen“ deaktiviert ist." name="land allow landmark" value="26"/> + <action description="Landepunkt ignorieren" longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können sich direkt zu einer gruppeneigenen Parzelle teleportieren, auch wenn eine Landmarke erstellen, selbst unter Land-Info > Optionen ein Landepunkt definiert ist." name="land allow direct teleport" value="26"/> <action description="„Hier als Zuhause wählen“ auf Gruppenland zulassen" longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer an diese Gruppe übertragenen Parzelle die Funktion „Welt“ > „Landmarken“ > „Hier als Zuhause wählen“ verwenden." name="land allow set home" value="28"/> <action description="Veranstaltung von Events auf Gruppenland zulassen" longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Parzellen im Gruppenbesitz als Veranstaltungsorte für Events auswählen." name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index 198dee0a1a..a8e14fc20f 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -261,9 +261,8 @@ support@secondlife.com. [TIME] Pacific Time wieder verfügbar. </string> <string name="LoginFailedAccountDisabled"> - Ihre Anfrage kann derzeit nicht bearbeitet werden. -Wenden Sie sich unter http://secondlife.com/support an den Second Life-Support. -Wenn Sie Ihr Kennwort nicht ändern können, rufen Sie die US-Nummer (866) 476-9763 an. + Ihre Anfrage kann derzeit nicht bearbeitet werden. +Bitte wenden Sie sich unter http://secondlife.com/support an den Second Life-Support. </string> <string name="LoginFailedTransformError"> Nicht übereinstimmende Daten bei der Anmeldung festgestellt. @@ -704,6 +703,19 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden. <string name="AssetErrorUnknownStatus"> Status unbekannt </string> + <string name="AssetUploadServerUnreacheble"> + Dienst nicht verfügbar. + </string> + <string name="AssetUploadServerDifficulties"> + Auf dem Server sind unerwartete Probleme aufgetreten. + </string> + <string name="AssetUploadServerUnavaliable"> + Dienst nicht verfügbar oder Zeitüberschreitung beim Upload. + </string> + <string name="AssetUploadRequestInvalid"> + Fehler bei der Upload-Anforderung. Um das Problem zu lösen, +besuchen Sie bitte http://secondlife.com/support + </string> <string name="texture"> Textur </string> @@ -2198,10 +2210,19 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich unter http://suppo alle Grundbesitze, die Sie für [OWNER] verwalten </string> <string name="RegionInfoAllowedResidents"> - Zulässige Einwohner: ([ALLOWEDAGENTS], max [MAXACCESS]) + Immer zulässig: ([ALLOWEDAGENTS], max. [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Zulässige Gruppen: ([ALLOWEDGROUPS], max [MAXACCESS]) + Immer zugelassene Gruppen: ([ALLOWEDGROUPS], max. [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + Immer verbannt: ([BANNEDAGENTS], max. [MAXBANNED]) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + Immer zugelassen + </string> + <string name="RegionInfoListTypeBannedAgents"> + Immer verbannt </string> <string name="ScriptLimitsParcelScriptMemory"> Parzellenskript-Speicher diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml index 5ca527ad20..845c1efe4d 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences.xml @@ -11,6 +11,12 @@ single_instance="true" title="PREFERENCES" width="658"> + <floater.string + name="email_unverified_tooltip"> + Please verify your email to enable IM to Email by visiting +https://accounts.secondlife.com/change_email/ + </floater.string> + <button follows="right|bottom" height="23" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 6e228cefda..807d116b3b 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2289,6 +2289,7 @@ For AI Character: Get the closest navigable point to the point provided. <!-- inventory --> <string name="InventoryNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search].</string> + <string name="InventoryNoMatchingRecentItems">Didn't find what you're looking for? Try [secondlife:///app/inventory/filters Show filters].</string> <string name="PlacesNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search].</string> <string name="FavoritesNoMatchingItems">Drag a landmark here to add it to your favorites.</string> <string name="MarketplaceNoMatchingItems">No items found. Check the spelling of your search string and try again.</string> diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml index a272835154..b5da302762 100644 --- a/indra/newview/skins/default/xui/es/floater_about_land.xml +++ b/indra/newview/skins/default/xui/es/floater_about_land.xml @@ -435,13 +435,10 @@ los media: <panel.string name="estate_override"> Una o más de esta opciones está configurada a nivel del estado </panel.string> - <check_box label="Permitir el acceso público (si no seleccionas esta opción, se crearán lÃneas de prohibición)" name="public_access"/> - <text name="Only Allow"> - Permitir únicamente el acceso a los Residentes que: - </text> - <check_box label="Han aportado información de pago [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Para poder acceder a esta parcela los Residentes deben haber aportado información de pago en su cuenta. Para más información, ver [SUPPORT_SITE]."/> - <check_box label="Son mayores de 18 años [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Para poder acceder a esta parcela los Residentes deben ser mayores de 18 años. Para más información, consulta [SUPPORT_SITE]."/> - <check_box label="Acceso permitido al grupo: [GROUP]" name="GroupCheck" tool_tip="Elija el grupo en la pestaña General."/> + <check_box label="Cualquiera puede visitar (Si no seleccionas esta opción, se crearán lÃneas de prohibición)" name="public_access"/> + <check_box label="Debe ser mayor de 18 [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Para poder acceder a esta parcela los Residentes deben ser mayores de 18 años. Para más información, consulta [SUPPORT_SITE]."/> + <check_box label="Debe haber información archivada sobre el pago [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Para poder acceder a esta parcela los Residentes deben haber aportado información de pago en su cuenta. Para más información, ver [SUPPORT_SITE]."/> + <check_box label="Permitir grupo [GROUP] sin restricciones" name="GroupCheck" tool_tip="Elija el grupo en la pestaña General."/> <check_box label="Vender pases a:" name="PassCheck" tool_tip="Permitir acceso temporal a esta parcela"/> <combo_box name="pass_combo"> <combo_box.item label="Cualquiera" name="Anyone"/> @@ -449,9 +446,12 @@ los media: </combo_box> <spinner label="Precio en L$:" name="PriceSpin"/> <spinner label="Horas de acceso:" name="HoursSpin"/> + <text name="OwnerLimited"> + (El propietario del Estado puede haber restringido estas opciones) + </text> <panel name="Allowed_layout_panel"> <text label="Always Allow" name="AllowedText"> - Residentes admitidos ([COUNT], máx. [MAX]) + Siempre permitido ([COUNT], max [MAX]) </text> <name_list name="AccessList" tool_tip="([LISTED] listados de un máx. de [MAX])"/> <button label="Añadir" name="add_allowed"/> @@ -459,7 +459,7 @@ los media: </panel> <panel name="Banned_layout_panel"> <text label="Ban" name="BanCheck"> - Residentes no admitidos ([COUNT], máx. [MAX]) + Siempre prohibido ([COUNT], max [MAX]) </text> <name_list name="BannedList" tool_tip="([LISTED] listados de un máx. de [MAX])"/> <button label="Añadir" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/es/floater_avatar_picker.xml b/indra/newview/skins/default/xui/es/floater_avatar_picker.xml index 49fce5d4ec..77243e5655 100644 --- a/indra/newview/skins/default/xui/es/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/es/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> No se ha encontrado '[TEXT]' </floater.string> + <floater.string name="not_found_text"> + No se ha encontrado el residente. + </floater.string> <floater.string name="no_one_near"> No hay nadie cerca </floater.string> diff --git a/indra/newview/skins/default/xui/es/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/es/floater_avatar_render_settings.xml index 727b1118c3..e913d7328c 100644 --- a/indra/newview/skins/default/xui/es/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/es/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="Nombre" name="name"/> <name_list.columns label="Configuración de renderizado" name="setting"/> + <name_list.columns label="Fecha de ingreso" name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml index 0485154fec..5698e39bee 100644 --- a/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="Todos" label_selected="Todo" name="All"/> <button label="Ninguno" label_selected="Nada" name="None"/> <check_box label="Mostrar siempre las carpetas" name="check_show_empty"/> + <check_box label="Creado por mÃ" name="check_created_by_me"/> + <check_box label="Creado por otros" name="check_created_by_others"/> <check_box bottom_delta="-36" label="Desde el fin de sesión" name="check_since_logoff"/> <text name="- OR -"> - o - diff --git a/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml index 58ddd6b621..14bd56b4f9 100644 --- a/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="Linksets de pathfinding"> +<floater name="floater_pathfinding_linksets" title="OBJETOS DE LA REGIÓN"> <floater.string name="messaging_get_inprogress"> Consultando los linksets de pathfinding... </floater.string> @@ -16,7 +16,7 @@ No hay linksets de pathfinding. </floater.string> <floater.string name="messaging_complete_available"> - [NUM_SELECTED] linksets seleccionados de [NUM_TOTAL]. + [NUM_SELECTED] seleccionados de [NUM_TOTAL]. </floater.string> <floater.string name="messaging_not_enabled"> En esta región no está permitido el pathfinding. @@ -118,7 +118,7 @@ <scroll_list.columns label="Con scripts" name="scripted"/> <scroll_list.columns label="Impacto" name="land_impact"/> <scroll_list.columns label="Distancia" name="dist_from_you"/> - <scroll_list.columns label="Utilización de linkset" name="linkset_use"/> + <scroll_list.columns label="Uso de Pathfinding" name="linkset_use"/> <scroll_list.columns label="A %" name="a_percent"/> <scroll_list.columns label="B %" name="b_percent"/> <scroll_list.columns label="C %" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - Acciones aplicadas a los linksets seleccionados (si se elimina un linkset de Second Life, podrÃan perderse sus atributos): + Acciones en los elementos seleccionados </text> <check_box label="Mostrar baliza" name="show_beacon"/> <button label="Tomar" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - Modifica los atributos de los linksets seleccionados y pulsa el botón para aplicar los cambios + Modificar atributos de pathfinding </text> <text name="walkability_coefficients_label"> Transitabilidad: diff --git a/indra/newview/skins/default/xui/es/floater_tos.xml b/indra/newview/skins/default/xui/es/floater_tos.xml index 25048c9dd6..412e0501a0 100644 --- a/indra/newview/skins/default/xui/es/floater_tos.xml +++ b/indra/newview/skins/default/xui/es/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Cargando %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3Elas%20Condiciones%20del%20servicio%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="Continuar" label_selected="Continuar" name="Continue"/> - <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> - <check_box label="Acepto las Condiciones del servicio y la PolÃtica de privacidad" name="agree_chk"/> <text name="tos_heading"> - Por favor, lee detenidamente las siguientes Condiciones del servicio y PolÃtica de privacidad. Debes aceptar el acuerdo para poder iniciar sesión en [SECOND_LIFE]. + Por favor, leer los Términos y Condiciones, la PolÃtica de privacidad y las Condiciones del servicio de Second Life, incluyendo el uso de arbitraje cuando fuera necesario y toda clase de renuncia o reclamos grupales para resolver disputas. Para poder iniciar sesión en [SECOND_LIFE], debes aceptar estos términos. </text> <text name="external_tos_required"> Para poder proseguir, debes iniciar sesión en https://my.secondlife.com y aceptar las Condiciones del servicio. Gracias. </text> + <check_box label="He leÃdo y acepto" name="agree_chk"/> + <text name="agree_list"> + los Términos y Condiciones, la PolÃtica de privacidad y las Condiciones del servicio de Second Life, incluyendo los requerimientos para resolver disputas. + </text> + <button label="Continuar" label_selected="Continuar" name="Continue"/> + <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/es/menu_attachment_other.xml b/indra/newview/skins/default/xui/es/menu_attachment_other.xml index 66db2f4969..ea88ab74ac 100644 --- a/indra/newview/skins/default/xui/es/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/es/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="Predeterminado" name="RenderNormally"/> <menu_item_check label="Siempre" name="AlwaysRenderFully"/> <menu_item_check label="Nunca" name="DoNotRender"/> + <menu_item_call label="Excepciones..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Ignorar al propietario de la partÃcula" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/es/menu_avatar_icon.xml b/indra/newview/skins/default/xui/es/menu_avatar_icon.xml index e3299b0a6b..fb984d54e6 100644 --- a/indra/newview/skins/default/xui/es/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/es/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="Ver el perfil" name="Show Profile"/> <menu_item_call label="Enviar un MI..." name="Send IM"/> <menu_item_call label="Petición de teleporte" name="Request Teleport"/> <menu_item_call label="Añadir como amigo..." name="Add Friend"/> <menu_item_call label="Quitar de los amigos..." name="Remove Friend"/> -</menu> + <context_menu label="Opciones del moderador" name="Moderator Options"> + <menu_item_check label="Permitir el chat de texto" name="AllowTextChat"/> + <menu_item_call label="Silenciar a este participante" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="Quitar el silencio a este participante" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="Expulsar a miembro" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/es/menu_avatar_other.xml b/indra/newview/skins/default/xui/es/menu_avatar_other.xml index d3e87d7bfb..5e948435ee 100644 --- a/indra/newview/skins/default/xui/es/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/es/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="Predeterminado" name="RenderNormally"/> <menu_item_check label="Siempre" name="AlwaysRenderFully"/> <menu_item_check label="Nunca" name="DoNotRender"/> + <menu_item_call label="Excepciones..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Ignorar al propietario de la partÃcula" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml index 074defb006..c5bc301608 100644 --- a/indra/newview/skins/default/xui/es/menu_inventory.xml +++ b/indra/newview/skins/default/xui/es/menu_inventory.xml @@ -75,9 +75,11 @@ <menu_item_call label="Propiedades" name="Properties"/> <menu_item_call label="Renombrar" name="Rename"/> <menu_item_call label="Copiar la UUID" name="Copy Asset UUID"/> + <menu_item_call label="Mostrar en el panel principal" name="Show in Main Panel"/> <menu_item_call label="Copiar" name="Copy"/> <menu_item_call label="Pegar" name="Paste"/> <menu_item_call label="Pegar como enlace" name="Paste As Link"/> + <menu_item_call label="Reemplazar los links" name="Replace Links"/> <menu_item_call label="Borrar" name="Delete"/> <menu_item_call label="Borrar carpeta del sistema" name="Delete System Folder"/> <menu_item_call label="Empezar multiconferencia" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml index c24910066b..8b122631ca 100644 --- a/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml @@ -13,5 +13,6 @@ <menu_item_call label="Compartir" name="Share"/> <menu_item_call label="Encontrar el original" name="Find Original"/> <menu_item_call label="Encontrar todos los enlazados" name="Find All Links"/> + <menu_item_call label="Reemplazar los links" name="Replace Links"/> <menu_item_call label="Vaciar la Papelera" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/es/menu_login.xml b/indra/newview/skins/default/xui/es/menu_login.xml index 54ec58fe28..d16226ba9f 100644 --- a/indra/newview/skins/default/xui/es/menu_login.xml +++ b/indra/newview/skins/default/xui/es/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="Yo" name="File"> <menu_item_call label="Preferencias..." name="Preferences..."/> + <menu_item_call label="Cerrar la ventana" name="Close Window"/> <menu_item_check label="Mostrar selector del Grid" name="Show Grid Picker"/> <menu_item_call label="Salir de [APP_NAME]" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml index 447dd2629c..dec4a5082d 100644 --- a/indra/newview/skins/default/xui/es/menu_viewer.xml +++ b/indra/newview/skins/default/xui/es/menu_viewer.xml @@ -121,7 +121,7 @@ <menu_item_call label="Incluir la parte o cara siguiente" name="Include Next Part or Face"/> <menu_item_call label="Incluir la parte o cara anterior" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="Linksets..." name="pathfinding_linkset_menu_item"/> + <menu_item_call label="Objetos de la región" name="pathfinding_linkset_menu_item"/> <menu_item_call label="Visión en lo seleccionado" name="Focus on Selection"/> <menu_item_call label="Zoom en lo seleccionado" name="Zoom to Selection"/> <menu label="Objeto" name="Object"> @@ -141,7 +141,7 @@ <menu_item_call label="Configurar scripts como no ejecutándose" name="Set Scripts to Not Running"/> </menu> <menu label="Pathfinding" name="Pathfinding"> - <menu_item_call label="Linksets..." name="pathfinding_linksets_menu_item"/> + <menu_item_call label="Objetos de la región" name="pathfinding_linksets_menu_item"/> <menu_item_call label="Personajes..." name="pathfinding_characters_menu_item"/> <menu_item_call label="Ver/probar..." name="pathfinding_console_menu_item"/> <menu_item_call label="Recargar la región" name="pathfinding_rebake_navmesh_item"/> diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml index b57ba998b9..863811d804 100644 --- a/indra/newview/skins/default/xui/es/notifications.xml +++ b/indra/newview/skins/default/xui/es/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> No mostrarme esto otra vez </global> + <global name="skipnexttimesessiononly"> + No deseo ver este mensaje otra vez +(en la sesión actual) + </global> <global name="alwayschoose"> Elegir siempre esta opción </global> @@ -339,7 +343,7 @@ Si no quieres que este rol siga teniendo dichas capacidades, deshabilÃtalas inm <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Entrar"/> </notification> <notification name="JoinGroupNoCost"> - Vas a entrar al grupo [NAME]. + Vas a entrar al grupo <nolink>[NAME]</nolink>. ¿Quieres seguir? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Entrar"/> </notification> @@ -353,6 +357,40 @@ Los grupos necesitan más de un miembro. Si no, son borrados permanentemente. Por favor, invita a miembros en las próximas 48 horas. <usetemplate canceltext="Cancelar" name="okcancelbuttons" notext="Cancelar" yestext="Crear un grupo por 100 L$"/> </notification> + <notification name="JoinGroupInaccessible"> + No puedes acceder a este grupo + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> + <notification name="JoinGroupError"> + Se produjo un error al procesar tu pedido para unirte al grupo + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> + <notification name="JoinGroupErrorReason"> + Imposible de unirse al grupo: [reason] + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> + <notification name="JoinGroupTrialUser"> + Lo sentimos, los usuarios de prueba no pueden unirse a los grupos. + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> + <notification name="JoinGroupMaxGroups"> + No puedes unirte al grupo '<nolink>[group_name]</nolink>': +Ya perteneces a [group_count] grupos, la cantidad máxima es de [max_groups] + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + No puedes unirte al grupo '<nolink>[group_name]</nolink>': +El grupo ya no admite más miembros. + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> + <notification name="JoinGroupSuccess"> + Ahora formas parte del grupo + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + No se pudo transferir los L$ [membership_fee] necesarios para pagar la membresÃa. + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> <notification name="LandBuyPass"> Por [COST] L$ puedes entrar a este terreno ('[PARCEL_NAME]') durante [TIME] horas. ¿Comprar un pase? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> @@ -374,9 +412,9 @@ El precio de venta será de [SALE_PRICE] L$ y se autoriza la compra a [NAME]. <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - ¿Estás seguro de que quieres devolver todos los objetos de esta parcela que estén compartidos con el grupo '[NAME]' al inventario de su propietario anterior? + ¿Estás seguro de que deseas devolver todos los objetos compartidos con el grupo '<nolink>[NAME]</nolink>' en esta parcela de tierra al inventario de su último dueño? -*ATENCIÓN* ¡Esto borrará los objetos no transferibles que se hayan cedido al grupo! +*ATENCIÓN* ¡Esto borrará los objetos no transferibles cedidos al grupo! Objetos: [N] <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> @@ -420,7 +458,7 @@ Objetos: [N] <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - ¿Devolver a sus propietarios los objetos de esta parcela que NO estén compartidos con el grupo [NAME]? + ¿Devolver a sus dueños los objetos en esta parcela de tierra que NO se comparten con el grupo <nolink>[NAME]</nolink>? Objetos: [N] <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> @@ -469,7 +507,7 @@ debes estar dentro de ella. Hubo un problema al subir la captura de pantalla del informe por la siguiente razón: [REASON] </notification> <notification name="MustAgreeToLogIn"> - Debes estar de acuerdo con las Condiciones del Servicio para continuar el inicio de sesión en [SECOND_LIFE]. + Debes aceptar los Términos y Condiciones, la PolÃtica de privacidad y las Condiciones del servicio de Second Life para iniciar sesión en [SECOND_LIFE]. </notification> <notification name="CouldNotPutOnOutfit"> No se ha podido poner el vestuario. @@ -721,7 +759,7 @@ Temporalmente, será incapaz de moverse, usar el chat, o interactuar con el mund <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar"/> </notification> <notification name="EjectAvatarFromGroup"> - Has expulsado a [AVATAR_NAME] del grupo [GROUP_NAME] + Has expulsado a [AVATAR_NAME] del grupo <nolink>[GROUP_NAME]</nolink> </notification> <notification name="AcquireErrorTooManyObjects"> ERROR 'ACQUIRE': Hay demasiados objetos seleccionados. @@ -1325,20 +1363,18 @@ Con todo, puedes tomar lo actualmente seleccionado. Por favor, selecciona un área más pequeña y vuelve a intentarlo. </notification> <notification name="DeedLandToGroup"> - Al transferir esta parcela, se requerirá al grupo que tenga y mantenga el crédito suficiente para uso de terreno. -El precio de compra de la parcela no se reembolsa al propietario. -Si se vende una parcela transferida, el precio de venta se dividirá a partes iguales entre los miembros del grupo. + Al transferir esta parcela, el grupo deberá poseer y mantener el número suficiente de créditos de uso de terreno. +El precio de compra del terreno no se le devolverá al propietario. Si se vende una parcela transferida, el precio de venta se dividirá en partes iguales entre los miembros del grupo. -¿Transferir estos [AREA] m² de terreno al grupo -'[GROUP_NAME]'? +¿Transferir este terreno de [AREA] m² al grupo '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="DeedLandToGroupWithContribution"> - Al transferir esta parcela, el grupo deberá poseer y mantener el número suficiente de créditos de uso de terreno. -El traspaso incluirá una contribución simultánea de terreno al grupo de "[NAME]". -El precio de compra del terreno no se le devolverá al propietario. Si se vende una parcela transferida, el precio de venta se dividirá en partes iguales entre los miembros del grupo. + Al transferir esta parcela, el grupo deberá poseer y mantener el número suficiente de créditos de uso de terreno. +El traspaso incluirá una contribución simultánea de terreno al grupo de "[NAME]". +El precio de compra del terreno no se le devolverá al propietario. Si se vende una parcela transferida, el precio de venta se dividirá en partes iguales entre los miembros del grupo. -¿Transferir este terreno de [AREA] m² al grupo '[GROUP_NAME]'? +¿Transferir este terreno de [AREA] m² al grupo '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="DisplaySetToSafe"> @@ -1753,7 +1789,7 @@ Si estás impaciente por probar las nuevas funciones y correcciones, lee la pág <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="GroupDepart"> - Has abandonado el grupo '[group_name]'. + Abandonaste el grupo '<nolink>[group_name]</nolink>'. </notification> <notification name="OwnerCannotLeaveGroup"> No es posible abandonar el grupo. No puedes abandonarlo porque eres su último propietario. Antes tienes que asignar el papel de propietario a otro miembro. @@ -2027,6 +2063,10 @@ Se cambiarán miles de regiones, y se provocará un colapso en el espacio del se ¿Estás seguro de que quieres cambiar el contrato del estado? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> + <notification name="EstateParcelAccessOverride"> + Si esta opción no está seleccionada, se anularán las restricciones establecidas por los dueños de parcelas para evitar provocaciones, mantener la privacidad o proteger a los residentes menores de material para adultos. Por favor, consulte con los dueños de parcelas según sea necesario. + <usetemplate name="okbutton" yestext="Aceptar"/> + </notification> <notification name="RegionEntryAccessBlocked"> Tus preferencias de contenido actuales te impiden visitar la región que has seleccionado. Puedes cambiar las preferencias en Yo > Preferencias > General. <usetemplate name="okbutton" yestext="OK"/> @@ -2367,7 +2407,17 @@ Esta acción no se puede deshacer. </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Confirmar antes de eliminar elementos" name="okcancelignore" notext="Cancelar" yestext="OK"/> + <form name="form"> + <ignore name="ignore" text="Confirmar antes de eliminar los elementos"/> + <button name="Yes" text="Aceptar"/> + <button name="No" text="Cancelar"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + Tu inventario está filtrado y es posible que algunos de los elementos que estás por borrar no se muestren en pantalla. + +¿Estás seguro de que deseas borrarlos? + <usetemplate ignoretext="Confirmar antes de eliminar los elementos filtrados" name="okcancelignore" notext="Cancelar" yestext="Aceptar"/> </notification> <notification name="ConfirmUnlink"> La selección es grande y contiene linksets. Si la desenlazas, quizás no puedas volver establecer los vÃnculos. Puede ser conveniente guardar copias de los linksets como medida de precaución. @@ -2444,13 +2494,17 @@ Linden Lab La carpeta '[FOLDERNAME]' pertenece al sistema, y borrar carpetas del sistema puede provocar inestabilidad. ¿Estás seguro de que quieres borrarla? <usetemplate ignoretext="Confirmar antes de borrar una carpeta del sistema" name="okcancelignore" notext="Cancelar" yestext="OK"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] elemento(s) se borrarán de forma permanente. ¿Estás seguro de que quieres borrar de forma permanente el/los elemento(s) seleccionados de la Papelera? + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Aceptar"/> + </notification> <notification name="ConfirmEmptyTrash"> - ¿Estás seguro de que quieres borrar de forma permanente el contenido de la Papelera? - <usetemplate ignoretext="Confirmar antes de vaciar la Papelera del inventario" name="okcancelignore" notext="Cancelar" yestext="OK"/> + [COUNT] elementos serán borrados de forma permanente. ¿Estás seguro de que quieres borrar de forma permanente el contenido de la Papelera? + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Aceptar"/> </notification> <notification name="TrashIsFull"> La papelera está completamente llena. Esto puede causar problemas a la hora de iniciar sesión. - <usetemplate name="okcancelbuttons" notext="Vaciaré la papelera más adelante" yestext="Vaciar la papelera"/> + <usetemplate name="okcancelbuttons" notext="Vaciaré la papelera más adelante" yestext="Ver la carpeta de la papelera"/> </notification> <notification name="ConfirmClearBrowserCache"> ¿Estás seguro de que quieres borrar tu historial web, de viajes y de búsquedas? @@ -2579,6 +2633,9 @@ PublÃcala en una página web para que otros puedan acceder fácilmente a esta p <notification name="AddSelfFriend"> Aunque eres muy agradable, no puedes añadirte como amigo a ti mismo. </notification> + <notification name="AddSelfRenderExceptions"> + No puedes agregarte a la lista de excepciones de renderización. + </notification> <notification name="UploadingAuctionSnapshot"> Subiendo fotos del mundo y del sitio web... (tardará unos 5 minutos). @@ -2772,9 +2829,9 @@ Por favor, reinstala el plugin o contacta con el vendedor si sigues teniendo pro Se han devuelto a su propietario los objetos seleccionados en la parcela de terreno propiedad de '[NAME]'. </notification> <notification name="GroupObjectsReturned"> - Se han devuelto a los inventarios de sus propietarios los objetos que estaban compartidos con el grupo [GROUPNAME] en la parcela seleccionada. -Los objetos transferibles que se transfirieron al grupo se han devuelto a sus propietarios anteriores. -Los objetos no transferibles que se transfirieron al grupo han sido borrados. + Los objetos en la parcela de tierra seleccionada compartidos con el grupo <nolink>[GROUPNAME]</nolink> fueron devueltos al inventario de su dueño. +Los objetos transferibles concedidos fueron devueltos a su antiguo dueño. +Los objetos no transferibles que fueron cedidos al grupo han sido borrados. </notification> <notification name="UnOwnedObjectsReturned"> Se han devuelto a sus propietarios los objetos de los que NO eras propietario en la parcela seleccionada. @@ -3156,7 +3213,7 @@ Para obtener el permiso, descárgate aquà la última versión: [DOWNLOADURL]. <form name="form"/> </notification> <notification name="ScriptDialogGroup"> - '<nolink>[TITLE]</nolink>' de [GROUPNAME] + <nolink>[GROUPNAME]</nolink>'s '<nolink>[TITLE]</nolink>' [MESSAGE] <form name="form"/> </notification> @@ -3199,8 +3256,8 @@ Pulsa Aceptar o Rehusar para coger o no la llamada. Pulsa Ignorar para ignorar a [NAME] ha dejado automáticamente de estar ignorado al ofrecerle inventario. </notification> <notification name="VoiceInviteGroup"> - [NAME] ha empezado un chat de voz con el grupo [GROUP]. -Pulsa Aceptar o Rehusar para coger o no la llamada. Pulsa Ignorar para ignorar al que llama. + [NAME] ha empezado un chat de voz con el grupo <nolink>[GROUP]</nolink>. +Pulsa Aceptar para unirte a la llamada o Rehusar para rechazar la invitación. Pulsa Ignorar para ignorar al que llama. <form name="form"> <button name="Accept" text="Aceptar"/> <button name="Decline" text="Rehusar"/> @@ -3308,6 +3365,9 @@ Por tu seguridad, serán bloqueadas durante unos segundos. <notification name="AppearanceToXMLFailed"> Error al guardar el aspecto en XML. </notification> + <notification name="SnapshotToComputerFailed"> + Error al guardar la foto en [PATH]: Disco lleno. Se requieren [NEED_MEMORY]KB pero solo hay [FREE_MEMORY]KB libres. + </notification> <notification name="PresetNotSaved"> Error al guardar el valor predefinido [NAME]. </notification> @@ -3345,9 +3405,14 @@ Se mostrará cuando haya suficiente espacio. <notification name="ShareNotification"> Selecciona los residentes con quienes deseas compartir. </notification> + <notification name="MeshUploadErrorDetails"> + [LABEL] error de carga: [MESSAGE] +[DETAILS]Consulta SecondLife.log para más detalles + </notification> <notification name="MeshUploadError"> - [LABEL] no se pudo subir: [MESSAGE] [IDENTIFIER] -[DETAILS]Consulta los detalles en SecondLife.log + [LABEL] error de carga: [MESSAGE] + +Consulta SecondLife.log para más detalles </notification> <notification name="MeshUploadPermError"> Error al solicitar los permisos para subir la malla. diff --git a/indra/newview/skins/default/xui/es/panel_main_inventory.xml b/indra/newview/skins/default/xui/es/panel_main_inventory.xml index 894943265c..5924dc7b9a 100644 --- a/indra/newview/skins/default/xui/es/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/es/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> Ãtems: </text> - <filter_editor label="Filtrar" name="inventory search editor"/> + <filter_editor label="Ingresar texto de búsqueda" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="Nombre" name="Name" value="search_by_name"/> + <item label="Creador" name="Creator" value="search_by_creator"/> + <item label="Descripción" name="Description" value="search_by_description"/> + <item label="UUID" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="Todos los Ãtems" name="All Items"/> <recent_inventory_panel label="Ãtems recientes" name="Recent Items"/> + <inventory_panel label="(VESTIMENTA)" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml index 4cb816a120..007101b8fe 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml @@ -6,7 +6,7 @@ <text name="Cache:"> Caché: </text> - <spinner label="Tamaño de la caché (256 - 9984 MB)" name="cachesizespinner"/> + <spinner label="Tamaño de la caché (256 - 9984MB)" name="cachesizespinner"/> <text name="text_box5"> MB </text> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml index 778a483bcc..f7e036efd7 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat de texto" name="chat"> + <check_box initial_value="true" label="Auto completar los gestos en el chat cercano" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="Ejecutar la animación de escribir al hacerlo en el chat" name="play_typing_animation"/> <check_box label="Cuando estoy desconectado, enviarme los MI al correo-e" name="send_im_to_email"/> diff --git a/indra/newview/skins/default/xui/es/panel_region_estate.xml b/indra/newview/skins/default/xui/es/panel_region_estate.xml index 6089dfb8db..7e12b0e599 100644 --- a/indra/newview/skins/default/xui/es/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/es/panel_region_estate.xml @@ -15,54 +15,36 @@ <text name="estate_owner"> (desconocido) </text> - <check_box label="Usar el horario global" name="use_global_time_check"/> - <button label="?" name="use_global_time_help"/> - <check_box label="Fijar el Sol" name="fixed_sun_check"/> - <button label="?" name="fixed_sun_help"/> - <slider label="Fase" name="sun_hour_slider"/> - <check_box label="Permitir el acceso público" name="externally_visible_check"/> - <button label="?" name="externally_visible_help"/> - <text name="Only Allow"> - Permitir únicamente el acceso a los Residentes que: - </text> - <check_box label="Han aportado la información de pago." name="limit_payment" tool_tip="Para poder acceder a este estado los Residentes deben haber aportado información de pago en su cuenta. Para más información, ver [SUPPORT_SITE]."/> - <check_box label="Son mayores de 18 años" name="limit_age_verified" tool_tip="Para poder acceder a este estado, los Residentes deben ser mayores de 18 años. Para más información, consulta [SUPPORT_SITE]."/> + <radio_group name="externally_visible_radio"> + <radio_item label="Permitir únicamente a los residentes y grupos indicados a continuación" name="estate_restricted_access"/> + <radio_item label="Cualquiera puede visitar" name="estate_public_access"/> + </radio_group> + <check_box label="Debe ser mayor de 18" name="limit_age_verified" tool_tip="Para poder acceder a este estado, los Residentes deben ser mayores de 18 años. Para más información, consulta [SUPPORT_SITE]."/> + <check_box label="Debe haber información archivada sobre el pago" name="limit_payment" tool_tip="Para poder acceder a este estado los Residentes deben haber aportado información de pago en su cuenta. Para más información, ver [SUPPORT_SITE]."/> + <check_box label="Los propietarios de parcelas pueden ser más restrictivos" name="parcel_access_override"/> <check_box label="Permitir el chat de voz" name="voice_chat_check"/> - <button label="?" name="voice_chat_help"/> <check_box label="Permitir el teleporte a cualquier punto" name="allow_direct_teleport"/> - <button label="?" name="allow_direct_teleport_help"/> - <text name="abuse_email_text" width="260"> - Dirección de correo-e para infracciones: - </text> - <string name="email_unsupported"> - CaracterÃstica no disponible - </string> - <button label="?" name="abuse_email_address_help"/> <button label="Aplicar" name="apply_btn"/> - <button label="Expulsar a un Residente del estado..." name="kick_user_from_estate_btn"/> - <button label="Enviar un mensaje al estado..." name="message_estate_btn"/> <text name="estate_manager_label"> Administradores del estado: </text> - <button label="?" name="estate_manager_help"/> - <button label="Quitar..." name="remove_estate_manager_btn"/> - <button label="Añadir..." name="add_estate_manager_btn"/> <text name="allow_resident_label"> - Residentes autorizados: + Siempre permitido: </text> - <button label="?" name="allow_resident_help"/> - <button label="Quitar..." name="remove_allowed_avatar_btn"/> + <button label="Añadir..." name="add_estate_manager_btn"/> + <button label="Quitar..." name="remove_estate_manager_btn"/> <button label="Añadir..." name="add_allowed_avatar_btn"/> + <button label="Quitar..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - Grupos autorizados: + Grupos siempre permitidos: </text> - <button label="?" name="allow_group_help"/> - <button label="Quitar..." name="remove_allowed_group_btn"/> - <button label="Añadir..." name="add_allowed_group_btn"/> <text name="ban_resident_label"> - Residentes con el acceso prohibido: + Siempre prohibido: </text> - <button label="?" name="ban_resident_help" right="476"/> - <button label="Quitar..." name="remove_banned_avatar_btn"/> + <button label="Añadir..." name="add_allowed_group_btn"/> + <button label="Quitar..." name="remove_allowed_group_btn"/> <button label="Añadir..." name="add_banned_avatar_btn"/> + <button label="Quitar..." name="remove_banned_avatar_btn"/> + <button label="Enviar un mensaje al estado..." name="message_estate_btn"/> + <button label="Expulsar a un Residente del estado..." name="kick_user_from_estate_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_tools_texture.xml b/indra/newview/skins/default/xui/es/panel_tools_texture.xml index d5ff5b7f2c..6ab95b9f5d 100644 --- a/indra/newview/skins/default/xui/es/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/es/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="Relieve (normal)" name="Bumpiness (normal)" value="1"/> <radio_item label="Brillantez (especular)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="Bloquear repetición" name="checkbox_sync_settings" tool_tip="Ajustar todas las repeticiones de mapas simultáneamente"/> <texture_picker label="Textura" name="texture control" tool_tip="Pulsa para elegir una imagen"/> <text name="label alphamode"> Modo alfa diff --git a/indra/newview/skins/default/xui/es/role_actions.xml b/indra/newview/skins/default/xui/es/role_actions.xml index 3928ca2ab7..25708ae731 100644 --- a/indra/newview/skins/default/xui/es/role_actions.xml +++ b/indra/newview/skins/default/xui/es/role_actions.xml @@ -38,7 +38,7 @@ <action description="Permitir siempre 'Editar el terreno'" longdescription="Quien tenga un rol con esta capacidad puede editar el terreno de una parcela perteneciente al grupo aunque eso esté desactivado en Acerca del terreno > pestaña Opciones." name="land allow edit land" value="23"/> <action description="Permitir siempre 'Volar'" longdescription="Quien tenga un rol con esta capacidad puede volar sobre una parcela perteneciente al grupo aunque eso esté desactivado en Acerca del terreno > pestaña Opciones." name="land allow fly" value="24"/> <action description="Permitir siempre 'Crear objetos'" longdescription="Quien tenga un rol con esta capacidad puede crear objetos en una parcela perteneciente al grupo aunque eso esté desactivado en Acerca del terreno > pestaña Opciones." name="land allow create" value="25"/> - <action description="Permitir siempre 'Crear hitos'" longdescription="Quien tenga un rol con esta capacidad puede crear un hito en una parcela perteneciente al grupo aunque eso esté desactivado en Acerca del terreno > pestaña Opciones." name="land allow landmark" value="26"/> + <action description="Ignorar punto de aterrizaje" longdescription="Los miembros en un rol con esta capacidad pueden teletransportarse directamente a una parcela que pertenece a un grupo, incluso si un punto de aterrizaje fue establecido en la pestaña Acerca del terreno > Opciones." name="land allow direct teleport" value="26"/> <action description="Permitir 'Fijar mi Base aquÃ' en el terreno del grupo" longdescription="Los miembros que tengan un rol con esta capacidad pueden usar el menú Mundo > Hitos > Fijar aquà mi Base en una parcela transferida al grupo." name="land allow set home" value="28"/> <action description="Permitir "Organización de eventos" en un terreno de grupo" longdescription="Los miembros con un rol que tenga esta capacidad pueden seleccionar parcelas propiedad de un grupo como sede de la organización de eventos." name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index d1472a74f9..9eef5d2d41 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -252,9 +252,8 @@ support@secondlife.com. [HORA] (horario de la costa del PacÃfico). </string> <string name="LoginFailedAccountDisabled"> - En este momento no podemos completar la solicitud. -Si deseas obtener asistencia, ponte en contacto con el departamento de soporte de Second Life a través de la página http://secondlife.com/support. -Si no puedes cambiar la contraseña, llama al número (866) 476-9763. + En este momento no podemos completar la solicitud. +Por favor solicita ayuda al personal de asistencia de Second Life en http://support.secondlife.com. </string> <string name="LoginFailedTransformError"> Se han detectado datos incorrectos en el inicio de sesión. @@ -692,6 +691,19 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="AssetErrorUnknownStatus"> Estado desconocido </string> + <string name="AssetUploadServerUnreacheble"> + El servicio no está disponible. + </string> + <string name="AssetUploadServerDifficulties"> + Se detectaron errores inesperados en el servidor. + </string> + <string name="AssetUploadServerUnavaliable"> + El servicio no está disponible o se alcanzó el tiempo de carga máxima. + </string> + <string name="AssetUploadRequestInvalid"> + Error en la solicitud de carga. Por favor, ingresa a +http://secondlife.com/support para obtener ayuda sobre cómo solucionar este problema. + </string> <string name="texture"> la textura </string> @@ -2174,10 +2186,19 @@ Si sigues recibiendo el mismo mensaje, solicita ayuda al personal de asistencia todos los estados que administras para [OWNER] </string> <string name="RegionInfoAllowedResidents"> - Resientes autorizados: ([ALLOWEDAGENTS], de un máx. de [MAXACCESS]) + Siempre permitido: ([ALLOWEDAGENTS], de un máx. de [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Grupos autorizados: ([ALLOWEDGROUPS], de un máx. de [MAXACCESS]) + Grupos siempre permitidos: ([ALLOWEDGROUPS], de un máx. de [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + Siempre prohibido: ([BANNEDAGENTS], de un máx. de [MAXBANNED]) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + Siempre permitido + </string> + <string name="RegionInfoListTypeBannedAgents"> + Siempre prohibido </string> <string name="ScriptLimitsParcelScriptMemory"> Memoria de los scripts de la parcela diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml index 2e57cd1612..42d7709c99 100644 --- a/indra/newview/skins/default/xui/fr/floater_about_land.xml +++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml @@ -440,13 +440,10 @@ musique : <panel.string name="estate_override"> Au moins une de ces options est définie au niveau du domaine. </panel.string> - <check_box label="Autoriser l'accès public (des lignes d'interdiction seront créées si cette case n'est pas cochée)" name="public_access"/> - <text name="Only Allow"> - Conditions d'accès des résidents : - </text> - <check_box label="Informations de paiement enregistrées [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Pour pouvoir accéder à cette parcelle, les résidents doivent avoir enregistré des informations de paiement. Consultez le [SUPPORT_SITE] pour plus d'informations."/> - <check_box label="Avoir plus de 18 ans [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Pour accéder à cette parcelle, les résidents doivent avoir au moins 18 ans. Consultez le [SUPPORT_SITE] pour plus d'informations."/> - <check_box label="Autoriser l'accès au groupe : [GROUP]" name="GroupCheck" tool_tip="Définir le groupe à l'onglet Général."/> + <check_box label="Tout le monde peut rendre visite (Des lignes d'interdiction seront créées si cette case n'est pas cochée)" name="public_access"/> + <check_box label="Doit avoir plus de 18 ans [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Pour accéder à cette parcelle, les résidents doivent avoir au moins 18 ans. Consultez le [SUPPORT_SITE] pour plus d'informations."/> + <check_box label="Les infos de paiement doivent être enregistrées dans le dossier [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Pour pouvoir accéder à cette parcelle, les résidents doivent avoir enregistré des informations de paiement. Consultez le [SUPPORT_SITE] pour plus d'informations."/> + <check_box label="Autoriser le groupe [GROUP] sans restrictions" name="GroupCheck" tool_tip="Définir le groupe à l'onglet Général."/> <check_box label="Vendre des pass à  :" name="PassCheck" tool_tip="Autoriser un accès temporaire à cette parcelle"/> <combo_box name="pass_combo" width="110"> <combo_box.item label="Tout le monde" name="Anyone"/> @@ -454,9 +451,12 @@ musique : </combo_box> <spinner label="Prix en L$ :" name="PriceSpin"/> <spinner label="Durée en heures :" name="HoursSpin"/> + <text name="OwnerLimited"> + (Le propriétaire de domaine peut avoir limité ces choix) + </text> <panel name="Allowed_layout_panel"> <text label="Toujours autoriser" name="AllowedText"> - Résidents autorisés ([COUNT], max. [MAX]) + Toujours autorisé ([COUNT], max. [MAX]) </text> <name_list name="AccessList" tool_tip="([LISTED] dans la liste, [MAX] max.)"/> <button label="Ajouter" name="add_allowed"/> @@ -464,7 +464,7 @@ musique : </panel> <panel name="Banned_layout_panel"> <text label="Bannir" name="BanCheck"> - Résidents bannis ([COUNT], max. [MAX]) + Toujours interdit ([COUNT], max. [MAX]) </text> <name_list name="BannedList" tool_tip="([LISTED] dans la liste, [MAX] max.)"/> <button label="Ajouter" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml b/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml index 74de4ddb1c..76f3d88352 100644 --- a/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> '[TEXT]' introuvable </floater.string> + <floater.string name="not_found_text"> + Le résident n'a pas été trouvé. + </floater.string> <floater.string name="no_one_near"> Personne près de vous </floater.string> diff --git a/indra/newview/skins/default/xui/fr/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/fr/floater_avatar_render_settings.xml index 5d178bf2dc..898a3dc3d3 100644 --- a/indra/newview/skins/default/xui/fr/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/fr/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="Nom" name="name"/> <name_list.columns label="Paramètre de rendu" name="setting"/> + <name_list.columns label="Date ajoutée" name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml index 8e4afce406..471dddf448 100644 --- a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="Tout" label_selected="Tout" name="All"/> <button bottom_delta="0" label="Aucun" label_selected="Aucun" name="None"/> <check_box label="Toujours montrer les dossiers" name="check_show_empty"/> + <check_box label="Créé par moi" name="check_created_by_me"/> + <check_box label="Créé par les autres" name="check_created_by_others"/> <check_box label="Depuis la déconnexion" name="check_since_logoff"/> <text name="- OR -"> Ou il y a... diff --git a/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml index 148fbdb063..fecbebe8a9 100644 --- a/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="Groupes de liens de recherche de chemin"> +<floater name="floater_pathfinding_linksets" title="OBJETS DES RÉGIONS"> <floater.string name="messaging_get_inprogress"> Requête relative aux groupes de liens de recherche de chemin en cours... </floater.string> @@ -16,7 +16,7 @@ Aucun groupe de liens de recherche de chemin. </floater.string> <floater.string name="messaging_complete_available"> - [NUM_SELECTED] groupes de liens sélectionnés sur [NUM_TOTAL]. + [NUM_SELECTED] sélectionnés à partir de [NUM_TOTAL]. </floater.string> <floater.string name="messaging_not_enabled"> La recherche de chemin n'a pas été activée pour cette région. @@ -118,7 +118,7 @@ <scroll_list.columns label="Scripté" name="scripted"/> <scroll_list.columns label="Impact" name="land_impact"/> <scroll_list.columns label="Distance" name="dist_from_you"/> - <scroll_list.columns label="Usage du groupe de liens" name="linkset_use"/> + <scroll_list.columns label="Utiliser la recherche de chemin" name="linkset_use"/> <scroll_list.columns label="% A" name="a_percent"/> <scroll_list.columns label="% B" name="b_percent"/> <scroll_list.columns label="% C" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - Actions sur les groupes de liens sélectionnés (si un groupe de liens est supprimé du monde, ses attributs risquent d’être perdus) : + Actions sur les objets sélectionnés </text> <check_box label="Afficher la balise" name="show_beacon"/> <button label="Prendre" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - Modifier les attributs des groupes de liens sélectionnés et appuyer sur le bouton pour appliquer les modifications + Modifier les attributs de recherche de chemin </text> <text name="walkability_coefficients_label"> Marche possible : diff --git a/indra/newview/skins/default/xui/fr/floater_tos.xml b/indra/newview/skins/default/xui/fr/floater_tos.xml index 9d2f034399..124a8ffee2 100644 --- a/indra/newview/skins/default/xui/fr/floater_tos.xml +++ b/indra/newview/skins/default/xui/fr/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Chargement %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3Eles%20Conditions%20d%27utilisation%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="Continuer" label_selected="Continuer" name="Continue"/> - <button label="Annuler" label_selected="Annuler" name="Cancel"/> - <check_box label="J'accepte les Conditions d'utilisation et le Règlement sur le respect de la vie privée" name="agree_chk"/> <text name="tos_heading"> - Veuillez lire attentivement les Conditions d'utilisation et le Règlement sur le respect de la vie privée suivants. Vous devez les accepter pour pouvoir vous connecter à [SECOND_LIFE]. + Veuillez lire les termes et conditions suivants; la Politique de confidentialité et les Conditions d'utilisation de Second Life, y compris l'utilisation de l'arbitrage et de la renonciation à toute demande de classe ou de groupe pour résoudre les différends. Vous devez les accepter pour pouvoir vous connecter à [SECOND_LIFE]. </text> <text name="external_tos_required"> Vous devez vous rendre sur https://my.secondlife.com et vous connecter pour accepter les Conditions d’utilisation avant de pouvoir continuer. Merci ! </text> + <check_box label="J'ai lu et j'accepte" name="agree_chk"/> + <text name="agree_list"> + les termes et conditions; la Politique de confidentialité et les Conditions d'utilisation de Second Life, y compris ls exigences de résolution des différends. + </text> + <button label="Continuer" label_selected="Continuer" name="Continue"/> + <button label="Annuler" label_selected="Annuler" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/fr/menu_attachment_other.xml b/indra/newview/skins/default/xui/fr/menu_attachment_other.xml index 23416421bc..dbc3c4850d 100644 --- a/indra/newview/skins/default/xui/fr/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/fr/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="Valeur par défaut" name="RenderNormally"/> <menu_item_check label="Toujours" name="AlwaysRenderFully"/> <menu_item_check label="Jamais" name="DoNotRender"/> + <menu_item_call label="Exceptions..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Ignorer le propriétaire des particules" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml b/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml index 072ac0a6ae..f130c996cc 100644 --- a/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="Voir le profil" name="Show Profile"/> <menu_item_call label="Envoyer IM..." name="Send IM"/> <menu_item_call label="Demander téléportation" name="Request Teleport"/> <menu_item_call label="Devenir amis..." name="Add Friend"/> <menu_item_call label="Supprimer cet ami..." name="Remove Friend"/> -</menu> + <context_menu label="Options du modérateur" name="Moderator Options"> + <menu_item_check label="Autoriser les chats écrits" name="AllowTextChat"/> + <menu_item_call label="Ignorer ce participant" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="Ne plus ignorer ce participant" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="Bannir le membre" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_other.xml b/indra/newview/skins/default/xui/fr/menu_avatar_other.xml index fb675b3877..dff7360e00 100644 --- a/indra/newview/skins/default/xui/fr/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/fr/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="Valeur par défaut" name="RenderNormally"/> <menu_item_check label="Toujours" name="AlwaysRenderFully"/> <menu_item_check label="Jamais" name="DoNotRender"/> + <menu_item_call label="Exceptions..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Ignorer le propriétaire des particules" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml index ba4e8db61a..c8bd7dc130 100644 --- a/indra/newview/skins/default/xui/fr/menu_inventory.xml +++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml @@ -75,10 +75,12 @@ <menu_item_call label="Propriétés" name="Properties"/> <menu_item_call label="Renommer" name="Rename"/> <menu_item_call label="Copier l'UUID (identifiant universel unique)" name="Copy Asset UUID"/> + <menu_item_call label="Affiche le Panneau principal" name="Show in Main Panel"/> <menu_item_call label="Couper" name="Cut"/> <menu_item_call label="Copier" name="Copy"/> <menu_item_call label="Coller" name="Paste"/> <menu_item_call label="Coller comme lien" name="Paste As Link"/> + <menu_item_call label="Remplacer les liens" name="Replace Links"/> <menu_item_call label="Supprimer" name="Delete"/> <menu_item_call label="Supprimer le dossier système" name="Delete System Folder"/> <menu_item_call label="Démarrer le chat conférence" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml index c21caae0b2..d578d005ff 100644 --- a/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml @@ -13,5 +13,6 @@ <menu_item_call label="Partager" name="Share"/> <menu_item_call label="Trouver l'original" name="Find Original"/> <menu_item_call label="Trouver tous les liens" name="Find All Links"/> + <menu_item_call label="Remplacer les liens" name="Replace Links"/> <menu_item_call label="Vider la corbeille" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_login.xml b/indra/newview/skins/default/xui/fr/menu_login.xml index 498196f602..521a5852c2 100644 --- a/indra/newview/skins/default/xui/fr/menu_login.xml +++ b/indra/newview/skins/default/xui/fr/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="Moi" name="File"> <menu_item_call label="Préférences..." name="Preferences..."/> + <menu_item_call label="Fermer la fenêtre" name="Close Window"/> <menu_item_check label="Afficher le sélecteur de grille" name="Show Grid Picker"/> <menu_item_call label="Quitter [APP_NAME]" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml index 04fa85d488..06697ae13a 100644 --- a/indra/newview/skins/default/xui/fr/menu_viewer.xml +++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml @@ -121,7 +121,7 @@ <menu_item_call label="Inclure la partie suivante ou le visage" name="Include Next Part or Face"/> <menu_item_call label="Inclure la partie précédente ou le visage" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="Groupes de liens..." name="pathfinding_linkset_menu_item"/> + <menu_item_call label="Objets des régions" name="pathfinding_linkset_menu_item"/> <menu_item_call label="Point central sur la sélection" name="Focus on Selection"/> <menu_item_call label="Zoomer sur la sélection" name="Zoom to Selection"/> <menu label="Objet" name="Object"> @@ -141,7 +141,7 @@ <menu_item_call label="Définir les scripts sur Pas d'exécution" name="Set Scripts to Not Running"/> </menu> <menu label="Recherche de chemin" name="Pathfinding"> - <menu_item_call label="Groupes de liens..." name="pathfinding_linksets_menu_item"/> + <menu_item_call label="Objets des régions" name="pathfinding_linksets_menu_item"/> <menu_item_call label="Personnages..." name="pathfinding_characters_menu_item"/> <menu_item_call label="Vue / test..." name="pathfinding_console_menu_item"/> <menu_item_call label="Refiger la région" name="pathfinding_rebake_navmesh_item"/> diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml index 490996a4de..4e328eacce 100644 --- a/indra/newview/skins/default/xui/fr/notifications.xml +++ b/indra/newview/skins/default/xui/fr/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> Ne plus afficher </global> + <global name="skipnexttimesessiononly"> + Ne plus afficher +(pour cette session) + </global> <global name="alwayschoose"> Toujours choisir cette option </global> @@ -342,8 +346,8 @@ Voulez-vous continuer ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Rejoindre"/> </notification> <notification name="JoinGroupNoCost"> - Vous vous apprêtez à rejoindre le groupe [NAME]. -Voulez-vous continuer ? + Vous vous apprêtez à rejoindre le groupe <nolink>[NAME]</nolink>. +Souhaitez-vous continuer ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Fusionner"/> </notification> <notification name="JoinGroupCannotAfford"> @@ -356,6 +360,40 @@ Les groupes doivent comporter plus d'un membre, sinon ils sont supprimés. Veuillez inviter des membres d'ici 48 heures. <usetemplate canceltext="Annuler" name="okcancelbuttons" notext="Annuler" yestext="Créer un groupe pour 100 L$"/> </notification> + <notification name="JoinGroupInaccessible"> + Vous n'avez pas accès à ce groupe. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupError"> + Erreur pendant le traitement de votre demande d'adhésion au groupe + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupErrorReason"> + Impossible de se joindre au groupe : [motif] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupTrialUser"> + Désolé, les utilisateurs-tests ne peuvent pas rejoindre de groupes. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupMaxGroups"> + Vous ne pouvez pas rejoindre '<nolink>[group_name]</nolink>': +Vous êtes déjà membre des [group_count] groupes, le nombre maximum autorisé est de [max_groups] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + Vous ne pouvez pas rejoindre '<nolink>[group_name]</nolink>': +Le groupe n'accepte plus de nouveaux adhérents. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupSuccess"> + Vous avez été ajouté au groupe. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + Impossible de transférer la cotisation exigée de L$ [membership_fee]. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="LandBuyPass"> Pour [COST] L$ vous pouvez pénétrer sur ce terrain ([PARCEL_NAME]) et y rester [TIME] heures. Acheter un pass ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> @@ -377,9 +415,9 @@ Votre prix de vente sera de [SALE_PRICE]L$ et la vente sera disponible à [NAME] <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - Êtes-vous certain de vouloir renvoyer tous les objets partagés par le groupe [NAME] sur cette parcelle dans l'inventaire du propriétaire précédent ? + Êtes-vous certain de vouloir renvoyer tous les objets partagés par le groupe '<nolink>[NAME]</nolink>' sur cette parcelle de terrain dans l'inventaire du propriétaire précédent ? -*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés ! +*AVERTISSEMENT* Cela supprimera les objets non transférables cédés au groupe ! Objets : [N] <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> @@ -423,7 +461,7 @@ Objets : [N] <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - Renvoyer les objets de cette parcelle qui ne sont pas partagés avec le groupe [NAME] à leur propriétaire ? + Renvoyer les objets de cette parcelle qui ne sont PAS partagés avec le groupe <nolink>[NAME]</nolink> à leur propriétaire ? Objets : [N] <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> @@ -471,7 +509,7 @@ Pour ne placer le média que sur une seule face, choisissez Sélectionner une fa Une erreur est survenue lors du chargement de la capture d'écran destinée au rapport, suite au problème suivant : [REASON] </notification> <notification name="MustAgreeToLogIn"> - Pour vous connecter à [SECOND_LIFE], vous devez accepter les Conditions d'utilisation. + Vous devez accepter lestermes et conditions; la Politique de confidentialité et les Conditions d'utilisation de Second Life pour poursuivre votre connexion à [SECOND_LIFE]. </notification> <notification name="CouldNotPutOnOutfit"> Impossible de mettre cet ensemble. @@ -724,7 +762,7 @@ Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le M <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Expulser"/> </notification> <notification name="EjectAvatarFromGroup"> - Vous avez expulsé [AVATAR_NAME] du groupe [GROUP_NAME] + Vous avez expulsé [AVATAR_NAME] du groupe <nolink>[GROUP_NAME]</nolink> </notification> <notification name="AcquireErrorTooManyObjects"> Erreur d'acquisition : trop d'objets sélectionnés. @@ -1318,18 +1356,18 @@ Par contre, vous pouvez prendre les objets sélectionnés. Veuillez sélectionner une zone plus petite et réessayer. </notification> <notification name="DeedLandToGroup"> - Si vous cédez ce terrain, le groupe devra avoir les moyens de le prendre en charge. -Le prix de la vente du terrain n'est pas remboursé par le propriétaire. Si la parcelle que vous cédez se vend, le prix de la vente sera divisé en parts égales parmi les membres du groupe. + La cession de cette parcelle requiert que le groupe dispose en permanence d'un crédit suffisant pour payer les frais d'occupation de terrain. +Le prix d'achat du terrain n'est pas remboursé au propriétaire. Si une parcelle cédée est vendue, son prix de vente est redistribué à part égale entre les membres du groupe. -Céder ces [AREA] m² de terrain au groupe [GROUP_NAME] ? +Céder ces [AREA] m² de terrain au groupe '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification name="DeedLandToGroupWithContribution"> - La cession de cette parcelle requiert que le groupe dispose en permanence d'un crédit suffisant pour payer les frais d'occupation de terrain. -Elle inclura une contribution simultanée au groupe de la part de [NAME]. -Le prix d'achat du terrain n'est pas remboursé au propriétaire. Si une parcelle cédée est vendue, son prix de vente est redistribué à part égale entre les membres du groupe. + La cession de cette parcelle requiert que le groupe dispose en permanence d'un crédit suffisant pour payer les frais d'occupation de terrain. +Elle inclura une contribution simultanée au groupe de la part de '[NAME]' Le prix d'achat du terrain n'est pas remboursé au propriétaire. +Si une parcelle cédée est vendue, son prix de vente est redistribué à part égale entre les membres du groupe. -Céder ces [AREA] m² de terrain au groupe [GROUP_NAME] ? +Céder ces [AREA] m² de terrain au groupe '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification name="DisplaySetToSafe"> @@ -1744,7 +1782,7 @@ Quitter le groupe ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification name="GroupDepart"> - Vous avez quitté le groupe « [group_name] ». + Vous avez quitté le groupe '<nolink>[group_name]</nolink>'. </notification> <notification name="OwnerCannotLeaveGroup"> Impossible de quitter le groupe. Vous ne pouvez pas quitter le groupe car vous en êtes le dernier propriétaire. Vous devez d'abord affecter le rôle de propriétaire à un autre membre. @@ -2017,6 +2055,10 @@ Cette action modifiera des milliers de régions et sera difficile à digérer po Êtes-vous certain de vouloir modifier le règlement du domaine ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> + <notification name="EstateParcelAccessOverride"> + Le fait de décocher cette option est susceptible de lever les restrictions que les propriétaires des parcelles ont ajouté pour éviter tout différend, maintenir la confidentialité ou protéger les jeunes résidents contre tout contenu réservé aux adultes. Veuillez discuter avec les propriétaires du terrain si nécessaire. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="RegionEntryAccessBlocked"> La région que vous essayez de visiter comporte du contenu dont le niveau dépasse celui de vos préférences actuelles. Vous pouvez modifier vos préférences en accédant à Moi > Préférences > Général. <usetemplate name="okbutton" yestext="OK"/> @@ -2357,7 +2399,17 @@ Vous ne pouvez pas l'annuler. </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Confirmer avant de supprimer des articles" name="okcancelignore" notext="Annuler" yestext="OK"/> + <form name="form"> + <ignore name="ignore" text="Confirmer avant de supprimer des articles"/> + <button name="Yes" text="OK"/> + <button name="No" text="Annuler"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + Votre inventaire est filtré actuellement et les objets que vous souhaitez supprimer ne sont pas tous visibles. + +Voulez-vous vraiment les supprimer ? + <usetemplate ignoretext="Confirmer avant de supprimer des articles filtrés." name="okcancelignore" notext="Annuler" yestext="OK"/> </notification> <notification name="ConfirmUnlink"> C’est une vaste sélection avec des groupes de liens. Si vous annulez les liens, vous risquez de ne pas pouvoir les rétablir. Vous devriez peut-être faire des copies des groupes de liens dans votre inventaire par mesure de précaution. @@ -2435,13 +2487,17 @@ Voulez-vous désactiver Ne pas déranger avant de terminer cette transaction ? Le dossier [FOLDERNAME] est un dossier système. La suppression d'un dossier système peut provoquer une instabilité. Voulez-vous vraiment le supprimer ? <usetemplate ignoretext="Confirmer avant la suppression d'un dossier système" name="okcancelignore" notext="Annuler" yestext="OK"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] objet(s) sera(ont) supprimé(s) définitivement. Êtes-vous certain de vouloir supprimer le ou les objets sélectionnés de votre corbeille de manière permanente ? + <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> + </notification> <notification name="ConfirmEmptyTrash"> - Êtes-vous certain de vouloir supprimer le contenu de votre corbeille de manière permanente ? - <usetemplate ignoretext="Confirmer avant de vider la corbeille" name="okcancelignore" notext="Annuler" yestext="OK"/> + [COUNT] objets seront supprimés définitivement. Êtes-vous certain de vouloir supprimer le contenu de votre corbeille de manière permanente ? + <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification name="TrashIsFull"> Votre corbeille déborde. Cela risque de provoquer des problèmes lors de la connexion. - <usetemplate name="okcancelbuttons" notext="Je viderai la corbeille plus tard" yestext="Vider la corbeille"/> + <usetemplate name="okcancelbuttons" notext="Je viderai la corbeille plus tard" yestext="Vérifier le dossier Corbeille"/> </notification> <notification name="ConfirmClearBrowserCache"> Êtes-vous certain de vouloir supprimer l'historique de vos visites et recherches ? @@ -2570,6 +2626,9 @@ Liez-la à partir d'une page web pour permettre aux autres résidents d&apo <notification name="AddSelfFriend"> Même si vous êtes extrêmement sympathique, vous ne pouvez pas devenir ami avec vous-même. </notification> + <notification name="AddSelfRenderExceptions"> + Vous ne pouvez pas vous ajouter à la liste des exceptions. + </notification> <notification name="UploadingAuctionSnapshot"> Importation de photos SL et Web en cours... (prend environ 5 minutes.) @@ -2764,9 +2823,9 @@ Si le problème persiste, veuillez réinstaller le plugin ou contacter le vendeu Les objets sur la parcelle de terrain sélectionnée appartenant au résident [NAME] ont été rendus à leur propriétaire. </notification> <notification name="GroupObjectsReturned"> - Les objets sélectionnés sur la parcelle de terrain partagée avec le groupe [GROUPNAME] ont été renvoyés dans l'inventaire de leur propriétaire. -Les objets donnés transférables ont étés renvoyés à leur propriétaire. -Les objets non transférables donnés au groupe ont étés supprimés. + Les objets sélectionnés sur la parcelle de terrain partagée avec le groupe <nolink>[GROUPNAME]</nolink> ont été renvoyés dans l'inventaire de leur propriétaire. +Les objets donnés transférables ont étés renvoyés à leur propriétaire. +Les objets non transférables donnés au groupe ont été supprimés. </notification> <notification name="UnOwnedObjectsReturned"> Les objets sélectionnés sur la parcelle et qui ne sont pas à vous ont été rendus à leurs propriétaires. @@ -3151,7 +3210,7 @@ Pour accorder ce droit, mettez votre client à jour pour passer à la version la </form> </notification> <notification name="ScriptDialogGroup"> - <nolink>[TITLE]</nolink> de [GROUPNAME] + <nolink>[GROUPNAME]</nolink>'s '<nolink>[TITLE]</nolink>' [MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="Bloquer"/> @@ -3198,7 +3257,7 @@ Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignore [NAME] a reçu une offre d'inventaire et n'est donc plus ignoré. </notification> <notification name="VoiceInviteGroup"> - [NAME] a rejoint un chat vocal avec le groupe [GROUP]. + [NAME] a rejoint un chat vocal avec le groupe <nolink>[GROUP]</nolink>. Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cette personne, cliquez sur Ignorer. <form name="form"> <button name="Accept" text="Accepter"/> @@ -3307,6 +3366,9 @@ Elles vont être bloquées pendant quelques secondes pour votre sécurité. <notification name="AppearanceToXMLFailed"> Échec de l’enregistrement de l’apparence au format XML. </notification> + <notification name="SnapshotToComputerFailed"> + Échec d’enregistrement de la photo dans [PATH] : Le disque est plein. [NEED_MEMORY]KB est nécessaire mais l'espace libre est de seulement [FREE_MEMORY]KB. + </notification> <notification name="PresetNotSaved"> Erreur d’enregistrement du préréglage [NAME]. </notification> @@ -3344,9 +3406,14 @@ Le bouton sera affiché quand il y aura suffisamment de place. <notification name="ShareNotification"> Sélectionnez les résidents avec lesquels partager l'élément. </notification> + <notification name="MeshUploadErrorDetails"> + [LABEL] n'a pas pu être téléchargé : [MESSAGE] +[DETAILS]Voir SecondLife.log pour plus de détails + </notification> <notification name="MeshUploadError"> - Échec de chargement de [LABEL] : [MESSAGE] [IDENTIFIER] -[DETAILS]Consultez SecondLife.log pour de plus amples détails + Échec de chargement de [LABEL] : [MESSAGE] + +Voir SecondLife.log pour plus de détails. </notification> <notification name="MeshUploadPermError"> Erreur lors de la demande des autorisations de chargement de maillage. diff --git a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml index a4d087cd20..11488af119 100644 --- a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> Articles : </text> - <filter_editor label="Filtrer l'inventaire" name="inventory search editor"/> + <filter_editor label="Saisir ici le texte de la recherche" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="Nom" name="Name" value="search_by_name"/> + <item label="Créateur" name="Creator" value="search_by_creator"/> + <item label="Description" name="Description" value="search_by_description"/> + <item label="UUID" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="MON INVENTAIRE" name="All Items"/> <recent_inventory_panel label="RÉCENT" name="Recent Items"/> + <inventory_panel label="PORTÉ" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml index b96cb6dc49..182eeda24a 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml @@ -6,7 +6,7 @@ <text name="Cache:"> Cache : </text> - <spinner label="Taille du cache (256 - 9984 Mo)" name="cachesizespinner"/> + <spinner label="Taille de la mémoire (256 - 9984MB)" name="cachesizespinner"/> <text name="text_box5"> Mo </text> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml index c948b4f9b5..422243445b 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat écrit" name="chat"> + <check_box initial_value="true" label="Compléter vous-même les gestes dans le chat" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="Exécuter l'animation clavier quand vous écrivez" name="play_typing_animation"/> <check_box label="M'envoyer les IM par e-mail une fois déconnecté" name="send_im_to_email"/> diff --git a/indra/newview/skins/default/xui/fr/panel_region_estate.xml b/indra/newview/skins/default/xui/fr/panel_region_estate.xml index be89020ac7..9bf3fdfc96 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_estate.xml @@ -17,60 +17,34 @@ domaine. <text name="estate_owner"> (inconnu) </text> - <text name="Only Allow"> - Conditions d'accès des résidents : - </text> - <check_box label="Informations de paiement enregistrées" name="limit_payment" tool_tip="Pour pouvoir accéder à ce domaine, les résidents doivent avoir enregistré des informations de paiement. Consultez le [SUPPORT_SITE] pour plus d'informations."/> - <check_box label="Avoir plus de 18 ans" name="limit_age_verified" tool_tip="Pour accéder à ce domaine, les résidents doivent avoir au moins 18 ans. Consultez le [SUPPORT_SITE] pour plus d'informations."/> + <radio_group name="externally_visible_radio"> + <radio_item label="Autoriser uniquement les résidents et les groupes indiqués ci-dessous" name="estate_restricted_access"/> + <radio_item label="Visite ouverte à tous" name="estate_public_access"/> + </radio_group> + <check_box label="Doit avoir plus de 18 ans" name="limit_age_verified" tool_tip="Pour accéder à ce domaine, les résidents doivent avoir au moins 18 ans. Consultez le [SUPPORT_SITE] pour plus d'informations."/> + <check_box label="Les infos de paiement doivent être enregistrées" name="limit_payment" tool_tip="Pour pouvoir accéder à ce domaine, les résidents doivent avoir enregistré des informations de paiement. Consultez le [SUPPORT_SITE] pour plus d'informations."/> + <check_box label="Les propriétaires de terrain peuvent imposer plus de restrictions" name="parcel_access_override"/> <check_box label="Autoriser les chats vocaux" name="voice_chat_check"/> - <button label="?" name="voice_chat_help"/> - <text name="abuse_email_text"> - E-mail où signaler l'infraction : - </text> - <string name="email_unsupported"> - Non pris en charge - </string> - <button label="?" name="abuse_email_address_help"/> + <check_box label="Autoriser la téléportation directe" name="allow_direct_teleport"/> + <button label="Appliquer" name="apply_btn"/> <text name="estate_manager_label"> Gérants du domaine : </text> - <button label="?" name="estate_manager_help"/> - <button label="Ajouter..." name="add_estate_manager_btn"/> - <button label="Supprimer..." name="remove_estate_manager_btn"/> - <check_box label="Utiliser le temps universel" name="use_global_time_check"/> - <button label="?" name="use_global_time_help"/> - <check_box label="Soleil fixe" name="fixed_sun_check"/> - <button label="?" name="fixed_sun_help"/> - <slider label="Phase" name="sun_hour_slider"/> - <check_box label="Autoriser l'accès public" name="externally_visible_check"/> - <button label="?" name="externally_visible_help"/> - <check_box label="Vue sur le continent" name="mainland_visible_check"/> - <button label="?" name="mainland_visible_help"/> - <check_box label="Autoriser la téléportation directe" name="allow_direct_teleport"/> - <button label="?" name="allow_direct_teleport_help"/> - <text name="region_text_lbl"> - Refuser l'accès selon les infos de paiement : - </text> - <check_box label="Refuser sans infos de paiement enregistrées" name="deny_anonymous"/> - <check_box label="Refuser avec infos de paiement enregistrées" name="deny_identified"/> - <check_box label="Refuser avec infos de paiement utilisées" name="deny_transacted"/> - <button label="Appliquer" name="apply_btn"/> <text name="allow_resident_label"> - Résidents autorisés : + Toujours autorisé : </text> - <button label="?" name="allow_resident_help"/> + <button label="Ajouter..." name="add_estate_manager_btn"/> + <button label="Supprimer..." name="remove_estate_manager_btn"/> <button label="Ajouter..." name="add_allowed_avatar_btn"/> <button label="Supprimer..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - Groupes autorisés : + Groupes toujours autorisés : </text> - <button label="?" name="allow_group_help"/> - <button label="Ajouter..." name="add_allowed_group_btn"/> - <button label="Supprimer..." name="remove_allowed_group_btn"/> <text name="ban_resident_label"> - Résidents bannis : + Toujours interdit : </text> - <button label="?" name="ban_resident_help"/> + <button label="Ajouter..." name="add_allowed_group_btn"/> + <button label="Supprimer..." name="remove_allowed_group_btn"/> <button label="Ajouter..." name="add_banned_avatar_btn"/> <button label="Supprimer..." name="remove_banned_avatar_btn"/> <button label="Message au domaine..." name="message_estate_btn"/> diff --git a/indra/newview/skins/default/xui/fr/panel_tools_texture.xml b/indra/newview/skins/default/xui/fr/panel_tools_texture.xml index de210f8b15..72c456aa6d 100644 --- a/indra/newview/skins/default/xui/fr/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/fr/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="Relief (normal)" name="Bumpiness (normal)" value="1"/> <radio_item label="Brillance (spéculaire)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="Verrouiller la fonction répéter" name="checkbox_sync_settings" tool_tip="L'ajustement des cartes se fait simultanément"/> <texture_picker label="Texture" name="texture control" tool_tip="Cliquer pour sélectionner une image."/> <text name="label alphamode"> Mode alpha diff --git a/indra/newview/skins/default/xui/fr/role_actions.xml b/indra/newview/skins/default/xui/fr/role_actions.xml index a52d4be1fb..cc29066ba2 100644 --- a/indra/newview/skins/default/xui/fr/role_actions.xml +++ b/indra/newview/skins/default/xui/fr/role_actions.xml @@ -38,7 +38,7 @@ <action description="Toujours autoriser Modifier le terrain" longdescription="Vous pouvez modifier le relief d'une parcelle du groupe, même si l'option est désactivée à partir du menu À propos du terrain > Options." name="land allow edit land" value="23"/> <action description="Toujours autoriser à voler" longdescription="Vous pouvez voler sur une parcelle du groupe, même si l'option est désactivée à partir du menu À propos du terrain > Options." name="land allow fly" value="24"/> <action description="Toujours autoriser à créer des objets" longdescription="Vous pouvez créer des objets sur une parcelle du groupe, même si l'option est désactivée à partir du menu À propos du terrain > Options." name="land allow create" value="25"/> - <action description="Toujours autoriser à créer des repères" longdescription="Vous pouvez créer un repère sur une parcelle du groupe, même si l'option est désactivée à partir du menu À propos du terrain > Options." name="land allow landmark" value="26"/> + <action description="Ignorer le lieu d’arrivée" longdescription="Les membres qui ont un Rôle dans cette capacité peuvent diriger le téléportage vers une parcelle appartenant à un groupe, même si le point d'arrivée est fixé dans A propos du terrain > Onglet Options." name="land allow direct teleport" value="26"/> <action description="Autoriser à définir un domicile sur le terrain du groupe" longdescription="Un membre dans un rôle avec ce pouvoir peut utiliser le menu Monde > Repères > Définir le domicile ici sur une parcelle cédée à ce groupe." name="land allow set home" value="28"/> <action description="Autoriser la réception d'événements sur les terrains du groupe" longdescription="Les membres dont le rôle possède ce pouvoir peuvent sélectionner les parcelles détenues par le groupe comme lieu de réception lors d'un événement." name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index c0cb0f9f69..58aab5e7b8 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -261,9 +261,8 @@ l'Assistance à l'adresse suivante : support@secondlife.com. [TIME], heure du Pacifique. </string> <string name="LoginFailedAccountDisabled"> - Nous n'avons pas réussi à traiter votre demande. -Pour obtenir de l'aide, veuillez contacter l'Assistance Second Life à la page suivante : http://secondlife.com/support. -Si vous ne parvenez pas à changer de mot de passe, veuillez appeler le (866) 476-9763. + Impossible de traiter votre demande à l'heure actuelle. +Pour obtenir de l'aide, veuillez contacter l'Assistance Second Life à la page suivante : http://support.secondlife.com. </string> <string name="LoginFailedTransformError"> Incohérence des données lors de la connexion. @@ -704,6 +703,19 @@ Veuillez réessayer de vous connecter dans une minute. <string name="AssetErrorUnknownStatus"> Statut inconnu </string> + <string name="AssetUploadServerUnreacheble"> + Service inaccessible. + </string> + <string name="AssetUploadServerDifficulties"> + Le serveur rencontres des difficultés imprévues. + </string> + <string name="AssetUploadServerUnavaliable"> + Services non disponible ou la durée du chargement est dépassée. + </string> + <string name="AssetUploadRequestInvalid"> + Erreur dans la demande de chargement. Veuillez consulter le site : +http://secondlife.com/support pour vous aider à résoudre ce problème. + </string> <string name="texture"> texture </string> @@ -2198,10 +2210,19 @@ Si vous continuez de recevoir ce message, contactez l’assistance Second Life à tous les domaines que vous gérez pour [OWNER] </string> <string name="RegionInfoAllowedResidents"> - Résidents autorisés : ([ALLOWEDAGENTS], max. [MAXACCESS]) + Toujours autorisé : ([ALLOWEDAGENTS], max [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Groupes autorisés : ([ALLOWEDGROUPS], max. [MAXACCESS]) + Groupes toujours autorisés : [ALLOWEDGROUPS], max [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + Toujours interdits : ([BANNEDAGENTS], max. [MAXBANNED]) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + Toujours autorisé + </string> + <string name="RegionInfoListTypeBannedAgents"> + Toujours interdit </string> <string name="ScriptLimitsParcelScriptMemory"> Mémoire des scripts de parcelles diff --git a/indra/newview/skins/default/xui/it/floater_about_land.xml b/indra/newview/skins/default/xui/it/floater_about_land.xml index 8311321a96..67c46b6b62 100644 --- a/indra/newview/skins/default/xui/it/floater_about_land.xml +++ b/indra/newview/skins/default/xui/it/floater_about_land.xml @@ -440,13 +440,10 @@ Media: <panel.string name="estate_override"> Una o più di queste impostazioni sono già impostate a livello regionale </panel.string> - <check_box label="Consenti l'accesso pubblico (se si rimuove la selezione vengono create linee di espulsione)" name="public_access"/> - <text name="Only Allow"> - Consenti l'accesso solo ai Residenti che: - </text> - <check_box label="Hanno informazioni di pagamento in archivio [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Per poter visitare questo lotto i Residenti devono aver fornito informazioni di pagamento a Linden Lab. Vedi [SUPPORT_SITE] per maggiori informazioni."/> - <check_box label="Hanno almeno 18 anni [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Per poter visitare questo lotto i Residenti devono avere almeno 18 anni. Vedi [SUPPORT_SITE] per maggiori informazioni."/> - <check_box label="Permetti accesso al gruppo: [GROUP]" name="GroupCheck" tool_tip="Imposta il gruppo nel pannello generale."/> + <check_box label="Chiunque può visitare (Se si rimuove la selezione vengono create linee di espulsione)" name="public_access"/> + <check_box label="È necessario avere più di 18 anni [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Per poter visitare questo lotto i Residenti devono avere almeno 18 anni. Vedi [SUPPORT_SITE] per maggiori informazioni."/> + <check_box label="È necessario aver registrato le informazioni di pagamento [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Per poter visitare questo lotto i Residenti devono aver fornito informazioni di pagamento a Linden Lab. Vedi [SUPPORT_SITE] per maggiori informazioni."/> + <check_box label="Consenti gruppo [GRUPPO] senza restrizioni" name="GroupCheck" tool_tip="Imposta il gruppo nel pannello generale."/> <check_box label="Vendi pass a:" name="PassCheck" tool_tip="Permetti in questo terreno l'accesso temporaneo"/> <combo_box name="pass_combo"> <combo_box.item label="Chiunque" name="Anyone"/> @@ -454,9 +451,12 @@ Media: </combo_box> <spinner label="Prezzo in L$:" name="PriceSpin"/> <spinner label="Ore di accesso:" name="HoursSpin"/> + <text name="OwnerLimited"> + (Può essere che il proprietario immobiliare abbia limitato queste scelte) + </text> <panel name="Allowed_layout_panel"> <text label="Consenti sempre" name="AllowedText"> - Residenti consentiti ([COUNT], max [MAX]) + Sempre consentiti ([COUNT], max [MAX]) </text> <name_list name="AccessList" tool_tip="([LISTED] in lista, [MAX] max)"/> <button label="Aggiungi" name="add_allowed"/> @@ -464,7 +464,7 @@ Media: </panel> <panel name="Banned_layout_panel"> <text label="Espelli" name="BanCheck"> - Residenti espulsi ([COUNT], max [MAX]) + Sempre esclusi ([COUNT], max [MAX]) </text> <name_list name="BannedList" tool_tip="([LISTED] in lista, [MAX] max)"/> <button label="Aggiungi" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/it/floater_avatar_picker.xml b/indra/newview/skins/default/xui/it/floater_avatar_picker.xml index 5a542d6a27..bbeef55ee7 100644 --- a/indra/newview/skins/default/xui/it/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/it/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> '[TEXT]' non trovato </floater.string> + <floater.string name="not_found_text"> + Residente non trovato + </floater.string> <floater.string name="no_one_near"> Nessuno vicino </floater.string> diff --git a/indra/newview/skins/default/xui/it/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/it/floater_avatar_render_settings.xml index 4c992dceb4..934978827d 100644 --- a/indra/newview/skins/default/xui/it/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/it/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="Nome" name="name"/> <name_list.columns label="Impostazione di rendering" name="setting"/> + <name_list.columns label="Data aggiunta" name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml index 97cf9d122c..fe41b8ca65 100644 --- a/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="Tutto" label_selected="Tutto" name="All"/> <button label="Nulla" label_selected="Nulla" name="None"/> <check_box label="Mostra sempre le cartelle" name="check_show_empty"/> + <check_box label="Creato da me" name="check_created_by_me"/> + <check_box label="Creato da altri" name="check_created_by_others"/> <check_box label="Dall'ultima sconnessione" name="check_since_logoff"/> <text name="- OR -"> - Oppure - diff --git a/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml index 32a27157f7..e35abc1a50 100644 --- a/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="Set collegati pathfinding"> +<floater name="floater_pathfinding_linksets" title="OGGETTI REGIONE"> <floater.string name="messaging_get_inprogress"> Ricerca set collegati pathfinding in corso... </floater.string> @@ -16,7 +16,7 @@ Nessun set collegato con pathfinding. </floater.string> <floater.string name="messaging_complete_available"> - [NUM_SELECTED] set collegati selezionati su [NUM_TOTAL]. + [NUM_SELECTED] selezionati su [NUM_TOTAL]. </floater.string> <floater.string name="messaging_not_enabled"> In questa regione non è attivata la funzione pathfinding @@ -118,7 +118,7 @@ <scroll_list.columns label="Scriptato" name="scripted"/> <scroll_list.columns label="Impatto" name="land_impact"/> <scroll_list.columns label="Distanza" name="dist_from_you"/> - <scroll_list.columns label="Uso set collegati" name="linkset_use"/> + <scroll_list.columns label="Uso del pathfinding" name="linkset_use"/> <scroll_list.columns label="A %" name="a_percent"/> <scroll_list.columns label="B %" name="b_percent"/> <scroll_list.columns label="C %" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - Azioni sui set collegati selezionati (se si rimuove un set collegato dal mondo, si potrebbero perdere i relativi attributi): + Azioni sugli oggetti selezionati </text> <check_box label="Mostra marcatore" name="show_beacon"/> <button label="Prendi" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - Modifica gli attributi dei set collegati selezionati e premi il pulsante per applicare le modifiche + Modifica attributi pathfinding: </text> <text name="walkability_coefficients_label"> Camminabilità : diff --git a/indra/newview/skins/default/xui/it/floater_tos.xml b/indra/newview/skins/default/xui/it/floater_tos.xml index 0382312462..8fa74e0fca 100644 --- a/indra/newview/skins/default/xui/it/floater_tos.xml +++ b/indra/newview/skins/default/xui/it/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Caricamento in corso %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="Continua" label_selected="Continua" name="Continue"/> - <button label="Annulla" label_selected="Annulla" name="Cancel"/> - <check_box label="Accetto i Termini del servizio e le Regole sulla privacy" name="agree_chk"/> <text name="tos_heading"> - Sei pregato di leggere attentamente i Termini del servizio e le Regole sulla privacy di seguito. Per continuare l'accesso a [SECOND_LIFE], devi accettare le condizioni. + Leggi i Termini e le Condizioni di Second Life, le clausole di riservatezza, i Termini del Servizio, compresi i requisiti per l'utilizzo dell'arbitrato e la rinuncia a qualunque ricorso di classe o gruppo per risolvere controversie. Per continuare l'accesso a [SECOND_LIFE], devi accettare le condizioni. </text> <text name="external_tos_required"> Per continuare, visita https://my.secondlife.com e accedi per accettare i Termini del servizio. Grazie. </text> + <check_box label="Ho letto e sono d’accordo con" name="agree_chk"/> + <text name="agree_list"> + i Termini e le Condizioni di Second Life, le clausole di riservatezza, i Termini del Servizio, compresi i requisiti per la risoluzione delle dispute. + </text> + <button label="Continua" label_selected="Continua" name="Continue"/> + <button label="Annulla" label_selected="Annulla" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/it/menu_attachment_other.xml b/indra/newview/skins/default/xui/it/menu_attachment_other.xml index b7faee0e85..6ce76e4abe 100644 --- a/indra/newview/skins/default/xui/it/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/it/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="Impostazione predefinita" name="RenderNormally"/> <menu_item_check label="Sempre" name="AlwaysRenderFully"/> <menu_item_check label="Mai" name="DoNotRender"/> + <menu_item_call label="Eccezioni..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Blocca proprietario particella" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/it/menu_avatar_icon.xml b/indra/newview/skins/default/xui/it/menu_avatar_icon.xml index 215eb836c8..edbf4fe33a 100644 --- a/indra/newview/skins/default/xui/it/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/it/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="Vedi profilo" name="Show Profile"/> <menu_item_call label="Manda IM..." name="Send IM"/> <menu_item_call label="Richiedi teleport" name="Request Teleport"/> <menu_item_call label="Aggiungi come amico..." name="Add Friend"/> <menu_item_call label="Togli amicizia..." name="Remove Friend"/> -</menu> + <context_menu label="Opzioni moderatore" name="Moderator Options"> + <menu_item_check label="Consenti chat di testo" name="AllowTextChat"/> + <menu_item_call label="Disattiva audio di questo participante" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="Riattiva audio di questo participante" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="Espelli membro" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/it/menu_avatar_other.xml b/indra/newview/skins/default/xui/it/menu_avatar_other.xml index 5e8002f247..181dc6e01a 100644 --- a/indra/newview/skins/default/xui/it/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/it/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="Impostazione predefinita" name="RenderNormally"/> <menu_item_check label="Sempre" name="AlwaysRenderFully"/> <menu_item_check label="Mai" name="DoNotRender"/> + <menu_item_call label="Eccezioni..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Blocca proprietario particella" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml index a6dbc722b8..de6855ca97 100644 --- a/indra/newview/skins/default/xui/it/menu_inventory.xml +++ b/indra/newview/skins/default/xui/it/menu_inventory.xml @@ -75,10 +75,12 @@ <menu_item_call label="Proprietà " name="Properties"/> <menu_item_call label="Rinomina" name="Rename"/> <menu_item_call label="Copia UUID dell'oggetto" name="Copy Asset UUID"/> + <menu_item_call label="Mostra nel pannello principale" name="Show in Main Panel"/> <menu_item_call label="Taglia" name="Cut"/> <menu_item_call label="Copia" name="Copy"/> <menu_item_call label="Incolla" name="Paste"/> <menu_item_call label="Incolla come link" name="Paste As Link"/> + <menu_item_call label="Sostituisci link" name="Replace Links"/> <menu_item_call label="Cancella" name="Delete"/> <menu_item_call label="Elimina la cartella di sistema" name="Delete System Folder"/> <menu_item_call label="Inizia la conferenza chat" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml index 403f5da5fe..61390df1f2 100644 --- a/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml @@ -13,5 +13,6 @@ <menu_item_call label="Condividi" name="Share"/> <menu_item_call label="Trova originale" name="Find Original"/> <menu_item_call label="Trova tutti i link" name="Find All Links"/> + <menu_item_call label="Sostituisci link" name="Replace Links"/> <menu_item_call label="Svuota cestino" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/it/menu_login.xml b/indra/newview/skins/default/xui/it/menu_login.xml index cfb7941ad4..1f0e678477 100644 --- a/indra/newview/skins/default/xui/it/menu_login.xml +++ b/indra/newview/skins/default/xui/it/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="Io" name="File"> <menu_item_call label="Preferenze..." name="Preferences..."/> + <menu_item_call label="Chiudi la finestra" name="Close Window"/> <menu_item_check label="Mostra selettore griglia" name="Show Grid Picker"/> <menu_item_call label="Esci da [APP_NAME]" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml index 607171d9be..1f6a09deaa 100644 --- a/indra/newview/skins/default/xui/it/menu_viewer.xml +++ b/indra/newview/skins/default/xui/it/menu_viewer.xml @@ -121,7 +121,7 @@ <menu_item_call label="Includi parte o faccia successiva" name="Include Next Part or Face"/> <menu_item_call label="Includi parte o faccia precedente" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="Set collegati..." name="pathfinding_linkset_menu_item"/> + <menu_item_call label="Oggetti regione" name="pathfinding_linkset_menu_item"/> <menu_item_call label="Ingrandisci selezione" name="Focus on Selection"/> <menu_item_call label="Zoom sulla selezione" name="Zoom to Selection"/> <menu label="Oggetto" name="Object"> @@ -141,7 +141,7 @@ <menu_item_call label="Imposta script come non in esecuzione" name="Set Scripts to Not Running"/> </menu> <menu label="Pathfinding" name="Pathfinding"> - <menu_item_call label="Set collegati..." name="pathfinding_linksets_menu_item"/> + <menu_item_call label="Oggetti regione" name="pathfinding_linksets_menu_item"/> <menu_item_call label="Personaggi..." name="pathfinding_characters_menu_item"/> <menu_item_call label="Visualizza / test..." name="pathfinding_console_menu_item"/> <menu_item_call label="Rebake regione" name="pathfinding_rebake_navmesh_item"/> diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml index cd521b6b93..34db824d4c 100644 --- a/indra/newview/skins/default/xui/it/notifications.xml +++ b/indra/newview/skins/default/xui/it/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> Non mostrare più la prossima volta </global> + <global name="skipnexttimesessiononly"> + Non mostrare più questo messaggio +(nella sessione attuale) + </global> <global name="alwayschoose"> Scegli sempre questa opzione </global> @@ -343,8 +347,8 @@ Vuoi proseguire? <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Iscriviti"/> </notification> <notification name="JoinGroupNoCost"> - Aderisci al gruppo [NAME]. -Continuare? + Stai per entrare a far parte del gruppo <nolink>[NAME]</nolink>. +Vuoi continuare? <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Iscriviti"/> </notification> <notification name="JoinGroupCannotAfford"> @@ -357,6 +361,40 @@ I gruppi devono avere più di un partecipante, o saranno eliminati definitivamen Invita altri partecipanti entro le prossime 48 ore. <usetemplate canceltext="Annulla" name="okcancelbuttons" notext="Annulla" yestext="Crea un gruppo per L$ 100"/> </notification> + <notification name="JoinGroupInaccessible"> + Non puoi accedere a questo gruppo. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupError"> + Errore durante la richiesta di accesso al gruppo. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupErrorReason"> + Impossibile unirsi al gruppo: [reason] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupTrialUser"> + Siamo spiacenti, gli utenti in prova non possono unirsi ai gruppi. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupMaxGroups"> + Non puoi unirti a ‘<nolink>[group_name]</nolink>’: +Sei già membro di [group_count] gruppi, il numero massimo consentito è di [max_groups] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + Non puoi unirti a ‘<nolink>[group_name]</nolink>’: +Il gruppo non ha ancora aperto le iscrizioni. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupSuccess"> + Sei stato aggiunto al gruppo. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + Impossibile trasferire la quota di abbonamento richiesta di [membership_fee] L$. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="LandBuyPass"> Pagando [COST]L$ puoi entrare in questa terra ('[PARCEL_NAME]') per [TIME] ore. Compri un pass? <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> @@ -378,9 +416,9 @@ Il prezzo di vendità sarà [SALE_PRICE]L$ e [NAME] viene autorizzato alla vendi <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - Confermi di volere restituire tutti gli oggetti condivisi con il gruppo '[NAME]' di questo terreno agli inventari dei proprietari precedenti? + Confermi di voler restituire all’inventario del precedente proprietario tutti gli oggetti condivisi in questo lotto con il gruppo ‘<nolink>[NAME]</nolink>’? -*ATTENZIONE* Questo cancellerà gli oggetti non trasferibili ceduti al gruppo! +*ATTENZIONE* Così facendo, verranno eliminati tutti gli oggetti non trasferibili ceduti al gruppo! Oggetti: [N] <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> @@ -424,7 +462,7 @@ Oggetti: [N] <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - Restituisci gli oggetti in questo terreno che NON sono condivisi con il gruppo [NAME] ai loro proprietari? + Vuoi restituire gli oggetti di questo lotto di terra che NON sono condivisi con il gruppo <nolink>[NAME]</nolink> ai loro proprietari? Oggetti: [N] <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> @@ -472,7 +510,7 @@ Per collocare il media su una sola faccia, scegli Seleziona faccia, clicca su un C'è stato un problema importando la foto del rapporto per il seguente motivo: [REASON] </notification> <notification name="MustAgreeToLogIn"> - Devi accettare i Termini di Servizio prima di proseguire il collegamento con [SECOND_LIFE]. + Devi accettare i Termini e le Condizioni di Second Life, le clausole di riservatezza e i Termini del Servizio per continuare l’accesso a [SECOND_LIFE]. </notification> <notification name="CouldNotPutOnOutfit"> Non è stato possibile indossare un equipaggiamento. @@ -723,7 +761,7 @@ Non potrà temporaneamente muoversi, chiacchierare in chat, o interagire con il <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Espelli"/> </notification> <notification name="EjectAvatarFromGroup"> - Hai espulso [AVATAR_NAME] dal gruppo [GROUP_NAME] + Hai espulso [AVATAR_NAME] dal gruppo <nolink>[GROUP_NAME]</nolink> </notification> <notification name="AcquireErrorTooManyObjects"> ERRORE DI ACQUISIZIONE: hai selezionato troppi oggetti. @@ -1322,19 +1360,18 @@ Confermi di voler prendere questi elementi? Seleziona un'area più piccola e riprova. </notification> <notification name="DeedLandToGroup"> - Cedendo questo terreno al gruppo sara richiesto ai componenti di avere e di mantenere il terreno con un credito sufficiente. -Il prezzo di acquisto del terreno non è rifondibile al proprietario. -Se una terreno ceduto al gruppo viene venduto, il prezzo di vendita verrà diviso in parti uguali fra i membri del gruppo. + Completando la cessione del lotto, il gruppo dovrà avere e mantenere crediti sufficienti per l'uso del terreno. +Il prezzo di acquisto del terreno non viene rimborsato al proprietario. Se un lotto ceduto viene venduto, il prezzo di vendita viene distribuito in parti uguali tra i membri del gruppo. -Cedi questo terreno di [AREA] m² al gruppo '[GROUP_NAME]'? +Cedere questi [AREA] m² di terreno al gruppo ‘<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> </notification> <notification name="DeedLandToGroupWithContribution"> - Completando la cessione del lotto, il gruppo dovrà avere e mantenere crediti sufficienti per l'uso del terreno. -La cessione includerà un contributo contemporaneo di terreno al gruppo da '[NAME]'. -Il prezzo di acquisto del terreno non viene rimborsato al proprietario. Se un lotto ceduto viene venduto, il prezzo di vendita viene distribuito in maniera paritetica tra i membri del gruppo. + Completando la cessione del lotto, il gruppo dovrà avere e mantenere crediti sufficienti per l'uso del terreno. +La cessione includerà un contributo contemporaneo di terreno al gruppo da '[NAME]'. +Il prezzo di acquisto del terreno non viene rimborsato al proprietario. Se un lotto ceduto viene venduto, il prezzo di vendita viene distribuito in parti uguali tra i membri del gruppo. -Cedere questi [AREA] m² di terreno al gruppo '[GROUP_NAME]'? +Cedere questi [AREA] m² di terreno al gruppo ‘<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> </notification> <notification name="DisplaySetToSafe"> @@ -1748,7 +1785,7 @@ Lasciare il gruppo? <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> </notification> <notification name="GroupDepart"> - Hai abbandonato il gruppo "[group_name]". + Hai abbandonato il gruppo “<nolink>[group_name]</nolink>". </notification> <notification name="OwnerCannotLeaveGroup"> Impossibile abbandonare il gruppo. Non puoi abbandonare il gruppo perché sei l'ultimo proprietario del gruppo. Devi prima assegnare a un altro membro il ruolo di proprietario. @@ -2022,6 +2059,10 @@ Cambierà migliaia di regioni e produrrà seri problemi ai vari server. Confermi di voler cambiare il Regolamento della proprietà ? <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> </notification> + <notification name="EstateParcelAccessOverride"> + Togliendo la spunta a questa opzione potrebbero essere rimosse le restrizioni che i proprietari di lotti hanno aggiunto per tenere lontani disturbatori, mantenere la privacy, o evitare che minorenni abbiano accesso a materiale per adulti. Parla con i proprietari del tuo lotto se ce n’è bisogno. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="RegionEntryAccessBlocked"> La regione che cerchi di visitare include contenuti che non corripondono al livello selezionato nelle preferenze. Per cambiare le preferenze seleziona Io > Preferenze > Generale. <usetemplate name="okbutton" yestext="OK"/> @@ -2363,7 +2404,17 @@ Questa azione non può essere ripristinata </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Conferma prima di cancellare gli elementi" name="okcancelignore" notext="Annulla" yestext="OK"/> + <form name="form"> + <ignore name="ignore" text="Conferma prima di cancellare gli oggetti"/> + <button name="Yes" text="OK"/> + <button name="No" text="Annulla"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + Nel tuo inventario è attualmente presente un filtro, e non tutti gli oggetti che stai per eliminare sono effettivamente visibili. + +Sei sicuro di volerli eliminare? + <usetemplate ignoretext="Conferma prima di cancellare gli oggetti" name="okcancelignore" notext="Annulla" yestext="OK"/> </notification> <notification name="ConfirmUnlink"> Questa è una selezione di grandi dimensioni con set collegati. Se viene scollegata, potrebbe non essere possibile ricollegarla. Come precauzione ti consigliamo di salvare copie dei set collegati nel tuo inventario. @@ -2440,13 +2491,17 @@ Vuoi disattivare la modalità Non disturbare prima di completare questa transazi La cartella '[FOLDERNAME]' è una cartella di sistema. L'eliminazione di cartelle di sistema può creare instabilità . Sei sicuro di volerla eliminare? <usetemplate ignoretext="Chiedi conferma prima di eliminare una cartella di sistema" name="okcancelignore" notext="Annulla" yestext="OK"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] oggetti verranno eliminati definitivamente. Vuoi veramente eliminare in modo permanente gli oggetti selezionati dal tuo Cestino? + <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> + </notification> <notification name="ConfirmEmptyTrash"> - Vuoi veramente eliminare in modo permanente il contenuto del tuo Cestino? - <usetemplate ignoretext="Conferma prima di svuotare la cartella del Cestino inventario" name="okcancelignore" notext="Annulla" yestext="OK"/> + [COUNT] oggetti verranno eliminati definitivamente. Vuoi veramente eliminare in modo permanente il contenuto del tuo Cestino? + <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> </notification> <notification name="TrashIsFull"> Il cestino è troppo pieno. Ciò potrebbe causare problemi durante l'accesso. - <usetemplate name="okcancelbuttons" notext="Svuota il cestino più tardi" yestext="Svuota il cestino adesso"/> + <usetemplate name="okcancelbuttons" notext="Svuota il cestino più tardi" yestext="Controlla cartella cestino"/> </notification> <notification name="ConfirmClearBrowserCache"> Vuoi veramente eliminare la cronologia viaggi, web e ricerche fatte? @@ -2575,6 +2630,9 @@ Inseriscilo in una pagina web per dare ad altri un accesso facile a questa ubica <notification name="AddSelfFriend"> Anche se sei molto simpatico, non puoi aggiungere te stesso all'elenco degli amici. </notification> + <notification name="AddSelfRenderExceptions"> + Non puoi aggiungere te stesso alla lista delle eccezioni rendering. + </notification> <notification name="UploadingAuctionSnapshot"> Sto importando le fotografie per l'uso inworld e per il web... (Durata circa 5 minuti.) @@ -2768,9 +2826,9 @@ Reinstalla il plugin o contatta il venditore se continui ad avere questi problem Sono stati restituiti al proprietario gli oggetti selezionati sul lotto nella terra di proprietà del residente '[NAME]'. </notification> <notification name="GroupObjectsReturned"> - Gli oggetti selezionati sul terreno e condivisi con il gruppo [GROUPNAME] sono stati restituiti nell'inventario dei propietari. -Gli oggetti trasferibili ceduti sono stati restituiti ai proprietari precedenti. -Gli oggetti non trasferibili che erano stati ceduti al gruppo sono stati cancellati. + Gli oggetti del lotto di terra selezionato condivisi con il gruppo <nolink[GROUPNAME]</nolink> sono stati restituiti all’inventario del loro proprietario. +Gli oggetti ceduti trasferibili sono stati restituiti ai loro precedenti proprietari. +Gli oggetti non trasferibili ceduti al gruppo sono stati eliminati. </notification> <notification name="UnOwnedObjectsReturned"> Gli oggetti selezionati sul terreno che non sono di tua proprietà sono stati restituiti ai loro proprietari. @@ -3155,7 +3213,7 @@ Per concedere questa autorizzazione è necessario che il viewer venga aggiornato </form> </notification> <notification name="ScriptDialogGroup"> - '<nolink>[TITLE]</nolink>' di [GROUPNAME] + ‘<nolink>[TITLE]</nolink>’ di <nolink>[GROUPNAME]</nolink> [MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="Blocca"/> @@ -3202,8 +3260,8 @@ Clicca su Accetta per unirti alla chiamata oppure su Declina to declinare l&apos [NAME] ha ricevuto un'offerta di inventario ed è stato automaticamente sbloccato. </notification> <notification name="VoiceInviteGroup"> - [NAME] si è aggiunto alla chiamata in chat vocale con il gruppo [GROUP]. -Clicca su Accetta per unirti alla chiamata oppure su Declina to declinare l'invito. Clicca su Blocca per bloccare questo chiamante. + [NAME] si è aggiunto alla chiamata in chat vocale con il gruppo <nolink>[GROUP]</nolink>. +Fai clic su Accetta per unirti alla chiamata oppure su Rifiuta per rifiutare l'invito. Fai clic su Blocca per bloccare l’autore della chiamata. <form name="form"> <button name="Accept" text="Accetta"/> <button name="Decline" text="Rifiuta"/> @@ -3311,6 +3369,9 @@ Per sicurezza, verranno bloccati per alcuni secondi. <notification name="AppearanceToXMLFailed"> Salvataggio aspetto in formato XML non riuscito. </notification> + <notification name="SnapshotToComputerFailed"> + Salvataggio istantanea in [PATH] non riuscito: Il disco è pieno. Sono necessari [NEED_MEMORY] KB ma sono disponibili solo [FREE_MEMORY] KB . + </notification> <notification name="PresetNotSaved"> Errore durante il salvataggio del valore predefinito [NAME]. </notification> @@ -3348,9 +3409,14 @@ Il pulsante verrà visualizzato quando lo spazio sarà sufficiente. <notification name="ShareNotification"> Scegli i residenti con i quali condividere. </notification> + <notification name="MeshUploadErrorDetails"> + [LABEL] caricamento fallito: [MESSAGE] +[DETAILS]Vedi SecondLife.log per ulteriori dettagli + </notification> <notification name="MeshUploadError"> - [LABEL] non è stato caricato: [MESSAGE] [IDENTIFIER] -[DETAILS]Consulta SecondLife.log per informazioni dettagliate + [LABEL] caricamento fallito: [MESSAGE] + +Vedi SecondLife.log per ulteriori dettagli </notification> <notification name="MeshUploadPermError"> Errore durante la richiesta di autorizzazione al caricamento del reticolo. diff --git a/indra/newview/skins/default/xui/it/panel_main_inventory.xml b/indra/newview/skins/default/xui/it/panel_main_inventory.xml index 6a6c7f4226..6121651ea8 100644 --- a/indra/newview/skins/default/xui/it/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/it/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> Oggetti: </text> - <filter_editor label="Filtro" name="inventory search editor"/> + <filter_editor label="Inserisci ricerca" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="Nome" name="Name" value="search_by_name"/> + <item label="Creatore" name="Creator" value="search_by_creator"/> + <item label="Descrizione" name="Description" value="search_by_description"/> + <item label="UUID" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="Tutti gli elementi" name="All Items"/> <recent_inventory_panel label="Elementi recenti" name="Recent Items"/> + <inventory_panel label="INDOSSATI" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml index 87cee345fa..2f40712c49 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml @@ -6,7 +6,7 @@ <text name="Cache:"> Cache: </text> - <spinner label="Dimensione cache (256 - 9984 MB)" name="cachesizespinner"/> + <spinner label="Dimensioni cache (256 - 9984MB)" name="cachesizespinner"/> <text name="text_box5"> MB </text> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml index 0dfd97d5f8..ed38ebeabc 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Text Chat" name="chat"> + <check_box initial_value="true" label="Auto-completamento gesti nella chat vicina" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="Simula la battitura tasti quando sei in chat" name="play_typing_animation"/> <check_box label="Quando sono OFF-LINE, spediscimi gli IM in una e-mail" name="send_im_to_email"/> diff --git a/indra/newview/skins/default/xui/it/panel_region_estate.xml b/indra/newview/skins/default/xui/it/panel_region_estate.xml index 98d9b86cfc..3983d25111 100644 --- a/indra/newview/skins/default/xui/it/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/it/panel_region_estate.xml @@ -15,54 +15,36 @@ <text name="estate_owner"> (sconosciuto) </text> - <check_box label="Usa orario globale" name="use_global_time_check"/> - <button label="?" name="use_global_time_help"/> - <check_box label="Sole fisso" name="fixed_sun_check"/> - <button label="?" name="fixed_sun_help"/> - <slider label="Fase" name="sun_hour_slider"/> - <check_box label="Permetti accesso pubblico" name="externally_visible_check"/> - <button label="?" name="externally_visible_help"/> - <text name="Only Allow"> - Consenti l'accesso solo ai Residenti che: - </text> - <check_box label="Hanno memorizzato le informazioni per l'addebito" name="limit_payment" tool_tip="Per poter visitare questa proprietà immobiliare i Residenti devono aver fornito informazioni di pagamento a Linden Lab. Vedi [SUPPORT_SITE] per maggiori informazioni."/> - <check_box label="Hanno almeno 18 anni" name="limit_age_verified" tool_tip="Per poter visitare questa proprietà immobiliare i Residenti devono avere almeno 18 anni. Vedi [SUPPORT_SITE] per maggiori informazioni."/> + <radio_group name="externally_visible_radio"> + <radio_item label="Consenti solo residenti e gruppi elencati qui sotto" name="estate_restricted_access"/> + <radio_item label="Chiunque può visitare" name="estate_public_access"/> + </radio_group> + <check_box label="È necessario avere più di 18 anni" name="limit_age_verified" tool_tip="Per poter visitare questa proprietà immobiliare i Residenti devono avere almeno 18 anni. Vedi [SUPPORT_SITE] per maggiori informazioni."/> + <check_box label="È necessario aver registrato le informazioni di pagamento" name="limit_payment" tool_tip="Per poter visitare questa proprietà immobiliare i Residenti devono aver fornito informazioni di pagamento a Linden Lab. Vedi [SUPPORT_SITE] per maggiori informazioni."/> + <check_box label="I proprietari dei lotti possono essere più restrittivi" name="parcel_access_override"/> <check_box label="Permetti la chat voice" name="voice_chat_check"/> - <button label="?" name="voice_chat_help"/> <check_box label="Permetti teleport diretto" name="allow_direct_teleport"/> - <button label="?" name="allow_direct_teleport_help"/> - <text name="abuse_email_text" width="230"> - Indirizzo email per la denuncia di abuso: - </text> - <string name="email_unsupported"> - Tipologia non supportata - </string> - <button label="?" name="abuse_email_address_help"/> <button label="Applica" name="apply_btn"/> - <button font="SansSerifSmall" label="Espelli residente dalla proprietà ..." name="kick_user_from_estate_btn"/> - <button font="SansSerifSmall" label="Manda un messaggio di le proprietà ..." name="message_estate_btn"/> <text name="estate_manager_label"> Manager delle proprietà : </text> - <button label="?" name="estate_manager_help"/> - <button label="Rimuovi..." name="remove_estate_manager_btn"/> - <button label="Aggiungi..." name="add_estate_manager_btn"/> <text name="allow_resident_label"> - Residenti autorizzati: + Sempre consentito: </text> - <button label="?" name="allow_resident_help"/> - <button label="Rimuovi..." name="remove_allowed_avatar_btn"/> + <button label="Aggiungi..." name="add_estate_manager_btn"/> + <button label="Rimuovi..." name="remove_estate_manager_btn"/> <button label="Aggiungi..." name="add_allowed_avatar_btn"/> + <button label="Rimuovi..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - Gruppi autorizzati: + Gruppi sempre consentiti: </text> - <button label="?" name="allow_group_help"/> - <button label="Rimuovi..." name="remove_allowed_group_btn"/> - <button label="Aggiungi..." name="add_allowed_group_btn"/> <text name="ban_resident_label"> - Residenti bloccati: + Sempre escluso: </text> - <button label="?" name="ban_resident_help"/> - <button label="Rimuovi..." name="remove_banned_avatar_btn"/> + <button label="Aggiungi..." name="add_allowed_group_btn"/> + <button label="Rimuovi..." name="remove_allowed_group_btn"/> <button label="Aggiungi..." name="add_banned_avatar_btn"/> + <button label="Rimuovi..." name="remove_banned_avatar_btn"/> + <button font="SansSerifSmall" label="Manda un messaggio di le proprietà ..." name="message_estate_btn"/> + <button font="SansSerifSmall" label="Espelli residente dalla proprietà ..." name="kick_user_from_estate_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_tools_texture.xml b/indra/newview/skins/default/xui/it/panel_tools_texture.xml index f707871dd3..46e2717647 100644 --- a/indra/newview/skins/default/xui/it/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/it/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="Irregolarità (normale)" name="Bumpiness (normal)" value="1"/> <radio_item label="Lucentezza (speculare)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="Blocca ripetizione" name="checkbox_sync_settings" tool_tip="Regola tutte le ripetizioni delle mappe contemporaneamente"/> <texture_picker label="Texture" name="texture control" tool_tip="Clicca per scegliere una fotografia"/> <text name="label alphamode"> Modalità Alfa diff --git a/indra/newview/skins/default/xui/it/role_actions.xml b/indra/newview/skins/default/xui/it/role_actions.xml index b53eca4f78..fe9a51d619 100644 --- a/indra/newview/skins/default/xui/it/role_actions.xml +++ b/indra/newview/skins/default/xui/it/role_actions.xml @@ -38,7 +38,7 @@ <action description="Consenti sempre la modifica del terreno" longdescription="I membri con questo ruolo e abilità possono modificare il terreno appartenente ad un gruppo, anche se la funzionalità è disattivata in Informazioni sul terreno > Opzioni." name="land allow edit land" value="23"/> <action description="Consenti sempre il volo" longdescription=" I membri con questo ruolo e abilità possono volare in un terreno appartenente ad un gruppo, anche se la funzionalità è disattivata in Informazioni sul terreno > Opzioni." name="land allow fly" value="24"/> <action description="Consenti sempre la creazione di oggetti" longdescription="I membri con questo ruolo e abilità possono creare oggetti in un lotto appartenente ad un gruppo, anche se la funzionalità è disattivata in Informazioni sul terreno > Opzioni." name="land allow create" value="25"/> - <action description="Consenti sempre la creazione di punti di riferimento" longdescription="I membri con questo ruolo e abilità possono creare punti di riferimento in un lotto appartenente ad un gruppo, anche se la funzionalità è disattivata in Informazioni sul terreno > Opzioni." name="land allow landmark" value="26"/> + <action description="Ignora punto di atterraggio" longdescription="I membri di un ruolo con questa abilità possono teletrasportarsi direttamente in un lotto di proprietà di un gruppo, anche se il punto di atterraggio è stabilito in Informazioni sul terreno > Opzioni." name="land allow direct teleport" value="26"/> <action description="Consenti la funzione 'Imposta come Casa mia' in un lotto di gruppo" longdescription="I membri in un ruolo con questa Abilità possono usare il menu Mondo > Punti di riferimento > Imposta come Casa su un lotto ceduto a questo gruppo." name="land allow set home" value="28"/> <action description="Consentire 'Ospitare un evento' su lotti di gruppo" longdescription="Membri in un ruolo con questa Abilità possono selezionare lotti posseduti da un gruppo come sedi in cui ospitare un evento." name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml index 85dfd96173..15fa594aae 100644 --- a/indra/newview/skins/default/xui/it/strings.xml +++ b/indra/newview/skins/default/xui/it/strings.xml @@ -258,9 +258,8 @@ support@secondlife.com. [TIME] fuso orario del Pacifico. </string> <string name="LoginFailedAccountDisabled"> - Non siamo attualmente in grado di completare la tua richiesta. -Contatta l'assistenza Second Life alla pagina http://secondlife.com/support. -Se non sei in grado di cambiare la password, chiama (866) 476-9763. + Non siamo attualmente in grado di completare la tua richiesta. +Contatta l'assistenza Second Life alla pagina http://support.secondlife.com. </string> <string name="LoginFailedTransformError"> Dati incompatibili rilevati durante l'accesso. @@ -698,6 +697,19 @@ Prova ad accedere nuovamente tra un minuto. <string name="AssetErrorUnknownStatus"> Stato sconosciuto </string> + <string name="AssetUploadServerUnreacheble"> + Servizio non raggiungibile. + </string> + <string name="AssetUploadServerDifficulties"> + Il servizio sta riscontrando difficoltà inaspettate. + </string> + <string name="AssetUploadServerUnavaliable"> + Servizio non disponibile o limite di tempo per il caricamento raggiunto. + </string> + <string name="AssetUploadRequestInvalid"> + Errore nella richiesta di caricamento. Vai alla pagina +http://secondlife.com/support per risolvere il problema. + </string> <string name="texture"> texture </string> @@ -2183,10 +2195,19 @@ Se continui a ricevere questo messaggio, contatta l'assistenza Second Life tutte le proprietà immobiliari che gestisci per conto di [OWNER] </string> <string name="RegionInfoAllowedResidents"> - Residenti consentiti: ([ALLOWEDAGENTS], massimo [MAXACCESS]) + Sempre consentiti: ([ALLOWEDAGENTS], max [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Gruppi ammessi: ([ALLOWEDGROUPS], massimo [MAXACCESS]) + Gruppi sempre consentiti: ([ALLOWEDGROUPS], max [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + Sempre esclusi: ([BANNEDAGENTS], max [MAXBANNED]) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + Sempre consentiti: + </string> + <string name="RegionInfoListTypeBannedAgents"> + Sempre esclusi: </string> <string name="ScriptLimitsParcelScriptMemory"> Memoria dello script del lotto diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml index 3fbad3e7a7..df94daad8e 100644 --- a/indra/newview/skins/default/xui/ja/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml @@ -434,13 +434,10 @@ <panel.string name="estate_override"> 1 ã¤ä»¥ä¸Šã®ã‚ªãƒ—ションãŒã€ä¸å‹•ç”£ãƒ¬ãƒ™ãƒ«ã§è¨å®šã•ã‚Œã¦ã„ã¾ã™ã€‚ </panel.string> - <check_box label="パブリックアクセスを許å¯ï¼ˆã“ã®ã‚ªãƒ—ションをオフã«ã™ã‚‹ã¨ç«‹å…¥ç¦æ¢ãƒ©ã‚¤ãƒ³ãŒä½œæˆã•ã‚Œã¾ã™ï¼‰" name="public_access"/> - <text name="Only Allow"> - 次ã®ä½äººã«ã®ã¿ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ï¼š - </text> - <check_box label="æ”¯æ‰•æƒ…æƒ…å ±ãŒç™»éŒ²ã•ã‚Œã¦ã„ã‚‹ [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="æ”¯æ‰•æƒ…å ±ãŒç™»éŒ²ã•ã‚Œã¦ã„ãªã„ã¨ã€ã“ã®åŒºç”»ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。詳細ã«ã¤ã„ã¦ã¯ã€[SUPPORT_SITE] ã‚’ã”覧ãã ã•ã„。"/> - <check_box label="18 æ‰ä»¥ä¸Šã§ã™ [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="ã“ã®åŒºç”»ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ã€18 æ‰ä»¥ä¸Šã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。詳細ã«ã¤ã„ã¦ã¯ã€[SUPPORT_SITE] ã‚’ã”覧ãã ã•ã„。"/> - <check_box label="グループã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ï¼š[GROUP]" name="GroupCheck" tool_tip="「一般ã€ã‚¿ãƒ–ã§ã€ã‚°ãƒ«ãƒ¼ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。"/> + <check_box label="誰ã§ã‚‚訪å•å¯ï¼ˆã“ã®ã‚ªãƒ—ションをオフã«ã™ã‚‹ã¨ç«‹å…¥ç¦æ¢ãƒ©ã‚¤ãƒ³ãŒä½œæˆã•ã‚Œã¾ã™ï¼‰" name="public_access"/> + <check_box label="18 æ³ä»¥ä¸Šã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="ã“ã®åŒºç”»ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ã€18 æ‰ä»¥ä¸Šã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。詳細ã«ã¤ã„ã¦ã¯ã€[SUPPORT_SITE] ã‚’ã”覧ãã ã•ã„。"/> + <check_box label="æ”¯æ‰•æƒ…å ±ãŒç™»éŒ²ã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="æ”¯æ‰•æƒ…å ±ãŒç™»éŒ²ã•ã‚Œã¦ã„ãªã„ã¨ã€ã“ã®åŒºç”»ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。詳細ã«ã¤ã„ã¦ã¯ã€[SUPPORT_SITE] ã‚’ã”覧ãã ã•ã„。"/> + <check_box label="制約ãªã—ã«ã‚°ãƒ«ãƒ¼ãƒ— [GROUP] を許å¯ã™ã‚‹" name="GroupCheck" tool_tip="「一般ã€ã‚¿ãƒ–ã§ã€ã‚°ãƒ«ãƒ¼ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。"/> <check_box label="å…¥å ´è¨±å¯ã‚’販売:" name="PassCheck" tool_tip="ã“ã®åŒºç”»ã¸ã®ä¸€æ™‚çš„ãªã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã—ã¾ã™ã€‚"/> <combo_box name="pass_combo"> <combo_box.item label="誰ã§ã‚‚" name="Anyone"/> @@ -448,9 +445,12 @@ </combo_box> <spinner label="ä¾¡æ ¼ï¼ˆL$):" name="PriceSpin"/> <spinner label="アクセス時間:" name="HoursSpin"/> + <text name="OwnerLimited"> + (ä¸å‹•ç”£æ‰€æœ‰è€…ãŒã“ã®ã‚ªãƒ—ションã«åˆ¶ç´„を与ãˆã¦ã„ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ï¼‰ + </text> <panel name="Allowed_layout_panel"> <text label="常ã«è¨±å¯" name="AllowedText"> - 許å¯ã•ã‚ŒãŸä½äºº ([COUNT]ã€æœ€å¤§ [MAX]) + 常ã«è¨±å¯ã™ã‚‹ ([COUNT] 人ã€æœ€å¤§ [MAX] 人) </text> <name_list name="AccessList" tool_tip="(åˆè¨ˆ[LISTED] 人ã€æœ€å¤§ [MAX] 人)"/> <button label="è¿½åŠ " name="add_allowed"/> @@ -458,7 +458,7 @@ </panel> <panel name="Banned_layout_panel"> <text label="ç¦æ¢" name="BanCheck"> - ç«‹å…¥ç¦æ¢ã•ã‚ŒãŸä½äºº ([COUNT]ã€æœ€å¤§ [MAX]) + 常ã«ç¦æ¢ã™ã‚‹ ([COUNT] 人ã€æœ€å¤§ [MAX] 人) </text> <name_list name="BannedList" tool_tip="(åˆè¨ˆ [LISTED] 人ã€æœ€å¤§ [MAX] 人)"/> <button label="è¿½åŠ " name="add_banned"/> diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml b/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml index 4bd6b4e053..da2c9d1e58 100644 --- a/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> 「[TEXT]ã€ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—㟠</floater.string> + <floater.string name="not_found_text"> + ä½äººãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ + </floater.string> <floater.string name="no_one_near"> è¿‘ãã«èª°ã‚‚ã„ã¾ã›ã‚“ </floater.string> diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/ja/floater_avatar_render_settings.xml index c0a644e3ae..0d16510c92 100644 --- a/indra/newview/skins/default/xui/ja/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/ja/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="åå‰" name="name"/> <name_list.columns label="æç”»è¨å®š" name="setting"/> + <name_list.columns label="æ—¥ä»˜ã‚’è¿½åŠ " name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml index e6b105e0dc..da63b54eab 100644 --- a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="ã™ã¹ã¦" label_selected="ã™ã¹ã¦" name="All"/> <button label="ãªã—" label_selected="ãªã—" name="None"/> <check_box label="常ã«ãƒ•ã‚©ãƒ«ãƒ€ã‚’表示" name="check_show_empty"/> + <check_box label="自作" name="check_created_by_me"/> + <check_box label="ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ä½œæˆ" name="check_created_by_others"/> <check_box label="ãƒã‚°ã‚ªãƒ•ä»¥é™" name="check_since_logoff"/> <text name="- OR -"> ï¼ã¾ãŸã¯ï¼ diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml index b65207a025..16d6acfeef 100644 --- a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="パスファインディングリンクセット"> +<floater name="floater_pathfinding_linksets" title="リージョンオブジェクト"> <floater.string name="messaging_get_inprogress"> パスファインディングリンクセットを照会ä¸... </floater.string> @@ -16,7 +16,7 @@ パスファインディングリンクセットãŒã‚ã‚Šã¾ã›ã‚“。 </floater.string> <floater.string name="messaging_complete_available"> - [NUM_TOTAL] ãƒªãƒ³ã‚¯ã‚»ãƒƒãƒˆä¸ [NUM_SELECTED] リンクセットãŒé¸æŠžã•ã‚Œã¾ã—ãŸã€‚ + [NUM_TOTAL] ä¸ [NUM_SELECTED] ãŒé¸æŠžã•ã‚Œã¾ã—ãŸã€‚ </floater.string> <floater.string name="messaging_not_enabled"> ã“ã®åœ°åŸŸï¼ˆãƒªãƒ¼ã‚¸ãƒ§ãƒ³ï¼‰ã¯ãƒ‘スファインディングã«å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“。 @@ -118,7 +118,7 @@ <scroll_list.columns label="スクリプト" name="scripted"/> <scroll_list.columns label="è² è·" name="land_impact"/> <scroll_list.columns label="è·é›¢" name="dist_from_you"/> - <scroll_list.columns label="リンクセットã®ç”¨é€”" name="linkset_use"/> + <scroll_list.columns label="パスファインディング使用" name="linkset_use"/> <scroll_list.columns label="A %" name="a_percent"/> <scroll_list.columns label="B %" name="b_percent"/> <scroll_list.columns label="C %" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - é¸æŠžã—ãŸãƒªãƒ³ã‚¯ã‚»ãƒƒãƒˆã«å¯¾ã™ã‚‹ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ (リンクセットãŒãƒ¯ãƒ¼ãƒ«ãƒ‰ã‹ã‚‰å‰Šé™¤ã•ã‚Œã‚‹ã¨ã€ãã®å±žæ€§ãŒå¤±ã‚ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™): + é¸æŠžã•ã‚ŒãŸã‚¢ã‚¯ã‚·ãƒ§ãƒ³ </text> <check_box label="ビーコンを表示" name="show_beacon"/> <button label="å–ã‚‹" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - é¸æŠžã—ãŸãƒªãƒ³ã‚¯ã‚»ãƒƒãƒˆã®å±žæ€§ã‚’編集ã—ã€ãƒœã‚¿ãƒ³ã‚’押ã—ã¦å¤‰æ›´ã‚’é©ç”¨ã—ã¾ã™ + パスファインディング属性を編集ã™ã‚‹ </text> <text name="walkability_coefficients_label"> æ©è¡Œå¯èƒ½æ€§ï¼š diff --git a/indra/newview/skins/default/xui/ja/floater_tos.xml b/indra/newview/skins/default/xui/ja/floater_tos.xml index 5e9a0a5ddd..28e51e6d63 100644 --- a/indra/newview/skins/default/xui/ja/floater_tos.xml +++ b/indra/newview/skins/default/xui/ja/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="続行" label_selected="続行" name="Continue"/> - <button label="å–り消ã—" label_selected="å–り消ã—" name="Cancel"/> - <check_box label="利用è¦ç´„ã¨ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã«åŒæ„ã—ã¾ã™" name="agree_chk"/> <text name="tos_heading"> - 次ã®åˆ©ç”¨è¦ç´„ã¨ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã‚’よããŠèªã¿ãã ã•ã„。 [SECOND_LIFE] ã¸ã®ãƒã‚°ã‚¤ãƒ³ã‚’続ã‘ã‚‹ã«ã¯ã€è¦ç´„ã«åŒæ„ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ + 次㮠Second Life ã®åˆ©ç”¨è¦ç´„ã€ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã€ãŠã‚ˆã³ã‚µãƒ¼ãƒ“スè¦ç´„(仲è£ã®åˆ©ç”¨ãŠã‚ˆã³ç´›äº‰è§£æ±ºã®ãŸã‚ã®ã„ã‹ãªã‚‹ã‚¯ãƒ©ã‚¹ã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®è«‹æ±‚ã®æ”¾æ£„ã«é–¢ã™ã‚‹å¿…è¦æ¡ä»¶ã‚’å«ã‚€ï¼‰ã‚’ãŠèªã¿ãã ã•ã„。[SECOND_LIFE] ã¸ã®ãƒã‚°ã‚¤ãƒ³ã‚’続ã‘ã‚‹ã«ã¯ã€ã“れらã®è¦ç´„ã«åŒæ„ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ </text> <text name="external_tos_required"> æ“作を続ã‘ã‚‹ã«ã€https://my.secondlife.com ã«ç§»å‹•ã—ã€åˆ©ç”¨è¦ç´„ã«åŒæ„ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ </text> + <check_box label="ç§ã¯ä»¥ä¸‹ã®å†…容をèªã¿ã€åŒæ„ã—ã¾ã™ã€‚" name="agree_chk"/> + <text name="agree_list"> + Second Life ã®åˆ©ç”¨è¦ç´„ã€ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã€ãŠã‚ˆã³ã‚µãƒ¼ãƒ“スè¦ç´„(紛争解決ã®ãŸã‚ã®å¿…è¦æ¡ä»¶ã‚’å«ã‚€ï¼‰ã€‚ + </text> + <button label="続行" label_selected="続行" name="Continue"/> + <button label="å–り消ã—" label_selected="å–り消ã—" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml index 24cb642323..b9e10c071c 100644 --- a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="デフォルト" name="RenderNormally"/> <menu_item_check label="常ã«ä½¿ç”¨ã™ã‚‹" name="AlwaysRenderFully"/> <menu_item_check label="使用ã—ãªã„" name="DoNotRender"/> + <menu_item_call label="例外…" name="RenderExceptions"/> </context_menu> <menu_item_call label="パーティクル所有者をブãƒãƒƒã‚¯" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml index 80ce080e39..01699d1593 100644 --- a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="プãƒãƒ•ã‚£ãƒ¼ãƒ«ã®è¡¨ç¤º" name="Show Profile"/> <menu_item_call label="IMã‚’é€ä¿¡..." name="Send IM"/> <menu_item_call label="テレãƒãƒ¼ãƒˆã‚’リクエスト" name="Request Teleport"/> <menu_item_call label="ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚’è¿½åŠ ..." name="Add Friend"/> <menu_item_call label="フレンドを削除..." name="Remove Friend"/> -</menu> + <context_menu label="モデレーターã®ã‚ªãƒ—ション" name="Moderator Options"> + <menu_item_check label="æ–‡å—ãƒãƒ£ãƒƒãƒˆã‚’許å¯" name="AllowTextChat"/> + <menu_item_call label="ã“ã®å‚åŠ è€…ã‚’ãƒŸãƒ¥ãƒ¼ãƒˆã™ã‚‹" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="ã“ã®å‚åŠ è€…ã®ãƒŸãƒ¥ãƒ¼ãƒˆã‚’解除ã™ã‚‹" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="メンãƒãƒ¼ã‚’ç«‹å…¥ç¦æ¢" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml index 44a71f1f37..3e706cd403 100644 --- a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="デフォルト" name="RenderNormally"/> <menu_item_check label="常ã«ä½¿ç”¨ã™ã‚‹" name="AlwaysRenderFully"/> <menu_item_check label="使用ã—ãªã„" name="DoNotRender"/> + <menu_item_call label="例外…" name="RenderExceptions"/> </context_menu> <menu_item_call label="パーティクル所有者をブãƒãƒƒã‚¯" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml index d53f9657b0..0b06b77901 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml @@ -75,10 +75,12 @@ <menu_item_call label="プãƒãƒ‘ティ" name="Properties"/> <menu_item_call label="åå‰ã‚’変更ã™ã‚‹" name="Rename"/> <menu_item_call label="UUID をコピーã™ã‚‹" name="Copy Asset UUID"/> + <menu_item_call label="メイン画é¢ã§è¡¨ç¤ºã™ã‚‹" name="Show in Main Panel"/> <menu_item_call label="カット" name="Cut"/> <menu_item_call label="コピー" name="Copy"/> <menu_item_call label="貼り付ã‘" name="Paste"/> <menu_item_call label="リンクを貼り付ã‘ã‚‹" name="Paste As Link"/> + <menu_item_call label="リンクを置ãæ›ãˆã‚‹" name="Replace Links"/> <menu_item_call label="削除" name="Delete"/> <menu_item_call label="システムフォルダを削除ã™ã‚‹" name="Delete System Folder"/> <menu_item_call label="コンファレンスãƒãƒ£ãƒƒãƒˆã‚’開始ã™ã‚‹" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml index 18478b5711..ad60b0d01f 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml @@ -13,5 +13,6 @@ <menu_item_call label="共有" name="Share"/> <menu_item_call label="オリジナルを表示" name="Find Original"/> <menu_item_call label="ã™ã¹ã¦ã®ãƒªãƒ³ã‚¯ã‚’表示" name="Find All Links"/> + <menu_item_call label="リンクを置ãæ›ãˆã‚‹" name="Replace Links"/> <menu_item_call label="ã”ã¿ç®±ã‚’空ã«ã™ã‚‹" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml index d93395725b..61b473858b 100644 --- a/indra/newview/skins/default/xui/ja/menu_login.xml +++ b/indra/newview/skins/default/xui/ja/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="ミー" name="File"> <menu_item_call label="環境è¨å®š..." name="Preferences..."/> + <menu_item_call label="ウィンドウを閉ã˜ã‚‹" name="Close Window"/> <menu_item_check label="グリッドピッカーを表示ã™ã‚‹" name="Show Grid Picker"/> <menu_item_call label="[APP_NAME] を終了" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index 9154f327c1..18a0bfce49 100644 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -121,7 +121,7 @@ <menu_item_call label="次ã®ãƒ‘ーツã¾ãŸã¯é¢ã‚’å«ã‚ã‚‹" name="Include Next Part or Face"/> <menu_item_call label="å‰ã®ãƒ‘ーツã¾ãŸã¯é¢ã‚’å«ã‚ã‚‹" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="リンクセット..." name="pathfinding_linkset_menu_item"/> + <menu_item_call label="リージョンオブジェクト" name="pathfinding_linkset_menu_item"/> <menu_item_call label="é¸æŠžã—ãŸã‚‚ã®ã«ç„¦ç‚¹ã‚’åˆã‚ã›ã‚‹" name="Focus on Selection"/> <menu_item_call label="é¸æŠžã—ãŸã‚‚ã®ã‚’ズームã™ã‚‹" name="Zoom to Selection"/> <menu label="オブジェクト" name="Object"> @@ -141,7 +141,7 @@ <menu_item_call label="スクリプトを実行åœæ¢ã«ã™ã‚‹" name="Set Scripts to Not Running"/> </menu> <menu label="パスファインディング" name="Pathfinding"> - <menu_item_call label="リンクセット..." name="pathfinding_linksets_menu_item"/> + <menu_item_call label="リージョンオブジェクト" name="pathfinding_linksets_menu_item"/> <menu_item_call label="ã‚ャラクター..." name="pathfinding_characters_menu_item"/> <menu_item_call label="表示/テスト..." name="pathfinding_console_menu_item"/> <menu_item_call label="地域ã®å†æ§‹ç¯‰" name="pathfinding_rebake_navmesh_item"/> diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml index 7eaed8315b..3bee117448 100644 --- a/indra/newview/skins/default/xui/ja/notifications.xml +++ b/indra/newview/skins/default/xui/ja/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> 今後ã¯è¡¨ç¤ºã—ãªã„ </global> + <global name="skipnexttimesessiononly"> + 以後ã€ã“れを表示ã—ãªã„ +(ç¾ã‚»ãƒƒã‚·ãƒ§ãƒ³ã§ï¼‰ + </global> <global name="alwayschoose"> 常ã«ã“ã®ã‚ªãƒ—ションをé¸æŠž </global> @@ -350,7 +354,7 @@ <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="å‚åŠ "/> </notification> <notification name="JoinGroupNoCost"> - [NAME] ã¨ã„ã†ã‚°ãƒ«ãƒ¼ãƒ—ã«å…¥ã‚ã†ã¨ã—ã¦ã„ã¾ã™ã€‚ + <nolink>[NAME]</nolink> ã¨ã„ã†ã‚°ãƒ«ãƒ¼ãƒ—ã«å…¥ã‚ã†ã¨ã—ã¦ã„ã¾ã™ã€‚ 続ã‘ã¾ã™ã‹ï¼Ÿ <usetemplate name="okcancelbuttons" notext="ã‚ャンセル" yestext="å‚åŠ "/> </notification> @@ -364,6 +368,40 @@ L$ ãŒä¸è¶³ã—ã¦ã„ã‚‹ã®ã§ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã™ã‚‹ã“ã¨ãŒã§ãã 48 時間以内ã«ãƒ¡ãƒ³ãƒãƒ¼ã‚’勧誘ã—ã€å…¥ä¼šã—ã¦ã‚‚らã£ã¦ãã ã•ã„。 <usetemplate canceltext="ã‚ャンセル" name="okcancelbuttons" notext="ã‚ャンセル" yestext="L$100 ã§ã‚°ãƒ«ãƒ¼ãƒ—を作æˆ"/> </notification> + <notification name="JoinGroupInaccessible"> + ã‚ãªãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupError"> + グループå‚åŠ ãƒªã‚¯ã‚¨ã‚¹ãƒˆä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupErrorReason"> + グループã«å‚åŠ ã§ãã¾ã›ã‚“: [reason] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupTrialUser"> + 申ã—訳ã‚ã‚Šã¾ã›ã‚“ãŒã€ãƒˆãƒ©ã‚¤ã‚¢ãƒ«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã§ãã¾ã›ã‚“。 + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupMaxGroups"> + 「<nolink>[group_name]</nolink>ã€ã«å‚åŠ ã§ãã¾ã›ã‚“: +既㫠[group_count] グループã®ãƒ¡ãƒ³ãƒãƒ¼ã«ãªã£ã¦ã„ã¾ã™ã€‚å‚åŠ ã§ãã‚‹ã®ã¯æœ€å¤§ [max_groups] グループã¾ã§ã§ã™ã€‚ + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + 「<nolink>[group_name]</nolink>ã€ã«å‚åŠ ã§ãã¾ã›ã‚“: +ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¯ç¾åœ¨ã€å‚åŠ ãŒåˆ¶é™ã•ã‚Œã¦ã„ã¾ã™ã€‚ + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupSuccess"> + ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚°ãƒ«ãƒ¼ãƒ—ã«è¿½åŠ ã•ã‚Œã¾ã—㟠+ <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + 会員料金ã¨ã—ã¦å¿…è¦ãª L$ [membership_fee] ã‚’é€é‡‘ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。 + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="LandBuyPass"> L$ [COST] 㧠[TIME] 時間 [PARCEL_NAME] ã«å…¥ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ å…¥å ´è¨±å¯ã‚’購入ã—ã¾ã™ã‹ï¼Ÿ @@ -388,12 +426,11 @@ L$ ãŒä¸è¶³ã—ã¦ã„ã‚‹ã®ã§ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã™ã‚‹ã“ã¨ãŒã§ãã <usetemplate name="okcancelbuttons" notext="ã‚ャンセル" yestext="OK"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - ã“ã®åŒºç”»ã®ã‚°ãƒ«ãƒ¼ãƒ— [NAME] 共有ã®ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトをã€ä»¥å‰ã®æ‰€æœ‰è€…ã®ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«æˆ»ãã†ã¨ã—ã¦ã„ã¾ã™ã€‚ -æ“作を続行ã—ã¾ã™ã‹ï¼Ÿ + グループ「<nolink>[NAME]</nolink>ã€ã¨å…±æœ‰ã™ã‚‹ã“ã®ã«ã‚る区画ã®ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトをå‰ã®ã‚ªãƒ¼ãƒŠãƒ¼ã®ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«è¿”å´ã—ã¾ã™ã‹ï¼Ÿ -*è¦å‘Š* ã“ã‚Œã«ã‚ˆã‚Šã€ -グループã«è²æ¸¡ã•ã‚ŒãŸã€Œå†è²©ãƒ»ãƒ—レゼントä¸å¯ã€ã®ã‚ªãƒ–ジェクトã¯å‰Šé™¤ã•ã‚Œã¾ã™ï¼ -オブジェクト: [N] +*注æ„*ã“ã®æ“作をã™ã‚‹ã¨ã€ã‚°ãƒ«ãƒ¼ãƒ—ã«è²æ¸¡ã•ã‚ŒãŸè²æ¸¡ç¦æ¢ã®ã‚ªãƒ–ジェクトを削除ã™ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã€‚ + +オブジェクト: [N] <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> </notification> <notification name="ReturnObjectsOwnedByUser"> @@ -441,9 +478,9 @@ L$ ãŒä¸è¶³ã—ã¦ã„ã‚‹ã®ã§ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã™ã‚‹ã“ã¨ãŒã§ãã <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - ã“ã®åœŸåœ°ã®åŒºç”»ä¸Šã®ã‚ªãƒ–ジェクトã®ã†ã¡ã€ã‚°ãƒ«ãƒ¼ãƒ— [NAME] ã¨ã®é–“ã§å…±æœ‰ã—ã¦ã„ãªã„オブジェクトを所有者ã«è¿”å´ã—ã¾ã™ã‹ï¼Ÿ + グループ <nolink>[NAME]</nolink> ã¨å…±æœ‰ã•ã‚Œã¦ã„ãªã„ã€ã“ã®åŒºç”»ã«ã‚るオブジェクトをå‰ã®ã‚ªãƒ¼ãƒŠãƒ¼ã«è¿”å´ã—ã¾ã™ã‹ï¼Ÿ -オブジェクト: [N] +オブジェクト: [N] <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> </notification> <notification name="UnableToDisableOutsideScripts"> @@ -490,7 +527,7 @@ L$ ãŒä¸è¶³ã—ã¦ã„ã‚‹ã®ã§ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã™ã‚‹ã“ã¨ãŒã§ãã 次ã®ç†ç”±ã§ã€ãƒ¬ãƒãƒ¼ãƒˆã®ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã®ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰æ™‚ã«å•é¡ŒãŒèµ·ã“ã‚Šã¾ã—ãŸã€‚ [REASON] </notification> <notification name="MustAgreeToLogIn"> - [SECOND_LIFE] ã¸ã®ãƒã‚°ã‚¤ãƒ³ã‚’続ã‘ã‚‹ã«ã¯ã€åˆ©ç”¨è¦ç´„ã«åŒæ„ã—ã¦ãã ã•ã„。 + [SECOND_LIFE] ã¸ã®ãƒã‚°ã‚¤ãƒ³ã‚’続ã‘ã‚‹ã«ã¯ã€Second Life ã®åˆ©ç”¨è¦ç´„ã€ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã€ãŠã‚ˆã³ã‚µãƒ¼ãƒ“スè¦ç´„ã«åŒæ„ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ </notification> <notification name="CouldNotPutOnOutfit"> アウトフィットを装ç€ã§ãã¾ã›ã‚“。 @@ -742,7 +779,7 @@ L$ ãŒä¸è¶³ã—ã¦ã„ã‚‹ã®ã§ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã™ã‚‹ã“ã¨ãŒã§ãã <usetemplate name="okcancelbuttons" notext="ã‚ャンセル" yestext="追放"/> </notification> <notification name="EjectAvatarFromGroup"> - [GROUP_NAME] ã‹ã‚‰ [AVATAR_NAME] を追放ã—ã¾ã—㟠+ <nolink>[GROUP_NAME]</nolink> ã‹ã‚‰ [AVATAR_NAME] を追放ã—ã¾ã—㟠</notification> <notification name="AcquireErrorTooManyObjects"> å–得エラー:é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®æ•°ãŒå¤šã™ãŽã¾ã™ã€‚ @@ -1349,20 +1386,18 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries ã‚’å‚ç…§ã—ã¦ã é¸æŠžã™ã‚‹é¢ç©ã‚’å°ã•ãã—ã¦ã‚‚ã†ä¸€åº¦è©¦ã—ã¦ãã ã•ã„。 </notification> <notification name="DeedLandToGroup"> - ã“ã®åŒºç”»ã®è²æ¸¡ã«éš›ã—ã¦ã¯ã€ -ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ãŒå分ãªåœŸåœ°ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’ä¿æœ‰ãŠã‚ˆã³ç¶æŒã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ -土地ã®è³¼å…¥ä¾¡æ ¼ã¯ã€æ‰€æœ‰è€…ã«è¿”金ã•ã‚Œã¾ã›ã‚“。è²æ¸¡ã•ã‚ŒãŸåŒºç”»ãŒå£²ã‚Œã‚‹ã¨ã€å£²ä¸Šé‡‘é¡ã¯ã‚°ãƒ«ãƒ¼ãƒ—メンãƒãƒ¼ã«å‡ç‰ã«åˆ†é…ã•ã‚Œã¾ã™ã€‚ + ã“ã®åŒºç”»ãŒè²æ¸¡ã•ã‚Œã‚‹ã¨ã€ã‚°ãƒ«ãƒ¼ãƒ—ã¯ãã®åœŸåœ°åˆ©ç”¨æ–™ã¨ã—ã¦å分ãªæ®‹é«˜ã‚’ç¶æŒã—ã¦ã„ãå¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ +土地ã®è³¼å…¥ä¾¡æ ¼ã¯æ‰€æœ‰è€…ã«è¿”金ã•ã‚Œã¾ã›ã‚“。è²æ¸¡ã•ã‚ŒãŸåŒºç”»ãŒå£²å´ã•ã‚Œã‚‹ã¨ã€è²©å£²ä¾¡æ ¼ã¯ã‚°ãƒ«ãƒ¼ãƒ—メンãƒãƒ¼ã®é–“ã§å‡ç‰ã«åˆ†é…ã•ã‚Œã¾ã™ã€‚ -ã“ã® [AREA] 平方メートルã®åœŸåœ°ã‚’ã€ã‚°ãƒ«ãƒ¼ãƒ— -「 [GROUP_NAME] ã€ã«è²æ¸¡ã—ã¾ã™ã‹ï¼Ÿ +ã“ã® [AREA] m² ã®åœŸåœ°ã‚’「<nolink>[GROUP_NAME]</nolink>ã€ã¨ã„ã†ã‚°ãƒ«ãƒ¼ãƒ—ã«è²æ¸¡ã—ã¾ã™ã‹ï¼Ÿ <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> </notification> <notification name="DeedLandToGroupWithContribution"> ã“ã®åŒºç”»ãŒè²æ¸¡ã•ã‚Œã‚‹ã¨ã€ã‚°ãƒ«ãƒ¼ãƒ—ã¯ãã®åœŸåœ°åˆ©ç”¨æ–™ã¨ã—ã¦å分ãªæ®‹é«˜ã‚’ç¶æŒã—ã¦ã„ãå¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ -è²æ¸¡ã«ã¯åŒæ™‚ã« [NAME] ã‹ã‚‰ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®åœŸåœ°ã®è²¢çŒ®ãŒå«ã¾ã‚Œã¾ã™ã€‚ -土地ã®è³¼å…¥ä¾¡æ ¼ã¯æ‰€æœ‰è€…ã«è¿”金ã•ã‚Œã¾ã›ã‚“。è²æ¸¡ã•ã‚ŒãŸåŒºç”»ãŒå£²å´ã•ã‚Œã‚‹ã¨ã€è²©å£²ä¾¡æ ¼ã¯ã‚°ãƒ«ãƒ¼ãƒ—メンãƒãƒ¼ã®é–“ã§å‡ç‰ã«åˆ†é…ã•ã‚Œã¾ã™ã€‚ +è²æ¸¡ã«ã¯åŒæ™‚ã« [NAME] ã‹ã‚‰ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®åœŸåœ°ã®è²¢çŒ®ãŒå«ã¾ã‚Œã¾ã™ã€‚土地ã®è³¼å…¥ä¾¡æ ¼ã¯æ‰€æœ‰è€…ã«è¿”金ã•ã‚Œã¾ã›ã‚“。 +è²æ¸¡ã•ã‚ŒãŸåŒºç”»ãŒå£²å´ã•ã‚Œã‚‹ã¨ã€è²©å£²ä¾¡æ ¼ã¯ã‚°ãƒ«ãƒ¼ãƒ—メンãƒãƒ¼ã®é–“ã§å‡ç‰ã«åˆ†é…ã•ã‚Œã¾ã™ã€‚ -ã“ã® [AREA] m² ã®åœŸåœ°ã‚’ [GROUP_NAME] ã¨ã„ã†ã‚°ãƒ«ãƒ¼ãƒ—ã«è²æ¸¡ã—ã¾ã™ã‹ï¼Ÿ +ã“ã® [AREA] m² ã®åœŸåœ°ã‚’「<nolink>[GROUP_NAME]</nolink>ã€ã¨ã„ã†ã‚°ãƒ«ãƒ¼ãƒ—ã«è²æ¸¡ã—ã¾ã™ã‹ï¼Ÿ <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> </notification> <notification name="DisplaySetToSafe"> @@ -1778,7 +1813,7 @@ http://secondlife.com/download ã‹ã‚‰æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ダウンãƒãƒ¼ãƒ‰ã <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> </notification> <notification name="GroupDepart"> - グループ '[group_name]' を抜ã‘ã¾ã—ãŸã€‚ + グループ「<nolink>[group_name]</nolink>ã€ã‚’抜ã‘ã¾ã—ãŸã€‚ </notification> <notification name="OwnerCannotLeaveGroup"> グループを抜ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。グループã®æœ€å¾Œã®ã‚ªãƒ¼ãƒŠãƒ¼ã§ã‚ã‚‹ãŸã‚ã€ã‚°ãƒ«ãƒ¼ãƒ—を抜ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。最åˆã«ã€åˆ¥ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’オーナーã®å½¹å‰²ã«å‰²ã‚Šå½“ã¦ã¦ãã ã•ã„。 @@ -2052,6 +2087,10 @@ http://wiki.secondlife.com/wiki/Setting_your_display_name ã‚’å‚ç…§ã—ã¦ãã ã ä¸å‹•ç”£ç´„款を変更ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚続ã‘ã¾ã™ã‹ï¼Ÿ <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> </notification> + <notification name="EstateParcelAccessOverride"> + ã“ã®ã‚ªãƒ—ションをオフã«ã™ã‚‹ã¨ã€å«ŒãŒã‚‰ã›ã®é˜²æ¢ã‚„プライãƒã‚·ãƒ¼ã®ç¶æŒã€18 æ‰ä»¥ä¸‹ã®ä½äººã‚’ Adult コンテンツã‹ã‚‰å®ˆã‚‹ãŸã‚ã«åŒºç”»æ‰€æœ‰è€…ãŒåŠ ãˆãŸåˆ¶é™ãŒè§£é™¤ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚å¿…è¦ã«å¿œã˜ã¦åŒºç”»æ‰€æœ‰è€…ã¨ç›¸è«‡ã—ã¦ãã ã•ã„。 + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="RegionEntryAccessBlocked"> 訪å•ã—よã†ã¨ã—ã¦ã„る地域(リージョン)ã«ã¯ç¾åœ¨ã®ç’°å¢ƒè¨å®šã‚’超ãˆã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚「ミー〠> 「環境è¨å®šã€ > 「一般ã€ã‚’é¸æŠžã—ã¦ã€ç’°å¢ƒè¨å®šã‚’変更ã§ãã¾ã™ã€‚ <usetemplate name="okbutton" yestext="OK"/> @@ -2396,7 +2435,17 @@ L$ [AMOUNT] ã§ã€ã“ã®ã‚¯ãƒ©ã‚·ãƒ•ã‚¡ã‚¤ãƒ‰åºƒå‘Šã‚’今ã™ã公開ã—ã¾ã™ã </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="アイテムを削除ã™ã‚‹å‰ã®ç¢ºèª" name="okcancelignore" notext="å–り消ã—" yestext="OK"/> + <form name="form"> + <ignore name="ignore" text="アイテムを削除ã™ã‚‹å‰ã®ç¢ºèª"/> + <button name="Yes" text="OK"/> + <button name="No" text="ã‚ャンセル"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + ã‚ãªãŸã®ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«ã¯ç¾åœ¨ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ãŒã‹ã‘られã¦ã„ã‚‹ãŸã‚ã€å‰Šé™¤ã—よã†ã¨ã—ã¦ã„るアイテムã«ã‚ˆã£ã¦ã¯è¡¨ç¤ºã•ã‚Œãªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ + +ã“れらã®ã‚¢ã‚¤ãƒ†ãƒ を削除ã—ã¾ã™ã‹ï¼Ÿ + <usetemplate ignoretext="フィルリングã•ã‚ŒãŸã‚¢ã‚¤ãƒ†ãƒ を削除ã™ã‚‹å‰ã®ç¢ºèª" name="okcancelignore" notext="ã‚ャンセル" yestext="OK"/> </notification> <notification name="ConfirmUnlink"> ã“ã‚Œã¯ã€ãƒªãƒ³ã‚¯ã‚»ãƒƒãƒˆã«ã‚ˆã‚‹åºƒç¯„囲ã®é¸æŠžã§ã™ã€‚リンクを解除ã™ã‚‹ã¨ã€ã‚‚ã†ä¸€åº¦ãƒªãƒ³ã‚¯ã§ããªããªã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ãã®ã‚ˆã†ãªå ´åˆã«å‚™ãˆã¦ã€ãƒªãƒ³ã‚¯ã‚»ãƒƒãƒˆã‚’自分ã®æŒã¡ç‰©ã«ã‚³ãƒ”ーã§ãã¾ã™ã€‚ @@ -2477,13 +2526,17 @@ Linden Lab 「 [FOLDERNAME] 〠ã¯ã€ã‚·ã‚¹ãƒ†ãƒ フォルダã§ã™ã€‚ システムフォルダを削除ã™ã‚‹ã¨ä¸å®‰å®šã«ãªã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ 続ã‘ã¾ã™ã‹ï¼Ÿ <usetemplate ignoretext="システムフォルダを削除ã™ã‚‹å‰ã®ç¢ºèª" name="okcancelignore" notext="ã‚ャンセル" yestext="OK"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] アイテムãŒå®Œå…¨ã«å‰Šé™¤ã•ã‚Œã¾ã™ã€‚ã”ã¿ç®±å†…ã®é¸æŠžã—ãŸé …目をã™ã¹ã¦å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ + <usetemplate name="okcancelbuttons" notext="ã‚ャンセル" yestext="OK"/> + </notification> <notification name="ConfirmEmptyTrash"> - ã”ã¿ç®±ã®ä¸èº«ã‚’ã™ã¹ã¦å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ - <usetemplate ignoretext="インベントリã®ã”ã¿ç®±ãƒ•ã‚©ãƒ«ãƒ€ã‚’空ã«ã™ã‚‹å‰ã®ç¢ºèª" name="okcancelignore" notext="ã‚ャンセル" yestext="OK"/> + [COUNT] アイテムãŒå®Œå…¨ã«å‰Šé™¤ã•ã‚Œã¾ã™ã€‚ã”ã¿ç®±ã®é …目をã™ã¹ã¦å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ + <usetemplate name="okcancelbuttons" notext="ã‚ャンセル" yestext="OK"/> </notification> <notification name="TrashIsFull"> ゴミ箱ãŒã‚ãµã‚Œã¦ã„ã¾ã™ã€‚ã“ã‚Œã¯ãƒã‚°ã‚¤ãƒ³æ™‚ã«å•é¡Œã‚’引ãèµ·ã“ã—ã¾ã™ã€‚ - <usetemplate name="okcancelbuttons" notext="後ã§ã‚´ãƒŸç®±ã‚’空ã«ã™ã‚‹" yestext="今ã™ãゴミ箱を空ã«ã™ã‚‹"/> + <usetemplate name="okcancelbuttons" notext="後ã§ã‚´ãƒŸç®±ã‚’空ã«ã™ã‚‹" yestext="ã”ã¿ç®±ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã‚’確èªã™ã‚‹"/> </notification> <notification name="ConfirmClearBrowserCache"> トラベルã€Webã€æ¤œç´¢ã®å±¥æ´ã‚’ã™ã¹ã¦å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ @@ -2613,6 +2666,9 @@ Web ページã«ãƒªãƒ³ã‚¯ã™ã‚‹ã¨ã€ä»–人ãŒã“ã®å ´æ‰€ã«ç°¡å˜ã«ã‚¢ã‚¯ã‚»ã <notification name="AddSelfFriend"> 残念ãªãŒã‚‰è‡ªåˆ†è‡ªèº«ã‚’フレンド登録ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 </notification> + <notification name="AddSelfRenderExceptions"> + ã‚ãªãŸè‡ªèº«ã‚’レンダリングã®ä¾‹å¤–リストã«åŠ ãˆã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 + </notification> <notification name="UploadingAuctionSnapshot"> インワールド㨠Web サイトã®ã‚¹ãƒŠãƒƒãƒ—ショットをアップãƒãƒ¼ãƒ‰ä¸ã§ã™... (所è¦æ™‚間:約 5 分) @@ -2808,9 +2864,9 @@ Web ページã«ãƒªãƒ³ã‚¯ã™ã‚‹ã¨ã€ä»–人ãŒã“ã®å ´æ‰€ã«ç°¡å˜ã«ã‚¢ã‚¯ã‚»ã 「 [NAME] ã€ã¨ã„ã†åå‰ã®ä½äººãŒæ‰€æœ‰ã™ã‚‹ã€é¸æŠžã—ãŸåŒºç”»ä¸Šã®ã‚ªãƒ–ジェクトã¯ã€æœ¬äººã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚ </notification> <notification name="GroupObjectsReturned"> - é¸æŠžã—ãŸåŒºç”»ä¸Šã®ã€[GROUPNAME] ã¨ã„ã†ã‚°ãƒ«ãƒ¼ãƒ—ã¨å…±æœ‰ã—ã¦ã„ãŸã‚ªãƒ–ジェクトã¯ã€ãã‚Œãžã‚Œã®æ‰€æœ‰è€…ã®ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚ -è²æ¸¡ã•ã‚Œã¦ã„ãŸã€Œå†è²©ãƒ»ãƒ—レゼントå¯ã€ã®ã‚ªãƒ–ジェクトã¯ã€ä»¥å‰ã®æ‰€æœ‰è€…ã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚ -グループã«è²æ¸¡ã•ã‚Œã¦ã„ãŸã€Œå†è²©ãƒ»ãƒ—レゼントä¸å¯ã€ã®ã‚ªãƒ–ジェクトã¯ã€å‰Šé™¤ã•ã‚Œã¾ã—ãŸã€‚ + グループ <nolink>[GROUPNAME]</nolink> ã¨å…±æœ‰ã™ã‚‹ã€é¸æŠžã—ãŸåŒºç”»ã«ã‚るオブジェクトã¯ã€ã‚ªãƒ–ジェクトã®ã‚ªãƒ¼ãƒŠãƒ¼ã®ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚ +è²æ¸¡æ¸ˆã¿ã®è²æ¸¡å¯èƒ½ãªã‚ªãƒ–ジェクトãŒå‰ã®ã‚ªãƒ¼ãƒŠãƒ¼ã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚ +グループã«è²æ¸¡ã•ã‚ŒãŸè²æ¸¡ç¦æ¢ã®ã‚ªãƒ–ジェクトã¯å‰Šé™¤ã•ã‚Œã¾ã—ãŸã€‚ </notification> <notification name="UnOwnedObjectsReturned"> é¸æŠžã—ãŸåœŸåœ°ã®åŒºç”»ä¸Šã®ã€ã‚ãªãŸã®æ‰€æœ‰ç‰©ã§ã¯ã€Œãªã‹ã£ãŸã€ã‚ªãƒ–ジェクトã¯ã€æœ¬æ¥ã®æ‰€æœ‰è€…ã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚ @@ -3195,7 +3251,7 @@ Web ページã«ãƒªãƒ³ã‚¯ã™ã‚‹ã¨ã€ä»–人ãŒã“ã®å ´æ‰€ã«ç°¡å˜ã«ã‚¢ã‚¯ã‚»ã </form> </notification> <notification name="ScriptDialogGroup"> - [GROUPNAME] ã®ã€Œ<nolink>[TITLE]</nolink>〠+ <nolink>[GROUPNAME]</nolink> 㮠「<nolink>[TITLE]</nolink>〠[MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="ブãƒãƒƒã‚¯"/> @@ -3242,8 +3298,8 @@ M ã‚ーを押ã—ã¦å¤‰æ›´ã—ã¾ã™ã€‚ [NAME] ã¯ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã‚’å—ã‘å–ã‚Šã€è‡ªå‹•çš„ã«ãƒ–ãƒãƒƒã‚¯ãŒè§£é™¤ã•ã‚Œã¾ã—ãŸã€‚ </notification> <notification name="VoiceInviteGroup"> - [NAME] 㯠[GROUP] ã®ãƒœã‚¤ã‚¹ãƒãƒ£ãƒƒãƒˆã‚³ãƒ¼ãƒ«ã«å‚åŠ ã—ã¾ã—ãŸã€‚ -å—ã‘入れるをクリックã™ã‚‹ã‹ã€æ–ã‚‹å ´åˆã¯æ‹’å¦ã‚’クリックã—ã¦ãã ã•ã„。 ブãƒãƒƒã‚¯ã‚’クリックã™ã‚‹ã¨ã€ã“ã®ç™ºä¿¡è€…をブãƒãƒƒã‚¯ã—ã¾ã™ã€‚ + [NAME] 㯠<nolink>[GROUP]</nolink> ã®ãƒœã‚¤ã‚¹ãƒãƒ£ãƒƒãƒˆã‚³ãƒ¼ãƒ«ã«å‚åŠ ã—ã¾ã—ãŸã€‚ +å—ã‘入れるをクリックã™ã‚‹ã‹ã€æ–ã‚‹å ´åˆã¯æ‹’å¦ã‚’クリックã—ã¦ãã ã•ã„。ブãƒãƒƒã‚¯ã‚’クリックã™ã‚‹ã¨ã€ã“ã®ç™ºä¿¡è€…をブãƒãƒƒã‚¯ã—ã¾ã™ã€‚ <form name="form"> <button name="Accept" text="å—ã‘入れる"/> <button name="Decline" text="æ‹’å¦"/> @@ -3348,6 +3404,9 @@ M ã‚ーを押ã—ã¦å¤‰æ›´ã—ã¾ã™ã€‚ <notification name="AppearanceToXMLFailed"> 外観を XML ã«ä¿å˜ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ </notification> + <notification name="SnapshotToComputerFailed"> + スナップショットを [PATH] ã«ä¿å˜ã§ãã¾ã›ã‚“ã§ã—ãŸ:ディスクã®ç©ºã容é‡ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚[NEED_MEMORY]KB ãŒå¿…è¦ã§ã™ãŒã€[FREE_MEMORY]KB ã—ã‹ã‚ã‚Šã¾ã›ã‚“。 + </notification> <notification name="PresetNotSaved"> プリセット [NAME] ã®ä¿å˜ã‚¨ãƒ©ãƒ¼ã€‚ </notification> @@ -3385,9 +3444,14 @@ M ã‚ーを押ã—ã¦å¤‰æ›´ã—ã¾ã™ã€‚ <notification name="ShareNotification"> 共有ã™ã‚‹ä½äººã‚’é¸æŠžã—ã¾ã™ã€‚ </notification> + <notification name="MeshUploadErrorDetails"> + [LABEL] をアップãƒãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸï¼š [MESSAGE] +[DETAILS]詳ã—ãã¯ã€SecondLife.log ã‚’ã”覧ãã ã•ã„。 + </notification> <notification name="MeshUploadError"> - [LABEL] をアップãƒãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸï¼š[MESSAGE] [IDENTIFIER] -[DETAILS] 詳ã—ãã¯ã€SecondLife.log ã‚’ã”覧ãã ã•ã„。 + [LABEL] をアップãƒãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸï¼š [MESSAGE] + +詳ã—ãã¯ã€SecondLife.log ã‚’ã”覧ãã ã•ã„ </notification> <notification name="MeshUploadPermError"> メッシュã®ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰è¨±å¯ã‚’リクエストä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml index 1e7c260061..dce3475585 100644 --- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> アイテム: </text> - <filter_editor label="インベントリをフィルター" name="inventory search editor"/> + <filter_editor label="検索用語を入力ã™ã‚‹" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="åå‰" name="Name" value="search_by_name"/> + <item label="制作者" name="Creator" value="search_by_creator"/> + <item label="説明" name="Description" value="search_by_description"/> + <item label="UUID" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="インベントリ" name="All Items"/> <recent_inventory_panel label="最新" name="Recent Items"/> + <inventory_panel label="ç€ç”¨ä¸" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml index 266809f4da..64bd382575 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml @@ -6,7 +6,7 @@ <text name="Cache:"> ã‚ャッシュ: </text> - <spinner label="ã‚ャッシュサイズ(256~9,984MB)" name="cachesizespinner"/> + <spinner label="ã‚ャッシュサイズ (256 - 9984MB)" name="cachesizespinner"/> <text name="text_box5"> MB </text> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml index 1473281502..5046c11194 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="ãƒãƒ£ãƒƒãƒˆ" name="chat"> + <check_box initial_value="true" label="è¿‘ãã®ãƒãƒ£ãƒƒãƒˆã§ã‚¸ã‚§ã‚¹ãƒãƒ£ãƒ¼ã‚’自動コンプリートã™ã‚‹" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="ãƒãƒ£ãƒƒãƒˆä¸ã«ã‚¿ã‚¤ãƒ”ング動作ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’å†ç”Ÿ" name="play_typing_animation"/> <check_box label="オフライン時ã«å—ã‘å–ã£ãŸ IM をメールã§å—ä¿¡" name="send_im_to_email"/> diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml index b5cc6b9765..77c7406952 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml @@ -15,58 +15,34 @@ <text name="estate_owner"> (ä¸æ˜Žï¼‰ </text> - <text name="Only Allow"> - 次ã®ä½äººã«ã®ã¿ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ï¼š - </text> - <check_box label="æ”¯æ‰•æƒ…æƒ…å ±ãŒç™»éŒ²ã•ã‚Œã¦ã„ã‚‹" name="limit_payment" tool_tip="æ”¯æ‰•æƒ…å ±ãŒç™»éŒ²ã•ã‚Œã¦ã„ãªã„ã¨ã€ã“ã®ä¸å‹•ç”£ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。詳細ã«ã¤ã„ã¦ã¯ã€[SUPPORT_SITE] ã‚’ã”覧ãã ã•ã„。"/> - <check_box label="18 æ‰ä»¥ä¸Šã§ã™" name="limit_age_verified" tool_tip="ã“ã®ä¸å‹•ç”£ï¼ˆã‚¨ã‚¹ãƒ†ãƒ¼ãƒˆï¼‰ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ã€18 æ‰ä»¥ä¸Šã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。詳細ã«ã¤ã„ã¦ã¯ã€[SUPPORT_SITE] ã‚’ã”覧ãã ã•ã„。"/> + <radio_group name="externally_visible_radio"> + <radio_item label="下記ã®ä½äººã¨ã‚°ãƒ«ãƒ¼ãƒ—ã®ã¿è¨±å¯ã™ã‚‹" name="estate_restricted_access"/> + <radio_item label="誰ã§ã‚‚訪å•å¯" name="estate_public_access"/> + </radio_group> + <check_box label="18 æ³ä»¥ä¸Šã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" name="limit_age_verified" tool_tip="ã“ã®ä¸å‹•ç”£ï¼ˆã‚¨ã‚¹ãƒ†ãƒ¼ãƒˆï¼‰ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯ã€18 æ‰ä»¥ä¸Šã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。詳細ã«ã¤ã„ã¦ã¯ã€[SUPPORT_SITE] ã‚’ã”覧ãã ã•ã„。"/> + <check_box label="æ”¯æ‰•æƒ…å ±ãŒç™»éŒ²ã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" name="limit_payment" tool_tip="æ”¯æ‰•æƒ…å ±ãŒç™»éŒ²ã•ã‚Œã¦ã„ãªã„ã¨ã€ã“ã®ä¸å‹•ç”£ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。詳細ã«ã¤ã„ã¦ã¯ã€[SUPPORT_SITE] ã‚’ã”覧ãã ã•ã„。"/> + <check_box label="区画所有者" name="parcel_access_override"/> <check_box label="ボイスãƒãƒ£ãƒƒãƒˆã‚’許å¯" name="voice_chat_check"/> - <button label="?" name="voice_chat_help"/> - <text name="abuse_email_text"> - å«ŒãŒã‚‰ã›ã«é–¢ã™ã‚‹ãƒ¡ãƒ¼ãƒ«å…ˆ: - </text> - <string name="email_unsupported"> - サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„機能 - </string> - <button label="?" name="abuse_email_address_help"/> + <check_box label="直接テレãƒãƒ¼ãƒˆã‚’許å¯" name="allow_direct_teleport"/> + <button label="é©ç”¨" name="apply_btn"/> <text name="estate_manager_label"> ä¸å‹•ç”£ãƒžãƒãƒ¼ã‚¸ãƒ£ãƒ¼ï¼š </text> - <button label="?" name="estate_manager_help"/> - <button label="è¿½åŠ ..." name="add_estate_manager_btn"/> - <button label="削除..." name="remove_estate_manager_btn"/> - <check_box label="世界時間を使用" name="use_global_time_check"/> - <button label="?" name="use_global_time_help"/> - <check_box label="太陽固定" name="fixed_sun_check"/> - <button label="?" name="fixed_sun_help"/> - <slider label="段階" name="sun_hour_slider"/> - <check_box label="パブリックアクセスを許å¯" name="externally_visible_check"/> - <button label="?" name="externally_visible_help"/> - <check_box label="直接テレãƒãƒ¼ãƒˆã‚’許å¯" name="allow_direct_teleport"/> - <button label="?" name="allow_direct_teleport_help"/> - <text name="region_text_lbl"> - 支払ã„状æ³ã«ã‚ˆã‚Šã‚¢ã‚¯ã‚»ã‚¹ã‚’æ‹’å¦ï¼š - </text> - <check_box label="æ”¯æ‰•æƒ…å ±ç™»éŒ²ãŒãªã„ã‚‚ã®ã‚’æ‹’å¦" name="deny_anonymous"/> - <check_box label="æ”¯æ‰•æƒ…å ±ç™»éŒ²ãŒã‚ã‚‹ã‚‚ã®ã‚’æ‹’å¦" name="deny_identified"/> - <check_box label="使用ã•ã‚Œã¦ã„ã‚‹æ”¯æ‰•æƒ…å ±ã‚’æ‹’å¦" name="deny_transacted"/> - <button label="é©ç”¨" name="apply_btn"/> <text name="allow_resident_label"> - 許å¯ã•ã‚ŒãŸä½äºº: + 常ã«è¨±å¯ï¼š </text> - <button label="?" name="allow_resident_help"/> + <button label="è¿½åŠ ..." name="add_estate_manager_btn"/> + <button label="削除..." name="remove_estate_manager_btn"/> <button label="è¿½åŠ ..." name="add_allowed_avatar_btn"/> <button label="削除..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - 許å¯ã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—: + グループを常ã«è¨±å¯ï¼š </text> - <button label="?" name="allow_group_help"/> - <button label="è¿½åŠ ..." name="add_allowed_group_btn"/> - <button label="削除..." name="remove_allowed_group_btn"/> <text name="ban_resident_label"> - ç¦æ¢ã•ã‚ŒãŸä½äºº: + 常ã«ç¦æ¢ï¼š </text> - <button label="?" name="ban_resident_help"/> + <button label="è¿½åŠ ..." name="add_allowed_group_btn"/> + <button label="削除..." name="remove_allowed_group_btn"/> <button label="è¿½åŠ ..." name="add_banned_avatar_btn"/> <button label="削除..." name="remove_banned_avatar_btn"/> <button label="メッセージをä¸å‹•ç”£ã«é€ä¿¡..." name="message_estate_btn"/> diff --git a/indra/newview/skins/default/xui/ja/panel_tools_texture.xml b/indra/newview/skins/default/xui/ja/panel_tools_texture.xml index 1c55992336..1821a6fad6 100644 --- a/indra/newview/skins/default/xui/ja/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/ja/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="凹凸 (標準)" name="Bumpiness (normal)" value="1"/> <radio_item label="è¼ã (åå°„)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="ç¹°ã‚Šè¿”ã—ã‚’ãƒãƒƒã‚¯ã™ã‚‹" name="checkbox_sync_settings" tool_tip="ã™ã¹ã¦ã®ãƒžãƒƒãƒ—ã®ç¹°ã‚Šè¿”ã—を調整ã™ã‚‹"/> <texture_picker label="テクスãƒãƒ£" name="texture control" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/> <text name="label alphamode"> アルファモード diff --git a/indra/newview/skins/default/xui/ja/role_actions.xml b/indra/newview/skins/default/xui/ja/role_actions.xml index eb2c12accc..0dc3528acb 100644 --- a/indra/newview/skins/default/xui/ja/role_actions.xml +++ b/indra/newview/skins/default/xui/ja/role_actions.xml @@ -38,7 +38,7 @@ <action description="常ã«ã€Œåœ°å½¢ã‚’編集ã€ã‚’許å¯" longdescription="ã“ã®èƒ½åŠ›ã‚’æŒã¤å½¹å‰²ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—所有ã®åŒºç”»ä¸Šã§åœ°å½¢ã‚’編集ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãã®åŒºç”»ãŒã€ŒåœŸåœ°æƒ…å ±ã€ï¼žã€Œã‚ªãƒ—ションã€ã‚¿ãƒ–ã§ã‚ªãƒ•ã«ãªã£ã¦ã„ã¦ã‚‚ã€åœ°å½¢ã®ç·¨é›†ãŒå¯èƒ½ã§ã™ã€‚" name="land allow edit land" value="23"/> <action description="常ã«ã€Œé£›è¡Œã€ã‚’許å¯" longdescription="ã“ã®èƒ½åŠ›ã‚’æŒã¤å½¹å‰²ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—所有ã®åŒºç”»ä¸Šã‚’飛行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãã®åŒºç”»ãŒã€ŒåœŸåœ°æƒ…å ±ã€ï¼žã€Œã‚ªãƒ—ションã€ã‚¿ãƒ–ã§ã‚ªãƒ•ã«ãªã£ã¦ã„ã¦ã‚‚ã€é£›è¡ŒãŒå¯èƒ½ã§ã™ã€‚" name="land allow fly" value="24"/> <action description="常ã«ã€Œã‚ªãƒ–ジェクト作æˆã€ã‚’許å¯" longdescription="ã“ã®èƒ½åŠ›ã‚’æŒã¤å½¹å‰²ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—所有ã®åŒºç”»ä¸Šã«ã‚ªãƒ–ジェクトを作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãã®åŒºç”»ãŒã€ŒåœŸåœ°æƒ…å ±ã€ï¼žã€Œã‚ªãƒ—ションã€ã‚¿ãƒ–ã§ã‚ªãƒ•ã«ãªã£ã¦ã„ã¦ã‚‚ã€ã‚ªãƒ–ジェクトã®ä½œæˆãŒå¯èƒ½ã§ã™ã€‚" name="land allow create" value="25"/> - <action description="常ã«ã€Œãƒ©ãƒ³ãƒ‰ãƒžãƒ¼ã‚¯ã‚’作æˆã€ã‚’許å¯" longdescription="ã“ã®èƒ½åŠ›ã‚’æŒã¤å½¹å‰²ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—所有ã®åŒºç”»ä¸Šã«ãƒ©ãƒ³ãƒ‰ãƒžãƒ¼ã‚¯ã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãã®åŒºç”»ãŒã€ŒåœŸåœ°æƒ…å ±ã€ï¼žã€Œã‚ªãƒ—ションã€ã‚¿ãƒ–ã§ã‚ªãƒ•ã«ãªã£ã¦ã„ã¦ã‚‚ã€ãƒ©ãƒ³ãƒ‰ãƒžãƒ¼ã‚¯ã®ä½œæˆãŒå¯èƒ½ã§ã™ã€‚" name="land allow landmark" value="26"/> + <action description="ç€åœ°ç‚¹ã‚’無視ã™ã‚‹" longdescription="ã“ã®èƒ½åŠ›ã‚’æŒã¤å½¹å‰²ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ã€‚[土地ã«ã¤ã„㦠> オプション] タブã§ç€åœ°ç‚¹ãŒè¨å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã§ã‚‚グループ所有ã®åŒºç”»ã«ç›´æŽ¥ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã§ãã¾ã™ã€‚" name="land allow direct teleport" value="26"/> <action description="グループã®åœŸåœ°ã¸ã®ã€Œãƒ›ãƒ¼ãƒ è¨å®šã€ã‚’許å¯" longdescription="ã“ã®ã€Œå½¹å‰²ã€ã‚’æŒã¤ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«è²æ¸¡ã•ã‚ŒãŸåŒºç”»ä¸Šã§ã€Œä¸–ç•Œã€ãƒ¡ãƒ‹ãƒ¥ãƒ¼ > ランドマーク > ç¾åœ¨åœ°ã‚’ホームã«è¨å®š を使用ã—ã¦ã€ãƒ›ãƒ¼ãƒ ã®è¨å®šã‚’è¡Œã†ã“ã¨ãŒã§ãã¾ã™ã€‚" name="land allow set home" value="28"/> <action description="グループ所有地ã§ã®ã€Œã‚¤ãƒ™ãƒ³ãƒˆä¸»å‚¬ã€ã‚’許å¯" longdescription="ã“ã®ã€Œèƒ½åŠ›ã€ã‚’æŒã¤ã€Œå½¹å‰²ã€ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—所有区画を利用ã—ã¦ã‚¤ãƒ™ãƒ³ãƒˆã‚’開催ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 0e08c4fafa..1d1b8a0fff 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -262,8 +262,7 @@ support@secondlife.com ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。 </string> <string name="LoginFailedAccountDisabled"> ç¾åœ¨ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’完了ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。 -Second Life ã®ã‚µãƒãƒ¼ãƒˆï¼ˆhttp://secondlife.com/support)ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。 -パスワードを変更ã§ããªã„å ´åˆã«ã¯ã€(866) 476-9763 ã«é›»è©±ã§ãŠå•ã„åˆã‚ã›ãã ã•ã„。 +Second Life ã®ã‚µãƒãƒ¼ãƒˆï¼ˆhttp://support.secondlife.com)ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。 </string> <string name="LoginFailedTransformError"> ãƒã‚°ã‚¤ãƒ³æ™‚ã«ãƒ‡ãƒ¼ã‚¿ã®ä¸ä¸€è‡´ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚ @@ -704,6 +703,19 @@ support@secondlife.com ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。 <string name="AssetErrorUnknownStatus"> ä¸æ˜Žã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ </string> + <string name="AssetUploadServerUnreacheble"> + サービスãŒã”利用ã„ãŸã ã‘ã¾ã›ã‚“。 + </string> + <string name="AssetUploadServerDifficulties"> + サーãƒãƒ¼ã«äºˆæœŸã›ã¬å•é¡ŒãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ + </string> + <string name="AssetUploadServerUnavaliable"> + サービスãŒã”利用ã„ãŸã ã‘ãªã„ã‹ã€ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ãŒã‚¿ã‚¤ãƒ アウトã—ã¾ã—ãŸã€‚ + </string> + <string name="AssetUploadRequestInvalid"> + アップãƒãƒ¼ãƒ‰ãƒªã‚¯ã‚¨ã‚¹ãƒˆä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚å•é¡Œã‚’解決ã™ã‚‹ã«ã¯ã€ã‚µãƒãƒ¼ãƒˆ +(http://secondlife.com/support)ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。 + </string> <string name="texture"> テクスãƒãƒ£ </string> @@ -2197,10 +2209,19 @@ support@secondlife.com ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。 ã‚ãªãŸãŒ [OWNER] ã®ãŸã‚ã«ç®¡ç†ã™ã‚‹ã™ã¹ã¦ã®ä¸å‹•ç”£ </string> <string name="RegionInfoAllowedResidents"> - 許å¯ã•ã‚ŒãŸä½äººï¼š ([ALLOWEDAGENTS] 人ã€æœ€å¤§ [MAXACCESS] 人) + 常ã«è¨±å¯ï¼šï¼ˆ[ALLOWEDAGENTS] 人ã€æœ€å¤§ [MAXACCESS] 人) </string> <string name="RegionInfoAllowedGroups"> - 許å¯ã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—: ([ALLOWEDGROUPS]ã€æœ€å¤§ [MAXACCESS] ) + グループを常ã«è¨±å¯ï¼šï¼ˆ[ALLOWEDGROUPS]ã€æœ€å¤§ [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + 常ã«ç¦æ¢ï¼šï¼ˆ[BANNEDAGENTS] 人ã€æœ€å¤§ [MAXBANNED] 人) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + 常ã«è¨±å¯ + </string> + <string name="RegionInfoListTypeBannedAgents"> + 常ã«ç¦æ¢ </string> <string name="ScriptLimitsParcelScriptMemory"> 区画スクリプトメモリ diff --git a/indra/newview/skins/default/xui/pt/floater_about_land.xml b/indra/newview/skins/default/xui/pt/floater_about_land.xml index 861523523e..6039b7fd4a 100644 --- a/indra/newview/skins/default/xui/pt/floater_about_land.xml +++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml @@ -435,13 +435,10 @@ MÃdia: <panel.string name="estate_override"> Uma ou mais destas opções está definida no nÃvel de propriedade. </panel.string> - <check_box label="Permitir acesso público (Desmarcar esse item cria limites)" name="public_access"/> - <text name="Only Allow"> - Permitir acesso apenas para residentes que: - </text> - <check_box label="Possuam Dados de pagamento fornecidos [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Os residentes devem ter seus dados de pagamento cadastrados para acessar este lote. Consulte o [SUPPORT_SITE] para saber mais."/> - <check_box label="Tem 18 anos ou mais [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Os residentes devem ter 18 anos ou mais para acessar este lote. Consulte o [SUPPORT_SITE] para obter mais informações."/> - <check_box label="Permitir acesso do grupo: [GROUP]" name="GroupCheck" tool_tip="Definir grupo na aba Geral."/> + <check_box label="Qualquer um pode visitar (Desmarcar esse item criará limites)" name="public_access"/> + <check_box label="Deve ser maior de 18 [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Os residentes devem ter 18 anos ou mais para acessar este lote. Consulte o [SUPPORT_SITE] para obter mais informações."/> + <check_box label="Deve conter no arquivo as informações de pagamento [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Os residentes devem ter seus dados de pagamento cadastrados para acessar este lote. Consulte o [SUPPORT_SITE] para saber mais."/> + <check_box label="Permitir grupo [GROUP] sem restrições" name="GroupCheck" tool_tip="Definir grupo na aba Geral."/> <check_box label="Vender passes para:" name="PassCheck" tool_tip="Permite acesso temporário a este terreno"/> <combo_box name="pass_combo"> <combo_box.item label="Qualquer um" name="Anyone"/> @@ -449,9 +446,12 @@ MÃdia: </combo_box> <spinner label="Preço em L$:" name="PriceSpin"/> <spinner label="Horas de acesso:" name="HoursSpin"/> + <text name="OwnerLimited"> + (O proprietário do imóvel pode ter limitado estas escolhas) + </text> <panel name="Allowed_layout_panel"> <text label="Always Allow" name="AllowedText"> - Residentes permitidos ([COUNT], máx: [MAX]) + Sempre permitido ([COUNT], máx: [MAX]) </text> <name_list name="AccessList" tool_tip="(Total [LISTED], máx de [MAX])"/> <button label="Adicionar" name="add_allowed"/> @@ -459,7 +459,7 @@ MÃdia: </panel> <panel name="Banned_layout_panel"> <text label="Ban" name="BanCheck"> - Residentes banidos ([COUNT], máx: [MAX]) + Sempre banido ([COUNT], máx: [MAX]) </text> <name_list name="BannedList" tool_tip="(Total [LISTED], máx de [MAX])"/> <button label="Adicionar" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml b/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml index 2b65952676..0aabf62e17 100644 --- a/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> '[TEXT]' não encontrado </floater.string> + <floater.string name="not_found_text"> + Residente não encontrado. + </floater.string> <floater.string name="no_one_near"> Ninguém por perto </floater.string> diff --git a/indra/newview/skins/default/xui/pt/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/pt/floater_avatar_render_settings.xml index b512126f98..4088dc82d0 100644 --- a/indra/newview/skins/default/xui/pt/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/pt/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="Nome" name="name"/> <name_list.columns label="Configuração de renderização" name="setting"/> + <name_list.columns label="Data adicionada" name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml index 3840b54d66..3f66fd07b9 100644 --- a/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="Tudo" label_selected="Tudo" name="All"/> <button label="Nenhum" label_selected="Nenhum" name="None"/> <check_box label="Sempre mostrar as pastas" name="check_show_empty"/> + <check_box label="Criado por mim" name="check_created_by_me"/> + <check_box label="Criado por outros" name="check_created_by_others"/> <check_box label="Desde o Logoff" name="check_since_logoff"/> <text name="- OR -"> - OU - diff --git a/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml index c41e55992a..50c423e63b 100644 --- a/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="Linksets do pathfinding"> +<floater name="floater_pathfinding_linksets" title="REGIÃO OBJETOS"> <floater.string name="messaging_get_inprogress"> Procurando por linksets do pathfinding... </floater.string> @@ -16,7 +16,7 @@ Nenhum linkset do pathfinding. </floater.string> <floater.string name="messaging_complete_available"> - [NUM_SELECTED] linksets selecionados de [NUM_TOTAL]. + [NUM_SELECTED] selecionado de [NUM_TOTAL]. </floater.string> <floater.string name="messaging_not_enabled"> Esta região não está habilitada para pathfinding. @@ -118,7 +118,7 @@ <scroll_list.columns label="Com script" name="scripted"/> <scroll_list.columns label="Impacto" name="land_impact"/> <scroll_list.columns label="Distância" name="dist_from_you"/> - <scroll_list.columns label="Uso do linkset" name="linkset_use"/> + <scroll_list.columns label="Uso de pathfinding" name="linkset_use"/> <scroll_list.columns label="A %" name="a_percent"/> <scroll_list.columns label="B %" name="b_percent"/> <scroll_list.columns label="C %" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - Ações em linksets selecionados (se um linkset for removido de um mundo, seus atributos podem ser perdidos): + Ações sobre o selecionado </text> <check_box label="Exibir baliza" name="show_beacon"/> <button label="Pegar" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - Edite os atributos de linksets selecionados e pressione o botão para aplicar as alterações + Editar atributos do pathfinding </text> <text name="walkability_coefficients_label"> Possibilidade de caminhar: diff --git a/indra/newview/skins/default/xui/pt/floater_tos.xml b/indra/newview/skins/default/xui/pt/floater_tos.xml index 6666f0f9ca..f8b2bc4aa7 100644 --- a/indra/newview/skins/default/xui/pt/floater_tos.xml +++ b/indra/newview/skins/default/xui/pt/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Carregando %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETermos%20de%20Serviço%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="Continuar" label_selected="Continuar" name="Continue"/> - <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> - <check_box label="Concordo com os Termos de Serviço e com a PolÃtica de Privacidade" name="agree_chk"/> <text name="tos_heading"> - Leia com atenção os Termos do Serviço e a PolÃtica de Privacidade. Para continuar a entrar no [SECOND_LIFE], é preciso aceitar esses termos. + Por favor, leia os seguintes Termos e condições, PolÃtica de privacidade e Termos de serviço do Second Life, incluindo a exigência do uso da arbitragem e a renúncia de qualquer reivindicação de classe ou grupo para resolver disputas. Para continuar a acessar o [SECOND_LIFE], é preciso aceitar os acordos. </text> <text name="external_tos_required"> Antes de continuar, você precisará visitar https://my.secondlife.com e fazer login para aceitar os Termos de Serviço. Obrigado! </text> + <check_box label="Li e concordo" name="agree_chk"/> + <text name="agree_list"> + os Termos e condições, PolÃtica de privacidade e Termos de serviço do Second Life, incluindo as exigências para resolver disputas. + </text> + <button label="Continuar" label_selected="Continuar" name="Continue"/> + <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/pt/menu_attachment_other.xml b/indra/newview/skins/default/xui/pt/menu_attachment_other.xml index f15bb0444e..4fe2977eb3 100644 --- a/indra/newview/skins/default/xui/pt/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/pt/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="Padrão" name="RenderNormally"/> <menu_item_check label="Sempre" name="AlwaysRenderFully"/> <menu_item_check label="Nunca" name="DoNotRender"/> + <menu_item_call label="Exceções..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Bloquear proprietário da partÃcula" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml b/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml index f6211790a8..f30c0c5762 100644 --- a/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="Ver perfil" name="Show Profile"/> <menu_item_call label="Enviar MI..." name="Send IM"/> <menu_item_call label="Solicitar teletransporte" name="Request Teleport"/> <menu_item_call label="Adicionar amigo..." name="Add Friend"/> <menu_item_call label="Remover amigo..." name="Remove Friend"/> -</menu> + <context_menu label="Opções do moderador" name="Moderator Options"> + <menu_item_check label="Permitir bate-papo de texto" name="AllowTextChat"/> + <menu_item_call label="Silenciar este participante" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="Desfazer silenciar" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="Banir membro" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_other.xml b/indra/newview/skins/default/xui/pt/menu_avatar_other.xml index d6021c09c9..5353a2405d 100644 --- a/indra/newview/skins/default/xui/pt/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/pt/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="Padrão" name="RenderNormally"/> <menu_item_check label="Sempre" name="AlwaysRenderFully"/> <menu_item_check label="Nunca" name="DoNotRender"/> + <menu_item_call label="Exceções..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Bloquear proprietário da partÃcula" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml index af8cfde6af..b99ddc67d2 100644 --- a/indra/newview/skins/default/xui/pt/menu_inventory.xml +++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml @@ -75,10 +75,12 @@ <menu_item_call label="Propriedades" name="Properties"/> <menu_item_call label="Renomear" name="Rename"/> <menu_item_call label="Copiar item UUID" name="Copy Asset UUID"/> + <menu_item_call label="Mostrar no Painel Principal" name="Show in Main Panel"/> <menu_item_call label="Cortar" name="Cut"/> <menu_item_call label="Copiar" name="Copy"/> <menu_item_call label="Colar" name="Paste"/> <menu_item_call label="Colar como link" name="Paste As Link"/> + <menu_item_call label="Links trocados" name="Replace Links"/> <menu_item_call label="Apagar" name="Delete"/> <menu_item_call label="Excluir pasta do sistema" name="Delete System Folder"/> <menu_item_call label="Pasta conversa em conferência" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml index d3e6534912..a2dc32ece9 100644 --- a/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml @@ -13,5 +13,6 @@ <menu_item_call label="Compartilhar" name="Share"/> <menu_item_call label="Encontrar original" name="Find Original"/> <menu_item_call label="Encontrar todos os links" name="Find All Links"/> + <menu_item_call label="Links trocados" name="Replace Links"/> <menu_item_call label="Esvaziar lixeira" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_login.xml b/indra/newview/skins/default/xui/pt/menu_login.xml index 1001ede4e7..c444781a2d 100644 --- a/indra/newview/skins/default/xui/pt/menu_login.xml +++ b/indra/newview/skins/default/xui/pt/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="Eu" name="File"> <menu_item_call label="Preferências..." name="Preferences..."/> + <menu_item_call label="Fechar janela" name="Close Window"/> <menu_item_check label="Exibir seletor da grade" name="Show Grid Picker"/> <menu_item_call label="Sair do [APP_NAME]" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml index cef0f02070..a5d0c33969 100644 --- a/indra/newview/skins/default/xui/pt/menu_viewer.xml +++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml @@ -121,7 +121,7 @@ <menu_item_call label="Incluir próxima parte ou face" name="Include Next Part or Face"/> <menu_item_call label="Incluir parte anterior ou face" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="Linksets..." name="pathfinding_linkset_menu_item"/> + <menu_item_call label="Região Objetos" name="pathfinding_linkset_menu_item"/> <menu_item_call label="Enfocar seleção" name="Focus on Selection"/> <menu_item_call label="Ampliar seleção" name="Zoom to Selection"/> <menu label="Objeto:" name="Object"> @@ -141,7 +141,7 @@ <menu_item_call label="Scripts em modo não execução" name="Set Scripts to Not Running"/> </menu> <menu label="Pathfinding" name="Pathfinding"> - <menu_item_call label="Linksets..." name="pathfinding_linksets_menu_item"/> + <menu_item_call label="Região Objetos" name="pathfinding_linksets_menu_item"/> <menu_item_call label="Personagens..." name="pathfinding_characters_menu_item"/> <menu_item_call label="Visualização/teste..." name="pathfinding_console_menu_item"/> <menu_item_call label="Recarregar região" name="pathfinding_rebake_navmesh_item"/> diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml index c8a5f66b4d..5cef30f765 100644 --- a/indra/newview/skins/default/xui/pt/notifications.xml +++ b/indra/newview/skins/default/xui/pt/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> Não exibir isto novamente </global> + <global name="skipnexttimesessiononly"> + Não exibir isto novamente +(para a sessão atual) + </global> <global name="alwayschoose"> Sempre escolher esta opção </global> @@ -342,7 +346,7 @@ Deseja prosseguir? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Unir-se"/> </notification> <notification name="JoinGroupNoCost"> - Você está prestes a entrar no grupo [NAME]. + Você está prestes a entrar no grupo <nolink>[NAME]</nolink>. Deseja continuar? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Entrar"/> </notification> @@ -356,6 +360,39 @@ Grupos ser formados por mais de um membro, caso contrário serão definitivament Convite outros membros dentro de 48 horas. <usetemplate canceltext="Cancelar" name="okcancelbuttons" notext="Cancelar" yestext="Criar grupo por L$100"/> </notification> + <notification name="JoinGroupInaccessible"> + Este grupo não está acessÃvel para você. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupError"> + Erro no processamento da sua solicitação de associação ao grupo. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupErrorReason"> + Não foi possÃvel entrar para o grupo: [reason] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupTrialUser"> + Lamentamos, usuários com conta experimental não pode entrar em grupos. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupMaxGroups"> + Não pode entrar '<nolink>[group_name]</nolink>': Você já é um membro de [group_count] grupos, o número máximo permitido é de [max_groups] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + Não pode entrar '<nolink>[group_name]</nolink>': +O grupo não está aberto para novas inscrições. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupSuccess"> + Você foi adicionado ao grupo + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + Não foi possÃvel transferir a taxa solicitada do plano em L$ [membership_fee]. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="LandBuyPass"> Por L$[COST] você pode ingressar no terreno ('[PARCEL_NAME]') por [TIME] horas. Comprar um passe de acesso? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> @@ -377,9 +414,9 @@ O preço será L$[SALE_PRICE] e [NAME] pode comprar o terreno. <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - Tem certeza de que quer devolver todos os objetos compartilhados com o grupo '[NAME]' neste lote, para o inventário do seu antigo Proprietário? + Tem certeza de que deseja devolver todos os objetos compartilhados com o grupo '<nolink>[NAME]</nolink>' neste lote do terreno para o inventário dos seus antigos proprietários? -*AVISO* Isso irá deletar os objetos não transferÃveis doados ao grupo! +*AVISO* Esta ação excluirá todos os objetos não transferÃveis doados para o grupo! Objetos: [N] <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Devolver"/> @@ -422,7 +459,7 @@ Objetos: [N] <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Desativar"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - Retornar os objetos deste lote que NÃO são compartilhados com o grupo [NAME] de volta para seus proprietários? + Devolver os objetos neste lote do terreno que NÃO foram compartilhados com o grupo <nolink>[NAME]</nolink> para os seus proprietários? Objetos: [N] <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Devolver"/> @@ -470,7 +507,7 @@ Para colocar a mÃdia em só uma face, selecione Selecionar face e clique na fac Houve um problema ao carregar a foto da reportagem devido à seguinte razão: [REASON] </notification> <notification name="MustAgreeToLogIn"> - Você deve concordar com os Termos de Serviço para continuar a entrar no [SECOND_LIFE]. + Você deve concordar com os Termos e condições, PolÃtica de privacidade e Termos de serviço Second Life para continuar a acessar o [SECOND_LIFE]. </notification> <notification name="CouldNotPutOnOutfit"> Não foi possÃvel vestir o look. A pasta do look não contém roupas, partes do corpo ou acessórios. @@ -719,7 +756,7 @@ Ele ou ela vai ficar temporariamente incapaz de se mover, usar o bate-papo ou in <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Ejetar"/> </notification> <notification name="EjectAvatarFromGroup"> - Você ejetou [AVATAR_NAME] do grupo [GROUP_NAME] + Você ejetou [AVATAR_NAME] do grupo <nolink>[GROUP_NAME]</nolink> </notification> <notification name="AcquireErrorTooManyObjects"> Erro de aquisição: Muitos objetos selecionados. @@ -1316,18 +1353,18 @@ Tem certeza de que deseja pegar estes itens? Por favor, selecione uma área menor e tente novamente. </notification> <notification name="DeedLandToGroup"> - No ato da doação deste lote, o grupo deverá ter e manter créditos suficientes para ter o terreno. -O preço de aquisição dos terrenos não é restituÃdo ao proprietário. Se uma parcela doada for vendida, o preço de venda é dividido igualmente entre os membros do grupo. + Ao transferir este terreno, o grupo precisa ter e manter créditos de uso de terrenos suficiente. +O preço pago pelo terreno não será reembolsado ao proprietário. Se um terreno doado for vendido, a receita da venda será dividida igualmente entre os membros do grupo. -Doar [AREA] m² ao grupo '[GROUP_NAME]'? +Doar esta [AREA] m² do terreno para o grupo '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="DeedLandToGroupWithContribution"> - Ao transferir este terreno, o grupo precisa ter e manter créditos de uso de terrenos suficientes. -A doação inclui uma contribuição de terreno ao grupo de parte de '[NAME]'. -O preço pago pelo terreno não será reembolsado ao proprietário. Se um terreno doado for vendido, a receita da venda será dividida igualmente entre os membros do grupo. + Ao transferir este terreno, o grupo precisa ter e manter créditos de uso de terrenos suficiente. +A doação inclui uma contribuição de terreno ao grupo de '[NAME]'. +O preço pago pelo terreno não será reembolsado ao proprietário. Se um terreno doado for vendido, a receita da venda será dividida igualmente entre os membros do grupo. -Doar este terreno de [AREA] m² para o grupo '[GROUP_NAME]'? +Doar esta [AREA] m² do terreno para o grupo '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="DisplaySetToSafe"> @@ -1738,7 +1775,7 @@ Se você estiver muito ansioso para experimentar os novos recursos e correções <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Sair"/> </notification> <notification name="GroupDepart"> - Você deixou o grupo '[group_name]'. + Você deixou o grupo '<nolink>[group_name]</nolink>'. </notification> <notification name="OwnerCannotLeaveGroup"> Não foi possÃvel deixar o grupo. Você não pode deixar o grupo pois é o último proprietário dele. Primeiramente, atribua outro membro à função de proprietário. @@ -2010,6 +2047,10 @@ Isto mudará milhares de regiões e fará o spaceserver soluçar. Tem certeza de que deseja mudar o Corretor da Propriedade? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Mudar"/> </notification> + <notification name="EstateParcelAccessOverride"> + Ao desselecionar esta opção, você pode remover as restrições que os proprietários dos terrenos adicionaram para evitar problemas, manter a privacidade ou proteger residentes menores de idade contra conteúdo adulto. Por favor, discuta com os seus proprietários de terreno conforme necessário. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="RegionEntryAccessBlocked"> A região que você está tentando visitar tem conteúdo que excede suas preferências atuais. Você pode alterar suas preferências acessando Eu > Preferências > Geral. <usetemplate name="okbutton" yestext="OK"/> @@ -2350,7 +2391,17 @@ Não é possÃvel desfazer essa ação. </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Confirmar antes de excluir" name="okcancelignore" notext="Cancelar" yestext="OK"/> + <form name="form"> + <ignore name="ignore" text="Confirmar antes de excluir"/> + <button name="Yes" text="OK"/> + <button name="No" text="Cancelar"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + O seu inventário está atualmente filtrado e nem todos os itens que você está para excluir estão atualmente visÃveis. + +Tem certeza de que deseja exclui-los? + <usetemplate ignoretext="Confirme antes de excluir os itens filtrados" name="okcancelignore" notext="Cancelar" yestext="OK"/> </notification> <notification name="ConfirmUnlink"> Essa é uma seleção ampla com linksets. Se você desvinculá-la, pode não ser possÃvel vinculá-la novamente. Como precaução, pode ser interessante fazer cópias dos linksets no seu inventário. @@ -2428,13 +2479,17 @@ Deseja desativar o Não perturbe antes de concluir esta transação? A pasta '[FOLDERNAME]' é uma pasta do sistema. Excluir pastas de sistema pode deixar o sistema instável. Tem certeza de que quer prosseguir? <usetemplate ignoretext="Confirmar antes de excluir pastas do sistema." name="okcancelignore" notext="Cancelar" yestext="OK"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] item(ns) será(ão) permanentemente excluÃdo(s) Tem certeza de que deseja excluir permanentemente o(s) item(ns) da sua lixeira? + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> + </notification> <notification name="ConfirmEmptyTrash"> - Tem certeza de que deseja excluir o conteúdo da Lixeira? Para sempre? - <usetemplate ignoretext="Confirmar antes de esvaziar a pasta Lixeira" name="okcancelignore" notext="Não" yestext="Sim"/> + [COUNT] itens serão excluÃdos permanentemente. Tem certeza de que deseja excluir o conteúdo da Lixeira? Para sempre? + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="TrashIsFull"> Sua lixeira está transbordando. Isso pode causar problemas no logon. - <usetemplate name="okcancelbuttons" notext="Esvaziarei a lixeira mais tarde" yestext="Esvaziar lixeira agora"/> + <usetemplate name="okcancelbuttons" notext="Esvaziarei a lixeira mais tarde" yestext="Verifique a pasta lixeira"/> </notification> <notification name="ConfirmClearBrowserCache"> Tem certeza de que quer apagar todo o histórico de viagens, web e buscas? @@ -2563,6 +2618,9 @@ Inclua um link para facilitar o acesso para visitantes. Teste o link na barra de <notification name="AddSelfFriend"> Você é o máximo! Mesmo assim, não dá para adicionar a si mesmo(a) como amigo(a). </notification> + <notification name="AddSelfRenderExceptions"> + Você não pode adicionar a si mesmo para renderizar a lista de exceções. + </notification> <notification name="UploadingAuctionSnapshot"> Fazendo o upload das fotos do site da web e do mundo... (Leva cerca de 5 minutos) @@ -2753,9 +2811,9 @@ Instale o plugin novamente ou contate o fabricante se o problema persistir. Os objetos no lote selecionado, do residente [NAME], foram devolidos ao proprietãrio. </notification> <notification name="GroupObjectsReturned"> - Os objetos no lote selecionado de terreno compartilhado pelo grupo [GROUPNAME], voltaram para os inventários de seus donos. -Objetos trasnferÃveis dados ao grupo, voltaram aos seus donos anteriores. -Objetos não transferÃveis dados ao grupo foram deletados. + Os objetos no lote selecionado do terreno compartilhado com o grupo <nolink>[GROUPNAME]</nolink> retornaram para o inventário do proprietário. +Os objetos transferÃveis doados são devolvidos para os seus antigos proprietários. +Objetos não transferÃveis que foram doados para o grupo foram excluÃdos. </notification> <notification name="UnOwnedObjectsReturned"> Os objetos no lote selecionado que NÃO são seus, voltaram aos seus donos. @@ -3140,7 +3198,7 @@ Para conceder essa permissão, atualize seu visualizador para a versão mais rec </form> </notification> <notification name="ScriptDialogGroup"> - <nolink>[TITLE]</nolink>' de [GROUPNAME]' + <nolink>[GROUPNAME]</nolink>'s '<nolink>[TITLE]</nolink>' [MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="Bloquear"/> @@ -3187,8 +3245,8 @@ Clique em Aceitar para atender ou em Recusar para recusar este convite. Clique [NAME] recebeu dinheiro e foi desbloqueado(a) automaticamente. </notification> <notification name="VoiceInviteGroup"> - [NAME] atendeu uma ligação de bate-papo de voz com o grupo [GROUP]. -Clique em Aceitar para atender ou em Recusar para recusar este convite. Clique em Bloquear para bloquear ligações deste avatar. + [NAME] entrou em um bate-papo de voz com o grupo <nolink>[GROUP]</nolink>. +Clique em Aceitar para atender ou em Recusar para recusar este convite. Clique em Bloquear para bloquear ligações deste avatar. <form name="form"> <button name="Accept" text="Aceitar"/> <button name="Decline" text="Recusar"/> @@ -3296,6 +3354,9 @@ Para sua segurança, os SLurls serão bloqueados por alguns instantes. <notification name="AppearanceToXMLFailed"> Falha ao salvar a aparência como XML. </notification> + <notification name="SnapshotToComputerFailed"> + Falha ao salvar fotografia em [PATH]: Disco cheio. [NEED_MEMORY]KB é necessário, mas somente [FREE_MEMORY]KB está livre. + </notification> <notification name="PresetNotSaved"> Erro ao salvar predefinição [NAME]. </notification> @@ -3333,9 +3394,14 @@ O botão será exibido quando houver espaço suficente. <notification name="ShareNotification"> Selecione os residentes com quem compartilhar. </notification> + <notification name="MeshUploadErrorDetails"> + [LABEL] falhou ao realizar upload: [MESSAGE] +[DETAILS]Acesse SecondLife.log para detalhes + </notification> <notification name="MeshUploadError"> - Falha no envio de [LABEL]: [MESSAGE] [IDENTIFIER] -[DETAILS]Consulte SecondLife.log para obter mais detalhes + [LABEL] falhou ao realizar upload: [MESSAGE] + +Acesse SecondLife.log para detalhes </notification> <notification name="MeshUploadPermError"> Erro ao solicitar permissões de upload de mesh. diff --git a/indra/newview/skins/default/xui/pt/panel_main_inventory.xml b/indra/newview/skins/default/xui/pt/panel_main_inventory.xml index 6bc6e775b1..cde53518d0 100644 --- a/indra/newview/skins/default/xui/pt/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/pt/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> Itens: </text> - <filter_editor label="Filtro" name="inventory search editor"/> + <filter_editor label="Digite o texto de pesquisa" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="Nome" name="Name" value="search_by_name"/> + <item label="Criador" name="Creator" value="search_by_creator"/> + <item label="Descrição" name="Description" value="search_by_description"/> + <item label="UUID" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="Todos os itens" name="All Items"/> <recent_inventory_panel label="Itens recentes" name="Recent Items"/> + <inventory_panel label="USADO" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml index 56065d95a3..d2dfe317bd 100644 --- a/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml @@ -6,7 +6,7 @@ <text name="Cache:"> Cache: </text> - <spinner label="Cache (256 - 9984 MB)" name="cachesizespinner"/> + <spinner label="Tamanho do cache (256 - 9984MB)" name="cachesizespinner"/> <text name="text_box5"> MB </text> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml index f3de404ef7..cb70251752 100644 --- a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat" name="chat"> + <check_box initial_value="true" label="Auto completar os gestos em um bate-papo local" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="Executar animação de digitação durante o bate-papo" name="play_typing_animation"/> <check_box label="Envie MIs por email quando eu estiver desconectado" name="send_im_to_email"/> diff --git a/indra/newview/skins/default/xui/pt/panel_region_estate.xml b/indra/newview/skins/default/xui/pt/panel_region_estate.xml index b1453c9c32..8b405f601a 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_estate.xml @@ -15,54 +15,36 @@ <text name="estate_owner"> (desconhecido) </text> - <check_box label="Usar Tempo global" name="use_global_time_check"/> - <button label="?" name="use_global_time_help"/> - <check_box label="Sol fixo" name="fixed_sun_check"/> - <button label="?" name="fixed_sun_help"/> - <slider label="Fase" name="sun_hour_slider"/> - <check_box label="Permitir acesso público" name="externally_visible_check"/> - <button label="?" name="externally_visible_help"/> - <text name="Only Allow"> - Permitir acesso apenas para residentes que: - </text> - <check_box label="Dados de pagamento constam no registro." name="limit_payment" tool_tip="Propriedade de acesso restrito a residentes que já cadastraram seus dados de pagamento Consulte o [SUPPORT_SITE] para saber mais."/> - <check_box label="Tem 18 anos ou mais" name="limit_age_verified" tool_tip="Os residentes devem ter 18 anos ou mais para acessar esta propriedade. Consulte o [SUPPORT_SITE] para obter mais informações."/> + <radio_group name="externally_visible_radio"> + <radio_item label="Permitir somente os residentes e os grupos listados abaixo" name="estate_restricted_access"/> + <radio_item label="Qualquer um pode visitar" name="estate_public_access"/> + </radio_group> + <check_box label="Deve ser maior de 18 anos" name="limit_age_verified" tool_tip="Os residentes devem ter 18 anos ou mais para acessar esta propriedade. Consulte o [SUPPORT_SITE] para obter mais informações."/> + <check_box label="Deve ter informação de pagamento no arquivo" name="limit_payment" tool_tip="Propriedade de acesso restrito a residentes que já cadastraram seus dados de pagamento Consulte o [SUPPORT_SITE] para saber mais."/> + <check_box label="Os proprietários dos lotes podem ser mais restritivos." name="parcel_access_override"/> <check_box label="Permitir conversa de voz" name="voice_chat_check"/> - <button label="?" name="voice_chat_help"/> <check_box label="Permitir Tele-transporte direto" name="allow_direct_teleport"/> - <button label="?" name="allow_direct_teleport_help"/> - <text name="abuse_email_text"> - Endereço de email de Abuso: - </text> - <string name="email_unsupported"> - Funcionalidade não suportada - </string> - <button label="?" name="abuse_email_address_help"/> <button label="Aplicar" name="apply_btn"/> - <button label="Expulsar da propriedade..." name="kick_user_from_estate_btn"/> - <button label="Enviar mensagem à Propriedade" name="message_estate_btn"/> <text name="estate_manager_label"> Gerentes da propriedade: </text> - <button label="?" name="estate_manager_help"/> - <button label="Remover..." name="remove_estate_manager_btn"/> - <button label="Adicionar..." name="add_estate_manager_btn"/> <text name="allow_resident_label"> - Residentes permitidos: + Sempre permitido: </text> - <button label="?" name="allow_resident_help"/> - <button label="Remover..." name="remove_allowed_avatar_btn"/> + <button label="Adicionar..." name="add_estate_manager_btn"/> + <button label="Remover..." name="remove_estate_manager_btn"/> <button label="Adicionar..." name="add_allowed_avatar_btn"/> + <button label="Remover..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - Grupos permitidos: + Grupos sempre permitidos: </text> - <button label="?" name="allow_group_help"/> - <button label="Remover..." name="remove_allowed_group_btn"/> - <button label="Adicionar..." name="add_allowed_group_btn"/> <text name="ban_resident_label"> - Residentes banidos: + Sempre banido: </text> - <button label="?" name="ban_resident_help"/> - <button label="Remover..." name="remove_banned_avatar_btn"/> + <button label="Adicionar..." name="add_allowed_group_btn"/> + <button label="Remover..." name="remove_allowed_group_btn"/> <button label="Adicionar..." name="add_banned_avatar_btn"/> + <button label="Remover..." name="remove_banned_avatar_btn"/> + <button label="Enviar mensagem à Propriedade" name="message_estate_btn"/> + <button label="Expulsar da propriedade..." name="kick_user_from_estate_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_tools_texture.xml b/indra/newview/skins/default/xui/pt/panel_tools_texture.xml index f051432998..5e97eca605 100644 --- a/indra/newview/skins/default/xui/pt/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/pt/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="Relevo (normal)" name="Bumpiness (normal)" value="1"/> <radio_item label="Brilho (especular)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="Repetir bloqueio" name="checkbox_sync_settings" tool_tip="Ajustar os mapas repetidos simultaneamente"/> <texture_picker label="Textura" name="texture control" tool_tip="Selecionar imagem"/> <text name="label alphamode"> Modo alpha diff --git a/indra/newview/skins/default/xui/pt/role_actions.xml b/indra/newview/skins/default/xui/pt/role_actions.xml index 1475df10c1..cc97669be1 100644 --- a/indra/newview/skins/default/xui/pt/role_actions.xml +++ b/indra/newview/skins/default/xui/pt/role_actions.xml @@ -38,7 +38,7 @@ <action description="Sempre permitir 'Editar terreno'" longdescription="Membros em uma função com esta habilidade podem editar terreno em uma parcela pertencente ao grupo, mesmo se estiver desativada em Sobre o terreno > aba Opções." name="land allow edit land" value="23"/> <action description="Sempre permitir 'Voar'" longdescription="Membros em uma função com esta habilidade podem voar sobre uma parcela pertencente ao grupo, mesmo se estiver desativada em Sobre o terreno > aba Opções." name="land allow fly" value="24"/> <action description="Sempre permitir 'Criar objetos'" longdescription="Membros em uma função com esta habilidade podem criar objetos em uma parcela pertencente ao grupo, mesmo se estiver desativada em Sobre o terreno > aba Opções." name="land allow create" value="25"/> - <action description="Sempre permitir 'Criar ponto de referência'" longdescription="Membros em uma função com esta habilidade podem colocar um ponto de referência uma parcela pertencente ao grupo, mesmo se estiver desativada em Sobre o terreno > aba Opções." name="land allow landmark" value="26"/> + <action description="Ignorar um ponto de aterrissagem" longdescription="O membros com um Cargo com esta Habilidade pode se teleportar direto para um lote de propriedade aberta, mesmo que um ponto de aterrissagem tenha sido definido em Sobre terrenos > guia Opções." name="land allow direct teleport" value="26"/> <action description="Permitir 'Colocar casa aqui' no terreno do grupo" longdescription="Membros exercendo cargos com esta função podem selecionar no menu Mundo > Marcos > Definir como casa em lotes doados ao grupo." name="land allow set home" value="28"/> <action description="Permitir a 'Organização de eventos' que usam terrenos do grupo" longdescription="Membros que exercem cargos com esta função podem usar terrenos do grupo para eventos que estão organizando." name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml index 6cae93e2ea..9e24296edd 100644 --- a/indra/newview/skins/default/xui/pt/strings.xml +++ b/indra/newview/skins/default/xui/pt/strings.xml @@ -235,7 +235,8 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para Sua conta não está disponÃvel para acesso até [TIME], horário do PacÃfico nos EUA (GMT-08). </string> <string name="LoginFailedAccountDisabled"> - Não é possÃvel concluir a solicitação neste momento. Para obter mais ajuda, conte o suporte em http://secondlife.com/support. Caso você não possa mudar sua senha, ligue para (866) 476-9763. + Não é possÃvel concluir a solicitação neste momento. +Entre em contato com o suporte do Second Life para obter ajuda em http://support.secondlife.com. </string> <string name="LoginFailedTransformError"> Dados discrepantes detectados durante o login. Contate support@secondlife.com. @@ -653,6 +654,19 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para <string name="AssetErrorUnknownStatus"> Status desconhecido </string> + <string name="AssetUploadServerUnreacheble"> + Serviço não disponÃvel. + </string> + <string name="AssetUploadServerDifficulties"> + O servidor está enfrentando dificuldades inesperadas. + </string> + <string name="AssetUploadServerUnavaliable"> + Serviço não disponÃvel ou o tempo final para upload foi atingido. + </string> + <string name="AssetUploadRequestInvalid"> + Erro na solicitação de upload. Acesso +http://secondlife.com/support para ajuda ao resolver este problema. + </string> <string name="texture"> textura </string> @@ -2138,10 +2152,19 @@ Se você continuar a receber essa mensagem, entre em contato com o suporte do Se todas as propriedades que você gerencia para [OWNER] </string> <string name="RegionInfoAllowedResidents"> - Residentes autorizados: ([ALLOWEDAGENTS], max [MAXACCESS]) + Sempre permitido: ([ALLOWEDAGENTS], máx [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Grupos permitidos: ([ALLOWEDGROUPS], max [MAXACCESS]) + Grupos sempre permitidos: ([ALLOWEDGROUPS], máx [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + Grupos banidos: ([BANNEDAGENTS], máx [MAXBANNED]) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + Sempre permitido + </string> + <string name="RegionInfoListTypeBannedAgents"> + Sempre banido </string> <string name="ScriptLimitsParcelScriptMemory"> Memória de scripts no lote 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 7c8faa8ede..50402633f2 100644 --- a/indra/newview/skins/default/xui/ru/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ru/floater_about_land.xml @@ -430,13 +430,10 @@ <panel.string name="estate_override"> ЧаÑÑ‚ÑŒ Ñтих параметров уÑтановлена на уровне Ð·ÐµÐ¼Ð»ÐµÐ²Ð»Ð°Ð´ÐµÐ½Ð¸Ñ </panel.string> - <check_box label="Разрешить публичный доÑтуп (ÑнÑтие флажка приведет к Ñозданию линий запрета)" name="public_access"/> - <text name="Only Allow"> - Разрешить доÑтуп только таким жителÑм: - </text> - <check_box label="ЗарегиÑтрирована Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± оплате [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Ð”Ð»Ñ Ð´Ð¾Ñтупа к Ñтому учаÑтку у Ð¶Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть зарегиÑтрирована Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± оплате. Более Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ: [SUPPORT_SITE]."/> - <check_box label="18 лет и Ñтарше [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="ДоÑтуп к Ñтому учаÑтку имеют только жители 18 лет и Ñтарше. Более Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ: [SUPPORT_SITE]."/> - <check_box label="Разрешить доÑтуп группе: [GROUP]" name="GroupCheck" tool_tip="Группа уÑтанавливаетÑÑ Ð½Ð° оÑновной вкладке."/> + <check_box label="ДоÑтуп открыт Ð´Ð»Ñ Ð²Ñех (При ÑнÑÑ‚Ð¸Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñоздана запиÑÑŒ в Ñтроке запрета)" name="public_access"/> + <check_box label="Должен быть 18 и Ñтарше [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="ДоÑтуп к Ñтому учаÑтку имеют только жители 18 лет и Ñтарше. Более Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ: [SUPPORT_SITE]."/> + <check_box label="Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ платежах должна быть в файле [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Ð”Ð»Ñ Ð´Ð¾Ñтупа к Ñтому учаÑтку у Ð¶Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть зарегиÑтрирована Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± оплате. Более Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ: [SUPPORT_SITE]."/> + <check_box label="Разрешить группе [GROUP] без вÑÑких ограничений" name="GroupCheck" tool_tip="Группа уÑтанавливаетÑÑ Ð½Ð° оÑновной вкладке."/> <check_box label="Продать доÑтуп:" name="PassCheck" tool_tip="Разрешить временный доÑтуп к учаÑтку."/> <combo_box name="pass_combo"> <combo_box.item label="Ð’Ñе" name="Anyone"/> @@ -444,9 +441,12 @@ </combo_box> <spinner label="Цена в L$:" name="PriceSpin"/> <spinner label="ЧаÑÑ‹ доÑтупа:" name="HoursSpin"/> + <text name="OwnerLimited"> + (Владелец ÑобÑтвенноÑти может ограничить Ñтот выбор) + </text> <panel name="Allowed_layout_panel"> <text label="Ð’Ñегда разрешено" name="AllowedText"> - Допущенные жители ([COUNT], макÑ. [MAX]) + Ð’Ñегда разрешено ([COUNT], макÑ. [MAX]) </text> <name_list name="AccessList" tool_tip="([LISTED] в ÑпиÑке, [MAX] макÑимум)"/> <button label="Добавить" name="add_allowed"/> @@ -454,7 +454,7 @@ </panel> <panel name="Banned_layout_panel"> <text label="Бан" name="BanCheck"> - Забаненные жители ([COUNT], макÑ. [MAX]) + Ð’Ñегда заблокировано ([COUNT], макÑ. [MAX]) </text> <name_list name="BannedList" tool_tip="([LISTED] в ÑпиÑке, [MAX] макÑимум)"/> <button label="Добавить" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/ru/floater_avatar_picker.xml b/indra/newview/skins/default/xui/ru/floater_avatar_picker.xml index edcc35d2b9..e0408a7bbc 100644 --- a/indra/newview/skins/default/xui/ru/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/ru/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> ТекÑÑ‚ «[TEXT]» не найден </floater.string> + <floater.string name="not_found_text"> + Житель не найден. + </floater.string> <floater.string name="no_one_near"> Ð Ñдом никого нет </floater.string> diff --git a/indra/newview/skins/default/xui/ru/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/ru/floater_avatar_render_settings.xml index 9c0c3196aa..0abb267ad0 100644 --- a/indra/newview/skins/default/xui/ru/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/ru/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="ИмÑ" name="name"/> <name_list.columns label="ÐаÑтройка отриÑовки" name="setting"/> + <name_list.columns label="Дата добавлена" name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml index 40d96bb331..ce6b89cb82 100644 --- a/indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="Ð’Ñе" label_selected="Ð’Ñе" name="All"/> <button label="Ðет" label_selected="Ðет" name="None"/> <check_box label="Ð’Ñегда показывать папки" name="check_show_empty"/> + <check_box label="Создано мной" name="check_created_by_me"/> + <check_box label="Создано другими" name="check_created_by_others"/> <check_box label="С момента выхода" name="check_since_logoff"/> <text name="- OR -"> - ИЛИ - diff --git a/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml index debefd5f4a..e8f24ea810 100644 --- a/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="Ðаборы ÑвÑзей Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка пути"> +<floater name="floater_pathfinding_linksets" title="ОБЪЕКТЫ РЕГИОÐÐ"> <floater.string name="messaging_get_inprogress"> Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð² ÑвÑзей Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка пути... </floater.string> @@ -16,7 +16,7 @@ Ðет наборов ÑвÑзей Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка пути. </floater.string> <floater.string name="messaging_complete_available"> - Выбрано наборов ÑвÑзей: [NUM_SELECTED] из [NUM_TOTAL]. + Выбрано [NUM_SELECTED] из [NUM_TOTAL]. </floater.string> <floater.string name="messaging_not_enabled"> Ð’ Ñтом регионе не разрешен поиÑк пути. @@ -118,7 +118,7 @@ <scroll_list.columns label="Скриптовые" name="scripted"/> <scroll_list.columns label="ВоздейÑтвие" name="land_impact"/> <scroll_list.columns label="РаÑÑтоÑние" name="dist_from_you"/> - <scroll_list.columns label="ИÑпользование набора ÑвÑзей" name="linkset_use"/> + <scroll_list.columns label="ИÑпользование поиÑка пути" name="linkset_use"/> <scroll_list.columns label="A %" name="a_percent"/> <scroll_list.columns label="B %" name="b_percent"/> <scroll_list.columns label="C %" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - ДейÑÑ‚Ð²Ð¸Ñ Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼Ð¸ наборами ÑвÑзей (еÑли атрибут удалÑетÑÑ Ð¸Ð· мира, его атрибуты могут быть утрачены): + ДейÑÑ‚Ð²Ð¸Ñ Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ </text> <check_box label="Показать метку" name="show_beacon"/> <button label="ВзÑÑ‚ÑŒ" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - Измените атрибуты выбранных наборов ÑвÑзей и нажмите кнопку, чтобы применить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + Изменить параметры поиÑка пути </text> <text name="walkability_coefficients_label"> ПроходимоÑÑ‚ÑŒ: diff --git a/indra/newview/skins/default/xui/ru/floater_tos.xml b/indra/newview/skins/default/xui/ru/floater_tos.xml index 690affb491..4c53fc9038 100644 --- a/indra/newview/skins/default/xui/ru/floater_tos.xml +++ b/indra/newview/skins/default/xui/ru/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="Продолжить" label_selected="Продолжить" name="Continue"/> - <button label="Отмена" label_selected="Отмена" name="Cancel"/> - <check_box label="Я принимаю уÑÐ»Ð¾Ð²Ð¸Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкого ÑÐ¾Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Ð¸ Политики конфиденциальноÑти" name="agree_chk"/> <text name="tos_heading"> - Внимательно прочитайте ПользовательÑкое Ñоглашение и Политику конфиденциальноÑти. Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в [SECOND_LIFE] вы должны ÑоглаÑитьÑÑ Ñ ÑƒÑловиÑми ÑоглашениÑ. + Прочитайте уÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ конфиденциальноÑти ПользовательÑкого ÑÐ¾Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Second Life, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ð¾Ñ€Ñдок Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñпоров и отказ от любого Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð°ÑÑа или группы Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð½Ð¾Ð³Ð»Ð°Ñий. Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в [SECOND_LIFE] вы должны ÑоглаÑитьÑÑ Ñ ÑƒÑловиÑми ÑоглашениÑ. </text> <text name="external_tos_required"> Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¹Ð´Ð¸Ñ‚Ðµ на Ñайт https://my.secondlife.com, войдите и примите УÑÐ»Ð¾Ð²Ð¸Ñ Ð¾Ð±ÑлуживаниÑ. СпаÑибо! </text> + <check_box label="Я прочитал и ÑоглаÑен Ñ" name="agree_chk"/> + <text name="agree_list"> + уÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ конфиденциальноÑти ПользовательÑкого ÑоглашениÑ, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ разрешению разноглаÑий. + </text> + <button label="Продолжить" label_selected="Продолжить" name="Continue"/> + <button label="Отмена" label_selected="Отмена" name="Cancel"/> </floater> 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 2d62e38da2..66c48e1fb6 100644 --- a/indra/newview/skins/default/xui/ru/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/ru/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="По умолчанию" name="RenderNormally"/> <menu_item_check label="Ð’Ñегда" name="AlwaysRenderFully"/> <menu_item_check label="Ðикогда" name="DoNotRender"/> + <menu_item_call label="ИÑключениÑ..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Блокировать владельца учаÑтка" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml b/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml index 049001e8c3..dbe8ed2910 100644 --- a/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="Открыть профиль" name="Show Profile"/> <menu_item_call label="Отправить Ñообщение..." name="Send IM"/> <menu_item_call label="Ð—Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»ÐµÐ¿Ð¾Ñ€Ñ‚Ð°Ñ†Ð¸Ð¸" name="Request Teleport"/> <menu_item_call label="Добавить в друзьÑ..." name="Add Friend"/> <menu_item_call label="Удалить из друзей..." name="Remove Friend"/> -</menu> + <context_menu label="Параметры модератора" name="Moderator Options"> + <menu_item_check label="Разрешить текÑтовый чат" name="AllowTextChat"/> + <menu_item_call label="Заглушить Ñтого учаÑтника" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="Позволить говорить Ñтому учаÑтнику" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="Заблокировать учаÑтника" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_avatar_other.xml b/indra/newview/skins/default/xui/ru/menu_avatar_other.xml index af59b2742c..991aaa2bd5 100644 --- a/indra/newview/skins/default/xui/ru/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/ru/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="По умолчанию" name="RenderNormally"/> <menu_item_check label="Ð’Ñегда" name="AlwaysRenderFully"/> <menu_item_check label="Ðикогда" name="DoNotRender"/> + <menu_item_call label="ИÑключениÑ..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Блокировать владельца учаÑтка" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_inventory.xml b/indra/newview/skins/default/xui/ru/menu_inventory.xml index 0097d7e301..3404ae29a3 100644 --- a/indra/newview/skins/default/xui/ru/menu_inventory.xml +++ b/indra/newview/skins/default/xui/ru/menu_inventory.xml @@ -75,10 +75,12 @@ <menu_item_call label="СвойÑтва" name="Properties"/> <menu_item_call label="Переименовать" name="Rename"/> <menu_item_call label="Копировать UUID актива" name="Copy Asset UUID"/> + <menu_item_call label="Показать на главной панели" name="Show in Main Panel"/> <menu_item_call label="Вырезать" name="Cut"/> <menu_item_call label="Копировать" name="Copy"/> <menu_item_call label="Ð’Ñтавить" name="Paste"/> <menu_item_call label="Ð’Ñтавить как ÑÑылку" name="Paste As Link"/> + <menu_item_call label="Заменить ÑÑылки" name="Replace Links"/> <menu_item_call label="Удалить" name="Delete"/> <menu_item_call label="Удалить ÑиÑтемную папку" name="Delete System Folder"/> <menu_item_call label="Ðачать конференцию" name="Conference Chat Folder"/> 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 967374f8f5..6765408989 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 @@ -13,5 +13,6 @@ <menu_item_call label="ПоделитьÑÑ" name="Share"/> <menu_item_call label="Ðайти оригинал" name="Find Original"/> <menu_item_call label="Ðайти вÑе ÑÑылки" name="Find All Links"/> + <menu_item_call label="Заменить ÑÑылки" name="Replace Links"/> <menu_item_call label="ОчиÑтить корзину" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_login.xml b/indra/newview/skins/default/xui/ru/menu_login.xml index 8a086e5c16..c15d99f2f1 100644 --- a/indra/newview/skins/default/xui/ru/menu_login.xml +++ b/indra/newview/skins/default/xui/ru/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="Я" name="File"> <menu_item_call label="ÐаÑтройки..." name="Preferences..."/> + <menu_item_call label="Закрыть окно" name="Close Window"/> <menu_item_check label="Выбор Ñетки" name="Show Grid Picker"/> <menu_item_call label="Выход из [APP_NAME]" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/ru/menu_viewer.xml b/indra/newview/skins/default/xui/ru/menu_viewer.xml index 309253213c..8a13197657 100644 --- a/indra/newview/skins/default/xui/ru/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ru/menu_viewer.xml @@ -119,7 +119,7 @@ <menu_item_call label="Включить Ñледующую чаÑÑ‚ÑŒ или лицо" name="Include Next Part or Face"/> <menu_item_call label="Включить предыдущую чаÑÑ‚ÑŒ или лицо" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="Ðаборы ÑвÑзей..." name="pathfinding_linkset_menu_item"/> + <menu_item_call label="Объекты региона" name="pathfinding_linkset_menu_item"/> <menu_item_call label="Ð¤Ð¾ÐºÑƒÑ Ð½Ð° выбранном" name="Focus on Selection"/> <menu_item_call label="Приблизить к выбранному" name="Zoom to Selection"/> <menu label="Объект" name="Object"> @@ -139,7 +139,7 @@ <menu_item_call label="ОÑтановить Ñкрипты" name="Set Scripts to Not Running"/> </menu> <menu label="ПоиÑк пути" name="Pathfinding"> - <menu_item_call label="Ðаборы ÑвÑзей..." name="pathfinding_linksets_menu_item"/> + <menu_item_call label="Объекты региона" name="pathfinding_linksets_menu_item"/> <menu_item_call label="ПерÑонажи..." name="pathfinding_characters_menu_item"/> <menu_item_call label="ПроÑмотр/теÑтирование..." name="pathfinding_console_menu_item"/> </menu> diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml index 6d49d4e06e..1350e6cf8b 100644 --- a/indra/newview/skins/default/xui/ru/notifications.xml +++ b/indra/newview/skins/default/xui/ru/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> Больше не показывать </global> + <global name="skipnexttimesessiononly"> + Больше не показывать +(в текущей ÑеÑÑии) + </global> <global name="alwayschoose"> Ð’Ñегда выбирать Ñту опцию </global> @@ -343,7 +347,7 @@ <usetemplate name="okcancelbuttons" notext="Отмена" yestext="Ð’Ñтупить"/> </notification> <notification name="JoinGroupNoCost"> - Ð’Ñ‹ вÑтупаете в группу [NAME]. + Ð’Ñ‹ вÑтупаете в группу <nolink>[NAME]</nolink>. Продолжить? <usetemplate name="okcancelbuttons" notext="Отмена" yestext="Ð’Ñтупить"/> </notification> @@ -357,6 +361,39 @@ ПриглаÑите учаÑтников в ближайшие 48 чаÑов. <usetemplate canceltext="Отмена" name="okcancelbuttons" notext="Отмена" yestext="Создать группу за L$100"/> </notification> + <notification name="JoinGroupInaccessible"> + Вход в Ñту группу закрыт Ð´Ð»Ñ Ð²Ð°Ñ. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupError"> + Ошибка при обработке запроÑа о членÑтве в группе. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupErrorReason"> + Ðевозможно войти в группу: [reason] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupTrialUser"> + Извините, теÑтовые пользователи не могут вÑтупить группы. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupMaxGroups"> + Ð’Ñ‹ не можете вÑтупить в '<nolink>[group_name]</nolink>': Ð’Ñ‹ уже ÑвлÑетеÑÑŒ [group_count] членом группы, макÑ. количеÑтво членов может быть только [max_groups] + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + Ð’Ñ‹ не можете вÑтупить в '<nolink>[group_name]</nolink>': +Приём в группу закрыт. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupSuccess"> + Ð’Ñ‹ включены в группу. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + Ðевозможно передать необходимой Ñуммы L$ [membership_fee] платы за членÑтво. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="LandBuyPass"> За L$[COST] вы можете находитьÑÑ Ð½Ð° Ñтой земле («[PARCEL_NAME]») в течение [TIME] чаÑов. Купить пропуÑк? <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> @@ -378,9 +415,9 @@ <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - Ð’Ñ‹ дейÑтвительно хотите вернуть вÑе объекты, переданные группе «[NAME]» на Ñтом земельном учаÑтке, обратно в инвентарь их прежних владельцев? + Ð’Ñ‹ дейÑтвительно хотите вернуть вÑе объекты, находÑщиеÑÑ Ð² ÑовмеÑтном пользовании Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð¹ '<nolink>[NAME]</nolink>' на Ñтом земельном учаÑтке, обратно в инвентарь их прежних владельцев? -*ПРЕДУПРЕЖДЕÐИЕ* Ð’Ñе непереноÑимые объекты, предоÑтавленные Ñтой группе, будут удалены! +*ПРЕДУПРЕЖДЕÐИЕ* Ð’Ñе именные объекты, переданные Ñтой группе, будут удалены! Объекты: [N] <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> @@ -424,7 +461,7 @@ <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - Вернуть вÑе объекты на Ñтом земельном учаÑтке, ÐЕ переданные группе «[NAME]», их владельцам? + Вернуть объекты на Ñтом земельном учаÑтке, которые ÐЕ находÑÑ‚ÑÑ Ð² ÑовмеÑтном пользовании Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð¹ <nolink>[NAME]</nolink> их владельцам? Объекты: [N] <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> @@ -472,7 +509,7 @@ Ошибка при передаче Ñнимка отчета по Ñледующей причине: [REASON] </notification> <notification name="MustAgreeToLogIn"> - Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в [SECOND_LIFE] вы должны принÑÑ‚ÑŒ уÑÐ»Ð¾Ð²Ð¸Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑкого ÑоглашениÑ. + Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в [SECOND_LIFE] вы должны принÑÑ‚ÑŒ уÑÐ»Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð´ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ñти ПользовательÑкого ÑÐ¾Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Second Life. </notification> <notification name="CouldNotPutOnOutfit"> Ðе удалоÑÑŒ надеть коÑтюм. @@ -725,7 +762,7 @@ <usetemplate name="okcancelbuttons" notext="Отмена" yestext="Выкинуть"/> </notification> <notification name="EjectAvatarFromGroup"> - Ð’Ñ‹ иÑключили аватар [AVATAR_NAME] из группы [GROUP_NAME] + Ð’Ñ‹ иÑключили аватар [AVATAR_NAME] из группы <nolink>[GROUP_NAME]</nolink> </notification> <notification name="AcquireErrorTooManyObjects"> ОШИБКРПРИОБРЕТЕÐИЯ: выбрано Ñлишком много объектов. @@ -1323,18 +1360,18 @@ Выберите меньшую облаÑÑ‚ÑŒ и повторите попытку. </notification> <notification name="DeedLandToGroup"> - ПоÑле передачи Ñтого учаÑтка группе потребуетÑÑ Ð´Ð¾Ñтаточное количеÑтво финанÑов Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ данной земли. -СтоимоÑÑ‚ÑŒ покупки земли не возвращаетÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ñƒ. ЕÑли переданный учаÑток продаетÑÑ, выручка за нее равномерно раÑпределÑетÑÑ Ð¼ÐµÐ¶Ð´Ñƒ учаÑтниками группы. + ПоÑле передачи Ñтого учаÑтка группе потребуетÑÑ Ð´Ð¾Ñтаточное количеÑтво финанÑов Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ½Ð¸Ñ Ð¸ ухода за Ñтой землей. +Сумма покупки земли не возмещаетÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ñƒ. При продаже переданного учаÑтка её Ð²Ñ‹Ñ€ÑƒÑ‡ÐµÐ½Ð½Ð°Ñ Ñумма равномерно раÑпределÑетÑÑ Ð¼ÐµÐ¶Ð´Ñƒ учаÑтниками группы. -Передать Ñти [AREA] м² земли группе «[GROUP_NAME]»? +Передать Ñти [AREA] м² земли группе '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> </notification> <notification name="DeedLandToGroupWithContribution"> - ПоÑле передачи Ñтого учаÑтка группе потребуетÑÑ Ð´Ð¾Ñтаточное количеÑтво финанÑов Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ данной земли. -Передача будет включать одновременный земельный Ð²Ð·Ð½Ð¾Ñ Ð² группу от Ð¶Ð¸Ñ‚ÐµÐ»Ñ Â«[NAME]». -СтоимоÑÑ‚ÑŒ покупки земли не возвращаетÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ñƒ. ЕÑли переданный учаÑток продаетÑÑ, выручка за нее равномерно раÑпределÑетÑÑ Ð¼ÐµÐ¶Ð´Ñƒ учаÑтниками группы. + ПоÑле передачи Ñтого учаÑтка группе потребуетÑÑ Ð´Ð¾Ñтаточное количеÑтво финанÑов Ð´Ð»Ñ Ð²Ð»Ð°Ð´ÐµÐ½Ð¸Ñ Ð¸ ухода за Ñтой землей. +Передача будет включать одновременный земельный Ð²Ð·Ð½Ð¾Ñ Ð² группу от '[NAME]'. +Сумма покупки земли не возмещаетÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ñƒ. При продаже переданного учаÑтка её Ð²Ñ‹Ñ€ÑƒÑ‡ÐµÐ½Ð½Ð°Ñ Ñумма равномерно раÑпределÑетÑÑ Ð¼ÐµÐ¶Ð´Ñƒ учаÑтниками группы. -Передать Ñти [AREA] м² земли группе «[GROUP_NAME]»? +Передать Ñти [AREA] м² земли группе '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> </notification> <notification name="DisplaySetToSafe"> @@ -1747,7 +1784,7 @@ http://secondlife.com/download. <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> </notification> <notification name="GroupDepart"> - Ð’Ñ‹ покинули группу «[group_name]». + Ð’Ñ‹ вышли из группы '<nolink>[group_name]</nolink>'. </notification> <notification name="OwnerCannotLeaveGroup"> Ðевозможно покинуть группу. Ð’Ñ‹ не можете покинуть группу, так как вы ее поÑледний владелец. Сначала назначьте владельцем другого учаÑтника. @@ -2018,6 +2055,10 @@ http://secondlife.com/download. Ð’Ñ‹ дейÑтвительно хотите изменить Ñоглашение по землевладению? <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> </notification> + <notification name="EstateParcelAccessOverride"> + При ÑнÑтии Ñтой опции вы можете удалить ограничениÑ, которые владельцы учаÑтка добавили Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð²Ð¾ÐºÐ°Ñ†Ð¸Ð¾Ð½Ð½Ñ‹Ñ… Ñообщений, ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð´ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð¾Ñти и защиты неÑовершеннолетных жителей от материала Ð´Ð»Ñ Ð²Ð·Ñ€Ð¾Ñлых. При необходимоÑти обÑудите Ñо Ñвоими владельцами учаÑтков. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="RegionEntryAccessBlocked"> Ð’Ñ‹ пытаетеÑÑŒ поÑетить регион, контент в котором не ÑоответÑтвует вашим наÑтройкам. Попробуйте изменить наÑтройки в меню «Я > ÐаÑтройки > Общие». <usetemplate name="okbutton" yestext="OK"/> @@ -2357,7 +2398,17 @@ http://secondlife.com/download. </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Подтверждать перед удалением предметов" name="okcancelignore" notext="Отмена" yestext="OK"/> + <form name="form"> + <ignore name="ignore" text="Подтвердите перед удалением предметов"/> + <button name="Yes" text="OK"/> + <button name="No" text="Отмена"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + Ваш инвентарь в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±Ñ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°ÐµÑ‚ÑÑ Ð¸ не вÑе предметы, которые вы хотите удалить, + +доÑтупны Ð´Ð»Ñ Ð¾Ð±Ð·Ð¾Ñ€Ð°. Ð’Ñ‹ дейÑтвительно хотите удалить Ñто? + <usetemplate ignoretext="Подтвердите перед удалением обработанных предметов" name="okcancelignore" notext="Отмена" yestext="OK"/> </notification> <notification name="ConfirmUnlink"> Ðто большое выделение Ñ Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼Ð¸ ÑвÑзей. ЕÑли разъединить его, повторное Ñоединение может отказатьÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼. Ð’ качеÑтве меры предоÑторожноÑти попробуйте Ñкопировать наборы ÑвÑзей в инвентарь. @@ -2435,13 +2486,17 @@ http://secondlife.com/download. Папка «[FOLDERNAME]» ÑвлÑетÑÑ ÑиÑтемной. Удаление ÑиÑтемных папок может привеÑти к неÑтабильноÑти. ДейÑтвительно удалить Ñту папку? <usetemplate ignoretext="Подтверждать перед удалением ÑиÑтемной папки" name="okcancelignore" notext="Отмена" yestext="OK"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] предмет(Ñ‹) будут удалены навÑегда. Ð’Ñ‹ дейÑтвительно хотите удалить Ñодержимое корзины без возможноÑти воÑÑтановлениÑ? + <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> + </notification> <notification name="ConfirmEmptyTrash"> - Ð’Ñ‹ дейÑтвительно хотите необратимо удалить Ñодержимое корзины? - <usetemplate ignoretext="Подтверждать перед опорожнением корзины инвентарÑ" name="okcancelignore" notext="Отмена" yestext="OK"/> + Предметы [COUNT] будут удалены навÑегда. Ð’Ñ‹ дейÑтвительно хотите удалить Ñодержимое корзины без возможноÑти воÑÑтановлениÑ? + <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> </notification> <notification name="TrashIsFull"> Ваша корзина переполнена. Ðто может вызвать проблемы при входе. - <usetemplate name="okcancelbuttons" notext="Я очищу корзину позже" yestext="ОчиÑтить корзину ÑейчаÑ"/> + <usetemplate name="okcancelbuttons" notext="Я очищу корзину позже" yestext="Проверьте папку Корзина"/> </notification> <notification name="ConfirmClearBrowserCache"> Ð’Ñ‹ дейÑтвительно хотите удалить журнал Ñвоих перемещений, веб-Ñтраниц и поиÑка? @@ -2570,6 +2625,9 @@ http://secondlife.com/download. <notification name="AddSelfFriend"> Ð’Ñ‹ лучше вÑех, но Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ в Ð´Ñ€ÑƒÐ·ÑŒÑ ÑÐµÐ±Ñ Ñамого. </notification> + <notification name="AddSelfRenderExceptions"> + Ð’Ñ‹ не можете внеÑти ÑÐµÐ±Ñ Ð² лиÑÑ‚ иÑключений визуализации. + </notification> <notification name="UploadingAuctionSnapshot"> Передача Ñнимков мира и веб-Ñайта... (Занимает около 5 мин.) @@ -2764,9 +2822,9 @@ http://secondlife.com/download. Принадлежащие жителю «[NAME]» объекты на выбранном земельном учаÑтке возвращены владельцу. </notification> <notification name="GroupObjectsReturned"> - Переданные группе [GROUPNAME] объекты на выбранном земельном учаÑтке возвращены в инвентарь владельцев. -ПереноÑимые переданные объекты возвращены прежним владельцам. -ÐепереноÑимые объекты, переданные группе, удалены. + Объекты на выбранном земельном учаÑтке, находÑщиеÑÑ Ð² ÑовмеÑтном пользовании Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð¹ <nolink>[GROUPNAME]</nolink> возвращены в инвентарь владельцов. +Переданные именные объекты возвращены прежним владельцам. +Ðеименные объекты, переданные группе, удалены. </notification> <notification name="UnOwnedObjectsReturned"> Объекты на выбранном земельном учаÑтке, ÐЕ принадлежащие вам, возвращены владельцам. @@ -3151,7 +3209,7 @@ http://secondlife.com/download. </form> </notification> <notification name="ScriptDialogGroup"> - [GROUPNAME] – «<nolink>[TITLE]</nolink>» + <nolink>[GROUPNAME]</nolink>'s „<nolink>[TITLE]</nolink>' [MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="Заблокировать"/> @@ -3198,7 +3256,7 @@ http://secondlife.com/download. [NAME] предложил(а) инвентарь и был(а) автоматичеÑки разблокирован(а). </notification> <notification name="VoiceInviteGroup"> - [NAME] вÑтупил(а) в голоÑовой чат Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð¹ [GROUP]. + [NAME] вÑтупил(а) в голоÑовой чат Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¾Ð¹ [GROUP]. Ðажмите кнопку «ПринÑть» Ð´Ð»Ñ Ð¿Ñ€Ð¸ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ðº чату или «Отклонить» Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ°Ð·Ð° от приглашениÑ. Ðажмите «Заблокировать» Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ Ñтого абонента. <form name="form"> <button name="Accept" text="ПринÑÑ‚ÑŒ"/> @@ -3307,6 +3365,9 @@ http://secondlife.com/download. <notification name="AppearanceToXMLFailed"> Ðе удалоÑÑŒ Ñохранить внешноÑÑ‚ÑŒ в XML. </notification> + <notification name="SnapshotToComputerFailed"> + Ðе удалоÑÑŒ Ñохранить моментальный Ñнимок на [PATH]: ДиÑк переполнен. Ðеобходимо [NEED_MEMORY] Кбайт, но доÑтупно только [FREE_MEMORY] Кбайт. + </notification> <notification name="PresetNotSaved"> Ошибка при Ñохранении преÑета [NAME]. </notification> @@ -3344,9 +3405,14 @@ http://secondlife.com/download. <notification name="ShareNotification"> Выберите жителей, чтобы поделитьÑÑ Ñ Ð½Ð¸Ð¼Ð¸. </notification> + <notification name="MeshUploadErrorDetails"> + Ðе удалоÑÑŒ передать [LABEL]: [MESSAGE] +[DETAILS]Ñм. SecondLife.log Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подробной информации + </notification> <notification name="MeshUploadError"> - Ðе удалоÑÑŒ передать [LABEL]: [MESSAGE] [IDENTIFIER] -[DETAILS]ПодробноÑти Ñм. в файле SecondLife.log + Ðе удалоÑÑŒ передать [LABEL]: [MESSAGE] + +Ñм. SecondLife.log Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подробной информации </notification> <notification name="MeshUploadPermError"> Ошибка при запроÑе разрешений на передачу меша. diff --git a/indra/newview/skins/default/xui/ru/panel_main_inventory.xml b/indra/newview/skins/default/xui/ru/panel_main_inventory.xml index 93deba6d6b..d83bb9b569 100644 --- a/indra/newview/skins/default/xui/ru/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/ru/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> Вещи: </text> - <filter_editor label="Фильтр Ð´Ð»Ñ Ð¸Ð½Ð²ÐµÐ½Ñ‚Ð°Ñ€Ñ" name="inventory search editor"/> + <filter_editor label="Введите текÑÑ‚ поиÑка" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="Ðазвание" name="Name" value="search_by_name"/> + <item label="Создатель" name="Creator" value="search_by_creator"/> + <item label="ОпиÑание" name="Description" value="search_by_description"/> + <item label="УУИд" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="МОЙ ИÐВЕÐТÐРЬ" name="All Items"/> <recent_inventory_panel label="ÐЕДÐÐ’ÐИЕ" name="Recent Items"/> + <inventory_panel label="ÐОСИМОЕ" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml index 03295084dc..dd0cf8e172 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml @@ -6,7 +6,7 @@ <text name="Cache:"> КÑш: </text> - <spinner label="Размер кÑша (256 - 9984 МБ)" name="cachesizespinner"/> + <spinner label="Размер кÑша (256 - 9984 Мбайт)" name="cachesizespinner"/> <text name="text_box5"> МБ </text> 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 4d651c2544..c2fcac8840 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="ТекÑтовый чат" name="chat"> + <check_box initial_value="true" label="Управление автоматичеÑким завершением находитÑÑ Ñ€Ñдом Ñ Ñ‡Ð°Ñ‚Ð¾Ð¼" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="ВоÑпроизводить анимацию ввода текÑта при общении" name="play_typing_animation"/> <check_box label="ОтправлÑÑ‚ÑŒ мне ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ почте, когда Ð¼ÐµÐ½Ñ Ð½ÐµÑ‚ в Ñети" name="send_im_to_email"/> 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 bcfb974fcb..be93edf730 100644 --- a/indra/newview/skins/default/xui/ru/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/ru/panel_region_estate.xml @@ -15,38 +15,36 @@ <text name="estate_owner"> (неизвеÑтно) </text> - <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"/> - <text name="Only Allow"> - Разрешить доÑтуп только таким жителÑм: - </text> - <check_box label="ЗарегиÑтрирована Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± оплате" name="limit_payment" tool_tip="Ð”Ð»Ñ Ð´Ð¾Ñтупа к Ñтому землевладению у Ð¶Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть зарегиÑтрирована Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± оплате. Более Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ: [SUPPORT_SITE]."/> - <check_box label="18 лет и Ñтарше" name="limit_age_verified" tool_tip="ДоÑтуп к Ñтому землевладению имеют только жители 18 лет и Ñтарше. Более Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ: [SUPPORT_SITE]."/> + <radio_group name="externally_visible_radio"> + <radio_item label="Разрешено только нижеперечиÑленным жителÑм и группам" name="estate_restricted_access"/> + <radio_item label="ДоÑтуп открыт Ð´Ð»Ñ Ð²Ñех" name="estate_public_access"/> + </radio_group> + <check_box label="Должен быть 18 и Ñтарше" name="limit_age_verified" tool_tip="ДоÑтуп к Ñтому землевладению имеют только жители 18 лет и Ñтарше. Более Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ: [SUPPORT_SITE]."/> + <check_box label="Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ платежах должна быть в файле" name="limit_payment" tool_tip="Ð”Ð»Ñ Ð´Ð¾Ñтупа к Ñтому землевладению у Ð¶Ð¸Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть зарегиÑтрирована Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± оплате. Более Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð·Ð´ÐµÑÑŒ: [SUPPORT_SITE]."/> + <check_box label="Владельцы учаÑтков могут принимать более ограничетельные меры" name="parcel_access_override"/> <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="kick_user_from_estate_btn"/> <text name="estate_manager_label"> Менеджеры землевладениÑ: </text> - <button label="Удалить..." name="remove_estate_manager_btn"/> - <button label="Добавить..." name="add_estate_manager_btn"/> <text name="allow_resident_label"> - Допущенные жители: + Разрешено вÑегда: </text> - <button label="Удалить..." name="remove_allowed_avatar_btn"/> + <button label="Добавить..." name="add_estate_manager_btn"/> + <button label="Удалить..." name="remove_estate_manager_btn"/> <button label="Добавить..." name="add_allowed_avatar_btn"/> + <button label="Удалить..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - Допущенные группы: + Группы вÑегда разрешены: </text> - <button label="Удалить..." name="remove_allowed_group_btn"/> - <button label="Добавить..." name="add_allowed_group_btn"/> <text name="ban_resident_label"> - Забаненные жители: + Ð’Ñегда заблокированы: </text> - <button label="Удалить..." name="remove_banned_avatar_btn"/> + <button label="Добавить..." name="add_allowed_group_btn"/> + <button label="Удалить..." name="remove_allowed_group_btn"/> <button label="Добавить..." name="add_banned_avatar_btn"/> + <button label="Удалить..." name="remove_banned_avatar_btn"/> + <button label="Сообщение в землевладение..." name="message_estate_btn"/> + <button label="Выкинуть Ð¶Ð¸Ñ‚ÐµÐ»Ñ Ñ Ð·ÐµÐ¼Ð»ÐµÐ²Ð»Ð°Ð´ÐµÐ½Ð¸Ñ..." name="kick_user_from_estate_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml index def12d3cdb..707578cd07 100644 --- a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="ШероховатоÑÑ‚ÑŒ (обычнаÑ)" name="Bumpiness (normal)" value="1"/> <radio_item label="БлеÑк (зеркальный)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="Повтор блокировки" name="checkbox_sync_settings" tool_tip="Одновременно Ñверить вÑе повторы карт"/> <texture_picker label="ТекÑтура" name="texture control" tool_tip="Щелкните Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° изображениÑ"/> <text name="label alphamode"> Ðльфа-режим diff --git a/indra/newview/skins/default/xui/ru/role_actions.xml b/indra/newview/skins/default/xui/ru/role_actions.xml index c29cd6d0f4..02b51f7e1d 100644 --- a/indra/newview/skins/default/xui/ru/role_actions.xml +++ b/indra/newview/skins/default/xui/ru/role_actions.xml @@ -38,7 +38,7 @@ <action description="Ð’Ñегда разрешено изменение ландшафта" longdescription="УчаÑтники роли Ñ Ñтой ÑпоÑобноÑтью могут изменÑÑ‚ÑŒ ландшафт учаÑтка группы, даже еÑли Ñто отключено в окне «О земле» на вкладке «Параметры»." name="land allow edit land" value="23"/> <action description="Ð’Ñегда разрешен полет" longdescription="УчаÑтники роли Ñ Ñтой ÑпоÑобноÑтью могут летать над учаÑтком группы, даже еÑли Ñто отключено в окне «О земле» на вкладке «Параметры»." name="land allow fly" value="24"/> <action description="Ð’Ñегда разрешено Ñоздавать объекты" longdescription="УчаÑтники роли Ñ Ñтой ÑпоÑобноÑтью могут Ñоздавать объекты на учаÑтке группы, даже еÑли Ñто отключено в окне «О земле» на вкладке «Параметры»." name="land allow create" value="25"/> - <action description="Ð’Ñегда разрешено Ñоздавать закладки" longdescription="УчаÑтники роли Ñ Ñтой ÑпоÑобноÑтью могут помеÑтить закладку на учаÑтке группы, даже еÑли Ñто отключено в окне «О земле» на вкладке «Параметры»." name="land allow landmark" value="26"/> + <action description="Игнорировать данные о точке телепортации" longdescription="УчаÑтники роли Ñ Ñтой ÑпоÑобноÑтью могут направить телепорт на учаÑток группы, даже еÑли точка телепортации уÑтановлена в окне «О земле»>вкладки «Параметры»." name="land allow direct teleport" value="26"/> <action description="Разрешено уÑтановить дом на земле группы" longdescription="УчаÑтники роли Ñ Ñ‚Ð°ÐºÐ¾Ð¹ ÑпоÑобноÑтью могут иÑпользовать меню «Мир > Закладки > УÑтановить дом здеÑь» Ð´Ð»Ñ ÑƒÑ‡Ð°Ñтка, переданного Ñтой группе." name="land allow set home" value="28"/> <action description="Разрешена Ð¾Ñ€Ð°Ð³Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñобытий на земле группы" longdescription="УчаÑтники роли Ñ Ñтой ÑпоÑобноÑтью могут выбрать учаÑтки группы в качеÑтве любимого меÑта при организации ÑобытиÑ." name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml index c8ab07bd43..4ebfa9cdcf 100644 --- a/indra/newview/skins/default/xui/ru/strings.xml +++ b/indra/newview/skins/default/xui/ru/strings.xml @@ -261,9 +261,8 @@ support@secondlife.com. [TIME] по тихоокеанÑкому времени. </string> <string name="LoginFailedAccountDisabled"> - Ð’ данное Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¼ не удаетÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ ваш запроÑ. -ОбратитеÑÑŒ за помощью в Ñлужбу поддержки Second Life по адреÑу http://secondlife.com/support. -ЕÑли вам не удаетÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ Ñвой пароль, позвоните по телефону (866) 476-9763. + Ð’ данное Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ð¼ не удаетÑÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ ваш запроÑ. +ОбратитеÑÑŒ за помощью в Ñлужбу поддержки Second Life по адреÑу http://support.secondlife.com. </string> <string name="LoginFailedTransformError"> При входе обнаружена неÑоглаÑованноÑÑ‚ÑŒ данных. @@ -701,6 +700,19 @@ support@secondlife.com. <string name="AssetErrorUnknownStatus"> ÐеизвеÑтный ÑÑ‚Ð°Ñ‚ÑƒÑ </string> + <string name="AssetUploadServerUnreacheble"> + УÑлуги недоÑтупны. + </string> + <string name="AssetUploadServerDifficulties"> + Сервер иÑпытывает неожиданные трудноÑти. + </string> + <string name="AssetUploadServerUnavaliable"> + УÑлуги недоÑтупны или превышение времени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ передаче. + </string> + <string name="AssetUploadRequestInvalid"> + Ошибка при запроÑе на передачу. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰Ð¸ в +решении Ñтой проблемы пройдите по ÑÑылке http://secondlife.com/support. + </string> <string name="texture"> текÑтуру </string> @@ -2195,10 +2207,19 @@ support@secondlife.com. вÑе Ð·ÐµÐ¼Ð»ÐµÐ²Ð»Ð°Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ [OWNER], которыми вы управлÑете </string> <string name="RegionInfoAllowedResidents"> - Допущенные жители: ([ALLOWEDAGENTS], не более [MAXACCESS]) + Разрешено вÑегда: ([ALLOWEDAGENTS], не более [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Допущенные группы: ([ALLOWEDGROUPS], не более [MAXACCESS]) + Группы вÑегда разрешены: ([ALLOWEDGROUPS], не более [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + Ð’Ñегда заблокированы: ([BANNEDAGENTS], не более [MAXBANNED]) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + Разрешено вÑегда + </string> + <string name="RegionInfoListTypeBannedAgents"> + Ð’Ñегда заблокированы </string> <string name="ScriptLimitsParcelScriptMemory"> ПамÑÑ‚ÑŒ под Ñкрипты на учаÑтке diff --git a/indra/newview/skins/default/xui/tr/floater_about_land.xml b/indra/newview/skins/default/xui/tr/floater_about_land.xml index 842fc3a6d8..1f4decb056 100644 --- a/indra/newview/skins/default/xui/tr/floater_about_land.xml +++ b/indra/newview/skins/default/xui/tr/floater_about_land.xml @@ -430,13 +430,10 @@ Sadece büyük parseller aramada görünür. <panel.string name="estate_override"> Bu seçeneklerden biri veya daha fazlası gayrimenkul düzeyinde ayarlanır </panel.string> - <check_box label="Kamusal EriÅŸime Ä°zin Ver (Bunun iÅŸaretinin kaldırılması yasaklama çizgileri oluÅŸturacaktır)" name="public_access"/> - <text name="Only Allow"> - Sadece ÅŸu Sakinlere eriÅŸim izni verin: - </text> - <check_box label="Ödeme bilgileri kayıtlı [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Sakinlerin bu parsele eriÅŸebilmesi için ödeme bilgilerinin kayıtlı olması gerekir. Daha fazla bilgi için [SUPPORT_SITE] adresini ziyaret edin."/> - <check_box label="18 veya üzeri bir yaÅŸta [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Sakinlerin bu parsele eriÅŸebilmesi için 18 veya üzeri bir yaÅŸta olmaları gerekir. Daha fazla bilgi için [SUPPORT_SITE] adresini ziyaret edin."/> - <check_box label="Grup EriÅŸimine Ä°zin Ver: [GROUP]" name="GroupCheck" tool_tip="Genel sekmesinde grup ayarla."/> + <check_box label="Herkes ziyaret edebilir (Bunun iÅŸaretinin kaldırılması yasaklama çizgileri oluÅŸturacaktır)" name="public_access"/> + <check_box label="18 yaşından büyük olmalıdır [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Sakinlerin bu parsele eriÅŸebilmesi için 18 veya üzeri bir yaÅŸta olmaları gerekir. Daha fazla bilgi için [SUPPORT_SITE] adresini ziyaret edin."/> + <check_box label="Dosyadaki ödeme bilgisine sahip olmalıdır [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Sakinlerin bu parsele eriÅŸebilmesi için ödeme bilgilerinin kayıtlı olması gerekir. Daha fazla bilgi için [SUPPORT_SITE] adresini ziyaret edin."/> + <check_box label="[GROUP] grubuna kısıtlama olmadan izin ver" name="GroupCheck" tool_tip="Genel sekmesinde grup ayarla."/> <check_box label="GeçiÅŸ haklr. ÅŸuna sat:" name="PassCheck" tool_tip="Bu parsele geçici eriÅŸim verir"/> <combo_box name="pass_combo"> <combo_box.item label="Herkes" name="Anyone"/> @@ -444,9 +441,12 @@ Sadece büyük parseller aramada görünür. </combo_box> <spinner label="L$ olarak Fiyat:" name="PriceSpin"/> <spinner label="EriÅŸim saatleri:" name="HoursSpin"/> + <text name="OwnerLimited"> + (Gayrimenkul sahibi, bu seçimleri kısıtlamış olabilir) + </text> <panel name="Allowed_layout_panel"> <text label="Her Zaman Ä°zin Ver" name="AllowedText"> - Ä°zin Verilen Sakinler ([COUNT], maks. [MAX]) + Her zaman izin verilen ([COUNT], maks. [MAX]) </text> <name_list name="AccessList" tool_tip="([LISTED] listeli, [MAX] maksimum)"/> <button label="Ekle" name="add_allowed"/> @@ -454,7 +454,7 @@ Sadece büyük parseller aramada görünür. </panel> <panel name="Banned_layout_panel"> <text label="Yasakla" name="BanCheck"> - EngellenmiÅŸ Sakinler ([COUNT], maks. [MAX]) + Her zaman engellenen ([COUNT], maks. [MAX]) </text> <name_list name="BannedList" tool_tip="([LISTED] listeli, [MAX] maksimum)"/> <button label="Ekle" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml b/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml index 99c2aae5a3..144e03d74d 100644 --- a/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> '[TEXT]' bulunamadı </floater.string> + <floater.string name="not_found_text"> + Sakin bulunamadı. + </floater.string> <floater.string name="no_one_near"> Yakında kimse yok </floater.string> diff --git a/indra/newview/skins/default/xui/tr/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/tr/floater_avatar_render_settings.xml index 3f16d73c23..137257a732 100644 --- a/indra/newview/skins/default/xui/tr/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/tr/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="Ad" name="name"/> <name_list.columns label="Ä°ÅŸleme ayarı" name="setting"/> + <name_list.columns label="Ekleme tarihi" name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml index 8ced76cef1..6c04b64275 100644 --- a/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="Tümü" label_selected="Tümü" name="All"/> <button label="Hiçbiri" label_selected="Hiçbiri" name="None"/> <check_box label="Klasörleri her zaman göster" name="check_show_empty"/> + <check_box label="Benim tarafımdan oluÅŸturulan" name="check_created_by_me"/> + <check_box label="BaÅŸkalarının tarafından oluÅŸturulan" name="check_created_by_others"/> <check_box label="Oturum Kapandıktan Beri" name="check_since_logoff"/> <text name="- OR -"> - VEYA - diff --git a/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml index 31be1b7ab1..db01f0afd4 100644 --- a/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="Yol bulma baÄŸlantı kümeleri"> +<floater name="floater_pathfinding_linksets" title="BÖLGE NESNELERÄ°"> <floater.string name="messaging_get_inprogress"> Yol bulma baÄŸlantı kümeleri için sorgulama yapılıyor ... </floater.string> @@ -16,7 +16,7 @@ Yol bulma baÄŸlantı kümeleri yok. </floater.string> <floater.string name="messaging_complete_available"> - Toplam [NUM_TOTAL] baÄŸlantı kümesi içerisinden [NUM_SELECTED] adet seçildi. + [NUM_SELECTED] / [NUM_TOTAL] seçildi. </floater.string> <floater.string name="messaging_not_enabled"> Bu bölgede yol bulma etkin deÄŸil. @@ -118,7 +118,7 @@ <scroll_list.columns label="Komut Dosyalı" name="scripted"/> <scroll_list.columns label="Etki" name="land_impact"/> <scroll_list.columns label="Mesafe" name="dist_from_you"/> - <scroll_list.columns label="BaÄŸlantı kümesi kullanımı" name="linkset_use"/> + <scroll_list.columns label="Yol bulma kullanımı" name="linkset_use"/> <scroll_list.columns label="% A" name="a_percent"/> <scroll_list.columns label="% B" name="b_percent"/> <scroll_list.columns label="% C" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - Seçilen baÄŸlantı kümeleri üzerindeki iÅŸlemler (bir baÄŸlantı kümesi dünyadan çıkarılırsa, özellikleri de kaybolabilir) + Seçilenler üzerindeki eylemler </text> <check_box label="Ä°ÅŸareti göster" name="show_beacon"/> <button label="Al" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - Seçili baÄŸlantı kümelerinin özelliklerini düzenleyin ve deÄŸiÅŸiklikleri uygulamak için düğmeye basın + Yol bulma özelliklerini düzenle </text> <text name="walkability_coefficients_label"> Yürüyebilirlik: diff --git a/indra/newview/skins/default/xui/tr/floater_tos.xml b/indra/newview/skins/default/xui/tr/floater_tos.xml index 04096ba35f..249a0f691e 100644 --- a/indra/newview/skins/default/xui/tr/floater_tos.xml +++ b/indra/newview/skins/default/xui/tr/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="Devam Et" label_selected="Devam Et" name="Continue"/> - <button label="Ä°ptal" label_selected="Ä°ptal" name="Cancel"/> - <check_box label="Hizmet KoÅŸullarını ve Gizlilik Politikasını Kabul Ediyorum" name="agree_chk"/> <text name="tos_heading"> - AÅŸağıdaki Hizmet KoÅŸullarını ve Gizlilik Politikasını dikkatle okuyun. [SECOND_LIFE]'ta oturum açmaya devam etmek için anlaÅŸmayı kabul etmelisiniz. + Lütfen anlaÅŸmazlıkları çözümlemek için tahkim kullanımı ve her türden veya sınıftan feragat talebi gereklilikleri de dahil olmak üzere aÅŸağıdaki Second Life KoÅŸullarını ve Åžartlarını, Gizlilik Politikasını ve Hizmet KoÅŸullarını okuyun. [SECOND_LIFE]'ta oturum açmaya devam etmek için bu anlaÅŸmaları kabul etmelisiniz. </text> <text name="external_tos_required"> Devam edebilmeniz için https://my.secondlife.com adresine gidip oturum açarak Hizmet SözleÅŸmesi'ni kabul etmeniz gerekir. TeÅŸekkürler! </text> + <check_box label="UyuÅŸmazlıkların çözümü gerekliliklerini içeren Second Life Åžartlar ve KoÅŸulları, Gizlilik Politikası'nı ve Hizmet KoÅŸulları'nı" name="agree_chk"/> + <text name="agree_list"> + okudum ve kabul ediyorum. + </text> + <button label="Devam Et" label_selected="Devam Et" name="Continue"/> + <button label="Ä°ptal" label_selected="Ä°ptal" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/tr/menu_attachment_other.xml b/indra/newview/skins/default/xui/tr/menu_attachment_other.xml index a68abf53c8..19693b31a2 100644 --- a/indra/newview/skins/default/xui/tr/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/tr/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="Varsayılan" name="RenderNormally"/> <menu_item_check label="Her Zaman" name="AlwaysRenderFully"/> <menu_item_check label="Asla" name="DoNotRender"/> + <menu_item_call label="Ä°stisnalar..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Parçacık Sahibini Engelle" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml b/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml index dc3724cfc8..0d74b20a54 100644 --- a/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="Profili Göster" name="Show Profile"/> <menu_item_call label="AÄ° Gönder..." name="Send IM"/> <menu_item_call label="Işınlanma Talep Et" name="Request Teleport"/> <menu_item_call label="ArkadaÅŸ Ekle..." name="Add Friend"/> <menu_item_call label="Arkadaşı Çıkar..." name="Remove Friend"/> -</menu> + <context_menu label="Moderatör Seçenekleri" name="Moderator Options"> + <menu_item_check label="Metin sohbetine izin ver" name="AllowTextChat"/> + <menu_item_call label="Bu katılımcıyı sessize al" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="Bu katılımcının sesini aç" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="Ãœyeyi yasakla" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_avatar_other.xml b/indra/newview/skins/default/xui/tr/menu_avatar_other.xml index a616dc1dea..9b5d2ca320 100644 --- a/indra/newview/skins/default/xui/tr/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/tr/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="Varsayılan" name="RenderNormally"/> <menu_item_check label="Her Zaman" name="AlwaysRenderFully"/> <menu_item_check label="Asla" name="DoNotRender"/> + <menu_item_call label="Ä°stisnalar..." name="RenderExceptions"/> </context_menu> <menu_item_call label="Parçacık Sahibini Engelle" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_inventory.xml b/indra/newview/skins/default/xui/tr/menu_inventory.xml index 96dd4e1d1f..1e8dfc7d68 100644 --- a/indra/newview/skins/default/xui/tr/menu_inventory.xml +++ b/indra/newview/skins/default/xui/tr/menu_inventory.xml @@ -75,10 +75,12 @@ <menu_item_call label="Özellikler" name="Properties"/> <menu_item_call label="Yeniden Adlandır" name="Rename"/> <menu_item_call label="Varlık UUID'sini Kopyala" name="Copy Asset UUID"/> + <menu_item_call label="Ana Bölmede Göster" name="Show in Main Panel"/> <menu_item_call label="Kes" name="Cut"/> <menu_item_call label="Kopyala" name="Copy"/> <menu_item_call label="Yapıştır" name="Paste"/> <menu_item_call label="BaÄŸlantı Olarak Yapıştır" name="Paste As Link"/> + <menu_item_call label="BaÄŸlantıları DeÄŸiÅŸtir" name="Replace Links"/> <menu_item_call label="Sil" name="Delete"/> <menu_item_call label="Sistem Klasörünü Sil" name="Delete System Folder"/> <menu_item_call label="Konferans Sohbeti BaÅŸlat" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml index ca66bc98c7..f80f9ff53f 100644 --- a/indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml @@ -13,5 +13,6 @@ <menu_item_call label="PaylaÅŸ" name="Share"/> <menu_item_call label="Orijinali Bul" name="Find Original"/> <menu_item_call label="Tüm BaÄŸlantıları Bul" name="Find All Links"/> + <menu_item_call label="BaÄŸlantıları DeÄŸiÅŸtir" name="Replace Links"/> <menu_item_call label="Çöpü BoÅŸalt" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_login.xml b/indra/newview/skins/default/xui/tr/menu_login.xml index 1a810d58ce..4da3a9414d 100644 --- a/indra/newview/skins/default/xui/tr/menu_login.xml +++ b/indra/newview/skins/default/xui/tr/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="Ben" name="File"> <menu_item_call label="Tercihler..." name="Preferences..."/> + <menu_item_call label="Pencereyi Kapat" name="Close Window"/> <menu_item_check label="Izgara Seçiciyi Göster" name="Show Grid Picker"/> <menu_item_call label="[APP_NAME]'den Çık" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/tr/menu_viewer.xml b/indra/newview/skins/default/xui/tr/menu_viewer.xml index ad134c717e..bc2f08db42 100644 --- a/indra/newview/skins/default/xui/tr/menu_viewer.xml +++ b/indra/newview/skins/default/xui/tr/menu_viewer.xml @@ -119,7 +119,7 @@ <menu_item_call label="Sonraki Parçayı veya Yüzü Dahil Et" name="Include Next Part or Face"/> <menu_item_call label="Önceki Parçayı veya Yüzü Dahil Et" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="BaÄŸlantı kümeleri..." name="pathfinding_linkset_menu_item"/> + <menu_item_call label="Bölge Nesneleri" name="pathfinding_linkset_menu_item"/> <menu_item_call label="Seçime Odaklan" name="Focus on Selection"/> <menu_item_call label="Seçimi YakınlaÅŸtır" name="Zoom to Selection"/> <menu label="Nesne" name="Object"> @@ -139,7 +139,7 @@ <menu_item_call label="Komut Dosyalarını Çalışmıyor Olarak Ayarla" name="Set Scripts to Not Running"/> </menu> <menu label="Yol bulma" name="Pathfinding"> - <menu_item_call label="BaÄŸlantı kümeleri..." name="pathfinding_linksets_menu_item"/> + <menu_item_call label="Bölge Nesneleri" name="pathfinding_linksets_menu_item"/> <menu_item_call label="Karakterler..." name="pathfinding_characters_menu_item"/> <menu_item_call label="Görüntüleme / test..." name="pathfinding_console_menu_item"/> <menu_item_call label="Bölgeyi tekrar kaydet" name="pathfinding_rebake_navmesh_item"/> diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml index 5da8fa495b..b72b948680 100644 --- a/indra/newview/skins/default/xui/tr/notifications.xml +++ b/indra/newview/skins/default/xui/tr/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> Bunu bir daha gösterme </global> + <global name="skipnexttimesessiononly"> + Bunu bir daha gösterme +(mevcut oturum için) + </global> <global name="alwayschoose"> Her zaman bu seçeneÄŸi seç </global> @@ -343,7 +347,7 @@ Devam etmek istiyor musunuz? <usetemplate name="okcancelbuttons" notext="Ä°ptal Et" yestext="Katıl"/> </notification> <notification name="JoinGroupNoCost"> - [NAME] grubuna katılıyorsunuz. + <nolink>[NAME]</nolink> grubuna katılıyorsunuz. Devam etmek istiyor musunuz? <usetemplate name="okcancelbuttons" notext="Ä°ptal Et" yestext="Katıl"/> </notification> @@ -357,6 +361,40 @@ Grupların birden fazla üyeye sahip olması gereklidir, aksi takdirde grup kalÄ Lütfen 48 saat içinde diÄŸer üyeleri davet edin. <usetemplate canceltext="Ä°ptal" name="okcancelbuttons" notext="Ä°ptal" yestext="L$ 100 ödeyerek grubu oluÅŸtur"/> </notification> + <notification name="JoinGroupInaccessible"> + Bu gruba eriÅŸemezsiniz. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="JoinGroupError"> + Grup üyeliÄŸi talebiniz iÅŸlenirken hata. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="JoinGroupErrorReason"> + Gruba katılma baÅŸarısız: [reason] + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="JoinGroupTrialUser"> + Ãœzgünüz, deneme kullanıcıları gruplara katılamaz. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="JoinGroupMaxGroups"> + '<nolink>[group_name]</nolink>› grubuna katılamazsınız: +Zaten [group_count] gruba üyesiniz, maksimum izin verilen sayı [max_groups]'tir + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + '<nolink>[group_name]</nolink>› grubuna katılamazsınız: +Grup artık katılıma açık deÄŸil. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="JoinGroupSuccess"> + Gruba eklendiniz. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + Gereken L$ [membership_fee] üyelik ücreti aktarılamadı. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> <notification name="LandBuyPass"> L$ [COST] ödeyerek ('[PARCEL_NAME]') arazisine [TIME] saat süreyle girebilirsiniz. GiriÅŸ hakkı satın almak istiyor musunuz? <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> @@ -378,9 +416,9 @@ Satış fiyatınız L$ [SALE_PRICE] olacak ve [NAME] için satışa açık olaca <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - '[NAME]' grubuyla bu arazi parseli üzerinde paylaşılan tüm nesneleri önceki sahiplerinin envanterine iade etmek istediÄŸinize emin misiniz? + '<nolink>[NAME]</nolink>' grubuyla bu arazi parseli üzerinde paylaşılan tüm nesneleri önceki sahiplerinin envanterine iade etmek istediÄŸinize emin misiniz? -*UYARI* Bu eylem, gruba devredilen nesnelerden aktarılması mümkün olmayanları silecektir! +*UYARI* Bu eylem, gruba devredilen nesnelerden aktarılması mümkün olmayanları silecektir! Nesneler: [N] <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> @@ -424,7 +462,7 @@ Nesneler: [N] <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - Bu arazi parseli üzerinde [NAME] grubuyla PAYLAÅžILMAYAN nesneler sahiplerinin envanterine iade edilsin mi? + Bu arazi parseli üzerinde <nolink>[NAME]</nolink> grubuyla PAYLAÅžILMAYAN nesneler sahiplerinin envanterine iade edilsin mi? Nesneler: [N] <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> @@ -472,7 +510,7 @@ Ortamı sadece bir yüze yerleÅŸtirmek için, Yüz Seç'i seçin ve ardınd AÅŸağıdaki nedenden dolayı, bir raporun ekran görüntüsü karşıya yüklenirken bir sorun oluÅŸtu: [REASON] </notification> <notification name="MustAgreeToLogIn"> - [SECOND_LIFE]'ta oturum açmaya devam etmek için Hizmet SözleÅŸmesi'ni kabul etmelisiniz. + [SECOND_LIFE]'ta oturum açmaya devam etmek için Second Life Åžartlar ve KoÅŸullar'ı, Gizlilik Politikası'nı ve Hizmet KoÅŸulları'nı kabul etmelisiniz. </notification> <notification name="CouldNotPutOnOutfit"> Dış görünüm eklenemedi. @@ -725,7 +763,7 @@ Avatar geçici bir süre için hareket etme, sohbet etme veya dünya ile etkileÅ <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Çıkar"/> </notification> <notification name="EjectAvatarFromGroup"> - [AVATAR_NAME] adlı kiÅŸiyi [GROUP_NAME] grubundan çıkardınız + [AVATAR_NAME] adlı kiÅŸiyi <nolink>[GROUP_NAME]</nolink> grubundan çıkardınız </notification> <notification name="AcquireErrorTooManyObjects"> ALMA HATASI: Çok fazla nesne seçilmiÅŸ. @@ -1323,18 +1361,18 @@ Bu öğeleri almak istediÄŸinize emin misiniz? Lütfen daha küçük bir alan seçin ve tekrar deneyin. </notification> <notification name="DeedLandToGroup"> - Bu parseli devrettiÄŸinizde grubun yeterli arazi kulanım kredisine sahip olması ve elinde tutması gerekmektedir. -Arazinin satış bedeli sahibine geri ödenmez. Devredilen bir parsel satılırsa, satış bedeli grup üyeleri arasında eÅŸit olarak bölünür. + Bu parseli devrettiÄŸinizde grubun yeterli arazi kulanım kredisine sahip olması ve elinde tutması gerekmektedir. Arazinin satış bedeli sahibine geri ödenmez. +Devredilen bir parsel satılırsa, satış bedeli grup üyeleri arasında eÅŸit olarak bölünür. -[AREA] m²'lik bu arazi '[GROUP_NAME]' grubuna devredilsin mi? +[AREA] m²'lik bu arazi '<nolink>[GROUP_NAME]</nolink>' grubuna devredilsin mi? <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> </notification> <notification name="DeedLandToGroupWithContribution"> - Bu parseli devrettiÄŸinizde grubun yeterli arazi kulanım kredisine sahip olması ve elinde tutması gerekmektedir. -Bu devir eÅŸ zamanlı olarak '[NAME]' adlı kiÅŸiden gruba arazi katkısı saÄŸlayacaktır. -Arazinin satış bedeli sahibine geri ödenmez. Devredilen bir parsel satılırsa, satış bedeli grup üyeleri arasında eÅŸit olarak bölünür. + Bu parseli devrettiÄŸinizde grubun yeterli arazi kulanım kredisine sahip olması ve elinde tutması gerekmektedir. +Bu devir eÅŸ zamanlı olarak '[NAME]' adlı kiÅŸiden gruba arazi katkısı saÄŸlayacaktır. +Arazinin satış bedeli sahibine geri ödenmez. Devredilen bir parsel satılırsa, satış bedeli grup üyeleri arasında eÅŸit olarak bölünür. -[AREA] m²'lik bu arazi '[GROUP_NAME]' grubuna devredilsin mi? +[AREA] m²'lik bu arazi '<nolink>[GROUP_NAME]</nolink>' grubuna devredilsin mi? <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> </notification> <notification name="DisplaySetToSafe"> @@ -1747,7 +1785,7 @@ Gruptan ayrılmak istiyor musunuz? <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> </notification> <notification name="GroupDepart"> - "[group_name]" grubundan ayrıldınız. + '<nolink>[group_name]</nolink>' grubundan ayrıldınız. </notification> <notification name="OwnerCannotLeaveGroup"> Gruptan ayrılınamıyor. Gruptan ayrılamazsınız çünkü grubun son sahibisiniz. Lütfen önce sahip rolüne baÅŸka bir üye atayın. @@ -2018,6 +2056,10 @@ Binlerce bölgeyi deÄŸiÅŸtirecek ve alan sunucusunu kesintiye uÄŸratacaktır. Gayrimenkul SözleÅŸmesini deÄŸiÅŸtirmek istediÄŸinize emin misiniz? <usetemplate name="okcancelbuttons" notext="Ä°ptal" yestext="Tamam"/> </notification> + <notification name="EstateParcelAccessOverride"> + Bu seçeneÄŸin onay iÅŸaretini kaldırmak, parsel sahiplerinin rahatsızlık veren oyuncuları bunu yapmasını engellemek, gizliliÄŸi sürdürmek ve yaşı tutmayan sakinleri yetiÅŸkin içeriklerden korumak için ekledikleri kısıtlamaları kaldırabilir. Lütfen gerekli olduÄŸunda parsel sahiplerinizle tartışın. + <usetemplate name="okbutton" yestext="Tamam"/> + </notification> <notification name="RegionEntryAccessBlocked"> Ziyaret etmeye çalıştığınız bölge, mevcut tercihlerinizi aÅŸan içeriÄŸe sahip. Ben > Tercihler > Genel sekmesini kullanarak tercihlerinizi deÄŸiÅŸtirebilirsiniz. <usetemplate name="okbutton" yestext="Tamam"/> @@ -2357,7 +2399,17 @@ Bu eylemi geri alamazsınız. </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Öğeleri silmeden önce doÄŸrulama iste" name="okcancelignore" notext="Ä°ptal" yestext="Tamam"/> + <form name="form"> + <ignore name="ignore" text="Öğeleri silmeden önce doÄŸrulayın"/> + <button name="Yes" text="Tamam"/> + <button name="No" text="Ä°ptal Et"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + Envanteriniz ÅŸu anda filtreli ve silmek üzere olduÄŸunuz öğelerin tümü görünür deÄŸil. + +Öğeyi silmek istediÄŸinize emin misiniz? + <usetemplate ignoretext="Filtrelenen öğeleri silmeden önce doÄŸrulayın" name="okcancelignore" notext="Ä°ptal Et" yestext="Tamam"/> </notification> <notification name="ConfirmUnlink"> Bu, geniÅŸ bir baÄŸlantı kümeleri seçimi. BaÄŸlantıyı kaldırırsanız tekrar baÄŸlayamayabilirsiniz. Tedbiren, envanterinizdeki baÄŸlantı kümelerinin bir kopyasını almayı isteyebilirsiniz. @@ -2434,13 +2486,17 @@ Bu iÅŸlemi tamamlamadan önce Rahatsız Etme'yi kapatmak ister misiniz? '[FOLDERNAME]' klasörü bir sistem klasörüdür. Sistem klasörlerini silmek kararsızlığa neden olabilir. Silmek istediÄŸinize emin misiniz? <usetemplate ignoretext="Bir sistem klasörünü silmeden önce doÄŸrulama iste" name="okcancelignore" notext="Ä°ptal" yestext="Tamam"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] öğe kalıcı olarak silinecektir. Seçilen öğeyi/öğeleri çöp kutunuzdan kalıcı olarak silmek istediÄŸinize emin misiniz? + <usetemplate name="okcancelbuttons" notext="Ä°ptal Et" yestext="Tamam"/> + </notification> <notification name="ConfirmEmptyTrash"> - Çöp kutunuzun içeriÄŸini kalıcı olarak silmek istediÄŸinize emin misiniz? - <usetemplate ignoretext="Envanter Çöp Kutusu klasörünü boÅŸaltmadan önce doÄŸrulama iste" name="okcancelignore" notext="Ä°ptal" yestext="Tamam"/> + [COUNT] öğe kalıcı olarak silinecektir. Çöp kutunuzun içeriÄŸini kalıcı olarak silmek istediÄŸinize emin misiniz? + <usetemplate name="okcancelbuttons" notext="Ä°ptal Et" yestext="Tamam"/> </notification> <notification name="TrashIsFull"> Çöpte yer kalmamış. Bu durum oturum açma sırasında sorun yaÅŸamanıza neden olabilir. - <usetemplate name="okcancelbuttons" notext="Çöpü daha sonra boÅŸaltacağım" yestext="Çöp kutusunu ÅŸimdi boÅŸalt"/> + <usetemplate name="okcancelbuttons" notext="Çöpü daha sonra boÅŸaltacağım" yestext="Çöp kutusu klasörünü denetle"/> </notification> <notification name="ConfirmClearBrowserCache"> Seyahat, web ve arama geçmiÅŸinizi silmek istediÄŸinize emin misiniz? @@ -2569,6 +2625,9 @@ DiÄŸer kiÅŸilerin bu konuma kolayca eriÅŸmesini saÄŸlamak için bu adrese bir we <notification name="AddSelfFriend"> Çok iyi biri olduÄŸunuza eminiz fakat kendinizi arkadaÅŸ olarak ekleyemezsiniz. </notification> + <notification name="AddSelfRenderExceptions"> + Kendinizi ödeme istisnaları listesine ekleyemezsiniz. + </notification> <notification name="UploadingAuctionSnapshot"> SL dünyası içinde ve web sitesinde yer alan anlık görüntüler karşıya yükleniyor... (Yaklaşık 5 dakika sürecektir.) @@ -2763,8 +2822,8 @@ Sorun yaÅŸamaya devam ederseniz lütfen eklentiyi yeniden yükleyin veya satıcÄ '[NAME]' adlı Sakinin sahip olduÄŸu seçili arazi parseli üzerinde bulunan nesneler kendi sahiplerine iade edildi. </notification> <notification name="GroupObjectsReturned"> - [GROUPNAME] ile paylaşılan seçili arazi parseli üzerinde bulunan nesneler kendi sahiplerinin envanterlerine iade edildi. -DevredilmiÅŸ nesnelerin aktarılabilenleri önceki sahiplerine iade edildi. + <nolink>[GROUPNAME]</nolink> ile paylaşılan seçili arazi parseli üzerinde bulunan nesneler kendi sahiplerinin envanterlerine iade edildi. +DevredilmiÅŸ nesnelerin aktarılabilenleri önceki sahiplerine iade edildi. Gruba devredilen nesnelerden aktarılamayanlar silindi. </notification> <notification name="UnOwnedObjectsReturned"> @@ -3150,7 +3209,7 @@ Bu izni vermek için lütfen [DOWNLOADURL] adresinden görüntüleyicinizi en so </form> </notification> <notification name="ScriptDialogGroup"> - [GROUPNAME] grubuna ait '<nolink>[TITLE]</nolink>' + <nolink>[GROUPNAME]</nolink>'nın '<nolink>[TITLE]</nolink>' [MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="Engelle"/> @@ -3197,8 +3256,8 @@ Katılmak için Kabul Et'i, daveti geri çevirmek için ise Reddet'i t [NAME] adlı kiÅŸiye envanter teklif edildi ve otomatik olarak engeli kaldırıldı. </notification> <notification name="VoiceInviteGroup"> - [NAME], [GROUP] grubu ile bir Sesli Sohbet'e katıldı. -Katılmak için Kabul Et'i, daveti geri çevirmek için ise Reddet'i tıklatın. Arayan kiÅŸiyi engellemek için Engelle'yi tıklatın. + [NAME], <nolink>[GROUP]</nolink> grubu ile bir Sesli Sohbet'e katıldı. +Aramaya katılmak için Kabul Et'e veya reddetmek için Reddet'e tıklayın. Bu arayanı engellemek için Engelle'ye tıklayın. <form name="form"> <button name="Accept" text="Kabul Et"/> <button name="Decline" text="Reddet"/> @@ -3306,6 +3365,9 @@ GüvenliÄŸiniz için birkaç saniye engellenecek. <notification name="AppearanceToXMLFailed"> Görünüm XML'e kaydedilemedi. </notification> + <notification name="SnapshotToComputerFailed"> + Anlık görüntü [PATH] yoluna kaydedilemedi: Disk dolu. [NEED_MEMORY]KB gerekli ancak yalnızca [FREE_MEMORY]KB boÅŸ. + </notification> <notification name="PresetNotSaved"> Ön ayar ([NAME]) kaydedilirken hata oluÅŸtu. </notification> @@ -3343,9 +3405,14 @@ Yeterli yer olduÄŸunda düğme gösterilecek. <notification name="ShareNotification"> Paylaşılacak sakinleri seç. </notification> + <notification name="MeshUploadErrorDetails"> + [LABEL] karşıya yüklenemedi: [MESSAGE] +[DETAILS]Detaylar için SecondLife.log'a bakın + </notification> <notification name="MeshUploadError"> - [LABEL] karşıya yüklenemedi: [MESSAGE] [IDENTIFIER] -[DETAILS]Ayrıntılar için bkz. SecondLife.log + [LABEL] karşıya yüklenemedi: [MESSAGE] + +Detaylar için SecondLife.log'a bakın </notification> <notification name="MeshUploadPermError"> Karşıya örgü yükleme izinleri talep edilirken hata oluÅŸtu. diff --git a/indra/newview/skins/default/xui/tr/panel_main_inventory.xml b/indra/newview/skins/default/xui/tr/panel_main_inventory.xml index 0761f0531d..01252ff454 100644 --- a/indra/newview/skins/default/xui/tr/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/tr/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> Ögeler: </text> - <filter_editor label="Envanteri Filtrele" name="inventory search editor"/> + <filter_editor label="Arama metnini gir" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="Ad" name="Name" value="search_by_name"/> + <item label="OluÅŸturan" name="Creator" value="search_by_creator"/> + <item label="Açıklama" name="Description" value="search_by_description"/> + <item label="UUID" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="ENVANTERÄ°M" name="All Items"/> <recent_inventory_panel label="SON" name="Recent Items"/> + <inventory_panel label="GÄ°YÄ°LEN" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml index f8aa17f0c6..012e6df31b 100644 --- a/indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml @@ -6,7 +6,7 @@ <text name="Cache:"> Önbellek: </text> - <spinner label="Önbellek boyutu (256-9984 MB)" name="cachesizespinner"/> + <spinner label="Önbellek büyüklüğü (256 - 9984MB)" name="cachesizespinner"/> <text name="text_box5"> MB </text> diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml index 6a00d06e7e..332757a655 100644 --- a/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Metin Sohbeti" name="chat"> + <check_box initial_value="true" label="Yakınlardaki sohbetlerde hareketleri otomatik olarak tamamla" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="Sohbet sırasında yazma animasyonunu oynat" name="play_typing_animation"/> <check_box label="Çevrimdışı olduÄŸunda AÄ°'ler e-posta ile bana gönderilsin" name="send_im_to_email"/> diff --git a/indra/newview/skins/default/xui/tr/panel_region_estate.xml b/indra/newview/skins/default/xui/tr/panel_region_estate.xml index 4a9028643f..fc8dab9c69 100644 --- a/indra/newview/skins/default/xui/tr/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/tr/panel_region_estate.xml @@ -15,38 +15,36 @@ <text name="estate_owner"> (bilinmiyor) </text> - <check_box label="Küresel Saati Kullan" name="use_global_time_check"/> - <check_box label="Sabit GüneÅŸ" name="fixed_sun_check"/> - <slider label="Faz" name="sun_hour_slider"/> - <check_box label="Kamusal EriÅŸime Ä°zin Ver" name="externally_visible_check"/> - <text name="Only Allow"> - Sadece ÅŸu Sakinlere eriÅŸim izni verin: - </text> - <check_box label="Ödeme bilgileri kayıtlı" name="limit_payment" tool_tip="Sakinlerin bu gayrimenkule eriÅŸebilmesi için ödeme bilgilerinin kayıtlı olması gerekir. Daha fazla bilgi için [SUPPORT_SITE] adresini ziyaret edin."/> - <check_box label="18 veya üzeri bir yaÅŸta" name="limit_age_verified" tool_tip="Sakinlerin bu gayrimenkule eriÅŸebilmesi için 18 veya üzeri bir yaÅŸta olmaları gerekir. Daha fazla bilgi için [SUPPORT_SITE] adresini ziyaret edin."/> + <radio_group name="externally_visible_radio"> + <radio_item label="Yalnızca aÅŸağıda listelenen sakinlere ve gruplara izin ver" name="estate_restricted_access"/> + <radio_item label="Herkes ziyaret edebilir" name="estate_public_access"/> + </radio_group> + <check_box label="18 yaşından büyük olmalıdır" name="limit_age_verified" tool_tip="Sakinlerin bu gayrimenkule eriÅŸebilmesi için 18 veya üzeri bir yaÅŸta olmaları gerekir. Daha fazla bilgi için [SUPPORT_SITE] adresini ziyaret edin."/> + <check_box label="Dosyadaki ödeme bilgisine sahip olmalıdır" name="limit_payment" tool_tip="Sakinlerin bu gayrimenkule eriÅŸebilmesi için ödeme bilgilerinin kayıtlı olması gerekir. Daha fazla bilgi için [SUPPORT_SITE] adresini ziyaret edin."/> + <check_box label="Parsel sahipleri daha kısıtlayıcı olabilir" name="parcel_access_override"/> <check_box label="Sesli Sohbete Ä°zin Ver" name="voice_chat_check"/> <check_box label="DoÄŸrudan Işınlamaya Ä°zin Ver" name="allow_direct_teleport"/> <button label="Uygula" name="apply_btn"/> - <button label="Gayrimenkule Ä°leti Gönder..." name="message_estate_btn"/> - <button label="Sakinlerini Gayrimenkulden Çıkar..." name="kick_user_from_estate_btn"/> <text name="estate_manager_label"> Gayrimenkul Yöneticileri: </text> - <button label="Kaldır..." name="remove_estate_manager_btn"/> - <button label="Ekle..." name="add_estate_manager_btn"/> <text name="allow_resident_label"> - Ä°zin verilen Sakinler: + Her zaman izin verilen: </text> - <button label="Kaldır..." name="remove_allowed_avatar_btn"/> + <button label="Ekle..." name="add_estate_manager_btn"/> + <button label="Kaldır..." name="remove_estate_manager_btn"/> <button label="Ekle..." name="add_allowed_avatar_btn"/> + <button label="Kaldır..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - Ä°zin verilen Gruplar: + Her zaman izin verilen gruplar: </text> - <button label="Kaldır..." name="remove_allowed_group_btn"/> - <button label="Ekle..." name="add_allowed_group_btn"/> <text name="ban_resident_label"> - Yasaklı Sakinler: + Her zaman engellenen: </text> - <button label="Kaldır..." name="remove_banned_avatar_btn"/> + <button label="Ekle..." name="add_allowed_group_btn"/> + <button label="Kaldır..." name="remove_allowed_group_btn"/> <button label="Ekle..." name="add_banned_avatar_btn"/> + <button label="Kaldır..." name="remove_banned_avatar_btn"/> + <button label="Gayrimenkule Ä°leti Gönder..." name="message_estate_btn"/> + <button label="Sakinlerini Gayrimenkulden Çıkar..." name="kick_user_from_estate_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/tr/panel_tools_texture.xml b/indra/newview/skins/default/xui/tr/panel_tools_texture.xml index 9760c7f9f7..1324e2cc36 100644 --- a/indra/newview/skins/default/xui/tr/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/tr/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="Yumruluk (normal)" name="Bumpiness (normal)" value="1"/> <radio_item label="Parıldama (yansıtan)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="Kilit tekrarı" name="checkbox_sync_settings" tool_tip="Tüm harita tekrarlarını aynı anda ayarla"/> <texture_picker label="Doku" name="texture control" tool_tip="Bir resim seçmek için tıklayın"/> <text name="label alphamode"> Alfa modu diff --git a/indra/newview/skins/default/xui/tr/role_actions.xml b/indra/newview/skins/default/xui/tr/role_actions.xml index a7e381d6a0..c6cb7ea156 100644 --- a/indra/newview/skins/default/xui/tr/role_actions.xml +++ b/indra/newview/skins/default/xui/tr/role_actions.xml @@ -38,7 +38,7 @@ <action description="'Yüzeyi Düzenle' yeteneÄŸine her zaman izin ver" longdescription="Bu YeteneÄŸe sahip olan bir Roldeki Ãœyeler, Arazi Hakkında > Seçenekler sekmesinde kapalı olsa da grubun sahip olduÄŸu parsel üzerinde yüzey düzenleme yapabilir." name="land allow edit land" value="23"/> <action description="'Uç' yeteneÄŸine her zaman izin ver" longdescription="Bu YeteneÄŸe sahip olan bir Roldeki Ãœyeler, Arazi Hakkında > Seçenekler sekmesinde kapalı olsa da grubun sahip olduÄŸu parsel üzerinde uçabilir." name="land allow fly" value="24"/> <action description="'Nesneleri OluÅŸtur' yeteneÄŸine her zaman izin ver" longdescription="Bu YeteneÄŸe sahip olan bir Roldeki Ãœyeler, Arazi Hakkında > Seçenekler sekmesinde kapalı olsa da grubun sahip olduÄŸu parsel üzerinde nesne oluÅŸturabilirler." name="land allow create" value="25"/> - <action description="'Yer Ä°mi OluÅŸtur' yeteneÄŸine her zaman izin ver" longdescription="Bu YeteneÄŸe sahip olan bir Roldeki Ãœyeler, Arazi Hakkında > Seçenekler sekmesinde kapalı olsa da grubun sahip olduÄŸu parsel üzerinde yer imi oluÅŸturabilirler." name="land allow landmark" value="26"/> + <action description="Ä°niÅŸ noktasını yoksay" longdescription="Bu YeteneÄŸe sahip olan bir Roldeki Ãœyeler, bir iniÅŸ noktası Arazi Hakkında > Seçenekler sekmesinde ayarlanmış olsa da grubun sahip olduÄŸu parseli bir telefona yönlendirebilirler." name="land allow direct teleport" value="26"/> <action description="Grup arazisi üzerinde 'Ana Konumu Burası Olarak Seç' yeteneÄŸine izin ver" longdescription="Bu YeteneÄŸe sahip olan bir Roldeki Ãœyeler, bu gruba devrediilmiÅŸ bir parsel üzerinde Dünya menüsü > Yer imleri > Ana Konumu Burası Olarak Seç seçeneÄŸini kullanabilirler." name="land allow set home" value="28"/> <action description="Grup arazisi üzerinde 'EtkinliÄŸe Ev SahipliÄŸi Yap' yeteneÄŸine izin ver" longdescription="Bu YeteneÄŸe sahip bir Roldeki Ãœyeler bir etkinliÄŸe ev sahipliÄŸi yapmak için grubun sahip olduÄŸu parselleri mekan olarak seçebilirler." name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml index 3064520b10..735d2ea93a 100644 --- a/indra/newview/skins/default/xui/tr/strings.xml +++ b/indra/newview/skins/default/xui/tr/strings.xml @@ -261,9 +261,8 @@ support@secondlife.com. Pasifik Saati ile [TIME]. </string> <string name="LoginFailedAccountDisabled"> - Talebinizi ÅŸu anda tamamlayamıyoruz. -Lütfen yardım almak için Second Life destek bölümüne baÅŸvurun: http://secondlife.com/support -EÄŸer parolanızı deÄŸiÅŸtiremiyorsanız, lütfen ÅŸu numarayı arayın: (866) 476-9763. + Talebinizi ÅŸu anda tamamlayamıyoruz. +Lütfen yardım almak için http://support.secondlife.com adresinden Second Life destek bölümüyle iletiÅŸime geçin. </string> <string name="LoginFailedTransformError"> Oturum açılması sırasında veri tutarsızlığı saptandı. @@ -701,6 +700,19 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="AssetErrorUnknownStatus"> Bilinmeyen durum </string> + <string name="AssetUploadServerUnreacheble"> + Hizmet ulaşılamaz. + </string> + <string name="AssetUploadServerDifficulties"> + Sunucu beklenmeyen zorluklar yaşıyor. + </string> + <string name="AssetUploadServerUnavaliable"> + Hizmet kullanılabilir deÄŸil veya karşıya yükleme zaman aşımına ulaşıldı. + </string> + <string name="AssetUploadRequestInvalid"> + Karşıya yükleme talebinde hata. Bu sorunu çözmek için lütfen +http://secondlife.com/support adresini ziyaret edin. + </string> <string name="texture"> doku </string> @@ -2195,10 +2207,19 @@ Bu mesaj size gelmeye devam ederse lütfen http://support.secondlife.com adresin [OWNER] adına yönettiÄŸiniz tüm gayrimenkuller </string> <string name="RegionInfoAllowedResidents"> - Ä°zin verilen Sakinler: ([ALLOWEDAGENTS], maks [MAXACCESS]) + Her zaman izin verilen: ([ALLOWEDAGENTS], maks [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Ä°zin verilen gruplar: ([ALLOWEDGROUPS], maks [MAXACCESS]) + Her zaman izin verilen gruplar: ([ALLOWEDGROUPS], maks [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + Her zaman engellenen: ([BANNEDAGENTS], maks [MAXBANNED]) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + Her zaman izin verilen + </string> + <string name="RegionInfoListTypeBannedAgents"> + Her zaman engellenen </string> <string name="ScriptLimitsParcelScriptMemory"> Parsel Komut Dosyası BelleÄŸi diff --git a/indra/newview/skins/default/xui/zh/floater_about_land.xml b/indra/newview/skins/default/xui/zh/floater_about_land.xml index 6c03f5304f..badd00bc6d 100644 --- a/indra/newview/skins/default/xui/zh/floater_about_land.xml +++ b/indra/newview/skins/default/xui/zh/floater_about_land.xml @@ -430,13 +430,10 @@ <panel.string name="estate_override"> 至少一個é¸é …åœ¨é ˜åœ°çš„å±¤ç´šè¨å®š </panel.string> - <check_box label="å…許公開出入(若未勾é¸ï¼Œå°‡è¨ç«‹ç¦è¶Šç·šï¼‰" name="public_access"/> - <text name="Only Allow"> - 僅å…許符åˆä»¥ä¸‹æ¢ä»¶çš„居民進入: - </text> - <check_box label="å·²é 留付款資料 [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="å±…æ°‘å¿…é ˆæ供付款資料æ‰èƒ½é€²å…¥é€™åœ°æ®µã€‚ åƒé–± [SUPPORT_SITE] ç²å–進一æ¥è³‡è¨Šã€‚"/> - <check_box label="年滿 18 æ² [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="å±…æ°‘å¿…é ˆå¹´æ»¿ 18 æ²æ‰èƒ½é€²å…¥é€™åœ°æ®µã€‚ åƒé–± [SUPPORT_SITE] ç²å–進一æ¥è³‡è¨Šã€‚"/> - <check_box label="å…許出入的群組:[GROUP]" name="GroupCheck" tool_tip="è¨å®šç¾¤çµ„於一般é 籤。"/> + <check_box label="任何人都å¯é€ 訪(若未勾é¸ï¼Œå°‡è¨ç«‹ç¦è¶Šç·šï¼‰" name="public_access"/> + <check_box label="å¿…é ˆæ»¿18æ² [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="å±…æ°‘å¿…é ˆå¹´æ»¿ 18 æ²æ‰èƒ½é€²å…¥é€™åœ°æ®µã€‚ åƒé–± [SUPPORT_SITE] ç²å–進一æ¥è³‡è¨Šã€‚"/> + <check_box label="é ˆå…·å‚™é 留的付款資料 [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="å±…æ°‘å¿…é ˆæ供付款資料æ‰èƒ½é€²å…¥é€™åœ°æ®µã€‚ åƒé–± [SUPPORT_SITE] ç²å–進一æ¥è³‡è¨Šã€‚"/> + <check_box label="å…許[GROUP]群組,ä¸è¨é™" name="GroupCheck" tool_tip="è¨å®šç¾¤çµ„於一般é 籤。"/> <check_box label="出售通行權給:" name="PassCheck" tool_tip="å…許暫時出入這個地段"/> <combo_box name="pass_combo"> <combo_box.item label="任何人" name="Anyone"/> @@ -444,9 +441,12 @@ </combo_box> <spinner label="åƒ¹æ ¼ï¼ˆL$):" name="PriceSpin"/> <spinner label="出入時間:" name="HoursSpin"/> + <text name="OwnerLimited"> + ï¼ˆé ˜åœ°æ‰€æœ‰äººå¯èƒ½å°é€™äº›é¸é …è¨é™ï¼‰ + </text> <panel name="Allowed_layout_panel"> <text label="æ°¸é å…許" name="AllowedText"> - å…許的居民([COUNT],最多[MAX]) + 永久å…許([COUNT],最多[MAX]) </text> <name_list name="AccessList" tool_tip="(已列入 [LISTED],最多å¯åˆ— [MAX])"/> <button label="æ·»åŠ " name="add_allowed"/> @@ -454,7 +454,7 @@ </panel> <panel name="Banned_layout_panel"> <text label="ç¦æ¢" name="BanCheck"> - å°éŽ–的居民([COUNT],最多[MAX]) + 永久å°éŽ–([COUNT],最多[MAX]) </text> <name_list name="BannedList" tool_tip="(已列入 [LISTED],最多å¯åˆ— [MAX])"/> <button label="æ·»åŠ " name="add_banned"/> diff --git a/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml b/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml index c19369c859..e4a7bef42c 100644 --- a/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml @@ -3,6 +3,9 @@ <floater.string name="not_found"> 查無「[TEXT]〠</floater.string> + <floater.string name="not_found_text"> + 未發ç¾å±…民。 + </floater.string> <floater.string name="no_one_near"> 附近無人 </floater.string> diff --git a/indra/newview/skins/default/xui/zh/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/zh/floater_avatar_render_settings.xml index 2de8c5bc89..effe515c1c 100644 --- a/indra/newview/skins/default/xui/zh/floater_avatar_render_settings.xml +++ b/indra/newview/skins/default/xui/zh/floater_avatar_render_settings.xml @@ -7,5 +7,6 @@ <name_list name="render_settings_list"> <name_list.columns label="å稱" name="name"/> <name_list.columns label="呈åƒè¨å®š" name="setting"/> + <name_list.columns label="新增日期" name="timestamp"/> </name_list> </floater> diff --git a/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml index d4dfd835d1..9001615d89 100644 --- a/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml @@ -15,6 +15,8 @@ <button label="全部" label_selected="全部" name="All"/> <button label="ç„¡" label_selected="ç„¡" name="None"/> <check_box label="固定顯示資料夾" name="check_show_empty"/> + <check_box label="我建立的" name="check_created_by_me"/> + <check_box label="其他人所建立" name="check_created_by_others"/> <check_box label="自上次登出" name="check_since_logoff"/> <text name="- OR -"> - 或 - diff --git a/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml index 71278b7ce6..76cc841d21 100644 --- a/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_pathfinding_linksets" title="尋徑è¯çµé›†"> +<floater name="floater_pathfinding_linksets" title="地å€ç‰©ä»¶"> <floater.string name="messaging_get_inprogress"> 尋徑è¯çµé›†æŸ¥è©¢ä¸â€¦ </floater.string> @@ -16,7 +16,7 @@ 沒有尋徑è¯çµé›†ã€‚ </floater.string> <floater.string name="messaging_complete_available"> - 從 [NUM_TOTAL] 個è¯çµé›†ä¸é¸å–了 [NUM_SELECTED] 個。 + 從[NUM_TOTAL]個ä¸é¸å–了[NUM_SELECTED]個。 </floater.string> <floater.string name="messaging_not_enabled"> 這地å€ä¸¦æœªå•Ÿç”¨å°‹å¾‘。 @@ -118,7 +118,7 @@ <scroll_list.columns label="有腳本" name="scripted"/> <scroll_list.columns label="è¡æ“Š" name="land_impact"/> <scroll_list.columns label="è·é›¢" name="dist_from_you"/> - <scroll_list.columns label="è¯çµé›†çš„使用" name="linkset_use"/> + <scroll_list.columns label="尋徑所用" name="linkset_use"/> <scroll_list.columns label="A %" name="a_percent"/> <scroll_list.columns label="B %" name="b_percent"/> <scroll_list.columns label="C %" name="c_percent"/> @@ -133,7 +133,7 @@ </panel> <panel name="pathfinding_linksets_actions"> <text name="linksets_actions_label"> - å°æ‰€é¸è¯çµé›†æŽ¡å–的動作(如果連çµé›†å¾žè™›æ“¬ä¸–界移除,其屬性æ會éºå¤±ï¼‰ï¼š + å°æ‰€é¸æŽ¡å–的動作 </text> <check_box label="顯示指標" name="show_beacon"/> <button label="å–å¾—" name="take_objects"/> @@ -144,7 +144,7 @@ </panel> <panel name="pathfinding_linksets_attributes"> <text name="linksets_attributes_label"> - 編輯所é¸è¯çµé›†çš„屬性,並按按鈕啟用變更 + 編輯尋徑屬性 </text> <text name="walkability_coefficients_label"> å¯è¡Œèµ°æ€§ï¼š diff --git a/indra/newview/skins/default/xui/zh/floater_tos.xml b/indra/newview/skins/default/xui/zh/floater_tos.xml index 92e48e72b8..4e028c849f 100644 --- a/indra/newview/skins/default/xui/zh/floater_tos.xml +++ b/indra/newview/skins/default/xui/zh/floater_tos.xml @@ -6,13 +6,16 @@ <floater.string name="loading_url"> data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E æ£åœ¨è¼‰å…¥ %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E </floater.string> - <button label="繼續" label_selected="繼續" name="Continue"/> - <button label="å–消" label_selected="å–消" name="Cancel"/> - <check_box label="我åŒæ„接å—æœå‹™æ¢æ¬¾åŠéš±ç§æ”¿ç–" name="agree_chk"/> <text name="tos_heading"> - 請仔細閱讀以下æœå‹™æ¢æ¬¾åŠéš±ç§æ”¿ç–。 繼續登入 [SECOND_LIFE] å‰ï¼Œä½ å¿…é ˆåŒæ„æ¢æ¬¾ã€‚ + 請閱讀並éµå®ˆSecond Life使用æ¢æ¬¾ã€éš±ç§æ”¿ç–ã€æœå‹™æ¢æ¬¾ï¼ŒåŒ…括åŒæ„在發生çˆè°æ™‚接å—仲è£ä¸¦æ”¾æ£„採å–集體或群體求訴的è¦å®šã€‚ 繼續登入[SECOND_LIFE]å‰ï¼Œä½ å¿…é ˆåŒæ„這些æ¢æ¬¾ã€‚ </text> <text name="external_tos_required"> ä½ éœ€å…ˆç™»å…¥ https://my.secondlife.com åŒæ„æœå‹™æ¢æ¬¾ï¼Œæ‰å¯ç¹¼çºŒã€‚ è¬è¬ä½ ï¼ </text> + <check_box label="我已閱畢並åŒæ„" name="agree_chk"/> + <text name="agree_list"> + Second Life使用æ¢æ¬¾ã€éš±ç§æ”¿ç–ã€æœå‹™æ¢æ¬¾ï¼ŒåŒ…括解決çˆç«¯çš„è¦å®šé€”徑。 + </text> + <button label="繼續" label_selected="繼續" name="Continue"/> + <button label="å–消" label_selected="å–消" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/zh/menu_attachment_other.xml b/indra/newview/skins/default/xui/zh/menu_attachment_other.xml index 02bf12f37d..09a25bc2f2 100644 --- a/indra/newview/skins/default/xui/zh/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/zh/menu_attachment_other.xml @@ -21,6 +21,7 @@ <menu_item_check label="é è¨" name="RenderNormally"/> <menu_item_check label="æ°¸é " name="AlwaysRenderFully"/> <menu_item_check label="絕ä¸" name="DoNotRender"/> + <menu_item_call label="例外…" name="RenderExceptions"/> </context_menu> <menu_item_call label="å°éŽ–ç²’å所有人" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml b/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml index cefb395256..72e525d3ad 100644 --- a/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="Avatar Icon Menu"> +<toggleable_menu name="Avatar Icon Menu"> <menu_item_call label="察看檔案" name="Show Profile"/> <menu_item_call label="é€å‡º IM..." name="Send IM"/> <menu_item_call label="è¦æ±‚瞬間傳é€" name="Request Teleport"/> <menu_item_call label="åŠ ç‚ºæœ‹å‹..." name="Add Friend"/> <menu_item_call label="移除朋å‹..." name="Remove Friend"/> -</menu> + <context_menu label="主æŒäººé¸é …" name="Moderator Options"> + <menu_item_check label="å…許文å—èŠå¤©" name="AllowTextChat"/> + <menu_item_call label="å°‡æ¤åƒèˆ‡è€…消音" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="å–消å°æ¤ä¸€åƒèˆ‡è€…的消音" name="ModerateVoiceUnMuteSelected"/> + </context_menu> + <menu_item_call label="å°éŽ–æˆå“¡" name="BanMember"/> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_avatar_other.xml b/indra/newview/skins/default/xui/zh/menu_avatar_other.xml index bc2a8c311b..5a17a726b6 100644 --- a/indra/newview/skins/default/xui/zh/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/zh/menu_avatar_other.xml @@ -20,6 +20,7 @@ <menu_item_check label="é è¨" name="RenderNormally"/> <menu_item_check label="æ°¸é " name="AlwaysRenderFully"/> <menu_item_check label="絕ä¸" name="DoNotRender"/> + <menu_item_call label="例外…" name="RenderExceptions"/> </context_menu> <menu_item_call label="å°éŽ–ç²’å所有人" name="Mute Particle"/> </context_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_inventory.xml b/indra/newview/skins/default/xui/zh/menu_inventory.xml index f17761fdfc..2ed078841e 100644 --- a/indra/newview/skins/default/xui/zh/menu_inventory.xml +++ b/indra/newview/skins/default/xui/zh/menu_inventory.xml @@ -75,10 +75,12 @@ <menu_item_call label="屬性" name="Properties"/> <menu_item_call label="æ›´å" name="Rename"/> <menu_item_call label="覆製資產 UUID" name="Copy Asset UUID"/> + <menu_item_call label="顯示在主é¢æ¿" name="Show in Main Panel"/> <menu_item_call label="剪下" name="Cut"/> <menu_item_call label="æšåº¨" name="Copy"/> <menu_item_call label="貼上" name="Paste"/> <menu_item_call label="以連çµæ ¼å¼è²¼ä¸Š" name="Paste As Link"/> + <menu_item_call label="å–代連çµ" name="Replace Links"/> <menu_item_call label="刪除" name="Delete"/> <menu_item_call label="刪除系統資料夾" name="Delete System Folder"/> <menu_item_call label="發起多方通話" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml index a4461f8c6a..cae91f8e4a 100644 --- a/indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/zh/menu_inventory_gear_default.xml @@ -13,5 +13,6 @@ <menu_item_call label="分享" name="Share"/> <menu_item_call label="尋找原件" name="Find Original"/> <menu_item_call label="尋找全部è¯çµ" name="Find All Links"/> + <menu_item_call label="å–代連çµ" name="Replace Links"/> <menu_item_call label="清空垃圾ç’" name="empty_trash"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_login.xml b/indra/newview/skins/default/xui/zh/menu_login.xml index 2cace27eca..78aa139d13 100644 --- a/indra/newview/skins/default/xui/zh/menu_login.xml +++ b/indra/newview/skins/default/xui/zh/menu_login.xml @@ -2,6 +2,7 @@ <menu_bar name="Login Menu"> <menu label="我自己" name="File"> <menu_item_call label="å好è¨å®šâ€¦" name="Preferences..."/> + <menu_item_call label="關閉視窗" name="Close Window"/> <menu_item_check label="é¡¯ç¤ºæ ¼ç·šæŒ‘é¸å™¨" name="Show Grid Picker"/> <menu_item_call label="退出 [APP_NAME]" name="Quit"/> </menu> diff --git a/indra/newview/skins/default/xui/zh/menu_viewer.xml b/indra/newview/skins/default/xui/zh/menu_viewer.xml index 433e34758a..58deb5a139 100644 --- a/indra/newview/skins/default/xui/zh/menu_viewer.xml +++ b/indra/newview/skins/default/xui/zh/menu_viewer.xml @@ -119,7 +119,7 @@ <menu_item_call label="包括下一部ä½æˆ–臉" name="Include Next Part or Face"/> <menu_item_call label="包括上一部ä½æˆ–臉" name="Include Previous Part or Face"/> </menu> - <menu_item_call label="è¯çµé›†â€¦" name="pathfinding_linkset_menu_item"/> + <menu_item_call label="地å€ç‰©ä»¶" name="pathfinding_linkset_menu_item"/> <menu_item_call label="èšç„¦æ–¼æ‰€é¸éƒ¨ä½" name="Focus on Selection"/> <menu_item_call label="縮放至所é¸éƒ¨ä½" name="Zoom to Selection"/> <menu label="物件" name="Object"> @@ -139,7 +139,7 @@ <menu_item_call label="è¨å®šè…³æœ¬ç‚ºéžåŸ·è¡Œä¸" name="Set Scripts to Not Running"/> </menu> <menu label="尋徑" name="Pathfinding"> - <menu_item_call label="è¯çµé›†â€¦" name="pathfinding_linksets_menu_item"/> + <menu_item_call label="地å€ç‰©ä»¶" name="pathfinding_linksets_menu_item"/> <menu_item_call label="角色…" name="pathfinding_characters_menu_item"/> <menu_item_call label="察看 / 測試…" name="pathfinding_console_menu_item"/> <menu_item_call label="é‡æ–°ç”¢å‡ºåœ°å€" name="pathfinding_rebake_navmesh_item"/> diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml index 74fdfe6ca0..5c43d88b0b 100644 --- a/indra/newview/skins/default/xui/zh/notifications.xml +++ b/indra/newview/skins/default/xui/zh/notifications.xml @@ -3,6 +3,10 @@ <global name="skipnexttime"> ä¸å†é¡¯ç¤ºæ¤æ醒 </global> + <global name="skipnexttimesessiononly"> + ä¸å†å°æˆ‘顯示æ¤å…§å®¹ +(僅é™æ¤æ¬¡) + </global> <global name="alwayschoose"> 總是é¸å–這個é¸é … </global> @@ -343,7 +347,7 @@ <usetemplate name="okcancelbuttons" notext="å–消" yestext="åŠ å…¥"/> </notification> <notification name="JoinGroupNoCost"> - ä½ å³å°‡åŠ å…¥ [NAME] 群組。 + ä½ å³å°‡åŠ å…¥<nolink>[NAME]</nolink>群組。 ä½ ç¢ºå®šè¦ç¹¼çºŒå—Žï¼Ÿ <usetemplate name="okcancelbuttons" notext="å–消" yestext="åŠ å…¥"/> </notification> @@ -357,6 +361,40 @@ 請在 48 å°æ™‚內邀請æˆå“¡åŠ 入。 <usetemplate canceltext="å–消" name="okcancelbuttons" notext="å–消" yestext="花費 L$100 建立群組"/> </notification> + <notification name="JoinGroupInaccessible"> + 這群組ä¸å°ä½ 開放。 + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="JoinGroupError"> + 處ç†ä½ 的群組æˆå“¡è«‹æ±‚時出錯。 + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="JoinGroupErrorReason"> + ç„¡æ³•åŠ å…¥ç¾¤çµ„ï¼š[reason] + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="JoinGroupTrialUser"> + 抱æ‰ï¼Œè©¦ç”¨çš„ä½¿ç”¨è€…ç„¡æ³•åŠ å…¥ç¾¤çµ„ã€‚ + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="JoinGroupMaxGroups"> + ä½ ç„¡æ³•åŠ å…¥ã€Œ<nolink>[group_name]</nolink>ã€ï¼š +ä½ ç›®å‰å·²æ˜¯[group_count]個群組的æˆå“¡ï¼Œæœ€å¤šå…許[max_groups]個群組 + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="JoinGroupClosedEnrollment"> + ä½ ç„¡æ³•åŠ å…¥ã€Œ<nolink>[group_name]</nolink>ã€ï¼š +該群組已ä¸å†é–‹æ”¾åŠ 入。 + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="JoinGroupSuccess"> + ä½ å·²ç²åŠ 入群組。 + <usetemplate name="okbutton" yestext="確定"/> + </notification> + <notification name="JoinGroupInsufficientFunds"> + 無法轉移所需的L$ [membership_fee]會員費。 + <usetemplate name="okbutton" yestext="確定"/> + </notification> <notification name="LandBuyPass"> 花費 L$[COST],å¯é€²å…¥ã€Œ[PARCEL_NAME]ã€åœŸåœ°ï¼Œåœç•™ [TIME] å°æ™‚。 購買通行權? <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> @@ -378,7 +416,7 @@ <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> </notification> <notification name="ReturnObjectsDeededToGroup"> - ä½ ç¢ºå®šè¦å°‡å’Œæœ¬åœŸåœ°åœ°æ®µçš„「[NAME]ã€ç¾¤çµ„分享的所有物件é€è¿”到原所有人的收ç´å€ï¼Ÿ + ä½ ç¢ºå®šè¦å°‡å’Œæœ¬åœŸåœ°åœ°æ®µçš„「<nolink>[NAME]</nolink>ã€ç¾¤çµ„分享的所有物件é€è¿”到原所有人的收ç´å€ï¼Ÿ è¦å‘Šï¼šé€™å‹•ä½œå°‡æœƒåˆªé™¤åŽŸå…ˆè®“渡給這群組的所有ä¸å¯è½‰è®“ç‰©ä»¶ï¼ @@ -424,7 +462,7 @@ <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - 將本地段裡未和 [NAME] 群組分享的物件é€è¿”給物主? + 將本地段裡未和<nolink>[NAME]</nolink>群組分享的物件é€è¿”給物主? 物件:[N] <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> @@ -472,7 +510,7 @@ ä¸Šå‚³èˆ‰å ±ç”¨å¿«ç…§æ™‚å‡ºå•é¡Œï¼ŒåŽŸå› :[REASON] </notification> <notification name="MustAgreeToLogIn"> - ä½ å¿…é ˆåŒæ„æœå‹™æ¢æ¬¾æ‰å¯ç¹¼çºŒç™»å…¥ [SECOND_LIFE]。 + ä½ å¿…é ˆåŒæ„Second Life使用æ¢æ¬¾ã€éš±ç§æ”¿ç–ã€æœå‹™æ¢æ¬¾æ‰å¯ç¹¼çºŒç™»å…¥[SECOND_LIFE]。 </notification> <notification name="CouldNotPutOnOutfit"> 無法穿上è£æ‰®ã€‚ @@ -725,7 +763,7 @@ <usetemplate name="okcancelbuttons" notext="å–消" yestext="踢出"/> </notification> <notification name="EjectAvatarFromGroup"> - ä½ å·²å°‡ [AVATAR_NAME] 由群組 [GROUP_NAME] ä¸è¸¢å‡º + ä½ å·²å°‡[AVATAR_NAME]由群組<nolink>[GROUP_NAME]</nolink>ä¸è¸¢å‡º </notification> <notification name="AcquireErrorTooManyObjects"> å–得錯誤:太多物件被é¸å–。 @@ -1319,7 +1357,7 @@ 若讓渡æ¤åœ°æ®µï¼Œé€™å€‹ç¾¤çµ„å°‡å¿…é ˆå…·å‚™ä¸¦ä¿æŒè¶³å¤ 的土地使用信用é¡åº¦ã€‚ 土地收購價將ä¸æœƒé€€é‚„給所有人。 如果讓渡的地段被售出,售出價將å‡åˆ†çµ¦æ¯ä½ç¾¤çµ„æˆå“¡ã€‚ -是å¦è®“渡這塊 [AREA] 平方公尺的土地給群組「[GROUP_NAME]ã€ï¼Ÿ +是å¦è®“渡這塊[AREA]平方公尺的土地給群組「<nolink>[GROUP_NAME]</nolink>ã€ï¼Ÿ <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> </notification> <notification name="DeedLandToGroupWithContribution"> @@ -1327,7 +1365,7 @@ æ¤ä¸€è®“渡將åŒæ™‚包括來自 [NAME] 的,給予群組的土地æç»ã€‚ 土地收購價將ä¸æœƒé€€é‚„給所有人。 如果讓渡的地段被售出,售出價將å‡åˆ†çµ¦æ¯ä½ç¾¤çµ„æˆå“¡ã€‚ -是å¦è®“渡這塊 [AREA] 平方公尺的土地給群組「[GROUP_NAME]ã€ï¼Ÿ +是å¦è®“渡這塊[AREA]平方公尺的土地給群組「<nolink>[GROUP_NAME]</nolink>ã€ï¼Ÿ <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> </notification> <notification name="DisplaySetToSafe"> @@ -1737,7 +1775,7 @@ SHA1 指紋:[MD5_DIGEST] <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> </notification> <notification name="GroupDepart"> - ä½ å·²ç¶“é›¢é–‹ã€Œ[group_name]ã€ç¾¤çµ„。 + ä½ å·²ç¶“é›¢é–‹ã€Œ<nolink>[group_name]</nolink>ã€ç¾¤çµ„。 </notification> <notification name="OwnerCannotLeaveGroup"> 無法離開群組。 ä½ æ˜¯æ¤ç¾¤çµ„僅å˜çš„所有人,ä¸å¾—離開群組。 請先把所有人è·éŠœæŒ‡æ´¾çµ¦å¦ä¸€äººã€‚ @@ -2008,6 +2046,10 @@ SHA1 指紋:[MD5_DIGEST] ä½ ç¢ºå®šè¦æ›´æ”¹é ˜åœ°å¥‘約? <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> </notification> + <notification name="EstateParcelAccessOverride"> + è‹¥ä¸å‹¾é¸é€™é¸é …,å¯èƒ½æœƒç§»é™¤åœ°æ®µæ‰€æœ‰äººç‚ºé˜²æ¢æƒ¡æ„騷擾åŠç‚ºç¶è·éš±ç§ã€ä¿è·å¹¼æœªæˆå¹´å±…æ°‘ä¸æŽ¥è§¸æˆå¹´é™åˆ¶ç´šå…§å®¹çš„é™åˆ¶æŽªæ–½ã€‚ 若有必è¦è«‹èˆ‡åœ°æ®µæ‰€æœ‰äººæºé€šã€‚ + <usetemplate name="okbutton" yestext="確定"/> + </notification> <notification name="RegionEntryAccessBlocked"> ä½ æ‰€æ¬²å‰å¾€çš„地å€å«æœ‰è¶…éŽä½ ç›®å‰å好的分級的內容。 ä½ å¯ä»¥åˆ°ã€Œæˆ‘自己 > å好è¨å®š > 一般è¨å®šã€è®Šæ›´ä½ çš„å好è¨å®šã€‚ <usetemplate name="okbutton" yestext="確定"/> @@ -2347,7 +2389,17 @@ SHA1 指紋:[MD5_DIGEST] </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="刪除物å“å‰ç¢ºèª" name="okcancelignore" notext="å–消" yestext="確定"/> + <form name="form"> + <ignore name="ignore" text="刪除物å“å‰ç¢ºèª"/> + <button name="Yes" text="確定"/> + <button name="No" text="å–消"/> + </form> + </notification> + <notification name="DeleteFilteredItems"> + ä½ çš„æ”¶ç´å€ç›®å‰è¨æœ‰éŽæ¿¾æ¢ä»¶ï¼Œæ‰€ä»¥ä½ å³å°‡åˆªé™¤çš„ç‰©é …ä¸¦æœªå…¨éƒ¨é¡¯ç¤ºã€‚ + +ä½ ç¢ºå®šè¦åŠ 以刪除? + <usetemplate ignoretext="刪除éŽæ¿¾æ¢ä»¶ç‰©é …å‰ï¼Œè®“我確èª" name="okcancelignore" notext="å–消" yestext="確定"/> </notification> <notification name="ConfirmUnlink"> 這是一組包å«è¯çµé›†çš„巨大é¸å–é …ã€‚ ä¸€æ—¦ä½ å–消它的è¯çµï¼Œå¾ˆå¯èƒ½ä¸èƒ½å†é‡æ–°è¯çµã€‚ 為防è¬ä¸€ï¼Œå»ºè°ä½ 把è¯çµé›†è¤‡è£½åˆ°æ”¶ç´å€ã€‚ @@ -2425,13 +2477,17 @@ SHA1 指紋:[MD5_DIGEST] 「[FOLDERNAME]ã€å±¬æ–¼ç³»çµ±è³‡æ–™å¤¾ã€‚ 刪除系統資料夾å¯èƒ½å°Žè‡´ç³»çµ±ä¸ç©©å®šã€‚ ä½ ç¢ºå®šè¦åŠ 以刪除? <usetemplate ignoretext="在我刪除系統資料夾å‰ç¢ºèª" name="okcancelignore" notext="å–消" yestext="確定"/> </notification> + <notification name="PurgeSelectedItems"> + [COUNT]å€‹ç‰©é …å°‡æœƒæ°¸ä¹…åˆªé™¤ã€‚ ä½ ç¢ºå®šä½ è¦æ°¸ä¹…刪除所é¸çš„垃圾ç’內容? + <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> + </notification> <notification name="ConfirmEmptyTrash"> - ä½ ç¢ºå®šä½ è¦å°ä½ 垃圾ç’ä¸çš„內容進行刪除? - <usetemplate ignoretext="在我清空收ç´å€åžƒåœ¾ç’資料夾å‰ç¢ºèª" name="okcancelignore" notext="å–消" yestext="確定"/> + [COUNT]å€‹ç‰©é …å°‡æœƒæ°¸ä¹…åˆªé™¤ã€‚ ä½ ç¢ºå®šä½ è¦æ°¸ä¹…刪除垃圾ç’ä¸çš„內容? + <usetemplate name="okcancelbuttons" notext="å–消" yestext="確定"/> </notification> <notification name="TrashIsFull"> ä½ çš„åžƒåœ¾æ¡¶å¿«æ»¿äº†ã€‚ 這å¯èƒ½æœƒé€ æˆç™»å…¥çš„å•é¡Œã€‚ - <usetemplate name="okcancelbuttons" notext="我ç¨å¾Œå†æ¸…空垃圾桶" yestext="ç¾åœ¨æ¸…空垃圾桶"/> + <usetemplate name="okcancelbuttons" notext="我ç¨å¾Œå†æ¸…空垃圾桶" yestext="檢查垃圾ç’資料夾"/> </notification> <notification name="ConfirmClearBrowserCache"> ä½ ç¢ºå®šè¦åˆªé™¤ä½ çš„æ—…è¡Œã€ç¶²é åŠæœå°‹æ·å²ç´€éŒ„嗎? @@ -2560,6 +2616,9 @@ SHA1 指紋:[MD5_DIGEST] <notification name="AddSelfFriend"> é›–ç„¶ä½ äººå¾ˆå¥½ï¼Œä½ é‚„æ˜¯ä¸èƒ½æŠŠè‡ªå·±åŠ 為朋å‹ã€‚ </notification> + <notification name="AddSelfRenderExceptions"> + ä½ ä¸èƒ½æŠŠè‡ªå·±åŠ 到呈åƒä¾‹å¤–清單裡。 + </notification> <notification name="UploadingAuctionSnapshot"> æ£åœ¨ä¸Šå‚³è™›æ“¬ä¸–界和網站快照… (需時約 5 分é˜ã€‚) @@ -2753,7 +2812,7 @@ SHA1 指紋:[MD5_DIGEST] 在所é¸åœ°æ®µä¸Šç”±å±…æ°‘ '[NAME]' 所æ“有的物件已被é€è¿”其收ç´å€ã€‚ </notification> <notification name="GroupObjectsReturned"> - 在所é¸åœ°æ®µä¸Šå’Œç¾¤çµ„ '[GROUPNAME]' 分享的物件已被é€è¿”其所有人的收ç´å€ã€‚ + 在所é¸åœ°æ®µä¸Šå’Œç¾¤çµ„「<nolink>[GROUPNAME]</nolink>ã€åˆ†äº«çš„物件已被é€è¿”其所有人的收ç´å€ã€‚ å¯è½‰è®“的已讓渡物件已é€è¿”給å‰ç‰©ä¸»ã€‚ 讓渡給這個群組的ä¸å¯è½‰è®“物件已被刪除。 </notification> @@ -3140,7 +3199,7 @@ SHA1 指紋:[MD5_DIGEST] </form> </notification> <notification name="ScriptDialogGroup"> - [GROUPNAME] çš„ '<nolink>[TITLE]</nolink>' + <nolink>[GROUPNAME]</nolink>的「<nolink>[TITLE]</nolink>〠[MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="å°éŽ–"/> @@ -3187,7 +3246,7 @@ SHA1 指紋:[MD5_DIGEST] [NAME] å·²å¾—çŸ¥ä½ è¦è´ˆé€æ”¶ç´ç‰©ä»¶ï¼Œä¸¦å·²è¢«è‡ªå‹•è§£é™¤å°éŽ–。 </notification> <notification name="VoiceInviteGroup"> - [NAME] å·²åŠ å…¥å’Œç¾¤çµ„ [GROUP] 的語音èŠå¤©é€šè©±ã€‚ + [NAME]å·²åŠ å…¥å’Œç¾¤çµ„<nolink>[GROUP]</nolink>的語音èŠå¤©é€šè©±ã€‚ 點按「接å—ã€åŠ 入通話,或「è¬çµ•ã€é‚€è«‹ã€‚ 點按「å°éŽ–ã€ä¾¿å¯å°éŽ–這個發話人。 <form name="form"> <button name="Accept" text="接å—"/> @@ -3296,6 +3355,9 @@ SHA1 指紋:[MD5_DIGEST] <notification name="AppearanceToXMLFailed"> 將外觀å˜ç‚ºXML失敗。 </notification> + <notification name="SnapshotToComputerFailed"> + 將快照儲å˜æ–¼[PATH]時失敗:ç£ç¢Ÿå·²æ»¿ã€‚ 需è¦[NEED_MEMORY]KB的空間,但åªå‰©[FREE_MEMORY]KB空間。 + </notification> <notification name="PresetNotSaved"> 儲å˜é è¨å稱[NAME]時出錯。 </notification> @@ -3333,10 +3395,15 @@ SHA1 指紋:[MD5_DIGEST] <notification name="ShareNotification"> é¸å–è¦åˆ†äº«çš„居民。 </notification> - <notification name="MeshUploadError"> - [LABEL] 上傳失敗:[MESSAGE] [IDENTIFIER] + <notification name="MeshUploadErrorDetails"> + [LABEL]上傳失敗:[MESSAGE] [DETAILS]詳情見 SecondLife.log </notification> + <notification name="MeshUploadError"> + [LABEL]上傳失敗:[MESSAGE] + +詳情見SecondLife.log + </notification> <notification name="MeshUploadPermError"> 請求網é¢ä¸Šå‚³æ¬Šé™æ™‚出錯。 </notification> diff --git a/indra/newview/skins/default/xui/zh/panel_main_inventory.xml b/indra/newview/skins/default/xui/zh/panel_main_inventory.xml index 4765276158..49553ecd18 100644 --- a/indra/newview/skins/default/xui/zh/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/zh/panel_main_inventory.xml @@ -12,10 +12,17 @@ <text name="ItemcountText"> 物å“: </text> - <filter_editor label="收ç´å€éŽæ¿¾å™¨" name="inventory search editor"/> + <filter_editor label="輸入æœå°‹æ–‡å—" name="inventory search editor"/> + <combo_box name="search_type"> + <item label="å稱" name="Name" value="search_by_name"/> + <item label="å‰µé€ è€…" name="Creator" value="search_by_creator"/> + <item label="æè¿°" name="Description" value="search_by_description"/> + <item label="UUID" name="UUID" value="search_by_UUID"/> + </combo_box> <tab_container name="inventory filter tabs"> <inventory_panel label="我的收ç´å€" name="All Items"/> <recent_inventory_panel label="最近" name="Recent Items"/> + <inventory_panel label="已穿戴" name="Worn Items"/> </tab_container> <layout_stack name="bottom_panel"> <layout_panel name="options_gear_btn_panel"> diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml b/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml index 57add4f9d6..ef26ced649 100644 --- a/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="æ–‡å—èŠå¤©" name="chat"> + <check_box initial_value="true" label="在附近èŠå¤©ä¸ï¼Œè‡ªå‹•å®Œæˆå§¿å‹¢" name="auto_complete_gestures"/> <panel name="general_chat_settings"> <check_box initial_value="true" label="èŠå¤©æ™‚呈ç¾æ‰“å—動作" name="play_typing_animation"/> <check_box label="當我離線時將收到的 IM 訊æ¯éƒµå¯„給我" name="send_im_to_email"/> diff --git a/indra/newview/skins/default/xui/zh/panel_region_estate.xml b/indra/newview/skins/default/xui/zh/panel_region_estate.xml index f3c1c85379..3825e7ab23 100644 --- a/indra/newview/skins/default/xui/zh/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/zh/panel_region_estate.xml @@ -15,38 +15,36 @@ <text name="estate_owner"> (未知) </text> - <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"/> - <text name="Only Allow"> - 僅å…許符åˆä»¥ä¸‹æ¢ä»¶çš„居民進入: - </text> - <check_box label="已經é 留付款資料" name="limit_payment" tool_tip="å±…æ°‘å¿…é ˆæ供付款資料æ‰èƒ½é€²å…¥é€™é ˜åœ°ã€‚ åƒé–± [SUPPORT_SITE] ç²å–進一æ¥è³‡è¨Šã€‚"/> - <check_box label="已年滿 18 æ²" name="limit_age_verified" tool_tip="å±…æ°‘å¿…é ˆå¹´æ»¿ 18 æ²æ‰èƒ½é€²å…¥é€™é ˜åœ°ã€‚ åƒé–± [SUPPORT_SITE] ç²å–進一æ¥è³‡è¨Šã€‚"/> + <radio_group name="externally_visible_radio"> + <radio_item label="åªå…許下列的居民和群組" name="estate_restricted_access"/> + <radio_item label="任何人都å¯é€ 訪" name="estate_public_access"/> + </radio_group> + <check_box label="å¿…é ˆæ»¿18æ²" name="limit_age_verified" tool_tip="å±…æ°‘å¿…é ˆå¹´æ»¿ 18 æ²æ‰èƒ½é€²å…¥é€™é ˜åœ°ã€‚ åƒé–± [SUPPORT_SITE] ç²å–進一æ¥è³‡è¨Šã€‚"/> + <check_box label="é ˆå…·å‚™é 留的付款資料" name="limit_payment" tool_tip="å±…æ°‘å¿…é ˆæ供付款資料æ‰èƒ½é€²å…¥é€™é ˜åœ°ã€‚ åƒé–± [SUPPORT_SITE] ç²å–進一æ¥è³‡è¨Šã€‚"/> + <check_box label="地段所有人å¯èƒ½æ–½åŠ 更多é™åˆ¶" name="parcel_access_override"/> <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="kick_user_from_estate_btn"/> <text name="estate_manager_label"> é ˜åœ°ç®¡ç†å“¡ï¼š </text> - <button label="移除..." name="remove_estate_manager_btn"/> - <button label="æ·»åŠ ..." name="add_estate_manager_btn"/> <text name="allow_resident_label"> - å…許的居民: + æ°¸é å…許: </text> - <button label="移除..." name="remove_allowed_avatar_btn"/> + <button label="æ·»åŠ ..." name="add_estate_manager_btn"/> + <button label="移除..." name="remove_estate_manager_btn"/> <button label="æ·»åŠ ..." name="add_allowed_avatar_btn"/> + <button label="移除..." name="remove_allowed_avatar_btn"/> <text name="allow_group_label"> - å…許的群組: + æ°¸é å…許的群組: </text> - <button label="移除..." name="remove_allowed_group_btn"/> - <button label="æ·»åŠ ..." name="add_allowed_group_btn"/> <text name="ban_resident_label"> - 被å°éŽ–的居民: + æ°¸é å°éŽ–: </text> - <button label="移除..." name="remove_banned_avatar_btn"/> + <button label="æ·»åŠ ..." name="add_allowed_group_btn"/> + <button label="移除..." name="remove_allowed_group_btn"/> <button label="æ·»åŠ ..." name="add_banned_avatar_btn"/> + <button label="移除..." name="remove_banned_avatar_btn"/> + <button label="é€å‡ºè¨Šæ¯åˆ°é ˜åœ°..." name="message_estate_btn"/> + <button label="ç”±é ˜åœ°å°‡å±…æ°‘è¸¢å‡º..." name="kick_user_from_estate_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/zh/panel_tools_texture.xml b/indra/newview/skins/default/xui/zh/panel_tools_texture.xml index 03f83693d6..9a4e2f68a8 100644 --- a/indra/newview/skins/default/xui/zh/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/zh/panel_tools_texture.xml @@ -26,6 +26,7 @@ <radio_item label="凹凸度(æ£äº¤ï¼‰" name="Bumpiness (normal)" value="1"/> <radio_item label="閃亮度(é¡å光)" name="Shininess (specular)" value="2"/> </radio_group> + <check_box initial_value="false" label="鎖ä½é‡è¦†" name="checkbox_sync_settings" tool_tip="åŒæ™‚èª¿æ•´æ‰€æœ‰æ˜ å°„çš„é‡è¦†"/> <texture_picker label="æ質" name="texture control" tool_tip="點按以挑é¸åœ–片"/> <text name="label alphamode"> åŠé€æ˜Žæ¨¡å¼ diff --git a/indra/newview/skins/default/xui/zh/role_actions.xml b/indra/newview/skins/default/xui/zh/role_actions.xml index 0a3ef8c710..0442325104 100644 --- a/indra/newview/skins/default/xui/zh/role_actions.xml +++ b/indra/newview/skins/default/xui/zh/role_actions.xml @@ -38,7 +38,7 @@ <action description="固定å…許「編輯地形ã€" longdescription="èº«è² å…·æ¤èƒ½åŠ›çš„角色的æˆå“¡å¯ä»¥åœ¨ç¾¤çµ„所有地段上編輯地形,無論這功能在「土地資料ã€> é¸é …é 籤裡是å¦è¢«ç¦æ¢ã€‚" name="land allow edit land" value="23"/> <action description="固定å…許「飛行ã€" longdescription="èº«è² å…·æ¤èƒ½åŠ›çš„角色的æˆå“¡å¯ä»¥åœ¨ç¾¤çµ„所有地段上飛行,無論這能力是å¦åœ¨ã€ŒåœŸåœ°è³‡æ–™ã€> é¸é …é 籤裡被ç¦æ¢ã€‚" name="land allow fly" value="24"/> <action description="固定å…許「新建物件ã€" longdescription="èº«è² å…·æ¤èƒ½åŠ›çš„角色的æˆå“¡å¯ä»¥åœ¨ç¾¤çµ„所有地段上新建物件,無論這能力是å¦åœ¨ã€ŒåœŸåœ°è³‡æ–™ã€> é¸é …é 籤裡被ç¦æ¢ã€‚" name="land allow create" value="25"/> - <action description="總是å…許「新建地標ã€" longdescription="èº«è² å…·æ¤èƒ½åŠ›çš„角色的æˆå“¡å¯ä»¥å°‡ç¾¤çµ„所有的地段è¨ç‚ºåœ°æ¨™ï¼Œç„¡è«–這能力是å¦åœ¨ã€ŒåœŸåœ°è³‡æ–™ã€> é¸é …é 籤裡被ç¦æ¢ã€‚" name="land allow landmark" value="26"/> + <action description="忽略é™è½é»ž" longdescription="èº«è² å…·æ¤èƒ½åŠ›çš„角色的æˆå“¡å¯ä»¥ç›´æŽ¥çž¬é–“傳é€åˆ°ä¸€å€‹ç¾¤çµ„所有的地段,å³ä½¿ã€ŒåœŸåœ°è³‡æ–™ã€>「é¸é …ã€é 籤裡已è¨å®šäº†æŸå€‹é™è½é»žã€‚" name="land allow direct teleport" value="26"/> <action description="å…許在群組所有土地上「將這裡è¨ç‚ºæˆ‘的家ã€" longdescription="èº«è² å…·æ¤èƒ½åŠ›çš„角色的æˆå“¡ï¼Œå¯ä»¥åœ¨è®“渡給這群組的地段上使用「世界ã€é¸å–® > 地標 > 「將這裡è¨ç‚ºæˆ‘的家ã€ã€‚" name="land allow set home" value="28"/> <action description="å…許在群組所有土地上「開辦活動ã€" longdescription="èº«è² å…·é€™èƒ½åŠ›çš„è§’è‰²çš„æˆå“¡ï¼Œå¯ä»¥é¸æ“‡ç¾¤çµ„æ‰€æœ‰çš„åœ°æ®µä½œç‚ºé–‹è¾¦æ´»å‹•çš„å ´åœ°ã€‚" name="land allow host event" value="41"/> </action_set> diff --git a/indra/newview/skins/default/xui/zh/strings.xml b/indra/newview/skins/default/xui/zh/strings.xml index 7490c01cc1..749d4c676c 100644 --- a/indra/newview/skins/default/xui/zh/strings.xml +++ b/indra/newview/skins/default/xui/zh/strings.xml @@ -260,8 +260,7 @@ http://secondlife.com/viewer-access-faq </string> <string name="LoginFailedAccountDisabled"> æ¤æ™‚無法完æˆä½ 的請求。 -請到 http://secondlife.com/support è¯çµ¡æ”¯æ´äººå“¡ç²å¾—幫助。 -å¦‚æžœä½ ç„¡æ³•è®Šæ›´å¯†ç¢¼ï¼Œè«‹è‡´é›» (866) 476-9763 (美國)。 +請到 http://support.secondlife.com è¯çµ¡æ”¯æ´äººå“¡ç²å¾—幫助。 </string> <string name="LoginFailedTransformError"> 登入時的資料ä¸ä¸€è‡´ã€‚ @@ -696,6 +695,19 @@ http://secondlife.com/viewer-access-faq <string name="AssetErrorUnknownStatus"> 未知狀態 </string> + <string name="AssetUploadServerUnreacheble"> + æœå‹™ç„¡æ³•å–得。 + </string> + <string name="AssetUploadServerDifficulties"> + 伺æœå™¨ç™¼ç”Ÿæ„料外的困難。 + </string> + <string name="AssetUploadServerUnavaliable"> + 無法æä¾›æœå‹™ï¼Œæˆ–者上傳逾時。 + </string> + <string name="AssetUploadRequestInvalid"> + 上傳è¦æ±‚發生錯誤。 è«‹åƒè¦‹ï¼š +http://secondlife.com/support 求助解決å•é¡Œã€‚ + </string> <string name="texture"> æ質 </string> @@ -2190,10 +2202,19 @@ http://secondlife.com/viewer-access-faq ä½ ç‚º [OWNER] 管ç†çš„å…¨éƒ¨é ˜åœ° </string> <string name="RegionInfoAllowedResidents"> - å…許居民:([ALLOWEDAGENTS],最多 [MAXACCESS]) + æ°¸é å…許:([ALLOWEDAGENTS],最多 [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - å…許的群組:([ALLOWEDGROUPS],最多 [MAXACCESS]) + æ°¸é å…許的群組:([ALLOWEDGROUPS],最多 [MAXACCESS]) + </string> + <string name="RegionInfoBannedResidents"> + æ°¸é å°éŽ–:([BANNEDAGENTS],最多å¯å°éŽ– [MAXBANNED] å) + </string> + <string name="RegionInfoListTypeAllowedAgents"> + æ°¸é å…許 + </string> + <string name="RegionInfoListTypeBannedAgents"> + æ°¸é å°éŽ– </string> <string name="ScriptLimitsParcelScriptMemory"> 地段腳本記憶體 diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 5cee88ca32..f930e8b2ce 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -32,11 +32,13 @@ import os.path import shutil import errno import json +import plistlib +import random import re +import stat +import subprocess import tarfile import time -import random -import subprocess viewer_dir = os.path.dirname(__file__) # Add indra/lib/python to our path so we don't have to muck with PYTHONPATH. @@ -290,6 +292,129 @@ class ViewerManifest(LLManifest): random.shuffle(names) return ', '.join(names) + def relsymlinkf(self, src, dst=None, catch=True): + """ + relsymlinkf() is just like symlinkf(), but instead of requiring the + caller to pass 'src' as a relative pathname, this method expects 'src' + to be absolute, and creates a symlink whose target is the relative + path from 'src' to dirname(dst). + """ + dstdir, dst = self._symlinkf_prep_dst(src, dst) + + # Determine the relative path starting from the directory containing + # dst to the intended src. + src = self.relpath(src, dstdir) + + self._symlinkf(src, dst, catch) + return dst + + def symlinkf(self, src, dst=None, catch=True): + """ + Like ln -sf, but uses os.symlink() instead of running ln. This creates + a symlink at 'dst' that points to 'src' -- see: + https://docs.python.org/2/library/os.html#os.symlink + + If you omit 'dst', this creates a symlink with basename(src) at + get_dst_prefix() -- in other words: put a symlink to this pathname + here at the current dst prefix. + + 'src' must specifically be a *relative* symlink. It makes no sense to + create an absolute symlink pointing to some path on the build machine! + + Also: + - We prepend 'dst' with the current get_dst_prefix(), so it has similar + meaning to associated self.path() calls. + - We ensure that the containing directory os.path.dirname(dst) exists + before attempting the symlink. + + If you pass catch=False, exceptions will be propagated instead of + caught. + """ + dstdir, dst = self._symlinkf_prep_dst(src, dst) + self._symlinkf(src, dst, catch) + return dst + + def _symlinkf_prep_dst(self, src, dst): + # helper for relsymlinkf() and symlinkf() + if dst is None: + dst = os.path.basename(src) + dst = os.path.join(self.get_dst_prefix(), dst) + # Seems silly to prepend get_dst_prefix() to dst only to call + # os.path.dirname() on it again, but this works even when the passed + # 'dst' is itself a pathname. + dstdir = os.path.dirname(dst) + self.cmakedirs(dstdir) + return (dstdir, dst) + + def _symlinkf(self, src, dst, catch): + # helper for relsymlinkf() and symlinkf() + # the passed src must be relative + if os.path.isabs(src): + raise ManifestError("Do not symlinkf(absolute %r, asis=True)" % src) + + # The outer catch is the one that reports failure even after attempted + # recovery. + try: + # At the inner layer, recovery may be possible. + try: + os.symlink(src, dst) + except OSError as err: + if err.errno != errno.EEXIST: + raise + # We could just blithely attempt to remove and recreate the target + # file, but that strategy doesn't work so well if we don't have + # permissions to remove it. Check to see if it's already the + # symlink we want, which is the usual reason for EEXIST. + elif os.path.islink(dst): + if os.readlink(dst) == src: + # the requested link already exists + pass + else: + # dst is the wrong symlink; attempt to remove and recreate it + os.remove(dst) + os.symlink(src, dst) + elif os.path.isdir(dst): + print "Requested symlink (%s) exists but is a directory; replacing" % dst + shutil.rmtree(dst) + os.symlink(src, dst) + elif os.path.exists(dst): + print "Requested symlink (%s) exists but is a file; replacing" % dst + os.remove(dst) + os.symlink(src, dst) + else: + # out of ideas + raise + except Exception as err: + # report + print "Can't symlink %r -> %r: %s: %s" % \ + (dst, src, err.__class__.__name__, err) + # if caller asked us not to catch, re-raise this exception + if not catch: + raise + + def relpath(self, path, base=None, symlink=False): + """ + Return the relative path from 'base' to the passed 'path'. If base is + omitted, self.get_dst_prefix() is assumed. In other words: make a + same-name symlink to this path right here in the current dest prefix. + + Normally we resolve symlinks. To retain symlinks, pass symlink=True. + """ + if base is None: + base = self.get_dst_prefix() + + # Since we use os.path.relpath() for this, which is purely textual, we + # must ensure that both pathnames are absolute. + if symlink: + # symlink=True means: we know path is (or indirects through) a + # symlink, don't resolve, we want to use the symlink. + abspath = os.path.abspath + else: + # symlink=False means to resolve any symlinks we may find + abspath = os.path.realpath + + return os.path.relpath(abspath(path), abspath(base)) + class WindowsManifest(ViewerManifest): # We want the platform, per se, for every Windows build to be 'win'. The @@ -308,6 +433,8 @@ class WindowsManifest(ViewerManifest): # This is used to test a dll manifest. # It is used as a temporary override during the construct method from test_win32_manifest import test_assembly_binding + # TODO: This is redundant with LLManifest.copy_action(). Why aren't we + # calling copy_action() in conjunction with test_assembly_binding()? if src and (os.path.exists(src) or os.path.islink(src)): # ensure that destination path exists self.cmakedirs(os.path.dirname(dst)) @@ -328,6 +455,8 @@ class WindowsManifest(ViewerManifest): # It is used as a temporary override during the construct method from test_win32_manifest import test_assembly_binding from test_win32_manifest import NoManifestException, NoMatchingAssemblyException + # TODO: This is redundant with LLManifest.copy_action(). Why aren't we + # calling copy_action() in conjunction with test_assembly_binding()? if src and (os.path.exists(src) or os.path.islink(src)): # ensure that destination path exists self.cmakedirs(os.path.dirname(dst)) @@ -356,19 +485,16 @@ class WindowsManifest(ViewerManifest): pkgdir = os.path.join(self.args['build'], os.pardir, 'packages') relpkgdir = os.path.join(pkgdir, "lib", "release") debpkgdir = os.path.join(pkgdir, "lib", "debug") - vmpdir = os.path.join(pkgdir, "VMP") - llbasedir = os.path.join(pkgdir, "lib", "python", "llbase") if self.is_packaging_viewer(): # Find secondlife-bin.exe in the 'configuration' dir, then rename it to the result of final_exe. self.path(src='%s/secondlife-bin.exe' % self.args['configuration'], dst=self.final_exe()) - # include the compiled launcher scripts so that it gets included in the file_list - self.path(src='%s/download_update.exe' % vmpdir, dst="download_update.exe") - self.path(src='%s/SL_Launcher.exe' % vmpdir, dst="SL_Launcher.exe") - - #IUM is not normally executed directly, just imported. No exe needed. - self.path2basename(vmpdir,"InstallerUserMessage.py") + with self.prefix(src=os.path.join(pkgdir, "VMP"), dst=""): + # include the compiled launcher scripts so that it gets included in the file_list + self.path('SL_Launcher.exe') + #IUM is not normally executed directly, just imported. No exe needed. + self.path("InstallerUserMessage.py") with self.prefix(src=self.icon_path(), dst="vmp_icons"): self.path("secondlife.ico") @@ -379,12 +505,9 @@ class WindowsManifest(ViewerManifest): self.path("*.gif") #before, we only needed llbase at build time. With VMP, we need it at run time. - llbase_path = os.path.join(self.get_dst_prefix(),'llbase') - if not os.path.exists(llbase_path): - os.makedirs(llbase_path) - with self.prefix(dst="llbase"): - self.path2basename(llbasedir,"*.py") - self.path2basename(llbasedir,"_cllsd.so") + with self.prefix(src=os.path.join(pkgdir, "lib", "python", "llbase"), dst="llbase"): + self.path("*.py") + self.path("_cllsd.so") # Plugin host application self.path2basename(os.path.join(os.pardir, @@ -483,31 +606,19 @@ class WindowsManifest(ViewerManifest): self.path("media_plugin_example.dll") # CEF runtime files - debug - if self.args['configuration'].lower() == 'debug': - with self.prefix(src=os.path.join(os.pardir, 'packages', 'bin', 'debug'), dst="llplugin"): - self.path("chrome_elf.dll") - self.path("d3dcompiler_43.dll") - self.path("d3dcompiler_47.dll") - self.path("libcef.dll") - self.path("libEGL.dll") - self.path("libGLESv2.dll") - self.path("dullahan_host.exe") - self.path("natives_blob.bin") - self.path("snapshot_blob.bin") - self.path("widevinecdmadapter.dll") - else: # CEF runtime files - not debug (release, relwithdebinfo etc.) - with self.prefix(src=os.path.join(os.pardir, 'packages', 'bin', 'release'), dst="llplugin"): - self.path("chrome_elf.dll") - self.path("d3dcompiler_43.dll") - self.path("d3dcompiler_47.dll") - self.path("libcef.dll") - self.path("libEGL.dll") - self.path("libGLESv2.dll") - self.path("dullahan_host.exe") - self.path("natives_blob.bin") - self.path("snapshot_blob.bin") - self.path("widevinecdmadapter.dll") + config = 'debug' if self.args['configuration'].lower() == 'debug' else 'release' + with self.prefix(src=os.path.join(pkgdir, 'bin', config), dst="llplugin"): + self.path("chrome_elf.dll") + self.path("d3dcompiler_43.dll") + self.path("d3dcompiler_47.dll") + self.path("libcef.dll") + self.path("libEGL.dll") + self.path("libGLESv2.dll") + self.path("dullahan_host.exe") + self.path("natives_blob.bin") + self.path("snapshot_blob.bin") + self.path("widevinecdmadapter.dll") # MSVC DLLs needed for CEF and have to be in same directory as plugin with self.prefix(src=os.path.join(os.pardir, 'sharedlibs', 'Release'), dst="llplugin"): @@ -515,7 +626,7 @@ class WindowsManifest(ViewerManifest): self.path("msvcr120.dll") # CEF files common to all configurations - with self.prefix(src=os.path.join(os.pardir, 'packages', 'resources'), dst="llplugin"): + with self.prefix(src=os.path.join(pkgdir, 'resources'), dst="llplugin"): self.path("cef.pak") self.path("cef_100_percent.pak") self.path("cef_200_percent.pak") @@ -523,7 +634,7 @@ class WindowsManifest(ViewerManifest): self.path("devtools_resources.pak") self.path("icudtl.dat") - with self.prefix(src=os.path.join(os.pardir, 'packages', 'resources', 'locales'), dst=os.path.join('llplugin', 'locales')): + with self.prefix(src=os.path.join(pkgdir, 'resources', 'locales'), dst=os.path.join('llplugin', 'locales')): self.path("am.pak") self.path("ar.pak") self.path("bg.pak") @@ -578,7 +689,7 @@ class WindowsManifest(ViewerManifest): self.path("zh-CN.pak") self.path("zh-TW.pak") - with self.prefix(src=os.path.join(os.pardir, 'packages', 'bin', 'release'), dst="llplugin"): + with self.prefix(src=os.path.join(pkgdir, 'bin', 'release'), dst="llplugin"): self.path("libvlc.dll") self.path("libvlccore.dll") self.path("plugins/") @@ -697,7 +808,6 @@ class WindowsManifest(ViewerManifest): # note that the enclosing setup exe is signed later, after the makensis makes it. # Unlike the viewer binary, the VMP filenames are invariant with respect to version, os, etc. for exe in ( - "download_update.exe", "SL_Launcher.exe", ): self.sign(exe) @@ -715,7 +825,7 @@ class WindowsManifest(ViewerManifest): nsis_retry_wait=15 for attempt in xrange(nsis_attempts): try: - self.run_command('"' + NSIS_path + '" /V2 ' + self.dst_path_of(tempfile)) + self.run_command([NSIS_path, '/V2', self.dst_path_of(tempfile)]) except ManifestError as err: if attempt+1 < nsis_attempts: print >> sys.stderr, "nsis failed, waiting %d seconds before retrying" % nsis_retry_wait @@ -738,8 +848,7 @@ class WindowsManifest(ViewerManifest): if os.path.exists(sign_py): dst_path = self.dst_path_of(exe) print "about to run signing of: ", dst_path - self.run_command(' '.join((python, self.escape_slashes(sign_py), - self.escape_slashes(dst_path)))) + self.run_command([python, sign_py, dst_path]) else: print "Skipping code signing of %s: %s not found" % (exe, sign_py) @@ -767,310 +876,392 @@ class DarwinManifest(ViewerManifest): return True def construct(self): + # These are the names of the top-level application and the embedded + # applications for the VMP and for the actual viewer, respectively. + # These names, without the .app suffix, determine the flyover text for + # their corresponding Dock icons. + toplevel_app, toplevel_icon = "Second Life.app", "secondlife.icns" + launcher_app, launcher_icon = "Second Life Launcher.app", "secondlife.icns" + viewer_app, viewer_icon = "Second Life Viewer.app", "secondlife.icns" + # copy over the build result (this is a no-op if run within the xcode script) - self.path(self.args['configuration'] + "/Second Life.app", dst="") + self.path(os.path.join(self.args['configuration'], toplevel_app), dst="") pkgdir = os.path.join(self.args['build'], os.pardir, 'packages') relpkgdir = os.path.join(pkgdir, "lib", "release") debpkgdir = os.path.join(pkgdir, "lib", "debug") - vmpdir = os.path.join(pkgdir, "VMP") - llbasedir = os.path.join(pkgdir, "lib", "python", "llbase") - requestsdir = os.path.join(pkgdir, "lib", "python", "requests") - urllib3dir = os.path.join(pkgdir, "lib", "python", "urllib3") - chardetdir = os.path.join(pkgdir, "lib", "python", "chardet") - idnadir = os.path.join(pkgdir, "lib", "python", "idna") + # -------------------- top-level Second Life.app --------------------- + # top-level Second Life application is only a container with self.prefix(src="", dst="Contents"): # everything goes in Contents - self.path("Info.plist", dst="Info.plist") - - # copy additional libs in <bundle>/Contents/MacOS/ - self.path(os.path.join(relpkgdir, "libndofdev.dylib"), dst="Resources/libndofdev.dylib") - self.path(os.path.join(relpkgdir, "libhunspell-1.3.0.dylib"), dst="Resources/libhunspell-1.3.0.dylib") - - with self.prefix(dst="MacOS"): - #this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322, SL-323 - self.path2basename(vmpdir,"SL_Launcher") - self.path2basename(vmpdir,"*.py") - # certifi will be imported by requests; this is our custom version to get our ca-bundle.crt - certifi_path = os.path.join(self.get_dst_prefix(),'certifi') - if not os.path.exists(certifi_path): - os.makedirs(certifi_path) - with self.prefix(dst="certifi"): - self.path2basename(os.path.join(vmpdir,"certifi"),"*") - # llbase provides our llrest service layer and llsd decoding - llbase_path = os.path.join(self.get_dst_prefix(),'llbase') - if not os.path.exists(llbase_path): - os.makedirs(llbase_path) - with self.prefix(dst="llbase"): - self.path2basename(llbasedir,"*.py") - self.path2basename(llbasedir,"_cllsd.so") - #requests module needed by llbase/llrest.py - #this is only needed on POSIX, because in Windows we compile it into the EXE - requests_path = os.path.join(self.get_dst_prefix(),'requests') - if not os.path.exists(requests_path): - os.makedirs(requests_path) - with self.prefix(dst="requests"): - self.path2basename(requestsdir,"*") - urllib3_path = os.path.join(self.get_dst_prefix(),'urllib3') - if not os.path.exists(urllib3_path): - os.makedirs(urllib3_path) - with self.prefix(dst="urllib3"): - self.path2basename(urllib3dir,"*") - chardet_path = os.path.join(self.get_dst_prefix(),'chardet') - if not os.path.exists(chardet_path): - os.makedirs(chardet_path) - with self.prefix(dst="chardet"): - self.path2basename(chardetdir,"*") - idna_path = os.path.join(self.get_dst_prefix(),'idna') - if not os.path.exists(idna_path): - os.makedirs(idna_path) - with self.prefix(dst="idna"): - self.path2basename(idnadir,"*") - - # most everything goes in the Resources directory - with self.prefix(src="", dst="Resources"): - super(DarwinManifest, self).construct() - - with self.prefix("cursors_mac"): - self.path("*.tif") - - self.path("licenses-mac.txt", dst="licenses.txt") - self.path("featuretable_mac.txt") - self.path("SecondLife.nib") - self.path("ca-bundle.crt") - - icon_path = self.icon_path() - with self.prefix(src=icon_path, dst="") : - self.path("secondlife.icns") - - with self.prefix(src=icon_path, dst="vmp_icons"): - self.path("secondlife.ico") + # top-level Info.plist is as generated by CMake + Info_plist = "Info.plist" + ## This self.path() call reports 0 files... skip? + self.path(Info_plist) + Info_plist = self.dst_path_of(Info_plist) + + # the one file in top-level MacOS directory is the trampoline to + # our nested launcher_app + with self.prefix(dst="MacOS"): + toplevel_MacOS = self.get_dst_prefix() + trampoline = self.put_in_file("""\ +#!/bin/bash +open "%s" --args "$@" +""" % + # up one directory from MacOS to its sibling Resources directory + os.path.join('$(dirname "$0")', os.pardir, 'Resources', launcher_app), + "SL_Launcher", # write this file + "trampoline") # flag to add to list of copied files + # Script must be executable + self.run_command(["chmod", "+x", trampoline]) + + # Make a symlink to a nested app Frameworks directory that doesn't + # yet exist. We shouldn't need this; the only things that need + # Frameworks are nested apps under viewer_app, and they should + # simply find its Contents/Frameworks by relative pathnames. But + # empirically, we do: if we omit this symlink, CEF doesn't work -- + # the login splash screen doesn't even display. SIIIIGH. + # We're passing a path that's already relative, hence symlinkf() + # rather than relsymlinkf(). + self.symlinkf(os.path.join("Resources", viewer_app, "Contents", "Frameworks")) - #VMP Tkinter icons - with self.prefix("vmp_icons"): - self.path("*.png") - self.path("*.gif") - - self.path("SecondLife.nib") - - # Translations - self.path("English.lproj/language.txt") - self.replace_in(src="English.lproj/InfoPlist.strings", - dst="English.lproj/InfoPlist.strings", - searchdict={'%%VERSION%%':'.'.join(self.args['version'])} - ) - self.path("German.lproj") - self.path("Japanese.lproj") - self.path("Korean.lproj") - self.path("da.lproj") - self.path("es.lproj") - self.path("fr.lproj") - self.path("hu.lproj") - self.path("it.lproj") - self.path("nl.lproj") - self.path("pl.lproj") - self.path("pt.lproj") - self.path("ru.lproj") - self.path("tr.lproj") - self.path("uk.lproj") - self.path("zh-Hans.lproj") - - def path_optional(src, dst): - """ - For a number of our self.path() calls, not only do we want - to deal with the absence of src, we also want to remember - which were present. Return either an empty list (absent) - or a list containing dst (present). Concatenate these - return values to get a list of all libs that are present. - """ - # This was simple before we started needing to pass - # wildcards. Fortunately, self.path() ends up appending a - # (source, dest) pair to self.file_list for every expanded - # file processed. Remember its size before the call. - oldlen = len(self.file_list) - self.path(src, dst) - # The dest appended to self.file_list has been prepended - # with self.get_dst_prefix(). Strip it off again. - added = [os.path.relpath(d, self.get_dst_prefix()) - for s, d in self.file_list[oldlen:]] - if not added: - print "Skipping %s" % dst - return added - - # dylibs is a list of all the .dylib files we expect to need - # in our bundled sub-apps. For each of these we'll create a - # symlink from sub-app/Contents/Resources to the real .dylib. - # Need to get the llcommon dll from any of the build directories as well. - libfile = "libllcommon.dylib" - dylibs = path_optional(self.find_existing_file(os.path.join(os.pardir, - "llcommon", - self.args['configuration'], - libfile), - os.path.join(relpkgdir, libfile)), - dst=libfile) - - for libfile in ( - "libapr-1.0.dylib", - "libaprutil-1.0.dylib", - "libcollada14dom.dylib", - "libexpat.1.dylib", - "libexception_handler.dylib", - "libGLOD.dylib", - # libnghttp2.dylib is a symlink to - # libnghttp2.major.dylib, which is a symlink - # to libnghttp2.version.dylib. Get all of them. - "libnghttp2.*dylib", - ): - dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile) - - # SLVoice and vivox lols, no symlinks needed - for libfile in ( - 'libortp.dylib', - 'libsndfile.dylib', - 'libvivoxoal.dylib', - 'libvivoxsdk.dylib', - 'libvivoxplatform.dylib', - 'SLVoice', - ): - self.path2basename(relpkgdir, libfile) - - # dylibs that vary based on configuration - if self.args['configuration'].lower() == 'debug': - for libfile in ( - "libfmodexL.dylib", - ): - dylibs += path_optional(os.path.join(debpkgdir, libfile), libfile) - else: - for libfile in ( - "libfmodex.dylib", - ): - dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile) - - # our apps - for app_bld_dir, app in (("mac_crash_logger", "mac-crash-logger.app"), - # plugin launcher - (os.path.join("llplugin", "slplugin"), "SLPlugin.app"), - ): - self.path2basename(os.path.join(os.pardir, - app_bld_dir, self.args['configuration']), - app) - - # our apps dependencies on shared libs - # for each app, for each dylib we collected in dylibs, - # create a symlink to the real copy of the dylib. - resource_path = self.dst_path_of(os.path.join(app, "Contents", "Resources")) - for libfile in dylibs: - src = os.path.join(os.pardir, os.pardir, os.pardir, libfile) - dst = os.path.join(resource_path, libfile) - try: - symlinkf(src, dst) - except OSError as err: - print "Can't symlink %s -> %s: %s" % (src, dst, err) - - # Dullahan helper apps go inside SLPlugin.app - with self.prefix(src="", dst="SLPlugin.app/Contents/Frameworks"): - helperappfile = 'DullahanHelper.app' - self.path2basename(relpkgdir, helperappfile) - - pluginframeworkpath = self.dst_path_of('Chromium Embedded Framework.framework'); - # Putting a Frameworks directory under Contents/MacOS - # isn't canonical, but the path baked into Dullahan - # Helper.app/Contents/MacOS/DullahanHelper is: - # @executable_path/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework - # (notice, not @executable_path/../Frameworks/etc.) - # So we'll create a symlink (below) from there back to the - # Frameworks directory nested under SLPlugin.app. - helperframeworkpath = \ - self.dst_path_of('DullahanHelper.app/Contents/MacOS/' - 'Frameworks/Chromium Embedded Framework.framework') - - - helperexecutablepath = self.dst_path_of('SLPlugin.app/Contents/Frameworks/DullahanHelper.app/Contents/MacOS/DullahanHelper') - self.run_command('install_name_tool -change ' - '"@rpath/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" ' - '"@executable_path/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" "%s"' % helperexecutablepath) - - # SLPlugin plugins - with self.prefix(src="", dst="llplugin"): - self.path2basename("../media_plugins/cef/" + self.args['configuration'], - "media_plugin_cef.dylib") - - # copy LibVLC plugin itself - self.path2basename("../media_plugins/libvlc/" + self.args['configuration'], - "media_plugin_libvlc.dylib") - - # copy LibVLC dynamic libraries - with self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'release' ), dst="lib"): - self.path( "libvlc*.dylib*" ) - - # copy LibVLC plugins folder - with self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'release', 'plugins' ), dst="lib"): - self.path( "*.dylib" ) - self.path( "plugins.dat" ) - - - # do this install_name_tool *after* media plugin is copied over - dylibexecutablepath = self.dst_path_of('llplugin/media_plugin_cef.dylib') - self.run_command('install_name_tool -change ' - '"@rpath/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" ' - '"@executable_path/../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" "%s"' % dylibexecutablepath) - - - # CEF framework goes inside Second Life.app/Contents/Frameworks - with self.prefix(src="", dst="Frameworks"): - frameworkfile="Chromium Embedded Framework.framework" - self.path2basename(relpkgdir, frameworkfile) - - # This code constructs a relative path from the - # target framework folder back to the location of the symlink. - # It needs to be relative so that the symlink still works when - # (as is normal) the user moves the app bundle out of the DMG - # and into the /Applications folder. Note we also call 'raise' - # to terminate the process if we get an error since without - # this symlink, Second Life web media can't possibly work. - # Real Framework folder: - # Second Life.app/Contents/Frameworks/Chromium Embedded Framework.framework/ - # Location of symlink and why it's relative - # Second Life.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework/ - # Real Frameworks folder, with the symlink inside the bundled SLPlugin.app (and why it's relative) - # <top level>.app/Contents/Frameworks/Chromium Embedded Framework.framework/ - # <top level>.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework -> - # It might seem simpler just to create a symlink Frameworks to - # the parent of Chromimum Embedded Framework.framework. But - # that would create a symlink cycle, which breaks our - # packaging step. So make a symlink from Chromium Embedded - # Framework.framework to the directory of the same name, which - # is NOT an ancestor of the symlink. - frameworkpath = os.path.join(os.pardir, os.pardir, os.pardir, - os.pardir, "Frameworks", - "Chromium Embedded Framework.framework") - try: - # from SLPlugin.app/Contents/Frameworks/Chromium Embedded - # Framework.framework back to Second - # Life.app/Contents/Frameworks/Chromium Embedded Framework.framework - origin, target = pluginframeworkpath, frameworkpath - symlinkf(target, origin) - # from SLPlugin.app/Contents/Frameworks/Dullahan - # Helper.app/Contents/MacOS/Frameworks/Chromium Embedded - # Framework.framework back to - # SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework - self.cmakedirs(os.path.dirname(helperframeworkpath)) - origin = helperframeworkpath - target = os.path.join(os.pardir, frameworkpath) - symlinkf(target, origin) - except OSError as err: - print "Can't symlink %s -> %s: %s" % (origin, target, err) - raise + with self.prefix(src="", dst="Resources"): + # top-level Resources directory should be pretty sparse + # need .icns file referenced by top-level Info.plist + with self.prefix(src=self.icon_path(), dst="") : + self.path(toplevel_icon) + + # ------------------- nested launcher_app -------------------- + with self.prefix(dst=os.path.join(launcher_app, "Contents")): + # Info.plist is just like top-level one... + Info = plistlib.readPlist(Info_plist) + # except for these replacements: + Info["CFBundleExecutable"] = "SL_Launcher" + Info["CFBundleIconFile"] = launcher_icon + self.put_in_file( + plistlib.writePlistToString(Info), + os.path.basename(Info_plist), + "Info.plist") + + # copy VMP libs to MacOS + with self.prefix(dst="MacOS"): + #this copies over the python wrapper script, + #associated utilities and required libraries, see + #SL-321, SL-322, SL-323 + with self.prefix(src=os.path.join(pkgdir, "VMP"), dst=""): + self.path("SL_Launcher") + self.path("*.py") + # certifi will be imported by requests; this is + # our custom version to get our ca-bundle.crt + self.path("certifi") + with self.prefix(src=os.path.join(pkgdir, "lib", "python"), dst=""): + # llbase provides our llrest service layer and llsd decoding + with self.prefix("llbase"): + # (Why is llbase treated specially here? What + # DON'T we want to copy out of lib/python/llbase?) + self.path("*.py") + self.path("_cllsd.so") + #requests module needed by llbase/llrest.py + #this is only needed on POSIX, because in Windows + #we compile it into the EXE + for pypkg in "chardet", "idna", "requests", "urllib3": + self.path(pypkg) + + # launcher_app/Contents/Resources + with self.prefix(dst="Resources"): + with self.prefix(src=self.icon_path(), dst="") : + self.path(launcher_icon) + with self.prefix(dst="vmp_icons"): + self.path("secondlife.ico") + #VMP Tkinter icons + with self.prefix("vmp_icons"): + self.path("*.png") + self.path("*.gif") + + # -------------------- nested viewer_app --------------------- + with self.prefix(dst=os.path.join(viewer_app, "Contents")): + # Info.plist is just like top-level one... + Info = plistlib.readPlist(Info_plist) + # except for these replacements: + # (CFBundleExecutable may be moot: SL_Launcher directly + # runs the executable, instead of launching the app) + Info["CFBundleExecutable"] = "Second Life" + Info["CFBundleIconFile"] = viewer_icon + self.put_in_file( + plistlib.writePlistToString(Info), + os.path.basename(Info_plist), + "Info.plist") + + # CEF framework goes inside viewer_app/Contents/Frameworks. + # Remember where we parked this car. + with self.prefix(src="", dst="Frameworks"): + CEF_framework = "Chromium Embedded Framework.framework" + self.path2basename(relpkgdir, CEF_framework) + CEF_framework = self.dst_path_of(CEF_framework) + + with self.prefix(dst="MacOS"): + # CMake constructs the Second Life executable in the + # MacOS directory belonging to the top-level Second + # Life.app. Move it here. + here = self.get_dst_prefix() + relbase = os.path.realpath(os.path.dirname(Info_plist)) + self.cmakedirs(here) + for f in os.listdir(toplevel_MacOS): + if f == os.path.basename(trampoline): + # don't move the trampoline script we just made! + continue + fromwhere = os.path.join(toplevel_MacOS, f) + towhere = os.path.join(here, f) + print "Moving %s => %s" % \ + (self.relpath(fromwhere, relbase), + self.relpath(towhere, relbase)) + # now do it, only without relativizing paths + os.rename(fromwhere, towhere) + + # NOTE: the -S argument to strip causes it to keep + # enough info for annotated backtraces (i.e. function + # names in the crash log). 'strip' with no arguments + # yields a slightly smaller binary but makes crash + # logs mostly useless. This may be desirable for the + # final release. Or not. + if ("package" in self.args['actions'] or + "unpacked" in self.args['actions']): + self.run_command( + ['strip', '-S', self.dst_path_of('Second Life')]) + + with self.prefix(dst="Resources"): + # defer cross-platform file copies until we're in the right + # nested Resources directory + super(DarwinManifest, self).construct() + + with self.prefix(src=self.icon_path(), dst="") : + self.path(viewer_icon) + + with self.prefix(src=relpkgdir, dst=""): + self.path("libndofdev.dylib") + self.path("libhunspell-1.3.0.dylib") + + with self.prefix("cursors_mac"): + self.path("*.tif") + + self.path("licenses-mac.txt", dst="licenses.txt") + self.path("featuretable_mac.txt") + self.path("SecondLife.nib") + self.path("ca-bundle.crt") + + self.path("SecondLife.nib") + + # Translations + self.path("English.lproj/language.txt") + self.replace_in(src="English.lproj/InfoPlist.strings", + dst="English.lproj/InfoPlist.strings", + searchdict={'%%VERSION%%':'.'.join(self.args['version'])} + ) + self.path("German.lproj") + self.path("Japanese.lproj") + self.path("Korean.lproj") + self.path("da.lproj") + self.path("es.lproj") + self.path("fr.lproj") + self.path("hu.lproj") + self.path("it.lproj") + self.path("nl.lproj") + self.path("pl.lproj") + self.path("pt.lproj") + self.path("ru.lproj") + self.path("tr.lproj") + self.path("uk.lproj") + self.path("zh-Hans.lproj") + + def path_optional(src, dst): + """ + For a number of our self.path() calls, not only do we want + to deal with the absence of src, we also want to remember + which were present. Return either an empty list (absent) + or a list containing dst (present). Concatenate these + return values to get a list of all libs that are present. + """ + # This was simple before we started needing to pass + # wildcards. Fortunately, self.path() ends up appending a + # (source, dest) pair to self.file_list for every expanded + # file processed. Remember its size before the call. + oldlen = len(self.file_list) + self.path(src, dst) + # The dest appended to self.file_list has been prepended + # with self.get_dst_prefix(). Strip it off again. + added = [os.path.relpath(d, self.get_dst_prefix()) + for s, d in self.file_list[oldlen:]] + if not added: + print "Skipping %s" % dst + return added + + # dylibs is a list of all the .dylib files we expect to need + # in our bundled sub-apps. For each of these we'll create a + # symlink from sub-app/Contents/Resources to the real .dylib. + # Need to get the llcommon dll from any of the build directories as well. + libfile_parent = self.get_dst_prefix() + libfile = "libllcommon.dylib" + dylibs = path_optional(self.find_existing_file(os.path.join(os.pardir, + "llcommon", + self.args['configuration'], + libfile), + os.path.join(relpkgdir, libfile)), + dst=libfile) + + for libfile in ( + "libapr-1.0.dylib", + "libaprutil-1.0.dylib", + "libcollada14dom.dylib", + "libexpat.1.dylib", + "libexception_handler.dylib", + "libGLOD.dylib", + # libnghttp2.dylib is a symlink to + # libnghttp2.major.dylib, which is a symlink to + # libnghttp2.version.dylib. Get all of them. + "libnghttp2.*dylib", + ): + dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile) + + # SLVoice and vivox lols, no symlinks needed + for libfile in ( + 'libortp.dylib', + 'libsndfile.dylib', + 'libvivoxoal.dylib', + 'libvivoxsdk.dylib', + 'libvivoxplatform.dylib', + 'SLVoice', + ): + self.path2basename(relpkgdir, libfile) + + # dylibs that vary based on configuration + if self.args['configuration'].lower() == 'debug': + for libfile in ( + "libfmodexL.dylib", + ): + dylibs += path_optional(os.path.join(debpkgdir, libfile), libfile) + else: + for libfile in ( + "libfmodex.dylib", + ): + dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile) + + # our apps + executable_path = {} + for app_bld_dir, app in (("mac_crash_logger", "mac-crash-logger.app"), + # plugin launcher + (os.path.join("llplugin", "slplugin"), "SLPlugin.app"), + ): + self.path2basename(os.path.join(os.pardir, + app_bld_dir, self.args['configuration']), + app) + executable_path[app] = \ + self.dst_path_of(os.path.join(app, "Contents", "MacOS")) + + # our apps dependencies on shared libs + # for each app, for each dylib we collected in dylibs, + # create a symlink to the real copy of the dylib. + with self.prefix(dst=os.path.join(app, "Contents", "Resources")): + for libfile in dylibs: + self.relsymlinkf(os.path.join(libfile_parent, libfile)) + + # Dullahan helper apps go inside SLPlugin.app + with self.prefix(dst=os.path.join( + "SLPlugin.app", "Contents", "Frameworks")): + + frameworkname = 'Chromium Embedded Framework' + + # This code constructs a relative symlink from the + # target framework folder back to the real CEF framework. + # It needs to be relative so that the symlink still works when + # (as is normal) the user moves the app bundle out of the DMG + # and into the /Applications folder. Note we pass catch=False, + # letting the uncaught exception terminate the process, since + # without this symlink, Second Life web media can't possibly work. + + # It might seem simpler just to symlink Frameworks back to + # the parent of Chromimum Embedded Framework.framework. But + # that would create a symlink cycle, which breaks our + # packaging step. So make a symlink from Chromium Embedded + # Framework.framework to the directory of the same name, which + # is NOT an ancestor of the symlink. + + # from SLPlugin.app/Contents/Frameworks/Chromium Embedded + # Framework.framework back to + # $viewer_app/Contents/Frameworks/Chromium Embedded Framework.framework + SLPlugin_framework = self.relsymlinkf(CEF_framework, catch=False) + + # copy DullahanHelper.app + self.path2basename(relpkgdir, 'DullahanHelper.app') + + # and fix that up with a Frameworks/CEF symlink too + with self.prefix(dst=os.path.join( + 'DullahanHelper.app', 'Contents', 'Frameworks')): + # from Dullahan Helper.app/Contents/Frameworks/Chromium Embedded + # Framework.framework back to + # SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework + # Since SLPlugin_framework is itself a + # symlink, don't let relsymlinkf() resolve -- + # explicitly call relpath(symlink=True) and + # create that symlink here. + DullahanHelper_framework = \ + self.symlinkf(self.relpath(SLPlugin_framework, symlink=True), + catch=False) + + # change_command includes install_name_tool, the + # -change subcommand and the old framework rpath + # stamped into the executable. To use it with + # run_command(), we must still append the new + # framework path and the pathname of the + # executable to change. + change_command = [ + 'install_name_tool', '-change', + '@rpath/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework'] + + with self.prefix(dst=os.path.join( + 'DullahanHelper.app', 'Contents', 'MacOS')): + # Now self.get_dst_prefix() is, at runtime, + # @executable_path. Locate the helper app + # framework (which is a symlink) from here. + newpath = os.path.join( + '@executable_path', + self.relpath(DullahanHelper_framework, symlink=True), + frameworkname) + # and restamp the DullahanHelper executable + self.run_command( + change_command + + [newpath, self.dst_path_of('DullahanHelper')]) + + # SLPlugin plugins + with self.prefix(dst="llplugin"): + dylibexecutable = 'media_plugin_cef.dylib' + self.path2basename("../media_plugins/cef/" + self.args['configuration'], + dylibexecutable) + + # Do this install_name_tool *after* media plugin is copied over. + # Locate the framework lib executable -- relative to + # SLPlugin.app/Contents/MacOS, which will be our + # @executable_path at runtime! + newpath = os.path.join( + '@executable_path', + self.relpath(SLPlugin_framework, executable_path["SLPlugin.app"], + symlink=True), + frameworkname) + # restamp media_plugin_cef.dylib + self.run_command( + change_command + + [newpath, self.dst_path_of(dylibexecutable)]) + # copy LibVLC plugin itself + self.path2basename("../media_plugins/libvlc/" + self.args['configuration'], + "media_plugin_libvlc.dylib") - # NOTE: the -S argument to strip causes it to keep enough info for - # annotated backtraces (i.e. function names in the crash log). 'strip' with no - # arguments yields a slightly smaller binary but makes crash logs mostly useless. - # This may be desirable for the final release. Or not. - if ("package" in self.args['actions'] or - "unpacked" in self.args['actions']): - self.run_command('strip -S %(viewer_binary)r' % - { 'viewer_binary' : self.dst_path_of('Contents/MacOS/Second Life')}) + # copy LibVLC dynamic libraries + with self.prefix(src=relpkgdir, dst="lib"): + self.path( "libvlc*.dylib*" ) + # copy LibVLC plugins folder + with self.prefix(src='plugins', dst=""): + self.path( "*.dylib" ) + self.path( "plugins.dat" ) def package_finish(self): global CHANNEL_VENDOR_BASE @@ -1086,9 +1277,10 @@ class DarwinManifest(ViewerManifest): # make sure we don't have stale files laying about self.remove(sparsename, finalname) - self.run_command('hdiutil create %(sparse)r -volname %(vol)r -fs HFS+ -type SPARSE -megabytes 1300 -layout SPUD' % { - 'sparse':sparsename, - 'vol':volname}) + self.run_command(['hdiutil', 'create', sparsename, + '-volname', volname, '-fs', 'HFS+', + '-type', 'SPARSE', '-megabytes', '1300', + '-layout', 'SPUD']) # mount the image and get the name of the mount point and device node try: @@ -1147,18 +1339,18 @@ class DarwinManifest(ViewerManifest): # well, possibly we've mistaken the nature of the problem. In any # case, don't hang up the whole build looping indefinitely, let # the original problem manifest by executing the desired command. - self.run_command('SetFile -a V %r' % pathname) + self.run_command(['SetFile', '-a', 'V', pathname]) # Create the alias file (which is a resource file) from the .r - self.run_command('Rez %r -o %r' % - (self.src_path_of("installers/darwin/release-dmg/Applications-alias.r"), - os.path.join(volpath, "Applications"))) + self.run_command( + ['Rez', self.src_path_of("installers/darwin/release-dmg/Applications-alias.r"), + '-o', os.path.join(volpath, "Applications")]) # Set the alias file's alias and custom icon bits - self.run_command('SetFile -a AC %r' % os.path.join(volpath, "Applications")) + self.run_command(['SetFile', '-a', 'AC', os.path.join(volpath, "Applications")]) # Set the disk image root's custom icon bit - self.run_command('SetFile -a C %r' % volpath) + self.run_command(['SetFile', '-a', 'C', volpath]) # Sign the app if requested; # do this in the copy that's in the .dmg so that the extended attributes used by @@ -1194,7 +1386,10 @@ class DarwinManifest(ViewerManifest): # and that it contains the correct cert/key. If a build host is set up with a clean version of macOS Sierra (or later) # then you will need to change this line (and the one for 'codesign' command below) to point to right place or else # pull in the cert/key into the default viewer keychain 'viewer.keychain-db' and export it to 'viewer.keychain' - self.run_command('security unlock-keychain -p "%s" "%s/Library/Keychains/viewer.keychain"' % ( keychain_pwd, home_path ) ) + viewer_keychain = os.path.join(home_path, 'Library', + 'Keychains', 'viewer.keychain') + self.run_command(['security', 'unlock-keychain', + '-p', keychain_pwd, viewer_keychain]) signed=False sign_attempts=3 sign_retry_wait=15 @@ -1203,11 +1398,9 @@ class DarwinManifest(ViewerManifest): sign_attempts-=1; self.run_command( # Note: See blurb above about names of keychains - 'codesign --verbose --deep --force --keychain "%(home_path)s/Library/Keychains/viewer.keychain" --sign %(identity)r %(bundle)r' % { - 'home_path' : home_path, - 'identity': identity, - 'bundle': app_in_dmg - }) + ['codesign', '--verbose', '--deep', '--force', + '--keychain', viewer_keychain, '--sign', identity, + app_in_dmg]) signed=True # if no exception was raised, the codesign worked except ManifestError as err: if sign_attempts: @@ -1217,18 +1410,19 @@ class DarwinManifest(ViewerManifest): else: print >> sys.stderr, "Maximum codesign attempts exceeded; giving up" raise - self.run_command('spctl -a -texec -vv %(bundle)r' % { 'bundle': app_in_dmg }) + self.run_command(['spctl', '-a', '-texec', '-vv', app_in_dmg]) imagename="SecondLife_" + '_'.join(self.args['version']) finally: # Unmount the image even if exceptions from any of the above - self.run_command('hdiutil detach -force %r' % devfile) + self.run_command(['hdiutil', 'detach', '-force', devfile]) print "Converting temp disk image to final disk image" - self.run_command('hdiutil convert %(sparse)r -format UDZO -imagekey zlib-level=9 -o %(final)r' % {'sparse':sparsename, 'final':finalname}) - self.run_command('hdiutil internet-enable -yes %(final)r' % {'final':finalname}) + self.run_command(['hdiutil', 'convert', sparsename, '-format', 'UDZO', + '-imagekey', 'zlib-level=9', '-o', finalname]) + self.run_command(['hdiutil', 'internet-enable', '-yes', finalname]) # get rid of the temp file self.package_file = finalname self.remove(sparsename) @@ -1275,18 +1469,15 @@ class LinuxManifest(ViewerManifest): self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin") self.path2basename("../llplugin/slplugin", "SLPlugin") #this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322 and SL-323 - self.path2basename("../viewer_components/manager","SL_Launcher") - self.path2basename("../viewer_components/manager","*.py") - llbase_path = os.path.join(self.get_dst_prefix(),'llbase') - if not os.path.exists(llbase_path): - os.makedirs(llbase_path) - with self.prefix(dst="llbase"): - self.path2basename("../packages/lib/python/llbase","*.py") - self.path2basename("../packages/lib/python/llbase","_cllsd.so") - - with self.prefix("res-sdl"): - self.path("*") - # recurse + with self.prefix(src="../viewer_components/manager", dst=""): + self.path("SL_Launcher") + self.path("*.py") + with self.prefix(src=os.path.join("lib", "python", "llbase"), dst="llbase"): + self.path("*.py") + self.path("_cllsd.so") + + # recurses, packaged again + self.path("res-sdl") # Get the icons based on the channel type icon_path = self.icon_path() @@ -1297,15 +1488,16 @@ class LinuxManifest(ViewerManifest): self.path("secondlife_256.BMP","ll_icon.BMP") # plugins - with self.prefix(src="", dst="bin/llplugin"): - self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so") - self.path("../media_plugins/libvlc/libmedia_plugin_libvlc.so", "libmedia_plugin_libvlc.so") + with self.prefix(src="../media_plugins", dst="bin/llplugin"): + self.path("gstreamer010/libmedia_plugin_gstreamer010.so", + "libmedia_plugin_gstreamer.so") + self.path2basename("libvlc", "libmedia_plugin_libvlc.so") - with self.prefix(src=os.path.join(os.pardir, 'packages', 'lib', 'vlc', 'plugins'), dst="bin/llplugin/vlc/plugins"): + with self.prefix(src=os.path.join(pkgdir, 'lib', 'vlc', 'plugins'), dst="bin/llplugin/vlc/plugins"): self.path( "plugins.dat" ) self.path( "*/*.so" ) - with self.prefix(src=os.path.join(os.pardir, 'packages', 'lib' ), dst="lib"): + with self.prefix(src=os.path.join(pkgdir, 'lib' ), dst="lib"): self.path( "libvlc*.so*" ) # llcommon @@ -1321,43 +1513,42 @@ class LinuxManifest(ViewerManifest): self.strip_binaries() # Fix access permissions - self.run_command(""" - find %(dst)s -type d | xargs --no-run-if-empty chmod 755; - find %(dst)s -type f -perm 0700 | xargs --no-run-if-empty chmod 0755; - find %(dst)s -type f -perm 0500 | xargs --no-run-if-empty chmod 0555; - find %(dst)s -type f -perm 0600 | xargs --no-run-if-empty chmod 0644; - find %(dst)s -type f -perm 0400 | xargs --no-run-if-empty chmod 0444; - true""" % {'dst':self.get_dst_prefix() }) + self.run_command(['find', self.get_dst_prefix(), + '-type', 'd', '-exec', 'chmod', '755', '{}', ';']) + for old, new in ('0700', '0755'), ('0500', '0555'), ('0600', '0644'), ('0400', '0444'): + self.run_command(['find', self.get_dst_prefix(), + '-type', 'f', '-perm', old, + '-exec', 'chmod', new, '{}', ';']) self.package_file = installer_name + '.tar.bz2' # temporarily move directory tree so that it has the right # name in the tarfile - self.run_command("mv %(dst)s %(inst)s" % { - 'dst': self.get_dst_prefix(), - 'inst': self.build_path_of(installer_name)}) + realname = self.get_dst_prefix() + tempname = self.build_path_of(installer_name) + self.run_command(["mv", realname, tempname]) try: # only create tarball if it's a release build. if self.args['buildtype'].lower() == 'release': # --numeric-owner hides the username of the builder for # security etc. - self.run_command('tar -C %(dir)s --numeric-owner -cjf ' - '%(inst_path)s.tar.bz2 %(inst_name)s' % { - 'dir': self.get_build_prefix(), - 'inst_name': installer_name, - 'inst_path':self.build_path_of(installer_name)}) + self.run_command(['tar', '-C', self.get_build_prefix(), + '--numeric-owner', '-cjf', + tempname + '.tar.bz2', installer_name]) else: print "Skipping %s.tar.bz2 for non-Release build (%s)" % \ (installer_name, self.args['buildtype']) finally: - self.run_command("mv %(inst)s %(dst)s" % { - 'dst': self.get_dst_prefix(), - 'inst': self.build_path_of(installer_name)}) + self.run_command(["mv", tempname, realname]) def strip_binaries(self): if self.args['buildtype'].lower() == 'release' and self.is_packaging_viewer(): print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build" # makes some small assumptions about our packaged dir structure - self.run_command(r"find %(d)r/bin %(d)r/lib -type f \! -name \*.py \! -name SL_Launcher \! -name update_install | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) + self.run_command( + ["find"] + + [os.path.join(self.get_dst_prefix(), dir) for dir in ('bin', 'lib')] + + ['-type', 'f', '!', '-name', '*.py', '!', '-name', 'SL_Launcher', + '!', '-name', 'update_install', '-exec', 'strip', '-S', '{}', ';']) class Linux_i686_Manifest(LinuxManifest): address_size = 32 @@ -1454,46 +1645,5 @@ class Linux_x86_64_Manifest(LinuxManifest): ################################################################ -def symlinkf(src, dst): - """ - Like ln -sf, but uses os.symlink() instead of running ln. - """ - try: - os.symlink(src, dst) - except OSError as err: - if err.errno != errno.EEXIST: - raise - # We could just blithely attempt to remove and recreate the target - # file, but that strategy doesn't work so well if we don't have - # permissions to remove it. Check to see if it's already the - # symlink we want, which is the usual reason for EEXIST. - elif os.path.islink(dst): - if os.readlink(dst) == src: - # the requested link already exists - pass - else: - # dst is the wrong symlink; attempt to remove and recreate it - os.remove(dst) - os.symlink(src, dst) - elif os.path.isdir(dst): - print "Requested symlink (%s) exists but is a directory; replacing" % dst - shutil.rmtree(dst) - os.symlink(src, dst) - elif os.path.exists(dst): - print "Requested symlink (%s) exists but is a file; replacing" % dst - os.remove(dst) - os.symlink(src, dst) - else: - # see if the problem is that the parent directory does not exist - # and try to explain what is missing - (parent, tail) = os.path.split(dst) - while not os.path.exists(parent): - (parent, tail) = os.path.split(parent) - if tail: - raise Exception("Requested symlink (%s) cannot be created because %s does not exist" - % os.path.join(parent, tail)) - else: - raise - if __name__ == "__main__": main() |