diff --git a/doc/contributions.txt b/doc/contributions.txt index c18d3eb17105c63ba9a3d48a02cf0cee6310647b..9b3087a0ac0173e6b33a0f48951f2d58ea3b724a 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -38,6 +38,7 @@ Aimee Trescothick VWR-11100 VWR-11111 VWR-11844 + VWR-14087 Alejandro Rosenthal VWR-1184 Aleric Inglewood @@ -551,6 +552,8 @@ Strife Onizuka VWR-183 VWR-2265 VWR-4111 +Tayra Dagostino + VWR-13947 TBBle Kurosawa VWR-938 VWR-941 @@ -567,6 +570,7 @@ Tharax Ferraris VWR-605 Thickbrick Sleaford VWR-7109 + VWR-13947 Thraxis Epsilon SVC-371 VWR-383 diff --git a/indra/integration_tests/llui_libtest/CMakeLists.txt b/indra/integration_tests/llui_libtest/CMakeLists.txt index 84e3477ce62933b9ea231bb169fc1d09f19995a3..452d37d3be7c6350efc9307be5489131b107328e 100644 --- a/indra/integration_tests/llui_libtest/CMakeLists.txt +++ b/indra/integration_tests/llui_libtest/CMakeLists.txt @@ -57,6 +57,8 @@ if (DARWIN) find_library(COCOA_LIBRARY Cocoa) set(OS_LIBRARIES ${COCOA_LIBRARY}) elseif (WINDOWS) + #ll_stack_trace needs this now... + list(APPEND WINDOWS_LIBRARIES dbghelp) set(OS_LIBRARIES ${WINDOWS_LIBRARIES}) elseif (LINUX) set(OS_LIBRARIES) @@ -95,6 +97,7 @@ if (WINDOWS) COMMAND ${CMAKE_COMMAND} -E copy_if_different ${OPENJPEG_DEBUG} ${CMAKE_CURRENT_BINARY_DIR} ) + endif (WINDOWS) # Ensure people working on the viewer don't break this library diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h index c0b0d72d9bd927fdd317a90f6229c938b5db0a0b..4836d41fb31b7cdd1ad917a68514e435b59461a5 100644 --- a/indra/llcommon/indra_constants.h +++ b/indra/llcommon/indra_constants.h @@ -286,6 +286,7 @@ const U8 UPD_UNIFORM = 0x10; // used with UPD_SCALE // Agent Update Flags (U8) const U8 AU_FLAGS_NONE = 0x00; const U8 AU_FLAGS_HIDETITLE = 0x01; +const U8 AU_FLAGS_CLIENT_AUTOPILOT = 0x02; // start location constants const U32 START_LOCATION_ID_LAST = 0; diff --git a/indra/llcommon/lllslconstants.h b/indra/llcommon/lllslconstants.h index 7cd854febd0029460563ae64b960a7df3973347b..a626e3f085540b25044bf8596a43dba4c830c499 100644 --- a/indra/llcommon/lllslconstants.h +++ b/indra/llcommon/lllslconstants.h @@ -48,6 +48,7 @@ const U32 AGENT_TYPING = 0x0200; const U32 AGENT_CROUCHING = 0x0400; const U32 AGENT_BUSY = 0x0800; const U32 AGENT_ALWAYS_RUN = 0x1000; +const U32 AGENT_AUTOPILOT = 0x2000; const S32 LSL_REMOTE_DATA_CHANNEL = 1; const S32 LSL_REMOTE_DATA_REQUEST = 2; diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp index 8052da24505212ec908d5d39c4e5be6c844f570e..6516d1779ea404ca53fe34628e1b0843833257a1 100644 --- a/indra/llcommon/llstring.cpp +++ b/indra/llcommon/llstring.cpp @@ -155,7 +155,7 @@ S32 wchar_to_utf8chars(llwchar in_char, char* outchars) *outchars++ = 0xF0 | (cur_char >> 18); *outchars++ = 0x80 | ((cur_char >> 12) & 0x3F); *outchars++ = 0x80 | ((cur_char >> 6) & 0x3F); - *outchars++ = 0x80 | cur_char & 0x3F; + *outchars++ = 0x80 | (cur_char & 0x3F); } else if (cur_char < 0x4000000) { @@ -163,7 +163,7 @@ S32 wchar_to_utf8chars(llwchar in_char, char* outchars) *outchars++ = 0x80 | ((cur_char >> 18) & 0x3F); *outchars++ = 0x80 | ((cur_char >> 12) & 0x3F); *outchars++ = 0x80 | ((cur_char >> 6) & 0x3F); - *outchars++ = 0x80 | cur_char & 0x3F; + *outchars++ = 0x80 | (cur_char & 0x3F); } else if (cur_char < 0x80000000) { @@ -172,7 +172,7 @@ S32 wchar_to_utf8chars(llwchar in_char, char* outchars) *outchars++ = 0x80 | ((cur_char >> 18) & 0x3F); *outchars++ = 0x80 | ((cur_char >> 12) & 0x3F); *outchars++ = 0x80 | ((cur_char >> 6) & 0x3F); - *outchars++ = 0x80 | cur_char & 0x3F; + *outchars++ = 0x80 | (cur_char & 0x3F); } else { diff --git a/indra/llmath/llcamera.cpp b/indra/llmath/llcamera.cpp index 0f343bcefeefb6cf5a403c7de3170c6c6b8bc17c..21ea4b2e7c5e7bb5df479451ead5a2e207445b1e 100644 --- a/indra/llmath/llcamera.cpp +++ b/indra/llmath/llcamera.cpp @@ -178,7 +178,7 @@ S32 LLCamera::AABBInFrustum(const LLVector3 ¢er, const LLVector3& radius) U8 mask = 0; S32 result = 2; - if (radius.magVecSquared() > mFrustumCornerDist * mFrustumCornerDist) + /*if (mFrustumCornerDist > 0.f && radius.magVecSquared() > mFrustumCornerDist * mFrustumCornerDist) { //box is larger than frustum, check frustum quads against box planes static const LLVector3 dir[] = @@ -241,11 +241,15 @@ S32 LLCamera::AABBInFrustum(const LLVector3 ¢er, const LLVector3& radius) result = 1; } } - else + else*/ { for (U32 i = 0; i < mPlaneCount; i++) { mask = mAgentPlanes[i].mask; + if (mask == 0xff) + { + continue; + } LLPlane p = mAgentPlanes[i].p; LLVector3 n = LLVector3(p); float d = p.mV[3]; @@ -294,6 +298,10 @@ S32 LLCamera::AABBInFrustumNoFarClip(const LLVector3 ¢er, const LLVector3& r } mask = mAgentPlanes[i].mask; + if (mask == 0xff) + { + continue; + } LLPlane p = mAgentPlanes[i].p; LLVector3 n = LLVector3(p); float d = p.mV[3]; @@ -437,6 +445,11 @@ int LLCamera::sphereInFrustum(const LLVector3 &sphere_center, const F32 radius) int res = 2; for (int i = 0; i < 6; i++) { + if (mAgentPlanes[i].mask == 0xff) + { + continue; + } + float d = mAgentPlanes[i].p.dist(sphere_center); if (d > radius) @@ -622,6 +635,17 @@ U8 LLCamera::calcPlaneMask(const LLPlane& plane) return mask; } +void LLCamera::ignoreAgentFrustumPlane(S32 idx) +{ + if (idx < 0 || idx > (S32) mPlaneCount) + { + return; + } + + mAgentPlanes[idx].mask = 0xff; + mAgentPlanes[idx].p.clearVec(); +} + void LLCamera::calcAgentFrustumPlanes(LLVector3* frust) { diff --git a/indra/llmath/llcamera.h b/indra/llmath/llcamera.h index 23ee1157f9c74526866cb8990c3d27e403e06bdc..0c81067919acb567b1bdb32891b2e2b213f043fc 100644 --- a/indra/llmath/llcamera.h +++ b/indra/llmath/llcamera.h @@ -93,6 +93,17 @@ class LLCamera PLANE_TOP_MASK = (1<<PLANE_TOP), PLANE_ALL_MASK = 0xf }; + + enum + { + AGENT_PLANE_LEFT = 0, + AGENT_PLANE_RIGHT, + AGENT_PLANE_NEAR, + AGENT_PLANE_BOTTOM, + AGENT_PLANE_TOP, + AGENT_PLANE_FAR, + }; + enum { HORIZ_PLANE_LEFT = 0, HORIZ_PLANE_RIGHT = 1, @@ -132,7 +143,8 @@ class LLCamera public: LLVector3 mAgentFrustum[8]; //8 corners of 6-plane frustum F32 mFrustumCornerDist; //distance to corner of frustum against far clip plane - + LLPlane getAgentPlane(U32 idx) { return mAgentPlanes[idx].p; } + public: LLCamera(); LLCamera(F32 vertical_fov_rads, F32 aspect_ratio, S32 view_height_in_pixels, F32 near_plane, F32 far_plane); @@ -179,6 +191,8 @@ class LLCamera // Return number of bytes copied. size_t readFrustumFromBuffer(const char *buffer); void calcAgentFrustumPlanes(LLVector3* frust); + void ignoreAgentFrustumPlane(S32 idx); + // Returns 1 if partly in, 2 if fully in. // NOTE: 'center' is in absolute frame. S32 sphereInFrustumOld(const LLVector3 ¢er, const F32 radius) const; diff --git a/indra/llmath/llrect.h b/indra/llmath/llrect.h index c03a331aff0a7878f2f273006f328d9a8ad843e5..2fa8cb3f161ae7ceeb0180760889d4730ae8afe6 100644 --- a/indra/llmath/llrect.h +++ b/indra/llmath/llrect.h @@ -42,6 +42,7 @@ template <class Type> class LLRectBase { public: + typedef Type tCoordType; Type mLeft; Type mTop; Type mRight; diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index a0357a32cc447ca2c7d57e2fc0972c6eabdef5b6..5cc0a596fdb5b603e61812b658ba6c344b79c497 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -84,6 +84,7 @@ const F32 SKEW_MIN = -0.95f; const F32 SKEW_MAX = 0.95f; const F32 SCULPT_MIN_AREA = 0.002f; +const S32 SCULPT_MIN_AREA_DETAIL = 1; BOOL check_same_clock_dir( const LLVector3& pt1, const LLVector3& pt2, const LLVector3& pt3, const LLVector3& norm) { @@ -2230,10 +2231,14 @@ void LLVolume::sculpt(U16 sculpt_width, U16 sculpt_height, S8 sculpt_components, if (!data_is_empty) { sculptGenerateMapVertices(sculpt_width, sculpt_height, sculpt_components, sculpt_data, sculpt_type); - - if (sculptGetSurfaceArea() < SCULPT_MIN_AREA) + + // don't test lowest LOD to support legacy content DEV-33670 + if (mDetail > SCULPT_MIN_AREA_DETAIL) { - data_is_empty = TRUE; + if (sculptGetSurfaceArea() < SCULPT_MIN_AREA) + { + data_is_empty = TRUE; + } } } diff --git a/indra/llmath/v3math.h b/indra/llmath/v3math.h index 805d7e63842607e6ae5d616902969f0054444755..06a4f5c542daf822454874b7d054319401022959 100644 --- a/indra/llmath/v3math.h +++ b/indra/llmath/v3math.h @@ -409,8 +409,8 @@ inline bool operator<(const LLVector3 &a, const LLVector3 &b) return (a.mV[0] < b.mV[0] || (a.mV[0] == b.mV[0] && (a.mV[1] < b.mV[1] - || (a.mV[1] == b.mV[1]) - && a.mV[2] < b.mV[2]))); + || ((a.mV[1] == b.mV[1]) + && a.mV[2] < b.mV[2])))); } inline const LLVector3& operator+=(LLVector3 &a, const LLVector3 &b) diff --git a/indra/llmessage/lliobuffer.cpp b/indra/llmessage/lliobuffer.cpp index 71c1df8f9940e741257ad0041735f42592d32fe5..223a23949b5a08722852d8fd6ddb8a13d6952aac 100644 --- a/indra/llmessage/lliobuffer.cpp +++ b/indra/llmessage/lliobuffer.cpp @@ -87,7 +87,7 @@ LLIOPipe::EStatus LLIOBuffer::seek(LLIOBuffer::EHead head, S64 delta) { case READ: if(((delta >= 0) && ((mReadHead + delta) <= mWriteHead)) - || (delta < 0) && ((mReadHead + delta) >= mBuffer)) + || ((delta < 0) && ((mReadHead + delta) >= mBuffer))) { mReadHead += delta; status = STATUS_OK; @@ -95,7 +95,7 @@ LLIOPipe::EStatus LLIOBuffer::seek(LLIOBuffer::EHead head, S64 delta) break; case WRITE: if(((delta >= 0) && ((mWriteHead + delta) < (mBuffer + mBufferSize))) - || (delta < 0) && ((mWriteHead + delta) > mReadHead)) + || ((delta < 0) && ((mWriteHead + delta) > mReadHead))) { mWriteHead += delta; status = STATUS_OK; diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp index 9d84d3706bcb0ffa2a861d85d1ba22b40e0279cc..2a8b557f4379935516ef0e621e36f6971be969de 100644 --- a/indra/llprimitive/llprimitive.cpp +++ b/indra/llprimitive/llprimitive.cpp @@ -1908,4 +1908,3 @@ bool LLLightImageParams::fromLLSD(LLSD& sd) return false; } - diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index 69675e322a22e9ec418d68973f30c04b07221b5a..3400a7238572439f961e3b3148c56c7dd8bfe79f 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -64,6 +64,8 @@ BOOL gDebugSession = FALSE; BOOL gDebugGL = FALSE; BOOL gClothRipple = FALSE; BOOL gNoRender = FALSE; +BOOL gGLActive = FALSE; + std::ofstream gFailLog; @@ -107,6 +109,7 @@ LLMatrix4 gGLObliqueProjectionInverse; #define LL_GL_NAME_POOLING 0 LLGLNamePool::pool_list_t LLGLNamePool::sInstances; +std::list<LLGLUpdate*> LLGLUpdate::sGLQ; #if (LL_WINDOWS || LL_LINUX || LL_SOLARIS) && !LL_MESA_HEADLESS // ATI prototypes @@ -1011,6 +1014,16 @@ void flush_glerror() void assert_glerror() { + if (!gGLActive) + { + //llwarns << "GL used while not active!" << llendl; + + if (gDebugSession) + { + //ll_fail("GL used while not active"); + } + } + if (gNoRender || !gDebugGL) { return; @@ -1256,8 +1269,10 @@ void LLGLState::checkTextureChannels(const std::string& msg) }; GLint stackDepth = 0; - LLMatrix4 identity; - LLMatrix4 matrix; + + glh::matrix4f mat; + glh::matrix4f identity; + identity.identity(); for (GLint i = 1; i < maxTextureUnits; i++) { @@ -1278,10 +1293,10 @@ void LLGLState::checkTextureChannels(const std::string& msg) } } - glGetFloatv(GL_TEXTURE_MATRIX, (GLfloat*) matrix.mMatrix); + glGetFloatv(GL_TEXTURE_MATRIX, (GLfloat*) mat.m); stop_glerror(); - if (matrix != identity) + if (mat != identity) { error = TRUE; LL_WARNS("RenderState") << "Texture matrix in channel " << i << " corrupt." << LL_ENDL; @@ -1307,10 +1322,6 @@ void LLGLState::checkTextureChannels(const std::string& msg) stop_glerror(); } - glh::matrix4f mat; - glh::matrix4f identity; - identity.identity(); - glGetFloatv(GL_TEXTURE_MATRIX, mat.m); stop_glerror(); diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h index 34dd982259c4676bcccca0021a593d991a86e7e1..91421f3c954fa91fada6cc768633d72c63232cff 100644 --- a/indra/llrender/llgl.h +++ b/indra/llrender/llgl.h @@ -37,6 +37,7 @@ #include <string> #include <map> +#include <list> #include "llerror.h" #include "v4color.h" @@ -367,6 +368,35 @@ class LLGLNamePool virtual void releaseName(GLuint name) = 0; }; +/* + Interface for objects that need periodic GL updates applied to them. + Used to synchronize GL updates with GL thread. +*/ +class LLGLUpdate +{ +public: + + static std::list<LLGLUpdate*> sGLQ; + + BOOL mInQ; + LLGLUpdate() + : mInQ(FALSE) + { + } + virtual ~LLGLUpdate() + { + if (mInQ) + { + std::list<LLGLUpdate*>::iterator iter = std::find(sGLQ.begin(), sGLQ.end(), this); + if (iter != sGLQ.end()) + { + sGLQ.erase(iter); + } + } + } + virtual void updateGL() = 0; +}; + extern LLMatrix4 gGLObliqueProjectionInverse; #include "llglstates.h" @@ -385,4 +415,6 @@ void parse_gl_version( S32* major, S32* minor, S32* release, std::string* vendor extern BOOL gClothRipple; extern BOOL gNoRender; +extern BOOL gGLActive; + #endif // LL_LLGL_H diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 9d2cd4867a16589eb963e9ec877a2deb0374345e..dd64d753c74a64f2f84c1ac859bbbc73d1f81c89 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -44,7 +44,6 @@ #include "llgl.h" #include "llrender.h" - //---------------------------------------------------------------------------- const F32 MIN_TEXTURE_LIFETIME = 10.f; @@ -57,12 +56,25 @@ S32 LLImageGL::sGlobalTextureMemoryInBytes = 0; S32 LLImageGL::sBoundTextureMemoryInBytes = 0; S32 LLImageGL::sCurBoundTextureMemory = 0; S32 LLImageGL::sCount = 0; +std::list<U32> LLImageGL::sDeadTextureList; BOOL LLImageGL::sGlobalUseAnisotropic = FALSE; F32 LLImageGL::sLastFrameTime = 0.f; LLImageGL* LLImageGL::sDefaultGLTexture = NULL ; std::set<LLImageGL*> LLImageGL::sImageList; +#if !LL_RELEASE_FOR_DOWNLOAD +//----------------------- +//debug use +#define MAX_TEXTURE_LOG_SIZE 22 //2048 * 2048 +std::vector<S32> LLImageGL::sTextureLoadedCounter(MAX_TEXTURE_LOG_SIZE + 1) ; +std::vector<S32> LLImageGL::sTextureBoundCounter(MAX_TEXTURE_LOG_SIZE + 1) ; +std::vector<S32> LLImageGL::sTextureCurBoundCounter(MAX_TEXTURE_LOG_SIZE + 1) ; +S32 LLImageGL::sCurTexSizeBar = -1 ; +S32 LLImageGL::sCurTexPickSize = -1 ; +LLPointer<LLImageGL> LLImageGL::sDefaultTexturep = NULL; +//------------------------ +#endif //************************************************************************************** //below are functions for debug use //do not delete them even though they are not currently being used. @@ -198,6 +210,14 @@ void LLImageGL::updateStats(F32 current_time) sLastFrameTime = current_time; sBoundTextureMemoryInBytes = sCurBoundTextureMemory; sCurBoundTextureMemory = 0; + +#if !LL_RELEASE_FOR_DOWNLOAD + for(U32 i = 0 ; i < sTextureCurBoundCounter.size() ; i++) + { + sTextureBoundCounter[i] = sTextureCurBoundCounter[i] ; + sTextureCurBoundCounter[i] = 0 ; + } +#endif } //static @@ -363,6 +383,10 @@ void LLImageGL::init(BOOL usemipmaps) mGLTextureCreated = FALSE ; mIsMask = FALSE; mNeedsAlphaAndPickMask = TRUE ; + + mDiscardLevelInAtlas = -1 ; + mTexelsInAtlas = 0 ; + mTexelsInGLTexture = 0 ; } void LLImageGL::cleanup() @@ -523,7 +547,7 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips) is_compressed = true; } - gGL.getTexUnit(0)->bind(this); + llverify(gGL.getTexUnit(0)->bind(this)); if (mUseMipMaps) { @@ -728,6 +752,92 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips) llpushcallstacks ; } +BOOL LLImageGL::preAddToAtlas(S32 discard_level, const LLImageRaw* raw_image) +{ + if (gGLManager.mIsDisabled) + { + llwarns << "Trying to create a texture while GL is disabled!" << llendl; + return FALSE; + } + llassert(gGLManager.mInited); + stop_glerror(); + + if (discard_level < 0) + { + llassert(mCurrentDiscardLevel >= 0); + discard_level = mCurrentDiscardLevel; + } + discard_level = llclamp(discard_level, 0, (S32)mMaxDiscardLevel); + + // Actual image width/height = raw image width/height * 2^discard_level + S32 w = raw_image->getWidth() << discard_level; + S32 h = raw_image->getHeight() << discard_level; + + // setSize may call destroyGLTexture if the size does not match + setSize(w, h, raw_image->getComponents()); + + if( !mHasExplicitFormat ) + { + switch (mComponents) + { + case 1: + // Use luminance alpha (for fonts) + mFormatInternal = GL_LUMINANCE8; + mFormatPrimary = GL_LUMINANCE; + mFormatType = GL_UNSIGNED_BYTE; + break; + case 2: + // Use luminance alpha (for fonts) + mFormatInternal = GL_LUMINANCE8_ALPHA8; + mFormatPrimary = GL_LUMINANCE_ALPHA; + mFormatType = GL_UNSIGNED_BYTE; + break; + case 3: + mFormatInternal = GL_RGB8; + mFormatPrimary = GL_RGB; + mFormatType = GL_UNSIGNED_BYTE; + break; + case 4: + mFormatInternal = GL_RGBA8; + mFormatPrimary = GL_RGBA; + mFormatType = GL_UNSIGNED_BYTE; + break; + default: + llerrs << "Bad number of components for texture: " << (U32)getComponents() << llendl; + } + } + + mCurrentDiscardLevel = discard_level; + mDiscardLevelInAtlas = discard_level; + mTexelsInAtlas = raw_image->getWidth() * raw_image->getHeight() ; + mLastBindTime = sLastFrameTime; + mGLTextureCreated = false ; + + glPixelStorei(GL_UNPACK_ROW_LENGTH, raw_image->getWidth()); + stop_glerror(); + + if(mFormatSwapBytes) + { + glPixelStorei(GL_UNPACK_SWAP_BYTES, 1); + stop_glerror(); + } + + return TRUE ; +} + +void LLImageGL::postAddToAtlas() +{ + if(mFormatSwapBytes) + { + glPixelStorei(GL_UNPACK_SWAP_BYTES, 0); + stop_glerror(); + } + + glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); + gGL.getTexUnit(0)->setTextureFilteringOption(mFilterOption); + stop_glerror(); +} + BOOL LLImageGL::setSubImage(const U8* datap, S32 data_width, S32 data_height, S32 x_pos, S32 y_pos, S32 width, S32 height, BOOL force_fast_update) { llpushcallstacks ; @@ -832,7 +942,7 @@ BOOL LLImageGL::setSubImage(const LLImageRaw* imageraw, S32 x_pos, S32 y_pos, S3 // Copy sub image from frame buffer BOOL LLImageGL::setSubImageFromFrameBuffer(S32 fb_x, S32 fb_y, S32 x_pos, S32 y_pos, S32 width, S32 height) { - if (gGL.getTexUnit(0)->bind(this, true)) + if (gGL.getTexUnit(0)->bind(this)) { glCopyTexSubImage2D(GL_TEXTURE_2D, 0, fb_x, fb_y, x_pos, y_pos, width, height); mGLTextureCreated = true; @@ -854,13 +964,17 @@ void LLImageGL::generateTextures(S32 numTextures, U32 *textures) // static void LLImageGL::deleteTextures(S32 numTextures, U32 *textures) { - glDeleteTextures(numTextures, (GLuint*)textures); + for (S32 i = 0; i < numTextures; i++) + { + sDeadTextureList.push_back(textures[i]); + } } // static void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 width, S32 height, U32 pixformat, U32 pixtype, const void *pixels) { glTexImage2D(target, miplevel, intformat, width, height, 0, pixformat, pixtype, pixels); + stop_glerror(); } //create an empty GL texture: just create a texture name @@ -895,12 +1009,12 @@ BOOL LLImageGL::createGLTexture() BOOL LLImageGL::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename/*=0*/) { - llpushcallstacks ; if (gGLManager.mIsDisabled) { llwarns << "Trying to create a texture while GL is disabled!" << llendl; return FALSE; } + mGLTextureCreated = false ; llassert(gGLManager.mInited); stop_glerror(); @@ -1023,12 +1137,21 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_ if (old_name != 0) { sGlobalTextureMemoryInBytes -= mTextureMemory; +#if !LL_RELEASE_FOR_DOWNLOAD + decTextureCounter(mTextureMemory / mComponents) ; +#endif + LLImageGL::deleteTextures(1, &old_name); stop_glerror(); } mTextureMemory = getMipBytes(discard_level); sGlobalTextureMemoryInBytes += mTextureMemory; + mTexelsInGLTexture = getWidth() * getHeight() ; + +#if !LL_RELEASE_FOR_DOWNLOAD + incTextureCounter(mTextureMemory / mComponents) ; +#endif // mark this as bound at this point, so we don't throw it out immediately mLastBindTime = sLastFrameTime; @@ -1208,32 +1331,48 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre return TRUE ; } -void LLImageGL::destroyGLTexture() +void LLImageGL::deleteDeadTextures() { - if (mTexName != 0) + while (!sDeadTextureList.empty()) { - stop_glerror(); - + GLuint tex = sDeadTextureList.front(); + sDeadTextureList.pop_front(); for (int i = 0; i < gGLManager.mNumTextureUnits; i++) { - if (sCurrentBoundTextures[i] == mTexName) + if (sCurrentBoundTextures[i] == tex) { gGL.getTexUnit(i)->unbind(LLTexUnit::TT_TEXTURE); stop_glerror(); } } - sGlobalTextureMemoryInBytes -= mTextureMemory; - mTextureMemory = 0; + glDeleteTextures(1, &tex); + stop_glerror(); + } +} + +void LLImageGL::destroyGLTexture() +{ + if (mTexName != 0) + { + if(mTextureMemory) + { +#if !LL_RELEASE_FOR_DOWNLOAD + decTextureCounter(mTextureMemory / mComponents) ; +#endif + sGlobalTextureMemoryInBytes -= mTextureMemory; + mTextureMemory = 0; + } LLImageGL::deleteTextures(1, &mTexName); mTexName = 0; mCurrentDiscardLevel = -1 ; //invalidate mCurrentDiscardLevel. mGLTextureCreated = FALSE ; - stop_glerror(); } } + + //---------------------------------------------------------------------------- void LLImageGL::setAddressMode(LLTexUnit::eTextureAddressMode mode) @@ -1259,12 +1398,12 @@ void LLImageGL::setFilteringOption(LLTexUnit::eTextureFilterOptions option) mFilterOption = option; } - if (gGL.getTexUnit(gGL.getCurrentTexUnitIndex())->getCurrTexture() == mTexName) + if (mTexName != 0 && gGL.getTexUnit(gGL.getCurrentTexUnitIndex())->getCurrTexture() == mTexName) { gGL.getTexUnit(gGL.getCurrentTexUnitIndex())->setTextureFilteringOption(option); mTexOptionsDirty = false; + stop_glerror(); } - stop_glerror(); } BOOL LLImageGL::getIsResident(BOOL test_now) @@ -1500,7 +1639,50 @@ BOOL LLImageGL::getMask(const LLVector2 &tc) } //---------------------------------------------------------------------------- - +#if !LL_RELEASE_FOR_DOWNLOAD +//for debug use +//val is a "power of two" number +S32 LLImageGL::getTextureCounterIndex(U32 val) +{ + //index range is [0, MAX_TEXTURE_LOG_SIZE]. + if(val < 2) + { + return 0 ; + } + else if(val >= (1 << MAX_TEXTURE_LOG_SIZE)) + { + return MAX_TEXTURE_LOG_SIZE ; + } + else + { + S32 ret = 0 ; + while(val >>= 1) + { + ++ret; + } + return ret ; + } +} +void LLImageGL::incTextureCounter(U32 val) +{ + sTextureLoadedCounter[getTextureCounterIndex(val)]++ ; +} +void LLImageGL::decTextureCounter(U32 val) +{ + sTextureLoadedCounter[getTextureCounterIndex(val)]-- ; +} +void LLImageGL::setCurTexSizebar(S32 index) +{ + sCurTexSizeBar = index ; + sCurTexPickSize = (1 << index) ; +} +void LLImageGL::resetCurTexSizebar() +{ + sCurTexSizeBar = -1 ; + sCurTexPickSize = -1 ; +} +//---------------------------------------------------------------------------- +#endif // Manual Mip Generation /* diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h index 987a1dc538f322771fe11a3b3fc3d0d25e5d5484..a094605607cef83ccaca0985cc3debe40ce9d5b9 100644 --- a/indra/llrender/llimagegl.h +++ b/indra/llrender/llimagegl.h @@ -42,7 +42,7 @@ #include "v2math.h" #include "llrender.h" - +class LLTextureAtlas ; #define BYTES_TO_MEGA_BYTES(x) ((x) >> 20) #define MEGA_BYTES_TO_BYTES(x) ((x) << 20) @@ -52,6 +52,10 @@ class LLImageGL : public LLRefCount { friend class LLTexUnit; public: + static std::list<U32> sDeadTextureList; + + static void deleteDeadTextures(); + // Size calculation static S32 dataFormatBits(S32 dataformat); static S32 dataFormatBytes(S32 dataformat, S32 width, S32 height); @@ -69,7 +73,6 @@ class LLImageGL : public LLRefCount // Sometimes called externally for textures not using LLImageGL (should go away...) static S32 updateBoundTexMem(const S32 delta); - static bool checkSize(S32 width, S32 height); //for server side use only. @@ -115,6 +118,7 @@ class LLImageGL : public LLRefCount void destroyGLTexture(); void setExplicitFormat(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format = 0, BOOL swap_bytes = FALSE); + void setComponents(S8 ncomponents) { mComponents = ncomponents; } S32 getDiscardLevel() const { return mCurrentDiscardLevel; } S32 getMaxDiscardLevel() const { return mMaxDiscardLevel; } @@ -128,6 +132,7 @@ class LLImageGL : public LLRefCount S32 getMipBytes(S32 discard_level = -1) const; BOOL getBoundRecently() const; LLGLenum getPrimaryFormat() const { return mFormatPrimary; } + LLGLenum getFormatType() const { return mFormatType; } BOOL getHasGLTexture() const { return mTexName != 0; } LLGLuint getTexName() const { return mTexName; } @@ -164,10 +169,20 @@ class LLImageGL : public LLRefCount void setFilteringOption(LLTexUnit::eTextureFilterOptions option); LLTexUnit::eTextureFilterOptions getFilteringOption(void) const { return mFilterOption; } + LLGLenum getTexTarget()const { return mTarget ;} + S8 getDiscardLevelInAtlas()const {return mDiscardLevelInAtlas;} + U32 getTexelsInAtlas()const { return mTexelsInAtlas ;} + U32 getTexelsInGLTexture()const {return mTexelsInGLTexture;} + + void init(BOOL usemipmaps); virtual void cleanup(); // Clean up the LLImageGL so it can be reinitialized. Be careful when using this in derived class destructors void setNeedsAlphaAndPickMask(BOOL need_mask) {mNeedsAlphaAndPickMask = need_mask;} + + BOOL preAddToAtlas(S32 discard_level, const LLImageRaw* raw_image); + void postAddToAtlas() ; + public: // Various GL/Rendering options S32 mTextureMemory; @@ -189,6 +204,10 @@ class LLImageGL : public LLRefCount U16 mHeight; S8 mCurrentDiscardLevel; + S8 mDiscardLevelInAtlas; + U32 mTexelsInAtlas ; + U32 mTexelsInGLTexture; + protected: LLGLenum mTarget; // Normally GL_TEXTURE2D, sometimes something else (ex. cube maps) LLTexUnit::eTextureType mBindTarget; // Normally TT_TEXTURE, sometimes something else (ex. cube maps) @@ -224,7 +243,26 @@ class LLImageGL : public LLRefCount static U32 sBindCount; // Tracks number of texture binds for current frame static U32 sUniqueCount; // Tracks number of unique texture binds for current frame static BOOL sGlobalUseAnisotropic; - static LLImageGL* sDefaultGLTexture ; + static LLImageGL* sDefaultGLTexture ; + static BOOL sAutomatedTest; + +#if !LL_RELEASE_FOR_DOWNLOAD + //for debug use: show texture size distribution + //---------------------------------------- + static LLPointer<LLImageGL> sDefaultTexturep; //default texture to replace normal textures + static std::vector<S32> sTextureLoadedCounter ; + static std::vector<S32> sTextureBoundCounter ; + static std::vector<S32> sTextureCurBoundCounter ; + static S32 sCurTexSizeBar ; + static S32 sCurTexPickSize ; + + static S32 getTextureCounterIndex(U32 val) ; + static void incTextureCounter(U32 val) ; + static void decTextureCounter(U32 val) ; + static void setCurTexSizebar(S32 index) ; + static void resetCurTexSizebar(); + //---------------------------------------- +#endif #if DEBUG_MISS BOOL mMissed; // Missed on last bind? diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index d577daf3f41ab483c889cc5c4f552486e1586437..b74d824c9e4ba83e2a4f5ae0602adf95416775d1 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -45,10 +45,11 @@ LLRender gGL; // Handy copies of last good GL matrices F64 gGLModelView[16]; F64 gGLLastModelView[16]; +F64 gGLLastProjection[16]; F64 gGLProjection[16]; S32 gGLViewport[4]; -static const U32 LL_NUM_TEXTURE_LAYERS = 8; +static const U32 LL_NUM_TEXTURE_LAYERS = 16; static GLenum sGLTextureType[] = { @@ -311,6 +312,11 @@ bool LLTexUnit::bind(LLRenderTarget* renderTarget, bool bindDepth) if (bindDepth) { + if (renderTarget->hasStencil()) + { + llerrs << "Cannot bind a render buffer for sampling. Allocate render target without a stencil buffer if sampling of depth buffer is required." << llendl; + } + bindManual(renderTarget->getUsage(), renderTarget->getDepth()); } else @@ -328,7 +334,7 @@ bool LLTexUnit::bindManual(eTextureType type, U32 texture, bool hasMips) { return false; } - + if(mCurrTexture != texture) { gGL.flush(); diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h index 74f87f6d409b2245ce3b44e7d8e4cdff8f8ddd9a..cb2a4d445076c72ef746af12d682b68f9379c5c5 100644 --- a/indra/llrender/llrender.h +++ b/indra/llrender/llrender.h @@ -355,6 +355,7 @@ class LLRender extern F64 gGLModelView[16]; extern F64 gGLLastModelView[16]; +extern F64 gGLLastProjection[16]; extern F64 gGLProjection[16]; extern S32 gGLViewport[4]; diff --git a/indra/llrender/llrendertarget.cpp b/indra/llrender/llrendertarget.cpp index dc052851ca8f576ecde4e27e4250260dc67e20a1..d9520b3bf63c1f226bb65244bb50904b4a51ee2f 100644 --- a/indra/llrender/llrendertarget.cpp +++ b/indra/llrender/llrendertarget.cpp @@ -140,7 +140,7 @@ void LLRenderTarget::addColorAttachment(U32 color_fmt) U32 offset = mTex.size(); if (offset >= 4 || - offset > 0 && (mFBO == 0 || !gGLManager.mHasDrawBuffers)) + (offset > 0 && (mFBO == 0 || !gGLManager.mHasDrawBuffers))) { llerrs << "Too many color attachments!" << llendl; } @@ -204,7 +204,7 @@ void LLRenderTarget::allocateDepth() gGL.getTexUnit(0)->bindManual(mUsage, mDepth); U32 internal_type = LLTexUnit::getInternalType(mUsage); gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_POINT); - LLImageGL::setManualImage(internal_type, 0, GL_DEPTH24_STENCIL8_EXT, mResX, mResY, GL_DEPTH_STENCIL_EXT, GL_UNSIGNED_INT_24_8_EXT, NULL); + LLImageGL::setManualImage(internal_type, 0, GL_DEPTH_COMPONENT32_ARB, mResX, mResY, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); } } @@ -382,7 +382,7 @@ void LLRenderTarget::flush(BOOL fetch_depth) allocateDepth(); } - gGL.getTexUnit(0)->bind(this, true); + gGL.getTexUnit(0)->bind(this); glCopyTexImage2D(LLTexUnit::getInternalType(mUsage), 0, GL_DEPTH24_STENCIL8_EXT, 0, 0, mResX, mResY, 0); } @@ -392,7 +392,11 @@ void LLRenderTarget::flush(BOOL fetch_depth) { #if !LL_DARWIN + stop_glerror(); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + + stop_glerror(); if (mSampleBuffer) { @@ -434,7 +438,6 @@ void LLRenderTarget::flush(BOOL fetch_depth) #endif glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); - glFlush(); } } @@ -442,6 +445,7 @@ void LLRenderTarget::copyContents(LLRenderTarget& source, S32 srcX0, S32 srcY0, S32 dstX0, S32 dstY0, S32 dstX1, S32 dstY1, U32 mask, U32 filter) { #if !LL_DARWIN + gGL.flush(); if (!source.mFBO || !mFBO) { llerrs << "Cannot copy framebuffer contents for non FBO render targets." << llendl; @@ -453,12 +457,55 @@ void LLRenderTarget::copyContents(LLRenderTarget& source, S32 srcX0, S32 srcY0, } else { - glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, source.mFBO); - glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, mFBO); + if (mask == GL_DEPTH_BUFFER_BIT && source.mStencil != mStencil) + { + stop_glerror(); + + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, source.mFBO); + gGL.getTexUnit(0)->bind(this, true); + stop_glerror(); + glCopyTexSubImage2D(LLTexUnit::getInternalType(mUsage), 0, srcX0, srcY0, dstX0, dstY0, dstX1, dstY1); + stop_glerror(); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + stop_glerror(); + } + else + { + glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, source.mFBO); + stop_glerror(); + glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, mFBO); + stop_glerror(); + check_framebuffer_status(); + stop_glerror(); + glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); + stop_glerror(); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + stop_glerror(); + } + } +#endif +} +//static +void LLRenderTarget::copyContentsToFramebuffer(LLRenderTarget& source, S32 srcX0, S32 srcY0, S32 srcX1, S32 srcY1, + S32 dstX0, S32 dstY0, S32 dstX1, S32 dstY1, U32 mask, U32 filter) +{ +#if !LL_DARWIN + if (!source.mFBO) + { + llerrs << "Cannot copy framebuffer contents for non FBO render targets." << llendl; + } + { + glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, source.mFBO); + stop_glerror(); + glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0); + stop_glerror(); + check_framebuffer_status(); + stop_glerror(); glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); - + stop_glerror(); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + stop_glerror(); } #endif } @@ -613,7 +660,7 @@ void LLMultisampleBuffer::addColorAttachment(U32 color_fmt) U32 offset = mTex.size(); if (offset >= 4 || - offset > 0 && (mFBO == 0 || !gGLManager.mHasDrawBuffers)) + (offset > 0 && (mFBO == 0 || !gGLManager.mHasDrawBuffers))) { llerrs << "Too many color attachments!" << llendl; } diff --git a/indra/llrender/llrendertarget.h b/indra/llrender/llrendertarget.h index 98b608f834761aa3f17f5a66662ec6c0f6c8d407..b7ebfc8f7f6308cf1221f076ad7abaed90465631 100644 --- a/indra/llrender/llrendertarget.h +++ b/indra/llrender/llrendertarget.h @@ -121,6 +121,7 @@ class LLRenderTarget U32 getTexture(U32 attachment = 0) const; U32 getDepth(void) const { return mDepth; } + BOOL hasStencil() const { return mStencil; } void bindTexture(U32 index, S32 channel); @@ -135,6 +136,9 @@ class LLRenderTarget void copyContents(LLRenderTarget& source, S32 srcX0, S32 srcY0, S32 srcX1, S32 srcY1, S32 dstX0, S32 dstY0, S32 dstX1, S32 dstY1, U32 mask, U32 filter); + static void copyContentsToFramebuffer(LLRenderTarget& source, S32 srcX0, S32 srcY0, S32 srcX1, S32 srcY1, + S32 dstX0, S32 dstY0, S32 dstX1, S32 dstY1, U32 mask, U32 filter); + //Returns TRUE if target is ready to be rendered into. //That is, if the target has been allocated with at least //one renderable attachment (i.e. color buffer, depth buffer). diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 4690c54c153c0af1ba447cf75b1ff0cbe4dc276d..a57913683b7737f8d30a501a47772ef3a1419c1d 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -592,6 +592,8 @@ void LLFloater::openFloater(const LLSD& key) mOpenSignal(this, key); onOpen(key); + + dirtyRect(); } void LLFloater::closeFloater(bool app_quitting) @@ -657,7 +659,9 @@ void LLFloater::closeFloater(bool app_quitting) } } } - + + dirtyRect(); + // Close callback mCloseSignal(this, LLSD(app_quitting)); @@ -1923,8 +1927,8 @@ void LLFloaterView::restoreAll() LLRect LLFloaterView::findNeighboringPosition( LLFloater* reference_floater, LLFloater* neighbor ) { LLRect base_rect = reference_floater->getRect(); - S32 width = neighbor->getRect().getWidth(); - S32 height = neighbor->getRect().getHeight(); + LLRect::tCoordType width = neighbor->getRect().getWidth(); + LLRect::tCoordType height = neighbor->getRect().getHeight(); LLRect new_rect = neighbor->getRect(); LLRect expanded_base_rect = base_rect; @@ -1943,10 +1947,10 @@ LLRect LLFloaterView::findNeighboringPosition( LLFloater* reference_floater, LLF } } - S32 left_margin = llmax(0, base_rect.mLeft); - S32 right_margin = llmax(0, getRect().getWidth() - base_rect.mRight); - S32 top_margin = llmax(0, getRect().getHeight() - base_rect.mTop); - S32 bottom_margin = llmax(0, base_rect.mBottom); + LLRect::tCoordType left_margin = llmax(0, base_rect.mLeft); + LLRect::tCoordType right_margin = llmax(0, getRect().getWidth() - base_rect.mRight); + LLRect::tCoordType top_margin = llmax(0, getRect().getHeight() - base_rect.mTop); + LLRect::tCoordType bottom_margin = llmax(0, base_rect.mBottom); // find position for floater in following order // right->left->bottom->top @@ -2252,8 +2256,8 @@ void LLFloaterView::adjustToFitScreen(LLFloater* floater, BOOL allow_partial_out // floater is hosted elsewhere, so ignore return; } - S32 screen_width = getSnapRect().getWidth(); - S32 screen_height = getSnapRect().getHeight(); + LLRect::tCoordType screen_width = getSnapRect().getWidth(); + LLRect::tCoordType screen_height = getSnapRect().getHeight(); // convert to local coordinate frame LLRect snap_rect_local = getLocalSnapRect(); diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index e0bb6bd5d3a6f5a221bb6b6c4af0392cbc12b034..f2d147ac3926e3e5e363e413ea6136216dc82d74 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -121,6 +121,8 @@ const F32 ACTIVATE_HIGHLIGHT_TIME = 0.3f; static MenuRegistry::Register<LLMenuItemSeparatorGL> register_separator("menu_item_separator"); static MenuRegistry::Register<LLMenuItemCallGL> register_menu_item_call("menu_item_call"); static MenuRegistry::Register<LLMenuItemCheckGL> register_menu_item_check("menu_item_check"); +// Created programmatically but we need to specify custom colors in xml +static MenuRegistry::Register<LLMenuItemTearOffGL> register_menu_item_tear_off("menu_item_tear_off"); static MenuRegistry::Register<LLMenuGL> register_menu("menu"); static LLDefaultChildRegistry::Register<LLMenuGL> register_menu_default("menu"); @@ -390,8 +392,10 @@ void LLMenuItemGL::buildDrawLabel( void ) void LLMenuItemGL::onCommit( void ) { - // close all open menus by default - // if parent menu is actually visible (and we are not triggering menu item via accelerator) + // Check torn-off status to allow left-arrow keyboard navigation back + // to parent menu. + // Also, don't hide if item triggered by keyboard shortcut (and hence + // parent not visible). if (!getMenu()->getTornOff() && getMenu()->getVisible()) { @@ -408,6 +412,12 @@ void LLMenuItemGL::onCommit( void ) { getMenu()->clearHoverItem(); } + + if (mHighlight != highlight) + { + dirtyRect(); + } + mHighlight = highlight; } @@ -1233,6 +1243,8 @@ void LLMenuItemBranchGL::openMenu() branch->translate( delta_x, delta_y ); branch->setVisible( TRUE ); branch->getParent()->sendChildToFront(branch); + + dirtyRect(); } } @@ -2334,8 +2346,8 @@ void LLMenuGL::createJumpKeys() { char jump_key = uppercase_word[i]; - if (LLStringOps::isDigit(jump_key) || LLStringOps::isUpper(jump_key) && - mJumpKeys.find(jump_key) == mJumpKeys.end()) + if (LLStringOps::isDigit(jump_key) || (LLStringOps::isUpper(jump_key) && + mJumpKeys.find(jump_key) == mJumpKeys.end())) { mJumpKeys.insert(std::pair<KEY, LLMenuItemGL*>(jump_key, (*item_it))); (*item_it)->setJumpKey(jump_key); @@ -3476,16 +3488,19 @@ LLTearOffMenu::LLTearOffMenu(LLMenuGL* menup) : LLRect rect; menup->localRectToOtherView(LLRect(-1, menup->getRect().getHeight(), menup->getRect().getWidth() + 3, 0), &rect, gFloaterView); // make sure this floater is big enough for menu - mTargetHeight = (F32)(rect.getHeight() + floater_header_size + 5); + mTargetHeight = (F32)(rect.getHeight() + floater_header_size); reshape(rect.getWidth(), rect.getHeight()); setRect(rect); // attach menu to floater - menup->setFollowsAll(); + menup->setFollows( FOLLOWS_LEFT | FOLLOWS_BOTTOM ); mOldParent = menup->getParent(); addChild(menup); menup->setVisible(TRUE); - menup->translate(-menup->getRect().mLeft + 1, -menup->getRect().mBottom + 1); + LLRect menu_rect = menup->getRect(); + menu_rect.setOriginAndSize( 1, 1, + menu_rect.getWidth(), menu_rect.getHeight()); + menup->setRect(menu_rect); menup->setDropShadowed(FALSE); mMenu = menup; @@ -3513,12 +3528,6 @@ void LLTearOffMenu::draw() // animate towards target height reshape(getRect().getWidth(), llceil(lerp((F32)getRect().getHeight(), mTargetHeight, LLCriticalDamp::getInterpolant(0.05f)))); } - else - { - // when in stasis, remain big enough to hold menu contents - mTargetHeight = (F32)(mMenu->getRect().getHeight() + floater_header_size + 4); - reshape(mMenu->getRect().getWidth() + 3, mMenu->getRect().getHeight() + floater_header_size + 5); - } LLFloater::draw(); } diff --git a/indra/llui/llradiogroup.cpp b/indra/llui/llradiogroup.cpp index c66b9bde2b138da01033c7db9b658f78128c7384..d1ea5843eb318075732bb048a88903ebc6bfe828 100644 --- a/indra/llui/llradiogroup.cpp +++ b/indra/llui/llradiogroup.cpp @@ -45,8 +45,6 @@ #include "lluictrlfactory.h" static LLDefaultChildRegistry::Register<LLRadioGroup> r1("radio_group"); - - static RadioGroupRegistry::Register<LLRadioCtrl> register_radio_ctrl("radio_item"); @@ -83,6 +81,10 @@ LLRadioGroup::~LLRadioGroup() // virtual BOOL LLRadioGroup::postBuild() { + if (!mRadioButtons.empty()) + { + mRadioButtons[0]->setTabStop(true); + } if (mControlVariable) { setSelectedIndex(mControlVariable->getValue().asInteger()); @@ -102,7 +104,7 @@ void LLRadioGroup::setIndexEnabled(S32 index, BOOL enabled) child->setEnabled(enabled); if (index == mSelectedIndex && enabled == FALSE) { - setSelectedIndex(-1); + mSelectedIndex = -1; } break; } @@ -142,8 +144,28 @@ BOOL LLRadioGroup::setSelectedIndex(S32 index, BOOL from_event) return FALSE; } + if (mSelectedIndex >= 0) + { + LLRadioCtrl* old_radio_item = mRadioButtons[mSelectedIndex]; + old_radio_item->setTabStop(false); + old_radio_item->setValue( FALSE ); + } + else + { + mRadioButtons[0]->setTabStop(false); + } + mSelectedIndex = index; + LLRadioCtrl* radio_item = mRadioButtons[mSelectedIndex]; + radio_item->setTabStop(true); + radio_item->setValue( TRUE ); + + if (hasFocus()) + { + mRadioButtons[mSelectedIndex]->focusFirstItem(FALSE, FALSE); + } + if (!from_event) { setControlValue(getSelectedIndex()); @@ -211,33 +233,6 @@ BOOL LLRadioGroup::handleKeyHere(KEY key, MASK mask) return handled; } -void LLRadioGroup::draw() -{ - S32 current_button = 0; - - BOOL take_focus = FALSE; - if (gFocusMgr.childHasKeyboardFocus(this)) - { - take_focus = TRUE; - } - - for (button_list_t::iterator iter = mRadioButtons.begin(); - iter != mRadioButtons.end(); ++iter) - { - LLRadioCtrl* radio = *iter; - BOOL selected = (current_button == mSelectedIndex); - radio->setValue( selected ); - if (take_focus && selected && !gFocusMgr.childHasKeyboardFocus(radio)) - { - // don't flash keyboard focus when navigating via keyboard - BOOL DONT_FLASH = FALSE; - radio->focusFirstItem(FALSE, DONT_FLASH); - } - current_button++; - } - - LLView::draw(); -} // When adding a child button, we need to ensure that the radio // group gets a message when the button is clicked. @@ -259,6 +254,19 @@ bool LLRadioGroup::addChild(LLView* view, S32 tab_group) return res; } +BOOL LLRadioGroup::handleMouseDown(S32 x, S32 y, MASK mask) +{ + // grab focus preemptively, before child button takes mousecapture + // + if (hasTabStop()) + { + focusFirstItem(FALSE, FALSE); + } + + return LLUICtrl::handleMouseDown(x, y, mask); +} + + // Handle one button being clicked. All child buttons must have this // function as their callback function. diff --git a/indra/llui/llradiogroup.h b/indra/llui/llradiogroup.h index b5516307fd45568260c83237a24463df62567408..914548b6aa23448de75ad1270ad0dc2b6d0e230a 100644 --- a/indra/llui/llradiogroup.h +++ b/indra/llui/llradiogroup.h @@ -54,7 +54,10 @@ class LLRadioCtrl : public LLCheckBoxCtrl Params() : length("length"), type("type") - {} + { + // radio items are not tabbable until they are selected + tab_stop = false; + } }; /*virtual*/ ~LLRadioCtrl(); @@ -103,6 +106,7 @@ class LLRadioGroup virtual BOOL postBuild(); virtual bool addChild(LLView* view, S32 tab_group = 0); + virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); virtual BOOL handleKeyHere(KEY key, MASK mask); @@ -117,9 +121,6 @@ class LLRadioGroup virtual void setValue(const LLSD& value ); virtual LLSD getValue() const; - // Draw the group, but also fix the highlighting based on the control. - void draw(); - // Update the control as needed. Userdata must be a pointer to the button. void onClickButton(LLUICtrl* clicked_radio); diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 720ca692f775cb54f6c56e422cd65c35a78b6ef9..b6eed3ef185e992e11ce04970814b0f79e0b7af4 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -329,10 +329,13 @@ void LLTabContainer::draw() } // Hide all the buttons - for(tuple_list_t::iterator iter = mTabList.begin(); iter != mTabList.end(); ++iter) + if (getTabsHidden()) { - LLTabTuple* tuple = *iter; - tuple->mButton->setVisible( FALSE ); + for(tuple_list_t::iterator iter = mTabList.begin(); iter != mTabList.end(); ++iter) + { + LLTabTuple* tuple = *iter; + tuple->mButton->setVisible( FALSE ); + } } LLPanel::draw(); diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index cb60b4fe3623a940db54e94bc2d78fde83ca35de..0fd6a141876bb03ff36d1b0b9b3306a02b36b782 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -420,8 +420,9 @@ BOOL LLTextBase::handleToolTipForUrl(LLView *view, S32 x, S32 y, std::string& ms LLToolTipMgr::instance().show(LLToolTipParams() .message(tooltip_msg) .sticky_rect(sticky_rect_screen)); + return TRUE; } - return TRUE; + return FALSE; } LLContextMenu *LLTextBase::createUrlContextMenu(const std::string &in_url) diff --git a/indra/llui/lltextbox.cpp b/indra/llui/lltextbox.cpp index 810626268fc5c1190f973d82a5b2c16c7a1a9196..132bef02966b3db22f6de898fbffec00ba03cdd5 100644 --- a/indra/llui/lltextbox.cpp +++ b/indra/llui/lltextbox.cpp @@ -161,7 +161,12 @@ BOOL LLTextBox::handleHover(S32 x, S32 y, MASK mask) BOOL LLTextBox::handleToolTip(S32 x, S32 y, std::string& msg, LLRect& sticky_rect_screen) { - return handleToolTipForUrl(this, x, y, msg, sticky_rect_screen); + if (handleToolTipForUrl(this, x, y, msg, sticky_rect_screen)) + { + return TRUE; + } + + return LLUICtrl::handleToolTip(x, y, msg, sticky_rect_screen); } void LLTextBox::setText(const LLStringExplicit& text) @@ -297,7 +302,7 @@ LLWString LLTextBox::getWrappedText(const LLStringExplicit& in_text, F32 max_wid // find the next Url in the text string LLUrlMatch match; - while ( LLUrlRegistry::instance().findUrl(wstring_to_utf8str(wtext), match)) + while ( LLUrlRegistry::instance().findUrl(wtext, match)) { S32 start = match.getStart(); S32 end = match.getEnd() + 1; @@ -573,17 +578,21 @@ void LLTextBox::updateDisplayTextAndSegments() LLWString text = mText.getWString(); // find the next Url in the text string - while ( LLUrlRegistry::instance().findUrl(wstring_to_utf8str(text), match, + while ( LLUrlRegistry::instance().findUrl(text, match, boost::bind(&LLTextBox::onUrlLabelUpdated, this, _1, _2)) ) { // work out the char offset for the start/end of the url + S32 url_start = match.getStart(); + S32 url_end = match.getEnd(); + + // and the char offset for the label in the display text S32 seg_start = mDisplayText.size(); - S32 start = seg_start + match.getStart(); - end = start + match.getLabel().size(); + S32 start = seg_start + url_start; + S32 end = start + match.getLabel().size(); // create a segment for the text before the Url mSegments.insert(new LLNormalTextSegment(new LLStyle(), seg_start, start, *this)); - mDisplayText += text.substr(0, match.getStart()); + mDisplayText += text.substr(0, url_start); // create a segment for the Url text LLStyleSP html(new LLStyle); @@ -599,7 +608,7 @@ void LLTextBox::updateDisplayTextAndSegments() mDisplayText += utf8str_to_wstring(match.getLabel()); // move on to the rest of the text after the Url - text = text.substr(match.getEnd()+1, text.size() - match.getEnd()); + text = text.substr(url_end+1, text.size() - url_end); } // output a segment for the remaining text diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 983777b747b7d8e964391e0951444f3260187178..8d5f277b59eb88ee5c1a3507dced1675d34d4df2 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -1120,21 +1120,12 @@ void LLTextEditor::updateCursorXPos() } // constraint cursor to editable segments of document +// NOTE: index must be within document range S32 LLTextEditor::getEditableIndex(S32 index, bool increasing_direction) { - //// always allow editable position at end of doc - //if (index == getLength()) - //{ - // return index; - //} - segment_set_t::iterator segment_iter; S32 offset; getSegmentAndOffset(index, &segment_iter, &offset); - if (segment_iter == mSegments.end()) - { - return 0; - } LLTextSegmentPtr segmentp = *segment_iter; @@ -3194,7 +3185,11 @@ void LLTextEditor::draw() drawLineNumbers(); { - LLLocalClipRect clip(mTextRect); + // pad clipping rectangle so that cursor can draw at full width + // when at left edge of mTextRect + LLRect clip_rect(mTextRect); + clip_rect.stretch(1); + LLLocalClipRect clip(clip_rect); drawSelectionBackground(); drawPreeditMarker(); drawText(); diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp index 950eaf2ea772cf99a92e4358c2b8232511fb67ee..000e85f78c4ea2a8ff690359eb4d2be431e734b1 100644 --- a/indra/llui/llui.cpp +++ b/indra/llui/llui.cpp @@ -81,7 +81,8 @@ std::list<std::string> gUntranslated; /*static*/ LLWindow* LLUI::sWindow = NULL; /*static*/ LLHtmlHelp* LLUI::sHtmlHelp = NULL; /*static*/ LLView* LLUI::sRootView = NULL; - +/*static*/ BOOL LLUI::sDirty = FALSE; +/*static*/ LLRect LLUI::sDirtyRect; /*static*/ std::vector<std::string> LLUI::sXUIPaths; /*static*/ LLFrameTimer LLUI::sMouseIdleTimer; @@ -1603,6 +1604,20 @@ void LLUI::cleanupClass() sImageProvider->cleanUp(); } +//static +void LLUI::dirtyRect(LLRect rect) +{ + if (!sDirty) + { + sDirtyRect = rect; + sDirty = TRUE; + } + else + { + sDirtyRect.unionWith(rect); + } +} + //static void LLUI::translate(F32 x, F32 y, F32 z) diff --git a/indra/llui/llui.h b/indra/llui/llui.h index 33338f30f9dc96808cff750328b083d898ea1e18..fddf8192ade459720708ae423fc5e64bbf153339 100644 --- a/indra/llui/llui.h +++ b/indra/llui/llui.h @@ -174,6 +174,10 @@ class LLUI static void loadIdentity(); static void translate(F32 x, F32 y, F32 z = 0.0f); + static LLRect sDirtyRect; + static BOOL sDirty; + static void dirtyRect(LLRect rect); + // Return the ISO639 language name ("en", "ko", etc.) for the viewer UI. // http://www.loc.gov/standards/iso639-2/php/code_list.php static std::string getLanguage(); diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp index 28cdb1ac2760b41853455f20cf4076f3409ae23e..8807e26f6b3cb7eca84c5850c838ea30de58d228 100644 --- a/indra/llui/lluictrl.cpp +++ b/indra/llui/lluictrl.cpp @@ -506,56 +506,6 @@ void LLUICtrl::setFocus(BOOL b) } } -void LLUICtrl::onFocusReceived() -{ - // trigger callbacks - LLFocusableElement::onFocusReceived(); - - // find first view in hierarchy above new focus that is a LLUICtrl - LLView* viewp = getParent(); - LLUICtrl* last_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getLastKeyboardFocus()); - - while (viewp && !viewp->isCtrl()) - { - viewp = viewp->getParent(); - } - - // and if it has newly gained focus, call onFocusReceived() - LLUICtrl* ctrlp = static_cast<LLUICtrl*>(viewp); - if (ctrlp && (!last_focus || !last_focus->hasAncestor(ctrlp))) - { - ctrlp->onFocusReceived(); - } -} - -void LLUICtrl::onFocusLost() -{ - // trigger callbacks - LLFocusableElement::onFocusLost(); - - // find first view in hierarchy above old focus that is a LLUICtrl - LLView* viewp = getParent(); - while (viewp && !viewp->isCtrl()) - { - viewp = viewp->getParent(); - } - - // and if it has just lost focus, call onFocusReceived() - LLUICtrl* ctrlp = static_cast<LLUICtrl*>(viewp); - // hasFocus() includes any descendants - if (ctrlp && !ctrlp->hasFocus()) - { - ctrlp->onFocusLost(); - } -} - -void LLUICtrl::onTopLost() -{ - // trigger callbacks - LLFocusableElement::onTopLost(); -} - - // virtual void LLUICtrl::setTabStop( BOOL b ) { diff --git a/indra/llui/lluictrl.h b/indra/llui/lluictrl.h index 40302306846640b4bcd4f2a8aa1c3c7c022bfae9..3add9393ea605059f6ec032fdd767ab8c5da98d2 100644 --- a/indra/llui/lluictrl.h +++ b/indra/llui/lluictrl.h @@ -153,9 +153,6 @@ class LLUICtrl public: // LLView interface /*virtual*/ BOOL setLabelArg( const std::string& key, const LLStringExplicit& text ); - /*virtual*/ void onFocusReceived(); - /*virtual*/ void onFocusLost(); - /*virtual*/ void onTopLost(); /*virtual*/ BOOL isCtrl() const; /*virtual*/ void setTentative(BOOL b); /*virtual*/ BOOL getTentative() const; diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index f2d340deb7b9496e9ea79cd1bd0bf44a978c4711..6f5c694b1b6f632aa50e6d1aafb4583f6df4cce3 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -162,3 +162,31 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL return false; } + +bool LLUrlRegistry::findUrl(const LLWString &text, LLUrlMatch &match, const LLUrlLabelCallback &cb) +{ + // boost::regex_search() only works on char or wchar_t + // types, but wchar_t is only 2-bytes on Win32 (not 4). + // So we use UTF-8 to make this work the same everywhere. + std::string utf8_text = wstring_to_utf8str(text); + if (findUrl(utf8_text, match, cb)) + { + // we cannot blindly return the start/end offsets from + // the UTF-8 string because it is a variable-length + // character encoding, so we need to update the start + // and end values to be correct for the wide string. + LLWString wurl = utf8str_to_wstring(match.getUrl()); + S32 start = text.find(wurl); + if (start == std::string::npos) + { + return false; + } + S32 end = start + wurl.size() - 1; + + match.setValues(start, end, match.getUrl(), match.getLabel(), + match.getTooltip(), match.getIcon(), + match.getMenuName(), match.getLocation()); + return true; + } + return false; +} diff --git a/indra/llui/llurlregistry.h b/indra/llui/llurlregistry.h index 84b033036c580b4c47d78f2bd2d72be2a3551e33..85e934e4b5e839a9837f70285bfd43c548041cee 100644 --- a/indra/llui/llurlregistry.h +++ b/indra/llui/llurlregistry.h @@ -37,10 +37,10 @@ #include "llurlentry.h" #include "llurlmatch.h" #include "llsingleton.h" +#include "llstring.h" #include <string> #include <vector> -#include <map> /// This default callback for findUrl() simply ignores any label updates void LLUrlRegistryNullCallback(const std::string &url, const std::string &label); @@ -77,6 +77,10 @@ class LLUrlRegistry : public LLSingleton<LLUrlRegistry> bool findUrl(const std::string &text, LLUrlMatch &match, const LLUrlLabelCallback &cb = &LLUrlRegistryNullCallback); + /// a slightly less efficient version of findUrl for wide strings + bool findUrl(const LLWString &text, LLUrlMatch &match, + const LLUrlLabelCallback &cb = &LLUrlRegistryNullCallback); + private: LLUrlRegistry(); friend class LLSingleton<LLUrlRegistry>; diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 46510804f8704362c3c1c7ced14c190b1446166f..256c7762934e6b826b6b11e678634a8a9860e03b 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -143,6 +143,7 @@ LLView::LLView(const LLView::Params& p) LLView::~LLView() { + dirtyRect(); //llinfos << "Deleting view " << mName << ":" << (void*) this << llendl; // llassert(LLView::sIsDrawing == FALSE); @@ -602,6 +603,7 @@ void LLView::setVisible(BOOL visible) if (!getParent() || getParent()->isInVisibleChain()) { // tell all children of this view that the visibility may have changed + dirtyRect(); handleVisibilityChange( visible ); } updateBoundingRect(); @@ -673,9 +675,13 @@ LLView* LLView::childrenHandleToolTip(S32 x, S32 y, std::string& msg, LLRect& st LLView* viewp = *child_it; S32 local_x = x - viewp->getRect().mLeft; S32 local_y = y - viewp->getRect().mBottom; - if(viewp->pointInView(local_x, local_y) && - viewp->getVisible() && - viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen) ) + if(!viewp->pointInView(local_x, local_y) || + !viewp->getVisible()) + { + continue; + } + + if(viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen) ) { if (sDebugMouseHandling) { @@ -685,17 +691,22 @@ LLView* LLView::childrenHandleToolTip(S32 x, S32 y, std::string& msg, LLRect& st handled_view = viewp; break; } + + if( viewp->blockMouseEvent(x, y) ) + { + handled_view = viewp; + } } return handled_view; } BOOL LLView::handleToolTip(S32 x, S32 y, std::string& msg, LLRect& sticky_rect_screen) { - LLView* child_handler = childrenHandleToolTip(x, y, msg, sticky_rect_screen); - BOOL handled = child_handler != NULL; + BOOL handled = FALSE; - // child widgets get priority on tooltips - if (!handled && !mToolTipMsg.empty()) + // parents provide tooltips first, which are optionally + // overridden by children + if (!mToolTipMsg.empty()) { // allow "scrubbing" over ui by showing next tooltip immediately // if previous one was still visible @@ -710,7 +721,9 @@ BOOL LLView::handleToolTip(S32 x, S32 y, std::string& msg, LLRect& sticky_rect_s handled = TRUE; } - if( blockMouseEvent(x, y) ) + // child tooltips will override our own + LLView* child_handler = childrenHandleToolTip(x, y, msg, sticky_rect_screen); + if (child_handler) { handled = TRUE; } @@ -1297,7 +1310,7 @@ void LLView::drawChildren() { // Only draw views that are within the root view localRectToScreen(viewp->getRect(),&screenRect); - if ( rootRect.overlaps(screenRect) ) + if ( rootRect.overlaps(screenRect) && LLUI::sDirtyRect.overlaps(screenRect)) { glMatrixMode(GL_MODELVIEW); LLUI::pushMatrix(); @@ -1316,6 +1329,21 @@ void LLView::drawChildren() gGL.getTexUnit(0)->disable(); } +void LLView::dirtyRect() +{ + LLView* child = getParent(); + LLView* parent = child ? child->getParent() : NULL; + LLView* cur = this; + while (child && parent && parent->getParent()) + { //find third to top-most view + cur = child; + child = parent; + parent = parent->getParent(); + } + + LLUI::dirtyRect(cur->calcScreenRect()); +} + //Draw a box for debugging. void LLView::drawDebugRect() { @@ -1529,6 +1557,8 @@ void LLView::updateBoundingRect() { if (isDead()) return; + LLRect cur_rect = mBoundingRect; + if (mUseBoundingRect) { mBoundingRect = calcBoundingRect(); @@ -1543,6 +1573,12 @@ void LLView::updateBoundingRect() { getParent()->updateBoundingRect(); } + + if (mBoundingRect != cur_rect) + { + dirtyRect(); + } + } LLRect LLView::calcScreenRect() const diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 1f7e5afaaec44f87948d97a39fa4d217204067ce..bf3b5d0614e02f9171e9b84c83016209b8018656 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -519,6 +519,7 @@ class LLView : public LLMouseHandler, public LLMortician, public LLFocusableElem virtual BOOL handleUnicodeCharHere(llwchar uni_char); virtual void handleReshape(const LLRect& rect, bool by_user); + virtual void dirtyRect(); virtual void notifyParent(const LLSD& info); virtual void notifyChildren(const LLSD& info); diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l index ac524326fcd463c5097f67723d50c84959c4ad46..9cc2841e8c932387deb80f7b597869ddddf0ea3a 100644 --- a/indra/lscript/lscript_compile/indra.l +++ b/indra/lscript/lscript_compile/indra.l @@ -150,6 +150,7 @@ extern "C" { int yyerror(const char *fmt, ...); } "AGENT_CROUCHING" { count(); yylval.ival = AGENT_CROUCHING; return(INTEGER_CONSTANT); } "AGENT_BUSY" { count(); yylval.ival = AGENT_BUSY; return(INTEGER_CONSTANT); } "AGENT_ALWAYS_RUN" { count(); yylval.ival = AGENT_ALWAYS_RUN; return(INTEGER_CONSTANT); } +"AGENT_AUTOPILOT" { count(); yylval.ival = AGENT_AUTOPILOT; return(INTEGER_CONSTANT); } "CAMERA_PITCH" { count(); yylval.ival = FOLLOWCAM_PITCH; return(INTEGER_CONSTANT); } "CAMERA_FOCUS_OFFSET" { count(); yylval.ival = FOLLOWCAM_FOCUS_OFFSET; return (INTEGER_CONSTANT); } diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 5aa4fe98c15c349af449b593ff2070f2c022f0e3..e17cee2219855d754b68e54900898e68c4e240ea 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -374,6 +374,8 @@ set(viewer_SOURCE_FILES lltexglobalcolor.cpp lltexlayer.cpp lltexlayerparams.cpp + lltextureatlas.cpp + lltextureatlasmanager.cpp lltexturecache.cpp lltexturectrl.cpp lltexturefetch.cpp @@ -838,6 +840,8 @@ set(viewer_HEADER_FILES lltexglobalcolor.h lltexlayer.h lltexlayerparams.h + lltextureatlas.h + lltextureatlasmanager.h lltexturecache.h lltexturectrl.h lltexturefetch.h diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini index cd7b533e7a75d107b25527ec520c3031f4062fb7..eaf5213985dac4e861ac3aa62cc0bc9ebc791ada 100644 --- a/indra/newview/app_settings/keywords.ini +++ b/indra/newview/app_settings/keywords.ini @@ -108,6 +108,7 @@ AGENT_TYPING Returned by llGetAgentInfo if the Agent is typing AGENT_CROUCHING Returned by llGetAgentInfo if the Agent is crouching AGENT_BUSY Returned by llGetAgentInfo if the Agent is busy AGENT_ALWAYS_RUN Returned by llGetAgentInfo if the Agent has 'Always Run' enabled +AGENT_AUTOPILOT Returned by llGetAgentInfo if the Agent is under autopilot control PSYS_PART_FLAGS PSYS_PART_START_COLOR diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 498d8b2e3b2119689154c6c20c1c1b3158ce983f..dcaefbba39e7f8dc8149d8aa747e9c043e7d641c 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2597,6 +2597,17 @@ <key>Value</key> <integer>1</integer> </map> + <key>EnableTextureAtlas</key> + <map> + <key>Comment</key> + <string>Whether to use texture atlas or not</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>EnableVoiceChat</key> <map> <key>Comment</key> @@ -5524,42 +5535,56 @@ <key>Value</key> <integer>1</integer> </map> - - <key>RenderShadowGaussian</key> + + <key>RenderShadowNearDist</key> <map> <key>Comment</key> - <string>Gaussian coefficients for the two shadow/SSAO blurring passes (z component unused).</string> + <string>Near clip plane of shadow camera (affects precision of depth shadows).</string> <key>Persist</key> <integer>1</integer> <key>Type</key> <string>Vector3</string> <key>Value</key> <array> - <real>2.0</real> - <real>2.0</real> - <real>0.0</real> + <real>256</real> + <real>256</real> + <real>256</real> </array> </map> - - <key>RenderShadowNearDist</key> + <key>RenderShadowClipPlanes</key> <map> <key>Comment</key> - <string>Near clip plane of shadow camera (affects precision of depth shadows).</string> + <string>Near clip plane split distances for shadow map frusta.</string> <key>Persist</key> <integer>1</integer> <key>Type</key> <string>Vector3</string> <key>Value</key> <array> - <real>256</real> - <real>256</real> - <real>256</real> + <real>1.0</real> + <real>12.0</real> + <real>32.0</real> </array> </map> - <key>RenderShadowClipPlanes</key> + <key>RenderShadowSplitExponent</key> <map> <key>Comment</key> - <string>Near clip plane split distances for shadow map frusta.</string> + <string>Near clip plane split distances for shadow map frusta (x=perspective, y=ortho, z=transition rate).</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Vector3</string> + <key>Value</key> + <array> + <real>3.0</real> + <real>3.0</real> + <real>2.0</real> + </array> + </map> + <key>RenderShadowOrthoClipPlanes</key> + <map> + <key>Comment</key> + <string>Near clip plane split distances for orthographic shadow map frusta.</string> <key>Persist</key> <integer>1</integer> <key>Type</key> @@ -5571,6 +5596,39 @@ <real>24.0</real> </array> </map> + <key>RenderShadowProjOffset</key> + <map> + <key>Comment</key> + <string>Amount to scale distance to virtual origin of shadow perspective projection.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>2.0</real> + </map> + <key>RenderShadowSlopeThreshold</key> + <map> + <key>Comment</key> + <string>Cutoff slope value for points to affect perspective shadow generation</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.0</real> + </map> + <key>RenderShadowProjExponent</key> + <map> + <key>Comment</key> + <string>Exponent applied to transition between ortho and perspective shadow projections based on viewing angle and light vector.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.5</real> + </map> <key>RenderSSAOScale</key> <map> <key>Comment</key> @@ -5639,7 +5697,7 @@ <key>Type</key> <string>F32</string> <key>Value</key> - <real>128</real> + <real>64</real> </map> <key>RenderCubeMap</key> <map> @@ -5718,7 +5776,7 @@ <key>Value</key> <integer>0</integer> </map> - + <key>RenderAnimateTrees</key> <map> <key>Comment</key> @@ -5730,6 +5788,174 @@ <key>Value</key> <integer>0</integer> </map> + + <key>RenderGIRange</key> + <map> + <key>Comment</key> + <string>Distance to cut off GI effect.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>96</real> + </map> + + <key>RenderGILuminance</key> + <map> + <key>Comment</key> + <string>Luminance factor of global illumination contribution.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.075</real> + </map> + + <key>RenderGIBrightness</key> + <map> + <key>Comment</key> + <string>Brightness factor of global illumination contribution.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.3</real> + </map> + + <key>RenderGINoise</key> + <map> + <key>Comment</key> + <string>Noise of position sampling for GI photon mapping.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.7</real> + </map> + + <key>RenderGIAttenuation</key> + <map> + <key>Comment</key> + <string>Distance attenuation factor for indirect lighting.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.1</real> + </map> + + <key>RenderGIBlurBrightness</key> + <map> + <key>Comment</key> + <string>Brightness factor of global illumination blur effect.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>1.025</real> + </map> + + <key>RenderGIBlurEdgeWeight</key> + <map> + <key>Comment</key> + <string>Edge weight for GI soften filter (sharpness).</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.8</real> + </map> + + <key>RenderGIBlurIncrement</key> + <map> + <key>Comment</key> + <string>Increment of scale for each pass of global illumination blur effect.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.8</real> + </map> + + <key>RenderLuminanceScale</key> + <map> + <key>Comment</key> + <string>Luminance value scalar for darkening effect.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>1.0</real> + </map> + + <key>RenderSunLuminanceScale</key> + <map> + <key>Comment</key> + <string>Sun Luminance value scalar for darkening effect.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>1.0</real> + </map> + + <key>RenderSunLuminanceOffset</key> + <map> + <key>Comment</key> + <string>Sun Luminance value offset for darkening effect.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0</real> + </map> + + <key>RenderLuminanceDetail</key> + <map> + <key>Comment</key> + <string>Mipmap level to use for luminance</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>16.0</real> + </map> + + <key>RenderEdgeDepthCutoff</key> + <map> + <key>Comment</key> + <string>Cutoff for depth difference that amounts to an edge.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.01</real> + </map> + <key>RenderEdgeNormCutoff</key> + <map> + <key>Comment</key> + <string>Cutoff for normal difference that amounts to an edge.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.25</real> + </map> + <key>RenderDeferredAlphaSoften</key> <map> <key>Comment</key> @@ -5752,94 +5978,489 @@ <key>Value</key> <real>4</real> </map> - <key>RenderDeferred</key> + <key>RenderDeferredSpotShadowBias</key> <map> <key>Comment</key> - <string>Use deferred rendering pipeline.</string> + <string>Bias value for spot shadows (prevent shadow acne).</string> <key>Persist</key> <integer>1</integer> <key>Type</key> - <string>Boolean</string> + <string>F32</string> <key>Value</key> - <integer>0</integer> + <real>-64.0</real> </map> - <key>RenderDeferredSunShadow</key> + <key>RenderDeferredSpotShadowOffset</key> <map> <key>Comment</key> - <string>Generate shadows from the sun.</string> + <string>Offset value for spot shadows (prevent shadow acne).</string> <key>Persist</key> <integer>1</integer> <key>Type</key> - <string>Boolean</string> + <string>F32</string> <key>Value</key> + <real>0.8</real> + </map> + + <key>RenderShadowBias</key> + <map> + <key>Comment</key> + <string>Bias value for shadows (prevent shadow acne).</string> + <key>Persist</key> <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>-0.008</real> </map> - <key>RenderDeferredSunWash</key> + <key>RenderShadowOffset</key> <map> <key>Comment</key> - <string>Amount local lights are washed out by sun.</string> + <string>Offset value for shadows (prevent shadow acne).</string> <key>Persist</key> <integer>1</integer> <key>Type</key> <string>F32</string> <key>Value</key> - <real>0.5</real> + <real>0.01</real> </map> - <key>RenderShadowNoise</key> + + <key>RenderShadowResolutionScale</key> <map> <key>Comment</key> - <string>Magnitude of noise on shadow samples.</string> + <string>Scale of shadow map resolution vs. screen resolution</string> <key>Persist</key> <integer>1</integer> <key>Type</key> <string>F32</string> <key>Value</key> - <real>-0.0001</real> + <real>1.0</real> </map> - <key>RenderShadowBlurSize</key> + + + + <key>RenderDeferredTreeShadowBias</key> <map> <key>Comment</key> - <string>Scale of shadow softening kernel.</string> + <string>Bias value for tree shadows (prevent shadow acne).</string> <key>Persist</key> <integer>1</integer> <key>Type</key> <string>F32</string> <key>Value</key> - <real>0.7</real> + <real>1.0</real> </map> - <key>RenderShadowBlurSamples</key> + <key>RenderDeferredTreeShadowOffset</key> <map> <key>Comment</key> - <string>Number of samples to take for each pass of shadow blur (value range 1-16). Actual number of samples is value * 2 - 1.</string> + <string>Offset value for tree shadows (prevent shadow acne).</string> <key>Persist</key> <integer>1</integer> <key>Type</key> - <string>U32</string> + <string>F32</string> <key>Value</key> - <real>5</real> + <real>1.0</real> </map> - <key>RenderDynamicLOD</key> - <map> - <key>Comment</key> - <string>Dynamically adjust level of detail.</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>Boolean</string> - <key>Value</key> - <integer>1</integer> - </map> - <key>RenderFSAASamples</key> - <map> - <key>Comment</key> - <string>Number of samples to use for FSAA (0 = no AA).</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>U32</string> - <key>Value</key> - <integer>0</integer> - </map> + + <key>RenderHighlightFadeTime</key> + <map> + <key>Comment</key> + <string>Transition time for mouseover highlights.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.1</real> + </map> + + <key>RenderHighlightBrightness</key> + <map> + <key>Comment</key> + <string>Brightness of mouseover highlights.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>4.0</real> + </map> + + <key>RenderHighlightThickness</key> + <map> + <key>Comment</key> + <string>Thickness of mouseover highlights.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.6</real> + </map> + + <key>RenderHighlightColor</key> + <map> + <key>Comment</key> + <string>Brightness of mouseover highlights.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Color4</string> + <key>Value</key> + <array> + <real>0.4</real> + <real>0.98</real> + <real>0.93</real> + <real>1.0</real> + </array> + </map> + + <key>RenderSpecularResX</key> + <map> + <key>Comment</key> + <string>Spec map resolution.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <real>128</real> + </map> + + <key>RenderSpecularResY</key> + <map> + <key>Comment</key> + <string>Spec map resolution.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <real>128</real> + </map> + + <key>RenderSpecularExponent</key> + <map> + <key>Comment</key> + <string>Specular exponent for generating spec map</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>1</real> + </map> + + <key>RenderDeferred</key> + <map> + <key>Comment</key> + <string>Use deferred rendering pipeline.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> + + <key>RenderDeferredShadow</key> + <map> + <key>Comment</key> + <string>Enable shadows in deferred renderer.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + + <key>RenderDeferredGI</key> + <map> + <key>Comment</key> + <string>Enable GI in deferred renderer.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> + + <key>RenderDeferredSunShadow</key> + <map> + <key>Comment</key> + <string>Generate shadows from the sun.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + + <key>RenderDeferredSun</key> + <map> + <key>Comment</key> + <string>Execute sunlight shader in deferred renderer.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + + <key>RenderDeferredAtmospheric</key> + <map> + <key>Comment</key> + <string>Execute atmospheric shader in deferred renderer.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + + <key>RenderDeferredBlurLight</key> + <map> + <key>Comment</key> + <string>Execute shadow softening shader in deferred renderer.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + + <key>RenderDeferredLocalLights</key> + <map> + <key>Comment</key> + <string>Execute local lighting shader in deferred renderer.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + + <key>RenderDeferredFullscreenLights</key> + <map> + <key>Comment</key> + <string>Execute local lighting shader in deferred renderer.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + + <key>RenderDeferredSunWash</key> + <map> + <key>Comment</key> + <string>Amount local lights are washed out by sun.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.5</real> + </map> + <key>RenderShadowNoise</key> + <map> + <key>Comment</key> + <string>Magnitude of noise on shadow samples.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>-0.0001</real> + </map> + <key>RenderShadowErrorCutoff</key> + <map> + <key>Comment</key> + <string>Cutoff error value to use ortho instead of perspective projection.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>5.0</real> + </map> + <key>RenderShadowFOVCutoff</key> + <map> + <key>Comment</key> + <string>Cutoff FOV to use ortho instead of perspective projection.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>1.1</real> + </map> + + <key>RenderShadowGaussian</key> + <map> + <key>Comment</key> + <string>Gaussian coefficients for the two shadow/SSAO blurring passes (z component unused).</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Vector3</string> + <key>Value</key> + <array> + <real>3.0</real> + <real>2.0</real> + <real>0.0</real> + </array> + </map> + + <key>RenderShadowBlurSize</key> + <map> + <key>Comment</key> + <string>Scale of shadow softening kernel.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>1.4</real> + </map> + <key>RenderShadowBlurSamples</key> + <map> + <key>Comment</key> + <string>Number of samples to take for each pass of shadow blur (value range 1-16). Actual number of samples is value * 2 - 1.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <real>4</real> + </map> + <key>RenderShadowBlurDistFactor</key> + <map> + <key>Comment</key> + <string>Distance scaler for shadow blur.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.1</real> + </map> + + <key>RenderGIAmbiance</key> + <map> + <key>Comment</key> + <string>Ambiance factor of global illumination contribution.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.5</real> + </map> + + <key>RenderGIMinRenderSize</key> + <map> + <key>Comment</key> + <string>Minimum size of objects to put into GI source map.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.5</real> + </map> + + <key>RenderGIBlurColorCurve</key> + <map> + <key>Comment</key> + <string>Color curve for GI softening kernel</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Vector3</string> + <key>Value</key> + <array> + <real>1.0</real> + <real>0.6</real> + <real>0.02</real> + </array> + </map> + + <key>RenderGIBlurPasses</key> + <map> + <key>Comment</key> + <string>Scale of GI softening kernel.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <real>4</real> + </map> + + <key>RenderGIBlurSize</key> + <map> + <key>Comment</key> + <string>Scale of GI softening kernel.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>4.0</real> + </map> + <key>RenderGIBlurSamples</key> + <map> + <key>Comment</key> + <string>Number of samples to take for each pass of GI blur (value range 1-16). Actual number of samples is value * 2 - 1.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <real>16</real> + </map> + <key>RenderGIBlurDistFactor</key> + <map> + <key>Comment</key> + <string>Distance scaler for GI blur.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>0.0</real> + </map> + + <key>RenderDynamicLOD</key> + <map> + <key>Comment</key> + <string>Dynamically adjust level of detail.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> + <key>RenderFSAASamples</key> + <map> + <key>Comment</key> + <string>Number of samples to use for FSAA (0 = no AA).</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <integer>0</integer> + </map> <key>RenderFarClip</key> <map> <key>Comment</key> @@ -6154,7 +6775,7 @@ <key>Type</key> <string>S32</string> <key>Value</key> - <integer>4096</integer> + <integer>8192</integer> </map> <key>RenderMaxVBOSize</key> <map> @@ -6365,6 +6986,17 @@ <key>Value</key> <integer>0</integer> </map> + <key>RenderUIBuffer</key> + <map> + <key>Comment</key> + <string>Cache ui render in a screen aligned buffer.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>RenderUnloadedAvatar</key> <map> <key>Comment</key> diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index a91e9fa15b762f22a675c3a91d80929cb922756d..4fb109d687012081898b7e3aacdc8cdfef4590c4 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -8,14 +8,10 @@ #extension GL_ARB_texture_rectangle : enable uniform sampler2D diffuseMap; -uniform sampler2DShadow shadowMap0; -uniform sampler2DShadow shadowMap1; -uniform sampler2DShadow shadowMap2; -uniform sampler2DShadow shadowMap3; uniform sampler2D noiseMap; -uniform sampler2DRect positionMap; +uniform sampler2DRect depthMap; -uniform mat4 shadow_matrix[4]; +uniform mat4 shadow_matrix[6]; uniform vec4 shadow_clip; uniform vec2 screen_res; @@ -26,52 +22,42 @@ varying vec3 vary_ambient; varying vec3 vary_directional; varying vec3 vary_fragcoord; varying vec3 vary_position; +varying vec3 vary_light; uniform float alpha_soften; +uniform mat4 inv_proj; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + void main() { vec2 frag = vary_fragcoord.xy/vary_fragcoord.z*0.5+0.5; frag *= screen_res; - vec3 samp_pos = texture2DRect(positionMap, frag).xyz; + vec3 samp_pos = getPosition(frag).xyz; - float shadow = 1.0; vec4 pos = vec4(vary_position, 1.0); - if (pos.z > -shadow_clip.w) - { - if (pos.z < -shadow_clip.z) - { - vec4 lpos = shadow_matrix[3]*pos; - shadow = shadow2DProj(shadowMap3, lpos).x; - shadow += max((pos.z+shadow_clip.z)/(shadow_clip.z-shadow_clip.w)*2.0-1.0, 0.0); - } - else if (pos.z < -shadow_clip.y) - { - vec4 lpos = shadow_matrix[2]*pos; - shadow = shadow2DProj(shadowMap2, lpos).x; - } - else if (pos.z < -shadow_clip.x) - { - vec4 lpos = shadow_matrix[1]*pos; - shadow = shadow2DProj(shadowMap1, lpos).x; - } - else - { - vec4 lpos = shadow_matrix[0]*pos; - shadow = shadow2DProj(shadowMap0, lpos).x; - } - } - - vec4 col = vec4(vary_ambient + vary_directional.rgb*shadow, gl_Color.a); + vec4 col = vec4(vary_ambient + vary_directional.rgb, gl_Color.a); vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy) * col; color.rgb = atmosLighting(color.rgb); color.rgb = scaleSoftClip(color.rgb); - if (samp_pos.z != 0.0) + if (samp_pos.z != 0.0 && gl_Color.a < 1.0) { float dist_factor = alpha_soften; float a = gl_Color.a; @@ -83,6 +69,7 @@ void main() //gl_FragColor = gl_Color; gl_FragColor = color; //gl_FragColor = vec4(1,0,1,1); + //gl_FragColor = vec4(1,0,1,1)*shadow; } diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl index b496bd674faf079c6bb37470070f7a8e6cd13aae..1a7d58b07badf728127947f7a185e8dab07635ca 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl @@ -20,8 +20,11 @@ varying vec3 vary_ambient; varying vec3 vary_directional; varying vec3 vary_fragcoord; varying vec3 vary_position; +varying vec3 vary_light; uniform float near_clip; +uniform float shadow_offset; +uniform float shadow_bias; void main() { @@ -32,8 +35,9 @@ void main() vec4 pos = (gl_ModelViewMatrix * gl_Vertex); vec3 norm = normalize(gl_NormalMatrix * gl_Normal); - vary_position = pos.xyz; + vary_position = pos.xyz + norm.xyz * (-pos.z/64.0*shadow_offset+shadow_bias); + calcAtmospherics(pos.xyz); //vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.)); @@ -54,6 +58,8 @@ void main() col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz); col.rgb = scaleDownLight(col.rgb); + vary_light = gl_LightSource[0].position.xyz; + vary_ambient = col.rgb*gl_Color.rgb; vary_directional.rgb = gl_Color.rgb*atmosAffectDirectionalLight(max(calcDirectionalLight(norm, gl_LightSource[0].position.xyz), (1.0-gl_Color.a)*(1.0-gl_Color.a))); diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl index 6c94f5c5a7aedb758437767ca275af916cff9c4f..ff64a6b0c33ae43239509c102091d0e4c37bf51b 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl @@ -12,7 +12,7 @@ uniform sampler2DShadow shadowMap2; uniform sampler2DShadow shadowMap3; uniform sampler2D noiseMap; -uniform mat4 shadow_matrix[4]; +uniform mat4 shadow_matrix[6]; uniform vec4 shadow_clip; vec3 atmosLighting(vec3 light); diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl index 58aa5a9cb5dd7448b40067a779400f6468db20bb..75df3889418feb0d1efc8e1cbb174bb809d13fbe 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl @@ -8,13 +8,18 @@ uniform sampler2D diffuseMap; varying vec3 vary_normal; -varying vec4 vary_position; void main() { - gl_FragData[0] = gl_Color * texture2D(diffuseMap, gl_TexCoord[0].xy); + vec4 diff = gl_Color*texture2D(diffuseMap, gl_TexCoord[0].xy); + + if (diff.a < 0.2) + { + discard; + } + + gl_FragData[0] = vec4(diff.rgb, 0.0); gl_FragData[1] = vec4(0,0,0,0); - gl_FragData[2] = vec4(normalize(vary_normal), 0.0); - gl_FragData[3] = vary_position; + gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl index 27c09db92200ff96cf73f8193e315d11bc92b251..00083eb6b396e8ec84f627dbf3bf80d20dbc243a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl @@ -10,6 +10,7 @@ uniform sampler2D diffuseMap; void main() { - gl_FragColor = vec4(1,1,1,gl_Color.a * texture2D(diffuseMap, gl_TexCoord[0].xy)); + gl_FragColor = vec4(1,1,1,gl_Color.a * texture2D(diffuseMap, gl_TexCoord[0].xy).a); + //gl_FragColor = vec4(1,1,1,1); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl index 14da6b1ad45eed70f0eec005a4d9e82a634c9fa1..8c8489d087f6015c8692af6f3e23c2837603ff8f 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl @@ -28,8 +28,7 @@ void main() norm = normalize(norm); pos = gl_ProjectionMatrix * pos; - //smash geometry against near clip plane - pos.z = max(pos.z, -1.0); + pos.z = max(pos.z, -pos.w+0.01); gl_Position = pos; gl_FrontColor = gl_Color; diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl index 12a7ff7f2978c333416ea44d46fa4d25087c3dcb..471a1f040714d0b4f1b83bc7499490279772eca7 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl @@ -10,7 +10,6 @@ mat4 getSkinnedTransform(); attribute vec4 weight; varying vec3 vary_normal; -varying vec4 vary_position; void main() { @@ -30,7 +29,6 @@ void main() norm.z = dot(trans[2].xyz, gl_Normal); norm = normalize(norm); - vary_position = pos; vary_normal = norm; gl_Position = gl_ProjectionMatrix * pos; diff --git a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl index 3c6700a871f4581508c2b503d7e8a0840f457ab5..bd5e9dd75803c6b8ded976bd0d1f11cc41694ed4 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl @@ -7,10 +7,12 @@ #extension GL_ARB_texture_rectangle : enable -uniform sampler2DRect positionMap; +uniform sampler2DRect depthMap; uniform sampler2DRect normalMap; uniform sampler2DRect lightMap; +uniform sampler2DRect giLightMap; +uniform float dist_factor; uniform float blur_size; uniform vec2 delta; uniform vec3 kern[32]; @@ -19,30 +21,52 @@ uniform float kern_scale; varying vec2 vary_fragcoord; +uniform mat4 inv_proj; +uniform vec2 screen_res; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + void main() { - vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz; - vec3 pos = texture2DRect(positionMap, vary_fragcoord.xy).xyz; - vec2 ccol = texture2DRect(lightMap, vary_fragcoord.xy).rg; + vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0; + vec3 pos = getPosition(vary_fragcoord.xy).xyz; + vec4 ccol = texture2DRect(lightMap, vary_fragcoord.xy).rgba; vec2 dlt = kern_scale * delta / (1.0+norm.xy*norm.xy); + dlt /= max(-pos.z*dist_factor, 1.0); + vec2 defined_weight = kern[0].xy; // special case the first (centre) sample's weight in the blur; we have to sample it anyway so we get it for 'free' - vec2 col = defined_weight * ccol; + vec4 col = defined_weight.xyxx * ccol; for (int i = 1; i < kern_length; i++) { vec2 tc = vary_fragcoord.xy + kern[i].z*dlt; - vec3 samppos = texture2DRect(positionMap, tc).xyz; + vec3 samppos = getPosition(tc).xyz; float d = dot(norm.xyz, samppos.xyz-pos.xyz);// dist from plane if (d*d <= 0.003) { - col += texture2DRect(lightMap, tc).rg*kern[i].xy; + col += texture2DRect(lightMap, tc)*kern[i].xyxx; defined_weight += kern[i].xy; } } - col /= defined_weight; - gl_FragColor = vec4(col.r, col.g, 0.0, 1.0); + + col /= defined_weight.xyxx; + + gl_FragColor = col; + + //gl_FragColor = ccol; } diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl index a8712bc8cc73e7220fcbe112487dd60abe1a1328..1c29dae5f7c55cec11d92de337f81400374bd94b 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl @@ -11,7 +11,6 @@ uniform sampler2D bumpMap; varying vec3 vary_mat0; varying vec3 vary_mat1; varying vec3 vary_mat2; -varying vec4 vary_position; void main() { @@ -22,8 +21,7 @@ void main() dot(norm,vary_mat1), dot(norm,vary_mat2)); - gl_FragData[0].rgb = gl_Color.rgb*col; - gl_FragData[1] = vec4(col*(gl_Color.a*1.5), gl_Color.a); - gl_FragData[2] = vec4(normalize(tnorm), 0.0); - gl_FragData[3] = vary_position; + gl_FragData[0] = vec4(gl_Color.rgb*col, 0.0); + gl_FragData[1] = vec4(col*gl_Color.a, gl_Color.a); + gl_FragData[2] = vec4(normalize(tnorm)*0.5+0.5, 0.0); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl index ba180922cc1487c648a1060b612d705f76c781cf..9589912c6ce9c1669d690216176b13fb5af727c9 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl @@ -8,7 +8,6 @@ varying vec3 vary_mat0; varying vec3 vary_mat1; varying vec3 vary_mat2; -varying vec4 vary_position; void main() { @@ -16,8 +15,6 @@ void main() gl_Position = ftransform(); gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; - vary_position = gl_ModelViewMatrix * gl_Vertex; - vec3 n = normalize(gl_NormalMatrix * gl_Normal); vec3 b = normalize(gl_NormalMatrix * gl_MultiTexCoord2.xyz); vec3 t = cross(b, n); diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl index f2ba2df69a0d577731cbd0f35d68ada52dbff2b5..5895ebda84c2aac53b9dc5573bbc432f073dc3bd 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl @@ -8,13 +8,11 @@ uniform sampler2D diffuseMap; varying vec3 vary_normal; -varying vec4 vary_position; void main() { vec3 col = texture2D(diffuseMap, gl_TexCoord[0].xy).rgb; - gl_FragData[0] = vec4(gl_Color.rgb*col, 1.0); + gl_FragData[0] = vec4(gl_Color.rgb*col, 0.0); gl_FragData[1] = vec4(col*(gl_Color.a*1.5), gl_Color.a); - gl_FragData[2] = vec4(normalize(vary_normal), 0.0); - gl_FragData[3] = vary_position; + gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl index 3413a7f9d6ec1e581b2338f3d0b8d27daa83697b..44468cdfa296fdcb29ef7f6cca60666a44327127 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl @@ -6,16 +6,13 @@ */ varying vec3 vary_normal; -varying vec4 vary_position; void main() { //transform vertex - gl_Position = ftransform(); + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; - vary_position = gl_ModelViewMatrix * gl_Vertex; - vary_normal = normalize(gl_NormalMatrix * gl_Normal); gl_FrontColor = gl_Color; diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl index 2a811c58971881956b008460667c8e46163fda06..e518bddb9840fa4608f1d814620b214e955b549c 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl @@ -8,14 +8,9 @@ #extension GL_ARB_texture_rectangle : enable uniform sampler2D diffuseMap; -uniform sampler2DShadow shadowMap0; -uniform sampler2DShadow shadowMap1; -uniform sampler2DShadow shadowMap2; -uniform sampler2DShadow shadowMap3; +uniform sampler2DRect depthMap; uniform sampler2D noiseMap; -uniform sampler2DRect positionMap; -uniform mat4 shadow_matrix[4]; uniform vec4 shadow_clip; uniform vec2 screen_res; @@ -30,12 +25,27 @@ varying vec3 vary_fragcoord; uniform float alpha_soften; +uniform mat4 inv_proj; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + void main() { vec2 frag = vary_fragcoord.xy/vary_fragcoord.z*0.5+0.5; frag *= screen_res; - vec3 samp_pos = texture2DRect(positionMap, frag).xyz; + vec3 samp_pos = getPosition(frag).xyz; float shadow = 1.0; vec4 pos = vary_position; @@ -46,10 +56,10 @@ void main() color.rgb = fullbrightScaleSoftClip(color.rgb); - if (samp_pos.z != 0.0) + if (samp_pos.z != 0.0 && color.a < 1.0) { float dist_factor = alpha_soften; - float a = gl_Color.a; + float a = color.a; a *= a; dist_factor *= 1.0/(1.0-a); color.a *= min((pos.z-samp_pos.z)*dist_factor, 1.0); diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl index 6381a1ced8cbaa7e7d7794590c3f9cae4544dd89..aff51178b05590589f8c2be1a77b8b375645e7a1 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl @@ -12,12 +12,12 @@ vec3 atmosAffectDirectionalLight(float lightIntensity); vec3 scaleDownLight(vec3 light); vec3 scaleUpLight(vec3 light); -varying vec4 vary_position; varying vec3 vary_ambient; varying vec3 vary_directional; varying vec3 vary_normal; varying vec3 vary_fragcoord; uniform float near_clip; +varying vec4 vary_position; void main() { diff --git a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..b351eec6e54536d7e822822f381a6cf5d16b04ac --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl @@ -0,0 +1,165 @@ +/** + * @file giF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform sampler2D noiseMap; + +uniform sampler2D diffuseGIMap; +uniform sampler2D normalGIMap; +uniform sampler2D depthGIMap; + +uniform sampler2D lightFunc; + +// Inputs +varying vec2 vary_fragcoord; + +uniform vec2 screen_res; + +uniform mat4 inv_proj; +uniform mat4 gi_mat; //gPipeline.mGIMatrix - eye space to sun space +uniform mat4 gi_mat_proj; //gPipeline.mGIMatrixProj - eye space to projected sun space +uniform mat4 gi_norm_mat; //gPipeline.mGINormalMatrix - eye space normal to sun space normal matrix +uniform mat4 gi_inv_proj; //gPipeline.mGIInvProj - projected sun space to sun space +uniform float gi_radius; +uniform float gi_intensity; +uniform int gi_samples; +uniform vec2 gi_kern[25]; +uniform vec2 gi_scale; +uniform vec3 gi_quad; +uniform vec3 gi_spec; +uniform float gi_direction_weight; +uniform float gi_light_offset; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +vec4 getGIPosition(vec2 gi_tc) +{ + float depth = texture2D(depthGIMap, gi_tc).a; + vec2 sc = gi_tc*2.0; + sc -= vec2(1.0, 1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = gi_inv_proj*ndc; + pos.xyz /= pos.w; + pos.w = 1.0; + return pos; +} + +vec3 giAmbient(vec3 pos, vec3 norm) +{ + vec4 gi_c = gi_mat_proj * vec4(pos, 1.0); + gi_c.xyz /= gi_c.w; + + vec4 gi_pos = gi_mat*vec4(pos,1.0); + vec3 gi_norm = (gi_norm_mat*vec4(norm,1.0)).xyz; + gi_norm = normalize(gi_norm); + + vec2 tcx = gi_norm.xy; + vec2 tcy = gi_norm.yx; + + vec4 eye_pos = gi_mat*vec4(0,0,0,1.0); + + vec3 eye_dir = normalize(gi_pos.xyz-eye_pos.xyz/eye_pos.w); + + //vec3 eye_dir = vec3(0,0,-1); + //eye_dir = (gi_norm_mat*vec4(eye_dir, 1.0)).xyz; + //eye_dir = normalize(eye_dir); + + //float round_x = gi_scale.x; + //float round_y = gi_scale.y; + + vec3 debug = texture2D(normalGIMap, gi_c.xy).rgb*0.5+0.5; + debug.xz = vec2(0.0,0.0); + //debug = fract(debug); + + float round_x = 1.0/64.0; + float round_y = 1.0/64.0; + + //gi_c.x = floor(gi_c.x/round_x+0.5)*round_x; + //gi_c.y = floor(gi_c.y/round_y+0.5)*round_y; + + float fda = 0.0; + vec3 fdiff = vec3(0,0,0); + + vec3 rcol = vec3(0,0,0); + + float fsa = 0.0; + + for (int i = -1; i < 2; i+=2 ) + { + for (int j = -1; j < 2; j+=2) + { + vec2 tc = vec2(i, j)*0.75; + vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0+tc*0.5).xyz; + //tc += gi_norm.xy*nz.z; + tc += nz.xy*2.0; + tc /= gi_samples; + tc += gi_c.xy; + + vec3 lnorm = -normalize(texture2D(normalGIMap, tc.xy).xyz*2.0-1.0); + vec3 lpos = getGIPosition(tc.xy).xyz; + + vec3 at = lpos-gi_pos.xyz; + float dist = dot(at,at); + float da = clamp(1.0/(gi_spec.x*dist), 0.0, 1.0); + + if (da > 0.0) + { + //add angular attenuation + vec3 ldir = at; + float ang_atten = clamp(dot(ldir, gi_norm), 0.0, 1.0); + + float ld = -dot(ldir, lnorm); + + if (ang_atten > 0.0 && ld < 0.0) + { + vec3 diff = texture2D(diffuseGIMap, tc.xy).xyz; + da = da*ang_atten; + fda += da; + fdiff += diff*da; + } + } + } + } + + fdiff /= max(gi_spec.y*fda, gi_quad.z); + fdiff = clamp(fdiff, vec3(0), vec3(1)); + + vec3 ret = fda*fdiff; + //ret = ret*ret*gi_quad.x+ret*gi_quad.y+gi_quad.z; + + //fda *= nz.z; + + //rcol.rgb *= gi_intensity; + //return rcol.rgb+vary_AmblitColor.rgb*0.25; + //return vec4(debug, 0.0); + //return vec4(fda*fdiff, 0.0); + return clamp(ret,vec3(0.0), vec3(1.0)); + //return debug.xyz; +} + +void main() +{ + vec2 pos_screen = vary_fragcoord.xy; + vec4 pos = getPosition(pos_screen); + vec3 norm = texture2DRect(normalMap, pos_screen).xyz*2.0-1.0; + + gl_FragData[0].xyz = giAmbient(pos, norm); +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/giV.glsl b/indra/newview/app_settings/shaders/class1/deferred/giV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..71dcea9628e677c502e2e52c8fcfdb7594d8bf1e --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/giV.glsl @@ -0,0 +1,22 @@ +/** + * @file giV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; + +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy * 0.5 + 0.5)*screen_res; + vec4 tex = gl_MultiTexCoord0; + tex.w = 1.0; + + gl_FrontColor = gl_Color; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl index 20a3f3df5b59bb09c402f124ec8b59fab81f0ae7..8c140a7b4f02716fd690ea630fa91b09e9058716 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl @@ -9,12 +9,9 @@ uniform sampler2D diffuseMap; uniform sampler2D normalMap; uniform sampler2D specularMap; -varying vec4 vary_position; - void main() { gl_FragData[0] = texture2D(diffuseMap, gl_TexCoord[0].xy); gl_FragData[1] = texture2D(specularMap, gl_TexCoord[0].xy); - gl_FragData[2] = vec4(texture2D(normalMap, gl_TexCoord[0].xy).xyz, vary_position.z); - gl_FragData[3] = vary_position; + gl_FragData[2] = vec4(texture2D(normalMap, gl_TexCoord[0].xy).xyz, 0.0); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl index 9c5ae315415f73987a19aed2d3adcb7ff8343df5..57532a30b333118fa4d9a9e49bfa5560929c1873 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl @@ -5,15 +5,11 @@ * $License$ */ -varying vec4 vary_position; - void main() { //transform vertex gl_Position = ftransform(); gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; - vary_position = gl_ModelViewMatrix * gl_Vertex; - gl_FrontColor = gl_Color; } diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..e8b53b029371c4784d0618819548c7da24a9a9fc --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl @@ -0,0 +1,15 @@ +/** + * @file luminanceF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +uniform sampler2DRect diffuseMap; + +varying vec2 vary_fragcoord; + +void main() +{ + gl_FragColor = texture2DRect(diffuseMap, vary_fragcoord.xy); +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..db8775f024b56e30396cc10812ea104c0d9092a3 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl @@ -0,0 +1,20 @@ +/** + * @file giV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; + +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy * 0.5 + 0.5)*screen_res; + + gl_FrontColor = gl_Color; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl index 3689d12840a9be90537686d4a054807231997731..797b9e9f3bf88fe17740443abe5f6ceeeb6ce9d1 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl @@ -7,13 +7,14 @@ #extension GL_ARB_texture_rectangle : enable +uniform sampler2DRect depthMap; uniform sampler2DRect diffuseRect; uniform sampler2DRect specularRect; -uniform sampler2DRect positionMap; uniform sampler2DRect normalMap; uniform samplerCube environmentMap; -uniform sampler2DRect lightMap; uniform sampler2D noiseMap; +uniform sampler2D lightFunc; + uniform vec3 env_mat[3]; uniform float sun_wash; @@ -23,24 +24,48 @@ uniform int light_count; uniform vec4 light[16]; uniform vec4 light_col[16]; -varying vec3 vary_fragcoord; +varying vec4 vary_fragcoord; uniform vec2 screen_res; +uniform float far_z; + +uniform mat4 inv_proj; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + void main() { vec2 frag = (vary_fragcoord.xy*0.5+0.5)*screen_res; - vec3 pos = texture2DRect(positionMap, frag.xy).xyz; - vec3 norm = normalize(texture2DRect(normalMap, frag.xy).xyz); + vec3 pos = getPosition(frag.xy).xyz; + if (pos.z < far_z) + { + discard; + } + + vec3 norm = normalize(texture2DRect(normalMap, frag.xy).xyz*2.0-1.0); vec4 spec = texture2DRect(specularRect, frag.xy); vec3 diff = texture2DRect(diffuseRect, frag.xy).rgb; float noise = texture2D(noiseMap, frag.xy/128.0).b; vec3 out_col = vec3(0,0,0); + vec3 npos = normalize(-pos); for (int i = 0; i < light_count; ++i) { vec3 lv = light[i].xyz-pos; float dist2 = dot(lv,lv); - if (dist2 > light[i].w) + dist2 /= light[i].w; + if (dist2 > 1.0) { continue; } @@ -55,29 +80,38 @@ void main() da = dot(norm, lv); float fa = light_col[i].a+1.0; - float dist_atten = clamp(1.0-(dist2-light[i].w*(1.0-fa))/(light[i].w*fa), 0.0, 1.0); + float dist_atten = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0); dist_atten *= noise; float lit = da * dist_atten; vec3 col = light_col[i].rgb*lit*diff; + //vec3 col = vec3(dist2, light_col[i].a, lit); if (spec.a > 0.0) { - vec3 ref = reflect(normalize(pos), norm); - float sa = dot(ref,lv); - sa = max(sa, 0.0); - sa = pow(sa, 128.0 * spec.a*spec.a/dist_atten)*min(dist_atten*4.0, 1.0); - sa *= noise; - col += da*sa*light_col[i].rgb*spec.rgb; + //vec3 ref = dot(pos+lv, norm); + + float sa = dot(normalize(lv+npos),norm); + + if (sa > 0.0) + { + sa = texture2D(lightFunc,vec2(sa, spec.a)).a * min(dist_atten*4.0, 1.0); + sa *= noise; + col += da*sa*light_col[i].rgb*spec.rgb; + } } out_col += col; } - //attenuate point light contribution by SSAO component - out_col *= texture2DRect(lightMap, frag.xy).g; + if (dot(out_col, out_col) <= 0.0) + { + discard; + } gl_FragColor.rgb = out_col; gl_FragColor.a = 0.0; + + //gl_FragColor = vec4(0.1, 0.025, 0.025/4.0, 0.0); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..28bcd720c0a294d9202c64486a01813d90cc12f9 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl @@ -0,0 +1,178 @@ +/** + * @file multiSpotLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + + +#version 120 + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect specularRect; +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform samplerCube environmentMap; +uniform sampler2D noiseMap; +uniform sampler2D lightFunc; +uniform sampler2D projectionMap; + +uniform mat4 proj_mat; //screen space to light space +uniform float proj_near; //near clip for projection +uniform vec3 proj_p; //plane projection is emitting from (in screen space) +uniform vec3 proj_n; +uniform float proj_focus; //distance from plane to begin blurring +uniform float proj_lod; //(number of mips in proj map) +uniform float proj_range; //range between near clip and far clip plane of projection +uniform float proj_ambiance; +uniform float near_clip; +uniform float far_clip; + +uniform vec3 proj_origin; //origin of projection to be used for angular attenuation +uniform float sun_wash; + +varying vec4 vary_light; + +varying vec4 vary_fragcoord; +uniform vec2 screen_res; + +uniform mat4 inv_proj; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +void main() +{ + vec4 frag = vary_fragcoord; + frag.xyz /= frag.w; + frag.xyz = frag.xyz*0.5+0.5; + frag.xy *= screen_res; + + vec3 pos = getPosition(frag.xy).xyz; + vec3 lv = vary_light.xyz-pos.xyz; + float dist2 = dot(lv,lv); + dist2 /= vary_light.w; + if (dist2 > 1.0) + { + discard; + } + + vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0; + + norm = normalize(norm); + float l_dist = -dot(lv, proj_n); + + vec4 proj_tc = (proj_mat * vec4(pos.xyz, 1.0)); + if (proj_tc.z < 0.0) + { + discard; + } + + proj_tc.xyz /= proj_tc.w; + + float fa = gl_Color.a+1.0; + float dist_atten = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0); + + lv = proj_origin-pos.xyz; + lv = normalize(lv); + float da = dot(norm, lv); + + vec3 col = vec3(0,0,0); + + vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; + + float noise = texture2D(noiseMap, frag.xy/128.0).b; + if (proj_tc.z > 0.0 && + proj_tc.x < 1.0 && + proj_tc.y < 1.0 && + proj_tc.x > 0.0 && + proj_tc.y > 0.0) + { + float lit = 0.0; + if (da > 0.0) + { + float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0); + float lod = diff * proj_lod; + + vec4 plcol = texture2DLod(projectionMap, proj_tc.xy, lod); + + vec3 lcol = gl_Color.rgb * plcol.rgb * plcol.a; + + lit = da * dist_atten * noise; + + col = lcol*lit*diff_tex; + } + + float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0); + float lod = diff * proj_lod; + vec4 amb_plcol = texture2DLod(projectionMap, proj_tc.xy, lod); + //float amb_da = mix(proj_ambiance, proj_ambiance*max(-da, 0.0), max(da, 0.0)); + float amb_da = proj_ambiance; + + amb_da += (da*da*0.5+0.5)*proj_ambiance; + + amb_da *= dist_atten * noise; + + amb_da = min(amb_da, 1.0-lit); + + col += amb_da*gl_Color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a; + } + + + vec4 spec = texture2DRect(specularRect, frag.xy); + if (spec.a > 0.0) + { + vec3 ref = reflect(normalize(pos), norm); + + //project from point pos in direction ref to plane proj_p, proj_n + vec3 pdelta = proj_p-pos; + float ds = dot(ref, proj_n); + + if (ds < 0.0) + { + vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds; + + vec3 stc = (proj_mat * vec4(pfinal.xyz, 1.0)).xyz; + + if (stc.z > 0.0) + { + stc.xy /= stc.z+proj_near; + + if (stc.x < 1.0 && + stc.y < 1.0 && + stc.x > 0.0 && + stc.y > 0.0) + { + vec4 scol = texture2DLod(projectionMap, stc.xy, proj_lod-spec.a*proj_lod); + col += dist_atten*scol.rgb*gl_Color.rgb*scol.a*spec.rgb; + } + } + } + } + + /*if (spec.a > 0.0) + { + //vec3 ref = reflect(normalize(pos), norm); + float sa = dot(normalize(lv-normalize(pos)),norm);; + //sa = max(sa, 0.0); + //sa = pow(sa, 128.0 * spec.a*spec.a/dist_atten)*min(dist_atten*4.0, 1.0); + sa = texture2D(lightFunc, vec2(sa, spec.a)).a * min(dist_atten*4.0, 1.0); + sa *= noise; + col += da*sa*lcol*spec.rgb; + }*/ + + gl_FragColor.rgb = col; + gl_FragColor.a = 0.0; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl index 52bad1f34cc3c792b6ba6b5b5d2fd963f405c1b0..78256e20cc6af290298168401d8b20a334ecba39 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl @@ -9,33 +9,53 @@ uniform sampler2DRect diffuseRect; uniform sampler2DRect specularRect; -uniform sampler2DRect positionMap; uniform sampler2DRect normalMap; uniform samplerCube environmentMap; -uniform sampler2DRect lightMap; uniform sampler2D noiseMap; +uniform sampler2D lightFunc; +uniform sampler2DRect depthMap; uniform vec3 env_mat[3]; uniform float sun_wash; varying vec4 vary_light; -varying vec3 vary_fragcoord; +varying vec4 vary_fragcoord; uniform vec2 screen_res; +uniform mat4 inv_proj; +uniform vec4 viewport; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = (pos_screen.xy-viewport.xy)*2.0; + sc /= viewport.zw; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + void main() { - vec2 frag = vary_fragcoord.xy/vary_fragcoord.z*0.5+0.5; - frag *= screen_res; - vec3 pos = texture2DRect(positionMap, frag).xyz; + vec4 frag = vary_fragcoord; + frag.xyz /= frag.w; + frag.xyz = frag.xyz*0.5+0.5; + frag.xy *= screen_res; + + vec3 pos = getPosition(frag.xy).xyz; vec3 lv = vary_light.xyz-pos; float dist2 = dot(lv,lv); - if (dist2 > vary_light.w) + dist2 /= vary_light.w; + if (dist2 > 1.0) { discard; } - vec3 norm = texture2DRect(normalMap, frag).xyz; + vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0; float da = dot(norm, lv); if (da < 0.0) { @@ -46,30 +66,32 @@ void main() lv = normalize(lv); da = dot(norm, lv); - float noise = texture2D(noiseMap, frag/128.0).b; + float noise = texture2D(noiseMap, frag.xy/128.0).b; - vec3 col = texture2DRect(diffuseRect, frag).rgb; + vec3 col = texture2DRect(diffuseRect, frag.xy).rgb; float fa = gl_Color.a+1.0; - float dist_atten = clamp(1.0-(dist2-vary_light.w*(1.0-fa))/(vary_light.w*fa), 0.0, 1.0); + float dist_atten = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0); float lit = da * dist_atten * noise; col = gl_Color.rgb*lit*col; - vec4 spec = texture2DRect(specularRect, frag); + vec4 spec = texture2DRect(specularRect, frag.xy); if (spec.a > 0.0) { - vec3 ref = reflect(normalize(pos), norm); - float sa = dot(ref,lv); - sa = max(sa, 0.0); - sa = pow(sa, 128.0 * spec.a*spec.a/dist_atten)*min(dist_atten*4.0, 1.0); - sa *= noise; - col += da*sa*gl_Color.rgb*spec.rgb; + float sa = dot(normalize(lv-normalize(pos)),norm); + if (sa > 0.0) + { + sa = texture2D(lightFunc, vec2(sa, spec.a)).a * min(dist_atten*4.0, 1.0); + sa *= noise; + col += da*sa*gl_Color.rgb*spec.rgb; + } } - //attenuate point light contribution by SSAO component - col *= texture2DRect(lightMap, frag.xy).g; - - + if (dot(col, col) <= 0.0) + { + discard; + } + gl_FragColor.rgb = col; gl_FragColor.a = 0.0; } diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl index a4edb88259fdf6de355b082c8b17af35c11b7282..e815ca260fdeac7534aa6d75591be348ed588a0a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl @@ -6,7 +6,7 @@ */ varying vec4 vary_light; -varying vec3 vary_fragcoord; +varying vec4 vary_fragcoord; uniform vec2 screen_res; uniform float near_clip; @@ -14,10 +14,10 @@ uniform float near_clip; void main() { //transform vertex - gl_Position = ftransform(); + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; - vary_fragcoord.xyz = pos.xyz + vec3(0,0,near_clip); + vary_fragcoord = pos; vec4 tex = gl_MultiTexCoord0; tex.w = 1.0; diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..71de03663c0e6718bf3115302a772fa8297e3873 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl @@ -0,0 +1,57 @@ +/** + * @file postDeferredF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect localLightMap; +uniform sampler2DRect sunLightMap; +uniform sampler2DRect giLightMap; +uniform sampler2D luminanceMap; +uniform sampler2DRect lightMap; + +uniform vec3 lum_quad; +uniform float lum_lod; +uniform vec4 ambient; + +uniform vec3 gi_quad; + +uniform vec2 screen_res; +varying vec2 vary_fragcoord; + +void main() +{ + vec2 tc = vary_fragcoord.xy; + vec3 lum = texture2DLod(luminanceMap, tc/screen_res, lum_lod).rgb; + float luminance = lum.r; + luminance = luminance*lum_quad.y+lum_quad.z; + + vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy); + + float ambocc = texture2DRect(lightMap, vary_fragcoord.xy).g; + + vec3 gi_col = texture2DRect(giLightMap, vary_fragcoord.xy).rgb; + gi_col = gi_col*gi_col*gi_quad.x + gi_col*gi_quad.y+gi_quad.z*ambocc*ambient.rgb; + gi_col *= diff; + + vec4 sun_col = texture2DRect(sunLightMap, vary_fragcoord.xy); + + vec3 local_col = texture2DRect(localLightMap, vary_fragcoord.xy).rgb; + + + sun_col *= 1.0/min(luminance, 1.0); + gi_col *= 1.0/luminance; + + vec3 col = sun_col.rgb+gi_col+local_col; + + gl_FragColor.rgb = col.rgb; + col.rgb = max(col.rgb-vec3(1.0,1.0,1.0), vec3(0.0, 0.0, 0.0)); + + gl_FragColor.a = 0.0; // max(dot(col.rgb,col.rgb)*lum_quad.x, sun_col.a); + + //gl_FragColor.rgb = vec3(lum_lod); +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..9819232fd5d0f1788e88500d8a1a6fca9f1423ed --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl @@ -0,0 +1,17 @@ +/** + * @file postDeferredV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..9612aee40597752615947db97084b37fcdc686ea --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl @@ -0,0 +1,79 @@ +/** + * @file postgiF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform sampler2DRect giLightMap; +uniform sampler2D noiseMap; + +uniform vec2 kern[32]; +uniform float dist_factor; +uniform float blur_size; +uniform vec2 delta; +uniform int kern_length; +uniform float kern_scale; +uniform vec3 blur_quad; + +varying vec2 vary_fragcoord; + +uniform mat4 inv_proj; +uniform vec2 screen_res; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +void main() +{ + vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0; + vec3 pos = getPosition(vary_fragcoord.xy).xyz; + + + vec3 ccol = texture2DRect(giLightMap, vary_fragcoord.xy).rgb; + vec2 dlt = kern_scale * delta/(1.0+norm.xy*norm.xy); + dlt /= max(-pos.z*dist_factor, 1.0); + float defined_weight = kern[0].x; + vec3 col = vec3(0.0); + + for (int i = 0; i < kern_length; i++) + { + vec2 tc = vary_fragcoord.xy + kern[i].y*dlt; + vec3 sampNorm = texture2DRect(normalMap, tc.xy).xyz*2.0-1.0; + + float d = dot(norm.xyz, sampNorm); + + if (d > 0.8) + { + vec3 samppos = getPosition(tc.xy).xyz; + samppos -= pos; + if (dot(samppos,samppos) < -0.05*pos.z) + { + col += texture2DRect(giLightMap, tc).rgb*kern[i].x; + defined_weight += kern[i].x; + } + } + } + + col /= defined_weight; + + //col = ccol; + + col = col*col*blur_quad.x + col*blur_quad.y + blur_quad.z; + + gl_FragData[0].xyz = col; + + //gl_FragColor = ccol; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..6adcda82a309f352799e3973bfc70bb5708affa0 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl @@ -0,0 +1,17 @@ +/** + * @file postgiV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl index b3758c3638ec06809aee7bd3ea4aa02344b60d01..b0b31fd4baa8cc71110df669233a6c25207e7882 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl @@ -7,8 +7,11 @@ uniform sampler2D diffuseMap; +varying vec4 post_pos; void main() { gl_FragColor = vec4(1,1,1,texture2D(diffuseMap, gl_TexCoord[0].xy).a * gl_Color.a); + + gl_FragDepth = max(post_pos.z/post_pos.w*0.5+0.5, 0.0); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl index aae1beeae35df06044fe1bdce66d3667add0cce3..7214d246a4e9448731c41a46ba2caa69f8201b39 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl @@ -5,13 +5,17 @@ * $License$ */ +varying vec4 post_pos; + void main() { //transform vertex vec4 pos = gl_ModelViewProjectionMatrix*gl_Vertex; - //smash geometry against the near clip plane (great for ortho projections) - pos.z = max(pos.z, -1.0); - gl_Position = pos; + + post_pos = pos; + + gl_Position = vec4(pos.x, pos.y, pos.w*0.5, pos.w); + gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; gl_FrontColor = gl_Color; } diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index d5671a6ce4448b03356a6b44de20196ebe9b6cc0..b4b0d0ce9de837d2644ff9aebb7c0a4dcd737719 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -12,9 +12,9 @@ uniform sampler2DRect specularRect; uniform sampler2DRect positionMap; uniform sampler2DRect normalMap; uniform sampler2DRect depthMap; -uniform sampler2DRect lightMap; uniform sampler2D noiseMap; uniform samplerCube environmentMap; +uniform sampler2D lightFunc; uniform float blur_size; uniform float blur_fidelity; @@ -38,9 +38,9 @@ uniform vec4 max_y; uniform vec4 glow; uniform float scene_light_strength; uniform vec3 env_mat[3]; -uniform mat4 shadow_matrix[3]; -uniform vec4 shadow_clip; -uniform mat3 ssao_effect_mat; +//uniform mat4 shadow_matrix[3]; +//uniform vec4 shadow_clip; +//uniform mat3 ssao_effect_mat; varying vec4 vary_light; varying vec2 vary_fragcoord; @@ -52,6 +52,22 @@ vec3 vary_AmblitColor; vec3 vary_AdditiveColor; vec3 vary_AtmosAttenuation; +uniform mat4 inv_proj; +uniform vec2 screen_res; + +vec4 getPosition(vec2 pos_screen) +{ //get position in screen space (world units) given window coordinate and depth map + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + vec3 getPositionEye() { return vary_PositionEye; @@ -162,17 +178,7 @@ void calcAtmospherics(vec3 inPositionEye, float ambFactor) { temp2.x += .25; //increase ambient when there are more clouds - vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow.x * 0.5; - - /* decrease value and saturation (that in HSV, not HSL) for occluded areas - * // for HSV color/geometry used here, see http://gimp-savvy.com/BOOK/index.html?node52.html - * // The following line of code performs the equivalent of: - * float ambAlpha = tmpAmbient.a; - * float ambValue = dot(vec3(tmpAmbient), vec3(0.577)); // projection onto <1/rt(3), 1/rt(3), 1/rt(3)>, the neutral white-black axis - * vec3 ambHueSat = vec3(tmpAmbient) - vec3(ambValue); - * tmpAmbient = vec4(RenderSSAOEffect.valueFactor * vec3(ambValue) + RenderSSAOEffect.saturationFactor *(1.0 - ambFactor) * ambHueSat, ambAlpha); - */ - tmpAmbient = vec4(mix(ssao_effect_mat * tmpAmbient.rgb, tmpAmbient.rgb, ambFactor), tmpAmbient.a); + vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow.x * 0.5; //haze color setAdditiveColor( @@ -235,36 +241,27 @@ vec3 scaleSoftClip(vec3 light) void main() { vec2 tc = vary_fragcoord.xy; - vec3 pos = texture2DRect(positionMap, tc).xyz; - vec3 norm = texture2DRect(normalMap, tc).xyz; - vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).xyz; + vec3 pos = getPosition(tc).xyz; + vec3 norm = texture2DRect(normalMap, tc).xyz*2.0-1.0; + //vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).xyz; float da = max(dot(norm.xyz, vary_light.xyz), 0.0); - vec4 diffuse = vec4(texture2DRect(diffuseRect, tc).rgb, 1.0); + vec4 diffuse = texture2DRect(diffuseRect, tc); vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy); - vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg; - float scol = scol_ambocc.r; - float ambocc = scol_ambocc.g; - - calcAtmospherics(pos.xyz, ambocc); + calcAtmospherics(pos.xyz, 0.0); vec3 col = atmosAmbient(vec3(0)); - col += atmosAffectDirectionalLight(min(da, scol)); + col += atmosAffectDirectionalLight(clamp(da, diffuse.a, 1.0)); col *= diffuse.rgb; - if (spec.a > 0.2) + if (spec.a > 0.0) { - vec3 ref = reflect(pos.xyz, norm.xyz); - vec3 rc; - rc.x = dot(ref, env_mat[0]); - rc.y = dot(ref, env_mat[1]); - rc.z = dot(ref, env_mat[2]); - - vec3 refcol = textureCube(environmentMap, rc).rgb; - col.rgb += refcol * spec.rgb; + vec3 ref = normalize(reflect(pos.xyz, norm.xyz)); + float sa = dot(ref, vary_light.xyz); + col.rgb += vary_SunlitColor*spec.rgb*texture2D(lightFunc, vec2(sa, spec.a)).a; } col = atmosLighting(col); @@ -272,8 +269,4 @@ void main() gl_FragColor.rgb = col; gl_FragColor.a = 0.0; - //gl_FragColor.rg = scol_ambocc.rg; - //gl_FragColor.rgb = norm.rgb*0.5+0.5; - //gl_FragColor.rgb = vec3(ambocc); - //gl_FragColor.rgb = vec3(scol); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..2a7234fd83bdb3788c392b7935fec020ef5a32b1 --- /dev/null +++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl @@ -0,0 +1,177 @@ +/** + * @file spotLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#version 120 + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect specularRect; +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform samplerCube environmentMap; +uniform sampler2D noiseMap; +uniform sampler2D lightFunc; +uniform sampler2D projectionMap; + +uniform mat4 proj_mat; //screen space to light space +uniform float proj_near; //near clip for projection +uniform vec3 proj_p; //plane projection is emitting from (in screen space) +uniform vec3 proj_n; +uniform float proj_focus; //distance from plane to begin blurring +uniform float proj_lod; //(number of mips in proj map) +uniform float proj_range; //range between near clip and far clip plane of projection +uniform float proj_ambiance; +uniform float near_clip; +uniform float far_clip; + +uniform vec3 proj_origin; //origin of projection to be used for angular attenuation +uniform float sun_wash; + +varying vec4 vary_light; + +varying vec4 vary_fragcoord; +uniform vec2 screen_res; + +uniform mat4 inv_proj; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +void main() +{ + vec4 frag = vary_fragcoord; + frag.xyz /= frag.w; + frag.xyz = frag.xyz*0.5+0.5; + frag.xy *= screen_res; + + vec3 pos = getPosition(frag.xy).xyz; + vec3 lv = vary_light.xyz-pos.xyz; + float dist2 = dot(lv,lv); + dist2 /= vary_light.w; + if (dist2 > 1.0) + { + discard; + } + + vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0; + + norm = normalize(norm); + float l_dist = -dot(lv, proj_n); + + vec4 proj_tc = (proj_mat * vec4(pos.xyz, 1.0)); + if (proj_tc.z < 0.0) + { + discard; + } + + proj_tc.xyz /= proj_tc.w; + + float fa = gl_Color.a+1.0; + float dist_atten = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0); + + lv = proj_origin-pos.xyz; + lv = normalize(lv); + float da = dot(norm, lv); + + vec3 col = vec3(0,0,0); + + vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; + + float noise = texture2D(noiseMap, frag.xy/128.0).b; + if (proj_tc.z > 0.0 && + proj_tc.x < 1.0 && + proj_tc.y < 1.0 && + proj_tc.x > 0.0 && + proj_tc.y > 0.0) + { + float lit = 0.0; + if (da > 0.0) + { + float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0); + float lod = diff * proj_lod; + + vec4 plcol = texture2DLod(projectionMap, proj_tc.xy, lod); + + vec3 lcol = gl_Color.rgb * plcol.rgb * plcol.a; + + lit = da * dist_atten * noise; + + col = lcol*lit*diff_tex; + } + + float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0); + float lod = diff * proj_lod; + vec4 amb_plcol = texture2DLod(projectionMap, proj_tc.xy, lod); + //float amb_da = mix(proj_ambiance, proj_ambiance*max(-da, 0.0), max(da, 0.0)); + float amb_da = proj_ambiance; + + amb_da += (da*da*0.5+0.5)*proj_ambiance; + + amb_da *= dist_atten * noise; + + amb_da = min(amb_da, 1.0-lit); + + col += amb_da*gl_Color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a; + } + + + vec4 spec = texture2DRect(specularRect, frag.xy); + if (spec.a > 0.0) + { + vec3 ref = reflect(normalize(pos), norm); + + //project from point pos in direction ref to plane proj_p, proj_n + vec3 pdelta = proj_p-pos; + float ds = dot(ref, proj_n); + + if (ds < 0.0) + { + vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds; + + vec3 stc = (proj_mat * vec4(pfinal.xyz, 1.0)).xyz; + + if (stc.z > 0.0) + { + stc.xy /= stc.z+proj_near; + + if (stc.x < 1.0 && + stc.y < 1.0 && + stc.x > 0.0 && + stc.y > 0.0) + { + vec4 scol = texture2DLod(projectionMap, stc.xy, proj_lod-spec.a*proj_lod); + col += dist_atten*scol.rgb*gl_Color.rgb*scol.a*spec.rgb; + } + } + } + } + + /*if (spec.a > 0.0) + { + //vec3 ref = reflect(normalize(pos), norm); + float sa = dot(normalize(lv-normalize(pos)),norm);; + //sa = max(sa, 0.0); + //sa = pow(sa, 128.0 * spec.a*spec.a/dist_atten)*min(dist_atten*4.0, 1.0); + sa = texture2D(lightFunc, vec2(sa, spec.a)).a * min(dist_atten*4.0, 1.0); + sa *= noise; + col += da*sa*lcol*spec.rgb; + }*/ + + gl_FragColor.rgb = col; + gl_FragColor.a = 0.0; +} diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl index d43fe6ca95e3e6a039541b4edc8c3242816926cf..22bdd2c7f3489743cf42e7c88f346d52f91aea95 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl @@ -7,17 +7,21 @@ #extension GL_ARB_texture_rectangle : enable -uniform sampler2DRect positionMap; -uniform sampler2DRect normalMap; uniform sampler2DRect depthMap; -uniform sampler2DShadow shadowMap0; -uniform sampler2DShadow shadowMap1; -uniform sampler2DShadow shadowMap2; -uniform sampler2DShadow shadowMap3; +uniform sampler2DRect normalMap; +uniform sampler2DRectShadow shadowMap0; +uniform sampler2DRectShadow shadowMap1; +uniform sampler2DRectShadow shadowMap2; +uniform sampler2DRectShadow shadowMap3; +uniform sampler2DRectShadow shadowMap4; +uniform sampler2DRectShadow shadowMap5; uniform sampler2D noiseMap; +uniform sampler2D lightFunc; + + // Inputs -uniform mat4 shadow_matrix[4]; +uniform mat4 shadow_matrix[6]; uniform vec4 shadow_clip; uniform float ssao_radius; uniform float ssao_max_radius; @@ -27,6 +31,25 @@ uniform float ssao_factor_inv; varying vec2 vary_fragcoord; varying vec4 vary_light; +uniform mat4 inv_proj; +uniform vec2 screen_res; + +uniform float shadow_bias; +uniform float shadow_offset; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + //calculate decreases in ambient lighting when crowded out (SSAO) float calcAmbientOcclusion(vec4 pos, vec3 norm) { @@ -54,7 +77,7 @@ float calcAmbientOcclusion(vec4 pos, vec3 norm) for (int i = 0; i < 8; i++) { vec2 samppos_screen = pos_screen + scale * reflect(kern[i], noise_reflect); - vec3 samppos_world = texture2DRect(positionMap, samppos_screen).xyz; + vec3 samppos_world = getPosition(samppos_screen).xyz; vec3 diff = pos_world - samppos_world; float dist2 = dot(diff, diff); @@ -74,14 +97,18 @@ float calcAmbientOcclusion(vec4 pos, vec3 norm) angle_hidden = min(ssao_factor*angle_hidden/float(points), 1.0); - return 1.0 - (float(points != 0) * angle_hidden); + return (1.0 - (float(points != 0) * angle_hidden)); } void main() { vec2 pos_screen = vary_fragcoord.xy; - vec4 pos = vec4(texture2DRect(positionMap, pos_screen).xyz, 1.0); - vec3 norm = texture2DRect(normalMap, pos_screen).xyz; + + //try doing an unproject here + + vec4 pos = getPosition(pos_screen); + + vec3 norm = texture2DRect(normalMap, pos_screen).xyz*2.0-1.0; /*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL { @@ -90,35 +117,45 @@ void main() }*/ float shadow = 1.0; - float dp_directional_light = max(0.0, dot(norm, vary_light.xyz)); + float dp_directional_light = max(0.0, dot(norm, vary_light.xyz)); + vec4 spos = vec4(pos.xyz + norm.xyz * (-pos.z/64.0*shadow_offset+shadow_bias), 1.0); + + //vec3 debug = vec3(0,0,0); + if (dp_directional_light == 0.0) { // if we know this point is facing away from the sun then we know it's in shadow without having to do a squirrelly shadow-map lookup shadow = 0.0; } - else if (pos.z > -shadow_clip.w) + else if (spos.z > -shadow_clip.w) { - if (pos.z < -shadow_clip.z) + vec4 lpos; + + if (spos.z < -shadow_clip.z) { - vec4 lpos = shadow_matrix[3]*pos; - shadow = shadow2DProj(shadowMap3, lpos).x; + lpos = shadow_matrix[3]*spos; + lpos.xy *= screen_res; + shadow = shadow2DRectProj(shadowMap3, lpos).x; shadow += max((pos.z+shadow_clip.z)/(shadow_clip.z-shadow_clip.w)*2.0-1.0, 0.0); } - else if (pos.z < -shadow_clip.y) + else if (spos.z < -shadow_clip.y) { - vec4 lpos = shadow_matrix[2]*pos; - shadow = shadow2DProj(shadowMap2, lpos).x; + lpos = shadow_matrix[2]*spos; + lpos.xy *= screen_res; + shadow = shadow2DRectProj(shadowMap2, lpos).x; } - else if (pos.z < -shadow_clip.x) + else if (spos.z < -shadow_clip.x) { - vec4 lpos = shadow_matrix[1]*pos; - shadow = shadow2DProj(shadowMap1, lpos).x; + lpos = shadow_matrix[1]*spos; + lpos.xy *= screen_res; + shadow = shadow2DRectProj(shadowMap1, lpos).x; } else { - vec4 lpos = shadow_matrix[0]*pos; - shadow = shadow2DProj(shadowMap0, lpos).x; + lpos = shadow_matrix[0]*spos; + lpos.xy *= screen_res; + shadow = shadow2DRectProj(shadowMap0, lpos).x; } // take the most-shadowed value out of these two: @@ -126,6 +163,17 @@ void main() // * an unblurred dot product between the sun and this norm // the goal is to err on the side of most-shadow to fill-in shadow holes and reduce artifacting shadow = min(shadow, dp_directional_light); + + /*debug.r = lpos.y / (lpos.w*screen_res.y); + + lpos.xy /= lpos.w*32.0; + if (fract(lpos.x) < 0.1 || fract(lpos.y) < 0.1) + { + debug.gb = vec2(0.5, 0.5); + } + + debug += (1.0-shadow)*0.5;*/ + } else { @@ -135,5 +183,18 @@ void main() gl_FragColor[0] = shadow; gl_FragColor[1] = calcAmbientOcclusion(pos, norm); - //gl_FragColor[2] is unused as of August 2008, may be used for debugging + + //spotlight shadow 1 + vec4 lpos = shadow_matrix[4]*spos; + lpos.xy *= screen_res; + gl_FragColor[2] = shadow2DRectProj(shadowMap4, lpos).x; + + //spotlight shadow 2 + lpos = shadow_matrix[5]*spos; + lpos.xy *= screen_res; + gl_FragColor[3] = shadow2DRectProj(shadowMap5, lpos).x; + + //gl_FragColor.rgb = pos.xyz; + //gl_FragColor.b = shadow; + //gl_FragColor.rgb = debug; } diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl index 211b2e03970f3d12a13e9e74e0fe8c80c927be09..3cccfb72020b5eb143cf17cd781d05ae27843883 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl @@ -12,7 +12,6 @@ uniform sampler2D detail_3; uniform sampler2D alpha_ramp; varying vec3 vary_normal; -varying vec4 vary_position; void main() { @@ -28,9 +27,8 @@ void main() float alphaFinal = texture2D(alpha_ramp, gl_TexCoord[1].zw).a; vec4 outColor = mix( mix(color3, color2, alpha2), mix(color1, color0, alpha1), alphaFinal ); - gl_FragData[0] = vec4(outColor.rgb, 1.0); + gl_FragData[0] = vec4(outColor.rgb, 0.0); gl_FragData[1] = vec4(outColor.rgb*0.2, 0.2); - gl_FragData[2] = vec4(normalize(vary_normal), 0.0); - gl_FragData[3] = vary_position; + gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl index e9d6dcabff8e54e07a2e068c9cdda30f24ce1970..3038b147723ed8065b698bafe6894aaf9be09ecc 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl @@ -6,7 +6,6 @@ */ varying vec3 vary_normal; -varying vec4 vary_position; vec4 texgen_object(vec4 vpos, vec4 tc, mat4 mat, vec4 tp0, vec4 tp1) { @@ -27,7 +26,6 @@ void main() //transform vertex gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - vary_position = gl_ModelViewMatrix * gl_Vertex; vary_normal = normalize(gl_NormalMatrix * gl_Normal); // Transform and pass tex coords diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl index bc2c9816dc41e71af86a034530f0aa84ff90c6c8..258acee08c1decb03f379ed31f3188bad9dbeda8 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl @@ -8,13 +8,11 @@ uniform sampler2D diffuseMap; varying vec3 vary_normal; -varying vec4 vary_position; void main() { vec4 col = texture2D(diffuseMap, gl_TexCoord[0].xy); - gl_FragData[0] = gl_Color*col; + gl_FragData[0] = vec4(gl_Color.rgb*col.rgb, col.a <= 0.5 ? 0.0 : 0.005); gl_FragData[1] = vec4(0,0,0,0); - gl_FragData[2] = vec4(normalize(vary_normal), 0.0); - gl_FragData[3] = vary_position; + gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0); } diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl index 9131d7c2b32a55588542fb87222389ec470e2b7c..6b9dc2defbfab34f380db6d8929b3bf9fb18d238 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl @@ -6,7 +6,6 @@ */ varying vec3 vary_normal; -varying vec4 vary_position; void main() { @@ -14,8 +13,6 @@ void main() gl_Position = ftransform(); gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; - vary_position = gl_ModelViewMatrix * gl_Vertex; - vary_normal = normalize(gl_NormalMatrix * gl_Normal); gl_FrontColor = gl_Color; diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl index 0a1f019e3d9490094b8282e94505fbe2e97070f4..d21575119ddab856fbd254de66ed0ceaca449672 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl @@ -5,19 +5,21 @@ * $License$ */ +#extension GL_ARB_texture_rectangle : enable + vec3 scaleSoftClip(vec3 inColor); vec3 atmosTransport(vec3 inColor); uniform sampler2D bumpMap; uniform sampler2D screenTex; uniform sampler2D refTex; -uniform sampler2DShadow shadowMap0; -uniform sampler2DShadow shadowMap1; -uniform sampler2DShadow shadowMap2; -uniform sampler2DShadow shadowMap3; +uniform sampler2DRectShadow shadowMap0; +uniform sampler2DRectShadow shadowMap1; +uniform sampler2DRectShadow shadowMap2; +uniform sampler2DRectShadow shadowMap3; uniform sampler2D noiseMap; -uniform mat4 shadow_matrix[4]; +uniform mat4 shadow_matrix[6]; uniform vec4 shadow_clip; uniform float sunAngle; @@ -32,7 +34,8 @@ uniform vec3 normScale; uniform float fresnelScale; uniform float fresnelOffset; uniform float blurMultiplier; - +uniform vec2 screen_res; +uniform mat4 norm_mat; //region space to screen space //bigWave is (refCoord.w, view.w); varying vec4 refCoord; @@ -88,7 +91,7 @@ void main() refcol *= df1 * 0.333; vec3 wavef = (wave1 + wave2 * 0.4 + wave3 * 0.6) * 0.5; - wavef.z *= max(-viewVec.z, 0.1); + //wavef.z *= max(-viewVec.z, 0.1); wavef = normalize(wavef); float df2 = dot(viewVec, wavef) * fresnelScale+fresnelOffset; @@ -101,10 +104,10 @@ void main() refcol = mix(baseCol*df2, refcol, dweight); //get specular component - float spec = clamp(dot(lightDir, (reflect(viewVec,wavef))),0.0,1.0); + //float spec = clamp(dot(lightDir, (reflect(viewVec,wavef))),0.0,1.0); //harden specular - spec = pow(spec, 128.0); + //spec = pow(spec, 128.0); //figure out distortion vector (ripply) vec2 distort2 = distort+wavef.xy*refScale/max(dmod*df1, 1.0); @@ -118,40 +121,21 @@ void main() float shadow = 1.0; vec4 pos = vary_position; - vec3 nz = texture2D(noiseMap, gl_FragCoord.xy/128.0).xyz; - - if (pos.z > -shadow_clip.w) - { - vec4 spos = pos; - - if (pos.z < -shadow_clip.z) - { - vec4 lpos = (shadow_matrix[3]*spos); - shadow = shadow2DProj(shadowMap3, lpos).x; - } - else if (pos.z < -shadow_clip.y) - { - vec4 lpos = (shadow_matrix[2]*spos); - shadow = shadow2DProj(shadowMap2, lpos).x; - } - else if (pos.z < -shadow_clip.x) - { - vec4 lpos = (shadow_matrix[1]*spos); - shadow = shadow2DProj(shadowMap1, lpos).x; - } - else - { - vec4 lpos = (shadow_matrix[0]*spos); - shadow = shadow2DProj(shadowMap0, lpos).x; - } - } - - spec *= shadow; - color.rgb += spec * specular; - - color.rgb = atmosTransport(color.rgb); - color.rgb = scaleSoftClip(color.rgb); - color.a = spec * sunAngle2; + //vec3 nz = texture2D(noiseMap, gl_FragCoord.xy/128.0).xyz; + vec4 spos = pos; + + //spec *= shadow; + //color.rgb += spec * specular; + + //color.rgb = atmosTransport(color.rgb); + //color.rgb = scaleSoftClip(color.rgb); + //color.a = spec * sunAngle2; - gl_FragColor = color; + //wavef.z = -0.25f; + wavef = normalize(wavef); + wavef = (norm_mat*vec4(wavef, 1.0)).xyz; + + gl_FragData[0] = vec4(color.rgb, 0.75); + gl_FragData[1] = vec4(1,1,1, 0.8); + gl_FragData[2] = vec4(wavef*0.5+0.5, 0.0); } diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..ad16de6d8160a7e34589fc82bec521af550f70c1 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl @@ -0,0 +1,132 @@ +/** + * @file alphaF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2D diffuseMap; +uniform sampler2DRectShadow shadowMap0; +uniform sampler2DRectShadow shadowMap1; +uniform sampler2DRectShadow shadowMap2; +uniform sampler2DRectShadow shadowMap3; +uniform sampler2D noiseMap; +uniform sampler2DRect depthMap; + +uniform mat4 shadow_matrix[6]; +uniform vec4 shadow_clip; +uniform vec2 screen_res; +uniform vec2 shadow_res; + +vec3 atmosLighting(vec3 light); +vec3 scaleSoftClip(vec3 light); + +varying vec3 vary_ambient; +varying vec3 vary_directional; +varying vec3 vary_fragcoord; +varying vec3 vary_position; +varying vec3 vary_light; + +uniform float alpha_soften; + +uniform float shadow_bias; + +uniform mat4 inv_proj; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos.xyz /= pos.w; + pos.w = 1.0; + return pos; +} + +float pcfShadow(sampler2DRectShadow shadowMap, vec4 stc, float scl) +{ + stc.xyz /= stc.w; + stc.z += shadow_bias; + + float cs = shadow2DRect(shadowMap, stc.xyz).x; + float shadow = cs; + + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(scl, scl, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(scl, -scl, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(-scl, scl, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(-scl, -scl, 0.0)).x, cs); + + return shadow/5.0; +} + + +void main() +{ + vec2 frag = vary_fragcoord.xy/vary_fragcoord.z*0.5+0.5; + frag *= screen_res; + + vec3 samp_pos = getPosition(frag).xyz; + + float shadow = 1.0; + vec4 pos = vec4(vary_position, 1.0); + + vec4 spos = pos; + + if (spos.z > -shadow_clip.w) + { + vec4 lpos; + + if (spos.z < -shadow_clip.z) + { + lpos = shadow_matrix[3]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap3, lpos, 1.5); + shadow += max((pos.z+shadow_clip.z)/(shadow_clip.z-shadow_clip.w)*2.0-1.0, 0.0); + } + else if (spos.z < -shadow_clip.y) + { + lpos = shadow_matrix[2]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap2, lpos, 1.5); + } + else if (spos.z < -shadow_clip.x) + { + lpos = shadow_matrix[1]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap1, lpos, 1.5); + } + else + { + lpos = shadow_matrix[0]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap0, lpos, 1.5); + } + } + + vec4 col = vec4(vary_ambient + vary_directional.rgb*shadow, gl_Color.a); + vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy) * col; + + color.rgb = atmosLighting(color.rgb); + + color.rgb = scaleSoftClip(color.rgb); + + if (samp_pos.z != 0.0 && gl_Color.a < 1.0) + { + float dist_factor = alpha_soften; + float a = gl_Color.a; + a *= a; + dist_factor *= 1.0/(1.0-a); + color.a *= min((pos.z-samp_pos.z)*dist_factor, 1.0); + } + + //gl_FragColor = gl_Color; + gl_FragColor = color; + //gl_FragColor = vec4(1,0,1,1)*shadow; + +} + diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..5991e1f3b5eae3fd2b9d77079e2fe4849ad63e89 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl @@ -0,0 +1,76 @@ +/** + * @file alphaV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol); +void calcAtmospherics(vec3 inPositionEye); + +float calcDirectionalLight(vec3 n, vec3 l); +float calcPointLight(vec3 v, vec3 n, vec4 lp, float la); + +vec3 atmosAmbient(vec3 light); +vec3 atmosAffectDirectionalLight(float lightIntensity); +vec3 scaleDownLight(vec3 light); +vec3 scaleUpLight(vec3 light); + +varying vec3 vary_ambient; +varying vec3 vary_directional; +varying vec3 vary_fragcoord; +varying vec3 vary_position; +varying vec3 vary_light; + +uniform float near_clip; +uniform float shadow_offset; +uniform float shadow_bias; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + + gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; + + vec4 pos = (gl_ModelViewMatrix * gl_Vertex); + vec3 norm = normalize(gl_NormalMatrix * gl_Normal); + + float dp_directional_light = max(0.0, dot(norm, gl_LightSource[0].position.xyz)); + vary_position = pos.xyz + gl_LightSource[0].position.xyz * (1.0-dp_directional_light)*shadow_offset; + + calcAtmospherics(pos.xyz); + + //vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.)); + vec4 col; + col.a = gl_Color.a; + + // Add windlight lights + col.rgb = atmosAmbient(vec3(0.)); + col.rgb = scaleUpLight(col.rgb); + + // Collect normal lights (need to be divided by two, as we later multiply by 2) + col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation); + col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation); + col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation); + col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation); + col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation); + col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation); + col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz); + col.rgb = scaleDownLight(col.rgb); + + vary_light = gl_LightSource[0].position.xyz; + + vary_ambient = col.rgb*gl_Color.rgb; + vary_directional.rgb = gl_Color.rgb*atmosAffectDirectionalLight(max(calcDirectionalLight(norm, gl_LightSource[0].position.xyz), (1.0-gl_Color.a)*(1.0-gl_Color.a))); + + col.rgb = min(col.rgb*gl_Color.rgb, 1.0); + + gl_FrontColor = col; + + gl_FogFragCoord = pos.z; + + pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord.xyz = pos.xyz + vec3(0,0,near_clip); + +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..a81e4caf4ce1e1fae9b8839c3ed0b556efc0baf3 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaF.glsl @@ -0,0 +1,98 @@ +/** + * @file avatarAlphaF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2D diffuseMap; +uniform sampler2DRectShadow shadowMap0; +uniform sampler2DRectShadow shadowMap1; +uniform sampler2DRectShadow shadowMap2; +uniform sampler2DRectShadow shadowMap3; +uniform sampler2D noiseMap; + +uniform mat4 shadow_matrix[6]; +uniform vec4 shadow_clip; +uniform vec2 screen_res; +uniform vec2 shadow_res; + +vec3 atmosLighting(vec3 light); +vec3 scaleSoftClip(vec3 light); + +varying vec3 vary_ambient; +varying vec3 vary_directional; +varying vec3 vary_position; +varying vec3 vary_normal; + +uniform float shadow_bias; + +float pcfShadow(sampler2DRectShadow shadowMap, vec4 stc, float scl) +{ + stc.xyz /= stc.w; + stc.z += shadow_bias; + + float cs = shadow2DRect(shadowMap, stc.xyz).x; + float shadow = cs; + + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(scl, scl, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(scl, -scl, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(-scl, scl, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(-scl, -scl, 0.0)).x, cs); + + return shadow/5.0; +} + +void main() +{ + float shadow = 1.0; + vec4 pos = vec4(vary_position, 1.0); + vec3 norm = normalize(vary_normal); + + //vec3 nz = texture2D(noiseMap, gl_FragCoord.xy/128.0).xyz; + + vec4 spos = pos; + + if (spos.z > -shadow_clip.w) + { + vec4 lpos; + + if (spos.z < -shadow_clip.z) + { + lpos = shadow_matrix[3]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap3, lpos, 1.5); + shadow += max((pos.z+shadow_clip.z)/(shadow_clip.z-shadow_clip.w)*2.0-1.0, 0.0); + } + else if (spos.z < -shadow_clip.y) + { + lpos = shadow_matrix[2]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap2, lpos, 1.5); + } + else if (spos.z < -shadow_clip.x) + { + lpos = shadow_matrix[1]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap1, lpos, 1.5); + } + else + { + lpos = shadow_matrix[0]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap0, lpos, 1.5); + } + } + + + vec4 col = vec4(vary_ambient + vary_directional*shadow, gl_Color.a); + vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy) * col; + + color.rgb = atmosLighting(color.rgb); + + color.rgb = scaleSoftClip(color.rgb); + + gl_FragColor = color; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..a939499b1710a48337c8793a1ca5ef6ec00083df --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl @@ -0,0 +1,84 @@ +/** + * @file avatarAlphaV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol); +mat4 getSkinnedTransform(); +void calcAtmospherics(vec3 inPositionEye); + +float calcDirectionalLight(vec3 n, vec3 l); +float calcPointLight(vec3 v, vec3 n, vec4 lp, float la); + +vec3 atmosAmbient(vec3 light); +vec3 atmosAffectDirectionalLight(float lightIntensity); +vec3 scaleDownLight(vec3 light); +vec3 scaleUpLight(vec3 light); + +varying vec3 vary_position; +varying vec3 vary_ambient; +varying vec3 vary_directional; +varying vec3 vary_normal; + +uniform float near_clip; +uniform float shadow_offset; +uniform float shadow_bias; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + vec4 pos; + vec3 norm; + + mat4 trans = getSkinnedTransform(); + pos.x = dot(trans[0], gl_Vertex); + pos.y = dot(trans[1], gl_Vertex); + pos.z = dot(trans[2], gl_Vertex); + pos.w = 1.0; + + norm.x = dot(trans[0].xyz, gl_Normal); + norm.y = dot(trans[1].xyz, gl_Normal); + norm.z = dot(trans[2].xyz, gl_Normal); + norm = normalize(norm); + + gl_Position = gl_ProjectionMatrix * pos; + + float dp_directional_light = max(0.0, dot(norm, gl_LightSource[0].position.xyz)); + vary_position = pos.xyz + gl_LightSource[0].position.xyz * (1.0-dp_directional_light)*shadow_offset; + vary_normal = norm; + + calcAtmospherics(pos.xyz); + + //vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.)); + vec4 col; + col.a = gl_Color.a; + + // Add windlight lights + col.rgb = atmosAmbient(vec3(0.)); + col.rgb = scaleUpLight(col.rgb); + + // Collect normal lights (need to be divided by two, as we later multiply by 2) + col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation); + col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation); + col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation); + col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation); + col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation); + col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation); + col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz); + col.rgb = scaleDownLight(col.rgb); + + vary_ambient = col.rgb*gl_Color.rgb; + vary_directional = gl_Color.rgb*atmosAffectDirectionalLight(max(calcDirectionalLight(norm, gl_LightSource[0].position.xyz), (1.0-gl_Color.a)*(1.0-gl_Color.a))); + + col.rgb = min(col.rgb*gl_Color.rgb, 1.0); + + gl_FrontColor = col; + + gl_FogFragCoord = pos.z; + +} + + diff --git a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..8bd702a8da9046d103a8eabdf7102eed7e5f2741 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl @@ -0,0 +1,96 @@ +/** + * @file blurLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform sampler2DRect lightMap; +uniform sampler2DRect edgeMap; + +uniform float dist_factor; +uniform float blur_size; +uniform vec2 delta; +uniform vec3 kern[4]; +uniform float kern_scale; + +varying vec2 vary_fragcoord; + +uniform mat4 inv_proj; +uniform vec2 screen_res; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +void main() +{ + vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0; + vec3 pos = getPosition(vary_fragcoord.xy).xyz; + vec4 ccol = texture2DRect(lightMap, vary_fragcoord.xy).rgba; + + vec2 dlt = kern_scale * delta / (1.0+norm.xy*norm.xy); + + dlt /= max(-pos.z*dist_factor, 1.0); + + vec2 defined_weight = kern[0].xy; // special case the first (centre) sample's weight in the blur; we have to sample it anyway so we get it for 'free' + vec4 col = defined_weight.xyxx * ccol; + + float e = 1.0; + for (int i = 0; i < 4; i++) + { + vec2 tc = vary_fragcoord.xy + kern[i].z*dlt; + + e = max(e, 0.0); + + vec2 wght = kern[i].xy*e; + + col += texture2DRect(lightMap, tc)*wght.xyxx; + defined_weight += wght; + + e *= e; + e -= texture2DRect(edgeMap, tc.xy).a+ + texture2DRect(edgeMap, tc.xy+dlt*0.333).a+ + texture2DRect(edgeMap, tc.xy-dlt*0.333).a; + } + + + e = 1.0; + + for (int i = 0; i < 4; i++) + { + vec2 tc = vary_fragcoord.xy - kern[i].z*dlt; + + e = max(e, 0.0); + + vec2 wght = kern[i].xy*e; + + col += texture2DRect(lightMap, tc)*wght.xyxx; + defined_weight += wght; + + e *= e; + e -= texture2DRect(edgeMap, tc.xy).a+ + texture2DRect(edgeMap, tc.xy+dlt*0.333).a+ + texture2DRect(edgeMap, tc.xy-dlt*0.333).a; + } + + + col /= defined_weight.xyxx; + + gl_FragColor = col; + + //gl_FragColor = ccol; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/blurLightV.glsl b/indra/newview/app_settings/shaders/class2/deferred/blurLightV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..b7f07e5702050e9bff2b848056e9b834881c49e8 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/blurLightV.glsl @@ -0,0 +1,17 @@ +/** + * @file blurLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl b/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..02beddd43b35dba58858633821dd536b08ac1185 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl @@ -0,0 +1,58 @@ +/** + * @file edgeF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; + +uniform float gi_dist_cutoff; + +varying vec2 vary_fragcoord; + +uniform float depth_cutoff; +uniform float norm_cutoff; + +uniform mat4 inv_proj; +uniform vec2 screen_res; + +float getDepth(vec2 pos_screen) +{ + float z = texture2DRect(depthMap, pos_screen.xy).a; + z = z*2.0-1.0; + vec4 ndc = vec4(0.0, 0.0, z, 1.0); + vec4 p = inv_proj*ndc; + return p.z/p.w; +} + +void main() +{ + vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0; + float depth = getDepth(vary_fragcoord.xy); + + vec2 tc = vary_fragcoord.xy; + + float sc = 0.75; + + vec2 de; + de.x = (depth-getDepth(tc+vec2(sc, sc))) + (depth-getDepth(tc+vec2(-sc, -sc))); + de.y = (depth-getDepth(tc+vec2(-sc, sc))) + (depth-getDepth(tc+vec2(sc, -sc))); + de /= depth; + de *= de; + de = step(depth_cutoff, de); + + vec2 ne; + ne.x = dot(texture2DRect(normalMap, tc+vec2(-sc,-sc)).rgb*2.0-1.0, norm); + ne.y = dot(texture2DRect(normalMap, tc+vec2(sc,sc)).rgb*2.0-1.0, norm); + + ne = 1.0-ne; + + ne = step(norm_cutoff, ne); + + gl_FragColor.a = dot(de,de)+dot(ne,ne); + //gl_FragColor.a = dot(de,de); +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/edgeV.glsl b/indra/newview/app_settings/shaders/class2/deferred/edgeV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..f1938c92b8684594798a1859aa67a3ee328f3253 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/edgeV.glsl @@ -0,0 +1,17 @@ +/** + * @file edgeV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..651959413cd06cad296bf3dfd2a4e3a89babe51e --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -0,0 +1,188 @@ +/** + * @file multiSpotLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#version 120 + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect specularRect; +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform samplerCube environmentMap; +uniform sampler2DRect lightMap; +uniform sampler2D noiseMap; +uniform sampler2D lightFunc; +uniform sampler2D projectionMap; + +uniform mat4 proj_mat; //screen space to light space +uniform float proj_near; //near clip for projection +uniform vec3 proj_p; //plane projection is emitting from (in screen space) +uniform vec3 proj_n; +uniform float proj_focus; //distance from plane to begin blurring +uniform float proj_lod; //(number of mips in proj map) +uniform float proj_range; //range between near clip and far clip plane of projection +uniform float proj_ambient_lod; +uniform float proj_ambiance; +uniform float near_clip; +uniform float far_clip; + +uniform vec3 proj_origin; //origin of projection to be used for angular attenuation +uniform float sun_wash; +uniform int proj_shadow_idx; +uniform float shadow_fade; + +varying vec4 vary_light; + +varying vec4 vary_fragcoord; +uniform vec2 screen_res; + +uniform mat4 inv_proj; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +void main() +{ + vec4 frag = vary_fragcoord; + frag.xyz /= frag.w; + frag.xyz = frag.xyz*0.5+0.5; + frag.xy *= screen_res; + + vec3 pos = getPosition(frag.xy).xyz; + vec3 lv = vary_light.xyz-pos.xyz; + float dist2 = dot(lv,lv); + dist2 /= vary_light.w; + if (dist2 > 1.0) + { + discard; + } + + float shadow = 1.0; + + if (proj_shadow_idx >= 0) + { + vec4 shd = texture2DRect(lightMap, frag.xy); + float sh[2]; + sh[0] = shd.b; + sh[1] = shd.a; + shadow = min(sh[proj_shadow_idx]+shadow_fade, 1.0); + } + + vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0; + + norm = normalize(norm); + float l_dist = -dot(lv, proj_n); + + vec4 proj_tc = (proj_mat * vec4(pos.xyz, 1.0)); + if (proj_tc.z < 0.0) + { + discard; + } + + proj_tc.xyz /= proj_tc.w; + + float fa = gl_Color.a+1.0; + float dist_atten = min(1.0-(dist2-1.0*(1.0-fa))/fa, 1.0); + if (dist_atten <= 0.0) + { + discard; + } + + lv = proj_origin-pos.xyz; + lv = normalize(lv); + float da = dot(norm, lv); + + vec3 col = vec3(0,0,0); + + vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; + + float noise = texture2D(noiseMap, frag.xy/128.0).b; + if (proj_tc.z > 0.0 && + proj_tc.x < 1.0 && + proj_tc.y < 1.0 && + proj_tc.x > 0.0 && + proj_tc.y > 0.0) + { + float lit = 0.0; + float amb_da = proj_ambiance; + + if (da > 0.0) + { + float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0); + float lod = diff * proj_lod; + + vec4 plcol = texture2DLod(projectionMap, proj_tc.xy, lod); + + vec3 lcol = gl_Color.rgb * plcol.rgb * plcol.a; + + lit = da * dist_atten * noise; + + col = lcol*lit*diff_tex*shadow; + amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance; + } + + //float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0); + vec4 amb_plcol = texture2DLod(projectionMap, proj_tc.xy, proj_ambient_lod); + + amb_da += (da*da*0.5+0.5)*proj_ambiance; + + amb_da *= dist_atten * noise; + + amb_da = min(amb_da, 1.0-lit); + + col += amb_da*gl_Color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a; + } + + + vec4 spec = texture2DRect(specularRect, frag.xy); + if (spec.a > 0.0) + { + vec3 ref = reflect(normalize(pos), norm); + + //project from point pos in direction ref to plane proj_p, proj_n + vec3 pdelta = proj_p-pos; + float ds = dot(ref, proj_n); + + if (ds < 0.0) + { + vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds; + + vec4 stc = (proj_mat * vec4(pfinal.xyz, 1.0)); + + if (stc.z > 0.0) + { + stc.xy /= stc.w; + + if (stc.x < 1.0 && + stc.y < 1.0 && + stc.x > 0.0 && + stc.y > 0.0) + { + vec4 scol = texture2DLod(projectionMap, stc.xy, proj_lod-spec.a*proj_lod); + col += dist_atten*scol.rgb*gl_Color.rgb*scol.a*spec.rgb*shadow; + } + } + } + } + + //attenuate point light contribution by SSAO component + col *= texture2DRect(lightMap, frag.xy).g; + + gl_FragColor.rgb = col; + gl_FragColor.a = 0.0; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class2/deferred/postDeferredF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..ee0e9d6367b12efb6e92b9b756f516834500c599 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/postDeferredF.glsl @@ -0,0 +1,59 @@ +/** + * @file postDeferredF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect localLightMap; +uniform sampler2DRect sunLightMap; +uniform sampler2DRect giLightMap; +uniform sampler2D luminanceMap; +uniform sampler2DRect lightMap; + +uniform vec3 gi_lum_quad; +uniform vec3 sun_lum_quad; +uniform vec3 lum_quad; +uniform float lum_lod; +uniform vec4 ambient; + +uniform vec3 gi_quad; + +uniform vec2 screen_res; +varying vec2 vary_fragcoord; + +void main() +{ + vec2 tc = vary_fragcoord.xy; + vec3 lcol = texture2DLod(luminanceMap, tc/screen_res, lum_lod).rgb; + + float lum = sqrt(lcol.r)*lum_quad.x+lcol.r*lcol.r*lum_quad.y+lcol.r*lum_quad.z; + + vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy); + + float ambocc = texture2DRect(lightMap, vary_fragcoord.xy).g; + + vec3 gi_col = texture2DRect(giLightMap, vary_fragcoord.xy).rgb; + gi_col = gi_col*gi_col*gi_quad.x + gi_col*gi_quad.y+gi_quad.z*ambocc*ambient.rgb; + gi_col *= diff; + + vec4 sun_col = texture2DRect(sunLightMap, vary_fragcoord.xy); + + vec3 local_col = texture2DRect(localLightMap, vary_fragcoord.xy).rgb; + + + float sun_lum = 1.0-lum; + sun_lum = sun_lum*sun_lum*sun_lum_quad.x + sun_lum*sun_lum_quad.y+sun_lum_quad.z; + + float gi_lum = lum; + gi_lum = gi_lum*gi_lum*gi_lum_quad.x+gi_lum*gi_lum_quad.y+gi_lum_quad.z; + gi_col *= 1.0/gi_lum; + + vec3 col = sun_col.rgb*(1.0+max(sun_lum,0.0))+gi_col+local_col; + + gl_FragColor.rgb = col.rgb; + gl_FragColor.a = max(sun_lum*min(sun_col.r+sun_col.g+sun_col.b, 1.0), sun_col.a); + + //gl_FragColor.rgb = texture2DRect(giLightMap, vary_fragcoord.xy).rgb; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/postDeferredV.glsl b/indra/newview/app_settings/shaders/class2/deferred/postDeferredV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..9819232fd5d0f1788e88500d8a1a6fca9f1423ed --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/postDeferredV.glsl @@ -0,0 +1,17 @@ +/** + * @file postDeferredV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..531f7376a37b2142323eb3a774d15538a848fae6 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl @@ -0,0 +1,294 @@ +/** + * @file softenLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect specularRect; +uniform sampler2DRect normalMap; +uniform sampler2DRect lightMap; +uniform sampler2D noiseMap; +uniform samplerCube environmentMap; +uniform sampler2D lightFunc; +uniform vec3 gi_quad; + +uniform float blur_size; +uniform float blur_fidelity; + +// Inputs +uniform vec4 morphFactor; +uniform vec3 camPosLocal; +//uniform vec4 camPosWorld; +uniform vec4 gamma; +uniform vec4 lightnorm; +uniform vec4 sunlight_color; +uniform vec4 ambient; +uniform vec4 blue_horizon; +uniform vec4 blue_density; +uniform vec4 haze_horizon; +uniform vec4 haze_density; +uniform vec4 cloud_shadow; +uniform vec4 density_multiplier; +uniform vec4 distance_multiplier; +uniform vec4 max_y; +uniform vec4 glow; +uniform float scene_light_strength; +uniform vec3 env_mat[3]; +uniform vec4 shadow_clip; +uniform mat3 ssao_effect_mat; + +uniform sampler2DRect depthMap; +uniform mat4 inv_proj; +uniform vec2 screen_res; + +varying vec4 vary_light; +varying vec2 vary_fragcoord; + +vec3 vary_PositionEye; + +vec3 vary_SunlitColor; +vec3 vary_AmblitColor; +vec3 vary_AdditiveColor; +vec3 vary_AtmosAttenuation; + +vec4 getPosition(vec2 pos_screen) +{ //get position in screen space (world units) given window coordinate and depth map + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +vec3 getPositionEye() +{ + return vary_PositionEye; +} +vec3 getSunlitColor() +{ + return vary_SunlitColor; +} +vec3 getAmblitColor() +{ + return vary_AmblitColor; +} +vec3 getAdditiveColor() +{ + return vary_AdditiveColor; +} +vec3 getAtmosAttenuation() +{ + return vary_AtmosAttenuation; +} + + +void setPositionEye(vec3 v) +{ + vary_PositionEye = v; +} + +void setSunlitColor(vec3 v) +{ + vary_SunlitColor = v; +} + +void setAmblitColor(vec3 v) +{ + vary_AmblitColor = v; +} + +void setAdditiveColor(vec3 v) +{ + vary_AdditiveColor = v; +} + +void setAtmosAttenuation(vec3 v) +{ + vary_AtmosAttenuation = v; +} + +void calcAtmospherics(vec3 inPositionEye, float ambFactor) { + + vec3 P = inPositionEye; + setPositionEye(P); + + //(TERRAIN) limit altitude + if (P.y > max_y.x) P *= (max_y.x / P.y); + if (P.y < -max_y.x) P *= (-max_y.x / P.y); + + vec3 tmpLightnorm = lightnorm.xyz; + + vec3 Pn = normalize(P); + float Plen = length(P); + + vec4 temp1 = vec4(0); + vec3 temp2 = vec3(0); + vec4 blue_weight; + vec4 haze_weight; + vec4 sunlight = sunlight_color; + vec4 light_atten; + + //sunlight attenuation effect (hue and brightness) due to atmosphere + //this is used later for sunlight modulation at various altitudes + light_atten = (blue_density * 1.0 + vec4(haze_density.r) * 0.25) * (density_multiplier.x * max_y.x); + //I had thought blue_density and haze_density should have equal weighting, + //but attenuation due to haze_density tends to seem too strong + + temp1 = blue_density + vec4(haze_density.r); + blue_weight = blue_density / temp1; + haze_weight = vec4(haze_density.r) / temp1; + + //(TERRAIN) compute sunlight from lightnorm only (for short rays like terrain) + temp2.y = max(0.0, tmpLightnorm.y); + temp2.y = 1. / temp2.y; + sunlight *= exp( - light_atten * temp2.y); + + // main atmospheric scattering line integral + temp2.z = Plen * density_multiplier.x; + + // Transparency (-> temp1) + // ATI Bugfix -- can't store temp1*temp2.z*distance_multiplier.x in a variable because the ati + // compiler gets confused. + temp1 = exp(-temp1 * temp2.z * distance_multiplier.x); + + //final atmosphere attenuation factor + setAtmosAttenuation(temp1.rgb); + + //compute haze glow + //(can use temp2.x as temp because we haven't used it yet) + temp2.x = dot(Pn, tmpLightnorm.xyz); + temp2.x = 1. - temp2.x; + //temp2.x is 0 at the sun and increases away from sun + temp2.x = max(temp2.x, .03); //was glow.y + //set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot) + temp2.x *= glow.x; + //higher glow.x gives dimmer glow (because next step is 1 / "angle") + temp2.x = pow(temp2.x, glow.z); + //glow.z should be negative, so we're doing a sort of (1 / "angle") function + + //add "minimum anti-solar illumination" + temp2.x += .25; + + //increase ambient when there are more clouds + vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow.x * 0.5; + + /* decrease value and saturation (that in HSV, not HSL) for occluded areas + * // for HSV color/geometry used here, see http://gimp-savvy.com/BOOK/index.html?node52.html + * // The following line of code performs the equivalent of: + * float ambAlpha = tmpAmbient.a; + * float ambValue = dot(vec3(tmpAmbient), vec3(0.577)); // projection onto <1/rt(3), 1/rt(3), 1/rt(3)>, the neutral white-black axis + * vec3 ambHueSat = vec3(tmpAmbient) - vec3(ambValue); + * tmpAmbient = vec4(RenderSSAOEffect.valueFactor * vec3(ambValue) + RenderSSAOEffect.saturationFactor *(1.0 - ambFactor) * ambHueSat, ambAlpha); + */ + tmpAmbient = vec4(mix(ssao_effect_mat * tmpAmbient.rgb, tmpAmbient.rgb, ambFactor), tmpAmbient.a); + + //haze color + setAdditiveColor( + vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow.x) + tmpAmbient) + + (haze_horizon.r * haze_weight) * (sunlight*(1.-cloud_shadow.x) * temp2.x + + tmpAmbient))); + + //brightness of surface both sunlight and ambient + setSunlitColor(vec3(sunlight * .5)); + setAmblitColor(vec3(tmpAmbient * .25)); + setAdditiveColor(getAdditiveColor() * vec3(1.0 - temp1)); +} + +vec3 atmosLighting(vec3 light) +{ + light *= getAtmosAttenuation().r; + light += getAdditiveColor(); + return (2.0 * light); +} + +vec3 atmosTransport(vec3 light) { + light *= getAtmosAttenuation().r; + light += getAdditiveColor() * 2.0; + return light; +} +vec3 atmosGetDiffuseSunlightColor() +{ + return getSunlitColor(); +} + +vec3 scaleDownLight(vec3 light) +{ + return (light / scene_light_strength ); +} + +vec3 scaleUpLight(vec3 light) +{ + return (light * scene_light_strength); +} + +vec3 atmosAmbient(vec3 light) +{ + return getAmblitColor() + light / 2.0; +} + +vec3 atmosAffectDirectionalLight(float lightIntensity) +{ + return getSunlitColor() * lightIntensity; +} + +vec3 scaleSoftClip(vec3 light) +{ + //soft clip effect: + light = 1. - clamp(light, vec3(0.), vec3(1.)); + light = 1. - pow(light, gamma.xxx); + + return light; +} + +void main() +{ + vec2 tc = vary_fragcoord.xy; + vec3 pos = getPosition(tc).xyz; + vec3 norm = texture2DRect(normalMap, tc).xyz*2.0-1.0; + //vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).xyz; + + float da = max(dot(norm.xyz, vary_light.xyz), 0.0); + + vec4 diffuse = texture2DRect(diffuseRect, tc); + vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy); + + vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg; + float scol = max(scol_ambocc.r, diffuse.a); + float ambocc = scol_ambocc.g; + + calcAtmospherics(pos.xyz, ambocc); + + vec3 col = atmosAmbient(vec3(0)); + col += atmosAffectDirectionalLight(max(min(da, scol), diffuse.a)); + + col *= diffuse.rgb; + + if (spec.a > 0.0) + { + vec3 ref = normalize(reflect(pos.xyz, norm.xyz)); + float sa = dot(ref, vary_light.xyz); + col.rgb += vary_SunlitColor*scol*spec.rgb*texture2D(lightFunc, vec2(sa, spec.a)).a; + } + + col = atmosLighting(col); + col = scaleSoftClip(col); + + gl_FragColor.rgb = col; + + //gl_FragColor.rgb = gi_col.rgb; + gl_FragColor.a = 0.0; + + //gl_FragColor.rg = scol_ambocc.rg; + //gl_FragColor.rgb = texture2DRect(lightMap, vary_fragcoord.xy).rgb; + //gl_FragColor.rgb = norm.rgb*0.5+0.5; + //gl_FragColor.rgb = vec3(ambocc); + //gl_FragColor.rgb = vec3(scol); +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..ad8af4780d4426f1da5608f7ee0b78eb57f5cd46 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl @@ -0,0 +1,24 @@ +/** + * @file softenLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +uniform vec2 screen_res; + +varying vec4 vary_light; +varying vec2 vary_fragcoord; +void main() +{ + //transform vertex + gl_Position = ftransform(); + + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; + + vec4 tex = gl_MultiTexCoord0; + tex.w = 1.0; + + vary_light = gl_MultiTexCoord0; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..d6534083cfe220affb92736c0a6ef4b42de91712 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl @@ -0,0 +1,199 @@ +/** + * @file spotLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#version 120 + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect specularRect; +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform samplerCube environmentMap; +uniform sampler2DRect lightMap; +uniform sampler2D noiseMap; +uniform sampler2D lightFunc; +uniform sampler2D projectionMap; + +uniform mat4 proj_mat; //screen space to light space +uniform float proj_near; //near clip for projection +uniform vec3 proj_p; //plane projection is emitting from (in screen space) +uniform vec3 proj_n; +uniform float proj_focus; //distance from plane to begin blurring +uniform float proj_lod; //(number of mips in proj map) +uniform float proj_range; //range between near clip and far clip plane of projection +uniform float proj_ambiance; +uniform float near_clip; +uniform float far_clip; + +uniform vec3 proj_origin; //origin of projection to be used for angular attenuation +uniform float sun_wash; +uniform int proj_shadow_idx; +uniform float shadow_fade; + +varying vec4 vary_light; + +varying vec4 vary_fragcoord; +uniform vec2 screen_res; + +uniform mat4 inv_proj; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +void main() +{ + vec4 frag = vary_fragcoord; + frag.xyz /= frag.w; + frag.xyz = frag.xyz*0.5+0.5; + frag.xy *= screen_res; + + float shadow = 1.0; + + if (proj_shadow_idx >= 0) + { + vec4 shd = texture2DRect(lightMap, frag.xy); + float sh[2]; + sh[0] = shd.b; + sh[1] = shd.a; + shadow = min(sh[proj_shadow_idx]+shadow_fade, 1.0); + } + + vec3 pos = getPosition(frag.xy).xyz; + vec3 lv = vary_light.xyz-pos.xyz; + float dist2 = dot(lv,lv); + dist2 /= vary_light.w; + if (dist2 > 1.0) + { + discard; + } + + vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0; + + norm = normalize(norm); + float l_dist = -dot(lv, proj_n); + + vec4 proj_tc = (proj_mat * vec4(pos.xyz, 1.0)); + if (proj_tc.z < 0.0) + { + discard; + } + + proj_tc.xyz /= proj_tc.w; + + float fa = gl_Color.a+1.0; + float dist_atten = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0); + + lv = proj_origin-pos.xyz; + lv = normalize(lv); + float da = dot(norm, lv); + + vec3 col = vec3(0,0,0); + + vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; + + float noise = texture2D(noiseMap, frag.xy/128.0).b; + if (proj_tc.z > 0.0 && + proj_tc.x < 1.0 && + proj_tc.y < 1.0 && + proj_tc.x > 0.0 && + proj_tc.y > 0.0) + { + float lit = 0.0; + if (da > 0.0) + { + float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0); + float lod = diff * proj_lod; + + vec4 plcol = texture2DLod(projectionMap, proj_tc.xy, lod); + + vec3 lcol = gl_Color.rgb * plcol.rgb * plcol.a; + + lit = da * dist_atten * noise; + + col = lcol*lit*diff_tex*shadow; + } + + float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0); + float lod = diff * proj_lod; + vec4 amb_plcol = texture2DLod(projectionMap, proj_tc.xy, lod); + //float amb_da = mix(proj_ambiance, proj_ambiance*max(-da, 0.0), max(da, 0.0)); + float amb_da = proj_ambiance; + if (da > 0.0) + { + amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance; + } + + amb_da += (da*da*0.5+0.5)*proj_ambiance; + + amb_da *= dist_atten * noise; + + amb_da = min(amb_da, 1.0-lit); + + col += amb_da*gl_Color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a; + } + + + vec4 spec = texture2DRect(specularRect, frag.xy); + if (spec.a > 0.0) + { + vec3 ref = reflect(normalize(pos), norm); + + //project from point pos in direction ref to plane proj_p, proj_n + vec3 pdelta = proj_p-pos; + float ds = dot(ref, proj_n); + + if (ds < 0.0) + { + vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds; + + vec3 stc = (proj_mat * vec4(pfinal.xyz, 1.0)).xyz; + + if (stc.z > 0.0) + { + stc.xy /= stc.z+proj_near; + + if (stc.x < 1.0 && + stc.y < 1.0 && + stc.x > 0.0 && + stc.y > 0.0) + { + vec4 scol = texture2DLod(projectionMap, stc.xy, proj_lod-spec.a*proj_lod); + col += dist_atten*scol.rgb*gl_Color.rgb*scol.a*spec.rgb*shadow; + } + } + } + } + + /*if (spec.a > 0.0) + { + //vec3 ref = reflect(normalize(pos), norm); + float sa = dot(normalize(lv-normalize(pos)),norm);; + //sa = max(sa, 0.0); + //sa = pow(sa, 128.0 * spec.a*spec.a/dist_atten)*min(dist_atten*4.0, 1.0); + sa = texture2D(lightFunc, vec2(sa, spec.a)).a * min(dist_atten*4.0, 1.0); + sa *= noise; + col += da*sa*lcol*spec.rgb; + }*/ + + //attenuate point light contribution by SSAO component + col *= texture2DRect(lightMap, frag.xy).g; + + + gl_FragColor.rgb = col; + gl_FragColor.a = 0.0; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..a0026edcd2186c76264351f698cad8a60371bf46 --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl @@ -0,0 +1,235 @@ +/** + * @file sunLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform sampler2DRectShadow shadowMap0; +uniform sampler2DRectShadow shadowMap1; +uniform sampler2DRectShadow shadowMap2; +uniform sampler2DRectShadow shadowMap3; +uniform sampler2DShadow shadowMap4; +uniform sampler2DShadow shadowMap5; +uniform sampler2D noiseMap; + +uniform sampler2D lightFunc; + + +// Inputs +uniform mat4 shadow_matrix[6]; +uniform vec4 shadow_clip; +uniform float ssao_radius; +uniform float ssao_max_radius; +uniform float ssao_factor; +uniform float ssao_factor_inv; + +varying vec2 vary_fragcoord; +varying vec4 vary_light; + +uniform mat4 inv_proj; +uniform vec2 screen_res; +uniform vec2 shadow_res; +uniform vec2 proj_shadow_res; + +uniform float shadow_bias; +uniform float shadow_offset; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +//calculate decreases in ambient lighting when crowded out (SSAO) +float calcAmbientOcclusion(vec4 pos, vec3 norm) +{ + vec2 kern[8]; + // exponentially (^2) distant occlusion samples spread around origin + kern[0] = vec2(-1.0, 0.0) * 0.125*0.125; + kern[1] = vec2(1.0, 0.0) * 0.250*0.250; + kern[2] = vec2(0.0, 1.0) * 0.375*0.375; + kern[3] = vec2(0.0, -1.0) * 0.500*0.500; + kern[4] = vec2(0.7071, 0.7071) * 0.625*0.625; + kern[5] = vec2(-0.7071, -0.7071) * 0.750*0.750; + kern[6] = vec2(-0.7071, 0.7071) * 0.875*0.875; + kern[7] = vec2(0.7071, -0.7071) * 1.000*1.000; + + vec2 pos_screen = vary_fragcoord.xy; + vec3 pos_world = pos.xyz; + vec2 noise_reflect = texture2D(noiseMap, vary_fragcoord.xy/128.0).xy; + + float angle_hidden = 0.0; + int points = 0; + + float scale = min(ssao_radius / -pos_world.z, ssao_max_radius); + + // it was found that keeping # of samples a constant was the fastest, probably due to compiler optimizations (unrolling?) + for (int i = 0; i < 8; i++) + { + vec2 samppos_screen = pos_screen + scale * reflect(kern[i], noise_reflect); + vec3 samppos_world = getPosition(samppos_screen).xyz; + + vec3 diff = pos_world - samppos_world; + float dist2 = dot(diff, diff); + + // assume each sample corresponds to an occluding sphere with constant radius, constant x-sectional area + // --> solid angle shrinking by the square of distance + //radius is somewhat arbitrary, can approx with just some constant k * 1 / dist^2 + //(k should vary inversely with # of samples, but this is taken care of later) + + //if (dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) // -0.05*norm to shift sample point back slightly for flat surfaces + // angle_hidden += min(1.0/dist2, ssao_factor_inv); // dist != 0 follows from conditional. max of 1.0 (= ssao_factor_inv * ssao_factor) + angle_hidden = angle_hidden + float(dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) * min(1.0/dist2, ssao_factor_inv); + + // 'blocked' samples (significantly closer to camera relative to pos_world) are "no data", not "no occlusion" + points = points + int(diff.z > -1.0); + } + + angle_hidden = min(ssao_factor*angle_hidden/float(points), 1.0); + + return (1.0 - (float(points != 0) * angle_hidden)); +} + +float pcfShadow(sampler2DRectShadow shadowMap, vec4 stc, float scl) +{ + stc.xyz /= stc.w; + stc.z += shadow_bias*scl; + + float cs = shadow2DRect(shadowMap, stc.xyz).x; + float shadow = cs; + + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(1.5, 1.5, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(1.5, -1.5, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(-1.5, 1.5, 0.0)).x, cs); + shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(-1.5, -1.5, 0.0)).x, cs); + + return shadow/5.0; + + //return shadow; +} + +float pcfShadow(sampler2DShadow shadowMap, vec4 stc, float scl) +{ + stc.xyz /= stc.w; + stc.z += shadow_bias*scl; + + float cs = shadow2D(shadowMap, stc.xyz).x; + float shadow = cs; + + vec2 off = 1.5/proj_shadow_res; + + shadow += max(shadow2D(shadowMap, stc.xyz+vec3(off.x, off.y, 0.0)).x, cs); + shadow += max(shadow2D(shadowMap, stc.xyz+vec3(off.x, -off.y, 0.0)).x, cs); + shadow += max(shadow2D(shadowMap, stc.xyz+vec3(-off.x, off.y, 0.0)).x, cs); + shadow += max(shadow2D(shadowMap, stc.xyz+vec3(-off.x, -off.y, 0.0)).x, cs); + + + return shadow/5.0; + + //return shadow; +} + +void main() +{ + vec2 pos_screen = vary_fragcoord.xy; + + //try doing an unproject here + + vec4 pos = getPosition(pos_screen); + + vec3 norm = texture2DRect(normalMap, pos_screen).xyz*2.0-1.0; + + /*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL + { + gl_FragColor = vec4(0.0); // doesn't matter + return; + }*/ + + float shadow = 1.0; + float dp_directional_light = max(0.0, dot(norm, vary_light.xyz)); + + vec4 spos = vec4(pos.xyz + vary_light.xyz * (1.0-dp_directional_light)*shadow_offset, 1.0); + + if (spos.z > -shadow_clip.w) + { + if (dp_directional_light == 0.0) + { + // if we know this point is facing away from the sun then we know it's in shadow without having to do a squirrelly shadow-map lookup + shadow = 0.0; + } + else + { + vec4 lpos; + + if (spos.z < -shadow_clip.z) + { + lpos = shadow_matrix[3]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap3, lpos, 0.25); + shadow += max((pos.z+shadow_clip.z)/(shadow_clip.z-shadow_clip.w)*2.0-1.0, 0.0); + } + else if (spos.z < -shadow_clip.y) + { + lpos = shadow_matrix[2]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap2, lpos, 0.5); + } + else if (spos.z < -shadow_clip.x) + { + lpos = shadow_matrix[1]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap1, lpos, 0.75); + } + else + { + lpos = shadow_matrix[0]*spos; + lpos.xy *= shadow_res; + shadow = pcfShadow(shadowMap0, lpos, 1.0); + } + + // take the most-shadowed value out of these two: + // * the blurred sun shadow in the light (shadow) map + // * an unblurred dot product between the sun and this norm + // the goal is to err on the side of most-shadow to fill-in shadow holes and reduce artifacting + shadow = min(shadow, dp_directional_light); + + //lpos.xy /= lpos.w*32.0; + //if (fract(lpos.x) < 0.1 || fract(lpos.y) < 0.1) + //{ + // shadow = 0.0; + //} + + } + } + else + { + // more distant than the shadow map covers + shadow = 1.0; + } + + gl_FragColor[0] = shadow; + gl_FragColor[1] = calcAmbientOcclusion(pos, norm); + + //spotlight shadow 1 + vec4 lpos = shadow_matrix[4]*spos; + gl_FragColor[2] = pcfShadow(shadowMap4, lpos, 0.1).x; + + //spotlight shadow 2 + lpos = shadow_matrix[5]*spos; + gl_FragColor[3] = pcfShadow(shadowMap5, lpos, 0.1).x; + + //gl_FragColor.rgb = pos.xyz; + //gl_FragColor.b = shadow; +} diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..5081485c4be75666ebb3e6f9c573567292196cce --- /dev/null +++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl @@ -0,0 +1,25 @@ +/** + * @file sunLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec4 vary_light; +varying vec2 vary_fragcoord; + +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy * 0.5 + 0.5)*screen_res; + vec4 tex = gl_MultiTexCoord0; + tex.w = 1.0; + + vary_light = gl_MultiTexCoord0; + + gl_FrontColor = gl_Color; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/giDownsampleF.glsl b/indra/newview/app_settings/shaders/class3/deferred/giDownsampleF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..7325825d6d4e21c7b07cfefd0fbc840000dd84f7 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/giDownsampleF.glsl @@ -0,0 +1,84 @@ +/** + * @file giDownsampleF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +uniform sampler2DRect giLightMap; + +uniform vec2 kern[32]; +uniform float dist_factor; +uniform float blur_size; +uniform vec2 delta; +uniform int kern_length; +uniform float kern_scale; +uniform vec3 blur_quad; + +varying vec2 vary_fragcoord; + +uniform mat4 inv_proj; +uniform vec2 screen_res; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +float getDepth(vec2 pos_screen) +{ + float z = texture2DRect(depthMap, pos_screen.xy).a; + z = z*2.0-1.0; + vec4 ndc = vec4(0.0, 0.0, z, 1.0); + vec4 p = inv_proj*ndc; + return p.z/p.w; +} + +void main() +{ + vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0; + float depth = getDepth(vary_fragcoord.xy); + + vec3 ccol = texture2DRect(giLightMap, vary_fragcoord.xy).rgb; + vec2 dlt = kern_scale * delta/(vec2(1.0,1.0)+norm.xy*norm.xy); + dlt /= clamp(-depth*blur_quad.x, 1.0, 3.0); + float defined_weight = kern[0].x; + vec3 col = ccol*kern[0].x; + + for (int i = 0; i < kern_length; i++) + { + vec2 tc = vary_fragcoord.xy + kern[i].y*dlt; + vec3 sampNorm = texture2DRect(normalMap, tc.xy).xyz*2.0-1.0; + + float d = dot(norm.xyz, sampNorm); + + if (d > 0.5) + { + float sampdepth = getDepth(tc.xy); + sampdepth -= depth; + if (sampdepth*sampdepth < blur_quad.z) + { + col += texture2DRect(giLightMap, tc).rgb*kern[i].x; + defined_weight += kern[i].x; + } + } + } + + col /= defined_weight; + + //col = ccol; + + col = col*blur_quad.y; + + gl_FragData[0].xyz = col; + + //gl_FragColor = ccol; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/giDownsampleV.glsl b/indra/newview/app_settings/shaders/class3/deferred/giDownsampleV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..6adcda82a309f352799e3973bfc70bb5708affa0 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/giDownsampleV.glsl @@ -0,0 +1,17 @@ +/** + * @file postgiV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/giF.glsl b/indra/newview/app_settings/shaders/class3/deferred/giF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..939710cb56303208c8123a2499385573cfb06d0e --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/giF.glsl @@ -0,0 +1,190 @@ +/** + * @file giF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform sampler2DRect lightMap; +uniform sampler2DRect specularRect; + +uniform sampler2D noiseMap; + +uniform sampler2D diffuseGIMap; +uniform sampler2D specularGIMap; +uniform sampler2D normalGIMap; +uniform sampler2D depthGIMap; + +uniform sampler2D lightFunc; + +// Inputs +varying vec2 vary_fragcoord; + +uniform vec2 screen_res; + +uniform vec4 sunlight_color; + +uniform mat4 inv_proj; +uniform mat4 gi_mat; //gPipeline.mGIMatrix - eye space to sun space +uniform mat4 gi_mat_proj; //gPipeline.mGIMatrixProj - eye space to projected sun space +uniform mat4 gi_norm_mat; //gPipeline.mGINormalMatrix - eye space normal to sun space normal matrix +uniform mat4 gi_inv_proj; //gPipeline.mGIInvProj - projected sun space to sun space +uniform float gi_sample_width; +uniform float gi_noise; +uniform float gi_attenuation; +uniform float gi_range; + +vec4 getPosition(vec2 pos_screen) +{ + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +vec4 getGIPosition(vec2 gi_tc) +{ + float depth = texture2D(depthGIMap, gi_tc).a; + vec2 sc = gi_tc*2.0; + sc -= vec2(1.0, 1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = gi_inv_proj*ndc; + pos.xyz /= pos.w; + pos.w = 1.0; + return pos; +} + +vec3 giAmbient(vec3 pos, vec3 norm) +{ + vec4 gi_c = gi_mat_proj * vec4(pos, 1.0); + gi_c.xyz /= gi_c.w; + + vec4 gi_pos = gi_mat*vec4(pos,1.0); + vec3 gi_norm = (gi_norm_mat*vec4(norm,1.0)).xyz; + gi_norm = normalize(gi_norm); + + vec4 c_spec = texture2DRect(specularRect, vary_fragcoord.xy); + vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).rgb; + gi_pos.xyz += nz.x*gi_noise*gi_norm.xyz; + vec2 tcx = gi_norm.xy; + vec2 tcy = gi_norm.yx; + + vec4 eye_pos = gi_mat*vec4(0,0,0,1.0); + + vec3 eye_dir = normalize(gi_pos.xyz-eye_pos.xyz); + vec3 eye_ref = reflect(eye_dir, gi_norm); + + float da = 0.0; //texture2DRect(lightMap, vary_fragcoord.xy).r*0.5; + vec3 fdiff = vec3(da); + float fda = da; + + vec3 rcol = vec3(0,0,0); + + float fsa = 0.0; + + + for (int i = -1; i <= 1; i += 2 ) + { + for (int j = -1; j <= 1; j+= 2) + { + vec2 tc = vec2(i, j)*0.75+gi_norm.xy*nz.z; + tc += nz.xy*2.0; + tc *= gi_sample_width*0.25; + tc += gi_c.xy; + + vec3 lnorm = -(texture2D(normalGIMap, tc.xy).xyz*2.0-1.0); + vec3 lpos = getGIPosition(tc.xy).xyz; + + vec3 at = lpos-gi_pos.xyz; + float dist = length(at); + float dist_atten = clamp(1.0/(gi_attenuation*dist), 0.0, 1.0); + + + if (dist_atten > 0.01) + { //possible contribution of indirect light to this surface + vec3 ldir = at; + + float ld = -dot(ldir, lnorm); + + if (ld < 0.0) + { + float ang_atten = dot(ldir, gi_norm); + + if (ang_atten > 0.0) + { + vec4 spec = texture2D(specularGIMap, tc.xy); + at = normalize(at); + vec3 diff; + + float da = 0.0; + + //contribution from indirect source to visible pixel + vec3 ha = at; + ha.z -= 1.0; + ha = normalize(ha); + if (spec.a > 0.0) + { + float sa = dot(ha,lnorm); + da = texture2D(lightFunc, vec2(sa, spec.a)).a; + } + else + { + da = -lnorm.z; + } + + diff = texture2D(diffuseGIMap, tc.xy).rgb+spec.rgb*spec.a*2.0; + + if (da > 0.0) + { //contribution from visible pixel to eye + vec3 ha = normalize(at-eye_dir); + if (c_spec.a > 0.0) + { + float sa = dot(ha, gi_norm); + da = dist_atten*texture2D(lightFunc, vec2(sa, c_spec.a)).a; + } + else + { + da = dist_atten*dot(gi_norm, normalize(ldir)); + } + fda += da; + fdiff += da*(c_spec.rgb*c_spec.a*2.0+vec3(1,1,1))*diff.rgb; + } + } + } + } + } + } + + fdiff *= sunlight_color.rgb; + + vec3 ret = fda*fdiff; + + return clamp(ret,vec3(0.0), vec3(1.0)); +} + +void main() +{ + vec2 pos_screen = vary_fragcoord.xy; + vec4 pos = getPosition(pos_screen); + + float rad = gi_range*0.5; + + vec3 norm = texture2DRect(normalMap, pos_screen).xyz*2.0-1.0; + float dist = max(length(pos.xyz)-rad, 0.0); + + float da = clamp(1.0-dist/rad, 0.0, 1.0); + + vec3 ambient = da > 0.0 ? giAmbient(pos.xyz, norm) : vec3(0); + + + gl_FragData[0].xyz = mix(vec3(0), ambient, da); +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/giFinalF.glsl b/indra/newview/app_settings/shaders/class3/deferred/giFinalF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..e0eeebf8b6555328d3660f7cf78154ace3da2027 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/giFinalF.glsl @@ -0,0 +1,25 @@ +/** + * @file giFinalF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2D bloomMap; +uniform sampler2DRect edgeMap; + +uniform vec2 screen_res; +varying vec2 vary_fragcoord; + + +void main() +{ + vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res); + vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy); + + gl_FragColor = bloom + diff; + //gl_FragColor.rgb = vec3(texture2DRect(edgeMap, vary_fragcoord.xy).a); +} \ No newline at end of file diff --git a/indra/newview/app_settings/shaders/class3/deferred/giFinalV.glsl b/indra/newview/app_settings/shaders/class3/deferred/giFinalV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..41a29c31bd22b92d598b559f1b3ed21d8b6266c3 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/giFinalV.glsl @@ -0,0 +1,17 @@ +/** + * @file giFinalV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/giV.glsl b/indra/newview/app_settings/shaders/class3/deferred/giV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..71dcea9628e677c502e2e52c8fcfdb7594d8bf1e --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/giV.glsl @@ -0,0 +1,22 @@ +/** + * @file giV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; + +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy * 0.5 + 0.5)*screen_res; + vec4 tex = gl_MultiTexCoord0; + tex.w = 1.0; + + gl_FrontColor = gl_Color; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class3/deferred/luminanceF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..406a7e07cf479f069ef2b00440d083820fc24853 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/luminanceF.glsl @@ -0,0 +1,19 @@ +/** + * @file luminanceF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect lightMap; +uniform sampler2DRect diffuseRect; + +varying vec2 vary_fragcoord; +void main() +{ + float i = texture2DRect(lightMap, vary_fragcoord.xy).r; + gl_FragColor.rgb = vec3(i); + gl_FragColor.a = 1.0; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/luminanceV.glsl b/indra/newview/app_settings/shaders/class3/deferred/luminanceV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..db8775f024b56e30396cc10812ea104c0d9092a3 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/luminanceV.glsl @@ -0,0 +1,20 @@ +/** + * @file giV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; + +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy * 0.5 + 0.5)*screen_res; + + gl_FrontColor = gl_Color; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class3/deferred/postDeferredF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..5e69bf36d9f6564d21739da5a0f05a7ed823bbcd --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/postDeferredF.glsl @@ -0,0 +1,80 @@ +/** + * @file postDeferredF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect specularRect; + +uniform sampler2DRect localLightMap; +uniform sampler2DRect sunLightMap; +uniform sampler2DRect giLightMap; +uniform sampler2DRect edgeMap; + +uniform sampler2D luminanceMap; + +uniform sampler2DRect lightMap; + +uniform sampler2D lightFunc; +uniform sampler2D noiseMap; + +uniform float sun_lum_scale; +uniform float sun_lum_offset; +uniform float lum_scale; +uniform float lum_lod; +uniform vec4 ambient; +uniform float gi_brightness; +uniform float gi_luminance; + +uniform vec4 sunlight_color; + +uniform vec2 screen_res; +varying vec2 vary_fragcoord; + +void main() +{ + vec2 tc = vary_fragcoord.xy; + vec4 lcol = texture2DLod(luminanceMap, vec2(0.5, 0.5), lum_lod); + + vec3 gi_col = texture2DRect(giLightMap, vary_fragcoord.xy).rgb; + vec4 sun_col = texture2DRect(sunLightMap, vary_fragcoord.xy); + vec3 local_col = texture2DRect(localLightMap, vary_fragcoord.xy).rgb; + + float scol = texture2DRect(lightMap, vary_fragcoord.xy).r; + + vec3 diff = texture2DRect(diffuseRect, vary_fragcoord.xy).rgb; + vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy); + + gi_col = gi_col*(diff.rgb+spec.rgb*spec.a); + + float lum = 1.0-clamp(pow(lcol.r, gi_brightness)+sun_lum_offset, 0.0, 1.0); + + lum *= sun_lum_scale; + + sun_col *= 1.0+(lum*lum_scale*scol); + + vec4 col; + col.rgb = gi_col+sun_col.rgb+local_col; + + col.a = sun_col.a; + + vec3 bcol = vec3(0,0,0); + float tweight = 0.0; + for (int i = 0; i < 16; i++) + { + float weight = (float(i)+1.0)/2.0; + bcol += texture2DLod(luminanceMap, vary_fragcoord.xy/screen_res, weight).rgb*weight*weight*weight; + tweight += weight*weight; + } + + bcol /= tweight; + bcol *= gi_luminance; + col.rgb += bcol*lum; + + gl_FragColor = col; + //gl_FragColor.rgb = texture2DRect(giLightMap, vary_fragcoord.xy).rgb; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/postDeferredV.glsl b/indra/newview/app_settings/shaders/class3/deferred/postDeferredV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..9819232fd5d0f1788e88500d8a1a6fca9f1423ed --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/postDeferredV.glsl @@ -0,0 +1,17 @@ +/** + * @file postDeferredV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/postgiF.glsl b/indra/newview/app_settings/shaders/class3/deferred/postgiF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..901b60af59754618d8fca825fe4a21d11d4ce455 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/postgiF.glsl @@ -0,0 +1,69 @@ +/** + * @file postgiF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect depthMap; +uniform sampler2DRect normalMap; +uniform sampler2DRect giLightMap; +uniform sampler2D noiseMap; +uniform sampler2D giMip; +uniform sampler2DRect edgeMap; + + +uniform vec2 delta; +uniform float kern_scale; +uniform float gi_edge_weight; +uniform float gi_blur_brightness; + +varying vec2 vary_fragcoord; + +void main() +{ + vec2 dlt = kern_scale*delta; + float defined_weight = 0.0; + vec3 col = vec3(0.0); + + float e = 1.0; + + for (int i = 1; i < 8; i++) + { + vec2 tc = vary_fragcoord.xy + float(i) * dlt; + + e = max(e, 0.0); + float wght = e; + + col += texture2DRect(giLightMap, tc).rgb*wght; + defined_weight += wght; + + e *= e; + e -=(texture2DRect(edgeMap, tc.xy-dlt*0.25).a+ + texture2DRect(edgeMap, tc.xy+dlt*0.25).a)*gi_edge_weight; + } + + e = 1.0; + + for (int i = 1; i < 8; i++) + { + vec2 tc = vary_fragcoord.xy - float(i) * dlt; + + e = max(e,0.0); + float wght = e; + + col += texture2DRect(giLightMap, tc).rgb*wght; + defined_weight += wght; + + e *= e; + e -= (texture2DRect(edgeMap, tc.xy-dlt*0.25).a+ + texture2DRect(edgeMap, tc.xy+dlt*0.25).a)*gi_edge_weight; + + } + + col /= max(defined_weight, 0.01); + + gl_FragColor.rgb = col * gi_blur_brightness; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/postgiV.glsl b/indra/newview/app_settings/shaders/class3/deferred/postgiV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..6adcda82a309f352799e3973bfc70bb5708affa0 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/postgiV.glsl @@ -0,0 +1,17 @@ +/** + * @file postgiV.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +varying vec2 vary_fragcoord; +uniform vec2 screen_res; + +void main() +{ + //transform vertex + gl_Position = ftransform(); + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..96a083b52216947b72f53b67522fb86554de6b46 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl @@ -0,0 +1,297 @@ +/** + * @file softenLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect diffuseRect; +uniform sampler2DRect specularRect; +uniform sampler2DRect normalMap; +uniform sampler2DRect lightMap; +uniform sampler2D noiseMap; +uniform samplerCube environmentMap; +uniform sampler2D lightFunc; +uniform vec3 gi_quad; + +uniform float blur_size; +uniform float blur_fidelity; + +// Inputs +uniform vec4 morphFactor; +uniform vec3 camPosLocal; +//uniform vec4 camPosWorld; +uniform vec4 gamma; +uniform vec4 lightnorm; +uniform vec4 sunlight_color; +uniform vec4 ambient; +uniform vec4 blue_horizon; +uniform vec4 blue_density; +uniform vec4 haze_horizon; +uniform vec4 haze_density; +uniform vec4 cloud_shadow; +uniform vec4 density_multiplier; +uniform vec4 distance_multiplier; +uniform vec4 max_y; +uniform vec4 glow; +uniform float scene_light_strength; +uniform vec3 env_mat[3]; +uniform vec4 shadow_clip; +uniform mat3 ssao_effect_mat; + +uniform sampler2DRect depthMap; +uniform mat4 inv_proj; +uniform vec2 screen_res; + +varying vec4 vary_light; +varying vec2 vary_fragcoord; + +vec3 vary_PositionEye; + +vec3 vary_SunlitColor; +vec3 vary_AmblitColor; +vec3 vary_AdditiveColor; +vec3 vary_AtmosAttenuation; +uniform float gi_ambiance; + +vec4 getPosition(vec2 pos_screen) +{ //get position in screen space (world units) given window coordinate and depth map + float depth = texture2DRect(depthMap, pos_screen.xy).a; + vec2 sc = pos_screen.xy*2.0; + sc /= screen_res; + sc -= vec2(1.0,1.0); + vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0); + vec4 pos = inv_proj * ndc; + pos /= pos.w; + pos.w = 1.0; + return pos; +} + +vec3 getPositionEye() +{ + return vary_PositionEye; +} +vec3 getSunlitColor() +{ + return vary_SunlitColor; +} +vec3 getAmblitColor() +{ + return vary_AmblitColor; +} +vec3 getAdditiveColor() +{ + return vary_AdditiveColor; +} +vec3 getAtmosAttenuation() +{ + return vary_AtmosAttenuation; +} + + +void setPositionEye(vec3 v) +{ + vary_PositionEye = v; +} + +void setSunlitColor(vec3 v) +{ + vary_SunlitColor = v; +} + +void setAmblitColor(vec3 v) +{ + vary_AmblitColor = v; +} + +void setAdditiveColor(vec3 v) +{ + vary_AdditiveColor = v; +} + +void setAtmosAttenuation(vec3 v) +{ + vary_AtmosAttenuation = v; +} + +void calcAtmospherics(vec3 inPositionEye, float ambFactor) { + + vec3 P = inPositionEye; + setPositionEye(P); + + //(TERRAIN) limit altitude + if (P.y > max_y.x) P *= (max_y.x / P.y); + if (P.y < -max_y.x) P *= (-max_y.x / P.y); + + vec3 tmpLightnorm = lightnorm.xyz; + + vec3 Pn = normalize(P); + float Plen = length(P); + + vec4 temp1 = vec4(0); + vec3 temp2 = vec3(0); + vec4 blue_weight; + vec4 haze_weight; + vec4 sunlight = sunlight_color; + vec4 light_atten; + + //sunlight attenuation effect (hue and brightness) due to atmosphere + //this is used later for sunlight modulation at various altitudes + light_atten = (blue_density * 1.0 + vec4(haze_density.r) * 0.25) * (density_multiplier.x * max_y.x); + //I had thought blue_density and haze_density should have equal weighting, + //but attenuation due to haze_density tends to seem too strong + + temp1 = blue_density + vec4(haze_density.r); + blue_weight = blue_density / temp1; + haze_weight = vec4(haze_density.r) / temp1; + + //(TERRAIN) compute sunlight from lightnorm only (for short rays like terrain) + temp2.y = max(0.0, tmpLightnorm.y); + temp2.y = 1. / temp2.y; + sunlight *= exp( - light_atten * temp2.y); + + // main atmospheric scattering line integral + temp2.z = Plen * density_multiplier.x; + + // Transparency (-> temp1) + // ATI Bugfix -- can't store temp1*temp2.z*distance_multiplier.x in a variable because the ati + // compiler gets confused. + temp1 = exp(-temp1 * temp2.z * distance_multiplier.x); + + //final atmosphere attenuation factor + setAtmosAttenuation(temp1.rgb); + + //compute haze glow + //(can use temp2.x as temp because we haven't used it yet) + temp2.x = dot(Pn, tmpLightnorm.xyz); + temp2.x = 1. - temp2.x; + //temp2.x is 0 at the sun and increases away from sun + temp2.x = max(temp2.x, .03); //was glow.y + //set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot) + temp2.x *= glow.x; + //higher glow.x gives dimmer glow (because next step is 1 / "angle") + temp2.x = pow(temp2.x, glow.z); + //glow.z should be negative, so we're doing a sort of (1 / "angle") function + + //add "minimum anti-solar illumination" + temp2.x += .25; + + //increase ambient when there are more clouds + vec4 tmpAmbient = ambient*gi_ambiance + (vec4(1.) - ambient*gi_ambiance) * cloud_shadow.x * 0.5; + + /* decrease value and saturation (that in HSV, not HSL) for occluded areas + * // for HSV color/geometry used here, see http://gimp-savvy.com/BOOK/index.html?node52.html + * // The following line of code performs the equivalent of: + * float ambAlpha = tmpAmbient.a; + * float ambValue = dot(vec3(tmpAmbient), vec3(0.577)); // projection onto <1/rt(3), 1/rt(3), 1/rt(3)>, the neutral white-black axis + * vec3 ambHueSat = vec3(tmpAmbient) - vec3(ambValue); + * tmpAmbient = vec4(RenderSSAOEffect.valueFactor * vec3(ambValue) + RenderSSAOEffect.saturationFactor *(1.0 - ambFactor) * ambHueSat, ambAlpha); + */ + tmpAmbient = vec4(mix(ssao_effect_mat * tmpAmbient.rgb, tmpAmbient.rgb, ambFactor), tmpAmbient.a); + + //haze color + setAdditiveColor( + vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow.x) + tmpAmbient) + + (haze_horizon.r * haze_weight) * (sunlight*(1.-cloud_shadow.x) * temp2.x + + tmpAmbient))); + + //brightness of surface both sunlight and ambient + setSunlitColor(vec3(sunlight * .5)); + setAmblitColor(vec3(tmpAmbient * .25)); + setAdditiveColor(getAdditiveColor() * vec3(1.0 - temp1)); +} + +vec3 atmosLighting(vec3 light) +{ + light *= getAtmosAttenuation().r; + light += getAdditiveColor(); + return (2.0 * light); +} + +vec3 atmosTransport(vec3 light) { + light *= getAtmosAttenuation().r; + light += getAdditiveColor() * 2.0; + return light; +} +vec3 atmosGetDiffuseSunlightColor() +{ + return getSunlitColor(); +} + +vec3 scaleDownLight(vec3 light) +{ + return (light / scene_light_strength ); +} + +vec3 scaleUpLight(vec3 light) +{ + return (light * scene_light_strength); +} + +vec3 atmosAmbient(vec3 light) +{ + return getAmblitColor() + light / 2.0; +} + +vec3 atmosAffectDirectionalLight(float lightIntensity) +{ + return getSunlitColor() * lightIntensity; +} + +vec3 scaleSoftClip(vec3 light) +{ + //soft clip effect: + light = 1. - clamp(light, vec3(0.), vec3(1.)); + light = 1. - pow(light, gamma.xxx); + + return light; +} + +void main() +{ + vec2 tc = vary_fragcoord.xy; + vec3 pos = getPosition(tc).xyz; + vec3 norm = texture2DRect(normalMap, tc).xyz*2.0-1.0; + //vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).xyz; + + float da = max(dot(norm.xyz, vary_light.xyz), 0.0); + + vec4 diffuse = texture2DRect(diffuseRect, tc); + vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy); + + da = texture2D(lightFunc, vec2(da, 0.0)).a; + + vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg; + float scol = max(scol_ambocc.r, diffuse.a); + float ambocc = scol_ambocc.g; + + calcAtmospherics(pos.xyz, ambocc); + + vec3 col = atmosAmbient(vec3(0)); + col += atmosAffectDirectionalLight(max(min(da, scol), diffuse.a)); + + col *= diffuse.rgb; + + if (spec.a > 0.0) + { + vec3 ref = normalize(reflect(pos.xyz, norm.xyz)); + float sa = dot(ref, vary_light.xyz); + col.rgb += vary_SunlitColor*scol*spec.rgb*texture2D(lightFunc, vec2(sa, spec.a)).a; + } + + col = atmosLighting(col); + col = scaleSoftClip(col); + + gl_FragColor.rgb = col; + + //gl_FragColor.rgb = gi_col.rgb; + gl_FragColor.a = 0.0; + + //gl_FragColor.rg = scol_ambocc.rg; + //gl_FragColor.rgb = texture2DRect(lightMap, vary_fragcoord.xy).rgb; + //gl_FragColor.rgb = norm.rgb*0.5+0.5; + //gl_FragColor.rgb = vec3(ambocc); + //gl_FragColor.rgb = vec3(scol); +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl new file mode 100644 index 0000000000000000000000000000000000000000..ad8af4780d4426f1da5608f7ee0b78eb57f5cd46 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl @@ -0,0 +1,24 @@ +/** + * @file softenLightF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +uniform vec2 screen_res; + +varying vec4 vary_light; +varying vec2 vary_fragcoord; +void main() +{ + //transform vertex + gl_Position = ftransform(); + + vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex; + vary_fragcoord = (pos.xy*0.5+0.5)*screen_res; + + vec4 tex = gl_MultiTexCoord0; + tex.w = 1.0; + + vary_light = gl_MultiTexCoord0; +} diff --git a/indra/newview/app_settings/shaders/class3/deferred/treeF.glsl b/indra/newview/app_settings/shaders/class3/deferred/treeF.glsl new file mode 100644 index 0000000000000000000000000000000000000000..258acee08c1decb03f379ed31f3188bad9dbeda8 --- /dev/null +++ b/indra/newview/app_settings/shaders/class3/deferred/treeF.glsl @@ -0,0 +1,18 @@ +/** + * @file treeF.glsl + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +uniform sampler2D diffuseMap; + +varying vec3 vary_normal; + +void main() +{ + vec4 col = texture2D(diffuseMap, gl_TexCoord[0].xy); + gl_FragData[0] = vec4(gl_Color.rgb*col.rgb, col.a <= 0.5 ? 0.0 : 0.005); + gl_FragData[1] = vec4(0,0,0,0); + gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0); +} diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index 733670f31175f3eee60f6e39f4bb4421adef9c06..5c5c4e5b3c81f2574f555dcafabdf8aa66066eb3 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -162,8 +162,9 @@ Intel Montara .*Intel.*Montara.* 0 0 Intel Springdale .*Intel.*Springdale.* 0 0 Matrox .*Matrox.* 0 0 Mesa .*Mesa.* 0 0 -NVIDIA GT 120 .*NVIDIA.*GeForce.*GT.*12.* 3 1 -NVIDIA GT 130 .*NVIDIA.*GeForce.*GT.*13.* 3 1 +NVIDIA GT 120 .*NVIDIA.*GeForce.*GT.*12.* 2 1 +NVIDIA GT 130 .*NVIDIA.*GeForce.*GT.*13.* 3 1 +NVIDIA GTS 250 .*NVIDIA.*GeForce.*GTS.*25.* 3 1 NVIDIA GTX 260 .*NVIDIA.*GeForce.*GTX.*26.* 3 1 NVIDIA GTX 270 .*NVIDIA.*GeForce.*GTX.*27.* 3 1 NVIDIA GTX 280 .*NVIDIA.*GeForce.*GTX.*28.* 3 1 diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index c4e01808f77224b929a8f4da65bc604e2c564d34..6eb248ef74cae7e139139c9c1756dbe9a6d3f509 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1172,99 +1172,24 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name, return LLUUID::null; } - // First, make a folder in the Clothes directory. + // First, make a folder in the My Outfits directory. + LLUUID parent_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_MY_OUTFITS); LLUUID folder_id = gInventory.createNewCategory( - gInventory.findCategoryUUIDForType(LLAssetType::AT_MY_OUTFITS), + parent_id, LLAssetType::AT_OUTFIT, new_folder_name); -// bool found_first_item = false; - - /////////////////// - // Wearables + LLAppearanceManager::shallowCopyCategory(LLAppearanceManager::getCOF(),folder_id, NULL); - if (wearables_to_include.count()) +#if 0 + LLViewerInventoryCategory *parent_category = gInventory.getCategory(parent_id); + if (parent_category) { - // Then, iterate though each of the wearables and save links to them in the folder. - S32 i; - S32 count = wearables_to_include.count(); - LLDynamicArray<LLUUID> delete_items; - LLPointer<LLRefCount> cbdone = NULL; - for (i = 0; i < count; ++i) - { - const S32 type = wearables_to_include[i]; - for (U32 j=0; j<getWearableCount((EWearableType)i); j++) - { - LLWearable* old_wearable = getWearable((EWearableType)type,j); - if (old_wearable) - { - LLViewerInventoryItem* item = gInventory.getItem(getWearableItemID((EWearableType) type, j)); - if (!item) continue; - LLPointer<LLInventoryCallback> cb = NULL; - link_inventory_item(gAgent.getID(), - item->getLinkedUUID(), - folder_id, - item->getName(), - LLAssetType::AT_LINK, - cb); - } - } - } - gInventory.notifyObservers(); + parent_category->setSelectionByID(folder_id,TRUE); + parent_category->setNeedsAutoRename(TRUE); } +#endif - - /////////////////// - // Attachments - - if (attachments_to_include.count()) - { - for (S32 i = 0; i < attachments_to_include.count(); i++) - { - S32 attachment_pt = attachments_to_include[i]; - LLViewerJointAttachment* attachment = get_if_there(mAvatarObject->mAttachmentPoints, attachment_pt, (LLViewerJointAttachment*)NULL); - if (!attachment) continue; - LLViewerObject* attached_object = attachment->getObject(); - if (!attached_object) continue; - const LLUUID& item_id = attachment->getItemID(); - if (item_id.isNull()) continue; - LLInventoryItem* item = gInventory.getItem(item_id); - if (!item) continue; - - LLPointer<LLInventoryCallback> cb = NULL; - link_inventory_item(gAgent.getID(), - item->getLinkedUUID(), - folder_id, - item->getName(), - LLAssetType::AT_LINK, - cb); - } - } - - /////////////////// - // Gestures - - /* Disabling this for now, otherwise this adds all your default gestures and all previous - active gestures. Need to rethink the intended behavior. - for (LLGestureManager::item_map_t::iterator iter = LLGestureManager::instance().mActive.begin(); - iter != LLGestureManager::instance().mActive.end(); - ++iter) - { - const LLUUID &gesture_id = (*iter).first; - LLViewerInventoryItem* item = gInventory.getItem(gesture_id); - if (item) - { - LLPointer<LLInventoryCallback> cb = NULL; - link_inventory_item(gAgent.getID(), - item->getUUID(), - folder_id, - item->getName(), - LLAssetType::AT_LINK, - cb); - } - } - */ - return folder_id; } @@ -1759,7 +1684,7 @@ void LLAgentWearables::userRemoveAllClothesStep2(BOOL proceed) } } -void LLAgentWearables::userRemoveAllAttachments(void* userdata) +void LLAgentWearables::userRemoveAllAttachments() { LLVOAvatar* avatarp = gAgent.getAvatarObject(); if (!avatarp) @@ -1819,7 +1744,7 @@ void LLAgentWearables::userAttachMultipleAttachments(LLInventoryModel::item_arra msg->nextBlockFast(_PREHASH_HeaderData); msg->addUUIDFast(_PREHASH_CompoundMsgID, compound_msg_id ); msg->addU8Fast(_PREHASH_TotalObjects, obj_count ); - msg->addBOOLFast(_PREHASH_FirstDetachAll, true ); + msg->addBOOLFast(_PREHASH_FirstDetachAll, true ); // BAP changing this doesn't seem to matter? } const LLInventoryItem* item = obj_item_array.get(i).get(); diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h index cb4de555d5614788a2f0454cb7e7bab6813ae109..f34b23e2204cc26bc8de6b54265ece7e22869eda 100644 --- a/indra/newview/llagentwearables.h +++ b/indra/newview/llagentwearables.h @@ -181,7 +181,7 @@ class LLAgentWearables // MULTI-WEARABLE: assuming one wearable per type. Need upstream changes. static void userRemoveWearable(void* userdata); // userdata is EWearableType static void userRemoveAllClothes(void* userdata); // userdata is NULL - static void userRemoveAllAttachments(void* userdata); // userdata is NULL + static void userRemoveAllAttachments(); static void userAttachMultipleAttachments(LLInventoryModel::item_array_t& obj_item_array); BOOL itemUpdatePending(const LLUUID& item_id) const; diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 6c234f23fe830ad79813aa52c2b2bf0ec5476d6d..dfed1cb57a99f663e2d3d6f33380d2720aab739d 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -239,33 +239,25 @@ void LLOutfitFetch::done() } } -class LLUpdateAppearanceOnCount: public LLInventoryCallback +class LLUpdateAppearanceOnDestroy: public LLInventoryCallback { public: - LLUpdateAppearanceOnCount(S32 count): - mCount(count) + LLUpdateAppearanceOnDestroy(): + mFireCount(0) { } - virtual ~LLUpdateAppearanceOnCount() + virtual ~LLUpdateAppearanceOnDestroy() { + LLAppearanceManager::updateAppearanceFromCOF(); } /* virtual */ void fire(const LLUUID& inv_item) { - mCount--; - if (mCount==0) - { - done(); - } - } - - void done() - { - LLAppearanceManager::updateAppearanceFromCOF(); + mFireCount++; } private: - S32 mCount; + U32 mFireCount; }; struct LLFoundData @@ -362,25 +354,42 @@ void removeDuplicateItems(LLInventoryModel::item_array_t& dst, const LLInventory } // Update appearance from outfit folder. -/* static */ void LLAppearanceManager::changeOutfit(bool proceed, const LLUUID& category, bool append, bool follow_folder_links) +/* static */ void LLAppearanceManager::changeOutfit(bool proceed, const LLUUID& category, bool append) { if (!proceed) return; - - updateCOFFromOutfit(category, append, follow_folder_links); + + if (append) + { + updateCOFFromCategory(category, append); // append is true - add non-duplicates to COF. + } + else + { + LLViewerInventoryCategory* catp = gInventory.getCategory(category); + if (catp->getPreferredType() == LLAssetType::AT_NONE || + LLAssetType::lookupIsEnsembleCategoryType(catp->getPreferredType())) + { + updateCOFFromCategory(category, append); // append is false - rebuild COF. + } + else if (catp->getPreferredType() == LLAssetType::AT_OUTFIT) + { + rebuildCOFFromOutfit(category); + } + } } -// Update COF contents from outfit folder. -/* static */ void LLAppearanceManager::updateCOFFromOutfit(const LLUUID& category, bool append, bool follow_folder_links) +// Append to current COF contents by recursively traversing a folder. +/* static */ void LLAppearanceManager::updateCOFFromCategory(const LLUUID& category, bool append) { - // BAP consolidate into one "get all 3 types of descendents" function, use both places. + // BAP consolidate into one "get all 3 types of descendents" function, use both places. LLInventoryModel::item_array_t wear_items; - LLInventoryModel::item_array_t obj_items; - LLInventoryModel::item_array_t gest_items; + LLInventoryModel::item_array_t obj_items; + LLInventoryModel::item_array_t gest_items; + bool follow_folder_links = false; getUserDescendents(category, wear_items, obj_items, gest_items, follow_folder_links); // Find all the wearables that are in the category's subtree. - lldebugs << "updateCOFFromOutfit()" << llendl; + lldebugs << "appendCOFFromCategory()" << llendl; if( !wear_items.count() && !obj_items.count() && !gest_items.count()) { LLNotifications::instance().add("CouldNotPutOnOutfit"); @@ -395,31 +404,26 @@ void removeDuplicateItems(LLInventoryModel::item_array_t& dst, const LLInventory LLInventoryModel::item_array_t cof_items; gInventory.collectDescendents(current_outfit_id, cof_cats, cof_items, LLInventoryModel::EXCLUDE_TRASH); + // Remove duplicates if (append) { - // Remove duplicates removeDuplicateItems(wear_items, cof_items); removeDuplicateItems(obj_items, cof_items); removeDuplicateItems(gest_items, cof_items); } - - if (wear_items.count() > 0 || obj_items.count() > 0) + S32 total_links = gest_items.count() + wear_items.count() + obj_items.count(); + + if (!append && total_links > 0) { - if (!append) + // Remove all current outfit folder links since we're now replacing the contents. + for (S32 i = 0; i < cof_items.count(); ++i) { - // Remove all current outfit folder links if we're now replacing the contents. - for (S32 i = 0; i < cof_items.count(); ++i) - { - gInventory.purgeObject(cof_items.get(i)->getUUID()); - } + gInventory.purgeObject(cof_items.get(i)->getUUID()); } } - // BAP should we just link all contents, rather than restricting to these 3 types? - - S32 total_links = gest_items.count() + wear_items.count() + obj_items.count(); - LLPointer<LLUpdateAppearanceOnCount> link_waiter = new LLUpdateAppearanceOnCount(total_links); + LLPointer<LLUpdateAppearanceOnDestroy> link_waiter = new LLUpdateAppearanceOnDestroy; // Link all gestures in this folder if (gest_items.count() > 0) @@ -469,11 +473,86 @@ void removeDuplicateItems(LLInventoryModel::item_array_t& dst, const LLInventory } } } +} + +/* static */ void LLAppearanceManager::shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id, + LLPointer<LLInventoryCallback> cb) +{ + LLInventoryModel::cat_array_t cats; + LLInventoryModel::item_array_t items; + gInventory.collectDescendents(src_id, cats, items, + LLInventoryModel::EXCLUDE_TRASH); + for (S32 i = 0; i < items.count(); ++i) + { + const LLViewerInventoryItem* item = items.get(i).get(); + if (item->getActualType() == LLAssetType::AT_LINK) + { + link_inventory_item(gAgent.getID(), + item->getLinkedUUID(), + dst_id, + item->getName(), + LLAssetType::AT_LINK, cb); + } + else if (item->getActualType() == LLAssetType::AT_LINK_FOLDER) + { + link_inventory_item(gAgent.getID(), + item->getLinkedUUID(), + dst_id, + item->getName(), + LLAssetType::AT_LINK_FOLDER, cb); + } + else + { + copy_inventory_item( + gAgent.getID(), + item->getPermissions().getOwner(), + item->getUUID(), + dst_id, + item->getName(), + cb); + } + } +} - // In the particular case that we're switching to a different outfit, - // create a link to the folder that we wore. +// Replace COF contents from a given outfit folder. +/* static */ void LLAppearanceManager::rebuildCOFFromOutfit(const LLUUID& category) +{ + lldebugs << "rebuildCOFFromOutfit()" << llendl; + + // Find all the wearables that are in the category's subtree. + LLInventoryModel::item_array_t items; + getCOFValidDescendents(category, items); + + if( items.count() == 0) + { + LLNotifications::instance().add("CouldNotPutOnOutfit"); + return; + } + + const LLUUID ¤t_outfit_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_CURRENT_OUTFIT); + // Processes that take time should show the busy cursor + //inc_busy_count(); + + LLInventoryModel::cat_array_t cof_cats; + LLInventoryModel::item_array_t cof_items; + gInventory.collectDescendents(current_outfit_id, cof_cats, cof_items, + LLInventoryModel::EXCLUDE_TRASH); + + if (items.count() > 0) + { + // Remove all current outfit folder links since we're now replacing the contents. + for (S32 i = 0; i < cof_items.count(); ++i) + { + gInventory.purgeObject(cof_items.get(i)->getUUID()); + } + } + + LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy; + LLAppearanceManager::shallowCopyCategory(category, current_outfit_id, link_waiter); + + // Create a link to the outfit that we wore. LLViewerInventoryCategory* catp = gInventory.getCategory(category); - if (!append && catp && catp->getPreferredType() == LLAssetType::AT_OUTFIT) + if (catp && catp->getPreferredType() == LLAssetType::AT_OUTFIT) { link_inventory_item(gAgent.getID(), category, current_outfit_id, catp->getName(), LLAssetType::AT_LINK_FOLDER, LLPointer<LLInventoryCallback>(NULL)); @@ -621,7 +700,7 @@ void LLAppearanceManager::updateAgentWearables(LLWearableHoldingPattern* holder, //If the folder doesn't contain only gestures, take off all attachments. if (!(wear_items.count() == 0 && obj_items.count() == 0 && gest_items.count() > 0) ) { - LLAgentWearables::userRemoveAllAttachments(NULL); + LLAgentWearables::userRemoveAllAttachments(); } if( obj_items.count() > 0 ) @@ -635,6 +714,21 @@ void LLAppearanceManager::updateAgentWearables(LLWearableHoldingPattern* holder, } } +/* static */ +void LLAppearanceManager::getCOFValidDescendents(const LLUUID& category, + LLInventoryModel::item_array_t& items) +{ + LLInventoryModel::cat_array_t cats; + LLFindCOFValidItems is_cof_valid; + bool follow_folder_links = false; + gInventory.collectDescendentsIf(category, + cats, + items, + LLInventoryModel::EXCLUDE_TRASH, + is_cof_valid, + follow_folder_links); +} + /* static */ void LLAppearanceManager::getUserDescendents(const LLUUID& category, LLInventoryModel::item_array_t& wear_items, LLInventoryModel::item_array_t& obj_items, @@ -708,14 +802,13 @@ void LLAppearanceManager::wearInventoryCategoryOnAvatar( LLInventoryCategory* ca lldebugs << "wearInventoryCategoryOnAvatar( " << category->getName() << " )" << llendl; - bool follow_folder_links = (category->getPreferredType() == LLAssetType::AT_CURRENT_OUTFIT || category->getPreferredType() == LLAssetType::AT_OUTFIT ); if( gFloaterCustomize ) { - gFloaterCustomize->askToSaveIfDirty(boost::bind(LLAppearanceManager::changeOutfit, _1, category->getUUID(), append, follow_folder_links)); + gFloaterCustomize->askToSaveIfDirty(boost::bind(LLAppearanceManager::changeOutfit, _1, category->getUUID(), append)); } else { - LLAppearanceManager::changeOutfit(TRUE, category->getUUID(), append, follow_folder_links ); + LLAppearanceManager::changeOutfit(TRUE, category->getUUID(), append); } } @@ -767,18 +860,43 @@ void LLAppearanceManager::wearOutfitByName(const std::string& name) //dec_busy_count(); } +/* static */ void LLAppearanceManager::wearItem( LLInventoryItem* item, bool do_update ) { - // BAP add check for already in COF. - LLPointer<LLInventoryCallback> cb = do_update ? new ModifiedCOFCallback : 0; - link_inventory_item( gAgent.getID(), - item->getLinkedUUID(), - getCOF(), - item->getName(), - LLAssetType::AT_LINK, - cb); + LLInventoryModel::cat_array_t cat_array; + LLInventoryModel::item_array_t item_array; + gInventory.collectDescendents(LLAppearanceManager::getCOF(), + cat_array, + item_array, + LLInventoryModel::EXCLUDE_TRASH); + bool linked_already = false; + for (S32 i=0; i<item_array.count(); i++) + { + const LLInventoryItem* inv_item = item_array.get(i).get(); + if (inv_item->getLinkedUUID() == item->getLinkedUUID()) + { + linked_already = true; + break; + } + } + if (linked_already) + { + if (do_update) + LLAppearanceManager::updateAppearanceFromCOF(); + } + else + { + LLPointer<LLInventoryCallback> cb = do_update ? new ModifiedCOFCallback : 0; + link_inventory_item( gAgent.getID(), + item->getLinkedUUID(), + getCOF(), + item->getName(), + LLAssetType::AT_LINK, + cb); + } } +/* static */ void LLAppearanceManager::wearEnsemble( LLInventoryCategory* cat, bool do_update ) { // BAP add check for already in COF. @@ -791,3 +909,25 @@ void LLAppearanceManager::wearEnsemble( LLInventoryCategory* cat, bool do_update cb); } +/* static */ +void LLAppearanceManager::removeItemLinks(LLUUID& item_id, bool do_update) +{ + LLInventoryModel::cat_array_t cat_array; + LLInventoryModel::item_array_t item_array; + gInventory.collectDescendents(LLAppearanceManager::getCOF(), + cat_array, + item_array, + LLInventoryModel::EXCLUDE_TRASH); + for (S32 i=0; i<item_array.count(); i++) + { + const LLInventoryItem* item = item_array.get(i).get(); + if (item->getLinkedUUID() == item_id) + { + gInventory.purgeObject(item_array.get(i)->getUUID()); + } + } + if (do_update) + { + LLAppearanceManager::updateAppearanceFromCOF(); + } +} diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 89b95833d7b545bbcc375e49fdca6f77a6090301..2aa10e0beaca248ac3eb522cbe4a774d30d092d8 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -35,6 +35,7 @@ #include "llsingleton.h" #include "llinventorymodel.h" +#include "llviewerinventory.h" class LLWearable; struct LLWearableHoldingPattern; @@ -44,20 +45,29 @@ class LLAppearanceManager: public LLSingleton<LLAppearanceManager> public: static void updateAppearanceFromCOF(); static bool needToSaveCOF(); - static void changeOutfit(bool proceed, const LLUUID& category, bool append, bool follow_folder_links); - static void updateCOFFromOutfit(const LLUUID& category, bool append, bool follow_folder_links); + static void changeOutfit(bool proceed, const LLUUID& category, bool append); + static void updateCOFFromCategory(const LLUUID& category, bool append); + static void rebuildCOFFromOutfit(const LLUUID& category); static void wearInventoryCategory(LLInventoryCategory* category, bool copy, bool append); static void wearInventoryCategoryOnAvatar(LLInventoryCategory* category, bool append); static void wearOutfitByName(const std::string& name); + static void shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id, + LLPointer<LLInventoryCallback> cb); // Add COF link to individual item. static void wearItem(LLInventoryItem* item, bool do_update = true); // Add COF link to ensemble folder. static void wearEnsemble(LLInventoryCategory* item, bool do_update = true); + static LLUUID getCOF(); + + // Remove COF entries + static void removeItemLinks(LLUUID& item_id, bool do_update = true); private: - static LLUUID getCOF(); + static void getCOFValidDescendents(const LLUUID& category, + LLInventoryModel::item_array_t& items); + static void getUserDescendents(const LLUUID& category, LLInventoryModel::item_array_t& wear_items, LLInventoryModel::item_array_t& obj_items, diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 2fad71a6869be4145051d3d91c595b5d0f090f49..7d5432904be01c1b17c77d190ac6d69fd43a7810 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -75,6 +75,7 @@ #include "llteleporthistory.h" #include "lllocationhistory.h" #include "llfasttimerview.h" + #include "llweb.h" #include "llsecondlifeurls.h" @@ -771,6 +772,7 @@ bool LLAppViewer::init() // // Initialize the window // + gGLActive = TRUE; initWindow(); // call all self-registered classes @@ -875,7 +877,7 @@ bool LLAppViewer::init() gSimFrames = (F32)gFrameCount; LLViewerJoystick::getInstance()->init(false); - + gGLActive = FALSE; if (gSavedSettings.getBOOL("QAMode") && gSavedSettings.getS32("QAModeEventHostPort") > 0) { loadEventHostModule(gSavedSettings.getS32("QAModeEventHostPort")); @@ -886,6 +888,10 @@ bool LLAppViewer::init() static LLFastTimer::DeclareTimer FTM_MESSAGES("System Messages"); static LLFastTimer::DeclareTimer FTM_SLEEP("Sleep"); +static LLFastTimer::DeclareTimer FTM_TEXTURE_CACHE("Texture Cache"); +static LLFastTimer::DeclareTimer FTM_DECODE("Image Decode"); +static LLFastTimer::DeclareTimer FTM_VFS("VFS Thread"); +static LLFastTimer::DeclareTimer FTM_PAUSE_THREADS("Pause Threads"); static LLFastTimer::DeclareTimer FTM_IDLE("Idle"); static LLFastTimer::DeclareTimer FTM_PUMP("Pump"); @@ -925,6 +931,7 @@ bool LLAppViewer::mainLoop() while (!LLApp::isExiting()) { LLFastTimer::nextFrame(); // Should be outside of any timer instances + try { pingMainloopTimeout("Main:MiscNativeWindowEvents"); @@ -934,7 +941,7 @@ bool LLAppViewer::mainLoop() LLFastTimer t2(FTM_MESSAGES); gViewerWindow->mWindow->processMiscNativeEvents(); } - + pingMainloopTimeout("Main:GatherInput"); if (gViewerWindow) @@ -1018,10 +1025,11 @@ bool LLAppViewer::mainLoop() if (!LLApp::isExiting()) { pingMainloopTimeout("Main:Display"); + gGLActive = TRUE; display(); - pingMainloopTimeout("Main:Snapshot"); LLFloaterSnapshot::update(); // take snapshots + gGLActive = FALSE; } } @@ -1081,11 +1089,24 @@ bool LLAppViewer::mainLoop() { S32 work_pending = 0; S32 io_pending = 0; - work_pending += LLAppViewer::getTextureCache()->update(1); // unpauses the texture cache thread - work_pending += LLAppViewer::getImageDecodeThread()->update(1); // unpauses the image thread - work_pending += LLAppViewer::getTextureFetch()->update(1); // unpauses the texture fetch thread - io_pending += LLVFSThread::updateClass(1); - io_pending += LLLFSThread::updateClass(1); + { + LLFastTimer ftm(FTM_TEXTURE_CACHE); + work_pending += LLAppViewer::getTextureCache()->update(1); // unpauses the texture cache thread + } + { + LLFastTimer ftm(FTM_DECODE); + work_pending += LLAppViewer::getImageDecodeThread()->update(1); // unpauses the image thread + } + { + LLFastTimer ftm(FTM_DECODE); + work_pending += LLAppViewer::getTextureFetch()->update(1); // unpauses the texture fetch thread + } + + { + LLFastTimer ftm(FTM_VFS); + io_pending += LLVFSThread::updateClass(1); + } + if (io_pending > 1000) { ms_sleep(llmin(io_pending/100,100)); // give the vfs some time to catch up @@ -1111,6 +1132,8 @@ bool LLAppViewer::mainLoop() // if (LLThread::processorCount()==1) //pause() should only be required when on a single processor client... if (run_multiple_threads == FALSE) { + LLFastTimer ftm(FTM_PAUSE_THREADS); + LLAppViewer::getTextureCache()->pause(); LLAppViewer::getImageDecodeThread()->pause(); // LLAppViewer::getTextureFetch()->pause(); // Don't pause the fetch (IO) thread @@ -3342,10 +3365,13 @@ void LLAppViewer::idle() if (LLStartUp::getStartupState() < STATE_STARTED) { // Skip rest if idle startup returns false (essentially, no world yet) + gGLActive = TRUE; if (!idle_startup()) { + gGLActive = FALSE; return; } + gGLActive = FALSE; } @@ -3444,10 +3470,8 @@ void LLAppViewer::idle() // floating throughout the various object lists. // - stop_glerror(); idleNetwork(); - stop_glerror(); - + // Check for away from keyboard, kick idle agents. idle_afk_check(); @@ -3537,8 +3561,6 @@ void LLAppViewer::idle() LLHUDManager::getInstance()->sendEffects(); } - stop_glerror(); - //////////////////////////////////////// // // Unpack layer data that we've received @@ -3594,7 +3616,6 @@ void LLAppViewer::idle() gWindVec.setVec(0.0f, 0.0f, 0.0f); } } - stop_glerror(); ////////////////////////////////////// // @@ -3609,7 +3630,6 @@ void LLAppViewer::idle() LLWorld::getInstance()->updateParticles(); } - stop_glerror(); if (LLViewerJoystick::getInstance()->getOverrideCamera()) { @@ -3654,10 +3674,9 @@ void LLAppViewer::idle() // forcibly quit if it has taken too long if (mQuitRequested) { + gGLActive = TRUE; idleShutdown(); } - - stop_glerror(); } void LLAppViewer::idleShutdown() @@ -3807,7 +3826,6 @@ void LLAppViewer::idleNetwork() llpushcallstacks ; LLTimer check_message_timer; // Read all available packets from network - stop_glerror(); const S64 frame_count = gFrameCount; // U32->S64 F32 total_time = 0.0f; @@ -3820,8 +3838,7 @@ void LLAppViewer::idleNetwork() // server going down, so this is OK. break; } - stop_glerror(); - + total_decoded++; gPacketsIn++; @@ -3861,9 +3878,7 @@ void LLAppViewer::idleNetwork() // we want to clear the control after sending out all necessary agent updates gAgent.resetControlFlags(); - stop_glerror(); - - + // Decode enqueued messages... S32 remaining_possible_decodes = MESSAGE_MAX_PER_FRAME - total_decoded; diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 98d7ab712b7997821257ec8e4fe493c6d473e7f4..12cff327803560a8ab6c62eab23c6f62aad04994 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -245,6 +245,8 @@ int APIENTRY WINMAIN(HINSTANCE hInstance, } #endif + gGLActive = TRUE; + viewer_app_ptr->cleanup(); #if WINDOWS_CRT_MEM_CHECKS diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 42ed783f94083879aeed98640ce804b417ed17bf..a2dc97f7f5cb1e2db108429085581684ee7d6e56 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -1079,8 +1079,9 @@ LLTalkButton::Params::Params() speak_button.tab_stop(false); speak_button.is_toggle(true); speak_button.picture_style(true); - speak_button.image_selected(LLUI::getUIImage("SegmentedBtn_Left_Selected")); - speak_button.image_unselected(LLUI::getUIImage("SegmentedBtn_Left_Off")); + // Use default button art. JC + //speak_button.image_selected(LLUI::getUIImage("SegmentedBtn_Left_Selected")); + //speak_button.image_unselected(LLUI::getUIImage("SegmentedBtn_Left_Off")); show_button.name("right"); show_button.label(LLStringUtil::null); diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp index bd5b9c30a21b7758f74c593d7a11bd70caf2b5a3..24a57cb0c1b27725652a549a18e2af790b02b089 100644 --- a/indra/newview/lldebugview.cpp +++ b/indra/newview/lldebugview.cpp @@ -102,6 +102,17 @@ LLDebugView::LLDebugView(const LLDebugView::Params& p) gTextureView = LLUICtrlFactory::create<LLTextureView>(tvp); addChild(gTextureView); //gTextureView->reshape(r.getWidth(), r.getHeight(), TRUE); +#if !LL_RELEASE_FOR_DOWNLOAD + r.set(150, rect.getHeight() - 50, 900 + LLImageGL::sTextureLoadedCounter.size() * 30, 100); + LLTextureSizeView::Params tsvp; + tsvp.name("gTextureSizeView"); + tsvp.rect(r); + tsvp.follows.flags(FOLLOWS_BOTTOM|FOLLOWS_LEFT); + tsvp.visible(false); + gTextureSizeView = LLUICtrlFactory::create<LLTextureSizeView>(tsvp); + addChild(gTextureSizeView); +#endif + } @@ -110,5 +121,6 @@ LLDebugView::~LLDebugView() // These have already been deleted. Fix the globals appropriately. gDebugView = NULL; gTextureView = NULL; + gTextureSizeView = NULL; } diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index 7cc78aff928466300a39889de1640ac30aeb1413..4cf12a1533d0792637eb30b0015bafff8ca2b224 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -678,6 +678,11 @@ BOOL LLDrawable::updateMoveDamped() void LLDrawable::updateDistance(LLCamera& camera, bool force_update) { + if (LLViewerCamera::sCurCameraID != LLViewerCamera::CAMERA_WORLD) + { + llerrs << "WTF?" << llendl; + } + //switch LOD with the spatial group to avoid artifacts //LLSpatialGroup* sg = getSpatialGroup(); @@ -695,19 +700,22 @@ void LLDrawable::updateDistance(LLCamera& camera, bool force_update) pos += volume->getRegion()->getOriginAgent(); } - for (S32 i = 0; i < getNumFaces(); i++) + if (isState(LLDrawable::HAS_ALPHA)) { - LLFace* facep = getFace(i); - if (force_update || facep->getPoolType() == LLDrawPool::POOL_ALPHA) + for (S32 i = 0; i < getNumFaces(); i++) { - LLVector3 box = (facep->mExtents[1] - facep->mExtents[0]) * 0.25f; - LLVector3 v = (facep->mCenterLocal-camera.getOrigin()); - LLVector3 at = camera.getAtAxis(); - for (U32 j = 0; j < 3; j++) + LLFace* facep = getFace(i); + if (force_update || facep->getPoolType() == LLDrawPool::POOL_ALPHA) { - v.mV[j] -= box.mV[j] * at.mV[j]; + LLVector3 box = (facep->mExtents[1] - facep->mExtents[0]) * 0.25f; + LLVector3 v = (facep->mCenterLocal-camera.getOrigin()); + const LLVector3& at = camera.getAtAxis(); + for (U32 j = 0; j < 3; j++) + { + v.mV[j] -= box.mV[j] * at.mV[j]; + } + facep->mDistance = v * camera.getAtAxis(); } - facep->mDistance = v * camera.getAtAxis(); } } } @@ -1002,8 +1010,8 @@ BOOL LLDrawable::isVisible() const // Spatial Partition Bridging Drawable //======================================= -LLSpatialBridge::LLSpatialBridge(LLDrawable* root, U32 data_mask) -: LLSpatialPartition(data_mask, FALSE) +LLSpatialBridge::LLSpatialBridge(LLDrawable* root, BOOL render_by_group, U32 data_mask) +: LLSpatialPartition(data_mask, render_by_group, FALSE) { mDrawable = root; root->setSpatialBridge(this); @@ -1241,7 +1249,9 @@ void LLSpatialBridge::setVisible(LLCamera& camera_in, std::vector<LLDrawable*>* (camera_in.AABBInFrustumNoFarClip(center, size) && AABBSphereIntersect(mExtents[0], mExtents[1], camera_in.getOrigin(), camera_in.mFrustumCornerDist))) { - if (!LLPipeline::sImpostorRender && LLPipeline::calcPixelArea(center, size, camera_in) < FORCE_INVISIBLE_AREA) + if (!LLPipeline::sImpostorRender && + !LLPipeline::sShadowRender && + LLPipeline::calcPixelArea(center, size, camera_in) < FORCE_INVISIBLE_AREA) { return; } @@ -1280,12 +1290,25 @@ void LLSpatialBridge::updateDistance(LLCamera& camera_in, bool force_update) return; } - LLCamera camera = transformCamera(camera_in); - - mDrawable->updateDistance(camera, force_update); - if (mDrawable->getVObj()) { + if (mDrawable->getVObj()->isAttachment()) + { + LLDrawable* parent = mDrawable->getParent(); + if (parent && parent->getVObj()) + { + LLVOAvatar* av = parent->getVObj()->asAvatar(); + if (av && av->isImpostor()) + { + return; + } + } + } + + LLCamera camera = transformCamera(camera_in); + + mDrawable->updateDistance(camera, force_update); + LLViewerObject::const_child_list_t& child_list = mDrawable->getVObj()->getChildren(); for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); iter != child_list.end(); iter++) @@ -1427,9 +1450,8 @@ void LLDrawable::updateFaceSize(S32 idx) } LLBridgePartition::LLBridgePartition() -: LLSpatialPartition(0, TRUE) +: LLSpatialPartition(0, FALSE, 0) { - mRenderByGroup = FALSE; mDrawableType = LLPipeline::RENDER_TYPE_AVATAR; mPartitionType = LLViewerRegion::PARTITION_BRIDGE; mLODPeriod = 16; diff --git a/indra/newview/lldrawable.h b/indra/newview/lldrawable.h index c765980c30ce9e5b8f66ac61a56a7fa6e18d76c7..986440397b650a3894a678617e941ccc9fa48a3d 100644 --- a/indra/newview/lldrawable.h +++ b/indra/newview/lldrawable.h @@ -264,7 +264,8 @@ class LLDrawable : public LLRefCount BUILT = 0x08000000, FORCE_INVISIBLE = 0x10000000, // stay invis until CLEAR_INVISIBLE is set (set of orphaned) CLEAR_INVISIBLE = 0x20000000, // clear FORCE_INVISIBLE next draw frame - REBUILD_SHADOW = 0x40000000 + REBUILD_SHADOW = 0x40000000, + HAS_ALPHA = 0x80000000, } EDrawableFlags; LLXformMatrix mXform; @@ -299,7 +300,7 @@ class LLDrawable : public LLRefCount LLVector3d mPositionGroup; F64 mBinRadius; S32 mGeneration; - + LLVector3 mCurrentScale; static U32 sCurVisible; // Counter for what value of mVisible means currently visible diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp index 3a064a4e7d836f65f101bd3ed9552d8198ae6686..976f02eeb7f8262b90ebbab32362a1ad59bcf876 100644 --- a/indra/newview/lldrawpool.cpp +++ b/indra/newview/lldrawpool.cpp @@ -279,7 +279,7 @@ S32 LLFacePool::drawLoopSetTex(face_array_t& face_list, S32 stage) iter != face_list.end(); iter++) { LLFace *facep = *iter; - gGL.getTexUnit(stage)->bind(facep->getTexture()) ; + gGL.getTexUnit(stage)->bind(facep->getTexture()); gGL.getTexUnit(0)->activate(); res += facep->renderIndexed(); } @@ -474,14 +474,17 @@ void LLRenderPass::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture) { if (params.mTexture.notNull()) { - gGL.getTexUnit(0)->bind(params.mTexture) ; + gGL.getTexUnit(0)->bind(params.mTexture.get()); if (params.mTextureMatrix) { glMatrixMode(GL_TEXTURE); glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix); gPipeline.mTextureMatrixOps++; } - params.mTexture->addTextureStats(params.mVSize); + if(params.mTexture.notNull())//will be removed. + { + params.mTexture->addTextureStats(params.mVSize); + } } else { diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h index 966de41df3cd50412a5e80fa2bc64edb0e5a4902..67870c10e93112486dfac9a3d54db09611599ab7 100644 --- a/indra/newview/lldrawpool.h +++ b/indra/newview/lldrawpool.h @@ -61,12 +61,17 @@ class LLDrawPool POOL_GRASS, POOL_FULLBRIGHT, POOL_BUMP, - POOL_INVISIBLE, + POOL_INVISIBLE, // see below * POOL_AVATAR, POOL_WATER, POOL_GLOW, POOL_ALPHA, NUM_POOL_TYPES, + // * invisiprims work by rendering to the depth buffer but not the color buffer, occluding anything rendered after them + // - and the LLDrawPool types enum controls what order things are rendered in + // - so, it has absolute control over what invisprims block + // ...invisiprims being rendered in pool_invisible + // ...shiny/bump mapped objects in rendered in POOL_BUMP }; LLDrawPool(const U32 type); diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index 88f79fc1b9530dfd1fed5ded0013cbc3fba78ae9..a5a29dea7b2200d412f474e2d08223816fee440c 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -87,22 +87,23 @@ void LLDrawPoolAlpha::beginDeferredPass(S32 pass) void LLDrawPoolAlpha::endDeferredPass(S32 pass) { - gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.4f); + +} + +void LLDrawPoolAlpha::renderDeferred(S32 pass) +{ + gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.f); { LLFastTimer t(FTM_RENDER_GRASS); gDeferredTreeProgram.bind(); LLGLEnable test(GL_ALPHA_TEST); //render alpha masked objects LLRenderPass::renderTexture(LLRenderPass::PASS_ALPHA_MASK, getVertexDataMask()); + gDeferredTreeProgram.unbind(); } gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); } -void LLDrawPoolAlpha::renderDeferred(S32 pass) -{ - -} - S32 LLDrawPoolAlpha::getNumPostDeferredPasses() { @@ -260,6 +261,8 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask) { BOOL initialized_lighting = FALSE; BOOL light_enabled = TRUE; + S32 diffuse_channel = 0; + //BOOL is_particle = FALSE; BOOL use_shaders = (LLPipeline::sUnderWaterRender && gPipeline.canUseVertexShaders()) || gPipeline.canUseWindLightShadersOnObjects(); @@ -290,19 +293,6 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask) LLRenderPass::applyModelMatrix(params); - if (params.mTexture.notNull()) - { - gGL.getTexUnit(0)->activate(); - gGL.getTexUnit(0)->bind(params.mTexture) ; - params.mTexture->addTextureStats(params.mVSize); - if (params.mTextureMatrix) - { - glMatrixMode(GL_TEXTURE); - glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix); - gPipeline.mTextureMatrixOps++; - } - } - if (params.mFullbright) { // Turn off lighting if it hasn't already been so. @@ -343,11 +333,13 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask) if (deferred_render && current_shader != NULL) { gPipeline.unbindDeferredShader(*current_shader); + diffuse_channel = 0; } current_shader = target_shader; if (deferred_render) { gPipeline.bindDeferredShader(*current_shader); + diffuse_channel = current_shader->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP); } else { @@ -356,11 +348,12 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask) } else if (!use_shaders && current_shader != NULL) { - LLGLSLShader::bindNoShader(); if (deferred_render) { gPipeline.unbindDeferredShader(*current_shader); + diffuse_channel = 0; } + LLGLSLShader::bindNoShader(); current_shader = NULL; } @@ -368,6 +361,24 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask) { params.mGroup->rebuildMesh(); } + + + if (params.mTexture.notNull()) + { + gGL.getTexUnit(diffuse_channel)->bind(params.mTexture.get()); + if(params.mTexture.notNull()) + { + params.mTexture->addTextureStats(params.mVSize); + } + if (params.mTextureMatrix) + { + gGL.getTexUnit(0)->activate(); + glMatrixMode(GL_TEXTURE); + glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix); + gPipeline.mTextureMatrixOps++; + } + } + params.mVertexBuffer->setBuffer(mask); params.mVertexBuffer->drawRange(LLRender::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset); gPipeline.addTrianglesDrawn(params.mCount/3); @@ -382,6 +393,15 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask) } } + if (deferred_render && current_shader != NULL) + { + gPipeline.unbindDeferredShader(*current_shader); + LLVertexBuffer::unbind(); + LLGLState::checkStates(); + LLGLState::checkTextureChannels(); + LLGLState::checkClientArrays(); + } + if (!light_enabled) { gPipeline.enableLightsDynamic(); diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp index 565f906a3b940547a26d222b797d90eacc71b8a3..546b60f286777c35aee462b14597b5bd329d88f5 100644 --- a/indra/newview/lldrawpoolavatar.cpp +++ b/indra/newview/lldrawpoolavatar.cpp @@ -92,6 +92,7 @@ BOOL gAvatarEmbossBumpMap = FALSE; static BOOL sRenderingSkinned = FALSE; S32 normal_channel = -1; S32 specular_channel = -1; +S32 diffuse_channel = -1; static LLFastTimer::DeclareTimer FTM_SHADOW_AVATAR("Avatar Shadow"); @@ -388,6 +389,7 @@ void LLDrawPoolAvatar::beginFootShadow() } gPipeline.enableLightsFullbright(LLColor4(1,1,1,1)); + diffuse_channel = 0; } void LLDrawPoolAvatar::endFootShadow() @@ -440,7 +442,8 @@ void LLDrawPoolAvatar::beginDeferredImpostor() normal_channel = sVertexProgram->enableTexture(LLViewerShaderMgr::DEFERRED_NORMAL); specular_channel = sVertexProgram->enableTexture(LLViewerShaderMgr::SPECULAR_MAP); - + diffuse_channel = sVertexProgram->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP); + sVertexProgram->bind(); } @@ -449,6 +452,7 @@ void LLDrawPoolAvatar::endDeferredImpostor() sShaderLevel = mVertexShaderLevel; sVertexProgram->disableTexture(LLViewerShaderMgr::DEFERRED_NORMAL); sVertexProgram->disableTexture(LLViewerShaderMgr::SPECULAR_MAP); + sVertexProgram->disableTexture(LLViewerShaderMgr::DIFFUSE_MAP); sVertexProgram->unbind(); gGL.getTexUnit(0)->activate(); } @@ -685,7 +689,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass) avatarp->mImpostor.bindTexture(1, specular_channel); } } - avatarp->renderImpostor(); + avatarp->renderImpostor(LLColor4U(255,255,255,255), diffuse_channel); } else if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_FOOT_SHADOWS) && !LLPipeline::sRenderDeferred) { diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp index 331ba67d36c432cc36314b4475570a93ab3843fb..e087feeaecf4c13ff55318b8604e968e4b351ec1 100644 --- a/indra/newview/lldrawpoolbump.cpp +++ b/indra/newview/lldrawpoolbump.cpp @@ -309,8 +309,8 @@ void LLDrawPoolBump::endRenderPass(S32 pass) void LLDrawPoolBump::beginShiny(bool invisible) { LLFastTimer t(FTM_RENDER_SHINY); - if (!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)|| - invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY)) + if ((!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY))|| + (invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))) { return; } @@ -384,8 +384,8 @@ void LLDrawPoolBump::beginShiny(bool invisible) void LLDrawPoolBump::renderShiny(bool invisible) { LLFastTimer t(FTM_RENDER_SHINY); - if (!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)|| - invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY)) + if ((!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY))|| + (invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))) { return; } @@ -411,8 +411,8 @@ void LLDrawPoolBump::renderShiny(bool invisible) void LLDrawPoolBump::endShiny(bool invisible) { LLFastTimer t(FTM_RENDER_SHINY); - if (!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)|| - invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY)) + if ((!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY))|| + (invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))) { return; } @@ -572,6 +572,8 @@ BOOL LLDrawPoolBump::bindBumpMap(LLDrawInfo& params, S32 channel) LLViewerTexture* bump = NULL; U8 bump_code = params.mBump; + + //Note: texture atlas does not support bump texture now. LLViewerFetchedTexture* tex = LLViewerTextureManager::staticCastToFetchedTexture(params.mTexture) ; if(!tex) { @@ -831,7 +833,7 @@ void LLBumpImageList::updateImages() if( image ) { BOOL destroy = TRUE; - if( image->hasValidGLTexture()) + if( image->hasGLTexture()) { if( image->getBoundRecently() ) { @@ -858,7 +860,7 @@ void LLBumpImageList::updateImages() if( image ) { BOOL destroy = TRUE; - if( image->hasValidGLTexture()) + if( image->hasGLTexture()) { if( image->getBoundRecently() ) { @@ -963,7 +965,7 @@ void LLBumpImageList::onSourceStandardLoaded( BOOL success, LLViewerFetchedTextu LLPointer<LLImageRaw> nrm_image = new LLImageRaw(src->getWidth(), src->getHeight(), 4); generateNormalMapFromAlpha(src, nrm_image); src_vi->setExplicitFormat(GL_RGBA, GL_RGBA); - src_vi->createGLTexture(0, nrm_image); + src_vi->createGLTexture(src_vi->getDiscardLevel(), nrm_image); } } @@ -1147,14 +1149,14 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLI if (!LLPipeline::sRenderDeferred) { bump->setExplicitFormat(GL_ALPHA8, GL_ALPHA); - bump->createGLTexture(0, dst_image); + bump->createGLTexture(bump->getDiscardLevel(), dst_image); } else { LLPointer<LLImageRaw> nrm_image = new LLImageRaw(src->getWidth(), src->getHeight(), 4); generateNormalMapFromAlpha(src, nrm_image); bump->setExplicitFormat(GL_RGBA, GL_RGBA); - bump->createGLTexture(0, nrm_image); + bump->createGLTexture(bump->getDiscardLevel(), nrm_image); } @@ -1216,7 +1218,7 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture) if (params.mTexture.notNull()) { gGL.getTexUnit(diffuse_channel)->bind(params.mTexture) ; - params.mTexture->addTextureStats(params.mVSize); + params.mTexture->addTextureStats(params.mVSize); } else { diff --git a/indra/newview/lldrawpoolsimple.cpp b/indra/newview/lldrawpoolsimple.cpp index 331536fdca705d0c9abd32b57f14f7f4330fb520..ca7a1b47c2cacb3754d3a82ccec361ac239b7e8a 100644 --- a/indra/newview/lldrawpoolsimple.cpp +++ b/indra/newview/lldrawpoolsimple.cpp @@ -47,6 +47,9 @@ static LLGLSLShader* simple_shader = NULL; static LLGLSLShader* fullbright_shader = NULL; +static LLFastTimer::DeclareTimer FTM_RENDER_SIMPLE_DEFERRED("Deferred Simple"); +static LLFastTimer::DeclareTimer FTM_RENDER_GRASS_DEFERRED("Deferred Grass"); + void LLDrawPoolGlow::render(S32 pass) { LLFastTimer t(FTM_RENDER_GLOW); @@ -156,13 +159,13 @@ void LLDrawPoolSimple::render(S32 pass) void LLDrawPoolSimple::beginDeferredPass(S32 pass) { - LLFastTimer t(FTM_RENDER_SIMPLE); + LLFastTimer t(FTM_RENDER_SIMPLE_DEFERRED); gDeferredDiffuseProgram.bind(); } void LLDrawPoolSimple::endDeferredPass(S32 pass) { - LLFastTimer t(FTM_RENDER_SIMPLE); + LLFastTimer t(FTM_RENDER_SIMPLE_DEFERRED); LLRenderPass::endRenderPass(pass); gDeferredDiffuseProgram.unbind(); @@ -174,7 +177,7 @@ void LLDrawPoolSimple::renderDeferred(S32 pass) LLGLDisable alpha_test(GL_ALPHA_TEST); { //render simple - LLFastTimer t(FTM_RENDER_SIMPLE); + LLFastTimer t(FTM_RENDER_SIMPLE_DEFERRED); renderTexture(LLRenderPass::PASS_SIMPLE, getVertexDataMask()); } } @@ -258,10 +261,10 @@ void LLDrawPoolGrass::endDeferredPass(S32 pass) void LLDrawPoolGrass::renderDeferred(S32 pass) { - gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); + gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.f); { - LLFastTimer t(FTM_RENDER_GRASS); + LLFastTimer t(FTM_RENDER_GRASS_DEFERRED); gDeferredTreeProgram.bind(); LLGLEnable test(GL_ALPHA_TEST); //render grass diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp index 345dd6bb8445fbc99df56d0960cc970d739f6ea3..790e75cfaae1ac76057786322793a48af55acdaa 100644 --- a/indra/newview/lldrawpoolterrain.cpp +++ b/indra/newview/lldrawpoolterrain.cpp @@ -77,7 +77,7 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) : GL_ALPHA8, GL_ALPHA, LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb")); - gGL.getTexUnit(0)->bind(mAlphaRampImagep); + //gGL.getTexUnit(0)->bind(mAlphaRampImagep.get()); mAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP); m2DAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient_2d.j2c", @@ -86,12 +86,12 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) : GL_ALPHA8, GL_ALPHA, LLUUID("38b86f85-2575-52a9-a531-23108d8da837")); - gGL.getTexUnit(0)->bind(m2DAlphaRampImagep); + //gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get()); m2DAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP); mTexturep->setBoostLevel(LLViewerTexture::BOOST_TERRAIN); - gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); + //gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); } LLDrawPoolTerrain::~LLDrawPoolTerrain() diff --git a/indra/newview/lldrawpooltree.cpp b/indra/newview/lldrawpooltree.cpp index 5cb1fcb635bc145c5e14f10d934690b53bbf1cb4..8d2cbc583c1df113161898aecc85adc49a3b0086 100644 --- a/indra/newview/lldrawpooltree.cpp +++ b/indra/newview/lldrawpooltree.cpp @@ -52,7 +52,6 @@ LLDrawPoolTree::LLDrawPoolTree(LLViewerTexture *texturep) : LLFacePool(POOL_TREE), mTexturep(texturep) { - gGL.getTexUnit(0)->bind(mTexturep); mTexturep->setAddressMode(LLTexUnit::TAM_WRAP); } @@ -138,7 +137,7 @@ void LLDrawPoolTree::endRenderPass(S32 pass) void LLDrawPoolTree::beginDeferredPass(S32 pass) { LLFastTimer t(FTM_RENDER_TREES); - gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); + gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.f); shader = &gDeferredTreeProgram; shader->bind(); @@ -164,6 +163,9 @@ void LLDrawPoolTree::beginShadowPass(S32 pass) { LLFastTimer t(FTM_SHADOW_TREE); gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); + glPolygonOffset(gSavedSettings.getF32("RenderDeferredTreeShadowOffset"), + gSavedSettings.getF32("RenderDeferredTreeShadowBias")); + gDeferredShadowProgram.bind(); } @@ -176,7 +178,11 @@ void LLDrawPoolTree::endShadowPass(S32 pass) { LLFastTimer t(FTM_SHADOW_TREE); gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); - gDeferredShadowProgram.unbind(); + + glPolygonOffset(gSavedSettings.getF32("RenderDeferredSpotShadowOffset"), + gSavedSettings.getF32("RenderDeferredSpotShadowBias")); + + //gDeferredShadowProgram.unbind(); } @@ -247,7 +253,7 @@ void LLDrawPoolTree::renderTree(BOOL selecting) LLGLState normalize(GL_NORMALIZE, TRUE); // Bind the texture for this tree. - gGL.getTexUnit(sDiffTex)->bind(mTexturep); + gGL.getTexUnit(sDiffTex)->bind(mTexturep.get()); U32 indices_drawn = 0; diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp index fd4dc123d5fd70771ccca4ffa519873cd59d8583..f56359afc36dc23b467f4e96f03966316a3a39a4 100644 --- a/indra/newview/lldrawpoolwater.cpp +++ b/indra/newview/lldrawpoolwater.cpp @@ -136,6 +136,19 @@ void LLDrawPoolWater::endPostDeferredPass(S32 pass) deferred_render = FALSE; } +//=============================== +//DEFERRED IMPLEMENTATION +//=============================== +void LLDrawPoolWater::renderDeferred(S32 pass) +{ + LLFastTimer t(FTM_RENDER_WATER); + deferred_render = TRUE; + shade(); + deferred_render = FALSE; +} + +//========================================= + void LLDrawPoolWater::render(S32 pass) { LLFastTimer ftm(FTM_RENDER_WATER); @@ -337,7 +350,10 @@ void LLDrawPoolWater::renderReflection(LLFace* face) void LLDrawPoolWater::shade() { - gGL.setColorMask(true, true); + if (!deferred_render) + { + gGL.setColorMask(true, true); + } LLVOSky *voskyp = gSky.mVOSkyp; @@ -400,6 +416,15 @@ void LLDrawPoolWater::shade() shader = &gWaterProgram; } + if (deferred_render) + { + gPipeline.bindDeferredShader(*shader); + } + else + { + shader->bind(); + } + sTime = (F32)LLFrameTimer::getElapsedSeconds()*0.5f; S32 reftex = shader->enableTexture(LLViewerShaderMgr::WATER_REFTEX); @@ -435,15 +460,6 @@ void LLDrawPoolWater::shade() S32 screentex = shader->enableTexture(LLViewerShaderMgr::WATER_SCREENTEX); - if (deferred_render) - { - gPipeline.bindDeferredShader(*shader); - } - else - { - shader->bind(); - } - if (screentex > -1) { shader->uniform4fv(LLViewerShaderMgr::WATER_FOGCOLOR, 1, sWaterFogColor.mV); @@ -547,8 +563,15 @@ void LLDrawPoolWater::shade() { //smash background faces to far clip plane if (water->getIsEdgePatch()) { - LLGLClampToFarClip far_clip(glh_get_current_projection()); - face->renderIndexed(); + if (deferred_render) + { + face->renderIndexed(); + } + else + { + LLGLClampToFarClip far_clip(glh_get_current_projection()); + face->renderIndexed(); + } } else { @@ -577,7 +600,10 @@ void LLDrawPoolWater::shade() gGL.getTexUnit(0)->activate(); gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE); - gGL.setColorMask(true, false); + if (!deferred_render) + { + gGL.setColorMask(true, false); + } } diff --git a/indra/newview/lldrawpoolwater.h b/indra/newview/lldrawpoolwater.h index e28ac1cfaba1e937a073bbe82090949643623dad..68a8172dd04abcd87aafd7a286b79be9978e1f6a 100644 --- a/indra/newview/lldrawpoolwater.h +++ b/indra/newview/lldrawpoolwater.h @@ -71,10 +71,12 @@ class LLDrawPoolWater: public LLFacePool /*virtual*/ LLDrawPool *instancePool(); static void restoreGL(); - /*virtual*/ S32 getNumPostDeferredPasses() { return getNumPasses(); } + /*virtual*/ S32 getNumPostDeferredPasses() { return 0; } //getNumPasses(); } /*virtual*/ void beginPostDeferredPass(S32 pass); /*virtual*/ void endPostDeferredPass(S32 pass); /*virtual*/ void renderPostDeferred(S32 pass) { render(pass); } + /*virtual*/ S32 getNumDeferredPasses() { return 1; } + /*virtual*/ void renderDeferred(S32 pass = 0); /*virtual*/ S32 getNumPasses(); /*virtual*/ void render(S32 pass = 0); diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index bef9e40c494f4f40c86806a2de90d6e73bd4561f..fc5b27dd1b355b887dc194ed46a538c86de13759 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -174,6 +174,9 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp) mLastGeomIndex = mGeomIndex; mLastIndicesCount = mIndicesCount; mLastIndicesIndex = mIndicesIndex; + + mAtlasInfop = NULL ; + mUsingAtlas = FALSE ; } @@ -200,12 +203,14 @@ void LLFace::destroy() if (group) { group->dirtyGeom(); + gPipeline.markRebuild(group, TRUE); } } } setDrawInfo(NULL); + removeAtlas(); mDrawablep = NULL; mVObjp = NULL; } @@ -264,6 +269,7 @@ void LLFace::setTexture(LLViewerTexture* tex) if(mTexture.notNull()) { mTexture->removeFace(this) ; + removeAtlas() ; } mTexture = tex ; @@ -447,8 +453,15 @@ void LLFace::renderForSelect(U32 data_mask) void LLFace::renderSelected(LLViewerTexture *imagep, const LLColor4& color) { - if(mDrawablep.isNull() || mVertexBuffer.isNull() || mDrawablep->getSpatialGroup() == NULL || - mDrawablep->getSpatialGroup()->isState(LLSpatialGroup::GEOM_DIRTY)) + if (mDrawablep->getSpatialGroup() == NULL) + { + return; + } + + mDrawablep->getSpatialGroup()->rebuildGeom(); + mDrawablep->getSpatialGroup()->rebuildMesh(); + + if(mDrawablep.isNull() || mVertexBuffer.isNull()) { return; } @@ -467,17 +480,10 @@ void LLFace::renderSelected(LLViewerTexture *imagep, const LLColor4& color) glMultMatrixf((GLfloat*)mDrawablep->getRegion()->mRenderMatrix.mMatrix); } - setFaceColor(color); - renderSetColor(); - + glColor4fv(color.mV); mVertexBuffer->setBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0); -#if !LL_RELEASE_FOR_DOWNLOAD - LLGLState::checkClientArrays("", LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0); -#endif mVertexBuffer->draw(LLRender::TRIANGLES, mIndicesCount, mIndicesIndex); - unsetFaceColor(); - unsetFaceColor(); gGL.popMatrix(); } } @@ -888,6 +894,13 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, { mVertexBuffer->getBinormalStrider(binormals, mGeomIndex); } + + F32 tcoord_xoffset = 0.f ; + F32 tcoord_yoffset = 0.f ; + F32 tcoord_xscale = 1.f ; + F32 tcoord_yscale = 1.f ; + BOOL in_atlas = FALSE ; + if (rebuild_tcoord) { mVertexBuffer->getTexCoord0Strider(tex_coords, mGeomIndex); @@ -895,6 +908,18 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, { mVertexBuffer->getTexCoord1Strider(tex_coords2, mGeomIndex); } + + in_atlas = isAtlasInUse() ; + if(in_atlas) + { + const LLVector2* tmp = getTexCoordOffset() ; + tcoord_xoffset = tmp->mV[0] ; + tcoord_yoffset = tmp->mV[1] ; + + tmp = getTexCoordScale() ; + tcoord_xscale = tmp->mV[0] ; + tcoord_yscale = tmp->mV[1] ; + } } if (rebuild_color) { @@ -982,7 +1007,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, 0.75f }; - if (getPoolType() != LLDrawPool::POOL_ALPHA && (LLPipeline::sRenderDeferred || LLPipeline::sRenderBump && tep->getShiny())) + if (getPoolType() != LLDrawPool::POOL_ALPHA && (LLPipeline::sRenderDeferred || (LLPipeline::sRenderBump && tep->getShiny()))) { color.mV[3] = U8 (alpha[tep->getShiny()] * 255); } @@ -1021,7 +1046,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, break; case BE_BRIGHTNESS: case BE_DARKNESS: - if( mTexture.notNull() && mTexture->hasValidGLTexture()) + if( mTexture.notNull() && mTexture->hasGLTexture()) { // Offset by approximately one texel S32 cur_discard = mTexture->getDiscardLevel(); @@ -1104,6 +1129,93 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, xform(tc, cos_ang, sin_ang, os, ot, ms, mt); } + if(in_atlas) + { + // + //manually calculate tex-coord per vertex for varying address modes. + //should be removed if shader can handle this. + // + + S32 int_part = 0 ; + switch(mTexture->getAddressMode()) + { + case LLTexUnit::TAM_CLAMP: + if(tc.mV[0] < 0.f) + { + tc.mV[0] = 0.f ; + } + else if(tc.mV[0] > 1.f) + { + tc.mV[0] = 1.f; + } + + if(tc.mV[1] < 0.f) + { + tc.mV[1] = 0.f ; + } + else if(tc.mV[1] > 1.f) + { + tc.mV[1] = 1.f; + } + break; + case LLTexUnit::TAM_MIRROR: + if(tc.mV[0] < 0.f) + { + tc.mV[0] = -tc.mV[0] ; + } + int_part = (S32)tc.mV[0] ; + if(int_part & 1) //odd number + { + tc.mV[0] = int_part + 1 - tc.mV[0] ; + } + else //even number + { + tc.mV[0] -= int_part ; + } + + if(tc.mV[1] < 0.f) + { + tc.mV[1] = -tc.mV[1] ; + } + int_part = (S32)tc.mV[1] ; + if(int_part & 1) //odd number + { + tc.mV[1] = int_part + 1 - tc.mV[1] ; + } + else //even number + { + tc.mV[1] -= int_part ; + } + break; + case LLTexUnit::TAM_WRAP: + if(tc.mV[0] > 1.f) + tc.mV[0] -= (S32)(tc.mV[0] - 0.00001f) ; + else if(tc.mV[0] < -1.f) + tc.mV[0] -= (S32)(tc.mV[0] + 0.00001f) ; + + if(tc.mV[1] > 1.f) + tc.mV[1] -= (S32)(tc.mV[1] - 0.00001f) ; + else if(tc.mV[1] < -1.f) + tc.mV[1] -= (S32)(tc.mV[1] + 0.00001f) ; + + if(tc.mV[0] < 0.f) + { + tc.mV[0] = 1.0f + tc.mV[0] ; + } + if(tc.mV[1] < 0.f) + { + tc.mV[1] = 1.0f + tc.mV[1] ; + } + break; + default: + break; + } + + tc.mV[0] = tcoord_xoffset + tcoord_xscale * tc.mV[0] ; + tc.mV[1] = tcoord_yoffset + tcoord_yscale * tc.mV[1] ; + } + + *tex_coords++ = tc; if (bump_code && mVertexBuffer->hasDataType(LLVertexBuffer::TYPE_TEXCOORD1)) @@ -1358,3 +1470,156 @@ LLVector3 LLFace::getPositionAgent() const return mCenterLocal * getRenderMatrix(); } } + +// +//atlas +// +void LLFace::removeAtlas() +{ + setAtlasInUse(FALSE) ; + mAtlasInfop = NULL ; +} + +const LLTextureAtlas* LLFace::getAtlas()const +{ + if(mAtlasInfop) + { + return mAtlasInfop->getAtlas() ; + } + return NULL ; +} + +const LLVector2* LLFace::getTexCoordOffset()const +{ + if(isAtlasInUse()) + { + return mAtlasInfop->getTexCoordOffset() ; + } + return NULL ; +} +const LLVector2* LLFace::getTexCoordScale() const +{ + if(isAtlasInUse()) + { + return mAtlasInfop->getTexCoordScale() ; + } + return NULL ; +} + +BOOL LLFace::isAtlasInUse()const +{ + return mUsingAtlas ; +} + +BOOL LLFace::canUseAtlas()const +{ + //no drawable or no spatial group, do not use atlas + if(!mDrawablep || !mDrawablep->getSpatialGroup()) + { + return FALSE ; + } + + //if bump face, do not use atlas + if(getTextureEntry() && getTextureEntry()->getBumpmap()) + { + return FALSE ; + } + + //if animated texture, do not use atlas + if(isState(TEXTURE_ANIM)) + { + return FALSE ; + } + + return TRUE ; +} + +void LLFace::setAtlasInUse(BOOL flag) +{ + //no valid atlas to use. + if(flag && (!mAtlasInfop || !mAtlasInfop->isValid())) + { + flag = FALSE ; + } + + if(!flag && !mUsingAtlas) + { + return ; + } + + // + //at this stage (flag || mUsingAtlas) is always true. + // + + //rebuild the tex coords + if(mDrawablep) + { + gPipeline.markRebuild(mDrawablep, LLDrawable::REBUILD_TCOORD); + mUsingAtlas = flag ; + } + else + { + mUsingAtlas = FALSE ; + } +} + +LLTextureAtlasSlot* LLFace::getAtlasInfo() +{ + return mAtlasInfop ; +} + +void LLFace::setAtlasInfo(LLTextureAtlasSlot* atlasp) +{ + if(mAtlasInfop != atlasp) + { + if(mAtlasInfop) + { + //llerrs << "Atlas slot changed!" << llendl ; + } + mAtlasInfop = atlasp ; + } +} + +LLViewerTexture* LLFace::getTexture() const +{ + if(isAtlasInUse()) + { + return (LLViewerTexture*)mAtlasInfop->getAtlas() ; + } + + return mTexture ; +} + +//switch to atlas or switch back to gl texture +//return TRUE if using atlas. +BOOL LLFace::switchTexture() +{ + //no valid atlas or texture + if(!mAtlasInfop || !mAtlasInfop->isValid() || !mTexture) + { + return FALSE ; + } + + if(mTexture->getTexelsInAtlas() >= (U32)mVSize || + mTexture->getTexelsInAtlas() >= mTexture->getTexelsInGLTexture()) + { + //switch to use atlas + //atlas resolution is qualified, use it. + if(!mUsingAtlas) + { + setAtlasInUse(TRUE) ; + } + } + else //if atlas not qualified. + { + //switch back to GL texture + if(mUsingAtlas && mTexture->isGLTextureCreated() && + mTexture->getDiscardLevel() < mTexture->getDiscardLevelInAtlas()) + { + setAtlasInUse(FALSE) ; + } + } + + return mUsingAtlas ; +} + diff --git a/indra/newview/llface.h b/indra/newview/llface.h index e0728fe15e35b5358bff0ec774df1eb6847ba474..cafad5706c84bfcc64c3f3d9e471fa76f69d4aff 100644 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -47,6 +47,7 @@ #include "llvertexbuffer.h" #include "llviewertexture.h" #include "lldrawable.h" +#include "lltextureatlasmanager.h" class LLFacePool; class LLVolume; @@ -55,6 +56,7 @@ class LLTextureEntry; class LLVertexProgram; class LLViewerTexture; class LLGeometryManager; +class LLTextureAtlasSlot; const F32 MIN_ALPHA_SIZE = 1024.f; const F32 MIN_TEX_ANIM_SIZE = 512.f; @@ -86,7 +88,6 @@ class LLFace U16 getGeomCount() const { return mGeomCount; } // vertex count for this face U16 getGeomIndex() const { return mGeomIndex; } // index into draw pool U16 getGeomStart() const { return mGeomIndex; } // index into draw pool - LLViewerTexture* getTexture() const { return mTexture; } void setTexture(LLViewerTexture* tex) ; LLXformMatrix* getXform() const { return mXform; } BOOL hasGeometry() const { return mGeomCount > 0; } @@ -119,7 +120,7 @@ class LLFace LLVertexBuffer* getVertexBuffer() const { return mVertexBuffer; } void setPoolType(U32 type) { mPoolType = type; } S32 getTEOffset() { return mTEOffset; } - LLViewerTexture* getTexture() { return mTexture; } + LLViewerTexture* getTexture() const; void setViewerObject(LLViewerObject* object); void setPool(LLFacePool *pool, LLViewerTexture *texturep); @@ -185,7 +186,17 @@ class LLFace void setIndicesIndex(S32 idx) { mIndicesIndex = idx; } void setDrawInfo(LLDrawInfo* draw_info); -protected: + //for atlas + LLTextureAtlasSlot* getAtlasInfo() ; + void setAtlasInUse(BOOL flag); + void setAtlasInfo(LLTextureAtlasSlot* atlasp); + BOOL isAtlasInUse()const; + BOOL canUseAtlas() const; + const LLVector2* getTexCoordScale() const ; + const LLVector2* getTexCoordOffset()const; + const LLTextureAtlas* getAtlas()const ; + void removeAtlas() ; + BOOL switchTexture() ; public: @@ -230,6 +241,10 @@ class LLFace S32 mReferenceIndex; F32 mVSize; F32 mPixelArea; + + //atlas + LLPointer<LLTextureAtlasSlot> mAtlasInfop ; + BOOL mUsingAtlas ; protected: static BOOL sSafeRenderSelect; @@ -258,7 +273,7 @@ class LLFace const LLTextureEntry* lte = lhs->getTextureEntry(); const LLTextureEntry* rte = rhs->getTextureEntry(); - if (lhs->getTexture() != rhs->getTexture()) + if(lhs->getTexture() != rhs->getTexture()) { return lhs->getTexture() < rhs->getTexture(); } diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index da602d5f271b2c71c3c2b5c7e20c2140ed3c3f69..b6d5b3717538cc4905d841692b5bbf3abf078150 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -35,32 +35,32 @@ #include "llfloaterabout.h" -#include "llsys.h" -#include "llgl.h" -#include "llui.h" // for tr() -#include "v3dmath.h" - -#include "llcurl.h" -#include "llimagej2c.h" -#include "llaudioengine.h" - +// Viewer includes +#include "llagent.h" +#include "llappviewer.h" +#include "llsecondlifeurls.h" +#include "lluictrlfactory.h" #include "llviewertexteditor.h" #include "llviewercontrol.h" -#include "llagent.h" #include "llviewerstats.h" #include "llviewerregion.h" #include "llversionviewer.h" #include "llviewerbuild.h" -#include "lluictrlfactory.h" -#include "lluri.h" #include "llweb.h" -#include "llsecondlifeurls.h" -#include "lltrans.h" -#include "llappviewer.h" -#include "llglheaders.h" -#include "llwindow.h" +// Linden library includes +#include "llaudioengine.h" #include "llbutton.h" +#include "llcurl.h" +#include "llglheaders.h" +#include "llfloater.h" +#include "llfloaterreg.h" +#include "llimagej2c.h" +#include "llsys.h" +#include "lltrans.h" +#include "lluri.h" +#include "v3dmath.h" +#include "llwindow.h" #if LL_WINDOWS #include "lldxhardware.h" @@ -75,6 +75,19 @@ static std::string get_viewer_release_notes_url(); ///---------------------------------------------------------------------------- /// Class LLFloaterAbout ///---------------------------------------------------------------------------- +class LLFloaterAbout + : public LLFloater +{ + friend class LLFloaterReg; +private: + LLFloaterAbout(const LLSD& key); + virtual ~LLFloaterAbout(); + +public: + /*virtual*/ BOOL postBuild(); + void onClickCopyToClipboard(); +}; + // Default constructor LLFloaterAbout::LLFloaterAbout(const LLSD& key) @@ -98,6 +111,9 @@ BOOL LLFloaterAbout::postBuild() LLViewerTextEditor *credits_widget = getChild<LLViewerTextEditor>("credits_editor", true); + getChild<LLUICtrl>("copy_btn")->setCommitCallback( + boost::bind(&LLFloaterAbout::onClickCopyToClipboard, this)); + // make sure that we handle hyperlinks in the About text support_widget->setParseHTML(TRUE); @@ -254,3 +270,22 @@ static std::string get_viewer_release_notes_url() return LLWeb::escapeURL(url.str()); } + +void LLFloaterAbout::onClickCopyToClipboard() +{ + LLViewerTextEditor *support_widget = + getChild<LLViewerTextEditor>("support_editor", true); + support_widget->selectAll(); + support_widget->copy(); + support_widget->deselect(); +} + +///---------------------------------------------------------------------------- +/// LLFloaterAboutUtil +///---------------------------------------------------------------------------- +void LLFloaterAboutUtil::registerFloater() +{ + LLFloaterReg::add("sl_about", "floater_about.xml", + &LLFloaterReg::build<LLFloaterAbout>); + +} diff --git a/indra/newview/llfloaterabout.h b/indra/newview/llfloaterabout.h index c15a20d54987ea2ab262e9784414436012cb5118..1092282ae205c4203f988e3e83089e5223e6179e 100644 --- a/indra/newview/llfloaterabout.h +++ b/indra/newview/llfloaterabout.h @@ -33,19 +33,9 @@ #ifndef LL_LLFLOATERABOUT_H #define LL_LLFLOATERABOUT_H -#include "llfloater.h" - -class LLFloaterAbout - : public LLFloater +namespace LLFloaterAboutUtil { - friend class LLFloaterReg; -private: - LLFloaterAbout(const LLSD& key); - virtual ~LLFloaterAbout(); - -public: - /*virtual*/ BOOL postBuild(); -}; - + void registerFloater(); +} #endif // LL_LLFLOATERABOUT_H diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp index 45a42f994d44df333be55caa37b5d8b56afe6caf..27eb12b9ccca012bce6a1b94a04e0efea014043d 100644 --- a/indra/newview/llfloaterinventory.cpp +++ b/indra/newview/llfloaterinventory.cpp @@ -569,16 +569,7 @@ void LLFloaterInventory::draw() { if (LLInventoryModel::isEverythingFetched()) { - LLLocale locale(LLLocale::USER_LOCALE); - std::ostringstream title; - //title << "Inventory"; - title<<getString("Title"); - std::string item_count_string; - LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); - title << " (" << item_count_string << getString("Items")<<")"; - //TODO:: Translate mFilterText - title << mFilterText; - setTitle(title.str()); + updateTitle(); } LLFloater::draw(); } @@ -690,22 +681,30 @@ BOOL LLFloaterInventory::handleKeyHere(KEY key, MASK mask) } -void LLFloaterInventory::changed(U32 mask) +void LLFloaterInventory::updateTitle() { - std::ostringstream title; - //title << "Inventory"; - title<<getString("Title"); + LLLocale locale(LLLocale::USER_LOCALE); + std::string item_count_string; + LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); + + LLStringUtil::format_map_t string_args; + string_args["[ITEM_COUNT]"] = item_count_string; + string_args["[FILTER]"] = mFilterText; + if (LLInventoryModel::backgroundFetchActive()) { - LLLocale locale(LLLocale::USER_LOCALE); - std::string item_count_string; - LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount()); - title << " ( "<< getString("Fetched") << item_count_string << getString("Items")<<")"; + setTitle(getString("TitleFetching", string_args)); } - //TODO:: Translate mFilterText - title << mFilterText; - setTitle(title.str()); + else + { + setTitle(getString("TitleCompleted", string_args)); + } +} + +void LLFloaterInventory::changed(U32 mask) +{ + updateTitle(); } //---------------------------------------------------------------------------- @@ -1230,7 +1229,11 @@ BOOL LLInventoryPanel::postBuild() // build everything. mInventoryObserver = new LLInventoryPanelObserver(this); mInventory->addObserver(mInventoryObserver); - rebuildViewsFor(LLUUID::null, LLInventoryObserver::ADD); + // build view of inventory if inventory ready, otherwise wait for modelChanged() callback + if (mInventory->isInventoryUsable()) + { + rebuildViewsFor(LLUUID::null, LLInventoryObserver::ADD); + } // bit of a hack to make sure the inventory is open. mFolders->openFolder(std::string("My Inventory")); @@ -1327,6 +1330,14 @@ void LLInventoryPanel::modelChanged(U32 mask) LLFastTimer t2(FTM_REFRESH); bool handled = false; + + // inventory just initialized, do complete build + if ((mask & LLInventoryObserver::ADD) && gInventory.getChangedIDs().empty()) + { + rebuildViewsFor(LLUUID::null, LLInventoryObserver::ADD); + return; + } + if(mask & LLInventoryObserver::LABEL) { handled = true; diff --git a/indra/newview/llfloaterinventory.h b/indra/newview/llfloaterinventory.h index fd61e121ead3d41c8652b0d4292657fa78c11f3c..a40efe020bf1cdb705b6b7071e8e80bceb5dccaf 100644 --- a/indra/newview/llfloaterinventory.h +++ b/indra/newview/llfloaterinventory.h @@ -291,6 +291,9 @@ friend class LLFloaterInventoryFinder; LLSaveFolderState* mSavedFolderState; std::string mFilterText; + +private: + void updateTitle(); }; class LLSelectFirstFilteredItem : public LLFolderViewFunctor diff --git a/indra/newview/llfloaterpostcard.cpp b/indra/newview/llfloaterpostcard.cpp index a27070de3930b3e585295391f9c72fbf43269b78..fbc0ff3cf57b827bcac34568c8c6eb9cfef194a7 100644 --- a/indra/newview/llfloaterpostcard.cpp +++ b/indra/newview/llfloaterpostcard.cpp @@ -148,11 +148,11 @@ void LLFloaterPostcard::draw() F32 ratio = (F32)mJPEGImage->getWidth() / (F32)mJPEGImage->getHeight(); if ((F32)rect.getWidth() / (F32)rect.getHeight() >= ratio) { - rect.mRight = (S32)((F32)rect.mLeft + ((F32)rect.getHeight() * ratio)); + rect.mRight = LLRect::tCoordType((F32)rect.mLeft + ((F32)rect.getHeight() * ratio)); } else { - rect.mBottom = (S32)((F32)rect.mTop - ((F32)rect.getWidth() / ratio)); + rect.mBottom = LLRect::tCoordType((F32)rect.mTop - ((F32)rect.getWidth() / ratio)); } { gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 2dc96d1fb38879b8379c64ddc229122f952ea694..c197c78a415c86dd9deec5f16605f770ec87d521 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -233,10 +233,6 @@ void handleNameTagOptionChanged(const LLSD& newvalue) { gSavedSettings.setBOOL("SmallAvatarNames", TRUE); } - else - { - gSavedSettings.setBOOL("SmallAvatarNames", FALSE); - } } bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater) @@ -528,25 +524,26 @@ void LLFloaterPreference::onOpen(const LLSD& key) bool canChoose = gAgent.getID().notNull() && (gAgent.isMature() || gAgent.isGodlike()); + LLComboBox* maturity_combo = getChild<LLComboBox>("maturity_desired_combobox"); + if (canChoose) { // if they're not adult or a god, they shouldn't see the adult selection, so delete it if (!gAgent.isAdult() && !gAgent.isGodlike()) { - LLComboBox* pMaturityCombo = getChild<LLComboBox>("maturity_desired_combobox"); // we're going to remove the adult entry from the combo. This obviously depends // on the order of items in the XML file, but there doesn't seem to be a reasonable // way to depend on the field in XML called 'name'. - pMaturityCombo->remove(0); + maturity_combo->remove(0); } childSetVisible("maturity_desired_combobox", true); - childSetVisible("maturity_desired_prompt", true); + childSetVisible("maturity_desired_textbox", false); } else { - childSetVisible("maturity_desired_prompt", false); + childSetText("maturity_desired_textbox", maturity_combo->getSelectedItemLabel()); childSetVisible("maturity_desired_combobox", false); } @@ -880,10 +877,20 @@ void LLFloaterPreference::refreshEnabledState() { mRadioTerrainDetail->setValue(1); mRadioTerrainDetail->setEnabled(FALSE); + for (S32 i = 0; i < mRadioTerrainDetail->getItemCount(); ++i) + { + mRadioTerrainDetail->setIndexEnabled(i, FALSE); + } } else { mRadioTerrainDetail->setEnabled(TRUE); + + for (S32 i = 0; i < mRadioTerrainDetail->getItemCount(); ++i) + { + mRadioTerrainDetail->setIndexEnabled(i, TRUE); + } + } // WindLight diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp index a6aa01e83bafa0c637f96470a14848b9314da6bc..fe98c84301c59913c72e70829168db7c42517b60 100644 --- a/indra/newview/llfloatersellland.cpp +++ b/indra/newview/llfloatersellland.cpp @@ -58,6 +58,7 @@ class LLFloaterSellLandUI public: LLFloaterSellLandUI(const LLSD& key); virtual ~LLFloaterSellLandUI(); + void onClose(); private: class SelectionObserver : public LLParcelObserver @@ -131,6 +132,7 @@ LLFloaterSellLandUI::LLFloaterSellLandUI(const LLSD& key) { LLViewerParcelMgr::getInstance()->addObserver(&mParcelSelectionObserver); // LLUICtrlFactory::getInstance()->buildFloater(sInstance, "floater_sell_land.xml"); + mCloseSignal.connect(boost::bind(&LLFloaterSellLandUI::onClose, this)); } LLFloaterSellLandUI::~LLFloaterSellLandUI() @@ -138,6 +140,13 @@ LLFloaterSellLandUI::~LLFloaterSellLandUI() LLViewerParcelMgr::getInstance()->removeObserver(&mParcelSelectionObserver); } +// Because we are single_instance, we are not destroyed on close. +void LLFloaterSellLandUI::onClose() +{ + // Must release parcel selection to allow land to deselect, see EXT-803 + mParcelSelection = NULL; +} + void LLFloaterSellLandUI::SelectionObserver::changed() { if (LLViewerParcelMgr::getInstance()->selectionEmpty()) @@ -253,10 +262,7 @@ void LLFloaterSellLandUI::refreshUI() if (!parcelp) return; LLTextureCtrl* snapshot = getChild<LLTextureCtrl>("info_image"); - if (snapshot) - { - snapshot->setImageAssetID(mParcelSnapshot); - } + snapshot->setImageAssetID(mParcelSnapshot); childSetText("info_parcel", parcelp->getName()); childSetTextArg("info_size", "[AREA]", llformat("%d", mParcelActualArea)); diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp index 616e9bac358a4e8a4decb72a4410dea1cb587679..8979575ef7954b87cbf394f4288f8cd2547be373 100644 --- a/indra/newview/llfloatersettingsdebug.cpp +++ b/indra/newview/llfloatersettingsdebug.cpp @@ -111,6 +111,11 @@ void LLFloaterSettingsDebug::onCommitSettings() LLComboBox* settings_combo = getChild<LLComboBox>("settings_combo"); LLControlVariable* controlp = (LLControlVariable*)settings_combo->getCurrentUserdata(); + if (!controlp) + { + return; + } + LLVector3 vector; LLVector3d vectord; LLRect rect; diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 13a2594c45de78936fb77f3daeba423e83c1a8af..235e8192186ee2097727a7dd8c7679d5d5647966 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1106,15 +1106,18 @@ LLSnapshotLivePreview::ESnapshotType LLFloaterSnapshot::Impl::getTypeIndex(LLFlo LLFloaterSnapshot::ESnapshotFormat LLFloaterSnapshot::Impl::getFormatIndex(LLFloaterSnapshot* floater) { ESnapshotFormat index = SNAPSHOT_FORMAT_PNG; - LLSD value = floater->childGetValue("local_format_combo"); - const std::string id = value.asString(); - if (id == "PNG") - index = SNAPSHOT_FORMAT_PNG; - else if (id == "JPEG") - index = SNAPSHOT_FORMAT_JPEG; - else if (id == "BMP") - index = SNAPSHOT_FORMAT_BMP; - return index; + if(floater->hasChild("local_format_combo")) + { + LLComboBox* local_format_combo = floater->findChild<LLComboBox>("local_format_combo"); + const std::string id = local_format_combo->getSelectedItemLabel(); + if (id == "PNG") + index = SNAPSHOT_FORMAT_PNG; + else if (id == "JPEG") + index = SNAPSHOT_FORMAT_JPEG; + else if (id == "BMP") + index = SNAPSHOT_FORMAT_BMP; + } + return index; } diff --git a/indra/newview/llfloaterwindlight.cpp b/indra/newview/llfloaterwindlight.cpp index 18745284cbcf6bba678cdad85f4a0e0eccb9255d..02979acdd72a291a1f2b0c8b9ee02f0f56fae83e 100644 --- a/indra/newview/llfloaterwindlight.cpp +++ b/indra/newview/llfloaterwindlight.cpp @@ -59,6 +59,8 @@ #include "llwlparamset.h" #include "llwlparammanager.h" #include "llpostprocess.h" +#include "lltabcontainer.h" + #undef max @@ -434,6 +436,11 @@ void LLFloaterWindLight::syncMenu() childSetValue("WLGamma", param_mgr->mWLGamma.x); childSetValue("WLStarAlpha", param_mgr->mCurParams.getStarBrightness()); + + LLTabContainer* tab = getChild<LLTabContainer>("WindLight Tabs"); + LLPanel* panel = getChild<LLPanel>("Scattering"); + + tab->enableTabButton(tab->getIndexForPanel(panel), gSavedSettings.getBOOL("RenderDeferredGI")); } diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp index e366340a10b5a0d85f3eeb9666c0cc017a12b285..07b81ef13496897bfb6fff37250bb01ca9687bda 100644 --- a/indra/newview/llhudeffectlookat.cpp +++ b/indra/newview/llhudeffectlookat.cpp @@ -421,8 +421,8 @@ BOOL LLHUDEffectLookAt::setLookAt(ELookAtType target_type, LLViewerObject *objec BOOL lookAtChanged = (target_type != mTargetType) || (object != mTargetObject); // lookat position has moved a certain amount and we haven't just sent an update - lookAtChanged = lookAtChanged || (dist_vec(position, mLastSentOffsetGlobal) > MIN_DELTAPOS_FOR_UPDATE) && - ((current_time - mLastSendTime) > (1.f / MAX_SENDS_PER_SEC)); + lookAtChanged = lookAtChanged || ((dist_vec(position, mLastSentOffsetGlobal) > MIN_DELTAPOS_FOR_UPDATE) && + ((current_time - mLastSendTime) > (1.f / MAX_SENDS_PER_SEC))); if (lookAtChanged) { diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp index 8086400493c1b8eef40632857947d6d628cb018b..55019f91f89d2f1458512c2697646359d4c2c12c 100644 --- a/indra/newview/llhudtext.cpp +++ b/indra/newview/llhudtext.cpp @@ -1063,6 +1063,8 @@ void LLHUDText::renderAllHUD() LLVertexBuffer::unbind(); + LLVertexBuffer::unbind(); + LLGLState::checkStates(); LLGLState::checkTextureChannels(); LLGLState::checkClientArrays(); diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index eb070784022242c2f13964ceafd1414836616023..40c5a243cc714581a7dbcba15965a07b1514bb64 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1481,8 +1481,8 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, LLVOAvatarSelf* avatar = gAgent.getAvatarObject(); if(!avatar) return FALSE; - // cannot drag categories into library or COF - if(!isAgentInventory() || isCOFFolder()) + // cannot drag categories into library + if(!isAgentInventory()) { return FALSE; } @@ -1729,6 +1729,34 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id, return accept; } +bool LLFindCOFValidItems::operator()(LLInventoryCategory* cat, + LLInventoryItem* item) +{ + // Valid COF items are: + // - links to wearables (body parts or clothing) + // - links to attachments + // - links to gestures + // - links to ensemble folders + LLViewerInventoryItem *linked_item = ((LLViewerInventoryItem*)item)->getLinkedItem(); // BAP - safe? + if (linked_item) + { + LLAssetType::EType type = linked_item->getType(); + return (type == LLAssetType::AT_CLOTHING || + type == LLAssetType::AT_BODYPART || + type == LLAssetType::AT_GESTURE || + type == LLAssetType::AT_OBJECT); + } + else + { + LLViewerInventoryCategory *linked_category = ((LLViewerInventoryItem*)item)->getLinkedCategory(); // BAP - safe? + // BAP remove AT_NONE support after ensembles are fully working? + return (linked_category && + ((linked_category->getPreferredType() == LLAssetType::AT_NONE) || + (LLAssetType::lookupIsEnsembleCategoryType(linked_category->getPreferredType())))); + } +} + + bool LLFindWearables::operator()(LLInventoryCategory* cat, LLInventoryItem* item) { @@ -1743,6 +1771,8 @@ bool LLFindWearables::operator()(LLInventoryCategory* cat, return FALSE; } + + //Used by LLFolderBridge as callback for directory recursion. class LLRightClickInventoryFetchObserver : public LLInventoryFetchObserver { @@ -1948,6 +1978,15 @@ void LLFolderBridge::performAction(LLFolderView* folder, LLInventoryModel* model modifyOutfit(FALSE); return; } + else if ("wearasensemble" == action) + { + LLInventoryModel* model = getInventoryModel(); + if(!model) return; + LLViewerInventoryCategory* cat = getCategory(); + if(!cat) return; + LLAppearanceManager::wearEnsemble(cat,true); + return; + } else if ("addtooutfit" == action) { modifyOutfit(TRUE); @@ -2277,8 +2316,11 @@ void LLFolderBridge::folderOptionsMenu() if(!model) return; const LLInventoryCategory* category = model->getCategory(mUUID); - const bool is_default_folder = category && - (LLAssetType::lookupIsProtectedCategoryType(category->getPreferredType())); + LLAssetType::EType type = category->getPreferredType(); + const bool is_default_folder = category && LLAssetType::lookupIsProtectedCategoryType(type); + // BAP change once we're no longer treating regular categories as ensembles. + const bool is_ensemble = category && (type == LLAssetType::AT_NONE || + LLAssetType::lookupIsEnsembleCategoryType(type)); // calling card related functionality for folders. @@ -2313,6 +2355,10 @@ void LLFolderBridge::folderOptionsMenu() mItems.push_back(std::string("Add To Outfit")); mItems.push_back(std::string("Replace Outfit")); } + if (is_ensemble) + { + mItems.push_back(std::string("Wear As Ensemble")); + } mItems.push_back(std::string("Take Off Items")); } hideContextEntries(*mMenu, mItems, disabled_items); @@ -2370,8 +2416,10 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { LLViewerInventoryCategory *cat = getCategory(); - if (!isCOFFolder() && cat && - LLAssetType::lookupIsProtectedCategoryType(cat->getPreferredType())) + // BAP removed protected check to re-enable standard ops in untyped folders. + // Not sure what the right thing is to do here. + if (!isCOFFolder() && cat /*&& + LLAssetType::lookupIsProtectedCategoryType(cat->getPreferredType())*/) { // Do not allow to create 2-level subfolder in the Calling Card/Friends folder. EXT-694. if (!LLFriendCardsManager::instance().isCategoryInFriendFolder(cat)) @@ -3983,6 +4031,16 @@ void remove_inventory_category_from_avatar( LLInventoryCategory* category ) } } +struct OnRemoveStruct +{ + LLUUID mUUID; + LLFolderView *mFolderToDeleteSelected; + OnRemoveStruct(const LLUUID& uuid, LLFolderView *fv = NULL): + mUUID(uuid), + mFolderToDeleteSelected(fv) + { + } +}; void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_id) { @@ -4030,10 +4088,10 @@ void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_ if( gAgentWearables.isWearingItem (item_array.get(i)->getUUID()) ) { LLWearableList::instance().getAsset(item_array.get(i)->getAssetUUID(), - item_array.get(i)->getName(), - item_array.get(i)->getType(), - LLWearableBridge::onRemoveFromAvatarArrived, - new LLUUID(item_array.get(i)->getUUID())); + item_array.get(i)->getName(), + item_array.get(i)->getType(), + LLWearableBridge::onRemoveFromAvatarArrived, + new OnRemoveStruct(item_array.get(i)->getUUID())); } } @@ -4134,12 +4192,25 @@ void LLWearableBridge::performAction(LLFolderView* folder, LLInventoryModel* mod { LLViewerInventoryItem* item = getItem(); if (item) - { - LLWearableList::instance().getAsset(item->getAssetUUID(), - item->getName(), - item->getType(), - LLWearableBridge::onRemoveFromAvatarArrived, - new LLUUID(mUUID)); + { + if (item->getIsLinkType() && + model->isObjectDescendentOf(mUUID,LLAppearanceManager::getCOF())) + { + // Delete link after item has been taken off. + LLWearableList::instance().getAsset(item->getAssetUUID(), + item->getName(), + item->getType(), + LLWearableBridge::onRemoveFromAvatarArrived, + new OnRemoveStruct(mUUID, folder)); + } + else + { + LLWearableList::instance().getAsset(item->getAssetUUID(), + item->getName(), + item->getType(), + LLWearableBridge::onRemoveFromAvatarArrived, + new OnRemoveStruct(mUUID)); + } } } } @@ -4452,11 +4523,12 @@ void LLWearableBridge::onRemoveFromAvatar(void* user_data) LLViewerInventoryItem* item = self->getItem(); if (item) { + LLUUID parent_id = item->getParentUUID(); LLWearableList::instance().getAsset(item->getAssetUUID(), - item->getName(), - item->getType(), - onRemoveFromAvatarArrived, - new LLUUID(self->mUUID)); + item->getName(), + item->getType(), + onRemoveFromAvatarArrived, + new OnRemoveStruct(LLUUID(self->mUUID))); } } } @@ -4465,10 +4537,11 @@ void LLWearableBridge::onRemoveFromAvatar(void* user_data) void LLWearableBridge::onRemoveFromAvatarArrived(LLWearable* wearable, void* userdata) { - LLUUID* item_id = (LLUUID*) userdata; + OnRemoveStruct *on_remove_struct = (OnRemoveStruct*) userdata; + LLUUID item_id = on_remove_struct->mUUID; if(wearable) { - if( gAgentWearables.isWearingItem( *item_id ) ) + if( gAgentWearables.isWearingItem( item_id ) ) { EWearableType type = wearable->getType(); @@ -4481,7 +4554,11 @@ void LLWearableBridge::onRemoveFromAvatarArrived(LLWearable* wearable, } } } - delete item_id; + if (on_remove_struct->mFolderToDeleteSelected) + { + on_remove_struct->mFolderToDeleteSelected->removeSelectedItems(); + } + delete on_remove_struct; } LLInvFVBridgeAction* LLInvFVBridgeAction::createAction(LLAssetType::EType asset_type, diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index 7f91f8f8b234919ce37a336edabca88ab32b2311..9a8647aba4e49675c3234a6b8c5b6eb1f383ac6a 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -474,7 +474,10 @@ void LLInventoryModel::collectDescendentsIf(const LLUUID& id, if (item->getActualType() == LLAssetType::AT_LINK_FOLDER) { LLViewerInventoryCategory *linked_cat = item->getLinkedCategory(); - if (linked_cat) + if (linked_cat && linked_cat->getPreferredType() != LLAssetType::AT_OUTFIT) + // BAP - was + // LLAssetType::lookupIsEnsembleCategoryType(linked_cat->getPreferredType())) + // Change back once ensemble typing is in place. { if(add(linked_cat,NULL)) { @@ -2484,6 +2487,10 @@ void LLInventoryModel::buildParentChildMap() // root of the agent's inv found. // The inv tree is built. mIsAgentInvUsable = true; + + llinfos << "Inventory initialized, notifying observers" << llendl; + addChangedMask(LLInventoryObserver::ALL, LLUUID::null); + notifyObservers(); } } } diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index 3f2e6b624e6c57be35d60b63fb018be26ca392c0..e7f9db9221f305cb4d57adc9c9be04cd60ebc5c2 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -728,6 +728,21 @@ class LLNameCategoryCollector : public LLInventoryCollectFunctor std::string mName; }; +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class LLFindCOFValidItems +// +// Collects items that can be legitimately linked to in the COF. +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +class LLFindCOFValidItems : public LLInventoryCollectFunctor +{ +public: + LLFindCOFValidItems() {} + virtual ~LLFindCOFValidItems() {} + virtual bool operator()(LLInventoryCategory* cat, + LLInventoryItem* item); + +}; + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class LLFindWearables // diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp index 318344f9eff3c8a74a782b79bca64094c2a6520f..2e8084759a2955ce74efd0acb6e07b6dbb5d8432 100644 --- a/indra/newview/lllandmarklist.cpp +++ b/indra/newview/lllandmarklist.cpp @@ -128,14 +128,16 @@ void LLLandmarkList::processGetAssetReply( else { LLViewerStats::getInstance()->incStat( LLViewerStats::ST_DOWNLOAD_FAILED ); - + // SJB: No use case for a notification here. Use lldebugs instead if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ) { - LLNotifications::instance().add("LandmarkMissing"); + LL_WARNS("Landmarks") << "Missing Landmark" << LL_ENDL; + //LLNotifications::instance().add("LandmarkMissing"); } else { - LLNotifications::instance().add("UnableToLoadLandmark"); + LL_WARNS("Landmarks") << "Unable to load Landmark" << LL_ENDL; + //LLNotifications::instance().add("UnableToLoadLandmark"); } gLandmarkList.mBadList.insert(uuid); diff --git a/indra/newview/llmanip.cpp b/indra/newview/llmanip.cpp index 3d1d6cad74337cbb7cc3503ef14246ffa034e9eb..f62d7229a31276eab5a7638147b69fc3a74f1cea 100644 --- a/indra/newview/llmanip.cpp +++ b/indra/newview/llmanip.cpp @@ -85,6 +85,7 @@ void LLManip::rebuild(LLViewerObject* vobj) if (group) { group->dirtyGeom(); + gPipeline.markRebuild(group, TRUE); } } } diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp index ce16b95bc0585b6cb84a6dbdbcfd969d4b5a5a1a..4ac109bf3d2391c754896b8dd6b16dca7ba6583c 100644 --- a/indra/newview/llpanelvolume.cpp +++ b/indra/newview/llpanelvolume.cpp @@ -52,6 +52,7 @@ #include "llbutton.h" #include "llcheckboxctrl.h" #include "llcolorswatch.h" +#include "lltexturectrl.h" #include "llcombobox.h" #include "llfirstuse.h" #include "llfocusmgr.h" @@ -72,6 +73,7 @@ #include "llvovolume.h" #include "llworld.h" #include "pipeline.h" +#include "llviewershadermgr.h" #include "lldrawpool.h" #include "lluictrlfactory.h" @@ -110,12 +112,28 @@ BOOL LLPanelVolume::postBuild() LightColorSwatch->setOnSelectCallback(boost::bind(&LLPanelVolume::onLightSelectColor, this, _2)); childSetCommitCallback("colorswatch",onCommitLight,this); } + + LLTextureCtrl* LightTexPicker = getChild<LLTextureCtrl>("light texture control"); + if (LightTexPicker) + { + LightTexPicker->setOnCancelCallback(boost::bind(&LLPanelVolume::onLightCancelTexture, this, _2)); + LightTexPicker->setOnSelectCallback(boost::bind(&LLPanelVolume::onLightSelectTexture, this, _2)); + childSetCommitCallback("light texture control", onCommitLight, this); + } + childSetCommitCallback("Light Intensity",onCommitLight,this); childSetValidate("Light Intensity",precommitValidate); childSetCommitCallback("Light Radius",onCommitLight,this); childSetValidate("Light Radius",precommitValidate); childSetCommitCallback("Light Falloff",onCommitLight,this); childSetValidate("Light Falloff",precommitValidate); + + childSetCommitCallback("Light FOV", onCommitLight, this); + childSetValidate("Light FOV", precommitValidate); + childSetCommitCallback("Light Focus", onCommitLight, this); + childSetValidate("Light Focus", precommitValidate); + childSetCommitCallback("Light Ambiance", onCommitLight, this); + childSetValidate("Light Ambiance", precommitValidate); } // Start with everyone disabled @@ -220,14 +238,32 @@ void LLPanelVolume::getState( ) LightColorSwatch->setValid( TRUE ); LightColorSwatch->set(volobjp->getLightBaseColor()); } + + LLTextureCtrl* LightTextureCtrl = getChild<LLTextureCtrl>("light texture control"); + if (LightTextureCtrl) + { + LightTextureCtrl->setEnabled(TRUE); + LightTextureCtrl->setValid(TRUE); + LightTextureCtrl->setImageAssetID(volobjp->getLightTextureID()); + } + childSetEnabled("Light Intensity",true); childSetEnabled("Light Radius",true); childSetEnabled("Light Falloff",true); + childSetEnabled("Light FOV", true); + childSetEnabled("Light Focus", true); + childSetEnabled("Light Ambiance", true); + childSetValue("Light Intensity",volobjp->getLightIntensity()); childSetValue("Light Radius",volobjp->getLightRadius()); childSetValue("Light Falloff",volobjp->getLightFalloff()); + LLVector3 params = volobjp->getSpotLightParams(); + childSetValue("Light FOV", params.mV[0]); + childSetValue("Light Focus", params.mV[1]); + childSetValue("Light Ambiance", params.mV[2]); + mLightSavedColor = volobjp->getLightColor(); } else @@ -243,9 +279,20 @@ void LLPanelVolume::getState( ) LightColorSwatch->setEnabled( FALSE ); LightColorSwatch->setValid( FALSE ); } + LLTextureCtrl* LightTextureCtrl = getChild<LLTextureCtrl>("light texture control"); + if (LightTextureCtrl) + { + LightTextureCtrl->setEnabled(FALSE); + LightTextureCtrl->setValid(FALSE); + } + childSetEnabled("Light Intensity",false); childSetEnabled("Light Radius",false); childSetEnabled("Light Falloff",false); + + childSetEnabled("Light FOV",false); + childSetEnabled("Light Focus",false); + childSetEnabled("Light Ambiance",false); } // Flexible properties @@ -335,6 +382,15 @@ void LLPanelVolume::refresh() { mRootObject = NULL; } + + BOOL visible = LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) > 0 ? TRUE : FALSE; + + childSetVisible("label texture", visible); + childSetVisible("Light FOV", visible); + childSetVisible("Light Focus", visible); + childSetVisible("Light Ambiance", visible); + childSetVisible("light texture control", visible); + } @@ -361,6 +417,13 @@ void LLPanelVolume::clearCtrls() LightColorSwatch->setEnabled( FALSE ); LightColorSwatch->setValid( FALSE ); } + LLTextureCtrl* LightTextureCtrl = getChild<LLTextureCtrl>("light texture control"); + if(LightTextureCtrl) + { + LightTextureCtrl->setEnabled( FALSE ); + LightTextureCtrl->setValid( FALSE ); + } + childSetEnabled("Light Intensity",false); childSetEnabled("Light Radius",false); childSetEnabled("Light Falloff",false); @@ -436,6 +499,15 @@ void LLPanelVolume::onLightCancelColor(const LLSD& data) onLightSelectColor(data); } +void LLPanelVolume::onLightCancelTexture(const LLSD& data) +{ + LLTextureCtrl* LightTextureCtrl = getChild<LLTextureCtrl>("light texture control"); + if (LightTextureCtrl) + { + LightTextureCtrl->setImageAssetID(mLightSavedTexture); + } +} + void LLPanelVolume::onLightSelectColor(const LLSD& data) { LLViewerObject* objectp = mObject; @@ -456,6 +528,24 @@ void LLPanelVolume::onLightSelectColor(const LLSD& data) } } +void LLPanelVolume::onLightSelectTexture(const LLSD& data) +{ + if (mObject.isNull() || (mObject->getPCode() != LL_PCODE_VOLUME)) + { + return; + } + LLVOVolume *volobjp = (LLVOVolume *) mObject.get(); + + + LLTextureCtrl* LightTextureCtrl = getChild<LLTextureCtrl>("light texture control"); + if(LightTextureCtrl) + { + LLUUID id = LightTextureCtrl->getImageAssetID(); + volobjp->setLightTextureID(id); + mLightSavedTexture = id; + } +} + // static void LLPanelVolume::onCommitLight( LLUICtrl* ctrl, void* userdata ) { @@ -471,12 +561,47 @@ void LLPanelVolume::onCommitLight( LLUICtrl* ctrl, void* userdata ) volobjp->setLightIntensity((F32)self->childGetValue("Light Intensity").asReal()); volobjp->setLightRadius((F32)self->childGetValue("Light Radius").asReal()); volobjp->setLightFalloff((F32)self->childGetValue("Light Falloff").asReal()); + LLColorSwatchCtrl* LightColorSwatch = self->getChild<LLColorSwatchCtrl>("colorswatch"); if(LightColorSwatch) { LLColor4 clr = LightColorSwatch->get(); volobjp->setLightColor(LLColor3(clr)); } + + LLTextureCtrl* LightTextureCtrl = self->getChild<LLTextureCtrl>("light texture control"); + if(LightTextureCtrl) + { + LLUUID id = LightTextureCtrl->getImageAssetID(); + if (id.notNull()) + { + if (volobjp->getLightTextureID().isNull()) + { //this commit is making this a spot light, set UI to default params + volobjp->setLightTextureID(id); + LLVector3 spot_params = volobjp->getSpotLightParams(); + self->childSetValue("Light FOV", spot_params.mV[0]); + self->childSetValue("Light Focus", spot_params.mV[1]); + self->childSetValue("Light Ambiance", spot_params.mV[2]); + } + else + { //modifying existing params + LLVector3 spot_params; + spot_params.mV[0] = (F32) self->childGetValue("Light FOV").asReal(); + spot_params.mV[1] = (F32) self->childGetValue("Light Focus").asReal(); + spot_params.mV[2] = (F32) self->childGetValue("Light Ambiance").asReal(); + volobjp->setSpotLightParams(spot_params); + } + } + else if (volobjp->getLightTextureID().notNull()) + { //no longer a spot light + volobjp->setLightTextureID(id); + //self->childDisable("Light FOV"); + //self->childDisable("Light Focus"); + //self->childDisable("Light Ambiance"); + } + } + + } // static diff --git a/indra/newview/llpanelvolume.h b/indra/newview/llpanelvolume.h index f285141bbee35e9bf1c86fa33567ae673c158242..9d197aafa58b00d66f0aa265cbc7951271eca468 100644 --- a/indra/newview/llpanelvolume.h +++ b/indra/newview/llpanelvolume.h @@ -74,6 +74,10 @@ class LLPanelVolume : public LLPanel void onLightCancelColor(const LLSD& data); void onLightSelectColor(const LLSD& data); + void onLightCancelTexture(const LLSD& data); + void onLightSelectTexture(const LLSD& data); + + protected: void getState(); @@ -99,6 +103,7 @@ class LLPanelVolume : public LLPanel */ LLColor4 mLightSavedColor; + LLUUID mLightSavedTexture; LLPointer<LLViewerObject> mObject; LLPointer<LLViewerObject> mRootObject; }; diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index b256914d296447d673bcd5cf4b607fd1982723fa..0ecdec65d6d79a63a87ce627a962a2ccea69b67f 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -289,8 +289,37 @@ LLScriptEdCore::LLScriptEdCore( setFollowsAll(); setBorderVisible(FALSE); - - LLUICtrlFactory::getInstance()->buildPanel(this, "panel_script_ed.xml"); + setXMLFilename("panel_script_ed.xml"); +} + +LLScriptEdCore::~LLScriptEdCore() +{ + deleteBridges(); + + // If the search window is up for this editor, close it. + LLFloaterScriptSearch* script_search = LLFloaterScriptSearch::getInstance(); + if (script_search && script_search->getEditorCore() == this) + { + script_search->closeFloater(); + delete script_search; + } +} + +BOOL LLScriptEdCore::postBuild() +{ + mErrorList = getChild<LLScrollListCtrl>("lsl errors"); + + mFunctions = getChild<LLComboBox>( "Insert..."); + + childSetCommitCallback("Insert...", &LLScriptEdCore::onBtnInsertFunction, this); + + mEditor = getChild<LLViewerTextEditor>("Script Editor"); + + childSetCommitCallback("lsl errors", &LLScriptEdCore::onErrorList, this); + childSetAction("Save_btn", boost::bind(&LLScriptEdCore::doSave,this,FALSE)); + + initMenu(); + std::vector<std::string> funcs; std::vector<std::string> tooltips; @@ -360,36 +389,7 @@ LLScriptEdCore::LLScriptEdCore( { mFunctions->add(*iter); } -} - -LLScriptEdCore::~LLScriptEdCore() -{ - deleteBridges(); - - // If the search window is up for this editor, close it. - LLFloaterScriptSearch* script_search = LLFloaterScriptSearch::getInstance(); - if (script_search && script_search->getEditorCore() == this) - { - script_search->closeFloater(); - delete script_search; - } -} -BOOL LLScriptEdCore::postBuild() -{ - - mErrorList = getChild<LLScrollListCtrl>("lsl errors"); - - mFunctions = getChild<LLComboBox>( "Insert..."); - - childSetCommitCallback("Insert...", &LLScriptEdCore::onBtnInsertFunction, this); - - mEditor = getChild<LLViewerTextEditor>("Script Editor"); - - childSetCommitCallback("lsl errors", &LLScriptEdCore::onErrorList, this); - childSetAction("Save_btn", boost::bind(&LLScriptEdCore::doSave,this,FALSE)); - - initMenu(); return TRUE; } diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp index aa603c417f1e66d45751d5d016264648e1e64cbc..3c6645f116964900a4e4fb087437e8baf5ace91c 100644 --- a/indra/newview/llprogressview.cpp +++ b/indra/newview/llprogressview.cpp @@ -182,7 +182,8 @@ void LLProgressView::draw() LLPanel::draw(); if (mFadeTimer.getElapsedTimeF32() > FADE_IN_TIME) { - gFocusMgr.removeTopCtrlWithoutCallback(this); + // Fade is complete, release focus + gFocusMgr.releaseFocusIfNeeded( this ); LLPanel::setVisible(FALSE); gStartTexture = NULL; } diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp index dea9af06574889244662913296a131d51d3f318a..4e13cb17a2ab1081c57f9cfc45a8d38feefacb29 100644 --- a/indra/newview/llspatialpartition.cpp +++ b/indra/newview/llspatialpartition.cpp @@ -47,6 +47,7 @@ #include "llrender.h" #include "lloctree.h" #include "llvoavatar.h" +#include "lltextureatlas.h" static LLFastTimer::DeclareTimer FTM_FRUSTUM_CULL("Frustum Culling"); static LLFastTimer::DeclareTimer FTM_CULL_REBOUND("Cull Rebound"); @@ -88,8 +89,6 @@ class LLOcclusionQueryPool : public LLGLNamePool static LLOcclusionQueryPool sQueryPool; -BOOL LLSpatialPartition::sFreezeState = FALSE; - //static counter for frame to switch LOD on void sg_assert(BOOL expr) @@ -283,10 +282,10 @@ S32 LLSphereAABB(const LLVector3& center, const LLVector3& size, const LLVector3 LLSpatialGroup::~LLSpatialGroup() { - if (sNoDelete) + /*if (sNoDelete) { llerrs << "Illegal deletion of LLSpatialGroup!" << llendl; - } + }*/ if (isState(DEAD)) { @@ -297,13 +296,136 @@ LLSpatialGroup::~LLSpatialGroup() if (gGLManager.mHasOcclusionQuery && mOcclusionQuery) { - sQueryPool.release(mOcclusionQuery); + sQueryPool.release(mOcclusionQuery[LLViewerCamera::sCurCameraID]); } delete [] mOcclusionVerts; LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); clearDrawMap(); + clearAtlasList() ; +} + +BOOL LLSpatialGroup::hasAtlas(LLTextureAtlas* atlasp) +{ + S8 type = atlasp->getComponents() - 1 ; + for(std::list<LLTextureAtlas*>::iterator iter = mAtlasList[type].begin(); iter != mAtlasList[type].end() ; ++iter) + { + if(atlasp == *iter) + { + return TRUE ; + } + } + return FALSE ; +} + +void LLSpatialGroup::addAtlas(LLTextureAtlas* atlasp, S8 recursive_level) +{ + if(!hasAtlas(atlasp)) + { + mAtlasList[atlasp->getComponents() - 1].push_back(atlasp) ; + atlasp->addSpatialGroup(this) ; + } + + --recursive_level; + if(recursive_level)//levels propagating up. + { + LLSpatialGroup* parent = getParent() ; + if(parent) + { + parent->addAtlas(atlasp, recursive_level) ; + } + } +} + +void LLSpatialGroup::removeAtlas(LLTextureAtlas* atlasp, BOOL remove_group, S8 recursive_level) +{ + mAtlasList[atlasp->getComponents() - 1].remove(atlasp) ; + if(remove_group) + { + atlasp->removeSpatialGroup(this) ; + } + + --recursive_level; + if(recursive_level)//levels propagating up. + { + LLSpatialGroup* parent = getParent() ; + if(parent) + { + parent->removeAtlas(atlasp, recursive_level) ; + } + } +} + +void LLSpatialGroup::clearAtlasList() +{ + std::list<LLTextureAtlas*>::iterator iter ; + for(S8 i = 0 ; i < 4 ; i++) + { + if(mAtlasList[i].size() > 0) + { + for(iter = mAtlasList[i].begin(); iter != mAtlasList[i].end() ; ++iter) + { + ((LLTextureAtlas*)*iter)->removeSpatialGroup(this) ; + } + mAtlasList[i].clear() ; + } + } +} + +LLTextureAtlas* LLSpatialGroup::getAtlas(S8 ncomponents, S8 to_be_reserved, S8 recursive_level) +{ + S8 type = ncomponents - 1 ; + if(mAtlasList[type].size() > 0) + { + for(std::list<LLTextureAtlas*>::iterator iter = mAtlasList[type].begin(); iter != mAtlasList[type].end() ; ++iter) + { + if(!((LLTextureAtlas*)*iter)->isFull(to_be_reserved)) + { + return *iter ; + } + } + } + + --recursive_level; + if(recursive_level) + { + LLSpatialGroup* parent = getParent() ; + if(parent) + { + return parent->getAtlas(ncomponents, to_be_reserved, recursive_level) ; + } + } + return NULL ; +} + +void LLSpatialGroup::setCurUpdatingSlot(LLTextureAtlasSlot* slotp) +{ + mCurUpdatingSlotp = slotp; + + //if(!hasAtlas(mCurUpdatingSlotp->getAtlas())) + //{ + // addAtlas(mCurUpdatingSlotp->getAtlas()) ; + //} +} + +LLTextureAtlasSlot* LLSpatialGroup::getCurUpdatingSlot(LLViewerTexture* imagep, S8 recursive_level) +{ + if(gFrameCount && mCurUpdatingTime == gFrameCount && mCurUpdatingTexture == imagep) + { + return mCurUpdatingSlotp ; + } + + //--recursive_level ; + //if(recursive_level) + //{ + // LLSpatialGroup* parent = getParent() ; + // if(parent) + // { + // return parent->getCurUpdatingSlot(imagep, recursive_level) ; + // } + //} + return NULL ; } void LLSpatialGroup::clearDrawMap() @@ -313,15 +435,12 @@ void LLSpatialGroup::clearDrawMap() BOOL LLSpatialGroup::isVisible() const { - return mVisible == LLDrawable::getCurrentFrame() ? TRUE : FALSE; + return mVisible[LLViewerCamera::sCurCameraID] == LLDrawable::getCurrentFrame() ? TRUE : FALSE; } void LLSpatialGroup::setVisible() { - if (!LLSpatialPartition::sFreezeState) - { - mVisible = LLDrawable::getCurrentFrame(); - } + mVisible[LLViewerCamera::sCurCameraID] = LLDrawable::getCurrentFrame(); } void LLSpatialGroup::validate() @@ -380,63 +499,6 @@ void LLSpatialGroup::validate() #endif } - - -class LLOctreeStateCheck : public LLOctreeTraveler<LLDrawable> -{ -public: - U32 mInheritedMask; - - LLOctreeStateCheck(): mInheritedMask(0) { } - - virtual void traverse(const LLSpatialGroup::OctreeNode* node) - { - LLSpatialGroup* group = (LLSpatialGroup*) node->getListener(0); - - node->accept(this); - - U32 temp = mInheritedMask; - mInheritedMask |= group->getState() & - (LLSpatialGroup::OCCLUDED); - - for (U32 i = 0; i < node->getChildCount(); i++) - { - traverse(node->getChild(i)); - } - - mInheritedMask = temp; - } - - virtual void visit(const LLOctreeNode<LLDrawable>* state) - { - LLSpatialGroup* group = (LLSpatialGroup*) state->getListener(0); - - if (mInheritedMask && !group->isState(mInheritedMask)) - { - llerrs << "Spatial group failed inherited mask test." << llendl; - } - - if (group->isState(LLSpatialGroup::DIRTY)) - { - assert_parent_state(group, LLSpatialGroup::DIRTY); - } - } - - void assert_parent_state(LLSpatialGroup* group, U32 state) - { - LLSpatialGroup* parent = group->getParent(); - while (parent) - { - if (!parent->isState(state)) - { - llerrs << "Spatial group failed parent state check." << llendl; - } - parent = parent->getParent(); - } - } -}; - - void LLSpatialGroup::checkStates() { #if LL_OCTREE_PARANOIA_CHECK @@ -470,17 +532,17 @@ void validate_draw_info(LLDrawInfo& params) } //bad indices - U32* indicesp = (U32*) params.mVertexBuffer->getIndicesPointer(); + U16* indicesp = (U16*) params.mVertexBuffer->getIndicesPointer(); if (indicesp) { for (U32 i = params.mOffset; i < params.mOffset+params.mCount; i++) { - if (indicesp[i] < params.mStart) + if (indicesp[i] < (U16)params.mStart) { llerrs << "Draw batch has vertex buffer index out of range error (index too low)." << llendl; } - if (indicesp[i] > params.mEnd) + if (indicesp[i] > (U16)params.mEnd) { llerrs << "Draw batch has vertex buffer index out of range error (index too high)." << llendl; } @@ -541,7 +603,9 @@ BOOL LLSpatialGroup::addObject(LLDrawable *drawablep, BOOL add_all, BOOL from_oc { drawablep->setSpatialGroup(this); validate_drawable(drawablep); - setState(OBJECT_DIRTY | GEOM_DIRTY | DISCARD_QUERY); + setState(OBJECT_DIRTY | GEOM_DIRTY); + setOcclusionState(LLSpatialGroup::DISCARD_QUERY, LLSpatialGroup::STATE_MODE_ALL_CAMERAS); + gPipeline.markRebuild(this, TRUE); if (drawablep->isSpatialBridge()) { mBridgeList.push_back((LLSpatialBridge*) drawablep); @@ -576,22 +640,23 @@ static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt"); void LLSpatialPartition::rebuildGeom(LLSpatialGroup* group) { - if (!gPipeline.hasRenderType(mDrawableType)) + /*if (!gPipeline.hasRenderType(mDrawableType)) { return; - } - - if (!LLPipeline::sSkipUpdate && group->changeLOD()) - { - group->mLastUpdateDistance = group->mDistance; - group->mLastUpdateViewAngle = group->mViewAngle; - } + }*/ if (group->isDead() || !group->isState(LLSpatialGroup::GEOM_DIRTY)) { + /*if (!group->isState(LLSpatialGroup::GEOM_DIRTY) && mRenderByGroup) + { + llerrs << "WTF?" << llendl; + }*/ return; } + group->mLastUpdateDistance = group->mDistance; + group->mLastUpdateViewAngle = group->mViewAngle; + LLFastTimer ftm(FTM_REBUILD_VBO); group->clearDrawMap(); @@ -629,6 +694,7 @@ void LLSpatialPartition::rebuildGeom(LLSpatialGroup* group) group->clearState(LLSpatialGroup::GEOM_DIRTY); } + void LLSpatialPartition::rebuildMesh(LLSpatialGroup* group) { @@ -667,8 +733,11 @@ BOOL LLSpatialGroup::boundObjects(BOOL empty, LLVector3& minOut, LLVector3& maxO drawablep = *i; minMax = drawablep->getSpatialExtents(); + update_min_max(newMin, newMax, minMax[0]); + update_min_max(newMin, newMax, minMax[1]); + //bin up the object - for (U32 i = 0; i < 3; i++) + /*for (U32 i = 0; i < 3; i++) { if (minMax[0].mV[i] < newMin.mV[i]) { @@ -678,7 +747,7 @@ BOOL LLSpatialGroup::boundObjects(BOOL empty, LLVector3& minOut, LLVector3& maxO { newMax.mV[i] = minMax[1].mV[i]; } - } + }*/ } mObjectBounds[0] = (newMin + newMax) * 0.5f; @@ -742,6 +811,10 @@ LLSpatialGroup* LLSpatialGroup::getParent() return NULL; } + if(!mOctreeNode) + { + return NULL; + } OctreeNode* parent = mOctreeNode->getOctParent(); if (parent) @@ -767,6 +840,8 @@ BOOL LLSpatialGroup::removeObject(LLDrawable *drawablep, BOOL from_octree) { drawablep->setSpatialGroup(NULL); setState(GEOM_DIRTY); + gPipeline.markRebuild(this, TRUE); + if (drawablep->isSpatialBridge()) { for (bridge_list_t::iterator i = mBridgeList.begin(); i != mBridgeList.end(); ++i) @@ -803,6 +878,7 @@ void LLSpatialGroup::shift(const LLVector3 &offset) //if (!mSpatialPartition->mRenderByGroup) { setState(GEOM_DIRTY); + gPipeline.markRebuild(this, TRUE); } if (mOcclusionVerts) @@ -843,18 +919,21 @@ class LLSpatialSetStateDiff : public LLSpatialSetState void LLSpatialGroup::setState(U32 state) { - if (!LLSpatialPartition::sFreezeState) + mState |= state; + + if (state > LLSpatialGroup::STATE_MASK) { - mState |= state; + llerrs << "WTF?" << llendl; } } void LLSpatialGroup::setState(U32 state, S32 mode) { LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); - if (LLSpatialPartition::sFreezeState) + + if (state > LLSpatialGroup::STATE_MASK) { - return; + llerrs << "WTF?" << llendl; } if (mode > STATE_MODE_SINGLE) @@ -902,20 +981,23 @@ class LLSpatialClearStateDiff : public LLSpatialClearState void LLSpatialGroup::clearState(U32 state) { - if (!LLSpatialPartition::sFreezeState) + if (state > LLSpatialGroup::STATE_MASK) { - mState &= ~state; + llerrs << "WTF?" << llendl; } + + mState &= ~state; } void LLSpatialGroup::clearState(U32 state, S32 mode) { - LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); - if (LLSpatialPartition::sFreezeState) + if (state > LLSpatialGroup::STATE_MASK) { - return; + llerrs << "WTF?" << llendl; } + LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); + if (mode > STATE_MODE_SINGLE) { if (mode == STATE_MODE_DIFF) @@ -935,6 +1017,128 @@ void LLSpatialGroup::clearState(U32 state, S32 mode) } } +BOOL LLSpatialGroup::isState(U32 state) const +{ + if (state > LLSpatialGroup::STATE_MASK) + { + llerrs << "WTF?" << llendl; + } + + return mState & state ? TRUE : FALSE; +} + +//===================================== +// Occlusion State Set/Clear +//===================================== +class LLSpatialSetOcclusionState : public LLSpatialGroup::OctreeTraveler +{ +public: + U32 mState; + LLSpatialSetOcclusionState(U32 state) : mState(state) { } + virtual void visit(const LLSpatialGroup::OctreeNode* branch) { ((LLSpatialGroup*) branch->getListener(0))->setOcclusionState(mState); } +}; + +class LLSpatialSetOcclusionStateDiff : public LLSpatialSetOcclusionState +{ +public: + LLSpatialSetOcclusionStateDiff(U32 state) : LLSpatialSetOcclusionState(state) { } + + virtual void traverse(const LLSpatialGroup::OctreeNode* n) + { + LLSpatialGroup* group = (LLSpatialGroup*) n->getListener(0); + + if (!group->isOcclusionState(mState)) + { + LLSpatialGroup::OctreeTraveler::traverse(n); + } + } +}; + + +void LLSpatialGroup::setOcclusionState(U32 state, S32 mode) +{ + LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); + + if (mode > STATE_MODE_SINGLE) + { + if (mode == STATE_MODE_DIFF) + { + LLSpatialSetOcclusionStateDiff setter(state); + setter.traverse(mOctreeNode); + } + else if (mode == STATE_MODE_BRANCH) + { + LLSpatialSetOcclusionState setter(state); + setter.traverse(mOctreeNode); + } + else + { + for (U32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++) + { + mOcclusionState[i] |= state; + } + } + } + else + { + mOcclusionState[LLViewerCamera::sCurCameraID] |= state; + } +} + +class LLSpatialClearOcclusionState : public LLSpatialGroup::OctreeTraveler +{ +public: + U32 mState; + + LLSpatialClearOcclusionState(U32 state) : mState(state) { } + virtual void visit(const LLSpatialGroup::OctreeNode* branch) { ((LLSpatialGroup*) branch->getListener(0))->clearOcclusionState(mState); } +}; + +class LLSpatialClearOcclusionStateDiff : public LLSpatialClearOcclusionState +{ +public: + LLSpatialClearOcclusionStateDiff(U32 state) : LLSpatialClearOcclusionState(state) { } + + virtual void traverse(const LLSpatialGroup::OctreeNode* n) + { + LLSpatialGroup* group = (LLSpatialGroup*) n->getListener(0); + + if (group->isOcclusionState(mState)) + { + LLSpatialGroup::OctreeTraveler::traverse(n); + } + } +}; + +void LLSpatialGroup::clearOcclusionState(U32 state, S32 mode) +{ + LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); + + if (mode > STATE_MODE_SINGLE) + { + if (mode == STATE_MODE_DIFF) + { + LLSpatialClearOcclusionStateDiff clearer(state); + clearer.traverse(mOctreeNode); + } + else if (mode == STATE_MODE_BRANCH) + { + LLSpatialClearOcclusionState clearer(state); + clearer.traverse(mOctreeNode); + } + else + { + for (U32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++) + { + mOcclusionState[i] &= ~state; + } + } + } + else + { + mOcclusionState[LLViewerCamera::sCurCameraID] &= ~state; + } +} //====================================== // Octree Listener Implementation //====================================== @@ -946,13 +1150,16 @@ LLSpatialGroup::LLSpatialGroup(OctreeNode* node, LLSpatialPartition* part) : mSpatialPartition(part), mVertexBuffer(NULL), mBufferUsage(GL_STATIC_DRAW_ARB), - mVisible(0), mDistance(0.f), mDepth(0.f), mLastUpdateDistance(-1.f), mLastUpdateTime(gFrameTimeSeconds), mViewAngle(0.f), - mLastUpdateViewAngle(-1.f) + mLastUpdateViewAngle(-1.f), + mAtlasList(4), + mCurUpdatingTime(0), + mCurUpdatingSlotp(NULL), + mCurUpdatingTexture (NULL) { sNodeCount++; LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); @@ -960,14 +1167,25 @@ LLSpatialGroup::LLSpatialGroup(OctreeNode* node, LLSpatialPartition* part) : sg_assert(mOctreeNode->getListenerCount() == 0); mOctreeNode->addListener(this); setState(SG_INITIAL_STATE_MASK); + gPipeline.markRebuild(this, TRUE); mBounds[0] = LLVector3(node->getCenter()); mBounds[1] = LLVector3(node->getSize()); part->mLODSeed = (part->mLODSeed+1)%part->mLODPeriod; mLODHash = part->mLODSeed; - - mOcclusionQuery = 0; + + OctreeNode* oct_parent = node->getOctParent(); + + LLSpatialGroup* parent = oct_parent ? (LLSpatialGroup*) oct_parent->getListener(0) : NULL; + + for (U32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++) + { + mOcclusionQuery[i] = 0; + mOcclusionState[i] = parent ? SG_STATE_INHERIT_MASK & parent->mOcclusionState[i] : 0; + mVisible[i] = 0; + } + mOcclusionVerts = NULL; mRadius = 1; @@ -976,13 +1194,18 @@ LLSpatialGroup::LLSpatialGroup(OctreeNode* node, LLSpatialPartition* part) : void LLSpatialGroup::updateDistance(LLCamera &camera) { + if (LLViewerCamera::sCurCameraID != LLViewerCamera::CAMERA_WORLD) + { + llerrs << "WTF?" << llendl; + } + #if !LL_RELEASE_FOR_DOWNLOAD if (isState(LLSpatialGroup::OBJECT_DIRTY)) { llerrs << "Spatial group dirty on distance update." << llendl; } #endif - if (!getData().empty() && !LLSpatialPartition::sFreezeState) + if (!getData().empty()) { mRadius = mSpatialPartition->mRenderByGroup ? mObjectBounds[1].magVec() : (F32) mOctreeNode->getSize().magVec(); @@ -1018,6 +1241,7 @@ F32 LLSpatialPartition::calcDistance(LLSpatialGroup* group, LLCamera& camera) //NOTE: If there is a trivial way to detect that alpha sorting here would not change the render order, //not setting this node to dirty would be a very good thing group->setState(LLSpatialGroup::ALPHA_DIRTY); + gPipeline.markRebuild(group, FALSE); } } } @@ -1054,6 +1278,18 @@ F32 LLSpatialPartition::calcPixelArea(LLSpatialGroup* group, LLCamera& camera) return LLPipeline::calcPixelArea(group->mObjectBounds[0], group->mObjectBounds[1], camera); } +F32 LLSpatialGroup::getUpdateUrgency() const +{ + if (!isVisible()) + { + return 0.f; + } + else + { + return (gFrameTimeSeconds - mLastUpdateTime+4.f)/mDistance; + } +} + BOOL LLSpatialGroup::needsUpdate() { return (LLDrawable::getCurrentFrame()%mSpatialPartition->mLODPeriod == mLODHash) ? TRUE : FALSE; @@ -1140,8 +1376,7 @@ void LLSpatialGroup::handleChildAddition(const OctreeNode* parent, OctreeNode* c LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); if (child->getListenerCount() == 0) { - LLSpatialGroup* group = new LLSpatialGroup(child, mSpatialPartition); - group->setState(mState & SG_STATE_INHERIT_MASK); + new LLSpatialGroup(child, mSpatialPartition); } else { @@ -1161,16 +1396,21 @@ void LLSpatialGroup::handleChildRemoval(const OctreeNode* parent, const OctreeNo void LLSpatialGroup::destroyGL() { setState(LLSpatialGroup::GEOM_DIRTY | LLSpatialGroup::IMAGE_DIRTY); + gPipeline.markRebuild(this, TRUE); + mLastUpdateTime = gFrameTimeSeconds; mVertexBuffer = NULL; mBufferMap.clear(); clearDrawMap(); - if (mOcclusionQuery) + for (U32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++) { - sQueryPool.release(mOcclusionQuery); - mOcclusionQuery = 0; + if (mOcclusionQuery[i]) + { + sQueryPool.release(mOcclusionQuery[i]); + mOcclusionQuery[i] = 0; + } } delete [] mOcclusionVerts; @@ -1266,38 +1506,43 @@ void LLSpatialGroup::checkOcclusion() if (LLPipeline::sUseOcclusion > 1) { LLSpatialGroup* parent = getParent(); - if (parent && parent->isState(LLSpatialGroup::OCCLUDED)) + if (parent && parent->isOcclusionState(LLSpatialGroup::OCCLUDED)) { //if the parent has been marked as occluded, the child is implicitly occluded - clearState(QUERY_PENDING | DISCARD_QUERY); + clearOcclusionState(QUERY_PENDING | DISCARD_QUERY); } - else if (isState(QUERY_PENDING)) + else if (isOcclusionState(QUERY_PENDING)) { //otherwise, if a query is pending, read it back LLFastTimer t(FTM_OCCLUSION_READBACK); GLuint res = 1; - if (!isState(DISCARD_QUERY) && mOcclusionQuery) + if (!isOcclusionState(DISCARD_QUERY) && mOcclusionQuery[LLViewerCamera::sCurCameraID]) { - glGetQueryObjectuivARB(mOcclusionQuery, GL_QUERY_RESULT_ARB, &res); + glGetQueryObjectuivARB(mOcclusionQuery[LLViewerCamera::sCurCameraID], GL_QUERY_RESULT_ARB, &res); + } + + if (isOcclusionState(DISCARD_QUERY)) + { + res = 2; } if (res > 0) { assert_states_valid(this); - clearState(LLSpatialGroup::OCCLUDED, LLSpatialGroup::STATE_MODE_DIFF); + clearOcclusionState(LLSpatialGroup::OCCLUDED, LLSpatialGroup::STATE_MODE_DIFF); assert_states_valid(this); } else { assert_states_valid(this); - setState(LLSpatialGroup::OCCLUDED, LLSpatialGroup::STATE_MODE_DIFF); + setOcclusionState(LLSpatialGroup::OCCLUDED, LLSpatialGroup::STATE_MODE_DIFF); assert_states_valid(this); } - clearState(QUERY_PENDING | DISCARD_QUERY); + clearOcclusionState(QUERY_PENDING | DISCARD_QUERY); } - else if (mSpatialPartition->isOcclusionEnabled() && isState(LLSpatialGroup::OCCLUDED)) + else if (mSpatialPartition->isOcclusionEnabled() && isOcclusionState(LLSpatialGroup::OCCLUDED)) { //check occlusion has been issued for occluded node that has not had a query issued assert_states_valid(this); - clearState(LLSpatialGroup::OCCLUDED, LLSpatialGroup::STATE_MODE_DIFF); + clearOcclusionState(LLSpatialGroup::OCCLUDED, LLSpatialGroup::STATE_MODE_DIFF); assert_states_valid(this); } } @@ -1309,9 +1554,9 @@ void LLSpatialGroup::doOcclusion(LLCamera* camera) { if (earlyFail(camera, this)) { - setState(LLSpatialGroup::DISCARD_QUERY); + setOcclusionState(LLSpatialGroup::DISCARD_QUERY); assert_states_valid(this); - clearState(LLSpatialGroup::OCCLUDED, LLSpatialGroup::STATE_MODE_DIFF); + clearOcclusionState(LLSpatialGroup::OCCLUDED, LLSpatialGroup::STATE_MODE_DIFF); assert_states_valid(this); } else @@ -1319,9 +1564,9 @@ void LLSpatialGroup::doOcclusion(LLCamera* camera) { LLFastTimer t(FTM_RENDER_OCCLUSION); - if (!mOcclusionQuery) + if (!mOcclusionQuery[LLViewerCamera::sCurCameraID]) { - mOcclusionQuery = sQueryPool.allocate(); + mOcclusionQuery[LLViewerCamera::sCurCameraID] = sQueryPool.allocate(); } if (!mOcclusionVerts || isState(LLSpatialGroup::OCCLUSION_DIRTY)) @@ -1329,22 +1574,33 @@ void LLSpatialGroup::doOcclusion(LLCamera* camera) buildOcclusion(); } - glBeginQueryARB(GL_SAMPLES_PASSED_ARB, mOcclusionQuery); + glBeginQueryARB(GL_SAMPLES_PASSED_ARB, mOcclusionQuery[LLViewerCamera::sCurCameraID]); glVertexPointer(3, GL_FLOAT, 0, mOcclusionVerts); - glDrawRangeElements(GL_TRIANGLE_FAN, 0, 7, 8, - GL_UNSIGNED_BYTE, get_box_fan_indices(camera, mBounds[0])); + if (camera->getOrigin().isExactlyZero()) + { //origin is invalid, draw entire box + glDrawRangeElements(GL_TRIANGLE_FAN, 0, 7, 8, + GL_UNSIGNED_BYTE, sOcclusionIndices); + glDrawRangeElements(GL_TRIANGLE_FAN, 0, 7, 8, + GL_UNSIGNED_BYTE, sOcclusionIndices+b111*8); + } + else + { + glDrawRangeElements(GL_TRIANGLE_FAN, 0, 7, 8, + GL_UNSIGNED_BYTE, get_box_fan_indices(camera, mBounds[0])); + } glEndQueryARB(GL_SAMPLES_PASSED_ARB); } - setState(LLSpatialGroup::QUERY_PENDING); - clearState(LLSpatialGroup::DISCARD_QUERY); + setOcclusionState(LLSpatialGroup::QUERY_PENDING); + clearOcclusionState(LLSpatialGroup::DISCARD_QUERY); } } } //============================================== -LLSpatialPartition::LLSpatialPartition(U32 data_mask, U32 buffer_usage) +LLSpatialPartition::LLSpatialPartition(U32 data_mask, BOOL render_by_group, U32 buffer_usage) +: mRenderByGroup(render_by_group) { LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION); mOcclusionEnabled = TRUE; @@ -1356,7 +1612,6 @@ LLSpatialPartition::LLSpatialPartition(U32 data_mask, U32 buffer_usage) mBufferUsage = buffer_usage; mDepthMask = FALSE; mSlopRatio = 0.25f; - mRenderByGroup = TRUE; mInfiniteFarClip = FALSE; LLGLNamePool::registerPool(&sQueryPool); @@ -1393,9 +1648,9 @@ LLSpatialGroup *LLSpatialPartition::put(LLDrawable *drawablep, BOOL was_visible) LLSpatialGroup* group = drawablep->getSpatialGroup(); - if (group && was_visible && group->isState(LLSpatialGroup::QUERY_PENDING)) + if (group && was_visible && group->isOcclusionState(LLSpatialGroup::QUERY_PENDING)) { - group->setState(LLSpatialGroup::DISCARD_QUERY); + group->setOcclusionState(LLSpatialGroup::DISCARD_QUERY, LLSpatialGroup::STATE_MODE_ALL_CAMERAS); } return group; @@ -1494,7 +1749,7 @@ class LLOctreeCull : public LLSpatialGroup::OctreeTraveler if (group->mOctreeNode->getParent() && //never occlusion cull the root node LLPipeline::sUseOcclusion && //ignore occlusion if disabled - group->isState(LLSpatialGroup::OCCLUDED)) + group->isOcclusionState(LLSpatialGroup::OCCLUDED)) { gPipeline.markOccluder(group); return true; @@ -1576,7 +1831,7 @@ class LLOctreeCull : public LLSpatialGroup::OctreeTraveler virtual void processGroup(LLSpatialGroup* group) { if (group->needsUpdate() || - group->mVisible < LLDrawable::getCurrentFrame() - 1) + group->mVisible[LLViewerCamera::sCurCameraID] < LLDrawable::getCurrentFrame() - 1) { group->doOcclusion(mCamera); } @@ -1644,7 +1899,7 @@ class LLOctreeCullVisExtents: public LLOctreeCullShadow { if (group->mOctreeNode->getParent() && //never occlusion cull the root node LLPipeline::sUseOcclusion && //ignore occlusion if disabled - group->isState(LLSpatialGroup::OCCLUDED)) + group->isOcclusionState(LLSpatialGroup::OCCLUDED)) { return true; } @@ -1652,13 +1907,57 @@ class LLOctreeCullVisExtents: public LLOctreeCullShadow return false; } + virtual void traverse(const LLSpatialGroup::OctreeNode* n) + { + LLSpatialGroup* group = (LLSpatialGroup*) n->getListener(0); + + if (earlyFail(group)) + { + return; + } + + if (mRes == 2) + { + //fully in, don't traverse further (won't effect extents + } + else if (mRes && group->isState(LLSpatialGroup::SKIP_FRUSTUM_CHECK)) + { //don't need to do frustum check + LLSpatialGroup::OctreeTraveler::traverse(n); + } + else + { + mRes = frustumCheck(group); + + if (mRes) + { //at least partially in, run on down + LLSpatialGroup::OctreeTraveler::traverse(n); + } + + mRes = 0; + } + } + virtual void processGroup(LLSpatialGroup* group) { - if (group->mObjectBounds[1].magVecSquared() < 256.f * 256.f) - { //megaprims and water edge patches be damned! + if (group->isState(LLSpatialGroup::DIRTY) || group->getData().empty()) + { + llerrs << "WTF?" << llendl; + } + + if (mRes < 2) + { + if (mCamera->AABBInFrustum(group->mObjectBounds[0], group->mObjectBounds[1]) > 0) + { + mEmpty = FALSE; + update_min_max(mMin, mMax, group->mObjectExtents[0]); + update_min_max(mMin, mMax, group->mObjectExtents[1]); + } + } + else + { mEmpty = FALSE; - update_min_max(mMin, mMax, group->mObjectExtents[0]); - update_min_max(mMin, mMax, group->mObjectExtents[1]); + update_min_max(mMin, mMax, group->mExtents[0]); + update_min_max(mMin, mMax, group->mExtents[1]); } } @@ -1676,9 +1975,9 @@ class LLOctreeCullDetectVisible: public LLOctreeCullShadow virtual bool earlyFail(LLSpatialGroup* group) { if (mResult || //already found a node, don't check any more - group->mOctreeNode->getParent() && //never occlusion cull the root node - LLPipeline::sUseOcclusion && //ignore occlusion if disabled - group->isState(LLSpatialGroup::OCCLUDED)) + (group->mOctreeNode->getParent() && //never occlusion cull the root node + LLPipeline::sUseOcclusion && //ignore occlusion if disabled + group->isOcclusionState(LLSpatialGroup::OCCLUDED))) { return true; } @@ -1857,6 +2156,12 @@ BOOL LLSpatialPartition::isOcclusionEnabled() BOOL LLSpatialPartition::getVisibleExtents(LLCamera& camera, LLVector3& visMin, LLVector3& visMax) { + { + LLFastTimer ftm(FTM_CULL_REBOUND); + LLSpatialGroup* group = (LLSpatialGroup*) mOctree->getListener(0); + group->rebound(); + } + LLOctreeCullVisExtents vis(&camera, visMin, visMax); vis.traverse(mOctree); return vis.mEmpty; @@ -1876,12 +2181,9 @@ S32 LLSpatialPartition::cull(LLCamera &camera, std::vector<LLDrawable *>* result ((LLSpatialGroup*)mOctree->getListener(0))->checkStates(); #endif { - BOOL temp = sFreezeState; - sFreezeState = FALSE; LLFastTimer ftm(FTM_CULL_REBOUND); LLSpatialGroup* group = (LLSpatialGroup*) mOctree->getListener(0); group->rebound(); - sFreezeState = temp; } #if LL_OCTREE_PARANOIA_CHECK @@ -1918,6 +2220,11 @@ S32 LLSpatialPartition::cull(LLCamera &camera, std::vector<LLDrawable *>* result BOOL earlyFail(LLCamera* camera, LLSpatialGroup* group) { + if (camera->getOrigin().isExactlyZero()) + { + return FALSE; + } + const F32 vel = SG_OCCLUSION_FUDGE*2.f; LLVector3 c = group->mBounds[0]; LLVector3 r = group->mBounds[1] + LLVector3(vel,vel,vel); @@ -2195,7 +2502,7 @@ void renderVisibility(LLSpatialGroup* group, LLCamera* camera) LLGLEnable cull(GL_CULL_FACE); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - BOOL render_objects = (!LLPipeline::sUseOcclusion || !group->isState(LLSpatialGroup::OCCLUDED)) && group->isVisible() && + BOOL render_objects = (!LLPipeline::sUseOcclusion || !group->isOcclusionState(LLSpatialGroup::OCCLUDED)) && group->isVisible() && !group->getData().empty(); if (render_objects) { @@ -2436,6 +2743,39 @@ void renderBatchSize(LLDrawInfo* params) pushVerts(params, LLVertexBuffer::MAP_VERTEX); } +void renderShadowFrusta(LLDrawInfo* params) +{ + LLGLEnable blend(GL_BLEND); + gGL.setSceneBlendType(LLRender::BT_ADD); + + LLVector3 center = (params->mExtents[1]+params->mExtents[0])*0.5f; + LLVector3 size = (params->mExtents[1]-params->mExtents[0])*0.5f; + + if (gPipeline.mShadowCamera[4].AABBInFrustum(center, size)) + { + glColor3f(1,0,0); + pushVerts(params, LLVertexBuffer::MAP_VERTEX); + } + if (gPipeline.mShadowCamera[5].AABBInFrustum(center, size)) + { + glColor3f(0,1,0); + pushVerts(params, LLVertexBuffer::MAP_VERTEX); + } + if (gPipeline.mShadowCamera[6].AABBInFrustum(center, size)) + { + glColor3f(0,0,1); + pushVerts(params, LLVertexBuffer::MAP_VERTEX); + } + if (gPipeline.mShadowCamera[7].AABBInFrustum(center, size)) + { + glColor3f(1,0,1); + pushVerts(params, LLVertexBuffer::MAP_VERTEX); + } + + gGL.setSceneBlendType(LLRender::BT_ALPHA); +} + + void renderLights(LLDrawable* drawablep) { if (!drawablep->isLight()) @@ -2571,6 +2911,9 @@ class LLOctreeRenderNonOccluded : public LLOctreeTraveler<LLDrawable> //draw tight fit bounding boxes for spatial group if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_OCTREE)) { + group->rebuildGeom(); + group->rebuildMesh(); + renderOctree(group); stop_glerror(); } @@ -2578,6 +2921,9 @@ class LLOctreeRenderNonOccluded : public LLOctreeTraveler<LLDrawable> //render visibility wireframe if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_OCCLUSION)) { + group->rebuildGeom(); + group->rebuildMesh(); + gGL.flush(); glPushMatrix(); gGLLastMatrix = NULL; @@ -2603,6 +2949,19 @@ class LLOctreeRenderNonOccluded : public LLOctreeTraveler<LLDrawable> LLVector3 nodeCenter = group->mBounds[0]; LLVector3 octCenter = LLVector3(group->mOctreeNode->getCenter()); + group->rebuildGeom(); + group->rebuildMesh(); + + if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_BBOXES)) + { + if (!group->getData().empty()) + { + gGL.color3f(0,0,1); + drawBoxOutline(group->mObjectBounds[0], + group->mObjectBounds[1]); + } + } + for (LLSpatialGroup::OctreeNode::const_element_iter i = branch->getData().begin(); i != branch->getData().end(); ++i) { LLDrawable* drawable = *i; @@ -2612,6 +2971,16 @@ class LLOctreeRenderNonOccluded : public LLOctreeTraveler<LLDrawable> renderBoundingBox(drawable); } + if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_BUILD_QUEUE)) + { + if (drawable->isState(LLDrawable::IN_REBUILD_Q2)) + { + gGL.color4f(0.6f, 0.6f, 0.1f, 1.f); + const LLVector3* ext = drawable->getSpatialExtents(); + drawBoxOutline((ext[0]+ext[1])*0.5f, (ext[1]-ext[0])*0.5f); + } + } + if (drawable->getVOVolume() && gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY)) { renderTexturePriority(drawable); @@ -2660,6 +3029,10 @@ class LLOctreeRenderNonOccluded : public LLOctreeTraveler<LLDrawable> { renderBatchSize(draw_info); } + if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA)) + { + renderShadowFrusta(draw_info); + } } } } @@ -2710,6 +3083,79 @@ void LLSpatialPartition::renderIntersectingBBoxes(LLCamera* camera) pusher.traverse(mOctree); } +class LLOctreeStateCheck : public LLOctreeTraveler<LLDrawable> +{ +public: + U32 mInheritedMask[LLViewerCamera::NUM_CAMERAS]; + + LLOctreeStateCheck() + { + for (U32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++) + { + mInheritedMask[i] = 0; + } + } + + virtual void traverse(const LLSpatialGroup::OctreeNode* node) + { + LLSpatialGroup* group = (LLSpatialGroup*) node->getListener(0); + + node->accept(this); + + + U32 temp[LLViewerCamera::NUM_CAMERAS]; + + for (U32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++) + { + temp[i] = mInheritedMask[i]; + mInheritedMask[i] |= group->mOcclusionState[i] & LLSpatialGroup::OCCLUDED; + } + + for (U32 i = 0; i < node->getChildCount(); i++) + { + traverse(node->getChild(i)); + } + + for (U32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++) + { + mInheritedMask[i] = temp[i]; + } + } + + + virtual void visit(const LLOctreeNode<LLDrawable>* state) + { + LLSpatialGroup* group = (LLSpatialGroup*) state->getListener(0); + + for (U32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++) + { + if (mInheritedMask[i] && !(group->mOcclusionState[i] & mInheritedMask[i])) + { + llerrs << "Spatial group failed inherited mask test." << llendl; + } + } + + if (group->isState(LLSpatialGroup::DIRTY)) + { + assert_parent_state(group, LLSpatialGroup::DIRTY); + } + } + + void assert_parent_state(LLSpatialGroup* group, U32 state) + { + LLSpatialGroup* parent = group->getParent(); + while (parent) + { + if (!parent->isState(state)) + { + llerrs << "Spatial group failed parent state check." << llendl; + } + parent = parent->getParent(); + } + } +}; + + void LLSpatialPartition::renderDebug() { if (!gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_OCTREE | @@ -2722,7 +3168,9 @@ void LLSpatialPartition::renderDebug() LLPipeline::RENDER_DEBUG_TEXTURE_ANIM | LLPipeline::RENDER_DEBUG_RAYCAST | LLPipeline::RENDER_DEBUG_AVATAR_VOLUME | - LLPipeline::RENDER_DEBUG_AGENT_TARGET)) + LLPipeline::RENDER_DEBUG_AGENT_TARGET | + LLPipeline::RENDER_DEBUG_BUILD_QUEUE | + LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA)) { return; } @@ -2757,6 +3205,12 @@ void LLSpatialPartition::renderDebug() render_debug.traverse(mOctree); } +void LLSpatialGroup::drawObjectBox(LLColor4 col) +{ + gGL.color4fv(col.mV); + drawBox(mObjectBounds[0], mObjectBounds[1]*1.01f+LLVector3(0.001f, 0.001f, 0.001f)); +} + BOOL LLSpatialPartition::isVisible(const LLVector3& v) { @@ -2937,10 +3391,10 @@ LLDrawInfo::LLDrawInfo(U16 start, U16 end, U32 count, U32 offset, LLDrawInfo::~LLDrawInfo() { - if (LLSpatialGroup::sNoDelete) + /*if (LLSpatialGroup::sNoDelete) { llerrs << "LLDrawInfo deleted illegally!" << llendl; - } + }*/ if (mFace) { diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h index 13ab35402c85aaf767ef826315e444785ee05f67..16e8782a8e06d2093c3bcf24586dd1ebf46c1ca0 100644 --- a/indra/newview/llspatialpartition.h +++ b/indra/newview/llspatialpartition.h @@ -44,6 +44,7 @@ #include "llcubemap.h" #include "lldrawpool.h" #include "llface.h" +#include "llviewercamera.h" #include <queue> @@ -53,6 +54,8 @@ class LLSpatialPartition; class LLSpatialBridge; class LLSpatialGroup; +class LLTextureAtlas; +class LLTextureAtlasSlot; S32 AABBSphereIntersect(const LLVector3& min, const LLVector3& max, const LLVector3 &origin, const F32 &rad); S32 AABBSphereIntersectR2(const LLVector3& min, const LLVector3& max, const LLVector3 &origin, const F32 &radius_squared); @@ -72,7 +75,7 @@ class LLDrawInfo : public LLRefCount LLPointer<LLVertexBuffer> mVertexBuffer; - LLPointer<LLViewerTexture> mTexture; + LLPointer<LLViewerTexture> mTexture; LLColor4U mGlowColor; S32 mDebugColor; const LLMatrix4* mTextureMatrix; @@ -154,12 +157,14 @@ class LLDrawInfo : public LLRefCount class LLSpatialGroup : public LLOctreeListener<LLDrawable> { friend class LLSpatialPartition; + friend class LLOctreeStateCheck; public: static U32 sNodeCount; static BOOL sNoDelete; //deletion of spatial groups and draw info not allowed if TRUE typedef std::vector<LLPointer<LLSpatialGroup> > sg_vector_t; typedef std::set<LLPointer<LLSpatialGroup> > sg_set_t; + typedef std::list<LLPointer<LLSpatialGroup> > sg_list_t; typedef std::vector<LLPointer<LLSpatialBridge> > bridge_list_t; typedef std::vector<LLPointer<LLDrawInfo> > drawmap_elem_t; typedef std::map<U32, drawmap_elem_t > draw_map_t; @@ -184,6 +189,14 @@ class LLSpatialGroup : public LLOctreeListener<LLDrawable> } }; + struct CompareUpdateUrgency + { + bool operator()(const LLPointer<LLSpatialGroup> lhs, const LLPointer<LLSpatialGroup> rhs) + { + return lhs->getUpdateUrgency() > rhs->getUpdateUrgency(); + } + }; + struct CompareDepthGreater { bool operator()(const LLSpatialGroup* const& lhs, const LLSpatialGroup* const& rhs) @@ -194,35 +207,44 @@ class LLSpatialGroup : public LLOctreeListener<LLDrawable> typedef enum { - OCCLUDED = 0x00000001, - IN_QUEUE = 0x00000002, - QUERY_PENDING = 0x00000004, - ACTIVE_OCCLUSION = 0x00000008, - DISCARD_QUERY = 0x00000010, - DEAD = 0x00000020, - EARLY_FAIL = 0x00000040, - DIRTY = 0x00000080, - OBJECT_DIRTY = 0x00000100, - GEOM_DIRTY = 0x00000200, - ALPHA_DIRTY = 0x00000800, - SKIP_FRUSTUM_CHECK = 0x00001000, - IN_IMAGE_QUEUE = 0x00002000, - IMAGE_DIRTY = 0x00004000, - OCCLUSION_DIRTY = 0x00008000, - MESH_DIRTY = 0x00010000, + OCCLUDED = 0x00010000, + QUERY_PENDING = 0x00020000, + ACTIVE_OCCLUSION = 0x00040000, + DISCARD_QUERY = 0x00080000, + EARLY_FAIL = 0x00100000, + } eOcclusionState; + + typedef enum + { + DEAD = 0x00000001, + DIRTY = 0x00000002, + OBJECT_DIRTY = 0x00000004, + GEOM_DIRTY = 0x00000008, + ALPHA_DIRTY = 0x00000010, + SKIP_FRUSTUM_CHECK = 0x00000020, + IN_IMAGE_QUEUE = 0x00000040, + IMAGE_DIRTY = 0x00000080, + OCCLUSION_DIRTY = 0x00000100, + MESH_DIRTY = 0x00000200, + NEW_DRAWINFO = 0x00000400, + IN_BUILD_Q1 = 0x00000800, + IN_BUILD_Q2 = 0x00001000, + STATE_MASK = 0x0000FFFF, } eSpatialState; typedef enum { STATE_MODE_SINGLE = 0, //set one node STATE_MODE_BRANCH, //set entire branch - STATE_MODE_DIFF //set entire branch as long as current state is different + STATE_MODE_DIFF, //set entire branch as long as current state is different + STATE_MODE_ALL_CAMERAS, //used for occlusion state, set state for all cameras } eSetStateMode; LLSpatialGroup(OctreeNode* node, LLSpatialPartition* part); BOOL isDead() { return isState(DEAD); } - BOOL isState(U32 state) const { return mState & state ? TRUE : FALSE; } + BOOL isState(U32 state) const; + BOOL isOcclusionState(U32 state) const { return mOcclusionState[LLViewerCamera::sCurCameraID] & state ? TRUE : FALSE; } U32 getState() { return mState; } void setState(U32 state); void clearState(U32 state); @@ -233,10 +255,14 @@ class LLSpatialGroup : public LLOctreeListener<LLDrawable> void validateDrawMap(); void setState(U32 state, S32 mode); + void clearState(U32 state, S32 mode); + + void setOcclusionState(U32 state, S32 mode = STATE_MODE_SINGLE); + void clearOcclusionState(U32 state, S32 mode = STATE_MODE_SINGLE); LLSpatialGroup* getParent(); - void clearState(U32 state, S32 mode); + BOOL addObject(LLDrawable *drawablep, BOOL add_all = FALSE, BOOL from_octree = FALSE); BOOL removeObject(LLDrawable *drawablep, BOOL from_octree = FALSE); BOOL updateInGroup(LLDrawable *drawablep, BOOL immediate = FALSE); // Update position if it's in the group @@ -253,6 +279,7 @@ class LLSpatialGroup : public LLOctreeListener<LLDrawable> void updateDistance(LLCamera& camera); BOOL needsUpdate(); + F32 getUpdateUrgency() const; BOOL changeLOD(); void rebuildGeom(); void rebuildMesh(); @@ -262,6 +289,8 @@ class LLSpatialGroup : public LLOctreeListener<LLDrawable> element_list& getData() { return mOctreeNode->getData(); } U32 getElementCount() const { return mOctreeNode->getElementCount(); } + void drawObjectBox(LLColor4 col); + //LISTENER FUNCTIONS virtual void handleInsertion(const TreeNode* node, LLDrawable* face); virtual void handleRemoval(const TreeNode* node, LLDrawable* face); @@ -270,10 +299,41 @@ class LLSpatialGroup : public LLOctreeListener<LLDrawable> virtual void handleChildAddition(const OctreeNode* parent, OctreeNode* child); virtual void handleChildRemoval(const OctreeNode* parent, const OctreeNode* child); +//------------------- +//for atlas use +//------------------- + //atlas + void setCurUpdatingTime(U32 t) {mCurUpdatingTime = t ;} + U32 getCurUpdatingTime() const { return mCurUpdatingTime ;} + + void setCurUpdatingSlot(LLTextureAtlasSlot* slotp) ; + LLTextureAtlasSlot* getCurUpdatingSlot(LLViewerTexture* imagep, S8 recursive_level = 3) ; + + void setCurUpdatingTexture(LLViewerTexture* tex){ mCurUpdatingTexture = tex ;} + LLViewerTexture* getCurUpdatingTexture() const { return mCurUpdatingTexture ;} + + BOOL hasAtlas(LLTextureAtlas* atlasp) ; + LLTextureAtlas* getAtlas(S8 ncomponents, S8 to_be_reserved, S8 recursive_level = 3) ; + void addAtlas(LLTextureAtlas* atlasp, S8 recursive_level = 3) ; + void removeAtlas(LLTextureAtlas* atlasp, BOOL remove_group = TRUE, S8 recursive_level = 3) ; + void clearAtlasList() ; +private: + U32 mCurUpdatingTime ; + //do not make the below two to use LLPointer + //because mCurUpdatingTime invalidates them automatically. + LLTextureAtlasSlot* mCurUpdatingSlotp ; + LLViewerTexture* mCurUpdatingTexture ; + + std::vector< std::list<LLTextureAtlas*> > mAtlasList ; +//------------------- +//end for atlas use +//------------------- + protected: virtual ~LLSpatialGroup(); U32 mState; + U32 mOcclusionState[LLViewerCamera::NUM_CAMERAS]; S32 mLODHash; static S32 sLODSeed; @@ -292,12 +352,12 @@ class LLSpatialGroup : public LLOctreeListener<LLDrawable> LLPointer<LLVertexBuffer> mVertexBuffer; F32* mOcclusionVerts; - GLuint mOcclusionQuery; + GLuint mOcclusionQuery[LLViewerCamera::NUM_CAMERAS]; U32 mBufferUsage; draw_map_t mDrawMap; - S32 mVisible; + S32 mVisible[LLViewerCamera::NUM_CAMERAS]; F32 mDistance; F32 mDepth; F32 mLastUpdateDistance; @@ -326,9 +386,7 @@ class LLGeometryManager class LLSpatialPartition: public LLGeometryManager { public: - static BOOL sFreezeState; //if true, no spatialgroup state updates will be made - - LLSpatialPartition(U32 data_mask, U32 mBufferUsage = GL_STATIC_DRAW_ARB); + LLSpatialPartition(U32 data_mask, BOOL render_by_group, U32 mBufferUsage); virtual ~LLSpatialPartition(); LLSpatialGroup *put(LLDrawable *drawablep, BOOL was_visible = FALSE); @@ -374,7 +432,7 @@ class LLSpatialPartition: public LLGeometryManager BOOL mOcclusionEnabled; // if TRUE, occlusion culling is performed BOOL mInfiniteFarClip; // if TRUE, frustum culling ignores far clip plane U32 mBufferUsage; - BOOL mRenderByGroup; + const BOOL mRenderByGroup; U32 mLODSeed; U32 mLODPeriod; //number of frames between LOD updates for a given spatial group (staggered by mLODSeed) U32 mVertexDataMask; @@ -393,7 +451,7 @@ class LLSpatialBridge : public LLDrawable, public LLSpatialPartition public: typedef std::vector<LLPointer<LLSpatialBridge> > bridge_vector_t; - LLSpatialBridge(LLDrawable* root, U32 data_mask); + LLSpatialBridge(LLDrawable* root, BOOL render_by_group, U32 data_mask); virtual BOOL isSpatialBridge() const { return TRUE; } diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 1fe7a75be76d15317b293bd847147f62550d50d0..d778d01bed45eec5e1f1b08f64155bbda1d5ab83 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -423,8 +423,8 @@ bool idle_startup() if (!gNoRender) { - // Update images? - gTextureList.updateImages(0.01f); + //note: Removing this line will cause incorrect button size in the login screen. -- bao. + gTextureList.updateImages(0.01f) ; } if ( STATE_FIRST == LLStartUp::getStartupState() ) @@ -1667,10 +1667,6 @@ bool idle_startup() // lets create "Friends" and "Friends/All" in the Inventory "Calling Cards" and fill it with buddies LLFriendCardsManager::instance().syncFriendsFolder(); - llinfos << "Setting Inventory changed mask and notifying observers" << llendl; - gInventory.addChangedMask(LLInventoryObserver::ALL, LLUUID::null); - gInventory.notifyObservers(); - // set up callbacks llinfos << "Registering Callbacks" << llendl; LLMessageSystem* msg = gMessageSystem; diff --git a/indra/newview/llsurface.cpp b/indra/newview/llsurface.cpp index de3d80f044709ae872ac0fee7daa783f7090a583..5440b2c9adfe0c35c139ea9dd7928b3d2510443b 100644 --- a/indra/newview/llsurface.cpp +++ b/indra/newview/llsurface.cpp @@ -214,7 +214,7 @@ void LLSurface::create(const S32 grids_per_edge, LLViewerTexture* LLSurface::getSTexture() { - if (mSTexturep.notNull() && !mSTexturep->hasValidGLTexture()) + if (mSTexturep.notNull() && !mSTexturep->hasGLTexture()) { createSTexture(); } @@ -223,7 +223,7 @@ LLViewerTexture* LLSurface::getSTexture() LLViewerTexture* LLSurface::getWaterTexture() { - if (mWaterTexturep.notNull() && !mWaterTexturep->hasValidGLTexture()) + if (mWaterTexturep.notNull() && !mWaterTexturep->hasGLTexture()) { createWaterTexture(); } @@ -235,6 +235,12 @@ void LLSurface::createSTexture() if (!mSTexturep) { // Fill with dummy gray data. + + //mSTexturep = LLViewerTextureManager::getLocalTexture(sTextureSize, sTextureSize, 3, FALSE); + //mSTexturep->dontDiscard(); + //mSTexturep->setAddressMode(LLTexUnit::TAM_CLAMP); + + // GL NOT ACTIVE HERE LLPointer<LLImageRaw> raw = new LLImageRaw(sTextureSize, sTextureSize, 3); U8 *default_texture = raw->getData(); for (S32 i = 0; i < sTextureSize; i++) @@ -270,7 +276,8 @@ void LLSurface::createWaterTexture() *(default_texture + (i*sTextureSize/2 + j)*4 + 2) = MAX_WATER_COLOR.mV[2]; *(default_texture + (i*sTextureSize/2 + j)*4 + 3) = MAX_WATER_COLOR.mV[3]; } - } + } + mWaterTexturep = LLViewerTextureManager::getLocalTexture(raw.get(), FALSE); mWaterTexturep->dontDiscard(); gGL.getTexUnit(0)->bind(mWaterTexturep); @@ -1189,7 +1196,7 @@ F32 LLSurface::getWaterHeight() const BOOL LLSurface::generateWaterTexture(const F32 x, const F32 y, const F32 width, const F32 height) { - if (!getWaterTexture() || !mWaterTexturep->hasGLTexture()) + if (!getWaterTexture()) { return FALSE; } @@ -1273,6 +1280,11 @@ BOOL LLSurface::generateWaterTexture(const F32 x, const F32 y, } } + if (!mWaterTexturep->hasGLTexture()) + { + mWaterTexturep->createGLTexture(0, raw); + } + mWaterTexturep->setSubImage(raw, x_begin, y_begin, x_end - x_begin, y_end - y_begin); return TRUE; } diff --git a/indra/newview/llsurfacepatch.cpp b/indra/newview/llsurfacepatch.cpp index 5fac5fd1e43f2e49889e86acefda14f442d5e3c4..0ce794addb621e0401f580d2f68569f850ed74b7 100644 --- a/indra/newview/llsurfacepatch.cpp +++ b/indra/newview/llsurfacepatch.cpp @@ -712,17 +712,7 @@ BOOL LLSurfacePatch::updateTexture() if (mVObjp) { mVObjp->dirtyGeom(); - } - updateCompositionStats(); - F32 tex_patch_size = meters_per_grid*grids_per_patch_edge; - if (comp->generateTexture((F32)origin_region[VX], (F32)origin_region[VY], - tex_patch_size, tex_patch_size)) - { - mSTexUpdate = FALSE; - - // Also generate the water texture - mSurfacep->generateWaterTexture((F32)origin_region.mdV[VX], (F32)origin_region.mdV[VY], - tex_patch_size, tex_patch_size); + gPipeline.markGLRebuild(mVObjp); return TRUE; } } @@ -735,6 +725,28 @@ BOOL LLSurfacePatch::updateTexture() } } +void LLSurfacePatch::updateGL() +{ + F32 meters_per_grid = getSurface()->getMetersPerGrid(); + F32 grids_per_patch_edge = (F32)getSurface()->getGridsPerPatchEdge(); + + LLViewerRegion *regionp = getSurface()->getRegion(); + LLVector3d origin_region = getOriginGlobal() - getSurface()->getOriginGlobal(); + + LLVLComposition* comp = regionp->getComposition(); + + updateCompositionStats(); + F32 tex_patch_size = meters_per_grid*grids_per_patch_edge; + if (comp->generateTexture((F32)origin_region[VX], (F32)origin_region[VY], + tex_patch_size, tex_patch_size)) + { + mSTexUpdate = FALSE; + + // Also generate the water texture + mSurfacep->generateWaterTexture((F32)origin_region.mdV[VX], (F32)origin_region.mdV[VY], + tex_patch_size, tex_patch_size); + } +} void LLSurfacePatch::dirtyZ() { diff --git a/indra/newview/llsurfacepatch.h b/indra/newview/llsurfacepatch.h index 4cac9773059d752faf19f50339a551f9ef75124b..ebfb64c1d8b67ce8171f94d645202bca90947cf4 100644 --- a/indra/newview/llsurfacepatch.h +++ b/indra/newview/llsurfacepatch.h @@ -90,6 +90,7 @@ class LLSurfacePatch void updateCameraDistanceRegion( const LLVector3 &pos_region); void updateVisibility(); + void updateGL(); void dirtyZ(); // Dirty the z values of this patch void setHasReceivedData(); diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h index b0ac13913e643662f06648e6451a0e11a6b7fecc..6922eae0e14f83ec200b193c33dc3a31e1a9b11d 100644 --- a/indra/newview/lltexlayer.h +++ b/indra/newview/lltexlayer.h @@ -193,7 +193,7 @@ class LLTexLayerSet void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components); void renderAlphaMaskTextures(S32 width, S32 height, bool forceClear = false); LLTexLayer* findLayerByName(std::string name); - + LLVOAvatarSelf* getAvatar() const { return mAvatar; } const std::string getBodyRegion() const; BOOL hasComposite() const { return (mComposite.notNull()); } diff --git a/indra/newview/lltexlayerparams.cpp b/indra/newview/lltexlayerparams.cpp index c9117a84a508354ef20e064e484652efcf3fdee4..7a1ee95a65e26b55e3b45342e36a1c453471ac3e 100644 --- a/indra/newview/lltexlayerparams.cpp +++ b/indra/newview/lltexlayerparams.cpp @@ -94,7 +94,7 @@ void LLTexLayerParamAlpha::getCacheByteCount(S32* gl_bytes) { S32 bytes = (S32)tex->getWidth() * tex->getHeight() * tex->getComponents(); - if (tex->hasValidGLTexture()) + if (tex->hasGLTexture()) { *gl_bytes += bytes; } diff --git a/indra/newview/lltextureatlas.cpp b/indra/newview/lltextureatlas.cpp new file mode 100644 index 0000000000000000000000000000000000000000..79b36863860544016751fd78e2f92d4d0d830e1c --- /dev/null +++ b/indra/newview/lltextureatlas.cpp @@ -0,0 +1,422 @@ +/** + * @file lltextureatlas.cpp + * @brief LLTextureAtlas class implementation. + * + * $LicenseInfo:firstyear=2002&license=viewergpl$ + * + * Copyright (c) 2002-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ +#include "llviewerprecompiledheaders.h" +#include "linden_common.h" +#include "llerror.h" +#include "llimage.h" +#include "llmath.h" +#include "llgl.h" +#include "llrender.h" +#include "lltextureatlas.h" + +//------------------- +S16 LLTextureAtlas::sMaxSubTextureSize = 64 ; +S16 LLTextureAtlas::sSlotSize = 32 ; + +#ifndef DEBUG_ATLAS +#define DEBUG_ATLAS 0 +#endif + +#ifndef DEBUG_USAGE_BITS +#define DEBUG_USAGE_BITS 0 +#endif +//************************************************************************************************************** +LLTextureAtlas::LLTextureAtlas(U8 ncomponents, S16 atlas_dim) : + LLViewerTexture(atlas_dim * sSlotSize, atlas_dim * sSlotSize, ncomponents, TRUE), + mAtlasDim(atlas_dim), + mNumSlotsReserved(0), + mMaxSlotsInAtlas(atlas_dim * atlas_dim) +{ + generateEmptyUsageBits() ; + + //generate an empty texture + generateGLTexture() ; + LLPointer<LLImageRaw> image_raw = new LLImageRaw(mFullWidth, mFullHeight, mComponents); + createGLTexture(0, image_raw, 0); + image_raw = NULL; +} + +LLTextureAtlas::~LLTextureAtlas() +{ + if(mSpatialGroupList.size() > 0) + { + llerrs << "Not clean up the spatial groups!" << llendl ; + } + releaseUsageBits() ; +} + +//virtual +S8 LLTextureAtlas::getType() const +{ + return LLViewerTexture::ATLAS_TEXTURE ; +} + +void LLTextureAtlas::getTexCoordOffset(S16 col, S16 row, F32& xoffset, F32& yoffset) +{ + xoffset = (F32)col / mAtlasDim ; + yoffset = (F32)row / mAtlasDim ; +} + +void LLTextureAtlas::getTexCoordScale(S32 w, S32 h, F32& xscale, F32& yscale) +{ + xscale = (F32)w / (mAtlasDim * sSlotSize) ; + yscale = (F32)h / (mAtlasDim * sSlotSize) ; +} + +//insert a texture piece into the atlas +LLGLuint LLTextureAtlas::insertSubTexture(LLImageGL* source_gl_tex, S32 discard_level, const LLImageRaw* raw_image, S16 slot_col, S16 slot_row) +{ + if(!getTexName()) + { + return 0 ; + } + + S32 w = raw_image->getWidth() ; + S32 h = raw_image->getHeight() ; + if(w < 8 || w > sMaxSubTextureSize || h < 8 || h > sMaxSubTextureSize) + { + //size overflow + return 0 ; + } + + BOOL res = gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, getTexName()); + if (!res) + { + llerrs << "bindTexture failed" << llendl; + } + + GLint xoffset = sSlotSize * slot_col ; + GLint yoffset = sSlotSize * slot_row ; + + if(!source_gl_tex->preAddToAtlas(discard_level, raw_image)) + { + return 0 ; + } + + glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, TRUE); + glTexSubImage2D(GL_TEXTURE_2D, 0, xoffset, yoffset, w, h, + mGLTexturep->getPrimaryFormat(), mGLTexturep->getFormatType(), raw_image->getData()); + + source_gl_tex->postAddToAtlas() ; + return getTexName(); +} + +//release a sub-texture slot from the atlas +void LLTextureAtlas::releaseSlot(S16 slot_col, S16 slot_row, S8 slot_width) +{ + unmarkUsageBits(slot_width, slot_col, slot_row) ; + mNumSlotsReserved -= slot_width * slot_width ; +} + +BOOL LLTextureAtlas::isEmpty() const +{ + return !mNumSlotsReserved ; +} + +BOOL LLTextureAtlas::isFull(S8 to_be_reserved) const +{ + return mNumSlotsReserved + to_be_reserved > mMaxSlotsInAtlas ; +} +F32 LLTextureAtlas::getFullness() const +{ + return (F32)mNumSlotsReserved / mMaxSlotsInAtlas ; +} + +void LLTextureAtlas::addSpatialGroup(LLSpatialGroup* groupp) +{ + if(groupp && !hasSpatialGroup(groupp)) + { + mSpatialGroupList.push_back(groupp); + } +} + +void LLTextureAtlas::removeSpatialGroup(LLSpatialGroup* groupp) +{ + if(groupp) + { + mSpatialGroupList.remove(groupp); + } +} + +void LLTextureAtlas::clearSpatialGroup() +{ + mSpatialGroupList.clear(); +} +void LLTextureAtlas::removeLastSpatialGroup() +{ + mSpatialGroupList.pop_back() ; +} + +LLSpatialGroup* LLTextureAtlas::getLastSpatialGroup() +{ + if(mSpatialGroupList.size() > 0) + { + return mSpatialGroupList.back() ; + } + return NULL ; +} + +BOOL LLTextureAtlas::hasSpatialGroup(LLSpatialGroup* groupp) +{ + for(std::list<LLSpatialGroup*>::iterator iter = mSpatialGroupList.begin(); iter != mSpatialGroupList.end() ; ++iter) + { + if(*iter == groupp) + { + return TRUE ; + } + } + return FALSE ; +} + +//-------------------------------------------------------------------------------------- +//private +void LLTextureAtlas::generateEmptyUsageBits() +{ + S32 col_len = (mAtlasDim + 7) >> 3 ; + mUsageBits = new U8*[mAtlasDim] ; + *mUsageBits = new U8[mAtlasDim * col_len] ; + + mUsageBits[0] = *mUsageBits ; + for(S32 i = 1 ; i < mAtlasDim ; i++) + { + mUsageBits[i] = mUsageBits[i-1] + col_len ; + + for(S32 j = 0 ; j < col_len ; j++) + { + //init by 0 for all bits. + mUsageBits[i][j] = 0 ; + } + } + + //do not forget mUsageBits[0]! + for(S32 j = 0 ; j < col_len ; j++) + { + //init by 0 for all bits. + mUsageBits[0][j] = 0 ; + } + + mTestBits = NULL ; +#if DEBUG_USAGE_BITS + //------------ + //test + mTestBits = new U8*[mAtlasDim] ; + *mTestBits = new U8[mAtlasDim * mAtlasDim] ; + mTestBits[0] = *mTestBits ; + for(S32 i = 1 ; i < mAtlasDim ; i++) + { + mTestBits[i] = mTestBits[i-1] + mAtlasDim ; + + for(S32 j = 0 ; j < mAtlasDim ; j++) + { + //init by 0 for all bits. + mTestBits[i][j] = 0 ; + } + } + + for(S32 j = 0 ; j < mAtlasDim ; j++) + { + //init by 0 for all bits. + mTestBits[0][j] = 0 ; + } +#endif +} + +void LLTextureAtlas::releaseUsageBits() +{ + if(mUsageBits) + { + delete[] *mUsageBits ; + delete[] mUsageBits ; + } + mUsageBits = NULL ; + + //test + if( mTestBits) + { + delete[] *mTestBits; + delete[] mTestBits; + } + mTestBits = NULL ; +} + +void LLTextureAtlas::markUsageBits(S8 bits_len, U8 mask, S16 col, S16 row) +{ + S16 x = col >> 3 ; + + for(S8 i = 0 ; i < bits_len ; i++) + { + mUsageBits[row + i][x] |= mask ; + } + +#if DEBUG_USAGE_BITS + //test + for(S8 i = row ; i < row + bits_len ; i++) + { + for(S8 j = col ; j < col + bits_len ; j++) + { + mTestBits[i][j] = 1 ; + } + } +#endif +} + +void LLTextureAtlas::unmarkUsageBits(S8 bits_len, S16 col, S16 row) +{ + S16 x = col >> 3 ; + U8 mask = 1 ; + for(S8 i = 1 ; i < bits_len ; i++) + { + mask |= (1 << i) ; + } + mask <<= (col & 7) ; + mask = ~mask ; + + for(S8 i = 0 ; i < bits_len ; i++) + { + mUsageBits[row + i][x] &= mask ; + } + +#if DEBUG_USAGE_BITS + //test + for(S8 i = row ; i < row + bits_len ; i++) + { + for(S8 j = col ; j < col + bits_len ; j++) + { + mTestBits[i][j] = 0 ; + } + } +#endif +} + +//return true if any of bits in the range marked. +BOOL LLTextureAtlas::areUsageBitsMarked(S8 bits_len, U8 mask, S16 col, S16 row) +{ + BOOL ret = FALSE ; + S16 x = col >> 3 ; + + for(S8 i = 0 ; i < bits_len ; i++) + { + if(mUsageBits[row + i][x] & mask) + { + ret = TRUE ; + break ; + //return TRUE ; + } + } + +#if DEBUG_USAGE_BITS + //test + BOOL ret2 = FALSE ; + for(S8 i = row ; i < row + bits_len ; i++) + { + for(S8 j = col ; j < col + bits_len ; j++) + { + if(mTestBits[i][j]) + { + ret2 = TRUE ; + } + } + } + + if(ret != ret2) + { + llerrs << "bits map corrupted." << llendl ; + } +#endif + return ret ;//FALSE ; +} + +//---------------------------------------------------------------------- +// +//index order: Z order, i.e.: +// |-----|-----|-----|-----| +// | 10 | 11 | 14 | 15 | +// |-----|-----|-----|-----| +// | 8 | 9 | 12 | 13 | +// |-----|-----|-----|-----| +// | 2 | 3 | 6 | 7 | +// |-----|-----|-----|-----| +// | 0 | 1 | 4 | 5 | +// |-----|-----|-----|-----| +void LLTextureAtlas::getPositionFromIndex(S16 index, S16& col, S16& row) +{ + col = 0 ; + row = 0 ; + + S16 index_copy = index ; + for(S16 i = 0 ; index_copy && i < 16 ; i += 2) + { + col |= ((index & (1 << i)) >> i) << (i >> 1) ; + row |= ((index & (1 << (i + 1))) >> (i + 1)) << (i >> 1) ; + index_copy >>= 2 ; + } +} +void LLTextureAtlas::getIndexFromPosition(S16 col, S16 row, S16& index) +{ + index = 0 ; + S16 col_copy = col ; + S16 row_copy = row ; + for(S16 i = 0 ; (col_copy || row_copy) && i < 16 ; i++) + { + index |= ((col & 1 << i) << i) | ((row & 1 << i) << ( i + 1)) ; + col_copy >>= 1 ; + row_copy >>= 1 ; + } +} +//---------------------------------------------------------------------- +//return TRUE if succeeds. +BOOL LLTextureAtlas::getNextAvailableSlot(S8 bits_len, S16& col, S16& row) +{ + S16 index_step = bits_len * bits_len ; + + U8 mask = 1 ; + for(S8 i = 1 ; i < bits_len ; i++) + { + mask |= (1 << i) ; + } + + U8 cur_mask ; + for(S16 index = 0 ; index < mMaxSlotsInAtlas ; index += index_step) + { + getPositionFromIndex(index, col, row) ; + + cur_mask = mask << (col & 7) ; + if(!areUsageBitsMarked(bits_len, cur_mask, col, row)) + { + markUsageBits(bits_len, cur_mask, col, row) ; + mNumSlotsReserved += bits_len * bits_len ; + + return TRUE ; + } + } + + return FALSE ; +} diff --git a/indra/newview/lltextureatlas.h b/indra/newview/lltextureatlas.h new file mode 100644 index 0000000000000000000000000000000000000000..1f756ccf1a852dcce628cf2c9787d5c666a46347 --- /dev/null +++ b/indra/newview/lltextureatlas.h @@ -0,0 +1,95 @@ +/** + * @file lltextureatlas.h + * @brief LLTextureAtlas base class. + * + * $LicenseInfo:firstyear=2002&license=viewergpl$ + * + * Copyright (c) 2002-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + + +#ifndef LL_TEXTUREATLAS_H +#define LL_TEXTUREATLAS_H + +#include "llviewertexture.h" +class LLSpatialGroup ; + +class LLTextureAtlas : public LLViewerTexture +{ +protected: + /*virtual*/ ~LLTextureAtlas() ; + +public: + LLTextureAtlas(U8 ncomponents, S16 atlas_dim = 16) ; + + /*virtual*/ S8 getType() const; + + LLGLuint insertSubTexture(LLImageGL* source_gl_tex, S32 discard_level, const LLImageRaw* raw_image, S16 slot_col, S16 slot_row) ; + void releaseSlot(S16 slot_col, S16 slot_row, S8 slot_width); + + BOOL getNextAvailableSlot(S8 bits_len, S16& col, S16& row) ; + void getTexCoordOffset(S16 col, S16 row, F32& xoffset, F32& yOffset) ; + void getTexCoordScale(S32 w, S32 h, F32& xscale, F32& yscale) ; + + BOOL isEmpty() const ; + BOOL isFull(S8 to_be_reserved = 1) const ; + F32 getFullness() const ; + + void addSpatialGroup(LLSpatialGroup* groupp) ; + void removeSpatialGroup(LLSpatialGroup* groupp) ; + LLSpatialGroup* getLastSpatialGroup() ; + void removeLastSpatialGroup() ; + BOOL hasSpatialGroup(LLSpatialGroup* groupp) ; + void clearSpatialGroup() ; + std::list<LLSpatialGroup*>* getSpatialGroupList() {return &mSpatialGroupList;} +private: + void generateEmptyUsageBits() ; + void releaseUsageBits() ; + + void markUsageBits(S8 bits_len, U8 mask, S16 col, S16 row) ; + void unmarkUsageBits(S8 bits_len, S16 col, S16 row) ; + + void getPositionFromIndex(S16 index, S16& col, S16& row) ; + void getIndexFromPosition(S16 col, S16 row, S16& index) ; + BOOL areUsageBitsMarked(S8 bits_len, U8 mask, S16 col, S16 row) ; + +private: + S16 mAtlasDim ; //number of slots per edge, i.e, there are "mAtlasDim * mAtlasDim" total slots in the atlas. + S16 mNumSlotsReserved ; + S16 mMaxSlotsInAtlas ; + U8 **mUsageBits ; + std::list<LLSpatialGroup*> mSpatialGroupList ; + +public: + //debug use only + U8 **mTestBits ; + +public: + static S16 sMaxSubTextureSize ; + static S16 sSlotSize ; +}; + +#endif + diff --git a/indra/newview/lltextureatlasmanager.cpp b/indra/newview/lltextureatlasmanager.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8f026787caa4fb91b73f69484159a107285c4f70 --- /dev/null +++ b/indra/newview/lltextureatlasmanager.cpp @@ -0,0 +1,273 @@ +/** + * @file lltextureatlasmanager.cpp + * @brief LLTextureAtlasManager class implementation. + * + * $LicenseInfo:firstyear=2002&license=viewergpl$ + * + * Copyright (c) 2002-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ +#include "llviewerprecompiledheaders.h" +#include "linden_common.h" +#include "llerror.h" +#include "llmath.h" +#include "lltextureatlas.h" +#include "lltextureatlasmanager.h" +#include "llspatialpartition.h" + +const S8 MAX_NUM_EMPTY_ATLAS = 2 ; +const F32 MIN_ATLAS_FULLNESS = 0.6f ; + +//********************************************************************************************* +//implementation of class LLTextureAtlasInfo +//********************************************************************************************* +LLTextureAtlasSlot::LLTextureAtlasSlot(LLTextureAtlas* atlasp, LLSpatialGroup* groupp, S16 col, S16 row, F32 xoffset, F32 yoffset, S8 slot_width) : + mAtlasp(atlasp), + mGroupp(groupp), + mCol(col), + mRow(row), + mReservedSlotWidth(slot_width), + mValid(FALSE), + mUpdatedTime(0), + mTexCoordOffset(xoffset, yoffset), + mTexCoordScale(1.f, 1.f) +{ + llassert_always(mAtlasp || mGroupp || mReservedSlotWidth) ; +} + +LLTextureAtlasSlot::~LLTextureAtlasSlot() +{ + if(mAtlasp) + { + mAtlasp->releaseSlot(mCol, mRow, mReservedSlotWidth) ; + if(mAtlasp->isEmpty()) + { + LLTextureAtlasManager::getInstance()->releaseAtlas(mAtlasp) ; + } + mAtlasp = NULL ; + } +} + +//void LLTextureAtlasSlot::setAtlas(LLTextureAtlas* atlasp) +//{ +// mAtlasp = atlasp ; +//} +//void LLTextureAtlasSlot::setSlotPos(S16 col, S16 row) +//{ +// mCol = col ; +// mRow = row ; +//} +//void LLTextureAtlasSlot::setSlotWidth(S8 width) +//{ +// //slot is a square with each edge length a power-of-two number +// mReservedSlotWidth = width ; +//} +//void LLTextureAtlasSlot::setTexCoordOffset(F32 xoffset, F32 yoffset) +//{ +// mTexCoordOffset.mV[0] = xoffset ; +// mTexCoordOffset.mV[1] = yoffset ; +//} + +void LLTextureAtlasSlot::setSpatialGroup(LLSpatialGroup* groupp) +{ + mGroupp = groupp ; +} +void LLTextureAtlasSlot::setTexCoordScale(F32 xscale, F32 yscale) +{ + mTexCoordScale.mV[0] = xscale ; + mTexCoordScale.mV[1] = yscale ; +} +//********************************************************************************************* +//END of implementation of class LLTextureAtlasInfo +//********************************************************************************************* + +//********************************************************************************************* +//implementation of class LLTextureAtlasManager +//********************************************************************************************* +LLTextureAtlasManager::LLTextureAtlasManager() : + mAtlasMap(4), + mEmptyAtlasMap(4) +{ +} + +LLTextureAtlasManager::~LLTextureAtlasManager() +{ + for(S32 i = 0 ; i < 4 ; i++) + { + for(ll_texture_atlas_list_t::iterator j = mAtlasMap[i].begin() ; j != mAtlasMap[i].end() ; ++j) + { + *j = NULL ; + } + for(ll_texture_atlas_list_t::iterator j = mEmptyAtlasMap[i].begin() ; j != mEmptyAtlasMap[i].end() ; ++j) + { + *j = NULL ; + } + + mAtlasMap[i].clear() ; + mEmptyAtlasMap[i].clear() ; + } + mAtlasMap.clear() ; + mEmptyAtlasMap.clear() ; +} + +//return TRUE if qualified +BOOL LLTextureAtlasManager::canAddToAtlas(S32 w, S32 h, S8 ncomponents, LLGLenum target) +{ + if(ncomponents < 1 || ncomponents > 4) + { + return FALSE ; + } + //only support GL_TEXTURE_2D + if(GL_TEXTURE_2D != target) + { + return FALSE ; + } + //real image size overflows + if(w < 8 || w > LLTextureAtlas::sMaxSubTextureSize || h < 8 || h > LLTextureAtlas::sMaxSubTextureSize) + { + return FALSE ; + } + + //if non-power-of-two number + if((w & (w - 1)) || (h & (h - 1))) + { + return FALSE ; + } + + return TRUE ; +} + +void LLTextureAtlasManager::releaseAtlas(LLTextureAtlas* atlasp) +{ + LLSpatialGroup* groupp = atlasp->getLastSpatialGroup() ; + while(groupp) + { + groupp->removeAtlas(atlasp, FALSE) ; + atlasp->removeLastSpatialGroup() ; + + groupp = atlasp->getLastSpatialGroup() ; + } + + S8 type = atlasp->getComponents() - 1 ; + //insert to the empty list + if(mEmptyAtlasMap[type].size() < MAX_NUM_EMPTY_ATLAS) + { + mEmptyAtlasMap[type].push_back(atlasp) ; + } + + //delete the atlasp + mAtlasMap[type].remove(atlasp) ; +} + +// +//this function reserves an appropriate slot from atlas pool for an image. +//return non-NULL if succeeds. +//Note: +//1, this function does not check if the image this slot assigned for qualifies for atlas or not, +// call LLTextureAtlasManager::canAddToAtlas(...) to do the check before calling this function. +//2, this function also dose not check if the image is already in atlas. It always assigns a new slot anyway. +//3, this function tries to group sub-textures from same spatial group into ONE atlas to improve render batching. +// +LLPointer<LLTextureAtlasSlot> LLTextureAtlasManager::reserveAtlasSlot(S32 sub_texture_size, S8 ncomponents, + LLSpatialGroup* groupp, LLViewerTexture* imagep) +{ + if(!groupp) + { + //do not insert to atlas if does not have a group. + return NULL ; + } + + //bits_len must <= 8 and is a power of two number, i.e.: must be one of these numbers: 1, 2, 4, 8. + if(sub_texture_size > LLTextureAtlas::sMaxSubTextureSize) + { + sub_texture_size = LLTextureAtlas::sMaxSubTextureSize ; + } + S8 bits_len = sub_texture_size / LLTextureAtlas::sSlotSize ; + if(bits_len < 1) + { + bits_len = 1 ; + } + + S16 col = -1, row = -1; + S8 total_bits = bits_len * bits_len ; + + //insert to the atlas reserved by the same spatial group + LLPointer<LLTextureAtlas> atlasp = groupp->getAtlas(ncomponents, total_bits) ; + if(atlasp.notNull()) + { + if(!atlasp->getNextAvailableSlot(bits_len, col, row)) + { + //failed + atlasp = NULL ; + } + } + + //search an atlas to fit for 'size' + if(!atlasp) + { + S8 atlas_index = ncomponents - 1 ; + ll_texture_atlas_list_t::iterator iter = mAtlasMap[atlas_index].begin() ; + for(; iter != mAtlasMap[atlas_index].end(); ++iter) + { + LLTextureAtlas* cur = (LLTextureAtlas*)*iter ; + if(cur->getFullness() < MIN_ATLAS_FULLNESS)//this atlas is empty enough for this group to insert more sub-textures later if necessary. + { + if(cur->getNextAvailableSlot(bits_len, col, row)) + { + atlasp = cur ; + groupp->addAtlas(atlasp) ; + break ; + } + } + } + } + + //create a new atlas if necessary + if(!atlasp) + { + if(mEmptyAtlasMap[ncomponents - 1].size() > 0) + { + //there is an empty one + atlasp = mEmptyAtlasMap[ncomponents - 1].back() ; + mEmptyAtlasMap[ncomponents - 1].pop_back() ; + } + else + { + atlasp = new LLTextureAtlas(ncomponents, 16) ; + } + mAtlasMap[ncomponents - 1].push_back(atlasp) ; + atlasp->getNextAvailableSlot(bits_len, col, row) ; + groupp->addAtlas(atlasp) ; + } + + F32 xoffset, yoffset ; + atlasp->getTexCoordOffset(col, row, xoffset, yoffset) ; + LLPointer<LLTextureAtlasSlot> slot_infop = new LLTextureAtlasSlot(atlasp, groupp, col, row, xoffset, yoffset, bits_len) ; + + return slot_infop ; +} + +//********************************************************************************************* +//END of implementation of class LLTextureAtlasManager +//********************************************************************************************* diff --git a/indra/newview/lltextureatlasmanager.h b/indra/newview/lltextureatlasmanager.h new file mode 100644 index 0000000000000000000000000000000000000000..4dba0759f945a037df03f646ffd7c1a00cf1e30e --- /dev/null +++ b/indra/newview/lltextureatlasmanager.h @@ -0,0 +1,111 @@ +/** + * @file lltextureatlasmanager.h + * @brief LLTextureAtlasManager base class. + * + * $LicenseInfo:firstyear=2002&license=viewergpl$ + * + * Copyright (c) 2002-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + + +#ifndef LL_TEXTUREATLASMANAGER_H +#define LL_TEXTUREATLASMANAGER_H + +#include "llmemory.h" + +class LLSpatialGroup ; +class LLViewerTexture ; + +//just use it as a structure. +class LLTextureAtlasSlot : public LLRefCount +{ +public: + LLTextureAtlasSlot(LLTextureAtlas* atlasp, LLSpatialGroup* groupp, S16 col, S16 row, F32 xoffset, F32 yoffset, S8 slot_width) ; + +protected: + virtual ~LLTextureAtlasSlot(); + +public: + + // + //do not allow to change those values + // + //void setAtlas(LLTextureAtlas* atlasp) ; + //void setSlotPos(S16 col, S16 row) ; + //void setSlotWidth(S8 width) ; + //void setTexCoordOffset(F32 xoffser, F32 yoffset) ; + // + + void setSpatialGroup(LLSpatialGroup* groupp) ; + void setTexCoordScale(F32 xscale, F32 yscale) ; + void setValid() {mValid = TRUE ;} + + LLTextureAtlas* getAtlas()const {return mAtlasp;} + LLSpatialGroup* getSpatialGroup() const {return mGroupp ;} + S16 getSlotCol()const {return mCol;} + S16 getSlotRow()const {return mRow;} + S8 getSlotWidth()const{return mReservedSlotWidth;} + BOOL isValid()const { return mValid;} + const LLVector2* getTexCoordOffset()const {return &mTexCoordOffset;} + const LLVector2* getTexCoordScale() const {return &mTexCoordScale;} + + void setUpdatedTime(U32 t) {mUpdatedTime = t;} + U32 getUpdatedTime()const {return mUpdatedTime;} + +private: + LLTextureAtlas* mAtlasp; + S16 mCol ;//col of the slot + S16 mRow ;//row of the slot + S8 mReservedSlotWidth ; //slot is a square with each edge length a power-of-two number + LLSpatialGroup* mGroupp ; + BOOL mValid ; + + LLVector2 mTexCoordOffset ; + LLVector2 mTexCoordScale ; + + U32 mUpdatedTime ; +} ; + +class LLTextureAtlasManager : public LLSingleton<LLTextureAtlasManager> +{ +private: + typedef std::list<LLPointer<LLTextureAtlas> > ll_texture_atlas_list_t ; + +public: + LLTextureAtlasManager(); + ~LLTextureAtlasManager(); + + LLPointer<LLTextureAtlasSlot> reserveAtlasSlot(S32 sub_texture_size, S8 ncomponents, + LLSpatialGroup* groupp, LLViewerTexture* imagep) ; + void releaseAtlas(LLTextureAtlas* atlasp); + + BOOL canAddToAtlas(S32 w, S32 h, S8 ncomponents, LLGLenum target) ; + +private: + std::vector<ll_texture_atlas_list_t> mAtlasMap ; + std::vector<ll_texture_atlas_list_t> mEmptyAtlasMap ; //delay some empty atlases deletion to avoid possible creation of new atlas immediately. +}; + +#endif diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp index 9da24463542f25ffa8cb952483cf5bc893c93794..ea675c5a6e48646fa51113f7a1f277b3fc04e46f 100644 --- a/indra/newview/lltextureview.cpp +++ b/indra/newview/lltextureview.cpp @@ -56,6 +56,7 @@ extern F32 texmem_lower_bound_scale; LLTextureView *gTextureView = NULL; +LLTextureSizeView *gTextureSizeView = NULL; //static std::set<LLViewerFetchedTexture*> LLTextureView::sDebugImages; @@ -315,7 +316,7 @@ void LLTextureBar::draw() pip_x += pip_width + pip_space; // we don't want to show bind/resident pips for textures using the default texture - if (mImagep->hasValidGLTexture()) + if (mImagep->hasGLTexture()) { // Draw the bound pip last_event = mImagep->getTimePassedSinceLastBound(); @@ -535,6 +536,73 @@ LLRect LLGLTexMemBar::getRequiredRect() return rect; } +//////////////////////////////////////////////////////////////////////////// +class LLGLTexSizeBar +{ +public: + LLGLTexSizeBar(S32 index, S32 left, S32 bottom, S32 right, S32 line_height) + { + mIndex = index ; + mLeft = left ; + mBottom = bottom ; + mRight = right ; + mLineHeight = line_height ; + mTopLoaded = 0 ; + mTopBound = 0 ; + mScale = 1.0f ; + } + + void setTop(S32 loaded, S32 bound, F32 scale) {mTopLoaded = loaded ; mTopBound = bound; mScale = scale ;} + + void draw(); + BOOL handleHover(S32 x, S32 y, MASK mask) ; + +private: + S32 mIndex ; + S32 mLeft ; + S32 mBottom ; + S32 mRight ; + S32 mTopLoaded ; + S32 mTopBound ; + S32 mLineHeight ; + F32 mScale ; +}; + +BOOL LLGLTexSizeBar::handleHover(S32 x, S32 y, MASK mask) +{ +#if !LL_RELEASE_FOR_DOWNLOAD + if(y > mBottom && (y < mBottom + (S32)(mTopLoaded * mScale) || y < mBottom + (S32)(mTopBound * mScale))) + { + LLImageGL::setCurTexSizebar(mIndex); + } +#endif + return TRUE ; +} +void LLGLTexSizeBar::draw() +{ +#if !LL_RELEASE_FOR_DOWNLOAD + LLGLSUIDefault gls_ui; + + if(LLImageGL::sCurTexSizeBar == mIndex) + { + F32 text_color[] = {1.f, 1.f, 1.f, 0.75f}; + std::string text; + + text = llformat("%d", mTopLoaded) ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, mLeft, mBottom + (S32)(mTopLoaded * mScale) + mLineHeight, + text_color, LLFontGL::LEFT, LLFontGL::TOP); + + text = llformat("%d", mTopBound) ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, (mLeft + mRight) / 2, mBottom + (S32)(mTopBound * mScale) + mLineHeight, + text_color, LLFontGL::LEFT, LLFontGL::TOP); + } + + F32 loaded_color[] = {1.0f, 0.0f, 0.0f, 0.75f}; + F32 bound_color[] = {1.0f, 1.0f, 0.0f, 0.75f}; + gl_rect_2d(mLeft, mBottom + (S32)(mTopLoaded * mScale), (mLeft + mRight) / 2, mBottom, loaded_color) ; + gl_rect_2d((mLeft + mRight) / 2, mBottom + (S32)(mTopBound * mScale), mRight, mBottom, bound_color) ; +#endif +} //////////////////////////////////////////////////////////////////////////// LLTextureView::LLTextureView(const LLTextureView::Params& p) @@ -820,4 +888,163 @@ BOOL LLTextureView::handleKey(KEY key, MASK mask, BOOL called_from_parent) return FALSE; } +//----------------------------------------------------------------- +LLTextureSizeView::LLTextureSizeView(const LLTextureSizeView::Params& p) + : LLView(p) +{ + setVisible(FALSE) ; + + mTextureSizeBarWidth = 30 ; +} + +LLTextureSizeView::~LLTextureSizeView() +{ + if(mTextureSizeBar.size()) + { + for(U32 i = 0 ; i < mTextureSizeBar.size() ; i++) + { + delete mTextureSizeBar[i] ; + } + mTextureSizeBar.clear() ; + } +} +void LLTextureSizeView::draw() +{ +#if !LL_RELEASE_FOR_DOWNLOAD + if(mTextureSizeBar.size() == 0) + { + S32 line_height = (S32)(LLFontGL::getFontMonospace()->getLineHeight() + .5f); + mTextureSizeBar.resize(LLImageGL::sTextureLoadedCounter.size()) ; + mTextureSizeBarRect.set(700, line_height * 2 + 400, 700 + mTextureSizeBar.size() * mTextureSizeBarWidth, line_height * 2) ; + + for(U32 i = 0 ; i < mTextureSizeBar.size() ; i++) + { + mTextureSizeBar[i] = new LLGLTexSizeBar(i, mTextureSizeBarRect.mLeft + i * mTextureSizeBarWidth , + line_height * 2, mTextureSizeBarRect.mLeft + (i + 1) * mTextureSizeBarWidth, line_height) ; + } + } + + F32 size_bar_scale = drawTextureSizeDistributionGraph() ; + for(U32 i = 0 ; i < mTextureSizeBar.size() ; i++) + { + mTextureSizeBar[i]->setTop(LLImageGL::sTextureLoadedCounter[i], LLImageGL::sTextureBoundCounter[i], size_bar_scale) ; + mTextureSizeBar[i]->draw() ; + } + LLImageGL::resetCurTexSizebar(); + + LLView::draw(); +#endif +} + +BOOL LLTextureSizeView::handleHover(S32 x, S32 y, MASK mask) +{ + if(x > mTextureSizeBarRect.mLeft && x < mTextureSizeBarRect.mRight) + { + mTextureSizeBar[(x - mTextureSizeBarRect.mLeft) / mTextureSizeBarWidth]->handleHover(x, y, mask) ; + } + + return TRUE ; +} + +//draw background of texture size bar graph +F32 LLTextureSizeView::drawTextureSizeDistributionGraph() +{ + F32 scale = 1.0f ; +#if !LL_RELEASE_FOR_DOWNLOAD + LLGLSUIDefault gls_ui; + + //scale + { + S32 count = 0 ; + for(U32 i = 0 ; i < LLImageGL::sTextureLoadedCounter.size() ; i++) + { + if(LLImageGL::sTextureLoadedCounter[i] > count) + { + count = LLImageGL::sTextureLoadedCounter[i] ; + } + } + if(count > mTextureSizeBarRect.getHeight()) + { + scale = (F32)mTextureSizeBarRect.getHeight() / count ; + } + } + + S32 line_height = (S32)(LLFontGL::getFontMonospace()->getLineHeight() + .5f); + S32 left = mTextureSizeBarRect.mLeft ; + S32 bottom = mTextureSizeBarRect.mBottom ; + S32 right = mTextureSizeBarRect.mRight ; + S32 top = mTextureSizeBarRect.mTop ; + + gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); + + //background rect + gl_rect_2d(left - 25, top + 30, right + 100, bottom - 25, LLColor4(0.0f, 0.0f, 0.0f, 0.25f)) ; + + //-------------------------------------------------- + gGL.color4f(1.0f, 0.5f, 0.5f, 0.75f); + gl_line_2d(left, bottom, right, bottom) ; //x axis + gl_line_2d(left, bottom, left, top) ; //y axis + + //ruler + //-------------------------------------------------- + gGL.color4f(1.0f, 0.5f, 0.5f, 0.5f); + for(S32 i = bottom + 50 ; i <= top ; i += 50) + { + gl_line_2d(left, i, right, i) ; + } + + //texts + //-------------------------------------------------- + F32 text_color[] = {1.f, 1.f, 1.f, 0.75f}; + std::string text; + + //------- + //x axis: size label + text = llformat("%d", 0) ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, left + 12, bottom - line_height / 2, + text_color, LLFontGL::LEFT, LLFontGL::TOP); + for(U32 i = 1 ; i < mTextureSizeBar.size() ; i++) + { + text = llformat("%d", (1 << (i / 2)) + ((i & 1) ? ((1 << (i / 2)) >> 1) : 0)) ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, left + i * mTextureSizeBarWidth + 12, bottom - line_height / 2, + text_color, LLFontGL::LEFT, LLFontGL::TOP); + } + text = llformat("(w + h)/2") ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, right + 10, bottom - line_height / 2, + text_color, LLFontGL::LEFT, LLFontGL::TOP); + //------- + + //y axis: number label + for(S32 i = bottom + 50 ; i <= top ; i += 50) + { + text = llformat("%d", (S32)((i - bottom) / scale)) ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, left - 20, i + line_height / 2 , + text_color, LLFontGL::LEFT, LLFontGL::TOP); + LLFontGL::getFontMonospace()->renderUTF8(text, 0, right + 5, i + line_height / 2 , + text_color, LLFontGL::LEFT, LLFontGL::TOP); + } + + //-------------------------------------------------- + F32 loaded_color[] = {1.0f, 0.0f, 0.0f, 0.75f}; + gl_rect_2d(left + 70, top + line_height * 2, left + 90, top + line_height, loaded_color) ; + text = llformat("Loaded") ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, left + 100, top + line_height * 2, + loaded_color, LLFontGL::LEFT, LLFontGL::TOP); + + F32 bound_color[] = {1.0f, 1.0f, 0.0f, 0.75f}; + gl_rect_2d(left + 170, top + line_height * 2, left + 190, top + line_height, bound_color) ; + text = llformat("Bound") ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, left + 200, top + line_height * 2, + bound_color, LLFontGL::LEFT, LLFontGL::TOP); + + //-------------------------------------------------- + + //title + text = llformat("Texture Size Distribution") ; + LLFontGL::getFontMonospace()->renderUTF8(text, 0, left + 250, top + line_height * 3, + text_color, LLFontGL::LEFT, LLFontGL::TOP); + +#endif + return scale ; +} diff --git a/indra/newview/lltextureview.h b/indra/newview/lltextureview.h index 20be17aef44c7d80f139011f455cc2034db45b4c..e917c0235e7aff3e0282b530a1208d99fa01e0d5 100644 --- a/indra/newview/lltextureview.h +++ b/indra/newview/lltextureview.h @@ -78,5 +78,25 @@ class LLTextureView : public LLContainerView static std::set<LLViewerFetchedTexture*> sDebugImages; }; +class LLGLTexSizeBar; + +class LLTextureSizeView : public LLView +{ +public: + LLTextureSizeView(const Params&); + ~LLTextureSizeView(); + + /*virtual*/ void draw(); + /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask) ; + +private: + F32 drawTextureSizeDistributionGraph() ; + +private: + std::vector<LLGLTexSizeBar*> mTextureSizeBar ; + LLRect mTextureSizeBarRect ; + S32 mTextureSizeBarWidth ; +}; extern LLTextureView *gTextureView; +extern LLTextureSizeView *gTextureSizeView; #endif // LL_TEXTURE_VIEW_H diff --git a/indra/newview/lltoolgun.cpp b/indra/newview/lltoolgun.cpp index 8accf6babf253f7e291d2b7117c404a923aa0dd0..53d71a42cfaea534cd54cde2d4b8ab15e70c76a1 100644 --- a/indra/newview/lltoolgun.cpp +++ b/indra/newview/lltoolgun.cpp @@ -140,7 +140,7 @@ void LLToolGun::draw() { LLUIImagePtr crosshair = LLUI::getUIImage("crosshairs.tga"); crosshair->draw( - ( gViewerWindow->getWorldViewWidth() - crosshair->getWidth() ) / 2, - ( gViewerWindow->getWorldViewHeight() - crosshair->getHeight() ) / 2); + ( gViewerWindow->getVirtualWorldViewRect().getWidth() - crosshair->getWidth() ) / 2, + ( gViewerWindow->getVirtualWorldViewRect().getHeight() - crosshair->getHeight() ) / 2); } } diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index d6297c30c757543e97b975fcd0205e6c65cc57aa..5c210c5c28a1088c28fafac770e15a1d50bf1984 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -210,8 +210,8 @@ BOOL LLToolPie::pickLeftMouseDownCallback() } // else nothing (fall through to touch) case CLICK_ACTION_PAY: - if (object && object->flagTakesMoney() - || parent && parent->flagTakesMoney()) + if ((object && object->flagTakesMoney()) + || (parent && parent->flagTakesMoney())) { // pay event goes to object actually clicked on mClickActionObject = object; diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h index be6e539ffd506f64c60bc7945c03cb5eec764930..328653d2b84bc17cebb280b2f8318882752bc351 100644 --- a/indra/newview/lltoolpie.h +++ b/indra/newview/lltoolpie.h @@ -74,13 +74,12 @@ class LLToolPie : public LLTool, public LLSingleton<LLToolPie> static void selectionPropertiesReceived(); static void showAvatarInspector(const LLUUID& id); - private: BOOL outsideSlop (S32 x, S32 y, S32 start_x, S32 start_y); BOOL pickLeftMouseDownCallback(); BOOL pickRightMouseDownCallback(); BOOL useClickAction (MASK mask, LLViewerObject* object,LLViewerObject* parent); - + void showVisualContextMenuEffect(); private: BOOL mGrabMouseButtonDown; @@ -90,6 +89,7 @@ class LLToolPie : public LLTool, public LLSingleton<LLToolPie> LLPointer<LLViewerObject> mClickActionObject; U8 mClickAction; LLSafeHandle<LLObjectSelection> mLeftClickSelection; + }; diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp index 3f3c10a7c79d21ea8a59bca9d0f7f90762fcf972..ee6ef6ffee397d7187fd79f502cf1bf4555a08f7 100644 --- a/indra/newview/llviewercamera.cpp +++ b/indra/newview/llviewercamera.cpp @@ -56,6 +56,8 @@ // System includes #include <iomanip> // for setprecision +U32 LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; + //glu pick matrix implementation borrowed from Mesa3D glh::matrix4f gl_pick_matrix(GLfloat x, GLfloat y, GLfloat width, GLfloat height, GLint* viewport) { @@ -779,8 +781,8 @@ BOOL LLViewerCamera::areVertsVisible(LLViewerObject* volumep, BOOL all_verts) BOOL in_frustum = pointInFrustum(LLVector3(vec)) > 0; - if ( !in_frustum && all_verts || - in_frustum && !all_verts) + if (( !in_frustum && all_verts) || + (in_frustum && !all_verts)) { return !all_verts; } diff --git a/indra/newview/llviewercamera.h b/indra/newview/llviewercamera.h index b99dd395847de4c86326d6b8c0b0d1a6f53f1a30..90b77f771f3ec3d1cd3b31eeabc87a4b9ce4af1f 100644 --- a/indra/newview/llviewercamera.h +++ b/indra/newview/llviewercamera.h @@ -55,6 +55,24 @@ const BOOL NOT_FOR_SELECTION = FALSE; class LLViewerCamera : public LLCamera, public LLSingleton<LLViewerCamera> { public: + + typedef enum + { + CAMERA_WORLD = 0, + CAMERA_SHADOW0, + CAMERA_SHADOW1, + CAMERA_SHADOW2, + CAMERA_SHADOW3, + CAMERA_SHADOW4, + CAMERA_SHADOW5, + CAMERA_WATER0, + CAMERA_WATER1, + CAMERA_GI_SOURCE, + NUM_CAMERAS + } eCameraID; + + static U32 sCurCameraID; + LLViewerCamera(); void updateCameraLocation(const LLVector3 ¢er, diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index be832ebe326b8e6c4ae17cc9ce77dfca6e008b7a..b888560fc76ef1ed5e4c18635af987c601156df0 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -493,6 +493,8 @@ void settings_setup_listeners() gSavedSettings.getControl("RenderAnimateTrees")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2)); gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); gSavedSettings.getControl("VertexShaderEnable")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); + gSavedSettings.getControl("RenderUIBuffer")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2)); + gSavedSettings.getControl("RenderShadowResolutionScale")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2)); gSavedSettings.getControl("RenderGlow")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2)); gSavedSettings.getControl("RenderGlow")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); gSavedSettings.getControl("EnableRippleWater")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); @@ -523,6 +525,8 @@ void settings_setup_listeners() gSavedSettings.getControl("RenderDebugPipeline")->getSignal()->connect(boost::bind(&handleRenderDebugPipelineChanged, _2)); gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _2)); gSavedSettings.getControl("RenderDeferred")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); + gSavedSettings.getControl("RenderDeferredShadow")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); + gSavedSettings.getControl("RenderDeferredGI")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); gSavedSettings.getControl("TextureMemory")->getSignal()->connect(boost::bind(&handleVideoMemoryChanged, _2)); gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&handleChatFontSizeChanged, _2)); gSavedSettings.getControl("ChatPersistTime")->getSignal()->connect(boost::bind(&handleChatPersistTimeChanged, _2)); diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 6d2482d3f0f39ef6c98607ce285a429cdcb70167..a6a72e96661008945f1b2eb29f207895c6eb9565 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -125,6 +125,11 @@ void display_startup() return; } + gPipeline.updateGL(); + + // Update images? + //gImageList.updateImages(0.01f); + LLGLSDefault gls_default; // Required for HTML update in login screen @@ -558,6 +563,9 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) stop_glerror(); } + gPipeline.updateGL(); + stop_glerror(); + S32 water_clip = 0; if ((LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_ENVIRONMENT) > 1) && gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_WATER)) @@ -606,6 +614,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) LLGLState::checkClientArrays(); static LLCullResult result; + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; gPipeline.updateCull(*LLViewerCamera::getInstance(), result, water_clip); stop_glerror(); @@ -647,6 +656,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) gPipeline.generateSunShadow(*LLViewerCamera::getInstance()); } + LLVertexBuffer::unbind(); + LLGLState::checkStates(); LLGLState::checkTextureChannels(); LLGLState::checkClientArrays(); @@ -678,6 +689,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) LLMemType mt_gw(LLMemType::MTYPE_DISPLAY_GEN_REFLECTION); LLAppViewer::instance()->pingMainloopTimeout("Display:Imagery"); gPipeline.generateWaterReflection(*LLViewerCamera::getInstance()); + gPipeline.generateHighlight(*LLViewerCamera::getInstance()); } ////////////////////////////////////// @@ -702,6 +714,9 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) const F32 max_image_decode_time = llmin(0.005f, 0.005f*10.f*gFrameIntervalSeconds); // 50 ms/second decode time (no more than 5ms/frame) gTextureList.updateImages(max_image_decode_time); + + //remove dead textures from GL + LLImageGL::deleteDeadTextures(); stop_glerror(); } llpushcallstacks ; @@ -715,6 +730,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) // LLAppViewer::instance()->pingMainloopTimeout("Display:StateSort"); { + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; LLMemType mt_ss(LLMemType::MTYPE_DISPLAY_STATE_SORT); gPipeline.stateSort(*LLViewerCamera::getInstance(), result); stop_glerror(); @@ -797,6 +813,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender) { gPipeline.mDeferredScreen.bindTarget(); + glClearColor(0,0,0,0); gPipeline.mDeferredScreen.clear(); } else @@ -813,6 +830,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) if (!(LLAppViewer::instance()->logoutRequestSent() && LLAppViewer::instance()->hasSavedFinalSnapshot()) && !gRestoreGL) { + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; LLMemType mt_rg(LLMemType::MTYPE_DISPLAY_RENDER_GEOM); gGL.setColorMask(true, false); if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender) @@ -831,6 +849,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) for (U32 i = 0; i < 16; i++) { gGLLastModelView[i] = gGLModelView[i]; + gGLLastProjection[i] = gGLProjection[i]; } stop_glerror(); } @@ -870,6 +889,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) render_ui(); } + gPipeline.rebuildGroups(); + LLSpatialGroup::sNoDelete = FALSE; } @@ -944,6 +965,7 @@ void render_hud_attachments() static LLCullResult result; LLSpatialGroup::sNoDelete = TRUE; + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; gPipeline.updateCull(hud_cam, result); gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_BUMP); @@ -951,6 +973,15 @@ void render_hud_attachments() gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_VOLUME); gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_ALPHA); gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_FULLBRIGHT); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_ALPHA); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_ALPHA_MASK); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_BUMP); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_SHINY); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_INVISIBLE); + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY); gPipeline.stateSort(hud_cam, result); @@ -1259,7 +1290,73 @@ void render_ui_2d() glPopMatrix(); stop_glerror(); } - gViewerWindow->draw(); + + + if (gSavedSettings.getBOOL("RenderUIBuffer")) + { + if (LLUI::sDirty) + { + LLUI::sDirty = FALSE; + LLRect t_rect; + + gPipeline.mUIScreen.bindTarget(); + gGL.setColorMask(true, true); + { + static const S32 pad = 8; + + LLUI::sDirtyRect.mLeft -= pad; + LLUI::sDirtyRect.mRight += pad; + LLUI::sDirtyRect.mBottom -= pad; + LLUI::sDirtyRect.mTop += pad; + + LLGLEnable scissor(GL_SCISSOR_TEST); + static LLRect last_rect = LLUI::sDirtyRect; + + //union with last rect to avoid mouse poop + last_rect.unionWith(LLUI::sDirtyRect); + + t_rect = LLUI::sDirtyRect; + LLUI::sDirtyRect = last_rect; + last_rect = t_rect; + + last_rect.mLeft = LLRect::tCoordType(last_rect.mLeft / LLUI::sGLScaleFactor.mV[0]); + last_rect.mRight = LLRect::tCoordType(last_rect.mRight / LLUI::sGLScaleFactor.mV[0]); + last_rect.mTop = LLRect::tCoordType(last_rect.mTop / LLUI::sGLScaleFactor.mV[1]); + last_rect.mBottom = LLRect::tCoordType(last_rect.mBottom / LLUI::sGLScaleFactor.mV[1]); + + LLRect clip_rect(last_rect); + + glClear(GL_COLOR_BUFFER_BIT); + + gViewerWindow->draw(); + } + + gPipeline.mUIScreen.flush(); + gGL.setColorMask(true, false); + + LLUI::sDirtyRect = t_rect; + + } + + LLGLDisable cull(GL_CULL_FACE); + LLGLDisable blend(GL_BLEND); + S32 width = gViewerWindow->getWindowWidth(); + S32 height = gViewerWindow->getWindowHeight(); + gGL.getTexUnit(0)->bind(&gPipeline.mUIScreen); + gGL.begin(LLRender::TRIANGLE_STRIP); + gGL.color4f(1,1,1,1); + gGL.texCoord2f(0, 0); gGL.vertex2i(0, 0); + gGL.texCoord2f(width, 0); gGL.vertex2i(width, 0); + gGL.texCoord2f(0, height); gGL.vertex2i(0, height); + gGL.texCoord2f(width, height); gGL.vertex2i(width, height); + gGL.end(); + } + else + { + gViewerWindow->draw(); + } + + // reset current origin for font rendering, in case of tiling render LLFontGL::sCurOrigin.set(0, 0); diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 1fc387027ded946a636d394cf6c2db7d4c5f02ba..441d0ebeaa99695afbfbd7100f01f5e8d9ed2006 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -124,7 +124,8 @@ void LLViewerFloaterReg::registerFloaters() { // *NOTE: Please keep these alphabetized for easier merges - + + LLFloaterAboutUtil::registerFloater(); LLFloaterReg::add("about_land", "floater_about_land.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLand>); LLFloaterReg::add("active_speakers", "floater_active_speakers.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterActiveSpeakers>); LLFloaterReg::add("auction", "floater_auction.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAuction>); @@ -225,7 +226,6 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("stats", "floater_stats.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloater>); LLFloaterReg::add("start_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterRunQueue>); LLFloaterReg::add("stop_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotRunQueue>); - LLFloaterReg::add("sl_about", "floater_about.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAbout>); LLFloaterReg::add("snapshot", "floater_snapshot.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSnapshot>); LLFloaterReg::add("search", "floater_directory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDirectory>); diff --git a/indra/newview/llviewerjointmesh.cpp b/indra/newview/llviewerjointmesh.cpp index 28f883312ae3732917e0f8eccf9e67663fcf89e4..cd60a8d560630f68b49fa4298167765fb0e4fb7f 100644 --- a/indra/newview/llviewerjointmesh.cpp +++ b/indra/newview/llviewerjointmesh.cpp @@ -564,7 +564,7 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass, BOOL is_dummy) // Ignore the warning if that's the case. if (!gSavedSettings.getBOOL("RenderUnloadedAvatar")) { - llwarns << "Layerset without composite" << llendl; + //llwarns << "Layerset without composite" << llendl; } gGL.getTexUnit(0)->bind(LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT)); } @@ -576,6 +576,7 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass, BOOL is_dummy) { old_mode = mTexture->getAddressMode(); } + gGL.getTexUnit(0)->bind(mTexture.get()); gGL.getTexUnit(0)->bind(mTexture); gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP); } diff --git a/indra/newview/llviewerkeyboard.cpp b/indra/newview/llviewerkeyboard.cpp index fc2f00a2ea6bf410374ed0d67a0d85925969020f..2dc317e067f9e0cbed7b714c3f740088720b6d1c 100644 --- a/indra/newview/llviewerkeyboard.cpp +++ b/indra/newview/llviewerkeyboard.cpp @@ -716,7 +716,7 @@ BOOL LLViewerKeyboard::bindKey(const S32 mode, const KEY key, const MASK mask, c if (idx >=2 && idx <= 12) { U32 keyidx = ((mask<<16)|key); - (mRemapKeys[mode])[keyidx] = ((0<<16)|KEY_F1+(idx-1)); + (mRemapKeys[mode])[keyidx] = ((0<<16)|(KEY_F1+(idx-1))); return TRUE; } } diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp index 60eabd730fc082776a5f88729e6c81a7093197c2..e7576d5c7672a502539cb77779c2a1b01ccfa11a 100644 --- a/indra/newview/llviewermediafocus.cpp +++ b/indra/newview/llviewermediafocus.cpp @@ -115,11 +115,14 @@ void LLViewerMediaFocus::setFocusFace( BOOL b, LLPointer<LLViewerObject> objectp else { gFocusMgr.setKeyboardFocus(NULL); - mFocus = NULL; if(! parcel->getMediaPreventCameraZoom()) { - gAgent.setFocusOnAvatar(TRUE, ANIMATE); + if (!mFocus->isEmpty()) + { + gAgent.setFocusOnAvatar(TRUE, ANIMATE); + } } + mFocus = NULL; // LLViewerMedia::remObserver(this, mObjectID); // Null out the media hud media pointer diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 22fe0a043b2e98f73d2b845cb3fd937489e43900..53cf44214e2e6e9f75871175a6f1ee9f9945f5f1 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -982,6 +982,10 @@ U32 info_display_from_string(std::string info_display) { return LLPipeline::RENDER_DEBUG_AVATAR_VOLUME; } + else if ("raycast" == info_display) + { + return LLPipeline::RENDER_DEBUG_RAYCAST; + } else if ("agent target" == info_display) { return LLPipeline::RENDER_DEBUG_AGENT_TARGET; @@ -1175,6 +1179,29 @@ class LLAdvancedCheckDisableTextures : public view_listener_t } }; +////////////////////// +// TEXTURE ATLAS // +////////////////////// + +class LLAdvancedToggleTextureAtlas : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + LLViewerTexture::sUseTextureAtlas = !LLViewerTexture::sUseTextureAtlas; + gSavedSettings.setBOOL("EnableTextureAtlas", LLViewerTexture::sUseTextureAtlas) ; + return true; + } +}; + +class LLAdvancedCheckTextureAtlas : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + bool new_value = LLViewerTexture::sUseTextureAtlas; // <-- make this using LLCacheControl + return new_value; + } +}; + ////////////////////////// // DUMP SCRIPTED CAMERA // ////////////////////////// @@ -2148,11 +2175,48 @@ class LLAdvancedEnableObjectObjectOcclusion: public view_listener_t bool handleEvent(const LLSD& userdata) { - bool new_value = gGLManager.mHasOcclusionQuery && LLFeatureManager::getInstance()->isFeatureAvailable(userdata.asString()); + bool new_value = gGLManager.mHasOcclusionQuery; // && LLFeatureManager::getInstance()->isFeatureAvailable(userdata.asString()); return new_value; } }; +///////////////////////////////////// +// Enable Framebuffer Objects /// +///////////////////////////////////// +class LLAdvancedEnableRenderFBO: public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + bool new_value = gGLManager.mHasFramebufferObject; + return new_value; + } +}; + +///////////////////////////////////// +// Enable Deferred Rendering /// +///////////////////////////////////// +class LLAdvancedEnableRenderDeferred: public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + bool new_value = gSavedSettings.getBOOL("RenderUseFBO") && LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_WINDLIGHT > 0) && + LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_AVATAR) > 0; + return new_value; + } +}; + +///////////////////////////////////// +// Enable Global Illumination /// +///////////////////////////////////// +class LLAdvancedEnableRenderDeferredGI: public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + bool new_value = gSavedSettings.getBOOL("RenderUseFBO") && gSavedSettings.getBOOL("RenderDeferred"); + return new_value; + } +}; + ////////////////// @@ -2775,7 +2839,7 @@ class LLSelfRemoveAllAttachments : public view_listener_t { bool handleEvent(const LLSD& userdata) { - LLAgentWearables::userRemoveAllAttachments(NULL); + LLAgentWearables::userRemoveAllAttachments(); return true; } }; @@ -7795,7 +7859,12 @@ void initialize_menus() view_listener_t::addMenu(new LLAdvancedCheckWireframe(), "Advanced.CheckWireframe"); view_listener_t::addMenu(new LLAdvancedToggleDisableTextures(), "Advanced.ToggleDisableTextures"); view_listener_t::addMenu(new LLAdvancedCheckDisableTextures(), "Advanced.CheckDisableTextures"); + view_listener_t::addMenu(new LLAdvancedToggleTextureAtlas(), "Advanced.ToggleTextureAtlas"); + view_listener_t::addMenu(new LLAdvancedCheckTextureAtlas(), "Advanced.CheckTextureAtlas"); view_listener_t::addMenu(new LLAdvancedEnableObjectObjectOcclusion(), "Advanced.EnableObjectObjectOcclusion"); + view_listener_t::addMenu(new LLAdvancedEnableRenderFBO(), "Advanced.EnableRenderFBO"); + view_listener_t::addMenu(new LLAdvancedEnableRenderDeferred(), "Advanced.EnableRenderDeferred"); + view_listener_t::addMenu(new LLAdvancedEnableRenderDeferredGI(), "Advanced.EnableRenderDeferredGI"); view_listener_t::addMenu(new LLAdvancedToggleRandomizeFramerate(), "Advanced.ToggleRandomizeFramerate"); view_listener_t::addMenu(new LLAdvancedCheckRandomizeFramerate(), "Advanced.CheckRandomizeFramerate"); view_listener_t::addMenu(new LLAdvancedTogglePeriodicSlowFrame(), "Advanced.TogglePeriodicSlowFrame"); @@ -7900,7 +7969,7 @@ void initialize_menus() view_listener_t::addMenu(new LLAdvancedForceErrorInfiniteLoop(), "Advanced.ForceErrorInfiniteLoop"); view_listener_t::addMenu(new LLAdvancedForceErrorSoftwareException(), "Advanced.ForceErrorSoftwareException"); view_listener_t::addMenu(new LLAdvancedForceErrorDriverCrash(), "Advanced.ForceErrorDriverCrash"); - view_listener_t::addMenu(new LLAdvancedForceErrorDriverCrash(), "Advanced.ForceErrorDisconnectViewer"); + view_listener_t::addMenu(new LLAdvancedForceErrorDisconnectViewer(), "Advanced.ForceErrorDisconnectViewer"); // Advanced (toplevel) view_listener_t::addMenu(new LLAdvancedToggleShowObjectUpdates(), "Advanced.ToggleShowObjectUpdates"); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 2a2b0958339f64edd7fa5d6dd518c3e4cff807eb..a2277e440642a8283b1c21a598c5bc357749171c 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -3111,6 +3111,10 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) { flags |= AU_FLAGS_HIDETITLE; } + if (gAgent.getAutoPilot()) + { + flags |= AU_FLAGS_CLIENT_AUTOPILOT; + } flag_change = last_flags ^ flags; @@ -3263,7 +3267,6 @@ void process_object_update(LLMessageSystem *mesgsys, void **user_data) // Update the object... gObjectList.processObjectUpdate(mesgsys, user_data, OUT_FULL); - stop_glerror(); } void process_compressed_object_update(LLMessageSystem *mesgsys, void **user_data) @@ -3281,7 +3284,6 @@ void process_compressed_object_update(LLMessageSystem *mesgsys, void **user_data // Update the object... gObjectList.processCompressedObjectUpdate(mesgsys, user_data, OUT_FULL_COMPRESSED); - stop_glerror(); } void process_cached_object_update(LLMessageSystem *mesgsys, void **user_data) @@ -3299,7 +3301,6 @@ void process_cached_object_update(LLMessageSystem *mesgsys, void **user_data) // Update the object... gObjectList.processCachedObjectUpdate(mesgsys, user_data, OUT_FULL_CACHED); - stop_glerror(); } diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index cf77f7e2b6160349dd15cf8b16486ea7e998fbf9..d3d5f060e1fe13d8003bea3493d5410bc119197a 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -660,8 +660,8 @@ BOOL LLViewerObject::setDrawableParent(LLDrawable* parentp) mDrawable->mParent = parentp; gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE); - if( old_parent != parentp && - old_parent || (parentp && parentp->isActive())) + if( (old_parent != parentp && old_parent) + || (parentp && parentp->isActive())) { // *TODO we should not be relying on setDrawable parent to call markMoved gPipeline.markMoved(mDrawable, FALSE); @@ -2803,6 +2803,11 @@ BOOL LLViewerObject::updateGeometry(LLDrawable *drawable) return TRUE; } +void LLViewerObject::updateGL() +{ + +} + void LLViewerObject::updateFaceSize(S32 idx) { @@ -4188,6 +4193,11 @@ void LLViewerObject::updateText() } } +LLVOAvatar* LLViewerObject::asAvatar() +{ + return NULL; +} + BOOL LLViewerObject::isParticleSource() const { return !mPartSourcep.isNull() && !mPartSourcep->isDead(); @@ -4494,7 +4504,11 @@ LLViewerObject::ExtraParameter* LLViewerObject::createNewParameterEntry(U16 para new_block = new LLSculptParams(); break; } - + case LLNetworkData::PARAMS_LIGHT_IMAGE: + { + new_block = new LLLightImageParams(); + break; + } default: { llinfos << "Unknown param type." << llendl; @@ -4585,7 +4599,7 @@ bool LLViewerObject::setParameterEntry(U16 param_type, const LLNetworkData& new_ bool LLViewerObject::setParameterEntryInUse(U16 param_type, BOOL in_use, bool local_origin) { ExtraParameter* param = getExtraParameterEntryCreate(param_type); - if (param->in_use != in_use) + if (param && param->in_use != in_use) { param->in_use = in_use; parameterChanged(param_type, param->data, in_use, local_origin); @@ -4998,7 +5012,7 @@ U32 LLViewerObject::getPartitionType() const return LLViewerRegion::PARTITION_NONE; } -void LLViewerObject::dirtySpatialGroup() const +void LLViewerObject::dirtySpatialGroup(BOOL priority) const { if (mDrawable) { @@ -5006,6 +5020,7 @@ void LLViewerObject::dirtySpatialGroup() const if (group) { group->dirtyGeom(); + gPipeline.markRebuild(group, priority); } } } diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 836e05728fea4b36e631fcc13c118a21da89160b..08e2ec47cd97e55befb6f57e5d13983b9cd01c16 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -75,6 +75,7 @@ class LLViewerPartSourceScript; class LLViewerRegion; class LLViewerObjectMedia; class LLVOInventoryListener; +class LLVOAvatar; typedef enum e_object_update_type { @@ -117,7 +118,7 @@ struct LLMaterialExportInfo //============================================================================ -class LLViewerObject : public LLPrimitive, public LLRefCount +class LLViewerObject : public LLPrimitive, public LLRefCount, public LLGLUpdate { protected: ~LLViewerObject(); // use unref() @@ -144,6 +145,8 @@ class LLViewerObject : public LLPrimitive, public LLRefCount BOOL isOrphaned() const { return mOrphaned; } BOOL isParticleSource() const; + virtual LLVOAvatar* asAvatar(); + static void initVOClasses(); static void cleanupVOClasses(); @@ -195,6 +198,7 @@ class LLViewerObject : public LLPrimitive, public LLRefCount virtual LLDrawable* createDrawable(LLPipeline *pipeline); virtual BOOL updateGeometry(LLDrawable *drawable); + virtual void updateGL(); virtual void updateFaceSize(S32 idx); virtual BOOL updateLOD(); virtual BOOL setDrawableParent(LLDrawable* parentp); @@ -219,6 +223,7 @@ class LLViewerObject : public LLPrimitive, public LLRefCount virtual BOOL isFlexible() const { return FALSE; } virtual BOOL isSculpted() const { return FALSE; } + virtual BOOL hasLightTexture() const { return FALSE; } // This method returns true if the object is over land owned by // the agent. @@ -470,7 +475,7 @@ class LLViewerObject : public LLPrimitive, public LLRefCount virtual S32 getLOD() const { return 3; } virtual U32 getPartitionType() const; - virtual void dirtySpatialGroup() const; + virtual void dirtySpatialGroup(BOOL priority = FALSE) const; virtual void dirtyMesh(); virtual LLNetworkData* getParameterEntry(U16 param_type) const; diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp index 1a91240abb2dcbe1144a6e9422b2cff7205f95ee..9896adad9745e2e3474b4ab589397f096f6e357e 100644 --- a/indra/newview/llviewerparceloverlay.cpp +++ b/indra/newview/llviewerparceloverlay.cpp @@ -53,6 +53,8 @@ #include "llselectmgr.h" #include "llfloatertools.h" #include "llglheaders.h" +#include "pipeline.h" + const U8 OVERLAY_IMG_COMPONENTS = 4; @@ -72,8 +74,6 @@ LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_ // Use mipmaps = FALSE, clamped, NEAREST filter, for sharp edges mImageRaw = new LLImageRaw(mParcelGridsPerEdge, mParcelGridsPerEdge, OVERLAY_IMG_COMPONENTS); mTexture = LLViewerTextureManager::getLocalTexture(mImageRaw.get(), FALSE); - gGL.getTexUnit(0)->activate(); - gGL.getTexUnit(0)->bind(mTexture); mTexture->setAddressMode(LLTexUnit::TAM_CLAMP); mTexture->setFilteringOption(LLTexUnit::TFO_POINT); @@ -87,7 +87,7 @@ LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_ { raw[i] = 0; } - mTexture->setSubImage(mImageRaw, 0, 0, mParcelGridsPerEdge, mParcelGridsPerEdge); + //mTexture->setSubImage(mImageRaw, 0, 0, mParcelGridsPerEdge, mParcelGridsPerEdge); // Create storage for ownership information from simulator // and initialize it. @@ -97,8 +97,7 @@ LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_ mOwnership[i] = PARCEL_PUBLIC; } - // Make sure the texture matches the ownership information. - updateOverlayTexture(); + gPipeline.markGLRebuild(this); } @@ -283,6 +282,10 @@ void LLViewerParcelOverlay::updateOverlayTexture() // Copy data into GL texture from raw data if (i >= COUNT) { + if (!mTexture->hasGLTexture()) + { + mTexture->createGLTexture(0, mImageRaw); + } mTexture->setSubImage(mImageRaw, 0, 0, mParcelGridsPerEdge, mParcelGridsPerEdge); mOverlayTextureIdx = -1; } @@ -709,6 +712,11 @@ void LLViewerParcelOverlay::setDirty() mDirty = TRUE; } +void LLViewerParcelOverlay::updateGL() +{ + updateOverlayTexture(); +} + void LLViewerParcelOverlay::idleUpdate(bool force_update) { LLMemType mt_iup(LLMemType::MTYPE_IDLE_UPDATE_PARCEL_OVERLAY); @@ -719,7 +727,7 @@ void LLViewerParcelOverlay::idleUpdate(bool force_update) if (mOverlayTextureIdx >= 0 && (!(mDirty && force_update))) { // We are in the middle of updating the overlay texture - updateOverlayTexture(); + gPipeline.markGLRebuild(this); return; } // Only if we're dirty and it's been a while since the last update. diff --git a/indra/newview/llviewerparceloverlay.h b/indra/newview/llviewerparceloverlay.h index e673b811eddf6e9470d1414eabd53271862d5f40..161b7a386b6e8c8d6abcc6caa8941d678e46be49 100644 --- a/indra/newview/llviewerparceloverlay.h +++ b/indra/newview/llviewerparceloverlay.h @@ -40,13 +40,14 @@ #include "llframetimer.h" #include "lluuid.h" #include "llviewertexture.h" +#include "llgl.h" class LLViewerRegion; class LLVector3; class LLColor4U; class LLVector2; -class LLViewerParcelOverlay +class LLViewerParcelOverlay : public LLGLUpdate { public: LLViewerParcelOverlay(LLViewerRegion* region, F32 region_width_meters); @@ -76,6 +77,7 @@ class LLViewerParcelOverlay void setDirty(); void idleUpdate(bool update_now = false); + void updateGL(); private: // This is in parcel rows and columns, not grid rows and columns diff --git a/indra/newview/llviewerpartsource.cpp b/indra/newview/llviewerpartsource.cpp index a8cbcd86c6c92e8001e5124deaa888523eaf6b62..4752bf1a85651cf2a764e35f89b7bd5c31cd84b9 100644 --- a/indra/newview/llviewerpartsource.cpp +++ b/indra/newview/llviewerpartsource.cpp @@ -101,7 +101,7 @@ LLViewerPartSourceScript::LLViewerPartSourceScript(LLViewerObject *source_objp) mSourceObjectp = source_objp; mPosAgent = mSourceObjectp->getPositionAgent(); mImagep = LLViewerTextureManager::getFetchedTextureFromFile("pixiesmall.j2c"); - gGL.getTexUnit(0)->bind(mImagep); + mImagep->setAddressMode(LLTexUnit::TAM_CLAMP); } diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index b5bd2f93af8b5480fa4f82f6dd1d388980d979cc..6dc9f5c4652fd2a33f91fcc427143e175622dcc7 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -104,6 +104,7 @@ LLGLSLShader gPostNightVisionProgram; // Deferred rendering shaders LLGLSLShader gDeferredImpostorProgram; +LLGLSLShader gDeferredEdgeProgram; LLGLSLShader gDeferredWaterProgram; LLGLSLShader gDeferredDiffuseProgram; LLGLSLShader gDeferredBumpProgram; @@ -113,6 +114,8 @@ LLGLSLShader gDeferredAvatarProgram; LLGLSLShader gDeferredAvatarAlphaProgram; LLGLSLShader gDeferredLightProgram; LLGLSLShader gDeferredMultiLightProgram; +LLGLSLShader gDeferredSpotLightProgram; +LLGLSLShader gDeferredMultiSpotLightProgram; LLGLSLShader gDeferredSunProgram; LLGLSLShader gDeferredBlurLightProgram; LLGLSLShader gDeferredSoftenProgram; @@ -120,6 +123,13 @@ LLGLSLShader gDeferredShadowProgram; LLGLSLShader gDeferredAvatarShadowProgram; LLGLSLShader gDeferredAlphaProgram; LLGLSLShader gDeferredFullbrightProgram; +LLGLSLShader gDeferredGIProgram; +LLGLSLShader gDeferredGIFinalProgram; +LLGLSLShader gDeferredPostGIProgram; +LLGLSLShader gDeferredPostProgram; + +LLGLSLShader gLuminanceGatherProgram; + //current avatar shader parameter pointer GLint gAvatarMatrixParam; @@ -151,6 +161,11 @@ LLViewerShaderMgr::LLViewerShaderMgr() : mShaderList.push_back(&gDeferredMultiLightProgram); mShaderList.push_back(&gDeferredAlphaProgram); mShaderList.push_back(&gDeferredFullbrightProgram); + mShaderList.push_back(&gDeferredPostGIProgram); + mShaderList.push_back(&gDeferredEdgeProgram); + mShaderList.push_back(&gDeferredPostProgram); + mShaderList.push_back(&gDeferredGIProgram); + mShaderList.push_back(&gDeferredGIFinalProgram); mShaderList.push_back(&gDeferredWaterProgram); mShaderList.push_back(&gDeferredAvatarAlphaProgram); } @@ -220,13 +235,35 @@ void LLViewerShaderMgr::initAttribsAndUniforms(void) mReservedUniforms.push_back("shadowMap1"); mReservedUniforms.push_back("shadowMap2"); mReservedUniforms.push_back("shadowMap3"); + mReservedUniforms.push_back("shadowMap4"); + mReservedUniforms.push_back("shadowMap5"); + mReservedUniforms.push_back("normalMap"); mReservedUniforms.push_back("positionMap"); mReservedUniforms.push_back("diffuseRect"); mReservedUniforms.push_back("specularRect"); mReservedUniforms.push_back("noiseMap"); + mReservedUniforms.push_back("lightFunc"); mReservedUniforms.push_back("lightMap"); - + mReservedUniforms.push_back("luminanceMap"); + mReservedUniforms.push_back("giLightMap"); + mReservedUniforms.push_back("giMip"); + mReservedUniforms.push_back("edgeMap"); + mReservedUniforms.push_back("bloomMap"); + mReservedUniforms.push_back("sunLightMap"); + mReservedUniforms.push_back("localLightMap"); + mReservedUniforms.push_back("projectionMap"); + mReservedUniforms.push_back("diffuseGIMap"); + mReservedUniforms.push_back("specularGIMap"); + mReservedUniforms.push_back("normalGIMap"); + mReservedUniforms.push_back("minpGIMap"); + mReservedUniforms.push_back("maxpGIMap"); + mReservedUniforms.push_back("depthGIMap"); + mReservedUniforms.push_back("lastDiffuseGIMap"); + mReservedUniforms.push_back("lastNormalGIMap"); + mReservedUniforms.push_back("lastMinpGIMap"); + mReservedUniforms.push_back("lastMaxpGIMap"); + mWLUniforms.push_back("camPosLocal"); mTerrainUniforms.reserve(5); @@ -340,7 +377,21 @@ void LLViewerShaderMgr::setShaders() if (LLPipeline::sRenderDeferred) { - deferred_class = 1; + if (gSavedSettings.getBOOL("RenderDeferredShadow")) + { + if (gSavedSettings.getBOOL("RenderDeferredGI")) + { //shadows + gi + deferred_class = 3; + } + else + { //shadows + deferred_class = 2; + } + } + else + { //no shadows + deferred_class = 1; + } } if(!gSavedSettings.getBOOL("EnableRippleWater")) @@ -814,6 +865,8 @@ BOOL LLViewerShaderMgr::loadShadersDeferred() gDeferredTerrainProgram.unload(); gDeferredLightProgram.unload(); gDeferredMultiLightProgram.unload(); + gDeferredSpotLightProgram.unload(); + gDeferredMultiSpotLightProgram.unload(); gDeferredSunProgram.unload(); gDeferredBlurLightProgram.unload(); gDeferredSoftenProgram.unload(); @@ -823,6 +876,12 @@ BOOL LLViewerShaderMgr::loadShadersDeferred() gDeferredAvatarAlphaProgram.unload(); gDeferredAlphaProgram.unload(); gDeferredFullbrightProgram.unload(); + gDeferredPostGIProgram.unload(); + gDeferredEdgeProgram.unload(); + gDeferredPostProgram.unload(); + gLuminanceGatherProgram.unload(); + gDeferredGIProgram.unload(); + gDeferredGIFinalProgram.unload(); gDeferredWaterProgram.unload(); return FALSE; } @@ -891,6 +950,26 @@ BOOL LLViewerShaderMgr::loadShadersDeferred() success = gDeferredMultiLightProgram.createShader(NULL, NULL); } + if (success) + { + gDeferredSpotLightProgram.mName = "Deferred SpotLight Shader"; + gDeferredSpotLightProgram.mShaderFiles.clear(); + gDeferredSpotLightProgram.mShaderFiles.push_back(make_pair("deferred/pointLightV.glsl", GL_VERTEX_SHADER_ARB)); + gDeferredSpotLightProgram.mShaderFiles.push_back(make_pair("deferred/multiSpotLightF.glsl", GL_FRAGMENT_SHADER_ARB)); + gDeferredSpotLightProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED]; + success = gDeferredSpotLightProgram.createShader(NULL, NULL); + } + + if (success) + { + gDeferredMultiSpotLightProgram.mName = "Deferred MultiSpotLight Shader"; + gDeferredMultiSpotLightProgram.mShaderFiles.clear(); + gDeferredMultiSpotLightProgram.mShaderFiles.push_back(make_pair("deferred/pointLightV.glsl", GL_VERTEX_SHADER_ARB)); + gDeferredMultiSpotLightProgram.mShaderFiles.push_back(make_pair("deferred/multiSpotLightF.glsl", GL_FRAGMENT_SHADER_ARB)); + gDeferredMultiSpotLightProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED]; + success = gDeferredMultiSpotLightProgram.createShader(NULL, NULL); + } + if (success) { gDeferredSunProgram.mName = "Deferred Sun Shader"; @@ -1022,6 +1101,72 @@ BOOL LLViewerShaderMgr::loadShadersDeferred() success = gDeferredAvatarAlphaProgram.createShader(&mAvatarAttribs, &mAvatarUniforms); } + if (mVertexShaderLevel[SHADER_DEFERRED] > 1) + { + if (success) + { + gDeferredEdgeProgram.mName = "Deferred Edge Shader"; + gDeferredEdgeProgram.mShaderFiles.clear(); + gDeferredEdgeProgram.mShaderFiles.push_back(make_pair("deferred/edgeV.glsl", GL_VERTEX_SHADER_ARB)); + gDeferredEdgeProgram.mShaderFiles.push_back(make_pair("deferred/edgeF.glsl", GL_FRAGMENT_SHADER_ARB)); + gDeferredEdgeProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED]; + success = gDeferredEdgeProgram.createShader(NULL, NULL); + } + } + + if (mVertexShaderLevel[SHADER_DEFERRED] > 2) + { + if (success) + { + gDeferredPostProgram.mName = "Deferred Post Shader"; + gDeferredPostProgram.mShaderFiles.clear(); + gDeferredPostProgram.mShaderFiles.push_back(make_pair("deferred/postDeferredV.glsl", GL_VERTEX_SHADER_ARB)); + gDeferredPostProgram.mShaderFiles.push_back(make_pair("deferred/postDeferredF.glsl", GL_FRAGMENT_SHADER_ARB)); + gDeferredPostProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED]; + success = gDeferredPostProgram.createShader(NULL, NULL); + } + + if (success) + { + gDeferredPostGIProgram.mName = "Deferred Post GI Shader"; + gDeferredPostGIProgram.mShaderFiles.clear(); + gDeferredPostGIProgram.mShaderFiles.push_back(make_pair("deferred/postgiV.glsl", GL_VERTEX_SHADER_ARB)); + gDeferredPostGIProgram.mShaderFiles.push_back(make_pair("deferred/postgiF.glsl", GL_FRAGMENT_SHADER_ARB)); + gDeferredPostGIProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED]; + success = gDeferredPostGIProgram.createShader(NULL, NULL); + } + + if (success) + { + gDeferredGIProgram.mName = "Deferred GI Shader"; + gDeferredGIProgram.mShaderFiles.clear(); + gDeferredGIProgram.mShaderFiles.push_back(make_pair("deferred/giV.glsl", GL_VERTEX_SHADER_ARB)); + gDeferredGIProgram.mShaderFiles.push_back(make_pair("deferred/giF.glsl", GL_FRAGMENT_SHADER_ARB)); + gDeferredGIProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED]; + success = gDeferredGIProgram.createShader(NULL, NULL); + } + + if (success) + { + gDeferredGIFinalProgram.mName = "Deferred GI Final Shader"; + gDeferredGIFinalProgram.mShaderFiles.clear(); + gDeferredGIFinalProgram.mShaderFiles.push_back(make_pair("deferred/giFinalV.glsl", GL_VERTEX_SHADER_ARB)); + gDeferredGIFinalProgram.mShaderFiles.push_back(make_pair("deferred/giFinalF.glsl", GL_FRAGMENT_SHADER_ARB)); + gDeferredGIFinalProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED]; + success = gDeferredGIFinalProgram.createShader(NULL, NULL); + } + + if (success) + { + gLuminanceGatherProgram.mName = "Luminance Gather Shader"; + gLuminanceGatherProgram.mShaderFiles.clear(); + gLuminanceGatherProgram.mShaderFiles.push_back(make_pair("deferred/luminanceV.glsl", GL_VERTEX_SHADER_ARB)); + gLuminanceGatherProgram.mShaderFiles.push_back(make_pair("deferred/luminanceF.glsl", GL_FRAGMENT_SHADER_ARB)); + gLuminanceGatherProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED]; + success = gLuminanceGatherProgram.createShader(NULL, NULL); + } + } + return success; } diff --git a/indra/newview/llviewershadermgr.h b/indra/newview/llviewershadermgr.h index a743966d93c951f64da693c2617c07afd0b3670c..ac2b4624e02ac019e70b959f35cbd5a7a91fee1d 100644 --- a/indra/newview/llviewershadermgr.h +++ b/indra/newview/llviewershadermgr.h @@ -116,12 +116,33 @@ class LLViewerShaderMgr: public LLShaderMgr DEFERRED_SHADOW1, DEFERRED_SHADOW2, DEFERRED_SHADOW3, + DEFERRED_SHADOW4, + DEFERRED_SHADOW5, DEFERRED_NORMAL, DEFERRED_POSITION, DEFERRED_DIFFUSE, DEFERRED_SPECULAR, DEFERRED_NOISE, + DEFERRED_LIGHTFUNC, DEFERRED_LIGHT, + DEFERRED_LUMINANCE, + DEFERRED_GI_LIGHT, + DEFERRED_GI_MIP, + DEFERRED_EDGE, + DEFERRED_BLOOM, + DEFERRED_SUN_LIGHT, + DEFERRED_LOCAL_LIGHT, + DEFERRED_PROJECTION, + DEFERRED_GI_DIFFUSE, + DEFERRED_GI_SPECULAR, + DEFERRED_GI_NORMAL, + DEFERRED_GI_MIN_POS, + DEFERRED_GI_MAX_POS, + DEFERRED_GI_DEPTH, + DEFERRED_GI_LAST_DIFFUSE, + DEFERRED_GI_LAST_NORMAL, + DEFERRED_GI_LAST_MIN_POS, + DEFERRED_GI_LAST_MAX_POS, END_RESERVED_UNIFORMS } eGLSLReservedUniforms; @@ -319,6 +340,7 @@ extern LLGLSLShader gPostNightVisionProgram; // Deferred rendering shaders extern LLGLSLShader gDeferredImpostorProgram; +extern LLGLSLShader gDeferredEdgeProgram; extern LLGLSLShader gDeferredWaterProgram; extern LLGLSLShader gDeferredDiffuseProgram; extern LLGLSLShader gDeferredBumpProgram; @@ -326,16 +348,24 @@ extern LLGLSLShader gDeferredTerrainProgram; extern LLGLSLShader gDeferredTreeProgram; extern LLGLSLShader gDeferredLightProgram; extern LLGLSLShader gDeferredMultiLightProgram; +extern LLGLSLShader gDeferredSpotLightProgram; +extern LLGLSLShader gDeferredMultiSpotLightProgram; extern LLGLSLShader gDeferredSunProgram; +extern LLGLSLShader gDeferredGIProgram; +extern LLGLSLShader gDeferredGIFinalProgram; extern LLGLSLShader gDeferredBlurLightProgram; extern LLGLSLShader gDeferredAvatarProgram; extern LLGLSLShader gDeferredSoftenProgram; extern LLGLSLShader gDeferredShadowProgram; +extern LLGLSLShader gDeferredPostGIProgram; +extern LLGLSLShader gDeferredPostProgram; extern LLGLSLShader gDeferredAvatarShadowProgram; extern LLGLSLShader gDeferredAlphaProgram; extern LLGLSLShader gDeferredFullbrightProgram; extern LLGLSLShader gDeferredAvatarAlphaProgram; +extern LLGLSLShader gLuminanceGatherProgram; + //current avatar shader parameter pointer extern GLint gAvatarMatrixParam; diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index ec82f62a8b4fdbe146be9d7139dd3d51c2184a9d..e3d657068f4a9949b914beb9192ece3557c75a26 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -60,6 +60,8 @@ #include "llviewercontrol.h" #include "pipeline.h" #include "llappviewer.h" +#include "lltextureatlas.h" +#include "lltextureatlasmanager.h" /////////////////////////////////////////////////////////////////////////////// // statics @@ -83,6 +85,7 @@ S32 LLViewerTexture::sMaxBoundTextureMemInMegaBytes = 0; S32 LLViewerTexture::sMaxTotalTextureMemInMegaBytes = 0; S32 LLViewerTexture::sMaxDesiredTextureMemInBytes = 0 ; BOOL LLViewerTexture::sDontLoadVolumeTextures = FALSE; +BOOL LLViewerTexture::sUseTextureAtlas = FALSE ; const F32 desired_discard_bias_min = -2.0f; // -max number of levels to improve image quality by const F32 desired_discard_bias_max = 1.5f; // max number of levels to reduce image quality by @@ -244,7 +247,7 @@ void LLViewerTextureManager::init() LLViewerTexture::sNullImagep = LLViewerTextureManager::getLocalTexture(raw.get(), TRUE) ; #if 1 - LLPointer<LLViewerFetchedTexture> imagep = new LLViewerFetchedTexture(IMG_DEFAULT, TRUE); + LLPointer<LLViewerFetchedTexture> imagep = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT); LLViewerFetchedTexture::sDefaultImagep = imagep; const S32 dim = 128; @@ -273,7 +276,6 @@ void LLViewerTextureManager::init() } imagep->createGLTexture(0, image_raw); image_raw = NULL; - gTextureList.addImage(imagep); LLViewerFetchedTexture::sDefaultImagep->dontDiscard(); #else LLViewerFetchedTexture::sDefaultImagep = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, TRUE, TRUE); @@ -369,6 +371,7 @@ void LLViewerTexture::updateClass(const F32 velocity, const F32 angular_velocity } } sDesiredDiscardBias = llclamp(sDesiredDiscardBias, desired_discard_bias_min, desired_discard_bias_max); + LLViewerTexture::sUseTextureAtlas = gSavedSettings.getBOOL("EnableTextureAtlas") ; } //end of static functions @@ -668,7 +671,7 @@ LLGLuint LLViewerTexture::getTexName() const return mGLTexturep->getTexName() ; } -BOOL LLViewerTexture::hasValidGLTexture() const +BOOL LLViewerTexture::hasGLTexture() const { if(mGLTexturep.notNull()) { @@ -677,11 +680,6 @@ BOOL LLViewerTexture::hasValidGLTexture() const return FALSE ; } -BOOL LLViewerTexture::hasGLTexture() const -{ - return mGLTexturep.notNull() ; -} - BOOL LLViewerTexture::getBoundRecently() const { if(mGLTexturep.notNull()) @@ -780,6 +778,34 @@ BOOL LLViewerTexture::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool return mGLTexturep->readBackRaw(discard_level, imageraw, compressed_ok) ; } +U32 LLViewerTexture::getTexelsInAtlas() const +{ + llassert_always(mGLTexturep.notNull()) ; + + return mGLTexturep->getTexelsInAtlas() ; +} + +U32 LLViewerTexture::getTexelsInGLTexture() const +{ + llassert_always(mGLTexturep.notNull()) ; + + return mGLTexturep->getTexelsInGLTexture() ; +} + +BOOL LLViewerTexture::isGLTextureCreated() const +{ + llassert_always(mGLTexturep.notNull()) ; + + return mGLTexturep->isGLTextureCreated() ; +} + +S32 LLViewerTexture::getDiscardLevelInAtlas() const +{ + llassert_always(mGLTexturep.notNull()) ; + + return mGLTexturep->getDiscardLevelInAtlas() ; +} + void LLViewerTexture::destroyGLTexture() { if(mGLTexturep.notNull() && mGLTexturep->getHasGLTexture()) @@ -797,6 +823,7 @@ void LLViewerTexture::updateBindStatsForTester() LLViewerTextureManager::sTesterp->updateTextureBindingStats(this) ; } } + //---------------------------------------------------------------------------------------------- //end of LLViewerTexture //---------------------------------------------------------------------------------------------- @@ -1045,7 +1072,11 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/) return FALSE; } - res = mGLTexturep->createGLTexture(mRawDiscardLevel, mRawImage, usename); + if(!(res = insertToAtlas())) + { + res = mGLTexturep->createGLTexture(mRawDiscardLevel, mRawImage, usename); + resetFaceAtlas() ; + } setActive() ; } @@ -1742,6 +1773,197 @@ void LLViewerFetchedTexture::destroyRawImage() mIsRawImageValid = FALSE; mRawDiscardLevel = INVALID_DISCARD_LEVEL; } + +//---------------------------------------------------------------------------------------------- +//atlasing +//---------------------------------------------------------------------------------------------- +void LLViewerFetchedTexture::resetFaceAtlas() +{ + //Nothing should be done here. +} + +//invalidate all atlas slots for this image. +void LLViewerFetchedTexture::invalidateAtlas(BOOL rebuild_geom) +{ + for(ll_face_list_t::iterator iter = mFaceList.begin(); iter != mFaceList.end(); ++iter) + { + if(*iter) + { + LLFace* facep = (LLFace*)*iter ; + facep->removeAtlas() ; + if(rebuild_geom && facep->getDrawable() && facep->getDrawable()->getSpatialGroup()) + { + facep->getDrawable()->getSpatialGroup()->setState(LLSpatialGroup::GEOM_DIRTY); + } + } + } +} + +BOOL LLViewerFetchedTexture::insertToAtlas() +{ + if(!LLViewerTexture::sUseTextureAtlas) + { + return FALSE ; + } + if(mFaceList.size() < 1) + { + return FALSE ; + } + if(mGLTexturep->getDiscardLevelInAtlas() > 0 && mRawDiscardLevel >= mGLTexturep->getDiscardLevelInAtlas()) + { + return FALSE ; + } + if(!LLTextureAtlasManager::getInstance()->canAddToAtlas(mRawImage->getWidth(), mRawImage->getHeight(), mRawImage->getComponents(), mGLTexturep->getTexTarget())) + { + return FALSE ; + } + + BOOL ret = TRUE ;//if ret is set to false, will generate a gl texture for this image. + S32 raw_w = mRawImage->getWidth() ; + S32 raw_h = mRawImage->getHeight() ; + F32 xscale = 1.0f, yscale = 1.0f ; + LLPointer<LLTextureAtlasSlot> slot_infop; + LLTextureAtlasSlot* cur_slotp ;//no need to be smart pointer. + LLSpatialGroup* groupp ; + LLFace* facep; + + //if the atlas slot pointers for some faces are null, process them later. + ll_face_list_t waiting_list ; + + for(ll_face_list_t::iterator iter = mFaceList.begin(); iter != mFaceList.end(); ++iter) + { + if(*iter) + { + facep = (LLFace*)*iter ; + + //face can not use atlas. + if(!facep->canUseAtlas()) + { + if(facep->getAtlasInfo()) + { + facep->removeAtlas() ; + } + ret = FALSE ; + continue ; + } + + //the atlas slot is updated + slot_infop = facep->getAtlasInfo() ; + groupp = facep->getDrawable()->getSpatialGroup() ; + + if(slot_infop) + { + if(slot_infop->getSpatialGroup() != groupp) + { + if((cur_slotp = groupp->getCurUpdatingSlot(this))) //switch slot + { + facep->setAtlasInfo(cur_slotp) ; + facep->setAtlasInUse(TRUE) ; + continue ; + } + else //do not forget to update slot_infop->getSpatialGroup(). + { + LLSpatialGroup* gp = slot_infop->getSpatialGroup() ; + gp->setCurUpdatingTime(gFrameCount) ; + gp->setCurUpdatingTexture(this) ; + gp->setCurUpdatingSlot(slot_infop) ; + } + } + else //same group + { + if(gFrameCount && slot_infop->getUpdatedTime() == gFrameCount)//slot is just updated + { + facep->setAtlasInUse(TRUE) ; + continue ; + } + } + } + else + { + //if the slot is null, wait to process them later. + waiting_list.push_back(facep) ; + continue ; + } + + //---------- + //insert to atlas + if(!slot_infop->getAtlas()->insertSubTexture(mGLTexturep, mRawDiscardLevel, mRawImage, slot_infop->getSlotCol(), slot_infop->getSlotRow())) + { + + //the texture does not qualify to add to atlas, do not bother to try for other faces. + //invalidateAtlas(); + return FALSE ; + } + + //update texture scale + slot_infop->getAtlas()->getTexCoordScale(raw_w, raw_h, xscale, yscale) ; + slot_infop->setTexCoordScale(xscale, yscale) ; + slot_infop->setValid() ; + slot_infop->setUpdatedTime(gFrameCount) ; + + //update spatial group atlas info + groupp->setCurUpdatingTime(gFrameCount) ; + groupp->setCurUpdatingTexture(this) ; + groupp->setCurUpdatingSlot(slot_infop) ; + + //make the face to switch to the atlas. + facep->setAtlasInUse(TRUE) ; + } + } + + //process the waiting_list + for(ll_face_list_t::iterator iter = waiting_list.begin(); iter != waiting_list.end(); ++iter) + { + facep = (LLFace*)*iter ; + groupp = facep->getDrawable()->getSpatialGroup() ; + + //check if this texture already inserted to atlas for this group + if((cur_slotp = groupp->getCurUpdatingSlot(this))) + { + facep->setAtlasInfo(cur_slotp) ; + facep->setAtlasInUse(TRUE) ; + continue ; + } + + //need to reserve a slot from atlas + slot_infop = LLTextureAtlasManager::getInstance()->reserveAtlasSlot(llmax(mFullWidth, mFullHeight), getComponents(), groupp, this) ; + + facep->setAtlasInfo(slot_infop) ; + + groupp->setCurUpdatingTime(gFrameCount) ; + groupp->setCurUpdatingTexture(this) ; + groupp->setCurUpdatingSlot(slot_infop) ; + + //slot allocation failed. + if(!slot_infop || !slot_infop->getAtlas()) + { + ret = FALSE ; + facep->setAtlasInUse(FALSE) ; + continue ; + } + + //insert to atlas + if(!slot_infop->getAtlas()->insertSubTexture(mGLTexturep, mRawDiscardLevel, mRawImage, slot_infop->getSlotCol(), slot_infop->getSlotRow())) + { + //the texture does not qualify to add to atlas, do not bother to try for other faces. + ret = FALSE ; + //invalidateAtlas(); + break ; + } + + //update texture scale + slot_infop->getAtlas()->getTexCoordScale(raw_w, raw_h, xscale, yscale) ; + slot_infop->setTexCoordScale(xscale, yscale) ; + slot_infop->setValid() ; + slot_infop->setUpdatedTime(gFrameCount) ; + + //make the face to switch to the atlas. + facep->setAtlasInUse(TRUE) ; + } + + return ret ; +} + //---------------------------------------------------------------------------------------------- //end of LLViewerFetchedTexture //---------------------------------------------------------------------------------------------- diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index 142c212435acf57b7553079f888524a23376aaeb..0be1bf81de3d81de1dc27cf3fb3a173c222d6cf6 100644 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -98,6 +98,7 @@ class LLViewerTexture : public LLTexture DYNAMIC_TEXTURE, FETCHED_TEXTURE, LOD_TEXTURE, + ATLAS_TEXTURE, INVALID_TEXTURE_TYPE }; @@ -171,7 +172,6 @@ class LLViewerTexture : public LLTexture /*virtual*/S32 getHeight(S32 discard_level = -1) const; BOOL hasGLTexture() const ; - BOOL hasValidGLTexture() const ; LLGLuint getTexName() const ; BOOL createGLTexture() ; BOOL createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename = 0); @@ -197,6 +197,11 @@ class LLViewerTexture : public LLTexture BOOL getMissed() const ; BOOL isValidForSculpt(S32 discard_level, S32 image_width, S32 image_height, S32 ncomponents) ; BOOL readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compressed_ok) const; + + U32 getTexelsInAtlas() const ; + U32 getTexelsInGLTexture() const ; + BOOL isGLTextureCreated() const ; + S32 getDiscardLevelInAtlas() const ; //--------------------------------------------------------------------------------------------- //end of functions to access LLImageGL //--------------------------------------------------------------------------------------------- @@ -263,6 +268,7 @@ class LLViewerTexture : public LLTexture static S32 sMaxTotalTextureMemInMegaBytes; static S32 sMaxDesiredTextureMemInBytes ; static BOOL sDontLoadVolumeTextures; + static BOOL sUseTextureAtlas ; static LLPointer<LLViewerTexture> sNullImagep; // Null texture for non-textured objects. }; @@ -388,6 +394,11 @@ class LLViewerFetchedTexture : public LLViewerTexture F32 calcDecodePriorityForUnknownTexture(F32 pixel_priority) ; + //for atlas + void resetFaceAtlas() ; + void invalidateAtlas(BOOL rebuild_geom) ; + BOOL insertToAtlas() ; + private: BOOL mFullyLoaded; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index b4f1b5f4f536752004f704daa8db808183850fda..ae94fc66492ae32489aea04c269399d2474b0e5b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1904,6 +1904,11 @@ void LLViewerWindow::draw() //S32 screen_x, screen_y; + if (!gSavedSettings.getBOOL("RenderUIBuffer")) + { + LLUI::sDirtyRect = this->getWindowRect(); + } + // HACK for timecode debugging if (gSavedSettings.getBOOL("DisplayTimecode")) { @@ -3880,7 +3885,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei { if(image_width > window_width || image_height > window_height) //need to enlarge the scene { - if (gGLManager.mHasFramebufferObject && !show_ui) + if (!LLPipeline::sRenderDeferred && gGLManager.mHasFramebufferObject && !show_ui) { GLint max_size = 0; glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE_EXT, &max_size); @@ -3968,9 +3973,17 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei else { const U32 subfield = subimage_x+(subimage_y*llceil(scale_factor)); - display(do_rebuild, scale_factor, subfield, TRUE); - // Required for showing the GUI in snapshots? See DEV-16350 for details. JC - render_ui(scale_factor, subfield); + + if (LLPipeline::sRenderDeferred) + { + display(do_rebuild, scale_factor, subfield, FALSE); + } + else + { + display(do_rebuild, scale_factor, subfield, TRUE); + // Required for showing the GUI in snapshots? See DEV-16350 for details. JC + render_ui(scale_factor, subfield); + } } S32 subimage_x_offset = llclamp(buffer_x_offset - (subimage_x * window_width), 0, window_width); @@ -4115,8 +4128,8 @@ void LLViewerWindow::drawMouselookInstructions() font->renderUTF8( instructions, 0, - mWorldViewRect.getCenterX(), - mWorldViewRect.mBottom + INSTRUCTIONS_PAD, + getVirtualWorldViewRect().getCenterX(), + getVirtualWorldViewRect().mBottom + INSTRUCTIONS_PAD, LLColor4( 0.0f, 0.0f, 0.0f, 0.6f ), LLFontGL::HCENTER, LLFontGL::TOP); } diff --git a/indra/newview/llvlcomposition.cpp b/indra/newview/llvlcomposition.cpp index f26ba6f46ef7e004e8a77450db709899e533419d..d124cbcdced8357d26f03281adbadf1ceb519606 100644 --- a/indra/newview/llvlcomposition.cpp +++ b/indra/newview/llvlcomposition.cpp @@ -448,6 +448,10 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y, } } + if (!texturep->hasGLTexture()) + { + texturep->createGLTexture(0, raw); + } texturep->setSubImage(raw, tex_x_begin, tex_y_begin, tex_x_end - tex_x_begin, tex_y_end - tex_y_begin); LLSurface::sTextureUpdateTime += gen_timer.getElapsedTimeF32(); LLSurface::sTexelsUpdated += (tex_x_end - tex_x_begin) * (tex_y_end - tex_y_begin); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 824e06284a4101f77236cd66c8cce78824604f5b..a9e91698912f8942cd32c8ebad95636e7e0741ed 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -86,6 +86,7 @@ #include "llsky.h" #include "llanimstatelabels.h" #include "lltrans.h" +#include "llappearancemgr.h" #include "llgesturemgr.h" //needed to trigger the voice gesticulations #include "llvoiceclient.h" @@ -691,6 +692,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id, } mDirtyMesh = TRUE; // Dirty geometry, need to regenerate. + mMeshTexturesDirty = FALSE; mShadow0Facep = NULL; mShadow1Facep = NULL; mHeadp = NULL; @@ -729,8 +731,10 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id, mRippleTimeLast = 0.f; mShadowImagep = LLViewerTextureManager::getFetchedTextureFromFile("foot_shadow.j2c"); - gGL.getTexUnit(0)->bind(mShadowImagep); - mShadowImagep->setAddressMode(LLTexUnit::TAM_CLAMP); + + // GL NOT ACTIVE HERE + //gGL.getTexUnit(0)->bind(mShadowImagep.get()); + //mShadowImagep->setAddressMode(LLTexUnit::TAM_CLAMP); mInAir = FALSE; @@ -1411,7 +1415,7 @@ BOOL LLVOAvatar::lineSegmentIntersect(const LLVector3& start, const LLVector3& e LLVector3* normal, LLVector3* bi_normal) { - if (isSelf() && !gAgent.needsRenderAvatar() || !LLPipeline::sPickAvatar) + if ((isSelf() && !gAgent.needsRenderAvatar()) || !LLPipeline::sPickAvatar) { return FALSE; } @@ -1623,6 +1627,11 @@ BOOL LLVOAvatar::buildSkeleton(const LLVOAvatarSkeletonInfo *info) return TRUE; } +LLVOAvatar* LLVOAvatar::asAvatar() +{ + return this; +} + //----------------------------------------------------------------------------- // LLVOAvatar::startDefaultMotions() //----------------------------------------------------------------------------- @@ -2187,10 +2196,14 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) idleUpdateVoiceVisualizer( voice_enabled ); idleUpdateMisc( detailed_update ); idleUpdateAppearanceAnimation(); - idleUpdateLipSync( voice_enabled ); - idleUpdateLoadingEffect(); - idleUpdateBelowWater(); // wind effect uses this - idleUpdateWindEffect(); + if (detailed_update) + { + idleUpdateLipSync( voice_enabled ); + idleUpdateLoadingEffect(); + idleUpdateBelowWater(); // wind effect uses this + idleUpdateWindEffect(); + } + idleUpdateNameTag( root_pos_last ); idleUpdateRenderCost(); idleUpdateTractorBeam(); @@ -3043,7 +3056,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent) if (!visible) { - updateMotions(LLCharacter::HIDDEN_UPDATE); + //updateMotions(LLCharacter::HIDDEN_UPDATE); return FALSE; } @@ -3713,7 +3726,8 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass) if (pass == AVATAR_RENDER_PASS_SINGLE) { - const bool should_alpha_mask = mSupportsAlphaLayers && !LLDrawPoolAlpha::sShowDebugAlpha; // Don't alpha mask if "Highlight Transparent" checked + const bool should_alpha_mask = mSupportsAlphaLayers && !LLDrawPoolAlpha::sShowDebugAlpha // Don't alpha mask if "Highlight Transparent" checked + && !LLDrawPoolAvatar::sSkipTransparent; LLGLState test(GL_ALPHA_TEST, should_alpha_mask); @@ -3828,20 +3842,8 @@ U32 LLVOAvatar::renderRigid() if (isTextureVisible(TEX_EYES_BAKED) || mIsDummy) { - // If the meshes need to be drawn, enable alpha masking but not blending - bool should_alpha_mask = mSupportsAlphaLayers && !LLDrawPoolAlpha::sShowDebugAlpha; - - LLGLState test(GL_ALPHA_TEST, should_alpha_mask); - - if (should_alpha_mask) - { - gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); - } - num_indices += mMeshLOD[MESH_ID_EYEBALL_LEFT]->render(mAdjustedPixelArea, TRUE, mIsDummy); num_indices += mMeshLOD[MESH_ID_EYEBALL_RIGHT]->render(mAdjustedPixelArea, TRUE, mIsDummy); - - gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); } return num_indices; @@ -3886,7 +3888,7 @@ U32 LLVOAvatar::renderFootShadows() LLGLDepthTest test(GL_TRUE, GL_FALSE); //render foot shadows LLGLEnable blend(GL_BLEND); - gGL.getTexUnit(0)->bind(mShadowImagep); + gGL.getTexUnit(0)->bind(mShadowImagep.get()); glColor4fv(mShadow0Facep->getRenderColor().mV); mShadow0Facep->renderIndexed(foot_mask); glColor4fv(mShadow1Facep->getRenderColor().mV); @@ -3895,7 +3897,7 @@ U32 LLVOAvatar::renderFootShadows() return num_indices; } -U32 LLVOAvatar::renderImpostor(LLColor4U color) +U32 LLVOAvatar::renderImpostor(LLColor4U color, S32 diffuse_channel) { if (!mImpostor.isComplete()) { @@ -3915,7 +3917,7 @@ U32 LLVOAvatar::renderImpostor(LLColor4U color) gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.f); gGL.color4ubv(color.mV); - gGL.getTexUnit(0)->bind(&mImpostor); + gGL.getTexUnit(diffuse_channel)->bind(&mImpostor); gGL.begin(LLRender::QUADS); gGL.texCoord2f(0,0); gGL.vertex3fv((pos+left-up).mV); @@ -3953,6 +3955,7 @@ void LLVOAvatar::updateTextures(LLAgent &agent) } std::vector<BOOL> layer_baked; + // GL NOT ACTIVE HERE - *TODO for (U32 i = 0; i < mBakedTextureDatas.size(); i++) { layer_baked.push_back(isTextureDefined(mBakedTextureDatas[i].mTextureIndex)); @@ -5182,6 +5185,15 @@ LLDrawable *LLVOAvatar::createDrawable(LLPipeline *pipeline) } +void LLVOAvatar::updateGL() +{ + if (mMeshTexturesDirty) + { + updateMeshTextures(); + mMeshTexturesDirty = FALSE; + } +} + //----------------------------------------------------------------------------- // updateGeometry() //----------------------------------------------------------------------------- @@ -5233,7 +5245,7 @@ void LLVOAvatar::updateShadowFaces() sprite.setSize(0.4f + cos_elev * 0.8f, 0.3f); LLVector3 sun_vec = gSky.mVOSkyp ? gSky.mVOSkyp->getToSun() : LLVector3(0.f, 0.f, 0.f); - if (mShadowImagep->hasValidGLTexture()) + if (mShadowImagep->hasGLTexture()) { LLVector3 normal; LLVector3d shadow_pos; @@ -5492,6 +5504,18 @@ BOOL LLVOAvatar::detachObject(LLViewerObject *viewer_object) if (isSelf()) { // Then make sure the inventory is in sync with the avatar. + + // Update COF contents, don't trigger appearance update. + if (gAgent.getAvatarObject() == NULL) + { + llinfos << "removeItemLinks skipped, avatar is under destruction" << llendl; + } + else + { + LLAppearanceManager::removeItemLinks(item_id, false); + } + + // BAP - needs to change for label to track link. gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id); gInventory.notifyObservers(); } @@ -6365,7 +6389,8 @@ void LLVOAvatar::onFirstTEMessageReceived() } } - updateMeshTextures(); + mMeshTexturesDirty = TRUE; + gPipeline.markGLRebuild(this); } } @@ -6428,6 +6453,8 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) } setCompositeUpdatesEnabled( FALSE ); + mMeshTexturesDirty = TRUE; + gPipeline.markGLRebuild(this); // ! BACKWARDS COMPATIBILITY ! // Non-self avatars will no longer have component textures @@ -6436,8 +6463,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) releaseComponentTextures(); } - updateMeshTextures(); // enables updates for laysets without baked textures. - + // parse visual params S32 num_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_VisualParam); if( num_blocks > 1 ) @@ -7447,13 +7473,18 @@ void LLVOAvatar::updateFreezeCounter(S32 counter) BOOL LLVOAvatar::updateLOD() { + if (isImpostor()) + { + return TRUE; + } + BOOL res = updateJointLODs(); LLFace* facep = mDrawable->getFace(0); if (facep->mVertexBuffer.isNull() || - LLVertexBuffer::sEnableVBOs && + (LLVertexBuffer::sEnableVBOs && ((facep->mVertexBuffer->getUsage() == GL_STATIC_DRAW ? TRUE : FALSE) != - (facep->getPool()->getVertexShaderLevel() > 0 ? TRUE : FALSE))) + (facep->getPool()->getVertexShaderLevel() > 0 ? TRUE : FALSE)))) { mDirtyMesh = TRUE; } diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 4dc70511ceaec6af6b671371956242f52b7428d6..ef5358198da1ab6947b8780f19bfd431d5248eff 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -114,6 +114,8 @@ class LLVOAvatar : // LLViewerObject interface and related //-------------------------------------------------------------------- public: + virtual void updateGL(); + virtual LLVOAvatar* asAvatar(); virtual U32 processUpdateMessage(LLMessageSystem *mesgsys, void **user_data, U32 block_num, @@ -329,7 +331,7 @@ class LLVOAvatar : public: U32 renderFootShadows(); - U32 renderImpostor(LLColor4U color = LLColor4U(255,255,255,255)); + U32 renderImpostor(LLColor4U color = LLColor4U(255,255,255,255), S32 diffuse_channel = 0); U32 renderRigid(); U32 renderSkinned(EAvatarRenderPass pass); U32 renderTransparent(BOOL first_pass); @@ -560,6 +562,7 @@ class LLVOAvatar : /*virtual*/ void restoreMeshData(); private: BOOL mDirtyMesh; + BOOL mMeshTexturesDirty; typedef std::multimap<std::string, LLPolyMesh*> polymesh_map_t; polymesh_map_t mMeshes; diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 31b9f062e4e3deb67095f1f153b6b08088274e49..300eabf35c52eebfcacbb42ffc2b2267ac21a8ac 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -88,6 +88,7 @@ #include "llgesturemgr.h" //needed to trigger the voice gesticulations #include "llvoiceclient.h" #include "llvoicevisualizer.h" // Ventrella +#include "llappearancemgr.h" #if LL_MSVC // disable boost::lexical_cast warning @@ -994,6 +995,11 @@ LLViewerJointAttachment *LLVOAvatarSelf::attachObject(LLViewerObject *viewer_obj updateAttachmentVisibility(gAgent.getCameraMode()); // Then make sure the inventory is in sync with the avatar. + LLViewerInventoryItem *item = gInventory.getItem(attachment->getItemID()); + if (item) + { + LLAppearanceManager::wearItem(item,false); // Add COF link for item. + } gInventory.addChangedMask(LLInventoryObserver::LABEL, attachment->getItemID()); gInventory.notifyObservers(); @@ -1342,7 +1348,7 @@ void LLVOAvatarSelf::getLocalTextureByteCount(S32* gl_bytes) const { S32 bytes = (S32)image_gl->getWidth() * image_gl->getHeight() * image_gl->getComponents(); - if (image_gl->hasValidGLTexture()) + if (image_gl->hasGLTexture()) { *gl_bytes += bytes; } @@ -1550,7 +1556,7 @@ BOOL LLVOAvatarSelf::updateIsFullyLoaded() // Check for the case that texture is defined but not sufficiently loaded to display anything. LLViewerTexture* baked_img = getImage( texture_data.mTextureIndex ); - if (!baked_img || !baked_img->hasValidGLTexture()) + if (!baked_img || !baked_img->hasGLTexture()) { loading = TRUE; } diff --git a/indra/newview/llvoclouds.cpp b/indra/newview/llvoclouds.cpp index 130e1fd749a19bf26b3a249c763aa170827b0aef..8d3c8b6f1a98b5f18094e69f3d40600f08c5adbd 100644 --- a/indra/newview/llvoclouds.cpp +++ b/indra/newview/llvoclouds.cpp @@ -125,7 +125,10 @@ BOOL LLVOClouds::updateGeometry(LLDrawable *drawable) return TRUE; } - dirtySpatialGroup(); + if (drawable->isVisible()) + { + dirtySpatialGroup(TRUE); + } LLFace *facep; diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp index 38c9ce28c4695a0df3bd6076f8fd7ac9154fed3c..7585842623bee5b7886487e6473cf9db12ff07c3 100644 --- a/indra/newview/llvopartgroup.cpp +++ b/indra/newview/llvopartgroup.cpp @@ -155,6 +155,11 @@ BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable) group = drawable->getSpatialGroup(); } + if (group && group->isVisible()) + { + dirtySpatialGroup(TRUE); + } + if (!num_parts) { if (group && drawable->getNumFaces()) @@ -353,12 +358,11 @@ U32 LLVOPartGroup::getPartitionType() const } LLParticlePartition::LLParticlePartition() -: LLSpatialPartition(LLDrawPoolAlpha::VERTEX_DATA_MASK) +: LLSpatialPartition(LLDrawPoolAlpha::VERTEX_DATA_MASK, TRUE, GL_DYNAMIC_DRAW_ARB) { mRenderPass = LLRenderPass::PASS_ALPHA; mDrawableType = LLPipeline::RENDER_TYPE_PARTICLES; mPartitionType = LLViewerRegion::PARTITION_PARTICLE; - mBufferUsage = GL_DYNAMIC_DRAW_ARB; mSlopRatio = 0.f; mLODPeriod = 1; } @@ -485,7 +489,9 @@ void LLParticlePartition::getGeometry(LLSpatialGroup* group) U32 end = start + facep->getGeomCount()-1; U32 offset = facep->getIndicesStart(); U32 count = facep->getIndicesCount(); - LLDrawInfo* info = new LLDrawInfo(start,end,count,offset,facep->getTexture(), buffer, fullbright); + LLDrawInfo* info = new LLDrawInfo(start,end,count,offset,facep->getTexture(), + //facep->getTexture(), + buffer, fullbright); info->mExtents[0] = group->mObjectExtents[0]; info->mExtents[1] = group->mObjectExtents[1]; info->mVSize = vsize; diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index ae5992099d967e0e4bd7f6c4903cf427cef5cbfa..33b86660fa85524d11c0d1b854b89eacdc89ec67 100644 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -1095,10 +1095,10 @@ BOOL LLVOSky::updateSky() mLastTotalAmbient.mV[2] - mTotalAmbient.mV[2]); if ( mForceUpdate - || ((dot_lighting < LIGHT_DIRECTION_THRESHOLD) + || (((dot_lighting < LIGHT_DIRECTION_THRESHOLD) || (delta_color.length() > COLOR_CHANGE_THRESHOLD) || !mInitialized) - && !direction.isExactlyZero()) + && !direction.isExactlyZero())) { mLastLightingDirection = direction; mLastTotalAmbient = mTotalAmbient; diff --git a/indra/newview/llvosurfacepatch.cpp b/indra/newview/llvosurfacepatch.cpp index 157d719fcca10840eadc4ef46e6805dc26025fdd..164f0f0cade67b0c1d7ffbb63c5cc2b1904491e2 100644 --- a/indra/newview/llvosurfacepatch.cpp +++ b/indra/newview/llvosurfacepatch.cpp @@ -178,11 +178,19 @@ LLDrawable *LLVOSurfacePatch::createDrawable(LLPipeline *pipeline) static LLFastTimer::DeclareTimer FTM_UPDATE_TERRAIN("Update Terrain"); +void LLVOSurfacePatch::updateGL() +{ + if (mPatchp) + { + mPatchp->updateGL(); + } +} + BOOL LLVOSurfacePatch::updateGeometry(LLDrawable *drawable) { LLFastTimer ftm(FTM_UPDATE_TERRAIN); - dirtySpatialGroup(); + dirtySpatialGroup(TRUE); S32 min_comp, max_comp, range; min_comp = lltrunc(mPatchp->getMinComposition()); @@ -1014,12 +1022,10 @@ U32 LLVOSurfacePatch::getPartitionType() const } LLTerrainPartition::LLTerrainPartition() -: LLSpatialPartition(LLDrawPoolTerrain::VERTEX_DATA_MASK) +: LLSpatialPartition(LLDrawPoolTerrain::VERTEX_DATA_MASK, FALSE, GL_DYNAMIC_DRAW_ARB) { mOcclusionEnabled = FALSE; - mRenderByGroup = FALSE; mInfiniteFarClip = TRUE; - mBufferUsage = GL_DYNAMIC_DRAW_ARB; mDrawableType = LLPipeline::RENDER_TYPE_TERRAIN; mPartitionType = LLViewerRegion::PARTITION_TERRAIN; } diff --git a/indra/newview/llvosurfacepatch.h b/indra/newview/llvosurfacepatch.h index 2dd86518992d5cbd9b6d2d47fec369b0e84150dd..aaf4d41fa1e02b733e58d946b26b95cab5028c93 100644 --- a/indra/newview/llvosurfacepatch.h +++ b/indra/newview/llvosurfacepatch.h @@ -64,6 +64,7 @@ class LLVOSurfacePatch : public LLStaticViewerObject virtual U32 getPartitionType() const; /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline); + /*virtual*/ void updateGL(); /*virtual*/ BOOL updateGeometry(LLDrawable *drawable); /*virtual*/ BOOL updateLOD(); /*virtual*/ void updateFaceSize(S32 idx); diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp index 86d9f31d071aabfa45001b4c3167f5d714a0d3fb..615ae13bc2c40c19e1f75225bf470a8ea95e4b2f 100644 --- a/indra/newview/llvotree.cpp +++ b/indra/newview/llvotree.cpp @@ -312,10 +312,6 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys, // Load Species-Specific data // mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, TRUE, FALSE, LLViewerTexture::LOD_TEXTURE); - if (mTreeImagep) - { - gGL.getTexUnit(0)->bind(mTreeImagep); - } mBranchLength = sSpeciesTable[mSpecies]->mBranchLength; mTrunkLength = sSpeciesTable[mSpecies]->mTrunkLength; mLeafScale = sSpeciesTable[mSpecies]->mLeafScale; @@ -1305,9 +1301,8 @@ U32 LLVOTree::getPartitionType() const } LLTreePartition::LLTreePartition() -: LLSpatialPartition(0) +: LLSpatialPartition(0, FALSE, 0) { - mRenderByGroup = FALSE; mDrawableType = LLPipeline::RENDER_TYPE_TREE; mPartitionType = LLViewerRegion::PARTITION_TREE; mSlopRatio = 0.f; diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 940accdd062f9ef56f767f12bc17d1d20cfc86e2..93cb0f0f45562ba856307f9dc784704b5ef1770e 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -69,8 +69,10 @@ const S32 MIN_QUIET_FRAMES_COALESCE = 30; const F32 FORCE_SIMPLE_RENDER_AREA = 512.f; const F32 FORCE_CULL_AREA = 8.f; +const F32 MAX_LOD_DISTANCE = 24.f; const S32 MAX_SCULPT_REZ = 128; + BOOL gAnimateTextures = TRUE; //extern BOOL gHideSelectedObjects; @@ -97,6 +99,7 @@ LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *re mNumFaces = 0; mLODChanged = FALSE; mSculptChanged = FALSE; + mSpotLightPriority = 0.f; } LLVOVolume::~LLVOVolume() @@ -320,11 +323,6 @@ void LLVOVolume::animateTextures() te->getScale(&scale_s, &scale_t); } - LLVector3 scale(scale_s, scale_t, 1.f); - LLVector3 trans(off_s+0.5f, off_t+0.5f, 0.f); - LLQuaternion quat; - quat.setQuat(rot, 0, 0, -1.f); - if (!facep->mTextureMatrix) { facep->mTextureMatrix = new LLMatrix4(); @@ -332,7 +330,43 @@ void LLVOVolume::animateTextures() LLMatrix4& tex_mat = *facep->mTextureMatrix; tex_mat.setIdentity(); - tex_mat.translate(LLVector3(-0.5f, -0.5f, 0.f)); + LLVector3 trans ; + + if(facep->isAtlasInUse()) + { + // + //if use atlas for animated texture + //apply the following transform to the animation matrix. + // + + F32 tcoord_xoffset = 0.f ; + F32 tcoord_yoffset = 0.f ; + F32 tcoord_xscale = 1.f ; + F32 tcoord_yscale = 1.f ; + if(facep->isAtlasInUse()) + { + const LLVector2* tmp = facep->getTexCoordOffset() ; + tcoord_xoffset = tmp->mV[0] ; + tcoord_yoffset = tmp->mV[1] ; + + tmp = facep->getTexCoordScale() ; + tcoord_xscale = tmp->mV[0] ; + tcoord_yscale = tmp->mV[1] ; + } + trans.set(LLVector3(tcoord_xoffset + tcoord_xscale * (off_s+0.5f), tcoord_yoffset + tcoord_yscale * (off_t+0.5f), 0.f)); + + tex_mat.translate(LLVector3(-(tcoord_xoffset + tcoord_xscale * 0.5f), -(tcoord_yoffset + tcoord_yscale * 0.5f), 0.f)); + } + else //non atlas + { + trans.set(LLVector3(off_s+0.5f, off_t+0.5f, 0.f)); + tex_mat.translate(LLVector3(-0.5f, -0.5f, 0.f)); + } + + LLVector3 scale(scale_s, scale_t, 1.f); + LLQuaternion quat; + quat.setQuat(rot, 0, 0, -1.f); + tex_mat.rotate(quat); LLMatrix4 mat; @@ -473,8 +507,8 @@ void LLVOVolume::updateTextures() if (face->mTextureMatrix != NULL) { - if (vsize < MIN_TEX_ANIM_SIZE && old_size > MIN_TEX_ANIM_SIZE || - vsize > MIN_TEX_ANIM_SIZE && old_size < MIN_TEX_ANIM_SIZE) + if ((vsize < MIN_TEX_ANIM_SIZE && old_size > MIN_TEX_ANIM_SIZE) || + (vsize > MIN_TEX_ANIM_SIZE && old_size < MIN_TEX_ANIM_SIZE)) { gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_TCOORD, FALSE); } @@ -541,6 +575,19 @@ void LLVOVolume::updateTextures() } } + if (getLightTextureID().notNull()) + { + LLLightImageParams* params = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE); + LLUUID id = params->getLightTexture(); + mLightTexture = LLViewerTextureManager::getFetchedTexture(id); + if (mLightTexture.notNull()) + { + F32 rad = getLightRadius(); + mLightTexture->addTextureStats(gPipeline.calcPixelArea(getPositionAgent(), + LLVector3(rad,rad,rad), + *LLViewerCamera::getInstance())); + } + } if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_TEXTURE_AREA)) { @@ -711,7 +758,17 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams &volume_params, const S32 detail mSculptTexture = LLViewerTextureManager::getFetchedTexture(volume_params.getSculptID(), TRUE, FALSE, LLViewerTexture::LOD_TEXTURE); if (mSculptTexture.notNull()) { - sculpt(); + //ignore sculpt GL usage since bao fixed this in a separate branch + if (!gGLActive) + { + gGLActive = TRUE; + sculpt(); + gGLActive = FALSE; + } + else + { + sculpt(); + } mSculptLevel = getVolume()->getSculptLevel(); } } @@ -836,12 +893,15 @@ BOOL LLVOVolume::calcLOD() } //update face texture sizes on lod calculation - updateTextures(); + //if (mDrawable->isVisible()) + //{ + // updateTextures(); + //} S32 cur_detail = 0; F32 radius = getVolume()->mLODScaleBias.scaledVec(getScale()).length(); - F32 distance = mDrawable->mDistanceWRTCamera; + F32 distance = llmin(mDrawable->mDistanceWRTCamera, MAX_LOD_DISTANCE); distance *= sDistanceFactor; F32 rampDist = LLVOVolume::sLODFactor * 2; @@ -1452,6 +1512,41 @@ void LLVOVolume::updateTEData() //---------------------------------------------------------------------------- +void LLVOVolume::setLightTextureID(LLUUID id) +{ + if (id.notNull()) + { + if (!hasLightTexture()) + { + setParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE, TRUE, true); + } + LLLightImageParams* param_block = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE); + if (param_block && param_block->getLightTexture() != id) + { + param_block->setLightTexture(id); + parameterChanged(LLNetworkData::PARAMS_LIGHT_IMAGE, true); + } + } + else + { + if (hasLightTexture()) + { + setParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE, FALSE, true); + mLightTexture = NULL; + } + } +} + +void LLVOVolume::setSpotLightParams(LLVector3 params) +{ + LLLightImageParams* param_block = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE); + if (param_block && param_block->getParams() != params) + { + param_block->setParams(params); + parameterChanged(LLNetworkData::PARAMS_LIGHT_IMAGE, true); + } +} + void LLVOVolume::setIsLight(BOOL is_light) { if (is_light != getIsLight()) @@ -1578,6 +1673,83 @@ LLColor3 LLVOVolume::getLightColor() const } } +LLUUID LLVOVolume::getLightTextureID() const +{ + if (getParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE)) + { + const LLLightImageParams *param_block = (const LLLightImageParams *)getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE); + if (param_block) + { + return param_block->getLightTexture(); + } + } + + return LLUUID::null; +} + + +LLVector3 LLVOVolume::getSpotLightParams() const +{ + if (getParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE)) + { + const LLLightImageParams *param_block = (const LLLightImageParams *)getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE); + if (param_block) + { + return param_block->getParams(); + } + } + + return LLVector3(); +} + +F32 LLVOVolume::getSpotLightPriority() const +{ + return mSpotLightPriority; +} + +void LLVOVolume::updateSpotLightPriority() +{ + LLVector3 pos = mDrawable->getPositionAgent(); + LLVector3 at(0,0,-1); + at *= getRenderRotation(); + + F32 r = getLightRadius()*0.5f; + + pos += at * r; + + at = LLViewerCamera::getInstance()->getAtAxis(); + + pos -= at * r; + + mSpotLightPriority = gPipeline.calcPixelArea(pos, LLVector3(r,r,r), *LLViewerCamera::getInstance()); + + if (mLightTexture.notNull()) + { + mLightTexture->addTextureStats(mSpotLightPriority); + mLightTexture->setBoostLevel(LLViewerTexture::BOOST_CLOUDS); + } +} + + +LLViewerTexture* LLVOVolume::getLightTexture() +{ + LLUUID id = getLightTextureID(); + + if (id.notNull()) + { + if (mLightTexture.isNull() || id != mLightTexture->getID()) + { + mLightTexture = LLViewerTextureManager::getFetchedTexture(id); + } + } + else + { + mLightTexture = NULL; + } + + return mLightTexture; +} + F32 LLVOVolume::getLightIntensity() const { const LLLightParams *param_block = (const LLLightParams *)getParameterEntry(LLNetworkData::PARAMS_LIGHT); @@ -1669,6 +1841,16 @@ BOOL LLVOVolume::isSculpted() const return FALSE; } +BOOL LLVOVolume::hasLightTexture() const +{ + if (getParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE)) + { + return TRUE; + } + + return FALSE; +} + BOOL LLVOVolume::isVolumeGlobal() const { if (mVolumeImpl) @@ -2116,9 +2298,9 @@ U32 LLVOVolume::getPartitionType() const } LLVolumePartition::LLVolumePartition() -: LLSpatialPartition(LLVOVolume::VERTEX_DATA_MASK, FALSE) +: LLSpatialPartition(LLVOVolume::VERTEX_DATA_MASK, TRUE, GL_DYNAMIC_DRAW_ARB) { - mLODPeriod = 16; + mLODPeriod = 32; mDepthMask = FALSE; mDrawableType = LLPipeline::RENDER_TYPE_VOLUME; mPartitionType = LLViewerRegion::PARTITION_VOLUME; @@ -2127,10 +2309,10 @@ LLVolumePartition::LLVolumePartition() } LLVolumeBridge::LLVolumeBridge(LLDrawable* drawablep) -: LLSpatialBridge(drawablep, LLVOVolume::VERTEX_DATA_MASK) +: LLSpatialBridge(drawablep, TRUE, LLVOVolume::VERTEX_DATA_MASK) { mDepthMask = FALSE; - mLODPeriod = 16; + mLODPeriod = 32; mDrawableType = LLPipeline::RENDER_TYPE_VOLUME; mPartitionType = LLViewerRegion::PARTITION_BRIDGE; @@ -2154,8 +2336,15 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep, S32 idx = draw_vec.size()-1; - BOOL fullbright = (type == LLRenderPass::PASS_FULLBRIGHT || - type == LLRenderPass::PASS_ALPHA) ? facep->isState(LLFace::FULLBRIGHT) : FALSE; + BOOL fullbright = (type == LLRenderPass::PASS_FULLBRIGHT) || + (type == LLRenderPass::PASS_INVISIBLE) || + (type == LLRenderPass::PASS_ALPHA ? facep->isState(LLFace::FULLBRIGHT) : FALSE); + + if (!fullbright && type != LLRenderPass::PASS_GLOW && !facep->mVertexBuffer->hasDataType(LLVertexBuffer::TYPE_NORMAL)) + { + llwarns << "Non fullbright face has no normals!" << llendl; + return; + } const LLMatrix4* tex_mat = NULL; if (facep->isState(LLFace::TEXTURE_ANIM) && facep->getVirtualSize() > MIN_TEX_ANIM_SIZE) @@ -2218,7 +2407,7 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep, U32 end = start + facep->getGeomCount()-1; U32 offset = facep->getIndicesStart(); U32 count = facep->getIndicesCount(); - LLPointer<LLDrawInfo> draw_info = new LLDrawInfo(start,end,count,offset,tex, + LLPointer<LLDrawInfo> draw_info = new LLDrawInfo(start,end,count,offset, tex, facep->mVertexBuffer, fullbright, bump); draw_info->mGroup = group; draw_info->mVSize = facep->getVirtualSize(); @@ -2246,11 +2435,6 @@ static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt"); void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group) { - if (LLPipeline::sSkipUpdate) - { - return; - } - if (group->changeLOD()) { group->mLastUpdateDistance = group->mDistance; @@ -2312,6 +2496,8 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group) vobj->updateTextures(); vobj->preRebuild(); + drawablep->clearState(LLDrawable::HAS_ALPHA); + //for each face for (S32 i = 0; i < drawablep->getNumFaces(); i++) { @@ -2373,13 +2559,15 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group) if (type == LLDrawPool::POOL_ALPHA) { if (LLPipeline::sFastAlpha && - (te->getColor().mV[VW] == 1.0f) && - facep->getTexture()->getIsAlphaMask()) + (te->getColor().mV[VW] == 1.0f) && + (!te->getFullbright()) && // hack: alpha masking renders fullbright faces invisible, need to figure out why - for now, avoid + facep->getTexture()->getIsAlphaMask()) { //can be treated as alpha mask simple_faces.push_back(facep); } else { + drawablep->setState(LLDrawable::HAS_ALPHA); alpha_faces.push_back(facep); } } @@ -2413,7 +2601,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group) { //needs normal + binormal bump_faces.push_back(facep); } - else if (te->getShiny() && LLPipeline::sRenderBump || + else if ((te->getShiny() && LLPipeline::sRenderBump) || !te->getFullbright()) { //needs normal simple_faces.push_back(facep); @@ -2468,16 +2656,18 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group) if (LLPipeline::sDelayVBUpdate) { - group->setState(LLSpatialGroup::MESH_DIRTY); + group->setState(LLSpatialGroup::MESH_DIRTY | LLSpatialGroup::NEW_DRAWINFO); } mFaceList.clear(); } +static LLFastTimer::DeclareTimer FTM_VOLUME_GEOM("Volume Geometry"); void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group) { - if (group->isState(LLSpatialGroup::MESH_DIRTY)) + if (group->isState(LLSpatialGroup::MESH_DIRTY) && !group->isState(LLSpatialGroup::GEOM_DIRTY)) { + LLFastTimer tm(FTM_VOLUME_GEOM); S32 num_mapped_veretx_buffer = LLVertexBuffer::sMappedCount ; group->mBuilt = 1.f; @@ -2554,7 +2744,12 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group) } } - group->clearState(LLSpatialGroup::MESH_DIRTY); + group->clearState(LLSpatialGroup::MESH_DIRTY | LLSpatialGroup::NEW_DRAWINFO); + } + + if (group->isState(LLSpatialGroup::NEW_DRAWINFO)) + { + llerrs << "WTF?" << llendl; } } @@ -2699,6 +2894,11 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std:: BOOL force_simple = facep->mPixelArea < FORCE_SIMPLE_RENDER_AREA; BOOL fullbright = facep->isState(LLFace::FULLBRIGHT); + if ((mask & LLVertexBuffer::MAP_NORMAL) == 0) + { //paranoia check to make sure GL doesn't try to read non-existant normals + fullbright = TRUE; + } + const LLTextureEntry* te = facep->getTextureEntry(); BOOL is_alpha = facep->getPoolType() == LLDrawPool::POOL_ALPHA ? TRUE : FALSE; @@ -2708,6 +2908,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std:: // can we safely treat this as an alpha mask? if (LLPipeline::sFastAlpha && (te->getColor().mV[VW] == 1.0f) && + (!te->getFullbright()) && // hack: alpha masking renders fullbright faces invisible, need to figure out why - for now, avoid facep->getTexture()->getIsAlphaMask()) { if (te->getFullbright()) @@ -2730,6 +2931,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std:: } } else if (gPipeline.canUseVertexShaders() + && group->mSpatialPartition->mPartitionType != LLViewerRegion::PARTITION_HUD && LLPipeline::sRenderBump && te->getShiny()) { @@ -2786,7 +2988,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std:: } } - if (!is_alpha && te->getShiny()) + if (!is_alpha && te->getShiny() && LLPipeline::sRenderBump) { registerFace(group, facep, LLRenderPass::PASS_SHINY); } @@ -2797,7 +2999,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std:: llassert((mask & LLVertexBuffer::MAP_NORMAL) || fullbright); facep->setPoolType((fullbright) ? LLDrawPool::POOL_FULLBRIGHT : LLDrawPool::POOL_SIMPLE); - if (!force_simple && te->getBumpmap()) + if (!force_simple && te->getBumpmap() && LLPipeline::sRenderBump) { registerFace(group, facep, LLRenderPass::PASS_BUMP); } diff --git a/indra/newview/llvovolume.h b/indra/newview/llvovolume.h index d343d4db74e70b6eb1f0c13577951e0a32c77942..1b90219836c5c439591dd57a04ed7a6844fbf52c 100644 --- a/indra/newview/llvovolume.h +++ b/indra/newview/llvovolume.h @@ -198,9 +198,18 @@ class LLVOVolume : public LLViewerObject void setLightRadius(F32 radius); void setLightFalloff(F32 falloff); void setLightCutoff(F32 cutoff); + void setLightTextureID(LLUUID id); + void setSpotLightParams(LLVector3 params); + BOOL getIsLight() const; LLColor3 getLightBaseColor() const; // not scaled by intensity LLColor3 getLightColor() const; // scaled by intensity + LLUUID getLightTextureID() const; + LLVector3 getSpotLightParams() const; + void updateSpotLightPriority(); + F32 getSpotLightPriority() const; + + LLViewerTexture* getLightTexture(); F32 getLightIntensity() const; F32 getLightRadius() const; F32 getLightFalloff() const; @@ -210,6 +219,8 @@ class LLVOVolume : public LLViewerObject U32 getVolumeInterfaceID() const; virtual BOOL isFlexible() const; virtual BOOL isSculpted() const; + virtual BOOL hasLightTexture() const; + BOOL isVolumeGlobal() const; BOOL canBeFlexible() const; BOOL setIsFlexible(BOOL is_flexible); @@ -232,12 +243,14 @@ class LLVOVolume : public LLViewerObject BOOL mLODChanged; S32 mSculptLevel; BOOL mSculptChanged; + F32 mSpotLightPriority; LLMatrix4 mRelativeXform; LLMatrix3 mRelativeXformInvTrans; BOOL mVolumeChanged; F32 mVObjRadius; LLVolumeInterface *mVolumeImpl; LLPointer<LLViewerFetchedTexture> mSculptTexture; + LLPointer<LLViewerFetchedTexture> mLightTexture; // statics public: diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp index e2357957abbc5eb49a27697a16a31457f01bacf6..0c967f9020c4580cebaa026f399e74a5e484976a 100644 --- a/indra/newview/llvowater.cpp +++ b/indra/newview/llvowater.cpp @@ -277,9 +277,8 @@ U32 LLVOWater::getPartitionType() const } LLWaterPartition::LLWaterPartition() -: LLSpatialPartition(0) +: LLSpatialPartition(0, FALSE, 0) { - mRenderByGroup = FALSE; mInfiniteFarClip = TRUE; mDrawableType = LLPipeline::RENDER_TYPE_WATER; mPartitionType = LLViewerRegion::PARTITION_WATER; diff --git a/indra/newview/llwaterparammanager.cpp b/indra/newview/llwaterparammanager.cpp index 3661be500bfa21e501d241a42d589ee79772934d..136ffe607d7e99e2524a629e0021169fd50b2d47 100644 --- a/indra/newview/llwaterparammanager.cpp +++ b/indra/newview/llwaterparammanager.cpp @@ -154,7 +154,7 @@ void LLWaterParamManager::loadPreset(const std::string & name,bool propagate) std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", escaped_filename)); llinfos << "Loading water settings from " << pathName << llendl; - std::ifstream presetsXML; + llifstream presetsXML; presetsXML.open(pathName.c_str()); // That failed, try loading from the users area instead. @@ -162,7 +162,8 @@ void LLWaterParamManager::loadPreset(const std::string & name,bool propagate) { pathName=gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/water", escaped_filename); llinfos << "Loading User water setting from " << pathName << llendl; - presetsXML.open(pathName.c_str()); + presetsXML.clear(); + presetsXML.open(pathName.c_str()); } if (presetsXML) @@ -279,8 +280,6 @@ void LLWaterParamManager::update(LLViewerCamera * cam) waterfloater->syncMenu(); } - stop_glerror(); - // only do this if we're dealing with shaders if(gPipeline.canUseVertexShaders()) { diff --git a/indra/newview/llwlparammanager.cpp b/indra/newview/llwlparammanager.cpp index 7d9d0a6191f035ea69b740634d0f940b4a148377..4bf64816c7b1dc49ab675a0bcef5c2d56ef16827 100644 --- a/indra/newview/llwlparammanager.cpp +++ b/indra/newview/llwlparammanager.cpp @@ -206,7 +206,8 @@ void LLWLParamManager::loadPreset(const std::string & name,bool propagate) { pathName=gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/skies", escaped_filename); llinfos << "Loading User WindLight sky setting from " << pathName << llendl; - presetsXML.open(pathName.c_str()); + presetsXML.clear(); + presetsXML.open(pathName.c_str()); } if (presetsXML) @@ -396,8 +397,6 @@ void LLWLParamManager::update(LLViewerCamera * cam) F32 camYaw = cam->getYaw(); - stop_glerror(); - // *TODO: potential optimization - this block may only need to be // executed some of the time. For example for water shaders only. { diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp index 700971dcc47f77fa077497e9b65c1f6b0df5a5af..b8ecd9556f97727efa026466f8f05288abab2516 100644 --- a/indra/newview/llworldmap.cpp +++ b/indra/newview/llworldmap.cpp @@ -635,7 +635,6 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**) #ifdef IMMEDIATE_IMAGE_LOAD siminfo->mCurrentImage = LLViewerTextureManager::getFetchedTexture(siminfo->mMapImageID[LLWorldMap::getInstance()->mCurrentMap], MIPMAP_TRUE, FALSE, LLViewerTexture::LOD_TEXTURE); - gGL.getTexUnit(0)->bind(siminfo->mCurrentImage); siminfo->mCurrentImage->setAddressMode(LLTexUnit::TAM_CLAMP); #endif diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index 4d7423eaae418cac9c79be413ddfb7f5fff927e4..79308f7e167ff742e08c70bd8a7723dee1e3990c 100644 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -372,7 +372,7 @@ void LLWorldMapView::draw() current_image->setBoostLevel(LLViewerTexture::BOOST_MAP_LAYER); current_image->setKnownDrawSize(llround(pix_width * LLUI::sGLScaleFactor.mV[VX]), llround(pix_height * LLUI::sGLScaleFactor.mV[VY])); - if (!current_image->hasValidGLTexture()) + if (!current_image->hasGLTexture()) { continue; // better to draw nothing than the default image } @@ -474,7 +474,7 @@ void LLWorldMapView::draw() bool sim_visible = (gMapScale >= map_scale_cutoff) && (simimage != NULL) && - (simimage->hasValidGLTexture()); + (simimage->hasGLTexture()); if (sim_visible) { @@ -583,7 +583,7 @@ void LLWorldMapView::draw() gGL.vertex3f(right, top, 0.f); gGL.end(); - if (gSavedSettings.getBOOL("MapShowLandForSale") && overlayimage && overlayimage->hasValidGLTexture()) + if (gSavedSettings.getBOOL("MapShowLandForSale") && overlayimage && overlayimage->hasGLTexture()) { gGL.getTexUnit(0)->bind(overlayimage); gGL.color4f(1.f, 1.f, 1.f, alpha); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index b0c3e8d7113e55403fac1606ecdb0d8d8766f61a..38052abfa3fc7651ef8af67cecb475af014789e0 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -102,6 +102,8 @@ #include "llwaterparammanager.h" #include "llspatialpartition.h" #include "llmutelist.h" +#include "lltoolpie.h" + #ifdef _DEBUG // Debug indices is disabled for now for debug performance - djs 4/24/02 @@ -161,6 +163,8 @@ LLFastTimer::DeclareTimer FTM_RENDER_BLOOM_FBO("First FBO"); LLFastTimer::DeclareTimer FTM_STATESORT("Sort Draw State"); LLFastTimer::DeclareTimer FTM_PIPELINE("Pipeline"); LLFastTimer::DeclareTimer FTM_CLIENT_COPY("Client Copy"); +LLFastTimer::DeclareTimer FTM_RENDER_DEFERRED("Deferred Shading"); + static LLFastTimer::DeclareTimer FTM_STATESORT_DRAWABLE("Sort Drawables"); static LLFastTimer::DeclareTimer FTM_STATESORT_POSTSORT("Post Sort"); @@ -186,6 +190,8 @@ std::string gPoolNames[] = "POOL_ALPHA", }; +void drawBox(const LLVector3& c, const LLVector3& r); + U32 nhpo2(U32 v) { U32 r = 1; @@ -267,7 +273,6 @@ BOOL LLPipeline::sDisableShaders = FALSE; BOOL LLPipeline::sRenderBump = TRUE; BOOL LLPipeline::sUseFarClip = TRUE; BOOL LLPipeline::sShadowRender = FALSE; -BOOL LLPipeline::sSkipUpdate = FALSE; BOOL LLPipeline::sWaterReflections = FALSE; BOOL LLPipeline::sRenderGlow = FALSE; BOOL LLPipeline::sReflectionRender = FALSE; @@ -279,6 +284,8 @@ BOOL LLPipeline::sRenderAttachedLights = TRUE; BOOL LLPipeline::sRenderAttachedParticles = TRUE; BOOL LLPipeline::sRenderDeferred = FALSE; S32 LLPipeline::sVisibleLightCount = 0; +F32 LLPipeline::sMinRenderSize = 0.f; + static LLCullResult* sCull = NULL; @@ -294,11 +301,11 @@ static const U32 gl_cube_face[] = void validate_framebuffer_object(); + void addDeferredAttachments(LLRenderTarget& target) { - target.addColorAttachment(GL_RGBA16F_ARB); //specular - target.addColorAttachment(GL_RGBA16F_ARB); //normal+z - target.addColorAttachment(GL_RGBA16F_ARB); //position + target.addColorAttachment(GL_RGBA); //specular + target.addColorAttachment(GL_RGBA); //normal+z } LLPipeline::LLPipeline() : @@ -340,6 +347,8 @@ LLPipeline::LLPipeline() : mLightingDetail(0) { mNoiseMap = 0; + mTrueNoiseMap = 0; + mLightFunc = 0; } void LLPipeline::init() @@ -389,6 +398,11 @@ void LLPipeline::init() LLViewerShaderMgr::instance()->setShaders(); stop_glerror(); + + for (U32 i = 0; i < 2; ++i) + { + mSpotLightFade[i] = 1.f; + } } LLPipeline::~LLPipeline() @@ -496,13 +510,6 @@ void LLPipeline::resizeScreenTexture() GLuint resX = gViewerWindow->getWorldViewWidth(); GLuint resY = gViewerWindow->getWorldViewHeight(); - U32 res_mod = gSavedSettings.getU32("RenderResolutionDivisor"); - if (res_mod > 1 && res_mod < resX && res_mod < resY) - { - resX /= res_mod; - resY /= res_mod; - } - allocateScreenBuffer(resX,resY); llinfos << "RESIZED SCREEN TEXTURE: " << resX << "x" << resY << llendl; @@ -512,17 +519,59 @@ void LLPipeline::resizeScreenTexture() void LLPipeline::allocateScreenBuffer(U32 resX, U32 resY) { U32 samples = gSavedSettings.getU32("RenderFSAASamples"); + + U32 res_mod = gSavedSettings.getU32("RenderResolutionDivisor"); + if (res_mod > 1 && res_mod < resX && res_mod < resY) + { + resX /= res_mod; + resY /= res_mod; + } + + if (gSavedSettings.getBOOL("RenderUIBuffer")) + { + mUIScreen.allocate(resX,resY, GL_RGBA, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE); + } + if (LLPipeline::sRenderDeferred) { //allocate deferred rendering color buffers - mDeferredScreen.allocate(resX, resY, GL_RGBA16F_ARB, TRUE, TRUE, LLTexUnit::TT_RECT_TEXTURE, FALSE); + mDeferredScreen.allocate(resX, resY, GL_RGBA, TRUE, TRUE, LLTexUnit::TT_RECT_TEXTURE, FALSE); + mDeferredDepth.allocate(resX, resY, 0, TRUE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE); addDeferredAttachments(mDeferredScreen); - mScreen.allocate(resX, resY, GL_RGBA16F_ARB, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE); - + mScreen.allocate(resX, resY, GL_RGBA, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE); + mEdgeMap.allocate(resX, resY, GL_ALPHA, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE); + + for (U32 i = 0; i < 3; i++) + { + mDeferredLight[i].allocate(resX, resY, GL_RGBA, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE); + } + for (U32 i = 0; i < 2; i++) { - mDeferredLight[i].allocate(resX, resY, GL_RGB, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE); + mGIMapPost[i].allocate(resX,resY, GL_RGB, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE); + } + + F32 scale = gSavedSettings.getF32("RenderShadowResolutionScale"); + + for (U32 i = 0; i < 4; i++) + { + mShadow[i].allocate(U32(resX*scale),U32(resY*scale), 0, TRUE, FALSE, LLTexUnit::TT_RECT_TEXTURE); + } + + + U32 width = nhpo2(U32(resX*scale))/2; + U32 height = width; + + for (U32 i = 4; i < 6; i++) + { + mShadow[i].allocate(width, height, 0, TRUE, FALSE); } + + + + width = nhpo2(resX)/2; + height = nhpo2(resY)/2; + mLuminanceMap.allocate(width,height, GL_RGBA, FALSE, FALSE); } else { @@ -532,25 +581,23 @@ void LLPipeline::allocateScreenBuffer(U32 resX, U32 resY) if (gGLManager.mHasFramebufferMultisample && samples > 1) { + mSampleBuffer.allocate(resX,resY,GL_RGBA,TRUE,TRUE,LLTexUnit::TT_RECT_TEXTURE,FALSE,samples); + mScreen.setSampleBuffer(&mSampleBuffer); + if (LLPipeline::sRenderDeferred) { - mSampleBuffer.allocate(resX,resY,GL_RGBA16F_ARB,TRUE,TRUE,LLTexUnit::TT_RECT_TEXTURE,FALSE,samples); addDeferredAttachments(mSampleBuffer); mDeferredScreen.setSampleBuffer(&mSampleBuffer); } - else - { - mSampleBuffer.allocate(resX,resY,GL_RGBA,TRUE,TRUE,LLTexUnit::TT_RECT_TEXTURE,FALSE,samples); - } - mScreen.setSampleBuffer(&mSampleBuffer); stop_glerror(); } - else if (LLPipeline::sRenderDeferred) + + if (LLPipeline::sRenderDeferred) { //share depth buffer between deferred targets mDeferredScreen.shareDepthBuffer(mScreen); - for (U32 i = 0; i < 2; i++) - { + for (U32 i = 0; i < 3; i++) + { //share stencil buffer with screen space lightmap to stencil out sky mDeferredScreen.shareDepthBuffer(mDeferredLight[i]); } } @@ -583,17 +630,42 @@ void LLPipeline::releaseGLBuffers() mNoiseMap = 0; } + if (mTrueNoiseMap) + { + LLImageGL::deleteTextures(1, &mTrueNoiseMap); + mTrueNoiseMap = 0; + } + + if (mLightFunc) + { + LLImageGL::deleteTextures(1, &mLightFunc); + mLightFunc = 0; + } + mWaterRef.release(); mWaterDis.release(); mScreen.release(); + mUIScreen.release(); mSampleBuffer.releaseSampleBuffer(); mDeferredScreen.release(); + mDeferredDepth.release(); + for (U32 i = 0; i < 3; i++) + { + mDeferredLight[i].release(); + } + + mEdgeMap.release(); + mGIMap.release(); + mGIMapPost[0].release(); + mGIMapPost[1].release(); + mHighlight.release(); + mLuminanceMap.release(); - - for (U32 i = 0; i < 4; i++) + for (U32 i = 0; i < 6; i++) { - mSunShadow[i].release(); + mShadow[i].release(); } + for (U32 i = 0; i < 3; i++) { mGlow[i].release(); @@ -617,6 +689,7 @@ void LLPipeline::createGLBuffers() mWaterDis.allocate(res,res,GL_RGBA,TRUE,FALSE); } + mHighlight.allocate(256,256,GL_RGBA, FALSE, FALSE); stop_glerror(); @@ -638,11 +711,6 @@ void LLPipeline::createGLBuffers() if (sRenderDeferred) { - mSunShadow[0].allocate(1024,1024, 0, TRUE, FALSE); - mSunShadow[1].allocate(1024,1024, 0, TRUE, FALSE); - mSunShadow[2].allocate(1024,1024, 0, TRUE, FALSE); - mSunShadow[3].allocate(1024,1024, 0, TRUE, FALSE); - if (!mNoiseMap) { const U32 noiseRes = 128; @@ -662,6 +730,66 @@ void LLPipeline::createGLBuffers() LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_RGB16F_ARB, noiseRes, noiseRes, GL_RGB, GL_FLOAT, noise); gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_POINT); } + + if (!mTrueNoiseMap) + { + const U32 noiseRes = 128; + F32 noise[noiseRes*noiseRes*3]; + for (U32 i = 0; i < noiseRes*noiseRes*3; i++) + { + noise[i] = ll_frand()*2.0-1.0; + } + + LLImageGL::generateTextures(1, &mTrueNoiseMap); + gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mTrueNoiseMap); + LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_RGB16F_ARB, noiseRes, noiseRes, GL_RGB,GL_FLOAT, noise); + gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + } + + if (!mLightFunc) + { + U32 lightResX = gSavedSettings.getU32("RenderSpecularResX"); + U32 lightResY = gSavedSettings.getU32("RenderSpecularResY"); + U8* lg = new U8[lightResX*lightResY]; + + for (U32 y = 0; y < lightResY; ++y) + { + for (U32 x = 0; x < lightResX; ++x) + { + //spec func + F32 sa = (F32) x/(lightResX-1); + F32 spec = (F32) y/(lightResY-1); + //lg[y*lightResX+x] = (U8) (powf(sa, 128.f*spec*spec)*255); + + //F32 sp = acosf(sa)/(1.f-spec); + + sa = powf(sa, gSavedSettings.getF32("RenderSpecularExponent")); + F32 a = acosf(sa*0.25f+0.75f); + F32 m = llmax(0.5f-spec*0.5f, 0.001f); + F32 t2 = tanf(a)/m; + t2 *= t2; + + F32 c4a = (3.f+4.f*cosf(2.f*a)+cosf(4.f*a))/8.f; + F32 bd = 1.f/(4.f*m*m*c4a)*powf(F_E, -t2); + + lg[y*lightResX+x] = (U8) (llclamp(bd, 0.f, 1.f)*255); + } + } + + LLImageGL::generateTextures(1, &mLightFunc); + gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mLightFunc); + LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_ALPHA, lightResX, lightResY, GL_ALPHA, GL_UNSIGNED_BYTE, lg); + gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP); + gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_TRILINEAR); + + delete [] lg; + } + + if (gSavedSettings.getBOOL("RenderDeferredGI")) + { + mGIMap.allocate(512,512,GL_RGBA, TRUE, FALSE); + addDeferredAttachments(mGIMap); + } } } @@ -1038,6 +1166,31 @@ void LLPipeline::unlinkDrawable(LLDrawable *drawable) break; } } + + { + HighlightItem item(drawablep); + mHighlightSet.erase(item); + + if (mHighlightObject == drawablep) + { + mHighlightObject = NULL; + } + } + + for (U32 i = 0; i < 2; ++i) + { + if (mShadowSpotLight[i] == drawablep) + { + mShadowSpotLight[i] = NULL; + } + + if (mTargetShadowSpotLight[i] == drawablep) + { + mTargetShadowSpotLight[i] = NULL; + } + } + + } U32 LLPipeline::addObject(LLViewerObject *vobj) @@ -1357,6 +1510,8 @@ BOOL LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3& min = LLVector3(F32_MAX, F32_MAX, F32_MAX); max = LLVector3(-F32_MAX, -F32_MAX, -F32_MAX); + U32 saved_camera_id = LLViewerCamera::sCurCameraID; + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; BOOL res = TRUE; @@ -1381,6 +1536,8 @@ BOOL LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3& } } + LLViewerCamera::sCurCameraID = saved_camera_id; + return res; } @@ -1397,8 +1554,7 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl BOOL to_texture = LLPipeline::sUseOcclusion > 1 && !hasRenderType(LLPipeline::RENDER_TYPE_HUD) && - !sReflectionRender && - !sShadowRender && + LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD && gPipeline.canUseVertexShaders() && sRenderGlow; @@ -1407,11 +1563,15 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl mScreen.bindTarget(); } + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadMatrixd(gGLLastProjection); + glMatrixMode(GL_MODELVIEW); glPushMatrix(); gGLLastMatrix = NULL; - //glLoadMatrixd(gGLModelView); glLoadMatrixd(gGLLastModelView); + LLVertexBuffer::unbind(); LLGLDisable blend(GL_BLEND); LLGLDisable test(GL_ALPHA_TEST); @@ -1480,6 +1640,9 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl } + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); glPopMatrix(); if (sUseOcclusion > 1) @@ -1491,10 +1654,6 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl { mScreen.flush(); } - else if (LLPipeline::sUseOcclusion > 1) - { - glFlush(); - } } void LLPipeline::markNotCulled(LLSpatialGroup* group, LLCamera& camera) @@ -1506,7 +1665,7 @@ void LLPipeline::markNotCulled(LLSpatialGroup* group, LLCamera& camera) group->setVisible(); - if (!sSkipUpdate) + if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD) { group->updateDistance(camera); } @@ -1518,6 +1677,12 @@ void LLPipeline::markNotCulled(LLSpatialGroup* group, LLCamera& camera) return; } + if (sMinRenderSize > 0.f && + llmax(llmax(group->mBounds[1].mV[0], group->mBounds[1].mV[1]), group->mBounds[1].mV[2]) < sMinRenderSize) + { + return; + } + assertInitialized(); if (!group->mSpatialPartition->mRenderByGroup) @@ -1534,22 +1699,22 @@ void LLPipeline::markNotCulled(LLSpatialGroup* group, LLCamera& camera) void LLPipeline::markOccluder(LLSpatialGroup* group) { - if (sUseOcclusion > 1 && group && !group->isState(LLSpatialGroup::ACTIVE_OCCLUSION)) + if (sUseOcclusion > 1 && group && !group->isOcclusionState(LLSpatialGroup::ACTIVE_OCCLUSION)) { LLSpatialGroup* parent = group->getParent(); - if (!parent || !parent->isState(LLSpatialGroup::OCCLUDED)) + if (!parent || !parent->isOcclusionState(LLSpatialGroup::OCCLUDED)) { //only mark top most occluders as active occlusion sCull->pushOcclusionGroup(group); - group->setState(LLSpatialGroup::ACTIVE_OCCLUSION); + group->setOcclusionState(LLSpatialGroup::ACTIVE_OCCLUSION); if (parent && - !parent->isState(LLSpatialGroup::ACTIVE_OCCLUSION) && + !parent->isOcclusionState(LLSpatialGroup::ACTIVE_OCCLUSION) && parent->getElementCount() == 0 && parent->needsUpdate()) { sCull->pushOcclusionGroup(group); - parent->setState(LLSpatialGroup::ACTIVE_OCCLUSION); + parent->setOcclusionState(LLSpatialGroup::ACTIVE_OCCLUSION); } } } @@ -1572,18 +1737,18 @@ void LLPipeline::doOcclusion(LLCamera& camera) gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); LLGLDepthTest depth(GL_TRUE, GL_FALSE); + LLGLDisable cull(GL_CULL_FACE); if (LLPipeline::sUseOcclusion > 1) { for (LLCullResult::sg_list_t::iterator iter = sCull->beginOcclusionGroups(); iter != sCull->endOcclusionGroups(); ++iter) { LLSpatialGroup* group = *iter; group->doOcclusion(&camera); - group->clearState(LLSpatialGroup::ACTIVE_OCCLUSION); + group->clearOcclusionState(LLSpatialGroup::ACTIVE_OCCLUSION); } } gGL.setColorMask(true, false); - glFlush(); } BOOL LLPipeline::updateDrawableGeom(LLDrawable* drawablep, BOOL priority) @@ -1597,6 +1762,78 @@ BOOL LLPipeline::updateDrawableGeom(LLDrawable* drawablep, BOOL priority) return update_complete; } +void LLPipeline::updateGL() +{ + while (!LLGLUpdate::sGLQ.empty()) + { + LLGLUpdate* glu = LLGLUpdate::sGLQ.front(); + glu->updateGL(); + glu->mInQ = FALSE; + LLGLUpdate::sGLQ.pop_front(); + } +} + +void LLPipeline::rebuildPriorityGroups() +{ + LLTimer update_timer; + LLMemType mt(LLMemType::MTYPE_PIPELINE); + + assertInitialized(); + + // Iterate through all drawables on the priority build queue, + for (LLSpatialGroup::sg_list_t::iterator iter = mGroupQ1.begin(); + iter != mGroupQ1.end(); ++iter) + { + LLSpatialGroup* group = *iter; + group->rebuildGeom(); + group->clearState(LLSpatialGroup::IN_BUILD_Q1); + } + + mGroupQ1.clear(); +} + +void LLPipeline::rebuildGroups() +{ + // Iterate through some drawables on the non-priority build queue + S32 size = (S32) mGroupQ2.size(); + S32 min_count = llclamp((S32) ((F32) (size * size)/4096*0.25f), 1, size); + + S32 count = 0; + + std::sort(mGroupQ2.begin(), mGroupQ2.end(), LLSpatialGroup::CompareUpdateUrgency()); + + LLSpatialGroup::sg_vector_t::iterator iter; + for (iter = mGroupQ2.begin(); + iter != mGroupQ2.end(); ++iter) + { + LLSpatialGroup* group = *iter; + + if (group->isDead()) + { + continue; + } + + group->rebuildGeom(); + + if (group->mSpatialPartition->mRenderByGroup) + { + count++; + } + + group->clearState(LLSpatialGroup::IN_BUILD_Q2); + + if (count > min_count) + { + ++iter; + break; + } + } + + mGroupQ2.erase(mGroupQ2.begin(), iter); + + updateMovedList(mMovedBridge); +} + void LLPipeline::updateGeom(F32 max_dtime) { LLTimer update_timer; @@ -1711,6 +1948,16 @@ void LLPipeline::markVisible(LLDrawable *drawablep, LLCamera& camera) if (drawablep->isSpatialBridge()) { + LLDrawable* root = ((LLSpatialBridge*) drawablep)->mDrawable; + + if (root && root->getParent() && root->getVObj() && root->getVObj()->isAttachment()) + { + LLVOAvatar* av = root->getParent()->getVObj()->asAvatar(); + if (av->isImpostor()) + { + return; + } + } sCull->pushBridge((LLSpatialBridge*) drawablep); } else @@ -1840,6 +2087,59 @@ void LLPipeline::markTextured(LLDrawable *drawablep) } } +void LLPipeline::markGLRebuild(LLGLUpdate* glu) +{ + if (glu && !glu->mInQ) + { + LLGLUpdate::sGLQ.push_back(glu); + glu->mInQ = TRUE; + } +} + +void LLPipeline::markRebuild(LLSpatialGroup* group, BOOL priority) +{ + LLMemType mt(LLMemType::MTYPE_PIPELINE); + //assert_main_thread(); + + if (group && !group->isDead() && group->mSpatialPartition) + { + if (group->mSpatialPartition->mPartitionType == LLViewerRegion::PARTITION_HUD) + { + priority = TRUE; + } + + if (priority) + { + if (!group->isState(LLSpatialGroup::IN_BUILD_Q1)) + { + mGroupQ1.push_back(group); + group->setState(LLSpatialGroup::IN_BUILD_Q1); + + if (group->isState(LLSpatialGroup::IN_BUILD_Q2)) + { + LLSpatialGroup::sg_vector_t::iterator iter = std::find(mGroupQ2.begin(), mGroupQ2.end(), group); + if (iter != mGroupQ2.end()) + { + mGroupQ2.erase(iter); + } + group->clearState(LLSpatialGroup::IN_BUILD_Q2); + } + } + } + else if (!group->isState(LLSpatialGroup::IN_BUILD_Q2 | LLSpatialGroup::IN_BUILD_Q1)) + { + //llerrs << "Non-priority updates not yet supported!" << llendl; + if (std::find(mGroupQ2.begin(), mGroupQ2.end(), group) != mGroupQ2.end()) + { + llerrs << "WTF?" << llendl; + } + mGroupQ2.push_back(group); + group->setState(LLSpatialGroup::IN_BUILD_Q2); + + } + } +} + void LLPipeline::markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags flag, BOOL priority) { LLMemType mt(LLMemType::MTYPE_PIPELINE_MARK_REBUILD); @@ -1896,48 +2196,48 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result) grabReferences(result); + for (LLCullResult::sg_list_t::iterator iter = sCull->beginDrawableGroups(); iter != sCull->endDrawableGroups(); ++iter) { - for (LLCullResult::sg_list_t::iterator iter = sCull->beginDrawableGroups(); iter != sCull->endDrawableGroups(); ++iter) + LLSpatialGroup* group = *iter; + group->checkOcclusion(); + if (sUseOcclusion > 1 && group->isOcclusionState(LLSpatialGroup::OCCLUDED)) { - LLSpatialGroup* group = *iter; - group->checkOcclusion(); - if (sUseOcclusion && group->isState(LLSpatialGroup::OCCLUDED)) - { - markOccluder(group); - } - else + markOccluder(group); + } + else + { + group->setVisible(); + for (LLSpatialGroup::element_iter i = group->getData().begin(); i != group->getData().end(); ++i) { - group->setVisible(); - for (LLSpatialGroup::element_iter i = group->getData().begin(); i != group->getData().end(); ++i) - { - markVisible(*i, camera); - } + markVisible(*i, camera); } } + } - for (LLCullResult::sg_list_t::iterator iter = sCull->beginVisibleGroups(); iter != sCull->endVisibleGroups(); ++iter) + for (LLCullResult::sg_list_t::iterator iter = sCull->beginVisibleGroups(); iter != sCull->endVisibleGroups(); ++iter) + { + LLSpatialGroup* group = *iter; + group->checkOcclusion(); + if (sUseOcclusion > 1 && group->isOcclusionState(LLSpatialGroup::OCCLUDED)) { - LLSpatialGroup* group = *iter; - group->checkOcclusion(); - if (sUseOcclusion && group->isState(LLSpatialGroup::OCCLUDED)) - { - markOccluder(group); - } - else - { - group->setVisible(); - stateSort(group, camera); - } + markOccluder(group); + } + else + { + group->setVisible(); + stateSort(group, camera); } } + + if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD) { for (LLCullResult::bridge_list_t::iterator i = sCull->beginVisibleBridge(); i != sCull->endVisibleBridge(); ++i) { LLCullResult::bridge_list_t::iterator cur_iter = i; LLSpatialBridge* bridge = *cur_iter; LLSpatialGroup* group = bridge->getSpatialGroup(); - if (!bridge->isDead() && group && !group->isState(LLSpatialGroup::OCCLUDED)) + if (!bridge->isDead() && group && !group->isOcclusionState(LLSpatialGroup::OCCLUDED)) { stateSort(bridge, camera); } @@ -1968,7 +2268,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result) void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera) { LLMemType mt(LLMemType::MTYPE_PIPELINE_STATE_SORT); - if (!sSkipUpdate && group->changeLOD()) + if (group->changeLOD()) { for (LLSpatialGroup::element_iter i = group->getData().begin(); i != group->getData().end(); ++i) { @@ -1982,7 +2282,7 @@ void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera) void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera) { LLMemType mt(LLMemType::MTYPE_PIPELINE_STATE_SORT); - if (!sSkipUpdate && bridge->getSpatialGroup()->changeLOD()) + if (!sShadowRender && bridge->getSpatialGroup()->changeLOD()) { bool force_update = false; bridge->updateDistance(camera, force_update); @@ -2039,41 +2339,48 @@ void LLPipeline::stateSort(LLDrawable* drawablep, LLCamera& camera) } } - LLSpatialGroup* group = drawablep->getSpatialGroup(); - if (!group || group->changeLOD()) + if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD) { - if (drawablep->isVisible() && !sSkipUpdate) + LLSpatialGroup* group = drawablep->getSpatialGroup(); + if (!group || group->changeLOD()) { - if (!drawablep->isActive()) + if (drawablep->isVisible()) { - bool force_update = false; - drawablep->updateDistance(camera, force_update); + if (!drawablep->isActive()) + { + bool force_update = false; + drawablep->updateDistance(camera, force_update); + } + else if (drawablep->isAvatar()) + { + bool force_update = false; + drawablep->updateDistance(camera, force_update); // calls vobj->updateLOD() which calls LLVOAvatar::updateVisibility() + } } - else if (drawablep->isAvatar()) - { - bool force_update = false; - drawablep->updateDistance(camera, force_update); // calls vobj->updateLOD() which calls LLVOAvatar::updateVisibility() - } } } - for (LLDrawable::face_list_t::iterator iter = drawablep->mFaces.begin(); - iter != drawablep->mFaces.end(); iter++) + if (!drawablep->getVOVolume()) { - LLFace* facep = *iter; - - if (facep->hasGeometry()) + for (LLDrawable::face_list_t::iterator iter = drawablep->mFaces.begin(); + iter != drawablep->mFaces.end(); iter++) { - if (facep->getPool()) - { - facep->getPool()->enqueue(facep); - } - else + LLFace* facep = *iter; + + if (facep->hasGeometry()) { - break; + if (facep->getPool()) + { + facep->getPool()->enqueue(facep); + } + else + { + break; + } } } } + mNumVisibleFaces += drawablep->getNumFaces(); } @@ -2230,7 +2537,7 @@ void LLPipeline::postSort(LLCamera& camera) { LLSpatialGroup* group = *i; if (!sUseOcclusion || - !group->isState(LLSpatialGroup::OCCLUDED)) + !group->isOcclusionState(LLSpatialGroup::OCCLUDED)) { group->rebuildGeom(); } @@ -2239,7 +2546,7 @@ void LLPipeline::postSort(LLCamera& camera) //rebuild groups sCull->assertDrawMapsEmpty(); - LLSpatialGroup::sNoDelete = FALSE; + /*LLSpatialGroup::sNoDelete = FALSE; for (LLCullResult::sg_list_t::iterator i = sCull->beginVisibleGroups(); i != sCull->endVisibleGroups(); ++i) { LLSpatialGroup* group = *i; @@ -2251,8 +2558,10 @@ void LLPipeline::postSort(LLCamera& camera) group->rebuildGeom(); } - LLSpatialGroup::sNoDelete = TRUE; + LLSpatialGroup::sNoDelete = TRUE;*/ + + rebuildPriorityGroups(); const S32 bin_count = 1024*8; @@ -2274,42 +2583,65 @@ void LLPipeline::postSort(LLCamera& camera) { LLSpatialGroup* group = *i; if (sUseOcclusion && - group->isState(LLSpatialGroup::OCCLUDED)) + group->isOcclusionState(LLSpatialGroup::OCCLUDED)) { continue; } - + + if (group->isState(LLSpatialGroup::NEW_DRAWINFO) && group->isState(LLSpatialGroup::GEOM_DIRTY)) + { //no way this group is going to be drawable without a rebuild + group->rebuildGeom(); + } + for (LLSpatialGroup::draw_map_t::iterator j = group->mDrawMap.begin(); j != group->mDrawMap.end(); ++j) { LLSpatialGroup::drawmap_elem_t& src_vec = j->second; + if (!hasRenderType(j->first)) + { + continue; + } for (LLSpatialGroup::drawmap_elem_t::iterator k = src_vec.begin(); k != src_vec.end(); ++k) { - sCull->pushDrawInfo(j->first, *k); - } - } - - LLSpatialGroup::draw_map_t::iterator alpha = group->mDrawMap.find(LLRenderPass::PASS_ALPHA); - - if (alpha != group->mDrawMap.end()) - { //store alpha groups for sorting - LLSpatialBridge* bridge = group->mSpatialPartition->asBridge(); - if (!sSkipUpdate) - { - if (bridge) + if (sMinRenderSize > 0.f) { - LLCamera trans_camera = bridge->transformCamera(camera); - group->updateDistance(trans_camera); + LLVector3 bounds = (*k)->mExtents[1]-(*k)->mExtents[0]; + if (llmax(llmax(bounds.mV[0], bounds.mV[1]), bounds.mV[2]) > sMinRenderSize) + { + sCull->pushDrawInfo(j->first, *k); + } } else { - group->updateDistance(camera); + sCull->pushDrawInfo(j->first, *k); } } + } + + if (hasRenderType(LLPipeline::RENDER_TYPE_PASS_ALPHA)) + { + LLSpatialGroup::draw_map_t::iterator alpha = group->mDrawMap.find(LLRenderPass::PASS_ALPHA); - if (hasRenderType(LLDrawPool::POOL_ALPHA)) - { - sCull->pushAlphaGroup(group); + if (alpha != group->mDrawMap.end()) + { //store alpha groups for sorting + LLSpatialBridge* bridge = group->mSpatialPartition->asBridge(); + if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD) + { + if (bridge) + { + LLCamera trans_camera = bridge->transformCamera(camera); + group->updateDistance(trans_camera); + } + else + { + group->updateDistance(camera); + } + } + + if (hasRenderType(LLDrawPool::POOL_ALPHA)) + { + sCull->pushAlphaGroup(group); + } } } } @@ -2408,7 +2740,7 @@ void LLPipeline::postSort(LLCamera& camera) } } - LLSpatialGroup::sNoDelete = FALSE; + //LLSpatialGroup::sNoDelete = FALSE; } @@ -2470,6 +2802,103 @@ void LLPipeline::renderHighlights() LLGLEnable color_mat(GL_COLOR_MATERIAL); disableLights(); + if (!hasRenderType(LLPipeline::RENDER_TYPE_HUD) && !mHighlightSet.empty()) + { //draw blurry highlight image over screen + LLGLEnable blend(GL_BLEND); + LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS); + LLGLDisable test(GL_ALPHA_TEST); + + LLGLEnable stencil(GL_STENCIL_TEST); + gGL.flush(); + glStencilMask(0xFFFFFFFF); + glClearStencil(1); + glClear(GL_STENCIL_BUFFER_BIT); + + glStencilFunc(GL_ALWAYS, 0, 0xFFFFFFFF); + glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE); + + gGL.setColorMask(false, false); + for (std::set<HighlightItem>::iterator iter = mHighlightSet.begin(); iter != mHighlightSet.end(); ++iter) + { + renderHighlight(iter->mItem->getVObj(), 1.f); + } + gGL.setColorMask(true, false); + + glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); + glStencilFunc(GL_NOTEQUAL, 0, 0xFFFFFFFF); + + //gGL.setSceneBlendType(LLRender::BT_ADD_WITH_ALPHA); + + gGL.pushMatrix(); + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + gGL.pushMatrix(); + glLoadIdentity(); + + gGL.getTexUnit(0)->bind(&mHighlight); + + LLVector2 tc1; + LLVector2 tc2; + + tc1.setVec(0,0); + tc2.setVec(2,2); + + gGL.begin(LLRender::TRIANGLES); + + F32 scale = gSavedSettings.getF32("RenderHighlightBrightness"); + LLColor4 color = gSavedSettings.getColor4("RenderHighlightColor"); + F32 thickness = gSavedSettings.getF32("RenderHighlightThickness"); + + for (S32 pass = 0; pass < 2; ++pass) + { + if (pass == 0) + { + gGL.setSceneBlendType(LLRender::BT_ADD_WITH_ALPHA); + } + else + { + gGL.setSceneBlendType(LLRender::BT_ALPHA); + } + + for (S32 i = 0; i < 8; ++i) + { + for (S32 j = 0; j < 8; ++j) + { + LLVector2 tc(i-4+0.5f, j-4+0.5f); + + F32 dist = 1.f-(tc.length()/sqrtf(32.f)); + dist *= scale/64.f; + + tc *= thickness; + tc.mV[0] = (tc.mV[0])/mHighlight.getWidth(); + tc.mV[1] = (tc.mV[1])/mHighlight.getHeight(); + + gGL.color4f(color.mV[0], + color.mV[1], + color.mV[2], + color.mV[3]*dist); + + gGL.texCoord2f(tc.mV[0]+tc1.mV[0], tc.mV[1]+tc2.mV[1]); + gGL.vertex2f(-1,3); + + gGL.texCoord2f(tc.mV[0]+tc1.mV[0], tc.mV[1]+tc1.mV[1]); + gGL.vertex2f(-1,-1); + + gGL.texCoord2f(tc.mV[0]+tc2.mV[0], tc.mV[1]+tc1.mV[1]); + gGL.vertex2f(3,-1); + } + } + } + + gGL.end(); + + gGL.popMatrix(); + glMatrixMode(GL_MODELVIEW); + gGL.popMatrix(); + + //gGL.setSceneBlendType(LLRender::BT_ALPHA); + } + if ((LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_INTERFACE) > 0)) { gHighlightProgram.bind(); @@ -2611,6 +3040,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) stop_glerror(); LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDrawPools"); + for (pool_set_t::iterator iter = mPools.begin(); iter != mPools.end(); ++iter) { LLDrawPool *poolp = *iter; @@ -2859,15 +3289,18 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera) poolp->endDeferredPass(i); LLVertexBuffer::unbind(); - GLint depth; - glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, &depth); - if (depth > 3) + if (gDebugGL || gDebugPipeline) { - llerrs << "GL matrix stack corrupted!" << llendl; + GLint depth; + glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, &depth); + if (depth > 3) + { + llerrs << "GL matrix stack corrupted!" << llendl; + } + LLGLState::checkStates(); + LLGLState::checkTextureChannels(); + LLGLState::checkClientArrays(); } - LLGLState::checkStates(); - LLGLState::checkTextureChannels(); - LLGLState::checkClientArrays(); } } else @@ -2950,15 +3383,18 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera) poolp->endPostDeferredPass(i); LLVertexBuffer::unbind(); - GLint depth; - glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, &depth); - if (depth > 3) + if (gDebugGL || gDebugPipeline) { - llerrs << "GL matrix stack corrupted!" << llendl; + GLint depth; + glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, &depth); + if (depth > 3) + { + llerrs << "GL matrix stack corrupted!" << llendl; + } + LLGLState::checkStates(); + LLGLState::checkTextureChannels(); + LLGLState::checkClientArrays(); } - LLGLState::checkStates(); - LLGLState::checkTextureChannels(); - LLGLState::checkClientArrays(); } } else @@ -3118,7 +3554,7 @@ void LLPipeline::renderDebug() for (LLCullResult::bridge_list_t::const_iterator i = sCull->beginVisibleBridge(); i != sCull->endVisibleBridge(); ++i) { LLSpatialBridge* bridge = *i; - if (!bridge->isDead() && !bridge->isState(LLSpatialGroup::OCCLUDED) && hasRenderType(bridge->mDrawableType)) + if (!bridge->isDead() && hasRenderType(bridge->mDrawableType)) { glPushMatrix(); glMultMatrixf((F32*)bridge->mDrawable->getRenderMatrix().mMatrix); @@ -3129,79 +3565,91 @@ void LLPipeline::renderDebug() if (hasRenderDebugMask(LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA)) { + LLGLEnable blend(GL_BLEND); + LLGLDepthTest depth(TRUE, FALSE); + LLGLDisable cull(GL_CULL_FACE); + gGL.color4f(1,1,1,1); gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); + F32 a = 0.1f; + F32 col[] = { - 1,1,0, - 0,1,1, - 1,0,1, - 1,1,1, - 1,0,0, - 0,1,0, - 0,0,1, - 0,0,0 + 1,0,0,a, + 0,1,0,a, + 0,0,1,a, + 1,0,1,a, + + 1,1,0,a, + 0,1,1,a, + 1,1,1,a, + 1,0,1,a, }; for (U32 i = 0; i < 8; i++) { - gGL.color3fv(col+i*3); - - gGL.begin(LLRender::LINES); - - LLVector3* frust = mShadowCamera[i].mAgentFrustum; - - gGL.vertex3fv(frust[0].mV); gGL.vertex3fv(frust[1].mV); - gGL.vertex3fv(frust[1].mV); gGL.vertex3fv(frust[2].mV); - gGL.vertex3fv(frust[2].mV); gGL.vertex3fv(frust[3].mV); - gGL.vertex3fv(frust[3].mV); gGL.vertex3fv(frust[0].mV); - - gGL.vertex3fv(frust[4].mV); gGL.vertex3fv(frust[5].mV); - gGL.vertex3fv(frust[5].mV); gGL.vertex3fv(frust[6].mV); - gGL.vertex3fv(frust[6].mV); gGL.vertex3fv(frust[7].mV); - gGL.vertex3fv(frust[7].mV); gGL.vertex3fv(frust[4].mV); - - gGL.vertex3fv(frust[0].mV); gGL.vertex3fv(frust[4].mV); - gGL.vertex3fv(frust[1].mV); gGL.vertex3fv(frust[5].mV); - gGL.vertex3fv(frust[2].mV); gGL.vertex3fv(frust[6].mV); - gGL.vertex3fv(frust[3].mV); gGL.vertex3fv(frust[7].mV); + if (i > 3) + { + gGL.color4fv(col+(i-4)*4); + LLVector3* frust = mShadowCamera[i].mAgentFrustum; + + gGL.begin(LLRender::TRIANGLE_STRIP); + gGL.vertex3fv(frust[0].mV); gGL.vertex3fv(frust[4].mV); + gGL.vertex3fv(frust[1].mV); gGL.vertex3fv(frust[5].mV); + gGL.vertex3fv(frust[2].mV); gGL.vertex3fv(frust[6].mV); + gGL.vertex3fv(frust[3].mV); gGL.vertex3fv(frust[7].mV); + gGL.vertex3fv(frust[0].mV); gGL.vertex3fv(frust[4].mV); + gGL.end(); + + + gGL.begin(LLRender::TRIANGLE_STRIP); + gGL.vertex3fv(frust[0].mV); + gGL.vertex3fv(frust[1].mV); + gGL.vertex3fv(frust[3].mV); + gGL.vertex3fv(frust[2].mV); + gGL.end(); + + gGL.begin(LLRender::TRIANGLE_STRIP); + gGL.vertex3fv(frust[4].mV); + gGL.vertex3fv(frust[5].mV); + gGL.vertex3fv(frust[7].mV); + gGL.vertex3fv(frust[6].mV); + gGL.end(); + } + + if (i < 4) { - LLVector3* ext = mShadowExtents[i]; + gGL.begin(LLRender::LINES); - LLVector3 box[] = + F32* c = col+i*4; + for (U32 j = 0; j < mShadowFrustPoints[i].size(); ++j) { - LLVector3(ext[0][0], ext[0][1], ext[0][2]), - LLVector3(ext[1][0], ext[0][1], ext[0][2]), - LLVector3(ext[1][0], ext[1][1], ext[0][2]), - LLVector3(ext[0][0], ext[1][1], ext[0][2]), - LLVector3(ext[0][0], ext[0][1], ext[1][2]), - LLVector3(ext[1][0], ext[0][1], ext[1][2]), - LLVector3(ext[1][0], ext[1][1], ext[1][2]), - LLVector3(ext[0][0], ext[1][1], ext[1][2]), - }; - gGL.vertex3fv(box[0].mV); gGL.vertex3fv(box[1].mV); - gGL.vertex3fv(box[1].mV); gGL.vertex3fv(box[2].mV); - gGL.vertex3fv(box[2].mV); gGL.vertex3fv(box[3].mV); - gGL.vertex3fv(box[3].mV); gGL.vertex3fv(box[0].mV); - - gGL.vertex3fv(box[4].mV); gGL.vertex3fv(box[5].mV); - gGL.vertex3fv(box[5].mV); gGL.vertex3fv(box[6].mV); - gGL.vertex3fv(box[6].mV); gGL.vertex3fv(box[7].mV); - gGL.vertex3fv(box[7].mV); gGL.vertex3fv(box[4].mV); - - gGL.vertex3fv(box[0].mV); gGL.vertex3fv(box[4].mV); - gGL.vertex3fv(box[1].mV); gGL.vertex3fv(box[5].mV); - gGL.vertex3fv(box[2].mV); gGL.vertex3fv(box[6].mV); - gGL.vertex3fv(box[3].mV); gGL.vertex3fv(box[7].mV); + gGL.color3fv(c); + + for (U32 k = 0; k < mShadowFrustPoints[i].size(); ++k) + { + if (j != k) + { + gGL.vertex3fv(mShadowFrustPoints[i][j].mV); + gGL.vertex3fv(mShadowFrustPoints[i][k].mV); + } + } + + if (!mShadowFrustOrigin[i].isExactlyZero()) + { + gGL.vertex3fv(mShadowFrustPoints[i][j].mV); + gGL.color4f(1,1,1,1); + gGL.vertex3fv(mShadowFrustOrigin[i].mV); + } + } + gGL.end(); } - gGL.end(); - - for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin(); + /*for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin(); iter != LLWorld::getInstance()->getRegionList().end(); ++iter) { LLViewerRegion* region = *iter; @@ -3216,7 +3664,7 @@ void LLPipeline::renderDebug() } } } - } + }*/ } } @@ -3253,6 +3701,55 @@ void LLPipeline::renderDebug() } } + if (mRenderDebugMask & LLPipeline::RENDER_DEBUG_BUILD_QUEUE) + { + U32 count = 0; + U32 size = mBuildQ2.size(); + LLColor4 col; + + LLGLEnable blend(GL_BLEND); + LLGLDepthTest depth(GL_TRUE, GL_FALSE); + gGL.getTexUnit(0)->bind(LLViewerFetchedTexture::sWhiteImagep); + + for (LLSpatialGroup::sg_vector_t::iterator iter = mGroupQ2.begin(); iter != mGroupQ2.end(); ++iter) + { + LLSpatialGroup* group = *iter; + if (group->isDead()) + { + continue; + } + + LLSpatialBridge* bridge = group->mSpatialPartition->asBridge(); + + if (bridge && (!bridge->mDrawable || bridge->mDrawable->isDead())) + { + continue; + } + + if (bridge) + { + gGL.pushMatrix(); + glMultMatrixf((F32*)bridge->mDrawable->getRenderMatrix().mMatrix); + } + + F32 alpha = (F32) (size-count)/size; + + + LLVector2 c(1.f-alpha, alpha); + c.normVec(); + + + ++count; + col.set(c.mV[0], c.mV[1], 0, alpha*0.5f+0.1f); + group->drawObjectBox(col); + + if (bridge) + { + gGL.popMatrix(); + } + } + } + gGL.flush(); } @@ -3871,37 +4368,34 @@ void LLPipeline::calcNearbyLights(LLCamera& camera) F32 max_dist = LIGHT_MAX_RADIUS * 4.f; // ignore enitrely lights > 4 * max light rad // UPDATE THE EXISTING NEARBY LIGHTS - if (!LLPipeline::sSkipUpdate) + light_set_t cur_nearby_lights; + for (light_set_t::iterator iter = mNearbyLights.begin(); + iter != mNearbyLights.end(); iter++) { - light_set_t cur_nearby_lights; - for (light_set_t::iterator iter = mNearbyLights.begin(); - iter != mNearbyLights.end(); iter++) + const Light* light = &(*iter); + LLDrawable* drawable = light->drawable; + LLVOVolume* volight = drawable->getVOVolume(); + if (!volight || !drawable->isState(LLDrawable::LIGHT)) { - const Light* light = &(*iter); - LLDrawable* drawable = light->drawable; - LLVOVolume* volight = drawable->getVOVolume(); - if (!volight || !drawable->isState(LLDrawable::LIGHT)) - { - drawable->clearState(LLDrawable::NEARBY_LIGHT); - continue; - } - if (light->fade <= -LIGHT_FADE_TIME) - { - drawable->clearState(LLDrawable::NEARBY_LIGHT); - continue; - } - if (!sRenderAttachedLights && volight && volight->isAttachment()) - { - drawable->clearState(LLDrawable::NEARBY_LIGHT); - continue; - } - - F32 dist = calc_light_dist(volight, cam_pos, max_dist); - cur_nearby_lights.insert(Light(drawable, dist, light->fade)); + drawable->clearState(LLDrawable::NEARBY_LIGHT); + continue; } - mNearbyLights = cur_nearby_lights; + if (light->fade <= -LIGHT_FADE_TIME) + { + drawable->clearState(LLDrawable::NEARBY_LIGHT); + continue; + } + if (!sRenderAttachedLights && volight && volight->isAttachment()) + { + drawable->clearState(LLDrawable::NEARBY_LIGHT); + continue; + } + + F32 dist = calc_light_dist(volight, cam_pos, max_dist); + cur_nearby_lights.insert(Light(drawable, dist, light->fade)); } - + mNearbyLights = cur_nearby_lights; + // FIND NEW LIGHTS THAT ARE IN RANGE light_set_t new_nearby_lights; for (LLDrawable::drawable_set_t::iterator iter = mLights.begin(); @@ -5169,8 +5663,6 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield) tc1.setVec(0,0); tc2.setVec(2,2); - - // power of two between 1 and 1024 U32 glowResPow = gSavedSettings.getS32("RenderGlowResolutionPow"); const U32 glow_res = llmax(1, @@ -5245,15 +5737,40 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield) gGLViewport[3] = gViewerWindow->getWorldViewRect().getHeight(); glViewport(gGLViewport[0], gGLViewport[1], gGLViewport[2], gGLViewport[3]); + tc2.setVec((F32) gViewerWindow->getWorldViewWidth(), + (F32) gViewerWindow->getWorldViewHeight()); + gGL.flush(); + LLVertexBuffer::unbind(); + + if (LLPipeline::sRenderDeferred && LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) > 2) { - LLVertexBuffer::unbind(); + LLGLDisable blend(GL_BLEND); + bindDeferredShader(gDeferredGIFinalProgram); + + S32 channel = gDeferredGIFinalProgram.enableTexture(LLViewerShaderMgr::DEFERRED_DIFFUSE, LLTexUnit::TT_RECT_TEXTURE); + if (channel > -1) + { + mScreen.bindTexture(0, channel); + } + gGL.begin(LLRender::TRIANGLE_STRIP); + gGL.texCoord2f(tc1.mV[0], tc1.mV[1]); + gGL.vertex2f(-1,-1); + gGL.texCoord2f(tc1.mV[0], tc2.mV[1]); + gGL.vertex2f(-1,3); - tc2.setVec((F32) gViewerWindow->getWorldViewWidth(), - (F32) gViewerWindow->getWorldViewHeight()); + gGL.texCoord2f(tc2.mV[0], tc1.mV[1]); + gGL.vertex2f(3,-1); + + gGL.end(); + + unbindDeferredShader(gDeferredGIFinalProgram); + } + else + { if (res_mod > 1) { @@ -5294,7 +5811,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield) gGL.getTexUnit(0)->bind(&mGlow[1]); gGL.getTexUnit(1)->activate(); gGL.getTexUnit(1)->enable(LLTexUnit::TT_RECT_TEXTURE); - + + //tex unit 1 gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_ADD, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_PREV_COLOR); @@ -5313,6 +5831,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield) gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); } + gGL.setSceneBlendType(LLRender::BT_ALPHA); glMatrixMode(GL_PROJECTION); glPopMatrix(); @@ -5326,108 +5845,320 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield) } -void LLPipeline::bindDeferredShader(LLGLSLShader& shader, U32 light_index) +void LLPipeline::bindDeferredShader(LLGLSLShader& shader, U32 light_index, LLRenderTarget* gi_source, LLRenderTarget* last_gi_post, U32 noise_map) { + if (noise_map == 0xFFFFFFFF) + { + noise_map = mNoiseMap; + } + + LLGLState::checkTextureChannels(); + shader.bind(); S32 channel = 0; channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_DIFFUSE, LLTexUnit::TT_RECT_TEXTURE); if (channel > -1) { mDeferredScreen.bindTexture(0,channel); - //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); } channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_SPECULAR, LLTexUnit::TT_RECT_TEXTURE); if (channel > -1) { mDeferredScreen.bindTexture(1, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); } channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_NORMAL, LLTexUnit::TT_RECT_TEXTURE); if (channel > -1) { mDeferredScreen.bindTexture(2, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); } - channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_POSITION, LLTexUnit::TT_RECT_TEXTURE); - if (channel > -1) - { - mDeferredScreen.bindTexture(3, channel); - } - - channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_DEPTH, LLTexUnit::TT_RECT_TEXTURE); - if (channel > -1) - { - gGL.getTexUnit(channel)->bind(&mDeferredScreen, TRUE); - } - - channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_NOISE); - if (channel > -1) - { - gGL.getTexUnit(channel)->bindManual(LLTexUnit::TT_TEXTURE, mNoiseMap); - } - - stop_glerror(); - - channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_LIGHT, LLTexUnit::TT_RECT_TEXTURE); - if (channel > -1) - { - mDeferredLight[light_index].bindTexture(0, channel); - } - - stop_glerror(); - - for (U32 i = 0; i < 4; i++) + if (gi_source) { - channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_SHADOW0+i); - stop_glerror(); + BOOL has_gi = FALSE; + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_DIFFUSE); if (channel > -1) { - stop_glerror(); - gGL.getTexUnit(channel)->bind(&mSunShadow[i], TRUE); + has_gi = TRUE; + gi_source->bindTexture(0, channel); gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); - stop_glerror(); - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE_ARB, GL_COMPARE_R_TO_TEXTURE_ARB); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC_ARB, GL_LEQUAL); - stop_glerror(); } - } - - stop_glerror(); - - F32 mat[64]; - for (U32 i = 0; i < 16; i++) - { - mat[i] = mSunShadowMatrix[0].m[i]; - mat[i+16] = mSunShadowMatrix[1].m[i]; - mat[i+32] = mSunShadowMatrix[2].m[i]; - mat[i+48] = mSunShadowMatrix[3].m[i]; - } - - shader.uniformMatrix4fv("shadow_matrix[0]", 4, FALSE, mat); - shader.uniformMatrix4fv("shadow_matrix", 4, FALSE, mat); - - stop_glerror(); - - channel = shader.enableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP); - if (channel > -1) - { - LLCubeMap* cube_map = gSky.mVOSkyp ? gSky.mVOSkyp->getCubeMap() : NULL; - if (cube_map) - { - cube_map->enable(channel); - cube_map->bind(); - F64* m = gGLModelView; - - - F32 mat[] = { m[0], m[1], m[2], - m[4], m[5], m[6], - m[8], m[9], m[10] }; - shader.uniform3fv("env_mat[0]", 3, mat); - shader.uniform3fv("env_mat", 3, mat); + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_SPECULAR); + if (channel > -1) + { + has_gi = TRUE; + gi_source->bindTexture(1, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_NORMAL); + if (channel > -1) + { + has_gi = TRUE; + gi_source->bindTexture(2, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_MIN_POS); + if (channel > -1) + { + has_gi = TRUE; + gi_source->bindTexture(1, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_MAX_POS); + if (channel > -1) + { + has_gi = TRUE; + gi_source->bindTexture(3, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_LAST_DIFFUSE); + if (channel > -1) + { + has_gi = TRUE; + last_gi_post->bindTexture(0, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_LAST_NORMAL); + if (channel > -1) + { + has_gi = TRUE; + last_gi_post->bindTexture(2, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_LAST_MAX_POS); + if (channel > -1) + { + has_gi = TRUE; + last_gi_post->bindTexture(1, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_LAST_MIN_POS); + if (channel > -1) + { + has_gi = TRUE; + last_gi_post->bindTexture(3, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_DEPTH); + if (channel > -1) + { + has_gi = TRUE; + gGL.getTexUnit(channel)->bind(gi_source, TRUE); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + stop_glerror(); + + glTexParameteri(LLTexUnit::getInternalType(mGIMap.getUsage()), GL_TEXTURE_COMPARE_MODE_ARB, GL_NONE); + glTexParameteri(LLTexUnit::getInternalType(mGIMap.getUsage()), GL_DEPTH_TEXTURE_MODE_ARB, GL_ALPHA); + + stop_glerror(); + } + + if (has_gi) + { + F32 range_x = llmin(mGIRange.mV[0], 1.f); + F32 range_y = llmin(mGIRange.mV[1], 1.f); + + LLVector2 scale(range_x,range_y); + + LLVector2 kern[25]; + + for (S32 i = 0; i < 5; ++i) + { + for (S32 j = 0; j < 5; ++j) + { + S32 idx = i*5+j; + kern[idx].mV[0] = (i-2)*0.5f; + kern[idx].mV[1] = (j-2)*0.5f; + kern[idx].scaleVec(scale); + } + } + + shader.uniform2fv("gi_kern", 25, (F32*) kern); + shader.uniformMatrix4fv("gi_mat", 1, FALSE, mGIMatrix.m); + shader.uniformMatrix4fv("gi_mat_proj", 1, FALSE, mGIMatrixProj.m); + shader.uniformMatrix4fv("gi_inv_proj", 1, FALSE, mGIInvProj.m); + shader.uniformMatrix4fv("gi_norm_mat", 1, FALSE, mGINormalMatrix.m); + } + } + + /*channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_POSITION, LLTexUnit::TT_RECT_TEXTURE); + if (channel > -1) + { + mDeferredScreen.bindTexture(3, channel); + }*/ + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_DEPTH, LLTexUnit::TT_RECT_TEXTURE); + if (channel > -1) + { + gGL.getTexUnit(channel)->bind(&mDeferredDepth, TRUE); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + stop_glerror(); + + glTexParameteri(LLTexUnit::getInternalType(mDeferredDepth.getUsage()), GL_TEXTURE_COMPARE_MODE_ARB, GL_NONE); + glTexParameteri(LLTexUnit::getInternalType(mDeferredDepth.getUsage()), GL_DEPTH_TEXTURE_MODE_ARB, GL_ALPHA); + + stop_glerror(); + + glh::matrix4f projection = glh_get_current_projection(); + glh::matrix4f inv_proj = projection.inverse(); + + shader.uniformMatrix4fv("inv_proj", 1, FALSE, inv_proj.m); + shader.uniform4f("viewport", (F32) gGLViewport[0], + (F32) gGLViewport[1], + (F32) gGLViewport[2], + (F32) gGLViewport[3]); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_NOISE); + if (channel > -1) + { + gGL.getTexUnit(channel)->bindManual(LLTexUnit::TT_TEXTURE, noise_map); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_LIGHTFUNC); + if (channel > -1) + { + gGL.getTexUnit(channel)->bindManual(LLTexUnit::TT_TEXTURE, mLightFunc); + } + + stop_glerror(); + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_LIGHT, LLTexUnit::TT_RECT_TEXTURE); + if (channel > -1) + { + mDeferredLight[light_index].bindTexture(0, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_LUMINANCE); + if (channel > -1) + { + gGL.getTexUnit(channel)->bindManual(LLTexUnit::TT_TEXTURE, mLuminanceMap.getTexture(), true); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_TRILINEAR); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_BLOOM); + if (channel > -1) + { + mGlow[1].bindTexture(0, channel); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_GI_LIGHT, LLTexUnit::TT_RECT_TEXTURE); + if (channel > -1) + { + gi_source->bindTexture(0, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_EDGE, LLTexUnit::TT_RECT_TEXTURE); + if (channel > -1) + { + mEdgeMap.bindTexture(0, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_SUN_LIGHT, LLTexUnit::TT_RECT_TEXTURE); + if (channel > -1) + { + mDeferredLight[1].bindTexture(0, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + } + + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_LOCAL_LIGHT, LLTexUnit::TT_RECT_TEXTURE); + if (channel > -1) + { + mDeferredLight[2].bindTexture(0, channel); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT); + } + + + stop_glerror(); + + for (U32 i = 0; i < 4; i++) + { + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_SHADOW0+i, LLTexUnit::TT_RECT_TEXTURE); + stop_glerror(); + if (channel > -1) + { + stop_glerror(); + gGL.getTexUnit(channel)->bind(&mShadow[i], TRUE); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + gGL.getTexUnit(channel)->setTextureAddressMode(LLTexUnit::TAM_CLAMP); + stop_glerror(); + + glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_COMPARE_MODE_ARB, GL_COMPARE_R_TO_TEXTURE_ARB); + glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_COMPARE_FUNC_ARB, GL_LEQUAL); + stop_glerror(); + } + } + + for (U32 i = 4; i < 6; i++) + { + channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_SHADOW0+i); + stop_glerror(); + if (channel > -1) + { + stop_glerror(); + gGL.getTexUnit(channel)->bind(&mShadow[i], TRUE); + gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR); + gGL.getTexUnit(channel)->setTextureAddressMode(LLTexUnit::TAM_CLAMP); + stop_glerror(); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE_ARB, GL_COMPARE_R_TO_TEXTURE_ARB); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC_ARB, GL_LEQUAL); + stop_glerror(); + } + } + + stop_glerror(); + + F32 mat[16*6]; + for (U32 i = 0; i < 16; i++) + { + mat[i] = mSunShadowMatrix[0].m[i]; + mat[i+16] = mSunShadowMatrix[1].m[i]; + mat[i+32] = mSunShadowMatrix[2].m[i]; + mat[i+48] = mSunShadowMatrix[3].m[i]; + mat[i+64] = mSunShadowMatrix[4].m[i]; + mat[i+80] = mSunShadowMatrix[5].m[i]; + } + + shader.uniformMatrix4fv("shadow_matrix[0]", 6, FALSE, mat); + shader.uniformMatrix4fv("shadow_matrix", 6, FALSE, mat); + + stop_glerror(); + + channel = shader.enableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP); + if (channel > -1) + { + LLCubeMap* cube_map = gSky.mVOSkyp ? gSky.mVOSkyp->getCubeMap() : NULL; + if (cube_map) + { + cube_map->enable(channel); + cube_map->bind(); + F64* m = gGLModelView; + + + F32 mat[] = { m[0], m[1], m[2], + m[4], m[5], m[6], + m[8], m[9], m[10] }; + + shader.uniform3fv("env_mat[0]", 3, mat); + shader.uniform3fv("env_mat", 3, mat); } } @@ -5456,7 +6187,44 @@ void LLPipeline::bindDeferredShader(LLGLSLShader& shader, U32 light_index) shader.uniform2f("screen_res", mDeferredScreen.getWidth(), mDeferredScreen.getHeight()); shader.uniform1f("near_clip", LLViewerCamera::getInstance()->getNear()*2.f); shader.uniform1f("alpha_soften", gSavedSettings.getF32("RenderDeferredAlphaSoften")); -} + shader.uniform1f ("shadow_offset", gSavedSettings.getF32("RenderShadowOffset")); + shader.uniform1f("shadow_bias", gSavedSettings.getF32("RenderShadowBias")); + shader.uniform1f("lum_scale", gSavedSettings.getF32("RenderLuminanceScale")); + shader.uniform1f("sun_lum_scale", gSavedSettings.getF32("RenderSunLuminanceScale")); + shader.uniform1f("sun_lum_offset", gSavedSettings.getF32("RenderSunLuminanceOffset")); + shader.uniform1f("lum_lod", gSavedSettings.getF32("RenderLuminanceDetail")); + shader.uniform1f("gi_range", gSavedSettings.getF32("RenderGIRange")); + shader.uniform1f("gi_brightness", gSavedSettings.getF32("RenderGIBrightness")); + shader.uniform1f("gi_luminance", gSavedSettings.getF32("RenderGILuminance")); + shader.uniform1f("gi_edge_weight", gSavedSettings.getF32("RenderGIBlurEdgeWeight")); + shader.uniform1f("gi_blur_brightness", gSavedSettings.getF32("RenderGIBlurBrightness")); + shader.uniform1f("gi_sample_width", mGILightRadius); + shader.uniform1f("gi_noise", gSavedSettings.getF32("RenderGINoise")); + shader.uniform1f("gi_attenuation", gSavedSettings.getF32("RenderGIAttenuation")); + shader.uniform1f("gi_ambiance", gSavedSettings.getF32("RenderGIAmbiance")); + shader.uniform2f("shadow_res", mShadow[0].getWidth(), mShadow[0].getHeight()); + shader.uniform2f("proj_shadow_res", mShadow[4].getWidth(), mShadow[4].getHeight()); + shader.uniform1f("depth_cutoff", gSavedSettings.getF32("RenderEdgeDepthCutoff")); + shader.uniform1f("norm_cutoff", gSavedSettings.getF32("RenderEdgeNormCutoff")); + + if (shader.getUniformLocation("norm_mat") >= 0) + { + glh::matrix4f norm_mat = glh_get_current_modelview().inverse().transpose(); + shader.uniformMatrix4fv("norm_mat", 1, FALSE, norm_mat.m); + } +} + +static LLFastTimer::DeclareTimer FTM_GI_TRACE("Trace"); +static LLFastTimer::DeclareTimer FTM_GI_GATHER("Gather"); +static LLFastTimer::DeclareTimer FTM_SUN_SHADOW("Shadow Map"); +static LLFastTimer::DeclareTimer FTM_SOFTEN_SHADOW("Shadow Soften"); +static LLFastTimer::DeclareTimer FTM_EDGE_DETECTION("Find Edges"); +static LLFastTimer::DeclareTimer FTM_LOCAL_LIGHTS("Local Lights"); +static LLFastTimer::DeclareTimer FTM_ATMOSPHERICS("Atmospherics"); +static LLFastTimer::DeclareTimer FTM_FULLSCREEN_LIGHTS("Fullscreen Lights"); +static LLFastTimer::DeclareTimer FTM_PROJECTORS("Projectors"); +static LLFastTimer::DeclareTimer FTM_POST("Post"); + void LLPipeline::renderDeferredLighting() { @@ -5465,335 +6233,673 @@ void LLPipeline::renderDeferredLighting() return; } - LLGLEnable multisample(GL_MULTISAMPLE_ARB); - - if (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_HUD)) { - gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD); - } - - //ati doesn't seem to love actually using the stencil buffer on FBO's - LLGLEnable stencil(GL_STENCIL_TEST); - glStencilFunc(GL_EQUAL, 1, 0xFFFFFFFF); - glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); + LLFastTimer ftm(FTM_RENDER_DEFERRED); - gGL.setColorMask(true, true); + { + LLGLDepthTest depth(GL_TRUE); + mDeferredDepth.copyContents(mDeferredScreen, 0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight(), + 0, 0, mDeferredDepth.getWidth(), mDeferredDepth.getHeight(), GL_DEPTH_BUFFER_BIT, GL_NEAREST); + } - mDeferredLight[0].bindTarget(); + LLGLEnable multisample(GL_MULTISAMPLE_ARB); - //mDeferredLight[0].copyContents(mDeferredScreen, 0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight(), - // 0, 0, mDeferredLight[0].getWidth(), mDeferredLight[0].getHeight(), GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST); - - //draw a cube around every light - LLVertexBuffer::unbind(); + if (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_HUD)) + { + gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD); + } - glBlendFunc(GL_ONE, GL_ONE); - LLGLEnable cull(GL_CULL_FACE); - LLGLEnable blend(GL_BLEND); + //ati doesn't seem to love actually using the stencil buffer on FBO's + LLGLEnable stencil(GL_STENCIL_TEST); + glStencilFunc(GL_EQUAL, 1, 0xFFFFFFFF); + glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); - glh::matrix4f mat = glh_copy_matrix(gGLModelView); + gGL.setColorMask(true, true); + + //draw a cube around every light + LLVertexBuffer::unbind(); - F32 vert[] = - { - -1,1, - -1,-3, - 3,1, - }; + LLGLEnable cull(GL_CULL_FACE); + LLGLEnable blend(GL_BLEND); - bindDeferredShader(gDeferredSunProgram); + glh::matrix4f mat = glh_copy_matrix(gGLModelView); - glh::matrix4f inv_trans = glh_get_current_modelview().inverse().transpose(); + F32 vert[] = + { + -1,1, + -1,-3, + 3,1, + }; + glVertexPointer(2, GL_FLOAT, 0, vert); + glColor3f(1,1,1); - const U32 slice = 32; - F32 offset[slice*3]; - for (U32 i = 0; i < 4; i++) - { - for (U32 j = 0; j < 8; j++) { - glh::vec3f v; - v.set_value(sinf(6.284f/8*j), cosf(6.284f/8*j), -(F32) i); - v.normalize(); - inv_trans.mult_matrix_vec(v); - v.normalize(); - offset[(i*8+j)*3+0] = v.v[0]; - offset[(i*8+j)*3+1] = v.v[2]; - offset[(i*8+j)*3+2] = v.v[1]; + setupHWLights(NULL); //to set mSunDir; + LLVector4 dir(mSunDir, 0.f); + glh::vec4f tc(dir.mV); + mat.mult_matrix_vec(tc); + glTexCoord4f(tc.v[0], tc.v[1], tc.v[2], 0); } - } - gDeferredSunProgram.uniform3fv("offset", slice, offset); - gDeferredSunProgram.uniform2f("screenRes", mDeferredLight[0].getWidth(), mDeferredLight[0].getHeight()); - - setupHWLights(NULL); //to set mSunDir; + if (gSavedSettings.getBOOL("RenderDeferredShadow")) + { + glPushMatrix(); + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); - glPushMatrix(); - glLoadIdentity(); - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); + mDeferredLight[0].bindTarget(); + if (gSavedSettings.getBOOL("RenderDeferredSun")) + { //paint shadow/SSAO light map (direct lighting lightmap) + LLFastTimer ftm(FTM_SUN_SHADOW); + bindDeferredShader(gDeferredSunProgram, 0); - LLVector4 dir(mSunDir, 0.f); + glClearColor(1,1,1,1); + mDeferredLight[0].clear(GL_COLOR_BUFFER_BIT); + glClearColor(0,0,0,0); - glh::vec4f tc(dir.mV); - mat.mult_matrix_vec(tc); - glTexCoord4f(tc.v[0], tc.v[1], tc.v[2], 0); - glColor3f(1,1,1); + glh::matrix4f inv_trans = glh_get_current_modelview().inverse().transpose(); - glVertexPointer(2, GL_FLOAT, 0, vert); - { - LLGLDisable blend(GL_BLEND); - LLGLDepthTest depth(GL_FALSE); - stop_glerror(); - glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); - stop_glerror(); - } - - unbindDeferredShader(gDeferredSunProgram); + const U32 slice = 32; + F32 offset[slice*3]; + for (U32 i = 0; i < 4; i++) + { + for (U32 j = 0; j < 8; j++) + { + glh::vec3f v; + v.set_value(sinf(6.284f/8*j), cosf(6.284f/8*j), -(F32) i); + v.normalize(); + inv_trans.mult_matrix_vec(v); + v.normalize(); + offset[(i*8+j)*3+0] = v.v[0]; + offset[(i*8+j)*3+1] = v.v[2]; + offset[(i*8+j)*3+2] = v.v[1]; + } + } - mDeferredLight[0].flush(); + gDeferredSunProgram.uniform3fv("offset", slice, offset); + gDeferredSunProgram.uniform2f("screenRes", mDeferredLight[0].getWidth(), mDeferredLight[0].getHeight()); + + { + LLGLDisable blend(GL_BLEND); + LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS); + stop_glerror(); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + stop_glerror(); + } + + unbindDeferredShader(gDeferredSunProgram); + } + else + { + mDeferredLight[0].clear(GL_COLOR_BUFFER_BIT); + } - //blur lightmap - mDeferredLight[1].bindTarget(); + mDeferredLight[0].flush(); - //mDeferredLight[1].copyContents(mDeferredScreen, 0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight(), - // 0, 0, mDeferredLight[0].getWidth(), mDeferredLight[0].getHeight(), GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST); - - bindDeferredShader(gDeferredBlurLightProgram); + if (gSavedSettings.getBOOL("RenderDeferredBlurLight")) + { + LLFastTimer ftm(FTM_EDGE_DETECTION); + //get edge map + LLGLDisable blend(GL_BLEND); + LLGLDisable test(GL_ALPHA_TEST); + LLGLDepthTest depth(GL_FALSE); + LLGLDisable stencil(GL_STENCIL_TEST); - LLVector3 gauss[32]; // xweight, yweight, offset + { + gDeferredEdgeProgram.bind(); + mEdgeMap.bindTarget(); + bindDeferredShader(gDeferredEdgeProgram); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + unbindDeferredShader(gDeferredEdgeProgram); + mEdgeMap.flush(); + } + } - LLVector3 go = gSavedSettings.getVector3("RenderShadowGaussian"); - U32 kern_length = llclamp(gSavedSettings.getU32("RenderShadowBlurSamples"), (U32) 1, (U32) 16)*2 - 1; - F32 blur_size = gSavedSettings.getF32("RenderShadowBlurSize"); + if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) > 2) + { + { //get luminance map from previous frame's light map + LLGLEnable blend(GL_BLEND); + LLGLDisable test(GL_ALPHA_TEST); + LLGLDepthTest depth(GL_FALSE); + LLGLDisable stencil(GL_STENCIL_TEST); - // sample symmetrically with the middle sample falling exactly on 0.0 - F32 x = -(kern_length/2.0f) + 0.5f; + //static F32 fade = 1.f; - for (U32 i = 0; i < kern_length; i++) - { - gauss[i].mV[0] = llgaussian(x, go.mV[0]); - gauss[i].mV[1] = llgaussian(x, go.mV[1]); - gauss[i].mV[2] = x; - x += 1.f; - } - /* swap the x=0 position to the start of gauss[] so we can - treat it specially as an optimization. */ - LLVector3 swap; - swap = gauss[kern_length/2]; - gauss[kern_length/2] = gauss[0]; - gauss[0] = swap; - llassert(gauss[0].mV[2] == 0.0f); + { + gGL.setSceneBlendType(LLRender::BT_ALPHA); + gLuminanceGatherProgram.bind(); + gLuminanceGatherProgram.uniform2f("screen_res", mDeferredLight[0].getWidth(), mDeferredLight[0].getHeight()); + mLuminanceMap.bindTarget(); + bindDeferredShader(gLuminanceGatherProgram); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + unbindDeferredShader(gLuminanceGatherProgram); + mLuminanceMap.flush(); + gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mLuminanceMap.getTexture(), true); + gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_TRILINEAR); + glGenerateMipmapEXT(GL_TEXTURE_2D); + } + } - gDeferredBlurLightProgram.uniform2f("delta", 1.f, 0.f); - gDeferredBlurLightProgram.uniform3fv("kern[0]", kern_length, gauss[0].mV); - gDeferredBlurLightProgram.uniform3fv("kern", kern_length, gauss[0].mV); - gDeferredBlurLightProgram.uniform1i("kern_length", kern_length); - gDeferredBlurLightProgram.uniform1f("kern_scale", blur_size * (kern_length/2.f - 0.5f)); + { //paint noisy GI map (bounce lighting lightmap) + LLFastTimer ftm(FTM_GI_TRACE); + LLGLDisable blend(GL_BLEND); + LLGLDepthTest depth(GL_FALSE); + LLGLDisable test(GL_ALPHA_TEST); - { - LLGLDisable blend(GL_BLEND); - LLGLDepthTest depth(GL_FALSE); - stop_glerror(); - glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); - stop_glerror(); - } - - mDeferredLight[1].flush(); - unbindDeferredShader(gDeferredBlurLightProgram); + mGIMapPost[0].bindTarget(); - bindDeferredShader(gDeferredBlurLightProgram, 1); - mDeferredLight[0].bindTarget(); + bindDeferredShader(gDeferredGIProgram, 0, &mGIMap, 0, mTrueNoiseMap); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + unbindDeferredShader(gDeferredGIProgram); + mGIMapPost[0].flush(); + } - gDeferredBlurLightProgram.uniform2f("delta", 0.f, 1.f); - gDeferredBlurLightProgram.uniform3fv("kern[0]", kern_length, gauss[0].mV); - gDeferredBlurLightProgram.uniform3fv("kern", kern_length, gauss[0].mV); - gDeferredBlurLightProgram.uniform1i("kern_length", kern_length); - gDeferredBlurLightProgram.uniform1f("kern_scale", blur_size * (kern_length/2.f - 0.5f)); + U32 pass_count = 0; + if (gSavedSettings.getBOOL("RenderDeferredBlurLight")) + { + pass_count = llclamp(gSavedSettings.getU32("RenderGIBlurPasses"), (U32) 1, (U32) 128); + } - { - LLGLDisable blend(GL_BLEND); - LLGLDepthTest depth(GL_FALSE); - stop_glerror(); - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - stop_glerror(); - } - mDeferredLight[0].flush(); - unbindDeferredShader(gDeferredBlurLightProgram); + for (U32 i = 0; i < pass_count; ++i) + { //gather/soften indirect lighting map + LLFastTimer ftm(FTM_GI_GATHER); + bindDeferredShader(gDeferredPostGIProgram, 0, &mGIMapPost[0], NULL, mTrueNoiseMap); + F32 blur_size = gSavedSettings.getF32("RenderGIBlurSize")/((F32) i * gSavedSettings.getF32("RenderGIBlurIncrement")+1.f); + gDeferredPostGIProgram.uniform2f("delta", 1.f, 0.f); + gDeferredPostGIProgram.uniform1f("kern_scale", blur_size); + gDeferredPostGIProgram.uniform1f("gi_blur_brightness", gSavedSettings.getF32("RenderGIBlurBrightness")); + + mGIMapPost[1].bindTarget(); + { + LLGLDisable blend(GL_BLEND); + LLGLDepthTest depth(GL_FALSE); + stop_glerror(); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + stop_glerror(); + } + + mGIMapPost[1].flush(); + unbindDeferredShader(gDeferredPostGIProgram); + bindDeferredShader(gDeferredPostGIProgram, 0, &mGIMapPost[1], NULL, mTrueNoiseMap); + mGIMapPost[0].bindTarget(); - stop_glerror(); - glPopMatrix(); - stop_glerror(); - glMatrixMode(GL_MODELVIEW); - stop_glerror(); - glPopMatrix(); - stop_glerror(); + gDeferredPostGIProgram.uniform2f("delta", 0.f, 1.f); - //copy depth and stencil from deferred screen - //mScreen.copyContents(mDeferredScreen, 0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight(), - // 0, 0, mScreen.getWidth(), mScreen.getHeight(), GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST); + { + LLGLDisable blend(GL_BLEND); + LLGLDepthTest depth(GL_FALSE); + stop_glerror(); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + stop_glerror(); + } + mGIMapPost[0].flush(); + unbindDeferredShader(gDeferredPostGIProgram); + } + } - mScreen.bindTarget(); - mScreen.clear(GL_COLOR_BUFFER_BIT); - - bindDeferredShader(gDeferredSoftenProgram); - { - LLGLDepthTest depth(GL_FALSE); - LLGLDisable blend(GL_BLEND); - LLGLDisable test(GL_ALPHA_TEST); + if (gSavedSettings.getBOOL("RenderDeferredBlurLight")) + { //soften direct lighting lightmap + LLFastTimer ftm(FTM_SOFTEN_SHADOW); + //blur lightmap + mDeferredLight[1].bindTarget(); - //full screen blit - glPushMatrix(); - glLoadIdentity(); - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); + glClearColor(1,1,1,1); + mDeferredLight[1].clear(GL_COLOR_BUFFER_BIT); + glClearColor(0,0,0,0); + + bindDeferredShader(gDeferredBlurLightProgram); - glVertexPointer(2, GL_FLOAT, 0, vert); - - glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); - - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); - } + LLVector3 go = gSavedSettings.getVector3("RenderShadowGaussian"); + const U32 kern_length = 4; + F32 blur_size = gSavedSettings.getF32("RenderShadowBlurSize"); + F32 dist_factor = gSavedSettings.getF32("RenderShadowBlurDistFactor"); - unbindDeferredShader(gDeferredSoftenProgram); + // sample symmetrically with the middle sample falling exactly on 0.0 + F32 x = 0.f; - bindDeferredShader(gDeferredLightProgram); + LLVector3 gauss[32]; // xweight, yweight, offset - std::list<LLVector4> fullscreen_lights; - std::list<LLVector4> light_colors; + for (U32 i = 0; i < kern_length; i++) + { + gauss[i].mV[0] = llgaussian(x, go.mV[0]); + gauss[i].mV[1] = llgaussian(x, go.mV[1]); + gauss[i].mV[2] = x; + x += 1.f; + } - F32 v[24]; - glVertexPointer(3, GL_FLOAT, 0, v); - { - LLGLDepthTest depth(GL_TRUE, GL_FALSE); - for (LLDrawable::drawable_set_t::iterator iter = mLights.begin(); iter != mLights.end(); ++iter) - { - LLDrawable* drawablep = *iter; + gDeferredBlurLightProgram.uniform2f("delta", 1.f, 0.f); + gDeferredBlurLightProgram.uniform1f("dist_factor", dist_factor); + gDeferredBlurLightProgram.uniform3fv("kern[0]", kern_length, gauss[0].mV); + gDeferredBlurLightProgram.uniform3fv("kern", kern_length, gauss[0].mV); + gDeferredBlurLightProgram.uniform1f("kern_scale", blur_size * (kern_length/2.f - 0.5f)); - LLVOVolume* volume = drawablep->getVOVolume(); - if (!volume) - { - continue; + { + LLGLDisable blend(GL_BLEND); + LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS); + stop_glerror(); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + stop_glerror(); + } + + mDeferredLight[1].flush(); + unbindDeferredShader(gDeferredBlurLightProgram); + + bindDeferredShader(gDeferredBlurLightProgram, 1); + mDeferredLight[0].bindTarget(); + + gDeferredBlurLightProgram.uniform2f("delta", 0.f, 1.f); + + { + LLGLDisable blend(GL_BLEND); + LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS); + stop_glerror(); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + stop_glerror(); + } + mDeferredLight[0].flush(); + unbindDeferredShader(gDeferredBlurLightProgram); } - LLVector3 center = drawablep->getPositionAgent(); - F32* c = center.mV; - F32 s = volume->getLightRadius()*1.5f; + stop_glerror(); + glPopMatrix(); + stop_glerror(); + glMatrixMode(GL_MODELVIEW); + stop_glerror(); + glPopMatrix(); + stop_glerror(); + } + + //copy depth and stencil from deferred screen + //mScreen.copyContents(mDeferredScreen, 0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight(), + // 0, 0, mScreen.getWidth(), mScreen.getHeight(), GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST); + + if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) > 2) + { + mDeferredLight[1].bindTarget(); + mDeferredLight[1].clear(GL_COLOR_BUFFER_BIT); + } + else + { + mScreen.bindTarget(); + mScreen.clear(GL_COLOR_BUFFER_BIT); + } - if (LLViewerCamera::getInstance()->AABBInFrustumNoFarClip(center, LLVector3(s,s,s)) == 0) + if (gSavedSettings.getBOOL("RenderDeferredAtmospheric")) + { //apply sunlight contribution + LLFastTimer ftm(FTM_ATMOSPHERICS); + bindDeferredShader(gDeferredSoftenProgram, 0, &mGIMapPost[0]); { - continue; + LLGLDepthTest depth(GL_FALSE); + LLGLDisable blend(GL_BLEND); + LLGLDisable test(GL_ALPHA_TEST); + + //full screen blit + glPushMatrix(); + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + + glVertexPointer(2, GL_FLOAT, 0, vert); + + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); } - sVisibleLightCount++; - glh::vec3f tc(c); - mat.mult_matrix_vec(tc); + unbindDeferredShader(gDeferredSoftenProgram); + } + + { //render sky + LLGLDisable blend(GL_BLEND); + LLGLDisable stencil(GL_STENCIL_TEST); + gGL.setSceneBlendType(LLRender::BT_ALPHA); + + U32 render_mask = mRenderTypeMask; + mRenderTypeMask = mRenderTypeMask & + ((1 << LLPipeline::RENDER_TYPE_SKY) | + (1 << LLPipeline::RENDER_TYPE_CLOUDS) | + (1 << LLPipeline::RENDER_TYPE_WL_SKY)); + - LLColor3 col = volume->getLightColor(); - col *= volume->getLightIntensity(); - - //vertex positions are encoded so the 3 bits of their vertex index - //correspond to their axis facing, with bit position 3,2,1 matching - //axis facing x,y,z, bit set meaning positive facing, bit clear - //meaning negative facing - v[0] = c[0]-s; v[1] = c[1]-s; v[2] = c[2]-s; // 0 - 0000 - v[3] = c[0]-s; v[4] = c[1]-s; v[5] = c[2]+s; // 1 - 0001 - v[6] = c[0]-s; v[7] = c[1]+s; v[8] = c[2]-s; // 2 - 0010 - v[9] = c[0]-s; v[10] = c[1]+s; v[11] = c[2]+s; // 3 - 0011 - - v[12] = c[0]+s; v[13] = c[1]-s; v[14] = c[2]-s; // 4 - 0100 - v[15] = c[0]+s; v[16] = c[1]-s; v[17] = c[2]+s; // 5 - 0101 - v[18] = c[0]+s; v[19] = c[1]+s; v[20] = c[2]-s; // 6 - 0110 - v[21] = c[0]+s; v[22] = c[1]+s; v[23] = c[2]+s; // 7 - 0111 - - if (LLViewerCamera::getInstance()->getOrigin().mV[0] > c[0] + s + 0.2f || - LLViewerCamera::getInstance()->getOrigin().mV[0] < c[0] - s - 0.2f || - LLViewerCamera::getInstance()->getOrigin().mV[1] > c[1] + s + 0.2f || - LLViewerCamera::getInstance()->getOrigin().mV[1] < c[1] - s - 0.2f || - LLViewerCamera::getInstance()->getOrigin().mV[2] > c[2] + s + 0.2f || - LLViewerCamera::getInstance()->getOrigin().mV[2] < c[2] - s - 0.2f) - { //draw box if camera is outside box - glTexCoord4f(tc.v[0], tc.v[1], tc.v[2], s*s); - glColor4f(col.mV[0], col.mV[1], col.mV[2], volume->getLightFalloff()*0.5f); - glDrawRangeElements(GL_TRIANGLE_FAN, 0, 7, 8, - GL_UNSIGNED_BYTE, get_box_fan_indices(LLViewerCamera::getInstance(), center)); + renderGeomPostDeferred(*LLViewerCamera::getInstance()); + mRenderTypeMask = render_mask; + } + + BOOL render_local = gSavedSettings.getBOOL("RenderDeferredLocalLights"); + BOOL render_fullscreen = gSavedSettings.getBOOL("RenderDeferredFullscreenLights"); + + + if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) > 2) + { + mDeferredLight[1].flush(); + mDeferredLight[2].bindTarget(); + mDeferredLight[2].clear(GL_COLOR_BUFFER_BIT); + } + + if (render_local || render_fullscreen) + { + gGL.setSceneBlendType(LLRender::BT_ADD); + std::list<LLVector4> fullscreen_lights; + LLDrawable::drawable_list_t spot_lights; + LLDrawable::drawable_list_t fullscreen_spot_lights; + + for (U32 i = 0; i < 2; i++) + { + mTargetShadowSpotLight[i] = NULL; } - else - { - fullscreen_lights.push_back(LLVector4(tc.v[0], tc.v[1], tc.v[2], s*s)); - light_colors.push_back(LLVector4(col.mV[0], col.mV[1], col.mV[2], volume->getLightFalloff()*0.5f)); + + std::list<LLVector4> light_colors; + + F32 v[24]; + glVertexPointer(3, GL_FLOAT, 0, v); + BOOL render_local = gSavedSettings.getBOOL("RenderDeferredLocalLights"); + + { + bindDeferredShader(gDeferredLightProgram); + LLGLDepthTest depth(GL_TRUE, GL_FALSE); + for (LLDrawable::drawable_set_t::iterator iter = mLights.begin(); iter != mLights.end(); ++iter) + { + LLDrawable* drawablep = *iter; + + LLVOVolume* volume = drawablep->getVOVolume(); + if (!volume) + { + continue; + } + + LLVector3 center = drawablep->getPositionAgent(); + F32* c = center.mV; + F32 s = volume->getLightRadius()*1.5f; + + LLColor3 col = volume->getLightColor(); + col *= volume->getLightIntensity(); + + if (col.magVecSquared() < 0.001f) + { + continue; + } + + if (s <= 0.001f) + { + continue; + } + + if (LLViewerCamera::getInstance()->AABBInFrustumNoFarClip(center, LLVector3(s,s,s)) == 0) + { + continue; + } + + sVisibleLightCount++; + + glh::vec3f tc(c); + mat.mult_matrix_vec(tc); + + //vertex positions are encoded so the 3 bits of their vertex index + //correspond to their axis facing, with bit position 3,2,1 matching + //axis facing x,y,z, bit set meaning positive facing, bit clear + //meaning negative facing + v[0] = c[0]-s; v[1] = c[1]-s; v[2] = c[2]-s; // 0 - 0000 + v[3] = c[0]-s; v[4] = c[1]-s; v[5] = c[2]+s; // 1 - 0001 + v[6] = c[0]-s; v[7] = c[1]+s; v[8] = c[2]-s; // 2 - 0010 + v[9] = c[0]-s; v[10] = c[1]+s; v[11] = c[2]+s; // 3 - 0011 + + v[12] = c[0]+s; v[13] = c[1]-s; v[14] = c[2]-s; // 4 - 0100 + v[15] = c[0]+s; v[16] = c[1]-s; v[17] = c[2]+s; // 5 - 0101 + v[18] = c[0]+s; v[19] = c[1]+s; v[20] = c[2]-s; // 6 - 0110 + v[21] = c[0]+s; v[22] = c[1]+s; v[23] = c[2]+s; // 7 - 0111 + + if (LLViewerCamera::getInstance()->getOrigin().mV[0] > c[0] + s + 0.2f || + LLViewerCamera::getInstance()->getOrigin().mV[0] < c[0] - s - 0.2f || + LLViewerCamera::getInstance()->getOrigin().mV[1] > c[1] + s + 0.2f || + LLViewerCamera::getInstance()->getOrigin().mV[1] < c[1] - s - 0.2f || + LLViewerCamera::getInstance()->getOrigin().mV[2] > c[2] + s + 0.2f || + LLViewerCamera::getInstance()->getOrigin().mV[2] < c[2] - s - 0.2f) + { //draw box if camera is outside box + if (render_local) + { + if (volume->getLightTexture()) + { + drawablep->getVOVolume()->updateSpotLightPriority(); + spot_lights.push_back(drawablep); + continue; + } + + LLFastTimer ftm(FTM_LOCAL_LIGHTS); + glTexCoord4f(tc.v[0], tc.v[1], tc.v[2], s*s); + glColor4f(col.mV[0], col.mV[1], col.mV[2], volume->getLightFalloff()*0.5f); + glDrawRangeElements(GL_TRIANGLE_FAN, 0, 7, 8, + GL_UNSIGNED_BYTE, get_box_fan_indices(LLViewerCamera::getInstance(), center)); + stop_glerror(); + } + } + else if (render_fullscreen) + { + if (volume->getLightTexture()) + { + drawablep->getVOVolume()->updateSpotLightPriority(); + fullscreen_spot_lights.push_back(drawablep); + continue; + } + + fullscreen_lights.push_back(LLVector4(tc.v[0], tc.v[1], tc.v[2], s*s)); + light_colors.push_back(LLVector4(col.mV[0], col.mV[1], col.mV[2], volume->getLightFalloff()*0.5f)); + } + } + unbindDeferredShader(gDeferredLightProgram); } - } - } - unbindDeferredShader(gDeferredLightProgram); + if (!spot_lights.empty()) + { + LLGLDepthTest depth(GL_TRUE, GL_FALSE); + bindDeferredShader(gDeferredSpotLightProgram); - if (!fullscreen_lights.empty()) - { - bindDeferredShader(gDeferredMultiLightProgram); - LLGLDepthTest depth(GL_FALSE); + gDeferredSpotLightProgram.enableTexture(LLViewerShaderMgr::DEFERRED_PROJECTION); - //full screen blit - glPushMatrix(); - glLoadIdentity(); - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); + for (LLDrawable::drawable_list_t::iterator iter = spot_lights.begin(); iter != spot_lights.end(); ++iter) + { + LLFastTimer ftm(FTM_PROJECTORS); + LLDrawable* drawablep = *iter; - U32 count = 0; + LLVOVolume* volume = drawablep->getVOVolume(); - LLVector4 light[16]; - LLVector4 col[16]; + LLVector3 center = drawablep->getPositionAgent(); + F32* c = center.mV; + F32 s = volume->getLightRadius()*1.5f; - glVertexPointer(2, GL_FLOAT, 0, vert); + sVisibleLightCount++; - while (!fullscreen_lights.empty()) - { - light[count] = fullscreen_lights.front(); - fullscreen_lights.pop_front(); - col[count] = light_colors.front(); - light_colors.pop_front(); + glh::vec3f tc(c); + mat.mult_matrix_vec(tc); + + setupSpotLight(gDeferredSpotLightProgram, drawablep); + + LLColor3 col = volume->getLightColor(); + col *= volume->getLightIntensity(); + + //vertex positions are encoded so the 3 bits of their vertex index + //correspond to their axis facing, with bit position 3,2,1 matching + //axis facing x,y,z, bit set meaning positive facing, bit clear + //meaning negative facing + v[0] = c[0]-s; v[1] = c[1]-s; v[2] = c[2]-s; // 0 - 0000 + v[3] = c[0]-s; v[4] = c[1]-s; v[5] = c[2]+s; // 1 - 0001 + v[6] = c[0]-s; v[7] = c[1]+s; v[8] = c[2]-s; // 2 - 0010 + v[9] = c[0]-s; v[10] = c[1]+s; v[11] = c[2]+s; // 3 - 0011 + + v[12] = c[0]+s; v[13] = c[1]-s; v[14] = c[2]-s; // 4 - 0100 + v[15] = c[0]+s; v[16] = c[1]-s; v[17] = c[2]+s; // 5 - 0101 + v[18] = c[0]+s; v[19] = c[1]+s; v[20] = c[2]-s; // 6 - 0110 + v[21] = c[0]+s; v[22] = c[1]+s; v[23] = c[2]+s; // 7 - 0111 + + glTexCoord4f(tc.v[0], tc.v[1], tc.v[2], s*s); + glColor4f(col.mV[0], col.mV[1], col.mV[2], volume->getLightFalloff()*0.5f); + glDrawRangeElements(GL_TRIANGLE_FAN, 0, 7, 8, + GL_UNSIGNED_BYTE, get_box_fan_indices(LLViewerCamera::getInstance(), center)); + } + gDeferredSpotLightProgram.disableTexture(LLViewerShaderMgr::DEFERRED_PROJECTION); + unbindDeferredShader(gDeferredSpotLightProgram); + } - count++; - if (count == 16 || fullscreen_lights.empty()) { - gDeferredMultiLightProgram.uniform1i("light_count", count); - gDeferredMultiLightProgram.uniform4fv("light[0]", count, (GLfloat*) light); - gDeferredMultiLightProgram.uniform4fv("light", count, (GLfloat*) light); - gDeferredMultiLightProgram.uniform4fv("light_col[0]", count, (GLfloat*) col); - gDeferredMultiLightProgram.uniform4fv("light_col", count, (GLfloat*) col); - count = 0; - glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + bindDeferredShader(gDeferredMultiLightProgram); + + LLGLDepthTest depth(GL_FALSE); + + //full screen blit + glPushMatrix(); + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + + U32 count = 0; + + const U32 max_count = 8; + LLVector4 light[max_count]; + LLVector4 col[max_count]; + + glVertexPointer(2, GL_FLOAT, 0, vert); + + F32 far_z = 0.f; + + while (!fullscreen_lights.empty()) + { + LLFastTimer ftm(FTM_FULLSCREEN_LIGHTS); + light[count] = fullscreen_lights.front(); + fullscreen_lights.pop_front(); + col[count] = light_colors.front(); + light_colors.pop_front(); + + far_z = llmin(light[count].mV[2]-sqrtf(light[count].mV[3]), far_z); + + count++; + if (count == max_count || fullscreen_lights.empty()) + { + gDeferredMultiLightProgram.uniform1i("light_count", count); + gDeferredMultiLightProgram.uniform4fv("light[0]", count, (GLfloat*) light); + gDeferredMultiLightProgram.uniform4fv("light", count, (GLfloat*) light); + gDeferredMultiLightProgram.uniform4fv("light_col[0]", count, (GLfloat*) col); + gDeferredMultiLightProgram.uniform4fv("light_col", count, (GLfloat*) col); + gDeferredMultiLightProgram.uniform1f("far_z", far_z); + far_z = 0.f; + count = 0; + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + } + } + + unbindDeferredShader(gDeferredMultiLightProgram); + + bindDeferredShader(gDeferredMultiSpotLightProgram); + + gDeferredMultiSpotLightProgram.enableTexture(LLViewerShaderMgr::DEFERRED_PROJECTION); + + for (LLDrawable::drawable_list_t::iterator iter = fullscreen_spot_lights.begin(); iter != fullscreen_spot_lights.end(); ++iter) + { + LLFastTimer ftm(FTM_PROJECTORS); + LLDrawable* drawablep = *iter; + + LLVOVolume* volume = drawablep->getVOVolume(); + + LLVector3 center = drawablep->getPositionAgent(); + F32* c = center.mV; + F32 s = volume->getLightRadius()*1.5f; + + sVisibleLightCount++; + + glh::vec3f tc(c); + mat.mult_matrix_vec(tc); + + setupSpotLight(gDeferredMultiSpotLightProgram, drawablep); + + LLColor3 col = volume->getLightColor(); + col *= volume->getLightIntensity(); + + glTexCoord4f(tc.v[0], tc.v[1], tc.v[2], s*s); + glColor4f(col.mV[0], col.mV[1], col.mV[2], volume->getLightFalloff()*0.5f); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); + } + + gDeferredMultiSpotLightProgram.disableTexture(LLViewerShaderMgr::DEFERRED_PROJECTION); + unbindDeferredShader(gDeferredMultiSpotLightProgram); + + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); } } + + gGL.setColorMask(true, true); + + if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) > 2) + { + mDeferredLight[2].flush(); + + mScreen.bindTarget(); + mScreen.clear(GL_COLOR_BUFFER_BIT); - - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); + gGL.setSceneBlendType(LLRender::BT_ALPHA); + + { //mix various light maps (local, sun, gi) + LLFastTimer ftm(FTM_POST); + LLGLDisable blend(GL_BLEND); + LLGLDisable test(GL_ALPHA_TEST); + LLGLDepthTest depth(GL_FALSE); + LLGLDisable stencil(GL_STENCIL_TEST); + + bindDeferredShader(gDeferredPostProgram, 0, &mGIMapPost[0]); + + gDeferredPostProgram.bind(); + + LLVertexBuffer::unbind(); + + glVertexPointer(2, GL_FLOAT, 0, vert); + glColor3f(1,1,1); - unbindDeferredShader(gDeferredMultiLightProgram); + glPushMatrix(); + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + + unbindDeferredShader(gDeferredPostProgram); + } + } } - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - { //render non-deferred geometry + { //render non-deferred geometry (alpha, fullbright, glow) LLGLDisable blend(GL_BLEND); LLGLDisable stencil(GL_STENCIL_TEST); U32 render_mask = mRenderTypeMask; mRenderTypeMask = mRenderTypeMask & - ((1 << LLPipeline::RENDER_TYPE_SKY) | - (1 << LLPipeline::RENDER_TYPE_CLOUDS) | - (1 << LLPipeline::RENDER_TYPE_WL_SKY) | - (1 << LLPipeline::RENDER_TYPE_ALPHA) | - (1 << LLPipeline::RENDER_TYPE_AVATAR) | - (1 << LLPipeline::RENDER_TYPE_WATER) | + ((1 << LLPipeline::RENDER_TYPE_ALPHA) | (1 << LLPipeline::RENDER_TYPE_FULLBRIGHT) | (1 << LLPipeline::RENDER_TYPE_VOLUME) | (1 << LLPipeline::RENDER_TYPE_GLOW) | - (1 << LLPipeline::RENDER_TYPE_BUMP)); + (1 << LLPipeline::RENDER_TYPE_BUMP) | + (1 << LLPipeline::RENDER_TYPE_PASS_SIMPLE) | + (1 << LLPipeline::RENDER_TYPE_PASS_ALPHA) | + (1 << LLPipeline::RENDER_TYPE_PASS_ALPHA_MASK) | + (1 << LLPipeline::RENDER_TYPE_PASS_BUMP) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY) | + (1 << LLPipeline::RENDER_TYPE_PASS_GLOW) | + (1 << LLPipeline::RENDER_TYPE_PASS_GRASS) | + (1 << LLPipeline::RENDER_TYPE_PASS_SHINY) | + (1 << LLPipeline::RENDER_TYPE_PASS_INVISIBLE) | + (1 << LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY) | + (1 << LLPipeline::RENDER_TYPE_AVATAR)); renderGeomPostDeferred(*LLViewerCamera::getInstance()); mRenderTypeMask = render_mask; @@ -5803,6 +6909,136 @@ void LLPipeline::renderDeferredLighting() } +void LLPipeline::setupSpotLight(LLGLSLShader& shader, LLDrawable* drawablep) +{ + //construct frustum + LLVOVolume* volume = drawablep->getVOVolume(); + LLVector3 params = volume->getSpotLightParams(); + + F32 fov = params.mV[0]; + F32 focus = params.mV[1]; + + LLVector3 pos = drawablep->getPositionAgent(); + LLQuaternion quat = volume->getRenderRotation(); + LLVector3 scale = volume->getScale(); + + //get near clip plane + LLVector3 at_axis(0,0,-scale.mV[2]*0.5f); + at_axis *= quat; + + LLVector3 np = pos+at_axis; + at_axis.normVec(); + + //get origin that has given fov for plane np, at_axis, and given scale + F32 dist = (scale.mV[1]*0.5f)/tanf(fov*0.5f); + + LLVector3 origin = np - at_axis*dist; + + //matrix from volume space to agent space + LLMatrix4 light_mat(quat, LLVector4(origin,1.f)); + + glh::matrix4f light_to_agent((F32*) light_mat.mMatrix); + glh::matrix4f light_to_screen = glh_get_current_modelview() * light_to_agent; + + glh::matrix4f screen_to_light = light_to_screen.inverse(); + + F32 s = volume->getLightRadius()*1.5f; + F32 near_clip = dist; + F32 width = scale.mV[VX]; + F32 height = scale.mV[VY]; + F32 far_clip = s+dist-scale.mV[VZ]; + + F32 fovy = fov * RAD_TO_DEG; + F32 aspect = width/height; + + glh::matrix4f trans(0.5f, 0.f, 0.f, 0.5f, + 0.f, 0.5f, 0.f, 0.5f, + 0.f, 0.f, 0.5f, 0.5f, + 0.f, 0.f, 0.f, 1.f); + + glh::vec3f p1(0, 0, -(near_clip+0.01f)); + glh::vec3f p2(0, 0, -(near_clip+1.f)); + + glh::vec3f screen_origin(0, 0, 0); + + light_to_screen.mult_matrix_vec(p1); + light_to_screen.mult_matrix_vec(p2); + light_to_screen.mult_matrix_vec(screen_origin); + + glh::vec3f n = p2-p1; + n.normalize(); + + F32 proj_range = far_clip - near_clip; + glh::matrix4f light_proj = gl_perspective(fovy, aspect, near_clip, far_clip); + screen_to_light = trans * light_proj * screen_to_light; + shader.uniformMatrix4fv("proj_mat", 1, FALSE, screen_to_light.m); + shader.uniform1f("proj_near", near_clip); + shader.uniform3fv("proj_p", 1, p1.v); + shader.uniform3fv("proj_n", 1, n.v); + shader.uniform3fv("proj_origin", 1, screen_origin.v); + shader.uniform1f("proj_range", proj_range); + shader.uniform1f("proj_ambiance", params.mV[2]); + S32 s_idx = -1; + + for (U32 i = 0; i < 2; i++) + { + if (mShadowSpotLight[i] == drawablep) + { + s_idx = i; + } + } + + shader.uniform1i("proj_shadow_idx", s_idx); + + if (s_idx >= 0) + { + shader.uniform1f("shadow_fade", 1.f-mSpotLightFade[s_idx]); + } + else + { + shader.uniform1f("shadow_fade", 1.f); + } + + { + LLDrawable* potential = drawablep; + //determine if this is a good light for casting shadows + F32 m_pri = volume->getSpotLightPriority(); + + for (U32 i = 0; i < 2; i++) + { + F32 pri = 0.f; + + if (mTargetShadowSpotLight[i].notNull()) + { + pri = mTargetShadowSpotLight[i]->getVOVolume()->getSpotLightPriority(); + } + + if (m_pri > pri) + { + LLDrawable* temp = mTargetShadowSpotLight[i]; + mTargetShadowSpotLight[i] = potential; + potential = temp; + m_pri = pri; + } + } + } + + LLViewerTexture* img = volume->getLightTexture(); + + S32 channel = shader.enableTexture(LLViewerShaderMgr::DEFERRED_PROJECTION); + + if (channel > -1 && img) + { + gGL.getTexUnit(channel)->bind(img); + + F32 lod_range = logf(img->getWidth())/logf(2.f); + + shader.uniform1f("proj_focus", focus); + shader.uniform1f("proj_lod", lod_range); + shader.uniform1f("proj_ambient_lod", llclamp((proj_range-focus)/proj_range*lod_range, 0.f, 1.f)); + } +} + void LLPipeline::unbindDeferredShader(LLGLSLShader &shader) { stop_glerror(); @@ -5812,14 +7048,43 @@ void LLPipeline::unbindDeferredShader(LLGLSLShader &shader) shader.disableTexture(LLViewerShaderMgr::DEFERRED_SPECULAR, LLTexUnit::TT_RECT_TEXTURE); shader.disableTexture(LLViewerShaderMgr::DEFERRED_DEPTH, LLTexUnit::TT_RECT_TEXTURE); shader.disableTexture(LLViewerShaderMgr::DEFERRED_LIGHT, LLTexUnit::TT_RECT_TEXTURE); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_LIGHT, LLTexUnit::TT_RECT_TEXTURE); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_EDGE, LLTexUnit::TT_RECT_TEXTURE); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_SUN_LIGHT, LLTexUnit::TT_RECT_TEXTURE); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_LOCAL_LIGHT, LLTexUnit::TT_RECT_TEXTURE); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_LUMINANCE); + shader.disableTexture(LLViewerShaderMgr::DIFFUSE_MAP); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_MIP); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_BLOOM); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_NORMAL); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_DIFFUSE); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_SPECULAR); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_DEPTH); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_MIN_POS); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_MAX_POS); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_LAST_NORMAL); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_LAST_DIFFUSE); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_LAST_MIN_POS); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_GI_LAST_MAX_POS); + for (U32 i = 0; i < 4; i++) + { + if (shader.disableTexture(LLViewerShaderMgr::DEFERRED_SHADOW0+i, LLTexUnit::TT_RECT_TEXTURE) > -1) + { + glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_COMPARE_MODE_ARB, GL_NONE); + } + } + + for (U32 i = 4; i < 6; i++) { if (shader.disableTexture(LLViewerShaderMgr::DEFERRED_SHADOW0+i) > -1) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE_ARB, GL_NONE); } } + shader.disableTexture(LLViewerShaderMgr::DEFERRED_NOISE); + shader.disableTexture(LLViewerShaderMgr::DEFERRED_LIGHTFUNC); S32 channel = shader.disableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP); if (channel > -1) @@ -5833,6 +7098,8 @@ void LLPipeline::unbindDeferredShader(LLGLSLShader &shader) gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); gGL.getTexUnit(0)->activate(); shader.unbind(); + + LLGLState::checkTextureChannels(); } inline float sgn(float a) @@ -5866,6 +7133,9 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) camera.setFar(camera.getFar()*0.87654321f); LLPipeline::sReflectionRender = TRUE; S32 occlusion = LLPipeline::sUseOcclusion; + + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; + LLPipeline::sUseOcclusion = llmin(occlusion, 1); U32 type_mask = gPipeline.mRenderTypeMask; @@ -5900,22 +7170,15 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) water_clip = 1; } - - if (!LLViewerCamera::getInstance()->cameraUnderWater()) { //generate planar reflection map gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); glClearColor(0,0,0,0); - gGL.setColorMask(true, true); mWaterRef.bindTarget(); mWaterRef.getViewport(gGLViewport); - mWaterRef.clear(); - gGL.setColorMask(true, false); - + stop_glerror(); - LLVector3 origin = camera.getOrigin(); - glPushMatrix(); mat.set_scale(glh::vec3f(1,1,-1)); @@ -5930,25 +7193,21 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) LLViewerCamera::updateFrustumPlanes(camera, FALSE, TRUE); - glCullFace(GL_FRONT); + glh::matrix4f inv_mat = mat.inverse(); - //initial sky pass (no user clip plane) - { //mask out everything but the sky - U32 tmp = mRenderTypeMask; - mRenderTypeMask = tmp & ((1 << LLPipeline::RENDER_TYPE_SKY) | - (1 << LLPipeline::RENDER_TYPE_WL_SKY)); - static LLCullResult result; - updateCull(camera, result); - stateSort(camera, result); - mRenderTypeMask = tmp & ((1 << LLPipeline::RENDER_TYPE_SKY) | - (1 << LLPipeline::RENDER_TYPE_CLOUDS) | - (1 << LLPipeline::RENDER_TYPE_WL_SKY)); - renderGeom(camera, TRUE); - mRenderTypeMask = tmp; - } + glh::vec3f origin(0,0,0); + inv_mat.mult_matrix_vec(origin); + camera.setOrigin(origin.v); + + glCullFace(GL_FRONT); + + + static LLCullResult ref_result; + U32 ref_mask = 0; if (LLDrawPoolWater::sNeedsDistortionUpdate) { + U32 mask = mRenderTypeMask; mRenderTypeMask &= ~((1<<LLPipeline::RENDER_TYPE_WATER) | (1<<LLPipeline::RENDER_TYPE_GROUND) | (1<<LLPipeline::RENDER_TYPE_SKY) | @@ -5971,24 +7230,60 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) } } - LLSpatialPartition::sFreezeState = TRUE; - LLPipeline::sSkipUpdate = TRUE; LLGLUserClipPlane clip_plane(plane, mat, projection); - static LLCullResult result; - updateCull(camera, result, 1); - stateSort(camera, result); + LLGLDisable cull(GL_CULL_FACE); + updateCull(camera, ref_result, 1); + stateSort(camera, ref_result); + gGL.setColorMask(true, true); + mWaterRef.clear(); + gGL.setColorMask(true, false); + + } + else + { + gGL.setColorMask(true, true); + mWaterRef.clear(); + gGL.setColorMask(true, false); + } + + ref_mask = mRenderTypeMask; + mRenderTypeMask = mask; + } + + //initial sky pass (no user clip plane) + { //mask out everything but the sky + U32 tmp = mRenderTypeMask; + mRenderTypeMask = tmp & ((1 << LLPipeline::RENDER_TYPE_SKY) | + (1 << LLPipeline::RENDER_TYPE_WL_SKY)); + static LLCullResult result; + updateCull(camera, result); + stateSort(camera, result); + mRenderTypeMask = tmp & ((1 << LLPipeline::RENDER_TYPE_SKY) | + (1 << LLPipeline::RENDER_TYPE_CLOUDS) | + (1 << LLPipeline::RENDER_TYPE_WL_SKY)); + renderGeom(camera, TRUE); + mRenderTypeMask = tmp; + } + + + if (LLDrawPoolWater::sNeedsDistortionUpdate) + { + mRenderTypeMask = ref_mask; + if (gSavedSettings.getBOOL("RenderWaterReflections")) + { + gPipeline.grabReferences(ref_result); + LLGLUserClipPlane clip_plane(plane, mat, projection); renderGeom(camera); - LLSpatialPartition::sFreezeState = FALSE; - LLPipeline::sSkipUpdate = FALSE; } } glCullFace(GL_BACK); glPopMatrix(); mWaterRef.flush(); - glh_set_current_modelview(current); } + camera.setOrigin(camera_in.getOrigin()); + //render distortion map static BOOL last_update = TRUE; if (last_update) @@ -6012,12 +7307,9 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); LLColor4& col = LLDrawPoolWater::sWaterFogColor; glClearColor(col.mV[0], col.mV[1], col.mV[2], 0.f); - gGL.setColorMask(true, true); mWaterDis.bindTarget(); mWaterDis.getViewport(gGLViewport); - mWaterDis.clear(); - gGL.setColorMask(true, false); - + if (!LLPipeline::sUnderWaterRender || LLDrawPoolWater::sNeedsReflectionUpdate) { //clip out geometry on the same side of water as the camera @@ -6026,6 +7318,11 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) static LLCullResult result; updateCull(camera, result, water_clip); stateSort(camera, result); + + gGL.setColorMask(true, true); + mWaterDis.clear(); + gGL.setColorMask(true, false); + renderGeom(camera); } @@ -6078,7 +7375,6 @@ glh::matrix4f look(const LLVector3 pos, const LLVector3 dir, const LLVector3 up) dirN = dir; dirN.normVec(); - ret.m[ 0] = lftN[0]; ret.m[ 1] = upN[0]; @@ -6133,10 +7429,484 @@ static LLFastTimer::DeclareTimer FTM_SHADOW_RENDER("Render Shadows"); static LLFastTimer::DeclareTimer FTM_SHADOW_ALPHA("Alpha Shadow"); static LLFastTimer::DeclareTimer FTM_SHADOW_SIMPLE("Simple Shadow"); -void LLPipeline::generateSunShadow(LLCamera& camera) +void LLPipeline::renderShadow(glh::matrix4f& view, glh::matrix4f& proj, LLCamera& shadow_cam, LLCullResult &result, BOOL use_shader, BOOL use_occlusion) +{ + LLFastTimer t(FTM_SHADOW_RENDER); + + //clip out geometry on the same side of water as the camera + S32 occlude = LLPipeline::sUseOcclusion; + if (!use_occlusion) + { + LLPipeline::sUseOcclusion = 0; + } + LLPipeline::sShadowRender = TRUE; + + U32 types[] = { LLRenderPass::PASS_SIMPLE, LLRenderPass::PASS_FULLBRIGHT, LLRenderPass::PASS_SHINY, LLRenderPass::PASS_BUMP, LLRenderPass::PASS_FULLBRIGHT_SHINY }; + LLGLEnable cull(GL_CULL_FACE); + + if (use_shader) + { + gDeferredShadowProgram.bind(); + } + + updateCull(shadow_cam, result); + stateSort(shadow_cam, result); + + //generate shadow map + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadMatrixf(proj.m); + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadMatrixf(view.m); + + stop_glerror(); + gGLLastMatrix = NULL; + + { + LLGLDepthTest depth(GL_TRUE); + glClear(GL_DEPTH_BUFFER_BIT); + } + + gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); + + glColor4f(1,1,1,1); + + stop_glerror(); + + gGL.setColorMask(false, false); + + //glCullFace(GL_FRONT); + + { + LLFastTimer ftm(FTM_SHADOW_SIMPLE); + LLGLDisable test(GL_ALPHA_TEST); + gGL.getTexUnit(0)->disable(); + for (U32 i = 0; i < sizeof(types)/sizeof(U32); ++i) + { + renderObjects(types[i], LLVertexBuffer::MAP_VERTEX, FALSE); + } + gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE); + } + + if (use_shader) + { + gDeferredShadowProgram.unbind(); + renderGeomShadow(shadow_cam); + gDeferredShadowProgram.bind(); + } + else + { + renderGeomShadow(shadow_cam); + } + + { + LLFastTimer ftm(FTM_SHADOW_ALPHA); + LLGLEnable test(GL_ALPHA_TEST); + gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.6f); + renderObjects(LLRenderPass::PASS_ALPHA_SHADOW, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0 | LLVertexBuffer::MAP_COLOR, TRUE); + glColor4f(1,1,1,1); + renderObjects(LLRenderPass::PASS_GRASS, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, TRUE); + gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); + } + + //glCullFace(GL_BACK); + + gGLLastMatrix = NULL; + glLoadMatrixd(gGLModelView); + doOcclusion(shadow_cam); + + if (use_shader) + { + gDeferredShadowProgram.unbind(); + } + + gGL.setColorMask(true, true); + + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + gGLLastMatrix = NULL; + + LLPipeline::sUseOcclusion = occlude; + LLPipeline::sShadowRender = FALSE; +} + + +BOOL LLPipeline::getVisiblePointCloud(LLCamera& camera, LLVector3& min, LLVector3& max, std::vector<LLVector3>& fp, LLVector3 light_dir) { + //get point cloud of intersection of frust and min, max + + //get set of planes + std::vector<LLPlane> ps; + + if (getVisibleExtents(camera, min, max)) + { + return FALSE; + } + + ps.push_back(LLPlane(min, LLVector3(-1,0,0))); + ps.push_back(LLPlane(min, LLVector3(0,-1,0))); + ps.push_back(LLPlane(min, LLVector3(0,0,-1))); + ps.push_back(LLPlane(max, LLVector3(1,0,0))); + ps.push_back(LLPlane(max, LLVector3(0,1,0))); + ps.push_back(LLPlane(max, LLVector3(0,0,1))); - if (!sRenderDeferred) + /*if (!light_dir.isExactlyZero()) + { + LLPlane ucp; + LLPlane mcp; + + F32 maxd = -1.f; + F32 mind = 1.f; + + for (U32 i = 0; i < ps.size(); ++i) + { //pick the plane most aligned to lightDir for user clip plane + LLVector3 n(ps[i].mV); + F32 da = n*light_dir; + if (da > maxd) + { + maxd = da; + ucp = ps[i]; + } + + if (da < mind) + { + mind = da; + mcp = ps[i]; + } + } + + camera.setUserClipPlane(ucp); + + ps.clear(); + ps.push_back(ucp); + ps.push_back(mcp); + }*/ + + for (U32 i = 0; i < 6; i++) + { + ps.push_back(camera.getAgentPlane(i)); + } + + //get set of points where planes intersect and points are not above any plane + fp.clear(); + + for (U32 i = 0; i < ps.size(); ++i) + { + for (U32 j = 0; j < ps.size(); ++j) + { + for (U32 k = 0; k < ps.size(); ++k) + { + if (i == j || + i == k || + k == j) + { + continue; + } + + LLVector3 n1,n2,n3; + F32 d1,d2,d3; + + n1.setVec(ps[i].mV); + n2.setVec(ps[j].mV); + n3.setVec(ps[k].mV); + + d1 = ps[i].mV[3]; + d2 = ps[j].mV[3]; + d3 = ps[k].mV[3]; + + //get point of intersection of 3 planes "p" + LLVector3 p = (-d1*(n2%n3)-d2*(n3%n1)-d3*(n1%n2))/(n1*(n2%n3)); + + if (llround(p*n1+d1, 0.0001f) == 0.f && + llround(p*n2+d2, 0.0001f) == 0.f && + llround(p*n3+d3, 0.0001f) == 0.f) + { //point is on all three planes + BOOL found = TRUE; + for (U32 l = 0; l < ps.size() && found; ++l) + { + if (llround(ps[l].dist(p), 0.0001f) > 0.0f) + { //point is above some plane, not contained + found = FALSE; + } + } + + if (found) + { + fp.push_back(p); + } + } + } + } + } + + if (fp.empty()) + { + return FALSE; + } + + return TRUE; +} + +void LLPipeline::generateGI(LLCamera& camera, LLVector3& lightDir, std::vector<LLVector3>& vpc) +{ + if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) < 3) + { + return; + } + + LLVector3 up; + + //LLGLEnable depth_clamp(GL_DEPTH_CLAMP_NV); + + if (lightDir.mV[2] > 0.5f) + { + up = LLVector3(1,0,0); + } + else + { + up = LLVector3(0, 0, 1); + } + + + F32 gi_range = gSavedSettings.getF32("RenderGIRange"); + + U32 res = mGIMap.getWidth(); + + F32 atten = llmax(gSavedSettings.getF32("RenderGIAttenuation"), 0.001f); + + //set radius to range at which distance attenuation of incoming photons is near 0 + + F32 lrad = sqrtf(1.f/(atten*0.01f)); + + F32 lrange = lrad+gi_range*0.5f; + + LLVector3 pad(lrange,lrange,lrange); + + glh::matrix4f view = look(LLVector3(128.f,128.f,128.f), lightDir, up); + + LLVector3 cp = camera.getOrigin()+camera.getAtAxis()*(gi_range*0.5f); + + glh::vec3f scp(cp.mV); + view.mult_matrix_vec(scp); + cp.setVec(scp.v); + + F32 pix_width = lrange/(res*0.5f); + + //move cp to the nearest pix_width + for (U32 i = 0; i < 3; i++) + { + cp.mV[i] = llround(cp.mV[i], pix_width); + } + + LLVector3 min = cp-pad; + LLVector3 max = cp+pad; + + //set mGIRange to range in tc space[0,1] that covers texture block of intersecting lights around a point + mGIRange.mV[0] = (max.mV[0]-min.mV[0])/res; + mGIRange.mV[1] = (max.mV[1]-min.mV[1])/res; + mGILightRadius = lrad/lrange*0.5f; + + glh::matrix4f proj = gl_ortho(min.mV[0], max.mV[0], + min.mV[1], max.mV[1], + -max.mV[2], -min.mV[2]); + + LLCamera sun_cam = camera; + + glh::matrix4f eye_view = glh_get_current_modelview(); + + //get eye space to camera space matrix + mGIMatrix = view*eye_view.inverse(); + mGINormalMatrix = mGIMatrix.inverse().transpose(); + mGIInvProj = proj.inverse(); + mGIMatrixProj = proj*mGIMatrix; + + //translate and scale to [0,1] + glh::matrix4f trans(.5f, 0.f, 0.f, .5f, + 0.f, 0.5f, 0.f, 0.5f, + 0.f, 0.f, 0.5f, 0.5f, + 0.f, 0.f, 0.f, 1.f); + + mGIMatrixProj = trans*mGIMatrixProj; + + glh_set_current_modelview(view); + glh_set_current_projection(proj); + + LLViewerCamera::updateFrustumPlanes(sun_cam, TRUE, FALSE, TRUE); + + sun_cam.ignoreAgentFrustumPlane(LLCamera::AGENT_PLANE_NEAR); + static LLCullResult result; + + U32 type_mask = mRenderTypeMask; + + mRenderTypeMask = type_mask & ((1<<LLPipeline::RENDER_TYPE_SIMPLE) | + (1<<LLPipeline::RENDER_TYPE_FULLBRIGHT) | + (1<<LLPipeline::RENDER_TYPE_BUMP) | + (1<<LLPipeline::RENDER_TYPE_VOLUME) | + (1<<LLPipeline::RENDER_TYPE_TREE) | + (1<<LLPipeline::RENDER_TYPE_TERRAIN) | + (1<<LLPipeline::RENDER_TYPE_WATER) | + (1<<LLPipeline::RENDER_TYPE_PASS_ALPHA_SHADOW) | + (1<<LLPipeline::RENDER_TYPE_AVATAR) | + (1 << LLPipeline::RENDER_TYPE_PASS_SIMPLE) | + (1 << LLPipeline::RENDER_TYPE_PASS_BUMP) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT) | + (1 << LLPipeline::RENDER_TYPE_PASS_SHINY)); + + + + S32 occlude = LLPipeline::sUseOcclusion; + //LLPipeline::sUseOcclusion = 0; + LLPipeline::sShadowRender = TRUE; + + //only render large objects into GI map + sMinRenderSize = gSavedSettings.getF32("RenderGIMinRenderSize"); + + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_GI_SOURCE; + mGIMap.bindTarget(); + + F64 last_modelview[16]; + F64 last_projection[16]; + for (U32 i = 0; i < 16; i++) + { + last_modelview[i] = gGLLastModelView[i]; + last_projection[i] = gGLLastProjection[i]; + gGLLastModelView[i] = mGIModelview.m[i]; + gGLLastProjection[i] = mGIProjection.m[i]; + } + + sun_cam.setOrigin(0.f, 0.f, 0.f); + updateCull(sun_cam, result); + stateSort(sun_cam, result); + + for (U32 i = 0; i < 16; i++) + { + gGLLastModelView[i] = last_modelview[i]; + gGLLastProjection[i] = last_projection[i]; + } + + mGIProjection = proj; + mGIModelview = view; + + LLGLEnable cull(GL_CULL_FACE); + + //generate GI map + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadMatrixf(proj.m); + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadMatrixf(view.m); + + stop_glerror(); + gGLLastMatrix = NULL; + + mGIMap.clear(); + + { + //LLGLEnable enable(GL_DEPTH_CLAMP_NV); + renderGeomDeferred(camera); + } + + mGIMap.flush(); + + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + gGLLastMatrix = NULL; + + LLPipeline::sUseOcclusion = occlude; + LLPipeline::sShadowRender = FALSE; + sMinRenderSize = 0.f; + + mRenderTypeMask = type_mask; + +} + +void LLPipeline::renderHighlight(const LLViewerObject* obj, F32 fade) +{ + if (obj && obj->getVolume()) + { + for (LLViewerObject::child_list_t::const_iterator iter = obj->getChildren().begin(); iter != obj->getChildren().end(); ++iter) + { + renderHighlight(*iter, fade); + } + + LLDrawable* drawable = obj->mDrawable; + if (drawable) + { + for (S32 i = 0; i < drawable->getNumFaces(); ++i) + { + LLFace* face = drawable->getFace(i); + if (face) + { + face->renderSelected(LLViewerTexture::sNullImagep, LLColor4(1,1,1,fade)); + } + } + } + } +} + +void LLPipeline::generateHighlight(LLCamera& camera) +{ + //render highlighted object as white into offscreen render target + + if (mHighlightObject.notNull()) + { + mHighlightSet.insert(HighlightItem(mHighlightObject)); + } + + if (!mHighlightSet.empty()) + { + F32 transition = gFrameIntervalSeconds/gSavedSettings.getF32("RenderHighlightFadeTime"); + + LLGLDisable test(GL_ALPHA_TEST); + LLGLDepthTest depth(GL_FALSE); + mHighlight.bindTarget(); + disableLights(); + gGL.setColorMask(true, true); + mHighlight.clear(); + + gGL.getTexUnit(0)->bind(LLViewerFetchedTexture::sWhiteImagep); + for (std::set<HighlightItem>::iterator iter = mHighlightSet.begin(); iter != mHighlightSet.end(); ) + { + std::set<HighlightItem>::iterator cur_iter = iter++; + + if (cur_iter->mItem.isNull()) + { + mHighlightSet.erase(cur_iter); + continue; + } + + if (cur_iter->mItem == mHighlightObject) + { + cur_iter->incrFade(transition); + } + else + { + cur_iter->incrFade(-transition); + if (cur_iter->mFade <= 0.f) + { + mHighlightSet.erase(cur_iter); + continue; + } + } + + renderHighlight(cur_iter->mItem->getVObj(), cur_iter->mFade); + } + + mHighlight.flush(); + gGL.setColorMask(true, false); + } +} + + +void LLPipeline::generateSunShadow(LLCamera& camera) +{ + if (!sRenderDeferred || !gSavedSettings.getBOOL("RenderDeferredShadow")) { return; } @@ -6148,99 +7918,174 @@ void LLPipeline::generateSunShadow(LLCamera& camera) { if (clear) { - clear = FALSE; - for (U32 i = 0; i < 4; i++) - { - mSunShadow[i].bindTarget(); - mSunShadow[i].clear(); - mSunShadow[i].flush(); - } + clear = FALSE; + for (U32 i = 0; i < 6; i++) + { + mShadow[i].bindTarget(); + mShadow[i].clear(); + mShadow[i].flush(); + } + } + return; + } + clear = TRUE; + + F64 last_modelview[16]; + F64 last_projection[16]; + for (U32 i = 0; i < 16; i++) + { //store last_modelview of world camera + last_modelview[i] = gGLLastModelView[i]; + last_projection[i] = gGLLastProjection[i]; + } + + U32 type_mask = mRenderTypeMask; + mRenderTypeMask = type_mask & ((1<<LLPipeline::RENDER_TYPE_SIMPLE) | + (1<<LLPipeline::RENDER_TYPE_ALPHA) | + (1<<LLPipeline::RENDER_TYPE_GRASS) | + (1<<LLPipeline::RENDER_TYPE_FULLBRIGHT) | + (1<<LLPipeline::RENDER_TYPE_BUMP) | + (1<<LLPipeline::RENDER_TYPE_VOLUME) | + (1<<LLPipeline::RENDER_TYPE_AVATAR) | + (1<<LLPipeline::RENDER_TYPE_TREE) | + (1<<LLPipeline::RENDER_TYPE_TERRAIN) | + (1<<LLPipeline::RENDER_TYPE_WATER) | + (1<<LLPipeline::RENDER_TYPE_PASS_ALPHA_SHADOW) | + (1 << LLPipeline::RENDER_TYPE_PASS_SIMPLE) | + (1 << LLPipeline::RENDER_TYPE_PASS_BUMP) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT) | + (1 << LLPipeline::RENDER_TYPE_PASS_SHINY) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY)); + + gGL.setColorMask(false, false); + + //get sun view matrix + + //store current projection/modelview matrix + glh::matrix4f saved_proj = glh_get_current_projection(); + glh::matrix4f saved_view = glh_get_current_modelview(); + glh::matrix4f inv_view = saved_view.inverse(); + + glh::matrix4f view[6]; + glh::matrix4f proj[6]; + + //clip contains parallel split distances for 3 splits + LLVector3 clip = gSavedSettings.getVector3("RenderShadowClipPlanes"); + + //F32 slope_threshold = gSavedSettings.getF32("RenderShadowSlopeThreshold"); + + //far clip on last split is minimum of camera view distance and 128 + mSunClipPlanes = LLVector4(clip, clip.mV[2] * clip.mV[2]/clip.mV[1]); + + clip = gSavedSettings.getVector3("RenderShadowOrthoClipPlanes"); + mSunOrthoClipPlanes = LLVector4(clip, clip.mV[2]*clip.mV[2]/clip.mV[1]); + + //currently used for amount to extrude frusta corners for constructing shadow frusta + LLVector3 n = gSavedSettings.getVector3("RenderShadowNearDist"); + //F32 nearDist[] = { n.mV[0], n.mV[1], n.mV[2], n.mV[2] }; + + LLVector3 lightDir = -mSunDir; + lightDir.normVec(); + + glh::vec3f light_dir(lightDir.mV); + + //create light space camera matrix + + LLVector3 at = lightDir; + + LLVector3 up = camera.getAtAxis(); + + if (fabsf(up*lightDir) > 0.75f) + { + up = camera.getUpAxis(); + } + + /*LLVector3 left = up%at; + up = at%left;*/ + + up.normVec(); + at.normVec(); + + + F32 near_clip = 0.f; + { + //get visible point cloud + std::vector<LLVector3> fp; + + LLVector3 min,max; + getVisiblePointCloud(camera,min,max,fp); + + if (fp.empty()) + { + mRenderTypeMask = type_mask; + return; + } + + generateGI(camera, lightDir, fp); + + //get good split distances for frustum + for (U32 i = 0; i < fp.size(); ++i) + { + glh::vec3f v(fp[i].mV); + saved_view.mult_matrix_vec(v); + fp[i].setVec(v.v); + } + + min = fp[0]; + max = fp[0]; + + //get camera space bounding box + for (U32 i = 1; i < fp.size(); ++i) + { + update_min_max(min, max, fp[i]); } - return; - } - clear = TRUE; - gGL.setColorMask(false, false); + near_clip = -max.mV[2]; + F32 far_clip = -min.mV[2]*2.f; - //get sun view matrix - - F32 range = 128.f; + far_clip = llmin(far_clip, 128.f); + far_clip = llmin(far_clip, camera.getFar()); - //store current projection/modelview matrix - glh::matrix4f saved_proj = glh_get_current_projection(); - glh::matrix4f saved_view = glh_get_current_modelview(); - glh::matrix4f inv_view = saved_view.inverse(); + F32 range = far_clip-near_clip; - glh::matrix4f view[4]; - glh::matrix4f proj[4]; - LLVector3 up; + LLVector3 split_exp = gSavedSettings.getVector3("RenderShadowSplitExponent"); - //clip contains parallel split distances for 3 splits - LLVector3 clip = gSavedSettings.getVector3("RenderShadowClipPlanes"); + F32 da = 1.f-llmax( fabsf(lightDir*up), fabsf(lightDir*camera.getLeftAxis()) ); + + da = powf(da, split_exp.mV[2]); - //far clip on last split is minimum of camera view distance and 128 - mSunClipPlanes = LLVector4(clip, clip.mV[2] * clip.mV[2]/clip.mV[1]); - const LLPickInfo& pick_info = gViewerWindow->getLastPick(); + F32 sxp = split_exp.mV[1] + (split_exp.mV[0]-split_exp.mV[1])*da; - if (!pick_info.mPosGlobal.isExactlyZero()) - { //squish nearest frustum based on alt-zoom (tighten up nearest frustum when focusing on tiny object - F32 focus_dist = (F32) (pick_info.mPosGlobal + LLVector3d(pick_info.mObjectOffset) - gAgent.getPosGlobalFromAgent(LLViewerCamera::getInstance()->getOrigin())).magVec(); - mSunClipPlanes.mV[0] = llclamp(focus_dist*focus_dist, 2.f, mSunClipPlanes.mV[0]); - } - - // convenience array of 4 near clip plane distances - F32 dist[] = { 0.1f, mSunClipPlanes.mV[0], mSunClipPlanes.mV[1], mSunClipPlanes.mV[2], mSunClipPlanes.mV[3] }; - //currently used for amount to extrude frusta corners for constructing shadow frusta - LLVector3 n = gSavedSettings.getVector3("RenderShadowNearDist"); - F32 nearDist[] = { n.mV[0], n.mV[1], n.mV[2], n.mV[2] }; + for (U32 i = 0; i < 4; ++i) + { + F32 x = (F32)(i+1)/4.f; + x = powf(x, sxp); + mSunClipPlanes.mV[i] = near_clip+range*x; + } + } + // convenience array of 4 near clip plane distances + F32 dist[] = { near_clip, mSunClipPlanes.mV[0], mSunClipPlanes.mV[1], mSunClipPlanes.mV[2], mSunClipPlanes.mV[3] }; + for (S32 j = 0; j < 4; j++) { + if (!hasRenderDebugMask(RENDER_DEBUG_SHADOW_FRUSTA)) + { + mShadowFrustPoints[j].clear(); + } + + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_SHADOW0+j; + //restore render matrices glh_set_current_modelview(saved_view); glh_set_current_projection(saved_proj); - //get center of far clip plane (for point of interest later) - LLVector3 center = camera.getOrigin() + camera.getAtAxis() * range; - LLVector3 eye = camera.getOrigin(); //camera used for shadow cull/render LLCamera shadow_cam; - // perspective shadow map - glh::vec3f p[16]; //point cloud to be contained by shadow projection (light camera space) - glh::vec3f wp[16]; //point cloud to be contained by shadow projection (world space) - - LLVector3 lightDir = -mSunDir; - glh::vec3f light_dir(lightDir.mV); - - //create light space camera matrix - LLVector3 at; - F32 dl = camera.getLeftAxis() * lightDir; - F32 du = camera.getUpAxis() * lightDir; - - //choose an at axis such that up will be most aligned with lightDir - if (dl*dl < du*du) - { - at = lightDir%camera.getLeftAxis(); - } - else - { - at = lightDir%camera.getUpAxis(); - } - - if (at * camera.getAtAxis() < 0) - { - at = -at; - } - - LLVector3 left = lightDir%at; - up = left%lightDir; - up.normVec(); - //create world space camera frustum for this split shadow_cam = camera; shadow_cam.setFar(16.f); @@ -6251,8 +8096,6 @@ void LLPipeline::generateSunShadow(LLCamera& camera) LLVector3 pn = shadow_cam.getAtAxis(); - LLVector3 frust_center; - LLVector3 min, max; //construct 8 corners of split frustum section @@ -6263,21 +8106,19 @@ void LLPipeline::generateSunShadow(LLCamera& camera) F32 dp = delta*pn; frust[i] = eye + (delta*dist[j])/dp; frust[i+4] = eye + (delta*dist[j+1])/dp; - frust_center += frust[i] + frust[i+4]; } - - //get frustum center - frust_center /= 8.f; shadow_cam.calcAgentFrustumPlanes(frust); - + shadow_cam.mFrustumCornerDist = 0.f; if (!gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA)) { mShadowCamera[j] = shadow_cam; } - if (gPipeline.getVisibleExtents(shadow_cam, min, max)) + std::vector<LLVector3> fp; + + if (!gPipeline.getVisiblePointCloud(shadow_cam, min, max, fp, lightDir)) { //no possible shadow receivers if (!gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA)) @@ -6287,6 +8128,16 @@ void LLPipeline::generateSunShadow(LLCamera& camera) mShadowCamera[j+4] = shadow_cam; } + mShadow[j].bindTarget(); + { + LLGLDepthTest depth(GL_TRUE); + mShadow[j].clear(); + } + mShadow[j].flush(); + + mShadowError.mV[j] = 0.f; + mShadowFOV.mV[j] = 0.f; + continue; } @@ -6294,53 +8145,263 @@ void LLPipeline::generateSunShadow(LLCamera& camera) { mShadowExtents[j][0] = min; mShadowExtents[j][1] = max; + mShadowFrustPoints[j] = fp; } - view[j] = look(frust_center-lightDir*nearDist[j], lightDir, up); - F32 shadow_dist = nearDist[j]; - for (U32 i = 0; i < 8; i++) + //find a good origin for shadow projection + LLVector3 origin; + + //get a temporary view projection + view[j] = look(camera.getOrigin(), lightDir, -up); + + std::vector<LLVector3> wpf; + + for (U32 i = 0; i < fp.size(); i++) { - //points in worldspace (wp) and light camera space (p) - //that must be included in shadow generation - wp[i] = glh::vec3f(frust[i].mV); - wp[i+8] = wp[i] - light_dir*shadow_dist; - view[j].mult_matrix_vec(wp[i], p[i]); - view[j].mult_matrix_vec(wp[i+8], p[i+8]); + glh::vec3f p = glh::vec3f(fp[i].mV); + view[j].mult_matrix_vec(p); + wpf.push_back(LLVector3(p.v)); } - - min = LLVector3(p[0].v); - max = LLVector3(p[0].v); - LLVector3 fmin = min; - LLVector3 fmax = max; + min = wpf[0]; + max = wpf[0]; - for (U32 i = 1; i < 16; i++) - { //find camera space AABB of frustum in light camera space - update_min_max(min, max, LLVector3(p[i].v)); - if (i < 8) - { - update_min_max(fmin, fmax, LLVector3(p[i].v)); + for (U32 i = 0; i < fp.size(); ++i) + { //get AABB in camera space + update_min_max(min, max, wpf[i]); + } + + // Construct a perspective transform with perspective along y-axis that contains + // points in wpf + //Known: + // - far clip plane + // - near clip plane + // - points in frustum + //Find: + // - origin + + //get some "interesting" points of reference + LLVector3 center = (min+max)*0.5f; + LLVector3 size = (max-min)*0.5f; + LLVector3 near_center = center; + near_center.mV[1] += size.mV[1]*2.f; + + + //put all points in wpf in quadrant 0, reletive to center of min/max + //get the best fit line using least squares + F32 bfm = 0.f; + F32 bfb = 0.f; + + for (U32 i = 0; i < wpf.size(); ++i) + { + wpf[i] -= center; + wpf[i].mV[0] = fabsf(wpf[i].mV[0]); + wpf[i].mV[2] = fabsf(wpf[i].mV[2]); + } + + if (!wpf.empty()) + { + F32 sx = 0.f; + F32 sx2 = 0.f; + F32 sy = 0.f; + F32 sxy = 0.f; + + for (U32 i = 0; i < wpf.size(); ++i) + { + sx += wpf[i].mV[0]; + sx2 += wpf[i].mV[0]*wpf[i].mV[0]; + sy += wpf[i].mV[1]; + sxy += wpf[i].mV[0]*wpf[i].mV[1]; } + + bfm = (sy*sx-wpf.size()*sxy)/(sx*sx-wpf.size()*sx2); + bfb = (sx*sxy-sy*sx2)/(sx*sx-bfm*sx2); } + + { + // best fit line is y=bfm*x+bfb + + //find point that is furthest to the right of line + F32 off_x = -1.f; + LLVector3 lp; + + for (U32 i = 0; i < wpf.size(); ++i) + { + //y = bfm*x+bfb + //x = (y-bfb)/bfm + F32 lx = (wpf[i].mV[1]-bfb)/bfm; + + lx = wpf[i].mV[0]-lx; + + if (off_x < lx) + { + off_x = lx; + lp = wpf[i]; + } + } + + //get line with slope bfm through lp + // bfb = y-bfm*x + bfb = lp.mV[1]-bfm*lp.mV[0]; + + //calculate error + mShadowError.mV[j] = 0.f; + + for (U32 i = 0; i < wpf.size(); ++i) + { + F32 lx = (wpf[i].mV[1]-bfb)/bfm; + mShadowError.mV[j] += fabsf(wpf[i].mV[0]-lx); + } + + mShadowError.mV[j] /= wpf.size(); + mShadowError.mV[j] /= size.mV[0]; + + if (mShadowError.mV[j] > gSavedSettings.getF32("RenderShadowErrorCutoff")) + { //just use ortho projection + mShadowFOV.mV[j] = -1.f; + origin.clearVec(); + proj[j] = gl_ortho(min.mV[0], max.mV[0], + min.mV[1], max.mV[1], + -max.mV[2], -min.mV[2]); + } + else + { + //origin is where line x = 0; + origin.setVec(0,bfb,0); + + F32 fovz = 1.f; + F32 fovx = 1.f; + + LLVector3 zp; + LLVector3 xp; - //generate perspective matrix that contains frustum - //proj[j] = matrix_perspective(min, max); - proj[j] = gl_ortho(min.mV[0], max.mV[0], + for (U32 i = 0; i < wpf.size(); ++i) + { + LLVector3 atz = wpf[i]-origin; + atz.mV[0] = 0.f; + atz.normVec(); + if (fovz > -atz.mV[1]) + { + zp = wpf[i]; + fovz = -atz.mV[1]; + } + + LLVector3 atx = wpf[i]-origin; + atx.mV[2] = 0.f; + atx.normVec(); + if (fovx > -atx.mV[1]) + { + fovx = -atx.mV[1]; + xp = wpf[i]; + } + } + + fovx = acos(fovx); + fovz = acos(fovz); + + F32 cutoff = llmin(gSavedSettings.getF32("RenderShadowFOVCutoff"), 1.4f); + + mShadowFOV.mV[j] = fovx; + + if (fovx < cutoff && fovz > cutoff) + { + //x is a good fit, but z is too big, move away from zp enough so that fovz matches cutoff + F32 d = zp.mV[2]/tan(cutoff); + F32 ny = zp.mV[1] + fabsf(d); + + origin.mV[1] = ny; + + fovz = 1.f; + fovx = 1.f; + + for (U32 i = 0; i < wpf.size(); ++i) + { + LLVector3 atz = wpf[i]-origin; + atz.mV[0] = 0.f; + atz.normVec(); + fovz = llmin(fovz, -atz.mV[1]); + + LLVector3 atx = wpf[i]-origin; + atx.mV[2] = 0.f; + atx.normVec(); + fovx = llmin(fovx, -atx.mV[1]); + } + + fovx = acos(fovx); + fovz = acos(fovz); + + if (fovx > cutoff || llround(fovz, 0.01f) > cutoff) + { + // llerrs << "WTF?" << llendl; + } + + mShadowFOV.mV[j] = cutoff; + } + + + origin += center; + + F32 ynear = -(max.mV[1]-origin.mV[1]); + F32 yfar = -(min.mV[1]-origin.mV[1]); + + if (ynear < 0.1f) //keep a sensible near clip plane + { + F32 diff = 0.1f-ynear; + origin.mV[1] += diff; + ynear += diff; + yfar += diff; + } + + if (fovx > cutoff) + { //just use ortho projection + origin.clearVec(); + mShadowError.mV[j] = -1.f; + proj[j] = gl_ortho(min.mV[0], max.mV[0], min.mV[1], max.mV[1], -max.mV[2], -min.mV[2]); - + } + else + { + //get perspective projection + view[j] = view[j].inverse(); + + glh::vec3f origin_agent(origin.mV); + + //translate view to origin + view[j].mult_matrix_vec(origin_agent); + + eye = LLVector3(origin_agent.v); + + if (!hasRenderDebugMask(LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA)) + { + mShadowFrustOrigin[j] = eye; + } + + view[j] = look(LLVector3(origin_agent.v), lightDir, -up); + + F32 fx = 1.f/tanf(fovx); + F32 fz = 1.f/tanf(fovz); + + proj[j] = glh::matrix4f(-fx, 0, 0, 0, + 0, (yfar+ynear)/(ynear-yfar), 0, (2.f*yfar*ynear)/(ynear-yfar), + 0, 0, -fz, 0, + 0, -1.f, 0, 0); + } + } + } + shadow_cam.setFar(128.f); shadow_cam.setOriginAndLookAt(eye, up, center); + shadow_cam.setOrigin(0,0,0); + glh_set_current_modelview(view[j]); glh_set_current_projection(proj[j]); LLViewerCamera::updateFrustumPlanes(shadow_cam, FALSE, FALSE, TRUE); - proj[j] = gl_ortho(fmin.mV[0], fmax.mV[0], - fmin.mV[1], fmax.mV[1], - -fmax.mV[2], -fmin.mV[2]); + shadow_cam.ignoreAgentFrustumPlane(LLCamera::AGENT_PLANE_NEAR); //translate and scale to from [-1, 1] to [0, 1] glh::matrix4f trans(0.5f, 0.f, 0.f, 0.5f, @@ -6351,113 +8412,168 @@ void LLPipeline::generateSunShadow(LLCamera& camera) glh_set_current_modelview(view[j]); glh_set_current_projection(proj[j]); + for (U32 i = 0; i < 16; i++) + { + gGLLastModelView[i] = mShadowModelview[j].m[i]; + gGLLastProjection[i] = mShadowProjection[j].m[i]; + } + + mShadowModelview[j] = view[j]; + mShadowProjection[j] = proj[j]; + + mSunShadowMatrix[j] = trans*proj[j]*view[j]*inv_view; - U32 type_mask = mRenderTypeMask; - mRenderTypeMask = type_mask & ((1<<LLPipeline::RENDER_TYPE_SIMPLE) | - (1<<LLPipeline::RENDER_TYPE_ALPHA) | - (1<<LLPipeline::RENDER_TYPE_GRASS) | - (1<<LLPipeline::RENDER_TYPE_FULLBRIGHT) | - (1<<LLPipeline::RENDER_TYPE_BUMP) | - (1<<LLPipeline::RENDER_TYPE_VOLUME) | - (1<<LLPipeline::RENDER_TYPE_AVATAR) | - (1<<LLPipeline::RENDER_TYPE_TREE) | - (1<<LLPipeline::RENDER_TYPE_TERRAIN) | - 0); - - //clip out geometry on the same side of water as the camera - static LLCullResult result; - S32 occlude = LLPipeline::sUseOcclusion; - LLPipeline::sUseOcclusion = 1; - LLPipeline::sShadowRender = TRUE; - //hack to prevent LOD updates from using sun camera origin - shadow_cam.setOrigin(camera.getOrigin()); - updateCull(shadow_cam, result); - stateSort(shadow_cam, result); - + stop_glerror(); + + mShadow[j].bindTarget(); + mShadow[j].getViewport(gGLViewport); + + { + static LLCullResult result[4]; + + //LLGLEnable enable(GL_DEPTH_CLAMP_NV); + renderShadow(view[j], proj[j], shadow_cam, result[j], TRUE); + } + + mShadow[j].flush(); + if (!gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA)) { LLViewerCamera::updateFrustumPlanes(shadow_cam, FALSE, FALSE, TRUE); mShadowCamera[j+4] = shadow_cam; } + } + + + + F32 fade_amt = gFrameIntervalSeconds * llmax(LLViewerCamera::getInstance()->getVelocityStat()->getCurrentPerSec(), 1.f); + + //update shadow targets + for (U32 i = 0; i < 2; i++) + { //for each current shadow + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_SHADOW4+i; + + if (mShadowSpotLight[i].notNull() && + (mShadowSpotLight[i] == mTargetShadowSpotLight[0] || + mShadowSpotLight[i] == mTargetShadowSpotLight[1])) + { //keep this spotlight + mSpotLightFade[i] = llmin(mSpotLightFade[i]+fade_amt, 1.f); + } + else + { //fade out this light + mSpotLightFade[i] = llmax(mSpotLightFade[i]-fade_amt, 0.f); + + if (mSpotLightFade[i] == 0.f || mShadowSpotLight[i].isNull()) + { //faded out, grab one of the pending spots (whichever one isn't already taken) + if (mTargetShadowSpotLight[0] != mShadowSpotLight[(i+1)%2]) + { + mShadowSpotLight[i] = mTargetShadowSpotLight[0]; + } + else + { + mShadowSpotLight[i] = mTargetShadowSpotLight[1]; + } + } + } + } - LLFastTimer t(FTM_SHADOW_RENDER); + for (S32 i = 0; i < 2; i++) + { + glh_set_current_modelview(saved_view); + glh_set_current_projection(saved_proj); - stop_glerror(); + if (mShadowSpotLight[i].isNull()) + { + continue; + } - mSunShadow[j].bindTarget(); - mSunShadow[j].getViewport(gGLViewport); + LLVOVolume* volume = mShadowSpotLight[i]->getVOVolume(); + if (!volume) { - LLGLDepthTest depth(GL_TRUE); - mSunShadow[j].clear(); + mShadowSpotLight[i] = NULL; + continue; } - U32 types[] = { LLRenderPass::PASS_SIMPLE, LLRenderPass::PASS_FULLBRIGHT, LLRenderPass::PASS_SHINY, LLRenderPass::PASS_BUMP }; - LLGLEnable cull(GL_CULL_FACE); + LLDrawable* drawable = mShadowSpotLight[i]; - //generate sun shadow map - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadMatrixf(proj[j].m); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadMatrixf(view[j].m); + LLVector3 params = volume->getSpotLightParams(); + F32 fov = params.mV[0]; - stop_glerror(); - gGLLastMatrix = NULL; + //get agent->light space matrix (modelview) + LLVector3 center = drawable->getPositionAgent(); + LLQuaternion quat = volume->getRenderRotation(); - gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); - - glColor4f(1,1,1,1); + //get near clip plane + LLVector3 scale = volume->getScale(); + LLVector3 at_axis(0,0,-scale.mV[2]*0.5f); + at_axis *= quat; + + LLVector3 np = center+at_axis; + at_axis.normVec(); + + //get origin that has given fov for plane np, at_axis, and given scale + F32 dist = (scale.mV[1]*0.5f)/tanf(fov*0.5f); + + LLVector3 origin = np - at_axis*dist; + + LLMatrix4 mat(quat, LLVector4(origin, 1.f)); + + view[i+4] = glh::matrix4f((F32*) mat.mMatrix); + + view[i+4] = view[i+4].inverse(); + + //get perspective matrix + F32 near_clip = dist+0.01f; + F32 width = scale.mV[VX]; + F32 height = scale.mV[VY]; + F32 far_clip = dist+volume->getLightRadius()*1.5f; + + F32 fovy = fov * RAD_TO_DEG; + F32 aspect = width/height; - glCullFace(GL_FRONT); + proj[i+4] = gl_perspective(fovy, aspect, near_clip, far_clip); - stop_glerror(); + //translate and scale to from [-1, 1] to [0, 1] + glh::matrix4f trans(0.5f, 0.f, 0.f, 0.5f, + 0.f, 0.5f, 0.f, 0.5f, + 0.f, 0.f, 0.5f, 0.5f, + 0.f, 0.f, 0.f, 1.f); - gGL.setColorMask(false, false); + glh_set_current_modelview(view[i+4]); + glh_set_current_projection(proj[i+4]); - gDeferredShadowProgram.bind(); - { - LLFastTimer ftm(FTM_SHADOW_SIMPLE); - LLGLDisable test(GL_ALPHA_TEST); - gGL.getTexUnit(0)->disable(); - for (U32 i = 0; i < sizeof(types)/sizeof(U32); ++i) - { - renderObjects(types[i], LLVertexBuffer::MAP_VERTEX, FALSE); - } - gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE); - } + mSunShadowMatrix[i+4] = trans*proj[i+4]*view[i+4]*inv_view; + for (U32 j = 0; j < 16; j++) { - LLFastTimer ftm(FTM_SHADOW_ALPHA); - LLGLEnable test(GL_ALPHA_TEST); - gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.6f); - renderObjects(LLRenderPass::PASS_ALPHA_SHADOW, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0 | LLVertexBuffer::MAP_COLOR, TRUE); - glColor4f(1,1,1,1); - renderObjects(LLRenderPass::PASS_GRASS, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, TRUE); - gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); + gGLLastModelView[j] = mShadowModelview[i+4].m[j]; + gGLLastProjection[j] = mShadowProjection[i+4].m[j]; } - - gDeferredShadowProgram.unbind(); - renderGeomShadow(shadow_cam); + mShadowModelview[i+4] = view[i+4]; + mShadowProjection[i+4] = proj[i+4]; - gGL.setColorMask(true, true); + LLCamera shadow_cam = camera; + shadow_cam.setFar(far_clip); + shadow_cam.setOrigin(origin); - glCullFace(GL_BACK); - LLPipeline::sUseOcclusion = occlude; - LLPipeline::sShadowRender = FALSE; - mRenderTypeMask = type_mask; - - glMatrixMode(GL_PROJECTION); - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); - gGLLastMatrix = NULL; + LLViewerCamera::updateFrustumPlanes(shadow_cam, FALSE, FALSE, TRUE); - mSunShadow[j].flush(); - } + stop_glerror(); + + mShadow[i+4].bindTarget(); + mShadow[i+4].getViewport(gGLViewport); + + static LLCullResult result[2]; + + LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_SHADOW0+i+4; + + renderShadow(view[i+4], proj[i+4], shadow_cam, result[i], FALSE, FALSE); + + mShadow[i+4].flush(); + } if (!gSavedSettings.getBOOL("CameraOffset")) { @@ -6474,6 +8590,14 @@ void LLPipeline::generateSunShadow(LLCamera& camera) glMatrixMode(GL_MODELVIEW); } gGL.setColorMask(true, false); + + for (U32 i = 0; i < 16; i++) + { + gGLLastModelView[i] = last_modelview[i]; + gGLLastProjection[i] = last_projection[i]; + } + + mRenderTypeMask = type_mask; } void LLPipeline::renderGroups(LLRenderPass* pass, U32 type, U32 mask, BOOL texture) @@ -6482,7 +8606,7 @@ void LLPipeline::renderGroups(LLRenderPass* pass, U32 type, U32 mask, BOOL textu { LLSpatialGroup* group = *i; if (!group->isDead() && - (!sUseOcclusion || !group->isState(LLSpatialGroup::OCCLUDED)) && + (!sUseOcclusion || !group->isOcclusionState(LLSpatialGroup::OCCLUDED)) && gPipeline.hasRenderType(group->mSpatialPartition->mDrawableType) && group->mDrawMap.find(type) != group->mDrawMap.end()) { @@ -6525,7 +8649,16 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) (1<<LLPipeline::RENDER_TYPE_SIMPLE) | (1<<LLPipeline::RENDER_TYPE_FULLBRIGHT) | (1<<LLPipeline::RENDER_TYPE_ALPHA) | - (1<<LLPipeline::RENDER_TYPE_INVISIBLE); + (1<<LLPipeline::RENDER_TYPE_INVISIBLE) | + (1 << LLPipeline::RENDER_TYPE_PASS_SIMPLE) | + (1 << LLPipeline::RENDER_TYPE_PASS_ALPHA) | + (1 << LLPipeline::RENDER_TYPE_PASS_ALPHA_MASK) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK) | + (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY) | + (1 << LLPipeline::RENDER_TYPE_PASS_SHINY) | + (1 << LLPipeline::RENDER_TYPE_PASS_INVISIBLE) | + (1 << LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY); } mask = mask & gPipeline.getRenderTypeMask(); @@ -6535,6 +8668,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) S32 occlusion = sUseOcclusion; sUseOcclusion = 0; sReflectionRender = sRenderDeferred ? FALSE : TRUE; + sShadowRender = TRUE; sImpostorRender = TRUE; markVisible(avatar->mDrawable, *LLViewerCamera::getInstance()); @@ -6611,20 +8745,23 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) if (!avatar->mImpostor.isComplete() || resX != avatar->mImpostor.getWidth() || resY != avatar->mImpostor.getHeight()) { + avatar->mImpostor.allocate(resX,resY,GL_RGBA,TRUE,TRUE); + if (LLPipeline::sRenderDeferred) { - avatar->mImpostor.allocate(resX,resY,GL_RGBA16F_ARB,TRUE,TRUE); addDeferredAttachments(avatar->mImpostor); } - else - { - avatar->mImpostor.allocate(resX,resY,GL_RGBA,TRUE,TRUE); - } + gGL.getTexUnit(0)->bind(&avatar->mImpostor); gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_POINT); gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); } + LLGLEnable stencil(GL_STENCIL_TEST); + glStencilMask(0xFFFFFFFF); + glStencilFunc(GL_ALWAYS, 1, 0xFFFFFFFF); + glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); + { LLGLEnable scissor(GL_SCISSOR_TEST); glScissor(0, 0, resX, resY); @@ -6632,15 +8769,11 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) avatar->mImpostor.clear(); } - LLGLEnable stencil(GL_STENCIL_TEST); - - glStencilFunc(GL_ALWAYS, 1, 0xFFFFFFFF); - glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); - if (LLPipeline::sRenderDeferred) { stop_glerror(); renderGeomDeferred(camera); + renderGeomPostDeferred(camera); } else { @@ -6650,11 +8783,16 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); glStencilFunc(GL_EQUAL, 1, 0xFFFFFF); - if (!sRenderDeferred || muted) - { + { //create alpha mask based on stencil buffer (grey out if muted) LLVector3 left = camera.getLeftAxis()*tdim.mV[0]*2.f; LLVector3 up = camera.getUpAxis()*tdim.mV[1]*2.f; + if (LLPipeline::sRenderDeferred) + { + GLuint buff = GL_COLOR_ATTACHMENT0_EXT; + glDrawBuffersARB(1, &buff); + } + LLGLEnable blend(muted ? 0 : GL_BLEND); if (muted) @@ -6693,6 +8831,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) sUseOcclusion = occlusion; sReflectionRender = FALSE; sImpostorRender = FALSE; + sShadowRender = FALSE; gPipeline.mRenderTypeMask = saved_mask; glMatrixMode(GL_PROJECTION); diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 8f6867aa01240b950f010bb0ce9849e43ee30e9a..ce50a3740503eb81c6e0eedfabb5741d30738152 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -150,6 +150,8 @@ class LLPipeline void markMoved(LLDrawable *drawablep, BOOL damped_motion = FALSE); void markShift(LLDrawable *drawablep); void markTextured(LLDrawable *drawablep); + void markGLRebuild(LLGLUpdate* glu); + void markRebuild(LLSpatialGroup* group, BOOL priority = FALSE); void markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags flag = LLDrawable::REBUILD_ALL, BOOL priority = FALSE); //get the object between start and end that's closest to start. @@ -200,10 +202,14 @@ class LLPipeline void updateMove(); BOOL visibleObjectsInFrustum(LLCamera& camera); BOOL getVisibleExtents(LLCamera& camera, LLVector3 &min, LLVector3& max); + BOOL getVisiblePointCloud(LLCamera& camera, LLVector3 &min, LLVector3& max, std::vector<LLVector3>& fp, LLVector3 light_dir = LLVector3(0,0,0)); void updateCull(LLCamera& camera, LLCullResult& result, S32 water_clip = 0); //if water_clip is 0, ignore water plane, 1, cull to above plane, -1, cull to below plane void createObjects(F32 max_dtime); void createObject(LLViewerObject* vobj); void updateGeom(F32 max_dtime); + void updateGL(); + void rebuildPriorityGroups(); + void rebuildGroups(); //calculate pixel area of given box from vantage point of given camera static F32 calcPixelArea(LLVector3 center, LLVector3 size, LLCamera& camera); @@ -224,12 +230,21 @@ class LLPipeline void renderGeomDeferred(LLCamera& camera); void renderGeomPostDeferred(LLCamera& camera); void renderGeomShadow(LLCamera& camera); - void bindDeferredShader(LLGLSLShader& shader, U32 light_index = 0); + void bindDeferredShader(LLGLSLShader& shader, U32 light_index = 0, LLRenderTarget* gi_source = NULL, LLRenderTarget* last_gi_post = NULL, U32 noise_map = 0xFFFFFFFF); + void setupSpotLight(LLGLSLShader& shader, LLDrawable* drawablep); + void unbindDeferredShader(LLGLSLShader& shader); void renderDeferredLighting(); void generateWaterReflection(LLCamera& camera); void generateSunShadow(LLCamera& camera); + void generateHighlight(LLCamera& camera); + void renderHighlight(const LLViewerObject* obj, F32 fade); + void setHighlightObject(LLDrawable* obj) { mHighlightObject = obj; } + + + void renderShadow(glh::matrix4f& view, glh::matrix4f& proj, LLCamera& camera, LLCullResult& result, BOOL use_shader = TRUE, BOOL use_occlusion = TRUE); + void generateGI(LLCamera& camera, LLVector3& lightDir, std::vector<LLVector3>& vpc); void renderHighlights(); void renderDebug(); @@ -324,23 +339,35 @@ class LLPipeline enum LLRenderTypeMask { // Following are pool types (some are also object types) - RENDER_TYPE_SKY = LLDrawPool::POOL_SKY, - RENDER_TYPE_WL_SKY = LLDrawPool::POOL_WL_SKY, - RENDER_TYPE_GROUND = LLDrawPool::POOL_GROUND, - RENDER_TYPE_TERRAIN = LLDrawPool::POOL_TERRAIN, - RENDER_TYPE_SIMPLE = LLDrawPool::POOL_SIMPLE, - RENDER_TYPE_GRASS = LLDrawPool::POOL_GRASS, - RENDER_TYPE_FULLBRIGHT = LLDrawPool::POOL_FULLBRIGHT, - RENDER_TYPE_BUMP = LLDrawPool::POOL_BUMP, - RENDER_TYPE_AVATAR = LLDrawPool::POOL_AVATAR, - RENDER_TYPE_TREE = LLDrawPool::POOL_TREE, - RENDER_TYPE_INVISIBLE = LLDrawPool::POOL_INVISIBLE, - RENDER_TYPE_WATER = LLDrawPool::POOL_WATER, - RENDER_TYPE_ALPHA = LLDrawPool::POOL_ALPHA, - RENDER_TYPE_GLOW = LLDrawPool::POOL_GLOW, - + RENDER_TYPE_SKY = LLDrawPool::POOL_SKY, + RENDER_TYPE_WL_SKY = LLDrawPool::POOL_WL_SKY, + RENDER_TYPE_GROUND = LLDrawPool::POOL_GROUND, + RENDER_TYPE_TERRAIN = LLDrawPool::POOL_TERRAIN, + RENDER_TYPE_SIMPLE = LLDrawPool::POOL_SIMPLE, + RENDER_TYPE_GRASS = LLDrawPool::POOL_GRASS, + RENDER_TYPE_FULLBRIGHT = LLDrawPool::POOL_FULLBRIGHT, + RENDER_TYPE_BUMP = LLDrawPool::POOL_BUMP, + RENDER_TYPE_AVATAR = LLDrawPool::POOL_AVATAR, + RENDER_TYPE_TREE = LLDrawPool::POOL_TREE, + RENDER_TYPE_INVISIBLE = LLDrawPool::POOL_INVISIBLE, + RENDER_TYPE_WATER = LLDrawPool::POOL_WATER, + RENDER_TYPE_ALPHA = LLDrawPool::POOL_ALPHA, + RENDER_TYPE_GLOW = LLDrawPool::POOL_GLOW, + RENDER_TYPE_PASS_SIMPLE = LLRenderPass::PASS_SIMPLE, + RENDER_TYPE_PASS_GRASS = LLRenderPass::PASS_GRASS, + RENDER_TYPE_PASS_FULLBRIGHT = LLRenderPass::PASS_FULLBRIGHT, + RENDER_TYPE_PASS_INVISIBLE = LLRenderPass::PASS_INVISIBLE, + RENDER_TYPE_PASS_INVISI_SHINY = LLRenderPass::PASS_INVISI_SHINY, + RENDER_TYPE_PASS_FULLBRIGHT_SHINY = LLRenderPass::PASS_FULLBRIGHT_SHINY, + RENDER_TYPE_PASS_SHINY = LLRenderPass::PASS_SHINY, + RENDER_TYPE_PASS_BUMP = LLRenderPass::PASS_BUMP, + RENDER_TYPE_PASS_GLOW = LLRenderPass::PASS_GLOW, + RENDER_TYPE_PASS_ALPHA = LLRenderPass::PASS_ALPHA, + RENDER_TYPE_PASS_ALPHA_MASK = LLRenderPass::PASS_ALPHA_MASK, + RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK = LLRenderPass::PASS_FULLBRIGHT_ALPHA_MASK, + RENDER_TYPE_PASS_ALPHA_SHADOW = LLRenderPass::PASS_ALPHA_SHADOW, // Following are object types (only used in drawable mRenderType) - RENDER_TYPE_HUD = LLDrawPool::NUM_POOL_TYPES, + RENDER_TYPE_HUD = LLRenderPass::NUM_RENDER_TYPES, RENDER_TYPE_VOLUME, RENDER_TYPE_PARTICLES, RENDER_TYPE_CLOUDS, @@ -383,7 +410,8 @@ class LLPipeline RENDER_DEBUG_SHADOW_FRUSTA = 0x0040000, RENDER_DEBUG_SCULPTED = 0x0080000, RENDER_DEBUG_AVATAR_VOLUME = 0x0100000, - RENDER_DEBUG_AGENT_TARGET = 0x0200000, + RENDER_DEBUG_BUILD_QUEUE = 0x0200000, + RENDER_DEBUG_AGENT_TARGET = 0x0400000, }; public: @@ -423,7 +451,6 @@ class LLPipeline static BOOL sUseFBO; static BOOL sUseFarClip; static BOOL sShadowRender; - static BOOL sSkipUpdate; //skip lod updates static BOOL sWaterReflections; static BOOL sDynamicLOD; static BOOL sPickAvatar; @@ -437,19 +464,47 @@ class LLPipeline static BOOL sRenderAttachedParticles; static BOOL sRenderDeferred; static S32 sVisibleLightCount; + static F32 sMinRenderSize; //screen texture LLRenderTarget mScreen; + LLRenderTarget mUIScreen; LLRenderTarget mDeferredScreen; - LLRenderTarget mDeferredLight[2]; + LLRenderTarget mEdgeMap; + LLRenderTarget mDeferredDepth; + LLRenderTarget mDeferredLight[3]; LLMultisampleBuffer mSampleBuffer; + LLRenderTarget mGIMap; + LLRenderTarget mGIMapPost[2]; + LLRenderTarget mLuminanceMap; + LLRenderTarget mHighlight; //sun shadow map - LLRenderTarget mSunShadow[4]; + LLRenderTarget mShadow[6]; + std::vector<LLVector3> mShadowFrustPoints[4]; + LLVector4 mShadowError; + LLVector4 mShadowFOV; + LLVector3 mShadowFrustOrigin[4]; LLCamera mShadowCamera[8]; LLVector3 mShadowExtents[4][2]; - glh::matrix4f mSunShadowMatrix[4]; + glh::matrix4f mSunShadowMatrix[6]; + glh::matrix4f mShadowModelview[6]; + glh::matrix4f mShadowProjection[6]; + glh::matrix4f mGIMatrix; + glh::matrix4f mGIMatrixProj; + glh::matrix4f mGIModelview; + glh::matrix4f mGIProjection; + glh::matrix4f mGINormalMatrix; + glh::matrix4f mGIInvProj; + LLVector2 mGIRange; + F32 mGILightRadius; + + LLPointer<LLDrawable> mShadowSpotLight[2]; + F32 mSpotLightFade[2]; + LLPointer<LLDrawable> mTargetShadowSpotLight[2]; + LLVector4 mSunClipPlanes; + LLVector4 mSunOrthoClipPlanes; LLVector2 mScreenScale; @@ -464,6 +519,8 @@ class LLPipeline //noise map U32 mNoiseMap; + U32 mTrueNoiseMap; + U32 mLightFunc; LLColor4 mSunDiffuse; LLVector3 mSunDir; @@ -524,12 +581,45 @@ class LLPipeline // LLDrawable::drawable_list_t mBuildQ1; // priority LLDrawable::drawable_list_t mBuildQ2; // non-priority + LLSpatialGroup::sg_list_t mGroupQ1; //priority + LLSpatialGroup::sg_vector_t mGroupQ2; // non-priority + LLViewerObject::vobj_list_t mCreateQ; LLDrawable::drawable_set_t mActiveQ; LLDrawable::drawable_set_t mRetexturedList; + class HighlightItem + { + public: + const LLPointer<LLDrawable> mItem; + mutable F32 mFade; + + HighlightItem(LLDrawable* item) + : mItem(item), mFade(0) + { + } + + bool operator<(const HighlightItem& rhs) const + { + return mItem < rhs.mItem; + } + + bool operator==(const HighlightItem& rhs) const + { + return mItem == rhs.mItem; + } + + void incrFade(F32 val) const + { + mFade = llclamp(mFade+val, 0.f, 1.f); + } + }; + + std::set<HighlightItem> mHighlightSet; + LLPointer<LLDrawable> mHighlightObject; + ////////////////////////////////////////////////// // // Draw pools are responsible for storing all rendered data, diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index c739d4d4554d4808998ca3cb0e7dd6292877fa22..da1cd596192bf181f7be730d18075eb9e98292d4 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <colors> - + <!-- Named Colors --> - + <color name="EmphasisColor" value="0.38 0.694 0.573 1" /> @@ -42,6 +42,9 @@ <color name="DkGray2" value="0.169 0.169 0.169 1" /> + <color + name="MouseGray" + value="0.191 0.191 0.191 1" /> <color name="Black" value="0 0 0 1" /> @@ -69,11 +72,11 @@ <color name="Transparent" value="0 0 0 0" /> - - - + + + <!-- UI Definitions --> - + <color name="AgentChatColor" reference="LtGray" /> @@ -115,13 +118,13 @@ reference="LtGray" /> <color name="ButtonLabelDisabledColor" - reference="LtGray_50" /> + reference="White_25" /> <color name="ButtonLabelSelectedColor" reference="White" /> <color name="ButtonLabelSelectedDisabledColor" - reference="White_50" /> + reference="White_25" /> <color name="ButtonSelectedBgColor" reference="Unused?" /> @@ -307,7 +310,7 @@ reference="White"/> <color name="GroupNotifyDimmedTextColor" - reference="DkGray"/> + reference="DkGray"/> <color name="GroupOverTierColor" value="0.43 0.06 0.06 1" /> @@ -355,7 +358,7 @@ reference="Unused?" /> <color name="IconDisabledColor" - reference="White_50" /> + reference="White_25" /> <color name="IconEnabledColor" reference="White" /> @@ -370,13 +373,13 @@ reference="Black" /> <color name="LabelDisabledColor" - reference="White_50" /> + reference="White_25" /> <color name="LabelSelectedColor" reference="White" /> <color name="LabelSelectedDisabledColor" - reference="White_50" /> + reference="White_25" /> <color name="LabelTextColor" reference="LtGray" /> @@ -558,7 +561,7 @@ name="ScrollBgReadOnlyColor" reference="Transparent" /> <color - name="ScrollBgWriteableColor" + name="ScrollBgWriteableColor" reference="White_05" /> <color name="ScrollDisabledColor" @@ -592,7 +595,7 @@ reference="Unused?" /> <color name="SliderDisabledThumbColor" - reference="White_50" /> + reference="White_25" /> <color name="SliderThumbCenterColor" reference="White" /> @@ -670,5 +673,5 @@ <color name="SysWellItemSelected" value="0.3 0.3 0.3 1.0" /> - + </colors> diff --git a/indra/newview/skins/default/textures/build/Object_Cone.png b/indra/newview/skins/default/textures/build/Object_Cone.png new file mode 100644 index 0000000000000000000000000000000000000000..5167f1a8201165909a9916b8383d32ecd822623e Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Cone.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Cube.png b/indra/newview/skins/default/textures/build/Object_Cube.png new file mode 100644 index 0000000000000000000000000000000000000000..e82af1ca8286acad464b0748c33a0682347c7708 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Cube.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Cylinder.png b/indra/newview/skins/default/textures/build/Object_Cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1041d4c7efc236de1cdf804f82b4f3f58ebea2 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Cylinder.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Grass.png b/indra/newview/skins/default/textures/build/Object_Grass.png new file mode 100644 index 0000000000000000000000000000000000000000..a88efd5f3eb5d2381760b6f9dc7f10cbc7d741bb Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Grass.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Cone.png b/indra/newview/skins/default/textures/build/Object_Hemi_Cone.png new file mode 100644 index 0000000000000000000000000000000000000000..595f64d4806553aa19250f5aa7427c14abc96deb Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Hemi_Cone.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder.png b/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..dd41d56fb3df981fc5333c80d4ca6fe7fc63bce9 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Hemi_Cylinder.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Hemi_Sphere.png b/indra/newview/skins/default/textures/build/Object_Hemi_Sphere.png new file mode 100644 index 0000000000000000000000000000000000000000..148963062425c525136fa2d3309fbe9026c83997 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Hemi_Sphere.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Prism.png b/indra/newview/skins/default/textures/build/Object_Prism.png new file mode 100644 index 0000000000000000000000000000000000000000..51c6c161a0e4dafb1cbd5f4c04dadc61f1caf3d6 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Prism.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Pyramid.png b/indra/newview/skins/default/textures/build/Object_Pyramid.png new file mode 100644 index 0000000000000000000000000000000000000000..a147b59553948aceca8b87e183b88ed8f7dd5f38 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Pyramid.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Ring.png b/indra/newview/skins/default/textures/build/Object_Ring.png new file mode 100644 index 0000000000000000000000000000000000000000..a9790fd60c8037854a5bcf8e6129a8d1533da1b0 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Ring.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Sphere.png b/indra/newview/skins/default/textures/build/Object_Sphere.png new file mode 100644 index 0000000000000000000000000000000000000000..8e2dd92a8254dfca37bcfa0c32f54dc18be58d64 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Sphere.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Tetrahedron.png b/indra/newview/skins/default/textures/build/Object_Tetrahedron.png new file mode 100644 index 0000000000000000000000000000000000000000..23e22b1796705cc1752179ba88a684cc95f1de92 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Tetrahedron.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Torus.png b/indra/newview/skins/default/textures/build/Object_Torus.png new file mode 100644 index 0000000000000000000000000000000000000000..15c62423a9d81258deeff3e771dac5f44c050fb8 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Torus.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Tree.png b/indra/newview/skins/default/textures/build/Object_Tree.png new file mode 100644 index 0000000000000000000000000000000000000000..82c422419bf6813d677fd814584776f8a85769fc Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Tree.png differ diff --git a/indra/newview/skins/default/textures/build/Object_Tube.png b/indra/newview/skins/default/textures/build/Object_Tube.png new file mode 100644 index 0000000000000000000000000000000000000000..e47fce75119fe5ceeb1dcc1fad5a2bc6c905b924 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Object_Tube.png differ diff --git a/indra/newview/skins/default/textures/build/Tool_Create.png b/indra/newview/skins/default/textures/build/Tool_Create.png new file mode 100644 index 0000000000000000000000000000000000000000..1f1097def5853e81b938633fc95b087af9824476 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Tool_Create.png differ diff --git a/indra/newview/skins/default/textures/build/Tool_Dozer.png b/indra/newview/skins/default/textures/build/Tool_Dozer.png new file mode 100644 index 0000000000000000000000000000000000000000..61744666f4b32163b385e81e6c7dd374db92c52b Binary files /dev/null and b/indra/newview/skins/default/textures/build/Tool_Dozer.png differ diff --git a/indra/newview/skins/default/textures/build/Tool_Face.png b/indra/newview/skins/default/textures/build/Tool_Face.png new file mode 100644 index 0000000000000000000000000000000000000000..5ab42a4ad69568496d7be585d36d6b0122a11b5c Binary files /dev/null and b/indra/newview/skins/default/textures/build/Tool_Face.png differ diff --git a/indra/newview/skins/default/textures/build/Tool_Grab.png b/indra/newview/skins/default/textures/build/Tool_Grab.png new file mode 100644 index 0000000000000000000000000000000000000000..5c58288d5ede9bf2dcc3457827dc93ac05d81446 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Tool_Grab.png differ diff --git a/indra/newview/skins/default/textures/build/Tool_Zoom.png b/indra/newview/skins/default/textures/build/Tool_Zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..ad493b0d66359135546f2c3b79742efdab86e357 Binary files /dev/null and b/indra/newview/skins/default/textures/build/Tool_Zoom.png differ diff --git a/indra/newview/skins/default/textures/icons/Icon_For_Sale.png b/indra/newview/skins/default/textures/icons/Icon_For_Sale.png new file mode 100644 index 0000000000000000000000000000000000000000..3dec6b989c64cddc4c5076a29c74017697b73d9b Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Icon_For_Sale.png differ diff --git a/indra/newview/skins/default/textures/icons/Microphone_On.png b/indra/newview/skins/default/textures/icons/Microphone_On.png new file mode 100644 index 0000000000000000000000000000000000000000..c96b500fa1c5523f27b59077d272209fcb5eb7fb Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Microphone_On.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_1.png b/indra/newview/skins/default/textures/icons/Progress_1.png new file mode 100644 index 0000000000000000000000000000000000000000..58b56003c40a1c50fb38a02ad749862278fee619 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_1.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_10.png b/indra/newview/skins/default/textures/icons/Progress_10.png new file mode 100644 index 0000000000000000000000000000000000000000..07fe0be8a3999b4713a0fa26ffaf9263a831b15e Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_10.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_11.png b/indra/newview/skins/default/textures/icons/Progress_11.png new file mode 100644 index 0000000000000000000000000000000000000000..215d68cc465fa2c7597c650b0bb5251b08f46f83 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_11.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_12.png b/indra/newview/skins/default/textures/icons/Progress_12.png new file mode 100644 index 0000000000000000000000000000000000000000..d75558862140ee581dcf463bd903829c987155b1 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_12.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_2.png b/indra/newview/skins/default/textures/icons/Progress_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6640ee227ba754700c2d29014eb47dc06f765d84 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_2.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_3.png b/indra/newview/skins/default/textures/icons/Progress_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5decbe977e25de8cd5ed19dd1cc844df0a04e715 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_3.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_4.png b/indra/newview/skins/default/textures/icons/Progress_4.png new file mode 100644 index 0000000000000000000000000000000000000000..56e81c17aa0258e691da8cd3db02a377b4f044d4 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_4.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_5.png b/indra/newview/skins/default/textures/icons/Progress_5.png new file mode 100644 index 0000000000000000000000000000000000000000..a89bf2ac62d0c3175ccb5cbcd2fbbed8a28e9047 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_5.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_6.png b/indra/newview/skins/default/textures/icons/Progress_6.png new file mode 100644 index 0000000000000000000000000000000000000000..233c4795407ddf79ca93d1895da1baa4ad011f82 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_6.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_7.png b/indra/newview/skins/default/textures/icons/Progress_7.png new file mode 100644 index 0000000000000000000000000000000000000000..631d7a6819ddd0763c90fc1834ce4eb9c51292a5 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_7.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_8.png b/indra/newview/skins/default/textures/icons/Progress_8.png new file mode 100644 index 0000000000000000000000000000000000000000..ac0e3f13f7b214eeb491a33fd3a057cc2f81e368 Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_8.png differ diff --git a/indra/newview/skins/default/textures/icons/Progress_9.png b/indra/newview/skins/default/textures/icons/Progress_9.png new file mode 100644 index 0000000000000000000000000000000000000000..17fb4a0335da68fb3f50fdc50cbe1cec529cf75e Binary files /dev/null and b/indra/newview/skins/default/textures/icons/Progress_9.png differ diff --git a/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png b/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png index 428da506f3867333efa283eef1d330af92ccde3e..7c10aaaead1808fd51ef64406ce9dcc366e874d9 100644 Binary files a/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png and b/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/Activate_Checkmark.png b/indra/newview/skins/default/textures/taskpanel/Activate_Checkmark.png new file mode 100644 index 0000000000000000000000000000000000000000..213acbe87b690ad0fb8a7c552c75255d94e0cfe7 Binary files /dev/null and b/indra/newview/skins/default/textures/taskpanel/Activate_Checkmark.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Off.png index 2dc32a576b419ae5c20f0e2475c6f3f0d01db219..0b91abfb0d898e61e4641246c2173c560300657b 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Off.png and b/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Off.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Selected.png index bea218a2fb588a4cbf1e41a3560206d207dfaa75..33a47236a555eb042b524935bf7a9b97646f4682 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Selected.png and b/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Selected.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.png index 2d36f703613969c829af4a9cae0641e373ce917c..760db9360df97134123b8e507dd202b9f1a47fd5 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.png and b/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Off.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Selected.png index 3c204591262f798f952288b415b05e361822925e..905d4c973e5163a69487d7e9485e963fc8484f79 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Selected.png and b/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Selected.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.png index c272372a39d1d4e0aa0ff89f8abbfd4d7f88cbc5..691b600510c58bb566a5fe49734cd51f3ec81521 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.png and b/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Off.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Selected.png index 3828752606ce0e9854dc8604fe6fe30abffd06bf..909f0d0a47ecf165b900217f12bdad1566dce5c1 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Selected.png and b/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Selected.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Large.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Large.png new file mode 100644 index 0000000000000000000000000000000000000000..cc505c4a30b6eb2981b7ff99bde58978b389dd03 Binary files /dev/null and b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Large.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.png index d7ec33af553650377afef5e6b34332a32f6749c8..ada28e01da57f4a4958421ee288f4fdee2c23b47 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.png and b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Off.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Selected.png index dd7e361ea970752fda26c1c29e80d966dff628dd..0f8d5619ec84a79b790bd502b3dde554e5cfd702 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Selected.png and b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Selected.png differ diff --git a/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png b/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png index 918be7555f22fcdf2d3fe5d270ad71f9256703b5..4ed7a2b18310dec931f975148f31292aecce744c 100644 Binary files a/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png and b/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png differ diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 136c092afc517ea0b70406f1eb6d1a393da201a0..8440022844f03350a12bc9332b1d00caa50c8fda 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -7,6 +7,8 @@ <texture name="Accordion_Off" file_name="containers/Accordion_Off.png" preload="false" /> <texture name="Accordion_Press" file_name="containers/Accordion_Press.png" preload="false" /> +<texture name="Activate_Checkmark" file_name="taskpanel/Activate_Checkmark.png" preload="false" /> + <texture name="AddItem_Disabled" file_name="icons/AddItem_Disabled.png" preload="false" /> <texture name="AddItem_Off" file_name="icons/AddItem_Off.png" preload="false" /> <texture name="AddItem_Press" file_name="icons/AddItem_Press.png" preload="false" /> @@ -25,6 +27,33 @@ <texture name="BottomTray_BG" file_name="bottomtray/BottomTray_BG.png" preload="false" /> + <texture name="BuyArrow_Off" file_name="navbar/BuyArrow_Off.png" preload="false" /> + <texture name="BuyArrow_Over" file_name="navbar/BuyArrow_Over.png" preload="false" /> + <texture name="BuyArrow_Press" file_name="navbar/BuyArrow_Press.png" preload="false" /> + + <texture name="Cam_Avatar_Disabled" file_name="bottomtray/Cam_Avatar_Disabled.png" preload="false" /> + <texture name="Cam_Avatar_Over" file_name="bottomtray/Cam_Avatar_Over.png" preload="false" /> + <texture name="Cam_Avatar_Off" file_name="bottomtray/Cam_Avatar_Off.png" preload="false" /> + <texture name="Cam_Avatar_Press" file_name="bottomtray/Cam_Avatar_Press.png" preload="false" /> + <texture name="Cam_FreeCam_Disabled" file_name="bottomtray/Cam_FreeCam_Disabled.png" preload="false" /> + <texture name="Cam_FreeCam_Off" file_name="bottomtray/Cam_FreeCam_Off.png" preload="false" /> + <texture name="Cam_FreeCam_Over" file_name="bottomtray/Cam_FreeCam_Over.png" preload="false" /> + <texture name="Cam_FreeCam_Press" file_name="bottomtray/Cam_FreeCam_Press.png" preload="false" /> + <texture name="Cam_Orbit_Disabled" file_name="bottomtray/Cam_Orbit_Disabled.png" preload="false" /> + <texture name="Cam_Orbit_Off" file_name="bottomtray/Cam_Orbit_Off.png" preload="false" /> + <texture name="Cam_Orbit_Over" file_name="bottomtray/Cam_Orbit_Over.png" preload="false" /> + <texture name="Cam_Orbit_Press" file_name="bottomtray/Cam_Orbit_Press.png" preload="false" /> + <texture name="Cam_Pan_Disabled" file_name="bottomtray/Cam_Pan_Disabled.png" preload="false" /> + <texture name="Cam_Pan_Off" file_name="bottomtray/Cam_Pan_Off.png" preload="false" /> + <texture name="Cam_Pan_Over" file_name="bottomtray/CCam_Pan_Over.png" preload="false" /> + <texture name="Cam_Pan_Press" file_name="bottomtray/Cam_Pan_Press.png" preload="false" /> + <texture name="Cam_Rotate_In" file_name="bottomtray/Cam_Rotate_In.png" preload="false" /> + <texture name="Cam_Rotate_Out" file_name="bottomtray/Cam_Rotate_Out.png" preload="false" /> + <texture name="Cam_Tracking_In" file_name="bottomtray/Cam_Tracking_In.png" preload="false" /> + <texture name="Cam_Tracking_Out" file_name="bottomtray/Cam_Tracking_Out.png" preload="false" /> + <texture name="CameraView_Off" file_name="bottomtray/CameraView_Off.png" preload="false" /> + <texture name="CameraView_Over" file_name="bottomtray/CameraView_Over.png" preload="false" /> + <texture name="Checkbox_Off_Disabled" file_name="widgets/Checkbox_Disabled.png" preload="true" /> <texture name="Checkbox_On_Disabled" file_name="widgets/Checkbox_On_Disabled.png" preload="true" /> <texture name="Checkbox_Off" file_name="widgets/Checkbox_Off.png" preload="true" /> @@ -53,6 +82,8 @@ <texture name="DropDown_Selected" file_name="widgets/DropDown_Selected.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> <texture name="DropDown_Off" file_name="widgets/DropDown_Off.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> + <texture name="DropTarget" file_name="widgets/DropTarget.png" preload="false" /> + <texture name="Favorite_Star_Active" file_name="navbar/Favorite_Star_Active.png" preload="false" /> <texture name="Favorite_Star_Off" file_name="navbar/Favorite_Star_Off.png" preload="false" /> <texture name="Favorite_Star_Press" file_name="navbar/Favorite_Star_Press.png" preload="false" /> @@ -64,6 +95,13 @@ <texture name="ForwardArrow_Off" file_name="icons/ForwardArrow_Off.png" preload="false" /> <texture name="ForwardArrow_Press" file_name="icons/ForwardArrow_Press.png" preload="false" /> + <texture name="Generic_Group" file_name="icons/Generic_Group.png" preload="false" /> + <texture name="Generic_Group_Large" file_name="icons/Generic_Group_Large.png" preload="false" /> + <texture name="Generic_Person" file_name="icons/Generic_Person.png" preload="false" /> + <texture name="Generic_Person_Large" file_name="icons/Generic_Person_Large.png" preload="false" /> + + <texture name="Health" file_name="icons/Health.png" preload="false" /> + <texture name="Help_Off" file_name="navbar/Help_Off.png" preload="false" /> <texture name="Help_Press" file_name="navbar/Help_Press.png" preload="false" /> @@ -81,6 +119,8 @@ <texture name="Icon_Dock_Foreground" file_name="windows/Icon_Dock_Foreground.png" preload="true" /> <texture name="Icon_Dock_Press" file_name="windows/Icon_Dock_Press.png" preload="true" /> + <texture name="Icon_For_Sale" file_name="icons/Icon_For_sale.png" preload="false" /> + <texture name="Icon_Gear_Background" file_name="windows/Icon_Gear_Background.png" preload="false" /> <texture name="Icon_Gear_Foreground" file_name="windows/Icon_Gear_Foreground.png" preload="false" /> <texture name="Icon_Gear_Press" file_name="windows/Icon_Gear_Press.png" preload="false" /> @@ -103,15 +143,75 @@ <texture name="Info_Press" file_name="navbar/Info_Press.png" preload="false" /> <texture name="Inspector_Background" file_name="windows/Inspector_Background.png" preload="false" /> - <texture name="Inspector_Hover" file_name="windows/Inspector_Hover.png" preload="false" /> + <texture name="Inspector_Hover" file_name="windows/Inspector_Hover.png" preload="false" /> + + <texture name="Inv_Acessories" file_name="icons/Inv_Acessories.png" preload="false" /> + <texture name="Inv_Animation" file_name="icons/Inv_Animation.png" preload="false" /> + <texture name="Inv_BodyShape" file_name="icons/Inv_BodyShape.png" preload="false" /> + <texture name="Inv_CallingCard" file_name="icons/Inv_CallingCard.png" preload="false" /> + <texture name="Inv_Clothing" file_name="icons/Inv_Clothing.png" preload="false" /> + <texture name="Inv_DangerousScript" file_name="icons/Inv_DangerousScript.png" preload="false" /> + <texture name="Inv_Eye" file_name="icons/Inv_Eye.png" preload="false" /> + <texture name="Inv_FolderClosed" file_name="icons/Inv_FolderClosed.png" preload="false" /> + <texture name="Inv_FolderOpen" file_name="icons/Inv_FolderOpen.png" preload="false" /> + <texture name="Inv_Gesture" file_name="icons/Inv_Gesture.png" preload="false" /> + <texture name="Inv_Gloves" file_name="icons/Inv_Gloves.png" preload="false" /> + <texture name="Inv_Hair" file_name="icons/Inv_Hair.png" preload="false" /> + <texture name="Inv_Jacket" file_name="icons/Inv_Jacket.png" preload="false" /> + <texture name="Inv_Landmark" file_name="icons/Inv_Landmark.png" preload="false" /> + <texture name="Inv_Notecard" file_name="icons/Inv_Notecard.png" preload="false" /> + <texture name="Inv_Object" file_name="icons/Inv_Object.png" preload="false" /> + <texture name="Inv_Pants" file_name="icons/Inv_Pants.png" preload="false" /> + <texture name="Inv_Script" file_name="icons/Inv_Script.png" preload="false" /> + <texture name="Inv_Shirt" file_name="icons/Inv_Shirt.png" preload="false" /> + <texture name="Inv_Shoe" file_name="icons/Inv_Shoe.png" preload="false" /> + <texture name="Inv_Skin" file_name="icons/Inv_Skin.png" preload="false" /> + <texture name="Inv_Skirt" file_name="icons/Inv_Skirt.png" preload="false" /> + <texture name="Inv_Snapshot" file_name="icons/Inv_Snapshot.png" preload="false" /> + <texture name="Inv_Socks" file_name="icons/Inv_Socks.png" preload="false" /> + <texture name="Inv_Sound" file_name="icons/Inv_Sound.png" preload="false" /> + <texture name="Inv_Texture" file_name="icons/Inv_Texture.png" preload="false" /> + <texture name="Inv_Trash" file_name="icons/Inv_Trash.png" preload="false" /> + <texture name="Inv_Underpants" file_name="icons/Inv_Underpants.png" preload="false" /> + <texture name="Inv_Undershirt" file_name="icons/Inv_Undershirt.png" preload="false" /> <texture name="ListItem_Select" file_name="widgets/ListItem_Select.png" preload="true" /> <texture name="ListItem_Over" file_name="widgets/ListItem_Over.png" preload="true" /> <texture name="Lock" file_name="icons/Lock.png" preload="false" /> + <texture name="Login_Pod" file_name="windows/Login_Pod.png" preload="true" /> + + <texture name="Microphone_Mute" file_name="icons/Microphone_Mute.png" preload="false" /> + <texture name="Microphone_On" file_name="icons/Microphone_On.png" preload="false" /> + <texture name="menu_separator" file_name="navbar/FileMenu_Divider.png" scale.left="4" scale.top="166" scale.right="0" scale.bottom="0" /> + <texture name="Move_Fly_Disabled" file_name="bottomtray/Move_Fly_Disabled.png" preload="false" /> + <texture name="Move_Fly_Off" file_name="bottomtray/Move_Fly_Off.png" preload="false" /> + <texture name="Move_Fly_Over" file_name="bottomtray/Move_Fly_Over.png" preload="false" /> + <texture name="Move_Fly_Press" file_name="bottomtray/Move_Fly_Press.png" preload="false" /> + <texture name="Move_Run_Disabled" file_name="bottomtray/Move_Run_Disabled.png" preload="false" /> + <texture name="Move_Run_Off" file_name="bottomtray/Move_Run_Off.png" preload="false" /> + <texture name="Move_Run_Over" file_name="bottomtray/Move_Run_Over.png" preload="false" /> + <texture name="Move_Run_Press" file_name="bottomtray/Move_Run_Press.png" preload="false" /> + <texture name="Move_Walk_Disabled" file_name="bottomtray/Move_Walk_Disabled.png" preload="false" /> + <texture name="Move_Walk_Off" file_name="bottomtray/Move_Walk_Off.png" preload="false" /> + <texture name="Move_Walk_Over" file_name="bottomtray/Move_Walk_Over.png" preload="false" /> + <texture name="Move_Walk_Press" file_name="bottomtray/Move_Walk_Press.png" preload="false" /> + <texture name="Movement_Backward_Off" file_name="bottomtray/Movement_Backward_Off.png" preload="false" /> + <texture name="Movement_Backward_On" file_name="bottomtray/Movement_Backward_On.png" preload="false" /> + <texture name="Movement_Down_Off" file_name="bottomtray/Movement_Down_Off.png" preload="false" /> + <texture name="Movement_Down_On" file_name="bottomtray/Movement_Down_On.png" preload="false" /> + <texture name="Movement_Forward_Off" file_name="bottomtray/Movement_Forward_Off.png" preload="false" /> + <texture name="Movement_Forward_On" file_name="bottomtray/Movement_Forward_On.png" preload="false" /> + <texture name="Movement_TurnLeft_Off" file_name="bottomtray/Movement_TurnLeft_Off.png" preload="false" /> + <texture name="Movement_TurnLeft_On" file_name="bottomtray/Movement_TurnLeft_On.png" preload="false" /> + <texture name="Movement_TurnRight_Off" file_name="bottomtray/Movement_TurnRight_Off.png" preload="false" /> + <texture name="Movement_TurnRight_On" file_name="bottomtray/Movement_TurnRight_On.png" preload="false" /> + <texture name="Movement_Up_Off" file_name="bottomtray/Movement_Up_Off.png" preload="false" /> + <texture name="Movement_Up_On" file_name="bottomtray/Movement_Up_On.png" preload="false" /> + <texture name="NavBar_BG_NoFav" file_name="navbar/NavBar_BG_NoFav.png" preload="false" /> <texture name="NavBar_BG" file_name="navbar/NavBar_BG.png" preload="false" /> @@ -120,10 +220,46 @@ <texture name="NearbyVoice_Lvl3" file_name="bottomtray/NearbyVoice_Lvl3.png" preload="false" /> <texture name="NearbyVoice_On" file_name="bottomtray/NearbyVoice_On.png" preload="false" /> + <texture name="Object_Cone" file_name="build/Object_Cone.png" preload="false" /> + <texture name="Object_Cube" file_name="build/Object_Cube.png" preload="false" /> + <texture name="Object_Cylinder" file_name="build/Object_Cylinder.png" preload="false" /> + <texture name="Object_Grass" file_name="build/Object_Grass.png" preload="false" /> + <texture name="Object_Hemi_Cone" file_name="build/Object_Hemi_Cone.png" preload="false" /> + <texture name="Object_Hemi_Cylinder" file_name="build/Object_Hemi_Cylinder.png" preload="false" /> + <texture name="Object_Hemi_Sphere" file_name="build/Object_Hemi_Sphere.png" preload="false" /> + <texture name="Object_Prism" file_name="build/Object_Prism.png" preload="false" /> + <texture name="Object_Pyramid" file_name="build/Object_Pyramid.png" preload="false" /> + <texture name="Object_Ring" file_name="build/Object_Ring.png" preload="false" /> + <texture name="Object_Sphere" file_name="build/Object_Sphere.png" preload="false" /> + <texture name="Object_Tetrahedron" file_name="build/Object_Tetrahedron.png" preload="false" /> + <texture name="Object_Torus" file_name="build/Object_Torus.png" preload="false" /> + <texture name="Object_Tree" file_name="build/Object_Tree.png" preload="false" /> + <texture name="Object_Tube" file_name="build/Object_Tube.png" preload="false" /> + <texture name="OptionsMenu_Disabled" file_name="icons/OptionsMenu_Disabled.png" preload="false" /> <texture name="OptionsMenu_Off" file_name="icons/OptionsMenu_Off.png" preload="false" /> <texture name="OptionsMenu_Press" file_name="icons/OptionsMenu_Press.png" preload="false" /> + <texture name="Overhead_Arrow_L" file_name="world/Overhead_Arrow_L.png" preload="false" /> + <texture name="Overhead_Arrow_M" file_name="world/Overhead_Arrow_M.png" preload="false" /> + <texture name="Overhead_Arrow_S" file_name="world/Overhead_Arrow_S.png" preload="false" /> + <texture name="Overhead_L" file_name="world/Overhead_L.png" preload="false" /> + <texture name="Overhead_M" file_name="world/Overhead_M.png" preload="false" /> + <texture name="Overhead_S" file_name="world/Overhead_S.png" preload="false" /> + + <texture name="Progress_1" file_name="icons/Progress_1.png" preload="false" /> + <texture name="Progress_2" file_name="icons/Progress_2.png" preload="false" /> + <texture name="Progress_3" file_name="icons/Progress_3.png" preload="false" /> + <texture name="Progress_4" file_name="icons/Progress_4.png" preload="false" /> + <texture name="Progress_5" file_name="icons/Progress_5.png" preload="false" /> + <texture name="Progress_6" file_name="icons/Progress_6.png" preload="false" /> + <texture name="Progress_7" file_name="icons/Progress_7.png" preload="false" /> + <texture name="Progress_8" file_name="icons/Progress_8.png" preload="false" /> + <texture name="Progress_9" file_name="icons/Progress_9.png" preload="false" /> + <texture name="Progress_10" file_name="icons/Progress_10.png" preload="false" /> + <texture name="Progress_11" file_name="icons/Progress_11.png" preload="false" /> + <texture name="Progress_12" file_name="icons/Progress_12.png" preload="false" /> + <texture name="ProgressBar" file_name="widgets/ProgressBar.png" preload="true" scale.left="4" scale.top="10" scale.right="48" scale.bottom="2" /> <texture name="ProgressTrack" file_name="widgets/ProgressTrack.png" preload="true" scale.left="4" scale.top="13" scale.right="148" scale.bottom="2" /> @@ -139,7 +275,14 @@ <texture name="RadioButton_Off" file_name="widgets/RadioButton_Off.png" preload="true" /> <texture name="RadioButton_On" file_name="widgets/RadioButton_On.png" preload="true" /> <texture name="RadioButton_Disabled" file_name="widgets/RadioButton_Disabled.png" preload="true" /> - <texture name="RadioButton_On_Disabled" file_name="widgets/RadioButton_On_Disabled.png" preload="true" /> + <texture name="RadioButton_On_Disabled" file_name="widgets/RadioButton_On_Disabled.png" preload="true" /> + + <texture name="Rec_Off" file_name="icons/Rec_Off.png" preload="false" /> + <texture name="Rec_On" file_name="icons/Rec_On.png" preload="false" /> + + <texture name="Refresh_Disabled" file_name="icons/Refresh_Disabled.png" preload="false" /> + <texture name="Refresh_Off" file_name="icons/Refresh_Off.png" preload="false" /> + <texture name="Refresh_Press" file_name="icons/Refresh_Press.png" preload="false" /> <texture name="Resize_Corner" file_name="windows/Resize_Corner.png" preload="true" /> @@ -184,6 +327,10 @@ <texture name="SliderThumb_Disabled" file_name="widgets/SliderThumb_Disabled.png" /> <texture name="SliderThumb_Press" file_name="widgets/SliderThumb_Press.png" /> + <texture name="Snapshot_Off" file_name="bottomtray/Snapshot_Off.png" preload="false" /> + <texture name="Snapshot_Over" file_name="bottomtray/Snapshot_Over.png" preload="false" /> + <texture name="Snapshot_Press" file_name="bottomtray/Snapshot_Press.png" preload="false" /> + <texture name="Stepper_Down_Disabled" file_name="widgets/Stepper_Down_Disabled.png" preload="true" /> <texture name="Stepper_Down_Off" file_name="widgets/Stepper_Down_Off.png" preload="true" /> <texture name="Stepper_Down_Press" file_name="widgets/Stepper_Down_Press.png" preload="true" /> @@ -191,6 +338,7 @@ <texture name="Stepper_Up_Off" file_name="widgets/Stepper_Up_Off.png" preload="true" /> <texture name="Stepper_Up_Press" file_name="widgets/Stepper_Up_Press.png" preload="true" /> + <texture name="TabIcon_Appearance_Large" file_name="taskpanel/TabIcon_Appearance_Large.png" preload="false" /> <texture name="TabIcon_Appearance_Off" file_name="taskpanel/TabIcon_Appearance_Off.png" preload="false" /> <texture name="TabIcon_Appearance_Over" file_name="taskpanel/TabIcon_Appearance_Over.png" preload="false" /> <texture name="TabIcon_Appearance_Selected" file_name="taskpanel/TabIcon_Appearance_Selected.png" preload="false" /> @@ -199,20 +347,24 @@ <texture name="TabIcon_Home_Off" file_name="taskpanel/TabIcon_Home_Off.png" preload="false" /> <texture name="TabIcon_Home_Over" file_name="taskpanel/TabIcon_Home_Over.png" preload="false" /> <texture name="TabIcon_Home_Selected" file_name="taskpanel/TabIcon_Home_Selected.png" preload="false" /> + <texture name="TabIcon_Me_Large" file_name="taskpanel/TabIcon_Me_Large.png" preload="false" /> <texture name="TabIcon_Me_Off" file_name="taskpanel/TabIcon_Me_Off.png" preload="false" /> <texture name="TabIcon_Me_Over" file_name="taskpanel/TabIcon_Me_Over.png" preload="false" /> <texture name="TabIcon_Me_Selected" file_name="taskpanel/TabIcon_Me_Selected.png" preload="false" /> <texture name="TabIcon_Open_Off" file_name="taskpanel/TabIcon_Open_Off.png" preload="false" /> <texture name="TabIcon_Open_Over" file_name="taskpanel/TabIcon_Open_Over.png" preload="false" /> + <texture name="TabIcon_People_Large" file_name="taskpanel/TabIcon_People_Large.png" preload="false" /> <texture name="TabIcon_People_Off" file_name="taskpanel/TabIcon_People_Off.png" preload="false" /> <texture name="TabIcon_People_Over" file_name="taskpanel/TabIcon_People_Over.png" preload="false" /> <texture name="TabIcon_People_Selected" file_name="taskpanel/TabIcon_People_Selected.png" preload="false" /> - <texture name="TabIcon_Places_Over" file_name="taskpanel/TabIcon_Places_Over.png" preload="false" /> + <texture name="TabIcon_Places_Large" file_name="taskpanel/TabIcon_Places_Large.png" preload="false" /> <texture name="TabIcon_Places_Off" file_name="taskpanel/TabIcon_Places_Off.png" preload="false" /> + <texture name="TabIcon_Places_Over" file_name="taskpanel/TabIcon_Places_Over.png" preload="false" /> <texture name="TabIcon_Places_Selected" file_name="taskpanel/TabIcon_Places_Selected.png" preload="false" /> + <texture name="TabIcon_Things_Large" file_name="taskpanel/TabIcon_Things_Large.png" preload="false" /> <texture name="TabIcon_Things_Off" file_name="taskpanel/TabIcon_Things_Off.png" preload="false" /> - <texture name="TabIcon_Things_Selected" file_name="taskpanel/TabIcon_Things_Selected.png" preload="false" /> <texture name="TabIcon_Things_Over" file_name="taskpanel/TabIcon_Things_Over.png" preload="false" /> + <texture name="TabIcon_Things_Selected" file_name="taskpanel/TabIcon_Things_Selected.png" preload="false" /> <texture name="TabTop_Divider" file_name="containers/TabTop_Divider.png" preload="false" /> <texture name="TabTop_Left_Press" file_name="containers/TabTop_Left_Press.png" preload="false" /> @@ -240,6 +392,12 @@ <texture name="Toast_CloseBtn" file_name="windows/Toast_CloseBtn.png" preload="true" /> <texture name="Toast" file_name="windows/Toast.png" preload="true" /> + <texture name="Tool_Create" file_name="build/Tool_Create.png" preload="false" /> + <texture name="Tool_Dozer" file_name="build/Tool_Dozer.png" preload="false" /> + <texture name="Tool_Face" file_name="build/Tool_Face.png" preload="false" /> + <texture name="Tool_Grab" file_name="build/Tool_Grab.png" preload="false" /> + <texture name="Tool_Zoom" file_name="build/Tool_Zoom.png" preload="false" /> + <texture name="Toolbar_Divider" file_name="containers/Toolbar_Divider.png" preload="false" /> <texture name="Toolbar_Left_Off" file_name="containers/Toolbar_Left_Off.png" preload="false" /> <texture name="Toolbar_Left_Press" file_name="containers/Toolbar_Left_Press.png" preload="false" /> diff --git a/indra/newview/skins/default/textures/widgets/DropTarget.png b/indra/newview/skins/default/textures/widgets/DropTarget.png new file mode 100644 index 0000000000000000000000000000000000000000..3740c98cbcc60ec3b2497327094756931e06868a Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/DropTarget.png differ diff --git a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png index 5dd0852a7255ce0ce036d6e73ed7b0ad0427975d..2292b79eda6a0d3f428a24fc36f468bab7a02277 100644 Binary files a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png and b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png differ diff --git a/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png index 350a62c0aef006d7898535cd2884cf70db3420c6..1a514742d3bf0de014ed58a3e691ebfc2e9659a1 100644 Binary files a/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png and b/indra/newview/skins/default/textures/windows/Icon_Help_Foreground.png differ diff --git a/indra/newview/skins/default/textures/windows/Icon_Help_Press.png b/indra/newview/skins/default/textures/windows/Icon_Help_Press.png index c2d401b1315cbe1f23a68c07470623492fdb669f..7478644b6a87bdd90bb58b395aeaafa74b329233 100644 Binary files a/indra/newview/skins/default/textures/windows/Icon_Help_Press.png and b/indra/newview/skins/default/textures/windows/Icon_Help_Press.png differ diff --git a/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png index a164edb62d4e0b6e8bb3b90db9daab242fb8c8ad..9f72a5422b3b7bf25c1fd1fc118fc717a6a4425f 100644 Binary files a/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png and b/indra/newview/skins/default/textures/windows/Icon_Minimize_Foreground.png differ diff --git a/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png b/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png index 990e03e2b2419607794dfe02ae394c91053ef19a..07db8be1b08e34fb5c41145edaf7edde6103a00a 100644 Binary files a/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png and b/indra/newview/skins/default/textures/windows/Icon_Minimize_Press.png differ diff --git a/indra/newview/skins/default/xui/da/floater_about_land.xml b/indra/newview/skins/default/xui/da/floater_about_land.xml index 15ebffa302ffe95140338621c9b6a6a329f5b439..c4cf722159cd1fae241e1be41e8c0b620876d1ac 100644 --- a/indra/newview/skins/default/xui/da/floater_about_land.xml +++ b/indra/newview/skins/default/xui/da/floater_about_land.xml @@ -2,10 +2,10 @@ <floater name="floaterland" title="Om land"> <tab_container name="landtab"> <panel label="Generelt" name="land_general_panel"> - <text length="1" name="Name:" type="string"> + <text name="Name:"> Navn: </text> - <text length="1" name="Description:" type="string"> + <text name="Description:"> Beskrivelse: </text> <text name="LandType"> @@ -20,56 +20,56 @@ <text name="ContentRatingText"> Adult </text> - <text length="1" name="Owner:" type="string"> + <text name="Owner:"> Ejer: </text> - <text length="1" name="OwnerText" type="string"> + <text name="OwnerText"> Leyla Linden </text> <button label="Profil..." label_selected="Profil..." name="Profile..."/> - <text length="1" name="Group:" type="string"> + <text name="Group:"> Gruppe: </text> <button label="Vælg..." label_selected="Vælg..." name="Set..."/> <check_box label="Tillad dedikering til gruppe" name="check deed" tool_tip="En gruppe administrator kan dedikere denne jord til gruppen, sÃ¥ det vil blive støttet af gruppen's jord tildeling."/> <button label="Dedikér..." label_selected="Dedikér..." name="Deed..." tool_tip="Du kan kun dedikere jord, hvis du er en administrator i den valgte gruppe."/> <check_box label="Ejer bidrager ved dedikering" name="check contrib" tool_tip="NÃ¥r land dedikeres til gruppe, kan den tidligere bidrage med nok land til at dække krav."/> - <text length="1" name="For Sale:" type="string"> + <text name="For Sale:"> Til salg: </text> - <text length="1" name="Not for sale." type="string"> + <text name="Not for sale."> Ikke til salg. </text> - <text length="1" name="For Sale: Price L$[PRICE]." type="string"> + <text name="For Sale: Price L$[PRICE]."> Pris: L$[PRICE] (L$[PRICE_PER_SQM]/m²). </text> <button label="Sælg land..." label_selected="Sælg land..." name="Sell Land..."/> - <text length="1" name="For sale to" type="string"> + <text name="For sale to"> Til salg til: [BUYER] </text> - <text length="1" name="Sell with landowners objects in parcel." type="string"> + <text name="Sell with landowners objects in parcel."> Objekter er inkluderet i salg. </text> - <text length="1" name="Selling with no objects in parcel." type="string"> + <text name="Selling with no objects in parcel."> Objekter er ikke inkluderet i salg. </text> <button label="Annullér salg af land" label_selected="Annullér salg af land" name="Cancel Land Sale"/> - <text length="1" name="Claimed:" type="string"> + <text name="Claimed:"> Købt: </text> - <text length="1" name="DateClaimText" type="string"> + <text name="DateClaimText"> Tue Aug 15 13:47:25 2006 </text> - <text length="1" name="PriceLabel" type="string"> + <text name="PriceLabel"> OmrÃ¥de: </text> - <text length="1" name="PriceText" type="string"> + <text name="PriceText"> 4048 m² </text> - <text length="1" name="Traffic:" type="string"> + <text name="Traffic:"> Trafik: </text> - <text length="1" name="DwellText" type="string"> + <text name="DwellText"> 0 </text> <button label="Køb land..." label_selected="Køb land..." name="Buy Land..."/> @@ -78,76 +78,76 @@ <button label="Efterlad land..." label_selected="Efterlad land..." name="Abandon Land..."/> <button label="Kræv tilbage..." label_selected="Kræv tilbage..." name="Reclaim Land..."/> <button label="Linden salg..." label_selected="Linden salg..." name="Linden Sale..." tool_tip="Land skal være ejet, indholdsrating sat og ikke allerede pÃ¥ auktion."/> - <string name="new users only"> + <panel.string name="new users only"> Kun nye brugere - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> Alle - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> Størrelse - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA] m² - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> Auktion nr: [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> Du skal godkende dit køb for at kunne æmdre pÃ¥ dette land. - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (Gruppe ejet) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> Profil... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> Info... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (offentlig) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (ingen) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (Salg i gang) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> Pacel ikke valgt. GÃ¥ til 'Verden' > 'Om land' eller vælg en anden parcel for at se detaljer. - </string> + </panel.string> </panel> <panel label="Regler" name="land_covenant_panel"> <text name="estate_section_lbl"> Estate: </text> - <text length="1" name="estate_name_lbl" type="string"> + <text name="estate_name_lbl"> Navn: </text> - <text length="1" name="estate_name_text" type="string"> + <text name="estate_name_text"> Hovedland </text> - <text length="1" name="estate_owner_lbl" type="string"> + <text name="estate_owner_lbl"> Ejer: </text> - <text length="1" name="estate_owner_text" type="string"> + <text name="estate_owner_text"> (ingen) </text> - <text_editor length="1" name="covenant_editor" type="string"> + <text_editor name="covenant_editor"> Der er ikke angivet specielle regler for denne Estate </text_editor> - <text length="1" name="covenant_timestamp_text" type="string"> + <text name="covenant_timestamp_text"> Sidst rettet Wed Dec 31 16:00:00 1969 </text> <text name="region_section_lbl"> Region: </text> - <text length="1" name="region_name_lbl" type="string"> + <text name="region_name_lbl"> Navn: </text> - <text length="1" name="region_name_text" type="string"> + <text name="region_name_text"> leyla </text> <text name="region_landtype_lbl"> @@ -165,90 +165,90 @@ GÃ¥ til 'Verden' > 'Om land' eller vælg en anden parcel <text name="resellable_lbl"> Videresalg: </text> - <text length="1" name="resellable_clause" type="string"> + <text name="resellable_clause"> Land i denne region mÃ¥ ikke sælges videre. </text> <text name="changeable_lbl"> Opdel: </text> - <text length="1" name="changeable_clause" type="string"> + <text name="changeable_clause"> Land i denne region mÃ¥ ikke samles/opdeles. </text> - <string name="can_resell"> + <panel.string name="can_resell"> Købt land i denne region mÃ¥ sælges videre - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> Købt land i denne region mÃ¥ ikke sælges videre - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> Købt jord i denne region mÃ¥ gerne samles eller opdeles. - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> Købt jord i denne region mÃ¥ Ãkke samles eller opdeles. - </string> + </panel.string> </panel> <panel label="Objekter" name="land_objects_panel"> - <text length="1" name="parcel_object_bonus" type="string"> + <text name="parcel_object_bonus"> Region objekt bonus faktor: [BONUS] </text> - <text length="1" name="Simulator primitive usage:" type="string"> + <text name="Simulator primitive usage:"> Prims brugt i denne Sim: </text> - <text length="1" name="objects_available" type="string"> + <text name="objects_available"> [COUNT] ud af [MAX] ([AVAILABLE] ledige) </text> - <string name="objects_available_text"> + <panel.string name="objects_available_text"> [COUNT] ud af [MAX] ([AVAILABLE] ledige) - </string> - <string name="objects_deleted_text"> + </panel.string> + <panel.string name="objects_deleted_text"> [COUNT] ud af [MAX] ([DELETED] bliver slettet) - </string> - <text length="1" name="Primitives parcel supports:" type="string"> + </panel.string> + <text name="Primitives parcel supports:"> Prims til rÃ¥dighed: </text> - <text length="1" name="object_contrib_text" type="string"> + <text name="object_contrib_text"> [COUNT] </text> - <text length="1" name="Primitives on parcel:" type="string"> + <text name="Primitives on parcel:"> Prims brugt pÃ¥ parcel: </text> - <text length="1" name="total_objects_text" type="string"> + <text name="total_objects_text"> [COUNT] </text> - <text length="1" name="Owned by parcel owner:" type="string"> + <text name="Owned by parcel owner:"> Ejet af Parcel ejer: </text> - <text length="1" name="owner_objects_text" type="string"> + <text name="owner_objects_text"> [COUNT] </text> <button label="Vis" label_selected="Vis" name="ShowOwner"/> <button label="Returnér..." label_selected="Returnér..." name="ReturnOwner..." tool_tip="Returnér objekter til deres ejere."/> - <text length="1" name="Set to group:" type="string"> + <text name="Set to group:"> Sat til gruppe: </text> - <text length="1" name="group_objects_text" type="string"> + <text name="group_objects_text"> [COUNT] </text> <button label="Vis" label_selected="Vis" name="ShowGroup"/> <button label="Returnér..." label_selected="Returnér..." name="ReturnGroup..." tool_tip="Returnér objekter til deres ejere."/> - <text length="1" name="Owned by others:" type="string"> + <text name="Owned by others:"> Ejet af andre: </text> - <text length="1" name="other_objects_text" type="string"> + <text name="other_objects_text"> [COUNT] </text> <button label="Vis" label_selected="Vis" name="ShowOther"/> <button label="Returnér..." label_selected="Returnér..." name="ReturnOther..." tool_tip="Returnér objekter til deres ejere."/> - <text length="1" name="Selected / sat upon:" type="string"> + <text name="Selected / sat upon:"> Valgt/siddet pÃ¥: </text> - <text length="1" name="selected_objects_text" type="string"> + <text name="selected_objects_text"> [COUNT] </text> - <text length="1" name="Autoreturn" type="string"> + <text name="Autoreturn"> Autoreturnér andres objekter efter (minutter, 0 = aldrig): </text> - <text length="1" name="Object Owners:" type="string"> + <text name="Object Owners:"> Objekt ejere: </text> <button label="Gentegn liste" label_selected="Gentegn liste" name="Refresh List"/> @@ -261,205 +261,192 @@ GÃ¥ til 'Verden' > 'Om land' eller vælg en anden parcel </name_list> </panel> <panel label="Indstillinger" name="land_options_panel"> - <text length="1" name="allow_label" type="string"> + <text name="allow_label"> Tillad andre beboere at: </text> <check_box label="Redigere terræn" name="edit land check" tool_tip="Hvis dette er valg, kan enhver redigere dit land. Det er bedst ikke at vælge her, da det altid er muligt for dig som ejer at ændre terræn pÃ¥ dit eget land."/> <check_box label="Lave landemærker" name="check landmark"/> <check_box label="Flyve" name="check fly" tool_tip="Hvis valgt, kan beboere flyve pÃ¥ dit land. Hvis ikke valgt kan beboere kun flyve ind pÃ¥ dit land og over dit land."/> - <text length="1" name="allow_label2" type="string" left="194"> + <text name="allow_label2" left="194"> Lave objekter: </text> <check_box label="Alle beboere" name="edit objects check"/> <check_box label="Gruppe" name="edit group objects check"/> - <text length="1" name="allow_label3" type="string" left="170"> + <text name="allow_label3" left="170"> Anbringe objekter: </text> <check_box label="Alle beboere" name="all object entry check"/> <check_box label="Gruppe" name="group object entry check"/> - <text length="1" name="allow_label4" type="string" left="200"> + <text name="allow_label4" left="200"> Køre scripts: </text> <check_box label="Alle beboere" name="check other scripts"/> <check_box label="Gruppe" name="check group scripts"/> - <text length="1" name="land_options_label" type="string"> + <text name="land_options_label"> Land instillinger: </text> <check_box label="Sikker (ingen skade)" name="check safe" tool_tip="Hvis valgt, er det ikke muligt at forÃ¥rsage skade pÃ¥ andre beboere. Hvis fravalgt er det muligt at fÃ¥ skader (f.eks. ved kamp)."/> <check_box label="Skub forbudt" name="PushRestrictCheck" tool_tip="Forhindrer scripts i at skubbe. Valg af denne mulighed, kan være nyttigt for at forhindre forstyrrende adfærd pÃ¥ dit land."/> <check_box label="Vis sted i søgning (L$30/uge) i kategorien:" name="ShowDirectoryCheck" tool_tip="Lad dit parcel blive vist i søge resultaterne"/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> Lad beboere se denne parcel i søgeresultater - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> Denne mulighed er ikke til stede da parcellens omrÃ¥de er 128 m² eller mindre. Kun større parceller kan vises i søgning. - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> Dette valg er lukket da du ikke kan ændre pÃ¥ denne parcels opsætning. - </string> + </panel.string> <combo_box name="land category with adult"> - <combo_item name="AnyCategory"> - Enhver kategori - </combo_item> - <combo_item name="LindenLocation"> - Linden sted - </combo_item> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Arts&Culture"> - Kunst & kultur - </combo_item> - <combo_item name="Business"> - Business - </combo_item> - <combo_item name="Educational"> - Uddannelse - </combo_item> - <combo_item name="Gaming"> - Spil - </combo_item> - <combo_item name="Hangout"> - Opholdssteder - </combo_item> - <combo_item name="NewcomerFriendly"> - Nybegynder venligt - </combo_item> - <combo_item name="Parks&Nature"> - Parker & natur - </combo_item> - <combo_item name="Residential"> - Beboelse - </combo_item> - <combo_item name="Shopping"> - Shopping - </combo_item> - <combo_item name="Other"> - Andet - </combo_item> + <combo_box.item name="item0" label="Enhver kategori" + /> + <combo_box.item name="item1" label="Linden sted" + /> + <combo_box.item name="item2" label="Adult" + /> + <combo_box.item name="item3" label="Kunst & kultur" + /> + <combo_box.item name="item4" label="Business" + /> + <combo_box.item name="item5" label="Uddannelse" + /> + <combo_box.item name="item6" label="Spil" + /> + <combo_box.item name="item7" label="Afslapning" + /> + <combo_box.item name="item8" label="Nybegynder venligt" + /> + <combo_box.item name="item9" label="Parker & natur" + /> + <combo_box.item name="item10" label="Beboelse" + /> + <combo_box.item name="item11" label="Indkøb" + /> + <combo_box.item name="item12" label="Andet" + /> </combo_box> <combo_box name="land category"> - <combo_box.item name="AnyCategory" label="Alle kategorier" /> - <combo_box.item name="LindenLocation" label="Linden Location" /> - <combo_box.item name="Arts&Culture" label="Kunst & kultur" /> - <combo_box.item name="Business" label="Business" /> - <combo_box.item name="Educational" label="Uddannelse" /> - <combo_box.item name="Gaming" label="Spil" /> - <combo_box.item name="Hangout" label="Afslapning" /> - <combo_box.item name="NewcomerFriendly" label="Nybegynder venligt" /> - <combo_box.item name="Parks&Nature" label="Parker & natur" /> - <combo_box.item name="Residential" label="Beboelse" /> - <combo_box.item name="Shopping" label="Indkøb" /> - <combo_box.item name="Other" label="Andet" /> + <combo_box.item name="item0" label="Enhver kategori" /> + <combo_box.item name="item1" label="Linden sted" /> + <combo_box.item name="item3" label="Kunst & kultur" /> + <combo_box.item name="item4" label="Business" /> + <combo_box.item name="item5" label="Uddannelse" /> + <combo_box.item name="item6" label="Spil" /> + <combo_box.item name="item7" label="Afslapning" /> + <combo_box.item name="item8" label="Nybegynder venligt" /> + <combo_box.item name="item9" label="Parker & natur" /> + <combo_box.item name="item10" label="Beboelse" /> + <combo_box.item name="item11" label="Indkøb" /> + <combo_box.item name="item12" label="Andet" /> </combo_box> <button label="?" label_selected="?" name="?"/> <check_box label="Mature indhold" name="MatureCheck" tool_tip=""/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Mature indhold - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Adult indhold - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> Din parcel information eller indhold anses for at være 'adult'. - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> Din parcel information eller indhold anses for at være 'adult'. - </string> - <text length="1" name="Snapshot:" type="string"> + </panel.string> + <text name="Snapshot:"> Foto: </text> <texture_picker label="" name="snapshot_ctrl" tool_tip="Klik for at vælge et billede"/> - <text length="1" name="landing_point" type="string"> + <text name="landing_point"> Landingspunkt: [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (ingen) - </string> + </panel.string> <button label="Vælg" label_selected="Vælg" name="Set" tool_tip="Indstiller landingspunkt, hvor de besøgende ankommer. Sættes til din avatars aktuelle placering i denne parcel."/> <button label="Fjern" label_selected="Fjern" name="Clear" tool_tip="Fjerner oplysning om landingspunkt."/> - <text length="1" name="Teleport Routing: " type="string"> + <text name="Teleport Routing: "> Teleport valg: </text> <combo_box name="landing type" tool_tip="Vælg hvordan du vil hÃ¥ndtere teleporteringer til dit land."> - <combo_box.item length="1" name="Blocked" type="string" label="Blokeret" /> - <combo_box.item length="1" name="LandingPoint" type="string" label="Landingspunkt" /> - <combo_box.item length="1" name="Anywhere" type="string" label="Hvor som helst" /> + <combo_box.item name="Blocked" label="Blokeret" /> + <combo_box.item name="LandingPoint" label="Landingspunkt" /> + <combo_box.item name="Anywhere" label="Hvor som helst" /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> Skub forbudt - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> Skub forbudt (Uanset region indstilling) - </string> + </panel.string> </panel> <panel label="Medier" name="land_media_panel"> - <text length="1" name="with media:" type="string" left="4"> + <text name="with media:" left="4"> Medie type: </text> <combo_box name="media type" tool_tip="Specificer om URL-adressen er til en film, hjemmeside eller et andet medie."/> - <text length="1" name="at URL:" type="string" left="4"> + <text name="at URL:" left="4"> Medie URL: </text> <button label="Vælg..." label_selected="Vælg..." name="set_media_url"/> - <text length="1" name="Description:" type="string" left="4"> + <text name="Description:" left="4"> Beskrivelse: </text> <line_editor name="url_description" tool_tip="Tekst vist ved siden af Afspil/Hent knappen"/> - <text length="1" name="Media texture:" type="string" left="4"> + <text name="Media texture:" left="4"> Erstat tekstur: </text> <texture_picker label="" name="media texture" tool_tip="Klik for at vælge billede"/> - <text length="1" name="replace_texture_help" type="string"> + <text name="replace_texture_help"> (Objekter der har denne tekstur vil vise filmen eller web-siden, efter du klikker pÃ¥ play knappen.) </text> - <text length="1" name="Options:" type="string"> + <text name="Options:"> Medie valg: </text> <check_box label="Auto skalér" name="media_auto_scale" tool_tip="Vælg denne mulighed for at skalere indholdet for dette parcel automatisk. Det kan være lidt langsommere og have lavere kvalitet, men ingen anden tekstur skalering eller tilpasning vil være nødvendigt."/> <check_box label="Gentag afspil" name="media_loop" tool_tip="Gentager automatisk medie, nÃ¥r det er færdigt med at spille starter det automatisk forfra."/> <check_box label="Skjul medie URL" name="hide_media_url" tool_tip="Klik her for at skjule medie adressen sÃ¥ det kun er dig og evt. parcel gruppens ejer/administratorer der kan se den."/> <check_box label="Skjul musik URL" name="hide_music_url" tool_tip="Klik her for at skjule musik adressen sÃ¥ det kun er dig og evt. parcel gruppens ejer/administratorer der kan se den."/> - <text length="1" name="media_size" tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard." type="string" width="105"> + <text name="media_size" tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard." width="105"> Medie Størrelse: </text> <spinner left_delta="89" name="media_size_width" tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard."/> <spinner name="media_size_height" tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard."/> - <text length="1" name="pixels" type="string"> + <text name="pixels"> pixels </text> - <text length="1" name="MusicURL:" type="string"> + <text name="MusicURL:"> Musik URL: </text> - <text length="1" name="Sound:" type="string"> + <text name="Sound:"> Lyd: </text> <check_box label="Begræns lyde fra bevægelser og objekter til denne parcel" name="check sound local"/> <button label="?" label_selected="?" name="?" left="400"/> - <text length="1" name="Voice settings:" type="string"> + <text name="Voice settings:"> Stemme: </text> <radio_group name="parcel_voice_channel"> - <radio_item type="string" length="1" name="Estate" label="Brug Estate kanalen" /> - <radio_item type="string" length="1" name="Private" label="Brug en privat kanal" /> - <radio_item type="string" length="1" name="Disabled" label="SlÃ¥ stemme chat fra pÃ¥ denne parcel" /> + <radio_item name="Estate" label="Brug Estate kanalen" /> + <radio_item name="Private" label="Brug en privat kanal" /> + <radio_item name="Disabled" label="SlÃ¥ stemme chat fra pÃ¥ denne parcel" /> </radio_group> </panel> <panel label="Adgang" name="land_access_panel"> - <text length="1" name="Limit access to this parcel to:" type="string"> + <text name="Limit access to this parcel to:"> Adgang til denne parcel </text> <check_box label="Tillad offentlig adgang" name="public_access"/> - <text length="1" name="Only Allow" type="string"> + <text name="Only Allow"> Blokér adgang for: </text> <check_box label="Beboere der ikke har givet betalings oplysninger til Linden Lab" name="limit_payment" tool_tip="Blokér beboere der ikke har afgivet identifikationsoplysninger."/> <check_box label="Beboere der ikke er godkendt som voksne" name="limit_age_verified" tool_tip="Blokér beboere der ikke har verificeret deres alder. Se support.secondlife.com for mere information."/> - <string name="estate_override"> + <panel.string name="estate_override"> En eller flere af disse valg er indstillet pÃ¥ estate niveau - </string> + </panel.string> <check_box label="Tillad adgang til gruppen: [GROUP]" name="GroupCheck" tool_tip="Vælg gruppe under fanen 'generelt'."/> <check_box label="Sælg adgang til:" name="PassCheck" tool_tip="Tillader midlertidig adgang til denne parcel"/> <combo_box name="pass_combo"> diff --git a/indra/newview/skins/default/xui/da/floater_avatar_picker.xml b/indra/newview/skins/default/xui/da/floater_avatar_picker.xml index d2c8f3a0031ac5b3b5cdf1bd6a4c8e243385d173..f93f0a35254541415bd6fe8c05705a9e5343b2eb 100644 --- a/indra/newview/skins/default/xui/da/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/da/floater_avatar_picker.xml @@ -1,15 +1,40 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="avatarpicker" title="Vælg beboer"> - <text name="instruct_search_resident_name"> - Skriv en del eller hele navnet pÃ¥ beboeren: - </text> - <button label="Find" label_selected="Find" name="Find" /> - <text name="Or select their calling card:"> - Eller vælg deres visitkort: - </text> - <button label="Luk" label_selected="Luk" name="Close" /> - <button label="Vælg" label_selected="Vælg" name="Select" /> - <string name="NotFound"> + <tab_container name="ResidentChooserTabs"> + <panel label="Søg" name="SearchPanel"> + <text name="InstructSearchResidentName"> + Indtast en del af beboerens navn: + </text> + <button label="Find" label_selected="Find" name="Find"/> + </panel> + <panel label="Visitkort" name="CallingCardsPanel"> + <text name="InstructSelectCallingCard"> + Vælg et visitkort: + </text> + </panel> + <panel label="Nær ved mig" name="NearMePanel"> + <text name="InstructSelectResident"> + Vælg beboere i nærheden: + </text> + <button label="Gentegn liste" label_selected="Gentegn liste" name="Refresh"/> + <slider label="OmrÃ¥de" name="near_me_range"/> + <text name="meters"> + meter + </text> + </panel> + </tab_container> + <button label="Vælg" label_selected="Vælg" name="Select"/> + <button label="Annullér" label_selected="Annullér" name="Cancel"/> + <string name="not_found"> '[TEXT]' ikke fundet </string> + <string name="no_one_near"> + Ingen i nærheden + </string> + <string name="no_results"> + Ingen resultater + </string> + <string name="searching"> + Søger... + </string> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_beacons.xml b/indra/newview/skins/default/xui/da/floater_beacons.xml index 27422761d9d5decde61d3d21c75a9e7a460ed159..318a23df4c026962f71bdbd0bf7c5f614441be83 100644 --- a/indra/newview/skins/default/xui/da/floater_beacons.xml +++ b/indra/newview/skins/default/xui/da/floater_beacons.xml @@ -8,7 +8,7 @@ <check_box label="Partikel kilder" name="particles" /> <check_box label="Rendér highlights" name="highlights" /> <check_box label="Rendér pejlelys" name="beacons" /> - <text type="string" length="1" name="beacon_width_label"> + <text name="beacon_width_label"> Pejlelys bredde: </text> </panel> diff --git a/indra/newview/skins/default/xui/da/floater_build_options.xml b/indra/newview/skins/default/xui/da/floater_build_options.xml index 7e5b61bd8465fb79b0e1b83d1b789a1e71bb3a1a..3b3e14ad6428b614ac7ff38ec648a42f7696482f 100644 --- a/indra/newview/skins/default/xui/da/floater_build_options.xml +++ b/indra/newview/skins/default/xui/da/floater_build_options.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="build options floater" title="Gitter indstillinger"> - <spinner label="Gitter enhed (meter)" name="GridResolution" /> - <spinner label="Gitter rækkevidde (meter)" name="GridDrawSize" /> + <spinner label="Gitter enhed (meter)" name="GridResolution" width="200" label_width="136"/> + <spinner label="Gitter rækkevidde (meter)" name="GridDrawSize" width="200" label_width="136"/> <check_box label="Aktiver lÃ¥sning til under-enheder" name="GridSubUnit" /> <check_box label="Vis 'cross sections'" name="GridCrossSection" /> <slider label="Gitter synlighed" name="GridOpacity" /> diff --git a/indra/newview/skins/default/xui/da/floater_buy_currency.xml b/indra/newview/skins/default/xui/da/floater_buy_currency.xml index da2e7dbd66d8c3c975fb9cdedada2942c3f39298..1c5876572b51b05757dc7b3921e3e39d64287d6e 100644 --- a/indra/newview/skins/default/xui/da/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/da/floater_buy_currency.xml @@ -63,6 +63,6 @@ og prøv igen. <button label="Annullér" name="cancel_btn" /> <button label="Køb" name="buy_btn" /> <string name="buy_currency"> - Buy L$ [LINDENS] for approx. US$ [USD] + Køb L$ [LINDENS] for ca. US$ [USD] </string> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_customize.xml b/indra/newview/skins/default/xui/da/floater_customize.xml index aa6b8cb0436e706bcf891458a3946632ab501381..b434bea1ced72cd681515639f874819c26990968 100644 --- a/indra/newview/skins/default/xui/da/floater_customize.xml +++ b/indra/newview/skins/default/xui/da/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="Appearance" width="509"> <tab_container name="customize tab container" width="507"> - <panel label="Krops Dele" name="body_parts_placeholder"/> + <placeholder label="Krops Dele" name="body_parts_placeholder"/> <panel label="Kropsbygning" name="Shape"> <button label="Annullér" label_selected="Annullér" name="Revert"/> <button label="Krop" label_selected="Krop" name="Body"/> @@ -14,30 +14,30 @@ <button label="Overkrop" label_selected="Overkrop" name="Torso"/> <button label="Ben" label_selected="Ben" name="Legs"/> <radio_group name="sex radio"> - <radio_item type="string" length="1" name="radio" label="Kvinde" /> - <radio_item type="string" length="1" name="radio2" label="Mand" /> + <radio_item name="radio" label="Kvinde" /> + <radio_item name="radio2" label="Mand" /> </radio_group> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Vælg en ny krop ved at trække en sÃ¥dan fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette en fra bunden og bagefter 'tage den pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -52,27 +52,27 @@ og bagefter 'tage den pÃ¥'. <button label="Detaljer" label_selected="Detaljer" name="Face Detail"/> <button label="Sminke" label_selected="Sminke" name="Makeup"/> <button label="Kropsdetaljer" label_selected="Kropsdetaljer" name="Body Detail"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag en ny hud pÃ¥ ved at trække en sÃ¥dan fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette en hud fra bunden og bagefter 'tage den pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -91,27 +91,27 @@ og bagefter 'tage den pÃ¥'. <button label="Stil" label_selected="Stil" name="Style"/> <button label="Øjenbryn" label_selected="Øjenbryn" name="Eyebrows"/> <button label="Skæg" label_selected="Skæg" name="Facial"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag et ny hÃ¥r pÃ¥ ved at trække et fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette et nyt hÃ¥r fra bunden og bagefter 'tage det pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -124,27 +124,27 @@ og bagefter 'tage det pÃ¥'. <button label="Annullér" label_selected="Annullér" name="Revert"/> </panel> <panel label="Øjne" name="Eyes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag et ny sæt øjne pÃ¥ ved at trække et sæt fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette et nyt sæt øjne fra bunden og bagefter 'tage dem pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -165,26 +165,26 @@ og bagefter 'tage dem pÃ¥'. <button label="Gem" label_selected="Gem" name="Save"/> <button label="Gem som..." label_selected="Gem som..." name="Save As"/> <button label="Annullér" label_selected="Annullér" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag en ny Tøje pÃ¥ ved at trække en fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette en ny Tøje fra bunden og bagefter 'tage den pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -199,27 +199,27 @@ Du kan ogsÃ¥ oprette en ny Tøje fra bunden og bagefter 'tage den pÃ¥' <button label="Gem" label_selected="Gem" name="Save"/> <button label="Gem som..." label_selected="Gem som..." name="Save As"/> <button label="Annullér" label_selected="Annullér" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag nyr bukser pÃ¥ ved at trække dem fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette ny bukser fra bunden og bagefter 'tage dem pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -227,27 +227,27 @@ din avatar. Du kan ogsÃ¥ oprette ny bukser fra bunden og bagefter </text> </panel> <panel label="Sko" name="Shoes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag et ny par sko pÃ¥ ved at trække dem fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette et nyt par sko fra bunden og bagefter 'tage dem pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -262,27 +262,27 @@ og bagefter 'tage dem pÃ¥'. <button label="Annullér" label_selected="Annullér" name="Revert"/> </panel> <panel label="Strømper" name="Socks"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag et ny par Strømper pÃ¥ ved at trække dem fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette et nyt par Strømper fra bunden og bagefter 'tage dem pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -297,26 +297,26 @@ og bagefter 'tage dem pÃ¥'. <button label="Annullér" label_selected="Annullér" name="Revert"/> </panel> <panel label="Jakke" name="Jacket"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag en ny jakke pÃ¥ ved at trække en fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette en ny jakke fra bunden og bagefter 'tage den pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -332,27 +332,27 @@ Du kan ogsÃ¥ oprette en ny jakke fra bunden og bagefter 'tage den pÃ¥' <button label="Annullér" label_selected="Annullér" name="Revert"/> </panel> <panel label="Handsker" name="Gloves"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag nye handsker pÃ¥ ved at trække et par fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette nye handsker fra bunden og bagefter 'tage dem pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -367,27 +367,27 @@ og bagefter 'tage dem pÃ¥'. <button label="Annullér" label_selected="Annullér" name="Revert"/> </panel> <panel label="Undertrøje" name="Undershirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag en ny undertrøje pÃ¥ ved at trække en fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette en ny undertrøje fra bunden og bagefter 'tage den pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -402,27 +402,27 @@ og bagefter 'tage den pÃ¥'. <button label="Annullér" label_selected="Annullér" name="Revert"/> </panel> <panel label="Underbukser" name="Underpants"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag nye underbukser pÃ¥ ved at trække dem fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette en par nye underbukser fra bunden og bagefter 'tage dem pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> @@ -437,27 +437,27 @@ og bagefter 'tage dem pÃ¥'. <button label="Annullér" label_selected="Annullér" name="Revert"/> </panel> <panel label="Nederdel" name="Skirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Kan ikke redigeres </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: indlæser... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: ikke bÃ¥ret </text> - <text length="1" name="path" type="string"> + <text name="path"> Fundet i [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Tag en ny nederdel pÃ¥ ved at trække en fra din beholdning over pÃ¥ din avatar. Du kan ogsÃ¥ oprette en ny nederdel fra bunden og bagefter 'tage den pÃ¥'. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Du har ikke rettigheder til at redigere denne del. </text> <text name="Item Action Label"> diff --git a/indra/newview/skins/default/xui/da/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/da/floater_day_cycle_options.xml index 140b3d47d646310ed621cd08fe26a6017e5845d7..0ca7874c37b7a0f5d0faad182139812646e34969 100644 --- a/indra/newview/skins/default/xui/da/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/da/floater_day_cycle_options.xml @@ -5,85 +5,85 @@ <button label="?" name="WLDayCycleHelp" /> <multi_slider label="" name="WLTimeSlider" /> <multi_slider label="" name="WLDayCycleKeys" /> - <text type="string" length="1" name="WL12am"> + <text name="WL12am"> 00:00 </text> - <text type="string" length="1" name="WL3am"> + <text name="WL3am"> 03:00 </text> - <text type="string" length="1" name="WL6am"> + <text name="WL6am"> 06:00 </text> - <text type="string" length="1" name="WL9amHash"> + <text name="WL9amHash"> 09:00 </text> - <text type="string" length="1" name="WL12pmHash"> + <text name="WL12pmHash"> 12:00 </text> - <text type="string" length="1" name="WL3pm"> + <text name="WL3pm"> 15:00 </text> - <text type="string" length="1" name="WL6pm"> + <text name="WL6pm"> 18:00 </text> - <text type="string" length="1" name="WL9pm"> + <text name="WL9pm"> 21:00 </text> - <text type="string" length="1" name="WL12am2"> + <text name="WL12am2"> 00:00 </text> - <text type="string" length="1" name="WL12amHash"> + <text name="WL12amHash"> | </text> - <text type="string" length="1" name="WL3amHash"> + <text name="WL3amHash"> I </text> - <text type="string" length="1" name="WL6amHash"> + <text name="WL6amHash"> | </text> - <text type="string" length="1" name="WL9amHash2"> + <text name="WL9amHash2"> I </text> - <text type="string" length="1" name="WL12pmHash2"> + <text name="WL12pmHash2"> | </text> - <text type="string" length="1" name="WL3pmHash"> + <text name="WL3pmHash"> I </text> - <text type="string" length="1" name="WL6pmHash"> + <text name="WL6pmHash"> | </text> - <text type="string" length="1" name="WL9pmHash"> + <text name="WL9pmHash"> I </text> - <text type="string" length="1" name="WL12amHash2"> + <text name="WL12amHash2"> | </text> <button label="Tilføj key" label_selected="Tilføj key" name="WLAddKey" /> <button label="Slet key" label_selected="Slet key" name="WLDeleteKey" /> - <text type="string" length="1" name="WLCurKeyFrameText"> + <text name="WLCurKeyFrameText"> Key-frame indstillinger: </text> - <text type="string" length="1" name="WLCurKeyTimeText"> + <text name="WLCurKeyTimeText"> Key tid: </text> <spinner label="Timer" name="WLCurKeyHour" /> <spinner label="Min." name="WLCurKeyMin" /> - <text type="string" length="1" name="WLCurKeyTimeText2"> + <text name="WLCurKeyTimeText2"> Key fast indstilling: </text> <combo_box label="Faste" name="WLKeyPresets" /> - <text type="string" length="1" name="DayCycleText"> + <text name="DayCycleText"> Snap: </text> <combo_box label="5 min" name="WLSnapOptions" /> - <text type="string" length="1" name="DayCycleText2"> + <text name="DayCycleText2"> Cycluslængde: </text> <spinner label="Timer" name="WLLengthOfDayHour" /> <spinner label="Min." name="WLLengthOfDayMin" /> <spinner label="Sek." name="WLLengthOfDaySec" /> - <text type="string" length="1" name="DayCycleText3"> + <text name="DayCycleText3"> Vis: </text> <button label="Afspil" label_selected="Afspil" name="WLAnimSky" /> diff --git a/indra/newview/skins/default/xui/da/floater_env_settings.xml b/indra/newview/skins/default/xui/da/floater_env_settings.xml index 04b804b36228199590da17e1d46865ff5477069f..907771c67a2c9f4900408d2fd900c58dcb9ab003 100644 --- a/indra/newview/skins/default/xui/da/floater_env_settings.xml +++ b/indra/newview/skins/default/xui/da/floater_env_settings.xml @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Environment Editor Floater" title="Redigering af omgivelser"> - <text type="string" length="1" name="EnvTimeText"> + <text name="EnvTimeText"> Tid pÃ¥ dagen </text> - <text type="string" length="1" name="EnvTimeText2"> + <text name="EnvTimeText2"> 00:00 </text> <slider label="" name="EnvTimeSlider" /> - <text type="string" length="1" name="EnvCloudText"> + <text name="EnvCloudText"> Skydække </text> <slider label="" name="EnvCloudSlider" /> - <text type="string" length="1" name="EnvWaterColorText"> + <text name="EnvWaterColorText"> Farve pÃ¥ vand </text> <color_swatch label="" name="EnvWaterColor" tool_tip="Klik for at Ã¥bne farvevælger" /> - <text type="string" length="1" name="EnvWaterFogText"> + <text name="EnvWaterFogText"> TÃ¥ge pÃ¥ vand </text> <slider label="" name="EnvWaterFogSlider" /> diff --git a/indra/newview/skins/default/xui/da/floater_hardware_settings.xml b/indra/newview/skins/default/xui/da/floater_hardware_settings.xml index 488660853f82e26b946600139a6cecdbead548cc..dcc1b8d2e8e6b00c664c56903f8240e838f02a4a 100644 --- a/indra/newview/skins/default/xui/da/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/da/floater_hardware_settings.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Hardware Settings Floater" title="Hardware opsætning"> - <text type="string" length="1" name="Filtering:"> + <text name="Filtering:"> Filtrering: </text> <check_box label="Anisotropic filtrering (langsommere nÃ¥r aktiveret)" name="ani" /> - <text type="string" length="1" name="Antialiasing:"> + <text name="Antialiasing:"> Antialiasing: </text> <combo_box label="Antialiasing" name="fsaa" width="100"> @@ -15,10 +15,10 @@ <combo_box.item name="16x" label="16x"/> </combo_box> <spinner label="Gamma:" name="gamma" /> - <text type="string" length="1" name="(brightness, lower is brighter)"> + <text name="(brightness, lower is brighter)"> (Lysstyrke, lavere er lysere, 0=benyt standard) </text> - <text type="string" length="1" name="Enable VBO:"> + <text name="Enable VBO:"> Aktivér VBO: </text> <check_box label="Aktivér OpenGL Vertex Buffer objekter" name="vbo" diff --git a/indra/newview/skins/default/xui/da/floater_inspect.xml b/indra/newview/skins/default/xui/da/floater_inspect.xml index 8361733e23eaf2f7ad0d793db9ab2b9bb158a5bf..56c3f6f78446f8a936c26e5ae358a00b6c67b5a4 100644 --- a/indra/newview/skins/default/xui/da/floater_inspect.xml +++ b/indra/newview/skins/default/xui/da/floater_inspect.xml @@ -1,13 +1,11 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="inspect" > +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="inspect" title="Inspecér objekter"> <scroll_list name="object_list" tool_tip="Vælg et objekt fra listen for at markere det"> - <column label="Objekt navn" name="object_name" /> - <column label="Objekt ejer" name="owner_name" /> - <column label="Bygget af" name="creator_name" /> - <column label="Lavet den " name="creation_date" /> + <column label="Objekt navn" name="object_name"/> + <column label="Objekt ejer" name="owner_name"/> + <column label="Bygget af" name="creator_name"/> + <column label="Lavet den " name="creation_date"/> </scroll_list> - <button label="Se profil for ejer..." label_selected="" name="button owner" - tool_tip="Se profilen for ejeren af det markerede objekt pÃ¥ listen" /> - <button label="Se profil for bygger..." label_selected="" name="button creator" - tool_tip="Se profilen for den beboer der har bygget det markerede objekt pÃ¥ listen" /> + <button label="Se profil for ejer..." label_selected="" name="button owner" tool_tip="Se profilen for ejeren af det markerede objekt pÃ¥ listen"/> + <button label="Se profil for bygger..." label_selected="" name="button creator" tool_tip="Se profilen for den beboer der har bygget det markerede objekt pÃ¥ listen"/> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml index 8eb39f2f7982d0a62561016ee29fd687e1f42517..60a7d78aead06f12d4d47cb5da58ace3b46e6b9c 100644 --- a/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml @@ -15,7 +15,7 @@ <button label="Ingen" label_selected="Ingen" name="None" /> <check_box label="Vis altid mapper" name="check_show_empty" /> <check_box label="Siden sidste logoff" name="check_since_logoff" /> - <text type="string" length="1" name="- OR -"> + <text name="- OR -"> - ELLER - </text> <spinner label="Timer siden" name="spin_hours_ago" /> diff --git a/indra/newview/skins/default/xui/da/floater_joystick.xml b/indra/newview/skins/default/xui/da/floater_joystick.xml index 72439ac4e0f6261bf0657985575ed79136cce343..280650a04b2b8136f4cbec17084ef1b86f1113ef 100644 --- a/indra/newview/skins/default/xui/da/floater_joystick.xml +++ b/indra/newview/skins/default/xui/da/floater_joystick.xml @@ -1,30 +1,22 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="Joystick opsætning"> - <check_box name="enable_joystick"> - Aktiver Joystick: - </check_box> - <spinner label="X akse mapping" name="JoystickAxis1" /> - <spinner label="Y akse mapping" name="JoystickAxis2" /> - <spinner label="Z akse mapping" name="JoystickAxis0" /> - <spinner label="Hældning mapping" name="JoystickAxis4" /> - <spinner label="Drejning mapping" name="JoystickAxis5" /> - <spinner label="Rulning mapping" name="JoystickAxis3" /> - <spinner label="Zoom mapping" name="JoystickAxis6" /> - <check_box label="Direkte zoom" name="ZoomDirect" /> - <check_box label="3D Cursor" name="Cursor3D" /> - <check_box label="Auto opret" name="AutoLeveling" /> - <text type="string" length="1" name="Control Modes:"> + <check_box name="enable_joystick" label="Aktiver Joystick:"/> + <spinner label="X akse mapping" name="JoystickAxis1"/> + <spinner label="Y akse mapping" name="JoystickAxis2"/> + <spinner label="Z akse mapping" name="JoystickAxis0"/> + <spinner label="Hældning mapping" name="JoystickAxis4"/> + <spinner label="Drejning mapping" name="JoystickAxis5"/> + <spinner label="Rulning mapping" name="JoystickAxis3"/> + <spinner label="Zoom mapping" name="JoystickAxis6"/> + <check_box label="Direkte zoom" name="ZoomDirect"/> + <check_box label="3D Cursor" name="Cursor3D"/> + <check_box label="Auto opret" name="AutoLeveling"/> + <text name="Control Modes:"> Kontrollér: </text> - <check_box name="JoystickAvatarEnabled"> - Avatar - </check_box> - <check_box name="JoystickBuildEnabled"> - Build - </check_box> - <check_box name="JoystickFlycamEnabled"> - Flycam - </check_box> + <check_box name="JoystickAvatarEnabled" label="Avatar"/> + <check_box name="JoystickBuildEnabled" label="Build"/> + <check_box name="JoystickFlycamEnabled" label="Flycam"/> <text name="XScale"> X følsomhed </text> @@ -64,24 +56,28 @@ <text name="Feathering"> Respons </text> - <slider label="" name="AvatarFeathering" /> - <slider label="" name="BuildFeathering" /> - <slider label="" name="FlycamFeathering" /> + <slider label="" name="AvatarFeathering"/> + <slider label="" name="BuildFeathering"/> + <slider label="" name="FlycamFeathering"/> <text name="ZoomScale2"> Zoom følsomhed </text> - <spinner label="" name="FlycamAxisScale6" /> + <spinner label="" name="FlycamAxisScale6"/> <text name="ZoomDeadZone"> Zoom min. udslag </text> - <spinner label="" name="FlycamAxisDeadZone6" /> - <button label="SpaceNavigator Defaults" name="SpaceNavigatorDefaults" /> - <string name="JoystickMonitor"> - Joystick OvervÃ¥gning - </string> - <string name="Axis"> - Akse [NUM] - </string> + <spinner label="" name="FlycamAxisDeadZone6"/> + <button label="SpaceNavigator Defaults" name="SpaceNavigatorDefaults"/> + <button label="OK" label_selected="OK" name="ok_btn"/> + <button label="Annullér" label_selected="Annullér" name="cancel_btn"/> + <stat_view label="Joystick OvervÃ¥gning" name="axis_view"> + <stat_bar label="Akse 0" name="axis0"/> + <stat_bar label="Akse 1" name="axis1"/> + <stat_bar label="Akse 2" name="axis2"/> + <stat_bar label="Akse 3" name="axis3"/> + <stat_bar label="Akse 4" name="axis4"/> + <stat_bar label="Akse 5" name="axis5"/> + </stat_view> <string name="NoDevice"> intet joystick fundet </string> diff --git a/indra/newview/skins/default/xui/da/floater_lagmeter.xml b/indra/newview/skins/default/xui/da/floater_lagmeter.xml index b2cbebfe524a3cf6b0965a0f05d7c150481cdca4..7e7c2dc0d3eb4558662e482069489b5ca1f5b4ac 100644 --- a/indra/newview/skins/default/xui/da/floater_lagmeter.xml +++ b/indra/newview/skins/default/xui/da/floater_lagmeter.xml @@ -1,29 +1,28 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_lagmeter" title="Lag mÃ¥ler"> - <button label="" label_selected="" name="client_lagmeter" /> + <button label="" label_selected="" name="client_lagmeter" tool_tip="Status for klient lag"/> <text name="client"> Klient: </text> <text name="client_text"> Normal </text> - <button label="" label_selected="" name="network_lagmeter" - tool_tip="Network lag status" /> + <button label="" label_selected="" name="network_lagmeter" tool_tip="Network lag status"/> <text name="network"> Netværk: </text> <text name="network_text"> Normal </text> - <button label="" label_selected="" name="server_lagmeter" /> + <button label="" label_selected="" name="server_lagmeter" tool_tip="Status for server lag"/> <text name="server"> Server: </text> <text name="server_text"> Normal </text> - <button label="?" name="server_help" /> - <button label=">>" name="minimize" /> + <button label="?" name="server_help"/> + <button label=">>" name="minimize"/> <string name="max_title_msg"> Lag mÃ¥ler </string> @@ -126,9 +125,6 @@ <string name="server_frame_time_normal_msg"> Normal </string> - <string name="server_frame_time_normal_msg"> - Normal - </string> <string name="server_physics_cause_msg"> Mulig Ã¥rsag: For mange fysiske objekter </string> diff --git a/indra/newview/skins/default/xui/da/floater_land_holdings.xml b/indra/newview/skins/default/xui/da/floater_land_holdings.xml index fcb159664c1c8087da3ca36aae4edb0551236efc..bd623e7b75726127cc0b86eae650403b95af503a 100644 --- a/indra/newview/skins/default/xui/da/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/da/floater_land_holdings.xml @@ -1,19 +1,20 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="land holdings floater" title="Mit land"> <scroll_list name="parcel list"> - <column label="Navn" name="name" /> - <column label="Lokation" name="location" /> - <column label="OmrÃ¥de" name="area" /> - <column label="" name="hidden" /> + <column label="Navn" name="name"/> + <column label="Region" name="location"/> + <column label="Type" name="type"/> + <column label="OmrÃ¥de" name="area"/> + <column label="" name="hidden"/> </scroll_list> - <button label="Teleport" label_selected="Teleport" name="Teleport" /> - <button label="Vis pÃ¥ kort" label_selected="Vis pÃ¥ kort" name="Show on Map" /> + <button label="Teleport" label_selected="Teleport" name="Teleport" tool_tip="Teleport til centrum pÃ¥ dette land."/> + <button label="Vis pÃ¥ kort" label_selected="Vis pÃ¥ kort" name="Show on Map" tool_tip="Vis dette land pÃ¥ verdenskortet."/> <text name="contrib_label"> Bidrag til dine grupper: </text> <scroll_list name="grant list"> - <column label="Gruppe" name="group" /> - <column label="OmrÃ¥de" name="area" /> + <column label="Gruppe" name="group"/> + <column label="OmrÃ¥de" name="area"/> </scroll_list> <text name="allowed_label"> Tilladt land ifølge nuværende betalingsaftale: diff --git a/indra/newview/skins/default/xui/da/floater_lsl_guide.xml b/indra/newview/skins/default/xui/da/floater_lsl_guide.xml index 07ea6930ea1380a86a8b02e9843cf10a4a2e3f49..d345409859118315a03f0e0a7a85737011bb37fa 100644 --- a/indra/newview/skins/default/xui/da/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/da/floater_lsl_guide.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="script ed float" title="LSL Wiki"> <check_box label="Følg markøreren" name="lock_check" /> - <combo_box label="LÃ¥s" name="history_combo" /> + <combo_box label="LÃ¥s" name="history_combo" left_delta="114" width="70"/> <button label="Tilbage" name="back_btn" /> <button label="Frem" name="fwd_btn" /> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_map.xml b/indra/newview/skins/default/xui/da/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..b30205310a1699bb1135a0ab2ea327c68037cb88 --- /dev/null +++ b/indra/newview/skins/default/xui/da/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + N + </floater.string> + <floater.string name="mini_map_east"> + Ø + </floater.string> + <floater.string name="mini_map_west"> + V + </floater.string> + <floater.string name="mini_map_south"> + S + </floater.string> + <floater.string name="mini_map_southeast"> + SØ + </floater.string> + <floater.string name="mini_map_northeast"> + NØ + </floater.string> + <floater.string name="mini_map_southwest"> + SV + </floater.string> + <floater.string name="mini_map_northwest"> + NV + </floater.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="Ø" name="floater_map_east" text="Ø"> + Ø + </text> + <text label="V" name="floater_map_west" text="V"> + V + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SØ" name="floater_map_southeast" text="SØ"> + SØ + </text> + <text label="NØ" name="floater_map_northeast" text="NØ"> + NØ + </text> + <text label="SV" name="floater_map_southwest" text="SV"> + SV + </text> + <text label="NV" name="floater_map_northwest" text="NV"> + NV + </text> +</floater> diff --git a/indra/newview/skins/default/xui/da/floater_moveview.xml b/indra/newview/skins/default/xui/da/floater_moveview.xml index 70f3d9e3fdf038bd8ad1c6e1145ec58116540e53..2b505288810c20458ab3030e834ad450de709c26 100644 --- a/indra/newview/skins/default/xui/da/floater_moveview.xml +++ b/indra/newview/skins/default/xui/da/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Drej til venstre" /> <button label="" label_selected="" name="turn right btn" tool_tip="Drej til højre" /> <button label="" label_selected="" name="move up btn" tool_tip="Hop eller flyv op" /> @@ -8,4 +9,5 @@ <joystick_slide name="slide right btn" tool_tip="GÃ¥ til højre" /> <joystick_turn name="forward btn" tool_tip="GÃ¥ fremad" /> <joystick_turn name="backward btn" tool_tip="GÃ¥ bagud" /> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_openobject.xml b/indra/newview/skins/default/xui/da/floater_openobject.xml index 12e4a95a5e4ad6741ba323f8f2f53c67845771cc..d37e3177fa11d096c6cb0a95d730243ceac385c0 100644 --- a/indra/newview/skins/default/xui/da/floater_openobject.xml +++ b/indra/newview/skins/default/xui/da/floater_openobject.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="objectcontents" title="Objekt indhold"> - <text type="string" length="1" name="object_name"> + <text name="object_name"> [DESC]: </text> <button label="Kopiér til beholdning" label_selected="Kopiér til beholdning" diff --git a/indra/newview/skins/default/xui/da/floater_pay.xml b/indra/newview/skins/default/xui/da/floater_pay.xml index cca4240934f540acb9b043511147e0f3ef6afe01..f39cfa487177e2eb0e96e2268ec9cb9d1377c4d9 100644 --- a/indra/newview/skins/default/xui/da/floater_pay.xml +++ b/indra/newview/skins/default/xui/da/floater_pay.xml @@ -6,16 +6,16 @@ <button label="L$20" label_selected="L$20" name="fastpay 20" /> <button label="Betal" label_selected="Betal" name="pay btn" /> <button label="Annullér" label_selected="Annullér" name="cancel btn" /> - <text type="string" length="1" name="payee_label" left="5" width="81"> + <text name="payee_label" left="5" width="81"> Betal beboer: </text> - <text type="string" length="1" name="payee_name"> + <text name="payee_name"> [FIRST] [LAST] </text> - <text type="string" length="1" name="fastpay text"> + <text name="fastpay text"> Hurtig betal: </text> - <text type="string" length="1" name="amount text" left="4" > + <text name="amount text" left="4" > Beløb: </text> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_pay_object.xml b/indra/newview/skins/default/xui/da/floater_pay_object.xml index 465f7e8e3ea43ee70d3fab3304b1b656abdf9ccb..09e2e3f5d0b496ab473041fc0671bf49bf070c0d 100644 --- a/indra/newview/skins/default/xui/da/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/da/floater_pay_object.xml @@ -1,24 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Give Money" title=""> - <text type="string" length="1" name="payee_group"> + <text name="payee_group"> Betal gruppe: </text> - <text type="string" length="1" name="payee_resident"> + <text name="payee_resident"> Betal beboer: </text> - <text type="string" length="1" name="payee_name"> + <text name="payee_name"> [FIRST] [LAST] </text> - <text type="string" length="1" name="object_name_label"> + <text name="object_name_label"> Via objekt: </text> - <text type="string" length="1" name="object_name_text"> + <text name="object_name_text"> ... </text> - <text type="string" length="1" name="fastpay text"> + <text name="fastpay text"> Hurtig betal: </text> - <text type="string" length="1" name="amount text"> + <text name="amount text"> Beløb: </text> <button label="L$1" label_selected="L$1" name="fastpay 1" /> diff --git a/indra/newview/skins/default/xui/da/floater_preview_animation.xml b/indra/newview/skins/default/xui/da/floater_preview_animation.xml index 14cf13e3176876fe31e5508430565f95ed380a43..1494bf36d08266c17430792feb592336f006bef3 100644 --- a/indra/newview/skins/default/xui/da/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/da/floater_preview_animation.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_anim"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beskrivelse: </text> <button label="Afspil i verden" label_selected="Stop" name="Anim play btn" diff --git a/indra/newview/skins/default/xui/da/floater_preview_notecard.xml b/indra/newview/skins/default/xui/da/floater_preview_notecard.xml index c9bee41b6a630ffee72c66821eb8827aa9c73a88..68d04d6f9b89c7308d4bb8cefa02843baffd3c70 100644 --- a/indra/newview/skins/default/xui/da/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/da/floater_preview_notecard.xml @@ -1,12 +1,15 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview notecard" title="Note:"> - <button label="Gem" label_selected="Gem" name="Save" /> - <text type="string" length="1" name="desc txt"> + <button label="Gem" label_selected="Gem" name="Save"/> + <text name="desc txt"> Beskrivelse: </text> - <text_editor type="string" length="1" name="Notecard Editor"> + <text_editor name="Notecard Editor"> Indlæser... </text_editor> + <string name="no_object"> + Kunne ikke finde objekt der indeholder denne note. + </string> <string name="not_allowed"> Du har ikke tilladelse til at læse denne note. </string> diff --git a/indra/newview/skins/default/xui/da/floater_preview_sound.xml b/indra/newview/skins/default/xui/da/floater_preview_sound.xml index 95a068ae65b21fd6a713c69b4caeb23425c6782c..9fbfba88b5c7086d067d13b667bfca9faaa37e3b 100644 --- a/indra/newview/skins/default/xui/da/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/da/floater_preview_sound.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_sound"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beskrivelse: </text> <button label="Afspil lokalt" label_selected="Afspil lokalt" name="Sound audition btn" diff --git a/indra/newview/skins/default/xui/da/floater_preview_texture.xml b/indra/newview/skins/default/xui/da/floater_preview_texture.xml index 593e32e4bf92604a632eb4fafdb914e741652c28..250659f249f8399763d81fb08273f3ef9c22587a 100644 --- a/indra/newview/skins/default/xui/da/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/da/floater_preview_texture.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_texture"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beskrivelse: </text> - <text type="string" length="1" name="dimensions"> + <text name="dimensions"> Størrelse: [WIDTH] x [HEIGHT] </text> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_report_abuse.xml b/indra/newview/skins/default/xui/da/floater_report_abuse.xml index 804051e62c8c53433b5b1359f72e46df0630816b..01f152c43adbf2d064bdcebff2ce4b5bcaadc9fe 100644 --- a/indra/newview/skins/default/xui/da/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/da/floater_report_abuse.xml @@ -40,9 +40,7 @@ <combo_box.item name="Select_category" label="Vælg kategori"/> <combo_box.item name="Age__Age_play" label="Alder > Falsk alder"/> <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Alder > Voksen beboer pÃ¥ Teen Second Life"/> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - Alder > MindreÃ¥rig beboer udenfor Teen Second Life - </combo_item> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Alder > MindreÃ¥rig beboer udenfor Teen Second Life"/> <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Overfald > Kamp sandkasse / Usikkert omrÃ¥de"/> <combo_box.item name="Assault__Safe_area" label="Overfald > Sikkert omrÃ¥de"/> <combo_box.item name="Assault__Weapons_testing_sandbox" label="Overfald > Sandkasse til vÃ¥bentest"/> @@ -67,12 +65,8 @@ <combo_box.item name="Harassment__Verbal_abuse" label="Chikane > Verbalt chikane"/> <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Uanstændighed > Meget stødende indhold eller adfærd"/> <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Uanstændighed > Upassende avatar navn"/> - <combo_item name="Indecency__Mature_content_in_PG_region"> - Usømmelighed > Upassende inhold eller opførsel i en 'PG' region - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - Usømmelighed > Upassende inhold eller opførsel i en 'Mature' region - </combo_item> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="Usømmelighed > Upassende inhold eller opførsel i en 'PG' region"/> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Usømmelighed > Upassende inhold eller opførsel i en 'Mature' region"/> <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Krænkelse af intellektuelle ejendomsrettigheder > Indholds fjernelse"/> <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Krænkelse af intellektuelle ejendomsrettigheder > CopyBot eller omgÃ¥else af rettighedsbeskyttelse"/> <combo_box.item name="Intolerance" label="Intolerance"/> diff --git a/indra/newview/skins/default/xui/da/floater_script_preview.xml b/indra/newview/skins/default/xui/da/floater_script_preview.xml index 26371d864fb764dca0f1877e688a27f2250b65f3..6990e8db0eed66a268347261ee8ac62c39d3fd9e 100644 --- a/indra/newview/skins/default/xui/da/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/da/floater_script_preview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview lsl text" title="Script: Rotation Script"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beskrivelse: </text> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_script_search.xml b/indra/newview/skins/default/xui/da/floater_script_search.xml index 9f51d3bbfdce4c2d236cb2d6cb93330c4588228b..d4dae8951f3a14b03fcfe5269eccf44fea349f7c 100644 --- a/indra/newview/skins/default/xui/da/floater_script_search.xml +++ b/indra/newview/skins/default/xui/da/floater_script_search.xml @@ -4,10 +4,10 @@ <button label="Søg" label_selected="Søg" name="search_btn" /> <button label="Erstat" label_selected="Erstat" name="replace_btn" /> <button label="Erstat alle" label_selected="Erstat alle" name="replace_all_btn" /> - <text type="string" length="1" name="txt"> + <text name="txt"> Søg </text> - <text type="string" length="1" name="txt2"> + <text name="txt2"> Erstat </text> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_select_key.xml b/indra/newview/skins/default/xui/da/floater_select_key.xml index 53bb7dd525cc865948fb23955310ff32157284ee..7fa868a3a9f0febc8af3b6567d79c1ed7783c9a9 100644 --- a/indra/newview/skins/default/xui/da/floater_select_key.xml +++ b/indra/newview/skins/default/xui/da/floater_select_key.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="modal container" title=""> <button label="Annullér" label_selected="Annullér" name="Cancel" /> - <text type="string" length="1" name="Save item as:"> + <text name="Save item as:"> Tryk pÃ¥ en taste for at vælge </text> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_snapshot.xml b/indra/newview/skins/default/xui/da/floater_snapshot.xml index ed715bdb3929715aa69acdf8dc84b1b05eef6659..d7a51798907c3d4751a40ed57333f6522614d974 100644 --- a/indra/newview/skins/default/xui/da/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/da/floater_snapshot.xml @@ -15,12 +15,8 @@ <button label="Send" name="send_btn"/> <button label="Gem (L$[AMOUNT])" name="upload_btn"/> <flyout_button label="Gem" name="save_btn" tool_tip="Gem billede i pÃ¥ din computer"> - <flyout_button_item name="save_item"> - Gem - </flyout_button_item> - <flyout_button_item name="saveas_item"> - Gem som... - </flyout_button_item> + <flyout_button_item name="save_item" label="Gem"/> + <flyout_button_item name="saveas_item" label="Gem som..."/> </flyout_button> <button label="Annullér" name="discard_btn"/> <button label="Mere >>" name="more_btn" tool_tip="Avancerede valg"/> diff --git a/indra/newview/skins/default/xui/da/floater_sound_preview.xml b/indra/newview/skins/default/xui/da/floater_sound_preview.xml index c0d2f76ea9c82fdcee67756fdffce43d68f3b255..606d290e1dba237a4c5c2d761e397994d098c4de 100644 --- a/indra/newview/skins/default/xui/da/floater_sound_preview.xml +++ b/indra/newview/skins/default/xui/da/floater_sound_preview.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="Name/Description" title="sound.wav"> +<floater name="Sound Preview" title="sound.wav"> <text name="name_label"> Navn: </text> diff --git a/indra/newview/skins/default/xui/da/floater_telehub.xml b/indra/newview/skins/default/xui/da/floater_telehub.xml index 32c5448508a6bc4d6b72555ce1f0a592f6de32d7..cd1fb3383118000d806b982bcc4c1fff379259e6 100644 --- a/indra/newview/skins/default/xui/da/floater_telehub.xml +++ b/indra/newview/skins/default/xui/da/floater_telehub.xml @@ -14,15 +14,15 @@ </text> <button label="Forbind telehub" name="connect_btn" /> <button label="Afslut" name="disconnect_btn" /> - <text name="spawn_points_text"> + <text name="spawn_points_text" width="300"> Ankomst punkter (positioner, ikke objekter): </text> <button label="Tilføj punkt" name="add_spawn_point_btn" /> <button label="Fjern punkt" name="remove_spawn_point_btn" /> <text name="spawn_point_help"> - Vælg objekt og klik pÃ¥ 'Tilføj punkt'for at angive position. -Du kan derefter flytte eller slette objektet. -Positioner er i forhold til telehub center. + Vælg objekt og klik pÃ¥ 'Tilføj punkt'for at angive +position. Du kan derefter flytte eller slette +objektet. Positioner er i forhold til telehub center. Vælg emne i listen for at vise position i verden. </text> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml index 513a629bfa25b26fdac164623a81caa1c1e67dff..c35e3aec4c8bb28b7965fc07748f393ef51d8f81 100644 --- a/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml @@ -3,10 +3,10 @@ <string name="choose_picture"> Klik for at vælge et billede </string> - <text type="string" length="1" name="Multiple"> + <text name="Multiple"> Flere </text> - <text type="string" length="1" name="unknown"> + <text name="unknown"> Størrelse: [DIMENSIONS] </text> <button label="Standard" label_selected="Standard" name="Default" /> diff --git a/indra/newview/skins/default/xui/da/floater_tools.xml b/indra/newview/skins/default/xui/da/floater_tools.xml index ccb8c67b687166ddd9552249ae77beec324d7ba4..a509d5f046711775d151b19dc25b97444a8a4d6e 100644 --- a/indra/newview/skins/default/xui/da/floater_tools.xml +++ b/indra/newview/skins/default/xui/da/floater_tools.xml @@ -5,16 +5,22 @@ <button label="" label_selected="" name="button edit" tool_tip="Redigér"/> <button label="" label_selected="" name="button create" tool_tip="Opret"/> <button label="" label_selected="" name="button land" tool_tip="Land"/> - <check_box label="Zoom" name="radio zoom"/> - <check_box label="Kredsløb (Ctrl)" name="radio orbit"/> - <check_box label="Panorér (Ctrl-Shift)" name="radio pan"/> - <check_box label="Flyt" name="radio move"/> - <check_box label="Løft (Ctrl)" name="radio lift"/> - <check_box label="Spin (Ctrl-Shift)" name="radio spin"/> - <check_box label="Position" name="radio position"/> - <check_box label="Rotér (Ctrl)" name="radio rotate"/> - <check_box label="Stræk (Ctrl-Shift)" name="radio stretch"/> - <check_box label="Vælg tekstur" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="Zoom" name="radio zoom"/> + <radio_item label="Kredsløb (Ctrl)" name="radio orbit"/> + <radio_item label="Panorér (Ctrl-Shift)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="Flyt" name="radio move"/> + <radio_item label="Løft (Ctrl)" name="radio lift"/> + <radio_item label="Spin (Ctrl-Shift)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="Position" name="radio position"/> + <radio_item label="Rotér (Ctrl)" name="radio rotate"/> + <radio_item label="Stræk (Ctrl-Shift)" name="radio stretch"/> + <radio_item label="Vælg tekstur" name="radio select face"/> + </radio_group> <check_box label="Redigér sammenlænkede dele" name="checkbox edit linked parts"/> <text name="text ruler mode"> Lineal: @@ -50,25 +56,27 @@ <check_box label="Kopiér valgte" name="checkbox copy selection" /> <check_box label="Centreret kopi" name="checkbox copy centers" /> <check_box label="Rotér" name="checkbox copy rotates" /> - <check_box label="Vælg" name="radio select land" /> - <check_box label="Udflad" name="radio flatten" /> - <check_box label="Hæv" name="radio raise" /> - <check_box label="Sænk" name="radio lower" /> - <check_box label="Udjævn" name="radio smooth" /> - <check_box label="Gør ujævnt" name="radio noise" /> - <check_box label="Tilbagefør" name="radio revert" /> + <radio_group name="land_radio_group"> + <radio_item label="Vælg" name="radio select land" /> + <radio_item label="Udflad" name="radio flatten" /> + <radio_item label="Hæv" name="radio raise" /> + <radio_item label="Sænk" name="radio lower" /> + <radio_item label="Udjævn" name="radio smooth" /> + <radio_item label="Gør ujævnt" name="radio noise" /> + <radio_item label="Tilbagefør" name="radio revert" /> + </radio_group> <combo_box name="combobox brush size"> <combo_box.item name="Small" label="Lille"/> - <combo_box.item name ="Medium" label="Mellem"/> + <combo_box.item name="Medium" label="Mellem"/> <combo_box.item name="Large" label="Stor"/> </combo_box> - <text type="string" length="1" name="Strength:"> + <text name="Strength:"> Styrke: </text> <text name="Dozer Size:"> Størrelse </text> - <text length="1" name="Strength:" type="string"> + <text name="Strength:"> Styrke </text> <text name="obj_count"> @@ -109,9 +117,7 @@ <text name="Permissions:"> Tilladelser: </text> - <text name="perm_modify"> - Du kan redigére dette objekt. - </text> + <check_box label="Del med gruppe" name="checkbox share with group" tool_tip="Tillad gruppemedlemmer at flytte, ændre, kopiere og slette."/> <string name="text deed continued"> Deed... @@ -127,17 +133,12 @@ <text name="Cost"> Pris: L$ </text> - <radio_group name="sale type"> - <radio_item name="Original" label="Original" /> - <radio_item name="Copy" label="Kopi" /> - <radio_item name="Contents" label="Indhold" /> - </radio_group> - <text name="Next owner can:"> - Næste ejer kan: - </text> - <check_box label="Redigére" name="checkbox next owner can modify"/> - <check_box label="Kopiére" name="checkbox next owner can copy" left_delta="80"/> - <check_box label="Sælge/Give væk" name="checkbox next owner can transfer" left_delta="67"/> + <combo_box name="sale type"> + <combo_box.item label="Kopi" name="Copy"/> + <combo_box.item label="Indhold" name="Contents"/> + <combo_box.item label="Original" name="Original"/> + </combo_box> + <text name="label click action"> NÃ¥r der venstreklikkes: </text> @@ -150,6 +151,10 @@ <combo_box.item name="Play" label="Afspil medie pÃ¥ parcel"/> <combo_box.item name="Opemmedia" label="Ã…ben media pÃ¥ parcel"/> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + Du kan redigére dette objekt. + </text> <text name="B:"> B: </text> @@ -168,6 +173,13 @@ <text name="F:"> F: </text> + <text name="Next owner can:"> + Næste ejer kan: + </text> + <check_box label="Redigére" name="checkbox next owner can modify"/> + <check_box label="Kopiére" name="checkbox next owner can copy" left_delta="80"/> + <check_box name="checkbox next owner can transfer" left_delta="67"/> + </panel> <string name="text modify info 1"> Du kan redigere dette objekt </string> @@ -320,7 +332,7 @@ Sting type </text> <combo_box name="sculpt type control"> - <combo_box.item name="None" label="ingen)"/> + <combo_box.item name="None" label="(ingen)"/> <combo_box.item name="Sphere" label="Sfære"/> <combo_box.item name="Torus" label="Kuglering"/> <combo_box.item name="Plane" label="Plan"/> @@ -465,43 +477,43 @@ <button label="Køb land..." label_selected="Køb land..." name="button buy land"/> <button label="Flyt fra land..." label_selected="Flyt fra land..." name="button abandon land"/> </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> Træk i de farvede bÃ¥nd for at rotere objekt - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> Klik og træk for at strække valgte side - </string> - <string name="status_move"> + </floater.string> + <floater.string name="status_move"> Træk for at flytte, hold shift nede for at kopiere - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_modifyland"> Klik og hold for at redigere land - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> Klik og træk for at ændre synsvinkel - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> Træk for at flytte objekter, Ctrl for at løfte, Ctrl-Shift for at rotere - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> Klik et sted i verden for at bygge - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> Klik og træk for at vælge land - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> Skærm - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> Lokalt - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> Verden - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> Reference - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> Vedhæng - </string> + </floater.string> </floater> diff --git a/indra/newview/skins/default/xui/da/floater_water.xml b/indra/newview/skins/default/xui/da/floater_water.xml index aa04fd805a652ad5363f2091598cad4829cba175..33a10579abb8d823a2ca12c00719edfd8883bf7e 100644 --- a/indra/newview/skins/default/xui/da/floater_water.xml +++ b/indra/newview/skins/default/xui/da/floater_water.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Water Floater" title="Avanceret opsætning af vand"> - <text type="string" length="1" name="KeyFramePresetsText"> + <text name="KeyFramePresetsText"> Vand opsætninger: </text> <button label="Ny" label_selected="Ny" name="WaterNewPreset" /> @@ -8,89 +8,89 @@ <button label="Slet" label_selected="Slet" name="WaterDeletePreset" /> <tab_container name="Water Tabs"> <panel label="Opsætning" name="Settings"> - <text type="string" length="1" name="BHText"> + <text name="BHText"> VandtÃ¥ge farve </text> <button label="?" name="WaterFogColorHelp" /> <color_swatch label="" name="WaterFogColor" tool_tip="Click to open Color Picker" /> - <text type="string" length="1" name="WaterFogDensText"> + <text name="WaterFogDensText"> TÃ¥ge tæthedskarakteristik </text> <button label="?" name="WaterFogDensityHelp" /> <slider label="" name="WaterFogDensity" /> - <text type="string" length="1" name="WaterUnderWaterFogModText"> + <text name="WaterUnderWaterFogModText"> Tilretning undervandstÃ¥ge </text> <button label="?" name="WaterUnderWaterFogModHelp" /> <slider label="" name="WaterUnderWaterFogMod" /> - <text type="string" length="1" name="BDensText"> + <text name="BDensText"> Lille bølge reflektionsskala </text> <button label="?" name="WaterNormalScaleHelp" /> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> 1 </text> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> 2 </text> - <text type="string" length="1" name="BHText4"> + <text name="BHText4"> 3 </text> <slider label="" name="WaterNormalScaleX" /> <slider label="" name="WaterNormalScaleY" /> <slider label="" name="WaterNormalScaleZ" /> - <text type="string" length="1" name="HDText"> + <text name="HDText"> Spredningsskala </text> <button label="?" name="WaterFresnelScaleHelp" /> <slider label="" name="WaterFresnelScale" /> - <text type="string" length="1" name="FresnelOffsetText"> + <text name="FresnelOffsetText"> Spredning offset </text> <button label="?" name="WaterFresnelOffsetHelp" /> <slider label="" name="WaterFresnelOffset" /> - <text type="string" length="1" name="DensMultText"> + <text name="DensMultText"> Lysbrydning fra oven </text> <button label="?" name="WaterScaleAboveHelp" /> <slider label="" name="WaterScaleAbove" /> - <text type="string" length="1" name="WaterScaleBelowText"> + <text name="WaterScaleBelowText"> Lysbrydning fra neden </text> <button label="?" name="WaterScaleBelowHelp" /> <slider label="" name="WaterScaleBelow" /> - <text type="string" length="1" name="MaxAltText"> + <text name="MaxAltText"> Udviskning </text> <button label="?" name="WaterBlurMultiplierHelp" /> <slider label="" name="WaterBlurMult" /> </panel> <panel label="Billede" name="Waves"> - <text type="string" length="1" name="BHText"> + <text name="BHText"> Retning for store bølger </text> <button label="?" name="WaterWave1Help" /> - <text type="string" length="1" name="WaterWave1DirXText"> + <text name="WaterWave1DirXText"> X </text> - <text type="string" length="1" name="WaterWave1DirYText"> + <text name="WaterWave1DirYText"> Y </text> <slider label="" name="WaterWave1DirX" /> <slider label="" name="WaterWave1DirY" /> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> Retning for smÃ¥ bølger </text> <button label="?" name="WaterWave2Help" /> - <text type="string" length="1" name="WaterWave2DirXText"> + <text name="WaterWave2DirXText"> X </text> - <text type="string" length="1" name="WaterWave2DirYText"> + <text name="WaterWave2DirYText"> Y </text> <slider label="" name="WaterWave2DirX" /> <slider label="" name="WaterWave2DirY" /> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> Tekstur map </text> <button label="?" name="WaterNormalMapHelp" /> diff --git a/indra/newview/skins/default/xui/da/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/da/floater_wearable_save_as.xml index 145768a7e3c3384e842141df6b7a4d80b4860f90..a70db6a6f1ea24ee4b97a2f679a097038020e858 100644 --- a/indra/newview/skins/default/xui/da/floater_wearable_save_as.xml +++ b/indra/newview/skins/default/xui/da/floater_wearable_save_as.xml @@ -2,7 +2,7 @@ <floater name="modal container" title=""> <button label="Gem" label_selected="Gem" name="Save" /> <button label="Annullér" label_selected="Annullér" name="Cancel" /> - <text type="string" length="1" name="Save item as:"> + <text name="Save item as:"> Gem ting som:: </text> <line_editor name="name ed"> diff --git a/indra/newview/skins/default/xui/da/floater_windlight_options.xml b/indra/newview/skins/default/xui/da/floater_windlight_options.xml index ecb8b77c52188fbbba93151b712e42bf68380cb9..9754b1f0743b84b2c5af999dbea4ec4f7cf6828b 100644 --- a/indra/newview/skins/default/xui/da/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/da/floater_windlight_options.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="WindLight floater" title="Avanceret opsætning for himmel"> - <text type="string" length="1" name="KeyFramePresetsText"> + <text name="KeyFramePresetsText"> Faste indstillinger: </text> <button label="Ny" label_selected="Ny" name="WLNewPreset" /> @@ -9,210 +9,210 @@ <button label="Dags cyklus" label_selected="Dags cyklus" name="WLDayCycleMenuButton" /> <tab_container name="WindLight Tabs"> <panel label="Atmosfære" name="Atmosphere"> - <text type="string" length="1" name="BHText"> + <text name="BHText"> BlÃ¥ - horisont </text> <button label="?" name="WLBlueHorizonHelp" /> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> R </text> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> G </text> - <text type="string" length="1" name="BHText4"> + <text name="BHText4"> B </text> - <text type="string" length="1" name="BHText5"> + <text name="BHText5"> I </text> <slider label="" name="WLBlueHorizonR" /> <slider label="" name="WLBlueHorizonG" /> <slider label="" name="WLBlueHorizonB" /> <slider label="" name="WLBlueHorizonI" /> - <text type="string" length="1" name="BDensText"> + <text name="BDensText"> Dis - horisont </text> <button label="?" name="WLHazeHorizonHelp" /> <slider label="" name="WLHazeHorizon" /> - <text type="string" length="1" name="BDensText2"> + <text name="BDensText2"> BlÃ¥ - tæthed </text> <button label="?" name="WLBlueDensityHelp" /> - <text type="string" length="1" name="BHText6"> + <text name="BHText6"> R </text> - <text type="string" length="1" name="BHText7"> + <text name="BHText7"> G </text> - <text type="string" length="1" name="BHText8"> + <text name="BHText8"> B </text> - <text type="string" length="1" name="BHText9"> + <text name="BHText9"> I </text> <slider label="" name="WLBlueDensityR" /> <slider label="" name="WLBlueDensityG" /> <slider label="" name="WLBlueDensityB" /> <slider label="" name="WLBlueDensityI" /> - <text type="string" length="1" name="HDText"> + <text name="HDText"> Dis - intensitet </text> <button label="?" name="WLHazeDensityHelp" /> <slider label="" name="WLHazeDensity" /> - <text type="string" length="1" name="DensMultText"> + <text name="DensMultText"> Densitet faktor </text> <button label="?" name="WLDensityMultHelp" /> <slider label="" name="WLDensityMult" /> - <text type="string" length="1" name="WLDistanceMultText"> + <text name="WLDistanceMultText"> Distance faktor </text> <button label="?" name="WLDistanceMultHelp" /> <slider label="" name="WLDistanceMult" /> - <text type="string" length="1" name="MaxAltText"> + <text name="MaxAltText"> Maximum højde </text> <button label="?" name="WLMaxAltitudeHelp" /> <slider label="" name="WLMaxAltitude" /> </panel> <panel label="Lys" name="Lighting"> - <text type="string" length="1" name="SLCText"> + <text name="SLCText"> Sol/MÃ¥ne farve </text> <button label="?" name="WLSunlightColorHelp" /> - <text type="string" length="1" name="BHText"> + <text name="BHText"> R </text> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> G </text> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> B </text> - <text type="string" length="1" name="BHText4"> + <text name="BHText4"> I </text> <slider label="" name="WLSunlightR" /> <slider label="" name="WLSunlightG" /> <slider label="" name="WLSunlightB" /> <slider label="" name="WLSunlightI" /> - <text type="string" length="1" name="TODText"> + <text name="TODText"> Sol/MÃ¥ne position </text> <button label="?" name="WLTimeOfDayHelp" /> <slider label="" name="WLSunAngle" /> - <text type="string" length="1" name="WLAmbientText"> + <text name="WLAmbientText"> Omgivende </text> <button label="?" name="WLAmbientHelp" /> - <text type="string" length="1" name="BHText5"> + <text name="BHText5"> R </text> - <text type="string" length="1" name="BHText6"> + <text name="BHText6"> G </text> - <text type="string" length="1" name="BHText7"> + <text name="BHText7"> B </text> - <text type="string" length="1" name="BHText8"> + <text name="BHText8"> I </text> <slider label="" name="WLAmbientR" /> <slider label="" name="WLAmbientG" /> <slider label="" name="WLAmbientB" /> <slider label="" name="WLAmbientI" /> - <text type="string" length="1" name="WLEastAngleText"> + <text name="WLEastAngleText"> Øst vinkel </text> <button label="?" name="WLEastAngleHelp" /> <slider label="" name="WLEastAngle" /> - <text type="string" length="1" name="SunGlowText"> + <text name="SunGlowText"> Sol glød </text> <button label="?" name="WLSunGlowHelp" /> <slider label="Fokus " name="WLGlowB" /> <slider label="Størr. " name="WLGlowR" /> - <text type="string" length="1" name="SceneGammaText"> + <text name="SceneGammaText"> Lysintensitet (gamma) </text> <button label="?" name="WLSceneGammaHelp" /> <slider label="" name="WLGamma" /> - <text type="string" length="1" name="WLStarText"> + <text name="WLStarText"> Stjerne intensitet </text> <button label="?" name="WLStarBrightnessHelp" /> <slider label="" name="WLStarAlpha" /> </panel> <panel label="Skyer" name="Clouds"> - <text type="string" length="1" name="WLCloudColorText"> + <text name="WLCloudColorText"> Farve pÃ¥ skyer </text> <button label="?" name="WLCloudColorHelp" /> - <text type="string" length="1" name="BHText"> + <text name="BHText"> R </text> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> G </text> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> B </text> - <text type="string" length="1" name="BHText4"> + <text name="BHText4"> I </text> <slider label="" name="WLCloudColorR" /> <slider label="" name="WLCloudColorG" /> <slider label="" name="WLCloudColorB" /> <slider label="" name="WLCloudColorI" /> - <text type="string" length="1" name="WLCloudColorText2"> + <text name="WLCloudColorText2"> Skyer XY/Tæthed </text> <button label="?" name="WLCloudDensityHelp" /> - <text type="string" length="1" name="BHText5"> + <text name="BHText5"> X </text> - <text type="string" length="1" name="BHText6"> + <text name="BHText6"> Y </text> - <text type="string" length="1" name="BHText7"> + <text name="BHText7"> T </text> <slider label="" name="WLCloudX" /> <slider label="" name="WLCloudY" /> <slider label="" name="WLCloudDensity" /> - <text type="string" length="1" name="WLCloudCoverageText"> + <text name="WLCloudCoverageText"> Skydække </text> <button label="?" name="WLCloudCoverageHelp" /> <slider label="" name="WLCloudCoverage" /> - <text type="string" length="1" name="WLCloudScaleText"> + <text name="WLCloudScaleText"> Skystørrelse </text> <button label="?" name="WLCloudScaleHelp" /> <slider label="" name="WLCloudScale" /> - <text type="string" length="1" name="WLCloudDetailText"> + <text name="WLCloudDetailText"> Sky detaljer(XY/tæthed) </text> <button label="?" name="WLCloudDetailHelp" /> - <text type="string" length="1" name="BHText8"> + <text name="BHText8"> X </text> - <text type="string" length="1" name="BHText9"> + <text name="BHText9"> Y </text> - <text type="string" length="1" name="BHText10"> + <text name="BHText10"> T </text> <slider label="" name="WLCloudDetailX" /> <slider label="" name="WLCloudDetailY" /> <slider label="" name="WLCloudDetailDensity" /> - <text type="string" length="1" name="WLCloudScrollXText"> + <text name="WLCloudScrollXText"> Sky drift X </text> <button label="?" name="WLCloudScrollXHelp" /> <check_box label="LÃ¥s" name="WLCloudLockX" /> <slider label="" name="WLCloudScrollX" /> - <text type="string" length="1" name="WLCloudScrollYText"> + <text name="WLCloudScrollYText"> Sky drift Y </text> <button label="?" name="WLCloudScrollYHelp" /> diff --git a/indra/newview/skins/default/xui/da/floater_world_map.xml b/indra/newview/skins/default/xui/da/floater_world_map.xml index 53c53dd707abb71430c51b5a6b76b01bc2075e80..d4b58f623298987af4293c5863260a86fc5e14e2 100644 --- a/indra/newview/skins/default/xui/da/floater_world_map.xml +++ b/indra/newview/skins/default/xui/da/floater_world_map.xml @@ -28,10 +28,10 @@ <check_box label="Mature" name="event_mature_chk"/> <check_box label="Adult" name="event_adult_chk"/> <combo_box label="Venner online" name="friend combo" tool_tip="Ven der skal vises pÃ¥ kortet"> - <combo_box.item name="none_selected" label="Venner online" /> + <combo_box.item name="item1" label="Venner online" /> </combo_box> <combo_box label="Landemærker" name="landmark combo" tool_tip="Landemærke der skal vises pÃ¥ kortet"> - <combo_box.item name="none_selected" label="Landemærker" /> + <combo_box.item name="item1" label="Landemærker" /> </combo_box> <line_editor label="Søg pÃ¥ region navn" name="location" tool_tip="Skriv navnet pÃ¥ en region"/> <button label="Søg" name="DoSearch" tool_tip="Søg efter en region"/> diff --git a/indra/newview/skins/default/xui/da/menu_inventory.xml b/indra/newview/skins/default/xui/da/menu_inventory.xml index 2c47703ef2a3bc222fcd828f8c95541e62c63319..fd5ebe5c828ccfd8e6784b1193eeedd4e526445d 100644 --- a/indra/newview/skins/default/xui/da/menu_inventory.xml +++ b/indra/newview/skins/default/xui/da/menu_inventory.xml @@ -55,6 +55,7 @@ <menu_item_call label="Aktivér" name="Activate" /> <menu_item_call label="Deaktivér" name="Deactivate" /> <menu_item_call label="Tag af dig selv" name="Detach From Yourself" /> + <menu_item_call label="Tilbage til sidste position" name="Restore to Last Position"/> <menu_item_call label="Tag pÃ¥" name="Object Wear" /> <menu label="Vedhæft" name="Attach To" /> <menu label="Vedhæft til HUD" name="Attach To HUD" /> diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml index d3e2ab83f2e6178cbef811a3dd35849574fb7bd2..5ab8e4eb3071c9a28e3ace8d3e2640bd8badc2eb 100644 --- a/indra/newview/skins/default/xui/da/notifications.xml +++ b/indra/newview/skins/default/xui/da/notifications.xml @@ -347,7 +347,7 @@ pÃ¥ Verdenskortet eller modtage status opdateringer. Tilbyd venskab til [NAME]? <form name="form"> - <input name="message" type="text"> + <input name="message"> Vil du være min ven? </input> <button name="Offer" text="OK"/> @@ -365,7 +365,7 @@ Tilbyd venskab til [NAME]? </notification> <notification name="OfferTeleport"> <form name="form"> - <input name="message" type="text"> + <input name="message"> Mød mig i [REGION] </input> <button name="OK" text="OK"/> @@ -533,7 +533,7 @@ Linden Lab </notification> <notification name="NewSkyPreset"> <form name="form"> - <input name="message" type="text"> + <input name="message"> Ny forudindstilling </input> <button name="OK" text="OK"/> @@ -542,7 +542,7 @@ Linden Lab </notification> <notification name="NewWaterPreset"> <form name="form"> - <input name="message" type="text"> + <input name="message"> Ny forudindstilling </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/da/panel_audio_device.xml b/indra/newview/skins/default/xui/da/panel_audio_device.xml index 6e6bfe39ffd7274e200a61710b99f6e170e3ce0d..f6d817540e9f7b3f56e17d8f4e721e940d8e24cb 100644 --- a/indra/newview/skins/default/xui/da/panel_audio_device.xml +++ b/indra/newview/skins/default/xui/da/panel_audio_device.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="device_settings"> - <text type="string" length="1" name="Audio Devices"> + <text name="Audio Devices"> Lydenheder </text> - <text type="string" length="1" name="Input device (microphone):"> + <text name="Input device (microphone):"> Input enhed (mikrofon): </text> - <text type="string" length="1" name="Output device (speakers):"> + <text name="Output device (speakers):"> Output enhed (højtalere): </text> - <text type="string" length="1" name="Input level:"> + <text name="Input level:"> Input niveau </text> - <text_editor type="string" length="1" name="voice_intro_text1"> + <text_editor name="voice_intro_text1"> Med denne skyder kan du regulere hvor højt du lyder i forhold til andre beboere. for at test input niveau kan du blot tale i mikrofon. </text_editor> <volume_slider name="mic_volume_slider" tool_tip="Ændre lydstyrke med denne skyder" /> diff --git a/indra/newview/skins/default/xui/da/panel_group_general.xml b/indra/newview/skins/default/xui/da/panel_group_general.xml index 393ac49725d76ce663b971cbf4835cce4832063a..edce758e7c8a60c73037aee4b754d1c457dbde92 100644 --- a/indra/newview/skins/default/xui/da/panel_group_general.xml +++ b/indra/newview/skins/default/xui/da/panel_group_general.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Generelt" name="general_tab"> <string name="help_text"> Generel-fanen indeholder generel information om @@ -10,28 +10,26 @@ Bevæg din mus over mulighederne for mere hjælp. <string name="group_info_unchanged"> Generel gruppeinformation er ændret. </string> - <button label="?" label_selected="?" name="help_button" /> - <line_editor label="Indtast nyt gruppenavn her" name="group_name_editor" /> + <button label="?" label_selected="?" name="help_button"/> + <line_editor label="Indtast nyt gruppenavn her" name="group_name_editor"/> <text name="group_name"> Skriv det nye gruppenavn her </text> <text name="prepend_founded_by"> Grundlagt af </text> - <text name="founder_name"> + <text name="founder_name" left_delta="70" > (venter) </text> <text name="group_charter_label"> Gruppens formÃ¥l </text> - <texture_picker label="Gruppe distinktioner" name="insignia" - tool_tip="Klik for at vælge et billede" /> + <texture_picker label="Gruppe distinktioner" name="insignia" tool_tip="Klik for at vælge et billede"/> <text_editor name="charter"> Gruppens formÃ¥l </text_editor> - <button label="Tilmeld (L$0)" label_selected="Tilmeld (L$0)" name="join_button" /> - <button label="Detaljeret visning" label_selected="Detaljeret visning" - name="info_button" /> + <button label="Tilmeld (L$0)" label_selected="Tilmeld (L$0)" name="join_button"/> + <button label="Detaljeret visning" label_selected="Detaljeret visning" name="info_button"/> <text name="text_owners_and_visible_members"> Ejere & synlige medlemmer </text> @@ -39,34 +37,31 @@ Bevæg din mus over mulighederne for mere hjælp. (Ejere er vist med fed skrift) </text> <name_list name="visible_members"> - <column label="Medlemsnavn" name="name" /> - <column label="Titel" name="title" /> - <column label="Senest pÃ¥ d." name="online" /> + <name_list.columns label="Medlemsnavn" name="name"/> + <name_list.columns label="Titel" name="title"/> + <name_list.columns label="Senest pÃ¥ d." name="online"/> </name_list> <text name="text_group_preferences"> Gruppeindstillinger </text> <panel name="preferences_container"> - <check_box label="Vis i søgning" name="show_in_group_list" - tool_tip="Lad folk se denne gruppe i søgeresultater." /> - <check_box label="Ã…ben tilmelding" name="open_enrollement" - tool_tip="Angiver om denne gruppe tillader nye medlemmer at tilmelde sig, uden de er inviteret." /> - <check_box label="Tilmeldingsgebyr: L$" name="check_enrollment_fee" - tool_tip="Angiver om der kræves et gebyr, for at tilmelde sig gruppen." /> - <spinner name="spin_enrollment_fee" - tool_tip="Nye medlemmer skal betale dette gebyr for at tilmelde sig gruppen, nÃ¥r Tilmeldingsgebyr er valgt." /> - + <check_box label="Vis i søgning" name="show_in_group_list" tool_tip="Lad folk se denne gruppe i søgeresultater."/> + <check_box label="Ã…ben tilmelding" name="open_enrollement" tool_tip="Angiver om denne gruppe tillader nye medlemmer at tilmelde sig, uden de er inviteret."/> + <check_box label="Tilmeldingsgebyr: L$" name="check_enrollment_fee" tool_tip="Angiver om der kræves et gebyr, for at tilmelde sig gruppen."/> + <spinner name="spin_enrollment_fee" tool_tip="Nye medlemmer skal betale dette gebyr for at tilmelde sig gruppen, nÃ¥r Tilmeldingsgebyr er valgt." width="60" left_delta="130"/> + <combo_box name="group_mature_check" tool_tip="Angiver om din gruppes information anses som 'mature'." width="150"> + <combo_box.item name="select_mature" label="- Vælg indholdsrating -"/> + <combo_box.item name="mature" label="Mature indhold"/> + <combo_box.item name="pg" label="PG indhold"/> + </combo_box> <panel name="title_container"> <text name="active_title_label"> Min aktive titel </text> - <combo_box length="150" name="active_title" - tool_tip="Angiver den titel der vises i din avatars navnefelt, nÃ¥r denne gruppe er aktiv." /> + <combo_box name="active_title" tool_tip="Angiver den titel der vises i din avatars navnefelt, nÃ¥r denne gruppe er aktiv."/> </panel> - <check_box label="Modtag gruppeinformationer" name="receive_notices" - tool_tip="Angiver om du vil modtage informationer fra denne gruppe. Fjern markeringen i boksen hvis gruppen spammer dig." /> - <check_box label="Vis gruppen i min profil" name="list_groups_in_profile" - tool_tip="Angiver om du vil vise denne gruppe i dine profilinformationer" /> + <check_box label="Modtag gruppeinformationer" name="receive_notices" tool_tip="Angiver om du vil modtage informationer fra denne gruppe. Fjern markeringen i boksen hvis gruppen spammer dig."/> + <check_box label="Vis gruppen i min profil" name="list_groups_in_profile" tool_tip="Angiver om du vil vise denne gruppe i dine profilinformationer"/> </panel> <string name="incomplete_member_data_str"> Henter medlemsinformationer diff --git a/indra/newview/skins/default/xui/da/panel_group_invite.xml b/indra/newview/skins/default/xui/da/panel_group_invite.xml index 6efc93daac5b8d020c9779091f2583ceda2f7dd0..813007aee07fec536a44d4cc1ea67821dff10d1a 100644 --- a/indra/newview/skins/default/xui/da/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/da/panel_group_invite.xml @@ -1,11 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel label="Invitér et medlem" name="invite_panel"> <text name="help_text"> - Du kan invitere flere beboere til at -blive medlem af din gruppe. Klik 'Ã…ben -personvælger' for at begynde. + Du kan invitere flere beboere ad +gangen til at blive medlem af din +gruppe. Klik 'Ã…ben personvælger' for +at begynde. </text> - <button label="Ã…ben personvælger" name="add_button" /> + <button label="Ã…ben personvælger" name="add_button" bottom_delta="-30"/> <name_list name="invitee_list" tool_tip="Hold Ctrl-tasten nede og klik pÃ¥ beboere for at vælge flere." /> <button label="Fjern valgte fra listen" name="remove_button" diff --git a/indra/newview/skins/default/xui/da/panel_group_land_money.xml b/indra/newview/skins/default/xui/da/panel_group_land_money.xml index 2ab89356092fb8c0689cc1cc21300044dfd4fa76..029922c413532300d7cae62855d7117f8ee7dd83 100644 --- a/indra/newview/skins/default/xui/da/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/da/panel_group_land_money.xml @@ -1,10 +1,9 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Land & L$" name="land_money_tab"> <string name="help_text"> - Grunde ejet af gruppen er vist sammen med bidragsdetaljer. En advarsel vises indtil Total land i brug er mindre end eller lig med det totale -bidrag. Planlægning, detaljer og salgsfaneblade viser information om gruppens økonomi. + Grunde ejet af gruppen er vist sammen med bidragsdetaljer. En advarsel vises indtil Total land i brug er mindre end eller lig med det totale bidrag. Planlægning, detaljer og salgsfaneblade viser information om gruppens økonomi. </string> - <button label="?" name="help_button" /> + <button label="?" name="help_button"/> <string name="cant_view_group_land_text"> Du har ikke tilladelse til at se gruppeejet land. </string> @@ -18,29 +17,30 @@ bidrag. Planlægning, detaljer og salgsfaneblade viser information om gruppens Gruppeejet land </text> <scroll_list name="group_parcel_list"> - <column label="Grundens navn" name="name" /> - <column label="Region" name="location" /> - <column label="OmrÃ¥de" name="area" /> - <column label="" name="hidden" /> + <column label="Grundens navn" name="name"/> + <column label="Region" name="location"/> + <column label="Type" name="type"/> + <column label="OmrÃ¥de" name="area"/> + <column label="" name="hidden"/> </scroll_list> - <button label="Vis pÃ¥ kort" label_selected="Vis pÃ¥ kort" name="map_button" /> + <button label="Vis pÃ¥ kort" label_selected="Vis pÃ¥ kort" name="map_button"/> <text name="total_contributed_land_label"> Total bidrag: </text> <text name="total_contributed_land_value"> - [AREA] kvadratmeter + [AREA] m² </text> <text name="total_land_in_use_label"> Total land i brug: </text> <text name="total_land_in_use_value"> - [AREA] kvadratmeter + [AREA] m² </text> <text name="land_available_label"> Tilgængeligt land: </text> <text name="land_available_value"> - [AREA] kvadratmeter + [AREA] m² </text> <text name="your_contribution_label"> Dit bidrag: @@ -49,32 +49,34 @@ bidrag. Planlægning, detaljer og salgsfaneblade viser information om gruppens Ikke muligt at lave dit bidrag til landet. </string> <text name="your_contribution_max_value"> - kvadratmeter ([AMOUNT] maks.) + m² ([AMOUNT] maks.) </text> <text name="group_over_limit_text"> - Gruppemedlemmer mÃ¥ bidrag med mere, for at understøtte med det land der bliver brugt. + Gruppemedlemmer mÃ¥ bidrag med mere, for at understøtte +med det land der bliver brugt. </text> <text name="group_money_heading"> Gruppe L$ </text> <tab_container name="group_money_tab_container"> + <panel label="Planlægning" name="group_money_planning_tab"> + <text_editor name="group_money_planning_text"> + Beregner... + </text_editor> + </panel> <panel label="Detaljer" name="group_money_details_tab"> <text_editor name="group_money_details_text"> Beregner... </text_editor> - <button label="< Før" label_selected="< Før" name="earlier_details_button" - tool_tip="GÃ¥ tilbage i tid" /> - <button label="Efter >" label_selected="Efter >" name="later_details_button" - tool_tip="GÃ¥ frem i tid" /> + <button label="< Før" label_selected="< Før" name="earlier_details_button" tool_tip="GÃ¥ tilbage i tid"/> + <button label="Efter >" label_selected="Efter >" name="later_details_button" tool_tip="GÃ¥ frem i tid"/> </panel> <panel label="Salg" name="group_money_sales_tab"> <text_editor name="group_money_sales_text"> Beregner... </text_editor> - <button label="< Før" label_selected="< Før" name="earlier_sales_button" - tool_tip="GÃ¥ tilbage i tid" /> - <button label="Efter >" label_selected="Efter >" name="later_sales_button" - tool_tip="GÃ¥ frem i tid" /> + <button label="< Før" label_selected="< Før" name="earlier_sales_button" tool_tip="GÃ¥ tilbage i tid"/> + <button label="Efter >" label_selected="Efter >" name="later_sales_button" tool_tip="GÃ¥ frem i tid"/> </panel> </tab_container> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_group_notices.xml b/indra/newview/skins/default/xui/da/panel_group_notices.xml index 103404e47beec5579ebaf24c9d446735cc2f04b3..9e6aa9eb7c1ae3152333b468c0db73efc1542e3c 100644 --- a/indra/newview/skins/default/xui/da/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/da/panel_group_notices.xml @@ -16,8 +16,7 @@ Generel-fanebladet. Arkiv med gruppebeskeder </text> <text name="lbl2"> - Beskeder er gemt i 14 dage. Klik pÃ¥ den besked herunder, du ønsker at se. -Klik pÃ¥ 'Genopfrisk'-knappen for at se, om nye beskeder er modtaget. + Beskeder er gemt i 14 dage. Listen er begrænset til 200 beskeder pr. gruppe hver dag. </text> <scroll_list name="notice_list"> @@ -36,10 +35,7 @@ Listen er begrænset til 200 beskeder pr. gruppe hver dag. Lav en besked </text> <text name="lbl2"> - Du skal skrive et emne for at sende beskeden. Du kan tilføje et -bilag til beskeden ved at trække den fra beholdningen til -dette felt. Vedhæftede objekter skal være sat til at kunne -kopieres og overføres, og du kan ikke sende en mappe. + Du kan tilføje et bilag til beskeden ved at trække den fra beholdningen til dette felt. Vedhæftede objekter skal være sat til at kunne kopieres og overføres, og du kan ikke sende en mappe. </text> <text name="lbl3"> Emne: diff --git a/indra/newview/skins/default/xui/da/panel_group_roles.xml b/indra/newview/skins/default/xui/da/panel_group_roles.xml index 2af84858a1ca84e7b29c3584b2b800b49b822f8c..5c2fd356d83e347edb387f59ed4205ac5aebcef7 100644 --- a/indra/newview/skins/default/xui/da/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/da/panel_group_roles.xml @@ -11,7 +11,7 @@ <text name="static"> Medlemmer & roller </text> - <text name="static2"> + <text name="static2" width="400"> Gruppemedlemmer fÃ¥r tildelt roller med rettigheder. Disse indstillinger kan let tilpasses efter ønske, sÃ¥ gruppen kan vokse og blive mere fleksibel. </text> @@ -20,10 +20,10 @@ let tilpasses efter ønske, sÃ¥ gruppen kan vokse og blive mere fleksibel. <text name="static"> Roller </text> - <text name="role_properties_modifiable"> - Vælg en rolle nedenfor. Du kan ændre dens navn, beskrivelse og medlemstitel. + <text name="role_properties_modifiable" width="400"> + Vælg en rolle nedenfor. Du kan ændre dens navn, beskrivelse og medlemstitel. </text> - <text name="role_properties_not_modifiable"> + <text name="role_properties_not_modifiable" width="400"> Vælg rolle forneden for at se dens egenskaber, medlemmer og rettigheder. </text> <text name="role_actions_modifiable"> @@ -51,7 +51,7 @@ der har denne rettighed. <column label="Doneret leje" name="donated" /> <column label="Sidst pÃ¥ den" name="online" /> </name_list> - <button label="Inviter ny person ..." name="member_invite" /> + <button label="Invitér nyt medlem..." name="member_invite"/> <button label="Udmeld" name="member_eject" /> <string name="help_text"> Du kan tilføje eller fjerne roller, der er tildelt medlemmerne. @@ -67,7 +67,7 @@ klik pÃ¥ deres navne. <column label="Titel" name="title" /> <column label="Medlemmer" name="members" /> </scroll_list> - <button label="Opret ny rolle ..." name="role_create" /> + <button label="Opret ny rolle..." name="role_create" /> <button label="Slet rolle" name="role_delete" /> <string name="help_text"> Roller har en titel og en tilladelsesliste med rettigheder, diff --git a/indra/newview/skins/default/xui/da/panel_groups.xml b/indra/newview/skins/default/xui/da/panel_groups.xml index b3a09b00827344426270dc16f4cfd51e8a7275a5..5877226e5704228925228edb1caa953ede05e641 100644 --- a/indra/newview/skins/default/xui/da/panel_groups.xml +++ b/indra/newview/skins/default/xui/da/panel_groups.xml @@ -3,10 +3,10 @@ <scroll_list name="group list"> <column label="" name="name" /> </scroll_list> - <text type="string" length="1" name="groupdesc"> + <text name="groupdesc" width="300"> Din nuværende aktive gruppe er fremhævet i listen. </text> - <text type="string" length="1" name="groupcount"> + <text name="groupcount" width="300"> Du er medlem i [COUNT] grupper (ud af maksimalt [MAX]). </text> <button label="IM/Opkald" name="IM" tool_tip="Ã…bner IM session" /> diff --git a/indra/newview/skins/default/xui/da/panel_login.xml b/indra/newview/skins/default/xui/da/panel_login.xml index 6f027782641a632a2d294eb2ff8e563385d2ccc9..1c5b0131040c35ebc97aeb4dc7d20cfb31a7a5fd 100644 --- a/indra/newview/skins/default/xui/da/panel_login.xml +++ b/indra/newview/skins/default/xui/da/panel_login.xml @@ -21,7 +21,7 @@ <combo_box name="start_location_combo"> <combo_box.item name="MyHome" label="Hjem" /> <combo_box.item name="MyLastLocation" label="Min sidste lokation" /> - <combo_box.item name="Typeregionname" label="lt;Skriv navn pÃ¥ region>" /> + <combo_box.item name="Typeregionname" label="<Skriv navn pÃ¥ region>" /> </combo_box> <check_box label="Husk password" name="remember_check" /> <button label="Log ind" label_selected="Log ind" name="connect_btn" /> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml new file mode 100644 index 0000000000000000000000000000000000000000..61f27d55431bff462bb903d9b639108ba49b6f04 --- /dev/null +++ b/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel name="advanced"> + <text name="AspectRatioLabel1" tool_tip="bredde / højde"> + Format: + </text> + <combo_box name="aspect_ratio" tool_tip="bredde/ højde"> + <combo_box.item label="4:3 (Standard CRT)" name="item1"/> + <combo_box.item label="5:4 (1280x1024 LCD)" name="item2"/> + <combo_box.item label="8:5 (Widescreen)" name="item3"/> + <combo_box.item label="16:9 (Widescreen)" name="item4"/> + </combo_box> +</panel> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml index e57b1515115deb825671353ab377a53475e35cd5..dee42b4de5b82e1d0c97d500feaf833f72070983 100644 --- a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml @@ -1,55 +1,61 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel label="Tekst chat" name="chat"> - <text type="string" length="1" name="text_box"> + <text name="text_box"> Chat skriftstørrelse: </text> <radio_group name="chat_font_size"> - <radio_item type="string" length="1" name="radio" label="Lille" /> - <radio_item type="string" length="1" name="radio2" label="Mellem" /> - <radio_item type="string" length="1" name="radio3" label="Stor" /> + <radio_item name="radio" label="Lille" /> + <radio_item name="radio2" label="Mellem" /> + <radio_item name="radio3" label="Stor" /> </radio_group> - <text type="string" length="1" name="text_box2"> - Chat farve: - </text> - <color_swatch label="Dig" name="user" /> - <color_swatch label="Andre" name="agent" /> - <color_swatch label="IM" name="im" /> - <color_swatch label="System" name="system" /> - <color_swatch label="Fejl" name="script_error" /> - <color_swatch label="Objekter" name="objects" /> - <color_swatch label="Ejer" name="owner" /> - <color_swatch label="Bobler" name="background" /> - <color_swatch label="URL'er" name="links" /> - <text type="string" length="1" name="text_box8"> - Script fejl: + <color_swatch label="Dig" name="user"/> + <text name="text_box1"> + Dig + </text> + <color_swatch label="Andre" name="agent"/> + <text name="text_box2"> + Andre + </text> + <color_swatch label="IM" name="im"/> + <text name="text_box3"> + IM + </text> + <color_swatch label="System" name="system"/> + <text name="text_box4"> + System + </text> + <color_swatch label="Fejl" name="script_error"/> + <text name="text_box5"> + Fejl + </text> + <color_swatch label="Objekter" name="objects"/> + <text name="text_box6"> + Objekter + </text> + <color_swatch label="Ejer" name="owner"/> + <text name="text_box7"> + Ejer + </text> + <color_swatch label="Bobler" name="background"/> + <text name="text_box8"> + Bobler + </text> + <color_swatch label="URL'er" name="links"/> + <text name="text_box9"> + URL'er </text> <check_box label="Vis script fejl og advarsler i almindelig chat" name="script_errors_as_chat" /> - <text type="string" length="1" name="text_box3"> - Chat vindue: - </text> <spinner label="Udfas chat efter" name="fade_chat_time" label_width="90" width="140" /> - <text type="string" length="1" name="text_box4" left="292" > - (sekunder) - </text> <spinner left="350" name="max_chat_count"/> - <text type="string" length="1" name="text_box5" left="415"> - (linier) - </text> <slider label="Gennemsigtighed" name="console_opacity" /> <check_box label="Brug fuldskærms bredde (Kræver genstart)" name="chat_full_width_check" /> - <text type="string" length="1" name="text_box6"> - Chat indstillinger: - </text> <check_box label="Luk chat efter tryk pÃ¥ enter" name="close_chat_on_return_check" /> <check_box label="Piletaster flytter altid figur under chat" name="arrow_keys_move_avatar_check" /> <check_box label="Vis klokkeslæt i lokal chat" name="show_timestamps_check" /> <check_box label="Afspil skrive animation ved chat" name="play_typing_animation" /> - <text type="string" length="1" name="text_box7"> - Chat talebobler: - </text> <check_box label="Vis chat bobler" name="bubble_text_chat" /> <slider label="Gennemsigtighed" name="bubble_chat_opacity" /> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_general.xml b/indra/newview/skins/default/xui/da/panel_preferences_general.xml index df27d05643182c8f9683ffc9842ef372b78092dc..9490f94a42eb79ce546e289c0139174630233943 100644 --- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Generelt" name="general_panel"> - <radio_group name="default_start_location"> - <radio_item name="MyHome" tool_tip="Log ind til min hjemme lokation som standard." label="Mit hjem" /> - <radio_item name="MyLastLocation" tool_tip="Log ind til min sidste lokation som standard." label="Min sidste lokation" /> - </radio_group> + <combo_box name="start_location_combo"> + <combo_box.item name="MyHome" tool_tip="Log ind til min hjemme lokation som standard." label="Mit hjem" /> + <combo_box.item name="MyLastLocation" tool_tip="Log ind til min sidste lokation som standard." label="Min sidste lokation" /> + </combo_box> <check_box label="Vis start lokation pÃ¥ login billedet" name="show_location_checkbox"/> <combo_box name="fade_out_combobox"> <combo_box.item name="Never" label="Aldrig"/> @@ -12,13 +12,13 @@ </combo_box> <check_box label="SmÃ¥ avatar navne" name="small_avatar_names_checkbox"/> <check_box label="Skjul mit navn pÃ¥ min skærm" name="show_my_name_checkbox"/> - <text length="1" name="group_titles_textbox" type="string"> + <text name="group_titles_textbox"> Gruppe titler: </text> <check_box label="Skjul alle gruppe titler" name="show_all_title_checkbox"/> <check_box label="Gem min gruppe titel" name="show_my_title_checkbox"/> <color_swatch label="" name="effect_color_swatch" tool_tip="Klik for at Ã¥bne farvevælger"/> - <text length="1" name="UI Size:" type="string"> + <text name="UI Size:"> UI Størrelse: </text> <check_box label="Brug opløsnings uafhængig skalering" name="ui_auto_scale"/> @@ -30,62 +30,56 @@ <text name="maturity_desired_prompt"> Jeg ønsker adgang til inhold med rating: </text> - <combo_box name="maturity_desired_combobox" left="360" width="135"> - <combo_item name="Desired_Adult"> - PG, Mature og Adult - </combo_item> - <combo_item name="Desired_Mature"> - PG and Mature - </combo_item> - <combo_item name="Desired_PG"> - PG only - </combo_item> + <combo_box name="maturity_desired_combobox"> + <combo_box.item name="Desired_Adult" label="PG, Mature og Adult"/> + <combo_box.item name="Desired_Mature" label="PG and Mature"/> + <combo_box.item name="Desired_PG" label="PG only"/> </combo_box> - <text name="maturity_desired_textbox" left="360"> + <text name="maturity_desired_textbox"> PG only </text> - <text length="1" name="start_location_textbox" type="string"> + <text name="start_location_textbox"> Start lokation: </text> - <text length="1" name="show_names_textbox" type="string"> + <text name="show_names_textbox"> Vis navne: </text> - <text length="1" name="effects_color_textbox" type="string"> + <text name="effects_color_textbox"> Farve til mine effekter: </text> - <text length="1" name="seconds_textbox" type="string"> + <text name="seconds_textbox"> sekunder </text> - <text length="1" name="crash_report_textbox" type="string"> + <text name="crash_report_textbox"> Nedbrudsrapporter: </text> - <text length="1" name="language_textbox" type="string"> + <text name="language_textbox"> Sprog: </text> - <text length="1" name="language_textbox2" type="string"> + <text name="language_textbox2"> (Kræver genstart for at virke optimalt) </text> <string name="region_name_prompt"> <Skriv regions navn> </string> <combo_box name="crash_behavior_combobox"> - <combo_box.item type="string" length="1" name="Askbeforesending" label="Bed om bekræftigelse"/> - <combo_box.item type="string" length="1" name="Alwayssend" label="Send altid"/> - <combo_box.item type="string" length="1" name="Neversend" label="Send aldrig"/> + <combo_box.item name="Askbeforesending" label="Bed om bekræftigelse"/> + <combo_box.item name="Alwayssend" label="Send altid"/> + <combo_box.item name="Neversend" label="Send aldrig"/> </combo_box> <combo_box name="language_combobox"> - <combo_box.item type="string" length="1" name="System Default Language" label="System standard"/> - <combo_box.item type="string" length="1" name="English" label="English (Engelsk)"/> - <combo_box.item type="string" length="1" name="Danish" label="Dansk - Beta"/> - <combo_box.item type="string" length="1" name="Deutsch(German)" label="Deutsch (Tysk) - Beta"/> - <combo_box.item type="string" length="1" name="Spanish" label="Español (Spansk) - Beta"/> - <combo_box.item type="string" length="1" name="French" label="Français (Fransk) - Beta"/> - <combo_box.item type="string" length="1" name="Hungarian" label="Magyar (Ungarsk) - Beta"/> - <combo_box.item type="string" length="1" name="Polish" label="Polski (Polsk) - Beta"/> - <combo_box.item type="string" length="1" name="Portugese" label="Portugués (Portugisisk) - Beta"/> - <combo_box.item type="string" length="1" name="Chinese" label="ä¸æ–‡ (简体) (Kinesisk) - Beta"/> - <combo_box.item type="string" length="1" name="(Japanese)" label="日本語 (Japansk) - Beta"/> - <combo_box.item type="string" length="1" name="(Korean)" label="í•œêµì–´ (Koreansk) - Beta"/> + <combo_box.item name="System Default Language" label="System standard"/> + <combo_box.item name="English" label="English (Engelsk)"/> + <combo_box.item name="Danish" label="Dansk - Beta"/> + <combo_box.item name="Deutsch(German)" label="Deutsch (Tysk) - Beta"/> + <combo_box.item name="Spanish" label="Español (Spansk) - Beta"/> + <combo_box.item name="French" label="Français (Fransk) - Beta"/> + <combo_box.item name="Hungarian" label="Magyar (Ungarsk) - Beta"/> + <combo_box.item name="Polish" label="Polski (Polsk) - Beta"/> + <combo_box.item name="Portugese" label="Portugués (Portugisisk) - Beta"/> + <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (Kinesisk) - Beta"/> + <combo_box.item name="(Japanese)" label="日本語 (Japansk) - Beta"/> + <combo_box.item name="(Korean)" label="í•œêµì–´ (Koreansk) - Beta"/> </combo_box> <check_box label="Del sprog med objekter" name="language_is_public" tool_tip="Dette lader objekter i verden vide hvad dit foretrukne sprog er."/> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml index 86c506a0fd1cb7c6989deed70d2a8eb4d56102ac..4dac7be4134aad5bc518b0085a00b2c6097a82ef 100644 --- a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml @@ -2,62 +2,63 @@ <panel label="Grafik" name="Display panel"> <button label="?" name="GraphicsPreferencesHelpButton" /> <check_box label="Kør Second Life i et vindue" name="windowed mode" /> - <text_editor type="string" length="1" name="FullScreenInfo"> + <text_editor name="FullScreenInfo"> Hvis dette ikke er valgt kører Second Life i Fuld skærm. </text_editor> - <text type="string" length="1" name="WindowSizeLabel"> + <text name="WindowSizeLabel"> Opløsning: </text> <combo_box name="windowsize combo"> - <combo_box.item type="string" length="1" name="640x480" label="640x480" /> - <combo_box.item type="string" length="1" name="800x600" label="800x600" /> - <combo_box.item type="string" length="1" name="720x480" label="720x480 (NTSC)" /> - <combo_box.item type="string" length="1" name="768x576" label="768x576 (PAL)" /> - <combo_box.item type="string" length="1" name="1024x768" label="1024x768" /> + <combo_box.item name="640x480" label="640x480" /> + <combo_box.item name="800x600" label="800x600" /> + <combo_box.item name="720x480" label="720x480 (NTSC)" /> + <combo_box.item name="768x576" label="768x576 (PAL)" /> + <combo_box.item name="1024x768" label="1024x768" /> </combo_box> - <text type="string" length="1" name="DisplayResLabel"> + <text name="DisplayResLabel"> Skærm opløsning: </text> - <text type="string" length="1" name="AspectRatioLabel1" tool_tip="bredde / højde"> + <text name="AspectRatioLabel1" tool_tip="bredde / højde"> Format: </text> <combo_box name="aspect_ratio" tool_tip="bredde/ højde"> - <combo_box.item type="string" length="1" name="4:3(StandardCRT)" label="4:3 (Standard CRT)" /> - <combo_box.item type="string" length="1" name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)" /> - <combo_box.item type="string" length="1" name="8:5(Widescreen)" label="8:5 (Widescreen)" /> - <combo_box.item type="string" length="1" name="16:9(Widescreen)" label="16:9 (Widescreen)" /> + <combo_box.item name="4:3(StandardCRT)" label="4:3 (Standard CRT)" /> + <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)" /> + <combo_box.item name="8:5(Widescreen)" label="8:5 (Widescreen)" /> + <combo_box.item name="16:9(Widescreen)" label="16:9 (Widescreen)" /> </combo_box> <check_box label="Auto-detect format" name="aspect_auto_detect" /> - <text type="string" length="1" name="HigherText"> + <text name="HigherText"> Kvalitet og </text> - <text type="string" length="1" name="QualityText"> + <text name="QualityText"> Ydelse: </text> - <text type="string" length="1" name="FasterText"> + <text name="FasterText"> Hurtigere </text> - <text type="string" length="1" name="ShadersPrefText"> + <text name="ShadersPrefText"> Lav </text> - <text type="string" length="1" name="ShadersPrefText2"> + <text name="ShadersPrefText2"> Middel </text> - <text type="string" length="1" name="ShadersPrefText3"> + <text name="ShadersPrefText3"> Høj </text> - <text type="string" length="1" name="ShadersPrefText4"> + <text name="ShadersPrefText4"> Ultra </text> - <text type="string" length="1" name="HigherText2"> + <text name="HigherText2"> Højere </text> - <text type="string" length="1" name="QualityText2"> + <text name="QualityText2"> Kvalitet </text> <slider label="" name="QualityPerformanceSelection" /> <check_box label="Manuelt" name="CustomSettings" /> - <text type="string" length="1" name="ShadersText"> + <panel name="CustomGraphics Panel"> + <text name="ShadersText"> Overflader: </text> <check_box label="Glatte flader og skin" name="BumpShiny" /> @@ -65,31 +66,31 @@ tool_tip="Ved at slÃ¥ dette valg fra, kan det forhindres at visse grafikkort drivere crasher." /> <check_box label="Atmosfæriske flader" name="WindLightUseAtmosShaders" /> <check_box label="Reflektioner i vand" name="Reflections" /> - <text type="string" length="1" name="ReflectionDetailText"> + <text name="ReflectionDetailText"> Spejlnings detaljer: </text> <radio_group name="ReflectionDetailRadio"> - <radio_item type="string" length="1" name="0" label="Terræn og træer" /> - <radio_item type="string" length="1" name="1" label="Alle statiske objekter" /> - <radio_item type="string" length="1" name="2" label="Alle avatarer og objekter" /> - <radio_item type="string" length="1" name="3" label="Alt" /> + <radio_item name="0" label="Terræn og træer" /> + <radio_item name="1" label="Alle statiske objekter" /> + <radio_item name="2" label="Alle avatarer og objekter" /> + <radio_item name="3" label="Alt" /> </radio_group> - <text type="string" length="1" name="AvatarRenderingText"> + <text name="AvatarRenderingText"> Avatar gengivelse </text> <check_box label="Mini-figurer pÃ¥ lang afstand" name="AvatarImpostors" /> <check_box label="Hardware Skinning" name="AvatarVertexProgram" /> <check_box label="Avatar tøj" name="AvatarCloth" /> - <text type="string" length="1" name="DrawDistanceMeterText1"> + <text name="DrawDistanceMeterText1"> m </text> - <text type="string" length="1" name="DrawDistanceMeterText2"> + <text name="DrawDistanceMeterText2"> m </text> <slider label="Maks. visnings-afstand:" name="DrawDistance" /> <slider label="Maks. antal partikler:" name="MaxParticleCount" /> <slider label="Efterbehandlingskvalitet:" name="RenderPostProcess" /> - <text type="string" length="1" name="MeshDetailText"> + <text name="MeshDetailText"> Netmaske detaljer: </text> <slider label=" Objekter:" name="ObjectMeshDetail" /> @@ -98,48 +99,49 @@ <slider label=" Avatarer:" name="AvatarMeshDetail" /> <slider label=" Terræn:" name="TerrainMeshDetail" /> <slider label=" Himmel:" name="SkyMeshDetail" /> - <text type="string" length="1" name="PostProcessText"> + <text name="PostProcessText"> Lav </text> - <text type="string" length="1" name="ObjectMeshDetailText"> + <text name="ObjectMeshDetailText"> Lav </text> - <text type="string" length="1" name="FlexibleMeshDetailText"> + <text name="FlexibleMeshDetailText"> Lav </text> - <text type="string" length="1" name="TreeMeshDetailText"> + <text name="TreeMeshDetailText"> Lav </text> - <text type="string" length="1" name="AvatarMeshDetailText"> + <text name="AvatarMeshDetailText"> Lav </text> - <text type="string" length="1" name="TerrainMeshDetailText"> + <text name="TerrainMeshDetailText"> Lav </text> - <text type="string" length="1" name="SkyMeshDetailText"> + <text name="SkyMeshDetailText"> Lav </text> - <text type="string" length="1" name="LightingDetailText"> + <text name="LightingDetailText"> Lys detaljer: </text> <radio_group name="LightingDetailRadio"> - <radio_item type="string" length="1" name="SunMoon" label="Kun sol og mÃ¥ne" /> - <radio_item type="string" length="1" name="LocalLights" label="Lys i nærheden" /> + <radio_item name="SunMoon" label="Kun sol og mÃ¥ne" /> + <radio_item name="LocalLights" label="Lys i nærheden" /> </radio_group> - <text type="string" length="1" name="TerrainDetailText"> + <text name="TerrainDetailText"> Terræn detaljer: </text> <radio_group name="TerrainDetailRadio"> - <radio_item type="string" length="1" name="0" label="Lav" /> - <radio_item type="string" length="1" name="2" label="Høj" /> + <radio_item name="0" label="Lav" /> + <radio_item name="2" label="Høj" /> </radio_group> + </panel> <button label="Anbefalede indstillinger" name="Defaults" /> <button label="Hardware valg" label_selected="Hardware Options" name="GraphicsHardwareButton" /> - <string name="resolution_format"> + <panel.string name="resolution_format"> [RES_X] x [RES_Y] - </string> - <string name="aspect_ratio_text"> + </panel.string> + <panel.string name="aspect_ratio_text"> [NUM]:[DEN] - </string> + </panel.string> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_region_covenant.xml b/indra/newview/skins/default/xui/da/panel_region_covenant.xml index 63a2f90e365ac0b37870108fff118d78b1a3abdf..394664f1f111da0e19f73e26ef8766254307cd12 100644 --- a/indra/newview/skins/default/xui/da/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/da/panel_region_covenant.xml @@ -1,39 +1,67 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Covenant" name="Covenant"> + <text name="estate_section_lbl"> + Estate: + </text> + <text name="estate_name_lbl"> + Navn: + </text> + <text name="estate_name_text"> + mainland + </text> + <text name="estate_owner_lbl"> + Ejer: + </text> + <text name="estate_owner_text"> + (ingen) + </text> + <text name="covenant_timestamp_text"> + Sidst ændret Ons Dec 31 16:00:00 1969 + </text> + <button label="?" name="covenant_help"/> + <text_editor name="covenant_editor"> + Der er ikke angivet nogen regler for denne estate. + </text_editor> + <button label="Reset" name="reset_covenant"/> <text name="covenant_help_text"> - Ændringer i regel information vil blive vist i alle parceller til denne estate. + Ændringer i regler vil blive vist i alle parceller til denne estate. </text> - <text name="region_name_lbl"> + <text name="covenant_instructions"> + Træk og slip et notecard her for at ændre regler for denne estate. + </text> + <text name="region_section_lbl"> Region: </text> + <text name="region_name_lbl"> + Navn: + </text> <text name="region_name_text"> - (ukendt) + leyla </text> - <text name="estate_name_lbl"> - Estate: + <text name="region_landtype_lbl"> + Type: </text> - <text name="estate_name_text"> - (ukendt) + <text name="region_landtype_text"> + Mainland / Homestead </text> - <text name="estate_owner_lbl"> - Estate ejer: + <text name="region_maturity_lbl"> + Rating: </text> - <text name="estate_owner_text"> - (ukendt) + <text name="region_maturity_text"> + Adult + </text> + <text name="resellable_lbl"> + Videresalg: </text> <text name="resellable_clause"> - Valgfrit om købt land i denne region mÃ¥ sælges videre + Land i denne region mÃ¥ ikke sælges videre. </text> - <text name="changeable_clause"> - Valgfrit om købt land i denne region mÃ¥ deles eller samles. + <text name="changeable_lbl"> + Opdel: </text> - <text name="covenent_instructions"> - Træk og slip et notecard her for at ændre regler for dette estate. + <text name="changeable_clause"> + Land i denne region mÃ¥ ikke deles eller samles. </text> - <text_editor name="covenant_editor"> - Henter... - </text_editor> - <button label="Reset" name="reset_covenant" /> <string name="can_resell"> Købt land i denne region mÃ¥ sælges videre </string> @@ -46,5 +74,4 @@ <string name="can_not_change"> Købt land i denne region mÃ¥ ikke deles eller samles. </string> - <button label="?" name="covenant_help" /> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_region_estate.xml b/indra/newview/skins/default/xui/da/panel_region_estate.xml index 108763d544d385e3009e8963334190a5265a481b..7039f8fd6ca7ccf8e97775c0a8a2b778e51a9606 100644 --- a/indra/newview/skins/default/xui/da/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/da/panel_region_estate.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Estate" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="Estate" name="Estate"> <text name="estate_help_text"> Ændringer i dette afsnit vil pÃ¥virke alle regioner i dette estate. @@ -23,7 +25,7 @@ regioner i dette estate. <slider label="Fase" name="sun_hour_slider" /> <check_box label="Tillad offentlig adgang" name="externally_visible_check" /> <button label="?" name="externally_visible_help" /> - <text type="string" length="1" name="Only Allow"> + <text name="Only Allow"> Begræns adgang til: </text> <check_box label="Beboere med betalingsoplysninger" name="limit_payment" @@ -34,7 +36,7 @@ regioner i dette estate. <button label="?" name="voice_chat_help" /> <check_box label="Tillad direkte teleport" name="allow_direct_teleport" /> <button label="?" name="allow_direct_teleport_help" /> - <text name="abuse_email_text"> + <text name="abuse_email_text" width="260"> Send beskeder misbrug til email adresse: </text> <string name="email_unsupported"> @@ -68,4 +70,6 @@ regioner i dette estate. <button label="?" name="ban_resident_help" /> <button label="Fjern..." name="remove_banned_avatar_btn" /> <button label="Tilføj..." name="add_banned_avatar_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_region_general.xml b/indra/newview/skins/default/xui/da/panel_region_general.xml index 5f0e71f63da7828775c95e39f6fb76a645aefc21..6ffe1f34f3bed4ecc26473b5cb36cd6dd7bffab4 100644 --- a/indra/newview/skins/default/xui/da/panel_region_general.xml +++ b/indra/newview/skins/default/xui/da/panel_region_general.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Region" name="General"> <text name="region_text_lbl"> Region: @@ -12,35 +12,42 @@ <text name="version_channel_text"> ukendt </text> - <check_box label="Blokér for redigering af terræn" name="block_terraform_check" /> - <button label="?" name="terraform_help" /> - <check_box label="Blokér for flyvning" name="block_fly_check" /> - <button label="?" name="fly_help" /> - <check_box label="Tillad skader" name="allow_damage_check" /> - <button label="?" name="damage_help" /> - <check_box label="Begræns skubning" name="restrict_pushobject" /> - <button label="?" name="restrict_pushobject_help" /> - <check_box label="Tillad at sælge land" name="allow_land_resell_check" /> - <button label="?" name="land_resell_help" /> - <check_box label="Tillad at samle/dele land" name="allow_parcel_changes_check" /> - <button label="?" name="parcel_changes_help" /> - <check_box label="Blokér visning af land i Søgning" name="block_parcel_search_check" - tool_tip="Lad beboere se denne region og dens parceller i søgeresultater" /> - <button label="?" name="parcel_search_help" /> - <spinner label="Max besøgende" name="agent_limit_spin" /> - <button label="?" name="agent_limit_help" /> - <spinner label="Objekt bonus" name="object_bonus_spin" /> - <button label="?" name="object_bonus_help" /> + <text name="region_type_lbl"> + Type: + </text> + <text name="region_type"> + ukendt + </text> + <check_box label="Blokér for redigering af terræn" name="block_terraform_check"/> + <button label="?" name="terraform_help"/> + <check_box label="Blokér for flyvning" name="block_fly_check"/> + <button label="?" name="fly_help"/> + <check_box label="Tillad skader" name="allow_damage_check"/> + <button label="?" name="damage_help"/> + <check_box label="Begræns skubning" name="restrict_pushobject"/> + <button label="?" name="restrict_pushobject_help"/> + <check_box label="Tillad at sælge land" name="allow_land_resell_check"/> + <button label="?" name="land_resell_help"/> + <check_box label="Tillad at samle/dele land" name="allow_parcel_changes_check"/> + <button label="?" name="parcel_changes_help"/> + <check_box label="Blokér visning af land i Søgning" name="block_parcel_search_check" tool_tip="Lad beboere se denne region og dens parceller i søgeresultater"/> + <button label="?" name="parcel_search_help"/> + <spinner label="Max besøgende" name="agent_limit_spin"/> + <button label="?" name="agent_limit_help"/> + <spinner label="Objekt bonus" name="object_bonus_spin"/> + <button label="?" name="object_bonus_help"/> <text label="Indhold" name="access_text"> - Indhold: + Rating: </text> - - - - <button label="?" name="access_help" /> - <button label="Gem" name="apply_btn" /> - <button label="Send en beboer hjem ..." name="kick_btn" /> - <button label="Send alle beboere hjem..." name="kick_all_btn" /> - <button label="Send besked til region..." name="im_btn" /> - <button label="Vedligehold telehub..." name="manage_telehub_btn" /> + <combo_box label="Mature" name="access_combo"> + <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="Mature" name="Mature"/> + <combo_box.item label="PG" name="PG"/> + </combo_box> + <button label="?" name="access_help"/> + <button label="Gem" name="apply_btn"/> + <button label="Send en beboer hjem ..." name="kick_btn"/> + <button label="Send alle beboere hjem..." name="kick_all_btn"/> + <button label="Send besked til region..." name="im_btn"/> + <button label="Vedligehold telehub..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_region_terrain.xml b/indra/newview/skins/default/xui/da/panel_region_terrain.xml index 4ff81112d3a15a624e18a6cdf735fe0d0cb4b2b3..14ef0060b1dcd8181ccd637d584856ddbca4d4ec 100644 --- a/indra/newview/skins/default/xui/da/panel_region_terrain.xml +++ b/indra/newview/skins/default/xui/da/panel_region_terrain.xml @@ -13,9 +13,9 @@ <spinner label="Max sænkning af land" name="terrain_lower_spin" /> <button label="?" name="terrain_lower_help" /> <check_box label="Benyt solopsætning fra estate" name="use_estate_sun_check" /> - <button label="?" name="use_estate_sun_help" /> + <button label="?" name="use_estate_sun_help" left="430"/> <check_box label="Fast sol-position" name="fixed_sun_check" /> - <button label="?" name="fixed_sun_help" /> + <button label="?" name="fixed_sun_help" left="430"/> <slider label="Fase" name="sun_hour_slider" /> <button label="Gem" name="apply_btn" /> <button label="Download RAW terræn fil..." name="download_raw_btn" diff --git a/indra/newview/skins/default/xui/da/panel_region_texture.xml b/indra/newview/skins/default/xui/da/panel_region_texture.xml index 65c4743da0355412d671d3dd0b1a032b81282016..a7477d3a6538b8b5574694464861fee778a4e030 100644 --- a/indra/newview/skins/default/xui/da/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/da/panel_region_texture.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Terræn textures" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="Terræn textures" name="Textures"> <text name="region_text_lbl"> Region: </text> @@ -54,4 +56,6 @@ og HØJ værdien er MIMIMUM højde for texture nummer 4. </text> <button label="Gem" name="apply_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/da/panel_scrolling_param.xml b/indra/newview/skins/default/xui/da/panel_scrolling_param.xml index 5309ca589fef3ade79aa5107fd27d4418f401a7a..99f61b938b5e3c9d330c947952208d8bba3c775c 100644 --- a/indra/newview/skins/default/xui/da/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/da/panel_scrolling_param.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="LLScrollingPanelParam"> - <text type="string" length="1" name="Loading..."> + <text name="Loading..."> Henter... </text> - <text type="string" length="1" name="Loading...2"> + <text name="Loading...2"> Henter... </text> <button label="" label_selected="" name="less" /> diff --git a/indra/newview/skins/default/xui/da/panel_status_bar.xml b/indra/newview/skins/default/xui/da/panel_status_bar.xml index c286960334b1f33e81cb5458f14d13eed5e0efe6..20e72827f204f6798394fdb341b699209270ac11 100644 --- a/indra/newview/skins/default/xui/da/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/da/panel_status_bar.xml @@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="status"> - <text type="string" length="1" name="ParcelNameText" + <text name="ParcelNameText" tool_tip="Navn pÃ¥ det land/parcel som du stÃ¥r pÃ¥. Klik pÃ¥ teksten for yderligere info."> parcel name goes here </text> - <text type="string" length="1" name="BalanceText" tool_tip="Konto balance"> + <text name="BalanceText" tool_tip="Konto balance"> Henter... </text> <button label="" label_selected="" name="buycurrency" tool_tip="Køb valuta" /> - <text type="string" length="12" name="TimeText" tool_tip="Nuværende [SECOND_LIFE] tid"> + <text name="TimeText" tool_tip="Nuværende [SECOND_LIFE] tid"> 12:00 </text> <string name="StatBarDaysOfWeek"> @@ -19,7 +19,7 @@ </string> <button label="" label_selected="" name="scriptout" tool_tip="Script advarsler og fejl" /> <button label="" label_selected="" name="health" tool_tip="Helbred" /> - <text type="string" length="1" name="HealthText" tool_tip="Helbred"> + <text name="HealthText" tool_tip="Helbred"> 100% </text> <button label="" label_selected="" name="no_fly" tool_tip="Flyvning ikke tilladt" /> diff --git a/indra/newview/skins/default/xui/da/panel_world_map.xml b/indra/newview/skins/default/xui/da/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..b835180a88b16edc3d337604e796ec4bee3a2557 --- /dev/null +++ b/indra/newview/skins/default/xui/da/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + N + </panel.string> + <panel.string name="world_map_east"> + Ø + </panel.string> + <panel.string name="world_map_west"> + V + </panel.string> + <panel.string name="world_map_south"> + S + </panel.string> + <panel.string name="world_map_southeast"> + SØ + </panel.string> + <panel.string name="world_map_northeast"> + NØ + </panel.string> + <panel.string name="world_map_southwest"> + SV + </panel.string> + <panel.string name="world_map_northwest"> + NV + </panel.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="Ø" name="floater_map_east" text="Ø"> + Ø + </text> + <text label="V" name="floater_map_west" text="V"> + V + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SØ" name="floater_map_southeast" text="SØ"> + SØ + </text> + <text label="NØ" name="floater_map_northeast" text="NØ"> + NØ + </text> + <text label="SV" name="floater_map_southwest" text="SV"> + SV + </text> + <text label="NV" name="floater_map_northwest" text="NV"> + NV + </text> +</panel> diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml index c039e2e1c546c1a044d28062d7ccc62161447201..dda5e9bd1a38aea87015647de5e3d57bd8765286 100644 --- a/indra/newview/skins/default/xui/da/strings.xml +++ b/indra/newview/skins/default/xui/da/strings.xml @@ -483,4 +483,34 @@ <string name="choose_the_directory"> Vælg bibliotek </string> + <string name="accel-mac-control"> + Ctrl- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Opt- + </string> + <string name="accel-mac-shift"> + Shift- + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Shift+ + </string> + <string name="GraphicsQualityLow"> + Lav + </string> + <string name="GraphicsQualityMid"> + Middel + </string> + <string name="GraphicsQualityHigh"> + Høj + </string> </strings> diff --git a/indra/newview/skins/default/xui/da/teleport_strings.xml b/indra/newview/skins/default/xui/da/teleport_strings.xml index 78052b4ef594364c81b389abb4a847aacc0b4fbd..cc75abbb26040f95f02b5fa1080d034f8262c0c4 100644 --- a/indra/newview/skins/default/xui/da/teleport_strings.xml +++ b/indra/newview/skins/default/xui/da/teleport_strings.xml @@ -2,21 +2,18 @@ <teleport_messages> <message_set name="errors"> <message name="invalid_tport"> - Der er problemer med at hÃ¥ndtere din teleport. -Det kan være nødvendigt at logge ud og ind for at kunne skifte teleportere. + Der er problemer med at hÃ¥ndtere din teleport. Det kan være nødvendigt at logge ud og ind for at kunne skifte teleportere. Hvis du bliver ved med at have problemet kan du checke teknisk support pÃ¥: -www.secondlife.com/support. +www.secondlife.com/support </message> <message name="invalid_region_handoff"> - Problem registreret i forbindelse med skift til ny region. -Det kan være nødvendigt at logge ud og ind for at kunne skifte regioner. + Problem registreret i forbindelse med skift til ny region. Det kan være nødvendigt at logge ud og ind for at kunne skifte regioner. Hvis du bliver ved med at have problemet kan du checke teknisk support pÃ¥: -www.secondlife.com/support. +www.secondlife.com/support </message> <message name="blocked_tport"> Beklager, teleport er blokeret lige nu. Prøv igen senere. -Hvis du stadig ikke kan teleporte, prøv venligst at logge ud og ligge -ind for at løse dette problem. +Hvis du stadig ikke kan teleporte, prøv venligst at logge ud og ligge ind for at løse dette problem. </message> <message name="nolandmark_tport"> Beklager, systemet kunne ikke finde landmærke destinationen. @@ -29,24 +26,20 @@ Prøv igen om lidt. Beklager, du har ikke adgang til denne teleport destination. </message> <message name="missing_attach_tport"> - Dine vedhæng er ikke ankommet endnu. Prøv at vente lidt endnu -eller log ud og ind igen før du prøver at teleporte igen. + Dine vedhæng er ikke ankommet endnu. Prøv at vente lidt endnu eller log ud og ind igen før du prøver at teleporte igen. </message> <message name="too_many_uploads_tport"> Tekniske problemer hindrer at din teleport kan gennemføres. Prøv venligst igen om lidt eller vælg et mindre travlt omrÃ¥de. </message> <message name="expired_tport"> - Beklager, men systemet kunne ikke fuldføre din teleport -i rimelig tid. Prøv venligst igen om lidt. + Beklager, men systemet kunne ikke fuldføre din teleport i rimelig tid. Prøv venligst igen om lidt. </message> <message name="expired_region_handoff"> - Beklager, men systemet kunne ikke fuldføre skift til anden region -i rimelig tid. Prøv venligst igen om lidt. + Beklager, men systemet kunne ikke fuldføre skift til anden region i rimelig tid. Prøv venligst igen om lidt. </message> <message name="no_host"> - Ikke muligt at fine teleport destination. Destinationen kan -være midlertidig utilgængelig eller findes ikke mere. + Ikke muligt at fine teleport destination. Destinationen kan være midlertidig utilgængelig eller findes ikke mere. Prøv evt. igen om lidt. </message> <message name="no_inventory_host"> 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 93e7297fd230ab5bb4b9ce8fb57f0957392cd619..853302d15c436aef53572bf8051826799dd6d065 100644 --- a/indra/newview/skins/default/xui/de/floater_about_land.xml +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -79,46 +79,46 @@ <button label="Land aufgeben..." label_selected="Land aufgeben..." name="Abandon Land..."/> <button label="Land in Besitz nehmen..." label_selected="Land in Besitz nehmen..." name="Reclaim Land..."/> <button label="Linden-Verkauf..." label_selected="Linden-Verkauf..." name="Linden Sale..." tool_tip="Land muss Eigentum und auf Inhalt gesetzt sein und nicht zur Auktion stehen."/> - <string name="new users only"> + <panel.string name="new users only"> Nur neue Benutzer - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> Jeder - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> Gebiet: - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA] qm. - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> Auktions-ID: [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> Bestätigen Sie den Kauf, um dieses Land zu bearbeiten. - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (In Gruppenbesitz) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> Profil... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> Info... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (öffentlich) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (keiner) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (Wird verkauft) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> Keine Parzelle ausgewählt. Öffnen Sie „Welt“ > „Land-Info“ oder wählen Sie eine andere Parzelle aus, um Informationen darüber anzuzeigen. - </string> + </panel.string> </panel> <panel label="Vertrag" name="land_covenant_panel"> <text name="estate_section_lbl"> @@ -176,20 +176,20 @@ Land in dieser Region kann nicht zusammengelegt/geteilt werden. </text> - <string name="can_resell"> + <panel.string name="can_resell"> Gekauftes Land in dieser Region kann wiederverkauft werden. - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> Gekauftes Land in dieser Region kann nicht wiederverkauft werden. - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> Gekauftes Land in dieser Region kann zusammengelegt und geteilt werden. - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> Gekauftes Land in dieser Region kann nicht zusammengelegt und geteilt werden. - </string> + </panel.string> </panel> <panel label="Objekte" name="land_objects_panel"> <text name="parcel_object_bonus"> @@ -201,12 +201,12 @@ und geteilt werden. <text name="objects_available"> [COUNT] von [MAX] ([AVAILABLE] verfügbar) </text> - <string name="objects_available_text"> + <panel.string name="objects_available_text"> [COUNT] von [MAX] ([AVAILABLE] verfügbar) - </string> - <string name="objects_deleted_text"> + </panel.string> + <panel.string name="objects_deleted_text"> [COUNT] von [MAX] ([DELETED] werden gelöscht) - </string> + </panel.string> <text name="Primitives parcel supports:" width="200"> Von Parzelle unterstützte Primitiva: </text> @@ -293,109 +293,84 @@ und geteilt werden. <check_box label="Sicher (kein Schaden)" name="check safe" tool_tip="Falls aktiviert, wird Land auf Option „Sicher“ eingestellt, Kampfschäden sind deaktiviert. Falls nicht aktiviert, sind Kampfschäden aktiviert."/> <check_box label="Kein Stoßen" name="PushRestrictCheck" tool_tip="Verhindert Skripte am Stoßen. Durch Aktivieren dieser Option verhindern Sie störendes Verhalten auf Ihrem Land."/> <check_box label="Ort in Suche anzeigen (30 L$/Woche) unter" name="ShowDirectoryCheck" tool_tip="Diese Parzelle in Suchergebnissen anzeigen."/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> Diese Parzelle in Suchergebnissen anzeigen. - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> Diese Option ist nicht aktiviert, da diese Parzelle nicht größer als 128 qm ist. Nur große Parzellen können in der Suche aufgeführt werden. - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> Diese Option ist nicht aktiviert, da Sie die Parzellenoptionen nicht verändern können. - </string> + </panel.string> <combo_box name="land category with adult"> - <combo_item name="AnyCategory"> - Alle Kategorien - </combo_item> - <combo_item name="LindenLocation"> - Lindenort - </combo_item> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Arts&Culture"> - Kunst & Kultur - </combo_item> - <combo_item name="Business"> - Business - </combo_item> - <combo_item name="Educational"> - Bildung - </combo_item> - <combo_item name="Gaming"> - Spielen - </combo_item> - <combo_item name="Hangout"> - Treffpunkt - </combo_item> - <combo_item name="NewcomerFriendly"> - Anfängergerecht - </combo_item> - <combo_item name="Parks&Nature"> - Parks und Natur - </combo_item> - <combo_item name="Residential"> - Wohngebiet - </combo_item> - <combo_item name="Shopping"> - Shopping - </combo_item> - <combo_item name="Other"> - Sonstige - </combo_item> + <combo_box.item name="item0" label="Alle Kategorien" + /> + <combo_box.item name="item1" label="Lindenort" + /> + <combo_box.item name="item2" label="Adult" + /> + <combo_box.item name="item3" label="Kunst & Kultur" + /> + <combo_box.item name="item4" label="Business" + /> + <combo_box.item name="item5" label="Bildung" + /> + <combo_box.item name="item6" label="Spielen" + /> + <combo_box.item name="item7" label="Treffpunkt" + /> + <combo_box.item name="item8" label="Anfängergerecht" + /> + <combo_box.item name="item9" label="Parks und Natur" + /> + <combo_box.item name="item10" label="Wohngebiet" + /> + <combo_box.item name="item11" label="Shopping" + /> + <combo_box.item name="item12" label="Sonstige" + /> </combo_box> <combo_box left="266" name="land category" width="130"> - <combo_item name="AnyCategory"> - Alle Kategorien - </combo_item> - <combo_item name="LindenLocation"> - Lindenort - </combo_item> - <combo_item name="Arts&Culture"> - Kunst und Kultur - </combo_item> - <combo_item name="Business"> - Business - </combo_item> - <combo_item name="Educational"> - Bildung - </combo_item> - <combo_item name="Gaming"> - Spielen - </combo_item> - <combo_item name="Hangout"> - Treffpunkt - </combo_item> - <combo_item name="NewcomerFriendly"> - Anfängergerecht - </combo_item> - <combo_item name="Parks&Nature"> - Parks und Natur - </combo_item> - <combo_item name="Residential"> - Wohngebiet - </combo_item> - <combo_item name="Shopping"> - Shopping - </combo_item> - <combo_item name="Other"> - Sonstige - </combo_item> + <combo_box.item name="item0" label="Alle Kategorien" + /> + <combo_box.item name="item1" label="Lindenort" + /> + <combo_box.item name="item3" label="Kunst und Kultur" + /> + <combo_box.item name="item4" label="Business" + /> + <combo_box.item name="item5" label="Bildung" + /> + <combo_box.item name="item6" label="Spielen" + /> + <combo_box.item name="item7" label="Treffpunkt" + /> + <combo_box.item name="item8" label="Anfängergerecht" + /> + <combo_box.item name="item9" label="Parks und Natur" + /> + <combo_box.item name="item10" label="Wohngebiet" + /> + <combo_box.item name="item11" label="Shopping" + /> + <combo_box.item name="item12" label="Sonstige" + /> </combo_box> <button label="?" label_selected="?" name="?"/> <check_box label="Mature-Inhalt" name="MatureCheck" tool_tip=""/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Mature-Inhalt - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Adult-Inhalt - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> Die Informationen oder Inhalte Ihrer Parzelle sind „Mature“. - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> Die Informationen oder Inhalte Ihrer Parzelle sind „Adult“. - </string> + </panel.string> <text name="Snapshot:"> Foto: </text> @@ -403,31 +378,28 @@ Nur große Parzellen können in der Suche aufgeführt werden. <text name="landing_point"> Landepunkt: [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (keiner) - </string> + </panel.string> <button label="Festlegen" label_selected="Festlegen" left="234" name="Set" tool_tip="Legt den Landepunkt fest, an dem Besucher ankommen. Legt die Position Ihres Avatars innerhalb dieser Parzelle fest." width="70"/> <button label="Löschen" label_selected="Löschen" left="312" name="Clear" tool_tip="Landepunkt löschen." width="70"/> <text name="Teleport Routing: "> Teleport-Route: </text> <combo_box name="landing type" tool_tip="Teleport-Route -- festlegen, wie Teleports auf Ihrem Land gehandhabt werden sollen."> - <combo_item name="Blocked"> - Blockiert - </combo_item> - <combo_item name="LandingPoint"> - Landepunkt - </combo_item> - <combo_item name="Anywhere"> - Ãœberall - </combo_item> + <combo_box.item name="Blocked" label="Blockiert" + /> + <combo_box.item name="LandingPoint" label="Landepunkt" + /> + <combo_box.item name="Anywhere" label="Ãœberall" + /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> Kein Stoßen - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> Kein Stoßen (regional) - </string> + </panel.string> </panel> <panel label="Medien" name="land_media_panel"> <text name="with media:"> @@ -492,18 +464,16 @@ Optionen: </text> <check_box label="Einwohner, die keine Zahlungsinformationen bei Linden Lab hinterlegt haben" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen."/> <check_box label="Einwohner, die keine altersgeprüften Erwachsenen sind" name="limit_age_verified" tool_tip="Einwohner ohne Altersprüfung verbannen. Weitere Informationen finden Sie auf support.secondlife.com."/> - <string name="estate_override"> + <panel.string name="estate_override"> Eine oder mehrere dieser Optionen gelten auf Grundstücksebene - </string> + </panel.string> <check_box label="Gruppenzugang erlauben: [GROUP]" 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_item name="Anyone"> - Jeden - </combo_item> - <combo_item name="Group"> - Gruppe - </combo_item> + <combo_box.item name="Anyone" label="Jeden" + /> + <combo_box.item name="Group" label="Gruppe" + /> </combo_box> <spinner label="Preis in L$:" name="PriceSpin"/> <spinner label="Online-Zeit:" name="HoursSpin"/> diff --git a/indra/newview/skins/default/xui/de/floater_customize.xml b/indra/newview/skins/default/xui/de/floater_customize.xml index b27e5d22b4fbe00a5a21a3d77a115ff1b4fd79d2..06b53dd8b48cca56804996682f2a19a4e97d53ab 100644 --- a/indra/newview/skins/default/xui/de/floater_customize.xml +++ b/indra/newview/skins/default/xui/de/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="Aussehen"> <tab_container name="customize tab container"> - <panel label="Körperteile" name="body_parts_placeholder"/> + <placeholder label="Körperteile" name="body_parts_placeholder"/> <panel label="Form" name="Shape"> <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> <button label="Körper" label_selected="Körper" name="Body"/> @@ -14,34 +14,30 @@ <button label="Oberkörper" label_selected="Oberkörper" name="Torso"/> <button label="Beine" label_selected="Beine" name="Legs"/> <radio_group name="sex radio"> - <radio_item length="1" name="radio" type="string"> - Weiblich - </radio_item> - <radio_item length="1" name="radio2" type="string"> - Männlich - </radio_item> + <radio_item name="radio" label="Weiblich"/> + <radio_item name="radio2" label="Männlich"/> </radio_group> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie eine Körperform aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch eine neue Körperform erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -56,27 +52,27 @@ und diese anziehen. <button label="Gesichtsdetails" label_selected="Gesichtsdetails" left="2" name="Face Detail" width="92"/> <button label="Make-Uup" label_selected="Make-Uup" left="2" name="Makeup" width="92"/> <button label="Körperdetails" label_selected="Körperdetails" left="2" name="Body Detail" width="92"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie eine Haut aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch eine neue Haut erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -95,27 +91,27 @@ und diese anziehen. <button label="Stil" label_selected="Stil" name="Style"/> <button label="Augenbrauen" label_selected="Augenbrauen" name="Eyebrows"/> <button label="Gesichtshaar" label_selected="Gesichtshaar" name="Facial"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie Haare aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch neue Haare erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -128,27 +124,27 @@ und diese anziehen. <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> </panel> <panel label="Augen" name="Eyes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie Augen aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch neue Augen erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -169,27 +165,27 @@ und diese anziehen. <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/> <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/> <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie ein Hemd aus dem Inventar auf Ihren Avatar, um es zu tragen. Sie können auch ein neues Hemd erstellen und dieses anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -204,27 +200,27 @@ und dieses anziehen. <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/> <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/> <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie eine Hose aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch eine neue Hose erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -232,27 +228,27 @@ und diese anziehen. </text> </panel> <panel label="Schuhe" name="Shoes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie Schuhe aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch neue Schuhe erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -267,27 +263,27 @@ und diese anziehen. <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> </panel> <panel label="Socken" name="Socks"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie Socken aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch neue Socken erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -302,27 +298,27 @@ und diese anziehen. <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> </panel> <panel label="Jacke" name="Jacket"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie eine Jacke aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch eine neue Jacke erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -338,27 +334,27 @@ und diese anziehen. <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> </panel> <panel label="Handschuhe" name="Gloves"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie Handschuhe aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch neue Handschuhe erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -373,27 +369,27 @@ und diese anziehen. <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> </panel> <panel label="Unterhemd" name="Undershirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie ein Unterhemd aus dem Inventar auf Ihren Avatar, um es zu tragen. Sie können auch ein neues Unterhemd erstellen und dieses anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -408,27 +404,27 @@ und dieses anziehen. <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> </panel> <panel label="Unterhose" name="Underpants"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie eine Unterhose aus dem Inventar auf Ihren Avatar, um sie zu tragen. Sie können auch eine neue Unterhose erstellen und diese anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> @@ -443,27 +439,27 @@ und diese anziehen. <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/> </panel> <panel label="Rock" name="Skirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: bearbeiten nicht möglich </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: wird geladen... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: nicht getragen </text> - <text length="1" name="path" type="string"> + <text name="path"> In [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ziehen Sie einen Rock aus dem Inventar auf Ihren Avatar, um ihn zu tragen. Sie können auch einen neuen Rock erstellen und diesen anziehen. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> <text name="Item Action Label" right="100"> 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 aa24231e337e5b37449d5d918d6bc7c35d3828c2..2f2eb5aa8d978109a6e893052996e191d2e7e96a 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,7 +15,7 @@ <button label="Keine" label_selected="Keine" name="None" /> <check_box label="Ordner immer anzeigen" name="check_show_empty" /> <check_box label="Seit Abmeldung" name="check_since_logoff" /> - <text type="string" length="1" name="- OR -"> + <text name="- OR -"> - ODER - </text> <spinner label="Stunden zuvor" label_width="80" name="spin_hours_ago" /> diff --git a/indra/newview/skins/default/xui/de/floater_joystick.xml b/indra/newview/skins/default/xui/de/floater_joystick.xml index 407556bf2c1f2f76f50bf8aec2a6cdf86d921740..ccf6f14eade66b03364a7006e2bfe4fdd6f380ff 100644 --- a/indra/newview/skins/default/xui/de/floater_joystick.xml +++ b/indra/newview/skins/default/xui/de/floater_joystick.xml @@ -1,8 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="Joystick-Konfiguration"> - <check_box name="enable_joystick" width="80"> - Joystick aktivieren: - </check_box> + <check_box name="enable_joystick" width="80" label="Joystick aktivieren:"/> <text left="140" name="joystick_type" width="360"/> <spinner label="X-Achse" name="JoystickAxis1"/> <spinner label="Y-Achse" name="JoystickAxis2"/> @@ -17,15 +15,9 @@ <text name="Control Modes:"> Steuermodi: </text> - <check_box name="JoystickAvatarEnabled"> - Avatar - </check_box> - <check_box name="JoystickBuildEnabled"> - Bauen - </check_box> - <check_box name="JoystickFlycamEnabled"> - Flycam - </check_box> + <check_box name="JoystickAvatarEnabled" label="Avatar"/> + <check_box name="JoystickBuildEnabled" label="Bauen"/> + <check_box name="JoystickFlycamEnabled" label="Flycam"/> <text name="XScale"> X-Skala </text> @@ -74,12 +66,14 @@ <button label="SpaceNavigator-Standards" name="SpaceNavigatorDefaults"/> <button label="OK" label_selected="OK" name="ok_btn"/> <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn"/> - <string name="JoystickMonitor"> - Joystick-Monitor - </string> - <string name="Axis"> - Achse [NUM] - </string> + <stat_view label="Joystick-Monitor" name="axis_view"> + <stat_bar label="Achse 0" name="axis0"/> + <stat_bar label="Achse 1" name="axis1"/> + <stat_bar label="Achse 2" name="axis2"/> + <stat_bar label="Achse 3" name="axis3"/> + <stat_bar label="Achse 4" name="axis4"/> + <stat_bar label="Achse 5" name="axis5"/> + </stat_view> <string name="NoDevice"> Kein Gerät erkannt </string> diff --git a/indra/newview/skins/default/xui/de/floater_map.xml b/indra/newview/skins/default/xui/de/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..a875d4aa9088558ed09a16db95e28a200d5eb600 --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + N + </floater.string> + <floater.string name="mini_map_east"> + O + </floater.string> + <floater.string name="mini_map_west"> + W + </floater.string> + <floater.string name="mini_map_south"> + S + </floater.string> + <floater.string name="mini_map_southeast"> + SO + </floater.string> + <floater.string name="mini_map_northeast"> + NO + </floater.string> + <floater.string name="mini_map_southwest"> + SW + </floater.string> + <floater.string name="mini_map_northwest"> + NW + </floater.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="O" name="floater_map_east" text="O"> + O + </text> + <text label="W" name="floater_map_west" text="W"> + W + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SO" name="floater_map_southeast" text="SO"> + SO + </text> + <text label="NO" name="floater_map_northeast" text="NO"> + NO + </text> + <text label="SW" name="floater_map_southwest" text="SW"> + SW + </text> + <text label="NW" name="floater_map_northwest" text="NW"> + NW + </text> +</floater> diff --git a/indra/newview/skins/default/xui/de/floater_moveview.xml b/indra/newview/skins/default/xui/de/floater_moveview.xml index 01431ee51a690caf8237e28729faec099f256928..4ea2048e623f83d3172771e5906c79095a6a394d 100644 --- a/indra/newview/skins/default/xui/de/floater_moveview.xml +++ b/indra/newview/skins/default/xui/de/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Nach links" /> <button label="" label_selected="" name="turn right btn" tool_tip="Nach rechts" /> <button label="" label_selected="" name="move up btn" @@ -11,4 +12,5 @@ <joystick_slide name="slide right btn" tool_tip="Nach rechts" /> <joystick_turn name="forward btn" tool_tip="Nach vorn" /> <joystick_turn name="backward btn" tool_tip="Nach hinten" /> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_mute_object.xml b/indra/newview/skins/default/xui/de/floater_mute_object.xml index 02eafbcb6857a435a1096f4de8c72fcfea246142..60c6ff008cb68694e9f50768a0ce7045d5af59a2 100644 --- a/indra/newview/skins/default/xui/de/floater_mute_object.xml +++ b/indra/newview/skins/default/xui/de/floater_mute_object.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="mute by name" title="Objekt nach Name stummschalten"> <text name="message"> - Stummschalten nach Name betrifft nur Chat und IM, keine Sounds. -Sie müssen den Objektnamen exakt angeben. + Stummschalten nach Name betrifft nur Chat und IM, keine +Sounds. Sie müssen den Objektnamen exakt angeben. </text> <line_editor name="object_name"> Objektname diff --git a/indra/newview/skins/default/xui/de/floater_openobject.xml b/indra/newview/skins/default/xui/de/floater_openobject.xml index 0b5a36578eff9fc6c6a8db9386bf3a01f0d56ea2..fa465c08c74406b6b6edf218a0c992936fc843b4 100644 --- a/indra/newview/skins/default/xui/de/floater_openobject.xml +++ b/indra/newview/skins/default/xui/de/floater_openobject.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="objectcontents" title="Objektinhalte"> - <text type="string" length="1" name="object_name"> + <text name="object_name"> [DESC]: </text> <button label="In Inventar kopieren" label_selected="In Inventar kopieren" diff --git a/indra/newview/skins/default/xui/de/floater_pay.xml b/indra/newview/skins/default/xui/de/floater_pay.xml index 5d0dbffc22fe47346376750efa5e1f7e03406e01..a2e40fa0782acd9b8c18117ab5dd51b13a82626a 100644 --- a/indra/newview/skins/default/xui/de/floater_pay.xml +++ b/indra/newview/skins/default/xui/de/floater_pay.xml @@ -6,16 +6,16 @@ <button label="20 L$" label_selected="20 L$" name="fastpay 20" /> <button label="Zahlen" label_selected="Zahlen" name="pay btn" /> <button label="Abbrechen" label_selected="Abbrechen" name="cancel btn" /> - <text type="string" length="1" name="payee_label" width="130"> + <text name="payee_label" width="130"> Einwohner bezahlen: </text> - <text type="string" length="1" name="payee_name" left="130"> + <text name="payee_name" left="130"> [FIRST] [LAST] </text> - <text type="string" length="1" name="fastpay text"> + <text name="fastpay text"> Schnellzahlung: </text> - <text type="string" length="1" name="amount text"> + <text name="amount text"> Betrag: </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_pay_object.xml b/indra/newview/skins/default/xui/de/floater_pay_object.xml index eaf95a9e9efd308dca64ce39aadd2ad0e9d9d7fb..49bf0c8957f9e0ef1700aeda56bfa01b544a486b 100644 --- a/indra/newview/skins/default/xui/de/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/de/floater_pay_object.xml @@ -1,24 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Give Money" title=""> - <text type="string" length="1" name="payee_group" width="105"> + <text name="payee_group" width="105"> Gruppe bezahlen: </text> - <text type="string" length="1" name="payee_resident" width="118"> + <text name="payee_resident" width="118"> Einwohner bezahlen: </text> - <text type="string" length="1" name="payee_name" left="128" width="168"> + <text name="payee_name" left="128" width="168"> [FIRST] [LAST] </text> - <text type="string" length="1" name="object_name_label" halign="left"> + <text name="object_name_label" halign="left"> Ãœber Objekt: </text> - <text type="string" length="1" name="object_name_text" left="105"> + <text name="object_name_text" left="105"> ... </text> - <text type="string" length="1" name="fastpay text" width="95" halign="left"> + <text name="fastpay text" width="95" halign="left"> Schnellzahlung: </text> - <text type="string" length="1" name="amount text"> + <text name="amount text"> Betrag: </text> <button label="1 L$" label_selected="1 L$" name="fastpay 1" left="105" /> diff --git a/indra/newview/skins/default/xui/de/floater_preview_animation.xml b/indra/newview/skins/default/xui/de/floater_preview_animation.xml index c807556a9b93a718978c08eafa112cf564078a93..630127f310e04d1567c0018c755cc16b6008b41c 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_animation.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_anim"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beschreibung: </text> <line_editor left="98" name="desc" width="189" /> diff --git a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml index 370f242ddb8eb591bb771187432241c5d0097e5e..da90d66e4df2d0a82d7b3c0e39348cfdf41da3fa 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview notecard" title="Hinweis:"> <button label="Speichern" label_selected="Speichern" name="Save" /> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beschreibung: </text> - <text_editor type="string" length="1" name="Notecard Editor"> + <text_editor name="Notecard Editor"> Wird geladen... </text_editor> <text name="no_object"> diff --git a/indra/newview/skins/default/xui/de/floater_preview_sound.xml b/indra/newview/skins/default/xui/de/floater_preview_sound.xml index fd0a824c032567131cfdd782fdf7445d859b495b..3f2e39c0d6a4b37141cc6d08069a3bbef6a52fbc 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_sound.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_sound"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beschreibung: </text> <button label="In Welt abspielen" label_selected="In Welt abspielen" diff --git a/indra/newview/skins/default/xui/de/floater_preview_texture.xml b/indra/newview/skins/default/xui/de/floater_preview_texture.xml index 6828da99ebfaceea96e8bdbed1d85e7f3c10d5dc..0c53eb7ca3d7d427162ed094ab0c4a48d1e4565c 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_texture.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_texture"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beschreibung: </text> - <text type="string" length="1" name="dimensions"> + <text name="dimensions"> Maße: [WIDTH] x [HEIGHT] </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_report_abuse.xml b/indra/newview/skins/default/xui/de/floater_report_abuse.xml index af7145003a55030bbc9b566f26cf34629e48c448..a8df587cfad747caa98e1f34980b18e357d6cc0e 100644 --- a/indra/newview/skins/default/xui/de/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/de/floater_report_abuse.xml @@ -41,9 +41,7 @@ dann auf das Objekt: <combo_box.item name="Select_category" label="Kategorie auswählen"/> <combo_box.item name="Age__Age_play" label="Alter> Age-Play"/> <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Alter> Erwachsener Einwohner in Teen Second Life"/> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - Alter > Minderjähriger Einwohner außerhalb Teen Second Life - </combo_item> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Alter > Minderjähriger Einwohner außerhalb Teen Second Life"/> <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Angriff> Kampf-Sandbox / unsichere Region"/> <combo_box.item name="Assault__Safe_area" label="Angriff> Sichere Region"/> <combo_box.item name="Assault__Weapons_testing_sandbox" label="Angriff > Sandbox für Waffentest"/> @@ -68,12 +66,8 @@ dann auf das Objekt: <combo_box.item name="Harassment__Verbal_abuse" label="Belästigung > Beschimpfung"/> <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Unanständigkeit > Anstößige Inhalte oder Handlungen in der Öffentlichkeit"/> <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Unanständigkeit > Anstößiger Avatarname"/> - <combo_item name="Indecency__Mature_content_in_PG_region"> - Unanständigkeit > Unangemessener Inhalt oder unangemessenes Verhalten in PG-Region - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - Unanständigkeit > Unangemessener Inhalt oder unangemessenes Verhalten in Mature-Region - </combo_item> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="Unanständigkeit > Unangemessener Inhalt oder unangemessenes Verhalten in PG-Region"/> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Unanständigkeit > Unangemessener Inhalt oder unangemessenes Verhalten in Mature-Region"/> <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Urheberrechtsverletzung > Entfernen von Inhalten"/> <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Urheberrechtsverletzung > CopyBot oder Berechtigungs-Exploit"/> <combo_box.item name="Intolerance" label="Intoleranz"/> diff --git a/indra/newview/skins/default/xui/de/floater_script_preview.xml b/indra/newview/skins/default/xui/de/floater_script_preview.xml index b5312e370aafc005056b5472fdbc0e6c4c16cb4b..3ab5732055f55d52c8b6597cde5fc4d44cfcd2c0 100644 --- a/indra/newview/skins/default/xui/de/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/de/floater_script_preview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview lsl text" title="Skript: Rotationsskript"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Beschreibung: </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_script_search.xml b/indra/newview/skins/default/xui/de/floater_script_search.xml index 54045ed83a5dd4563692d035e4d7c491aa23ae36..bd9342745662b44f9758381caed5fc3045f3c7ad 100644 --- a/indra/newview/skins/default/xui/de/floater_script_search.xml +++ b/indra/newview/skins/default/xui/de/floater_script_search.xml @@ -4,10 +4,10 @@ <button label="Suchen" label_selected="Suchen" name="search_btn" /> <button label="Ersetzen" label_selected="Ersetzen" name="replace_btn" /> <button label="Alle ersetzen" label_selected="Alle ersetzen" name="replace_all_btn" /> - <text type="string" length="1" name="txt"> + <text name="txt"> Suchen </text> - <text type="string" length="1" name="txt2"> + <text name="txt2"> Ersetzen </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml index e94e22d9b86009cdef266851030f00075688c72b..bc8a1f42f1237d0f5c4a970192df0165810bb55a 100644 --- a/indra/newview/skins/default/xui/de/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml @@ -4,15 +4,9 @@ Zweck des Fotos </text> <radio_group label="Fototyp" name="snapshot_type_radio"> - <radio_item name="postcard"> - Per E-Mail senden - </radio_item> - <radio_item name="texture"> - Im Inventar speichern ([AMOUNT] L$) - </radio_item> - <radio_item name="local"> - Auf Festplatte speichern - </radio_item> + <radio_item name="postcard" label="Per E-Mail senden"/> + <radio_item name="texture" label="Im Inventar speichern ([AMOUNT] L$)"/> + <radio_item name="local" label="Auf Festplatte speichern"/> </radio_group> <text name="file_size_label"> Dateigröße: [SIZE] KB @@ -21,12 +15,8 @@ <button label="Senden" name="send_btn"/> <button label="Speichern ([AMOUNT] L$)" name="upload_btn"/> <flyout_button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern"> - <flyout_button.item name="save_item"> - Speichern - </flyout_button.item> - <flyout_button.item name="saveas_item"> - Speichern unter... - </flyout_button.item> + <flyout_button_item name="save_item" label="Speichern"/> + <flyout_button_item name="saveas_item" label="Speichern unter..."/> </flyout_button> <button label="Abbrechen" name="discard_btn"/> <button label="Mehr >>" name="more_btn" tool_tip="Erweiterte Optionen"/> @@ -38,33 +28,54 @@ Format </text> <combo_box label="Auflösung" name="postcard_size_combo"> - <combo_box.item name="CurrentWindow" label="Aktuelles Fenster" /> - <combo_box.item name="640x480" label="640x480" /> - <combo_box.item name="800x600" label="800x600" /> - <combo_box.item name="1024x768" label="1024x768" /> - <combo_box.item name="Custom" label="Benutzerdefiniert" /> + <combo_box.item name="CurrentWindow" label="Aktuelles Fenster" + /> + <combo_box.item name="640x480" label="640x480" + /> + <combo_box.item name="800x600" label="800x600" + /> + <combo_box.item name="1024x768" label="1024x768" + /> + <combo_box.item name="Custom" label="Benutzerdefiniert" + /> </combo_box> <combo_box label="Auflösung" name="texture_size_combo"> - <combo_box.item name="CurrentWindow" label="Aktuelles Fenster" /> - <combo_box.item name="Small(128x128)" label="Klein (128x128)" /> - <combo_box.item name="Medium(256x256)" label="Mittel (256x256)" /> - <combo_box.item name="Large(512x512)" label="Groß (512x512)" /> - <combo_box.item name="Custom" label="Benutzerdefiniert" /> + <combo_box.item name="CurrentWindow" label="Aktuelles Fenster" + /> + <combo_box.item name="Small(128x128)" label="Klein (128x128)" + /> + <combo_box.item name="Medium(256x256)" label="Mittel (256x256)" + /> + <combo_box.item name="Large(512x512)" label="Groß (512x512)" + /> + <combo_box.item name="Custom" label="Benutzerdefiniert" + /> </combo_box> <combo_box label="Auflösung" name="local_size_combo"> - <combo_box.item name="CurrentWindow" label="Aktuelles Fenster" /> - <combo_box.item name="320x240" label="320x240" /> - <combo_box.item name="640x480" label="640x480" /> - <combo_box.item name="800x600" label="800x600" /> - <combo_box.item name="1024x768" label="1024x768" /> - <combo_box.item name="1280x1024" label="1280x1024" /> - <combo_box.item name="1600x1200" label="1600x1200" /> - <combo_box.item name="Custom" label="Benutzerdefiniert" /> + <combo_box.item name="CurrentWindow" label="Aktuelles Fenster" + /> + <combo_box.item name="320x240" label="320x240" + /> + <combo_box.item name="640x480" label="640x480" + /> + <combo_box.item name="800x600" label="800x600" + /> + <combo_box.item name="1024x768" label="1024x768" + /> + <combo_box.item name="1280x1024" label="1280x1024" + /> + <combo_box.item name="1600x1200" label="1600x1200" + /> + <combo_box.item name="Custom" label="Benutzerdefiniert" + /> </combo_box> <combo_box label="Format" name="local_format_combo"> - <combo_box.item name="PNG" label="PNG" /> - <combo_box.item name="JPEG" label="JPEG" /> - <combo_box.item name="BMP" label="BMP" /> + <combo_box.item name="PNG" label="PNG" + /> + <combo_box.item name="JPEG" label="JPEG" + /> + <combo_box.item name="BMP" label="BMP" + /> </combo_box> <spinner label="Breite" name="snapshot_width"/> <spinner label="Höhe" name="snapshot_height"/> @@ -74,9 +85,12 @@ Aufnehmen: </text> <combo_box label="Bildlayer" name="layer_types" width="132" left="73"> - <combo_box.item name="Colors" label="Farben" /> - <combo_box.item name="Depth" label="Tiefe" /> - <combo_box.item name="ObjectMattes" label="Objektmasken" /> + <combo_box.item name="Colors" label="Farben" + /> + <combo_box.item name="Depth" label="Tiefe" + /> + <combo_box.item name="ObjectMattes" label="Objektmasken" + /> </combo_box> <check_box label="Interface auf Foto anzeigen" name="ui_check"/> <check_box label="HUD-Objekte auf Foto anzeigen" name="hud_check"/> diff --git a/indra/newview/skins/default/xui/de/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/de/floater_texture_ctrl.xml index 4aa7db4d330334b3ced4e4d9daa4af9738b9a839..fff6ab5c7466a01f74c2b953b098d444291855dc 100644 --- a/indra/newview/skins/default/xui/de/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/de/floater_texture_ctrl.xml @@ -3,10 +3,10 @@ <string name="choose_picture"> Zum Auswählen eines Bildes hier klicken </string> - <text type="string" length="1" name="Multiple"> + <text name="Multiple"> Mehrfach </text> - <text type="string" length="1" name="unknown"> + <text name="unknown"> Maße: [DIMENSIONS] </text> <button label="Standard" label_selected="Standard" name="Default" /> diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml index 8084d2427e8cd4e79de78d7d2990459faef07497..2875f5d04cd10ee1fa3acf7865a242e8f1a4c32e 100644 --- a/indra/newview/skins/default/xui/de/floater_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_tools.xml @@ -5,30 +5,33 @@ <button label="" label_selected="" name="button edit" tool_tip="Bearbeiten"/> <button label="" label_selected="" name="button create" tool_tip="Erstellen"/> <button label="" label_selected="" name="button land" tool_tip="Land"/> - <check_box label="Zoom" name="radio zoom"/> - <check_box label="Orbit (Strg)" name="radio orbit"/> - <check_box label="Schwenken (Strg-Umschalt)" name="radio pan"/> - <check_box label="Verschieben" name="radio move"/> - <check_box label="Heben (Strg)" name="radio lift"/> - <check_box label="Rotieren (Strg-Umschalt)" name="radio spin"/> - <check_box label="Position" name="radio position"/> - <check_box label="Drehen (Strg)" name="radio rotate"/> - <check_box label="Dehnen (Strg-Umschalt)" name="radio stretch"/> - <check_box label="Textur auswählen" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="Zoom" name="radio zoom"/> + <radio_item label="Orbit (Strg)" name="radio orbit"/> + <radio_item label="Schwenken (Strg-Umschalt)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="Verschieben" name="radio move"/> + <radio_item label="Heben (Strg)" name="radio lift"/> + <radio_item label="Rotieren (Strg-Umschalt)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="Position" name="radio position"/> + <radio_item label="Drehen (Strg)" name="radio rotate"/> + <radio_item label="Dehnen (Strg-Umschalt)" name="radio stretch"/> + <radio_item label="Textur auswählen" name="radio select face"/> + </radio_group> <check_box label="Verknüpfte Teile bearbeiten" name="checkbox edit linked parts"/> <text name="text ruler mode"> Lineal: </text> <combo_box name="combobox grid mode"> - <combo_item name="World"> - Welt - </combo_item> - <combo_item name="Local"> - Lokal - </combo_item> - <combo_item name="Reference"> - Referenz - </combo_item> + <combo_box.item name="World" label="Welt" + /> + <combo_box.item name="Local" label="Lokal" + /> + <combo_box.item name="Reference" label="Referenz" + /> </combo_box> <check_box label="Beide Seiten dehnen" name="checkbox uniform"/> <check_box label="Texturen dehnen" name="checkbox stretch textures"/> @@ -56,13 +59,15 @@ <check_box label="Auswahl kopieren" name="checkbox copy selection"/> <check_box label="Zentrieren" name="checkbox copy centers"/> <check_box label="Drehen" name="checkbox copy rotates"/> - <check_box label="Land auswählen" name="radio select land"/> - <check_box label="Einebnen" name="radio flatten"/> - <check_box label="Anheben" name="radio raise"/> - <check_box label="Absenken" name="radio lower"/> - <check_box label="Glätten" name="radio smooth"/> - <check_box label="Aufrauen" name="radio noise"/> - <check_box label="Zurücksetzen" name="radio revert"/> + <radio_group name="land_radio_group"> + <radio_item label="Land auswählen" name="radio select land"/> + <radio_item label="Einebnen" name="radio flatten"/> + <radio_item label="Anheben" name="radio raise"/> + <radio_item label="Absenken" name="radio lower"/> + <radio_item label="Glätten" name="radio smooth"/> + <radio_item label="Aufrauen" name="radio noise"/> + <radio_item label="Zurücksetzen" name="radio revert"/> + </radio_group> <button label="Ãœbernehmen" label_selected="Ãœbernehmen" name="button apply to selection" tool_tip="Ausgewähltes Land ändern"/> <text name="Bulldozer:"> Planierraupe: @@ -111,9 +116,7 @@ <text name="Permissions:"> Berechtigungen: </text> - <text name="perm_modify"> - Sie können dieses Objekt ändern. - </text> + <check_box label="Mit Gruppe teilen" name="checkbox share with group" tool_tip="Allen Mitgliedern der zugeordneten Gruppe die Erlaubnis erteilen, Ihre Berechtigungen für dieses Objekt zu teilen und zu verwenden. Sie müssen Ãœbereignen, um Rollenbeschränkungen zu aktivieren."/> <string name="text deed continued"> Ãœbertragung... @@ -129,54 +132,40 @@ <text name="Cost"> Preis:L$ </text> - <radio_group name="sale type"> - <radio_item name="Original"> - Original - </radio_item> - <radio_item name="Copy"> - Kopieren - </radio_item> - <radio_item name="Contents"> - Inhalt - </radio_item> - </radio_group> - <text name="Next owner can:"> - Nächster Eigentümer kann: - </text> - <check_box label="Ändern" name="checkbox next owner can modify"/> - <check_box label="Kopieren" name="checkbox next owner can copy"/> - <check_box label="Wiederverkaufen" name="checkbox next owner can transfer"/> + <combo_box name="sale type"> + <combo_box.item label="Kopieren" name="Copy"/> + <combo_box.item label="Inhalt" name="Contents"/> + <combo_box.item label="Original" name="Original"/> + </combo_box> + <text name="label click action"> Bei Linksklicken: </text> <combo_box name="clickaction"> - <combo_item name="Touch/grab(default)"> - Berühren/Greifen (Standard) - </combo_item> - <combo_item name="Sitonobject"> - Auf Objekt sitzen - </combo_item> - <combo_item name="Buyobject"> - Objekt kaufen - </combo_item> - <combo_item name="Payobject"> - Objekt bezahlen - </combo_item> - <combo_item name="Open"> - Öffnen - </combo_item> - <combo_item name="Play"> - Parzellenmedien wiedergeben - </combo_item> - <combo_item name="Opemmedia"> - Parzellenmedien öffnen - </combo_item> + <combo_box.item name="Touch/grab(default)" label="Berühren/Greifen (Standard)" + /> + <combo_box.item name="Sitonobject" label="Auf Objekt sitzen" + /> + <combo_box.item name="Buyobject" label="Objekt kaufen" + /> + <combo_box.item name="Payobject" label="Objekt bezahlen" + /> + <combo_box.item name="Open" label="Öffnen" + /> + <combo_box.item name="Play" label="Parzellenmedien wiedergeben" + /> + <combo_box.item name="Opemmedia" label="Parzellenmedien öffnen" + /> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + Sie können dieses Objekt ändern. + </text> <text name="B:"> B: </text> <text name="O:"> - O; + O: </text> <text name="G:"> G: @@ -190,6 +179,13 @@ <text name="F:"> F: </text> + <text name="Next owner can:"> + Nächster Eigentümer kann: + </text> + <check_box label="Ändern" name="checkbox next owner can modify"/> + <check_box label="Kopieren" name="checkbox next owner can copy"/> + <check_box name="checkbox next owner can transfer"/> + </panel> <string name="text modify info 1"> Sie können dieses Objekt ändern. </string> @@ -254,56 +250,41 @@ Material </text> <combo_box name="material"> - <combo_item name="Stone"> - Stein - </combo_item> - <combo_item name="Metal"> - Metall - </combo_item> - <combo_item name="Glass"> - Glas - </combo_item> - <combo_item name="Wood"> - Holz - </combo_item> - <combo_item name="Flesh"> - Fleisch - </combo_item> - <combo_item name="Plastic"> - Kunststoff - </combo_item> - <combo_item name="Rubber"> - Gummi - </combo_item> + <combo_box.item name="Stone" label="Stein" + /> + <combo_box.item name="Metal" label="Metall" + /> + <combo_box.item name="Glass" label="Glas" + /> + <combo_box.item name="Wood" label="Holz" + /> + <combo_box.item name="Flesh" label="Fleisch" + /> + <combo_box.item name="Plastic" label="Kunststoff" + /> + <combo_box.item name="Rubber" label="Gummi" + /> </combo_box> <text name="label basetype"> Bausteintyp </text> <combo_box name="comboBaseType"> - <combo_item name="Box"> - Quader - </combo_item> - <combo_item name="Cylinder"> - Zylinder - </combo_item> - <combo_item name="Prism"> - Prisma - </combo_item> - <combo_item name="Sphere"> - Kugel - </combo_item> - <combo_item name="Torus"> - Torus - </combo_item> - <combo_item name="Tube"> - Rohr - </combo_item> - <combo_item name="Ring"> - Ring - </combo_item> - <combo_item name="Sculpted"> - Geformt - </combo_item> + <combo_box.item name="Box" label="Quader" + /> + <combo_box.item name="Cylinder" label="Zylinder" + /> + <combo_box.item name="Prism" label="Prisma" + /> + <combo_box.item name="Sphere" label="Kugel" + /> + <combo_box.item name="Torus" label="Torus" + /> + <combo_box.item name="Tube" label="Rohr" + /> + <combo_box.item name="Ring" label="Ring" + /> + <combo_box.item name="Sculpted" label="Geformt" + /> </combo_box> <text name="text cut"> Pfadschnitt Beginn und Ende @@ -322,18 +303,14 @@ Hohlform </text> <combo_box name="hole"> - <combo_item name="Default"> - Standard - </combo_item> - <combo_item name="Circle"> - Kreis - </combo_item> - <combo_item name="Square"> - Quadrat - </combo_item> - <combo_item name="Triangle"> - Dreieck - </combo_item> + <combo_box.item name="Default" label="Standard" + /> + <combo_box.item name="Circle" label="Kreis" + /> + <combo_box.item name="Square" label="Quadrat" + /> + <combo_box.item name="Triangle" label="Dreieck" + /> </combo_box> <text name="text twist"> Torsion @@ -384,21 +361,16 @@ Primitiv" name="sculpt texture control" tool_tip="Klicken Sie hier, um ein Bild Naht </text> <combo_box name="sculpt type control"> - <combo_item name="None"> - (keiner) - </combo_item> - <combo_item name="Sphere"> - Kugel - </combo_item> - <combo_item name="Torus"> - Torus - </combo_item> - <combo_item name="Plane"> - Fläche - </combo_item> - <combo_item name="Cylinder"> - Zylinder - </combo_item> + <combo_box.item name="None" label="(keiner)" + /> + <combo_box.item name="Sphere" label="Kugel" + /> + <combo_box.item name="Torus" label="Torus" + /> + <combo_box.item name="Plane" label="Fläche" + /> + <combo_box.item name="Cylinder" label="Zylinder" + /> </combo_box> </panel> <panel label="Eigenschaften" name="Features"> @@ -440,88 +412,64 @@ Primitiv" name="sculpt texture control" tool_tip="Klicken Sie hier, um ein Bild Zuordnung </text> <combo_box name="combobox texgen"> - <combo_item name="Default"> - Standard - </combo_item> - <combo_item name="Planar"> - Eben - </combo_item> + <combo_box.item name="Default" label="Standard" + /> + <combo_box.item name="Planar" label="Eben" + /> </combo_box> <text name="label shininess"> Glanz </text> <combo_box name="combobox shininess"> - <combo_item name="None"> - Kein - </combo_item> - <combo_item name="Low"> - Niedrig - </combo_item> - <combo_item name="Medium"> - Mittel - </combo_item> - <combo_item name="High"> - Hoch - </combo_item> + <combo_box.item name="None" label="Kein" + /> + <combo_box.item name="Low" label="Niedrig" + /> + <combo_box.item name="Medium" label="Mittel" + /> + <combo_box.item name="High" label="Hoch" + /> </combo_box> <text name="label bumpiness"> Holprigkeit </text> <combo_box name="combobox bumpiness"> - <combo_item name="None"> - Keine - </combo_item> - <combo_item name="Brightness"> - Helligkeit - </combo_item> - <combo_item name="Darkness"> - Dunkelheit - </combo_item> - <combo_item name="woodgrain"> - Holzmaserung - </combo_item> - <combo_item name="bark"> - Rinde - </combo_item> - <combo_item name="bricks"> - Ziegel - </combo_item> - <combo_item name="checker"> - Karo - </combo_item> - <combo_item name="concrete"> - Beton - </combo_item> - <combo_item name="crustytile"> - verkrustete Fliesen - </combo_item> - <combo_item name="cutstone"> - Steinplatten - </combo_item> - <combo_item name="discs"> - Scheiben - </combo_item> - <combo_item name="gravel"> - Kies - </combo_item> - <combo_item name="petridish"> - Petrischale - </combo_item> - <combo_item name="siding"> - Verkleidung - </combo_item> - <combo_item name="stonetile"> - Steinfliesen - </combo_item> - <combo_item name="stucco"> - Stuck - </combo_item> - <combo_item name="suction"> - Saugen - </combo_item> - <combo_item name="weave"> - gewoben - </combo_item> + <combo_box.item name="None" label="Keine" + /> + <combo_box.item name="Brightness" label="Helligkeit" + /> + <combo_box.item name="Darkness" label="Dunkelheit" + /> + <combo_box.item name="woodgrain" label="Holzmaserung" + /> + <combo_box.item name="bark" label="Rinde" + /> + <combo_box.item name="bricks" label="Ziegel" + /> + <combo_box.item name="checker" label="Karo" + /> + <combo_box.item name="concrete" label="Beton" + /> + <combo_box.item name="crustytile" label="verkrustete Fliesen" + /> + <combo_box.item name="cutstone" label="Steinplatten" + /> + <combo_box.item name="discs" label="Scheiben" + /> + <combo_box.item name="gravel" label="Kies" + /> + <combo_box.item name="petridish" label="Petrischale" + /> + <combo_box.item name="siding" label="Verkleidung" + /> + <combo_box.item name="stonetile" label="Steinfliesen" + /> + <combo_box.item name="stucco" label="Stuck" + /> + <combo_box.item name="suction" label="Saugen" + /> + <combo_box.item name="weave" label="gewoben" + /> </combo_box> <text name="tex scale"> Wiederholungen @@ -583,673 +531,43 @@ Primitiv" name="sculpt texture control" tool_tip="Klicken Sie hier, um ein Bild <button label="Land kaufen..." label_selected="Land kaufen..." name="button buy land"/> <button label="Land aufgeben..." label_selected="Land aufgeben..." name="button abandon land"/> </panel> - <string name="status_rotate"> - An den farbigen Bändern ziehen, um das Objekt zu drehen - </string> - <string name="status_scale"> - Klicken und ziehen, um die ausgewählte Seite zu dehnen - </string> - <string name="status_move"> - Maus verschiebt, Umschalt-Taste und Maus kopiert - </string> - <string name="status_modifyland"> - Klicken und halten, um das Land zu bearbeiten - </string> - <string name="status_camera"> - Klicken und ziehen, um die Ansicht zu ändern - </string> - <string name="status_grab"> - Ziehen, um Objekte zu verschieben, Strg zum Heben, Strg-Umschalt zum Drehen - </string> - <string name="status_place"> - Inworld klicken, um zu bauen. - </string> - <string name="status_selectland"> - Klicken und ziehen, um Land auszuwählen - </string> - <string name="grid_screen_text"> - Bildschirm - </string> - <string name="grid_local_text"> - Lokal - </string> - <string name="grid_world_text"> - Welt - </string> - <string name="grid_reference_text"> - Referenz - </string> - <string name="grid_attachment_text"> - Anhang - </string> -</floater> - -<!-- original file - -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="toolbox floater" title="" short_title="Bauen"> - <button label="" label_selected="" name="button focus" tool_tip="Fokus"/> - <button label="" label_selected="" name="button move" tool_tip="Verschieben"/> - <button label="" label_selected="" name="button edit" tool_tip="Bearbeiten"/> - <button label="" label_selected="" name="button create" tool_tip="Erstellen"/> - <button label="" label_selected="" name="button land" tool_tip="Land"/> - <check_box label="Zoom" name="radio zoom"/> - <check_box label="Orbit (Strg)" name="radio orbit"/> - <check_box label="Schwenken (Strg-Umschalt)" name="radio pan"/> - <check_box label="Verschieben" name="radio move"/> - <check_box label="Heben (Strg)" name="radio lift"/> - <check_box label="Rotieren (Strg-Umschalt)" name="radio spin"/> - <check_box label="Position" name="radio position"/> - <check_box label="Drehen (Strg)" name="radio rotate"/> - <check_box label="Dehnen (Strg-Umschalt)" name="radio stretch"/> - <check_box label="Textur auswählen" name="radio select face"/> - <check_box label="Verknüpfte Teile bearbeiten" name="checkbox edit linked parts"/> - <text name="text ruler mode"> - Lineal: - </text> - <combo_box name="combobox grid mode"> - <combo_item name="World"> - Welt - </combo_item> - <combo_item name="Local"> - Lokal - </combo_item> - <combo_item name="Reference"> - Referenz - </combo_item> - </combo_box> - <check_box label="Beide Seiten dehnen" name="checkbox uniform"/> - <check_box label="Texturen dehnen" name="checkbox stretch textures"/> - <check_box label="Raster verwenden" name="checkbox snap to grid"/> - <button label="Optionen..." label_selected="Optionen..." name="Options..."/> - <text name="text status"> - Zum Verschieben ziehen, zum Kopieren Umschalttaste-Ziehen - </text> - <button label="" label_selected="" name="ToolCube" tool_tip="Würfel"/> - <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/> - <button label="" label_selected="" name="ToolPyramid" tool_tip="Pyramide"/> - <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetraeder"/> - <button label="" label_selected="" name="ToolCylinder" tool_tip="Zylinder"/> - <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Halbzylinder"/> - <button label="" label_selected="" name="ToolCone" tool_tip="Kegel"/> - <button label="" label_selected="" name="ToolHemiCone" tool_tip="Halbkegel"/> - <button label="" label_selected="" name="ToolSphere" tool_tip="Kugel"/> - <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Halbkugel"/> - <button label="" label_selected="" name="ToolTorus" tool_tip="Torus"/> - <button label="" label_selected="" name="ToolTube" tool_tip="Rohr"/> - <button label="" label_selected="" name="ToolRing" tool_tip="Ring"/> - <button label="" label_selected="" name="ToolTree" tool_tip="Baum"/> - <button label="" label_selected="" name="ToolGrass" tool_tip="Gras"/> - <check_box label="Auswahl behalten" name="checkbox sticky"/> - <check_box label="Auswahl kopieren" name="checkbox copy selection"/> - <check_box label="Zentrieren" name="checkbox copy centers"/> - <check_box label="Drehen" name="checkbox copy rotates"/> - <check_box label="Land auswählen" name="radio select land"/> - <check_box label="Einebnen" name="radio flatten"/> - <check_box label="Anheben" name="radio raise"/> - <check_box label="Absenken" name="radio lower"/> - <check_box label="Glätten" name="radio smooth"/> - <check_box label="Aufrauen" name="radio noise"/> - <check_box label="Zurücksetzen" name="radio revert"/> - <button label="Ãœbernehmen" label_selected="Ãœbernehmen" name="button apply to selection" tool_tip="Ausgewähltes Land ändern"/> - <text name="Bulldozer:"> - Planierraupe: - </text> - <text name="Dozer Size:"> - Größe - </text> - <text name="Strength:"> - Stärke - </text> - <text name="obj_count"> - Ausgewählte Objekte: [COUNT] - </text> - <text name="prim_count"> - Primitive: [COUNT] - </text> - <tab_container name="Object Info Tabs" tab_max_width="150" tab_min_width="30"> - <panel label="Allgemein" name="General"> - <text name="Name:"> - Name: - </text> - <text name="Description:"> - Beschreibung: - </text> - <text name="Creator:"> - Ersteller: - </text> - <text name="Creator Name"> - Thrax Linden - </text> - <button label="Profil..." label_selected="Profil..." name="button creator profile"/> - <text name="Owner:"> - Eigentümer: - </text> - <text name="Owner Name"> - Thrax Linden - </text> - <button label="Profil..." label_selected="Profil..." name="button owner profile"/> - <text name="Group:"> - Gruppe: - </text> - <text name="Group Name Proxy"> - Die Lindens - </text> - <button label="Festlegen..." label_selected="Festlegen..." name="button set group"/> - <text name="Permissions:"> - Berechtigungen: - </text> - <text name="perm_modify"> - Sie können dieses Objekt ändern. - </text> - <check_box label="Mit Gruppe teilen" left="6" name="checkbox share with group" tool_tip="Allen Mitgliedern der zugeordneten Gruppe die Erlaubnis erteilen, Ihre Berechtigungen für dieses Objekt zu teilen und zu verwenden. Sie müssen Ãœbereignen, um Rollenbeschränkungen zu aktivieren."/> - <string name="text deed continued"> - Ãœbertragung... - </string> - <string name="text deed"> - Ãœbertragung - </string> - <button label="Ãœbertragung..." label_selected="Ãœbertragung..." name="button deed" tool_tip="In der Gruppe gemeinsam verwendete Objekte können von einem Gruppenfunktionär übertragen werden."/> - <check_box label="Verschieben durch beliebige Personen zulassen" left="6" name="checkbox allow everyone move"/> - <check_box label="Kopieren durch beliebige Personen zulassen" left="6" name="checkbox allow everyone copy"/> - <check_box label="In Suche anzeigen" left="6" name="search_check" tool_tip="Dieses Objekt in Suchergebnissen anzeigen"/> - <check_box label="Zu verkaufen" left="6" name="checkbox for sale"/> - <text name="Cost"> - Preis:L$ - </text> - <radio_group name="sale type"> - <radio_item name="Original"> - Original - </radio_item> - <radio_item name="Copy"> - Kopieren - </radio_item> - <radio_item name="Contents"> - Inhalt - </radio_item> - </radio_group> - <text name="Next owner can:"> - Nächster Eigentümer kann: - </text> - <check_box label="Ändern" name="checkbox next owner can modify"/> - <check_box label="Kopieren" name="checkbox next owner can copy"/> - <check_box label="Wiederverkaufen" left_delta="75" name="checkbox next owner can transfer"/> - <text name="label click action"> - Bei Linksklicken: - </text> - <combo_box name="clickaction" width="178"> - <combo_item name="Touch/grab(default)"> - Berühren/Greifen (Standard) - </combo_item> - <combo_item name="Sitonobject"> - Auf Objekt sitzen - </combo_item> - <combo_item name="Buyobject"> - Objekt kaufen - </combo_item> - <combo_item name="Payobject"> - Objekt bezahlen - </combo_item> - <combo_item name="Open"> - Öffnen - </combo_item> - <combo_item name="Play"> - Parzellenmedien wiedergeben - </combo_item> - <combo_item name="Opemmedia"> - Parzellenmedien öffnen - </combo_item> - </combo_box> - <text name="B:"> - B: - </text> - <text name="O:"> - O; - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> - <string name="text modify info 1"> - Sie können dieses Objekt ändern. - </string> - <string name="text modify info 2"> - Sie können diese Objekte ändern. - </string> - <string name="text modify info 3"> - Sie können dieses Objekt nicht ändern. - </string> - <string name="text modify info 4"> - Sie können diese Objekte nicht ändern. - </string> - <string name="text modify warning"> - Gesamtes Objekt muss gewählt werden, um Berechtigungen festzulegen. - </string> - <string name="Cost Default"> - Preis:L$ - </string> - <string name="Cost Total"> - Summe:L$ - </string> - <string name="Cost Per Unit"> - Stückpreis:L$ - </string> - <string name="Cost Mixed"> - Mischpreis - </string> - <string name="Sale Mixed"> - Mischverkauf - </string> - </panel> - <panel label="Objekt" name="Object"> - <text name="select_single"> - Wählen Sie nur ein Primitivum aus, um Parameter zu bearbeiten. - </text> - <text name="edit_object"> - Objektparameter bearbeiten: - </text> - <check_box label="Gesperrt" name="checkbox locked" tool_tip="Verhindert, dass Objekt verschoben oder gelöscht wird. Oft beim Bauen nützlich, um unbeabsichtigte Bearbeitungen zu vermeiden."/> - <check_box label="Physisch" name="Physical Checkbox Ctrl" tool_tip="Gestattet, das Objekt geschoben und von Schwerkraft beeinflusst wird"/> - <check_box label="Temporär" name="Temporary Checkbox Ctrl" tool_tip="Verursacht, dass Objekt 1 Minute nach Erstellung gelöscht wird."/> - <check_box label="Phantom" name="Phantom Checkbox Ctrl" tool_tip="Verursacht, dass Objekt nicht mit anderen Objekten oder Avataren kollidiert"/> - <text name="label position"> - Position (Meter) - </text> - <spinner label="X" name="Pos X"/> - <spinner label="Y" name="Pos Y"/> - <spinner label="Z" name="Pos Z"/> - <text name="label size"> - Größe (Meter) - </text> - <spinner label="X" name="Scale X"/> - <spinner label="Y" name="Scale Y"/> - <spinner label="Z" name="Scale Z"/> - <text name="label rotation"> - Rotation (Grad) - </text> - <spinner label="X" name="Rot X"/> - <spinner label="Y" name="Rot Y"/> - <spinner label="Z" name="Rot Z"/> - <text name="label material"> - Material - </text> - <combo_box name="material"> - <combo_item name="Stone"> - Stein - </combo_item> - <combo_item name="Metal"> - Metall - </combo_item> - <combo_item name="Glass"> - Glas - </combo_item> - <combo_item name="Wood"> - Holz - </combo_item> - <combo_item name="Flesh"> - Fleisch - </combo_item> - <combo_item name="Plastic"> - Kunststoff - </combo_item> - <combo_item name="Rubber"> - Gummi - </combo_item> - </combo_box> - <text left="115" name="label basetype"> - Bausteintyp - </text> - <combo_box left="115" name="comboBaseType"> - <combo_item name="Box"> - Quader - </combo_item> - <combo_item name="Cylinder"> - Zylinder - </combo_item> - <combo_item name="Prism"> - Prisma - </combo_item> - <combo_item name="Sphere"> - Kugel - </combo_item> - <combo_item name="Torus"> - Torus - </combo_item> - <combo_item name="Tube"> - Rohr - </combo_item> - <combo_item name="Ring"> - Ring - </combo_item> - <combo_item name="Sculpted"> - Geformt - </combo_item> - </combo_box> - <text left="115" name="text cut" width="146"> - Pfadschnitt Beginn und Ende - </text> - <spinner label="B" left="115" name="cut begin"/> - <spinner label="E" left="115" name="cut end"/> - <text left="115" name="text hollow"> - Hohl - </text> - <text left="115" name="text skew"> - Versatz - </text> - <spinner left="115" name="Scale 1"/> - <spinner left="115" name="Skew"/> - <text left="115" name="Hollow Shape"> - Hohlform - </text> - <combo_box left="115" name="hole"> - <combo_item name="Default"> - Standard - </combo_item> - <combo_item name="Circle"> - Kreis - </combo_item> - <combo_item name="Square"> - Quadrat - </combo_item> - <combo_item name="Triangle"> - Dreieck - </combo_item> - </combo_box> - <text left="115" name="text twist"> - Torsion - </text> - <spinner label="B" left="115" name="Twist Begin"/> - <spinner label="E" left="115" name="Twist End"/> - <text left="115" name="scale_taper"> - Verjüngung - </text> - <text left="115" name="scale_hole"> - Lochgröße - </text> - <spinner label="X" left="115" name="Taper Scale X"/> - <spinner label="Y" left="115" name="Taper Scale Y"/> - <text left="115" name="text topshear"> - Verscherung - </text> - <spinner label="X" left="115" name="Shear X"/> - <spinner label="Y" left="115" name="Shear Y"/> - <text left="115" name="advanced_cut" width="153"> - Profilschnitt-Beginn und Ende - </text> - <text left="115" name="advanced_dimple"> - Vertiefung-Beginn und Ende - </text> - <text name="advanced_slice"> - Anfang/Ende abschneiden - </text> - <spinner label="B" left="115" name="Path Limit Begin"/> - <spinner label="E" name="Path Limit End"/> - <text left="115" name="text taper2"> - Verjüngung - </text> - <spinner label="X" left="115" name="Taper X"/> - <spinner label="Y" name="Taper Y"/> - <text left="115" name="text radius delta"> - Radius - </text> - <text name="text revolutions" width="74"> - Umdrehungen - </text> - <spinner left="115" name="Radius Offset"/> - <texture_picker label="Textur für gestaltetes -Primitiv" name="sculpt texture control" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/> - <check_box bottom_delta="-34" label="Spiegeln" name="sculpt mirror control" tool_tip="Geformtes Primitiv entlang der X-Achse spiegeln."/> - <check_box label="Wenden" name="sculpt invert control" tool_tip="Dreht die Normalen des geformten Primitivs von innen nach außen."/> - <text name="label sculpt type"> - Naht - </text> - <combo_box name="sculpt type control"> - <combo_item name="None"> - (keiner) - </combo_item> - <combo_item name="Sphere"> - Kugel - </combo_item> - <combo_item name="Torus"> - Torus - </combo_item> - <combo_item name="Plane"> - Fläche - </combo_item> - <combo_item name="Cylinder"> - Zylinder - </combo_item> - </combo_box> - </panel> - <panel label="Eigenschaften" name="Features"> - <text name="select_single"> - Wählen Sie nur einen einzelnen Baustein aus, um Eigenschaften zu bearbeiten. - </text> - <text name="edit_object"> - Objekteigenschaften bearbeiten: - </text> - <check_box label="Flexibler Weg" name="Flexible1D Checkbox Ctrl" tool_tip="Gestattet, dass Objekt um die Z-Achse gebogen wird. (nur Client-Seite)"/> - <spinner label="Weichheit" name="FlexNumSections"/> - <spinner label="Schwerkraft" name="FlexGravity"/> - <spinner label="Ziehen" name="FlexFriction"/> - <spinner label="Wind" name="FlexWind"/> - <spinner label="Spannung" name="FlexTension"/> - <spinner label="Erzwingen X" name="FlexForceX"/> - <spinner label="Erzwingen Y" name="FlexForceY"/> - <spinner label="Erzwingen Z" name="FlexForceZ"/> - <check_box label="Licht" name="Light Checkbox Ctrl" tool_tip="Verursacht, dass Objekt Licht emittiert"/> - <text name="label color"> - Farbe - </text> - <color_swatch label="" name="colorswatch" tool_tip="Klicken, um Farbauswahl zu öffnen"/> - <spinner label="Intensität" name="Light Intensity"/> - <spinner label="Radius" name="Light Radius"/> - <spinner label="Abnehmend" name="Light Falloff"/> - </panel> - <panel label="Textur" name="Texture"> - <texture_picker label="Textur" name="texture control" tool_tip="Klicken, um ein Bild zu wählen"/> - <color_swatch label="Farbe" name="colorswatch" tool_tip="Klicken, um Farbauswahl zu öffnen"/> - <text name="color trans"> - Transparenz % - </text> - <text name="glow label"> - Leuchten - </text> - <check_box label="Ganz hell" name="checkbox fullbright"/> - <text name="tex gen"> - Zuordnung - </text> - <combo_box name="combobox texgen"> - <combo_item name="Default"> - Standard - </combo_item> - <combo_item name="Planar"> - Eben - </combo_item> - </combo_box> - <text name="label shininess"> - Glanz - </text> - <combo_box name="combobox shininess"> - <combo_item name="None"> - Kein - </combo_item> - <combo_item name="Low"> - Niedrig - </combo_item> - <combo_item name="Medium"> - Mittel - </combo_item> - <combo_item name="High"> - Hoch - </combo_item> - </combo_box> - <text name="label bumpiness"> - Holprigkeit - </text> - <combo_box name="combobox bumpiness"> - <combo_item name="None"> - Keine - </combo_item> - <combo_item name="Brightness"> - Helligkeit - </combo_item> - <combo_item name="Darkness"> - Dunkelheit - </combo_item> - <combo_item name="woodgrain"> - Holzmaserung - </combo_item> - <combo_item name="bark"> - Rinde - </combo_item> - <combo_item name="bricks"> - Ziegel - </combo_item> - <combo_item name="checker"> - Karo - </combo_item> - <combo_item name="concrete"> - Beton - </combo_item> - <combo_item name="crustytile"> - verkrustete Fliesen - </combo_item> - <combo_item name="cutstone"> - Steinplatten - </combo_item> - <combo_item name="discs"> - Scheiben - </combo_item> - <combo_item name="gravel"> - Kies - </combo_item> - <combo_item name="petridish"> - Petrischale - </combo_item> - <combo_item name="siding"> - Verkleidung - </combo_item> - <combo_item name="stonetile"> - Steinfliesen - </combo_item> - <combo_item name="stucco"> - Stuck - </combo_item> - <combo_item name="suction"> - Saugen - </combo_item> - <combo_item name="weave"> - gewoben - </combo_item> - </combo_box> - <text name="tex scale"> - Wiederholungen - </text> - <spinner label="Horizontal (U)" name="TexScaleU"/> - <check_box label="Umkehren" name="checkbox flip s"/> - <spinner label="Vertikal (V)" name="TexScaleV"/> - <check_box label="Umkehren" name="checkbox flip t"/> - <text name="tex rotate"> - Rotation (Grad) - </text> - <string name="string repeats per meter"> - Kacheln pro Meter - </string> - <string name="string repeats per face"> - Wiederholungen pro Fläche - </string> - <text name="rpt"> - Kacheln pro Meter - </text> - <button label="Ãœbernehmen" label_selected="Ãœbernehmen" name="button apply"/> - <text name="tex offset"> - Versatz - </text> - <spinner label="Horizontal (U)" name="TexOffsetU"/> - <spinner label="Vertikal (V)" name="TexOffsetV"/> - <text name="textbox autofix"> - Medientextur ausrichten -(zuerst laden) - </text> - <button label="Ausrichten" label_selected="Ausrichten" name="button align"/> - </panel> - <panel label="Inhalt" name="Contents"> - <button label="Neues Skript" label_selected="Neues Skript..." name="button new script"/> - <button label="Berechtigungen..." name="button permissions" width="118"/> - </panel> - </tab_container> - <panel name="land info panel"> - <text name="label_parcel_info"> - Parzelleninformation - </text> - <text name="label_area_price"> - Preis: L$ [PRICE] für [AREA] m2. - </text> - <text name="label_area"> - Fläche: [AREA] m2 - </text> - <button label="Info zu Land..." label_selected="Info zu Land..." name="button about land" width="110"/> - <check_box label="Eigentümer anzeigen" name="checkbox show owners" tool_tip="Parzellen nach Eigentümer farbig kennzeichnen"/> - <button label="?" label_selected="?" name="button show owners help" left_delta="130"/> - <text name="label_parcel_modify"> - Parzelle ändern - </text> - <button label="Unterteilen..." label_selected="Unterteilen..." name="button subdivide land" width="110"/> - <button label="Zusammenlegen" label_selected="Zusammenlegen" name="button join land" width="110"/> - <text name="label_parcel_trans"> - Land-Transaktionen - </text> - <button label="Land kaufen..." label_selected="Land kaufen..." name="button buy land" width="110"/> - <button label="Land aufgeben..." label_selected="Land aufgeben..." name="button abandon land" width="110"/> - </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> An den farbigen Bändern ziehen, um das Objekt zu drehen - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> Klicken und ziehen, um die ausgewählte Seite zu dehnen - </string> - <string name="status_move"> + </floater.string> + <floater.string name="status_move"> Maus verschiebt, Umschalt-Taste und Maus kopiert - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_modifyland"> Klicken und halten, um das Land zu bearbeiten - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> Klicken und ziehen, um die Ansicht zu ändern - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> Ziehen, um Objekte zu verschieben, Strg zum Heben, Strg-Umschalt zum Drehen - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> Inworld klicken, um zu bauen. - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> Klicken und ziehen, um Land auszuwählen - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> Bildschirm - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> Lokal - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> Welt - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> Referenz - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> Anhang - </string> + </floater.string> </floater> - ---> diff --git a/indra/newview/skins/default/xui/de/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/de/floater_wearable_save_as.xml index 89e351e49396ee2859d8834521cff7f623df4287..dad1b629750520b3514a4b31fe5a743bda0908eb 100644 --- a/indra/newview/skins/default/xui/de/floater_wearable_save_as.xml +++ b/indra/newview/skins/default/xui/de/floater_wearable_save_as.xml @@ -2,7 +2,7 @@ <floater name="modal container" title=" "> <button label="Speichern" label_selected="Speichern" name="Save" /> <button label="Abbrechen" label_selected="Abbrechen" name="Cancel" /> - <text type="string" length="1" name="Save item as:"> + <text name="Save item as:"> Objekt speichern als: </text> <line_editor name="name ed"> diff --git a/indra/newview/skins/default/xui/de/floater_world_map.xml b/indra/newview/skins/default/xui/de/floater_world_map.xml index fecaf3eaff11e178060d8b82262664c28f5f5bfc..d3366e58712c96b2b69840595f85a4ed7fcfa915 100644 --- a/indra/newview/skins/default/xui/de/floater_world_map.xml +++ b/indra/newview/skins/default/xui/de/floater_world_map.xml @@ -14,7 +14,7 @@ Auktion </text> <text font="SansSerifSmall" name="land_for_sale_label"> - Land erhaeltlich + Land zum Verkauf </text> <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/> <check_box label="Einwohner" name="people_chk"/> @@ -28,10 +28,10 @@ <check_box label="Mature" name="event_mature_chk"/> <check_box label="Adult" name="event_adult_chk"/> <combo_box label="Online-Freunde" name="friend combo" tool_tip="Freund, der auf Karte angezeigt werden soll"> - <combo_box.item name="none_selected" label="Online-Freunde" /> + <combo_box.item name="item1" label="Online-Freunde" /> </combo_box> <combo_box label="Landmarken" name="landmark combo" tool_tip="Landmarke, die auf Karte angezeigt werden soll"> - <combo_box.item name="none_selected" label="Landmarken" /> + <combo_box.item name="item1" label="Landmarken" /> </combo_box> <line_editor label="Nach Regionsname suchen" name="location" tool_tip="Geben Sie den Namen einer Region ein"/> <button label="Suchen" name="DoSearch" tool_tip="Nach einer Region suchen"/> diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index a746d2c08f7fa6a12b0d6ae5e22fa418a1cb272c..b5741438ae73edf61a64e2cf43aaad948479babd 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -973,7 +973,7 @@ Sie sind nicht berechtigt, Land für die aktive Gruppe zu kaufen. [NAME] Freundschaft anbieten? <form name="form"> - <input name="message" type="text"> + <input name="message"> Wollen wir Freunde sein? </input> <button name="Offer" text="OK"/> @@ -1375,7 +1375,7 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ > <notification name="KickUser"> Beim Hinauswerfen dieses Benutzers welche Meldung anzeigen? <form name="form"> - <input name="message" type="text"> + <input name="message"> Sie wurden von einem Administrator abgemeldet. </input> <button name="OK" text="OK"/> @@ -1385,7 +1385,7 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ > <notification name="KickAllUsers"> Beim Hinauswerfen aller Personen vom Grid welche Meldung anzeigen? <form name="form"> - <input name="message" type="text"> + <input name="message"> Sie wurden von einem Administrator abgemeldet. </input> <button name="OK" text="OK"/> @@ -1395,7 +1395,7 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ > <notification name="FreezeUser"> Beim Einfrieren dieses Benutzers welche Meldung anzeigen? <form name="form"> - <input name="message" type="text"> + <input name="message"> Sie wurden eingefroren. Bewegen oder Chatten ist nicht mehr möglich. Ein Administrator wird sich über IM an Sie wenden </input> <button name="OK" text="OK"/> @@ -1405,7 +1405,7 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ > <notification name="UnFreezeUser"> Beim Auftauen dieses Benutzers welche Meldung anzeigen? <form name="form"> - <input name="message" type="text"> + <input name="message"> Sie sind nicht mehr eingefroren. </input> <button name="OK" text="OK"/> @@ -1415,7 +1415,7 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ > <notification name="OfferTeleport"> Teleport an Ihre Position mit der folgenden Meldung anbieten? <form name="form"> - <input name="message" type="text"> + <input name="message"> Triff mich in [REGION] </input> <button name="OK" text="OK"/> @@ -1425,7 +1425,7 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ > <notification name="OfferTeleportFromGod"> Benutzer an Ihrem Standort herbeirufen? <form name="form"> - <input name="message" type="text"> + <input name="message"> Triff mich in [REGION] </input> <button name="OK" text="OK"/> @@ -1439,7 +1439,7 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ > <notification label="Nachricht an alle auf diesem Grundstück" name="MessageEstate"> Geben Sie eine kurze Nachricht ein, die an jede Person auf Ihrem Grundstück gesendet wird. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Abbrechen"/> </form> @@ -1625,7 +1625,7 @@ Anzeige für [AMOUNT] L$ veröffentlichen? <notification label="Nachricht an alle in dieser Region" name="MessageRegion"> Geben Sie eine kurze Nachricht ein, die an jede Person in dieser Region gesendet wird. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Abbrechen"/> </form> @@ -1904,14 +1904,14 @@ Die Inhalte werden in Ihr Inventar kopiert. Möchten Sie diesen Kauf fortsetzen? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> - <notification name="ConfirmPurchasePassword" type="password"> + <notification name="ConfirmPurchasePassword"> Transaktion: [ACTION] Möchten Sie diesen Kauf fortsetzen? Geben Sie Ihr Kennwort erneut ein und klicken Sie auf OK. <form name="form"> - <input name="message" type="password"/> + <input name="message"/> <button name="ConfirmPurchase" text="OK"/> <button name="Cancel" text="Abbrechen"/> </form> @@ -2268,7 +2268,7 @@ Entspricht dem Azimut. <notification name="NewSkyPreset"> Wählen Sie einen Namen für den neuen Himmel. <form name="form"> - <input name="message" type="text"> + <input name="message"> Neue Voreinstellung </input> <button name="OK" text="OK"/> @@ -2281,7 +2281,7 @@ Entspricht dem Azimut. <notification name="NewWaterPreset"> Wählen Sie einen Namen für die neue Wasservoreinstellung. <form name="form"> - <input name="message" type="text"> + <input name="message"> Neue Voreinstellung </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/de/panel_group_general.xml b/indra/newview/skins/default/xui/de/panel_group_general.xml index 2ce40e5787d72df9acf95a45a67746f07b7e5f98..e214b19ffdc72e000c2c0f641b6ff68bff160b7d 100644 --- a/indra/newview/skins/default/xui/de/panel_group_general.xml +++ b/indra/newview/skins/default/xui/de/panel_group_general.xml @@ -37,9 +37,9 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen. (Eigentümer werden fettgedruckt angezeigt) </text> <name_list name="visible_members"> - <column label="Mitgliedsname" name="name" relwidth="0.40"/> - <column label="Titel" name="title" relwidth="0.25"/> - <column label="Letzte Anmeldung" name="online" relwidth="0.35"/> + <name_list.columns label="Mitgliedsname" name="name" relwidth="0.40"/> + <name_list.columns label="Titel" name="title" relwidth="0.25"/> + <name_list.columns label="Letzte Anmeldung" name="online" relwidth="0.35"/> </name_list> <text name="text_group_preferences"> Gruppeneinstellungen @@ -50,15 +50,9 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen. <check_box label="Beitrittsgebühr: L$" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine Beitrittsgebühr zahlen müssen."/> <spinner name="spin_enrollment_fee" tool_tip="Wenn „Beitrittsgebühr“ aktiviert ist, müssen neue Mitglieder diesen Betrag zahlen."/> <combo_box name="group_mature_check" tool_tip="Festlegen, ob die Informationen Ihrer Gruppe „Mature“ sind."> - <combo_item name="select_mature"> - - Mature wählen - - </combo_item> - <combo_item name="mature"> - Mature-Inhalt - </combo_item> - <combo_item name="pg"> - PG-Inhalt - </combo_item> + <combo_box.item name="select_mature" label="- Mature wählen -"/> + <combo_box.item name="mature" label="Mature-Inhalt"/> + <combo_box.item name="pg" label="PG-Inhalt"/> </combo_box> <panel name="title_container"> <text name="active_title_label"> @@ -120,9 +114,9 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen. (Eigentümer werden fettgedruckt angezeigt) </text> <name_list name="visible_members"> - <column label="Mitgliedsname" name="name" relwidth="0.40"/> - <column label="Titel" name="title" relwidth="0.25"/> - <column label="Letzte Anmeldung" name="online" relwidth="0.35"/> + <name_list.columns label="Mitgliedsname" name="name" relwidth="0.40"/> + <name_list.columns label="Titel" name="title" relwidth="0.25"/> + <name_list.columns label="Letzte Anmeldung" name="online" relwidth="0.35"/> </name_list> <text name="text_group_preferences"> Gruppeneinstellungen @@ -133,13 +127,13 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen. <check_box label="Beitrittsgebühr: L$" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine Beitrittsgebühr zahlen müssen." width="125"/> <spinner name="spin_enrollment_fee" tool_tip="Wenn „Beitrittsgebühr“ aktiviert ist, müssen neue Mitglieder diesen Betrag zahlen."/> <combo_box name="group_mature_check" tool_tip="Festlegen, ob die Informationen Ihrer Gruppe „Mature“ sind."> - <combo_item name="select_mature"> + <combo_box.item name="select_mature"> - Mature wählen - </combo_item> - <combo_item name="mature"> + <combo_box.item name="mature"> Mature-Inhalt </combo_item> - <combo_item name="pg"> + <combo_box.item name="pg"> PG-Inhalt </combo_item> </combo_box> diff --git a/indra/newview/skins/default/xui/de/panel_group_notices.xml b/indra/newview/skins/default/xui/de/panel_group_notices.xml index 8d4afd356e305163e468f4f76a8b9e6c4f1bec82..ff6f957a73f4b802b361569036a0d0b5d85f7363 100644 --- a/indra/newview/skins/default/xui/de/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/de/panel_group_notices.xml @@ -16,7 +16,7 @@ gesendet. Mitteilungen können unter Gruppenmitteilungsarchiv </text> <text name="lbl2"> - Mitteilungen werden 14 Tage lang aufbewahrt. Klicken Sie auf eine Mitteilung, um sie anzuzeigen. Klicken Sie „Aktualisieren“, um neue Mitteilungen zu suchen. Eine Mitteilungsliste speichert maximal 200 Mitteilungen pro Gruppe täglich. + Mitteilungen werden 14 Tage lang aufbewahrt. Eine Mitteilungsliste speichert maximal 200 Mitteilungen pro Gruppe täglich. </text> <scroll_list name="notice_list"> <column label="" name="icon" /> @@ -36,7 +36,7 @@ gesendet. Mitteilungen können unter Mitteilung schreiben </text> <text name="lbl2"> - Geben Sie einen Betreff für die Mitteilung ein. Sie können der Mitteilung ein Objekt anfügen, indem Sie es aus dem Inventar in dieses Feld ziehen. Angehängte Objekte müssen kopier-und transferierbar sein. Ordner können nicht gesendet werden. + Sie können der Mitteilung ein Objekt anfügen, indem Sie es aus dem Inventar in dieses Feld ziehen. Angehängte Objekte müssen kopier-und transferierbar sein. Ordner können nicht gesendet werden. </text> <text name="lbl3"> Betreff: @@ -49,7 +49,7 @@ gesendet. Mitteilungen können unter </text> <button label="Anhang entfernen" label_selected="Anhang entfernen" name="remove_attachment" /> - <button label="Mitteilung senden" label_selected="Mitteilung senden" name="send_notice" /> + <button label="Senden" label_selected="Senden" name="send_notice" /> <panel name="drop_target" tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice." /> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml index 3f459050b1238a90bd831e2b5e8b1fcf2e0ab041..93f2d6c2576aad9e8526d1daf5c2828c4b96304f 100644 --- a/indra/newview/skins/default/xui/de/panel_login.xml +++ b/indra/newview/skins/default/xui/de/panel_login.xml @@ -15,7 +15,7 @@ <combo_box name="start_location_combo"> <combo_box.item name="MyHome" label="Mein Heimatort" /> <combo_box.item name="MyLastLocation" label="Mein letzter Standort" /> - <combo_box.item name="Typeregionname" label="lt;Region eingeben>" /> + <combo_box.item name="Typeregionname" label="<Region eingeben>" /> </combo_box> <check_box label="Kennwort merken" name="remember_check"/> <text name="full_screen_text"> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml new file mode 100644 index 0000000000000000000000000000000000000000..f84aa06b32088fc1cd666860caa846b6c70a6cb1 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel name="advanced"> + <text name="AspectRatioLabel1" tool_tip="Breite/Höhe"> + Aspektverhältnis: + </text> + <combo_box name="aspect_ratio" tool_tip="Breite/Höhe"> + <combo_box.item label="4:3 (Standard-CRT)" name="item1"/> + <combo_box.item label="5:4 (1280x1024 LCD)" name="item2"/> + <combo_box.item label="8:5 (Widescreen)" name="item3"/> + <combo_box.item label="16:9 (Widescreen)" name="item4"/> + </combo_box> +</panel> 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 9de8922954a2882176e44a7582ec25aa4d5356c4..c99ba9a118d15a936f0e073989ca9ad0930b76df 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml @@ -1,53 +1,58 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel label="Text-Chat" name="chat"> - <text length="1" name="text_box" type="string"> + <text name="text_box"> Chat-Schriftgröße: </text> <radio_group name="chat_font_size"> - <radio_item length="1" name="radio" type="string" label="Klein" /> - <radio_item length="1" name="radio2" type="string" label="Mittel" /> - <radio_item length="1" name="radio3" type="string" label="Groß" /> + <radio_item name="radio" label="Klein" /> + <radio_item name="radio2" label="Mittel" /> + <radio_item name="radio3" label="Groß" /> </radio_group> - <text length="1" name="text_box2" type="string"> - Chat-Farbe: - </text> <color_swatch label="Sie" name="user"/> + <text name="text_box1"> + Sie + </text> <color_swatch label="Andere" name="agent"/> + <text name="text_box2"> + Andere + </text> <color_swatch label="IM" name="im"/> + <text name="text_box3"> + IM + </text> <color_swatch label="System" name="system"/> - <color_swatch label="Chat" name="users"/> + <text name="text_box4"> + System + </text> + <color_swatch label="Skriptfehler" name="script_error"/> + <text name="text_box5"> + Skriptfehler + </text> <color_swatch label="Objekte" name="objects"/> - <color_swatch label="Eigentümer" name="owner" width="58"/> - <color_swatch label="Blase" left_delta="62" name="background"/> + <text name="text_box6"> + Objekte + </text> + <color_swatch label="Eigentümer" name="owner"/> + <text name="text_box7"> + Eigentümer + </text> + <color_swatch label="Blase" name="background"/> + <text name="text_box8"> + Blase + </text> <color_swatch label="URLs" name="links"/> - <text length="1" name="text_box3" type="string"> - Chat-Konsole: + <text name="text_box9"> + URLs </text> <spinner label="Chat ausblenden nach" label_width="115" left="148" name="fade_chat_time" width="160"/> - <text left="310" length="1" name="text_box4" type="string"> - (Sekunden) - </text> <spinne left="370" name="max_chat_count"/> - <text left="435" length="1" name="text_box5" type="string"> - (# Zeilen) - </text> <slider label="Deckkraft" name="console_opacity"/> - <text length="1" name="text_box6" type="string"> - Chat-Optionen: - </text> <check_box label="Chat verwendet volle Bildbreite (Neustart erforderlich)" name="chat_full_width_check"/> <check_box label="Chatleiste nach Drücken der Eingabetaste schließen" name="close_chat_on_return_check"/> <check_box label="Pfeiltasten bewegen immer den Avatar beim Chatten" name="arrow_keys_move_avatar_check"/> <check_box label="Zeitstempel im lokalen Chat anzeigen" name="show_timestamps_check"/> <check_box label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/> - <text length="1" name="text_box7" type="string"> - Blasen-Chat: - </text> <check_box label="Chat-Blasen anzeigen" name="bubble_text_chat"/> <slider label="Deckkraft" name="bubble_chat_opacity"/> - <text length="1" name="text_box8" type="string"> - Skriptfehler: - </text> <check_box label="Skriptfehler und Warnungen als normalen Chat anzeigen" name="script_errors_as_chat"/> - <color_swatch label="Fehler" name="script_error"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml index 92b45bf5a595d38f222589f231341b0da125be09..bfd414889500934fe30bc39348d7cc272c82beea 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml @@ -1,18 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Allgemein" name="general_panel"> - <radio_group name="default_start_location"> - <radio_item name="MyHome" tool_tip="Als Standardeinstellung in Zuhauseposition anmelden."> - Mein Heimatort - </radio_item> - <radio_item name="MyLastLocation" tool_tip="Als Standardeinstellung in letztem Standort anmelden."> - Mein letzter Standort - </radio_item> - </radio_group> + <combo_box name="start_location_combo"> + <combo_box.item name="MyHome" tool_tip="Als Standardeinstellung in Zuhauseposition anmelden." label="Mein Heimatort"/> + <combo_box.item name="MyLastLocation" tool_tip="Als Standardeinstellung in letztem Standort anmelden." label="Mein letzter Standort"/> + </combo_box> <check_box label="Startposition auf Anmeldebildschirm anzeigen" name="show_location_checkbox"/> <combo_box name="fade_out_combobox"> - <combo_box.item name="Never" label="Nie" /> - <combo_box.item name="Show Temporarily" label="Temporär anzeigen" /> - <combo_box.item name="Always" label="Immer" /> + <combo_box.item name="Never" label="Nie"/> + <combo_box.item name="Show Temporarily" label="Temporär anzeigen"/> + <combo_box.item name="Always" label="Immer"/> </combo_box> <check_box label="Kleine Avatarnamen" name="small_avatar_names_checkbox"/> <check_box label="Meinen Namen auf meinem Bildschirm ausblenden" name="show_my_name_checkbox"/> @@ -28,25 +24,18 @@ <check_box label="Auflösungsunabhängigen Maßstab verwenden" name="ui_auto_scale"/> <spinner label="Timeout für Abwesenheit:" name="afk_timeout_spinner"/> <check_box label="L$ Eingänge und Ausgaben melden" name="notify_money_change_checkbox"/> - <text name="maturity_desired_label" bottom="-312"> + <text name="maturity_desired_label"> Einstufung: </text> - <text name="maturity_desired_prompt" bottom="-312"> - Ich möchte auf Inhalt mit folgender -Alterseinstufung zugreifen: + <text name="maturity_desired_prompt"> + Ich möchte auf Inhalt mit folgender Alterseinstufung zugreifen: </text> - <combo_box name="maturity_desired_combobox" bottom="-330" left="336"> - <combo_item name="Desired_Adult"> - PG, Mature und Adult - </combo_item> - <combo_item name="Desired_Mature"> - PG und Mature - </combo_item> - <combo_item name="Desired_PG"> - Nur PG - </combo_item> + <combo_box name="maturity_desired_combobox"> + <combo_box.item name="Desired_Adult" label="PG, Mature und Adult"/> + <combo_box.item name="Desired_Mature" label="PG und Mature"/> + <combo_box.item name="Desired_PG" label="Nur PG"/> </combo_box> - <text name="maturity_desired_textbox" bottom="-324" left="336"> + <text name="maturity_desired_textbox"> Nur PG </text> <text name="start_location_textbox"> @@ -67,45 +56,35 @@ Alterseinstufung zugreifen: <text name="language_textbox"> Sprache: </text> - <text left_delta="313" name="language_textbox2"> + <text name="language_textbox2"> (Erfordert Neustart) </text> <string name="region_name_prompt"> <Region eingeben> </string> - <combo_box name="crash_behavior_combobox" width="166"> - <combo_box.item name="Askbeforesending" label="Vor dem Senden fragen" /> - <combo_box.item name="Alwayssend" label="Immer senden" /> - <combo_box.item name="Neversend" label="Nie senden" /> + <combo_box name="crash_behavior_combobox"> + <combo_box.item name="Askbeforesending" label="Vor dem Senden fragen"/> + <combo_box.item name="Alwayssend" label="Immer senden"/> + <combo_box.item name="Neversend" label="Nie senden"/> </combo_box> - <combo_box name="language_combobox" width="166"> - <combo_box.item name="System Default Language" label="Betriebssystem-Einstellung" /> - <combo_box.item name="English" label="English (Englisch)" /> - <combo_box.item name="Danish" label="Danks (Dänisch) - Beta" /> - <combo_box.item name="Deutsch(German)" label="Deutsch - Beta" /> - <combo_box.item name="Spanish" label="Español (Spanisch) - Beta" /> - <combo_box.item name="French" label="Français (Französisch) - Beta" /> - <combo_box.item name="Hungarian" label="Magyar (Ungarisch) - Beta" /> - <combo_box.item name="Polish" label="Polski (Polnisch) - Beta" /> - <combo_box.item name="Portugese" label="Português (Portugiesisch) - Beta" /> - <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (Chinesisch) - Beta" /> - <combo_box.item name="(Japanese)" label="日本語 (Japanisch) - Beta" /> - <combo_box.item name="(Korean)" label="í•œêµì–´ (Koreanisch) - Beta" /> - <combo_item name="Italian"> - Italiano (Italienisch) - Beta - </combo_item> - <combo_item name="Dutch"> - Nederlands (Niederländisch) - Beta - </combo_item> - </combo_item> - <combo_item name="Russian"> - РуÑÑкий (Russian) - Beta - </combo_item> - <combo_item name="Turkish"> - Türkçe (Türkisch) - Beta - </combo_item> - <combo_item name="Ukrainian"> - УкраїнÑька (Ukrainisch) - Beta + <combo_box name="language_combobox"> + <combo_box.item name="System Default Language" label="Betriebssystem-Einstellung"/> + <combo_box.item name="English" label="English (Englisch)"/> + <combo_box.item name="Danish" label="Danks (Dänisch) - Beta"/> + <combo_box.item name="Deutsch(German)" label="Deutsch - Beta"/> + <combo_box.item name="Spanish" label="Español (Spanisch) - Beta"/> + <combo_box.item name="French" label="Français (Französisch) - Beta"/> + <combo_box.item name="Italian" label="Italiano (Italienisch) - Beta"/> + <combo_box.item name="Hungarian" label="Magyar (Ungarisch) - Beta"/> + <combo_box.item name="Dutch" label="Nederlands (Niederländisch) - Beta"/> + <combo_box.item name="Polish" label="Polski (Polnisch) - Beta"/> + <combo_box.item name="Portugese" label="Português (Portugiesisch) - Beta"/> + <combo_box.item name="Russian" label="РуÑÑкий (Russian) - Beta"/> + <combo_box.item name="Turkish" label="Türkçe (Türkisch) - Beta"/> + <combo_box.item name="Ukrainian" label="УкраїнÑька (Ukrainisch) - Beta"/> + <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (Chinesisch) - Beta"/> + <combo_box.item name="(Japanese)" label="日本語 (Japanisch) - Beta"/> + <combo_box.item name="(Korean)" label="í•œêµì–´ (Koreanisch) - Beta"/> </combo_box> <check_box label="Objekten Sprache mitteilen" name="language_is_public" tool_tip="In-Welt-Objekten wird Ihre bevorzugte Spracheinstellung mitgeteilt."/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml index dd77d57f87e1cca7126977a2546cb4fc00182bc5..fe0740690879834edd9470ac5d72b58fd942794c 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel label="Grafik" name="Display panel"> - <text type="string" length="1" name="text"> + <text name="text"> Anzeigeauflösung: </text> <button label=" ?" name="GraphicsPreferencesHelpButton" /> @@ -8,10 +8,10 @@ <text_editor name="voice_chat_description"> Wenn deaktiviert Anzeige bei Anmeldung in Vollbild. </text_editor> - <text type="string" length="1" name="Fullscreen Aspect Ratio:"> + <text name="Fullscreen Aspect Ratio:"> Vollbild-Aspektverhältnis: </text> - <text type="string" length="1" name="(width / height)"> + <text name="(width / height)"> (Breite/Höhe) </text> <text_editor name="FullScreenInfo" width="480"> @@ -35,19 +35,19 @@ Aspektverhältnis: </text> <combo_box left="115" name="aspect_ratio" tool_tip="Breite/Höhe"> - <combo_box.item type="string" length="1" name="4:3(StandardCRT)" label="4:3 (Standard-CRT)" /> - <combo_box.item type="string" length="1" name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)" /> + <combo_box.item name="4:3(StandardCRT)" label="4:3 (Standard-CRT)" /> + <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)" /> <combo_box.item name="8:5(Widescreen)" label="8:5 (Widescreen)" /> - <combo_box.item type="string" length="1" name="16:9(Widescreen)" label="16:9 (Widescreen)" /> + <combo_box.item name="16:9(Widescreen)" label="16:9 (Widescreen)" /> </combo_box> <check_box label="Verhältnis automatisch erkennen" left="275" name="aspect_auto_detect" /> - <text type="string" length="1" name="UI Size:"> + <text name="UI Size:"> UI-Größe: </text> - <text type="string" length="1" name="(meters, lower is faster)"> + <text name="(meters, lower is faster)"> (Meter, niedriger ist schneller) </text> - <text type="string" length="1" name="text2"> + <text name="text2"> Anzeigeoptionen: </text> <check_box label="Auflösungsunabhängigen Maßstab verwenden" name="ui_auto_scale" /> @@ -81,6 +81,7 @@ Qualität </text> <check_box label="Benutzerdefiniert" name="CustomSettings" /> + <panel name="CustomGraphics Panel"> <text name="ShadersText"> Shader: </text> @@ -157,13 +158,14 @@ <radio_item name="0" label="Niedrig" /> <radio_item name="2" label="Hoch" /> </radio_group> + </panel> <button label="Empfohlene Einstellungen" name="Defaults" /> <button label="Hardware-Optionen" label_selected="Hardware-Optionen" name="GraphicsHardwareButton" /> - <text name="resolution_format"> + <panel.string name="resolution_format"> [RES_X] x [RES_Y] - </text> - <text name="aspect_ratio_text"> + </panel.string> + <panel.string name="aspect_ratio_text"> [NUM]:[DEN] - </text> + </panel.string> </panel> 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 ddc5941da63b7700e7b4fcecf31f69d7dc128d4f..790555296da5b6b82f4b0e3f3e6c6bd639ca807a 100644 --- a/indra/newview/skins/default/xui/de/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Grundstück" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="Grundstück" name="Estate"> <text name="estate_help_text"> Änderungen auf dieser Registerkarte wirken sich auf alle Regionen auf dem Grundstück aus. @@ -74,4 +76,6 @@ auf alle Regionen auf dem Grundstück aus. <button label="Entfernen..." name="remove_banned_avatar_btn" /> <button label="Nachricht an Grundstück senden..." name="message_estate_btn" /> <button label="Benutzer von Grundstück werfen..." name="kick_user_from_estate_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_region_general.xml b/indra/newview/skins/default/xui/de/panel_region_general.xml index 9980393ab032f9aa08116a907f34da6685d601aa..13df2bfb3b70008cef39193fcd3a2e5fa816fd5b 100644 --- a/indra/newview/skins/default/xui/de/panel_region_general.xml +++ b/indra/newview/skins/default/xui/de/panel_region_general.xml @@ -40,15 +40,9 @@ Einstufung: </text> <combo_box label="Mature" name="access_combo"> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Mature"> - Mature - </combo_item> - <combo_item name="PG"> - PG - </combo_item> + <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="Mature" name="Mature"/> + <combo_box.item label="PG" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="Ãœbernehmen" name="apply_btn"/> diff --git a/indra/newview/skins/default/xui/de/panel_region_texture.xml b/indra/newview/skins/default/xui/de/panel_region_texture.xml index df936ff643a4403ddd1bfc33a434577610d66730..456feb0371d1beba7204631b310c8dae1da07dc5 100644 --- a/indra/newview/skins/default/xui/de/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/de/panel_region_texture.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Bodentexturen" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="Bodentexturen" name="Textures"> <text name="region_text_lbl"> Region: </text> @@ -54,4 +56,6 @@ und der OBERE WERT die MINIMALE Höhe von Textur 4. </text> <button label="Ãœbernehmen" name="apply_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_scrolling_param.xml b/indra/newview/skins/default/xui/de/panel_scrolling_param.xml index d51fda0b5e3e64707a41a9e71b028b6bb4e1b377..50590b8d730fdaed47cbcbac3e8e7a4ad5655e74 100644 --- a/indra/newview/skins/default/xui/de/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/de/panel_scrolling_param.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="LLScrollingPanelParam"> - <text type="string" length="1" name="Loading..."> + <text name="Loading..."> Wird geladen... </text> - <text type="string" length="1" name="Loading...2"> + <text name="Loading...2"> Wird geladen... </text> <button label="" label_selected="" name="less" /> diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml index bfc77876d65afa45abc903e3372a1dc057ade800..01091e38fbd6b95a3c1c0a6629bee63c25499169 100644 --- a/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <text length="1" name="ParcelNameText" tool_tip="Der Name der Parzelle, auf der Sie sich befinden. Klicken Sie für Land-Informationen." type="string"> + <text name="ParcelNameText" tool_tip="Der Name der Parzelle, auf der Sie sich befinden. Klicken Sie für Land-Informationen."> Parzellenname hier </text> - <text length="1" name="BalanceText" tool_tip="Kontostand" type="string"> + <text name="BalanceText" tool_tip="Kontostand"> Wird geladen... </text> <button label="" label_selected="" name="buycurrency" tool_tip="Geld kaufen"/> - <text length="12" name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)" type="string"> + <text name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)"> 12:00 </text> <text name="StatBarDaysOfWeek"> @@ -18,7 +18,7 @@ </text> <button label="" label_selected="" name="scriptout" tool_tip="Skriptwarnungen und -fehler"/> <button label="" label_selected="" name="health" tool_tip="Gesundheit"/> - <text length="1" name="HealthText" tool_tip="Gesundheit" type="string"> + <text name="HealthText" tool_tip="Gesundheit"> 100% </text> <button label="" label_selected="" name="fly" tool_tip="Fliegen aus"/> diff --git a/indra/newview/skins/default/xui/de/panel_world_map.xml b/indra/newview/skins/default/xui/de/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..eaea377c0dcf3c0dad13bd1b0fccfba1dc9e75bc --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + N + </panel.string> + <panel.string name="world_map_east"> + O + </panel.string> + <panel.string name="world_map_west"> + W + </panel.string> + <panel.string name="world_map_south"> + S + </panel.string> + <panel.string name="world_map_southeast"> + SO + </panel.string> + <panel.string name="world_map_northeast"> + NO + </panel.string> + <panel.string name="world_map_southwest"> + SW + </panel.string> + <panel.string name="world_map_northwest"> + NW + </panel.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="O" name="floater_map_east" text="O"> + O + </text> + <text label="W" name="floater_map_west" text="W"> + W + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SO" name="floater_map_southeast" text="SO"> + SO + </text> + <text label="NO" name="floater_map_northeast" text="NO"> + NO + </text> + <text label="SW" name="floater_map_southwest" text="SW"> + SW + </text> + <text label="NW" name="floater_map_northwest" text="NW"> + NW + </text> +</panel> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index 3436cfac1e9bdda6b9111eb435831f4072603e39..380046f72d2a55fd57ef15b5761f1a8518bc68c9 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -487,4 +487,34 @@ <string name="choose_the_directory"> Verzeichnis auswählen </string> + <string name="accel-mac-control"> + Strg- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Opt- + </string> + <string name="accel-mac-shift"> + Umschalt- + </string> + <string name="accel-win-control"> + Strg+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Umschalt+ + </string> + <string name="GraphicsQualityLow"> + Niedrig + </string> + <string name="GraphicsQualityMid"> + Mittel + </string> + <string name="GraphicsQualityHigh"> + Hoch + </string> </strings> diff --git a/indra/newview/skins/default/xui/en/floater_aaa.xml b/indra/newview/skins/default/xui/en/floater_aaa.xml index bf8988ca4577696a11c0d5dfffa0ca3546acf43c..6d64d13db7ee991751886436a12a5a74f02a5856 100644 --- a/indra/newview/skins/default/xui/en/floater_aaa.xml +++ b/indra/newview/skins/default/xui/en/floater_aaa.xml @@ -3,6 +3,7 @@ height="440" layout="topleft" name="floater_aaa" + help_topic="floater_aaa" save_rect="true" can_resize="true" title="About [APP_NAME]" diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index eaf25056c177b2590b162437cf1881cf5cb3717d..02a88fe5cc3bed18d417ae574cf674b639bc3311 100644 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -66,57 +66,109 @@ name="PacketsLost"> Packets Lost: [LOST]/[IN] ([PCT]%) </floater.string> - <text_editor - type="string" - length="1" - follows="left|top|right|bottom" - height="168" - layout="topleft" - left="6" - max_length="65536" - name="credits_editor" - top="266" - width="458" - word_wrap="true"> - Second Life is brought to you by Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others. + <tab_container + follows="all" + top="25" + left="10" + height="405" + width="450" + name="about_tab" + tab_position="top"> + <panel + border="true" + label="Support" + name="support_panel"> + <text_editor + follows="top|left" + font="SansSerif" + height="350" + bg_readonly_color="Transparent" + left="5" + max_length="65536" + name="support_editor" + top="5" + width="435" + word_wrap="true" /> + <button + follows="left|top" + label="Copy to Clipboard" + name="copy_btn" + left="10" + top_pad="5" + height="25" + width="160" /> + </panel> + <panel + border="true" + label="Credits" + name="credits_panel"> + <text_editor + enabled="false" + follows="left|top" + height="375" + bg_readonly_color="Transparent" + left="5" + text_color="LtGray" + max_length="65536" + name="credits_editor" + top="5" + width="435" + word_wrap="true"> +Second Life is brought to you by Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others. - Thank you to the following residents for helping to ensure that this is the best version yet: (in progress) +Thank you to the following residents for helping to ensure that this is the best version yet: (in progress) - 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion - APR Copyright (C) 2000-2004 The Apache Software Foundation - cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) - DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. - expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. - FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). - GL Copyright (C) 1999-2004 Brian Paul. - google-perftools Copyright (c) 2005, Google Inc. - Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. - jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) - jpeglib Copyright (C) 1991-1998, Thomas G. Lane. - ogg/vorbis Copyright (C) 2001, Xiphophorus - OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. - Pth Copyright (C) 1999-2006 Ralf S. Engelschall <rse@gnu.org> - SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga - SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - xmlrpc-epi Copyright (C) 2000 Epinions, Inc. - zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. - All rights reserved. See licenses.txt for details. - Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) - Oh, Parabuild, why hast thou forsaken me? - </text_editor> - <text_editor - follows="left|top|right|bottom" - font="SansSerif" - height="238" - layout="topleft" - left_delta="0" - max_length="65536" - name="support_editor" - top_delta="-244" - width="458" - word_wrap="true" /> + + + +It is a rare mind indeed that can render the hitherto non-existent blindingly obvious. The cry 'I could have thought of that' is a very popular and misleading one, for the fact is that they didn't, and a very significant and revealing fact it is too. +-- Douglas Adams + </text_editor> + </panel> + <panel + border="true" + label="Licenses" + name="licenses_panel"> + <text_editor + enabled="false" + follows="left|top" + height="375" + bg_readonly_color="Transparent" + left="5" + text_color="LtGray" + max_length="65536" + name="credits_editor" + top="5" + width="435" + word_wrap="true"> +3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion +APR Copyright (C) 2000-2004 The Apache Software Foundation +cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) +DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. +expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. +FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). +GL Copyright (C) 1999-2004 Brian Paul. +google-perftools Copyright (c) 2005, Google Inc. +Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. +jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) +jpeglib Copyright (C) 1991-1998, Thomas G. Lane. +ogg/vorbis Copyright (C) 2001, Xiphophorus +OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. +Pth Copyright (C) 1999-2006 Ralf S. Engelschall <rse@gnu.org> +SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga +SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) +xmlrpc-epi Copyright (C) 2000 Epinions, Inc. +zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. +google-perftools Copyright (c) 2005, Google Inc. + +All rights reserved. See licenses.txt for details. + +Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) + </text_editor> + </panel> + </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 63abb63bdf3057edbeb4f539a5d9352d69e31372..f11391c5e000fb9880ace0955a3f7c01a6d58a04 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -4,6 +4,7 @@ height="420" layout="topleft" name="floaterland" + help_topic="floaterland" save_rect="true" title="About Land" width="460"> diff --git a/indra/newview/skins/default/xui/en/floater_activeim.xml b/indra/newview/skins/default/xui/en/floater_activeim.xml index 0af4e1db541a04f5fe10932f43edf4a86e051e01..f81250e7b9936bcf3b6958d40cb81849c5a43203 100644 --- a/indra/newview/skins/default/xui/en/floater_activeim.xml +++ b/indra/newview/skins/default/xui/en/floater_activeim.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="floater_activeim" + help_topic="floater_activeim" title="ACTIVE IM" top="26" left="0" diff --git a/indra/newview/skins/default/xui/en/floater_animation_preview.xml b/indra/newview/skins/default/xui/en/floater_animation_preview.xml index 846dda802d15a18de8d62be5ad545ad590a850de..3a2337bfff34e73cdca3567c95ce3a57eef48b10 100644 --- a/indra/newview/skins/default/xui/en/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_animation_preview.xml @@ -4,6 +4,7 @@ height="556" layout="topleft" name="Animation Preview" + help_topic="animation_preview" width="280"> <floater.string name="failed_to_initialize"> @@ -150,16 +151,16 @@ Maximum animation length is [MAX_LENGTH] seconds. length="1" bottom="42" follows="top|left" - height="15" + height="23" layout="topleft" left="10" name="name_label"> Name: </text> <line_editor - bottom_delta="2" + bottom_delta="0" follows="top|left|right" - height="19" + height="23" layout="topleft" left="85" name="name_form" @@ -167,18 +168,18 @@ Maximum animation length is [MAX_LENGTH] seconds. <text type="string" length="1" - bottom_delta="22" + top_pad="5" follows="top|left" - height="15" + height="23" layout="topleft" left="10" name="description_label"> Description: </text> <line_editor - bottom_delta="2" + bottom_delta="0" follows="top|left|right" - height="19" + height="23" layout="topleft" left="85" name="description_form" @@ -186,70 +187,73 @@ Maximum animation length is [MAX_LENGTH] seconds. <spinner decimal_digits="0" follows="left|top" - height="18" + height="23" increment="1" initial_value="0" label="Priority" - label_width="50" + label_width="90" layout="topleft" left="10" max_val="4" name="priority" tool_tip="Controls which other animations can be overridden by this animation." - width="90" /> + width="160" /> <check_box - bottom_delta="23" - height="18" + top_pad="0" + height="14" label="Loop" layout="topleft" left="10" + width="100" name="loop_check" tool_tip="Makes this animation loop." /> <spinner follows="left|top" - height="18" + height="23" increment="1" initial_value="0" label="In(%)" - label_width="30" + label_width="35" layout="topleft" - left_delta="70" + top_pad="5" + left="30" max_val="100" name="loop_in_point" tool_tip="Sets point in animation that looping returns to." - top_delta="2" - width="90" /> + width="110" /> <spinner bottom_delta="0" follows="left|top" - height="18" + height="23" increment="1" initial_value="0" label="Out(%)" layout="topleft" - left="185" + left_pad="10" max_val="100" name="loop_out_point" - tool_tip="Sets point in animation that ends a loop." /> + tool_tip="Sets point in animation that ends a loop." + label_width="45" + width="120" /> <text type="string" length="1" - bottom_delta="20" + top_pad="0" follows="top|left" - height="15" + height="23" + width="110" layout="topleft" left="10" name="hand_label"> Hand Pose </text> <combo_box - height="18" + height="23" layout="topleft" - left_delta="76" + left_pad="0" name="hand_pose_combo" tool_tip="Controls what hands do during animation." - top_delta="-1" - width="104"> + width="150"> <combo_box.item label="Spread" name="Spread" @@ -306,22 +310,22 @@ Maximum animation length is [MAX_LENGTH] seconds. <text type="string" length="1" - bottom_delta="22" + top_pad="5" follows="top|left" - height="15" + height="23" + width="110" layout="topleft" left="10" name="emote_label"> Expression </text> <combo_box - height="18" + height="23" + width="150" layout="topleft" - left_delta="76" + left_pad="0" name="emote_combo" - tool_tip="Controls what face does during animation." - top_delta="-1" - width="104"> + tool_tip="Controls what face does during animation."> <combo_box.item label="(None)" name="[None]" /> @@ -386,23 +390,22 @@ Maximum animation length is [MAX_LENGTH] seconds. <text type="string" length="1" + top_pad="5" follows="top|left" - height="15" + height="23" + width="110" layout="topleft" left="10" - name="preview_label" - top="167" - width="70"> + name="preview_label"> Preview while </text> <combo_box - height="18" + height="23" + width="150" layout="topleft" - left_pad="6" + left_pad="0" name="preview_base_anim" - tool_tip="Use this to test your animation behavior while your avatar performs common actions." - top_delta="-1" - width="104"> + tool_tip="Use this to test your animation behavior while your avatar performs common actions."> <combo_box.item label="Standing" name="Standing" /> @@ -418,32 +421,31 @@ Maximum animation length is [MAX_LENGTH] seconds. </combo_box> <spinner follows="left|top" - height="18" + height="23" increment="0.01" initial_value="0" label="Ease In (sec)" - label_width="75" + label_width="110" layout="topleft" left="10" max_val="10" name="ease_in_time" tool_tip="Amount of time (in seconds) over which animations blends in." - top="191" - width="125" /> + top_pad="10" + width="200" /> <spinner follows="left|top" - height="18" + height="23" increment="0.01" initial_value="0" label="Ease Out (sec)" - label_width="80" + label_width="110" layout="topleft" - left_pad="10" + top_pad="0" max_val="10" name="ease_out_time" tool_tip="Amount of time (in seconds) over which animations blends out." - top_delta="0" - width="130" /> + width="200" /> <button follows="top|right" height="28" @@ -454,7 +456,7 @@ Maximum animation length is [MAX_LENGTH] seconds. name="play_btn" picture_style="true" tool_tip="Play/pause your animation." - top="223" + top_pad="0" width="28" /> <button follows="top|right" @@ -469,23 +471,23 @@ Maximum animation length is [MAX_LENGTH] seconds. top_delta="0" width="28" /> <slider - bottom_delta="0" + left_pad="0" follows="top|right" - height="20" + height="23" + width="200" increment="0.0001" initial_value="0" layout="topleft" - left="80" name="playback_slider" - right="275" show_text="false" /> <text type="string" length="1" - bottom="306" + top_pad="5" + text_color="EmphasisColor" follows="top|left" layout="topleft" - left="10" + left="70" name="bad_animation_text"> Unable to read animation file. @@ -494,7 +496,7 @@ We recommend BVH files exported from Poser 4. <button bottom="546" follows="bottom|right" - height="20" + height="23" label="Cancel" layout="topleft" name="cancel_btn" @@ -502,7 +504,7 @@ We recommend BVH files exported from Poser 4. width="123" /> <button follows="bottom|left" - height="20" + height="23" label="Upload (L$[AMOUNT])" layout="topleft" left_delta="-129" diff --git a/indra/newview/skins/default/xui/en/floater_auction.xml b/indra/newview/skins/default/xui/en/floater_auction.xml index 32d3f4fd7e6ee44cc5ce95ca9d942ee17d305cdb..29f8b49794325a7a16056baada786ac9b6c1f736 100644 --- a/indra/newview/skins/default/xui/en/floater_auction.xml +++ b/indra/newview/skins/default/xui/en/floater_auction.xml @@ -6,6 +6,7 @@ min_height="368" min_width="420" name="floater_auction" + help_topic="floater_auction" title="Start Linden Land Sale" width="420"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml index b0472eb7e2cae8e96befbf881292a95fb7d2b4df..3ab5c1830003bf346eca974694396920c09d843d 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml @@ -6,6 +6,7 @@ min_height="200" min_width="265" name="avatarpicker" + help_topic="avatarpicker" title="Choose Resident" width="265"> <floater.string @@ -25,24 +26,23 @@ Searching... </floater.string> <tab_container - follows="left|right|top|bottom" + follows="all" height="300" layout="topleft" - left="4" + left="0" name="ResidentChooserTabs" tab_position="top" - tab_width="65" top="20" - width="255"> + width="265"> <panel - border="true" + border="none" height="150" label="Search" layout="topleft" left="6" name="SearchPanel" top="150" - width="134"> + width="132"> <text type="string" length="1" @@ -53,36 +53,37 @@ name="InstructSearchResidentName" top="8" width="220"> - Type part of the resident's name: + Type part of a person's name: </text> - <line_editor - border_style="line" - border_thickness="1" + <text_editor + bevel_style="none" + border_style="line" + border.border_thickness="0" + commit_on_focus_lost="false" follows="left|top|right" - height="16" + height="23" layout="topleft" left_delta="0" name="Edit" - top_pad="4" - width="50" /> + top_pad="0" + width="65" /> <button follows="top|right" - height="20" - label="Find" - label_selected="Find" + height="23" + label="Go" + label_selected="Go" layout="topleft" left_pad="5" name="Find" - top_delta="-1" - width="62" /> + width="45" /> <scroll_list - follows="left|top|right|bottom" - height="90" + follows="all" + height="98" layout="topleft" - left="10" + left="0" name="SearchResults" top="52" - width="115" /> + width="132" /> </panel> <panel border="true" @@ -117,14 +118,14 @@ width="115" /> </panel> <panel - border="true" - height="240" + border="none" + height="150" label="Near Me" layout="topleft" left="6" name="NearMePanel" - top="60" - width="135"> + top="150" + width="132"> <text type="string" length="1" @@ -135,23 +136,13 @@ name="InstructSelectResident" top="8" width="220"> - Select nearby resident: + Select a person nearby: </text> - <button - follows="top|right" - height="20" - label="Refresh List" - label_selected="Refresh List" - layout="topleft" - left_delta="25" - name="Refresh" - top_delta="-1" - width="90" /> <slider control_name="NearMeRange" decimal_digits="0" follows="left|top" - height="15" + height="18" increment="1" initial_value="20" label="Range" @@ -160,49 +151,55 @@ max_val="130" min_val="5" name="near_me_range" - top="32" - width="175" /> + top_pad="0" + width="160" /> <text type="string" length="1" follows="left|top" - height="15" + height="18" layout="topleft" - left_delta="175" + left_pad="0" name="meters" - top_delta="0" - width="40"> + width="60"> Meters </text> + <button + follows="top|left" + layout="topleft" + left_pad="0" + height="28" + width="28" + name="Refresh" + picture_style="true" + image_overlay="Refresh_Off" /> <scroll_list - follows="left|top|right|bottom" - height="175" + follows="all" + height="100" + border="false" layout="topleft" - left="10" + left="0" name="NearMe" sort_column="0" - top="57" - width="115" /> + top="50" + width="132" /> </panel> </tab_container> <button - follows="left|bottom" - height="20" - label="Select" - label_selected="Select" - layout="topleft" - left="10" + follows="right|bottom" + height="23" + label="Ok" + label_selected="Ok" name="Select" - top="324" - width="95" /> + top_pad="3" + left="46" + width="100" /> <button follows="right|bottom" - height="20" + height="23" label="Cancel" label_selected="Cancel" - layout="topleft" - right="-10" name="Cancel" - top_delta="0" - width="95" /> + width="100" + left_pad="5" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_avatar_textures.xml b/indra/newview/skins/default/xui/en/floater_avatar_textures.xml index 9e2c8a44d1693ee340900e5a54cf769db8469544..f6b965f139512a84836bcaa9d30c52a4c68cc1c2 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar_textures.xml @@ -3,6 +3,7 @@ height="950" layout="topleft" name="avatar_texture_debug" + help_topic="avatar_texture_debug" title="Avatar Textures" width="960"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_beacons.xml b/indra/newview/skins/default/xui/en/floater_beacons.xml index ea4128976993c8681e9ff6c7ead60079e7b9453f..09b1735e04c5668469d1aa83463147d2069c60cc 100644 --- a/indra/newview/skins/default/xui/en/floater_beacons.xml +++ b/indra/newview/skins/default/xui/en/floater_beacons.xml @@ -3,106 +3,134 @@ height="225" layout="topleft" name="beacons" + help_topic="beacons" save_rect="true" save_visibility="true" single_instance="true" title="Beacons" - width="250"> + width="240"> <panel follows="left|top|right|bottom" height="200" layout="topleft" left="10" name="beacons_panel" - top="15" + top="20" width="230"> + <text + follows="all" + height="16" + font="SansSerif" + name="label_show" + text_color="White" + type="string"> + Show: + </text> <check_box - bottom_delta="33" - control_name="scripttouchbeacon" - label="Scripted Objects with Touch Only" + control_name="renderbeacons" + height="16" + width="100" + label="Beacons" layout="topleft" - name="touch_only" > + name="beacons" > <check_box.commit_callback function="Beacons.UICheck" /> </check_box> - <check_box - bottom_delta="20" - control_name="scriptsbeacon" - label="Scripted Objects" + <check_box + control_name="renderhighlights" + height="16" + left_pad="10" + label="Highlights" layout="topleft" - name="scripted"> + name="highlights" > <check_box.commit_callback function="Beacons.UICheck" /> </check_box> - <check_box - bottom_delta="20" + <text + type="string" + length="1" + follows="left|top" + height="16" + layout="topleft" + left="20" + tool_tip="Beacon Width" + name="beacon_width_label" + top_pad="3" + width="128"> + Width: + </text> + <slider + control_name="DebugBeaconLineWidth" + decimal_digits="0" + height="16" + increment="1" + initial_value="1" + layout="topleft" + max_val="16" + min_val="1" + name="beacon_width" + top_pad="0" + width="180" /> + <text + follows="all" + height="16" + font="SansSerif" + left="0" + top_pad="5" + name="label_objects" + text_color="White" + type="string"> + For these objects: + </text> + <check_box control_name="physicalbeacon" - label="Physical Objects" + height="16" + left="0" + label="Physical" layout="topleft" name="physical" > <check_box.commit_callback function="Beacons.UICheck" /> </check_box> <check_box - bottom_delta="20" - control_name="soundsbeacon" - label="Sound Sources" + control_name="scriptsbeacon" + height="16" + left="0" + label="Scripted" layout="topleft" - name="sounds" > + name="scripted"> <check_box.commit_callback function="Beacons.UICheck" /> </check_box> - <check_box - bottom_delta="20" - control_name="particlesbeacon" - label="Particle Sources" + <check_box + control_name="scripttouchbeacon" + height="16" + top_pad="4" + left="20" + label="Touch only" layout="topleft" - name="particles" > + name="touch_only" > <check_box.commit_callback function="Beacons.UICheck" /> </check_box> <check_box - bottom_delta="20" - control_name="renderhighlights" - label="Render Highlights" + control_name="soundsbeacon" + height="16" + label="Sound sources" layout="topleft" - name="highlights" > + name="sounds" > <check_box.commit_callback function="Beacons.UICheck" /> </check_box> <check_box - bottom_delta="20" - control_name="renderbeacons" - label="Render Beacons" + control_name="particlesbeacon" + height="16" + label="Particle sources" layout="topleft" - name="beacons" > + name="particles" > <check_box.commit_callback function="Beacons.UICheck" /> </check_box> - <text - type="string" - length="1" - follows="left|top" - height="12" - layout="topleft" - left="5" - name="beacon_width_label" - top="171" - width="128"> - Beacon Width: - </text> - <slider - control_name="DebugBeaconLineWidth" - decimal_digits="0" - height="16" - increment="1" - initial_value="1" - layout="topleft" - left="30" - max_val="16" - min_val="1" - name="beacon_width" - top="187" - width="185" /> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_build_options.xml b/indra/newview/skins/default/xui/en/floater_build_options.xml index af5c006779d3c71b6f7c70efe57d0c280bc9c708..42a063928c51eb2d08881e8d1d72d467d43ede05 100644 --- a/indra/newview/skins/default/xui/en/floater_build_options.xml +++ b/indra/newview/skins/default/xui/en/floater_build_options.xml @@ -1,71 +1,81 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater follows="right" - height="151" + height="170" layout="topleft" name="build options floater" + help_topic="build_options_floater" save_rect="true" title="Grid Options" - width="272"> + width="264"> <spinner control_name="GridResolution" follows="left|top" - height="16" + height="23" initial_value="1" - label="Grid Unit (meters)" - label_width="110" + label="Grid Units (meters)" + label_width="130" layout="topleft" - left="14" + left="10" max_val="5" min_val="0.01" name="GridResolution" - top="37" - width="170" /> + top="25" + width="200" /> <spinner control_name="GridDrawSize" decimal_digits="1" follows="left|top" - height="16" + height="23" increment="0.5" initial_value="5" label="Grid Extents (meters)" - label_width="110" + label_width="130" layout="topleft" left_delta="0" max_val="50" min_val="1" name="GridDrawSize" - top_pad="5" - width="170" /> + top_pad="0" + width="200" /> <check_box control_name="GridSubUnit" height="16" - label="Enable Sub-Unit Snapping" + label="Snap to sub-units" layout="topleft" - left_delta="0" name="GridSubUnit" - top_pad="5" + top_pad="0" width="200" /> <check_box control_name="GridCrossSections" height="16" - label="Show Cross Sections" + label="View cross-sections" layout="topleft" - left_delta="0" name="GridCrossSection" top_pad="5" width="200" /> + <text + type="string" + length="1" + follows="left|top" + height="16" + layout="topleft" + left="10" + tool_tip="Grid Opacity" + name="grid_opacity_label" + top_pad="5" + width="128"> + Opacity: + </text> <slider control_name="GridOpacity" follows="left" - height="16" + height="18" increment="0.05" initial_value="0.7" - label="Grid Opacity" layout="topleft" - left_delta="0" name="GridOpacity" show_text="false" - top_pad="5" - width="200" /> + top_pad="0" + width="210" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_bulk_perms.xml b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml index 0414ab5fa69050a4c685a0fea9141a40c5b3bd41..897e5da4e8e91655d7478ffc7c04bf3c737da42d 100644 --- a/indra/newview/skins/default/xui/en/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml @@ -1,11 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater can_tear_off="false" - height="360" + height="310" layout="topleft" name="floaterbulkperms" - title="Bulk change content permissions" - width="280"> + help_topic="floaterbulkperms" + title="Edit Content Permissions" + width="270"> <floater.string name="nothing_to_modify_text"> Selection contains no editable contents. @@ -22,311 +23,285 @@ name="done_text"> Finished permission change requests. </floater.string> - <text - type="string" - length="1" - follows="left|top" - font="SansSerif" - height="10" - layout="topleft" - left="10" - name="applyto" - top="30" - width="206"> - Content Types - </text> - <icon - height="16" - image_name="inv_item_animation.tga" - layout="topleft" - left_delta="2" - mouse_opaque="true" - name="icon_animation" - top_pad="14" - width="16" /> + <check_box control_name="BulkChangeIncludeAnimations" height="16" - label="Animation" - layout="topleft" - left_pad="2" name="check_animation" - top_delta="0" - width="126" /> + top="24" + left="10" + width="16" /> <icon height="16" - image_name="inv_folder_bodypart.tga" - layout="topleft" - left="12" + image_name="Inv_Animation" mouse_opaque="true" - name="icon_bodypart" - top="74" - width="16" /> + name="icon_animation" + tool_tip="Animation" + left_pad="5" /> <check_box control_name="BulkChangeIncludeBodyParts" height="16" - label="Body Parts" - layout="topleft" - left_pad="2" name="check_bodypart" - top_delta="0" - width="126" /> + left="10" + width="16" + top_pad="2" /> <icon height="16" - image_name="inv_item_shirt.tga" - layout="topleft" - left="12" + image_name="Inv_Eye" + tool_tip="Body Parts" mouse_opaque="true" - name="icon_clothing" - top="94" - width="16" /> + name="icon_bodypart" + left_pad="2" /> <check_box control_name="BulkChangeIncludeClothing" height="16" - label="Clothing" - layout="topleft" - left_pad="2" name="check_clothing" - top_delta="0" - width="126" /> + left="10" + width="16" + top_pad="5" /> <icon height="16" - image_name="inv_item_gesture.tga" - layout="topleft" - left="12" + image_name="Inv_Shirt" mouse_opaque="true" - name="icon_gesture" - top="114" - width="16" /> - <check_box + name="icon_clothing" + tool_tip="Clothing" + left_pad="2" /> + <check_box control_name="BulkChangeIncludeGestures" height="16" - label="Gestures" - layout="topleft" - left_pad="2" name="check_gesture" - top_delta="0" - width="126" /> + left="65" + width="16" + top="25" /> <icon height="16" - image_name="inv_item_notecard.tga" + image_name="Inv_Gesture" layout="topleft" - left="12" mouse_opaque="true" - name="icon_notecard" - top="134" - width="16" /> + name="icon_gesture" + tool_tip="Gestures" + left_pad="2" /> <check_box control_name="BulkChangeIncludeNotecards" height="16" - label="Notecards" layout="topleft" - left_pad="2" name="check_notecard" - top_delta="0" - width="126" /> + left="65" + width="16" + top_pad="5" /> <icon height="16" - image_name="inv_item_object.tga" + image_name="Inv_Notecard" layout="topleft" - left="12" mouse_opaque="true" - name="icon_object" - top="154" - width="16" /> - <check_box + name="icon_notecard" + tool_tip="Notecards" + left_pad="4" /> + <check_box control_name="BulkChangeIncludeObjects" height="16" - label="Objects" - layout="topleft" - left_pad="2" name="check_object" - top_delta="0" - width="126" /> - <icon + left="65" + top_pad="5" + width="16" /> + <icon height="16" - image_name="inv_item_script.tga" - layout="topleft" - left="12" + image_name="Inv_Object" mouse_opaque="true" - name="icon_script" - top="174" - width="16" /> + name="icon_object" + tool_tip="Objects" + left_pad="2" /> <check_box control_name="BulkChangeIncludeScripts" height="16" - label="Scripts" - layout="topleft" - left_pad="2" name="check_script" - top_delta="0" - width="126" /> + top="25" + left="120" + width="16" + /> <icon height="16" - image_name="inv_item_sound.tga" + image_name="Inv_Script" layout="topleft" - left="12" mouse_opaque="true" - name="icon_sound" - top="194" - width="16" /> + name="icon_script" + tool_tip="Scripts" + left_pad="4" /> <check_box control_name="BulkChangeIncludeSounds" height="16" - label="Sounds" - layout="topleft" - left_pad="2" name="check_sound" - top_delta="0" - width="126" /> + top_pad="5" + left="120" + width="16" /> <icon height="16" - image_name="inv_item_texture.tga" - layout="topleft" - left="12" + image_name="Inv_Sound" mouse_opaque="true" - name="icon_texture" - top="214" - width="16" /> + name="icon_sound" + tool_tip="Sounds" + left_pad="4" /> <check_box control_name="BulkChangeIncludeTextures" height="16" - label="Textures" - layout="topleft" - left_pad="2" name="check_texture" - top_delta="0" - width="126" /> + top_pad="5" + left="120" + width="16" /> + <icon + height="16" + image_name="Inv_Texture" + mouse_opaque="true" + name="icon_texture" + tool_top="Textures" + left_pad="2" /> + <button - follows="left|top" - height="20" - label="Check All" - label_selected="All" - layout="topleft" - left="8" - name="check_all" - top="257" - width="100"> + height="23" + layout="topleft" + name="check_all" + label="√ All" + left="180" + top="26" + width="70"> <button.commit_callback function="BulkPermission.CheckAll" /> </button> <button follows="left|top" - height="20" - label="Uncheck All" + height="23" + label="Clear" label_selected="None" layout="topleft" - left_delta="0" + top_pad="8" name="check_none" - top_pad="4" - width="100" > + width="70" > <button.commit_callback function="BulkPermission.UncheckAll"/> </button> + <text type="string" length="1" follows="left|top" - font="SansSerif" - height="10" + font="SansSerifLarge" + height="16" layout="topleft" - left="140" + left="10" name="newperms" - top="30" - width="206"> - New Permissions + top="90" + width="250"> + New Content Permissions + </text> + <text + type="string" + length="1" + follows="left|top" + layout="topleft" + height="16" + left="10" + name="Group:" + width="88"> + Group: </text> <check_box control_name="BulkChangeShareWithGroup" height="16" - label="Share with group" + label="Share" layout="topleft" - left="140" + top_pad="0" name="share_with_group" - top="54" - width="106" /> + width="88" /> + <text + type="string" + length="1" + follows="left|top" + height="16" + layout="topleft" + name="NextOwnerLabel" + left="100" + top="110" + width="88"> + Anyone: + </text> <check_box control_name="BulkChangeEveryoneCopy" height="16" - label="Allow anyone to copy" + label="Copy" layout="topleft" - left_delta="0" + top_pad="0" name="everyone_copy" - top_pad="16" - width="130" /> + width="88" /> <text type="string" length="1" follows="left|top" - height="10" + height="16" layout="topleft" - left_delta="0" name="NextOwnerLabel" - top_pad="16" + top="110" + left="185" width="88"> - Next owner can: + Next owner: </text> <check_box control_name="BulkChangeNextOwnerModify" height="16" label="Modify" layout="topleft" - left_delta="0" name="next_owner_modify" - top_pad="14" - width="78" /> + top_pad="0" + width="83" /> <check_box control_name="BulkChangeNextOwnerCopy" height="16" label="Copy" layout="topleft" - left_delta="78" + top_pad="0" name="next_owner_copy" - top_delta="0" width="88"> <check_box.commit_callback function="BulkPermission.CommitCopy"/> </check_box> <check_box control_name="BulkChangeNextOwnerTransfer" - enabled_control="BulkChangeNextOwnerCopy" + enabled_control="BulkChangeNextOwnerCopy" height="16" + top_pad="0" initial_value="true" - label="Resell/Give away" + label="Transfer" layout="topleft" - left="145" name="next_owner_transfer" - top_delta="20" + tool_tip="Next owner can give away or resell this object" width="106" /> <scroll_list enabled="false" - follows="left|top|right|bottom" - height="130" + follows="all" + height="95" layout="topleft" - left="120" + left="10" name="queue output" - top="185" - width="150" /> + top="175" + width="250" /> <button follows="left|top" - height="20" - label="Apply" + height="23" + label="Ok" layout="topleft" left="65" name="apply" top_pad="10" - width="100"> + width="90"> <button.commit_callback function="BulkPermission.Apply"/> </button> <button follows="left|top" - height="20" - label="Close" + height="23" + label="Cancel" layout="topleft" left_pad="5" name="close" - top_delta="0" width="100" > <button.commit_callback function="BulkPermission.Close"/> diff --git a/indra/newview/skins/default/xui/en/floater_bumps.xml b/indra/newview/skins/default/xui/en/floater_bumps.xml index 4fb2fe24cc9f4cf2a12ad5cd1a30255ab3b08812..d1f67068759824e774732faac9ac886d62aa9fa6 100644 --- a/indra/newview/skins/default/xui/en/floater_bumps.xml +++ b/indra/newview/skins/default/xui/en/floater_bumps.xml @@ -3,6 +3,7 @@ height="180" layout="topleft" name="floater_bumps" + help_topic="floater_bumps" save_rect="true" title="Bumps, Pushes & Hits" width="400"> diff --git a/indra/newview/skins/default/xui/en/floater_buy_contents.xml b/indra/newview/skins/default/xui/en/floater_buy_contents.xml index 0930043659b95b8854f51e8ab1ea1ccf917c8da5..718f83c9a2926dddeab033ed8024bda63be417ad 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_contents.xml @@ -1,11 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater can_resize="true" - height="300" + height="290" layout="topleft" min_height="150" min_width="200" name="floater_buy_contents" + help_topic="floater_buy_contents" save_rect="true" title="Buy Contents" width="280"> @@ -21,27 +22,29 @@ name="no_transfer_text"> (no transfer) </floater.string> - <text + <text type="string" length="1" follows="left|top|right" font="SansSerif" height="16" + top="22" + left="10" layout="topleft" - left="15" name="contains_text" - top="24" - width="281"> + width="276"> [NAME] contains: </text> <scroll_list - follows="left|top|right|bottom" - height="148" + background_visible="true" + draw_border="false" + follows="all" + height="163" layout="topleft" - left_delta="0" + left="10" name="item_list" top_pad="4" - width="250"> + width="260"> <scroll_list.columns name="icon" width="16" /> @@ -52,43 +55,42 @@ <text type="string" length="1" - follows="left|right|bottom" + follows="left|top" font="SansSerif" - height="24" + height="16" layout="topleft" - left_delta="0" + left="10" name="buy_text" - top_pad="4" - width="281"> + text_color="white" + top="220" + width="260"> Buy for L$[AMOUNT] from [NAME]? </text> <check_box - follows="left|bottom" - height="20" + follows="left|top" + height="16" label="Wear clothing now" layout="topleft" - left_delta="0" + left="10" name="wear_check" - top="224" - width="135" /> + width="250" /> <button follows="right|bottom" - height="20" + height="23" label="Buy" label_selected="Buy" layout="topleft" - left_delta="0" + left="65" name="buy_btn" - top_pad="10" - width="125" /> + top_pad="5" + width="100" /> <button follows="right|bottom" - height="20" + height="23" label="Cancel" label_selected="Cancel" layout="topleft" left_pad="5" name="cancel_btn" - top_delta="0" - width="125" /> + width="100" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency.xml b/indra/newview/skins/default/xui/en/floater_buy_currency.xml index e2bdc756a9181d948ef364350f2961a2d5236c53..52c7944ba9f85762acfa119126d4517cdc41e183 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_currency.xml @@ -4,6 +4,7 @@ height="270" layout="topleft" name="buy currency" + help_topic="buy_currency" single_instance="true" title="Buy Currency" width="350"> diff --git a/indra/newview/skins/default/xui/en/floater_buy_land.xml b/indra/newview/skins/default/xui/en/floater_buy_land.xml index 5e0e4231286fcbbf400db3cc3cb4af1baa5caeca..bd0dac5ca186745f2158e56562ccd8ffc492caa3 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_land.xml @@ -4,6 +4,7 @@ height="484" layout="topleft" name="buy land" + help_topic="buy_land" single_instance="true" title="Buy Land" width="740"> diff --git a/indra/newview/skins/default/xui/en/floater_buy_object.xml b/indra/newview/skins/default/xui/en/floater_buy_object.xml index 505411b96402ff04d1dbceb4cf2d1d2391ac3a7f..7930622e54cc6e4b4eebb18ee2ed46dd623f19b9 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_object.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_object.xml @@ -1,11 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater can_resize="true" - height="250" + height="290" layout="topleft" - min_height="175" - min_width="154" + min_height="150" + min_width="200" name="contents" + help_topic="contents" save_rect="true" single_instance="true" title="Buy Copy of Object" @@ -31,13 +32,15 @@ (no transfer) </floater.string> <scroll_list + background_visible="true" + draw_border="false" follows="left|top|right" - height="36" + height="35" layout="topleft" - left="15" name="object_list" - top="24" - width="250"> + top="20" + left="10" + width="260"> <scroll_list.columns name="icon" width="16" /> @@ -48,24 +51,26 @@ <text type="string" length="1" - follows="left|top|right" + follows="all" font="SansSerif" height="16" layout="topleft" - left_delta="0" + left="10" name="contents_text" - top_pad="4" - width="250"> - and its contents: + top_pad="5" + width="260"> + Contains: </text> <scroll_list - follows="left|top|right|bottom" - height="108" + background_visible="true" + draw_border="false" + follows="all" + height="145" layout="topleft" left_delta="0" name="item_list" top_pad="4" - width="250"> + width="260"> <scroll_list.columns name="icon" width="16" /> @@ -78,32 +83,33 @@ length="1" follows="left|right|bottom" font="SansSerif" - height="24" + height="16" layout="topleft" left_delta="0" name="buy_text" - top_pad="4" - width="281"> + text_color="white" + top_pad="5" + width="276"> Buy for L$[AMOUNT] from [NAME]? </text> <button follows="right|bottom" - height="20" + height="23" label="Buy" label_selected="Buy" layout="topleft" - left="10" + left="65" name="buy_btn" - top_pad="5" - width="125" /> + top_pad="10" + width="100" /> <button follows="right|bottom" - height="20" + height="23" label="Cancel" label_selected="Cancel" layout="topleft" left_pad="5" name="cancel_btn" top_delta="0" - width="125" /> + width="100" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml index 1501f39b67831c56cf00e7c51c3ce0e55216d158..1592ed4aa48a6c42abae5907c2956ff4463f22ea 100644 --- a/indra/newview/skins/default/xui/en/floater_camera.xml +++ b/indra/newview/skins/default/xui/en/floater_camera.xml @@ -7,6 +7,7 @@ height="95" layout="topleft" name="camera_floater" + help_topic="camera_floater" save_rect="true" save_visibility="true" width="105"> @@ -80,20 +81,20 @@ </panel> <panel border="true" - height="30" + height="25" layout="topleft" left="0" top_pad="1" name="buttons" width="105"> <button - height="25" + height="23" label="" layout="topleft" - left="0" + left="2" is_toggle="true" - image_selected="btn_orbit_selected.png" - image_unselected="btn_orbit_unselected.png" + image_overlay="Cam_Orbit_Off" + image_selected="PushButton_Selected_Press" name="orbit_btn" tab_stop="false" tool_tip="Orbit Camera" @@ -101,42 +102,43 @@ width="25"> </button> <button - height="25" + height="23" label="" layout="topleft" - left_pad="1" + left_pad="0" is_toggle="true" - image_selected="btn_pan_selected.png" - image_unselected="btn_pan_unselected.png" + image_overlay="Cam_Pan_Off" + image_selected="PushButton_Selected_Press" name="pan_btn" tab_stop="false" tool_tip="Pan Camera" width="25"> </button> <button - height="25" + height="23" label="" layout="topleft" - left_pad="1" - is_toggle="true" - image_selected="btn_freecamera_selected.png" - image_unselected="btn_freecamera_unselected.png" - name="freecamera_btn" + left_pad="0" + image_overlay="Cam_Avatar_Off" + image_selected="PushButton_Selected_Press" + name="avatarview_btn" tab_stop="false" - tool_tip="View Object" + tool_tip="See as Avatar" width="25"> </button> <button - height="25" + height="23" label="" layout="topleft" - left_pad="2" - image_selected="btn_firstperson_selected.png" - image_unselected="btn_firstperson_unselected.png" - name="avatarview_btn" + left_pad="0" + is_toggle="true" + image_overlay="Cam_FreeCam_Off" + image_selected="PushButton_Selected_Press" + name="freecamera_btn" tab_stop="false" - tool_tip="See as Avatar" + tool_tip="View Object" width="25"> </button> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_choose_group.xml b/indra/newview/skins/default/xui/en/floater_choose_group.xml index 428afcff52d25ec439d9c4f276fd864bbd7cb766..371e239fdb3131a0cb2935ebec8a1042ceff6562 100644 --- a/indra/newview/skins/default/xui/en/floater_choose_group.xml +++ b/indra/newview/skins/default/xui/en/floater_choose_group.xml @@ -3,6 +3,7 @@ height="258" layout="topleft" name="groups" + help_topic="groups" title="Groups" width="280"> <text diff --git a/indra/newview/skins/default/xui/en/floater_color_picker.xml b/indra/newview/skins/default/xui/en/floater_color_picker.xml index cda2020fcada0d2c13a1f120456e4f7a5cd26de8..f2146339a7799383550460bfe31b550d9c53bd5a 100644 --- a/indra/newview/skins/default/xui/en/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/en/floater_color_picker.xml @@ -5,6 +5,7 @@ height="380" layout="topleft" name="ColorPicker" + help_topic="colorpicker" title="Color Picker" width="440"> <text diff --git a/indra/newview/skins/default/xui/en/floater_critical.xml b/indra/newview/skins/default/xui/en/floater_critical.xml index 5475a1cf6a56d712b9c235e24496a1da873a2ed1..7d1a1113b0bc9d76d1b6a1b3c2528d4d0a263d44 100644 --- a/indra/newview/skins/default/xui/en/floater_critical.xml +++ b/indra/newview/skins/default/xui/en/floater_critical.xml @@ -5,6 +5,7 @@ height="500" layout="topleft" name="modal container" + help_topic="modal_container" width="600"> <button height="20" diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml index 4463d440498c73abc9f80084ffed5dc1803e123c..3b6d5452e34b6661d73e5a4cdc74c3884b909d21 100644 --- a/indra/newview/skins/default/xui/en/floater_customize.xml +++ b/indra/newview/skins/default/xui/en/floater_customize.xml @@ -6,6 +6,7 @@ layout="topleft" left_delta="-3" name="floater customize" + help_topic="floater_customize" save_rect="true" title="Appearance" top_delta="-185" diff --git a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml index 9ca7172f81f0b0eab6e60c3bb41c20593be60c7e..b044cd41e644bec6ffd2072ca0ebf8a1efd920e7 100644 --- a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml @@ -3,6 +3,7 @@ height="275" layout="topleft" name="Day Cycle Floater" + help_topic="day_cycle_floater" save_rect="true" title="Day Cycle Editor" width="646"> diff --git a/indra/newview/skins/default/xui/en/floater_device_settings.xml b/indra/newview/skins/default/xui/en/floater_device_settings.xml index fa0cce3795a9bfc55c40a8ab8902cab7d61a1567..8901608374326938da2c86a7b668bd2e67295cd3 100644 --- a/indra/newview/skins/default/xui/en/floater_device_settings.xml +++ b/indra/newview/skins/default/xui/en/floater_device_settings.xml @@ -3,6 +3,7 @@ height="260" layout="topleft" name="floater_device_settings" + help_topic="floater_device_settings" title="Voice Chat Device Settings" width="405"> <panel diff --git a/indra/newview/skins/default/xui/en/floater_env_settings.xml b/indra/newview/skins/default/xui/en/floater_env_settings.xml index 5aa78092089c0c93da84be204ccfb33cd339c76a..5e87e065a4a730cc1298777bf7da3a66c854d5ea 100644 --- a/indra/newview/skins/default/xui/en/floater_env_settings.xml +++ b/indra/newview/skins/default/xui/en/floater_env_settings.xml @@ -3,6 +3,7 @@ height="150" layout="topleft" name="Environment Editor Floater" + help_topic="environment_editor_floater" save_rect="true" title="Environment Editor" width="600"> diff --git a/indra/newview/skins/default/xui/en/floater_first_time_tip.xml b/indra/newview/skins/default/xui/en/floater_first_time_tip.xml index c16373ba3cb0cbf25c70786973862cfa2b3c7a86..49751111116da07407f62cdf7f80a1619e688e9d 100644 --- a/indra/newview/skins/default/xui/en/floater_first_time_tip.xml +++ b/indra/newview/skins/default/xui/en/floater_first_time_tip.xml @@ -5,6 +5,7 @@ height="250" layout="topleft" name="set_name_in_the_cladd" + help_topic="set_name_in_the_cladd" save_rect="true" width="300"> <check_box diff --git a/indra/newview/skins/default/xui/en/floater_font_test.xml b/indra/newview/skins/default/xui/en/floater_font_test.xml index 744d43498265f2290eb0083d051ef1edf8f4e40e..6f9038df626c6cbc5b95b24002a516031b21105f 100644 --- a/indra/newview/skins/default/xui/en/floater_font_test.xml +++ b/indra/newview/skins/default/xui/en/floater_font_test.xml @@ -6,6 +6,7 @@ min_height="175" min_width="154" name="contents" + help_topic="contents" title="Font Test" width="500"> <text diff --git a/indra/newview/skins/default/xui/en/floater_gesture.xml b/indra/newview/skins/default/xui/en/floater_gesture.xml index f042385fb4659944a4d7b718a34d89f8faabe7a1..052398bcd32bdd3d1029d95b59f3b7423fc32194 100644 --- a/indra/newview/skins/default/xui/en/floater_gesture.xml +++ b/indra/newview/skins/default/xui/en/floater_gesture.xml @@ -6,6 +6,7 @@ min_height="200" min_width="280" name="gestures" + help_topic="gestures" title="Active Gestures" width="280"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_god_tools.xml b/indra/newview/skins/default/xui/en/floater_god_tools.xml index e3bea2e2d6457e06e826487c64135b226ddc4764..615c35e6c3473baeaf3082224953716cae2ff2fa 100644 --- a/indra/newview/skins/default/xui/en/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_god_tools.xml @@ -3,6 +3,7 @@ height="384" layout="topleft" name="godtools floater" + help_topic="godtools_floater" title="God Tools" width="400"> <tab_container diff --git a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml index b7733c638844078b755c14f9508f8cf9b044d39e..70f296b606bea6f7e708928e17331b666c8827d9 100644 --- a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml @@ -3,6 +3,7 @@ height="224" layout="topleft" name="Hardware Settings Floater" + help_topic="hardware_settings_floater" title="Hardware Settings" width="500"> <text diff --git a/indra/newview/skins/default/xui/en/floater_help_browser.xml b/indra/newview/skins/default/xui/en/floater_help_browser.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1265d49f9747c657fa48736c226e7829d7357a1 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_help_browser.xml @@ -0,0 +1,213 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater + can_resize="true" + height="440" + layout="topleft" + min_height="140" + min_width="467" + name="floater_help_browser" + help_topic="floater_help_browser" + save_rect="true" + single_instance="true" + title="Holy Bananas, it's the Help Browser" + width="820"> + <floater.string + name="home_page_url"> + http://www.secondlife.com + </floater.string> + <floater.string + name="support_page_url"> + http://support.secondlife.com + </floater.string> + <layout_stack + bottom="440" + follows="left|right|top|bottom" + layout="topleft" + left="10" + name="stack1" + top="20" + width="800"> + <layout_panel + auto_resize="false" + height="20" + layout="topleft" + left="0" + name="nav_controls" + top="400" + user_resize="false" + width="800"> + <button + follows="left|top" + height="20" + label="Back" + layout="topleft" + left="0" + name="back" + top="0" + width="55" /> + <button + follows="left|top" + height="20" + label="Forward" + layout="topleft" + left_pad="3" + name="forward" + top_delta="0" + width="68" /> + <button + enabled="false" + follows="left|top" + height="20" + label="Reload" + layout="topleft" + left_pad="2" + name="reload" + top_delta="0" + width="70"/> + <combo_box + allow_text_entry="true" + follows="left|top|right" + height="20" + layout="topleft" + left_pad="5" + max_chars="255" + name="address" + top_delta="0" + width="540" /> + <button + enabled="false" + follows="right|top" + height="20" + label="Go" + layout="topleft" + left_pad="5" + name="go" + top_delta="0" + width="55" /> + </layout_panel> + <layout_panel + auto_resize="false" + height="20" + layout="topleft" + left_delta="0" + name="time_controls" + top_delta="0" + user_resize="false" + width="800"> + <button + follows="left|top" + height="20" + label="rewind" + layout="topleft" + left="0" + name="rewind" + top="0" + width="55" /> + <button + follows="left|top" + height="20" + image_selected="button_anim_play_selected.tga" + image_unselected="button_anim_play.tga" + layout="topleft" + left_delta="55" + name="play" + picture_style="true" + top_delta="0" + width="55" /> + <button + follows="left|top" + height="20" + image_selected="button_anim_pause_selected.tga" + image_unselected="button_anim_pause.tga" + layout="topleft" + left_delta="0" + name="pause" + picture_style="true" + top_delta="0" + width="55" /> + <button + follows="left|top" + height="20" + label="stop" + layout="topleft" + left_pad="10" + name="stop" + top_delta="0" + width="55" /> + <button + follows="left|top" + height="20" + label="forward" + layout="topleft" + left_pad="20" + name="seek" + top_delta="0" + width="55" /> + </layout_panel> + <layout_panel + auto_resize="false" + height="20" + layout="topleft" + left_delta="0" + name="parcel_owner_controls" + top_delta="0" + user_resize="false" + width="540"> + <button + enabled="false" + follows="left|top" + height="20" + label="Send Current URL to Parcel" + layout="topleft" + left="0" + name="assign" + top="0" + width="200" /> + </layout_panel> + <layout_panel + height="20" + layout="topleft" + left_delta="0" + name="external_controls" + top_delta="0" + user_resize="false" + width="540"> + <web_browser + bottom="-10" + follows="left|right|top|bottom" + layout="topleft" + left="0" + name="browser" + top="0" + width="540" /> + <button + follows="bottom|left" + height="20" + label="Open in My Web Browser" + layout="topleft" + left_delta="0" + name="open_browser" + top_pad="5" + width="185" /> + <check_box + control_name="UseExternalBrowser" + follows="bottom|left" + height="20" + label="Always open in my web browser" + layout="topleft" + left_pad="5" + name="open_always" + top_delta="0" + width="200" /> + <button + follows="bottom|right" + height="20" + label="Close" + layout="topleft" + left_pad="80" + name="close" + top_delta="0" + width="70" /> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/en/floater_hud.xml b/indra/newview/skins/default/xui/en/floater_hud.xml index 73804f90a584be2c0abbf407a51a63304163fd4f..23e0ef50fdd081b642d62d86ba39164ba743d27b 100644 --- a/indra/newview/skins/default/xui/en/floater_hud.xml +++ b/indra/newview/skins/default/xui/en/floater_hud.xml @@ -4,6 +4,7 @@ height="292" layout="topleft" name="floater_hud" + help_topic="floater_hud" save_rect="true" save_visibility="true" title="Tutorial" diff --git a/indra/newview/skins/default/xui/en/floater_im.xml b/indra/newview/skins/default/xui/en/floater_im.xml index e8b8fee67867e0dd1a26d3ddbce29e1254daa495..b6cf05aefcee636379de9d58b38d2e8e2fa38e16 100644 --- a/indra/newview/skins/default/xui/en/floater_im.xml +++ b/indra/newview/skins/default/xui/en/floater_im.xml @@ -7,6 +7,7 @@ min_height="130" min_width="350" name="im_floater" + help_topic="im_floater" save_rect="true" title="Instant Message" width="419"> diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml index ae9e658688cd070625b5d77c7913672beb20897a..a5d76821a820b340780fd35657a6a52b27ce9967 100644 --- a/indra/newview/skins/default/xui/en/floater_im_session.xml +++ b/indra/newview/skins/default/xui/en/floater_im_session.xml @@ -6,6 +6,7 @@ layout="topleft" left="0" name="panel_im" + help_topic="panel_im" top="0" can_dock="true" can_minimize="false" diff --git a/indra/newview/skins/default/xui/en/floater_image_preview.xml b/indra/newview/skins/default/xui/en/floater_image_preview.xml index 6fface12a39c3cd392ce321fd73ee72eb5a7f51a..4e4fe97e6276a8f4b8b67e40a4c61c3e6a896695 100644 --- a/indra/newview/skins/default/xui/en/floater_image_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_image_preview.xml @@ -4,6 +4,7 @@ height="440" layout="topleft" name="Image Preview" + help_topic="image_preview" width="300"> <text type="string" diff --git a/indra/newview/skins/default/xui/en/floater_incoming_call.xml b/indra/newview/skins/default/xui/en/floater_incoming_call.xml index 2e7f5e6c42388cb8c1627efa01eba8b802016612..8b271eb41ef6e8d1d6870cd0874b3a019edc1e88 100644 --- a/indra/newview/skins/default/xui/en/floater_incoming_call.xml +++ b/indra/newview/skins/default/xui/en/floater_incoming_call.xml @@ -6,6 +6,7 @@ height="200" layout="topleft" name="incoming call" + help_topic="incoming_call" title="Unknown Person is calling" width="240"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_inspect.xml b/indra/newview/skins/default/xui/en/floater_inspect.xml index b43cdca0d10a680b704a099a555688beda47951f..00b9f850adf367820d6dd6683bd9c0f91ffc9749 100644 --- a/indra/newview/skins/default/xui/en/floater_inspect.xml +++ b/indra/newview/skins/default/xui/en/floater_inspect.xml @@ -6,6 +6,7 @@ min_height="300" min_width="400" name="inspect" + help_topic="inspect" save_rect="true" title="Inspect Objects" width="400"> diff --git a/indra/newview/skins/default/xui/en/floater_inventory.xml b/indra/newview/skins/default/xui/en/floater_inventory.xml index e94ca1b30b6fc9425a94730793df9737f7c48d0a..0f06558dd1ffeec3cb8590f469f43ecbeb4d904a 100644 --- a/indra/newview/skins/default/xui/en/floater_inventory.xml +++ b/indra/newview/skins/default/xui/en/floater_inventory.xml @@ -7,6 +7,7 @@ min_height="150" min_width="240" name="Inventory" + help_topic="inventory" save_rect="true" save_visibility="true" single_instance="true" @@ -17,8 +18,12 @@ Inventory </floater.string> <floater.string - name="Items"> - Items... + name="TitleFetching"> + Inventory (Fetching [ITEM_COUNT] Items...) [FILTER] + </floater.string> + <floater.string + name="TitleCompleted"> + Inventory ([ITEM_COUNT] Items) [FILTER] </floater.string> <floater.string name="Fetched"> diff --git a/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml index 10bcee7c85022de30734edbc3543a570631008f3..2882f233c28f051a65958a402d789386bdc48404 100644 --- a/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml @@ -4,6 +4,7 @@ height="340" layout="topleft" name="item properties" + help_topic="item_properties" save_rect="true" title="Inventory Item Properties" width="350"> diff --git a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml index f07a146471dcf10edc7fd228cacb22ea64997b39..6556a147308db59af65b4dddb2f393f5047b808e 100644 --- a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml @@ -4,11 +4,12 @@ height="408" layout="topleft" name="Inventory Finder" + help_topic="inventory_finder" title="inventory_recent_items" width="280"> <icon height="16" - image_name="inv_item_animation.tga" + image_name="Inv_Animation" layout="topleft" left="8" mouse_opaque="true" @@ -25,7 +26,7 @@ width="126" /> <icon height="16" - image_name="inv_item_callingcard_online.tga" + image_name="Inv_CallingCard" layout="topleft" left="8" mouse_opaque="true" @@ -42,7 +43,7 @@ width="126" /> <icon height="16" - image_name="inv_item_shirt.tga" + image_name="Inv_Shirt" layout="topleft" left="8" mouse_opaque="true" @@ -59,7 +60,7 @@ width="126" /> <icon height="16" - image_name="inv_item_gesture.tga" + image_name="Inv_Gesture" layout="topleft" left="8" mouse_opaque="true" @@ -76,7 +77,7 @@ width="126" /> <icon height="16" - image_name="inv_item_landmark_visited.tga" + image_name="Inv_Landmark" layout="topleft" left="8" mouse_opaque="true" @@ -93,7 +94,7 @@ width="126" /> <icon height="16" - image_name="inv_item_notecard.tga" + image_name="Inv_Notecard" layout="topleft" left="8" mouse_opaque="true" @@ -110,7 +111,7 @@ width="126" /> <icon height="16" - image_name="inv_item_object.tga" + image_name="Inv_Object" layout="topleft" left="8" mouse_opaque="true" @@ -127,7 +128,7 @@ width="126" /> <icon height="16" - image_name="inv_item_script.tga" + image_name="Inv_Script" layout="topleft" left="8" mouse_opaque="true" @@ -144,7 +145,7 @@ width="126" /> <icon height="16" - image_name="inv_item_sound.tga" + image_name="Inv_Sound" layout="topleft" left="8" mouse_opaque="true" @@ -161,7 +162,7 @@ width="126" /> <icon height="16" - image_name="inv_item_texture.tga" + image_name="Inv_Texture" layout="topleft" left="8" mouse_opaque="true" @@ -178,7 +179,7 @@ width="126" /> <icon height="16" - image_name="inv_item_snapshot.tga" + image_name="Inv_Snapshot" layout="topleft" left="8" mouse_opaque="true" diff --git a/indra/newview/skins/default/xui/en/floater_joystick.xml b/indra/newview/skins/default/xui/en/floater_joystick.xml index b9c1b08c68b27bbb793ede9a833113eb46d9ecd2..c0bcfd2271c7962cac676511b742290422d4c375 100644 --- a/indra/newview/skins/default/xui/en/floater_joystick.xml +++ b/indra/newview/skins/default/xui/en/floater_joystick.xml @@ -3,6 +3,7 @@ height="500" layout="topleft" name="Joystick" + help_topic="joystick" title="Joystick Configuration" width="550"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_lagmeter.xml b/indra/newview/skins/default/xui/en/floater_lagmeter.xml index a326cd006fee2f276dc92a3525c110f1a4339bc2..3f5127561a490ac4b84ec9650222124d2044defa 100644 --- a/indra/newview/skins/default/xui/en/floater_lagmeter.xml +++ b/indra/newview/skins/default/xui/en/floater_lagmeter.xml @@ -3,6 +3,7 @@ height="150" layout="topleft" name="floater_lagmeter" + help_topic="floater_lagmeter" save_rect="true" title="Lag Meter" width="350"> @@ -325,7 +326,6 @@ bottom="145" follows="left|top" height="18" - help_url="https://support.secondlife.com/ics/support/default.asp?deptID=4417&task=knowledge&questionID=4851" label="?" layout="topleft" name="server_help" diff --git a/indra/newview/skins/default/xui/en/floater_land_holdings.xml b/indra/newview/skins/default/xui/en/floater_land_holdings.xml index 60677ca0dfb6b2231164632ee753c09933dfbed5..f887b48ed0e24ee1adbcfbc1dc72dc25639e8fd2 100644 --- a/indra/newview/skins/default/xui/en/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/en/floater_land_holdings.xml @@ -3,6 +3,7 @@ height="400" layout="topleft" name="land holdings floater" + help_topic="land_holdings_floater" title="My Land" width="280"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml index 6d6c6c6644dd93e222f6b9c7978c58886e69fd2e..dc6c8302a0a3b59ca88f326cb6a568d9c7e99021 100644 --- a/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml +++ b/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml @@ -4,11 +4,12 @@ border_style="line" can_resize="true" follows="left|top" - height="550" + height="570" layout="topleft" min_height="271" min_width="290" name="script ed float" + help_topic="script_ed_float" save_rect="true" title="Script: New Script" width="500"> @@ -30,9 +31,9 @@ label="Reset" label_selected="Reset" layout="topleft" - left="362" + left="358" name="Reset" - top="525" + top="545" width="128" /> <check_box enabled="false" diff --git a/indra/newview/skins/default/xui/en/floater_lsl_guide.xml b/indra/newview/skins/default/xui/en/floater_lsl_guide.xml index ce6b0efd03e107d0e0577bb19c3e2932fc54e61b..fd2ee6ce5cab9c8b8e4385bfed3b3aa9220fd2b4 100644 --- a/indra/newview/skins/default/xui/en/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/en/floater_lsl_guide.xml @@ -7,6 +7,7 @@ min_height="271" min_width="350" name="script ed float" + help_topic="script_ed_float" save_rect="true" title="LSL Wiki" width="370"> diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml index ed3b00250b1567c53758ccbe41ef9798fa09a308..70f9c196581d83ac80e9143409929967edabfff5 100644 --- a/indra/newview/skins/default/xui/en/floater_map.xml +++ b/indra/newview/skins/default/xui/en/floater_map.xml @@ -7,6 +7,7 @@ min_height="60" min_width="174" name="Map" + help_topic="map" save_rect="true" save_visibility="true" single_instance="true" diff --git a/indra/newview/skins/default/xui/en/floater_media_browser.xml b/indra/newview/skins/default/xui/en/floater_media_browser.xml index 28b8139bfdb75a1e50ab86a98cbc7bbb6ac8aabe..ad2c50c6d9ab1fb75037bf5008efa05d11250a23 100644 --- a/indra/newview/skins/default/xui/en/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/en/floater_media_browser.xml @@ -6,6 +6,7 @@ min_height="140" min_width="467" name="floater_about" + help_topic="floater_about" save_rect="true" single_instance="true" title="Media Browser" diff --git a/indra/newview/skins/default/xui/en/floater_mem_leaking.xml b/indra/newview/skins/default/xui/en/floater_mem_leaking.xml index da698f276b4f271403fc514a4827678f02ccd5b1..bd83da02aa8e0aada2c37a51e0e949ac25053ed0 100644 --- a/indra/newview/skins/default/xui/en/floater_mem_leaking.xml +++ b/indra/newview/skins/default/xui/en/floater_mem_leaking.xml @@ -5,7 +5,8 @@ height="175" layout="topleft" name="MemLeak" - title="Memory Leaking Simulation" + help_topic="memleak" + title="Simulate a Memory Leak" width="350"> <spinner decimal_digits="0" diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml index 17d12c89b711f0e1bf4f8c1a0d2f217dc88de795..dc0ff7ac4c24f417c571c450a423e7c45f71eaaf 100644 --- a/indra/newview/skins/default/xui/en/floater_moveview.xml +++ b/indra/newview/skins/default/xui/en/floater_moveview.xml @@ -7,6 +7,7 @@ height="95" layout="topleft" name="move_floater" + help_topic="move_floater" save_rect="true" save_visibility="true" width="115"> @@ -46,10 +47,10 @@ <button follows="left|bottom" height="25" - image_selected="move_turn_left_in.tga" - image_unselected="move_turn_left_out.tga" + image_selected="Movement_TurnLeft_On" + image_unselected="Movement_TurnLeft_Off" layout="topleft" - left="10" + left="17" name="turn left btn" picture_style="true" scale_image="false" @@ -59,10 +60,10 @@ <button follows="left|bottom" height="25" - image_selected="move_turn_right_in.tga" - image_unselected="move_turn_right_out.tga" + image_selected="Movement_TurnRight_On" + image_unselected="Movement_TurnRight_Off" layout="topleft" - left_pad="45" + left_pad="34" name="turn right btn" picture_style="true" scale_image="false" @@ -72,8 +73,8 @@ <button follows="left|bottom" height="25" - image_selected="move_up_in.tga" - image_unselected="move_up_out.tga" + image_selected="Movement_Up_On" + image_unselected="Movement_Up_Off" layout="topleft" left="10" name="move up btn" @@ -85,8 +86,8 @@ <button follows="left|bottom" height="25" - image_selected="move_down_in.tga" - image_unselected="move_down_out.tga" + image_selected="Movement_Down_On" + image_unselected="Movement_Down_Off" layout="topleft" left_pad="45" name="move down btn" @@ -98,10 +99,10 @@ <joystick_turn follows="left|bottom" height="25" - image_selected="move_forward_in.tga" - image_unselected="move_forward_out.tga" + image_selected="Movement_Forward_On" + image_unselected="Movement_Forward_Off" layout="topleft" - left="47" + left="46" name="forward btn" picture_style="true" quadrant="up" @@ -112,8 +113,8 @@ <joystick_turn follows="left|bottom" height="25" - image_selected="move_backward_in.tga" - image_unselected="move_backward_out.tga" + image_selected="Movement_Backward_On" + image_unselected="Movement_Backward_Off" layout="topleft" left_delta="0" name="backward btn" @@ -131,24 +132,28 @@ layout="topleft" left="0" name="panel_modes" - top_pad="1" + top_pad="0" width="115"> <button follows="left|bottom" - height="20" - label="Walk" + height="23" + image_overlay="Move_Walk_Off" + image_selected="PushButton_Selected_Press" + label="" layout="topleft" name="mode_walk_btn" - pad_left="0" + left="10" pad_right="0" tool_tip="Walking Mode" top="2" - width="43" /> + width="31" /> <button follows="left|bottom" font="SansSerifSmall" - height="20" - label="Run" + height="23" + image_overlay="Move_Run_Off" + image_selected="PushButton_Selected_Press" + label="" layout="topleft" left_pad="0" name="mode_run_btn" @@ -156,11 +161,13 @@ pad_right="0" tool_tip="Running Mode" top="2" - width="37" /> + width="31" /> <button follows="left|bottom" - height="20" - label="Fly" + height="23" + image_overlay="Move_Fly_Off" + image_selected="PushButton_Selected_Press" + label="" layout="topleft" left_pad="0" name="mode_fly_btn" @@ -168,7 +175,7 @@ pad_right="0" tool_tip="Flying Mode" top="2" - width="35" /> + width="31" /> <button visible="false" follows="left|bottom" diff --git a/indra/newview/skins/default/xui/en/floater_mute_object.xml b/indra/newview/skins/default/xui/en/floater_mute_object.xml index 6b6b2c80ba82a92d8471947814311ef1c2be2e0e..412df1d2626e78f75045e3ff0c7661edad62b2d9 100644 --- a/indra/newview/skins/default/xui/en/floater_mute_object.xml +++ b/indra/newview/skins/default/xui/en/floater_mute_object.xml @@ -4,6 +4,7 @@ height="140" layout="topleft" name="mute by name" + help_topic="mute_by_name" title="Block object by name" width="375"> <text diff --git a/indra/newview/skins/default/xui/en/floater_my_friends.xml b/indra/newview/skins/default/xui/en/floater_my_friends.xml index 65665c7036d1fc4d0210570c55bc54e13f4c0437..a9a18f44c4d4e1193c9f4ca002a13c4f2573344f 100644 --- a/indra/newview/skins/default/xui/en/floater_my_friends.xml +++ b/indra/newview/skins/default/xui/en/floater_my_friends.xml @@ -7,6 +7,7 @@ min_height="240" min_width="365" name="floater_my_friends" + help_topic="floater_my_friends" save_rect="true" single_instance="true" title="Contacts" diff --git a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml index 674bfa42dad539213abf30b25526e509292a2797..78f795b0e2bb86dc813197201161a5f33f78c716 100644 --- a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml +++ b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml @@ -7,6 +7,7 @@ height="300" layout="topleft" name="nearby_chat" + help_topic="nearby_chat" save_rect="true" title="Nearby Chat" single_instance="true" diff --git a/indra/newview/skins/default/xui/en/floater_notifications_console.xml b/indra/newview/skins/default/xui/en/floater_notifications_console.xml index 34bda53ef124cbaa3d1657d2403af50caefe7cc0..3783417cdb646c27ff349d45b80c06fac18a6506 100644 --- a/indra/newview/skins/default/xui/en/floater_notifications_console.xml +++ b/indra/newview/skins/default/xui/en/floater_notifications_console.xml @@ -5,6 +5,7 @@ layout="topleft" min_height="50" name="notifications_console" + help_topic="notifications_console" single_instance="true" title="Notifications Console" width="500"> diff --git a/indra/newview/skins/default/xui/en/floater_openobject.xml b/indra/newview/skins/default/xui/en/floater_openobject.xml index e0ac2c1d5161dbce8ebfec9c0daf5d703ae65e05..17f7e9bf67b8971432d20e1807c339f66830fb8a 100644 --- a/indra/newview/skins/default/xui/en/floater_openobject.xml +++ b/indra/newview/skins/default/xui/en/floater_openobject.xml @@ -7,41 +7,45 @@ min_height="160" min_width="270" name="objectcontents" + help_topic="objectcontents" save_rect="true" title="Object Contents" width="300"> - <panel_inventory - follows="left|top|right|bottom" - height="276" - layout="topleft" - left="8" - name="object_contents" - top="44" - width="284" /> - <text + <text type="string" length="1" follows="left|top|right" font="SansSerif" + text_color="White" height="16" layout="topleft" - left_delta="0" + left="10" name="object_name" - top_delta="-20" + top="20" width="284"> [DESC]: </text> + <panel_inventory + background_visible="false" + draw_border="false" + follows="all" + height="276" + layout="topleft" + left="10" + name="object_contents" + top_pad="0" + width="284" /> <button follows="bottom|left" font="SansSerifSmall" - height="20" + height="23" label="Copy To Inventory" label_selected="Copy To Inventory" layout="topleft" - left_delta="2" + left="20" name="copy_to_inventory_button" tab_group="1" - top_pad="285" + top_pad="5" width="120"> <button.commit_callback function="OpenObject.MoveToInventory" /> @@ -49,13 +53,12 @@ <button follows="bottom|left" font="SansSerifSmall" - height="20" + height="23" label="Copy And Wear" label_selected="Copy And Wear" layout="topleft" left_pad="10" name="copy_and_wear_button" - top_delta="0" width="120"> <button.commit_callback function="OpenObject.MoveAndWear" /> diff --git a/indra/newview/skins/default/xui/en/floater_pay.xml b/indra/newview/skins/default/xui/en/floater_pay.xml index 96195c9ba1ebc2df9132c5ef10aac30f9926f334..5f70f09a344b4a7104fa46f0eb3bec9bea27b4e5 100644 --- a/indra/newview/skins/default/xui/en/floater_pay.xml +++ b/indra/newview/skins/default/xui/en/floater_pay.xml @@ -1,129 +1,119 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater can_minimize="false" - height="140" + height="185" layout="topleft" name="Give Money" + help_topic="give_money" save_rect="true" - width="300"> + width="225"> + <text + type="string" + length="1" + follows="left|top" + font="SansSerifBold" + height="18" + layout="topleft" + left="12" + name="payee_label" + top="7" + width="75"> + Pay: + </text> + <icon + height="16" + width="16" + image_name="Generic_Person" + mouse_opaque="true" + name="icon_person" + tool_tip="Person" + top_pad="0" + left="10" + /> + <text + type="string" + length="1" + follows="left|top" + font="SansSerif" + height="16" + layout="topleft" + left_pad="7" + name="payee_name" + width="210"> + [FIRST] [LAST] + </text> <button - height="20" + height="23" label="L$1" label_selected="L$1" layout="topleft" - left="108" + left="25" name="fastpay 1" - top="54" + top_pad="8" width="80" /> <button - height="20" + height="23" label="L$5" label_selected="L$5" layout="topleft" left_pad="15" name="fastpay 5" - top_delta="0" width="80" /> <button - height="20" + height="23" label="L$10" label_selected="L$10" layout="topleft" - left="108" + left="25" name="fastpay 10" - top="78" + top_pad="8" width="80" /> <button - height="20" + height="23" label="L$20" label_selected="L$20" layout="topleft" left_pad="15" name="fastpay 20" - top_delta="0" - width="80" /> - <button - enabled="false" - height="20" - label="Pay" - label_selected="Pay" - layout="topleft" - left="120" - name="pay btn" - top="112" - width="80" /> - <button - height="20" - label="Cancel" - label_selected="Cancel" - layout="topleft" - left_pad="3" - name="cancel btn" - top_delta="0" width="80" /> <text type="string" length="1" follows="left|top" - font="SansSerif" height="18" layout="topleft" - left="12" - name="payee_label" - top="7" - width="75"> - Pay resident: - </text> - <text - type="string" - length="1" - follows="left|top" - font="SansSerif" - height="18" - layout="topleft" - left_delta="73" - name="payee_name" - top_delta="0" - width="210"> - [FIRST] [LAST] - </text> - <text - type="string" - length="1" - follows="left|top" - font="SansSerif" - halign="right" - height="18" - layout="topleft" - left="5" - name="fastpay text" - top="54" - width="95"> - Fast Pay: - </text> - <text - type="string" - length="1" - follows="left|top" - font="SansSerif" - height="18" - layout="topleft" - left="12" + left="25" name="amount text" - top="112" - width="75"> - Amount: + top_pad="8" + width="180"> + Or, choose amount: </text> <line_editor border_style="line" - border_thickness="1" follows="left|top|right" - font="SansSerif" - height="18" + height="19" + top_pad="0" layout="topleft" - left_delta="46" + left="120" max_length="9" name="amount" - top_delta="0" - width="57" /> + width="80" /> + <button + enabled="false" + height="23" + label="Pay" + label_selected="Pay" + layout="topleft" + left="10" + name="pay btn" + top_pad="5" + width="100" /> + <button + height="23" + label="Cancel" + label_selected="Cancel" + layout="topleft" + left_pad="5" + name="cancel btn" + width="100" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_pay_object.xml b/indra/newview/skins/default/xui/en/floater_pay_object.xml index bb91f709a34220805eb5a2d746b026dc1725d2cd..acff55386bd0a6c9a49d3bf06e61b98f33978fcb 100644 --- a/indra/newview/skins/default/xui/en/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/en/floater_pay_object.xml @@ -1,20 +1,20 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater can_minimize="false" - height="140" + height="220" layout="topleft" name="Give Money" + help_topic="give_money" save_rect="true" - width="300"> - <text + width="225"> + <text type="string" length="1" follows="left|top" - font="SansSerif" - halign="right" + font="SansSerifBold" height="18" layout="topleft" - left="5" + left="12" name="payee_group" top="7" width="75"> @@ -24,26 +24,34 @@ type="string" length="1" follows="left|top" - font="SansSerif" - halign="right" + font="SansSerifBold" height="18" layout="topleft" - left_delta="0" + left="12" name="payee_resident" - top_delta="0" + top="7" width="75"> Pay resident: </text> + <icon + height="16" + width="16" + image_name="Generic_Person" + mouse_opaque="true" + name="icon_person" + tool_tip="Person" + top_pad="0" + left="10" + /> <text type="string" length="1" follows="left|top" font="SansSerif" - height="18" + height="16" layout="topleft" - left_pad="5" + left_pad="7" name="payee_name" - top_delta="0" width="210"> [FIRST] [LAST] </text> @@ -51,16 +59,25 @@ type="string" length="1" follows="left|top" - font="SansSerif" - halign="right" - height="18" + halign="left" + height="16" layout="topleft" - left="5" + left="30" name="object_name_label" - top="32" - width="75"> + top_pad="0" + width="150"> Via object: </text> + <icon + height="16" + width="16" + image_name="Inv_Object" + mouse_opaque="true" + name="icon_object" + tool_tip="Objects" + top_pad="0" + left="30" + /> <text type="string" length="1" @@ -74,101 +91,78 @@ width="210"> ... </text> - <text - type="string" - length="1" - follows="left|top" - font="SansSerif" - halign="right" - height="18" - layout="topleft" - left="5" - name="fastpay text" - top="54" - width="75"> - Fast Pay: - </text> - <text - type="string" - length="1" - follows="left|top" - font="SansSerif" - halign="right" - height="18" - layout="topleft" - left_delta="0" - name="amount text" - top_pad="40" - width="75"> - Amount: - </text> - <button - height="20" + <button + height="23" label="L$1" label_selected="L$1" layout="topleft" - left="85" + left="25" name="fastpay 1" - top="54" + top_pad="8" width="80" /> <button - height="20" + height="23" label="L$5" label_selected="L$5" layout="topleft" - left_pad="5" + left_pad="15" name="fastpay 5" - top_delta="0" width="80" /> <button - height="20" + height="23" label="L$10" label_selected="L$10" layout="topleft" - left="85" + left="25" name="fastpay 10" - top="78" + top_pad="8" width="80" /> <button - height="20" + height="23" label="L$20" label_selected="L$20" layout="topleft" - left_pad="5" + left_pad="15" name="fastpay 20" - top_delta="0" + width="80" /> + <text + type="string" + length="1" + follows="left|top" + height="18" + layout="topleft" + left="25" + name="amount text" + top_pad="8" + width="180"> + Or, choose amount: + </text> + <line_editor + border_style="line" + follows="left|top|right" + height="19" + top_pad="0" + layout="topleft" + left="120" + max_length="9" + name="amount" width="80" /> <button enabled="false" - follows="right|bottom" - height="20" + height="23" label="Pay" label_selected="Pay" layout="topleft" - left="140" + left="10" name="pay btn" - top="112" - width="70" /> + top_pad="5" + width="100" /> <button - follows="right|bottom" - height="20" + height="23" label="Cancel" label_selected="Cancel" layout="topleft" left_pad="5" name="cancel btn" - top_delta="0" - width="70" /> - <line_editor - border_style="line" - border_thickness="1" - follows="left|top|right" - font="SansSerif" - height="18" - layout="topleft" - left_delta="-130" - max_length="9" - name="amount" - top_delta="0" - width="50" /> + width="100" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_perm_prefs.xml b/indra/newview/skins/default/xui/en/floater_perm_prefs.xml index e4cb97035c0d7e1455b678531d8338dc77c5d101..f65bb6f32f876c5c6dcaaed3afc454594f93358c 100644 --- a/indra/newview/skins/default/xui/en/floater_perm_prefs.xml +++ b/indra/newview/skins/default/xui/en/floater_perm_prefs.xml @@ -3,6 +3,7 @@ height="180" layout="topleft" name="perm prefs" + help_topic="perm_prefs" save_rect="true" title="Default Upload Permissions" width="315"> diff --git a/indra/newview/skins/default/xui/en/floater_post_process.xml b/indra/newview/skins/default/xui/en/floater_post_process.xml index 5a36ed5fd6c0b4b7378b057978728f7bd5126f99..aaf7aecd6bb93e12b3bb0a92b05084da7724cf2d 100644 --- a/indra/newview/skins/default/xui/en/floater_post_process.xml +++ b/indra/newview/skins/default/xui/en/floater_post_process.xml @@ -3,6 +3,7 @@ height="400" layout="topleft" name="Post-Process Floater" + help_topic="post_process_floater" title="Post-Process Settings" width="400"> <tab_container diff --git a/indra/newview/skins/default/xui/en/floater_postcard.xml b/indra/newview/skins/default/xui/en/floater_postcard.xml index 8657663057e2a6b2ca1dd2ba043b3c9ddc9ee46e..d93cad6dbd04e34970a4fc2585269232e7157de9 100644 --- a/indra/newview/skins/default/xui/en/floater_postcard.xml +++ b/indra/newview/skins/default/xui/en/floater_postcard.xml @@ -8,6 +8,7 @@ min_height="380" min_width="450" name="Postcard" + help_topic="postcard" title="Email Snapshot" width="450"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml index bacec627e1b84f9ca68e0c12cc108346e7c9336e..d655c268b202e695a8407693d23b3b19d6e9e301 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences.xml @@ -6,6 +6,7 @@ height="460" layout="topleft" name="Preferences" + help_topic="preferences" single_instance="true" title="Preferences" width="620"> diff --git a/indra/newview/skins/default/xui/en/floater_preview_animation.xml b/indra/newview/skins/default/xui/en/floater_preview_animation.xml index e9342b772f6fc6c4195796db92d67a9e239570e3..5756f9590eb9b98a66f96d84c76d8cfe399d0da0 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_animation.xml @@ -4,6 +4,7 @@ height="85" layout="topleft" name="preview_anim" + help_topic="preview_anim" width="280"> <floater.string name="Title"> diff --git a/indra/newview/skins/default/xui/en/floater_preview_classified.xml b/indra/newview/skins/default/xui/en/floater_preview_classified.xml index 6fac2823e844abfc59d9a89e066d23db4d29f6f5..07167c3ae449d7bcd2629458b4bb7faf7fe3694e 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_classified.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_classified.xml @@ -4,6 +4,7 @@ height="510" layout="topleft" name="classified_preview" + help_topic="classified_preview" save_rect="true" title="Classified Information" width="440"> diff --git a/indra/newview/skins/default/xui/en/floater_preview_event.xml b/indra/newview/skins/default/xui/en/floater_preview_event.xml index 58dd43075d324ae334c680ad77b6cb35afa801fd..77fbe7c060ef3f1d169498b4c82838e0ea06112a 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_event.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_event.xml @@ -4,6 +4,7 @@ height="510" layout="topleft" name="event_preview" + help_topic="event_preview" save_rect="true" title="Event Information" width="440"> diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml index 0f6504c8751949484f104cfe2c9266aa326a3b9e..a523f40bb821b1af80cf0dbc665f8ae00833c59e 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml @@ -1,9 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater auto_tile="true" - height="700" + height="800" layout="topleft" name="gesture_preview" + help_topic="gesture_preview" width="280"> <floater.string name="step_anim"> @@ -89,14 +90,14 @@ follows="all" name="group_accordion"> <accordion_tab - min_height="75" + min_height="90" title="Shortcuts" name="snapshot_destination_tab" an_resize="false"> <panel - class="floater_snapshot_destination" + class="floater_preview_shortcut" filename="floater_preview_gesture_shortcut.xml" - name="snapshot_destination_tab"/> + name="floater_preview_shortcut"/> </accordion_tab> <accordion_tab min_height="400" @@ -104,21 +105,21 @@ name="snapshot_file_settings_tab" can_resize="false"> <panel - class="floater_snapshot_file_settings" + class="floater_preview_steps" filename="floater_preview_gesture_steps.xml" - name="snapshot_file_settings_tab"/> + name="floater_preview_steps"/> </accordion_tab> <accordion_tab - min_height="100" + min_height="155" title="Info" name="snapshot_capture_tab" can_resize="false"> <panel - class="floater_snapshot_capture" - filename="floater_snapshot_Info.xml" - name="snapshot_capture_panel"/> + class="floater_preview_info" + filename="floater_preview_gesture_info.xml" + name="floater_preview_info"/> </accordion_tab> - <accordion_tab + <!--accordion_tab min_height="100" title="Permissions" name="snapshot_capture_tab2" @@ -127,7 +128,7 @@ class="floater_snapshot_capture" filename="floater_snapshot_Permissions.xml" name="snapshot_capture_panel2"/> - </accordion_tab> + </accordion_tab--> </accordion> <!--check_box follows="top|left" @@ -147,7 +148,7 @@ layout="topleft" left="20" name="preview_btn" - top_pad="-80" + top_pad="30" width="80" /> <button follows="top|left" diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture_info.xml index b4a7e8fefd6e8d3138096cfd82a8f0caac8b7ae9..43e4f8a3489d1a1b95d80e43aa6963c952c36bd7 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture_info.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture_info.xml @@ -5,35 +5,18 @@ height="155" layout="topleft" name="Gesture" + help_topic="gesture" save_rect="true" title="Gesture Shortcut" width="260"> - <scroll_list - follows="top|left" - height="110" - layout="topleft" - left="10" - name="step_list" - top_pad="10" - width="260" /> - <button - follows="top|left" - height="20" - font="SansSerifSmall" - label="Add" - layout="topleft" - left_pad="-100" - name="add_btn" - top_pad="5" - width="100" /> <scroll_list follows="top|left" height="110" layout="topleft" left="10" name="library_list" - top_pad="10" - width="260"> + top="10" + width="240"> <scroll_list.rows value="Animation" /> <scroll_list.rows @@ -43,7 +26,7 @@ <scroll_list.rows value="Wait" /> </scroll_list> - <button + <!--button follows="top|left" height="20" label="Preview" @@ -69,105 +52,5 @@ left_pad="5" name="save_btn" top_delta="0" - width="80" /> - <text - type="string" - length="1" - follows="top|left" - font="SansSerifSmall" - height="60" - layout="topleft" - left="10" - name="help_label" - top_pad="10" - width="200"> - All steps happen simultaneously, -unless you add wait steps. - </text> - <text - follows="top|left" - height="60" - layout="topleft" - left="10" - name="options_text" - top_pad="10" - width="205" /> - <combo_box - follows="top|left" - height="20" - layout="topleft" - left_delta="10" - name="animation_list" - top_pad="10" - width="100" /> - <combo_box - follows="top|left" - height="20" - layout="topleft" - left_delta="0" - name="sound_list" - top_delta="0" - width="100" /> - <line_editor - follows="top|left" - height="20" - layout="topleft" - left_delta="0" - max_length="127" - name="chat_editor" - top_delta="0" - width="100" /> - <radio_group - draw_border="false" - follows="top|left" - height="40" - layout="topleft" - left_pad="8" - name="animation_trigger_type" - top="445" - width="80"> - <radio_item - height="16" - label="Start" - layout="topleft" - left="3" - name="start" - top="-11" - width="80" /> - <radio_item - height="16" - label="Stop" - layout="topleft" - left_delta="0" - name="stop" - top_pad="10" - width="80" /> - </radio_group> - <check_box - follows="top|left" - height="20" - label="until animations are done" - layout="topleft" - left="16" - name="wait_anim_check" - top="430" - width="100" /> - <check_box - follows="top|left" - height="20" - label="time in seconds" - layout="topleft" - left_delta="0" - name="wait_time_check" - top_delta="20" - width="100" /> - <line_editor - follows="top|left" - height="20" - layout="topleft" - left_pad="5" - max_length="15" - name="wait_time_editor" - top_delta="0" - width="50" /> + width="80" /--> </floater> \ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture_shortcut.xml index 75fb24d640264da45d296ac1200d9d901399f884..606ae1a82a0ef20ba2e675669a17b503d5635821 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture_shortcut.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture_shortcut.xml @@ -2,9 +2,10 @@ <floater can_minimize="false" follows="left|top" - height="80" + height="90" layout="topleft" name="Gesture" + help_topic="gesture" save_rect="true" title="Gesture Shortcut" width="260"> @@ -47,7 +48,7 @@ height="20" label="None" layout="topleft" - left_pad="5" + left_pad="13" name="modifier_combo" top_delta="-4" width="50" /> diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture_steps.xml index f0e88b9dd4c0c98ea909a2c5cbdf37983e059be1..4b4f611b598f4cf464d457645dfdbe99c784d8dd 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture_steps.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture_steps.xml @@ -5,6 +5,7 @@ height="155" layout="topleft" name="Gesture" + help_topic="gesture" save_rect="true" title="Gesture Shortcut" width="260"> @@ -15,18 +16,110 @@ left="10" name="step_list" top_pad="10" - width="260" /> - <button + width="240" /> + <!--text + type="string" + length="1" follows="top|left" - height="20" font="SansSerifSmall" - label="Add" + height="60" + layout="topleft" + left="10" + name="help_label" + top_pad="10" + width="200"> + All steps happen simultaneously, +unless you add wait steps. + </text--> + <!--text + follows="top|left" + height="60" + layout="topleft" + left="10" + name="options_text" + top_pad="10" + width="205" /--> + <!--combo_box + follows="top|left" + height="20" + layout="topleft" + left_delta="10" + name="animation_list" + top_pad="10" + width="100" /> + <combo_box + follows="top|left" + height="20" layout="topleft" - left_pad="-100" - name="add_btn" - top_pad="5" + left_delta="0" + name="sound_list" + top_delta="10" width="100" /> - + <line_editor + follows="top|left" + height="20" + layout="topleft" + left_delta="0" + max_length="127" + name="chat_editor" + top_pad="10" + width="100" /> + <radio_group + draw_border="false" + follows="top|left" + height="40" + layout="topleft" + left_pad="8" + name="animation_trigger_type" + top_pad="10" + width="80"> + <radio_item + height="16" + label="Start" + layout="topleft" + left="3" + name="start" + top="-11" + width="80" /> + <radio_item + height="16" + label="Stop" + layout="topleft" + left_delta="0" + name="stop" + top_pad="10" + width="80" /> + </radio_group> + <check_box + follows="top|left" + height="20" + label="until animations are done" + layout="topleft" + left="16" + name="wait_anim_check" + top_pad="10" + width="100" /> + <check_box + follows="top|left" + height="20" + label="time in seconds" + layout="topleft" + left_delta="0" + name="wait_time_check" + top_pad="10" + width="100" /> + <line_editor + follows="top|left" + height="20" + layout="topleft" + left_pad="5" + max_length="15" + name="wait_time_editor" + top_pad="10" + width="50" /--> + + + <!--For pop out floater--> <!--scroll_list follows="top|left" diff --git a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml index 3e2045e1f7b718ca7df174e66ccff8fb5deb36fd..1d7b7adca2a597b6caf14a953502d460c9cfff22 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml @@ -9,6 +9,7 @@ min_height="243" min_width="234" name="preview notecard" + help_topic="preview_notecard" title="Note:" width="400"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_preview_sound.xml b/indra/newview/skins/default/xui/en/floater_preview_sound.xml index e341dd7b975adae13b5f08a175c4694ca92b35a0..4220655a6fcd9a237a9b001b2ef7ddb65a199317 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_sound.xml @@ -4,6 +4,7 @@ height="85" layout="topleft" name="preview_sound" + help_topic="preview_sound" width="280"> <floater.string name="Title"> diff --git a/indra/newview/skins/default/xui/en/floater_preview_texture.xml b/indra/newview/skins/default/xui/en/floater_preview_texture.xml index 7bac6fdb32d6e30bae8a6a5440c198d3ee53049e..a243cb399eef0795cdbbbac61a9950a5025b98e8 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_texture.xml @@ -8,6 +8,7 @@ min_height="120" min_width="300" name="preview_texture" + help_topic="preview_texture" width="300"> <floater.string name="Title"> diff --git a/indra/newview/skins/default/xui/en/floater_region_info.xml b/indra/newview/skins/default/xui/en/floater_region_info.xml index a890de3e282c04fe7bd9ab8ef33e4950efe7d1b3..e045b811f2ce99a922c6f7a09c70efaec26f1e4e 100644 --- a/indra/newview/skins/default/xui/en/floater_region_info.xml +++ b/indra/newview/skins/default/xui/en/floater_region_info.xml @@ -3,6 +3,7 @@ height="512" layout="topleft" name="regioninfo" + help_topic="regioninfo" save_rect="true" title="Region/Estate" width="280"> diff --git a/indra/newview/skins/default/xui/en/floater_report_abuse.xml b/indra/newview/skins/default/xui/en/floater_report_abuse.xml index 0da1e4298628a2bd7dd93777963eb15b288daed4..c7f5a1170f159a4fbf4859829a181b8cf776b520 100644 --- a/indra/newview/skins/default/xui/en/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/en/floater_report_abuse.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater - height="600" + height="580" layout="topleft" name="floater_report_abuse" + help_topic="floater_report_abuse" title="Report Abuse" - width="305"> + width="333"> <floater.string name="Screenshot"> Screenshot @@ -13,19 +14,19 @@ allow_no_texture="true" default_image_name="None" follows="left|top" - height="114" + height="125" layout="topleft" left="10" name="screenshot" - top="25" - width="134" /> + top="23" + width="160" /> <check_box - height="16" - label="Include screenshot" + height="15" + label="Use this screenshot" layout="topleft" - left_pad="10" + left_pad="5" name="screen_check" - top="110" + top="120" width="116" /> <text type="string" @@ -36,8 +37,8 @@ layout="topleft" left="10" name="reporter_title" - top_pad="12" - width="50"> + top="140" + width="60"> Reporter: </text> <text @@ -46,7 +47,7 @@ follows="left|top" height="16" layout="topleft" - left_pad="12" + left_pad="10" name="reporter_field" top_delta="0" width="193"> @@ -111,8 +112,8 @@ left="10" name="select_object_label" top_pad="5" - width="220"> - Click the button then the object: + width="310"> + Click the button, then the abusive object: </text> <button height="32" @@ -120,6 +121,7 @@ left_delta="0" name="pick_btn" picture_style="true" + image_overlay="Inv_Object" tool_tip="Object Picker - Identify an object as the subject of this report" top_pad="0" width="32" /> @@ -134,7 +136,7 @@ name="object_name_label" top_delta="0" width="60"> - Name: + Object: </text> <text type="string" @@ -157,7 +159,7 @@ layout="topleft" left="48" name="owner_name_label" - top_pad="5" + top_pad="0" width="60"> Owner: </text> @@ -172,15 +174,15 @@ top_delta="0" width="157"> Hendrerit Vulputate - </text> + </text> <combo_box - height="20" + height="23" layout="topleft" left="10" name="category_combo" tool_tip="Category -- select the category that best describes this report" - top_pad="10" - width="265"> + top_pad="5" + width="313"> <combo_box.item label="Select category" name="Select_category" @@ -347,23 +349,23 @@ layout="topleft" left_delta="0" name="abuser_name_title" - top_pad="12" - width="265"> + top_pad="6" + width="313"> Abuser name: </text> <line_editor border_style="line" border_thickness="1" follows="left|top" - height="20" + height="23" layout="topleft" left_delta="0" max_length="32" name="abuser_name_edit" top_pad="2" - width="170" /> + width="195" /> <button - height="20" + height="23" font="SansSerifSmall" label="Choose" layout="topleft" @@ -371,9 +373,9 @@ name="select_abuser" tool_tip="Select the name of the abuser from a list" top_delta="0" - width="90" /> - <check_box - height="20" + width="100" /> +<!-- <check_box + height="23" label="Don't know abuser's name" layout="topleft" left="10" @@ -381,7 +383,7 @@ tool_tip="Check this if you are unable to provide the abuser's name" top_pad="2" visible="false" - width="250" /> + width="250" />--> <text type="string" length="1" @@ -389,23 +391,23 @@ height="16" font.style="BOLD" layout="topleft" - left_delta="3" + left="10" name="abuser_name_title2" - top_pad="10" - width="265"> + top_pad="5" + width="313"> Location of Abuse: </text> <line_editor border_style="line" border_thickness="1" follows="left|top" - height="20" + height="23" layout="topleft" left="10" max_length="256" name="abuse_location_edit" top_pad="2" - width="265" /> + width="313" /> <text type="string" length="1" @@ -415,21 +417,21 @@ layout="topleft" left_delta="0" name="sum_title" - top_pad="10" - width="265"> + top_pad="5" + width="313"> Summary: </text> <line_editor border_style="line" border_thickness="1" follows="left|top" - height="20" + height="23" layout="topleft" left_delta="0" max_length="64" name="summary_edit" top_pad="2" - width="265" /> + width="313" /> <text type="string" length="1" @@ -439,7 +441,7 @@ layout="topleft" left_delta="0" name="dscr_title" - top_pad="10" + top_pad="5" width="50"> Details: </text> @@ -449,22 +451,20 @@ follows="left|top" height="16" layout="topleft" - left_pad="5" name="bug_aviso" - top_delta="0" + left_pad="0" width="200"> Please be as specific as possible. </text> <text_editor follows="left|top" - height="50" + height="75" layout="topleft" left="10" max_length="800" mouse_opaque="false" name="details_edit" - top_pad="2" - width="265" + width="313" word_wrap="true" /> <text type="string" @@ -472,32 +472,31 @@ follows="left|top" height="50" layout="topleft" - left_delta="0" + left="10" font.style="BOLD" name="incomplete_title" - top_pad="8" + top_pad="5" word_wrap="true" - width="265"> - Note: Incomplete reports will not be investigated. + width="313"> + Note: Incomplete reports won't be investigated. </text> - <button - bottom="590" - follows="right|bottom" - height="20" - label="Cancel" - label_selected="Cancel" - layout="topleft" - name="cancel_btn" - right="275" - width="130" /> - <button - bottom="590" - follows="right|bottom" - height="20" + <button + left="80" + follows="left|top" + height="23" + top="550" label="Report Abuse" label_selected="Report Abuse" layout="topleft" name="send_btn" - right="140" - width="130" /> + width="140" /> + <button + follows="left|top" + height="23" + label="Cancel" + label_selected="Cancel" + layout="topleft" + name="cancel_btn" + left_pad="5" + width="100" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_script_debug.xml b/indra/newview/skins/default/xui/en/floater_script_debug.xml index 2ae0afa1681bde6063e6a168e4ade9317d3b5a93..53d4925214266a50e122f1b5eed6b3356b12aae8 100644 --- a/indra/newview/skins/default/xui/en/floater_script_debug.xml +++ b/indra/newview/skins/default/xui/en/floater_script_debug.xml @@ -4,6 +4,7 @@ height="233" layout="topleft" name="script debug floater" + help_topic="script_debug_floater" save_rect="true" title="Script Warning/Error" width="450"> diff --git a/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml index 2dd7a1e777c7ee1a5618bfeaf292eb9d81f36de8..c8b8c34f85bb1dba513bcb7c5ab850c19b911b87 100644 --- a/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml +++ b/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml @@ -5,6 +5,7 @@ height="200" layout="topleft" name="script" + help_topic="script" short_title="[All scripts]" title="[All scripts]" width="440"> diff --git a/indra/newview/skins/default/xui/en/floater_script_preview.xml b/indra/newview/skins/default/xui/en/floater_script_preview.xml index ef6847846045eed9571a1970e3ad3800336fb774..54ab30124a0a59c2665301bfca429043083eae18 100644 --- a/indra/newview/skins/default/xui/en/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_script_preview.xml @@ -8,6 +8,7 @@ min_height="271" min_width="290" name="preview lsl text" + help_topic="preview_lsl_text" save_rect="true" title="Script: Rotation Script" top_delta="0" diff --git a/indra/newview/skins/default/xui/en/floater_script_queue.xml b/indra/newview/skins/default/xui/en/floater_script_queue.xml index ad91e8156b89ea4815a297c8bd36655f487704b9..467dcfae20a08ea065c22aa008194b5b00aff141 100644 --- a/indra/newview/skins/default/xui/en/floater_script_queue.xml +++ b/indra/newview/skins/default/xui/en/floater_script_queue.xml @@ -5,6 +5,7 @@ height="400" layout="topleft" name="queue" + help_topic="queue" save_rect="true" title="Reset Progress" width="300"> diff --git a/indra/newview/skins/default/xui/en/floater_script_search.xml b/indra/newview/skins/default/xui/en/floater_script_search.xml index bb0c60e75b93325e6c95d8c25658ef1a3e157d63..545abc39a25385547872a8fd48ef0168efc07ccb 100644 --- a/indra/newview/skins/default/xui/en/floater_script_search.xml +++ b/indra/newview/skins/default/xui/en/floater_script_search.xml @@ -4,6 +4,7 @@ height="120" layout="topleft" name="script search" + help_topic="script_search" title="Script Search" width="300"> <check_box diff --git a/indra/newview/skins/default/xui/en/floater_select_key.xml b/indra/newview/skins/default/xui/en/floater_select_key.xml index b89af0ef3e68bc0a0f50e90b73b2d28dcef92f5e..8e1317440e7c06cb365ddf1730642ea1d1309899 100644 --- a/indra/newview/skins/default/xui/en/floater_select_key.xml +++ b/indra/newview/skins/default/xui/en/floater_select_key.xml @@ -6,6 +6,7 @@ height="100" layout="topleft" name="modal container" + help_topic="modal_container" width="240"> <button height="20" diff --git a/indra/newview/skins/default/xui/en/floater_sell_land.xml b/indra/newview/skins/default/xui/en/floater_sell_land.xml index cf26b7ab478e713b9d9e0900be50090d131d71f5..f07b9d37678b229fc7df7c8682eb018a91b5754b 100644 --- a/indra/newview/skins/default/xui/en/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/en/floater_sell_land.xml @@ -1,26 +1,45 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater can_minimize="false" - height="600" + height="450" layout="topleft" name="sell land" + help_topic="sell_land" single_instance="true" title="Sell Land" - width="280"> + width="313"> + <scroll_container + color="DkGray2" + follows="left|top|right|bottom" + height="435" + min_height="300" + layout="topleft" + name="profile_scroll" + reserve_scroll_corner="true" + opaque="true" + top="15" + width="313"> + <panel + name="scroll_content_panel" + follows="left|top|right" + layout="topleft" + top="0" + left="0" + width="293" + height="615"> <texture_picker enabled="false" follows="top|left" height="135" layout="topleft" - left="50" + left="60" name="info_image" - right="230" top="20" width="180" /> <text type="string" length="1" - top="145" + top="150" follows="top|left" layout="topleft" left="16" @@ -31,9 +50,8 @@ <text type="string" length="1" - bottom_delta="5" + top_delta="0" follows="top|left" - font="SansSerif" height="16" layout="topleft" left="56" @@ -54,9 +72,8 @@ <text type="string" length="1" - bottom_delta="21" follows="top|left" - font="SansSerif" + top_delta="0" height="32" layout="topleft" left="56" @@ -74,7 +91,7 @@ left="16" name="info_action" text_color="white" - top="190" + top="195" width="200"> To sell this parcel: </text> @@ -85,7 +102,7 @@ layout="topleft" left="0" name="step_price" - top="211" + top="206" width="64" /> <text type="string" @@ -125,7 +142,7 @@ type="string" length="1" follows="top|left" - height="16" + height="18" layout="topleft" left_delta="20" name="price" @@ -169,17 +186,17 @@ type="string" length="1" follows="top|left" - height="16" + height="25" layout="topleft" left="72" + word_wrap="true" name="sell_to_text" right="-20"> - Choose whether to sell to anyone -or a particular buyer. + Choose whether to sell to anyone or a particular buyer. </text> <combo_box follows="top|right" - height="16" + height="18" layout="topleft" left_delta="0" name="sell_to" @@ -202,14 +219,14 @@ or a particular buyer. <line_editor enabled="false" follows="top|right" - height="16" + height="18" layout="topleft" left_delta="0" name="sell_to_agent" top_pad="4" width="130" /> <button - height="16" + height="20" font="SansSerifSmall" label="Select" layout="topleft" @@ -242,17 +259,16 @@ or a particular buyer. type="string" length="1" font="SansSerifSmall" - bottom_delta="20" follows="top|left" - height="16" + height="25" layout="topleft" + word_wrap="true" left="72" name="sell_objects_text"> - Land owner's transferable objects -on parcel will change ownership. + Land owner's transferable objects on parcel will change ownership. </text> <radio_group - top_pad="15" + top_pad="5" follows="top|right" height="40" layout="topleft" @@ -282,7 +298,7 @@ on parcel will change ownership. name="yes" /> </radio_group> <button - height="16" + height="20" font="SansSerifSmall" label="Show Objects" layout="topleft" @@ -323,4 +339,6 @@ on parcel will change ownership. name="cancel_btn" top_delta="0" width="90" /> + </panel> + </scroll_container> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_settings_debug.xml b/indra/newview/skins/default/xui/en/floater_settings_debug.xml index 4d4dc084bffa6fc939eec24a2848120ededed52f..e2f4a73ec8418c1d4b61785f9a53a655b0c23a44 100644 --- a/indra/newview/skins/default/xui/en/floater_settings_debug.xml +++ b/indra/newview/skins/default/xui/en/floater_settings_debug.xml @@ -4,6 +4,7 @@ height="215" layout="topleft" name="settings_debug" + help_topic="settings_debug" title="Debug Settings" width="350"> <combo_box diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml index 1d2978adb87013fb6eb65978602967a0f35b2377..bd1484c0fec68f052f8c9bba806b09b5d22e53f7 100644 --- a/indra/newview/skins/default/xui/en/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml @@ -5,6 +5,7 @@ height="526" layout="topleft" name="Snapshot" + help_topic="snapshot" save_rect="true" title="Snapshot Preview" width="215"> diff --git a/indra/newview/skins/default/xui/en/floater_sound_preview.xml b/indra/newview/skins/default/xui/en/floater_sound_preview.xml index 78540c0b986943994216e3c7db4bda83692c9eb0..3b1eae9293568a78ffffb95cb875a66f2761562a 100644 --- a/indra/newview/skins/default/xui/en/floater_sound_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_sound_preview.xml @@ -3,6 +3,7 @@ height="190" layout="topleft" name="Sound Preview" + help_topic="sound_preview" title="sound.wav" width="300"> <text diff --git a/indra/newview/skins/default/xui/en/floater_statistics.xml b/indra/newview/skins/default/xui/en/floater_statistics.xml index 1661fbffb0ffa1d333f996f48a276ef615c8402c..653bc942e59023361c5c1241c393eaca7697e4f7 100644 --- a/indra/newview/skins/default/xui/en/floater_statistics.xml +++ b/indra/newview/skins/default/xui/en/floater_statistics.xml @@ -6,5 +6,6 @@ layout="topleft" mouse_opaque="false" name="stats floater" + help_topic="stats_floater" title="Statistics" width="250" /> diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml index 4d7da97f7989f3f237e2aaff558275a5350e64ed..205e6efe700ae48c176a1c7e8ac7d4afd4e8eeab 100644 --- a/indra/newview/skins/default/xui/en/floater_stats.xml +++ b/indra/newview/skins/default/xui/en/floater_stats.xml @@ -5,6 +5,7 @@ height="400" layout="topleft" name="Statistics" + help_topic="statistics" save_rect="true" save_visibility="true" title="Statistics" diff --git a/indra/newview/skins/default/xui/en/floater_sys_well.xml b/indra/newview/skins/default/xui/en/floater_sys_well.xml index 76b2e5c81117d175125b40e8b1ef845e42457ef1..3f31641cac164922c65e237bb059e8663b826e6c 100644 --- a/indra/newview/skins/default/xui/en/floater_sys_well.xml +++ b/indra/newview/skins/default/xui/en/floater_sys_well.xml @@ -6,6 +6,7 @@ follows="right|bottom" layout="topleft" name="notification_chiclet" + help_topic="notification_chiclet" save_rect="true" title="NOTIFICATIONS" width="320" diff --git a/indra/newview/skins/default/xui/en/floater_telehub.xml b/indra/newview/skins/default/xui/en/floater_telehub.xml index ef9aef7f6f7038ca1156b93852cc16d7962a8435..b703b49b8b8763009bb9b2b4fd9f18deea76d62a 100644 --- a/indra/newview/skins/default/xui/en/floater_telehub.xml +++ b/indra/newview/skins/default/xui/en/floater_telehub.xml @@ -3,6 +3,7 @@ height="250" layout="topleft" name="telehub" + help_topic="telehub" title="Telehub" width="280"> <text diff --git a/indra/newview/skins/default/xui/en/floater_test_button.xml b/indra/newview/skins/default/xui/en/floater_test_button.xml index 0681eedbabba253d8c1ee0aee9169b78b867f463..ce17873a6763c1e24aab59bfed1ca958d557901d 100644 --- a/indra/newview/skins/default/xui/en/floater_test_button.xml +++ b/indra/newview/skins/default/xui/en/floater_test_button.xml @@ -4,9 +4,10 @@ height="500" layout="topleft" name="floater_test_button" + help_topic="floater_test_button" width="500"> <button - height="20" + height="23" label="Generic Button" layout="topleft" left="10" @@ -15,27 +16,27 @@ width="150" /> <button bottom_delta="30" - height="20" + height="23" label="Bottom delta" layout="topleft" name="bottom_delta_button" /> <button bottom_delta="30" font="SansSerifSmall" - height="20" + height="23" label="SansSerifSmall" layout="topleft" name="sans_serif_small_button" /> <button auto_resize="true" bottom_delta="30" - height="20" + height="23" label="Auto Resize" layout="topleft" name="auto_resize_button" /> <button bottom_delta="30" - height="20" + height="23" is_toggle="true" label="Click Change Label" label_selected="New Label" @@ -43,69 +44,69 @@ name="label_selected_button" /> <button bottom_delta="30" - height="20" + height="23" label="No Label Shadow" label_shadow="false" layout="topleft" name="label_shadow_button" /> <button bottom_delta="30" - height="20" - label="Red Label" - label_color="red" + height="23" + label="EmphasisColor Label" + label_color="EmphasisColor" layout="topleft" name="label_color_button" /> <button bottom_delta="30" - height="20" + height="23" is_toggle="true" - label="Red Label Selected" - label_color_selected="red" - label_selected="Red Label Selected" + label="Toggle" + label_color_selected="EmphasisColor" + label_selected="Toggle on" layout="topleft" name="label_color_selected_button" /> <button bottom_delta="30" enabled="false" - height="20" - label="Red Label Disabled" - label_color_disabled="red" - label_selected="Red Label Selected" + height="23" + label="Disabled" + label_color_disabled="EmphasisColor" + label_selected="Selected" layout="topleft" name="label_color_disabled_button" /> <button bottom_delta="30" - height="20" - highlight_color="red" - label="Red Highlight" + height="23" + highlight_color="EmphasisColor" + label="Highlight" layout="topleft" name="highlight_color_button" /> <button bottom_delta="30" - height="20" + height="23" hover_glow_amount="0" label="No Hover Glow" layout="topleft" name="hover_glow_amount_button" /> <button - height="30" - image_selected="object_cube_active.tga" - image_unselected="object_cube.tga" + height="16" + image_selected="Move_Run_Off" + image_unselected="Move_Run_Off" layout="topleft" left="200" name="image_button" picture_style="true" top="20" - width="30" /> + width="16" /> <button - height="30" - image_color="red" - image_selected="object_cube_active.tga" - image_unselected="object_cube.tga" + height="16" + image_color="EmphasisColor" + image_selected="Move_Run_Off" + image_unselected="Move_Run_Off" layout="topleft" left_delta="0" name="image_color_button" picture_style="true" top_pad="10" - width="30" /> + width="16" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_test_checkbox.xml b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml index 021474d7abe71bcd1fdecff4f04daca7105222c3..66a5b9267dfabe11aacbf265a79d34b942873861 100644 --- a/indra/newview/skins/default/xui/en/floater_test_checkbox.xml +++ b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml @@ -4,19 +4,20 @@ height="400" layout="topleft" name="floater_test_checkbox" + help_topic="floater_test_checkbox" width="400"> <check_box control_name="ShowStartLocation" - height="16" + height="15" initial_value="true" - label="Show Start Location on Login Screen" + label="Oh look it's a checkbox!" layout="topleft" left="10" name="show_location_checkbox" top="28" width="256" /> <check_box - height="16" + height="15" label="Minimal Checkbox" layout="topleft" left_delta="0" @@ -25,7 +26,7 @@ width="150" /> <check_box enabled="false" - height="16" + height="15" label="Disabled Checkbox" layout="topleft" left_delta="0" @@ -33,26 +34,26 @@ top_pad="14" width="150" /> <check_box - height="16" - label="Text Enabled Red" + height="15" + label="Text Enabled Color" layout="topleft" left_delta="0" name="text_enabled_color_checkbox" - text_enabled_color="red" + text_enabled_color="EmphasisColor" top_pad="14" width="150" /> <check_box enabled="false" - height="16" - label="Text Disabled Red" + height="15" + label="Text Disabled Color" layout="topleft" left_delta="0" name="text_disabled_color_checkbox" - text_disabled_color="red" + text_disabled_color="EmphasisColor_35" top_pad="14" width="150" /> <check_box - height="16" + height="15" initial_value="true" label="Initial Value Checked" layout="topleft" @@ -62,7 +63,7 @@ width="150" /> <check_box font="Monospace" - height="16" + height="15" label="Font Monospace" layout="topleft" left_delta="0" diff --git a/indra/newview/skins/default/xui/en/floater_test_combobox.xml b/indra/newview/skins/default/xui/en/floater_test_combobox.xml index 06422d6a26b01300c8a5c252db82421f0654770e..956d5669b8c3b6813cab275492ea3996dac56d0a 100644 --- a/indra/newview/skins/default/xui/en/floater_test_combobox.xml +++ b/indra/newview/skins/default/xui/en/floater_test_combobox.xml @@ -4,6 +4,7 @@ height="400" layout="topleft" name="floater_test_combobox" + help_topic="floater_test_combobox" width="400"> <text type="string" diff --git a/indra/newview/skins/default/xui/en/floater_test_inspectors.xml b/indra/newview/skins/default/xui/en/floater_test_inspectors.xml index b23bf49435c1456a16a532a969d9a34629139d37..a1a271d0eb74f97f938c2c5fafbd1b165d7e7000 100644 --- a/indra/newview/skins/default/xui/en/floater_test_inspectors.xml +++ b/indra/newview/skins/default/xui/en/floater_test_inspectors.xml @@ -4,6 +4,7 @@ height="400" layout="topleft" name="floater_test_inspectors" + help_topic="floater_test_inspectors" title="Test Inspectors" width="400"> <text diff --git a/indra/newview/skins/default/xui/en/floater_test_layout.xml b/indra/newview/skins/default/xui/en/floater_test_layout.xml index 344ad8447e7dbc9eaa745337c27971232dda0953..209859bb298a8da4d6ef9e07418c82715e09b376 100644 --- a/indra/newview/skins/default/xui/en/floater_test_layout.xml +++ b/indra/newview/skins/default/xui/en/floater_test_layout.xml @@ -4,6 +4,7 @@ height="500" layout="topleft" name="floater_test_layout" + help_topic="floater_test_layout" width="500"> <text type="string" diff --git a/indra/newview/skins/default/xui/en/floater_test_line_editor.xml b/indra/newview/skins/default/xui/en/floater_test_line_editor.xml index a17e3ea9495c518974645cf59a2d9b5833927e99..251ca4c9bf5894ef4bdcc2b2f419a58640b234d8 100644 --- a/indra/newview/skins/default/xui/en/floater_test_line_editor.xml +++ b/indra/newview/skins/default/xui/en/floater_test_line_editor.xml @@ -4,6 +4,7 @@ height="400" layout="topleft" name="floater_test_line_editor" + help_topic="floater_test_line_editor" width="400"> <line_editor height="20" diff --git a/indra/newview/skins/default/xui/en/floater_test_list_view.xml b/indra/newview/skins/default/xui/en/floater_test_list_view.xml index b63769922806145a94821f42c47f873c8928cf8f..98d6d5bda773b14a8736cec8ecc0420ba8c82b4d 100644 --- a/indra/newview/skins/default/xui/en/floater_test_list_view.xml +++ b/indra/newview/skins/default/xui/en/floater_test_list_view.xml @@ -4,6 +4,7 @@ height="400" layout="topleft" name="floater_test_list_view" + help_topic="floater_test_list_view" width="400"> <list_view height="300" diff --git a/indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml b/indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml index 21956c2eac940ad09e6cc7e0bb056edb7ecfc1f5..dd551b6d5146456ee4fde662e94e6b830dbe0f97 100644 --- a/indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml @@ -4,6 +4,7 @@ height="200" layout="topleft" name="floater_test_navigation_bar" + help_topic="floater_test_navigation_bar" width="900"> <panel name="navigation_bar" diff --git a/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml b/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml index ef3e1f598dac15ac193d5cb825bf026912be1140..35190c0e1abd6bcd9a71d6fc6d23f1e76704eda8 100644 --- a/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml +++ b/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml @@ -4,6 +4,7 @@ height="400" layout="topleft" name="floater_test_radiogroup" + help_topic="floater_test_radiogroup" width="400"> <radio_group height="54" diff --git a/indra/newview/skins/default/xui/en/floater_test_slider.xml b/indra/newview/skins/default/xui/en/floater_test_slider.xml index b1d468e2659301874855c508285fc17c3f6d8fb3..3545f88df7fd3d27938284521cae07435b1d6972 100644 --- a/indra/newview/skins/default/xui/en/floater_test_slider.xml +++ b/indra/newview/skins/default/xui/en/floater_test_slider.xml @@ -4,6 +4,7 @@ height="400" layout="topleft" name="floater_test_slider" + help_topic="floater_test_slider" width="450"> <slider height="20" diff --git a/indra/newview/skins/default/xui/en/floater_test_spinner.xml b/indra/newview/skins/default/xui/en/floater_test_spinner.xml index da88d825e400e3d6e16e897c29c4599bbdc6685b..c4e5bc9e99d79972efb6c3e3ad9d75584e918e84 100644 --- a/indra/newview/skins/default/xui/en/floater_test_spinner.xml +++ b/indra/newview/skins/default/xui/en/floater_test_spinner.xml @@ -4,19 +4,21 @@ height="400" layout="topleft" name="floater_test_spinner" + help_topic="floater_test_spinner" width="450"> <spinner - height="20" + height="32" label="Generic Spinner" layout="topleft" left="10" + label_width="100" name="generic_spinner" top="40" width="350" /> <spinner height="20" label="Callback Spinner" - label_width="80" + label_width="100" layout="topleft" left_delta="0" name="callback_spinner" diff --git a/indra/newview/skins/default/xui/en/floater_test_textbox.xml b/indra/newview/skins/default/xui/en/floater_test_textbox.xml index b4f3fc1e784c4e940a0ba821589e72efbed857eb..88c001b71447a44b91f86556fc88527293fbf1ea 100644 --- a/indra/newview/skins/default/xui/en/floater_test_textbox.xml +++ b/indra/newview/skins/default/xui/en/floater_test_textbox.xml @@ -4,6 +4,7 @@ height="400" layout="topleft" name="floater_test_textbox" + help_topic="floater_test_textbox" width="400"> <text type="string" diff --git a/indra/newview/skins/default/xui/en/floater_test_widgets.xml b/indra/newview/skins/default/xui/en/floater_test_widgets.xml index d773e1f2b819c1a54730cd1b62231a2f58a6b700..6ddaa63c1d2150503ce110b6d4f96c3a6a38a710 100644 --- a/indra/newview/skins/default/xui/en/floater_test_widgets.xml +++ b/indra/newview/skins/default/xui/en/floater_test_widgets.xml @@ -21,6 +21,7 @@ height="500" layout="topleft" name="floater_test_widgets" + help_topic="floater_test_widgets" width="850"> <!-- Strings are used by C++ code for localization. They are not visible diff --git a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml index dc048eb352cf7b2493e2781294554dbb818fa082..f2b701b88d33ad76ee4e5c3e82e35888a412e9d5 100644 --- a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml @@ -7,6 +7,7 @@ min_height="290" min_width="410" name="texture picker" + help_topic="texture_picker" title="Pick: Texture" width="410"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index e373da300c50b339e95a8c1ed740f8bba8b2086a..edbd28cd2d14b710943c36b830c7fbe52ec42e22 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -4,6 +4,7 @@ height="570" layout="topleft" name="toolbox floater" + help_topic="toolbox_floater" save_rect="true" short_title="Build Tools" single_instance="true" @@ -63,69 +64,69 @@ </floater.string> <button follows="left|top" - height="32" - image_disabled="tool_zoom.tga" + height="20" + image_disabled="Tool_Zoom" image_disabled_selected="tool_zoom_active.tga" image_selected="tool_zoom_active.tga" - image_unselected="tool_zoom.tga" + image_unselected="Tool_Zoom" layout="topleft" left="10" name="button focus" picture_style="true" tool_tip="Focus" - width="32" /> + width="20" /> <button follows="left|top" - height="32" - image_disabled="tool_grab.tga" + height="20" + image_disabled="Tool_Grab" image_disabled_selected="tool_grab_active.tga" image_selected="tool_grab_active.tga" - image_unselected="tool_grab.tga" + image_unselected="Tool_Grab" layout="topleft" left_pad="8" name="button move" picture_style="true" tool_tip="Move" - width="32" /> + width="20" /> <button follows="left|top" - height="32" - image_disabled="tool_face.tga" + height="20" + image_disabled="Tool_Face" image_disabled_selected="tool_face_active.tga" image_selected="tool_face_active.tga" - image_unselected="tool_face.tga" + image_unselected="Tool_Face" layout="topleft" left_pad="8" name="button edit" picture_style="true" tool_tip="Edit" - width="32" /> + width="20" /> <button follows="left|top" - height="32" - image_disabled="tool_create.tga" + height="20" + image_disabled="Tool_Create" image_disabled_selected="tool_create_active.tga" image_selected="tool_create_active.tga" - image_unselected="tool_create.tga" + image_unselected="Tool_Create" layout="topleft" left_pad="8" name="button create" picture_style="true" tool_tip="Create" - width="32" /> + width="20" /> <button follows="left|top" - height="32" - image_disabled="tool_dozer.tga" + height="20" + image_disabled="Tool_Dozer" image_disabled_selected="tool_dozer_active.tga" image_selected="tool_dozer_active.tga" - image_unselected="tool_dozer.tga" + image_unselected="Tool_Dozer" layout="topleft" left_pad="8" name="button land" picture_style="true" tool_tip="Land" - width="32" /> + width="20" /> <text type="string" text_color="LabelSelectedDisabledColor" @@ -288,214 +289,214 @@ height="22" /> <button follows="left|top" - height="24" - image_disabled="object_cube.tga" + height="20" + image_disabled="Object_Cube" image_disabled_selected="object_cube_active.tga" image_selected="object_cube_active.tga" - image_unselected="object_cube.tga" + image_unselected="Object_Cube" layout="topleft" left="4" name="ToolCube" picture_style="true" tool_tip="Cube" top="51" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_prism.tga" + height="20" + image_disabled="Object_Prism" image_disabled_selected="object_prism_active.tga" image_selected="object_prism_active.tga" - image_unselected="object_prism.tga" + image_unselected="Object_Prism" layout="topleft" - left_delta="23" + left_delta="26" name="ToolPrism" picture_style="true" tool_tip="Prism" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_pyramid.tga" + height="20" + image_disabled="Object_Pyramid" image_disabled_selected="object_pyramid_active.tga" image_selected="object_pyramid_active.tga" - image_unselected="object_pyramid.tga" + image_unselected="Object_Pyramid" layout="topleft" - left_delta="23" + left_delta="26" name="ToolPyramid" picture_style="true" tool_tip="Pyramid" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_tetrahedron.tga" + height="20" + image_disabled="Object_Tetrahedron" image_disabled_selected="object_tetrahedron_active.tga" image_selected="object_tetrahedron_active.tga" - image_unselected="object_tetrahedron.tga" + image_unselected="Object_Tetrahedron" layout="topleft" - left_delta="23" + left_delta="26" name="ToolTetrahedron" picture_style="true" tool_tip="Tetrahedron" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_cylinder.tga" + height="20" + image_disabled="Object_Cylinder" image_disabled_selected="object_cylinder_active.tga" image_selected="object_cylinder_active.tga" - image_unselected="object_cylinder.tga" + image_unselected="Object_Cylinder" layout="topleft" - left_delta="23" + left_delta="26" name="ToolCylinder" picture_style="true" tool_tip="Cylinder" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_hemi_cylinder.tga" + height="20" + image_disabled="Object_Hemi_Cylinder" image_disabled_selected="object_hemi_cylinder_active.tga" image_selected="object_hemi_cylinder_active.tga" - image_unselected="object_hemi_cylinder.tga" + image_unselected="Object_Hemi_Cylinder" layout="topleft" - left_delta="23" + left_delta="26" name="ToolHemiCylinder" picture_style="true" tool_tip="Hemicylinder" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_cone.tga" + height="20" + image_disabled="Object_Cone" image_disabled_selected="object_cone_active.tga" image_selected="object_cone_active.tga" - image_unselected="object_cone.tga" + image_unselected="Object_Cone" layout="topleft" - left_delta="23" + left_delta="26" name="ToolCone" picture_style="true" tool_tip="Cone" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_hemi_cone.tga" + height="20" + image_disabled="Object_Hemi_Cone" image_disabled_selected="object_hemi_cone_active.tga" image_selected="object_hemi_cone_active.tga" - image_unselected="object_hemi_cone.tga" + image_unselected="Object_Hemi_Cone" layout="topleft" - left_delta="23" + left_delta="26" name="ToolHemiCone" picture_style="true" tool_tip="Hemicone" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_sphere.tga" + height="20" + image_disabled="Object_Sphere" image_disabled_selected="object_sphere_active.tga" image_selected="object_sphere_active.tga" - image_unselected="object_sphere.tga" + image_unselected="Object_Sphere" layout="topleft" - left_delta="23" + left_delta="26" name="ToolSphere" picture_style="true" tool_tip="Sphere" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_hemi_sphere.tga" + height="20" + image_disabled="Object_Hemi_Sphere" image_disabled_selected="object_hemi_sphere_active.tga" image_selected="object_hemi_sphere_active.tga" - image_unselected="object_hemi_sphere.tga" + image_unselected="Object_Hemi_Sphere" layout="topleft" - left_delta="23" + left_delta="26" name="ToolHemiSphere" picture_style="true" tool_tip="Hemisphere" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_torus.tga" + height="20" + image_disabled="Object_Torus" image_disabled_selected="object_torus_active.tga" image_selected="object_torus_active.tga" - image_unselected="object_torus.tga" + image_unselected="Object_Torus" layout="topleft" left="4" name="ToolTorus" picture_style="true" tool_tip="Torus" - top="74" - width="24" /> + top="77" + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_tube.tga" + height="20" + image_disabled="Object_Tube" image_disabled_selected="object_tube_active.tga" image_selected="object_tube_active.tga" - image_unselected="object_tube.tga" + image_unselected="Object_Tube" layout="topleft" - left_delta="23" + left_delta="26" name="ToolTube" picture_style="true" tool_tip="Tube" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_ring.tga" + height="20" + image_disabled="Object_Ring" image_disabled_selected="object_ring_active.tga" image_selected="object_ring_active.tga" - image_unselected="object_ring.tga" + image_unselected="Object_Ring" layout="topleft" - left_delta="23" + left_delta="26" name="ToolRing" picture_style="true" tool_tip="Ring" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_tree.tga" + height="20" + image_disabled="Object_Tree" image_disabled_selected="object_tree_active.tga" image_selected="object_tree_active.tga" - image_unselected="object_tree.tga" + image_unselected="Object_Tree" layout="topleft" - left_delta="23" + left_delta="26" name="ToolTree" picture_style="true" tool_tip="Tree" top_delta="0" - width="24" /> + width="20" /> <button follows="left|top" - height="24" - image_disabled="object_grass.tga" + height="20" + image_disabled="Object_Grass" image_disabled_selected="object_grass_active.tga" image_selected="object_grass_active.tga" - image_unselected="object_grass.tga" + image_unselected="Object_Grass" layout="topleft" - left_delta="23" + left_delta="26" name="ToolGrass" picture_style="true" tool_tip="Grass" top_delta="0" - width="24" /> + width="20" /> <check_box control_name="CreateToolKeepSelected" height="19" @@ -2123,29 +2124,50 @@ name="colorswatch" tool_tip="Click to open Color Picker" width="40" /> - <spinner + <texture_picker + allow_no_texture="true" + top_delta="0" + can_apply_immediately="true" + default_image_name="Default" + follows="left|top" + height="48" + label="" + left_delta="57" + mouse_opaque="true" + name="light texture control" + tool_tip="Click to choose a projection image (only has effect with deferred rendering enabled)" + width="32" /> + <spinner follows="left|top" height="19" initial_value="0.5" label="Intensity" label_width="70" layout="topleft" - left_pad="15" + left="10" name="Light Intensity" - top_pad="-50" + top_pad="3" width="128" /> - <spinner + <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" + increment="0.1" initial_val="0.5" label="FOV" label_width="55" + left="144" max_val="3" min_val="0" mouse_opaque="true" + name="Light FOV" width="120" /> + <spinner follows="left|top" height="19" initial_value="5" label="Radius" label_width="70" layout="topleft" - left_delta="0" + left="10" max_val="20" name="Light Radius" top_pad="3" width="128" /> + <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" + increment="0.5" initial_val="0.5" label="Focus" label_width="55" + left="144" max_val="20" min_val="-20" mouse_opaque="true" + name="Light Focus" width="120" /> <spinner follows="left|top" height="19" @@ -2154,13 +2176,17 @@ label="Falloff" label_width="70" layout="topleft" - left_delta="0" + left="10" max_val="2" name="Light Falloff" top_pad="3" width="128" /> + <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" + increment="0.05" initial_val="1" label="Ambiance" label_width="55" + left="144" max_val="1" min_val="0" mouse_opaque="true" + name="Light Ambiance" width="120" /> </panel> - <panel + <panel border="false" follows="left|top|right|bottom" height="367" diff --git a/indra/newview/skins/default/xui/en/floater_top_objects.xml b/indra/newview/skins/default/xui/en/floater_top_objects.xml index ecd64d08e69254a6341e734c88a7517d1f1fc24c..07ffc204f97856e725ee6d13c52c13c4d297bc8a 100644 --- a/indra/newview/skins/default/xui/en/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/en/floater_top_objects.xml @@ -6,6 +6,7 @@ min_height="300" min_width="450" name="top_objects" + help_topic="top_objects" title="loading..." width="550"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_tos.xml b/indra/newview/skins/default/xui/en/floater_tos.xml index 54facbb659153afa7a19f4d172496feecad9cdba..b290a9c87d50f126fded2423a6f4aa0de84fd9e6 100644 --- a/indra/newview/skins/default/xui/en/floater_tos.xml +++ b/indra/newview/skins/default/xui/en/floater_tos.xml @@ -5,6 +5,7 @@ height="500" layout="topleft" name="modal container" + help_topic="modal_container" width="600"> <floater.string name="real_url"> diff --git a/indra/newview/skins/default/xui/en/floater_ui_preview.xml b/indra/newview/skins/default/xui/en/floater_ui_preview.xml index bbb17dfb8fb1cf125c97dcb2994416641106ae26..2c14b3d87a3c52c570b47870a56a51e47f6991f8 100644 --- a/indra/newview/skins/default/xui/en/floater_ui_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_ui_preview.xml @@ -6,6 +6,7 @@ min_height="230" min_width="650" name="gui_preview_tool" + help_topic="gui_preview_tool" single_instance="true" title="XUI Preview Tool" width="750"> diff --git a/indra/newview/skins/default/xui/en/floater_url_entry.xml b/indra/newview/skins/default/xui/en/floater_url_entry.xml index cf59d44d016514f4f464ebbaf4a872c219c3415d..6c1fb65bddd46255cb8fa215ed0f559a7dc71ad8 100644 --- a/indra/newview/skins/default/xui/en/floater_url_entry.xml +++ b/indra/newview/skins/default/xui/en/floater_url_entry.xml @@ -4,6 +4,7 @@ height="87" layout="topleft" name="url_entry" + help_topic="url_entry" width="280"> <text type="string" diff --git a/indra/newview/skins/default/xui/en/floater_water.xml b/indra/newview/skins/default/xui/en/floater_water.xml index 07ebf734ea2feb5c0a644e80947c237d2e8afd1c..febfd1929e9ef3de12898342680f45b69201c8e4 100644 --- a/indra/newview/skins/default/xui/en/floater_water.xml +++ b/indra/newview/skins/default/xui/en/floater_water.xml @@ -3,6 +3,7 @@ height="240" layout="topleft" name="Water Floater" + help_topic="water_floater" save_rect="true" title="Advanced Water Editor" width="700"> diff --git a/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml index ee67989d332d3d3eac34373aaa2142ceb5876d76..e698dfe2dcde225203587a069390503aac2668b9 100644 --- a/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml +++ b/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml @@ -6,6 +6,7 @@ height="100" layout="topleft" name="modal container" + help_topic="modal_container" width="240"> <button height="20" diff --git a/indra/newview/skins/default/xui/en/floater_windlight_options.xml b/indra/newview/skins/default/xui/en/floater_windlight_options.xml index 5257cc687e0987348084814f7dab363611ccf522..872bd704d5419e805ba0d29a03158971d0993065 100644 --- a/indra/newview/skins/default/xui/en/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/en/floater_windlight_options.xml @@ -3,6 +3,7 @@ height="220" layout="topleft" name="WindLight floater" + help_topic="windlight_floater" save_rect="true" title="Advanced Sky Editor" width="700"> diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml index e46588dd711c3a18a43786465e1c027a377c9431..bd76b103129232778ea40ab48200039c43a0ed49 100644 --- a/indra/newview/skins/default/xui/en/floater_world_map.xml +++ b/indra/newview/skins/default/xui/en/floater_world_map.xml @@ -8,6 +8,7 @@ min_height="520" min_width="520" name="worldmap" + help_topic="worldmap" save_rect="true" save_visibility="true" single_instance="true" diff --git a/indra/newview/skins/default/xui/en/inspect_avatar.xml b/indra/newview/skins/default/xui/en/inspect_avatar.xml index f908e9d610b7f2a9d51f175135c56ed378c60a35..2042ffedbc04930ef0ea368662d38d4b712f19e9 100644 --- a/indra/newview/skins/default/xui/en/inspect_avatar.xml +++ b/indra/newview/skins/default/xui/en/inspect_avatar.xml @@ -13,6 +13,7 @@ can_close="false" can_minimize="false" name="inspect_avatar" + help_topic="inspect_avatar" single_instance="true" sound_flags="0" title="" @@ -94,7 +95,7 @@ Profile: [SL_PROFILE] bottom="10" left="230" width="60" height="20" follows="top|left" name="gear_btn" label="" - image_overlay="gear.tga" + image_overlay="Icon_Gear_Foreground" image_overlay_alignment="center" scale_image="true" /> diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml index 7762a7f667997d98388d3b403b0c49aa152cf6d4..72cbd3bcd5aff6caeb1a5cf3ff74a2fa58c65e68 100644 --- a/indra/newview/skins/default/xui/en/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory.xml @@ -457,6 +457,14 @@ function="Inventory.DoToSelected" parameter="replaceoutfit" /> </menu_item_call> + <menu_item_call + label="Wear As Ensemble" + layout="topleft" + name="Wear As Ensemble"> + <menu_item_call.on_click + function="Inventory.DoToSelected" + parameter="wearasensemble" /> + </menu_item_call> <menu_item_separator layout="topleft" /> <menu_item_call diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index 8a2955654e6cafa2935421219b50db169c3ffc32..7a0a78bb50ffc3e2a9cac93a30da9d6d24c4a9b6 100644 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -9,11 +9,22 @@ width="802"> <menu create_jump_keys="true" - label="File" + label="Me" layout="topleft" name="File"> <menu_item_call - label="Quit" + label="Preferences" + layout="topleft" + name="Preferences..." + shortcut="control|P"> + <menu_item_call.on_click + function="ShowFloater" + parameter="preferences" /> + </menu_item_call> + <menu_item_separator + layout="topleft" /> + <menu_item_call + label="Quit [APP_NAME]" layout="topleft" name="Quit" shortcut="control|Q"> @@ -21,22 +32,15 @@ function="File.Quit" /> </menu_item_call> </menu> +<!-- Edit menu merged into the Me menu above <menu create_jump_keys="true" label="Edit" layout="topleft" name="Edit" width="153"> - <menu_item_call - label="Preferences..." - layout="topleft" - name="Preferences..." - shortcut="control|P"> - <menu_item_call.on_click - function="ShowFloater" - parameter="preferences" /> - </menu_item_call> </menu> +--> <menu create_jump_keys="true" label="Help" @@ -51,6 +55,8 @@ function="ShowFloater" parameter="help f1" /> </menu_item_call> + <menu_item_separator + layout="topleft" /> <menu_item_call label="About [APP_NAME]" layout="topleft" @@ -64,9 +70,115 @@ create_jump_keys="true" label="Debug" layout="topleft" - name="Debug"> + name="Debug" + tear_off="true"> + <!-- Need a copy of the edit menu here so keyboard shortcuts like + control-C work to copy text at login screen and About dialog (for QA) + --> + <menu + create_jump_keys="true" + label="Edit" + layout="topleft" + name="Edit" + tear_off="true"> + <menu_item_call + label="Undo" + layout="topleft" + name="Undo" + shortcut="control|Z"> + <menu_item_call.on_click + function="Edit.Undo" /> + <menu_item_call.on_enable + function="Edit.EnableUndo" /> + </menu_item_call> + <menu_item_call + label="Redo" + layout="topleft" + name="Redo" + shortcut="control|Y"> + <menu_item_call.on_click + function="Edit.Redo" /> + <menu_item_call.on_enable + function="Edit.EnableRedo" /> + </menu_item_call> + <menu_item_separator + layout="topleft" /> <menu_item_call - label="Debug Settings" + label="Cut" + layout="topleft" + name="Cut" + shortcut="control|X"> + <menu_item_call.on_click + function="Edit.Cut" /> + <menu_item_call.on_enable + function="Edit.EnableCut" /> + </menu_item_call> + <menu_item_call + label="Copy" + layout="topleft" + name="Copy" + shortcut="control|C"> + <menu_item_call.on_click + function="Edit.Copy" /> + <menu_item_call.on_enable + function="Edit.EnableCopy" /> + </menu_item_call> + <menu_item_call + label="Paste" + layout="topleft" + name="Paste" + shortcut="control|V"> + <menu_item_call.on_click + function="Edit.Paste" /> + <menu_item_call.on_enable + function="Edit.EnablePaste" /> + </menu_item_call> + <menu_item_call + label="Delete" + layout="topleft" + name="Delete" + shortcut="Del"> + <menu_item_call.on_click + function="Edit.Delete" /> + <menu_item_call.on_enable + function="Edit.EnableDelete" /> + </menu_item_call> + <menu_item_call + label="Duplicate" + layout="topleft" + name="Duplicate" + shortcut="control|D"> + <menu_item_call.on_click + function="Edit.Duplicate" /> + <menu_item_call.on_enable + function="Edit.EnableDuplicate" /> + </menu_item_call> + <menu_item_separator + layout="topleft" /> + <menu_item_call + label="Select All" + layout="topleft" + name="Select All" + shortcut="control|A"> + <menu_item_call.on_click + function="Edit.SelectAll" /> + <menu_item_call.on_enable + function="Edit.EnableSelectAll" /> + </menu_item_call> + <menu_item_call + label="Deselect" + layout="topleft" + name="Deselect" + shortcut="control|E"> + <menu_item_call.on_click + function="Edit.Deselect" /> + <menu_item_call.on_enable + function="Edit.EnableDeselect" /> + </menu_item_call> + </menu> + <menu_item_separator /> + <menu_item_call + label="Debug Settings editor" layout="topleft" name="Debug Settings"> <menu_item_call.on_click @@ -83,7 +195,7 @@ </menu_item_call> <menu_item_separator /> <menu_item_call - label="UI Preview Tool" + label="XUI Preview Tool" layout="topleft" name="UI Preview Tool" shortcut="control|T"> diff --git a/indra/newview/skins/default/xui/en/menu_url_agent.xml b/indra/newview/skins/default/xui/en/menu_url_agent.xml index 463a9fccb6581280e85f398d16cc119aefbf1b9c..885ebbcd52a317980f513c969a5b14c82c079a48 100644 --- a/indra/newview/skins/default/xui/en/menu_url_agent.xml +++ b/indra/newview/skins/default/xui/en/menu_url_agent.xml @@ -19,7 +19,7 @@ function="Url.CopyLabel" /> </menu_item_call> <menu_item_call - label="Copy SLURL To Clipboard" + label="Copy SLurl To Clipboard" layout="topleft" name="url_copy"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_url_group.xml b/indra/newview/skins/default/xui/en/menu_url_group.xml index cec0aa421e4ea93f7e481185dd8270695a454db6..68da7a0ced5a61a6f50edb5285b3715f21c50874 100644 --- a/indra/newview/skins/default/xui/en/menu_url_group.xml +++ b/indra/newview/skins/default/xui/en/menu_url_group.xml @@ -19,7 +19,7 @@ function="Url.CopyLabel" /> </menu_item_call> <menu_item_call - label="Copy SLURL To Clipboard" + label="Copy SLurl To Clipboard" layout="topleft" name="url_copy"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_url_objectim.xml b/indra/newview/skins/default/xui/en/menu_url_objectim.xml index 7d09403b15818518d89eef0e470e3dfe3bfb1ff2..d7106da1779e4208a8f9412b7637cf8d90b1161d 100644 --- a/indra/newview/skins/default/xui/en/menu_url_objectim.xml +++ b/indra/newview/skins/default/xui/en/menu_url_objectim.xml @@ -28,7 +28,7 @@ function="Url.CopyLabel" /> </menu_item_call> <menu_item_call - label="Copy SLURL To Clipboard" + label="Copy SLurl To Clipboard" layout="topleft" name="url_copy"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_url_parcel.xml b/indra/newview/skins/default/xui/en/menu_url_parcel.xml index bbd63c6d8c090deef7ca1cb4f777179cb963979a..cbeb1f8e51c9a29ce88a0c7521819f8f080cd1be 100644 --- a/indra/newview/skins/default/xui/en/menu_url_parcel.xml +++ b/indra/newview/skins/default/xui/en/menu_url_parcel.xml @@ -12,7 +12,7 @@ <menu_item_separator layout="topleft" /> <menu_item_call - label="Copy SLURL To Clipboard" + label="Copy SLurl To Clipboard" layout="topleft" name="url_copy"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_url_slapp.xml b/indra/newview/skins/default/xui/en/menu_url_slapp.xml index 19df721b2bac631d120cfed4defc2ec5fdef7b15..3eeef0f47e4e9c18d84da6eb9b1498300672782a 100644 --- a/indra/newview/skins/default/xui/en/menu_url_slapp.xml +++ b/indra/newview/skins/default/xui/en/menu_url_slapp.xml @@ -12,7 +12,7 @@ <menu_item_separator layout="topleft" /> <menu_item_call - label="Copy SLURL To Clipboard" + label="Copy SLurl To Clipboard" layout="topleft" name="url_copy"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_url_slurl.xml b/indra/newview/skins/default/xui/en/menu_url_slurl.xml index 0e9525fa4b6f7847c38eaa01a3c3a5c80dd0dad8..933f8a44844092ba447e49e0c5bb794325988f8a 100644 --- a/indra/newview/skins/default/xui/en/menu_url_slurl.xml +++ b/indra/newview/skins/default/xui/en/menu_url_slurl.xml @@ -21,7 +21,7 @@ <menu_item_separator layout="topleft" /> <menu_item_call - label="Copy SLURL To Clipboard" + label="Copy SLurl To Clipboard" layout="topleft" name="url_copy"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_url_teleport.xml b/indra/newview/skins/default/xui/en/menu_url_teleport.xml index 22cc035e49d6a305f56e36b36400c9a22070c761..62c7a2f5a9eaa86fcca6d0af3cc3db2788db194d 100644 --- a/indra/newview/skins/default/xui/en/menu_url_teleport.xml +++ b/indra/newview/skins/default/xui/en/menu_url_teleport.xml @@ -12,7 +12,7 @@ <menu_item_separator layout="topleft" /> <menu_item_call - label="Copy SLURL To Clipboard" + label="Copy SLurl To Clipboard" layout="topleft" name="url_copy"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 9306f83ddedb2e48013cd3ad951ec23042340d40..b430de2b7b0b2b93256b2071f8c8f594a78e0ab8 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1848,28 +1848,7 @@ <menu_item_call.on_click function="Advanced.ClearGroupCache" parameter="ClearGroupCache" /> - </menu_item_call> - <menu_item_check - label="Enable Lip Sync(Beta)" - layout="topleft" - name="Enable Lip Sync(Beta)"> - <menu_item_check.on_check - function="CheckControl" - parameter="LipSyncEnabled" /> - <menu_item_check.on_click - function="ToggleControl" - parameter="LipSyncEnabled" /> - </menu_item_check> - <menu_item_check - label="Tap-Tap-Hold to Run" - layout="topleft" - name="Tap-Tap-Hold to Run"> - <menu_item_check.on_check - function="Advanced.CheckAllowTapTapHoldRun" - parameter="TapTapHoldRun" /> - <menu_item_check.on_click - function="Advanced.ToggleAllowTapTapHoldRun" /> - </menu_item_check> + </menu_item_call> <menu_item_check label="Mouse Smoothing" layout="topleft" @@ -1884,7 +1863,7 @@ <menu_item_separator layout="topleft" /> <menu_item_call - label="Debug Settings" + label="Debug Settings editor" layout="topleft" name="Debug Settings"> <menu_item_call.on_click @@ -1892,7 +1871,7 @@ parameter="all" /> </menu_item_call> <menu_item_check - label="Debug (QA) Mode" + label="Activate Debug Mode (QA)" layout="topleft" name="Debug Mode" shortcut="control|alt|Q"> @@ -2006,7 +1985,73 @@ </menu> <menu create_jump_keys="true" - label="Debugging" + label="Show Info" + layout="topleft" + name="Display Info" + tear_off="true"> + <menu_item_check + label="Show Time" + layout="topleft" + name="Show Time"> + <menu_item_check.on_check + function="CheckControl" + parameter="DebugShowTime" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="DebugShowTime" /> + </menu_item_check> + <menu_item_check + label="Show Render Info" + layout="topleft" + name="Show Render Info"> + <menu_item_check.on_check + function="CheckControl" + parameter="DebugShowRenderInfo" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="DebugShowRenderInfo" /> + </menu_item_check> + <menu_item_check + label="Show Matrices" + layout="topleft" + name="Show Matrices"> + <menu_item_check.on_check + function="CheckControl" + parameter="DebugShowRenderMatrices" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="DebugShowRenderMatrices" /> + </menu_item_check> + <menu_item_check + label="Show Color Under Cursor" + layout="topleft" + name="Show Color Under Cursor"> + <menu_item_check.on_check + function="CheckControl" + parameter="DebugShowColor" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="DebugShowColor" /> + </menu_item_check> + <menu_item_separator + layout="topleft" /> + <menu_item_check + label="Show Updates to objects" + layout="topleft" + name="Show Updates" + shortcut="control|alt|shift|U"> + <menu_item_check.on_check + function="Advanced.CheckShowObjectUpdates" + parameter="ObjectUpdates" /> + <menu_item_check.on_click + function="Advanced.ToggleShowObjectUpdates" /> + </menu_item_check> + </menu> + <menu_item_separator + layout="topleft" /> + <menu + create_jump_keys="true" + label="Force an Error" layout="topleft" name="Force Errors" tear_off="true"> @@ -2060,38 +2105,15 @@ <menu_item_call.on_click function="Advanced.ForceErrorDisconnectViewer" /> </menu_item_call> - </menu> - <menu_item_separator - layout="topleft" /> - <menu_item_check - label="Output Debug Minidump" - layout="topleft" - name="Output Debug Minidump"> - <menu_item_check.on_check - function="CheckControl" - parameter="SaveMinidump" /> - <menu_item_check.on_click - function="ToggleControl" - parameter="SaveMinidump" /> - </menu_item_check> - <menu_item_call - label="Memory Leaking Simulation" - layout="topleft" - name="Memory Leaking Simulation"> - <menu_item_call.on_click - function="Floater.Show" - parameter="mem_leaking" /> - </menu_item_call> - <menu_item_call - label="Bumps, Pushes & Hits..." + <menu_item_call + label="Simulate a Memory Leak..." layout="topleft" - name="Bumps, Pushes &amp; Hits"> - <menu_item_call.on_click - function="Floater.Show" - parameter="bumps" /> - </menu_item_call> - <menu_item_separator - layout="topleft" /> + name="Memory Leaking Simulation"> + <menu_item_call.on_click + function="Floater.Show" + parameter="mem_leaking" /> + </menu_item_call> + </menu> <menu create_jump_keys="true" label="Render Tests" @@ -2141,59 +2163,145 @@ function="Advanced.ToggleFrameTest" /> </menu_item_check> </menu> - <menu_item_separator - layout="topleft" /> - <menu - create_jump_keys="true" - label="Display Info" - layout="topleft" - name="Display Info" - tear_off="true"> - <menu_item_check - label="Show Time" - layout="topleft" - name="Show Time"> - <menu_item_check.on_check - function="CheckControl" - parameter="DebugShowTime" /> - <menu_item_check.on_click - function="ToggleControl" - parameter="DebugShowTime" /> - </menu_item_check> - <menu_item_check - label="Show Render Info" - layout="topleft" - name="Show Render Info"> - <menu_item_check.on_check - function="CheckControl" - parameter="DebugShowRenderInfo" /> - <menu_item_check.on_click - function="ToggleControl" - parameter="DebugShowRenderInfo" /> - </menu_item_check> - <menu_item_check - label="Show Matrices" - layout="topleft" - name="Show Matrices"> - <menu_item_check.on_check - function="CheckControl" - parameter="DebugShowRenderMatrices" /> - <menu_item_check.on_click - function="ToggleControl" - parameter="DebugShowRenderMatrices" /> - </menu_item_check> - <menu_item_check - label="Show Color Under Cursor" - layout="topleft" - name="Show Color Under Cursor"> - <menu_item_check.on_check - function="CheckControl" - parameter="DebugShowColor" /> - <menu_item_check.on_click - function="ToggleControl" - parameter="DebugShowColor" /> - </menu_item_check> - </menu> + <menu + create_jump_keys="true" + label="Render Metadata" + layout="topleft" + name="Render Metadata" + tear_off="true"> + <menu_item_check + label="Bounding Boxes" + layout="topleft" + name="Bounding Boxes"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="bboxes" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="bboxes" /> + </menu_item_check> + <menu_item_check + label="Octree" + layout="topleft" + name="Octree"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="octree" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="octree" /> + </menu_item_check> + <menu_item_check + label="Shadow Frusta" + layout="topleft" + name="Shadow Frusta"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="shadow frusta" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="shadow frusta" /> + </menu_item_check> + <menu_item_check + label="Occlusion" + layout="topleft" + name="Occlusion"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="occlusion" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="occlusion" /> + </menu_item_check> + <menu_item_check + label="Render Batches" + layout="topleft" + name="Render Batches"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="render batches" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="render batches" /> + </menu_item_check> + <menu_item_check + label="Texture Anim" + layout="topleft" + name="Texture Anim"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="texture anim" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="texture anim" /> + </menu_item_check> + <menu_item_check + label="Texture Priority" + layout="topleft" + name="Texture Priority"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="texture priority" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="texture priority" /> + </menu_item_check> + <menu_item_check + label="Texture Area" + layout="topleft" + name="Texture Area"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="texture area" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="texture area" /> + </menu_item_check> + <menu_item_check + label="Face Area" + layout="topleft" + name="Face Area"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="face area" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="face area" /> + </menu_item_check> + <menu_item_check + label="Lights" + layout="topleft" + name="Lights"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="lights" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="lights" /> + </menu_item_check> + <menu_item_check + label="Collision Skeleton" + layout="topleft" + name="Collision Skeleton"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="collision skeleton" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="collision skeleton" /> + </menu_item_check> + <menu_item_check + label="Raycast" + layout="topleft" + name="Raycast"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="raycast" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="raycast" /> + </menu_item_check> + </menu> <menu_item_separator layout="topleft" /> <menu @@ -2213,6 +2321,8 @@ function="ToggleControl" parameter="AgentPause" /> </menu_item_check> + <menu_item_separator + layout="topleft" /> <menu_item_call label="Enable Message Log" layout="topleft" @@ -2227,6 +2337,8 @@ <menu_item_call.on_click function="Advanced.DisableMessageLog" /> </menu_item_call> + <menu_item_separator + layout="topleft" /> <menu_item_check label="Velocity Interpolate Objects" layout="topleft" @@ -2249,6 +2361,8 @@ function="ToggleControl" parameter="PingInterpolate" /> </menu_item_check> + <menu_item_separator + layout="topleft" /> <menu_item_call label="Drop a Packet" layout="topleft" @@ -2257,18 +2371,39 @@ <menu_item_call.on_click function="Advanced.DropPacket" /> </menu_item_call> - <menu_item_check - label="Show Updates" - layout="topleft" - name="Show Updates" - shortcut="control|alt|shift|U"> - <menu_item_check.on_check - function="Advanced.CheckShowObjectUpdates" - parameter="ObjectUpdates" /> - <menu_item_check.on_click - function="Advanced.ToggleShowObjectUpdates" /> - </menu_item_check> </menu> + <menu_item_separator + layout="topleft" /> + <menu_item_call + label="Bumps, Pushes & Hits..." + layout="topleft" + name="Bumps, Pushes &amp; Hits"> + <menu_item_call.on_click + function="Floater.Show" + parameter="bumps" /> + </menu_item_call> + <menu_item_check + label="Output Debug Minidump" + layout="topleft" + name="Output Debug Minidump"> + <menu_item_check.on_check + function="CheckControl" + parameter="SaveMinidump" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="SaveMinidump" /> + </menu_item_check> + <menu_item_check + label="Debug Permissions in Build Tool" + layout="topleft" + name="DebugPermissions"> + <menu_item_check.on_check + function="CheckControl" + parameter="DebugPermissions" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="DebugPermissions" /> + </menu_item_check> <menu_item_separator layout="topleft" /> <menu_item_check @@ -2290,7 +2425,7 @@ function="Advanced.RequestAdminStatus" /> </menu_item_call> <menu_item_call - label="Leave Admin Status" + label="Deactivate Admin Status" layout="topleft" name="Leave Admin Options" shortcut="control|alt|shift|G"> @@ -2406,7 +2541,47 @@ <menu_item_check.on_enable function="Advanced.EnableObjectObjectOcclusion" /> </menu_item_check> - <menu_item_check + <menu_item_check + label="Framebuffer Objects" + layout="topleft" + name="Framebuffer Objects"> + <menu_item_check.on_check + function="CheckControl" + parameter="RenderUseFBO" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="RenderUseFBO" /> + <menu_item_check.on_enable + function="Advanced.EnableRenderFBO" /> + </menu_item_check> + <menu_item_check + label="Deferred Rendering" + layout="topleft" + name="Deferred Rendering"> + <menu_item_check.on_check + function="CheckControl" + parameter="RenderDeferred" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="RenderDeferred" /> + <menu_item_check.on_enable + function="Advanced.EnableRenderDeferred" /> + </menu_item_check> + <menu_item_check + label="Global Illumintation" + layout="topleft" + name="Global Illumination"> + <menu_item_check.on_check + function="CheckControl" + parameter="RenderDeferredGI" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="RenderDeferredGI" /> + <menu_item_check.on_enable + function="Advanced.EnableRenderDeferredGI" /> + </menu_item_check> + + <menu_item_check label="Debug GL" layout="topleft" name="Debug GL"> @@ -2461,6 +2636,16 @@ function="Advanced.ToggleDisableTextures" /> </menu_item_check> <menu_item_check + label="Texture Atlas" + layout="topleft" + name="Texture Atlas"> + <menu_item_check.on_check + function="Advanced.CheckTextureAtlas" + parameter="TextureAtlas" /> + <menu_item_check.on_click + function="Advanced.ToggleTextureAtlas" /> + </menu_item_check> + <menu_item_check label="Render Attached Lights" layout="topleft" name="Render Attached Lights"> @@ -2554,14 +2739,6 @@ <menu_item_call.on_click function="Advanced.WebBrowserTest" /> </menu_item_call> - <menu_item_call - label="Simple Web Browser Test" - layout="topleft" - name="Simple Web Browser Test"> - <menu_item_call.on_click - function="Floater.Show" - parameter="html_simple.http://www.secondlife.com" /> - </menu_item_call> <menu_item_call label="UI/Color Settings" layout="topleft" @@ -3039,17 +3216,6 @@ </menu> <menu_item_separator layout="topleft" /> - <menu_item_check - label="Debug Permissions" - layout="topleft" - name="DebugPermissions"> - <menu_item_check.on_check - function="CheckControl" - parameter="DebugPermissions" /> - <menu_item_check.on_click - function="ToggleControl" - parameter="DebugPermissions" /> - </menu_item_check> <menu_item_call label="Compress Images" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 7ede45a0808646d00f82abcc415755fb68057bef..80d501b63ecf1722859d75809ad50d216f0389a9 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4244,6 +4244,7 @@ http://secondlife.com/corporate/cs.php All reported abuses of the Terms of Service and Community Standards are investigated and resolved. You can view the incident resolution on the Incident Report at: http://secondlife.com/support/incidentreport.php + <unique/> </notification> <notification @@ -4258,6 +4259,7 @@ The region owner will resolve reports based on the local rules of this region as (View covenants by going to the World menu and selecting About Land.) The resolution of this report applies only to this Region. Residents' access to other areas of [SECOND_LIFE] will not be affected by the outcome of this report. Only Linden Lab can restrict access to the entirety of [SECOND_LIFE]. + <unique/> </notification> <notification @@ -6527,6 +6529,13 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block Attachment has been saved. </notification> + <notification + icon="alertmodal.tga" + name="UnableToFindHelpTopic" + type="alertmodal"> +Unable to find the help topic for this element. + </notification> + <global name="UnsupportedCPU"> - Your CPU speed does not meet the minimum requirements. </global> diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml index 80dca8c0c152da85220ad9fce2071b8a14ff6a98..13ceab76048f995f8639049e8ea5687b092bda01 100644 --- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml @@ -2,7 +2,7 @@ <panel background_opaque="true" background_visible="true" - bg_opaque_color="0.25 0.25 0.25 1" + bg_opaque_color="MouseGray" follows="left|top|right" height="60" layout="topleft" @@ -14,7 +14,7 @@ height="60" layout="topleft" name="navigation_panel" - width="600"> + width="600"> <button follows="left|top" font="SansSerifSmall" @@ -32,7 +32,7 @@ tool_tip="Go back to previous location" top="3" width="31" /> - + <button follows="left|top" font="SansSerifSmall" @@ -90,7 +90,7 @@ width="20" /> --> </location_input> - + <!-- <button --> <!-- follows="right|top" --> <!-- height="20" --> @@ -128,7 +128,7 @@ label="Search" /> </search_combo_box> </panel> - + <favorites_bar follows="left|right|top" height="25" diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml index 8b19f9a515fe6b881c1bf1f23039807d20931cd7..683a54b3662ce24ddfe9ec83339f6f31f8692919 100644 --- a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml @@ -7,7 +7,7 @@ left="0" name="chat_bar" top="24" - width="500"> + width="510"> <line_editor border_style="line" border_thickness="1" @@ -27,20 +27,21 @@ top="3" layout="topleft" left_pad="5" - label="Log" + label="Log" height="20"> <button.commit_callback function="Floater.Toggle" parameter="nearby_chat"/> </button> <chiclet_talk follows="right" height="20" + speak_button.font="SansSerifMedium" layout="topleft" left_pad="5" name="talk" top="3" width="100" /> <gesture_combo_box - follows="right" + follows="right" height="20" label="Gestures" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_notes.xml b/indra/newview/skins/default/xui/en/panel_notes.xml index 12badfccf0d47f06a65b0dc25b0d245fb8fb74e5..58ebac2a8424ab4a883a1f68dabb989caa0dbd46 100644 --- a/indra/newview/skins/default/xui/en/panel_notes.xml +++ b/indra/newview/skins/default/xui/en/panel_notes.xml @@ -8,7 +8,7 @@ left="0" name="panel_notes" top="0" - width="285"> + width="313"> <layout_stack name="layout" orientation="vertical" @@ -17,7 +17,7 @@ left="0" top="0" height="420" - width="285" + width="313" border_size="0"> <panel name="notes_stack" @@ -26,7 +26,7 @@ top="0" left="0" height="390" - width="285"> + width="313"> <scroll_container color="DkGray2" follows="left|top|right|bottom" @@ -36,14 +36,14 @@ name="profile_scroll" opaque="true" top="0" - width="285"> + width="313"> <panel height="350" layout="topleft" name="profile_scroll_panel" top="0" left="0" - width="240"> + width="293"> <text follows="left|top" font="SansSerifBold" @@ -52,9 +52,9 @@ left="10" name="status_message" text_color="white" - top="0" + top="5" value="My private notes:" - width="230" /> + width="293" /> <text_editor follows="left|top" height="200" @@ -65,7 +65,7 @@ name="notes_edit" text_color="black" top_pad="10" - width="235" + width="280" word_wrap="true" /> <text follows="left|top" @@ -77,7 +77,7 @@ text_color="white" top_pad="10" value="Let this person:" - width="225" /> + width="293" /> <check_box enabled="false" height="20" @@ -86,7 +86,7 @@ left="20" name="status_check" top_pad="0" - width="230" /> + width="293" /> <check_box enabled="false" height="20" @@ -95,7 +95,7 @@ left="20" name="map_check" top_pad="0" - width="230" /> + width="293" /> <check_box enabled="false" height="20" @@ -104,7 +104,7 @@ left="20" name="objects_check" top_pad="0" - width="230" /> + width="293" /> </panel> </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index 310e3908ca98aa4ed7f8f7143a42af2891437139..132a2d1dc55782c3eec416ee0e4531b0b53332a2 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -117,11 +117,12 @@ color="DkGray" layout="topleft" left="0" name="friends_accordion" - top="2" + top="0" width="313"> <accordion_tab can_resize="false" layout="topleft" + height="230" min_height="150" name="tab_online" title="Online"> @@ -162,7 +163,7 @@ color="DkGray" layout="topleft" left="0" name="bottom_panel" - width="285"> + width="313"> <button follows="bottom|left" font="SansSerifBigBold" @@ -199,7 +200,7 @@ color="DkGray" image_unselected="TrashItem_Off" image_disabled="TrashItem_Disabled" layout="topleft" - left_pad="180" + left_pad="230" name="del_btn" picture_style="true" tool_tip="Remove selected person from your Friends list" @@ -216,7 +217,7 @@ color="DkGray" top="0" layout="topleft" name="groups_panel" - width="285"> + width="313"> <group_list draw_heading="false" follows="left|top|right|bottom" @@ -226,7 +227,7 @@ color="DkGray" left="0" name="group_list" top="2" - width="285" /> + width="313" /> <panel background_visible="true" bevel_style="none" @@ -237,7 +238,7 @@ color="DkGray" layout="topleft" left="0" name="bottom_panel" - width="285"> + width="313"> <button enabled="false" follows="bottom|left" @@ -288,7 +289,7 @@ color="DkGray" image_selected="TrashItem_Press" image_unselected="TrashItem_Off" layout="topleft" - left_pad="146" + left_pad="196" name="minus_btn" picture_style="true" tool_tip="Leave selected group" @@ -305,7 +306,7 @@ color="DkGray" label="Recent" layout="topleft" name="recent_panel" - width="285"> + width="313"> <avatar_list_tmp color="DkGray2" follows="left|top|right|bottom" @@ -314,7 +315,7 @@ color="DkGray" left="0" name="avatar_list" top="2" - width="285" /> + width="313" /> <panel background_visible="true" bevel_style="none" @@ -325,7 +326,7 @@ color="DkGray" layout="topleft" left="0" name="bottom_panel" - width="285"> + width="313"> <button follows="bottom|left" font="SansSerifBigBold" diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml index b379ad22761ca331d4467bebd56cb3ef6c2587f4..8b9fe2cf77061070e17b451ef0313e1c3a524b30 100644 --- a/indra/newview/skins/default/xui/en/panel_places.xml +++ b/indra/newview/skins/default/xui/en/panel_places.xml @@ -8,7 +8,7 @@ min_height="350" min_width="240" name="places panel" - width="305"> + width="333"> <string name="landmarks_tab_title" value="Landmarks" /> @@ -24,7 +24,7 @@ left="15" name="Filter" top="3" - width="256" /> + width="300" /> <tab_container follows="all" height="326" @@ -33,7 +33,7 @@ name="Places Tabs" tab_position="top" top="30" - width="285" /> + width="313" /> <panel class="panel_place_info" filename="panel_place_info.xml" @@ -50,7 +50,7 @@ left="0" name="button_panel" top_pad="10" - width="305"> + width="313"> <button follows="bottom|left" font="SansSerifSmallBold" @@ -60,7 +60,7 @@ left="5" name="teleport_btn" top="0" - width="80" /> + width="90" /> <button follows="bottom|left" font="SansSerifSmallBold" @@ -104,7 +104,7 @@ left="5" name="create_landmark_btn" top="0" - width="60" /> + width="70" /> <button follows="bottom|left" font="SansSerifSmallBold" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml index 88bf3d3b229d08e84c23f3f047b345985ff02475..b492ee1dc3816acea6ddb933e9f9980031994468 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml @@ -214,4 +214,43 @@ My Avatar: left="30" name="arrow_keys_move_avatar_check" width="237" /> + <check_box + control_name="TapTapHoldtoRun" + height="20" + label="Tap-tap-hold to run" + layout="topleft" + left="30" + name="tap_tap_hold_to_run" + width="237" /> + <!--menu_item_check + label="Tap-Tap-Hold to Run" + layout="topleft" + name="Tap-Tap-Hold to Run"> + <menu_item_check.on_check + function="Advanced.CheckAllowTapTapHoldRun" + parameter="TapTapHoldRun" /> + <menu_item_check.on_click + function="Advanced.ToggleAllowTapTapHoldRun" /> + </menu_item_check--> + <check_box + control_name="EnableLipSync" + height="20" + label="Move my avatar's lips when speaking" + layout="topleft" + left="30" + name="enable_lip_sync" + width="237" /> + <!--menu_item_check + label="Enable Lip Sync(Beta)" + layout="topleft" + name="Enable Lip Sync(Beta)"> + <menu_item_check.on_check + function="CheckControl" + parameter="LipSyncEnabled" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="LipSyncEnabled" /> + </menu_item_check--> + + </panel> \ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml index 70292a38aa0101d7d42a1128f9095251522b1889..a94cfbeec46e45f4bc4715d59220e1296dd3fdbc 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml @@ -145,15 +145,26 @@ top_pad="10" width="400"> I want to access content rated: + </text> + <text + type="string" + length="1" + follows="left|top" + height="10" + layout="topleft" + left="90" + name="maturity_desired_textbox" + top_pad="10" + width="400"> </text> <combo_box control_name="PreferredMaturity" follows="left|bottom" height="18" layout="topleft" - left_delta="50" + left_delta="-10" name="maturity_desired_combobox" - top_pad="10" + top_pad="-10" width="170"> <combo_box.item label="PG, Mature and Adult" @@ -264,6 +275,7 @@ top_pad="5" width="300" /> <check_box + enabled_control="AvatarNameTagMode" control_name="SmallAvatarNames" height="16" initial_value="true" diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml index 2a800f809b8a040de98ade6749af83091eb3479b..7f72c7b0e9c6581c60f1a71e663b2d1fa0b226dc 100644 --- a/indra/newview/skins/default/xui/en/panel_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_profile.xml @@ -317,8 +317,7 @@ width="313"> <button follows="bottom|left" - font="SansSerifSmallBold" - height="25" + height="23" label="Edit Profile" layout="topleft" left="0" @@ -327,8 +326,7 @@ width="130" /> <button follows="bottom|left" - font="SansSerifSmallBold" - height="25" + height="23" label="Edit Appearance" layout="topleft" left_pad="5" diff --git a/indra/newview/skins/default/xui/en/panel_profile_view.xml b/indra/newview/skins/default/xui/en/panel_profile_view.xml index 9aa2c304f24840376b2a549fa3ea67689ddbcd99..cbe646f3cca774e7b3c2a3bb6c9d832d342a4151 100644 --- a/indra/newview/skins/default/xui/en/panel_profile_view.xml +++ b/indra/newview/skins/default/xui/en/panel_profile_view.xml @@ -7,7 +7,7 @@ min_height="350" min_width="240" name="panel_target_profile" - width="305"> + width="333"> <string name="status_online"> Online diff --git a/indra/newview/skins/default/xui/en/panel_region_covenant.xml b/indra/newview/skins/default/xui/en/panel_region_covenant.xml index 8445b933bf44678c4cc8c12773f291572e5c0bff..01fbc81c326740cc35d84047572f8bd49407ede8 100644 --- a/indra/newview/skins/default/xui/en/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/en/panel_region_covenant.xml @@ -26,8 +26,6 @@ Purchased land in this region may not be joined or subdivided. </panel.string> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -40,8 +38,6 @@ Estate </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -53,8 +49,6 @@ Name: </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -66,8 +60,6 @@ mainland </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -79,8 +71,6 @@ Owner: </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -93,8 +83,6 @@ </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -106,8 +94,6 @@ Covenant: </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -130,8 +116,6 @@ width="18" /> <text_editor - type="string" - length="1" enabled="false" follows="left|top" height="100" @@ -157,8 +141,6 @@ width="90" /> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -170,8 +152,6 @@ on all parcels in the estate. </text> <text - type="string" - length="1" follows="left|top" height="16" layout="topleft" @@ -184,8 +164,6 @@ the Covenant for this Estate. </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -198,8 +176,6 @@ the Covenant for this Estate. Region </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -211,8 +187,6 @@ the Covenant for this Estate. Name: </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -224,8 +198,6 @@ the Covenant for this Estate. leyla </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -237,8 +209,6 @@ the Covenant for this Estate. Type: </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -250,8 +220,6 @@ the Covenant for this Estate. Mainland / Homestead </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -263,8 +231,6 @@ the Covenant for this Estate. Rating: </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -276,8 +242,6 @@ the Covenant for this Estate. Adult </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -289,8 +253,6 @@ the Covenant for this Estate. Resale: </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -303,8 +265,6 @@ the Covenant for this Estate. resold. </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -316,8 +276,6 @@ resold. Subdivide: </text> <text - type="string" - length="1" follows="left|top" height="30" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_region_debug.xml b/indra/newview/skins/default/xui/en/panel_region_debug.xml index 6a43bf3c4b442773532cea5e85f4df4f8ce48bae..54664bb6b93739b8854f488cdb1f58d5c4fb4cc8 100644 --- a/indra/newview/skins/default/xui/en/panel_region_debug.xml +++ b/indra/newview/skins/default/xui/en/panel_region_debug.xml @@ -10,8 +10,6 @@ top="320" width="280"> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -23,8 +21,6 @@ Region: </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -104,8 +100,6 @@ top="100" width="80" /> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -116,8 +110,6 @@ Object Return </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -128,8 +120,6 @@ Resident: </text> <line_editor - type="string" - length="1" border_style="line" border_thickness="1" enabled="false" @@ -154,8 +144,6 @@ top_delta="0" width="70" /> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml index c905e0e42c9ec51367ba226a3d7ffbeac0891905..6e837bcfee3cbfb454404cee9eef97f9a16dffe6 100644 --- a/indra/newview/skins/default/xui/en/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml @@ -1,25 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel - border="true" + border="false" follows="top|left" height="512" + top="0" + left="0" name="EstateWrapper" label="Estate" layout="topleft" - width="280"> - <scroll_container - follows="top|left|right|bottom" - height="508" - name="container1" - layout="topleft" - width="280"> + width="313"> <panel follows="top|left" height="950" label="Estate" layout="topleft" name="Estate" - width="258"> + width="313"> <panel.string name="email_unsupported"> Feature unsupported @@ -30,10 +26,10 @@ follows="left|top" height="32" layout="topleft" - left="10" + left="0" name="estate_help_text" - top="14" - width="300"> + top="5" + width="313"> Changes to settings on this tab will affect all regions in the estate. </text> @@ -41,69 +37,51 @@ type="string" length="1" follows="left|top" - font="SansSerif" - height="20" + layout="topleft" - left_delta="0" name="estate_text" - top_pad="2" - width="80"> + top_pad="5" + width="313"> Estate: </text> <text type="string" length="1" follows="left|top" - font="SansSerif" - height="20" layout="topleft" - left_delta="0" name="estate_name" - top_delta="16" - width="150"> + top_pad="5" + width="313"> (unknown) </text> <text type="string" length="1" follows="left|top" - font="SansSerif" - height="20" layout="topleft" left_delta="0" name="owner_text" - top_pad="2" - width="80"> - Owner: + top_pad="5" + width="313"> + Estate Owner: </text> <text type="string" length="1" follows="left|top" - font="SansSerif" - height="20" layout="topleft" - left_delta="0" name="estate_owner" - top_delta="16" - width="150"> + top_pad="5" + width="313"> (unknown) </text> - <view_border - bevel_style="in" - follows="top|left" - height="290" - layout="topleft" - left_delta="-4" - top_pad="5" - width="250" /> <check_box - height="20" + height="23" label="Use Global Time" layout="topleft" left="12" name="use_global_time_check" - top="132" + top="102" width="200" /> <button follows="left|top" @@ -116,12 +94,12 @@ top_delta="2" width="18" /> <check_box - height="20" + height="23" label="Fixed Sun" layout="topleft" left="12" name="fixed_sun_check" - top="152" + top_pad="10" width="100" /> <button follows="left|top" @@ -134,16 +112,16 @@ top_delta="2" width="18" /> <icon - height="20" + height="23" image_name="icon_day_cycle.tga" layout="topleft" left="47" name="daycycle" - top="177" + top_pad="10" width="165" /> <slider follows="left|top" - height="20" + height="23" increment="0.001" label="Phase" layout="topleft" @@ -152,16 +130,15 @@ min_val="6" name="sun_hour_slider" show_text="false" - top="202" + top_pad="10" width="200" /> <check_box - height="20" + height="23" label="Allow Public Access" layout="topleft" left_delta="0" name="externally_visible_check" - top_pad="6" - width="200" /> + top_pad="10" /> <button follows="left|top" font="SansSerifSmall" @@ -180,7 +157,7 @@ layout="topleft" left="32" name="Only Allow" - top="250" + top_pad="5" width="278"> Restrict Access To: </text> @@ -205,12 +182,12 @@ top_pad="2" width="278" /> <check_box - height="20" + height="23" label="Allow Voice Chat" layout="topleft" left="12" name="voice_chat_check" - top="304" + top_pad="5" width="200" /> <button follows="left|top" @@ -223,12 +200,12 @@ top_delta="2" width="18" /> <check_box - height="20" + height="23" label="Allow Direct Teleport" layout="topleft" left="12" name="allow_direct_teleport" - top_pad="4" + top_pad="0" width="80" /> <button follows="left|top" @@ -244,12 +221,12 @@ type="string" length="1" follows="left|top" - height="20" + height="23" layout="topleft" left="10" name="abuse_email_text" top_pad="5" - width="180"> + width="313"> Abuse email address: </text> <line_editor @@ -258,8 +235,8 @@ layout="topleft" left="15" name="abuse_email_address" - top_pad="5" - width="205" /> + top_pad="0" + width="250" /> <button follows="left|top" font="SansSerifSmall" @@ -273,7 +250,7 @@ <button enabled="false" follows="left|top" - height="20" + height="23" label="Apply" layout="topleft" name="apply_btn" @@ -282,7 +259,7 @@ width="90" /> <button follows="left|top" - height="20" + height="23" label="Send Message To Estate..." layout="topleft" left="8" @@ -291,7 +268,7 @@ width="250" /> <button follows="left|top" - height="20" + height="23" label="Kick User from Estate..." layout="topleft" left="8" @@ -303,7 +280,7 @@ length="1" top="490" follows="left|top" - height="20" + height="23" layout="topleft" name="estate_manager_label" left="8" @@ -320,26 +297,18 @@ name="estate_manager_help" top_delta="-1" width="18" /> - <view_border - bevel_style="none" - follows="top|left" - height="60" - layout="topleft" - left="8" - top_pad="5" - width="250" /> <name_list follows="left|top" height="60" layout="topleft" - left_delta="0" + left="8" multi_select="true" name="estate_manager_name_list" - top_delta="0" - width="250" /> + top_pad="0" + width="300" /> <button follows="left|top" - height="20" + height="23" label="Add..." layout="topleft" left="8" @@ -348,7 +317,7 @@ width="90" /> <button follows="left|top" - height="20" + height="23" label="Remove..." layout="topleft" name="remove_estate_manager_btn" @@ -359,7 +328,7 @@ type="string" length="1" follows="left|top" - height="20" + height="23" layout="topleft" left="8" name="allow_resident_label" @@ -377,26 +346,18 @@ name="allow_resident_help" top_delta="-1" width="18" /> - <view_border - bevel_style="none" - follows="top|left" - height="60" - layout="topleft" - left="8" - top_pad="5" - width="250" /> <name_list follows="left|top" height="60" layout="topleft" - left_delta="0" + left="8" multi_select="true" name="allowed_avatar_name_list" - top_delta="0" - width="250" /> + top_pad="0" + width="300" /> <button follows="left|top" - height="20" + height="23" label="Add..." layout="topleft" left="8" @@ -405,7 +366,7 @@ width="90" /> <button follows="left|top" - height="20" + height="23" label="Remove..." layout="topleft" name="remove_allowed_avatar_btn" @@ -416,7 +377,7 @@ type="string" length="1" follows="left|top" - height="20" + height="23" layout="topleft" left="8" name="allow_group_label" @@ -434,26 +395,18 @@ name="allow_group_help" top_delta="-1" width="18" /> - <view_border - bevel_style="none" - follows="top|left" - height="60" - layout="topleft" - left="8" - top_pad="5" - width="250" /> <name_list follows="left|top" height="60" layout="topleft" - left_delta="0" + left="8" multi_select="true" name="allowed_group_name_list" - top_delta="0" - width="250" /> + top_pad="0" + width="300" /> <button follows="left|top" - height="20" + height="23" label="Add..." layout="topleft" left="8" @@ -462,7 +415,7 @@ width="90" /> <button follows="left|top" - height="20" + height="23" label="Remove..." layout="topleft" name="remove_allowed_group_btn" @@ -473,7 +426,7 @@ type="string" length="1" follows="left|top" - height="20" + height="23" layout="topleft" left="8" name="ban_resident_label" @@ -491,26 +444,18 @@ name="ban_resident_help" top_delta="-1" width="18" /> - <view_border - bevel_style="none" - follows="top|left" - height="60" - layout="topleft" - left="8" - top_pad="5" - width="250" /> <name_list follows="left|top" height="60" layout="topleft" - left_delta="0" + left="8" multi_select="true" name="banned_avatar_name_list" - top_delta="0" - width="250" /> + top_pad="0" + width="300" /> <button follows="left|top" - height="20" + height="23" label="Add..." layout="topleft" left="8" @@ -519,7 +464,7 @@ width="90" /> <button follows="left|top" - height="20" + height="23" label="Remove..." layout="topleft" name="remove_banned_avatar_btn" @@ -527,5 +472,4 @@ top_delta="0" width="90" /> </panel> - </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml index b7a32213cf505b87304fb0d94d2b06cac8f91161..9b9c62dbf9d6d9928b4f60937813d8b780513233 100644 --- a/indra/newview/skins/default/xui/en/panel_region_general.xml +++ b/indra/newview/skins/default/xui/en/panel_region_general.xml @@ -10,8 +10,6 @@ top="360" width="280"> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -23,8 +21,6 @@ Region: </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -36,8 +32,6 @@ unknown </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -49,8 +43,6 @@ Version: </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -62,8 +54,6 @@ unknown </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -75,8 +65,6 @@ Type: </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -261,8 +249,6 @@ top_delta="2" width="18" /> <text - type="string" - length="1" follows="left|top" height="20" label="Maturity" diff --git a/indra/newview/skins/default/xui/en/panel_region_terrain.xml b/indra/newview/skins/default/xui/en/panel_region_terrain.xml index bdf74c56211910b7bd6620943edeedc231634fef..a78a1ea98cce7a9ef44bf67c85c9e3a0aac457a2 100644 --- a/indra/newview/skins/default/xui/en/panel_region_terrain.xml +++ b/indra/newview/skins/default/xui/en/panel_region_terrain.xml @@ -10,8 +10,6 @@ top="320" width="280"> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -23,8 +21,6 @@ Region: </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" diff --git a/indra/newview/skins/default/xui/en/panel_region_texture.xml b/indra/newview/skins/default/xui/en/panel_region_texture.xml index 5285a53c5928cebc6d5bb2d2f5ea66ceba4552e1..404e1b890746e2cf67fb9ad9b2e396330d1403fe 100644 --- a/indra/newview/skins/default/xui/en/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/en/panel_region_texture.xml @@ -21,8 +21,6 @@ name="Textures" width="258"> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -34,8 +32,6 @@ Region: </text> <text - type="string" - length="1" follows="left|top" font="SansSerif" height="20" @@ -47,8 +43,6 @@ unknown </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -92,8 +86,6 @@ top_delta="0" width="100" /> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -104,8 +96,6 @@ 1 (Low) </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -116,8 +106,6 @@ 2 </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -128,8 +116,6 @@ 3 </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -140,8 +126,6 @@ 4 (High) </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -152,8 +136,6 @@ Texture Elevation Ranges </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -164,8 +146,6 @@ Southwest </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -228,8 +208,6 @@ top_delta="0" width="100" /> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -240,8 +218,6 @@ Southeast </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -304,8 +280,6 @@ top_delta="0" width="100" /> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" @@ -317,8 +291,6 @@ for the textures above. </text> <text - type="string" - length="1" follows="left|top" height="20" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_side_tray.xml b/indra/newview/skins/default/xui/en/panel_side_tray.xml index 200c67b321cafe76128adba30e8229e0c5d3b425..418b88b7b59235ed8b1a72f4c799f9235a0dcd59 100644 --- a/indra/newview/skins/default/xui/en/panel_side_tray.xml +++ b/indra/newview/skins/default/xui/en/panel_side_tray.xml @@ -8,9 +8,10 @@ > <sidetray_tab name="sidebar_home" + help_topic="sidebar_home" tab_title="Home" description="Home." - image="BackArrow_Off" + image="TabIcon_Open_Off" mouse_opaque="false" background_opaque="false" background_visible="true" @@ -26,6 +27,7 @@ <sidetray_tab name="sidebar_people" + help_topic="sidebar_people" tab_title="People" description="Find your friends, contacts and people nearby." image="TabIcon_People_Off" @@ -35,6 +37,7 @@ > <panel_container name="panel_container" + width="333" > <panel class="panel_people" @@ -56,6 +59,7 @@ filename="panel_group_info_sidetray.xml" label="Group Info" border="true" + font="SansSerifBold" /> <panel class="panel_block_list_sidetray" @@ -63,12 +67,14 @@ filename="panel_block_list_sidetray.xml" label="Blocked Residents & Objects" border="true" + font="SansSerifBold" /> </panel_container> </sidetray_tab> <sidetray_tab name="sidebar_places" + help_topic="sidebar_places" tab_title="Places" label="Places" description="Find places to go and places you've been." @@ -82,11 +88,13 @@ filename="panel_places.xml" label="Places" border="true" + font="SansSerifBold" /> </sidetray_tab> <sidetray_tab name="sidebar_me" + help_topic="sidebar_me" tab_title="Me" description="Change your profile, your look and quick links to your outfits." image="TabIcon_Me_Off" @@ -105,6 +113,7 @@ <sidetray_tab name="sidebar_appearance" + help_topic="sidebar_appearance" tab_title="Appearance" description="Change your looks and appearance." image="TabIcon_Appearance_Off" @@ -117,6 +126,8 @@ name="panel_appearance" filename="panel_appearance.xml" border="true" + label="Edit Appearance" + font="SansSerifBold" /> </sidetray_tab> diff --git a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml index e87517e200ac8684173d13d213defea337960d16..d379c60aeda23a486333ff5e5bc63cad16d12cec 100644 --- a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml +++ b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml @@ -7,7 +7,7 @@ label="home_tab" layout="topleft" name="home_tab" - width="300"> + width="333"> <panel background_visible="true" bg_alpha_color="DkGray2" @@ -17,7 +17,7 @@ layout="topleft" left="10" name="sidebar_people" - width="280"> + width="313"> <text follows="left|right|top" font="SansSerifBigBold" @@ -65,7 +65,7 @@ layout="topleft" left="10" name="sidebar_places" - width="280"> + width="313"> <text follows="left|right|top" font="SansSerifBigBold" @@ -113,7 +113,7 @@ layout="topleft" left="10" name="sidebar_me" - width="280"> + width="313"> <text follows="left|right|top" font="SansSerifBigBold" @@ -161,7 +161,7 @@ layout="topleft" left="10" name="sidebar_appearance" - width="280"> + width="313"> <text follows="left|right|top" font="SansSerifBigBold" diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index f597211ec9b26cfed461501eb573bc924699aafc..c1785542879edee2fde56a565a2d8fbd4735d86b 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -2,14 +2,14 @@ <panel background_opaque="true" background_visible="true" - bg_opaque_color="0.25 0.25 0.25 1" + bg_opaque_color="MouseGray" follows="top|left|right" - height="18" + height="19" layout="topleft" left="0" mouse_opaque="false" name="status" - top="18" + top="19" width="1000"> <panel.string name="StatBarDaysOfWeek"> @@ -41,164 +41,166 @@ </panel.string> <button auto_resize="true" + halign="left" follows="right|bottom" font="SansSerifSmall" - height="16" + image_color="White_05" + flash_color="EmphasisColor" + image_overlay="BuyArrow_Over" + height="18" layout="topleft" - left="-150" + left="-210" name="buycurrency" picture_style="true" - tool_tip="Account Balance / Buy currency" - top="1" - width="60" /> + tool_tip="My Balance / Buy currency" + top="0" + width="117" /> <text type="string" length="1" disabled_color="TimeTextColor" follows="right|bottom" halign="right" - height="20" + height="16" + top="3" layout="topleft" left_pad="5" name="TimeText" text_color="TimeTextColor" tool_tip="Current Time (Pacific)" - top_delta="-1" - v_pad="2" width="80"> 12:00 AM </text> <button follows="right|bottom" height="16" - image_selected="status_script_debug.tga" - image_unselected="status_script_debug.tga" layout="topleft" left_delta="-537" + image_selected="Inv_DangerousScript" + image_unselected="Inv_DangerousScript" name="scriptout" picture_style="true" scale_image="false" tool_tip="Script Warnings and Errors" - top_delta="2" + top="0" visible="false" width="16" /> <button follows="right|bottom" - height="18" - image_selected="status_health.tga" - image_unselected="status_health.tga" + height="16" + image_selected="Health" + image_unselected="Health" layout="topleft" - left_delta="16" + left_pad="7" name="health" picture_style="true" scale_image="false" tool_tip="Health" - top_delta="2" + top="0" visible="false" - width="24" /> + width="16" /> <text type="string" length="1" disabled_color="HealthTextColor" follows="rsight|bottom" font_shadow="hard" - height="18" + height="16" layout="topleft" - left_delta="24" + left_pad="18" name="HealthText" text_color="HealthTextColor" tool_tip="Health" - top_delta="-4" - v_pad="2" + top="0" visible="false" width="31"> 100% </text> <button follows="right|bottom" - height="18" - image_selected="status_no_fly.tga" - image_unselected="status_no_fly.tga" + height="16" + image_selected="Move_Fly_Disabled" + image_unselected="Move_Fly_Disabled" layout="topleft" - left_delta="31" + left_pad="7" name="no_fly" picture_style="true" scale_image="false" tool_tip="Flying not allowed" - top_delta="4" + top="3" visible="false" - width="24" /> + width="16" /> <button follows="right|bottom" - height="18" - image_selected="status_no_build.tga" - image_unselected="status_no_build.tga" + height="16" + image_selected="Tool_Create" + image_unselected="Tool_Create" layout="topleft" - left_delta="24" + left_pad="7" name="no_build" picture_style="true" scale_image="false" tool_tip="Building/Rezzing not allowed" - top_delta="0" + top="0" visible="false" - width="24" /> + width="16" /> <button follows="right|bottom" - height="18" - image_selected="status_no_scripts.tga" - image_unselected="status_no_scripts.tga" + height="16" + image_selected="Inv_Script" + image_unselected="Inv_Script" layout="topleft" - left_delta="24" + left_pad="7" name="no_scripts" picture_style="true" scale_image="false" tool_tip="Scripts not allowed" - top_delta="0" + top="0" visible="false" - width="24" /> + width="16" /> <button follows="right|bottom" - height="18" - image_selected="status_no_push.tga" - image_unselected="status_no_push.tga" + height="16" + image_selected="Inv_Gesture" + image_unselected="Inv_Gesture" layout="topleft" - left_delta="24" + left_pad="7" name="restrictpush" picture_style="true" scale_image="false" tool_tip="No Pushing" - top_delta="0" + top="0" visible="false" - width="24" /> + width="16" /> <button follows="right|bottom" height="18" - image_selected="status_no_voice.tga" - image_unselected="status_no_voice.tga" + image_selected="Microphone_Mute" + image_unselected="Microphone_Mute" layout="topleft" - left_delta="24" + left_pad="7" name="status_no_voice" picture_style="true" scale_image="false" tool_tip="Voice not available here" - top_delta="0" + top="1" visible="false" - width="24" /> + width="16" /> <button follows="right|bottom" height="16" - image_selected="status_buy_land_pressed.tga" - image_unselected="status_buy_land.tga" + image_selected="Icon_For_Sale" + image_unselected="Icon_For_Sale" layout="topleft" left_pad="7" name="buyland" picture_style="true" tool_tip="Buy this parcel" - top_delta="-3" + top="0" visible="false" width="16" /> <text - enabled="false" + enabled="true" follows="right|bottom" halign="center" height="12" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 4206b87c2b3a6a42fd3ddcafbd13504555448ee9..2eb9ba6d070be82672d4cfee4557c1128e4dec8e 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -94,8 +94,9 @@ <string name="BUTTON_MINIMIZE">Minimize</string> <string name="BUTTON_TEAR_OFF">Tear Off</string> <string name="BUTTON_EDIT">Edit</string> - <string name="BUTTON_DOCK">Dock</string> - <string name="BUTTON_UNDOCK">Undock</string> + <string name="BUTTON_DOCK">Dock</string> + <string name="BUTTON_UNDOCK">Undock</string> + <string name="BUTTON_HELP">Show Help</string> <!-- searching - generic --> <string name="Searching">Searching...</string> @@ -1137,7 +1138,7 @@ Checks to see whether the border hit by dir from pos is the edge of the world (h <string name="LSLTipText_llGetAgentInfo"> integer llGetAgentInfo(key id) Gets information about agent ID. -Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR. +Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING, AGENT_IN_AIR and/or AGENT_AUTOPILOT. </string> <string name="LSLTipText_llAdjustSoundVolume"> llAdjustSoundVolume(float volume) diff --git a/indra/newview/skins/default/xui/en/widgets/check_box.xml b/indra/newview/skins/default/xui/en/widgets/check_box.xml index bbb5e9b56a4bd717b229113816f566e133ef8798..726ae803fe28c5364c6f49325ef1772bc237c35c 100644 --- a/indra/newview/skins/default/xui/en/widgets/check_box.xml +++ b/indra/newview/skins/default/xui/en/widgets/check_box.xml @@ -15,5 +15,5 @@ image_disabled="Checkbox_Off_Disabled" image_disabled_selected="Checkbox_On_Disabled" image_pressed="Checkbox_Press" - image_pressed_selected="Checkbox_On_Press"/> + image_pressed_selected="Checkbox_On_Press" /> </check_box> diff --git a/indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml b/indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml index 26af76d8a35df12f02f8bef384b72d2fb7c87598..89e442baec8ebccd71a8bc65746115b3ec7593d4 100644 --- a/indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml +++ b/indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml @@ -16,7 +16,7 @@ <gesture_combo_box.drop_down_button name="Drop Down Button" label="" hover_glow_amount="0.15" - font="SansSerifSmall" + font="SansSerif" scale_image="true" pad_right="24" image_unselected="DropDown_Off" diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item_tear_off.xml b/indra/newview/skins/default/xui/en/widgets/menu_item_tear_off.xml new file mode 100644 index 0000000000000000000000000000000000000000..185ed6ee3efa8f9c634e171948b719ab41a341c5 --- /dev/null +++ b/indra/newview/skins/default/xui/en/widgets/menu_item_tear_off.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<!-- Use "disabled color" to make it look like menu separators --> +<menu_item_tear_off enabled_color="MenuItemDisabledColor" + disabled_color="MenuItemDisabledColor" + highlight_bg_color="MenuItemHighlightBgColor" + highlight_fg_color="MenuItemHighlightFgColor"> +</menu_item_tear_off> 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 3e3b8df646b834d3f2184955145eaa9528e81f2b..bc775c1b1c1ba338835344858fa8dad43df65286 100644 --- a/indra/newview/skins/default/xui/es/floater_about_land.xml +++ b/indra/newview/skins/default/xui/es/floater_about_land.xml @@ -2,10 +2,10 @@ <floater name="floaterland" title="Acerca del terreno"> <tab_container name="landtab"> <panel label="General" name="land_general_panel"> - <text length="1" name="Name:" type="string"> + <text name="Name:"> Nombre: </text> - <text length="1" name="Description:" type="string"> + <text name="Description:"> Descripción: </text> <text name="LandType"> @@ -20,56 +20,56 @@ <text name="ContentRatingText"> 'Adult' </text> - <text length="1" name="Owner:" type="string"> + <text name="Owner:"> Propietario: </text> - <text length="1" name="OwnerText" type="string"> + <text name="OwnerText"> Leyla Linden </text> <button label="Perfil..." label_selected="Perfil..." name="Profile..."/> - <text length="1" name="Group:" type="string"> + <text name="Group:"> Grupo: </text> <button label="Configurar..." label_selected="Configurar..." name="Set..."/> <check_box label="Permitir transferir al grupo" name="check deed" tool_tip="Un oficial del grupo puede transferir este terreno al grupo. El terreno será apoyado por el grupo en sus asignaciones de terreno."/> <button label="Transferir..." label_selected="Transferir..." name="Deed..." tool_tip="Sólo si es usted un oficial del grupo seleccionado puede transferir terreno."/> <check_box label="El propietario hace una contribución transfiriendo" name="check contrib" tool_tip="Cuando el terreno se transfiere al grupo, el antiguo propietario contribuye con una asignación suficiente de terreno."/> - <text length="1" name="For Sale:" type="string"> + <text name="For Sale:"> En venta: </text> - <text length="1" name="Not for sale." type="string"> + <text name="Not for sale."> No está en venta. </text> - <text length="1" name="For Sale: Price L$[PRICE]." type="string"> + <text name="For Sale: Price L$[PRICE]."> Precio: [PRICE] L$ ([PRICE_PER_SQM] L$/m²). </text> <button label="Vender el terreno..." label_selected="Vender el terreno..." name="Sell Land..."/> - <text length="1" name="For sale to" type="string"> + <text name="For sale to"> En venta a: [BUYER] </text> - <text length="1" name="Sell with landowners objects in parcel." type="string"> + <text width="216" name="Sell with landowners objects in parcel."> Los objetos se incluyen en la venta. </text> - <text length="1" name="Selling with no objects in parcel." type="string"> + <text width="216" name="Selling with no objects in parcel."> Los objetos no se incluyen en la venta. </text> - <button font="SansSerifSmall" left="275" width="165" label="Cancelar la venta del terreno" label_selected="Cancelar la venta del terreno" name="Cancel Land Sale"/> - <text length="1" name="Claimed:" type="string"> + <button font="SansSerifSmall" bottom="-245" left="275" width="165" label="Cancelar la venta del terreno" label_selected="Cancelar la venta del terreno" name="Cancel Land Sale"/> + <text name="Claimed:"> Reclamada: </text> - <text length="1" name="DateClaimText" type="string"> + <text name="DateClaimText"> Mar 15 Ago 15 13:47:25 2006 </text> - <text length="1" name="PriceLabel" type="string"> + <text name="PriceLabel"> Superficie: </text> - <text length="1" name="PriceText" type="string"> + <text name="PriceText"> 4048 m² </text> - <text length="1" name="Traffic:" type="string"> + <text name="Traffic:"> Tráfico: </text> - <text length="1" name="DwellText" type="string"> + <text name="DwellText"> 0 </text> <button label="Comprar terreno..." label_selected="Comprar terreno..." left="130" name="Buy Land..." width="125"/> @@ -78,76 +78,76 @@ <button label="Abandonar el terreno..." label_selected="Abandonar el terreno..." name="Abandon Land..."/> <button label="Reclamar el terreno..." label_selected="Reclamar el terreno..." name="Reclaim Land..."/> <button label="Venta Linden..." label_selected="Venta Linden..." name="Linden Sale..." tool_tip="El terreno debe estar en propiedad, con contenido, y no estar en subasta."/> - <string name="new users only"> + <panel.string name="new users only"> Sólo usuarios nuevos - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> Cualquiera - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> Superficie - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA] m² - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> ID de la subasta: [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> Debe aprobar su compra para modificar este terreno. - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (Propiedad del grupo) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> Perfil... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> Información... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (público) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (ninguno) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (Venta pendiente) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> No se ha seleccionado una parcela. Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver sus caracterÃsticas. - </string> + </panel.string> </panel> <panel label="Contrato" name="land_covenant_panel"> <text name="estate_section_lbl"> Estado: </text> - <text length="1" name="estate_name_lbl" type="string"> + <text name="estate_name_lbl"> Nombre: </text> - <text length="1" name="estate_name_text" type="string"> + <text name="estate_name_text"> mainland </text> - <text length="1" name="estate_owner_lbl" type="string"> + <text name="estate_owner_lbl"> Propietario: </text> - <text length="1" name="estate_owner_text" type="string"> + <text name="estate_owner_text"> (nadie) </text> - <text_editor length="1" name="covenant_editor" type="string"> + <text_editor name="covenant_editor"> No se ha aportado un contrato para este estado. </text_editor> - <text length="1" name="covenant_timestamp_text" type="string"> + <text name="covenant_timestamp_text"> Última modificación, Dic Miér 31 16:00:00 1969 </text> <text name="region_section_lbl"> Región: </text> - <text length="1" name="region_name_lbl" type="string"> + <text name="region_name_lbl"> Nombre: </text> - <text length="1" name="region_name_text" type="string"> + <text name="region_name_text"> leyla </text> <text name="region_landtype_lbl"> @@ -165,91 +165,91 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s <text name="resellable_lbl"> Revender: </text> - <text length="1" name="resellable_clause" type="string"> + <text name="resellable_clause"> El terreno de esta región no se podrá revender. </text> <text name="changeable_lbl"> Dividir: </text> - <text length="1" name="changeable_clause" type="string"> + <text name="changeable_clause"> El terreno de esta región no se podrá unir/dividir. </text> - <string name="can_resell"> + <panel.string name="can_resell"> El terreno comprado en esta región se podrá revender. - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> El terreno comprado en esta región no se podrá revender. - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> El terreno comprado en esta región se podrá unir o dividir. - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> El terreno comprado en esta región no se podrá unir o dividir. - </string> + </panel.string> </panel> <panel label="Objetos" name="land_objects_panel"> <text name="parcel_object_bonus"> Plus de objetos en la región: [BONUS] </text> - <text length="1" name="Simulator primitive usage:" type="string"> + <text name="Simulator primitive usage:"> Simulador de uso de prims: </text> - <text name="objects_available" left="214" width="230" > + <text name="objects_available" left="204" width="250" > [COUNT] de un máximo de [MAX] ([AVAILABLE] disponibles) </text> - <string name="objects_available_text"> + <panel.string name="objects_available_text"> [COUNT] de un máximo de [MAX] ([AVAILABLE] disponibles) - </string> - <string name="objects_deleted_text"> + </panel.string> + <panel.string name="objects_deleted_text"> [COUNT] de un máximo de [MAX] ([DELETED] se borrarán) - </string> - <text length="1" name="Primitives parcel supports:" type="string" width="200"> + </panel.string> + <text name="Primitives parcel supports:" width="200"> Prims que admite la parcela: </text> - <text name="object_contrib_text" left="214" width="152"> + <text name="object_contrib_text" left="204" width="152"> [COUNT] </text> - <text length="1" name="Primitives on parcel:" type="string"> + <text name="Primitives on parcel:"> Prims en la parcela: </text> - <text name="total_objects_text" left="214" width="48"> + <text name="total_objects_text" left="204" width="48"> [COUNT] </text> - <text length="1" name="Owned by parcel owner:" type="string" left="14" width="180" > + <text name="Owned by parcel owner:" left="14" width="180" > Del propietario de la parcela: </text> - <text name="owner_objects_text" left="214" width="48"> + <text name="owner_objects_text" left="204" width="48"> [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/> <button label="Devolver..." label_selected="Devolver..." name="ReturnOwner..." tool_tip="Devolver los objetos a sus propietarios." right="-10" width="119"/> - <text length="1" name="Set to group:" type="string" left="14" width="180"> + <text name="Set to group:" left="14" width="180"> Del grupo: </text> - <text name="group_objects_text" left="214" width="48"> + <text name="group_objects_text" left="204" width="48"> [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/> <button label="Devolver..." label_selected="Devolver..." name="ReturnGroup..." tool_tip="Devolver los objetos a sus propietarios." right="-10" width="119"/> - <text length="1" name="Owned by others:" type="string" left="14" width="128"> + <text name="Owned by others:" left="14" width="128"> Propiedad de otros: </text> - <text name="other_objects_text" left="214" width="48"> + <text name="other_objects_text" left="204" width="48"> [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/> <button label="Devolver..." label_selected="Devolver..." name="ReturnOther..." tool_tip="Devolver los objetos a sus propietarios." right="-10" width="119"/> - <text length="1" name="Selected / sat upon:" type="string" left="14" width="193" > + <text name="Selected / sat upon:" left="14" width="193" > Seleccionados / con gente sentada: </text> - <text name="selected_objects_text" left="214" width="48"> + <text name="selected_objects_text" left="204" width="48"> [COUNT] </text> <text name="Autoreturn" left="4" width="412" > Autodevolución de objetos a otros residentes (minutos; 0 la desactiva): </text> <line_editor name="clean other time" right="-20" /> - <text length="1" name="Object Owners:" type="string" width="150"> + <text name="Object Owners:" width="150"> Propietarios de los objetos: </text> <button label="Actualizar la lista" label_selected="Actualizar la lista" name="Refresh List" left="158"/> @@ -262,138 +262,140 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s </name_list> </panel> <panel label="Opciones" name="land_options_panel"> - <text length="1" name="allow_label" type="string"> + <text name="allow_label"> Permitir a otros residentes: </text> <check_box label="Editar el terreno" name="edit land check" tool_tip="Si se marca, cualquiera podrá modificar su terreno. Mejor dejarlo desmarcado, pues usted siempre puede modificar su terreno."/> <check_box label="Crear hitos" name="check landmark"/> <check_box label="Volar" name="check fly" tool_tip="Si se marca, los residentes podrán volar en su terreno. Si no, sólo podrán volar al cruzarlo o hasta que aterricen en él."/> - <text length="1" name="allow_label2" type="string" left="162" > + <text name="allow_label2" left="162" > Crear objetos: </text> <check_box label="Todos los residentes" name="edit objects check" left="255" /> <check_box label="El grupo" name="edit group objects check" left="385" /> - <text length="1" name="allow_label3" type="string" left="162"> + <text name="allow_label3" left="162"> Dejar objetos: </text> <check_box label="Todos los residentes" name="all object entry check" left="255"/> <check_box label="El grupo" name="group object entry check" left="385"/> - <text length="1" name="allow_label4" type="string" left="162"> + <text name="allow_label4" left="162"> Ejecutar scripts: </text> <check_box label="Todos los residentes" name="check other scripts" left="255"/> <check_box label="El grupo" name="check group scripts" left="385"/> - <text length="1" name="land_options_label" type="string"> + <text name="land_options_label"> Opciones del terreno: </text> <check_box label="Seguro (sin daño)" name="check safe" tool_tip="Si se marca, convierte el terreno en 'seguro', desactivando el daño en combate. Si no, se activa el daño en combate."/> <check_box label="Sin 'empujones'" name="PushRestrictCheck" tool_tip="Previene scripts que empujen. Marcando esta opción prevendrá que en su terreno haya comportamientos destructivos."/> <check_box label="Mostrar la parcela en Buscar (30 L$/semana) en" name="ShowDirectoryCheck" tool_tip="Let people see this parcel in search results"/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> Permitir que aparezca esta parcela en los resultados de la búsqueda - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> Esta opción está desactivada porque la parcela tiene 128 m² o menos. Sólo las parcelas más grandes pueden listarse en la búsqueda. - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> Esta opción no esta activada porque usted no puede modificar las opciones de la parcela. - </string> - <combo_box name="land category with adult"> - <combo_item name="AnyCategory"> - Cualquier categorÃa - </combo_item> - <combo_item name="LindenLocation"> - Localización Linden - </combo_item> - <combo_item name="Adult"> - 'Adult' - </combo_item> - <combo_item name="Arts&Culture"> - Arte y Cultura - </combo_item> - <combo_item name="Business"> - Negocios - </combo_item> - <combo_item name="Educational"> - Educativo - </combo_item> - <combo_item name="Gaming"> - Juegos de azar - </combo_item> - <combo_item name="Hangout"> - Entretenimiento - </combo_item> - <combo_item name="NewcomerFriendly"> - Para recién llegados - </combo_item> - <combo_item name="Parks&Nature"> - Parques y Naturaleza - </combo_item> - <combo_item name="Residential"> - Residencial - </combo_item> - <combo_item name="Shopping"> - Compras - </combo_item> - <combo_item name="Other"> - Otra - </combo_item> + </panel.string> + <combo_box name="land category with adult" left="282" width="140"> + <combo_box.item name="item0" label="Cualquier categorÃa" + /> + <combo_box.item name="item1" label="Localización Linden" + /> + <combo_box.item name="item2" label="'Adult'" + /> + <combo_box.item name="item3" label="Arte y Cultura" + /> + <combo_box.item name="item4" label="Negocios" + /> + <combo_box.item name="item5" label="Educativo" + /> + <combo_box.item name="item6" label="Juegos de azar" + /> + <combo_box.item name="item7" label="Entretenimiento" + /> + <combo_box.item name="item8" label="Para recién llegados" + /> + <combo_box.item name="item9" label="Parques y Naturaleza" + /> + <combo_box.item name="item10" label="Residencial" + /> + <combo_box.item name="item11" label="Compras" + /> + <combo_box.item name="item12" label="Otra" + /> </combo_box> - <combo_box name="land category"> - <combo_box.item name="AnyCategory" label="Cualquier categorÃa"/> - <combo_box.item name="LindenLocation" label="Localización Linden"/> - <combo_box.item name="Arts&Culture" label="Arte y Cultura"/> - <combo_box.item name="Business" label="Negocios"/> - <combo_box.item name="Educational" label="Educativo"/> - <combo_box.item name="Gaming" label="Juegos de azar"/> - <combo_box.item name="Hangout" label="Entretenimiento"/> - <combo_box.item name="NewcomerFriendly" label="Para recién llegados"/> - <combo_box.item name="Parks&Nature" label="Parques y Naturaleza"/> - <combo_box.item name="Residential" label="Residencial"/> - <combo_box.item name="Shopping" label="Compras"/> - <combo_box.item name="Other" label="Otra"/> + <combo_box name="land category" left="282" width="140"> + <combo_box.item name="item0" label="Cualquier categorÃa" + /> + <combo_box.item name="item1" label="Localización Linden" + /> + <combo_box.item name="item3" label="Arte y Cultura" + /> + <combo_box.item name="item4" label="Negocios" + /> + <combo_box.item name="item5" label="Educativo" + /> + <combo_box.item name="item6" label="Juegos de azar" + /> + <combo_box.item name="item7" label="Entretenimiento" + /> + <combo_box.item name="item8" label="Para recién llegados" + /> + <combo_box.item name="item9" label="Parques y Naturaleza" + /> + <combo_box.item name="item10" label="Residencial" + /> + <combo_box.item name="item11" label="Compras" + /> + <combo_box.item name="item12" label="Otra" + /> </combo_box> - <button label="?" label_selected="?" name="?"/> + <button label="?" label_selected="?" name="?" left="427"/> <check_box label="Contenido 'Mature'" name="MatureCheck" tool_tip=""/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Contenido 'Mature' - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Contenido 'Adult' - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> La información o el contenido de su parcela se considera 'Mature'. - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> La información o el contenido de su parcela se considera 'Adult'. - </string> - <text length="1" name="Snapshot:" type="string"> + </panel.string> + <text name="Snapshot:"> Foto: </text> <texture_picker label="" name="snapshot_ctrl" tool_tip="Pulse para elegir una imagen"/> <text name="landing_point"> Punto de llegada: [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (ninguno) - </string> + </panel.string> <button label="Definir" label_selected="Definir" name="Set" tool_tip="Configura el punto de llegada donde aparecerán los visitantes. Configúrelo a la posición de su avatar dentro de esta parcela."/> <button label="Borrar" label_selected="Borrar" name="Clear" tool_tip="Borrar el punto de llegada."/> - <text length="1" name="Teleport Routing: " type="string"> + <text name="Teleport Routing: "> Punto de teleporte: </text> <combo_box name="landing type" tool_tip="Punto de teleporte: defina cómo manejar en su terreno los teleportes."> - <combo_box.item length="1" name="Blocked" type="string" label="Bloqueado"/> - <combo_box.item length="1" name="LandingPoint" type="string" label="Punto de llegada"/> - <combo_box.item length="1" name="Anywhere" type="string" label="Cualquiera"/> + <combo_box.item name="Blocked" label="Bloqueado" + /> + <combo_box.item name="LandingPoint" label="Punto de llegada" + /> + <combo_box.item name="Anywhere" label="Cualquiera" + /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> Sin 'empujones' - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> Sin 'empujones' (prevalece lo marcado en la región) - </string> + </panel.string> </panel> <panel label="Media" name="land_media_panel"> <text name="with media:" width="85"> @@ -409,7 +411,7 @@ Sólo las parcelas más grandes pueden listarse en la búsqueda. Descripción: </text> <line_editor name="url_description" tool_tip="Texto a mostrar cerca del botón play/cargar" left="97" /> - <text length="1" name="Media texture:" type="string"> + <text name="Media texture:"> Cambiar la textura: </text> @@ -452,7 +454,7 @@ música: <check_box left="117" label="Limitar la voz a esta parcela" name="parcel_enable_voice_channel_parcel"/> </panel> <panel label="Acceso" name="land_access_panel"> - <text length="1" name="Limit access to this parcel to:" type="string"> + <text name="Limit access to this parcel to:"> Acceso a esta parcela </text> <check_box label="Permitir el acceso público" name="public_access"/> @@ -461,14 +463,16 @@ música: </text> <check_box label="Residentes que no hayan dado a Linden Lab información de su forma de pago" name="limit_payment" tool_tip="Impedir el acceso a los residentes no identificados."/> <check_box label="Residentes de los que no se ha verificado si son adultos" name="limit_age_verified" tool_tip="Residentes que no hayan verificado su edad. Para más información, vea support.secondlife.com"/> - <string name="estate_override"> + <panel.string name="estate_override"> Una o más de esta opciones está configurada a nivel del estado - </string> + </panel.string> <check_box label="Acceso permitido al grupo: [GROUP]" 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 name="Anyone" label="Cualquiera"/> - <combo_box.item name="Group" label="Grupo"/> + <combo_box.item name="Anyone" label="Cualquiera" + /> + <combo_box.item name="Group" label="Grupo" + /> </combo_box> <spinner label="Precio en L$:" name="PriceSpin"/> <spinner label="Horas de acceso:" name="HoursSpin"/> 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 105111f29fa1c6c5b9e4a0cdfa300aa51001fba1..68a56ac678268c8b2ba4979b138f4a8e1c9088c5 100644 --- a/indra/newview/skins/default/xui/es/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/es/floater_avatar_picker.xml @@ -14,13 +14,15 @@ </panel> <panel label="Cercanos" name="NearMePanel"> <text name="InstructSelectResident"> - Seleccionar un residente cercano: + Seleccionar un +residente cercano: </text> - <button label="Actualizar la lista" label_selected="Actualizar la lista" name="Refresh"/> - <slider label="Alcance" name="near_me_range"/> + <button font="SansSerifSmall" left_delta="1" width="115" label="Actualizar la lista" label_selected="Actualizar la lista" name="Refresh"/> + <slider label="Alcance" name="near_me_range" bottom_delta="-36"/> <text name="meters"> Metros </text> + <scroll_list bottom_delta="-169" height="159" name="NearMe" /> </panel> </tab_container> <button label="Elegir" label_selected="Elegir" name="Select"/> diff --git a/indra/newview/skins/default/xui/es/floater_build_options.xml b/indra/newview/skins/default/xui/es/floater_build_options.xml index bbb5b0e36d5e7d3fa3460b6cd5041fe2b3833baa..c3e4acacf09f2189defacd4dd721d523abb91695 100644 --- a/indra/newview/skins/default/xui/es/floater_build_options.xml +++ b/indra/newview/skins/default/xui/es/floater_build_options.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="build options floater" title="Opciones de la cuadrÃcula"> - <spinner label="Unidad de la cuadrÃcula (metros)" name="GridResolution"/> - <spinner label="Graduación de la cuadrÃcula (metros)" name="GridDrawSize"/> + <spinner label="Unidad de la cuadrÃcula (metros)" name="GridResolution" width="250" label_width="192"/> + <spinner label="Graduación de la cuadrÃcula (metros)" name="GridDrawSize" width="250" label_width="192"/> <check_box label="Activar subunidades" name="GridSubUnit"/> <check_box label="Ver la sección transversal" name="GridCrossSection"/> - <slider label="Opacidad de la cuadrÃcula" name="GridOpacity"/> + <slider label="Opacidad de la cuadrÃcula" name="GridOpacity" width="250"/> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_buy_contents.xml b/indra/newview/skins/default/xui/es/floater_buy_contents.xml index e93b8bce2d839567fd0756421c00df457030fe6e..2346798f94aa8c71dfe5139c99cc4cc85913572e 100644 --- a/indra/newview/skins/default/xui/es/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/es/floater_buy_contents.xml @@ -6,7 +6,7 @@ <text name="buy_text"> ¿Comprar por [AMOUNT] L$ a [NAME]? </text> - <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/> + <button label="Cancelar" label_selected="Cancelar" name="cancel_btn" width="73"/> <button label="Comprar" label_selected="Comprar" name="buy_btn"/> <check_box label="Vestirse ahora la ropa" name="wear_check"/> <string name="no_copy_text"> diff --git a/indra/newview/skins/default/xui/es/floater_buy_currency.xml b/indra/newview/skins/default/xui/es/floater_buy_currency.xml index b26a9c7494ce82301d275c85641ef28af1f0cf57..a01e07e694b8a7dfd2ec8df3ba025920a15edabb 100644 --- a/indra/newview/skins/default/xui/es/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/es/floater_buy_currency.xml @@ -22,14 +22,14 @@ <text name="buy_action"> [NAME] [PRICE] L$ </text> - <text name="currency_action"> - Comprar L$ + <text name="currency_action" width="50"> + Comprar </text> - <line_editor name="currency_amt"> + <line_editor name="currency_amt" width="65" left_delta="50"> 1234 </line_editor> - <text name="currency_est"> - por, aprox., [USD] US$ + <text name="currency_est" width="138" left_delta="68"> + L$ por, aprox., [USD] US$ </text> <text name="getting_data"> Obteniendo los datos... @@ -63,6 +63,6 @@ Aumente la cantidad a comprar. <button label="Cancelar" name="cancel_btn"/> <button label="Comprar" name="buy_btn"/> <string name="buy_currency"> - Comprar L$ [LINDENS] por, aprox., [USD] U$D + Compre [LINDENS] L$ por, aprox., [USD] US$ </string> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_color_picker.xml b/indra/newview/skins/default/xui/es/floater_color_picker.xml index 238853c58dd8dba637a7e9d073746b525ab83c75..c220c48cb0b2f1c9eb7fe3bdad004602d85b6810 100644 --- a/indra/newview/skins/default/xui/es/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/es/floater_color_picker.xml @@ -25,6 +25,7 @@ Color actual: </text> <text name="(Drag below to save.)"> - (Arrástrelo abajo para guardarlo) + (Arrástrelo abajo + para guardarlo.) </text> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_customize.xml b/indra/newview/skins/default/xui/es/floater_customize.xml index 5efc989eff7ba41a522bcad7cd73f514f728fc61..1322b9a5cf256217eb328fb36eaf0c6cbc3ca9cf 100644 --- a/indra/newview/skins/default/xui/es/floater_customize.xml +++ b/indra/newview/skins/default/xui/es/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="Apariencia" width="527"> <tab_container name="customize tab container" width="525"> - <panel label="Partes del cuerpo" name="body_parts_placeholder"/> + <placeholder label="Partes del cuerpo" name="body_parts_placeholder"/> <panel label="Forma" name="Shape" width="389"> <button label="Restablecer" label_selected="Restablecer" name="Revert"/> <button label="Cuerpo" label_selected="Cuerpo" name="Body"/> @@ -14,29 +14,29 @@ <button label="Torso" label_selected="Torso" name="Torso"/> <button label="Piernas" label_selected="Piernas" name="Legs"/> <radio_group name="sex radio"> - <radio_item length="1" name="radio" type="string" label="Mujer" /> - <radio_item length="1" name="radio2" type="string" label="Varón" /> + <radio_item name="radio" label="Mujer" /> + <radio_item name="radio2" label="Varón" /> </radio_group> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificable </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situada en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase una forma nueva arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -51,26 +51,26 @@ avatar. O parta de cero creando una nueva y vistiéndola. <button label="Detalles faciales" label_selected="Detalles faciales" name="Face Detail" width="115"/> <button label="Maquillaje" label_selected="Maquillaje" name="Makeup" width="115"/> <button label="Detalles del cuerpo" label_selected="Detalles del cuerpo" name="Body Detail" width="115"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificable </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situada en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otra piel arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -89,26 +89,26 @@ avatar. O parta de cero creando una nueva y vistiéndola. <button label="Peinado" label_selected="Peinado" name="Style"/> <button label="Cejas" label_selected="Cejas" name="Eyebrows"/> <button label="Facial" label_selected="Facial" name="Facial"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificable </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situado en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otro pelo arrastrando uno desde su inventario hasta su avatar. O parta de cero creando uno nueva y vistiéndolo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -121,26 +121,26 @@ avatar. O parta de cero creando uno nueva y vistiéndolo. <button label="Restablecer" label_selected="Restablecer" name="Revert"/> </panel> <panel label="Ojos" name="Eyes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificables </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situados en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otros ojos arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -161,26 +161,26 @@ avatar. O parta de cero creando unos nuevos y vistiéndoselos. <button left="113" label="Guardar" label_selected="Guardar" name="Save"/> <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/> <button label="Restablecer" label_selected="Restablecer" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificable </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situada en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otra camisa arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -195,26 +195,26 @@ avatar. O parta de cero creando una nueva y vistiéndola. <button left="113" label="Guardar" label_selected="Guardar" name="Save"/> <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/> <button label="Restablecer" label_selected="Restablecer" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificables </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situados en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otros pantalones arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -222,26 +222,26 @@ avatar. O parta de cero creando unos nuevos y vistiéndoselos. </text> </panel> <panel label="Zapatos" name="Shoes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificables </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situados en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otros zapatos arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -256,26 +256,26 @@ avatar. O parta de cero creando unos nuevos y vistiéndoselos. <button label="Restablecer" label_selected="Restablecer" name="Revert"/> </panel> <panel label="Calcetines" name="Socks"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificables </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situados en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otros calcetines arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -290,26 +290,26 @@ avatar. O parta de cero creando unos nuevos y vistiéndoselos. <button label="Restablecer" label_selected="Restablecer" name="Revert"/> </panel> <panel label="Chaqueta" name="Jacket"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificable </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situada en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otra chaqueta arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -325,26 +325,26 @@ avatar. O parta de cero creando una nueva y vistiéndola. <button label="Restablecer" label_selected="Restablecer" name="Revert"/> </panel> <panel label="Guantes" name="Gloves"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificables </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situados en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otros guantes arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -359,26 +359,26 @@ avatar. O parta de cero creando unos nuevos y vistiéndoselos. <button label="Restablecer" label_selected="Restablecer" name="Revert"/> </panel> <panel label="Camiseta" name="Undershirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificable </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situada en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otra camiseta arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -393,26 +393,26 @@ avatar. O parta de cero creando una nueva y vistiéndola. <button label="Restablecer" label_selected="Restablecer" name="Revert"/> </panel> <panel label="Ropa interior" name="Underpants"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificable </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situada en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otra ropa interior arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> @@ -427,26 +427,26 @@ avatar. O parta de cero creando una nueva y vistiéndola. <button label="Restablecer" label_selected="Restablecer" name="Revert"/> </panel> <panel label="Falda" name="Skirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: no modificable </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: cargando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: no lleva </text> - <text length="1" name="path" type="string"> + <text name="path"> Situada en [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Póngase otra falda arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> No tiene permiso para modificar este Ãtem. </text> <text name="Item Action Label" right="107"> diff --git a/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml index dd7450523906dc1a146a84af34723ab617cc984f..9ee7fc3ead2eac226a1a1d5fa6fd06f8bd442dda 100644 --- a/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml @@ -57,9 +57,9 @@ <text name="WL12amHash2"> | </text> - <button label="Añadir un punto" label_selected="Añadir un punto" name="WLAddKey"/> - <button label="Quitar un punto" label_selected="Quitar un punto" name="WLDeleteKey"/> - <text name="WLCurKeyFrameText"> + <button font="SansSerifSmall" width="96" left="546" label="Añadir un punto" label_selected="Añadir un punto" name="WLAddKey"/> + <button font="SansSerifSmall" width="96" left="546" label="Quitar un punto" label_selected="Quitar un punto" name="WLDeleteKey"/> + <text font="SansSerifSmall" name="WLCurKeyFrameText" width="190"> Configuración del fotograma clave: </text> <text name="WLCurKeyTimeText"> @@ -86,9 +86,9 @@ </text> <button label="Probar" label_selected="Probar" name="WLAnimSky"/> <button label="Parar" label_selected="Parar" name="WLStopAnimSky"/> - <button label="Usar el horario del estado" label_selected="Ir al horario del estado" name="WLUseLindenTime"/> - <button label="Guardar este tipo de dÃa" label_selected="Guardar este tipo de dÃa" name="WLSaveDayCycle"/> - <button label="Cargar y probar un tipo de dÃa" label_selected="Cargar y probar un tipo de dÃa" name="WLLoadDayCycle"/> + <button width="150" font="SansSerifSmall" label="Usar el horario del estado" label_selected="Ir al horario del estado" name="WLUseLindenTime"/> + <button left="440" width="180" font="SansSerifSmall" label="Guardar este tipo de dÃa" label_selected="Guardar este tipo de dÃa" name="WLSaveDayCycle"/> + <button left="440" width="180" font="SansSerifSmall" label="Cargar y probar un tipo de dÃa" label_selected="Cargar y probar un tipo de dÃa" name="WLLoadDayCycle"/> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_env_settings.xml b/indra/newview/skins/default/xui/es/floater_env_settings.xml index 8b9bfe7362fb21c54e3bc8aef7578829367f57f4..65710fc5ed7fefcd0751cb430b3355c4d9ec94ec 100644 --- a/indra/newview/skins/default/xui/es/floater_env_settings.xml +++ b/indra/newview/skins/default/xui/es/floater_env_settings.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Environment Editor Floater" title="Editor del entorno"> <text name="EnvTimeText"> - Duración de un dÃa + Duración de +un dÃa </text> <text name="EnvTimeText2"> 12:00 PM @@ -10,14 +11,16 @@ Nubosidad </text> <text name="EnvWaterColorText"> - Color del agua + Color del +agua </text> <color_swatch label="" name="EnvWaterColor" tool_tip="Pulse para abrir el selector de color"/> <text name="EnvWaterFogText"> - Claridad del agua + Claridad del +agua </text> - <button label="Usar el horario del estado" name="EnvUseEstateTimeButton"/> - <button label="Cielo avanzado" name="EnvAdvancedSkyButton"/> - <button label="Agua avanzada" name="EnvAdvancedWaterButton"/> + <button bottom="-144" label="Usar el horario del estado" name="EnvUseEstateTimeButton" width="155"/> + <button label="Cielo avanzado" name="EnvAdvancedSkyButton" width="155" left="167" /> + <button label="Agua avanzada" name="EnvAdvancedWaterButton" width="155" left="326"/> <button label="?" name="EnvSettingsHelpButton"/> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_gesture.xml b/indra/newview/skins/default/xui/es/floater_gesture.xml index 4f19286d01284ac72fbc487e7f03a6e73f5577ec..e7f1a7aca27fd8c134d9dfe440c096b20190d218 100644 --- a/indra/newview/skins/default/xui/es/floater_gesture.xml +++ b/indra/newview/skins/default/xui/es/floater_gesture.xml @@ -1,9 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="gestures" title="Gestos disponibles"> <text name="help_label"> - Pulse dos veces en un gesto para reproducir las animaciones y sonidos. + Pulse dos veces en un gesto para reproducir las animaciones +y sonidos. </text> - <scroll_list name="gesture_list"> + <scroll_list bottom_delta="-385" height="360" name="gesture_list"> <column label="Botón" name="trigger"/> <column label="Tecla" name="shortcut"/> <column label="Nombre" name="name"/> diff --git a/indra/newview/skins/default/xui/es/floater_inspect.xml b/indra/newview/skins/default/xui/es/floater_inspect.xml index 7a9f76de0f220782e289c96e6f3e16fbb815b254..026081bc042ae3400a63c559cb99bdc341320ebc 100644 --- a/indra/newview/skins/default/xui/es/floater_inspect.xml +++ b/indra/newview/skins/default/xui/es/floater_inspect.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="inspect" title="Examinar objetos"> +<floater name="inspect" title="Examinar objetos" min_width="450"> <scroll_list name="object_list" tool_tip="Seleccione un objeto de esta lista para realzarlo en el mundo"> <column label="Nombre del objeto" name="object_name"/> - <column label="Nombre del propietario" name="owner_name"/> - <column label="Nombre del creador" name="creator_name"/> + <column label="Propietario" name="owner_name"/> + <column label="Creador" name="creator_name"/> <column label="Fecha de creación" name="creation_date"/> </scroll_list> - <button label="Ver el perfil del propietario..." label_selected="" name="button owner" tool_tip="Ver el perfil del propietario del objeto realzado"/> - <button label="Ver el perfil del creadir..." label_selected="" name="button creator" tool_tip="Ver el perfil del creador original del objeto realzado"/> + <button width="185" label="Ver el perfil del propietario..." label_selected="" name="button owner" tool_tip="Ver el perfil del propietario del objeto realzado"/> + <button width="165" left="205" label="Ver el perfil del creador..." label_selected="" name="button creator" tool_tip="Ver el perfil del creador original del objeto realzado"/> </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 d341de17e90b5e74916428564d1c9ec526195318..7cd787bfb5188b8b3906b3df0317c6c15b922c54 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 @@ -11,14 +11,14 @@ <check_box label="Sonidos" name="check_sound"/> <check_box label="Texturas" name="check_texture"/> <check_box label="Fotos" name="check_snapshot"/> - <button label="Todo" label_selected="Todo" name="All"/> - <button label="Nada" label_selected="Nada" name="None"/> - <check_box label="Mostrar siempre las carpetas" name="check_show_empty"/> - <check_box label="Desde el fin de sesión" name="check_since_logoff"/> - <text length="1" name="- OR -" type="string"> + <button label="Todo" label_selected="Todo" name="All" width="70"/> + <button label="Nada" label_selected="Nada" name="None" width="70" bottom_delta="0" left="83"/> + <check_box label="Mostrar siempre las carpetas" name="check_show_empty"/> + <check_box label="Desde el fin de sesión" name="check_since_logoff" bottom_delta="-36"/> + <text name="- OR -"> - O - </text> <spinner label="horas atrás" name="spin_hours_ago"/> <spinner label="dÃas atrás" name="spin_days_ago"/> - <button label="Cerrar" label_selected="Cerrar" name="Close"/> + <button label="Cerrar" label_selected="Cerrar" name="Close" bottom_delta="-30"/> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_joystick.xml b/indra/newview/skins/default/xui/es/floater_joystick.xml index da7753a7d760e1a201bc4fa6db33074e3d4ebb32..2e0fb87744b2c0a3ba176ec07091813d2545c80e 100644 --- a/indra/newview/skins/default/xui/es/floater_joystick.xml +++ b/indra/newview/skins/default/xui/es/floater_joystick.xml @@ -1,8 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="Configuración del joystick"> - <check_box name="enable_joystick"> - Activar el joystick: - </check_box> + <check_box name="enable_joystick" label="Activar el joystick:"/> <text left="140" name="joystick_type" width="360"/> <spinner label="Mapping: eje X" name="JoystickAxis1" label_width="118" width="161"/> <spinner label="Mapping: eje Y" name="JoystickAxis2" label_width="105" width="148"/> @@ -17,15 +15,9 @@ <text name="Control Modes:"> Modos de control: </text> - <check_box name="JoystickAvatarEnabled"> - Avatar - </check_box> - <check_box name="JoystickBuildEnabled" left="192"> - Construir - </check_box> - <check_box name="JoystickFlycamEnabled"> - Flycam - </check_box> + <check_box name="JoystickAvatarEnabled" label="Avatar"/> + <check_box name="JoystickBuildEnabled" left="192" label="Construir"/> + <check_box name="JoystickFlycamEnabled" label="Flycam"/> <text name="XScale"> Escala: X </text> @@ -74,12 +66,14 @@ <button label="Predeterminados del SpaceNavigator" name="SpaceNavigatorDefaults" font="SansSerifSmall" left="330" width="210"/> <button label="OK" label_selected="OK" name="ok_btn" left="330"/> <button label="Cancelar" label_selected="Cancelar" name="cancel_btn" left_delta="120"/> - <string name="JoystickMonitor"> - Monitor del joystick - </string> - <string name="Axis"> - Eje [NUM] - </string> + <stat_view label="Monitor del joystick" name="axis_view"> + <stat_bar label="Eje 0" name="axis0"/> + <stat_bar label="Eje 1" name="axis1"/> + <stat_bar label="Eje 2" name="axis2"/> + <stat_bar label="Eje 3" name="axis3"/> + <stat_bar label="Eje 4" name="axis4"/> + <stat_bar label="Eje 5" name="axis5"/> + </stat_view> <string name="NoDevice"> no se ha detectado el dispositivo </string> diff --git a/indra/newview/skins/default/xui/es/floater_lagmeter.xml b/indra/newview/skins/default/xui/es/floater_lagmeter.xml index 7d499750de8005328923f5094658a197ff6cd0ef..1af0bb065cbd3e3e5dbc8ef4ebc99cbcfd2e6a6b 100644 --- a/indra/newview/skins/default/xui/es/floater_lagmeter.xml +++ b/indra/newview/skins/default/xui/es/floater_lagmeter.xml @@ -4,23 +4,26 @@ <text name="client"> Cliente: </text> - <text name="client_text"> + <text name="client_text" font="SansSerifSmall"> Normal </text> + <text left="30" name="client_lag_cause" right="-10" /> <button label="" label_selected="" name="network_lagmeter" tool_tip="Estado del lag de la red"/> <text name="network"> Red: </text> - <text name="network_text"> + <text name="network_text" font="SansSerifSmall"> Normal </text> + <text left="30" name="network_lag_cause" right="-10" /> <button label="" label_selected="" name="server_lagmeter" tool_tip="Estado del lag del servidor"/> <text name="server"> Servidor: </text> - <text name="server_text"> + <text name="server_text" font="SansSerifSmall"> Normal </text> + <text left="30" name="server_lag_cause" right="-32" /> <button label="?" name="server_help"/> <button label=">>" name="minimize"/> <string name="max_title_msg"> @@ -117,10 +120,10 @@ 20 </string> <string name="server_frame_time_critical_msg"> - Frecuencia del simulador -framerate- por debajo de [SERVER_FRAME_RATE_CRITICAL] + Frecuencia (framerate) por debajo de [SERVER_FRAME_RATE_CRITICAL] </string> <string name="server_frame_time_warning_msg"> - Frecuencia del simulador -framerate- entre [SERVER_FRAME_RATE_CRITICAL] y [SERVER_FRAME_RATE_WARNING] + Frecuencia (framerate) entre [SERVER_FRAME_RATE_CRITICAL] y [SERVER_FRAME_RATE_WARNING] </string> <string name="server_frame_time_normal_msg"> Normal diff --git a/indra/newview/skins/default/xui/es/floater_land_holdings.xml b/indra/newview/skins/default/xui/es/floater_land_holdings.xml index 5c08b04055061397777912d17724206844551538..5df319905df256ab2b24339a6f5f6083b4a17679 100644 --- a/indra/newview/skins/default/xui/es/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/es/floater_land_holdings.xml @@ -8,7 +8,7 @@ <column label="" name="hidden"/> </scroll_list> <button label="Teleportar" label_selected="Teleportar" name="Teleport" tool_tip="Teleportar al centro de este terreno."/> - <button label="Mostrar en el mapa" label_selected="Mostrar en el mapa" name="Show on Map" tool_tip="Mostrar este terreno en el mapa del mundo."/> + <button width="130" label="Mostrar en el mapa" label_selected="Mostrar en el mapa" name="Show on Map" tool_tip="Mostrar este terreno en el mapa del mundo."/> <text name="contrib_label"> Contribuciones a sus grupos: </text> diff --git a/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml index 00a69955759ee5897e0584646689d546c13d6aa6..226c3482af24c5c3b21479230687d917e93e5edd 100644 --- a/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml +++ b/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="script ed float" title="Script: script nuevo"> <button label="Reiniciar" label_selected="Reiniciar" name="Reset"/> - <check_box label="Ejecutándose" name="running"/> - <check_box label="Mono" name="mono"/> + <check_box label="Ejecutándose" name="running" left="4"/> + <check_box label="Mono" name="mono" left="106"/> <string name="not_allowed"> No está autorizado para ver este script. </string> diff --git a/indra/newview/skins/default/xui/es/floater_lsl_guide.xml b/indra/newview/skins/default/xui/es/floater_lsl_guide.xml index c1e431f274d29077ad010be34766cb9b22b72c3b..859a2d38124c697bfa67bbf90570c8690450a465 100644 --- a/indra/newview/skins/default/xui/es/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/es/floater_lsl_guide.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="script ed float" title="Wiki de LSL"> <check_box label="Seguir al cursor" name="lock_check"/> - <combo_box label="Bloquear" name="history_combo"/> - <button label="Atrás" name="back_btn"/> + <combo_box label="Bloquear" name="history_combo" left_delta="120" width="70"/> + <button label="Atrás" name="back_btn" left_delta="75"/> <button label="Adelante" name="fwd_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_map.xml b/indra/newview/skins/default/xui/es/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..c167221b731823f1f91fa767eb7f67de0fcae417 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + N + </floater.string> + <floater.string name="mini_map_east"> + E + </floater.string> + <floater.string name="mini_map_west"> + O + </floater.string> + <floater.string name="mini_map_south"> + S + </floater.string> + <floater.string name="mini_map_southeast"> + SE + </floater.string> + <floater.string name="mini_map_northeast"> + NE + </floater.string> + <floater.string name="mini_map_southwest"> + SO + </floater.string> + <floater.string name="mini_map_northwest"> + NO + </floater.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="E" name="floater_map_east" text="E"> + E + </text> + <text label="O" name="floater_map_west" text="O"> + O + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SO" name="floater_map_southwest" text="SO"> + SO + </text> + <text label="NW" name="floater_map_northwest" text="NO"> + NO + </text> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_media_browser.xml b/indra/newview/skins/default/xui/es/floater_media_browser.xml index 9b60b2853783c0eeaf0b033861c47a3737f9e5eb..79c8980c02571feb1e72c9ea453c23d512269a86 100644 --- a/indra/newview/skins/default/xui/es/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/es/floater_media_browser.xml @@ -2,10 +2,11 @@ <floater name="floater_about" title="Navegador"> <layout_stack name="stack1"> <layout_panel name="nav_controls"> - <button label="Atrás" name="back"/> - <button label="Adelante" name="forward"/> - <button label="Actualizar" name="reload"/> - <button label="Ir" name="go"/> + <button label="Atrás" name="back" width="75"/> + <button label="Adelante" name="forward" left_delta="75" width="70"/> + <button label="Actualizar" name="reload" left_delta="75"/> + <combo_box left_delta="75" name="address" width="510"/> + <button label="Ir" name="go" left_delta="515"/> </layout_panel> <layout_panel name="parcel_owner_controls"> <button label="Enviar a la parcela la URL actual" name="assign"/> diff --git a/indra/newview/skins/default/xui/es/floater_moveview.xml b/indra/newview/skins/default/xui/es/floater_moveview.xml index a5cd2f309746548a74ff7e73edc129c5385cb312..a61cebbf80c2ab098cb656fc37f4898153b73a08 100644 --- a/indra/newview/skins/default/xui/es/floater_moveview.xml +++ b/indra/newview/skins/default/xui/es/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Girar a la izquierda"/> <button label="" label_selected="" name="turn right btn" tool_tip="Girar a la derecha"/> <button label="" label_selected="" name="move up btn" tool_tip="Saltar o ascender"/> @@ -8,4 +9,5 @@ <joystick_slide name="slide right btn" tool_tip="Ir hacia la derecha"/> <joystick_turn name="forward btn" tool_tip="Ir hacia adelante"/> <joystick_turn name="backward btn" tool_tip="Ir hacia atrás"/> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_mute_object.xml b/indra/newview/skins/default/xui/es/floater_mute_object.xml index a2b87b67abae5b3b454bcf8ebdc898a66ae2be65..0cf38c09ee08a03fddc72b2a9f0ad29ed42ee229 100644 --- a/indra/newview/skins/default/xui/es/floater_mute_object.xml +++ b/indra/newview/skins/default/xui/es/floater_mute_object.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="mute by name" title="Ignorar un objeto según su nombre"> - <text name="message"> - Ignorar según el nombre sólo afecta al chat y los MI del objeto, no a sus sonidos. + <text name="message" bottom_delta="-40"> + Ignorar según el nombre sólo afecta al chat y los MI del +objeto, no a sus sonidos. Debe escribir exactamente el nombre del objeto. </text> - <line_editor name="object_name"> + <line_editor name="object_name" bottom_delta="-58"> Nombre del objeto </line_editor> <button label="OK" name="OK"/> diff --git a/indra/newview/skins/default/xui/es/floater_openobject.xml b/indra/newview/skins/default/xui/es/floater_openobject.xml index c7846afa6a6f18469da1e0bd98b733102e96da4f..60487b829c59216cd526d4f347953c2d1eac4430 100644 --- a/indra/newview/skins/default/xui/es/floater_openobject.xml +++ b/indra/newview/skins/default/xui/es/floater_openobject.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="objectcontents" title="Contenido del objeto"> - <text length="1" name="object_name" type="string"> + <text name="object_name"> [DESC]: </text> <button label="Copiar al inventario" label_selected="Copiar al inventario" name="copy_to_inventory_button"/> diff --git a/indra/newview/skins/default/xui/es/floater_pay.xml b/indra/newview/skins/default/xui/es/floater_pay.xml index 9770e90bf4aee60c2429305ba9501a19182be32d..64156d94e325fb829f86516d2ec2bd136c4b0122 100644 --- a/indra/newview/skins/default/xui/es/floater_pay.xml +++ b/indra/newview/skins/default/xui/es/floater_pay.xml @@ -6,16 +6,17 @@ <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> <button label="Pagar" label_selected="Pagar" name="pay btn"/> <button label="Cancelar" label_selected="Cancelar" name="cancel btn"/> - <text length="1" name="payee_label" type="string"> + <text name="payee_label" left="5" width="105"> Pagar al residente: </text> - <text length="1" name="payee_name" type="string"> + <text name="payee_name" left="115"> [FIRST] [LAST] </text> - <text length="1" name="fastpay text" type="string"> + <text name="fastpay text" width="100" halign="left"> Pago rápido: </text> - <text length="1" name="amount text" type="string"> + <text name="amount text" left="4" > Cantidad: </text> + <line_editor left="60" name="amount" width="55"/> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_pay_object.xml b/indra/newview/skins/default/xui/es/floater_pay_object.xml index 86b3af76f88f548116faef57b28145c38e568be6..b5eca53bfa23c531b0ddc6db5ddb598693e5bea4 100644 --- a/indra/newview/skins/default/xui/es/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/es/floater_pay_object.xml @@ -1,24 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <text length="1" name="payee_group" type="string"> + <text name="payee_group" left="5" width="110"> Pagar al grupo: </text> - <text length="1" name="payee_resident" type="string"> + <text name="payee_resident" left="5" width="110"> Pagar al residente: </text> - <text length="1" name="payee_name" type="string"> + <text name="payee_name" left="120" width="180"> [FIRST] [LAST] </text> - <text length="1" name="object_name_label" type="string"> + <text name="object_name_label" left="5" width="110"> A través del objeto: </text> - <text length="1" name="object_name_text" type="string"> + <text name="object_name_text" left="120" width="180"> ... </text> - <text length="1" name="fastpay text" type="string"> + <text name="fastpay text"> Pago rápido: </text> - <text length="1" name="amount text" type="string"> + <text name="amount text"> Cantidad: </text> <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> diff --git a/indra/newview/skins/default/xui/es/floater_preferences.xml b/indra/newview/skins/default/xui/es/floater_preferences.xml index 56e99e2285dad436a6b67efbd5f086e92564982c..df7fc93dd9eff5676efea0ac5a0607bd4b742e59 100644 --- a/indra/newview/skins/default/xui/es/floater_preferences.xml +++ b/indra/newview/skins/default/xui/es/floater_preferences.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Preferences" title="Preferencias"> +<floater name="Preferences" title="Preferencias" min_width="350" width="646"> <button label="OK" label_selected="OK" name="OK"/> <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> <button label="Aplicar" label_selected="Aplicar" name="Apply"/> - <button label="Acerca de" label_selected="Acerca de" name="About..."/> + <button label="Acerca de..." label_selected="Acerca de..." name="About..." /> <button label="Ayuda" label_selected="Ayuda" name="Help"/> + <tab_container name="pref core" tab_width="146" width="646" /> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_preview_animation.xml b/indra/newview/skins/default/xui/es/floater_preview_animation.xml index cea22730894b27f91499713bd91ce6822efa2b64..0d9cf8ec9fbbce5d37a4e61ad280c21aa4e73221 100644 --- a/indra/newview/skins/default/xui/es/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/es/floater_preview_animation.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview_anim"> - <text length="1" name="desc txt" type="string"> + <text name="desc txt"> Descripción: </text> - <button label="Ejecutarla en el mundo" label_selected="Parar" name="Anim play btn" tool_tip="Ejecutar esta animación de modo que puedan verla los demás."/> - <button label="Ejecutarla para usted" label_selected="Parar" name="Anim audition btn" tool_tip="Ejecutar esta animación de modo que sólo la vea usted."/> + <button left="12" width="142" label="Ejecutarla en el mundo" label_selected="Parar" name="Anim play btn" tool_tip="Ejecutar esta animación de modo que puedan verla los demás."/> + <button left="156" width="136" label="Ejecutarla para usted" label_selected="Parar" name="Anim audition btn" tool_tip="Ejecutar esta animación de modo que sólo la vea usted."/> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_preview_notecard.xml b/indra/newview/skins/default/xui/es/floater_preview_notecard.xml index 2d13e4192423eb0d967c52ce4a92b3f89e039aec..4d11520335e706b2ee2ce68c385388d71947398f 100644 --- a/indra/newview/skins/default/xui/es/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/es/floater_preview_notecard.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview notecard" title="Nota:"> <button label="Guardar" label_selected="Guardar" name="Save"/> - <text length="1" name="desc txt" type="string"> + <text name="desc txt"> Descripción: </text> - <text_editor length="1" name="Notecard Editor" type="string"> + <text_editor name="Notecard Editor"> Cargando... </text_editor> <string name="no_object"> diff --git a/indra/newview/skins/default/xui/es/floater_preview_sound.xml b/indra/newview/skins/default/xui/es/floater_preview_sound.xml index 82c01e1d1bf7e84eeb3a03512fbad0826c0df482..060a033b08f76436ec8f4ee6868e9b630fb73dc2 100644 --- a/indra/newview/skins/default/xui/es/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/es/floater_preview_sound.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview_sound"> - <text length="1" name="desc txt" type="string"> + <text name="desc txt"> Descripción: </text> <button label="Tocar en el mundo" label_selected="Tocar en el mundo" name="Sound play btn" tool_tip="Tocar este sonido para que puedan oÃrlo los demás."/> diff --git a/indra/newview/skins/default/xui/es/floater_preview_texture.xml b/indra/newview/skins/default/xui/es/floater_preview_texture.xml index 2fb66f1fdc8931ec9c0ab5b82f08376fc5d3fda2..280438fefd8794098621f165a5b5beeefdde7381 100644 --- a/indra/newview/skins/default/xui/es/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/es/floater_preview_texture.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview_texture"> - <text length="1" name="desc txt" type="string"> + <text name="desc txt"> Descripción: </text> - <text length="1" name="dimensions" type="string"> + <text name="dimensions"> Tamaño: [WIDTH] x [HEIGHT] </text> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_report_abuse.xml b/indra/newview/skins/default/xui/es/floater_report_abuse.xml index caa0f2a748f6594c827c53345723dab7751ec82c..8ae8c212e6a05281e5086ff4a37f258ada78ff61 100644 --- a/indra/newview/skins/default/xui/es/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/es/floater_report_abuse.xml @@ -40,9 +40,7 @@ <combo_box.item name="Select_category" label="Elegir la categorÃa"/> <combo_box.item name="Age__Age_play" label="Edad > Jugar a ser niño"/> <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Edad > Residente adulto en Teen Second Life"/> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - Edad > Residente menor de edad fuera de Teen Second Life - </combo_item> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Edad > Residente menor de edad fuera de Teen Second Life"/> <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Ataque > Sandbox de combate / Zona no segura"/> <combo_box.item name="Assault__Safe_area" label="Ataque > Zona segura"/> <combo_box.item name="Assault__Weapons_testing_sandbox" label="Ataque > Sandbox de prueba de armas"/> @@ -67,12 +65,8 @@ <combo_box.item name="Harassment__Verbal_abuse" label="Acoso > Abuso verbal"/> <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indecencia > En general, contenido o conducta ofensivos"/> <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indecencia > Nombre inapropiado del avatar"/> - <combo_item name="Indecency__Mature_content_in_PG_region"> - Indecencia > Contenido o conducta inapropiada en una región 'PG' - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - Indecencia > Contenido o conducta inapropiada en una región 'Mature' - </combo_item> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="Indecencia > Contenido o conducta inapropiada en una región 'PG'"/> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Indecencia > Contenido o conducta inapropiada en una región 'Mature'"/> <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Infracción de la propiedad intelectual > Eliminación de contenidos"/> <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Infracción de la propiedad intelectual > CopyBot o Exploit (programa malicioso) de permisos"/> <combo_box.item name="Intolerance" label="Intolerancia"/> diff --git a/indra/newview/skins/default/xui/es/floater_script_preview.xml b/indra/newview/skins/default/xui/es/floater_script_preview.xml index f8d143af9d820cd1f9e7e1077b559a322148996b..0d8cd0b406842692d7d55f2587c42e3647b5cc81 100644 --- a/indra/newview/skins/default/xui/es/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/es/floater_script_preview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview lsl text" title="Script: script de rotación"> - <text length="1" name="desc txt" type="string"> + <text name="desc txt"> Descripción: </text> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_script_search.xml b/indra/newview/skins/default/xui/es/floater_script_search.xml index 9cabed9e36a7a976e9e2c7ac411e6c53cee9e1b5..3c8dc2fe9c1b6ccc659c8e5efcaf909ca14e0a24 100644 --- a/indra/newview/skins/default/xui/es/floater_script_search.xml +++ b/indra/newview/skins/default/xui/es/floater_script_search.xml @@ -1,13 +1,15 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="script search" title="Buscar en el script"> - <check_box label="Indiferente mays./mins." name="case_text"/> - <button label="Buscar" label_selected="Buscar" name="search_btn"/> - <button label="Reemplazar" label_selected="Reemplazar" name="replace_btn"/> - <button label="Reemplazar todos" label_selected="Reemplazar todos" name="replace_all_btn"/> - <text length="1" name="txt" type="string"> +<floater name="script search" title="Buscar en el script" width="320"> + <check_box label="Indiferente mays./mins." name="case_text" left="75"/> + <button label="Buscar" label_selected="Buscar" name="search_btn" width="85"/> + <button label="Reemplazar" label_selected="Reemplazar" name="replace_btn" left="100" width="85"/> + <button label="Reemplazar todos" label_selected="Reemplazar todos" name="replace_all_btn" left="190" width="122"/> + <text name="txt" width="65"> Buscar </text> - <text length="1" name="txt2" type="string"> + <text name="txt2" width="65"> Reemplazar </text> + <line_editor left="75" name="search_text" width="240" /> + <line_editor left="75" name="replace_text" width="240" /> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_select_key.xml b/indra/newview/skins/default/xui/es/floater_select_key.xml index 132985864c89620f8e26bbc540e963a50d21c041..9c889df63ad4f540b1516dbaa7851a87f316170c 100644 --- a/indra/newview/skins/default/xui/es/floater_select_key.xml +++ b/indra/newview/skins/default/xui/es/floater_select_key.xml @@ -2,6 +2,6 @@ <floater name="modal container" title=""> <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> <text name="Save item as:"> - Pulse una tecla para seleccionar + Pulse una tecla para seleccionarla </text> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_telehub.xml b/indra/newview/skins/default/xui/es/floater_telehub.xml index 921577751a69e6604b69a562220a0c6fd5c180df..74084e9db9fa66fe2172aa0a23e7161081a01f4e 100644 --- a/indra/newview/skins/default/xui/es/floater_telehub.xml +++ b/indra/newview/skins/default/xui/es/floater_telehub.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="telehub" title="Punto de Teleporte"> +<floater name="telehub" title="Punto de Teleporte" min_height="310" height="310"> <text name="status_text_connected"> Punto de Teleporte conectado al objeto [OBJECT] </text> @@ -9,20 +9,24 @@ <text name="help_text_connected"> Para quitar, pulse Desconectar. </text> - <text name="help_text_not_connected"> - Seleccione el objeto y pulse Conectar el Punto de Teleporte. + <text name="help_text_not_connected" height="38" bottom_delta="-18"> + Seleccione el objeto y pulse Conectar el Punto +de Teleporte. </text> <button label="Conectar el Punto de Teleporte" name="connect_btn"/> <button label="Desconectar" name="disconnect_btn"/> <text name="spawn_points_text"> - Spawn Points (positions, not objects): + Sucursales (posiciónes, no objetos): </text> <button label="Añadir sucursales" name="add_spawn_point_btn"/> <button label="Quitar sucursales" name="remove_spawn_point_btn"/> <text name="spawn_point_help"> - Seleccione el objeto y pulse Añadir para especificar la posición. + Seleccione el objeto y pulse Añadir para +especificar la posición. Hecho eso, puede mover o borrar el objeto. -Las posiciones son relativas al centro del Punto de Teleporte. -Seleccione un Ãtem de la lista para mostrar su posición en el mundo. +Las posiciones son relativas al centro del +Punto de Teleporte. +Seleccione un Ãtem de la lista para mostrar su +posición en el mundo. </text> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml index 8c3882f0c86e72883179e418d442ae1bfe35f265..8b661a6041a0c298d7bc7da787ab25f44e3e5bf0 100644 --- a/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml @@ -3,14 +3,14 @@ <string name="choose_picture"> Pulse para elegir una imagen </string> - <text length="1" name="Multiple" type="string"> + <text name="Multiple"> Múltiple </text> - <text length="1" name="unknown" type="string"> + <text name="unknown"> Dimensiones: [DIMENSIONS] </text> - <button label="Por defecto" label_selected="Por defecto" name="Default"/> - <button label="Ninguna" label_selected="Ninguna" name="None"/> + <button label="Por defecto" label_selected="Por defecto" name="Default" width="84"/> + <button label="Ninguna" label_selected="Ninguna" name="None" left="90"/> <button label="Blanca" label_selected="Blanca" name="Blank"/> <check_box label="Ver las carpetas" name="show_folders_check"/> <search_editor label="Escriba aquà para buscar una" name="inventory search editor"/> diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml index 15c66c836617c2518f1c0280ca800060a6631859..c3c4c5502775dceb23701dc0418bf31d0649307c 100644 --- a/indra/newview/skins/default/xui/es/floater_tools.xml +++ b/indra/newview/skins/default/xui/es/floater_tools.xml @@ -1,41 +1,44 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="toolbox floater" title=""> +<floater name="toolbox floater" title="" short_title="Construir" width="288"> <button label="" label_selected="" name="button focus" tool_tip="Visión"/> <button label="" label_selected="" name="button move" tool_tip="Mover"/> <button label="" label_selected="" name="button edit" tool_tip="Editar"/> <button label="" label_selected="" name="button create" tool_tip="Crear"/> <button label="" label_selected="" name="button land" tool_tip="Terreno"/> - <check_box label="Zoom" name="radio zoom"/> - <check_box label="Órbita (Ctrl)" name="radio orbit"/> - <check_box label="Panorámica (Ctrl-Shift)" name="radio pan"/> - <check_box label="Mover" name="radio move"/> - <check_box label="Vertical (Ctrl)" name="radio lift"/> - <check_box label="Horizontal (Ctrl-Shift)" name="radio spin"/> - <check_box label="Posición" name="radio position"/> - <check_box label="Girar (Ctrl)" name="radio rotate"/> - <check_box label="Estirar (Ctrl-Shift)" name="radio stretch"/> - <check_box label="Elegir la cara" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="Zoom" name="radio zoom"/> + <radio_item label="Órbita (Ctrl)" name="radio orbit"/> + <radio_item label="Panorámica (Ctrl-Shift)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="Mover" name="radio move"/> + <radio_item label="Vertical (Ctrl)" name="radio lift"/> + <radio_item label="Horizontal (Ctrl-Shift)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="Posición" name="radio position"/> + <radio_item label="Girar (Ctrl)" name="radio rotate"/> + <radio_item label="Estirar (Ctrl-Shift)" name="radio stretch"/> + <radio_item label="Elegir la cara" name="radio select face"/> + </radio_group> <check_box label="Editar las partes enlazadas" name="checkbox edit linked parts"/> <text name="text ruler mode"> Ajuste: </text> - <combo_box name="combobox grid mode"> - <combo_item name="World"> - Mundo - </combo_item> - <combo_item name="Local"> - Local - </combo_item> - <combo_item name="Reference"> - Referencia - </combo_item> + <combo_box name="combobox grid mode" width="82"> + <combo_box.item name="World" label="Mundo" + /> + <combo_box.item name="Local" label="Local" + /> + <combo_box.item name="Reference" label="Referencia" + /> </combo_box> <check_box label="Estirar ambos lados" name="checkbox uniform"/> <check_box label="Estirar las texturas" name="checkbox stretch textures"/> <check_box label="Usar la cuadrÃcula" name="checkbox snap to grid"/> <button label="Opciones..." label_selected="Opciones..." name="Options..."/> - <text name="text status"> - Arrastrar para mover, arrastrar + Mayús. para copiar + <text name="text status" width="280"> + Arrastrar para mover, Mayús.+arrastrar para copiar </text> <button label="" label_selected="" name="ToolCube" tool_tip="Cubo"/> <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/> @@ -56,14 +59,16 @@ <check_box label="Copia seleccionada" name="checkbox copy selection"/> <check_box label="Centrada" name="checkbox copy centers"/> <check_box label="Girada" name="checkbox copy rotates"/> - <check_box label="Seleccionar el terreno" name="radio select land"/> - <check_box label="Nivelar" name="radio flatten"/> - <check_box label="Elevar" name="radio raise"/> - <check_box label="Bajar" name="radio lower"/> - <check_box label="Suavizar" name="radio smooth"/> - <check_box label="Escarpar" name="radio noise"/> - <check_box label="Restablecer" name="radio revert"/> - <button label="Aplicar" label_selected="Aplicar" name="button apply to selection" tool_tip="Modificar el terreno seleccionado"/> + <radio_group name="land_radio_group"> + <radio_item label="Seleccionar el terreno" name="radio select land"/> + <radio_item label="Nivelar" name="radio flatten"/> + <radio_item label="Elevar" name="radio raise"/> + <radio_item label="Bajar" name="radio lower"/> + <radio_item label="Suavizar" name="radio smooth"/> + <radio_item label="Escarpar" name="radio noise"/> + <radio_item label="Restablecer" name="radio revert"/> + </radio_group> + <button label="Aplicar" label_selected="Aplicar" name="button apply to selection" tool_tip="Modificar el terreno seleccionado" left="146"/> <text name="Bulldozer:"> Bulldozer: </text> @@ -73,13 +78,13 @@ <text name="Strength:"> Fuerza </text> - <text name="obj_count"> + <text name="obj_count" left="134"> Objetos seleccionados: [COUNT] </text> - <text name="prim_count"> + <text name="prim_count" left="134"> primitivas: [COUNT] </text> - <tab_container name="Object Info Tabs"> + <tab_container name="Object Info Tabs" tab_max_width="62" tab_min_width="30" width="288"> <panel label="General" name="General"> <text name="Name:"> Nombre: @@ -111,9 +116,7 @@ <text name="Permissions:"> Permisos: </text> - <text name="perm_modify"> - Puede modificar este objeto. - </text> + <check_box label="Compartir con el grupo" name="checkbox share with group" tool_tip="Permitir que todos los miembros del grupo compartan y utilicen sus permisos sobre este objeto. Debe transferirlo para activar las restricciones según los roles."/> <string name="text deed continued"> Transferir... @@ -129,49 +132,35 @@ <text name="Cost"> Precio: L$ </text> - <radio_group name="sale type"> - <radio_item name="Original"> - Original - </radio_item> - <radio_item name="Copy"> - Copia - </radio_item> - <radio_item name="Contents"> - Contenidos - </radio_item> - </radio_group> - <text name="Next owner can:"> - El próximo propietario puede: - </text> - <check_box label="Modificarlo" name="checkbox next owner can modify"/> - <check_box label="Copiarlo" name="checkbox next owner can copy"/> - <check_box label="Revenderlo/Darlo" name="checkbox next owner can transfer"/> - <text name="label click action"> + <combo_box name="sale type"> + <combo_box.item label="Copia" name="Copy"/> + <combo_box.item label="Contenidos" name="Contents"/> + <combo_box.item label="Original" name="Original"/> + </combo_box> + + <text name="label click action" width="180"> Al pulsarlo con el botón izquierdo: </text> - <combo_box name="clickaction"> - <combo_item name="Touch/grab(default)"> - Tocar/Agarrar (por defecto) - </combo_item> - <combo_item name="Sitonobject"> - Sentarse en el objeto - </combo_item> - <combo_item name="Buyobject"> - Comprar el objeto - </combo_item> - <combo_item name="Payobject"> - Pagar al objeto - </combo_item> - <combo_item name="Open"> - Abrirlo - </combo_item> - <combo_item name="Play"> - Ejecutar los media de la parcela - </combo_item> - <combo_item name="Opemmedia"> - Abrir los media de la parcela - </combo_item> + <combo_box name="clickaction" width="192"> + <combo_box.item name="Touch/grab(default)" label="Tocar/Agarrar (por defecto)" + /> + <combo_box.item name="Sitonobject" label="Sentarse en el objeto" + /> + <combo_box.item name="Buyobject" label="Comprar el objeto" + /> + <combo_box.item name="Payobject" label="Pagar al objeto" + /> + <combo_box.item name="Open" label="Abrirlo" + /> + <combo_box.item name="Play" label="Ejecutar los media de la parcela" + /> + <combo_box.item name="Opemmedia" label="Abrir los media de la parcela" + /> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + Puede modificar este objeto. + </text> <text name="B:"> B: </text> @@ -190,6 +179,13 @@ <text name="F:"> F: </text> + <text name="Next owner can:"> + El próximo propietario puede: + </text> + <check_box label="Modificarlo" name="checkbox next owner can modify"/> + <check_box label="Copiarlo" name="checkbox next owner can copy" left_delta="80"/> + <check_box name="checkbox next owner can transfer" left_delta="67"/> + </panel> <string name="text modify info 1"> Puede modificar este objeto. </string> @@ -206,7 +202,7 @@ Debe seleccionar todo el objeto para definir los permisos. </string> <string name="Cost Default"> - Precio: L$ + Precio: L$ </string> <string name="Cost Total"> Precio total: L$ @@ -223,7 +219,7 @@ </panel> <panel label="Objeto" name="Object"> <text name="select_single"> - Seleccione un único prim para editar los parámetros. + Seleccione un sólo prim para editarlo. </text> <text name="edit_object"> Modificar los parámetros del objeto: @@ -254,56 +250,41 @@ Material </text> <combo_box name="material"> - <combo_item name="Stone"> - Piedra - </combo_item> - <combo_item name="Metal"> - Metal - </combo_item> - <combo_item name="Glass"> - Vidrio - </combo_item> - <combo_item name="Wood"> - Madera - </combo_item> - <combo_item name="Flesh"> - Carne - </combo_item> - <combo_item name="Plastic"> - Plástico - </combo_item> - <combo_item name="Rubber"> - Goma - </combo_item> + <combo_box.item name="Stone" label="Piedra" + /> + <combo_box.item name="Metal" label="Metal" + /> + <combo_box.item name="Glass" label="Vidrio" + /> + <combo_box.item name="Wood" label="Madera" + /> + <combo_box.item name="Flesh" label="Carne" + /> + <combo_box.item name="Plastic" label="Plástico" + /> + <combo_box.item name="Rubber" label="Goma" + /> </combo_box> <text name="label basetype"> - Tipo de objeto para construir + Tipo de objeto a construir </text> <combo_box name="comboBaseType"> - <combo_item name="Box"> - Caja - </combo_item> - <combo_item name="Cylinder"> - Cilindro - </combo_item> - <combo_item name="Prism"> - Prisma - </combo_item> - <combo_item name="Sphere"> - Esfera - </combo_item> - <combo_item name="Torus"> - Toroide - </combo_item> - <combo_item name="Tube"> - Tubo - </combo_item> - <combo_item name="Ring"> - Cono truncado - </combo_item> - <combo_item name="Sculpted"> - Sculpted - </combo_item> + <combo_box.item name="Box" label="Caja" + /> + <combo_box.item name="Cylinder" label="Cilindro" + /> + <combo_box.item name="Prism" label="Prisma" + /> + <combo_box.item name="Sphere" label="Esfera" + /> + <combo_box.item name="Torus" label="Toroide" + /> + <combo_box.item name="Tube" label="Tubo" + /> + <combo_box.item name="Ring" label="Cono truncado" + /> + <combo_box.item name="Sculpted" label="Sculpted" + /> </combo_box> <text name="text cut"> Corte: Inicio y Fin @@ -320,21 +301,17 @@ Forma del hueco </text> <combo_box name="hole"> - <combo_item name="Default"> - Por defecto - </combo_item> - <combo_item name="Circle"> - CÃrculo - </combo_item> - <combo_item name="Square"> - Cuadrado - </combo_item> - <combo_item name="Triangle"> - Triángulo - </combo_item> + <combo_box.item name="Default" label="Por defecto" + /> + <combo_box.item name="Circle" label="CÃrculo" + /> + <combo_box.item name="Square" label="Cuadrado" + /> + <combo_box.item name="Triangle" label="Triángulo" + /> </combo_box> <text name="text twist"> - La torsión: Inicio y Fin + Torsión: Inicio y Fin </text> <spinner label="I" name="Twist Begin"/> <spinner label="F" name="Twist End"/> @@ -380,26 +357,21 @@ Tipo de unión </text> <combo_box name="sculpt type control"> - <combo_item name="None"> - (ninguna) - </combo_item> - <combo_item name="Sphere"> - Esfera - </combo_item> - <combo_item name="Torus"> - Toroide - </combo_item> - <combo_item name="Plane"> - Plano - </combo_item> - <combo_item name="Cylinder"> - Cilindro - </combo_item> + <combo_box.item name="None" label="(ninguna)" + /> + <combo_box.item name="Sphere" label="Esfera" + /> + <combo_box.item name="Torus" label="Toroide" + /> + <combo_box.item name="Plane" label="Plano" + /> + <combo_box.item name="Cylinder" label="Cilindro" + /> </combo_box> </panel> - <panel label="CaracterÃsticas" name="Features"> + <panel label="Caracter." name="Features"> <text name="select_single"> - Seleccione un sólo prim para editar las caracterÃsticas. + Seleccione un sólo prim para editarlo. </text> <text name="edit_object"> Editar las caracterÃsticas del objeto: @@ -431,93 +403,69 @@ <text name="glow label"> Resplandor </text> - <check_box label="Brillo al máximo" name="checkbox fullbright"/> + <check_box label="Brillo al máximo" name="checkbox fullbright" bottom_delta="-21"/> <text name="tex gen"> Detallado </text> - <combo_box name="combobox texgen"> - <combo_item name="Default"> - Por defecto - </combo_item> - <combo_item name="Planar"> - Plano - </combo_item> + <combo_box name="combobox texgen" width="86"> + <combo_box.item name="Default" label="Por defecto" + /> + <combo_box.item name="Planar" label="Plano" + /> </combo_box> <text name="label shininess"> Brillantez </text> <combo_box name="combobox shininess"> - <combo_item name="None"> - Ninguna - </combo_item> - <combo_item name="Low"> - Baja - </combo_item> - <combo_item name="Medium"> - Media - </combo_item> - <combo_item name="High"> - Alta - </combo_item> + <combo_box.item name="None" label="Ninguna" + /> + <combo_box.item name="Low" label="Baja" + /> + <combo_box.item name="Medium" label="Media" + /> + <combo_box.item name="High" label="Alta" + /> </combo_box> <text name="label bumpiness"> Relieve </text> <combo_box name="combobox bumpiness"> - <combo_item name="None"> - Ninguno - </combo_item> - <combo_item name="Brightness"> - Brillo - </combo_item> - <combo_item name="Darkness"> - Oscuro - </combo_item> - <combo_item name="woodgrain"> - grano de madera - </combo_item> - <combo_item name="bark"> - corteza - </combo_item> - <combo_item name="bricks"> - ladrillos - </combo_item> - <combo_item name="checker"> - cajero - </combo_item> - <combo_item name="concrete"> - cemento - </combo_item> - <combo_item name="crustytile"> - azulejerÃa - </combo_item> - <combo_item name="cutstone"> - piedra cortada - </combo_item> - <combo_item name="discs"> - discos - </combo_item> - <combo_item name="gravel"> - grava - </combo_item> - <combo_item name="petridish"> - placa de Petri - </combo_item> - <combo_item name="siding"> - revestimiento - </combo_item> - <combo_item name="stonetile"> - baldosa de piedra - </combo_item> - <combo_item name="stucco"> - estuco - </combo_item> - <combo_item name="suction"> - succión - </combo_item> - <combo_item name="weave"> - tejido - </combo_item> + <combo_box.item name="None" label="Ninguno" + /> + <combo_box.item name="Brightness" label="Brillo" + /> + <combo_box.item name="Darkness" label="Oscuro" + /> + <combo_box.item name="woodgrain" label="grano de madera" + /> + <combo_box.item name="bark" label="corteza" + /> + <combo_box.item name="bricks" label="ladrillos" + /> + <combo_box.item name="checker" label="cajero" + /> + <combo_box.item name="concrete" label="cemento" + /> + <combo_box.item name="crustytile" label="azulejerÃa" + /> + <combo_box.item name="cutstone" label="piedra cortada" + /> + <combo_box.item name="discs" label="discos" + /> + <combo_box.item name="gravel" label="grava" + /> + <combo_box.item name="petridish" label="placa de Petri" + /> + <combo_box.item name="siding" label="revestimiento" + /> + <combo_box.item name="stonetile" label="baldosa de piedra" + /> + <combo_box.item name="stucco" label="estuco" + /> + <combo_box.item name="suction" label="succión" + /> + <combo_box.item name="weave" label="tejido" + /> </combo_box> <text name="tex scale"> Repeticiones por cara @@ -530,27 +478,29 @@ Rotación (grados) </text> <string name="string repeats per meter"> - Repeticiones por metro + Repeticiones por m. </string> <string name="string repeats per face"> Repeticiones por cara </string> <text name="rpt"> - Repeticiones por metro + Repeticiones por m. </text> - <button label="Aplicar" label_selected="Aplicar" name="button apply"/> + <spinner left="118" name="TexRot" width="62" /> + <spinner left="118" name="rptctrl" width="62" /> + <button label="Aplicar" label_selected="Aplicar" name="button apply" left_delta="72"/> <text name="tex offset"> Desplazar </text> <spinner label="Horizontal (U)" name="TexOffsetU"/> <spinner label="Vertical (V)" name="TexOffsetV"/> - <text name="textbox autofix"> + <text name="textbox autofix" width="180"> Centrar la textura para los media (primero debe subirla) </text> - <button label="Alinear" label_selected="Alinear" name="button align"/> + <button label="Alinear" label_selected="Alinear" name="button align" left="180"/> </panel> - <panel label="Contenido" name="Contents"> + <panel label="Contenido " name="Contents"> <button label="Script nuevo" label_selected="Script nuevo" name="button new script"/> <button label="Permisos..." name="button permissions"/> </panel> @@ -565,57 +515,57 @@ <text name="label_area"> Superficie: [AREA] m² </text> - <button label="Acerca del terreno..." label_selected="Acerca del terreno..." name="button about land"/> + <button label="Acerca del terreno..." label_selected="Acerca del terreno..." name="button about land" width="140"/> <check_box label="Mostrar los propietarios" name="checkbox show owners" tool_tip="El color de las parcelas es según su propietario"/> - <button label="?" label_selected="?" name="button show owners help"/> + <button label="?" label_selected="?" name="button show owners help" left_delta="150"/> <text name="label_parcel_modify"> Modificar la parcela </text> - <button label="Subdividir..." label_selected="Subdividir..." name="button subdivide land"/> - <button label="Unir..." label_selected="Unir..." name="button join land"/> + <button label="Subdividir..." label_selected="Subdividir..." name="button subdivide land" width="140"/> + <button label="Unir..." label_selected="Unir..." name="button join land" width="140"/> <text name="label_parcel_trans"> Transacciones de terreno </text> - <button label="Comprar terreno..." label_selected="Comprar terreno..." name="button buy land"/> - <button label="Abandonar el terreno..." label_selected="Abandonar el terreno..." name="button abandon land"/> + <button label="Comprar terreno..." label_selected="Comprar terreno..." name="button buy land" width="140"/> + <button label="Abandonar el terreno..." label_selected="Abandonar el terreno..." name="button abandon land" width="140"/> </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> Arrastre las bandas de color para girar el objeto - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> Pulse y arrastre para estirar el lado seleccionado - </string> - <string name="status_move"> - Arrastrar para mover, arrastrar + Mayús. para copiar - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_move"> + Arrastrar para mover, Mayús.+arrastrar para copiar + </floater.string> + <floater.string name="status_modifyland"> Mantenga pulsado para modificar el terreno - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> Pulse y arrastre para cambiar el punto de vista - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> Arrastre para mover objetos: Ctrl, verticalmente; Ctrl-Mayús., para girarlos. - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> Pulse en el mundo para construir - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> Pulse y arrastre para seleccionar el terreno - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> Pantalla - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> Local - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> Mundo - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> Referencia - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> Añadido - </string> + </floater.string> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_top_objects.xml b/indra/newview/skins/default/xui/es/floater_top_objects.xml index ce0c22062b92c4989a901f7a564f2c23d7451532..95f2c39d423addfa8fe01f93e500db9f1c672e1c 100644 --- a/indra/newview/skins/default/xui/es/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/es/floater_top_objects.xml @@ -11,23 +11,26 @@ <column label="Tiempo" name="time"/> <column label="Tiempo en Mono" name="mono_time"/> </scroll_list> + <line_editor font="SansSerifSmall" left="140" name="id_editor" width="280"/> + <line_editor font="SansSerifSmall" left="140" name="object_name_editor" width="280"/> + <line_editor font="SansSerifSmall" left="140" name="owner_name_editor" width="280"/> <text name="id_text"> ID del objeto: </text> - <button label="Mostrar la baliza" name="show_beacon_btn"/> + <button label="Mostrar la baliza" name="show_beacon_btn" width="115"/> <text name="obj_name_text"> Nombre del objeto: </text> - <button label="Filtro" name="filter_object_btn"/> - <text name="owner_name_text"> + <button label="Filtro" name="filter_object_btn" width="115"/> + <text name="owner_name_text" width="130"> Nombre del propietario: </text> - <button label="Filtro" name="filter_owner_btn"/> - <button label="Devolver lo seleccionado" name="return_selected_btn"/> - <button label="Devolver todo" name="return_all_btn"/> - <button label="Desactivar lo seleccionado" name="disable_selected_btn"/> - <button label="Desactivar todo" name="disable_all_btn"/> - <button label="Actualizar" name="refresh_btn"/> + <button label="Filtro" name="filter_owner_btn" width="115"/> + <button label="Devolver lo seleccionado" name="return_selected_btn" width="170"/> + <button label="Devolver todo" name="return_all_btn" left="190"/> + <button label="Desactivar lo seleccionado" name="disable_selected_btn" width="170"/> + <button label="Desactivar todo" name="disable_all_btn" left="190"/> + <button label="Actualizar" name="refresh_btn" width="115"/> <string name="top_scripts_title"> Scripts según su uso </string> diff --git a/indra/newview/skins/default/xui/es/floater_url_entry.xml b/indra/newview/skins/default/xui/es/floater_url_entry.xml index abdd69b090f63c53dec9d3b62be88392bb3fd412..f7c85ff0681288494861af30e750813e943c21e7 100644 --- a/indra/newview/skins/default/xui/es/floater_url_entry.xml +++ b/indra/newview/skins/default/xui/es/floater_url_entry.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="url_entry" title=""> <text name="media_label"> - URL para media: + URL del media: </text> + <combo_box left="106" name="media_entry" width="354" /> <button label="OK" name="ok_btn"/> <button label="Cancelar" name="cancel_btn"/> <button label="Limpiar" name="clear_btn"/> diff --git a/indra/newview/skins/default/xui/es/floater_water.xml b/indra/newview/skins/default/xui/es/floater_water.xml index 5a759af5ff7de786a3fa67e2175ef4bb3e731d2a..934fc7882b7372950bc96241016a5ef8d0c58618 100644 --- a/indra/newview/skins/default/xui/es/floater_water.xml +++ b/indra/newview/skins/default/xui/es/floater_water.xml @@ -11,20 +11,20 @@ <text name="BHText"> Color del agua </text> - <button label="?" name="WaterFogColorHelp"/> + <button label="?" name="WaterFogColorHelp" left="175" /> <color_swatch label="" name="WaterFogColor" tool_tip="Pulse para abrir el selector de color"/> <text name="WaterFogDensText"> Transparencia </text> - <button label="?" name="WaterFogDensityHelp"/> + <button label="?" name="WaterFogDensityHelp" left="175" /> <text name="WaterUnderWaterFogModText"> Modificar la claridad del agua </text> - <button label="?" name="WaterUnderWaterFogModHelp"/> + <button label="?" name="WaterUnderWaterFogModHelp" left="175" /> <text name="BDensText"> Tamaño de las ondulaciones </text> - <button label="?" name="WaterNormalScaleHelp"/> + <button label="?" name="WaterNormalScaleHelp" left="405"/> <text name="BHText2"> 1 </text> @@ -37,29 +37,29 @@ <text name="HDText"> Escala de Fresnel </text> - <button label="?" name="WaterFresnelScaleHelp"/> + <button label="?" name="WaterFresnelScaleHelp" left="405"/> <text name="FresnelOffsetText"> Coeficiente de reflexión </text> - <button label="?" name="WaterFresnelOffsetHelp"/> + <button label="?" name="WaterFresnelOffsetHelp" left="405"/> <text name="DensMultText"> Refracción de la superficie </text> - <button label="?" name="WaterScaleAboveHelp"/> + <button label="?" name="WaterScaleAboveHelp" left="640"/> <text name="WaterScaleBelowText"> Refracción bajo la superficie </text> - <button label="?" name="WaterScaleBelowHelp"/> + <button label="?" name="WaterScaleBelowHelp" left="640"/> <text name="MaxAltText"> Desenfoque </text> - <button label="?" name="WaterBlurMultiplierHelp"/> + <button label="?" name="WaterBlurMultiplierHelp" left="640"/> </panel> <panel label="Imagen" name="Waves"> <text name="BHText"> Sentido de la onda grande </text> - <button label="?" name="WaterWave1Help"/> + <button label="?" name="WaterWave1Help" left="170"/> <text name="WaterWave1DirXText"> X </text> @@ -69,7 +69,7 @@ <text name="BHText2"> Sentido de la onda pequeña </text> - <button label="?" name="WaterWave2Help"/> + <button label="?" name="WaterWave2Help" left="170"/> <text name="WaterWave2DirXText"> X </text> diff --git a/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml index 34e76abb420413061eff2a230e480cb9b3b630f3..1dfff90004c866090338e01e774e1f660da3ebcb 100644 --- a/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml +++ b/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml @@ -2,7 +2,7 @@ <floater name="modal container" title=" "> <button label="Guardar" label_selected="Guardar" name="Save"/> <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> - <text length="1" name="Save item as:" type="string"> + <text name="Save item as:"> Guardar el Ãtem como: </text> <line_editor name="name ed"> diff --git a/indra/newview/skins/default/xui/es/floater_windlight_options.xml b/indra/newview/skins/default/xui/es/floater_windlight_options.xml index 79b70d4d59ab380074754c19cb89216a2a92f9f8..e240dea0b5c68d3cbc9a6af2d0e8ca2b8aca9835 100644 --- a/indra/newview/skins/default/xui/es/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/es/floater_windlight_options.xml @@ -6,7 +6,7 @@ <button label="Nuevo" label_selected="Nuevo" name="WLNewPreset"/> <button label="Guardar" label_selected="Guardar" name="WLSavePreset"/> <button label="Borrar" label_selected="Borrar" name="WLDeletePreset"/> - <button label="Editor del ciclo de un dÃa" label_selected="Editor del ciclo de un dÃa" name="WLDayCycleMenuButton"/> + <button font="SansSerifSmall" width="150" left_delta="90" label="Editor del ciclo de un dÃa" label_selected="Editor del ciclo de un dÃa" name="WLDayCycleMenuButton"/> <tab_container name="WindLight Tabs"> <panel label="Atmósfera" name="Atmosphere"> <text name="BHText"> @@ -122,7 +122,7 @@ <text name="WLCloudColorText"> Color de las nubes </text> - <button label="?" name="WLCloudColorHelp"/> + <button label="?" name="WLCloudColorHelp" left="190" /> <text name="BHText"> R </text> @@ -138,7 +138,7 @@ <text name="WLCloudColorText2"> Posición/Densidad de las nubes </text> - <button label="?" name="WLCloudDensityHelp"/> + <button label="?" name="WLCloudDensityHelp" left="190"/> <text name="BHText5"> X </text> @@ -156,11 +156,12 @@ Altitud de las nubes </text> <button label="?" name="WLCloudScaleHelp"/> - <text name="WLCloudDetailText"> - Detalle de las nubes (Posición/Densidad) + <text name="WLCloudDetailText" font="SansSerifSmall"> + Detalle de las nubes +(Posición/Densidad) </text> <button label="?" name="WLCloudDetailHelp"/> - <text name="BHText8"> + <text name="BHText8" bottom="-113"> X </text> <text name="BHText9"> @@ -169,18 +170,19 @@ <text name="BHText10"> D </text> + <slider bottom="-127" name="WLCloudDetailX"/> <text name="WLCloudScrollXText"> - Velocidad de las nubes: X + Velocidad de X </text> <button label="?" name="WLCloudScrollXHelp"/> <check_box label="Bloquear" name="WLCloudLockX"/> <text name="WLCloudScrollYText"> - Velocidad de las nubes: Y + Velocidad de Y </text> <button label="?" name="WLCloudScrollYHelp"/> <check_box label="Bloquear" name="WLCloudLockY"/> <check_box label="Incluir nubes clásicas" name="DrawClassicClouds"/> - <button label="?" name="WLClassicCloudsHelp"/> + <button label="?" name="WLClassicCloudsHelp" left="618"/> </panel> </tab_container> <string name="WLDefaultSkyNames"> diff --git a/indra/newview/skins/default/xui/es/floater_world_map.xml b/indra/newview/skins/default/xui/es/floater_world_map.xml index 3bfae282cb709c482fa06972c98b843a8be6709f..6521e72d5a4c1ed6f933bd0b8f8399660024ff69 100644 --- a/indra/newview/skins/default/xui/es/floater_world_map.xml +++ b/indra/newview/skins/default/xui/es/floater_world_map.xml @@ -28,10 +28,10 @@ <check_box label="'Mature'" name="event_mature_chk"/> <check_box label="'Adult'" name="event_adult_chk"/> <combo_box label="Amigos conectados" name="friend combo" tool_tip="Amigo a mostrar en el mapa"> - <combo_box.item name="none_selected" label="Amigos conectados" /> + <combo_box.item name="item1" label="Amigos conectados" /> </combo_box> <combo_box label="Hitos" name="landmark combo" tool_tip="Hito a mostrar en el mapa"> - <combo_box.item name="none_selected" label="Hitos" /> + <combo_box.item name="item1" label="Hitos" /> </combo_box> <line_editor label="Buscar por el nombre de la región" name="location" tool_tip="Escriba el nombre de una región"/> <button label="Buscar" name="DoSearch" tool_tip="Buscar una región"/> diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml index 5778e48fcf1c6bd13693d25b3e007a9211ba11e5..0a722ccfd2b9e6ef5466a2b28192346bcdc4d7d7 100644 --- a/indra/newview/skins/default/xui/es/notifications.xml +++ b/indra/newview/skins/default/xui/es/notifications.xml @@ -984,7 +984,7 @@ usted no tiene el permiso de comprar terreno para el grupo que tiene activado ac ¿Ofrecer a [NAME] que sea su amigo? <form name="form"> - <input name="message" type="text"> + <input name="message"> ¿Quieres formar parte de mis amigos? </input> <button name="Offer" text="OK"/> @@ -1128,6 +1128,14 @@ Si se vende una parcela transferida, el precio de venta se dividirá a partes ig </notification> <notification name="AvatarMoved"> Su localización [TYPE] no está disponible en estos momentos. [HELP] +Ha sido llevado a una región cercana. + </notification> + <notification name="AvatarMovedDesired"> + La localización que ha elegido no está disponible en estos momentos. +Ha sido llevado a una región cercana. + </notification> + <notification name="AvatarMovedLast"> + Su última posición no está disponible en estos momentos. Ha sido llevado a una región cercana. </notification> <notification name="ClothingLoading"> @@ -1388,7 +1396,7 @@ Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos re <notification name="KickUser"> ¿Con qué mensaje se expulsará a este usuario? <form name="form"> - <input name="message" type="text"> + <input name="message"> Un administrador le ha desconectado. </input> <button name="OK" text="OK"/> @@ -1398,7 +1406,7 @@ Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos re <notification name="KickAllUsers"> ¿Con qué mensaje se expulsará a cualquiera que esté actualmente en el grid? <form name="form"> - <input name="message" type="text"> + <input name="message"> Un administrador le ha desconectado. </input> <button name="OK" text="OK"/> @@ -1408,7 +1416,7 @@ Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos re <notification name="FreezeUser"> ¿Con qué mensaje se congelará a este usuario? <form name="form"> - <input name="message" type="text"> + <input name="message"> Ha sido usted congelado. No puede moverse o escribir en el chat. Un administrador contactará con usted a través de un mensaje instantáneo (MI). </input> <button name="OK" text="OK"/> @@ -1418,7 +1426,7 @@ Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos re <notification name="UnFreezeUser"> ¿Con qué mensaje se descongelará a este usuario? <form name="form"> - <input name="message" type="text"> + <input name="message"> Ya no está usted congelado. </input> <button name="OK" text="OK"/> @@ -1428,7 +1436,7 @@ Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos re <notification name="OfferTeleport"> ¿Ofrecer teleporte a su posición con este mensaje? <form name="form"> - <input name="message" type="text"> + <input name="message"> Ven conmigo a [REGION] </input> <button name="OK" text="OK"/> @@ -1438,7 +1446,7 @@ Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos re <notification name="OfferTeleportFromGod"> ¿Convocar a este usuario a su posición? <form name="form"> - <input name="message" type="text"> + <input name="message"> Ven conmigo a [REGION] </input> <button name="OK" text="OK"/> @@ -1452,7 +1460,7 @@ Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos re <notification label="Mensaje a todo el estado" name="MessageEstate"> Escriba un anuncio breve que se enviará a todo el que esté en su estado. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Cancelar"/> </form> @@ -1676,7 +1684,7 @@ Puede pulsar 'Cambiar preferencia' para aumentar su nivel de calificac <notification label="Mensaje a toda la región" name="MessageRegion"> Escriba un anuncio breve que se enviará a todo el que esté en esta región. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Cancelar"/> </form> @@ -1967,14 +1975,14 @@ Serán copiados a su inventario. ¿Está seguro de querer hacer esta compra? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> - <notification name="ConfirmPurchasePassword" type="password"> + <notification name="ConfirmPurchasePassword"> Esta transacción hará que: [ACTION] ¿Está seguro de querer hacer esta compra? Por favor, vuelva a escribir su contraseña y pulse OK. <form name="form"> - <input name="message" type="password"/> + <input name="message"/> <button name="ConfirmPurchase" text="OK"/> <button name="Cancel" text="Cancelar"/> </form> @@ -2335,7 +2343,7 @@ Pero, vaya, diviértase si quiere. <notification name="NewSkyPreset"> Dame un nombre para el cielo nuevo. <form name="form"> - <input name="message" type="text"> + <input name="message"> Preselección nueva </input> <button name="OK" text="OK"/> @@ -2348,7 +2356,7 @@ Pero, vaya, diviértase si quiere. <notification name="NewWaterPreset"> Dame un nombre para la nueva preselección de agua. <form name="form"> - <input name="message" type="text"> + <input name="message"> Preselección nueva </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/es/panel_group_general.xml b/indra/newview/skins/default/xui/es/panel_group_general.xml index e5fd4b3aaef5edd22daba7bbb650a925ff165b05..0c98889d3284db45f18988f04e511006e0a01d98 100644 --- a/indra/newview/skins/default/xui/es/panel_group_general.xml +++ b/indra/newview/skins/default/xui/es/panel_group_general.xml @@ -37,9 +37,9 @@ Ponga su ratón sobre las opciones para más información. (los propietarios aparecen en negrilla) </text> <name_list name="visible_members"> - <column label="Nombre del miembro" name="name"/> - <column label="Etiqueta" name="title"/> - <column label="Última conexión" name="online"/> + <name_list.columns label="Nombre del miembro" name="name" relwidth="0.40"/> + <name_list.columns label="Etiqueta" name="title" relwidth="0.25"/> + <name_list.columns label="Última conexión" name="online" relwidth="0.35"/> </name_list> <text name="text_group_preferences"> Preferencias del grupo @@ -47,18 +47,12 @@ Ponga su ratón sobre las opciones para más información. <panel name="preferences_container"> <check_box label="Mostrar en la búsqueda" name="show_in_group_list" tool_tip="Dejar que la gente vea este grupo en los resultados de la búsqueda."/> <check_box label="Inscripción libre" name="open_enrollement" tool_tip="Definir si se admiten al grupo nuevos miembros sin que sea preciso invitárseles."/> - <check_box label="Cuota de inscripción en L$" name="check_enrollment_fee" tool_tip="Define si se requiere una cuota para entrar al grupo."/> - <spinner name="spin_enrollment_fee" tool_tip="Cuando está marcado 'Cuota de inscripción', los miembros nuevos deben pagar esta cuota para entrar al grupo."/> - <combo_box name="group_mature_check" tool_tip="Establece si la información de su grupo es 'mature'."> - <combo_item name="select_mature"> - - Elegir Calificación - - </combo_item> - <combo_item name="mature"> - Contenido 'Mature' - </combo_item> - <combo_item name="pg"> - Contenido 'PG' - </combo_item> + <check_box label="Cuota de inscripción en L$:" name="check_enrollment_fee" tool_tip="Define si se requiere una cuota para entrar al grupo."/> + <spinner width="60" left_delta="130" name="spin_enrollment_fee" tool_tip="Cuando está marcado 'Cuota de inscripción', los miembros nuevos deben pagar esta cuota para entrar al grupo."/> + <combo_box bottom_delta="-38" width="150" name="group_mature_check" tool_tip="Establece si la información de su grupo es 'mature'."> + <combo_box.item name="select_mature" label="- Elegir Calificación -"/> + <combo_box.item name="mature" label="Contenido 'Mature'"/> + <combo_box.item name="pg" label="Contenido 'PG'"/> </combo_box> <panel name="title_container"> <text name="active_title_label"> diff --git a/indra/newview/skins/default/xui/es/panel_group_invite.xml b/indra/newview/skins/default/xui/es/panel_group_invite.xml index 5f5f2c6e2ebd595b060247a80e411b72203bbcfb..f66f0c473a3c099dae94ccb099f0f3e6d5e607e3 100644 --- a/indra/newview/skins/default/xui/es/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/es/panel_group_invite.xml @@ -1,13 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Invitar a un miembro" name="invite_panel"> - <text name="help_text"> - Puede seleccionar a varios residentes para -invitarles a su grupo. Para empezar, pulse -'Abrir el selector de residentes'. +<panel label="Invitar a un miembro" name="invite_panel" width="224"> + <text name="help_text" height="72" bottom_delta="-96" width="214"> + Puede seleccionar a varios residentes +para invitarles a su grupo. Para +empezar, pulse 'Abrir el selector de +residentes'. </text> - <button label="Abrir el selector de residentes" name="add_button" tool_tip=""/> - <name_list name="invitee_list" tool_tip="Para seleccionar a varios residentes, mantenga pulsada la tecla Ctrl y vaya pulsando sus nombres."/> - <button label="Eliminar de la lista a los seleccionados" name="remove_button" tool_tip="Elimina los residentes seleccionados de la lista de invitaciones."/> + <button bottom_delta="-10" label="Abrir el selector de residentes" name="add_button" tool_tip=""/> + <name_list height="156" bottom_delta="-160" name="invitee_list" tool_tip="Para seleccionar a varios residentes, mantenga pulsada la tecla Ctrl y vaya pulsando sus nombres."/> + <button left_delta="-7" width="214" label="Eliminar de la lista a los seleccionados" name="remove_button" tool_tip="Elimina los residentes seleccionados de la lista de invitaciones."/> <text name="role_text"> Elegir qué rol asignarles: </text> diff --git a/indra/newview/skins/default/xui/es/panel_group_land_money.xml b/indra/newview/skins/default/xui/es/panel_group_land_money.xml index 32473b813367636a53976d9880611c6969b19f2f..b4ea0dbeda3b15f184dc081b75cda3817b71bf31 100644 --- a/indra/newview/skins/default/xui/es/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/es/panel_group_land_money.xml @@ -13,17 +13,17 @@ <string name="loading_txt"> Cargando... </string> - <text name="group_land_heading"> + <text name="group_land_heading" width="250"> Terreno propiedad del grupo </text> <scroll_list name="group_parcel_list"> - <column label="Parcela" name="name"/> - <column label="Región" name="location"/> - <column label="Tipo" name="type"/> - <column label="Superficie" name="area"/> + <column label="Parcela" name="name" width="100"/> + <column label="Región" name="location" width="100"/> + <column label="Tipo" name="type" width="100"/> + <column label="Superficie" name="area" width="81"/> <column label="" name="hidden"/> </scroll_list> - <button label="Mostrar en el mapa" label_selected="Mostrar en el mapa" name="map_button"/> + <button label="Mostrar en el mapa" label_selected="Mostrar en el mapa" name="map_button" left="282" width="130"/> <text name="total_contributed_land_label"> Contribución total: </text> @@ -52,7 +52,8 @@ m² ([AMOUNT] máx.) </text> <text name="group_over_limit_text"> - Los miembros del grupo deben contribuir con más créditos de terreno para mantener el terreno en uso. + Los miembros del grupo deben contribuir con más créditos de terreno +para mantener el terreno en uso. </text> <text name="group_money_heading"> L$ del grupo diff --git a/indra/newview/skins/default/xui/es/panel_group_notices.xml b/indra/newview/skins/default/xui/es/panel_group_notices.xml index 8215575362194d23f9b724e2c77945789a265969..c6788b3a65be401732ee68b9427ab847c77cb9b6 100644 --- a/indra/newview/skins/default/xui/es/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/es/panel_group_notices.xml @@ -1,12 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Avisos" name="notices_tab"> <text name="help_text"> - Los avisos son una forma rápida de comunicación dentro -de un grupo, difundiendo un mensaje y, -si se quiere, añadiéndole un Ãtem. Los avisos sólo -los reciben los miembros del grupo cuyo rol -tiene adjudicada tal habilidad. Puede desactivar -los avisos en la pestaña General + Los avisos son una forma rápida de comunicación dentro de un grupo, difundiendo un mensaje y, si se quiere, añadiéndole un Ãtem. Los avisos sólo los reciben los miembros del grupo cuyo rol tiene adjudicada tal habilidad. Puede desactivar los avisos en la pestaña General. </text> <text name="no_notices_text"> No hay avisos pasados. @@ -16,9 +11,7 @@ los avisos en la pestaña General Archivo de avisos del grupo </text> <text name="lbl2"> - Los avisos se mantienen durante 14 dÃas. Pulse en la lista de abajo el que quiere ver. -Pulse el botón 'Actualizar' para comprobar si se han recibido avisos nuevos. -Las listas de avisos tienen un lÃmite de 200 avisos por dÃa. + Los avisos se mantienen durante 14 dÃas. Las listas de avisos tienen un lÃmite de 200 avisos por dÃa. </text> <scroll_list name="notice_list"> <column label="Asunto" name="subject"/> @@ -35,10 +28,7 @@ Las listas de avisos tienen un lÃmite de 200 avisos por dÃa. Crear un aviso </text> <text name="lbl2"> - Para enviar un aviso, debe escribir un asunto. Puede añadir un Ãtem -al aviso arrastrándolo desde su inventario a este panel. -Los Ãtems anexados deben ser copiables y transferibles, -y no se puede enviar una carpeta. + Puede añadir un Ãtem al aviso arrastrándolo desde su inventario a este panel. Los Ãtems anexados deben ser copiables y transferibles, y no se puede enviar una carpeta. </text> <text name="lbl3"> Asunto: @@ -50,7 +40,7 @@ y no se puede enviar una carpeta. Anexar: </text> <button label="Remover lo anexado" label_selected="Remover lo anexado" name="remove_attachment"/> - <button label="Enviar el aviso" label_selected="Enviar el aviso" name="send_notice"/> + <button label="Enviar" label_selected="Enviar" name="send_notice"/> <panel name="drop_target" tool_tip="Para enviar un Ãtem con el aviso, arrástrelo desde su inventario hasta el cuadro del mensaje. Para poder enviar ese objeto con el aviso, usted debe tener permiso para copiarlo y transferirlo."/> </panel> <panel label="Ver avisos pasados" name="panel_view_past_notice"> diff --git a/indra/newview/skins/default/xui/es/panel_group_roles.xml b/indra/newview/skins/default/xui/es/panel_group_roles.xml index 8cc1a4ba9dcbd9940eaf942f9ff69cd1561a2d92..2739a3da5e8f8337f02169c1b58ecc5b9a71354b 100644 --- a/indra/newview/skins/default/xui/es/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/es/panel_group_roles.xml @@ -12,7 +12,9 @@ Miembros y Roles </text> <text name="static2"> - Los miembros del grupo tienen asignados roles con distintas capacidades. Estas configuraciones son fácilmente personalizables, para facilitar una mayor flexibilidad y organización. + Los miembros del grupo tienen asignados roles con distintas capacidades. +Estas configuraciones son fácilmente personalizables, para facilitar una +mayor flexibilidad y organización. </text> </panel> <panel name="roles_header"> @@ -20,12 +22,14 @@ Roles </text> <text name="role_properties_modifiable"> - Elija un rol de los de abajo. Puede modificar su nombre, su descripción, y la etiqueta de los miembros. + Elija un rol de los de abajo. Puede modificar su nombre, su +descripción, y la etiqueta de los miembros. </text> <text name="role_properties_not_modifiable"> - Elija un rol de los de abajo para ver sus propiedades, miembros, y qué capacidades tiene asignadas. + Elija un rol de los de abajo para ver sus propiedades, miembros, y qué +capacidades tiene asignadas. </text> - <text name="role_actions_modifiable"> + <text bottom_delta="-28" name="role_actions_modifiable"> También puede asignar capacidades al rol. </text> <text name="role_actions_not_modifiable"> @@ -37,29 +41,32 @@ Capacidades </text> <text name="static2"> - Puede ver una descripción de la capacidad, y qué miembros y roles pueden realizarla. + Puede ver una descripción de la capacidad, y qué miembros y roles pueden +realizarla. </text> </panel> - <tab_container name="roles_tab_container"> - <panel label="Miembros" name="members_sub_tab" tool_tip="Miembros"> - <button label="Buscar" name="search_button"/> - <button label="Verlos todos" name="show_all_button"/> - <name_list name="member_list"> + <tab_container height="164" name="roles_tab_container"> + <panel height="148" label="Miembros" name="members_sub_tab" tool_tip="Miembros"> + <line_editor bottom="127" name="search_text"/> + <button label="Buscar" name="search_button" width="75"/> + <button label="Verlos todos" name="show_all_button" left_delta="80"/> + <name_list name="member_list" bottom_delta="-105" height="104" > <column label="Nombre del miembro" name="name"/> <column label="Cuotas donadas" name="donated"/> <column label="Última conexión" name="online"/> </name_list> - <button label="Invitar a un nuevo miembro..." name="member_invite"/> + <button label="Invitar a un nuevo miembro..." name="member_invite" width="175"/> <button label="Expulsar del grupo" name="member_eject"/> <string name="help_text"> Puede añadir o quitar los roles asignados a los miembros. Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada uno de ellos. </string> </panel> - <panel label="Roles" name="roles_sub_tab"> - <button label="Buscar" name="search_button"/> - <button label="Verlos todos" name="show_all_button"/> - <scroll_list name="role_list"> + <panel height="148" label="Roles" name="roles_sub_tab"> + <line_editor bottom="127" name="search_text"/> + <button label="Buscar" name="search_button" width="75"/> + <button label="Verlos todos" name="show_all_button" left_delta="80"/> + <scroll_list name="role_list" bottom_delta="-104" height="104"> <column label="Nombre del rol" name="name"/> <column label="Etiqueta" name="title"/> <column label="Miembros" name="members"/> @@ -73,10 +80,11 @@ Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada u Los roles de 'Todos' y 'Propietarios' son especiales, y no pueden eliminarse. </string> </panel> - <panel label="Capacidades" name="actions_sub_tab"> - <button label="Buscar" name="search_button"/> - <button label="Verlos todos" name="show_all_button"/> - <scroll_list name="action_list" tool_tip="Elija una capacidad para verla más en detalle."> + <panel height="148" label="Capacidades" name="actions_sub_tab"> + <line_editor bottom="127" name="search_text"/> + <button label="Buscar" name="search_button" width="75"/> + <button label="Verlos todos" name="show_all_button" left_delta="80"/> + <scroll_list bottom_delta="-120" height="118" name="action_list" tool_tip="Elija una capacidad para verla más en detalle."> <column label="" name="icon"/> <column label="" name="action"/> </scroll_list> diff --git a/indra/newview/skins/default/xui/es/panel_groups.xml b/indra/newview/skins/default/xui/es/panel_groups.xml index 1259ded62f99cde8da51ac71908e577f9a0d7db9..232de855224a5343262fe8216fe8f902d9300e43 100644 --- a/indra/newview/skins/default/xui/es/panel_groups.xml +++ b/indra/newview/skins/default/xui/es/panel_groups.xml @@ -1,9 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="groups"> - <text name="groupdesc"> - El grupo que tiene activado actualmente se muestra en negrilla + <scroll_list bottom="50" name="group list"/> + <text bottom="16" height="32" name="groupdesc" width="268"> + El grupo que tiene activado actualmente se +muestra en negrilla. </text> - <text name="groupcount"> + <text bottom="3" name="groupcount" width="268"> Pertenece a [COUNT] grupo/s (de un máximo de [MAX]). </text> <button label="MI/Llamar" name="IM" tool_tip="Abrir una sesión de mensajes instantáneos"/> diff --git a/indra/newview/skins/default/xui/es/panel_login.xml b/indra/newview/skins/default/xui/es/panel_login.xml index 8c3d7ae5755587a91836fb19b65e3ee85b4ae82e..6505424b35d2ddeb1d0836bd7a19ad28d242016b 100644 --- a/indra/newview/skins/default/xui/es/panel_login.xml +++ b/indra/newview/skins/default/xui/es/panel_login.xml @@ -21,7 +21,7 @@ <combo_box name="start_location_combo"> <combo_box.item name="MyHome" label="Mi Base"/> <combo_box.item name="MyLastLocation" label="Mi última posición"/> - <combo_box.item name="Typeregionname" label="lt;Escriba el nombre de la Región>"/> + <combo_box.item name="Typeregionname" label="<Escriba el nombre de la Región>"/> </combo_box> <check_box label="Recordar la contraseña" name="remember_check"/> <button label="Iniciar sesión" label_selected="Iniciar sesión" name="connect_btn"/> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml new file mode 100644 index 0000000000000000000000000000000000000000..2718ead861053a86e098979d51f7df478ba82f70 --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel name="advanced"> + <text name="AspectRatioLabel1" tool_tip="ancho / alto"> + Proporción: + </text> + <combo_box name="aspect_ratio" tool_tip="ancho / alto"> + <combo_box.item label="4:3 (Standard CRT)" name="item1"/> + <combo_box.item label="5:4 (1280x1024 LCD)" name="item2"/> + <combo_box.item label="8:5 (Widescreen)" name="item3"/> + <combo_box.item label="16:9 (Widescreen)" name="item4"/> + </combo_box> +</panel> 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 b8c9cc5b448590b4450655560b1f7927d2f9ab6b..4e9dc6db6ffd4895600ccdc166d9a9935b9948ce 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat de texto" name="chat"> - <text length="1" name="text_box" type="string"> + <text name="text_box"> Tamaño de la fuente del chat: </text> @@ -9,44 +9,50 @@ del chat: <radio_item name="radio2" label="Medio" /> <radio_item name="radio3" label="Grande" /> </radio_group> - <text length="1" name="text_box2" type="string"> - Color del chat: - </text> <color_swatch label="Usted" name="user"/> - <color_swatch label="Otros" name="agent" width="60" left_delta="48"/> - <color_swatch label="MI" name="im" left_delta="64" width="50"/> + <text name="text_box1"> + Usted + </text> + <color_swatch label="Otros" name="agent"/> + <text name="text_box2"> + Otros + </text> + <color_swatch label="MI" name="im"/> + <text name="text_box3"> + MI + </text> <color_swatch label="Sistema" name="system"/> - <color_swatch label="Errores" name="script_error" left_delta="48"/> + <text name="text_box4"> + Sistema + </text> + <color_swatch label="Errores de script" name="script_error"/> + <text name="text_box5"> + Errores de script + </text> <color_swatch label="Objetos" name="objects"/> - <color_swatch label="Propietario" name="owner" width="60" left_delta="48"/> - <color_swatch label="Bocadillo" name="background" left_delta="64" width="50"/> - <color_swatch label="URL" name="links" /> - <text length="1" name="text_box8" type="string"> - Errores de script: + <text name="text_box6"> + Objetos </text> - <check_box label="Ver en el chat los avisos y errores de los scripts" name="script_errors_as_chat"/> - <text length="1" name="text_box3" type="string"> - Consola del chat: + <color_swatch label="Propietario" name="owner"/> + <text name="text_box7"> + Propietario </text> - <spinner label="Quitar el chat tras" name="fade_chat_time" label_width="95" width="145" /> - <text length="1" name="text_box4" type="string" left="297" > - (seg.) + <color_swatch label="Bocadillo" name="background"/> + <text name="text_box8"> + Bocadillo </text> - <text length="1" name="text_box5" type="string"> - (# lÃneas) + <color_swatch label="URL" name="links"/> + <text name="text_box9"> + URL </text> + <check_box label="Ver en el chat los avisos y errores de los scripts" name="script_errors_as_chat"/> + <spinner label="Quitar el chat tras" name="fade_chat_time" label_width="95" width="145" /> <slider label="Opacidad" name="console_opacity"/> <check_box label="Usar el ancho de la pantalla (tras reiniciar)" name="chat_full_width_check"/> - <text length="1" name="text_box6" type="string"> - Opciones del chat: - </text> <check_box label="Cerrar el chat al pulsar Intro" name="close_chat_on_return_check"/> <check_box label="En el chat, las teclas del cursor mueven el avatar" name="arrow_keys_move_avatar_check"/> <check_box label="Incluir la hora en el chat" name="show_timestamps_check"/> <check_box label="Ejecutar la animación de escribir al hacerlo en el chat" name="play_typing_animation"/> - <text length="1" name="text_box7" type="string"> - Bocadillos del chat: - </text> <check_box label="Mostrar el chat en bocadillos" name="bubble_text_chat"/> <slider label="Opacidad" name="bubble_chat_opacity"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml index b711821e5f55118014d8eeef44e108dcf88dfd99..2f2aab5448bfdcb851dd9ad147778cdfcdfc903e 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml @@ -1,15 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="General" name="general_panel"> - <radio_group name="default_start_location"> - <radio_item name="MyHome" tool_tip="Por defecto, iniciar sesión en mi Base."> - Mi Base - </radio_item> - <radio_item name="MyLastLocation" tool_tip="Por defecto, iniciar sesión en mi última posición."> - Mi última posición - </radio_item> - </radio_group> + <combo_box name="start_location_combo"> + <combo_box.item name="MyHome" tool_tip="Por defecto, iniciar sesión en mi Base." label="Mi Base"/> + <combo_box.item name="MyLastLocation" tool_tip="Por defecto, iniciar sesión en mi última posición." label="Mi última posición"/> + </combo_box> <check_box label="Ver mi posición inicial en la pantalla de inicio de sesión" name="show_location_checkbox"/> - <combo_box name="fade_out_combobox" width="166"> + <combo_box name="fade_out_combobox"> <combo_box.item name="Never" label="Nunca"/> <combo_box.item name="Show Temporarily" label="Mostrarlos temporalmente"/> <combo_box.item name="Always" label="Siempre"/> @@ -28,84 +24,67 @@ <check_box label="Resolución independiente del tamaño" name="ui_auto_scale"/> <spinner label="Ausente tras:" name="afk_timeout_spinner"/> <check_box label="Avisar cuando gasto o recibo dólares Linden (L$)" name="notify_money_change_checkbox"/> - <text name="maturity_desired_label" bottom="-312"> + <text name="maturity_desired_label"> Calificación: </text> - <text name="maturity_desired_prompt" bottom="-312"> - Quiero acceder a -contenido calificado: + <text name="maturity_desired_prompt"> + Quiero acceder a contenido calificado: </text> - <combo_box name="maturity_desired_combobox" bottom="-330" left="274"> - <combo_item name="Desired_Adult"> - 'PG', 'Mature' y 'Adult' - </combo_item> - <combo_item name="Desired_Mature"> - 'PG' y 'Mature' - </combo_item> - <combo_item name="Desired_PG"> - sólo 'PG' - </combo_item> + <combo_box name="maturity_desired_combobox"> + <combo_box.item name="Desired_Adult" label="'PG', 'Mature' y 'Adult'"/> + <combo_box.item name="Desired_Mature" label="'PG' y 'Mature'"/> + <combo_box.item name="Desired_PG" label="sólo 'PG'"/> </combo_box> - <text name="maturity_desired_textbox" bottom="-324" left="274"> + <text name="maturity_desired_textbox"> sólo 'PG' </text> - <text length="1" name="start_location_textbox" type="string"> + <text name="start_location_textbox"> Posición inicial: </text> - <text length="1" name="show_names_textbox" type="string"> + <text name="show_names_textbox"> Mostrar los nombres: </text> - <text length="1" name="effects_color_textbox" type="string"> + <text name="effects_color_textbox"> Color de mis efectos: </text> - <text length="1" name="seconds_textbox" type="string"> + <text name="seconds_textbox"> segundos </text> - <text length="1" name="crash_report_textbox" type="string"> + <text name="crash_report_textbox"> Informes de caÃdas: </text> - <text length="1" name="language_textbox" type="string"> + <text name="language_textbox"> Idioma: </text> - <text left_delta="313" length="1" name="language_textbox2" type="string"> + <text name="language_textbox2"> (Tendrá efecto tras reiniciar) </text> <string name="region_name_prompt"> <escriba el nombre de la región> </string> - <combo_box name="crash_behavior_combobox" width="166"> - <combo_box.item length="1" name="Askbeforesending" type="string" label="Preguntar antes de enviar"/> - <combo_box.item length="1" name="Alwayssend" type="string" label="Enviar siempre"/> - <combo_box.item length="1" name="Neversend" type="string" label="No enviar nunca"/> + <combo_box name="crash_behavior_combobox"> + <combo_box.item name="Askbeforesending" label="Preguntar antes de enviar"/> + <combo_box.item name="Alwayssend" label="Enviar siempre"/> + <combo_box.item name="Neversend" label="No enviar nunca"/> </combo_box> - <combo_box name="language_combobox" width="166"> + <combo_box name="language_combobox"> <combo_box.item name="System Default Language" label="Predeterminado del sistema"/> - <combo_box.item length="1" name="English" type="string" label="English (Inglés)"/> + <combo_box.item name="English" label="English (Inglés)"/> <combo_box.item name="Danish" label="Dansk (Danés) - Beta"/> - <combo_box.item length="1" name="Deutsch(German)" type="string" label="Deutsch (Alemán) - Beta"/> - <combo_box.item name="Spanish" type="string" label="Español - Beta"/> - <combo_box.item length="1" name="French" type="string" label="Français (Francés) - Beta"/> + <combo_box.item name="Deutsch(German)" label="Deutsch (Alemán) - Beta"/> + <combo_box.item name="Spanish" label="Español - Beta"/> + <combo_box.item name="French" label="Français (Francés) - Beta"/> + <combo_box.item name="Italian" label="Italiano - Beta"/> <combo_box.item name="Hungarian" label="Magyar (Húngaro) - Beta"/> + <combo_box.item name="Dutch" label="Nederlands (Neerlandés) - Beta"/> <combo_box.item name="Polish" label="Polski (Polaco) - Beta"/> <combo_box.item name="Portugese" label="Portugués (Portugués) - Beta"/> - <combo_box.item length="1" name="Chinese" type="string" label="ä¸æ–‡ (简体) (Chino) - Beta"/> - <combo_box.item length="1" name="(Japanese)" type="string" label="日本語 (Japonés) - Beta"/> - <combo_box.item length="1" name="(Korean)" type="string" label="í•œêµì–´ (Coreano) - Beta"/> - <combo_item name="Italian"> - Italiano - Beta - </combo_item> - <combo_item name="Dutch"> - Nederlands (Neerlandés) - Beta - </combo_item> - </combo_item> - <combo_item name="Russian"> - РуÑÑкий (Ruso) - Beta - </combo_item> - <combo_item name="Turkish"> - Türkçe (Turco) - Beta - </combo_item> - <combo_item name="Ukrainian"> - УкраїнÑька (Ucraniano) - Beta + <combo_box.item name="Russian" label="РуÑÑкий (Ruso) - Beta"/> + <combo_box.item name="Turkish" label="Türkçe (Turco) - Beta"/> + <combo_box.item name="Ukrainian" label="УкраїнÑька (Ucraniano) - Beta"/> + <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (Chino) - Beta"/> + <combo_box.item name="(Japanese)" label="日本語 (Japonés) - Beta"/> + <combo_box.item name="(Korean)" label="í•œêµì–´ (Coreano) - Beta"/> </combo_box> <check_box label="Compartir el idioma con los objetos" name="language_is_public" tool_tip="Hace que los objetos con script del mundo sepan su idioma preferido."/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml index 7e19c6dd6bfc077b9abe7d0016de45d02a5207e5..4038940256304e2989be1878f123c680b93862ac 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml @@ -23,10 +23,10 @@ Proporción: </text> <combo_box left="124" name="aspect_ratio" tool_tip="ancho / alto"> - <combo_box.item length="1" name="4:3(StandardCRT)" type="string" label="4:3 (Standard CRT)"/> - <combo_box.item length="1" name="5:4(1280x1024LCD)" type="string" label="5:4 (1280x1024 LCD)"/> + <combo_box.item name="4:3(StandardCRT)" label="4:3 (Standard CRT)"/> + <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)"/> <combo_box.item name="8:5(Widescreen)" label="8:5 (Widescreen)"/> - <combo_box.item length="1" name="16:9(Widescreen)" type="string" label="16:9 (Widescreen)"/> + <combo_box.item name="16:9(Widescreen)" label="16:9 (Widescreen)"/> </combo_box> <check_box label="Detectar automáticamente la proporción" name="aspect_auto_detect" left="295" /> <text name="HigherText"> @@ -57,6 +57,7 @@ calidad </text> <check_box label="Personalizar" name="CustomSettings"/> + <panel name="CustomGraphics Panel"> <text name="ShadersText"> Shaders: </text> @@ -133,12 +134,13 @@ <radio_item name="0" label="Bajo" /> <radio_item name="2" label="Alto" /> </radio_group> + </panel> <button label="Configuraciones recomendadas" name="Defaults" width="195" left="110"/> <button label="Opciones del hardware" label_selected="Opciones del hardware" name="GraphicsHardwareButton" left="315"/> - <string name="resolution_format"> + <panel.string name="resolution_format"> [RES_X] x [RES_Y] - </string> - <string name="aspect_ratio_text"> + </panel.string> + <panel.string name="aspect_ratio_text"> [NUM]:[DEN] - </string> + </panel.string> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_region_covenant.xml b/indra/newview/skins/default/xui/es/panel_region_covenant.xml index 3f9e782bd76ab4d8c948efb67a72aa52fc483357..220479098bd5057c39ddc3add2f24278db08dbce 100644 --- a/indra/newview/skins/default/xui/es/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/es/panel_region_covenant.xml @@ -22,14 +22,15 @@ Última modificación el miér. 31 de dic. de 1969, 16:00:00 </text> <button label="?" name="covenant_help"/> - <text_editor name="covenant_editor"> + <text_editor name="covenant_editor" bottom="-263" height="178" > No se ha aportado un contrato para este estado. </text_editor> <button label="Cambiar" name="reset_covenant"/> <text name="covenant_help_text"> - Los cambios en el contrato se mostrarán en todas las parcelas del estado. + Los cambios en el contrato se mostrarán en todas las parcelas + del estado. </text> - <text name="covenant_instructions"> + <text name="covenant_instructions" bottom_delta="-31" > Para cambiar el contrato de este estado, arrastre y suelte una nota. </text> <text name="region_section_lbl"> @@ -75,6 +76,7 @@ El terreno comprado en esta región se podrá unir o subdividir. </string> <string name="can_not_change"> - El terreno comprado en esta región no se podrá unir ni subdividir. + El terreno comprado en esta región no se podrá unir ni +subdividir. </string> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_region_debug.xml b/indra/newview/skins/default/xui/es/panel_region_debug.xml index a722235243394025cfbb0672dc49a1834e3b57ad..a7999cc54d728d4d5ea6c10effa61f92767f0edf 100644 --- a/indra/newview/skins/default/xui/es/panel_region_debug.xml +++ b/indra/newview/skins/default/xui/es/panel_region_debug.xml @@ -7,13 +7,13 @@ desconocida </text> <check_box label="Desactivar los scripts" name="disable_scripts_check" tool_tip="Descativar todos los scripts en esta región"/> - <button label="?" name="disable_scripts_help"/> + <button label="?" name="disable_scripts_help" left="215"/> <check_box label="Desactivar las colisiones" name="disable_collisions_check" tool_tip="Desactiva las colisiones (no las de avatares) en esta región"/> - <button label="?" name="disable_collisions_help"/> + <button label="?" name="disable_collisions_help" left="215"/> <check_box label="Desactivar las propiedades fÃsicas" name="disable_physics_check" tool_tip="Desactiva toda la fÃsica en esta región"/> - <button label="?" name="disable_physics_help"/> + <button label="?" name="disable_physics_help" left="215"/> <button label="Aplicar" name="apply_btn"/> - <text name="objret_text_lbl"> + <text name="objret_text_lbl" width="130"> Devolver el objeto </text> <text name="resident_text_lbl"> @@ -30,10 +30,10 @@ <check_box label="Devolver sólo los objetos que están en terreno de otro" name="return_other_land" tool_tip="Devolver sólo los objetos que están en terreno de otro"/> <check_box label="Devolver los objetos de cualquier región de este estado" name="return_estate_wide" tool_tip="Devolver los objetos de todas las regiones que forman este estado"/> <button label="Devolver" name="return_btn"/> - <button label="Listar los objetos que colisionan..." name="top_colliders_btn" tool_tip="Lista de los objetos con más posibles colisiones potenciales"/> - <button label="?" name="top_colliders_help"/> - <button label="Listar los scripts según su uso..." name="top_scripts_btn" tool_tip="Lista de los objetos que más tiempo emplean ejecutando scripts"/> - <button label="?" name="top_scripts_help"/> + <button width="280" label="Listar los objetos que colisionan..." name="top_colliders_btn" tool_tip="Lista de los objetos con más posibles colisiones potenciales"/> + <button label="?" name="top_colliders_help" left="297"/> + <button width="280" label="Listar los scripts según su uso..." name="top_scripts_btn" tool_tip="Lista de los objetos que más tiempo emplean ejecutando scripts"/> + <button label="?" name="top_scripts_help" left="297"/> <button label="Reiniciar la región" name="restart_btn" tool_tip="Cuenta atrás de 2 minutos y reiniciar la región"/> <button label="?" name="restart_help"/> <button label="Retrasar el reinicio" name="cancel_restart_btn" tool_tip="Retrasar una hora el reinicio de la región"/> 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 93155d828defdaba7376676bcf8d1e71db312c7b..653dc32a2415aef82b5c86daac82c6cc73dd4ebb 100644 --- a/indra/newview/skins/default/xui/es/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/es/panel_region_estate.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Estado" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="Estado" name="Estate"> <text name="estate_help_text"> - Los cambios en las configuraciones de esta pestaña afectarán a todas -las regiones de este estado. + Los cambios en las configuraciones de esta +pestaña afectarán a todas las regiones del estado. </text> <text name="estate_text"> Estado: @@ -24,16 +26,16 @@ las regiones de este estado. <check_box label="Permitir el acceso público" name="externally_visible_check"/> <button label="?" name="externally_visible_help"/> <text name="Only Allow"> - Impedir el acceso a: + Impedir el acceso a Residentes... </text> - <check_box label="Residentes sin información de pago archivada" name="limit_payment" tool_tip="Impedir el acceso a los residentes no identificados."/> - <check_box label="Residentes de los que no se ha verificado si son adultos" name="limit_age_verified" tool_tip="Impedir el acceso a residentes que no hayan verificado su edad. Para más información, vea support.secondlife.com"/> + <check_box label="sin información de pago archivada" name="limit_payment" tool_tip="Impedir el acceso a los residentes no identificados."/> + <check_box label="que no han verificado si son adultos" name="limit_age_verified" tool_tip="Impedir el acceso a residentes que no hayan verificado su edad. Para más información, vea support.secondlife.com"/> <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"> - Dirección de correo electrónico para infracciones: + <text name="abuse_email_text" width="260"> + Dirección de correo-e para infracciones: </text> <string name="email_unsupported"> CaracterÃstica no disponible @@ -63,7 +65,9 @@ las regiones de este estado. <text name="ban_resident_label"> Residentes con el acceso prohibido: </text> - <button label="?" name="ban_resident_help"/> + <button label="?" name="ban_resident_help" right="476"/> <button label="Quitar..." name="remove_banned_avatar_btn"/> <button label="Añadir..." name="add_banned_avatar_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_region_general.xml b/indra/newview/skins/default/xui/es/panel_region_general.xml index 64169e427be07c1b566735a258bfcc334639c459..ca8da6ccaf42aa1e7edc8e22f507ddf643a8302e 100644 --- a/indra/newview/skins/default/xui/es/panel_region_general.xml +++ b/indra/newview/skins/default/xui/es/panel_region_general.xml @@ -30,30 +30,24 @@ <button label="?" name="land_resell_help"/> <check_box label="Permitir unir/dividir el terreno" name="allow_parcel_changes_check"/> <button label="?" name="parcel_changes_help"/> - <check_box label="Bloquear el mostrar el terreno en la búsqueda." name="block_parcel_search_check" tool_tip="Permitir que la gente vea esta región y sus parcelas en los resultados de la búsqueda."/> + <check_box label="Bloquear el mostrar el terreno en la búsqueda." name="block_parcel_search_check" tool_tip="Permitir que la gente vea esta región y sus parcelas en los resultados de la búsqueda."/> <button label="?" name="parcel_search_help"/> - <spinner label="Nº máximo de avatares" name="agent_limit_spin"/> + <spinner label="Nº máximo de avatares" name="agent_limit_spin" label_width="120" width="180"/> <button label="?" name="agent_limit_help"/> - <spinner label="Plus de objetos" name="object_bonus_spin"/> + <spinner label="Plus de objetos" name="object_bonus_spin" label_width="120" width="180"/> <button label="?" name="object_bonus_help"/> <text label="Calificación" name="access_text"> Calificación: </text> <combo_box label="'Mature'" name="access_combo"> - <combo_item name="Adult"> - 'Adult' - </combo_item> - <combo_item name="Mature"> - 'Mature' - </combo_item> - <combo_item name="PG"> - 'PG' - </combo_item> + <combo_box.item label="'Adult'" name="Adult"/> + <combo_box.item label="'Mature'" name="Mature"/> + <combo_box.item label="'PG'" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="Aplicar" name="apply_btn"/> <button label="Teleportar a su Base a un usuario..." name="kick_btn"/> <button label="Teleportar a su Base a todos los usuarios..." name="kick_all_btn"/> - <button label="Enviar un mensaje a toda la región..." name="im_btn"/> - <button label="Administrar el Punto de Teleporte..." name="manage_telehub_btn"/> + <button label="Enviar un mensaje a toda la región..." name="im_btn" width="250" /> + <button label="Administrar el Punto de Teleporte..." name="manage_telehub_btn" width="210"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_region_terrain.xml b/indra/newview/skins/default/xui/es/panel_region_terrain.xml index df333c0c5e585fa7eb747875673edffbd6b0ed6d..903b826a0bed82fe766df4f4fceae6497f1b10cd 100644 --- a/indra/newview/skins/default/xui/es/panel_region_terrain.xml +++ b/indra/newview/skins/default/xui/es/panel_region_terrain.xml @@ -8,9 +8,9 @@ </text> <spinner label="Nivel del agua" name="water_height_spin"/> <button label="?" name="water_height_help"/> - <spinner label="LÃmite de elevación del terreno" name="terrain_raise_spin"/> + <spinner label="LÃmite de elevación del terreno" name="terrain_raise_spin"/> <button label="?" name="terrain_raise_help"/> - <spinner label="LÃmite de bajada del terreno" name="terrain_lower_spin"/> + <spinner label="LÃmite de bajada del terreno" name="terrain_lower_spin" bottom_delta="-34"/> <button label="?" name="terrain_lower_help"/> <check_box label="Usar el Sol del estado" name="use_estate_sun_check"/> <button label="?" name="use_estate_sun_help"/> @@ -18,10 +18,10 @@ <button label="?" name="fixed_sun_help"/> <slider label="Fase" name="sun_hour_slider"/> <button label="Aplicar" name="apply_btn"/> - <button label="Descargar el RAW del terreno..." name="download_raw_btn" tool_tip="Disponible sólo para los propietarios del estado, no para los administradores"/> - <button label="?" name="download_raw_help"/> - <button label="Subir un RAW para el terreno..." name="upload_raw_btn" tool_tip="Disponible sólo para los propietarios del estado, no para los administradores"/> - <button label="?" name="upload_raw_help"/> - <button label="Predeterminar este terreno" name="bake_terrain_btn" tool_tip="Definir el terreno actual como punto medio para los lÃmites de elevación/bajada"/> - <button label="?" name="bake_terrain_help"/> + <button width="230" label="Descargar el RAW del terreno..." name="download_raw_btn" tool_tip="Disponible sólo para los propietarios del estado, no para los administradores"/> + <button left="246" label="?" name="download_raw_help"/> + <button width="230" label="Subir un RAW para el terreno..." name="upload_raw_btn" tool_tip="Disponible sólo para los propietarios del estado, no para los administradores"/> + <button left="246" label="?" name="upload_raw_help"/> + <button width="230" label="Predeterminar este terreno" name="bake_terrain_btn" tool_tip="Definir el terreno actual como punto medio para los lÃmites de elevación/bajada"/> + <button left="246" label="?" name="bake_terrain_help"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_region_texture.xml b/indra/newview/skins/default/xui/es/panel_region_texture.xml index d7f42ac41c0d6959a6853302243fbb98a5f7071b..879fb87be22d9e5c477e97440bfcd388432ae6b6 100644 --- a/indra/newview/skins/default/xui/es/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/es/panel_region_texture.xml @@ -1,12 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Texturas del terreno" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="Texturas del terreno" name="Textures"> <text name="region_text_lbl"> Región: </text> <text name="region_text"> desconocida </text> - <text name="detail_texture_text"> + <text name="detail_texture_text" width="380"> Texturas del terreno (se requieren archivos .tga de 512x512 y 24 bites) </text> <text name="height_text_lbl"> @@ -54,4 +56,6 @@ y el valor ALTA es la altura MÃNIMA de la textura #4. </text> <button label="Aplicar" name="apply_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_scrolling_param.xml b/indra/newview/skins/default/xui/es/panel_scrolling_param.xml index f6feab274f103ad78eef3fa8d4768819a5cf2c5d..bafd4e5e55dc0d1b53f8f8e149348fe595dd35e9 100644 --- a/indra/newview/skins/default/xui/es/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/es/panel_scrolling_param.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="LLScrollingPanelParam"> - <text length="1" name="Loading..." type="string"> + <text name="Loading..."> Cargando... </text> - <text length="1" name="Loading...2" type="string"> + <text name="Loading...2"> Cargando... </text> <slider label="[DESC]" name="param slider"/> diff --git a/indra/newview/skins/default/xui/es/panel_status_bar.xml b/indra/newview/skins/default/xui/es/panel_status_bar.xml index 0c5559a359b16a0ff7679d6177534cbf2ed97462..31cde7d237fe6f9d2f6d6b59d4363c02fa2ce2f7 100644 --- a/indra/newview/skins/default/xui/es/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/es/panel_status_bar.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <text length="1" name="ParcelNameText" tool_tip="Nombre de la parcela en la que está. Pulse Acerca del terreno." type="string"> + <text name="ParcelNameText" tool_tip="Nombre de la parcela en la que está. Pulse Acerca del terreno."> el nombre de la parcela va aquà </text> - <text length="1" name="BalanceText" tool_tip="Saldo de su cuenta" type="string"> + <text name="BalanceText" tool_tip="Saldo de su cuenta"> Cargando... </text> <button label="" label_selected="" name="buycurrency" tool_tip="Comprar dinero"/> - <text length="12" name="TimeText" tool_tip="Hora actual (costa oeste EE.UU.)" type="string"> + <text name="TimeText" tool_tip="Hora actual (costa oeste EE.UU.)"> 12:00 AM </text> <string name="StatBarDaysOfWeek"> @@ -18,7 +18,7 @@ </string> <button label="" label_selected="" name="scriptout" tool_tip="Errores y alertas de los scripts"/> <button label="" label_selected="" name="health" tool_tip="Vida"/> - <text length="1" name="HealthText" tool_tip="Vida" type="string"> + <text name="HealthText" tool_tip="Vida"> 100% </text> <button label="" label_selected="" name="no_fly" tool_tip="Prohibido volar"/> diff --git a/indra/newview/skins/default/xui/es/panel_world_map.xml b/indra/newview/skins/default/xui/es/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..93d0ea8fe3e4f0756744de745f04db98d6039228 --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + N + </panel.string> + <panel.string name="world_map_east"> + E + </panel.string> + <panel.string name="world_map_west"> + O + </panel.string> + <panel.string name="world_map_south"> + S + </panel.string> + <panel.string name="world_map_southeast"> + SE + </panel.string> + <panel.string name="world_map_northeast"> + NE + </panel.string> + <panel.string name="world_map_southwest"> + SO + </panel.string> + <panel.string name="world_map_northwest"> + NO + </panel.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="E" name="floater_map_east" text="E"> + E + </text> + <text label="O" name="floater_map_west" text="O"> + O + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SO" name="floater_map_southwest" text="SO"> + SO + </text> + <text label="NW" name="floater_map_northwest" text="NO"> + NO + </text> +</panel> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index 96bf0ea865f5edd9fa4cdeeb4bfc34ddec3ace0f..6b7019ba9500d4dbe4ee0447bc8bb5fcd1b685a9 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -486,4 +486,45 @@ <string name="choose_the_directory"> Elegir directorio </string> + <!-- OSMessageBox messages --> + <string name="MBAlreadyRunning"> + [APP_NAME] ya se está ejecutando. +Busque en la barra de su escritorio una copia minimizada del programa. +Si aun asà persiste este mensaje, reinicie su ordenador. + </string> + <string name="MBVideoDrvErr"> + No se puede ejecutar [APP_NAME] porque los drivers de su tarjeta de vÃdeo no están instalados correctamente, o no están actualizados, o son de un hardware no admitido. Por favor, asegúrese de que tiene los últimos drivers para su tarjeta de vÃdeo, e incluso en ese caso intente reinstalarlos. + +Si sigue recibiendo este mensaje, contacte con el [SUPPORT_SITE]. + </string> + <string name="accel-mac-control"> + Ctrl- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Alt- + </string> + <string name="accel-mac-shift"> + Mayús- + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Mayús+ + </string> + <string name="GraphicsQualityLow"> + Bajo + </string> + <string name="GraphicsQualityMid"> + Medio + </string> + <string name="GraphicsQualityHigh"> + Alto + </string> </strings> diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml index a556fa4173ae531f937f65660d741e170225ee44..f2d2dbfa07830a1864e472e257ff5b029c170adb 100644 --- a/indra/newview/skins/default/xui/fr/floater_about_land.xml +++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml @@ -2,11 +2,11 @@ <floater name="floaterland" title="À propos du terrain"> <tab_container name="landtab"> <panel label="Général" name="land_general_panel"> - <text length="1" name="Name:" type="string"> + <text name="Name:"> Nom : </text> <line_editor name="Name"/> - <text length="1" name="Description:" type="string"> + <text name="Description:"> Description : </text> <text_editor name="Description"/> @@ -22,14 +22,14 @@ <text name="ContentRatingText"> Adult </text> - <text length="1" name="Owner:" type="string"> + <text name="Owner:"> Propriétaire : </text> - <text length="1" name="OwnerText" type="string"> + <text name="OwnerText"> Leyla Linden </text> <button label="Profil..." label_selected="Profil..." name="Profile..."/> - <text length="1" name="Group:" type="string"> + <text name="Group:"> Groupe : </text> <text name="GroupText"/> @@ -37,43 +37,43 @@ <check_box label="Autoriser la cession au groupe" name="check deed" tool_tip="Un officier peut céder ce terrain au groupe. Il viendra alors s'ajouter au patrimoine du groupe."/> <button label="Céder..." label_selected="Céder..." name="Deed..." tool_tip="Vous ne pouvez céder le terrain que si vous avez un rôle d'officier dans le groupe sélectionné."/> <check_box label="Le propriétaire contribue en cédant du terrain" name="check contrib" tool_tip="Lorsqu'un terrain est cédé au groupe, l'ancien propriétaire fait également un don de terrain suffisant."/> - <text length="1" name="For Sale:" type="string"> + <text name="For Sale:"> À vendre : </text> - <text length="1" name="Not for sale." type="string"> + <text name="Not for sale."> Pas à vendre </text> - <text length="1" name="For Sale: Price L$[PRICE]." type="string"> + <text name="For Sale: Price L$[PRICE]."> Prix : [PRICE] L$ ([PRICE_PER_SQM] L$/m²). </text> <text name="SalePending"/> <button label="Vendre le terrain..." label_selected="Vendre le terrain..." name="Sell Land..."/> - <text length="1" name="For sale to" type="string"> + <text name="For sale to"> À vendre à : [BUYER] </text> - <text length="1" name="Sell with landowners objects in parcel." type="string"> + <text name="Sell with landowners objects in parcel."> Objets inclus dans la vente. </text> - <text length="1" name="Selling with no objects in parcel." type="string"> + <text name="Selling with no objects in parcel."> Objets non inclus dans la vente. </text> <button label="Annuler la vente du terrain" label_selected="Annuler la vente du terrain" left="275" name="Cancel Land Sale" width="165"/> - <text length="1" name="Claimed:" type="string"> + <text name="Claimed:"> Acquis : </text> - <text length="1" name="DateClaimText" type="string"> + <text name="DateClaimText"> Tue Aug 15 13:47:25 2006 </text> - <text length="1" name="PriceLabel" type="string"> + <text name="PriceLabel"> Superficie : </text> - <text length="1" name="PriceText" type="string"> + <text name="PriceText"> 4048 m² </text> - <text length="1" name="Traffic:" type="string"> + <text name="Traffic:"> Trafic : </text> - <text length="1" name="DwellText" type="string"> + <text name="DwellText"> 0 </text> <button label="Acheter le terrain..." label_selected="Acheter le terrain..." left="130" name="Buy Land..." width="125"/> @@ -82,76 +82,76 @@ <button label="Abandonner le terrain..." label_selected="Abandonner le terrain..." name="Abandon Land..."/> <button label="Redemander le terrain..." label_selected="Redemander le terrain…" name="Reclaim Land..."/> <button label="Vente Linden..." label_selected="Vente Linden..." name="Linden Sale..." tool_tip="Le terrain doit être la propriété d'un résident, avoir un contenu défini et ne pas être aux enchères."/> - <string name="new users only"> + <panel.string name="new users only"> Nouveaux utilisateurs uniquement - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> Tout le monde - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> Surface - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA] m² - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> Code de l'enchère : [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> Pour modifier ce terrain, vous devez approuver votre achat. - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (propriété du groupe) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> Profil... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> Infos... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (public) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (aucun) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (vente en cours) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> Aucune parcelle sélectionnée. Allez dans le menu Monde > À propos du terrain ou sélectionnez une autre parcelle pour en afficher les détails. - </string> + </panel.string> </panel> <panel label="Règlement" name="land_covenant_panel"> <text name="estate_section_lbl"> Domaine : </text> - <text length="1" name="estate_name_lbl" type="string"> + <text name="estate_name_lbl"> Nom : </text> - <text length="1" name="estate_name_text" type="string"> + <text name="estate_name_text"> continent </text> - <text length="1" name="estate_owner_lbl" type="string"> + <text name="estate_owner_lbl"> Propriétaire : </text> - <text length="1" name="estate_owner_text" type="string"> + <text name="estate_owner_text"> (aucun) </text> - <text_editor length="1" name="covenant_editor" type="string"> + <text_editor name="covenant_editor"> Il n'y a aucun règlement pour ce domaine. </text_editor> - <text length="1" name="covenant_timestamp_text" type="string"> + <text name="covenant_timestamp_text"> Last Modified Wed Dec 31 16:00:00 1969 </text> <text name="region_section_lbl"> Région : </text> - <text length="1" name="region_name_lbl" type="string"> + <text name="region_name_lbl"> Nom : </text> - <text length="1" name="region_name_text" type="string"> + <text name="region_name_text"> leyla </text> <text name="region_landtype_lbl"> @@ -169,93 +169,93 @@ Allez dans le menu Monde > À propos du terrain ou sélectionnez une autre pa <text name="resellable_lbl"> Revendre : </text> - <text length="1" name="resellable_clause" type="string"> + <text name="resellable_clause"> Le terrain dans cette région ne peut être revendu. </text> <text name="changeable_lbl"> Sous-diviser : </text> - <text length="1" name="changeable_clause" type="string"> + <text name="changeable_clause"> Le terrain dans cette région ne peut être fusionné/divisé. </text> - <string name="can_resell"> + <panel.string name="can_resell"> Le terrain acheté dans cette région peut être revendu. - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> Le terrain acheté dans cette région ne peut pas être revendu. - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> Le terrain acheté dans cette région peut être fusionné ou divisé. - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> Le terrain acheté dans cette région ne peut pas être fusionné ou divisé. - </string> + </panel.string> </panel> <panel label="Objets" name="land_objects_panel"> <text name="parcel_object_bonus"> Facteur Bonus Objets : [BONUS] </text> - <text length="1" name="Simulator primitive usage:" type="string"> + <text name="Simulator primitive usage:"> Prims utilisées sur la parcelle : </text> <text left="214" name="objects_available" width="230"> [COUNT] sur [MAX] ([AVAILABLE] disponibles) </text> - <string name="objects_available_text"> + <panel.string name="objects_available_text"> [COUNT] sur [MAX] ([AVAILABLE] disponibles) - </string> - <string name="objects_deleted_text"> + </panel.string> + <panel.string name="objects_deleted_text"> [COUNT] sur [MAX] ([DELETED] seront supprimés) - </string> - <text length="1" name="Primitives parcel supports:" type="string" width="200"> + </panel.string> + <text name="Primitives parcel supports:" width="200"> Prims max. sur la parcelle : </text> - <text left="214" length="1" name="object_contrib_text" type="string" width="152"> + <text left="214" name="object_contrib_text" width="152"> [COUNT] </text> - <text length="1" name="Primitives on parcel:" type="string"> + <text name="Primitives on parcel:"> Prims sur la parcelle : </text> - <text left="214" length="1" name="total_objects_text" type="string" width="48"> + <text left="214" name="total_objects_text" width="48"> [COUNT] </text> - <text left="14" length="1" name="Owned by parcel owner:" type="string" width="180"> + <text left="14" name="Owned by parcel owner:" width="180"> Appartenant au propriétaire : </text> - <text left="214" length="1" name="owner_objects_text" type="string" width="48"> + <text left="214" name="owner_objects_text" width="48"> [COUNT] </text> <button label="Afficher" label_selected="Afficher" name="ShowOwner" right="-135" width="60"/> <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOwner..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/> - <text left="14" length="1" name="Set to group:" type="string" width="180"> + <text left="14" name="Set to group:" width="180"> Données au groupe : </text> - <text left="214" length="1" name="group_objects_text" type="string" width="48"> + <text left="214" name="group_objects_text" width="48"> [COUNT] </text> <button label="Afficher" label_selected="Afficher" name="ShowGroup" right="-135" width="60"/> <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnGroup..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/> - <text left="14" length="1" name="Owned by others:" type="string" width="128"> + <text left="14" name="Owned by others:" width="128"> Appartenant à d'autres : </text> - <text left="214" length="1" name="other_objects_text" type="string" width="48"> + <text left="214" name="other_objects_text" width="48"> [COUNT] </text> <button label="Afficher" label_selected="Afficher" name="ShowOther" right="-135" width="60"/> <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOther..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/> - <text left="14" length="1" name="Selected / sat upon:" type="string" width="193"> + <text left="14" name="Selected / sat upon:" width="193"> Sélectionnées/où quelqu'un est assis : </text> - <text left="214" length="1" name="selected_objects_text" type="string" width="48"> + <text left="214" name="selected_objects_text" width="48"> [COUNT] </text> <text left="4" name="Autoreturn" width="412"> Renvoi automatique des objets des autres résidents (min., 0 pour désactiver) : </text> <line_editor name="clean other time" right="-6" width="36"/> - <text length="1" name="Object Owners:" type="string"> + <text name="Object Owners:"> Propriétaires : </text> <button label="Rafraîchir" label_selected="Rafraîchir" name="Refresh List"/> @@ -269,7 +269,7 @@ ou divisé. </name_list> </panel> <panel label="Options" name="land_options_panel"> - <text length="1" name="allow_label" type="string"> + <text name="allow_label"> Autoriser les autres résidents à  : </text> <check_box label="Modifier le terrain" name="edit land check" tool_tip="Si cette option est cochée, n'importe qui peut terraformer votre terrain. Il vaut mieux ne pas cocher cette option pour toujours pouvoir modifer votre propre terrain."/> @@ -290,147 +290,119 @@ ou divisé. </text> <check_box label="Tous les résidents" left="285" name="check other scripts"/> <check_box label="Groupe" left="395" name="check group scripts"/> - <text length="1" name="land_options_label" type="string"> + <text name="land_options_label"> Options du terrain : </text> <check_box label="Sécurisé (pas de dégâts)" name="check safe" tool_tip="Si cette option est cochée, le terrain est sécurisé et il n'y pas de risques de dommages causés par des combats. Si elle est décochée, des dommages causés par les combats peuvent avoir lieu."/> <check_box bottom="-140" label="Pas de bousculades" left="14" name="PushRestrictCheck" tool_tip="Empêche l'utilisation de scripts causant des bousculades. Cette option est utile pour empêcher les comportements abusifs sur votre terrain."/> <check_box bottom="-160" label="Afficher dans la recherche (30 L$/semaine) sous" name="ShowDirectoryCheck" tool_tip="Afficher la parcelle dans les résultats de recherche"/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> Permettre aux autres résidents de voir cette parcelle dans les résultats de recherche - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> Cette option est désactivée car la superficie de cette parcelle est inférieure ou égale à 128 m². Seules les parcelles de grande taille peuvent apparaître dans la recherche. - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> Cette option est désactivée car vous ne pouvez pas modifier les options de cette parcelle. - </string> + </panel.string> <combo_box bottom="-160" left="286" name="land category with adult" width="146"> - <combo_item name="AnyCategory"> - Toutes catégories - </combo_item> - <combo_item name="LindenLocation"> - Appartenant aux Lindens - </combo_item> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Arts&Culture"> - Art et Culture - </combo_item> - <combo_item name="Business"> - Affaires - </combo_item> - <combo_item name="Educational"> - Éducation - </combo_item> - <combo_item name="Gaming"> - Jeux - </combo_item> - <combo_item name="Hangout"> - Favoris - </combo_item> - <combo_item name="NewcomerFriendly"> - Accueil pour les nouveaux - </combo_item> - <combo_item name="Parks&Nature"> - Parcs et Nature - </combo_item> - <combo_item name="Residential"> - Résidentiel - </combo_item> - <combo_item name="Shopping"> - Shopping - </combo_item> - <combo_item name="Other"> - Autre - </combo_item> + <combo_box.item name="item0" label="Toutes catégories" + /> + <combo_box.item name="item1" label="Appartenant aux Lindens" + /> + <combo_box.item name="item2" label="Adult" + /> + <combo_box.item name="item3" label="Art et Culture" + /> + <combo_box.item name="item4" label="Affaires" + /> + <combo_box.item name="item5" label="Éducation" + /> + <combo_box.item name="item6" label="Jeux" + /> + <combo_box.item name="item7" label="Favoris" + /> + <combo_box.item name="item8" label="Accueil pour les nouveaux" + /> + <combo_box.item name="item9" label="Parcs et Nature" + /> + <combo_box.item name="item10" label="Résidentiel" + /> + <combo_box.item name="item11" label="Shopping" + /> + <combo_box.item name="item12" label="Autre" + /> </combo_box> <combo_box bottom="-160" left="286" name="land category" width="146"> - <combo_item name="AnyCategory"> - Toutes catégories - </combo_item> - <combo_item name="LindenLocation"> - Appartenant aux Lindens - </combo_item> - <combo_item name="Arts&Culture"> - Art et Culture - </combo_item> - <combo_item name="Business"> - Affaires - </combo_item> - <combo_item name="Educational"> - Éducation - </combo_item> - <combo_item name="Gaming"> - Jeux - </combo_item> - <combo_item name="Hangout"> - Favoris - </combo_item> - <combo_item name="NewcomerFriendly"> - Accueil pour les nouveaux - </combo_item> - <combo_item name="Parks&Nature"> - Parcs et Nature - </combo_item> - <combo_item name="Residential"> - Résidentiel - </combo_item> - <combo_item name="Shopping"> - Shopping - </combo_item> - <combo_item name="Other"> - Autre - </combo_item> + <combo_box.item name="item0" label="Toutes catégories" + /> + <combo_box.item name="item1" label="Appartenant aux Lindens" + /> + <combo_box.item name="item3" label="Art et Culture" + /> + <combo_box.item name="item4" label="Affaires" + /> + <combo_box.item name="item5" label="Éducation" + /> + <combo_box.item name="item6" label="Jeux" + /> + <combo_box.item name="item7" label="Favoris" + /> + <combo_box.item name="item8" label="Accueil pour les nouveaux" + /> + <combo_box.item name="item9" label="Parcs et Nature" + /> + <combo_box.item name="item10" label="Résidentiel" + /> + <combo_box.item name="item11" label="Shopping" + /> + <combo_box.item name="item12" label="Autre" + /> </combo_box> <button bottom="-160" label="?" label_selected="?" left="436" name="?"/> <check_box bottom="-180" label="Contenu Mature" name="MatureCheck" tool_tip=""/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Contenu Mature - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Contenu Adult - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> Les informations ou contenu de votre parcelle sont classés Mature. - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> Les informations ou contenu de votre parcelle sont classés Adult. - </string> - <text bottom="-200" length="1" name="Snapshot:" type="string"> + </panel.string> + <text bottom="-200" name="Snapshot:"> Photo : </text> <texture_picker bottom="-319" label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image"/> <text bottom="-323" name="landing_point"> Lieu d'arrivée : [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (aucun) - </string> + </panel.string> <button bottom="-323" label="Définir" label_selected="Définir" name="Set" tool_tip="Définit le point d'arrivée des visiteurs. Définit l'emplacement de votre avatar sur ce terrain."/> <button bottom="-323" label="Annuler" label_selected="Annuler" name="Clear" tool_tip="Libérer le lieu d'arrivée."/> - <text bottom="-343" length="1" name="Teleport Routing: " type="string"> + <text bottom="-343" name="Teleport Routing: "> Règles de téléportation : </text> <combo_box bottom="-343" left="140" name="landing type" tool_tip="Vous permet de paramétrer les téléportations sur votre terrain." width="140"> - <combo_item length="1" name="Blocked" type="string"> - Bloqué - </combo_item> - <combo_item length="1" name="LandingPoint" type="string"> - Lieu d'arrivée fixe - </combo_item> - <combo_item length="1" name="Anywhere" type="string"> - Lieu d'arrivée libre - </combo_item> + <combo_box.item name="Blocked" label="Bloqué" + /> + <combo_box.item name="LandingPoint" label="Lieu d'arrivée fixe" + /> + <combo_box.item name="Anywhere" label="Lieu d'arrivée libre" + /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> Pas de bousculades - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> Pas de bousculades (les règles de la région priment) - </string> + </panel.string> </panel> <panel label="Médias" name="land_media_panel"> <text name="with media:" width="85"> @@ -447,7 +419,7 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche. Description : </text> <line_editor left="97" name="url_description" tool_tip="Texte affiché à côté du bouton Jouer/Charger"/> - <text length="1" name="Media texture:" type="string"> + <text name="Media texture:"> Remplacer la texture : </text> @@ -490,7 +462,7 @@ musique : <check_box label="Limiter le chat vocal à cette parcelle" left="117" name="parcel_enable_voice_channel_parcel"/> </panel> <panel label="Accès" name="land_access_panel"> - <text length="1" name="Limit access to this parcel to:" type="string"> + <text name="Limit access to this parcel to:"> Accès à cette parcelle </text> <check_box label="Autoriser l'accès public" name="public_access"/> @@ -499,18 +471,16 @@ musique : </text> <check_box label="Qui n'ont pas fourni leurs informations de paiement à Linden Lab" name="limit_payment" tool_tip="Aux résidents non identifés"/> <check_box label="Dont l'âge n'a pas été vérifié" name="limit_age_verified" tool_tip="Aux résidents dont l'âge n'a pas été vérifié. Pour plus d'infos, consultez la page support.secondlife.com."/> - <string name="estate_override"> + <panel.string name="estate_override"> Au moins une de ces options est définie au niveau du domaine. - </string> + </panel.string> <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="Vendre des pass à  :" name="PassCheck" tool_tip="Autoriser un accès temporaire à cette parcelle"/> <combo_box name="pass_combo"> - <combo_item name="Anyone"> - Tout le monde - </combo_item> - <combo_item name="Group"> - Groupe - </combo_item> + <combo_box.item name="Anyone" label="Tout le monde" + /> + <combo_box.item name="Group" label="Groupe" + /> </combo_box> <spinner label="Prix en L$ :" name="PriceSpin"/> <spinner label="Durée en heures :" name="HoursSpin"/> diff --git a/indra/newview/skins/default/xui/fr/floater_customize.xml b/indra/newview/skins/default/xui/fr/floater_customize.xml index b1d7edbe529b98d613ab6012527dbda509c8e0e8..1250c46933fce4378bcc9c17d3c7048f995f3d95 100644 --- a/indra/newview/skins/default/xui/fr/floater_customize.xml +++ b/indra/newview/skins/default/xui/fr/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="Apparence" width="548"> <tab_container name="customize tab container" tab_min_width="150" width="546"> - <panel label="Parties du corps" name="body_parts_placeholder"/> + <placeholder label="Parties du corps" name="body_parts_placeholder"/> <panel label="Silhouette" left="154" name="Shape" width="389"> <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> <button label="Corps" label_selected="Corps" name="Body"/> @@ -14,34 +14,30 @@ <button label="Torse" label_selected="Torse" name="Torso"/> <button label="Jambes" label_selected="Jambes" name="Legs"/> <radio_group name="sex radio"> - <radio_item length="1" name="radio" type="string"> - Femme - </radio_item> - <radio_item length="1" name="radio2" type="string"> - Homme - </radio_item> + <radio_item name="radio" label="Femme"/> + <radio_item name="radio2" label="Homme"/> </radio_group> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portée </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Pour changer de silhouette, faites-en glisser une à partir de votre inventaire jusqu'à votre avatar. Vous pouvez aussi en créer une nouvelle et de la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -56,26 +52,26 @@ et de la porter. <button label="Détails visage" label_selected="Détails visage" name="Face Detail" width="84"/> <button label="Maquillage" label_selected="Maquillage" name="Makeup" width="84"/> <button label="Détails corps" label_selected="Détails corps" name="Body Detail" width="84"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portée </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Pour changer de peau, faites-en glisser une à partir de votre inventaire. Vous pouvez aussi en créer une nouvelle et la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -94,27 +90,27 @@ Vous pouvez aussi en créer une nouvelle et la porter. <button label="Style" label_selected="Style" name="Style"/> <button label="Sourcils" label_selected="Sourcils" name="Eyebrows"/> <button label="Pilosité" label_selected="Pilosité" name="Facial"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portés </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Pour changer de chevelure, faites-en glisser une de votre inventaire jusqu'à votre avatar. Vous pouvez aussi en créer une nouvelle et la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -127,26 +123,26 @@ et la porter. <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> </panel> <panel label="Yeux" name="Eyes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portés </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Pour changer vos yeux, faites-les glisser de votre inventaire jusqu'à votre avatar. Vous pouvez aussi en créer de nouveaux et les porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -167,26 +163,26 @@ votre avatar. Vous pouvez aussi en créer de nouveaux et les porter. <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/> <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/> <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portée </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de chemise, faites-en glisser une de votre inventaire + <text name="not worn instructions"> + Pour porter une nouvelle chemise, faites-en glisser une de votre inventaire jusqu'à votre avatar. Vous pouvez aussi en créer une nouvelle et la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -201,26 +197,26 @@ jusqu'à votre avatar. Vous pouvez aussi en créer une nouvelle et la porte <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/> <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/> <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non porté </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de pantalon, faites-en glisser un de votre inventaire + <text name="not worn instructions"> + Pour porter un nouveau pantalon, faites-en glisser un de votre inventaire jusqu'à votre avatar. Vous pouvez aussi en créer un nouveau et le porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -228,27 +224,27 @@ jusqu'à votre avatar. Vous pouvez aussi en créer un nouveau et le porter. </text> </panel> <panel label="Chaussures" name="Shoes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portées </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de chaussures, faites-en glisser une paire de votre + <text name="not worn instructions"> + Pour porter de nouvelles chaussures, faites-en glisser une paire de votre inventaire jusqu'à votre avatar. Vous pouvez aussi en créer une nouvelle paire et la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -263,27 +259,27 @@ nouvelle paire et la porter. <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> </panel> <panel label="Chaussettes" name="Socks"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portées </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de chaussettes, faites-en glisser une paire de votre + <text name="not worn instructions"> + Pour porter de nouvelles chaussettes, faites-en glisser une paire de votre inventaire jusqu'à votre avatar. Vous pouvez aussi en créer une nouvelle paire et la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -298,26 +294,26 @@ nouvelle paire et la porter. <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> </panel> <panel label="Veste" name="Jacket"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portée </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de veste, faites-en glisser une de votre inventaire jusqu'à -votre avatar. Vous pouvez aussi en créer une nouvelle et la porter. + <text name="not worn instructions"> + Pour porter une nouvelle veste, faites-en glisser une de votre inventaire +jusqu'à votre avatar. Vous pouvez aussi en créer une nouvelle et la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -333,26 +329,26 @@ votre avatar. Vous pouvez aussi en créer une nouvelle et la porter. <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> </panel> <panel label="Gants" name="Gloves"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portés </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de gants, faites-en glisser une paire à partir de votre + <text name="not worn instructions"> + Pour porter de nouveaux gants, faites-les glisser à partir de votre inventaire. Vous pouvez aussi en créer une nouvelle paire et la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> @@ -367,26 +363,26 @@ inventaire. Vous pouvez aussi en créer une nouvelle paire et la porter. <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> </panel> <panel label="Sous-vêtements (haut)" name="Undershirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portés </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de sous-vêtement, faites-en glisser une paire à partir de + <text name="not worn instructions"> + Pour porter de nouveaux sous-vêtements, faites-les glisser à partir de votre inventaire. Vous pouvez aussi en créer des nouveaux et les porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92" bottom="-470"> @@ -402,26 +398,26 @@ votre inventaire. Vous pouvez aussi en créer des nouveaux et les porter. <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> </panel> <panel label="Sous-vêtements (bas)" name="Underpants"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portés </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de sous-vêtement, faites-en glisser une paire à partir de + <text name="not worn instructions"> + Pour porter de nouveaux sous-vêtements, faites-les glisser à partir de votre inventaire. Vous pouvez aussi en créer des nouveaux et les porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92" bottom="-470"> @@ -437,26 +433,26 @@ votre inventaire. Vous pouvez aussi en créer des nouveaux et les porter. <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/> </panel> <panel label="Jupe" name="Skirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: impossible de modifier </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: en cours de chargement... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: non portée </text> - <text length="1" name="path" type="string"> + <text name="path"> Emplacement : [PATH] </text> - <text length="1" name="not worn instructions" type="string"> - Pour changer de jupe, faites-en glisser une à partir de votre inventaire. -Vous pouvez aussi en créer une nouvelle et la porter. + <text name="not worn instructions"> + Pour porter une nouvelle jupe, faites-en glisser une à partir de votre +inventaire. Vous pouvez aussi en créer une nouvelle et la porter. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Vous n'avez pas la permission de modifier cet objet. </text> <text name="Item Action Label" right="92"> diff --git a/indra/newview/skins/default/xui/fr/floater_inventory.xml b/indra/newview/skins/default/xui/fr/floater_inventory.xml index 071c0ae133c407db6ebc2be0975fc1eee313be26..7173025d18e18667c1132b795ad9dd31f4bb38c5 100644 --- a/indra/newview/skins/default/xui/fr/floater_inventory.xml +++ b/indra/newview/skins/default/xui/fr/floater_inventory.xml @@ -29,8 +29,8 @@ <menu_item_call label="Nouvelle veste" name="New Jacket"/> <menu_item_call label="Nouvelle jupe" name="New Skirt"/> <menu_item_call label="Nouveaux gants" name="New Gloves"/> - <menu_item_call label="Nouveau tricot" name="New Undershirt"/> - <menu_item_call label="Nouveaux sous-vêtements" name="New Underpants"/> + <menu_item_call label="Nouveaux sous-vêtements (haut)" name="New Undershirt"/> + <menu_item_call label="Nouveaux sous-vêtements (bas)" name="New Underpants"/> </menu> <menu name="New Body Parts"> <menu_item_call label="Nouvelle silhouette" name="New Shape"/> 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 090f5f6bc9cd2ab83ce3e91eb35dc4091f74f788..634bb6e2e986e46b48226f30c90897b943d627f0 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 @@ -12,13 +12,13 @@ <check_box label="Textures" name="check_texture"/> <check_box label="Photos" name="check_snapshot"/> <button label="Tout" label_selected="Tout" name="All" width="70"/> - <button label="Aucun" label_selected="Aucun" name="None" width="70" bottom="-260" left="83"/> - <check_box label="Toujours montrer les dossiers" name="check_show_empty" bottom="-284"/> - <check_box label="Depuis la déconnexion" name="check_since_logoff" bottom="-318"/> - <text length="1" name="- OR -" type="string"> + <button label="Aucun" label_selected="Aucun" name="None" width="70" bottom_delta="0" left="83"/> + <check_box label="Toujours montrer les dossiers" name="check_show_empty" bottom_delta="-20"/> + <check_box label="Depuis la déconnexion" name="check_since_logoff" bottom_delta="-36"/> + <text name="- OR -"> Ou il y a... </text> <spinner label="Heures" name="spin_hours_ago"/> <spinner label="Jours" name="spin_days_ago"/> - <button label="Fermer" label_selected="Fermer" name="Close"/> + <button label="Fermer" label_selected="Fermer" name="Close" bottom_delta="-30"/> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_joystick.xml b/indra/newview/skins/default/xui/fr/floater_joystick.xml index be336c827ecad62651b818d282def1b4156b5cd4..75800847d72b708ccbd8c366a3e52741e9a85fe9 100644 --- a/indra/newview/skins/default/xui/fr/floater_joystick.xml +++ b/indra/newview/skins/default/xui/fr/floater_joystick.xml @@ -1,8 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="Configuration du joystick"> - <check_box name="enable_joystick"> - Activer : - </check_box> + <check_box name="enable_joystick" label="Activer :"/> <spinner label="Mapping axe des X " name="JoystickAxis1"/> <spinner label="Mapping axe des Y" name="JoystickAxis2"/> <spinner label="Mapping axe des Z" name="JoystickAxis0"/> @@ -16,15 +14,9 @@ <text name="Control Modes:"> Modes de contrôle : </text> - <check_box name="JoystickAvatarEnabled"> - Avatar - </check_box> - <check_box name="JoystickBuildEnabled"> - Build - </check_box> - <check_box name="JoystickFlycamEnabled"> - Flycam - </check_box> + <check_box name="JoystickAvatarEnabled" label="Avatar"/> + <check_box name="JoystickBuildEnabled" label="Build"/> + <check_box name="JoystickFlycamEnabled" label="Flycam"/> <text name="XScale"> Échelle des X </text> @@ -73,12 +65,14 @@ <button label="Options par défaut du joystick" name="SpaceNavigatorDefaults"/> <button label="OK" label_selected="OK" name="ok_btn"/> <button label="Annuler" label_selected="Annuler" name="cancel_btn"/> - <string name="JoystickMonitor"> - Contrôle du joystick - </string> - <string name="Axis"> - Axe [NUM] - </string> + <stat_view label="Contrôle du joystick" name="axis_view"> + <stat_bar label="Axe 0" name="axis0"/> + <stat_bar label="Axe 1" name="axis1"/> + <stat_bar label="Axe 2" name="axis2"/> + <stat_bar label="Axe 3" name="axis3"/> + <stat_bar label="Axe 4" name="axis4"/> + <stat_bar label="Axe 5" name="axis5"/> + </stat_view> <string name="NoDevice"> aucun joystick détecté </string> diff --git a/indra/newview/skins/default/xui/fr/floater_map.xml b/indra/newview/skins/default/xui/fr/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..20bd9e60b4b209e4d8153628c9a1aff153d46260 --- /dev/null +++ b/indra/newview/skins/default/xui/fr/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + N + </floater.string> + <floater.string name="mini_map_east"> + E + </floater.string> + <floater.string name="mini_map_west"> + O + </floater.string> + <floater.string name="mini_map_south"> + S + </floater.string> + <floater.string name="mini_map_southeast"> + SE + </floater.string> + <floater.string name="mini_map_northeast"> + NE + </floater.string> + <floater.string name="mini_map_southwest"> + SO + </floater.string> + <floater.string name="mini_map_northwest"> + NO + </floater.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="E" name="floater_map_east" text="E"> + E + </text> + <text label="O" name="floater_map_west" text="O"> + O + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SO" name="floater_map_southwest" text="SO"> + SO + </text> + <text label="NO" name="floater_map_northwest" text="NO"> + NO + </text> +</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml b/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml index a22d0a2934bded726ca22642190297b36bff5357..8ee3a23b95f43a1476bd39bce5988aaa49a7ab75 100644 --- a/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml +++ b/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml @@ -11,8 +11,8 @@ <text name="note_label_2"> [NOTE2] </text> - <button label="Commencer" name="start_btn" /> - <button label="Stop" name="stop_btn" /> - <button label="Libérer" name="release_btn" /> + <button label="Commencer" name="start_btn" width="85"/> + <button label="Stop" name="stop_btn" left="100"/> + <button label="Libérer" name="release_btn" left="177"/> <button label="Fermer" name="close_btn" /> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_moveview.xml b/indra/newview/skins/default/xui/fr/floater_moveview.xml index 55ea8700a6ca0cc6ad06484dae0c104183b2b985..e59f09cba1cb9f852b195760fe20d58ca4f9e1c2 100644 --- a/indra/newview/skins/default/xui/fr/floater_moveview.xml +++ b/indra/newview/skins/default/xui/fr/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Tourner à gauche"/> <button label="" label_selected="" name="turn right btn" tool_tip="Tourner à droite"/> <button label="" label_selected="" name="move up btn" tool_tip="Sauter ou voler vers le haut"/> @@ -9,4 +10,5 @@ <joystick_slide name="slide right btn" tool_tip="Se déplacer vers la droite"/> <joystick_turn name="forward btn" tool_tip="Se déplacer vers l'avant"/> <joystick_turn name="backward btn" tool_tip="Se déplacer vers l'arrière"/> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_openobject.xml b/indra/newview/skins/default/xui/fr/floater_openobject.xml index 36c712e8a39fc796732e718ed37255d61e244a69..3761200d488cb77cb41885450324fc15a4163f34 100644 --- a/indra/newview/skins/default/xui/fr/floater_openobject.xml +++ b/indra/newview/skins/default/xui/fr/floater_openobject.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="objectcontents" title="Contenu des objets"> - <text type="string" length="1" name="object_name"> + <text name="object_name"> [DESC]: </text> <button label="Copier vers l'inventaire" label_selected="Copier vers l'inventaire" name="copy_to_inventory_button" width="132" /> diff --git a/indra/newview/skins/default/xui/fr/floater_pay.xml b/indra/newview/skins/default/xui/fr/floater_pay.xml index c5b689e2dd64787a00a16e814d1bc6825a7c5be9..b66ea79e7b6237c8de8d6f2c860ed5466553bbb3 100644 --- a/indra/newview/skins/default/xui/fr/floater_pay.xml +++ b/indra/newview/skins/default/xui/fr/floater_pay.xml @@ -6,16 +6,16 @@ <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> <button label="Payer" label_selected="Payer" name="pay btn"/> <button label="Annuler" label_selected="Annuler" name="cancel btn"/> - <text length="1" name="payee_label" type="string" left="5"> + <text name="payee_label" left="5"> Payer : </text> - <text length="1" name="payee_name" type="string"> + <text name="payee_name"> [FIRST] [LAST] </text> - <text length="1" name="fastpay text" type="string" width="100" halign="left"> + <text name="fastpay text" width="100" halign="left"> Paiement rapide : </text> - <text left="4" length="1" name="amount text" type="string"> + <text left="4" name="amount text"> Montant : </text> <line_editor left="60" name="amount" width="55"/> diff --git a/indra/newview/skins/default/xui/fr/floater_pay_object.xml b/indra/newview/skins/default/xui/fr/floater_pay_object.xml index 3dc0af75e83c1e1292df78299861c0601e185ab8..077e6965b61d766c3362ab8ac299dad071b5ef7d 100644 --- a/indra/newview/skins/default/xui/fr/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/fr/floater_pay_object.xml @@ -1,24 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <text length="1" name="payee_group" type="string" width="95"> + <text name="payee_group" width="95"> Payer le groupe : </text> - <text length="1" name="payee_resident" type="string" width="100" halign="left" > + <text name="payee_resident" width="100" halign="left" > Payer le résident : </text> - <text length="1" name="payee_name" type="string" left="105"> + <text name="payee_name" left="105"> [FIRST] [LAST] </text> - <text length="1" name="object_name_label" type="string" left="25"> + <text name="object_name_label" left="25"> Via un objet : </text> - <text length="1" name="object_name_text" type="string" left="105"> + <text name="object_name_text" left="105"> ... </text> - <text length="1" name="fastpay text" type="string" width="95"> + <text name="fastpay text" width="95"> Paiement rapide : </text> - <text length="1" name="amount text" type="string" left="5" halign="left"> + <text name="amount text" left="5" halign="left"> Montant : </text> <button label="1 L$" label_selected="1 L$" name="fastpay 1" left="105" /> diff --git a/indra/newview/skins/default/xui/fr/floater_preview_animation.xml b/indra/newview/skins/default/xui/fr/floater_preview_animation.xml index 0ee4ea1df68a56b35a07b5baf0594906405994eb..813e61162174bda2243258ef5838154feaa79892 100644 --- a/indra/newview/skins/default/xui/fr/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/fr/floater_preview_animation.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_anim"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Description : </text> <button label="Jouer dans le Monde" label_selected="Stop" name="Anim play btn" diff --git a/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml b/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml index 5e7d7b86ad76ce86a8754fdd1ea835b1de75361a..a23b906df6ec34a78076ae5519bd0b96ee2918a1 100644 --- a/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview notecard" title="Remarque :"> <button label="Enregistrer" label_selected="Enregistrer" name="Save" /> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Description : </text> - <text_editor type="string" length="1" name="Notecard Editor"> + <text_editor name="Notecard Editor"> Chargement... </text_editor> <string name="no_object"> diff --git a/indra/newview/skins/default/xui/fr/floater_preview_sound.xml b/indra/newview/skins/default/xui/fr/floater_preview_sound.xml index e55ca1a5836acb95b1608e820c2577828e8e745d..19ae28c463056636d7bb4babd19dc1dbcb507bc0 100644 --- a/indra/newview/skins/default/xui/fr/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/fr/floater_preview_sound.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_sound"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Description : </text> <button label="Jouer dans le Monde" label_selected="Jouer dans le Monde" diff --git a/indra/newview/skins/default/xui/fr/floater_preview_texture.xml b/indra/newview/skins/default/xui/fr/floater_preview_texture.xml index 245847809e6e08760fce6ed61df5d5e0722ce20a..e5fd5fc78f8e1da863e9a20581af6bcb7f9af9cc 100644 --- a/indra/newview/skins/default/xui/fr/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/fr/floater_preview_texture.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_texture"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Description : </text> - <text type="string" length="1" name="dimensions"> + <text name="dimensions"> Dimensions : [WIDTH] x [HEIGHT] </text> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml index 628f308f889b84d90986fe726f71c72cb43e7403..687b3068e6381f62dcdf3d44e1164f1842048603 100644 --- a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml @@ -37,123 +37,84 @@ Hendrerit Vulputate </text> <combo_box name="category_combo" tool_tip="Choisissez la catégorie qui décrit le mieux ce rapport"> - <combo_item name="Select_category"> - Sélectionnez une catégorie - </combo_item> - <combo_item name="Age__Age_play"> - Âge > « Age play » - </combo_item> - <combo_item name="Age__Adult_resident_on_Teen_Second_Life"> - Âge > Résident adulte sur Second Life pour adolescents - </combo_item> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - Âge > Resident mineur en dehors de Teen Second Life - </combo_item> - <combo_item name="Assault__Combat_sandbox___unsafe_area"> - Assaut > Bac à sable utilisé pour des combats/zone non sécurisée - </combo_item> - <combo_item name="Assault__Safe_area"> - Assaut > Zone sécurisée - </combo_item> - <combo_item name="Assault__Weapons_testing_sandbox"> - Assaut > Bac à sable pour tests d'armes à feu - </combo_item> - <combo_item name="Commerce__Failure_to_deliver_product_or_service"> - Commerce > Incapacité à fournir un produit ou service - </combo_item> - <combo_item name="Disclosure__Real_world_information"> - Divulgation > Informations sur la vie réelle - </combo_item> - <combo_item name="Disclosure__Remotely_monitoring chat"> - Divulgation > Écoute d'un chat à distance - </combo_item> - <combo_item name="Disclosure__Second_Life_information_chat_IMs"> - Divulgation > Informations sur Second Life/chat/IM - </combo_item> - <combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources"> - Trouble de la paix > Utilisation inadéquate des ressources de la région - </combo_item> - <combo_item name="Disturbing_the_peace__Excessive_scripted_objects"> - Trouble de la paix > Nombre d'objets scriptés excessif - </combo_item> - <combo_item name="Disturbing_the_peace__Object_littering"> - Trouble de la paix > Abandon d'objets - </combo_item> - <combo_item name="Disturbing_the_peace__Repetitive_spam"> - Trouble de la paix > Spam à répétition - </combo_item> - <combo_item name="Disturbing_the_peace__Unwanted_advert_spam"> - Trouble de la paix > Spam à caractère commercial - </combo_item> - <combo_item name="Fraud__L$"> - Fraude > L$ - </combo_item> - <combo_item name="Fraud__Land"> - Fraude > Terrain - </combo_item> - <combo_item name="Fraud__Pyramid_scheme_or_chain_letter"> - Fraude > Vente pyramidale ou lettre-chaîne - </combo_item> - <combo_item name="Fraud__US$"> - Fraude > US$ - </combo_item> - <combo_item name="Harassment__Advert_farms___visual_spam"> - Harcèlement > Spam visuel - </combo_item> - <combo_item name="Harassment__Defaming_individuals_or_groups"> - Harcèlement > Diffamation envers des individus ou des groupes - </combo_item> - <combo_item name="Harassment__Impeding_movement"> - Harcèlement > Immobilisation - </combo_item> - <combo_item name="Harassment__Sexual_harassment"> - Harcèlement > Harcèlement sexuel - </combo_item> - <combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS"> - Harcèlement > Incitation à enfreindre les Conditions d'utilisation - </combo_item> - <combo_item name="Harassment__Verbal_abuse"> - Harcèlement > Abus verbal - </combo_item> - <combo_item name="Indecency__Broadly_offensive_content_or_conduct"> - Indécence > Contenu ou comportement offensifs - </combo_item> - <combo_item name="Indecency__Inappropriate_avatar_name"> - Indécence > Nom d'avatar inapproprié - </combo_item> - <combo_item name="Indecency__Mature_content_in_PG_region"> - Indécence > Contenu ou conduite inappropriés dans une région PG - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - Indécence > Contenu ou conduite inappropriés dans une région Mature - </combo_item> - <combo_item name="Intellectual_property_infringement_Content_Removal"> - Violation de droits de propriété intellectuelle > Suppression de contenu - </combo_item> - <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit"> - Violation de droits de propriété intellectuelle > CopyBot ou exploitation abusive des droits - </combo_item> - <combo_item name="Intolerance"> - Intolérance - </combo_item> - <combo_item name="Land__Abuse_of_sandbox_resources"> - Terrain > Utilisation abusive des ressources du bac à sable - </combo_item> - <combo_item name="Land__Encroachment__Objects_textures"> - Terrain > Empiètement > Objets/textures - </combo_item> - <combo_item name="Land__Encroachment__Particles"> - Terrain > Empiètement > Particules - </combo_item> - <combo_item name="Land__Encroachment__Trees_plants"> - Terrain > Empiètement > Arbres/plantes - </combo_item> - <combo_item name="Wagering_gambling"> - Paris/jeux d'argent - </combo_item> - <combo_item name="Other"> - Autre - </combo_item> + <combo_box.item name="Select_category" label="Sélectionnez une catégorie" + /> + <combo_box.item name="Age__Age_play" label="Âge > « Age play »" + /> + <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Âge > Résident adulte sur Second Life pour adolescents" + /> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Âge > Resident mineur en dehors de Teen Second Life" + /> + <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Assaut > Bac à sable utilisé pour des combats/zone non sécurisée" + /> + <combo_box.item name="Assault__Safe_area" label="Assaut > Zone sécurisée" + /> + <combo_box.item name="Assault__Weapons_testing_sandbox" label="Assaut > Bac à sable pour tests d'armes à feu" + /> + <combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="Commerce > Incapacité à fournir un produit ou service" + /> + <combo_box.item name="Disclosure__Real_world_information" label="Divulgation > Informations sur la vie réelle" + /> + <combo_box.item name="Disclosure__Remotely_monitoring chat" label="Divulgation > Écoute d'un chat à distance" + /> + <combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="Divulgation > Informations sur Second Life/chat/IM" + /> + <combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="Trouble de la paix > Utilisation inadéquate des ressources de la région" + /> + <combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="Trouble de la paix > Nombre d'objets scriptés excessif" + /> + <combo_box.item name="Disturbing_the_peace__Object_littering" label="Trouble de la paix > Abandon d'objets" + /> + <combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="Trouble de la paix > Spam à répétition" + /> + <combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="Trouble de la paix > Spam à caractère commercial" + /> + <combo_box.item name="Fraud__L$" label="Fraude > L$" + /> + <combo_box.item name="Fraud__Land" label="Fraude > Terrain" + /> + <combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="Fraude > Vente pyramidale ou lettre-chaîne" + /> + <combo_box.item name="Fraud__US$" label="Fraude > US$" + /> + <combo_box.item name="Harassment__Advert_farms___visual_spam" label="Harcèlement > Spam visuel" + /> + <combo_box.item name="Harassment__Defaming_individuals_or_groups" label="Harcèlement > Diffamation envers des individus ou des groupes" + /> + <combo_box.item name="Harassment__Impeding_movement" label="Harcèlement > Immobilisation" + /> + <combo_box.item name="Harassment__Sexual_harassment" label="Harcèlement > Harcèlement sexuel" + /> + <combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Harcèlement > Incitation à enfreindre les Conditions d'utilisation" + /> + <combo_box.item name="Harassment__Verbal_abuse" label="Harcèlement > Abus verbal" + /> + <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indécence > Contenu ou comportement offensifs" + /> + <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indécence > Nom d'avatar inapproprié" + /> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="Indécence > Contenu ou conduite inappropriés dans une région PG" + /> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Indécence > Contenu ou conduite inappropriés dans une région Mature" + /> + <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Violation de droits de propriété intellectuelle > Suppression de contenu" + /> + <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Violation de droits de propriété intellectuelle > CopyBot ou exploitation abusive des droits" + /> + <combo_box.item name="Intolerance" label="Intolérance" + /> + <combo_box.item name="Land__Abuse_of_sandbox_resources" label="Terrain > Utilisation abusive des ressources du bac à sable" + /> + <combo_box.item name="Land__Encroachment__Objects_textures" label="Terrain > Empiètement > Objets/textures" + /> + <combo_box.item name="Land__Encroachment__Particles" label="Terrain > Empiètement > Particules" + /> + <combo_box.item name="Land__Encroachment__Trees_plants" label="Terrain > Empiètement > Arbres/plantes" + /> + <combo_box.item name="Wagering_gambling" label="Paris/jeux d'argent" + /> + <combo_box.item name="Other" label="Autre" + /> </combo_box> <text name="abuser_name_title"> Nom du contrevenant : diff --git a/indra/newview/skins/default/xui/fr/floater_script_preview.xml b/indra/newview/skins/default/xui/fr/floater_script_preview.xml index 4b77d6b4cd5a1fd12e4b7a46c976a1b771f21a8c..b767081625ab9d9225aace083ee3c77c9eb52278 100644 --- a/indra/newview/skins/default/xui/fr/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/fr/floater_script_preview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview lsl text" title="Script : Script de rotation"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Description : </text> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_script_search.xml b/indra/newview/skins/default/xui/fr/floater_script_search.xml index 1c20c9c34be71880dad80104e44fc4f9618ca4e9..6f912026c4642c2dec1272355e66eaeb549a522d 100644 --- a/indra/newview/skins/default/xui/fr/floater_script_search.xml +++ b/indra/newview/skins/default/xui/fr/floater_script_search.xml @@ -4,10 +4,10 @@ <button label="Rechercher" label_selected="Rechercher" name="search_btn" width="96"/> <button label="Remplacer" label_selected="Remplacer" name="replace_btn" left="111" width="96"/> <button label="Tout remplacer" label_selected="Tout remplacer" name="replace_all_btn" left="212" width="96"/> - <text type="string" length="1" name="txt" width="65"> + <text name="txt" width="65"> Rechercher </text> - <text type="string" length="1" name="txt2" width="65"> + <text name="txt2" width="65"> Remplacer </text> <line_editor left="75" name="search_text" width="240" /> diff --git a/indra/newview/skins/default/xui/fr/floater_snapshot.xml b/indra/newview/skins/default/xui/fr/floater_snapshot.xml index 90feea91e092228ac02ff939c63a2979989b13b5..49c6ff04a6c51c3c048b4fbaeaccc4caa9ee2c0f 100644 --- a/indra/newview/skins/default/xui/fr/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/fr/floater_snapshot.xml @@ -69,12 +69,8 @@ <button label="Enregistrer ([AMOUNT] L$)" name="upload_btn" width="118"/> <button label="Envoyer" name="send_btn" width="118"/> <flyout_button label="Enregistrer" name="save_btn" tool_tip="Enregistrer l'image dans un fichier" width="118"> - <flyout_button.item name="save_item"> - Enregistrer - </flyout_button.item> - <flyout_button.item name="saveas_item"> - Enregistrer sous... - </flyout_button.item> + <flyout_button.item name="save_item" label="Enregistrer"/> + <flyout_button.item name="saveas_item" label="Enregistrer sous..."/> </flyout_button> <button label="Annuler" name="discard_btn" left="133" width="72" /> <string name="unknown"> diff --git a/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml index 2a234a37c5e8c7c25f5055cf4f54de371aae72ad..fa8b65d8a5af6d0c178afc75bcbf7582c12ba4d2 100644 --- a/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml @@ -3,10 +3,10 @@ <string name="choose_picture"> Cliquez pour sélectionner une image </string> - <text length="1" name="Multiple" type="string"> + <text name="Multiple"> Multiple </text> - <text length="1" name="unknown" type="string"> + <text name="unknown"> Dimensions : [DIMENSIONS] </text> <button label="Défaut" label_selected="Défaut" name="Default" width="60" /> diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml index 8c462fc6ecec9cfef401b7d1da5de340298a6c33..03ab397ea10a0ad703dbd283aef07e6f2328d58f 100644 --- a/indra/newview/skins/default/xui/fr/floater_tools.xml +++ b/indra/newview/skins/default/xui/fr/floater_tools.xml @@ -5,16 +5,22 @@ <button label="" label_selected="" name="button edit" tool_tip="Modifier"/> <button label="" label_selected="" name="button create" tool_tip="Créer"/> <button label="" label_selected="" name="button land" tool_tip="Terrain"/> - <check_box label="Zoom" name="radio zoom"/> - <check_box label="Orbite (Ctrl)" name="radio orbit"/> - <check_box label="Panoramique (Ctrl-Maj)" name="radio pan"/> - <check_box label="Déplacer" name="radio move"/> - <check_box label="Orbite (Ctrl)" name="radio lift"/> - <check_box label="Faire tourner (Ctrl-Maj)" name="radio spin"/> - <check_box label="Positionner" name="radio position"/> - <check_box label="Pivoter (Ctrl)" name="radio rotate"/> - <check_box label="Étirer (Ctrl-Maj)" name="radio stretch"/> - <check_box label="Sélectionner une face" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="Zoom" name="radio zoom"/> + <radio_item label="Orbite (Ctrl)" name="radio orbit"/> + <radio_item label="Panoramique (Ctrl-Maj)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="Déplacer" name="radio move"/> + <radio_item label="Orbite (Ctrl)" name="radio lift"/> + <radio_item label="Faire tourner (Ctrl-Maj)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="Positionner" name="radio position"/> + <radio_item label="Pivoter (Ctrl)" name="radio rotate"/> + <radio_item label="Étirer (Ctrl-Maj)" name="radio stretch"/> + <radio_item label="Sélectionner une face" name="radio select face"/> + </radio_group> <check_box label="Modifier les parties liées" name="checkbox edit linked parts"/> <text name="text ruler mode"> Axe : @@ -50,13 +56,15 @@ <check_box label="Copier la sélection" name="checkbox copy selection"/> <check_box label="Centrer" name="checkbox copy centers"/> <check_box label="Pivoter" name="checkbox copy rotates"/> - <check_box label="Sélectionner le terrain" name="radio select land"/> - <check_box label="Aplatir" name="radio flatten"/> - <check_box label="Élever" name="radio raise"/> - <check_box label="Abaisser" name="radio lower"/> - <check_box label="Lisser" name="radio smooth"/> - <check_box label="Bosseler" name="radio noise"/> - <check_box label="Annuler modification" name="radio revert"/> + <radio_group name="land_radio_group"> + <radio_item label="Sélectionner le terrain" name="radio select land"/> + <radio_item label="Aplatir" name="radio flatten"/> + <radio_item label="Élever" name="radio raise"/> + <radio_item label="Abaisser" name="radio lower"/> + <radio_item label="Lisser" name="radio smooth"/> + <radio_item label="Bosseler" name="radio noise"/> + <radio_item label="Annuler modification" name="radio revert"/> + </radio_group> <button label="Appliquer" label_selected="Appliquer" name="button apply to selection" tool_tip="Modifier le terrain sélectionné" left="176"/> <text name="Bulldozer:"> Bulldozer : @@ -105,9 +113,7 @@ <text name="Permissions:"> Droits : </text> - <text name="perm_modify"> - Vous pouvez modifier cet objet. - </text> + <check_box label="Partager avec le groupe" name="checkbox share with group" tool_tip="Autorisez tous les membres du groupe choisi à utiliser et à partager vos droits pour cet objet. Pour activer les restrictions de rôles, vous devez d'abord cliquer sur Transférer."/> <string name="text deed continued"> Transférer... @@ -123,17 +129,12 @@ <text name="Cost"> Prix : L$ </text> - <radio_group name="sale type"> - <radio_item name="Original" label="Original" /> - <radio_item name="Copy" label="Copie" /> - <radio_item name="Contents" label="Contenus" /> - </radio_group> - <text name="Next owner can:"> - Le prochain propriétaire pourra : - </text> - <check_box label="Modifier" name="checkbox next owner can modify"/> - <check_box label="Copier" left_delta="66" name="checkbox next owner can copy"/> - <check_box label="Revendre/Donner" name="checkbox next owner can transfer"/> + <combo_box name="sale type"> + <combo_box.item label="Copie" name="Copy"/> + <combo_box.item label="Contenus" name="Contents"/> + <combo_box.item label="Original" name="Original"/> + </combo_box> + <text name="label click action"> Action du clic-gauche : </text> @@ -146,6 +147,10 @@ <combo_box.item name="Play" label="Jouer le média de la parcelle"/> <combo_box.item name="Opemmedia" label="Ouvrir le média de la parcelle"/> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + Vous pouvez modifier cet objet. + </text> <text name="B:"> B : </text> @@ -164,6 +169,13 @@ <text name="F:"> F : </text> + <text name="Next owner can:"> + Le prochain propriétaire pourra : + </text> + <check_box label="Modifier" name="checkbox next owner can modify"/> + <check_box label="Copier" left_delta="66" name="checkbox next owner can copy"/> + <check_box name="checkbox next owner can transfer"/> + </panel> <string name="text modify info 1"> Vous pouvez modifier cet objet. </string> @@ -316,7 +328,7 @@ Type de raccord </text> <combo_box name="sculpt type control"> - <combo_box.item name="None" label="aucun)"/> + <combo_box.item name="None" label="(aucun)"/> <combo_box.item name="Sphere" label="Sphère"/> <combo_box.item name="Torus" label="Tore"/> <combo_box.item name="Plane" label="Plan"/> @@ -459,43 +471,43 @@ <button label="Acheter le terrain..." label_selected="Acheter le terrain..." name="button buy land" width="142"/> <button label="Abandonner le terrain..." label_selected="Abandonner le terrain..." name="button abandon land" width="142"/> </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> Pour faire tourner l'objet, faîtes glisser les bandes de couleur. - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> Pour étirer le côté sélectionné, cliquez et faites glisser. - </string> - <string name="status_move"> + </floater.string> + <floater.string name="status_move"> Glissez pour déplacer, Maj-glissez pour copier. - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_modifyland"> Cliquez et maintenez pour modifier le terrain. - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> Cliquez et faites glisser pour changer l'affichage. - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> Glisser pour déplacer, Ctrl pour soulever, Crtl-Maj pour pivoter. - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> Cliquez dans le monde pour construire. - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> Cliquez et faites glisser pour sélectionner le terrain. - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> Écran - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> Local - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> Monde - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> Référence - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> Pièce-jointe - </string> + </floater.string> </floater> diff --git a/indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml index a5bc87d951d84eb08813481104d912f1564b164c..af6274d4e2ead0a2d51585fca34add94f8959c7d 100644 --- a/indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml +++ b/indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml @@ -2,7 +2,7 @@ <floater name="modal container"> <button label="Enregistrer" label_selected="Enregistrer" name="Save" /> <button label="Annuler" label_selected="Annuler" name="Cancel" /> - <text type="string" length="1" name="Save item as:"> + <text name="Save item as:"> Enregistrer l'objet sous : </text> <line_editor name="name ed"> diff --git a/indra/newview/skins/default/xui/fr/floater_world_map.xml b/indra/newview/skins/default/xui/fr/floater_world_map.xml index bb5738be2796ddd09ffc08fae715c8cdbf27af51..ec2db5f163fe18372f6b2bd85eb2a95d8a37b8ba 100644 --- a/indra/newview/skins/default/xui/fr/floater_world_map.xml +++ b/indra/newview/skins/default/xui/fr/floater_world_map.xml @@ -40,11 +40,11 @@ <check_box label="Adult" name="event_adult_chk"/> <icon left="973" name="avatar_icon"/> <combo_box label="Amis connectés" name="friend combo" tool_tip="Ami à afficher sur la carte" width="232"> - <combo_box.item name="none_selected" label="Amis connectés" /> + <combo_box.item name="item1" label="Amis connectés" /> </combo_box> <icon left="973" name="landmark_icon"/> <combo_box label="Repères" name="landmark combo" tool_tip="Repère à afficher sur la carte" width="232"> - <combo_box.item name="none_selected" label="Repères" /> + <combo_box.item name="item1" label="Repères" /> </combo_box> <icon left="973" name="location_icon"/> <line_editor label="Rechercher par nom de région" name="location" tool_tip="Saisissez le nom d'une région" width="155"/> diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml index a9c1cad86f69a9b0d4ef6510c397fba40cde7724..951c199b1c2ab461a697c2afe789b6f8cf07d8b4 100644 --- a/indra/newview/skins/default/xui/fr/notifications.xml +++ b/indra/newview/skins/default/xui/fr/notifications.xml @@ -964,7 +964,7 @@ Proposer à [NAME] de devenir votre ami(e) ? Proposer à [NAME] de devenir votre ami(e) ? <form name="form"> - <input name="message" type="text"> + <input name="message"> Voulez-vous être mon ami(e) ? </input> <button name="Offer" text="OK"/> @@ -1359,7 +1359,7 @@ Pour quitter un groupe, sélectionnez l'option Groupe dans le menu Éditer. <notification name="KickUser"> Éjecter cet utilisateur avec quel message ? <form name="form"> - <input name="message" type="text"> + <input name="message"> Un administrateur vous a déconnecté. </input> <button name="OK" text="OK"/> @@ -1369,7 +1369,7 @@ Pour quitter un groupe, sélectionnez l'option Groupe dans le menu Éditer. <notification name="KickAllUsers"> Éjecter tous les résidents actuellement en ligne avec quel message ? <form name="form"> - <input name="message" type="text"> + <input name="message"> Un administrateur vous a déconnecté. </input> <button name="OK" text="OK"/> @@ -1379,7 +1379,7 @@ Pour quitter un groupe, sélectionnez l'option Groupe dans le menu Éditer. <notification name="FreezeUser"> Geler cet utilisateur avec quel message ? <form name="form"> - <input name="message" type="text"> + <input name="message"> Vous avez été gelé. Vous ne pouvez ni bouger ni chatter. Un administrateur va vous envoyer un message instantané (IM). </input> <button name="OK" text="OK"/> @@ -1389,7 +1389,7 @@ Pour quitter un groupe, sélectionnez l'option Groupe dans le menu Éditer. <notification name="UnFreezeUser"> Dégeler cet utilisateur avec quel message ? <form name="form"> - <input name="message" type="text"> + <input name="message"> Vous n'êtes plus gelé. </input> <button name="OK" text="OK"/> @@ -1399,7 +1399,7 @@ Pour quitter un groupe, sélectionnez l'option Groupe dans le menu Éditer. <notification name="OfferTeleport"> Proposez une téléportation avec le message suivant ? <form name="form"> - <input name="message" type="text"> + <input name="message"> On se rejoint à [REGION] ? </input> <button name="OK" text="OK"/> @@ -1409,7 +1409,7 @@ Pour quitter un groupe, sélectionnez l'option Groupe dans le menu Éditer. <notification name="OfferTeleportFromGod"> Demander au résident de venir vous rejoindre ? <form name="form"> - <input name="message" type="text"> + <input name="message"> On se rejoint à [REGION] ? </input> <button name="OK" text="OK"/> @@ -1423,7 +1423,7 @@ Pour quitter un groupe, sélectionnez l'option Groupe dans le menu Éditer. <notification label="Envoyer un message à tout le monde dans votre domaine" name="MessageEstate"> Saisissez un message court qui sera envoyé à tous les résidents se trouvant actuellement sur votre domaine. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Annuler"/> </form> @@ -1609,7 +1609,7 @@ Publier cette petite annonce maintenant pour [AMOUNT] L$ ? <notification label="Envoyer un message à la région" name="MessageRegion"> Saisissez une message qui sera envoyé à tous les résidents présents dans cette région. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Annuler"/> </form> @@ -1895,7 +1895,7 @@ Ils seront copiés dans votre inventaire. Êtes-vous certain de vouloir effectuer cette transaction ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> - <notification name="ConfirmPurchasePassword" type="password"> + <notification name="ConfirmPurchasePassword"> Suite à cette transaction, vous allez : [ACTION] @@ -2268,7 +2268,7 @@ Même chose que l'azimut. <notification name="NewSkyPreset"> Nommez le nouveau ciel. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nouveau préréglage </input> <button name="OK" text="OK"/> @@ -2281,7 +2281,7 @@ Même chose que l'azimut. <notification name="NewWaterPreset"> Nommez ce nouveau préréglage d'eau. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nouveau préréglage </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/fr/panel_group_general.xml b/indra/newview/skins/default/xui/fr/panel_group_general.xml index 2b983ced800eb5c0041a3e09bedd4c1458b0b8be..f89c90e508ad3d330eaf83c9f63dcef7cb2fed09 100644 --- a/indra/newview/skins/default/xui/fr/panel_group_general.xml +++ b/indra/newview/skins/default/xui/fr/panel_group_general.xml @@ -33,9 +33,9 @@ (Les propriétaires apparaissent en gras) </text> <name_list name="visible_members"> - <column label="Nom du membre" name="name" relwidth="0.40"/> - <column label="Titre" name="title" relwidth="0.25"/> - <column label="Dernière connexion" name="online" relwidth="0.35"/> + <name_list.columns label="Nom du membre" name="name" relwidth="0.40"/> + <name_list.columns label="Titre" name="title" relwidth="0.25"/> + <name_list.columns label="Dernière connexion" name="online" relwidth="0.35"/> </name_list> <text name="text_group_preferences"> Préférences @@ -46,15 +46,9 @@ <check_box label="Frais d'inscription : L$" name="check_enrollment_fee" tool_tip="Indique s'il y a des frais d'inscription pour devenir membre."/> <spinner name="spin_enrollment_fee" tool_tip="Si la case Frais d'inscription est cochée, cela signifie qu'il faut payer des frais pour devenir membre."/> <combo_box name="group_mature_check" tool_tip="Indique si les informations sur votre groupe sont classées Mature." width="195"> - <combo_item name="select_mature"> - - Type de public - - </combo_item> - <combo_item name="mature"> - Contenu Mature - </combo_item> - <combo_item name="pg"> - Contenu PG - </combo_item> + <combo_box.item name="select_mature" label="- Type de public -"/> + <combo_box.item name="mature" label="Contenu Mature"/> + <combo_box.item name="pg" label="Contenu PG"/> </combo_box> <panel name="title_container"> <text name="active_title_label"> diff --git a/indra/newview/skins/default/xui/fr/panel_group_notices.xml b/indra/newview/skins/default/xui/fr/panel_group_notices.xml index d824ae546133317d31a6d23f959ba220785d15d6..841ac5e7ee57e114675d5140c06a20ab1ff6241a 100644 --- a/indra/newview/skins/default/xui/fr/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/fr/panel_group_notices.xml @@ -11,8 +11,7 @@ Anciennes notices du groupe </text> <text name="lbl2"> - Double-cliquez sur une notice pour l'afficher. Les notices sont conservées -pendant 14 jours et chaque groupe a une limite quotidienne de 200 notices. + Les notices sont conservées pendant 14 jours et chaque groupe a une limite quotidienne de 200 notices. </text> <scroll_list name="notice_list"> <column label="" name="icon"/> @@ -30,11 +29,7 @@ pendant 14 jours et chaque groupe a une limite quotidienne de 200 notices. Créer une notice </text> <text name="lbl2"> - Pour envoyer une notice, saisissez un sujet. Pour joindre -une pièce-jointe à cette notice, faites-la glisser depuis votre -inventaire vers cette fenêtre. Les pièces-jointes doivent être -copiables et transférables. Il n'est pas possible d'envoyer de -dossiers. + Pour joindre une pièce-jointe à cette notice, faites-la glisser depuis votre inventaire vers cette fenêtre. Les pièces-jointes doivent être copiables et transférables. Il n'est pas possible d'envoyer de dossiers. </text> <text bottom_delta="-79" name="lbl3" left="20"> Sujet : @@ -49,7 +44,7 @@ dossiers. </text> <line_editor name="create_inventory_name" width="190" left_delta="74"/> <button label="Supprimer pièce-jointe" label_selected="Supprimer pièce-jointe" left="274" name="remove_attachment" width="140"/> - <button label="Envoyer la notice" label_selected="Envoyer la notice" left="274" name="send_notice" width="140"/> + <button label="Envoyer" label_selected="Envoyer" left="274" name="send_notice" width="140"/> <panel name="drop_target2" tool_tip="Pour joindre un objet de l'inventaire à la notice, faites-le glisser dans la boîte de message. Pour envoyer l'objet avec la notice, vous devez avoir la permission de le copier et de le transférer."/> <panel name="drop_target" tool_tip="Pour joindre un objet de l'inventaire à la notice, faites-le glisser dans la boîte de message. Pour envoyer l'objet avec la notice, vous devez avoir la permission de le copier et de le transférer."/> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_login.xml b/indra/newview/skins/default/xui/fr/panel_login.xml index 74bbe9c5b6164353ff643e03fa23a4ee20df670b..eeef97454f56d2517fef4e9752afefc65420bf24 100644 --- a/indra/newview/skins/default/xui/fr/panel_login.xml +++ b/indra/newview/skins/default/xui/fr/panel_login.xml @@ -18,8 +18,7 @@ <combo_box name="start_location_combo"> <combo_box.item name="MyHome" label="Domicile" /> <combo_box.item name="MyLastLocation" label="Dernier emplacement" /> - <combo_box.item name="<Typeregionname>" label="lt;Choisir région>" /> - <combo_box.item name="Typeregionname" label="lt;Nom de la région>" /> + <combo_box.item name="Typeregionname" label="<Nom de la région>" /> </combo_box> <check_box label="Mémoriser" name="remember_check"/> <text name="full_screen_text"> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml new file mode 100644 index 0000000000000000000000000000000000000000..89b4096de7ab6a9188042cc55aea051bc2e7151a --- /dev/null +++ b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel name="advanced"> + <text name="AspectRatioLabel1" tool_tip="largeur/hauteur"> + Rapport hauteur/largeur : + </text> + <combo_box name="aspect_ratio" tool_tip="largeur/hauteur"> + <combo_box.item label="4:3 (Standard CRT)" name="item1"/> + <combo_box.item label="5:4 (1280 x 1024 LCD)" name="item2"/> + <combo_box.item label="8:5 (écran large)" name="item3"/> + <combo_box.item label="16:9 (plein écran)" name="item4"/> + </combo_box> +</panel> 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 5fbd3cec224c010716f168f289f8472c53e5b5fa..f616591c4e89772bf7153d6ce1a7f7df9f16d0a4 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml @@ -1,53 +1,59 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat écrit" name="chat"> - <text length="1" name="text_box" type="string"> + <text name="text_box"> Taille de la police du chat : </text> <radio_group name="chat_font_size"> - <radio_item length="1" name="radio" type="string" label="Petite" /> - <radio_item length="1" name="radio2" type="string" label="Moyenne" /> - <radio_item length="1" name="radio3" type="string" label="Grande" /> + <radio_item name="radio" label="Petite" /> + <radio_item name="radio2" label="Moyenne" /> + <radio_item name="radio3" label="Grande" /> </radio_group> - <text length="1" name="text_box2" type="string"> - Couleur du chat : - </text> <color_swatch label="Vous" name="user"/> - <color_swatch label="Avatars" name="agent" width="60"/> - <color_swatch label="IM" left_delta="64" name="im"/> + <text name="text_box1"> + Vous + </text> + <color_swatch label="Avatars" name="agent"/> + <text name="text_box2"> + Avatars + </text> + <color_swatch label="IM" name="im"/> + <text name="text_box3"> + IM + </text> <color_swatch label="Système" name="system"/> - <color_swatch label="Erreurs" name="script_error"/> + <text name="text_box4"> + Système + </text> + <color_swatch label="Erreurs de script" name="script_error"/> + <text name="text_box5"> + Erreurs de script + </text> <color_swatch label="Objets" name="objects"/> - <color_swatch label="Propriétaire" name="owner" width="60"/> - <color_swatch label="Bulle" left_delta="64" name="background"/> + <text name="text_box6"> + Objets + </text> + <color_swatch label="Propriétaire" name="owner"/> + <text name="text_box7"> + Propriétaire + </text> + <color_swatch label="Bulle" name="background"/> + <text name="text_box8"> + Bulle + </text> <color_swatch label="URL" name="links"/> - <text length="1" name="text_box3" type="string"> - Console du chat : + <text name="text_box9"> + URL </text> <spinner label="Effacer le texte après" label_width="112" name="fade_chat_time" width="162"/> - <text left="313" length="1" name="text_box4" type="string"> - s - </text> <spinner left="335" name="max_chat_count"/> - <text left="397" length="1" name="text_box5" type="string" width="74"> - lignes - </text> <slider label="Opacité" name="console_opacity"/> - <text length="1" name="text_box6" type="string"> - Options du chat : - </text> <check_box label="Utiliser la largeur de l'écran (redémarrage requis)" name="chat_full_width_check"/> <check_box label="Fermer le chat après avoir appuyé sur Entrée" name="close_chat_on_return_check"/> <check_box label="Faire bouger l'avatar avec les touches de direction" name="arrow_keys_move_avatar_check"/> <check_box label="Afficher les heures dans le chat" name="show_timestamps_check"/> <check_box label="Jouer l'animation clavier quand vous écrivez" name="play_typing_animation"/> - <text length="1" name="text_box7" type="string"> - Bulles de chat  : - </text> <check_box label="Afficher les bulles de chat" name="bubble_text_chat"/> <slider label="Opacité" name="bubble_chat_opacity"/> - <text length="1" name="text_box8" type="string"> - Erreurs de script : - </text> <check_box label="Afficher les erreurs dans le chat" name="script_errors_as_chat"/> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml index 7c366e8bdc07c4d0c56025c0be5378450c9a54a1..f3a1a0c0e2c3450171bb752cd5125b8a57c1618f 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml @@ -1,15 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Général" name="general_panel"> - <radio_group name="default_start_location" width="166"> - <radio_item name="MyHome" tool_tip="Par défaut, choisir mon domicile comme lieu de départ."> - Domicile - </radio_item> - <radio_item name="MyLastLocation" tool_tip="Par défaut, choisir mon dernier emplacement comme lieu de départ."> - Dernier emplacement - </radio_item> - </radio_group> + <combo_box name="start_location_combo"> + <combo_box.item name="MyHome" tool_tip="Par défaut, choisir mon domicile comme lieu de départ." label="Domicile"/> + <combo_box.item name="MyLastLocation" tool_tip="Par défaut, choisir mon dernier emplacement comme lieu de départ." label="Dernier emplacement"/> + </combo_box> <check_box label="Afficher le lieu de départ sur l'écran de connexion" name="show_location_checkbox"/> - <combo_box name="fade_out_combobox" width="166"> + <combo_box name="fade_out_combobox"> <combo_box.item name="Never" label="Jamais"/> <combo_box.item name="Show Temporarily" label="Afficher temporairement"/> <combo_box.item name="Always" label="Toujours"/> @@ -35,74 +31,61 @@ <text name="maturity_desired_prompt"> Je veux accéder au contenu classé : </text> - <combo_box name="maturity_desired_combobox" left="340"> - <combo_item name="Desired_Adult"> - PG, Mature et Adult - </combo_item> - <combo_item name="Desired_Mature"> - PG et Mature - </combo_item> - <combo_item name="Desired_PG"> - PG uniquement - </combo_item> + <combo_box name="maturity_desired_combobox"> + <combo_box.item name="Desired_Adult" label="PG, Mature et Adult"/> + <combo_box.item name="Desired_Mature" label="PG et Mature"/> + <combo_box.item name="Desired_PG" label="PG uniquement"/> </combo_box> - <text name="maturity_desired_textbox" left="340"> + <text name="maturity_desired_textbox"> PG uniquement </text> - <text length="1" name="start_location_textbox" type="string"> + <text name="start_location_textbox"> Lieu de départ : </text> - <text length="1" name="show_names_textbox" type="string"> + <text name="show_names_textbox"> Afficher les noms : </text> - <text bottom="-174" length="1" name="effects_color_textbox" type="string"> - Couleur du faisceau -de sélection : + <text name="effects_color_textbox"> + Couleur du faisceau de sélection : </text> - <text length="1" name="seconds_textbox" type="string"> + <text name="seconds_textbox"> secondes </text> - <text length="1" name="crash_report_textbox" type="string"> + <text name="crash_report_textbox"> Rapports de crash : </text> - <text length="1" name="language_textbox" type="string"> + <text name="language_textbox"> Langue : </text> - <text left_delta="313" length="1" name="language_textbox2" type="string"> + <text name="language_textbox2"> (redémarrage requis) </text> <string name="region_name_prompt"> <Saisissez le nom de la région> </string> - <combo_box name="crash_behavior_combobox" width="166"> - <combo_box.item length="1" name="Askbeforesending" type="string" label="Demander avant d'envoyer"/> - <combo_box.item length="1" name="Alwayssend" type="string" label="Toujours envoyer"/> - <combo_box.item length="1" name="Neversend" type="string" label="Ne jamais envoyer"/> + <combo_box name="crash_behavior_combobox"> + <combo_box.item name="Askbeforesending" label="Demander avant d'envoyer"/> + <combo_box.item name="Alwayssend" label="Toujours envoyer"/> + <combo_box.item name="Neversend" label="Ne jamais envoyer"/> </combo_box> - <combo_box name="language_combobox" width="166"> + <combo_box name="language_combobox"> <combo_box.item name="System Default Language" label="Choix par défaut"/> - <combo_box.item length="1" name="English" type="string" label="English (Anglais)"/> - <combo_box.item length="1" name="Danish" type="string" label="Dansk (Danois) - Bêta"/> - <combo_box.item length="1" name="Deutsch(German)" type="string" label="Deutsch (Allemand) - Bêta"/> + <combo_box.item name="English" label="English (Anglais)"/> + <combo_box.item name="Danish" label="Dansk (Danois) - Bêta"/> + <combo_box.item name="Deutsch(German)" label="Deutsch (Allemand) - Bêta"/> <combo_box.item name="Spanish" label="Español (Espagnol) - Bêta"/> <combo_box.item name="French" label="Français - Bêta"/> + <combo_box.item name="Italian" label="Italiano (Italien) - Bêta"/> <combo_box.item name="Hungarian" label="Magyar (Hongrois) - Bêta"/> + <combo_box.item name="Dutch" label="Nederlands (Néerlandais) - Bêta"/> <combo_box.item name="Polish" label="Polski (Polonais) - Bêta"/> <combo_box.item name="Portugese" label="Portugués (Portugais) - Bêta"/> <combo_box.item name="Russian" label="РуÑÑкий (Russe) - Bêta"/> + <combo_box.item name="Turkish" label="Türkçe (Turc) - Bêta"/> <combo_box.item name="Ukrainian" label="УкраїнÑька (Ukrainien) - Bêta"/> - <combo_box.item length="1" name="Chinese" type="string" label="ä¸æ–‡ (简体) (Chinois) - Bêta"/> - <combo_box.item length="1" name="(Japanese)" type="string" label="日本語 (Japonais) - Bêta"/> - <combo_box.item length="1" name="(Korean)" type="string" label="í•œêµì–´ (Coréen) - Bêta"/> - <combo_item name="Italian"> - Italiano (Italien) - Bêta - </combo_item> - <combo_item name="Dutch"> - Nederlands (Néerlandais) - Bêta - </combo_item> - </combo_item> - <combo_item name="Turkish"> - Türkçe (Turc) - Bêta + <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (Chinois) - Bêta"/> + <combo_box.item name="(Japanese)" label="日本語 (Japonais) - Bêta"/> + <combo_box.item name="(Korean)" label="í•œêµì–´ (Coréen) - Bêta"/> </combo_box> <check_box label="Partager la langue avec les objets" name="language_is_public" tool_tip="Cette option permet de faire connaître aux objets du Monde votre langue favorite."/> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml index cc9e2a8569841b0fef79006f2ba5230bbf1289c5..726ebc78b0fea08c3420755d504851316d242334 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml @@ -21,27 +21,27 @@ Rapport hauteur/largeur : </text> <combo_box name="aspect_ratio" tool_tip="largeur/hauteur"> - <combo_box.item length="1" name="4:3(StandardCRT)" type="string" label="4:3 (Standard CRT)" /> - <combo_box.item length="1" name="5:4(1280x1024LCD)" type="string" label="5:4 (1280 x 1024 LCD)" /> + <combo_box.item name="4:3(StandardCRT)" label="4:3 (Standard CRT)" /> + <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280 x 1024 LCD)" /> <combo_box.item name="8:5(Widescreen)" label="8:5 (écran large)" /> - <combo_box.item length="1" name="16:9(Widescreen)" type="string" label="16:9 (plein écran)" /> + <combo_box.item name="16:9(Widescreen)" label="16:9 (plein écran)" /> </combo_box> - <text length="1" name="text" type="string"> + <text name="text"> Résolution d'affichage : </text> - <text length="1" name="Fullscreen Aspect Ratio:" type="string"> + <text name="Fullscreen Aspect Ratio:"> Format de plein écran : </text> - <text length="1" name="(width / height)" type="string"> + <text name="(width / height)"> (largeur / hauteur) </text> - <text length="1" name="UI Size:" type="string"> + <text name="UI Size:"> Taille de l'IU : </text> - <text length="1" name="(meters, lower is faster)" type="string"> + <text name="(meters, lower is faster)"> (mètres, moins = plus rapide) </text> - <text length="1" name="text2" type="string"> + <text name="text2"> Options d'affichage : </text> <check_box label="Lancer Second Life en mode fenêtré" name="windowed mode"/> @@ -75,6 +75,7 @@ </text> <text name="QualityText2" visible="false"/> <check_box label="Personnaliser" left="395" name="CustomSettings"/> + <panel name="CustomGraphics Panel"> <text name="ShadersText"> Effets : </text> @@ -150,12 +151,13 @@ <radio_item name="0" label="Faible" /> <radio_item name="2" label="Élevé" /> </radio_group> + </panel> <button label="Paramètres recommandés" name="Defaults"/> <button label="Configuration du matériel" label_selected="Configuration du matériel" name="GraphicsHardwareButton"/> - <text name="resolution_format"> + <panel.string name="resolution_format"> [RES_X] x [RES_Y] - </text> - <text name="aspect_ratio_text"> + </panel.string> + <panel.string name="aspect_ratio_text"> [NUM]:[DEN] - </text> + </panel.string> </panel> 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 425f2737908748f2238a5098873ae4c0abc9d5bf..b592d29711e555c9949359cc769b5adbf016287c 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_estate.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Domaine" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="Domaine" name="Estate"> <text name="estate_help_text" bottom="-34"> Les changements apportés aux paramètres de cet onglet auront des répercussions sur @@ -75,4 +77,6 @@ toutes les régions du domaine. <button label="Supprimer..." name="remove_banned_avatar_btn"/> <button label="Envoyer un message au domaine..." name="message_estate_btn"/> <button label="Éjecter le résident du domaine..." name="kick_user_from_estate_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_region_general.xml b/indra/newview/skins/default/xui/fr/panel_region_general.xml index 6a8afd24ed09124030f29806fa1da7cd874ef53b..70782e2aa67313ec4ed1a88a56db8624e382a73e 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_general.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_general.xml @@ -40,15 +40,9 @@ Catégorie : </text> <combo_box label="Mature" name="access_combo"> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Mature"> - Mature - </combo_item> - <combo_item name="PG"> - PG - </combo_item> + <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="Mature" name="Mature"/> + <combo_box.item label="PG" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="Appliquer" name="apply_btn"/> diff --git a/indra/newview/skins/default/xui/fr/panel_region_texture.xml b/indra/newview/skins/default/xui/fr/panel_region_texture.xml index d3126467889ed8dc972490805d1091496c4e4a2b..da800dc6bd68de1209fff006c103868a8d87b78e 100644 --- a/indra/newview/skins/default/xui/fr/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/fr/panel_region_texture.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Textures du sol" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="Textures du sol" name="Textures"> <text name="region_text_lbl"> Région : </text> @@ -69,4 +71,6 @@ et la valeur HAUTE correspond à la hauteur MINIMUM de la Texture #4. </text> <button label="Appliquer" name="apply_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml b/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml index a6ec93bef57ddd7f2b306e1f477f67ccc83e32ed..8febdccbed31c4fce08168983ab3a7c94003e97d 100644 --- a/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="LLScrollingPanelParam"> - <text type="string" length="1" name="Loading..."> + <text name="Loading..."> Chargement... </text> - <text type="string" length="1" name="Loading...2"> + <text name="Loading...2"> Chargement... </text> <button label="" label_selected="" name="less" /> diff --git a/indra/newview/skins/default/xui/fr/panel_status_bar.xml b/indra/newview/skins/default/xui/fr/panel_status_bar.xml index 9ea667fcbf99ce106fb9bc510f293d8ea9d8094b..9545b25126176860005b1ba9608fb09399298afb 100644 --- a/indra/newview/skins/default/xui/fr/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/fr/panel_status_bar.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <text length="1" name="ParcelNameText" tool_tip="Nom de la parcelle de terrain sur laquelle vous vous trouvez. Cliquez pour ouvrir la section À propos du terrain." type="string"> + <text name="ParcelNameText" tool_tip="Nom de la parcelle de terrain sur laquelle vous vous trouvez. Cliquez pour ouvrir la section À propos du terrain."> Saisissez le nom de la parcelle ici </text> - <text length="1" name="BalanceText" tool_tip="Solde du compte" type="string"> + <text name="BalanceText" tool_tip="Solde du compte"> Chargement... </text> <button label="" label_selected="" name="buycurrency" tool_tip="Acheter des devises"/> - <text length="12" name="TimeText" tool_tip="Heure actuelle (Californie)" type="string"> + <text name="TimeText" tool_tip="Heure actuelle (Californie)"> midi </text> <string name="StatBarDaysOfWeek"> @@ -18,7 +18,7 @@ </string> <button label="" label_selected="" name="scriptout" tool_tip="Alertes et erreurs de scripts"/> <button label="" label_selected="" name="health" tool_tip="Santé"/> - <text length="1" name="HealthText" tool_tip="Santé" type="string"> + <text name="HealthText" tool_tip="Santé"> 100 % </text> <button label="" label_selected="" name="fly" tool_tip="Vol interdit"/> diff --git a/indra/newview/skins/default/xui/fr/panel_world_map.xml b/indra/newview/skins/default/xui/fr/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d4f94273bfde98491b74c09c5667a117538975e --- /dev/null +++ b/indra/newview/skins/default/xui/fr/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + N + </panel.string> + <panel.string name="world_map_east"> + E + </panel.string> + <panel.string name="world_map_west"> + O + </panel.string> + <panel.string name="world_map_south"> + S + </panel.string> + <panel.string name="world_map_southeast"> + SE + </panel.string> + <panel.string name="world_map_northeast"> + NE + </panel.string> + <panel.string name="world_map_southwest"> + SO + </panel.string> + <panel.string name="world_map_northwest"> + NO + </panel.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="E" name="floater_map_east" text="E"> + E + </text> + <text label="O" name="floater_map_west" text="O"> + O + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SO" name="floater_map_southwest" text="SO"> + SO + </text> + <text label="NO" name="floater_map_northwest" text="NO"> + NO + </text> +</panel> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index 067c34294d701fade836d3d3b1b75fb73332ec28..80248a95f895e77f6881567007aeb9ef969bde92 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -487,4 +487,34 @@ <string name="choose_the_directory"> Choisir le répertoire </string> + <string name="accel-mac-control"> + Ctrl- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Opt- + </string> + <string name="accel-mac-shift"> + Maj- + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Maj+ + </string> + <string name="GraphicsQualityLow"> + Faible + </string> + <string name="GraphicsQualityMid"> + Moyen + </string> + <string name="GraphicsQualityHigh"> + Élevé + </string> </strings> 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 4f57067cd2ab3c2c950e45fab62956e428e9b43c..ede581c5edcc5c9d74531a6cb25b0023678d7362 100644 --- a/indra/newview/skins/default/xui/it/floater_about_land.xml +++ b/indra/newview/skins/default/xui/it/floater_about_land.xml @@ -80,46 +80,46 @@ <button label="Abbandona la terra..." label_selected="Abbandona la terra..." name="Abandon Land..."/> <button label="Reclama la terra..." label_selected="Reclama la terra..." name="Reclaim Land..."/> <button label="Vendita Linden..." label_selected="Vendita Linden..." name="Linden Sale..." tool_tip="La terra deve essere posseduta, con contenuto impostato, e non già messa in asta."/> - <string name="new users only"> + <panel.string name="new users only"> Solo ai nuovi residenti - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> A chiunque - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> Area - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA] m² - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> Asta n.: [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> Devi confermare l'acquisto prima di poter modificare il terreno. - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (Posseduta dal gruppo) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> Profilo... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> Info... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (pubblica) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (nessuno) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (vendita in corso) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> Nessun appezzamento selezionato. Vai al menu Mondo > Informazioni sul terreno oppure seleziona un altro appezzamento per vederne i dettagli. - </string> + </panel.string> </panel> <panel label="Regolamento" name="land_covenant_panel"> <text name="estate_section_lbl"> @@ -176,20 +176,20 @@ Vai al menu Mondo > Informazioni sul terreno oppure seleziona un altro appezz <text name="changeable_clause" left="125"> La terra in questa regione non può essere unita/suddivisa. </text> - <string name="can_resell"> + <panel.string name="can_resell"> La terra acquistata in questa regione può essere rivenduta. - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> La terra acquistata in questa regione non può essere rivenduta. - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> La terra acquistata in questa regione può essere unita o suddivisa. - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> La terra acquistata in questa regione non può essere unita o suddivisa. - </string> + </panel.string> </panel> <panel label="Oggetti" name="land_objects_panel"> <text name="parcel_object_bonus"> @@ -201,12 +201,12 @@ o suddivisa. <text name="objects_available" left="214" width="230" > [COUNT] dei [MAX] ([AVAILABLE] dsponibili) </text> - <string name="objects_available_text"> + <panel.string name="objects_available_text"> [COUNT] dei [MAX] ([AVAILABLE] disponibili) - </string> - <string name="objects_deleted_text"> + </panel.string> + <panel.string name="objects_deleted_text"> [COUNT] dei [MAX] ([DELETED] saranno cancellati) - </string> + </panel.string> <text name="Primitives parcel supports:" width="200"> Oggetti che il terreno supporta: </text> @@ -293,85 +293,84 @@ o suddivisa. <check_box label="Sicuro (senza danno)" name="check safe" tool_tip="Se spuntato, imposta il terreno su 'sicuro', disabilitando i danni da combattimento. Se non spuntato, viene abilitato il combattimento a morte."/> <check_box label="Nessuna spinta" name="PushRestrictCheck" tool_tip="Previeni i colpi. Selezionare questa opzione può essere utile per prevenire comportamenti dannosi sul tuo terreno."/> <check_box label="Mostra il luogo nella ricerca (30 L$/week) sotto" name="ShowDirectoryCheck" tool_tip="Lascia che questa terra sia vista dagli altri nei risultati di ricerca"/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> Fai in modo che la gente trovi questo terreno nei risultati della ricerca. - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> Questa opzione è disabilitata perchè questo terreno ha un'area di 128 m² o inferiore. Solamente terreni più grandi possono essere abilitati nella ricerca. - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> Questa opzione è disabilitata perchè tu non puoi modificare le opzioni di questo terreno. - </string> - <combo_box name="land category with adult"> - <combo_item name="AnyCategory"> - Tutte le categorie - </combo_item> - <combo_item name="LindenLocation"> - Luoghi Linden - </combo_item> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Arts&Culture"> - Arte & Cultura - </combo_item> - <combo_item name="Business"> - Affari - </combo_item> - <combo_item name="Educational"> - Educazione - </combo_item> - <combo_item name="Gaming"> - Giochi - </combo_item> - <combo_item name="Hangout"> - Divertimento - </combo_item> - <combo_item name="NewcomerFriendly"> - Ospitalità per i nuovi entrati - </combo_item> - <combo_item name="Parks&Nature"> - Parchi & Natura - </combo_item> - <combo_item name="Residential"> - Residenziale - </combo_item> - <combo_item name="Shopping"> - Shopping - </combo_item> - <combo_item name="Other"> - Altro - </combo_item> + </panel.string> + <combo_box name="land category with adult" left="282" width="140"> + <combo_box.item name="item0" label="Tutte le categorie" + /> + <combo_box.item name="item1" label="Luogo dei Linden" + /> + <combo_box.item name="item2" label="Adult" + /> + <combo_box.item name="item3" label="Arte & Cultura" + /> + <combo_box.item name="item4" label="Affari" + /> + <combo_box.item name="item5" label="Educazione" + /> + <combo_box.item name="item6" label="Gioco" + /> + <combo_box.item name="item7" label="Divertimento" + /> + <combo_box.item name="item8" label="Accoglienza nuovi residenti" + /> + <combo_box.item name="item9" label="Parchi & Natura" + /> + <combo_box.item name="item10" label="Residenziale" + /> + <combo_box.item name="item11" label="Shopping" + /> + <combo_box.item name="item12" label="Altro" + /> </combo_box> - <combo_box name="land category"> - <combo_box.item name="AnyCategory" label="Tutte le categorie"/> - <combo_box.item name="LindenLocation" label="Luogo dei Linden"/> - <combo_box.item name="Arts&Culture" label="Arte & Cultura"/> - <combo_box.item name="Business" label="Affari"/> - <combo_box.item name="Educational" label="Educazione"/> - <combo_box.item name="Gaming" label="Gioco"/> - <combo_box.item name="Hangout" label="Divertimento"/> - <combo_box.item name="NewcomerFriendly" label="Accoglienza nuovi residenti"/> - <combo_box.item name="Parks&Nature" label="Parchi & Natura"/> - <combo_box.item name="Residential" label="Residenziale"/> - <combo_box.item name="Shopping" label="Shopping"/> - <combo_box.item name="Other" label="Altro"/> + <combo_box name="land category" left="282" width="140"> + <combo_box.item name="item0" label="Tutte le categorie" + /> + <combo_box.item name="item1" label="Luogo dei Linden" + /> + <combo_box.item name="item3" label="Arte & Cultura" + /> + <combo_box.item name="item4" label="Affari" + /> + <combo_box.item name="item5" label="Educazione" + /> + <combo_box.item name="item6" label="Gioco" + /> + <combo_box.item name="item7" label="Divertimento" + /> + <combo_box.item name="item8" label="Accoglienza nuovi residenti" + /> + <combo_box.item name="item9" label="Parchi & Natura" + /> + <combo_box.item name="item10" label="Residenziale" + /> + <combo_box.item name="item11" label="Shopping" + /> + <combo_box.item name="item12" label="Altro" + /> </combo_box> - <button label="?" label_selected="?" name="?"/> + <button label="?" label_selected="?" name="?" left="427"/> <check_box label="Contenuto Mature" name="MatureCheck" tool_tip=" "/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Contenuto Mature - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Contenuto Adult - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> Il contenuto o le informazioni del tuo terreno sono considerate Mature. - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> Il contenuto o le informazioni del tuo terreno sono considerate Adult. - </string> + </panel.string> <text name="Snapshot:"> Fotografia: </text> @@ -379,25 +378,28 @@ Solamente terreni più grandi possono essere abilitati nella ricerca. <text name="landing_point"> Punto di atterraggio: [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (nessuno) - </string> + </panel.string> <button width="60" label="Imposta" label_selected="Imposta" name="Set" tool_tip="Imposta il punto di atterraggio dove arrivano i visitatori. Impostalo nel punto dove si trova il tuo avatar in questo terreno."/> <button width="60" left="301" label="Elimina" label_selected="Elimina" name="Clear" tool_tip="Elimina punto di atterraggio."/> <text name="Teleport Routing: "> Rotte dei teleport: </text> <combo_box width="140" name="landing type" tool_tip="Rotte dei teleport -- seleziona come vuoi organizzare i teleport nella tua terra."> - <combo_box.item name="Blocked" label="Bloccati"/> - <combo_box.item name="LandingPoint" label="Punto di atterraggio"/> - <combo_box.item name="Anywhere" label="Ovunque"/> + <combo_box.item name="Blocked" label="Bloccati" + /> + <combo_box.item name="LandingPoint" label="Punto di atterraggio" + /> + <combo_box.item name="Anywhere" label="Ovunque" + /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> Nessuna spinta - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> Nessuna spinta (Impostazione regionale) - </string> + </panel.string> </panel> <panel label="Media" name="land_media_panel"> <text name="with media:" width="85"> @@ -465,14 +467,16 @@ Media: </text> <check_box label="Che non hanno dato le proprie informazioni di pagamento alla Linden Lab" name="limit_payment" tool_tip="Manda via residenti non identificati."/> <check_box label="Che non sono adulti con età verificata" name="limit_age_verified" tool_tip="Manda via residenti che non hanno verificato la loro età . Guarda il sito support.secondlife.com per ulteriori informazioni."/> - <string name="estate_override"> + <panel.string name="estate_override"> Una o più di queste impostazioni sono già impostate a livello regionale - </string> + </panel.string> <check_box label="Permetti accesso al gruppo: [GROUP]" 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 name="Anyone" label="Chiunque"/> - <combo_box.item name="Group" label="Gruppo"/> + <combo_box.item name="Anyone" label="Chiunque" + /> + <combo_box.item name="Group" label="Gruppo" + /> </combo_box> <spinner label="Prezzo in L$:" name="PriceSpin"/> <spinner label="Ore di accesso:" name="HoursSpin"/> 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 4e63c3b7d63b89c2812a0d03525a0412d129d8a7..a223e30fb56f22783cc7da3cf6bf68e552b04c06 100644 --- a/indra/newview/skins/default/xui/it/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/it/floater_avatar_picker.xml @@ -14,13 +14,15 @@ </panel> <panel label="Vicino a me" name="NearMePanel"> <text name="InstructSelectResident"> - Seleziona un residente nelle vicinanze: + Seleziona un residente +nelle vicinanze: </text> - <button label="Aggiorna la lista" label_selected="Aggiorna l'elenco" name="Refresh"/> - <slider label="Range" name="near_me_range"/> + <button font="SansSerifSmall" left_delta="6" width="110" label="Aggiorna la lista" label_selected="Aggiorna l'elenco" name="Refresh"/> + <slider label="Range" name="near_me_range" bottom_delta="-36"/> <text name="meters"> Metri </text> + <scroll_list bottom_delta="-169" height="159" name="NearMe" /> </panel> </tab_container> <button label="Seleziona" label_selected="Seleziona" name="Select"/> diff --git a/indra/newview/skins/default/xui/it/floater_build_options.xml b/indra/newview/skins/default/xui/it/floater_build_options.xml index 340d70851cc96fb737c86323b36643aec662d61e..2c60aeda2b236973241d725448e69de73dfd4b81 100644 --- a/indra/newview/skins/default/xui/it/floater_build_options.xml +++ b/indra/newview/skins/default/xui/it/floater_build_options.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="build options floater" title="Opzioni della griglia"> - <spinner label="Unità di misura della griglia (metri)" name="GridResolution"/> - <spinner label="Estensione della griglia (metri)" name="GridDrawSize"/> + <spinner label="Unità di misura della griglia (metri)" name="GridResolution" width="250" label_width="192"/> + <spinner label="Estensione della griglia (metri)" name="GridDrawSize" width="250" label_width="192"/> <check_box label="Abilita sotto-unità di movimento" name="GridSubUnit"/> <check_box label="Mostra piani d'intersezione" name="GridCrossSection"/> - <slider label="Trasparenza della griglia" name="GridOpacity"/> + <slider label="Trasparenza della griglia" name="GridOpacity" width="250"/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_buy_contents.xml b/indra/newview/skins/default/xui/it/floater_buy_contents.xml index dce10d54937e67a00180bcff50fde242fe3948fd..2836f98970485aac1a26c4a082e79ff29d77be24 100644 --- a/indra/newview/skins/default/xui/it/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/it/floater_buy_contents.xml @@ -6,9 +6,9 @@ <text name="buy_text"> Compra per [AMOUNT]L$ da [NAME]? </text> - <button label="Annulla" label_selected="Annulla" name="cancel_btn"/> - <button label="Compra" label_selected="Compra" name="buy_btn"/> - <check_box label="Indossa adesso l'indumento" name="wear_check"/> + <button label="Annulla" label_selected="Annulla" name="cancel_btn" width="73"/> + <button label="Compra" label_selected="Compra" name="buy_btn" width="73" left_delta="-77"/> + <check_box label="Indossa adesso l'indumento" name="wear_check" bottom="-234" left_delta="-125"/> <string name="no_copy_text"> (non copiabile) </string> diff --git a/indra/newview/skins/default/xui/it/floater_buy_currency.xml b/indra/newview/skins/default/xui/it/floater_buy_currency.xml index aa840b4de4893e8f6005c2cb6623bd4772fb7d98..a24f0dbe7a33f496dd7311293485e493b800f793 100644 --- a/indra/newview/skins/default/xui/it/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/it/floater_buy_currency.xml @@ -22,14 +22,14 @@ <text name="buy_action"> [NAME] [PRICE]L$ </text> - <text name="currency_action"> + <text name="currency_action" width="45"> Compra </text> <line_editor name="currency_amt"> 1234 </line_editor> <text name="currency_est"> - L$ per circa [USD]US$ + L$ per circa [USD]US$ </text> <text name="getting_data"> Dati in ricezione... @@ -64,6 +64,6 @@ Devi aumentare l'importo da acquistare. <button label="Cancella" name="cancel_btn"/> <button label="Acquista" name="buy_btn"/> <string name="buy_currency"> - Compra [LINDENS] L$ per circa [USD] US$ + acquistare [LINDENS] L$ per circa [USD] US$ </string> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_customize.xml b/indra/newview/skins/default/xui/it/floater_customize.xml index 70fc27b3bb9cf5236f4c6ebe17c1f7789a1b11f6..eac673e004d9fbe39ebd8513a01a54130d10304f 100644 --- a/indra/newview/skins/default/xui/it/floater_customize.xml +++ b/indra/newview/skins/default/xui/it/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="Aspetto fisico" width="551"> <tab_container name="customize tab container" tab_min_width="120" width="549"> - <panel label="Parti del corpo" name="body_parts_placeholder"/> + <placeholder label="Parti del corpo" name="body_parts_placeholder"/> <panel label="Forma del corpo" name="Shape" left="124" width="389"> <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/> <button label="Corpo" label_selected="Corpo" name="Body"/> diff --git a/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml index cac43c9b8a8a7001fac9dc54b35ca7ca31bb4638..4c62d4f5a24afca0aedfb4fff9c7ddd2556578f5 100644 --- a/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml @@ -4,31 +4,31 @@ <panel label="Ciclo giorno/notte" name="Day Cycle"> <button label="?" name="WLDayCycleHelp"/> <text name="WL12am"> - 12 + 0:00 </text> <text name="WL3am"> - 3 + 3:00 </text> <text name="WL6am"> - 6 + 6:00 </text> <text name="WL9amHash"> - 9 + 9:00 </text> <text name="WL12pmHash"> - 24 + 12:00 </text> <text name="WL3pm"> - 15 + 15:00 </text> <text name="WL6pm"> - 18 + 18:00 </text> <text name="WL9pm"> - 21 + 21:00 </text> <text name="WL12am2"> - 12 + 24:00 </text> <text name="WL12amHash"> | @@ -57,9 +57,9 @@ <text name="WL12amHash2"> | </text> - <button label="Aggiungi voce" label_selected="Aggiungi voce" name="WLAddKey"/> - <button label="Cancella voce" label_selected="Cancella voce" name="WLDeleteKey"/> - <text name="WLCurKeyFrameText"> + <button font="SansSerifSmall" width="96" left="546" label="Aggiungi voce" label_selected="Aggiungi voce" name="WLAddKey"/> + <button font="SansSerifSmall" width="96" left="546" label="Cancella voce" label_selected="Cancella voce" name="WLDeleteKey"/> + <text name="WLCurKeyFrameText" width="210" left="17"> Impostazioni del fotogramma chiave: </text> <text name="WLCurKeyTimeText"> @@ -84,9 +84,9 @@ <text name="DayCycleText3"> Anteprima: </text> - <button label="Avvia" label_selected="Avvia" name="WLAnimSky"/> - <button label="Arresta!" label_selected="Arresta" name="WLStopAnimSky"/> - <button label="Usa l'ora della proprietà " label_selected="Vai all'ora della proprietà " name="WLUseLindenTime"/> + <button width="55" font="SansSerifSmall" label="Avvia" label_selected="Avvia" name="WLAnimSky"/> + <button width="55" left_delta="60" font="SansSerifSmall" label="Arresta!" label_selected="Arresta" name="WLStopAnimSky"/> + <button left_delta="60" width="150" font="SansSerifSmall" label="Usa l'ora della proprietà " label_selected="Vai all'ora della proprietà " name="WLUseLindenTime"/> <button label="Salva il test del giorno" label_selected="Salva il test del giorno" name="WLSaveDayCycle"/> <button label="Carica il test del giorno" label_selected="Carica il test del giorno" name="WLLoadDayCycle"/> </panel> diff --git a/indra/newview/skins/default/xui/it/floater_env_settings.xml b/indra/newview/skins/default/xui/it/floater_env_settings.xml index 58fbff5dc9e56f6dc5872e34e01b43d1e48a794c..36f97bda81fa611b972d13bd4bb45b1f999c204a 100644 --- a/indra/newview/skins/default/xui/it/floater_env_settings.xml +++ b/indra/newview/skins/default/xui/it/floater_env_settings.xml @@ -1,22 +1,26 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Environment Editor Floater" title="Editor dell'ambiente"> <text name="EnvTimeText"> - Ora del giorno + Ora del +giorno </text> <text name="EnvTimeText2"> 12:00 PM </text> <text name="EnvCloudText"> - Intensità delle Nuvole + Intensità delle +Nuvole </text> <text name="EnvWaterColorText"> - Colore dell'Acqua + Colore +dell'Acqua </text> <color_swatch label="" name="EnvWaterColor" tool_tip="Clicca per aprire la tavolozza dei colori"/> <text name="EnvWaterFogText"> - Nebbiosità dell'acqua + Nebbiosità +dell'acqua </text> - <button label="Usa orario della regione" name="EnvUseEstateTimeButton"/> + <button bottom="-144" label="Usa orario della regione" name="EnvUseEstateTimeButton" width="145"/> <button label="Cielo avanzato" name="EnvAdvancedSkyButton"/> <button label="Acqua avanzata" name="EnvAdvancedWaterButton"/> <button label="?" name="EnvSettingsHelpButton"/> diff --git a/indra/newview/skins/default/xui/it/floater_gesture.xml b/indra/newview/skins/default/xui/it/floater_gesture.xml index 27008e97a1b364a22e996b2c98db52c0e36216da..997e13ecb50e17f124cd1f49738f02479a219b6c 100644 --- a/indra/newview/skins/default/xui/it/floater_gesture.xml +++ b/indra/newview/skins/default/xui/it/floater_gesture.xml @@ -1,12 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="gestures" title="Gesture attive"> <text name="help_label"> - Fai doppio click su una gesture per azionare animazioni e suoni. + Fai doppio click su una gesture per azionare animazioni +e suoni. </text> - <scroll_list name="gesture_list"> - <column label="Frase scatenante" name="trigger"/> - <column label="Pulsante" name="shortcut"/> - <column label="Nome" name="name"/> + <scroll_list bottom_delta="-385" height="360" name="gesture_list"> + <column label="Frase scatenante" name="trigger" width="106"/> + <column label="Pulsante" name="shortcut" width="65"/> + <column label="Nome" name="name" width="129"/> </scroll_list> <button label="Nuova" name="new_gesture_btn"/> <button label="Modifica" name="edit_btn"/> diff --git a/indra/newview/skins/default/xui/it/floater_inspect.xml b/indra/newview/skins/default/xui/it/floater_inspect.xml index cbf2935c77b67a66e0af64a61fe1a57ec3e1955a..6028c40557c5da62cb33b4ff0965fc88ea7871b0 100644 --- a/indra/newview/skins/default/xui/it/floater_inspect.xml +++ b/indra/newview/skins/default/xui/it/floater_inspect.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="inspect" title="Ispeziona oggetti"> +<floater name="inspect" title="Ispeziona oggetti" min_width="450"> <scroll_list name="object_list" tool_tip="Seleziona un oggetto da questo elenco per evidenziarlo inworld"> <column label="Nome dell'oggetto" name="object_name"/> - <column label="Nome del proprietario" name="owner_name"/> - <column label="Nome del creatore" name="creator_name"/> + <column label="Proprietario" name="owner_name"/> + <column label="Creatore" name="creator_name"/> <column label="Data di creazione" name="creation_date"/> </scroll_list> - <button label="Vedi il profilo del proprietario..." label_selected="" name="button owner" tool_tip="Vedi il profilo del proprietario dell'oggetto evidenziato"/> - <button label="Vedi il profilo del creatore..." label_selected="" name="button creator" tool_tip="Vedi il profilo del creatore originale dell'oggetto evidenziato"/> + <button width="185" label="Vedi il profilo del proprietario..." label_selected="" name="button owner" tool_tip="Vedi il profilo del proprietario dell'oggetto evidenziato"/> + <button width="165" left="205" label="Vedi il profilo del creatore..." label_selected="" name="button creator" tool_tip="Vedi il profilo del creatore originale dell'oggetto evidenziato"/> </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 935e1d70492878e23a77ef7b58b04eddabf15305..c2c05b4023d88fb3e50e97a6f5cc3b41c4ee4b22 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 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Inventory Finder" title="Inventario_Cose_recenti"> +<floater name="Inventory Finder" title="Inventario_Cose_recenti" width="165"> <check_box label="Animazioni" name="check_animation"/> <check_box label="Biglietti da visita" name="check_calling_card"/> <check_box label="Abiti" name="check_clothing"/> diff --git a/indra/newview/skins/default/xui/it/floater_joystick.xml b/indra/newview/skins/default/xui/it/floater_joystick.xml index dcd637f199ee155a94124d23c19418d1a3e1987d..b7b766391074154941c42133f4ede6541c6abef9 100644 --- a/indra/newview/skins/default/xui/it/floater_joystick.xml +++ b/indra/newview/skins/default/xui/it/floater_joystick.xml @@ -1,30 +1,23 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="Configurazione Joystick"> - <check_box name="enable_joystick"> - Abilita Joystick: - </check_box> - <spinner label="Mapping asse X" name="JoystickAxis1"/> - <spinner label="Mapping asse Y" name="JoystickAxis2"/> - <spinner label="Mapping asse Z" name="JoystickAxis0"/> - <spinner label="Mapping della direzione o Pitch" name="JoystickAxis4"/> - <spinner label="Mapping dell'altitudine o Yaw" name="JoystickAxis5"/> - <spinner label="Mapping del Roll" name="JoystickAxis3"/> - <spinner label="Mapping dello Zoom" name="JoystickAxis6"/> - <check_box label="Zoom diretto" name="ZoomDirect"/> + <check_box name="enable_joystick" label="Abilita Joystick:"/> + <text left="120" name="joystick_type" width="380"/> + <spinner label="Mapping: asse X" name="JoystickAxis1" label_width="140" width="180" left="12"/> + <spinner label="Mapping: asse Y" name="JoystickAxis2" label_width="134" width="174" left="205"/> + <spinner label="Mapping: asse Z" name="JoystickAxis0" label_width="94" width="134" left="390"/> + <spinner label="Mapping: direzione o Pitch" name="JoystickAxis4" label_width="140" width="180" left="12"/> + <spinner label="Mapping: altitudine o Yaw" name="JoystickAxis5" label_width="134" width="174" left="205"/> + <spinner label="Mapping del Roll" name="JoystickAxis3" label_width="94" width="134" left="390"/> + <spinner label="Mapping dello Zoom" name="JoystickAxis6" label_width="140" width="180" left="12"/> + <check_box label="Zoom diretto" name="ZoomDirect" left="205"/> <check_box label="Cursore 3D" name="Cursor3D"/> <check_box label="Auto livellamento" name="AutoLeveling"/> - <text name="Control Modes:"> + <text name="Control Modes:" left="3" width="113"> Modalità di controllo: </text> - <check_box name="JoystickAvatarEnabled"> - Avatar - </check_box> - <check_box name="JoystickBuildEnabled"> - Costruire - </check_box> - <check_box name="JoystickFlycamEnabled"> - Camera dall'alto - </check_box> + <check_box name="JoystickAvatarEnabled" label="Avatar"/> + <check_box name="JoystickBuildEnabled" left="192" label="Costruire"/> + <check_box name="JoystickFlycamEnabled" label="Camera dall'alto"/> <text name="XScale"> Regolazione X </text> @@ -34,14 +27,14 @@ <text name="ZScale"> Regolazione Z </text> - <text name="PitchScale"> - Regolazione della direzione o Pitch + <text name="PitchScale" left="3" width="112"> + Regolazione: Pitch </text> - <text name="YawScale"> - Regolazione dell'altitudine o Yaw + <text name="YawScale" left="3" width="112"> + Regolazione: Yaw </text> - <text name="RollScale"> - Regolazione del Roll + <text name="RollScale" left="3" width="112"> + Regolazione: Roll </text> <text name="XDeadZone"> Angolo morto X @@ -52,33 +45,35 @@ <text name="ZDeadZone"> Angolo morto Z </text> - <text name="PitchDeadZone"> - Angolo morto della direzione o Pitch + <text name="PitchDeadZone" left="3" width="112"> + Angolo morto: Pitch </text> - <text name="YawDeadZone"> - Angolo morto dell'altitudine o Yaw + <text name="YawDeadZone" left="3" width="112"> + Angolo morto: Yaw </text> - <text name="RollDeadZone"> - Angolo morto del Roll + <text name="RollDeadZone" left="3" width="112"> + Angolo morto: Roll </text> <text name="Feathering"> Smussamento </text> - <text name="ZoomScale2"> + <text name="ZoomScale2" width="135" left="6"> Regolazione dello zoom </text> - <text name="ZoomDeadZone"> + <text name="ZoomDeadZone" width="135" left="6"> Angolo morto dello zoom </text> <button label="SpaceNavigator Defaults" name="SpaceNavigatorDefaults"/> <button label="OK" label_selected="OK" name="ok_btn"/> <button label="Annulla" label_selected="Annulla" name="cancel_btn"/> - <string name="JoystickMonitor"> - Monitor del Joystick - </string> - <string name="Axis"> - Assi [NUM] - </string> + <stat_view label="Monitor del Joystick" name="axis_view"> + <stat_bar label="Assi 0" name="axis0"/> + <stat_bar label="Assi 1" name="axis1"/> + <stat_bar label="Assi 2" name="axis2"/> + <stat_bar label="Assi 3" name="axis3"/> + <stat_bar label="Assi 4" name="axis4"/> + <stat_bar label="Assi 5" name="axis5"/> + </stat_view> <string name="NoDevice"> nessun dispositivo trovato </string> diff --git a/indra/newview/skins/default/xui/it/floater_lagmeter.xml b/indra/newview/skins/default/xui/it/floater_lagmeter.xml index d14f12ea4a7210b0b096169914ff739002171372..af70ad9d310b482862d97b8ff08ba390c5acf65b 100644 --- a/indra/newview/skins/default/xui/it/floater_lagmeter.xml +++ b/indra/newview/skins/default/xui/it/floater_lagmeter.xml @@ -1,24 +1,27 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_lagmeter" title="Misuratore del lag"> <button label="" label_selected="" name="client_lagmeter" tool_tip="Stato del lag del programma in locale"/> + <text left="30" name="client_lag_cause" right="-10" /> + <text left="30" name="network_lag_cause" right="-10" /> + <text left="30" name="server_lag_cause" right="-32" /> <text name="client"> Programma in locale: </text> - <text name="client_text"> + <text name="client_text" left="145" font="SansSerifSmall"> Normale </text> <button label="" label_selected="" name="network_lagmeter" tool_tip="Stato del lag del network"/> <text name="network"> Network: </text> - <text name="network_text"> + <text name="network_text" font="SansSerifSmall"> Normale </text> <button label="" label_selected="" name="server_lagmeter" tool_tip="Stato del lag del server"/> <text name="server"> Server: </text> - <text name="server_text"> + <text name="server_text" font="SansSerifSmall"> Normale </text> <button label="?" name="server_help"/> @@ -48,10 +51,10 @@ Normale, finestra sullo sfondo </string> <string name="client_frame_time_critical_msg"> - Velocità dei frame del programma in locale al di sotto di [CLIENT_FRAME_RATE_CRITICAL] + Velocità dei frame al di sotto di [CLIENT_FRAME_RATE_CRITICAL] </string> <string name="client_frame_time_warning_msg"> - Velocità dei frame del programma in locale tra [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING] + Velocità dei frame tra [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING] </string> <string name="client_frame_time_normal_msg"> Normale @@ -117,10 +120,10 @@ 20 </string> <string name="server_frame_time_critical_msg"> - Velocità del simulatore al di sotto di [SERVER_FRAME_RATE_CRITICAL] + Velocità dei frame al di sotto di [SERVER_FRAME_RATE_CRITICAL] </string> <string name="server_frame_time_warning_msg"> - Velocità del simulatore tra [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING] + Velocità dei frame tra [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING] </string> <string name="server_frame_time_normal_msg"> Normale diff --git a/indra/newview/skins/default/xui/it/floater_land_holdings.xml b/indra/newview/skins/default/xui/it/floater_land_holdings.xml index 6ac84b854f83dbaaa86b09fb6d576e749c41c26f..85661c28d72bf537b6ae256178ebbbbaad920c6e 100644 --- a/indra/newview/skins/default/xui/it/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/it/floater_land_holdings.xml @@ -7,7 +7,7 @@ <column label="Area" name="area"/> </scroll_list> <button label="Teletrasportati" label_selected="Teletrasportati" name="Teleport" tool_tip="Teletrasportati al centro di questo terreno."/> - <button label="Mostra sulla mappa" label_selected="Mostra sulla mappa" name="Show on Map" tool_tip="Mostra questo terreno sulla mappa."/> + <button width="130" label="Mostra sulla mappa" label_selected="Mostra sulla mappa" name="Show on Map" tool_tip="Mostra questo terreno sulla mappa."/> <text name="contrib_label"> Contributi ai tuoi gruppi: </text> @@ -19,21 +19,21 @@ Proprietà di terreni consentite per l'attuale piano di pagamento: </text> <text name="allowed_text"> - [AREA] metri quadrati + [AREA] m² </text> <text name="current_label"> Attuale proprietà di terreni: </text> <text name="current_text"> - [AREA] metri quadrati + [AREA] m² </text> <text name="available_label"> Quantità disponibile per ulteriori acquisti di terreno: </text> <text name="available_text"> - [AREA] metri quadrati + [AREA] m² </text> <string name="area_string"> - [AREA] metri quadrati + [AREA] m² </string> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml index 55195a00f113adcaf928b4a9cbb2f9b899ad6f72..bb1f6116cf96f435946bf1fd95a1331ff8cf1de0 100644 --- a/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml +++ b/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="script ed float" title="Script: Nuovo script"> <button label="Ripristina" label_selected="Ripristina" name="Reset"/> - <check_box label="In esecuzione" name="running"/> - <check_box label="Mono" name="mono"/> + <check_box label="In esecuzione" name="running" left="4"/> + <check_box label="Mono" name="mono" left="106"/> <string name="not_allowed"> Non sei autorizzato a visualizzare questo script. </string> diff --git a/indra/newview/skins/default/xui/it/floater_lsl_guide.xml b/indra/newview/skins/default/xui/it/floater_lsl_guide.xml index 6a27703ad67d5e2e8fad25bad6534021f95ebd36..ec62dd087d2c431c66532bc2d4ca7ea8d7d9dd61 100644 --- a/indra/newview/skins/default/xui/it/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/it/floater_lsl_guide.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="script ed float" title="LSL Wiki"> <check_box label="Segui il cursore" name="lock_check"/> - <combo_box label="Blocca" name="history_combo"/> - <button label="Indietro" name="back_btn"/> + <combo_box label="Blocca" name="history_combo" left_delta="120" width="70"/> + <button label="Indietro" name="back_btn" left_delta="75"/> <button label="Avanti" name="fwd_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_map.xml b/indra/newview/skins/default/xui/it/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..20bd9e60b4b209e4d8153628c9a1aff153d46260 --- /dev/null +++ b/indra/newview/skins/default/xui/it/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + N + </floater.string> + <floater.string name="mini_map_east"> + E + </floater.string> + <floater.string name="mini_map_west"> + O + </floater.string> + <floater.string name="mini_map_south"> + S + </floater.string> + <floater.string name="mini_map_southeast"> + SE + </floater.string> + <floater.string name="mini_map_northeast"> + NE + </floater.string> + <floater.string name="mini_map_southwest"> + SO + </floater.string> + <floater.string name="mini_map_northwest"> + NO + </floater.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="E" name="floater_map_east" text="E"> + E + </text> + <text label="O" name="floater_map_west" text="O"> + O + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SO" name="floater_map_southwest" text="SO"> + SO + </text> + <text label="NO" name="floater_map_northwest" text="NO"> + NO + </text> +</floater> diff --git a/indra/newview/skins/default/xui/it/floater_media_browser.xml b/indra/newview/skins/default/xui/it/floater_media_browser.xml index 1c906f5a4d3d07dc22dfa7988511ff006836a143..4d3462b3484867a1d4014cc6c6c3f8b3f29c4557 100644 --- a/indra/newview/skins/default/xui/it/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/it/floater_media_browser.xml @@ -2,10 +2,11 @@ <floater name="floater_about" title="Browser multimediale"> <layout_stack name="stack1"> <layout_panel name="nav_controls"> - <button label="Indietro" name="back"/> - <button label="Avanti" name="forward"/> - <button label="Ricarica" name="reload"/> - <button label="Vai" name="go"/> + <button label="Indietro" name="back" width="75"/> + <button label="Avanti" name="forward" left_delta="75" width="70"/> + <button label="Ricarica" name="reload" left_delta="75"/> + <combo_box left_delta="75" name="address" width="510"/> + <button label="Vai" name="go" left_delta="515"/> </layout_panel> <layout_panel name="parcel_owner_controls"> <button label="Invia questo URL al terreno" name="assign"/> diff --git a/indra/newview/skins/default/xui/it/floater_moveview.xml b/indra/newview/skins/default/xui/it/floater_moveview.xml index 8a869478759174fd2123b38e70972326c5711d14..5bd84d48c8fa48e8c7009ee6470da4c6557acfaa 100644 --- a/indra/newview/skins/default/xui/it/floater_moveview.xml +++ b/indra/newview/skins/default/xui/it/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Gira a sinistra"/> <button label="" label_selected="" name="turn right btn" tool_tip="Gira a destra"/> <button label="" label_selected="" name="move up btn" tool_tip="Salta o vola in alto"/> @@ -8,4 +9,5 @@ <joystick_slide name="slide right btn" tool_tip="Vai a destra"/> <joystick_turn name="forward btn" tool_tip="Vai avanti"/> <joystick_turn name="backward btn" tool_tip="Vai indietro"/> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_mute_object.xml b/indra/newview/skins/default/xui/it/floater_mute_object.xml index 4b7370bad0d38188a80536c89468762883143720..6bacdcab4166a0278935ea16754b8a6d9d906187 100644 --- a/indra/newview/skins/default/xui/it/floater_mute_object.xml +++ b/indra/newview/skins/default/xui/it/floater_mute_object.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="mute by name" title="Ignora l'oggetto dal nome"> <text name="message"> - Ignora per nome ha effetti sull'oggetto in chat e IM, non nei suoni. -Devi scrivere esattamente il nome dell'oggetto. + Ignora per nome ha effetti sull'oggetto in chat e IM, non +nei suoni. Devi scrivere esattamente il nome dell'oggetto. </text> <line_editor name="object_name"> Nome dell'oggetto </line_editor> - <button label="Ok" name="OK"/> + <button label="OK" name="OK"/> <button label="Annulla" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_pay.xml b/indra/newview/skins/default/xui/it/floater_pay.xml index dbf374a67cf4300ea748fb462a68b8b77a194117..4889f97ec7cd1abecfa67c813ab838e6249d1664 100644 --- a/indra/newview/skins/default/xui/it/floater_pay.xml +++ b/indra/newview/skins/default/xui/it/floater_pay.xml @@ -1,21 +1,22 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> - <button label="Paga" label_selected="Paga" name="pay btn"/> - <button label="Annulla" label_selected="Annulla" name="cancel btn"/> - <text name="payee_label"> + <button label="1 L$" label_selected="1 L$" name="fastpay 1" left="118" width="80" /> + <button label="5 L$" label_selected="5 L$" name="fastpay 5" left="210"/> + <button label="10 L$" label_selected="10 L$" name="fastpay 10" left="118" width="80" /> + <button label="20 L$" label_selected="20 L$" name="fastpay 20" left="210"/> + <button label="Paga" label_selected="Paga" name="pay btn" left="127"/> + <button label="Annulla" label_selected="Annulla" name="cancel btn" left="210"/> + <text name="payee_label" left="5" width="105"> Paga residente: </text> - <text name="payee_name"> + <text name="payee_name" left="115"> [FIRST] [LAST] </text> - <text name="fastpay text"> + <text name="fastpay text" width="110" halign="left"> Pagamento veloce: </text> - <text name="amount text"> + <text name="amount text" left="4" > Ammontare: </text> + <line_editor left="70" name="amount" width="49"/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_pay_object.xml b/indra/newview/skins/default/xui/it/floater_pay_object.xml index 021b2d7647f21134ad7dd09f8b6858e5ca8ed6d0..c41c0ba41ebd1bafad2b14bc37194a516fc14971 100644 --- a/indra/newview/skins/default/xui/it/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/it/floater_pay_object.xml @@ -1,30 +1,31 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <text name="payee_group"> + <text name="payee_group" width="100" halign="left"> Paga il gruppo: </text> - <text name="payee_resident"> + <text name="payee_resident" width="120" halign="left"> Paga il residente: </text> - <text name="payee_name"> + <text name="payee_name" left="120"> [FIRST] [LAST] </text> - <text name="object_name_label"> + <text name="object_name_label" left="5" width="110" halign="left"> Mediante l'oggetto: </text> - <text name="object_name_text"> + <text name="object_name_text" left="120" > ... </text> - <text name="fastpay text"> + <text name="fastpay text" width="115" halign="left"> Pagamento diretto: </text> - <text name="amount text"> + <text name="amount text" left="5" halign="left"> Ammontare: </text> - <button label="1 L$" label_selected="1 L$" name="fastpay 1"/> - <button label="5 L$" label_selected="5 L$" name="fastpay 5"/> - <button label="10 L$" label_selected="10 L$" name="fastpay 10"/> - <button label="20 L$" label_selected="20 L$" name="fastpay 20"/> + <button label="1 L$" label_selected="1 L$" name="fastpay 1" left="125" width="70"/> + <button label="5 L$" label_selected="5 L$" name="fastpay 5" left="200" width="70"/> + <button label="10 L$" label_selected="10 L$" name="fastpay 10" left="125" width="70"/> + <button label="20 L$" label_selected="20 L$" name="fastpay 20" left="200" width="70"/> <button label="Paga" label_selected="Paga" name="pay btn"/> <button label="Cancella" label_selected="Cancella" name="cancel btn"/> + <line_editor left="74" name="amount" width="50" /> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_preferences.xml b/indra/newview/skins/default/xui/it/floater_preferences.xml index 726b6dd70b6e36447b2b4ce9658b0acdd825e75b..6277300bee5080b4ff4b370886551ad5ebc7fb4e 100644 --- a/indra/newview/skins/default/xui/it/floater_preferences.xml +++ b/indra/newview/skins/default/xui/it/floater_preferences.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Preferences" title="Preferenze"> +<floater name="Preferences" title="Preferenze" min_width="350" width="646"> <button label="OK" label_selected="OK" name="OK"/> <button label="Annulla" label_selected="Annulla" name="Cancel"/> <button label="Applica" label_selected="Applica" name="Apply"/> <button label="Informazioni..." label_selected="Informazioni..." name="About..."/> <button label="Aiuto" label_selected="Aiuto" name="Help"/> + <tab_container name="pref core" tab_width="146" width="646" /> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_preview_animation.xml b/indra/newview/skins/default/xui/it/floater_preview_animation.xml index 95a8a960666cd2c596cc70c18c0654e78c1ad95d..e9e0252613b346fe0b027b3149176f2979e97511 100644 --- a/indra/newview/skins/default/xui/it/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/it/floater_preview_animation.xml @@ -3,6 +3,6 @@ <text name="desc txt"> Descrizione: </text> - <button label="Esegui inworld" label_selected="Ferma" name="Anim play btn" tool_tip="Esegui questa animazione così che altri possano vederla."/> - <button label="Esegui localmente" label_selected="Ferma" name="Anim audition btn" tool_tip="Esegui questa animazione così che solo tu possa vederla."/> + <button left="20" width="131" label="Esegui inworld" label_selected="Ferma" name="Anim play btn" tool_tip="Esegui questa animazione così che altri possano vederla."/> + <button left="162" width="125" label="Esegui localmente" label_selected="Ferma" name="Anim audition btn" tool_tip="Esegui questa animazione così che solo tu possa vederla."/> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_report_abuse.xml b/indra/newview/skins/default/xui/it/floater_report_abuse.xml index abcd953c13df42afad0238e9afe9151566e6d783..c67fc69db6db5238dab5139d414de925a0545568 100644 --- a/indra/newview/skins/default/xui/it/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/it/floater_report_abuse.xml @@ -39,9 +39,7 @@ <combo_box.item name="Select_category" label="Scegli la categoria"/> <combo_box.item name="Age__Age_play" label="Età > Far finta di essere minore"/> <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Età > Residente adulto nella Teen Second Life"/> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - Età > Residente minorenne al di fuori della 'Second Life per Teenager' - </combo_item> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Età > Residente minorenne al di fuori della 'Second Life per Teenager'"/> <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Assalto > sandbox da combattimento / area pericolosa"/> <combo_box.item name="Assault__Safe_area" label="Assalto > Area sicura"/> <combo_box.item name="Assault__Weapons_testing_sandbox" label="Assalto > Test di armi in sandbox"/> @@ -66,12 +64,8 @@ <combo_box.item name="Harassment__Verbal_abuse" label="Molestie > Abusi verbali"/> <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indecenza > Condotta o contenuti largamente offensivi"/> <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indecenza > Nome di un avatar inappropriato"/> - <combo_item name="Indecency__Mature_content_in_PG_region"> - Indecenza > Contenuto o condotta inappropriata in una regione PG - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - Indecenza > Contenuto o condotta inappropriata in una regione Mature - </combo_item> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="Indecenza > Contenuto o condotta inappropriata in una regione PG"/> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Indecenza > Contenuto o condotta inappropriata in una regione Mature"/> <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Violazione della proprietà intellettuale > Rimozione contenuti"/> <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Violazione della proprietà intellettuale > CopyBot o sblocco di permessi"/> <combo_box.item name="Intolerance" label="Intolleranza"/> diff --git a/indra/newview/skins/default/xui/it/floater_script_search.xml b/indra/newview/skins/default/xui/it/floater_script_search.xml index ebd8ee359f54a965e0a9af4133d9f3f3bdd7aff9..470fb7613513a86fa59880fa2fab4e7adc543814 100644 --- a/indra/newview/skins/default/xui/it/floater_script_search.xml +++ b/indra/newview/skins/default/xui/it/floater_script_search.xml @@ -1,13 +1,15 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="script search" title="Cerca Script"> - <check_box label="Senza distinzione tra maiuscole e minuscole" name="case_text"/> - <button label="Cerca" label_selected="Cerca" name="search_btn"/> - <button label="Sostituisci" label_selected="Sostituisci" name="replace_btn"/> - <button label="Sostituisci tutto" label_selected="Sostituisci tutto" name="replace_all_btn"/> - <text name="txt"> +<floater name="script search" title="Cerca Script" width="320"> + <check_box label="Senza distinzione tra maiuscole e minuscole" name="case_text" left="65"/> + <button label="Cerca" label_selected="Cerca" name="search_btn" width="85"/> + <button label="Sostituisci" label_selected="Sostituisci" name="replace_btn" left="100" width="85"/> + <button label="Sostituisci tutto" label_selected="Sostituisci tutto" name="replace_all_btn" left="190" width="122"/> + <text name="txt" width="60"> Cerca </text> - <text name="txt2"> + <text name="txt2" width="60"> Sostituisci </text> + <line_editor left="65" name="search_text" width="240" /> + <line_editor left="65" name="replace_text" width="240" /> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_telehub.xml b/indra/newview/skins/default/xui/it/floater_telehub.xml index 5de215522d17ceee675dc21d991c5908cb04b032..0c5199dbc7f11db5907d129ffa3c934a9e06c295 100644 --- a/indra/newview/skins/default/xui/it/floater_telehub.xml +++ b/indra/newview/skins/default/xui/it/floater_telehub.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="telehub" title="Telehub"> +<floater name="telehub" title="Telehub" min_height="310" height="310" width="286"> <text name="status_text_connected"> Telehub connesso all'oggetto [OBJECT] </text> @@ -10,19 +10,23 @@ Per rimuovere, clicca Disconnetti. </text> <text name="help_text_not_connected"> - Seleziona l'oggetto e clicca connetti Telehub. + Seleziona l'oggetto e clicca Connetti Telehub. </text> <button label="Connetti Telehub" name="connect_btn"/> <button label="Disconnetti" name="disconnect_btn"/> - <text name="spawn_points_text"> + <text name="spawn_points_text" width="265"> Rigenera i punti (posizioni, non oggetti): </text> - <button label="Aggiungi punti rigenerazione" name="add_spawn_point_btn"/> - <button label="Rimuovi punti rigenerazione" name="remove_spawn_point_btn"/> + <scroll_list name="spawn_points_list" width="265" /> + <button width="165" label="Aggiungi punti rigenerazione" name="add_spawn_point_btn"/> + <button width="105" left="175" label="Rimuovi punti" name="remove_spawn_point_btn"/> <text name="spawn_point_help"> - Seleziona un oggetto e clicca su aggiungi per specificarne la posizione. + Seleziona un oggetto e clicca su aggiungi per +specificarne la posizione. Potrai quindi muovere o rimuovere l'oggetto. Le posizioni sono relative al centro del telehub. -Seleziona un elemento per vederne la posizione globale. + +Seleziona un elemento per vederne la posizione +globale. </text> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml index 3c79cd8829934433798ee76d2ad7698e24bbf849..d4d70f33676c97b0181e2ebcc579551244cbe559 100644 --- a/indra/newview/skins/default/xui/it/floater_tools.xml +++ b/indra/newview/skins/default/xui/it/floater_tools.xml @@ -5,30 +5,33 @@ <button label="" label_selected="" name="button edit" tool_tip="Modifica"/> <button label="" label_selected="" name="button create" tool_tip="Crea"/> <button label="" label_selected="" name="button land" tool_tip="Terra"/> - <check_box label="Zoom" name="radio zoom"/> - <check_box label="Guarda ruotando (Ctrl)" name="radio orbit"/> - <check_box label="Guarda panoramicamente (Ctrl-Shift)" name="radio pan"/> - <check_box label="Muovi" name="radio move"/> - <check_box label="Alza (Ctrl)" name="radio lift"/> - <check_box label="Gira intorno (Ctrl-Shift)" name="radio spin"/> - <check_box label="Posizione" name="radio position"/> - <check_box label="Ruota (Ctrl)" name="radio rotate"/> - <check_box label="Ridimensiona (Ctrl-Shift)" name="radio stretch"/> - <check_box label="Seleziona Texture" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="Zoom" name="radio zoom"/> + <radio_item label="Guarda ruotando (Ctrl)" name="radio orbit"/> + <radio_item label="Guarda panoramicamente (Ctrl-Shift)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="Muovi" name="radio move"/> + <radio_item label="Alza (Ctrl)" name="radio lift"/> + <radio_item label="Gira intorno (Ctrl-Shift)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="Posizione" name="radio position"/> + <radio_item label="Ruota (Ctrl)" name="radio rotate"/> + <radio_item label="Ridimensiona (Ctrl-Shift)" name="radio stretch"/> + <radio_item label="Seleziona Texture" name="radio select face"/> + </radio_group> <check_box label="Modifica parti unite" name="checkbox edit linked parts"/> <text name="text ruler mode"> Modalità : </text> <combo_box name="combobox grid mode" left_delta="48"> - <combo_item name="World"> - Globale - </combo_item> - <combo_item name="Local"> - Locale - </combo_item> - <combo_item name="Reference"> - Riferito a - </combo_item> + <combo_box.item name="World" label="Globale" + /> + <combo_box.item name="Local" label="Locale" + /> + <combo_box.item name="Reference" label="Riferito a" + /> </combo_box> <check_box label="Ridimens. simmetricamente" name="checkbox uniform"/> <check_box label="Ridimensiona le texture" name="checkbox stretch textures"/> @@ -56,13 +59,15 @@ <check_box label="Copia la selezione" name="checkbox copy selection"/> <check_box label="Centra" name="checkbox copy centers"/> <check_box label="Ruota" name="checkbox copy rotates"/> - <check_box label="Seleziona il terreno" name="radio select land"/> - <check_box label="Appiattisci" name="radio flatten"/> - <check_box label="Eleva" name="radio raise"/> - <check_box label="Abbassa" name="radio lower"/> - <check_box label="Uniforma" name="radio smooth"/> - <check_box label="Ondula" name="radio noise"/> - <check_box label="Ripristina" name="radio revert"/> + <radio_group name="land_radio_group"> + <radio_item label="Seleziona il terreno" name="radio select land"/> + <radio_item label="Appiattisci" name="radio flatten"/> + <radio_item label="Eleva" name="radio raise"/> + <radio_item label="Abbassa" name="radio lower"/> + <radio_item label="Uniforma" name="radio smooth"/> + <radio_item label="Ondula" name="radio noise"/> + <radio_item label="Ripristina" name="radio revert"/> + </radio_group> <button label="Applica" label_selected="Applica" name="button apply to selection" tool_tip="Modifica il terreno selezionato" left="146"/> <text name="Bulldozer:"> Bulldozer: @@ -112,9 +117,7 @@ <text name="Permissions:"> Permessi: </text> - <text name="perm_modify"> - Puoi modificare questo oggetto. - </text> + <check_box label="Condividi con il gruppo" name="checkbox share with group" tool_tip="Permetti a tutti i membri del gruppo di condividere ed utilizzare i tuoi permessi per questo oggetto. Devi cederlo al gruppo per abilitare le restrizioni di ruolo."/> <string name="text deed continued"> Cedi al gruppo... @@ -130,49 +133,35 @@ <text name="Cost"> Prezzo: L$ </text> - <radio_group name="sale type"> - <radio_item name="Original"> - Originale - </radio_item> - <radio_item name="Copy"> - Copia - </radio_item> - <radio_item name="Contents"> - Contenuto - </radio_item> - </radio_group> - <text name="Next owner can:"> - Il prossimo proprietario può: - </text> - <check_box label="Modificare" name="checkbox next owner can modify"/> - <check_box label="Copiare" name="checkbox next owner can copy" left_delta="80"/> - <check_box label="Rivendere/Regalare" name="checkbox next owner can transfer" left_delta="67"/> + <combo_box name="sale type"> + <combo_box.item label="Copia" name="Copy"/> + <combo_box.item label="Contenuto" name="Contents"/> + <combo_box.item label="Originale" name="Original"/> + </combo_box> + <text name="label click action" width="220"> Se cliccato con il tasto sinistro del mouse: </text> <combo_box name="clickaction" width="192"> - <combo_item name="Touch/grab(default)"> - Tocca/Afferra (default) - </combo_item> - <combo_item name="Sitonobject"> - Siediti sull'oggetto - </combo_item> - <combo_item name="Buyobject"> - Compra l'oggetto - </combo_item> - <combo_item name="Payobject"> - Paga l'oggetto - </combo_item> - <combo_item name="Open"> - Apri - </combo_item> - <combo_item name="Play"> - Attiva i multimedia del terreno - </combo_item> - <combo_item name="Opemmedia"> - Apri i multimedia del terreno - </combo_item> + <combo_box.item name="Touch/grab(default)" label="Tocca/Afferra (default)" + /> + <combo_box.item name="Sitonobject" label="Siediti sull'oggetto" + /> + <combo_box.item name="Buyobject" label="Compra l'oggetto" + /> + <combo_box.item name="Payobject" label="Paga l'oggetto" + /> + <combo_box.item name="Open" label="Apri" + /> + <combo_box.item name="Play" label="Attiva i multimedia del terreno" + /> + <combo_box.item name="Opemmedia" label="Apri i multimedia del terreno" + /> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + Puoi modificare questo oggetto. + </text> <text name="B:"> B: </text> @@ -191,6 +180,13 @@ <text name="F:"> F: </text> + <text name="Next owner can:"> + Il prossimo proprietario può: + </text> + <check_box label="Modificare" name="checkbox next owner can modify"/> + <check_box label="Copiare" name="checkbox next owner can copy" left_delta="80"/> + <check_box name="checkbox next owner can transfer" left_delta="67"/> + </panel> <string name="text modify info 1"> Puoi modificare questo oggetto. </string> @@ -255,56 +251,41 @@ Materiale </text> <combo_box name="material"> - <combo_item name="Stone"> - Pietra - </combo_item> - <combo_item name="Metal"> - Metallo - </combo_item> - <combo_item name="Glass"> - Vetro - </combo_item> - <combo_item name="Wood"> - Legno - </combo_item> - <combo_item name="Flesh"> - Carne - </combo_item> - <combo_item name="Plastic"> - Plastica - </combo_item> - <combo_item name="Rubber"> - Gomma - </combo_item> + <combo_box.item name="Stone" label="Pietra" + /> + <combo_box.item name="Metal" label="Metallo" + /> + <combo_box.item name="Glass" label="Vetro" + /> + <combo_box.item name="Wood" label="Legno" + /> + <combo_box.item name="Flesh" label="Carne" + /> + <combo_box.item name="Plastic" label="Plastica" + /> + <combo_box.item name="Rubber" label="Gomma" + /> </combo_box> <text name="label basetype"> Forma di costruzione </text> <combo_box name="comboBaseType"> - <combo_item name="Box"> - Cubo - </combo_item> - <combo_item name="Cylinder"> - Cilindro - </combo_item> - <combo_item name="Prism"> - Prisma - </combo_item> - <combo_item name="Sphere"> - Sfera - </combo_item> - <combo_item name="Torus"> - Toro - </combo_item> - <combo_item name="Tube"> - Tubo - </combo_item> - <combo_item name="Ring"> - Anello - </combo_item> - <combo_item name="Sculpted"> - Sculpted - </combo_item> + <combo_box.item name="Box" label="Cubo" + /> + <combo_box.item name="Cylinder" label="Cilindro" + /> + <combo_box.item name="Prism" label="Prisma" + /> + <combo_box.item name="Sphere" label="Sfera" + /> + <combo_box.item name="Torus" label="Toro" + /> + <combo_box.item name="Tube" label="Tubo" + /> + <combo_box.item name="Ring" label="Anello" + /> + <combo_box.item name="Sculpted" label="Sculpted" + /> </combo_box> <text name="text cut"> Linea di taglio Inizio e Fine @@ -321,18 +302,14 @@ Forma del foro </text> <combo_box name="hole"> - <combo_item name="Default"> - Default - </combo_item> - <combo_item name="Circle"> - Rotondo - </combo_item> - <combo_item name="Square"> - Quadrato - </combo_item> - <combo_item name="Triangle"> - Triangolare - </combo_item> + <combo_box.item name="Default" label="Default" + /> + <combo_box.item name="Circle" label="Rotondo" + /> + <combo_box.item name="Square" label="Quadrato" + /> + <combo_box.item name="Triangle" label="Triangolare" + /> </combo_box> <text name="text twist"> Torsione Inizio e Fine @@ -381,21 +358,16 @@ Tipo di congiunzione </text> <combo_box name="sculpt type control"> - <combo_item name="None"> - (nessuna) - </combo_item> - <combo_item name="Sphere"> - Sferica - </combo_item> - <combo_item name="Torus"> - Toroidale - </combo_item> - <combo_item name="Plane"> - Piana - </combo_item> - <combo_item name="Cylinder"> - Cilindrica - </combo_item> + <combo_box.item name="None" label="(nessuna)" + /> + <combo_box.item name="Sphere" label="Sferica" + /> + <combo_box.item name="Torus" label="Toroidale" + /> + <combo_box.item name="Plane" label="Piana" + /> + <combo_box.item name="Cylinder" label="Cilindrica" + /> </combo_box> </panel> <panel label="Caratteristiche" name="Features"> @@ -437,88 +409,64 @@ Applicazione della texture </text> <combo_box name="combobox texgen" bottom_delta="-38"> - <combo_item name="Default"> - Default - </combo_item> - <combo_item name="Planar"> - Planare - </combo_item> + <combo_box.item name="Default" label="Default" + /> + <combo_box.item name="Planar" label="Planare" + /> </combo_box> <text name="label shininess" bottom="-120"> Brillantezza </text> <combo_box name="combobox shininess" bottom_delta="-22"> - <combo_item name="None"> - Nessuna - </combo_item> - <combo_item name="Low"> - Bassa - </combo_item> - <combo_item name="Medium"> - Media - </combo_item> - <combo_item name="High"> - Alta - </combo_item> + <combo_box.item name="None" label="Nessuna" + /> + <combo_box.item name="Low" label="Bassa" + /> + <combo_box.item name="Medium" label="Media" + /> + <combo_box.item name="High" label="Alta" + /> </combo_box> <text name="label bumpiness" bottom="-120"> Rilievo </text> <combo_box name="combobox bumpiness" width="100" bottom_delta="-22"> - <combo_item name="None"> - Nessuna - </combo_item> - <combo_item name="Brightness"> - Luminoso - </combo_item> - <combo_item name="Darkness"> - Scuro - </combo_item> - <combo_item name="woodgrain"> - Venature del legno - </combo_item> - <combo_item name="bark"> - Corteccia - </combo_item> - <combo_item name="bricks"> - Mattoni - </combo_item> - <combo_item name="checker"> - Scacchi - </combo_item> - <combo_item name="concrete"> - Cemento - </combo_item> - <combo_item name="crustytile"> - Mattonella incrostata - </combo_item> - <combo_item name="cutstone"> - Mosaico in pietra - </combo_item> - <combo_item name="discs"> - Dischi - </combo_item> - <combo_item name="gravel"> - Ghiaia - </combo_item> - <combo_item name="petridish"> - Sassi - </combo_item> - <combo_item name="siding"> - Listoni - </combo_item> - <combo_item name="stonetile"> - Mattonelle in pietra - </combo_item> - <combo_item name="stucco"> - Stucco - </combo_item> - <combo_item name="suction"> - Cerchi rialzati - </combo_item> - <combo_item name="weave"> - Trama - </combo_item> + <combo_box.item name="None" label="Nessuna" + /> + <combo_box.item name="Brightness" label="Luminoso" + /> + <combo_box.item name="Darkness" label="Scuro" + /> + <combo_box.item name="woodgrain" label="Venature del legno" + /> + <combo_box.item name="bark" label="Corteccia" + /> + <combo_box.item name="bricks" label="Mattoni" + /> + <combo_box.item name="checker" label="Scacchi" + /> + <combo_box.item name="concrete" label="Cemento" + /> + <combo_box.item name="crustytile" label="Mattonella incrostata" + /> + <combo_box.item name="cutstone" label="Mosaico in pietra" + /> + <combo_box.item name="discs" label="Dischi" + /> + <combo_box.item name="gravel" label="Ghiaia" + /> + <combo_box.item name="petridish" label="Sassi" + /> + <combo_box.item name="siding" label="Listoni" + /> + <combo_box.item name="stonetile" label="Mattonelle in pietra" + /> + <combo_box.item name="stucco" label="Stucco" + /> + <combo_box.item name="suction" label="Cerchi rialzati" + /> + <combo_box.item name="weave" label="Trama" + /> </combo_box> <text name="tex scale"> Ripetizioni per faccia @@ -583,43 +531,43 @@ <button label="Acquista il terreno..." label_selected="Acquista il terreno..." name="button buy land" width="156"/> <button label="Abbandona il terreno..." label_selected="Abbandona il terreno..." name="button abandon land" width="156"/> </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> Sposta le fasce colorate per ruotare l'oggetto - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> Clicca e trascina per ridimensionare il lato selezionato - </string> - <string name="status_move"> + </floater.string> + <floater.string name="status_move"> Trascina per spostare, maiuscolo+trascina per copiare - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_modifyland"> Clicca e tieni premuto per modificare il terreno - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> Clicca e sposta per cambiare visuale - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> Trascina per muovere, Ctrl per alzare, Ctrl-Shift per ruotare - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> Clicca inworld per costruire - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> Clicca e trascina per selezionare il terreno - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> Schermo - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> Locale - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> Globale - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> Riferimento - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> Accessorio - </string> + </floater.string> </floater> diff --git a/indra/newview/skins/default/xui/it/floater_top_objects.xml b/indra/newview/skins/default/xui/it/floater_top_objects.xml index ff6e9eb730e1ce3bca1cb7396f8e6fde9a1a6b51..470e21769c8ccaf62f75cd2bf5c2cd4026fabcee 100644 --- a/indra/newview/skins/default/xui/it/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/it/floater_top_objects.xml @@ -4,30 +4,33 @@ In caricamento... </text> <scroll_list name="objects_list"> - <column label="Punteggio" name="score"/> - <column label="Nome" name="name"/> - <column label="Proprietario" name="owner"/> - <column label="Ubicazione" name="location"/> - <column label="Ora" name="time"/> - <column label="Ora (Mono)" name="mono_time"/> + <column label="Punteggio" name="score" width="84"/> + <column label="Nome" name="name" width="84"/> + <column label="Proprietario" name="owner" width="84"/> + <column label="Ubicazione" name="location" width="84"/> + <column label="Ora" name="time" width="84"/> + <column label="Ora (Mono)" name="mono_time" width="84"/> </scroll_list> + <line_editor font="SansSerifSmall" left="90" name="id_editor" width="280"/> + <line_editor font="SansSerifSmall" left="90" name="object_name_editor" width="280"/> + <line_editor font="SansSerifSmall" left="90" name="owner_name_editor" width="280"/> <text name="id_text"> ID oggetto: </text> - <button label="Mostra segnali luminosi" name="show_beacon_btn"/> + <button label="Mostra segnali luminosi" name="show_beacon_btn" width="150"/> <text name="obj_name_text"> Nome oggetto: </text> - <button label="Filtro" name="filter_object_btn"/> + <button label="Filtro" name="filter_object_btn" width="150"/> <text name="owner_name_text"> Nome oggetto: </text> - <button label="Filtro" name="filter_owner_btn"/> - <button label="Restituisci selezionato" name="return_selected_btn"/> - <button label="Restituisci tutti" name="return_all_btn"/> - <button label="Disabilita selezionato" name="disable_selected_btn"/> - <button label="Disabilita per tutti" name="disable_all_btn"/> - <button label="Aggiorna" name="refresh_btn"/> + <button label="Filtro" name="filter_owner_btn" width="150"/> + <button label="Restituisci selezionato" name="return_selected_btn" width="150"/> + <button label="Restituisci tutti" name="return_all_btn" left="170"/> + <button label="Disabilita selezionato" name="disable_selected_btn" width="150"/> + <button label="Disabilita per tutti" name="disable_all_btn" left="170"/> + <button label="Aggiorna" name="refresh_btn" width="150"/> <string name="top_scripts_title"> Script pesanti </string> diff --git a/indra/newview/skins/default/xui/it/floater_url_entry.xml b/indra/newview/skins/default/xui/it/floater_url_entry.xml index 2968b19d8038c27398bc400352bf6085c08ef849..9ad1a0dce5e5238a2ba54d44eae01f4d78f53956 100644 --- a/indra/newview/skins/default/xui/it/floater_url_entry.xml +++ b/indra/newview/skins/default/xui/it/floater_url_entry.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="url_entry" title=""> <text name="media_label"> - Media URL: + URL Media: </text> <button label="OK" name="ok_btn"/> <button label="Annulla" name="cancel_btn"/> - <button label="Cancella" name="clear_btn"/> + <button label="Elimina" name="clear_btn"/> <text name="loading_label"> In caricamento... </text> diff --git a/indra/newview/skins/default/xui/it/floater_water.xml b/indra/newview/skins/default/xui/it/floater_water.xml index 6665d97e2af5672145d03a4e33053a87b1543984..33f91ed1c883509e0094b332cfbd828f8c5287ba 100644 --- a/indra/newview/skins/default/xui/it/floater_water.xml +++ b/indra/newview/skins/default/xui/it/floater_water.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Water Floater" title="Editor avanzato dell'acqua"> - <text name="KeyFramePresetsText"> + <text name="KeyFramePresetsText" width="224"> Impostazioni predeterminate dell'acqua: </text> + <combo_box left_delta="230" name="WaterPresetsCombo" width="150" /> <button label="Nuovo" label_selected="Nuovo" name="WaterNewPreset"/> <button label="Salva" label_selected="Salva" name="WaterSavePreset"/> <button label="Cancella" label_selected="Cancella" name="WaterDeletePreset"/> @@ -11,20 +12,21 @@ <text name="BHText"> Colore della nebbiosità dell'acqua </text> - <button label="?" name="WaterFogColorHelp"/> + <button label="?" name="WaterFogColorHelp" left="209"/> <color_swatch label="" name="WaterFogColor" tool_tip="Clicca per aprire la selezione colore"/> - <text name="WaterFogDensText"> - Esponente di densità  della nebbia dell'acqua + <text name="WaterFogDensText" font="SansSerifSmall"> + Esponente di densità della nebbia dell'acqua </text> - <button label="?" name="WaterFogDensityHelp"/> - <text name="WaterUnderWaterFogModText"> + <slider bottom_delta="-40" name="WaterFogDensity"/> + <button label="?" name="WaterFogDensityHelp" left="209"/> + <text name="WaterUnderWaterFogModText" font="SansSerifSmall" bottom="-140"> Regolatore effetto nebbia subacquea </text> - <button label="?" name="WaterUnderWaterFogModHelp"/> + <button label="?" name="WaterUnderWaterFogModHelp" left="209"/> <text name="BDensText"> Scala di riflessione delle onde </text> - <button label="?" name="WaterNormalScaleHelp"/> + <button label="?" name="WaterNormalScaleHelp" left="415"/> <text name="BHText2"> 1 </text> @@ -37,29 +39,31 @@ <text name="HDText"> Scala Fresnel </text> - <button label="?" name="WaterFresnelScaleHelp"/> + <button label="?" name="WaterFresnelScaleHelp" left="415"/> <text name="FresnelOffsetText"> Offset Fresnel </text> - <button label="?" name="WaterFresnelOffsetHelp"/> - <text name="DensMultText"> - Scala di rifrazione nell'acqua dall'alto + <button label="?" name="WaterFresnelOffsetHelp" left="415"/> + <text name="DensMultText" font="SansSerifSmall"> + Scala di rifrazione nell'acqua dall'alto </text> - <button label="?" name="WaterScaleAboveHelp"/> - <text name="WaterScaleBelowText"> - Scala di rifrazione nell'acqua dal basso + <slider bottom_delta="-40" name="WaterScaleAbove"/> + <button label="?" name="WaterScaleAboveHelp" left="650"/> + <text name="WaterScaleBelowText" font="SansSerifSmall" bottom="-70"> + Scala di rifrazione nell'acqua dal basso </text> - <button label="?" name="WaterScaleBelowHelp"/> - <text name="MaxAltText"> + <slider bottom_delta="-40" name="WaterScaleBelow"/> + <button label="?" name="WaterScaleBelowHelp" left="650"/> + <text name="MaxAltText" bottom="-122"> Moltiplicatore della sfocatura </text> - <button label="?" name="WaterBlurMultiplierHelp"/> + <button label="?" name="WaterBlurMultiplierHelp" left="650"/> </panel> <panel label="Immagine" name="Waves"> <text name="BHText"> Direzione della grande onda </text> - <button label="?" name="WaterWave1Help"/> + <button label="?" name="WaterWave1Help" left="170"/> <text name="WaterWave1DirXText"> X </text> @@ -69,7 +73,7 @@ <text name="BHText2"> Direzione della piccola onda </text> - <button label="?" name="WaterWave2Help"/> + <button label="?" name="WaterWave2Help" left="170"/> <text name="WaterWave2DirXText"> X </text> diff --git a/indra/newview/skins/default/xui/it/floater_windlight_options.xml b/indra/newview/skins/default/xui/it/floater_windlight_options.xml index aa99e1d883fcf3001d1a5eb786769a48232018ef..5076c777dc10a6c49bb5cecaec212f6479dcc623 100644 --- a/indra/newview/skins/default/xui/it/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/it/floater_windlight_options.xml @@ -4,15 +4,15 @@ Cieli predefiniti: </text> <button label="Nuovo" label_selected="Nuovo" name="WLNewPreset"/> - <button label="Salva" label_selected="Salva" name="WLSavePreset"/> - <button label="Elimina" label_selected="Elimina" name="WLDeletePreset"/> - <button label="Editor del ciclo giorno/notte" label_selected="Editor del ciclo giorno/notte" name="WLDayCycleMenuButton"/> + <button label="Salva" label_selected="Salva" name="WLSavePreset" left_delta="72"/> + <button label="Elimina" label_selected="Elimina" name="WLDeletePreset" left_delta="72"/> + <button font="SansSerifSmall" width="165" left_delta="85" label="Editor del ciclo giorno/notte" label_selected="Editor del ciclo giorno/notte" name="WLDayCycleMenuButton"/> <tab_container name="WindLight Tabs"> <panel label="Atmosfera" name="Atmosphere"> <text name="BHText"> Blu dell'Orizzonte </text> - <button label="?" name="WLBlueHorizonHelp"/> + <button label="?" name="WLBlueHorizonHelp" left="189"/> <text name="BHText2"> R </text> @@ -25,14 +25,14 @@ <text name="BHText5"> I </text> - <text name="BDensText"> + <text name="BDensText" font="SansSerifSmall"> Altezza della Foschia all'Orizzonte </text> - <button label="?" name="WLHazeHorizonHelp"/> + <button label="?" name="WLHazeHorizonHelp" left="189" /> <text name="BDensText2"> Densità del Blu </text> - <button label="?" name="WLBlueDensityHelp"/> + <button label="?" name="WLBlueDensityHelp" /> <text name="BHText6"> R </text> @@ -52,15 +52,15 @@ <text name="DensMultText"> Moltiplicatore di Densità </text> - <button label="?" name="WLDensityMultHelp"/> + <button label="?" name="WLDensityMultHelp" left="645"/> <text name="WLDistanceMultText"> Moltiplicatore della Distanza </text> - <button label="?" name="WLDistanceMultHelp"/> + <button label="?" name="WLDistanceMultHelp" left="645"/> <text name="MaxAltText"> Altitudine Massima </text> - <button label="?" name="WLMaxAltitudeHelp"/> + <button label="?" name="WLMaxAltitudeHelp" left="645"/> </panel> <panel label="Illuminazione" name="Lighting"> <text name="SLCText"> @@ -151,15 +151,15 @@ <text name="WLCloudCoverageText"> Copertura delle Nuvole </text> - <button label="?" name="WLCloudCoverageHelp"/> + <button label="?" name="WLCloudCoverageHelp" left="415"/> <text name="WLCloudScaleText"> Altitudine delle Nuvole </text> - <button label="?" name="WLCloudScaleHelp"/> + <button label="?" name="WLCloudScaleHelp" left="415"/> <text name="WLCloudDetailText"> Dettagli Nuvole (XY/ Densità ) </text> - <button label="?" name="WLCloudDetailHelp"/> + <button label="?" name="WLCloudDetailHelp" left="415"/> <text name="BHText8"> X </text> @@ -170,17 +170,17 @@ D </text> <text name="WLCloudScrollXText"> - Scorrimento delle nuvole X + Scorrimento delle X </text> <button label="?" name="WLCloudScrollXHelp"/> <check_box label="Blocca" name="WLCloudLockX"/> <text name="WLCloudScrollYText"> - Scorrimento delle nuvole Y + Scorrimento delle Y </text> <button label="?" name="WLCloudScrollYHelp"/> <check_box label="Blocca" name="WLCloudLockY"/> <check_box label="Mostra le Nuvole Classiche" name="DrawClassicClouds"/> - <button label="?" name="WLClassicCloudsHelp"/> + <button label="?" name="WLClassicCloudsHelp" left="645"/> </panel> </tab_container> <string name="WLDefaultSkyNames"> diff --git a/indra/newview/skins/default/xui/it/floater_world_map.xml b/indra/newview/skins/default/xui/it/floater_world_map.xml index 9b2fc5aff194925aab330865d3f143fec92f0042..e19335fe07f63c11c9338ea4c6dbfd6740303022 100644 --- a/indra/newview/skins/default/xui/it/floater_world_map.xml +++ b/indra/newview/skins/default/xui/it/floater_world_map.xml @@ -30,10 +30,10 @@ <check_box label="Adult" name="event_adult_chk"/> <icon bottom="-200" name="avatar_icon" /> <combo_box label="Amici Online" name="friend combo" tool_tip="Amici da mostrare sulla mappa"> - <combo_box.item name="none_selected" label="Amici Online"/> + <combo_box.item name="item1" label="Amici Online"/> </combo_box> <combo_box label="Landmark" name="landmark combo" tool_tip="Landmarks da mostrare sulla mappa"> - <combo_box.item name="none_selected" label="Landmark"/> + <combo_box.item name="item1" label="Landmark"/> </combo_box> <line_editor label="Cerca per nome di regione" name="location" tool_tip="Scrivi il nome di una regione"/> <button label="Cerca" name="DoSearch" tool_tip="Cerca regione"/> diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml index 36fa02978afeb0deed1e9e4ceefaf44bb9bfcdff..427247634b2890d4a0972ca36fd70b47baec00de 100644 --- a/indra/newview/skins/default/xui/it/notifications.xml +++ b/indra/newview/skins/default/xui/it/notifications.xml @@ -980,7 +980,7 @@ Offri l'amicizia a [NAME]? Offri l'amicizia a [NAME]? <form name="form"> - <input name="message" type="text"> + <input name="message"> Vorresti essere mio amico? </input> <button name="Offer" text="OK"/> @@ -1386,7 +1386,7 @@ Per abbandonare un gruppo seleziona l'opzione 'Gruppi..' dal menu <notification name="KickUser"> Espelli questo utente con quale messaggio? <form name="form"> - <input name="message" type="text"> + <input name="message"> Un amministratore ti ha disconnesso. </input> <button name="OK" text="OK"/> @@ -1396,7 +1396,7 @@ Per abbandonare un gruppo seleziona l'opzione 'Gruppi..' dal menu <notification name="KickAllUsers"> Espelli tutti quelli che sono sulla griglia con quale messaggio? <form name="form"> - <input name="message" type="text"> + <input name="message"> Un amministratore ti ha disconnesso. </input> <button name="OK" text="OK"/> @@ -1406,7 +1406,7 @@ Per abbandonare un gruppo seleziona l'opzione 'Gruppi..' dal menu <notification name="FreezeUser"> Immobilizza questo utente con quale messaggio? <form name="form"> - <input name="message" type="text"> + <input name="message"> Sei stato immobilizzato. Non puoi muoverti o usare la chat. Un amministratore ti contatterà con un messaggio (IM). </input> <button name="OK" text="OK"/> @@ -1416,7 +1416,7 @@ Per abbandonare un gruppo seleziona l'opzione 'Gruppi..' dal menu <notification name="UnFreezeUser"> Smobilizza questo utente con quale messaggio? <form name="form"> - <input name="message" type="text"> + <input name="message"> Non sei più immobilizzato. </input> <button name="OK" text="OK"/> @@ -1426,7 +1426,7 @@ Per abbandonare un gruppo seleziona l'opzione 'Gruppi..' dal menu <notification name="OfferTeleport"> Offri un teleport nel posto dove sei con il seguente messaggio? <form name="form"> - <input name="message" type="text"> + <input name="message"> Raggiungimi a [REGION] </input> <button name="OK" text="OK"/> @@ -1436,7 +1436,7 @@ Per abbandonare un gruppo seleziona l'opzione 'Gruppi..' dal menu <notification name="OfferTeleportFromGod"> Vuoi trasportare divinamente l'utente nel posto dove sei? <form name="form"> - <input name="message" type="text"> + <input name="message"> Raggiungimi in [REGION] </input> <button name="OK" text="OK"/> @@ -1450,7 +1450,7 @@ Per abbandonare un gruppo seleziona l'opzione 'Gruppi..' dal menu <notification label="Manda un messaggio a tutti nella tua proprietà " name="MessageEstate"> Scrivi un annuncio breve che verrà mandato a tutti quelli che sono in questo momento nella tua proprietà . <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Annulla"/> </form> @@ -1672,7 +1672,7 @@ Pubblica questo annuncio adesso per [AMOUNT]L$? <notification label="Manda un messaggio a tutti in questa regione" name="MessageRegion"> Scrivi un breve annuncio che verrà mandato a tutti in questa regione. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Annulla"/> </form> @@ -1968,14 +1968,14 @@ Il contenuto verrà copiato nel tuo inventario. Confermi di voler procedere all'acquisto? <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/> </notification> - <notification name="ConfirmPurchasePassword" type="password"> + <notification name="ConfirmPurchasePassword"> Questa transazione farà : [ACTION] Confermi di voler procedere all'acquisto? Ridigita la tua password e premi OK. <form name="form"> - <input name="message" type="password"/> + <input name="message"/> <button name="ConfirmPurchase" text="OK"/> <button name="Cancel" text="Annulla"/> </form> @@ -2345,7 +2345,7 @@ D (Densità ) controlla quanto gonfie o spezzettate appaiono le nuvole. <notification name="NewSkyPreset"> Fornisci il nome per il nuovo cielo. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nuova preimpostazione </input> <button name="OK" text="OK"/> @@ -2358,7 +2358,7 @@ D (Densità ) controlla quanto gonfie o spezzettate appaiono le nuvole. <notification name="NewWaterPreset"> Fornisci il nome per la nuova preregolazione del livello dell'acqua. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nuova preimpostazione </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/it/panel_friends.xml b/indra/newview/skins/default/xui/it/panel_friends.xml index 78e0d542f3d5fd3099339d3394157da368d08e38..e2eb3dd6e7664844aff12f9782d56a599f8b9abc 100644 --- a/indra/newview/skins/default/xui/it/panel_friends.xml +++ b/indra/newview/skins/default/xui/it/panel_friends.xml @@ -16,5 +16,5 @@ <button label="Teleport..." name="offer_teleport_btn" tool_tip="Offri a questo amico un teleport per dove sei tu ora"/> <button label="Paga..." name="pay_btn" tool_tip="Dai Linden dollar (L$) a questo amico"/> <button label="Rimuovi..." name="remove_btn" tool_tip="Rimuovi questa persona dalla tua lista amici"/> - <button label="Aggiungi come amico..." name="add_btn" tool_tip="Offri amicizia ad un residente"/> + <button label="Aggiungi..." name="add_btn" tool_tip="Offri amicizia ad un residente"/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_group_general.xml b/indra/newview/skins/default/xui/it/panel_group_general.xml index cc044a2e560a512665b77b93a63845d42ee1773c..08d6268f5be3ee4aee01e508e6fcdb95e0d029ef 100644 --- a/indra/newview/skins/default/xui/it/panel_group_general.xml +++ b/indra/newview/skins/default/xui/it/panel_group_general.xml @@ -37,9 +37,9 @@ Passa il mouse sulle opzioni per un aiuto aggiuntivo. (I proprietari sono scritti in neretto) </text> <name_list name="visible_members"> - <column label="Nome del membro" name="name"/> - <column label="Titolo" name="title"/> - <column label="Ultimo login" name="online"/> + <name_list.columns label="Nome del membro" name="name"/> + <name_list.columns label="Titolo" name="title"/> + <name_list.columns label="Ultimo login" name="online"/> </name_list> <text name="text_group_preferences"> Preferenze di gruppo @@ -48,17 +48,11 @@ Passa il mouse sulle opzioni per un aiuto aggiuntivo. <check_box label="Mostra nella ricerca" name="show_in_group_list" tool_tip="Lascia che i residenti vedano questo gruppo nella ricerca."/> <check_box label="Iscrizione libera" name="open_enrollement" tool_tip="Imposta se questo gruppo permette ai nuovi membri di unirsi senza essere invitati."/> <check_box label="Tassa di iscrizione: L$" name="check_enrollment_fee" tool_tip="Imposta se richiedere una tassa di iscrizione per unirsi al gruppo."/> - <spinner name="spin_enrollment_fee" tool_tip="I nuovi membri devono pagare questa tassa per unirsi al gruppo. La tassa di iscrizione è selezionata."/> + <spinner width="60" left_delta="136" name="spin_enrollment_fee" tool_tip="I nuovi membri devono pagare questa tassa per unirsi al gruppo. La tassa di iscrizione è selezionata."/> <combo_box name="group_mature_check" tool_tip="Imposta se le informazioni sul tuo gruppo sono da considerarsi Mature."> - <combo_item name="select_mature"> - - Seleziona - - </combo_item> - <combo_item name="mature"> - Contenuto Mature - </combo_item> - <combo_item name="pg"> - Contenuto PG - </combo_item> + <combo_box.item name="select_mature" label="- Seleziona -"/> + <combo_box.item name="mature" label="Contenuto Mature"/> + <combo_box.item name="pg" label="Contenuto PG"/> </combo_box> <panel name="title_container"> <text name="active_title_label"> diff --git a/indra/newview/skins/default/xui/it/panel_group_invite.xml b/indra/newview/skins/default/xui/it/panel_group_invite.xml index d75b3a46e8f01bdd6d5a3642fffd04f1b53c25ad..cc426f7cd24003c22f139ae50511ce63672c3873 100644 --- a/indra/newview/skins/default/xui/it/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/it/panel_group_invite.xml @@ -2,8 +2,8 @@ <panel label="Invita una persona" name="invite_panel"> <text name="help_text"> Puoi selezionare più di un residente -da invitare nel tuo gruppo. Clicca su 'Scelta -residenti' per iniziare. +da invitare nel tuo gruppo. Clicca su +'Scelta residenti' per iniziare. </text> <button label="Scelta residenti" name="add_button" tool_tip=""/> <name_list name="invitee_list" tool_tip="Tieni premuto il tasto ctrl e clicca i nomi dei residenti per avere una selezione multipla."/> diff --git a/indra/newview/skins/default/xui/it/panel_group_land_money.xml b/indra/newview/skins/default/xui/it/panel_group_land_money.xml index 907ce8ea5afc1cca06702fc54e6e6481c1a14c5d..5f54d8cd25b9b1adab38fe12aff3b5ecadc35175 100644 --- a/indra/newview/skins/default/xui/it/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/it/panel_group_land_money.xml @@ -13,7 +13,7 @@ <string name="loading_txt"> Attendi... </string> - <text name="group_land_heading"> + <text name="group_land_heading" width="250"> Terra posseduta dal gruppo </text> <scroll_list name="group_parcel_list"> @@ -22,24 +22,24 @@ <column label="Tipo" name="type"/> <column label="Area" name="area"/> </scroll_list> - <button label="Mostra sulla mappa" label_selected="Mostra sulla mappa" name="map_button"/> + <button label="Mostra sulla mappa" label_selected="Mostra sulla mappa" name="map_button" left="282" width="130"/> <text name="total_contributed_land_label"> Total Contribution: </text> <text name="total_contributed_land_value"> - [AREA] metri quadri + [AREA] m² </text> <text name="total_land_in_use_label"> Terra totale in uso: </text> <text name="total_land_in_use_value"> - [AREA] metri quadri + [AREA] m² </text> <text name="land_available_label"> Terra disponibile: </text> <text name="land_available_value"> - [AREA] metri quadri + [AREA] m² </text> <text name="your_contribution_label"> Il tuo contributo: @@ -48,10 +48,11 @@ Non è possibile impostare i tuoi contributi in terra. </string> <text name="your_contribution_max_value"> - metri quadri ([AMOUNT] massimo) + m² ([AMOUNT] massimo) </text> <text name="group_over_limit_text"> - I membri del gruppo devono contribuire con più crediti per mantenere la quantità  di terra in uso. + I membri del gruppo devono contribuire con più crediti per mantenere +la quantità  di terra in uso. </text> <text name="group_money_heading"> L$ del gruppo @@ -66,15 +67,15 @@ <text_editor name="group_money_details_text"> Calcolo... </text_editor> - <button label="< Precedente" label_selected="< Precedente" name="earlier_details_button" tool_tip="Vai ai dettagli precedenti"/> - <button label="Successivo >" label_selected="Successivo >" name="later_details_button" tool_tip="Vai ai dettagli successivi"/> + <button width="90" label="< Precedente" label_selected="< Precedente" name="earlier_details_button" tool_tip="Vai ai dettagli precedenti"/> + <button left_delta="260" width="90" label="Successivo >" label_selected="Successivo >" name="later_details_button" tool_tip="Vai ai dettagli successivi"/> </panel> <panel label="Vendite" name="group_money_sales_tab"> <text_editor name="group_money_sales_text"> Calcolo... </text_editor> - <button label="< Precedente" label_selected="< Precedente" name="earlier_sales_button" tool_tip="Vai ai dettagli precedenti"/> - <button label="Successivo >" label_selected="Successivo >" name="later_sales_button" tool_tip="Vai ai dettagli successivi"/> + <button width="90" label="< Precedente" label_selected="< Precedente" name="earlier_sales_button" tool_tip="Vai ai dettagli precedenti"/> + <button left_delta="260" width="90" label="Successivo >" label_selected="Successivo >" name="later_sales_button" tool_tip="Vai ai dettagli successivi"/> </panel> </tab_container> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_group_notices.xml b/indra/newview/skins/default/xui/it/panel_group_notices.xml index 7f1f37d67ecf30cc4aab43e19327491310491b3e..c6ef84e220d90c81e93eafb48e99896b5e8e852d 100644 --- a/indra/newview/skins/default/xui/it/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/it/panel_group_notices.xml @@ -1,12 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Notice" name="notices_tab"> <string name="help_text"> - Le notice sono un modo veloce per comunicare in un -gruppo diffondendo un messaggio e recapitando un -eventuale oggetto allegato. Le notice arrivano solo ai -membri del gruppo il cui ruolo è abilitato a riceverli. -Puoi disattivare la ricezione delle notice -nella finestra principale. + Le notice sono un modo veloce per comunicare in un gruppo diffondendo un messaggio e recapitando un eventuale oggetto allegato. Le notice arrivano solo ai membri del gruppo il cui ruolo è abilitato a riceverli. +Puoi disattivare la ricezione delle notice nella finestra principale. </string> <string name="no_notices_text"> Non ci sono vecchie notice. @@ -16,9 +12,7 @@ nella finestra principale. Archivio delle notice del gruppo </text> <text name="lbl2"> - Le notice sono conservate per 14 giorni. Clicca la notice qui sotto che desideri leggere. -Clicca il bottone 'Aggiorna' per controllare se sono arrivate nuove notice. -Il numero delle notice è limitato a 200 notice per gruppo al giorno. + Le notice sono conservate per 14 giorni. Il numero delle notice è limitato a 200 notice per gruppo al giorno. </text> <scroll_list name="notice_list"> <column label="Oggetto" name="subject"/> @@ -35,22 +29,22 @@ Il numero delle notice è limitato a 200 notice per gruppo al giorno. Crea una notice </text> <text name="lbl2"> - Devi scrivere l'oggetto della notice per poterla inviare. -Puoi aggiungere un solo allegato alla notice trascinandolo -dal tuo inventario in questa finestra. L'allegato deve essere copiabile e cedibile, -e non puoi allegare una cartella. + Puoi aggiungere un solo allegato alla notice trascinandolo dal tuo inventario in questa finestra. L'allegato deve essere copiabile e cedibile, e non puoi allegare una cartella. </text> - <text name="lbl3"> + <text name="lbl3" left="20"> Oggetto: </text> - <text name="lbl4"> + <line_editor name="create_subject" width="251" left_delta="61"/> + <text name="lbl4" left="15" width="60"> Messaggio: </text> - <text name="lbl5"> + <text_editor name="create_message" left_delta="66" width="330"/> + <text name="lbl5" width="68"> Allega: </text> + <line_editor name="create_inventory_name" width="190" left_delta="74"/> <button label="Rimuovi allegato" label_selected="Rimuovi allegato" name="remove_attachment"/> - <button label="Invia la notice" label_selected="Invia la notice" name="send_notice"/> + <button label="Invia" label_selected="Invia" name="send_notice"/> <panel name="drop_target" tool_tip="Trascina un oggetto dall'inventario sulla casella del messaggio per inviarlo con la notice. Devi avere il permesso di copia e trasferimento dell'oggetto per poterlo inviare con la notice."/> </panel> <panel label="Vedi le notice precedenti" name="panel_view_past_notice"> @@ -58,7 +52,7 @@ e non puoi allegare una cartella. Notice archiviate </text> <text name="lbl2"> - Per mandare una nuova notice, clicca il bottone 'Crea una nuova notice' qui sopra. + Per mandare una nuova notice, clicca 'Crea una nuova notice' qui sopra. </text> <text name="lbl3"> Oggetto: diff --git a/indra/newview/skins/default/xui/it/panel_group_roles.xml b/indra/newview/skins/default/xui/it/panel_group_roles.xml index 2629b91db5dd14aa93810c12755f94552ab766dd..8dfdd5a46ebdbcd32bef9bdf936c4b99026b8d78 100644 --- a/indra/newview/skins/default/xui/it/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/it/panel_group_roles.xml @@ -12,8 +12,9 @@ Membri & Ruoli </text> <text name="static2"> - I membri del Gruppo hanno ricevuto ruoli con delle abilità . Queste impostazioni possono -essere facilmente personalizzate, permettendo una maggiore organizzazione e flessibilità . + I membri del Gruppo hanno ricevuto ruoli con delle abilità . Queste +impostazioni possono essere facilmente personalizzate, permettendo +una maggiore organizzazione e flessibilità . </text> </panel> <panel name="roles_header"> @@ -21,12 +22,14 @@ essere facilmente personalizzate, permettendo una maggiore organizzazione e fles Ruoli </text> <text name="role_properties_modifiable"> - Seleziona un ruolo qui sotto. È possibile modificarne il nome, la descrizione e il titolo. + Seleziona un ruolo qui sotto. È possibile modificarne il nome, +la descrizione e il titolo. </text> <text name="role_properties_not_modifiable"> - Seleziona un ruolo qui sotto per vederne le proprietà , i membri e i permessi abilitati. + Seleziona un ruolo qui sotto per vederne le proprietà , i membri +e i permessi abilitati. </text> - <text name="role_actions_modifiable"> + <text bottom_delta="-28" name="role_actions_modifiable"> Puoi anche assegnare abilità al ruolo. </text> <text name="role_actions_not_modifiable"> @@ -42,16 +45,17 @@ essere facilmente personalizzate, permettendo una maggiore organizzazione e fles eseguire tali abilità . </text> </panel> - <tab_container name="roles_tab_container"> - <panel label="Membri" name="members_sub_tab" tool_tip="Membri"> - <button label="Cerca" name="search_button"/> - <button label="Mostra tutti" name="show_all_button"/> - <name_list name="member_list"> + <tab_container height="164" name="roles_tab_container"> + <panel height="148" label="Membri" name="members_sub_tab" tool_tip="Membri"> + <line_editor bottom="127" name="search_text"/> + <button label="Cerca" name="search_button" width="75"/> + <button label="Mostra tutti" name="show_all_button" left_delta="80"/> + <name_list name="member_list" bottom_delta="-105" height="104" > <column label="Nome del membro" name="name"/> <column label="Contributo donato" name="donated"/> <column label="Ultimo accesso" name="online"/> </name_list> - <button label="Invita un nuovo membro ..." name="member_invite"/> + <button label="Invita un nuovo membro..." name="member_invite" width="165"/> <button label="Espellere dal gruppo" name="member_eject"/> <string name="help_text"> Puoi aggiungere o rimuovere i ruoli assegnati ai membri. @@ -59,10 +63,11 @@ Seleziona più membri tenendo premuto il tasto Ctrl e cliccando sui loro nomi. </string> </panel> - <panel label="Ruoli" name="roles_sub_tab"> - <button label="Cerca" name="search_button"/> - <button label="Mostra tutti" name="show_all_button"/> - <scroll_list name="role_list"> + <panel height="148" label="Ruoli" name="roles_sub_tab"> + <line_editor bottom="127" name="search_text"/> + <button label="Cerca" name="search_button" width="75"/> + <button label="Mostra tutti" name="show_all_button" left_delta="80"/> + <scroll_list name="role_list" bottom_delta="-104" height="104"> <column label="Nome del ruolo" name="name"/> <column label="Titolo" name="title"/> <column label="Membri" name="members"/> @@ -79,10 +84,11 @@ compresi il ruolo base o 'Membro' e il ruolo del Capogruppo. I ruoli 'Membro' e 'Capogruppo' sono ruoli speciali e non possono essere eliminati. </string> </panel> - <panel label="Abilità " name="actions_sub_tab"> - <button label="Cerca" name="search_button"/> - <button label="Visualizza tutto" name="show_all_button"/> - <scroll_list name="action_list" tool_tip="Seleziona una abilità per vederne maggiori dettagli."/> + <panel height="148" label="Abilità " name="actions_sub_tab"> + <line_editor bottom="127" name="search_text"/> + <button label="Cerca" name="search_button" width="75"/> + <button label="Visualizza tutto" name="show_all_button" left_delta="80"/> + <scroll_list bottom_delta="-120" height="118" name="action_list" tool_tip="Seleziona una abilità per vederne maggiori dettagli."/> <string name="help_text"> Le abilità permettono ai membri nei ruoli di fare cose specifiche in questo gruppo. C'è una vasta gamma di abilità . diff --git a/indra/newview/skins/default/xui/it/panel_groups.xml b/indra/newview/skins/default/xui/it/panel_groups.xml index 75bccb71a33e5a4836ba852657945daaa48d383a..43fd36710ebac7d3a3f34211b128446e320af155 100644 --- a/indra/newview/skins/default/xui/it/panel_groups.xml +++ b/indra/newview/skins/default/xui/it/panel_groups.xml @@ -1,10 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="groups"> - <text name="groupdesc"> - Il tuo gruppo attualmente attivo è visualizzato in grassetto. + <scroll_list bottom="50" name="group list"/> + <text bottom="16" height="32" name="groupdesc" width="268"> + Il tuo gruppo attualmente attivo è visualizzato +in grassetto. </text> - <text name="groupcount"> - Appartieni a [COUNT] gruppi (su un massimo di [MAX]). + <text bottom="3" name="groupcount" width="268"> + Appartieni a [COUNT] gruppo/i (su un massimo di [MAX]). </text> <button label="IM/Chiama" name="IM" tool_tip="Apri una sessione di IM/Instant Messages"/> <button label="Informazioni" name="Info"/> diff --git a/indra/newview/skins/default/xui/it/panel_login.xml b/indra/newview/skins/default/xui/it/panel_login.xml index acd047d75dff14301fbbe59e95dce68452d36e3b..178208903933923832c3e93e3e79a7999deb682a 100644 --- a/indra/newview/skins/default/xui/it/panel_login.xml +++ b/indra/newview/skins/default/xui/it/panel_login.xml @@ -21,15 +21,9 @@ Punto di partenza: </text> <combo_box name="start_location_combo" left_delta="105" width="160"> - <combo_item name="MyHome"> - Casa Mia - </combo_item> - <combo_item name="MyLastLocation"> - Ultimo luogo visitato - </combo_item> - <combo_item name="Typeregionname"> - <Scrivi la regione> - </combo_item> + <combo_box.item name="MyHome" label="Casa Mia" /> + <combo_box.item name="MyLastLocation" label="Ultimo luogo visitato" /> + <combo_box.item name="Typeregionname" label="<Scrivi la regione>" /> </combo_box> <check_box label="Ricorda password" name="remember_check" left_delta="168"/> <button label="Log In" label_selected="Log In" name="connect_btn"/> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml new file mode 100644 index 0000000000000000000000000000000000000000..cf1e22997a4c23be8dbe6c2d05d7fc312970ab46 --- /dev/null +++ b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel name="advanced"> + <text name="AspectRatioLabel1" tool_tip="larghezza/altezza"> + Rapporto di visualizzazione: + </text> + <combo_box name="aspect_ratio" tool_tip="larghezza/altezza"> + <combo_box.item label="4:3 (Monitor Standard)" name="item1"/> + <combo_box.item label="5:4 (1280x1024 LCD)" name="item2"/> + <combo_box.item label="8:5 (Widescreen)" name="item3"/> + <combo_box.item label="16:9 (Widescreen)" name="item4"/> + </combo_box> +</panel> 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 8afcd74bf7c6f312e077a4d52a543e5eee8a1081..7125832c7b61e7f4d7c20cfc3365cebc4715f11f 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml @@ -9,44 +9,50 @@ chat: <radio_item name="radio2" label="Medio" /> <radio_item name="radio3" label="Grande" /> </radio_group> + <color_swatch label="Tuo" name="user"/> + <text name="text_box1"> + Tuo + </text> + <color_swatch label="Altri" name="agent"/> <text name="text_box2"> - Colore carattere chat: + Altri + </text> + <color_swatch label="IM" name="im"/> + <text name="text_box3"> + IM </text> - <color_swatch label="Tuo" name="user"/> - <color_swatch label="Altri" name="agent" width="60" left_delta="48"/> - <color_swatch label="IM" name="im" left_delta="64" /> <color_swatch label="Sistema" name="system"/> - <color_swatch label="Errori" name="script_error"/> + <text name="text_box4"> + Sistema + </text> + <color_swatch label="Errori script" name="script_error"/> + <text name="text_box5"> + Errori script + </text> <color_swatch label="Oggetti" name="objects"/> - <color_swatch label="Proprietario" name="owner" width="60" left_delta="48"/> - <color_swatch label="Vignetta" name="background" left_delta="64" /> - <color_swatch label="URLs" name="links"/> - <text name="text_box8"> - Errori script: + <text name="text_box6"> + Oggetti </text> - <check_box label="Mostra errori script ed avvertimenti nella chat principale" name="script_errors_as_chat"/> - <text name="text_box3"> - Console della chat: + <color_swatch label="Proprietario" name="owner"/> + <text name="text_box7"> + Proprietario </text> - <spinner label="Dissolvi la chat dopo" name="fade_chat_time" label_width="112" width="162"/> - <text name="text_box4" left="313" > - (s) + <color_swatch label="Vignetta" name="background"/> + <text name="text_box8"> + Vignetta </text> - <text name="text_box5"> - (# linee) + <color_swatch label="URLs" name="links"/> + <text name="text_box9"> + URLs </text> + <check_box label="Mostra errori script ed avvertimenti nella chat principale" name="script_errors_as_chat"/> + <spinner label="Dissolvi la chat dopo" name="fade_chat_time" label_width="112" width="162"/> <slider label="Opacità " name="console_opacity"/> <check_box label="Utilzza la larghezza intera dello schermo (Richiede riavvio)" name="chat_full_width_check"/> - <text name="text_box6"> - Opzioni chat: - </text> <check_box label="Chiudi la barra chat dopo aver premuto invio" name="close_chat_on_return_check"/> <check_box label="Le frecce muovono comunque l'avatar quando si sta scrivendo" name="arrow_keys_move_avatar_check"/> <check_box label="Mostra orario nella chat principale" name="show_timestamps_check"/> <check_box label="Simula la battitura tasti quando scrivi" name="play_typing_animation"/> - <text name="text_box7"> - Chat con vignette: - </text> <check_box label="Mostra vignette chat" name="bubble_text_chat"/> <slider label="Opacità " name="bubble_chat_opacity"/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml index 620cd33c0a4f9f5f78c30526a6482fe91403501a..4c6a7d8eb374190b90f356045390ec4aa21f7b62 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml @@ -1,15 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Generale" name="general_panel"> - <radio_group name="default_start_location"> - <radio_item name="MyHome" tool_tip="Vai a casa di default quando fai login"> - Casa mia - </radio_item> - <radio_item name="MyLastLocation" tool_tip="Vai nell'ultimo posto visitato di default quando fai login."> - Ultimo posto visitato - </radio_item> - </radio_group> + <combo_box name="start_location_combo"> + <combo_box.item name="MyHome" tool_tip="Vai a casa di default quando fai login" label="Casa mia"/> + <combo_box.item name="MyLastLocation" tool_tip="Vai nell'ultimo posto visitato di default quando fai login." label="Ultimo posto visitato"/> + </combo_box> <check_box label="Mostra il punto di partenza nella schermata d'inizio" name="show_location_checkbox"/> - <combo_box name="fade_out_combobox" width="166"> + <combo_box name="fade_out_combobox"> <combo_box.item name="Never" label="Mai"/> <combo_box.item name="Show Temporarily" label="Mostra temporanemente"/> <combo_box.item name="Always" label="Sempre"/> @@ -28,25 +24,18 @@ <check_box label="Usa ridimensionamento indipendente dalla risoluzione" name="ui_auto_scale"/> <spinner label="Assente dopo:" name="afk_timeout_spinner"/> <check_box label="Avvisami quando spendo o ricevo Linden Dollars (L$)" name="notify_money_change_checkbox"/> - <text name="maturity_desired_label" bottom="-312"> + <text name="maturity_desired_label"> Categoria di accesso: </text> - <text name="maturity_desired_prompt" bottom="-312"> - Voglio accedere al -contenuto di tipo: + <text name="maturity_desired_prompt"> + Voglio accedere al contenuto di tipo: </text> - <combo_box name="maturity_desired_combobox" bottom="-330" left="274"> - <combo_item name="Desired_Adult"> - PG, Mature e Adult - </combo_item> - <combo_item name="Desired_Mature"> - PG e Mature - </combo_item> - <combo_item name="Desired_PG"> - solo PG - </combo_item> + <combo_box name="maturity_desired_combobox"> + <combo_box.item name="Desired_Adult" label="PG, Mature e Adult"/> + <combo_box.item name="Desired_Mature" label="PG e Mature"/> + <combo_box.item name="Desired_PG" label="solo PG"/> </combo_box> - <text name="maturity_desired_textbox" bottom="-324" left="274"> + <text name="maturity_desired_textbox"> solo PG </text> <text name="start_location_textbox"> @@ -67,45 +56,35 @@ contenuto di tipo: <text name="language_textbox"> Lingua: </text> - <text left_delta="313" name="language_textbox2"> + <text name="language_textbox2"> (Richiede il riavvio) </text> <string name="region_name_prompt"> <Scrivi il nome della regione> </string> - <combo_box name="crash_behavior_combobox" width="166"> + <combo_box name="crash_behavior_combobox"> <combo_box.item name="Askbeforesending" label="Chiedi prima di inviare"/> <combo_box.item name="Alwayssend" label="Invia sempre"/> <combo_box.item name="Neversend" label="Non inviare mai"/> </combo_box> - <combo_box name="language_combobox" width="166"> + <combo_box name="language_combobox"> <combo_box.item name="System Default Language" label="Default di sistema"/> <combo_box.item name="English" label="English"/> <combo_box.item name="Danish" label="Dansk (Danese) - Beta"/> <combo_box.item name="Deutsch(German)" label="Deutsch (Tedesco) - Beta"/> <combo_box.item name="Spanish" label="Español (Spagnolo) - Beta"/> <combo_box.item name="French" label="Français (Francese) - Beta"/> + <combo_box.item name="Italian" label="Italiano - Beta"/> <combo_box.item name="Hungarian" label="Magyar (Ungherese) - Beta"/> + <combo_box.item name="Dutch" label="Nederlands (Olandese) - Beta"/> <combo_box.item name="Polish" label="Polski (Polacco) - Beta"/> <combo_box.item name="Portugese" label="Portugués (Portoghese) - Beta"/> + <combo_box.item name="Russian" label="РуÑÑкий (Russo) - Beta"/> + <combo_box.item name="Turkish" label="Türkçe (Turco) - Beta"/> + <combo_box.item name="Ukrainian" label="УкраїнÑька (Ukraino) - Beta"/> <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (Cinese) - Beta"/> <combo_box.item name="(Japanese)" label="日本語 (Giapponese) - Beta"/> <combo_box.item name="(Korean)" label="í•œêµì–´ (Coreano) - Beta"/> - <combo_item name="Italian"> - Italiano - Beta - </combo_item> - <combo_item name="Dutch"> - Nederlands (Olandese) - Beta - </combo_item> - <combo_item name="Russian"> - РуÑÑкий (Russo) - Beta - </combo_item> - <combo_item name="Turkish"> - Türkçe (Turco) - Beta - </combo_item> - <combo_item name="Ukrainian"> - УкраїнÑька (Ukraino) - Beta - </combo_item> </combo_box> <check_box label="Condividi la tua lingua con gli oggetti" name="language_is_public" tool_tip="Questo fa in modo che gli oggetti inworld riconoscano la tua lingua."/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml index f9aaa58f09b04a4fdcb6aafadececefcc526986d..6e1640334f89857d57c7868557bdafd7836bdc8a 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml @@ -56,6 +56,7 @@ Qualità </text> <check_box label="Personalizzate" name="CustomSettings"/> + <panel name="CustomGraphics Panel"> <text name="ShadersText"> Effetti grafici: </text> @@ -131,12 +132,13 @@ <radio_item name="0" label="Bassi" /> <radio_item name="2" label="Alti" /> </radio_group> + </panel> <button label="Configurazione raccomandata" name="Defaults" left="110" width="190" /> <button label="Opzioni hardware" label_selected="Opzioni hardware" name="GraphicsHardwareButton"/> - <string name="resolution_format"> + <panel.string name="resolution_format"> [RES_X] x [RES_Y] - </string> - <string name="aspect_ratio_text"> + </panel.string> + <panel.string name="aspect_ratio_text"> [NUM]:[DEN] - </string> + </panel.string> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_region_covenant.xml b/indra/newview/skins/default/xui/it/panel_region_covenant.xml index 802156ea0bc62d872da51fb6b773bed084ec392f..9dfecde317cc128c4a898b6a4b4a9dfc228f38f4 100644 --- a/indra/newview/skins/default/xui/it/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/it/panel_region_covenant.xml @@ -22,15 +22,17 @@ Ultima modifica Merc 31 Dic 1969 16:00:00 </text> <button label="?" name="covenant_help"/> - <text_editor name="covenant_editor"> + <text_editor name="covenant_editor" bottom="-247" height="162" > Per questa proprietà non è stato emesso alcun regolamento. </text_editor> <button label="Ripristina" name="reset_covenant"/> - <text name="covenant_help_text"> - Le modifiche nel regolamento saranno visibili su tutti i terreni della proprietà . + <text bottom="-25" name="covenant_help_text"> + Le modifiche nel regolamento saranno visibili su tutti i terreni + della proprietà . </text> - <text name="covenant_instructions"> - Trascina e rilascia una notecard per cambiare il regolamento di questa proprietà . + <text bottom_delta="-36" name="covenant_instructions"> + Trascina e rilascia una notecard per cambiare il regolamento di + questa proprietà . </text> <text name="region_section_lbl"> Regione: @@ -38,31 +40,31 @@ <text name="region_name_lbl"> Nome: </text> - <text name="region_name_text"> + <text name="region_name_text" left="126"> leyla </text> <text name="region_landtype_lbl"> Tipo: </text> - <text name="region_landtype_text"> + <text name="region_landtype_text" left="126"> Mainland / Homestead </text> - <text name="region_maturity_lbl"> + <text name="region_maturity_lbl" width="115"> Categoria di accesso: </text> - <text name="region_maturity_text"> + <text name="region_maturity_text" left="126"> Adult </text> <text name="resellable_lbl"> Rivendita: </text> - <text name="resellable_clause"> + <text name="resellable_clause" left="126"> La terra in questa regione non può essere rivenduta. </text> <text name="changeable_lbl"> Suddividi: </text> - <text name="changeable_clause"> + <text name="changeable_clause" left="126"> La terra in questa regione non può essere unita/suddivisa. </text> <string name="can_resell"> @@ -72,9 +74,11 @@ Un terreno acquistato in questa regione non può essere rivenduto. </string> <string name="can_change"> - Un terreno acquistato in questa regione può essere unito o suddiviso. + Un terreno acquistato in questa regione può essere unito o +suddiviso. </string> <string name="can_not_change"> - Un terreno acquistato in questa regione non può essere unito o suddiviso. + Un terreno acquistato in questa regione non può essere unito o +suddiviso. </string> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_region_debug.xml b/indra/newview/skins/default/xui/it/panel_region_debug.xml index fddc14e85cc921723d4654af285d08fb6f1e1f92..85fb968ab4602522c3de551343ae68d60bbb75cc 100644 --- a/indra/newview/skins/default/xui/it/panel_region_debug.xml +++ b/indra/newview/skins/default/xui/it/panel_region_debug.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Debug - individuazione errori" name="Debug"> +<panel label="Debug" name="Debug"> <text name="region_text_lbl"> Regione: </text> @@ -13,7 +13,7 @@ <check_box label="Disabilita la fisica" name="disable_physics_check" tool_tip="Disabilita tutta la fisica dei corpi in questa regione"/> <button label="?" name="disable_physics_help"/> <button label="Applica" name="apply_btn"/> - <text name="objret_text_lbl"> + <text name="objret_text_lbl" width="130"> Restituisci oggetti </text> <text name="resident_text_lbl"> @@ -30,10 +30,10 @@ <check_box label="Restituisci solo gli oggetti che sono sulle terre altrui" name="return_other_land" tool_tip="Restituisci solo gli oggetti che sono in terreni appartenenti a qualcun altro"/> <check_box label="Restituisci gli oggetti in ogni regione di questi possedimenti" name="return_estate_wide" tool_tip="Restituisci tutti gli oggetti nelle varie regioni che costituiscono l'insieme dei possedimenti terrieri"/> <button label="Restituisci" name="return_btn"/> - <button label="Visualizza l'elenco dei maggiori collidenti..." name="top_colliders_btn" tool_tip="Elenco degli oggetti che stanno potenzialmente subendo le maggiori collisioni"/> - <button label="?" name="top_colliders_help"/> - <button label="Visualizza l'elenco degli script più pesanti..." name="top_scripts_btn" tool_tip="Elenco degli oggetti che impiegano più tempo a far girare gli script"/> - <button label="?" name="top_scripts_help"/> + <button width="280" label="Visualizza l'elenco dei maggiori collidenti..." name="top_colliders_btn" tool_tip="Elenco degli oggetti che stanno potenzialmente subendo le maggiori collisioni"/> + <button label="?" name="top_colliders_help" left="297"/> + <button width="280" label="Visualizza l'elenco degli script più pesanti..." name="top_scripts_btn" tool_tip="Elenco degli oggetti che impiegano più tempo a far girare gli script"/> + <button label="?" name="top_scripts_help" left="297"/> <button label="Riavvia la regione" name="restart_btn" tool_tip="Dai 2 minuti di tempo massimo e fai riavviare la regione"/> <button label="?" name="restart_help"/> <button label="Ritarda il riavvio" name="cancel_restart_btn" tool_tip="Ritarda il riavvio della regione di un'ora"/> 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 a27e3a716c43e0fd318ddc2513d0b82c15bc0789..345e8c532cc9012e27c4a02e17d1d769770557bb 100644 --- a/indra/newview/skins/default/xui/it/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/it/panel_region_estate.xml @@ -1,10 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Proprietà immobiliari" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="Proprietà immobiliari" name="Estate"> <text name="estate_help_text"> - I cambiamenti alle impostazioni in questa finestra avranno effetto su tutte -le regioni della proprietà . + I cambiamenti alle impostazioni in questa finestra +avranno effetto su tutte le regioni della proprietà . </text> - <text name="estate_text"> + <text name="estate_text" width="140"> Proprietà immobiliari: </text> <text name="estate_name"> @@ -24,15 +26,15 @@ le regioni della proprietà . <check_box label="Permetti accesso pubblico" name="externally_visible_check"/> <button label="?" name="externally_visible_help"/> <text name="Only Allow"> - Limita l'accesso a: + Limita l'accesso a residenti... </text> - <check_box label="residenti che hanno dato informazioni di pagamento" name="limit_payment" tool_tip="Blocca residenti non identificati."/> + <check_box label="che hanno dato info. di pagamento" name="limit_payment" tool_tip="Blocca residenti non identificati."/> <check_box label="Adulti con età verificata" name="limit_age_verified" tool_tip="Blocca residenti che non hanno verificato la loro età . Per maggiori informazioni vai a support.secondlife.com."/> <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"> + <text name="abuse_email_text" width="230"> Indirizzo email per la denuncia di abuso: </text> <string name="email_unsupported"> @@ -40,8 +42,8 @@ le regioni della proprietà . </string> <button label="?" name="abuse_email_address_help"/> <button label="Applica" name="apply_btn"/> - <button label="Espelli persona dalle proprietà ..." name="kick_user_from_estate_btn"/> - <button label="Manda un messaggio ai residenti di tutte le tue proprietà ..." name="message_estate_btn"/> + <button font="SansSerifSmall" label="Espelli persona dalle 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> @@ -66,4 +68,6 @@ le regioni della proprietà . <button label="?" name="ban_resident_help"/> <button label="Rimuovi..." name="remove_banned_avatar_btn"/> <button label="Aggiungi..." name="add_banned_avatar_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_region_general.xml b/indra/newview/skins/default/xui/it/panel_region_general.xml index fffe51770e3d56fac6f6e33ba79e7bf354cf5877..8c31172ab50526eb5469d7069e5310a6d434015e 100644 --- a/indra/newview/skins/default/xui/it/panel_region_general.xml +++ b/indra/newview/skins/default/xui/it/panel_region_general.xml @@ -3,19 +3,19 @@ <text name="region_text_lbl"> Regione: </text> - <text name="region_text"> + <text name="region_text" left="70"> sconosciuta </text> <text name="version_channel_text_lbl"> Versione: </text> - <text name="version_channel_text"> + <text name="version_channel_text" left="70"> sconosciuta </text> <text name="region_type_lbl"> Tipo: </text> - <text name="region_type"> + <text name="region_type" left="70"> sconosciuto </text> <check_box label="Proibisci la modifica del terreno" name="block_terraform_check"/> @@ -27,33 +27,27 @@ <check_box label="Limita gli urti" name="restrict_pushobject"/> <button label="?" name="restrict_pushobject_help"/> <check_box label="Abilita la rivendita del terreno" name="allow_land_resell_check"/> - <button label="?" name="land_resell_help"/> + <button label="?" name="land_resell_help" left="260"/> <check_box label="Abilita unione/suddivisione del terreno" name="allow_parcel_changes_check"/> - <button label="?" name="parcel_changes_help"/> + <button label="?" name="parcel_changes_help" left="260" /> <check_box label="Proibisci che il terreno appaia nelle ricerche" name="block_parcel_search_check" tool_tip="Permetti che le persone vedano questa regione e le sue suddivisioni nei risultati delle ricerche"/> - <button label="?" name="parcel_search_help"/> - <spinner label="Limite massimo di avatar" name="agent_limit_spin"/> + <button label="?" name="parcel_search_help" left="260"/> + <spinner label="Limite massimo di avatar" name="agent_limit_spin" label_width="135" width="190"/> <button label="?" name="agent_limit_help"/> - <spinner label="Bonus di oggetti" name="object_bonus_spin"/> + <spinner label="Bonus di oggetti" name="object_bonus_spin" label_width="135" width="190"/> <button label="?" name="object_bonus_help"/> - <text label="Maturità " name="access_text"> + <text label="Maturità " name="access_text" width="120"> Categoria di accesso: </text> - <combo_box label="Mature" name="access_combo"> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Mature"> - Mature - </combo_item> - <combo_item name="PG"> - PG - </combo_item> + <combo_box label="Mature" name="access_combo" left="126" width="74"> + <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="Mature" name="Mature"/> + <combo_box.item label="PG" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="Applica" name="apply_btn"/> <button label="Teletrasporta a casa un utente..." name="kick_btn"/> <button label="Teletrasporta a casa tutti gli utenti..." name="kick_all_btn"/> <button label="Invia messaggio alla regione..." name="im_btn"/> - <button label="Gestisci snodo di teleport..." name="manage_telehub_btn"/> + <button label="Gestisci snodo di teleport..." name="manage_telehub_btn" width="210"/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_region_terrain.xml b/indra/newview/skins/default/xui/it/panel_region_terrain.xml index 70072275eb2ec8ca09d91125ecf5be8c64043b4b..92044bae115e0154b3a56a43a6aa0d0e1e509ae8 100644 --- a/indra/newview/skins/default/xui/it/panel_region_terrain.xml +++ b/indra/newview/skins/default/xui/it/panel_region_terrain.xml @@ -8,9 +8,9 @@ </text> <spinner label="Altezza dell'acqua" name="water_height_spin"/> <button label="?" name="water_height_help"/> - <spinner label="Limite di altezza del terreno" name="terrain_raise_spin"/> + <spinner label="Limite di altezza del terreno" name="terrain_raise_spin"/> <button label="?" name="terrain_raise_help"/> - <spinner label="Limite di abbassamento del terreno" name="terrain_lower_spin"/> + <spinner label="Limite di abbassamento del terreno" name="terrain_lower_spin" bottom_delta="-34"/> <button label="?" name="terrain_lower_help"/> <check_box label="Usa il sole della regione" name="use_estate_sun_check"/> <button label="?" name="use_estate_sun_help"/> @@ -22,6 +22,6 @@ <button label="?" name="download_raw_help"/> <button label="Carica terreno RAW..." name="upload_raw_btn" tool_tip="Disponibile solo per i proprietari del terreno, non per i manager"/> <button label="?" name="upload_raw_help"/> - <button label="Trasforma il terreno" name="bake_terrain_btn" tool_tip="Imposta il terreno corrente come punto medio per i limiti di innalzamento/abbassamento"/> - <button label="?" name="bake_terrain_help"/> + <button width="170" label="Trasforma il terreno" name="bake_terrain_btn" tool_tip="Imposta il terreno corrente come punto medio per i limiti di innalzamento/abbassamento"/> + <button left="190" label="?" name="bake_terrain_help"/> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_region_texture.xml b/indra/newview/skins/default/xui/it/panel_region_texture.xml index 4e39db9b1d62a26c5f59a6797dd3e0ce7c1a89c8..976a93abb823f7041b1da66ca10a72992f17f0bc 100644 --- a/indra/newview/skins/default/xui/it/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/it/panel_region_texture.xml @@ -1,12 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Texture del terreno" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="Texture del terreno" name="Textures"> <text name="region_text_lbl"> Regione: </text> <text name="region_text"> sconosciuto </text> - <text name="detail_texture_text"> + <text name="detail_texture_text" width="380"> Texture del terreno (è necessario siano 512x512, 24 bit .tga files) </text> <text name="height_text_lbl"> @@ -48,10 +50,12 @@ Questi valori rappresentano l'intervallo di miscelazione delle texture qui sopra. </text> <text name="height_text_lbl11"> - Misurato in metri, il valore più BASSO corrisponde all'altezza MASSIMA della Texture #1, + Misurato in metri, il valore più BASSO corrisponde all'altezza MASSIMA della </text> <text name="height_text_lbl12"> - e il valore più ALTO all'altezza MINIMA della Texture #4. +   Texture #1, e il valore più ALTO all'altezza MINIMA della Texture #4. </text> <button label="Applica" name="apply_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/it/panel_world_map.xml b/indra/newview/skins/default/xui/it/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d4f94273bfde98491b74c09c5667a117538975e --- /dev/null +++ b/indra/newview/skins/default/xui/it/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + N + </panel.string> + <panel.string name="world_map_east"> + E + </panel.string> + <panel.string name="world_map_west"> + O + </panel.string> + <panel.string name="world_map_south"> + S + </panel.string> + <panel.string name="world_map_southeast"> + SE + </panel.string> + <panel.string name="world_map_northeast"> + NE + </panel.string> + <panel.string name="world_map_southwest"> + SO + </panel.string> + <panel.string name="world_map_northwest"> + NO + </panel.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="E" name="floater_map_east" text="E"> + E + </text> + <text label="O" name="floater_map_west" text="O"> + O + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SO" name="floater_map_southwest" text="SO"> + SO + </text> + <text label="NO" name="floater_map_northwest" text="NO"> + NO + </text> +</panel> diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml index 37c003a07b184417e4e3e4c6513e7526d7e19c7c..38283df46950cc66b9745ec00c9242e61eb69805 100644 --- a/indra/newview/skins/default/xui/it/strings.xml +++ b/indra/newview/skins/default/xui/it/strings.xml @@ -483,4 +483,34 @@ <string name="choose_the_directory"> Scegli la cartella </string> + <string name="accel-mac-control"> + Ctrl- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Opt- + </string> + <string name="accel-mac-shift"> + Shift- + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Shift+ + </string> + <string name="GraphicsQualityLow"> + Basso + </string> + <string name="GraphicsQualityMid"> + Medio + </string> + <string name="GraphicsQualityHigh"> + Alto + </string> </strings> diff --git a/indra/newview/skins/default/xui/it/teleport_strings.xml b/indra/newview/skins/default/xui/it/teleport_strings.xml index 4ef802dc5bf280c8eb5b05f4c39884faf8be279c..57e81bc41e8ea16a17b65beccd7e81201afb7ac8 100644 --- a/indra/newview/skins/default/xui/it/teleport_strings.xml +++ b/indra/newview/skins/default/xui/it/teleport_strings.xml @@ -25,7 +25,7 @@ www.secondlife.com/support Gli oggetti da te indossati non sono ancoa arrivati. Attendi ancora qualche secondo o scollegati e ricollegati prima di provare a teleportarti. </message> <message name="too_many_uploads_tport"> - La gestione dati della regione è al momento occupata e la tua richiesta di teletrasporto non può essere soddisfatta entro breve tempo. Per favore prova di nuovo tra qualche minuto o spostati in un'area meno affollata. + Il server della regione è al momento occupato e la tua richiesta di teletrasporto non può essere soddisfatta entro breve tempo. Per favore prova di nuovo tra qualche minuto o spostati in un'area meno affollata. </message> <message name="expired_tport"> Spiacenti, il sistema non riesce a soddisfare la tua richiesta di teletrasporto entro un tempo ragionevole. Riprova tra qualche minuto. @@ -42,34 +42,34 @@ www.secondlife.com/support </message_set> <message_set name="progress"> <message name="sending_dest"> - In invio verso la destinazione. + In invio a destinazione. </message> <message name="redirecting"> In reindirizzamento ad una nuova destinazione. </message> <message name="relaying"> - In ritrasmissione alla destinazione. + In reinvio a destinazione. </message> <message name="sending_home"> - In invio la richiesta di ubicazione casa. + In invio verso la destinazione casa. </message> <message name="sending_landmark"> - In invio la richiesta della destinazione del landmark. + In invio verso la destinazione del landmark. </message> <message name="completing"> Teletrasporto completato </message> <message name="resolving"> - Destinazione in elaborazione. + Elaborazione della destinazione in corso... </message> <message name="contacting"> - Si sta contattando la nuova regione. + Contattando la nuova regione. </message> <message name="arriving"> - In arrivo... + In arrivo a destinazione... </message> <message name="requesting"> - Teletrasporto in avvio... + Avvio teletrasporto.... </message> </message_set> </teleport_messages> 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 26c8a462702b229f80b79fb39cdb77d1f4b38388..fb7136d7ced1a1559969829776d1a706cbe1a00d 100644 --- a/indra/newview/skins/default/xui/ja/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml @@ -2,11 +2,11 @@ <floater name="floaterland" title="åœŸåœ°æƒ…å ±"> <tab_container name="landtab"> <panel label="一般" name="land_general_panel"> - <text length="1" name="Name:" type="string"> + <text name="Name:"> åå‰ï¼š </text> <line_editor name="Name"/> - <text length="1" name="Description:" type="string"> + <text name="Description:"> 説明: </text> <text name="LandType"> @@ -21,56 +21,56 @@ <text name="ContentRatingText"> Adult </text> - <text length="1" name="Owner:" type="string"> + <text name="Owner:"> オーナー: </text> - <text length="1" name="OwnerText" type="string"> + <text name="OwnerText"> Leyla Linden </text> <button label="プãƒãƒ•ã‚£ãƒ¼ãƒ«..." label_selected="プãƒãƒ•ã‚£ãƒ¼ãƒ«..." name="Profile..."/> - <text length="1" name="Group:" type="string"> + <text name="Group:"> グループ: </text> <button label="è¨å®š..." label_selected="è¨å®š..." name="Set..."/> <check_box label="グループã¸ã®è²æ¸¡ã‚’許å¯" name="check deed" tool_tip="グループ・オフィサーã¯ã€ã“ã®åœŸåœ°ã‚’グループã«è²æ¸¡ã—ã€ã‚°ãƒ«ãƒ¼ãƒ—ã®åœŸåœ°é…分ã«å§”ãã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"/> <button label="è²æ¸¡..." label_selected="è²æ¸¡..." name="Deed..." tool_tip="é¸æŠžã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚ªãƒ•ã‚£ã‚µãƒ¼ã§ã‚ã‚‹ã¨ãã®ã¿ã€åœŸåœ°ã‚’è²æ¸¡ã§ãã¾ã™ã€‚"/> <check_box label="オーナーãŒè²æ¸¡ã¨å…±ã«å¯„付" name="check contrib" tool_tip="土地ãŒã‚°ãƒ«ãƒ¼ãƒ—ã«è²æ¸¡ã•ã‚Œã‚‹ã¨ãã€å‰ã®æ‰€æœ‰è€…ã¯è²æ¸¡ãŒæˆç«‹ã™ã‚‹ã‚ˆã†ã€å分ãªåœŸåœ°ã‚’寄付ã—ã¾ã™ã€‚"/> - <text length="1" name="For Sale:" type="string"> + <text name="For Sale:"> 販売ã®æœ‰ç„¡ï¼š </text> - <text length="1" name="Not for sale." type="string"> + <text name="Not for sale."> 販売対象外 </text> - <text length="1" name="For Sale: Price L$[PRICE]." type="string"> + <text name="For Sale: Price L$[PRICE]."> ä¾¡æ ¼ï¼š L$[PRICE] (L$[PRICE_PER_SQM]/平方メートル) </text> <button label="土地を販売..." label_selected="土地を販売..." name="Sell Land..."/> - <text length="1" name="For sale to" type="string"> + <text name="For sale to"> 販売先:[BUYER] </text> - <text length="1" name="Sell with landowners objects in parcel." type="string"> + <text name="Sell with landowners objects in parcel."> ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚‚è²©å£²ä¾¡æ ¼ã«å«ã¾ã‚Œã¾ã™ </text> - <text length="1" name="Selling with no objects in parcel." type="string"> + <text name="Selling with no objects in parcel."> オブジェクトã¯è²©å£²å¯¾è±¡å¤–ã§ã™ </text> <button label="土地販売ã®å–り消ã—" label_selected="土地販売ã®å–り消ã—" name="Cancel Land Sale"/> - <text length="1" name="Claimed:" type="string"> + <text name="Claimed:"> å–得日時: </text> - <text length="1" name="DateClaimText" type="string"> + <text name="DateClaimText"> 2006å¹´8月15æ—¥ç«æ›œæ—¥13:47:25 </text> - <text length="1" name="PriceLabel" type="string"> + <text name="PriceLabel"> é¢ç©ï¼š </text> - <text length="1" name="PriceText" type="string"> + <text name="PriceText"> 4048平方メートル </text> - <text length="1" name="Traffic:" type="string"> + <text name="Traffic:"> 交通é‡: </text> - <text length="1" name="DwellText" type="string"> + <text name="DwellText"> 誤 </text> <button label="土地を購入..." label_selected="土地を購入..." left="130" name="Buy Land..." width="125"/> @@ -79,76 +79,76 @@ <button label="土地を放棄..." label_selected="土地を放棄..." name="Abandon Land..."/> <button label="土地ã®è¿”é‚„ã‚’è¦æ±‚..." label_selected="土地ã®è¿”é‚„ã‚’è¦æ±‚..." name="Reclaim Land..."/> <button label="Lindenセール..." label_selected="Lindenセール..." name="Linden Sale..." tool_tip="土地ãŒæ‰€æœ‰ã•ã‚Œã¦ãŠã‚Šã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒè¨å®šã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚オークションã®å¯¾è±¡ã«ãªã£ã¦ã„ãªã„ã“ã¨ã‚‚å¿…è¦æ¡ä»¶ã§ã™ã€‚"/> - <string name="new users only"> + <panel.string name="new users only"> æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã¿ - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> 誰ã§ã‚‚ - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> é¢ç©ï¼š - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA]平方メートル - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> オークションID: [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> ã“ã®åœŸåœ°ã‚’ä¿®æ£å¤‰æ›´ã™ã‚‹ã«ã¯ã€è³¼å…¥ã‚’承èªã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (グループ所有) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> プãƒãƒ•ã‚£ãƒ¼ãƒ«... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> æƒ…å ±... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (公共) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (ãªã—) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (購入審査ä¸) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> 区画ãŒé¸å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。 「世界ã€ãƒ¡ãƒ‹ãƒ¥ãƒ¼ï¼žã€ŒåœŸåœ°æƒ…å ±ã€ã«é€²ã‚€ã‹ã€åˆ¥ã®åŒºç”»ã‚’é¸æŠžã—ã¦ã€è©³ç´°ã‚’表示ã—ã¾ã™ã€‚ - </string> + </panel.string> </panel> <panel label="約款" name="land_covenant_panel"> <text font="SansSerifLarge" name="estate_section_lbl"> ä¸å‹•ç”£ï¼š </text> - <text length="1" name="estate_name_lbl" type="string"> + <text name="estate_name_lbl"> åå‰ï¼š </text> - <text length="1" name="estate_name_text" type="string"> + <text name="estate_name_text"> メインランド </text> - <text length="1" name="estate_owner_lbl" type="string"> + <text name="estate_owner_lbl"> オーナー: </text> - <text length="1" name="estate_owner_text" type="string"> + <text name="estate_owner_text"> (ãªã—) </text> - <text_editor length="1" name="covenant_editor" type="string"> + <text_editor name="covenant_editor"> ã“ã®ä¸å‹•ç”£ã«ã¯ç´„款ãŒã‚ã‚Šã¾ã›ã‚“。 </text_editor> - <text length="1" name="covenant_timestamp_text" type="string"> + <text name="covenant_timestamp_text"> 最後ã®æ›´æ–°1969å¹´12月31日水曜日16:00:00 </text> <text font="SansSerifLarge" name="region_section_lbl"> 地域: </text> - <text length="1" name="region_name_lbl" type="string"> + <text name="region_name_lbl"> åå‰ï¼š </text> - <text length="1" name="region_name_text" type="string"> + <text name="region_name_text"> Leyla </text> <text name="region_landtype_lbl"> @@ -166,93 +166,93 @@ <text name="resellable_lbl"> å†è²©ï¼š </text> - <text length="1" name="resellable_clause" type="string"> + <text name="resellable_clause"> ã“ã®åœ°åŸŸï¼ˆãƒªãƒ¼ã‚¸ãƒ§ãƒ³ï¼‰ã«ã‚る土地ã¯å†è²©ã§ãã¾ã›ã‚“。 </text> <text name="changeable_lbl"> å†åˆ†å‰²ï¼š </text> - <text length="1" name="changeable_clause" type="string"> + <text name="changeable_clause"> ã“ã®åœ°åŸŸï¼ˆãƒªãƒ¼ã‚¸ãƒ§ãƒ³ï¼‰ã«ã‚る土地ã¯çµ±åˆã¾ãŸã¯åˆ†å‰²ãŒã§ã ã¾ã›ã‚“。 </text> - <string name="can_resell"> + <panel.string name="can_resell"> ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ã§ãã¾ã™ã€‚ - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€çµ±åˆã¾ãŸã¯å†åˆ†å‰²ã§ãã¾ã™ã€‚ - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€çµ±åˆï¼å†åˆ†å‰²ã§ããªã„ã“ã¨ãŒ ã‚ã‚Šã¾ã™ã€‚ - </string> + </panel.string> </panel> <panel label="オブジェクト" name="land_objects_panel"> <text name="parcel_object_bonus"> 地域オブジェクトボーナスè¦å› : [BONUS] </text> - <text length="1" name="Simulator primitive usage:" type="string" width="500"> + <text name="Simulator primitive usage:" width="500"> 地域全体ã®ãƒ—リム使用状æ³ï¼š </text> <text left="200" name="objects_available"> [MAX]ã®å†…[COUNT]([AVAILABLE]利用å¯èƒ½ï¼‰ </text> - <string left="200" name="objects_available_text"> + <panel.string left="200" name="objects_available_text"> [MAX]ã®å†…[COUNT]([AVAILABLE]利用å¯èƒ½ï¼‰ - </string> - <string left="200" name="objects_deleted_text"> + </panel.string> + <panel.string left="200" name="objects_deleted_text"> [MAX]ã®å†…[COUNT]([DELETED]を削除) - </string> - <text length="1" name="Primitives parcel supports:" type="string" width="200"> + </panel.string> + <text name="Primitives parcel supports:" width="200"> 区画ã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã‚‹ãƒ—リム数: </text> - <text left="200" length="1" name="object_contrib_text" type="string"> + <text left="200" name="object_contrib_text"> [COUNT] </text> - <text length="1" name="Primitives on parcel:" type="string"> + <text name="Primitives on parcel:"> 区画上ã®ãƒ—リム数: </text> - <text left="200" length="1" name="total_objects_text" type="string"> + <text left="200" name="total_objects_text"> [COUNT] </text> - <text length="1" name="Owned by parcel owner:" type="string" width="300"> + <text name="Owned by parcel owner:" width="300"> 区画オーナーã«ã‚ˆã‚‹æ‰€æœ‰ï¼š </text> - <text left="200" length="1" name="owner_objects_text" type="string"> + <text left="200" name="owner_objects_text"> [COUNT] </text> <button label="表示" label_selected="表示" name="ShowOwner" right="-145"/> <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnOwner..." right="-15" tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™"/> - <text length="1" name="Set to group:" type="string"> + <text name="Set to group:"> グループã«è¨å®šï¼š </text> - <text left="200" length="1" name="group_objects_text" type="string"> + <text left="200" name="group_objects_text"> [COUNT] </text> <button label="表示" label_selected="表示" name="ShowGroup" right="-145"/> <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnGroup..." right="-15" tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™"/> - <text length="1" name="Owned by others:" type="string"> + <text name="Owned by others:"> 他人ã«ã‚ˆã‚‹æ‰€æœ‰ï¼š </text> - <text left="200" length="1" name="other_objects_text" type="string"> + <text left="200" name="other_objects_text"> [COUNT] </text> <button label="表示" label_selected="表示" name="ShowOther" right="-145"/> <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnOther..." right="-15" tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™"/> - <text length="1" name="Selected / sat upon:" type="string"> + <text name="Selected / sat upon:"> é¸æŠžæ¸ˆã¿ï¼æ±ºå®šæ¸ˆã¿ï¼š </text> - <text left="200" length="1" name="selected_objects_text" type="string"> + <text left="200" name="selected_objects_text"> [COUNT] </text> - <text length="1" name="Autoreturn" type="string" width="500"> + <text name="Autoreturn" width="500"> ä»–ã®ä½äººã®ã‚ªãƒ–ジェクトã®è‡ªå‹•è¿”å´(分ã€0ã§è‡ªå‹•è¿”å´ãªã—) </text> <line_editor left_delta="5" name="clean other time" right="-80"/> - <text length="1" name="Object Owners:" type="string" width="150"> + <text name="Object Owners:" width="150"> オブジェクトã®ã‚ªãƒ¼ãƒŠãƒ¼ï¼š </text> <button label="リスト更新" label_selected="リスト更新" left="146" name="Refresh List"/> @@ -266,138 +266,140 @@ </name_list> </panel> <panel label="オプション" name="land_options_panel"> - <text length="1" name="allow_label" type="string"> + <text name="allow_label"> ä»–ã®ä½äººã«ä»¥ä¸‹ã‚’許å¯ï¼š </text> <check_box label="地形を編集" name="edit land check" tool_tip="ãƒã‚§ãƒƒã‚¯ã‚’入れるã¨ã€ä»–人ãŒã‚ãªãŸã®åœŸåœ°ã®åœ°å½¢ç·¨é›†ã‚’è¡Œã†ã“ã¨ãŒå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã®ãƒã‚§ãƒƒã‚¯ã‚’外ã—ã¦ãŠãã“ã¨ã‚’ãŠã™ã™ã‚ã—ã¾ã™ã€‚外ã—ãŸçŠ¶æ…‹ã§ã‚ãªãŸã®åœŸåœ°ã®åœ°å½¢ç·¨é›†ãŒå¯èƒ½ã§ã™ã€‚"/> <check_box label="ランドマーク作æˆ" name="check landmark"/> <check_box label="飛行" name="check fly" tool_tip="ãƒã‚§ãƒƒã‚¯ã‚’入れるã¨ã“ã®åœŸåœ°ã§ã®é£›è¡ŒãŒå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨åœŸåœ°ã«å…¥ã‚‹éš›ã¨é€šã‚ŠéŽãŽã‚‹ã¨ãã®ã¿é£›è¡Œå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚"/> - <text left="138" length="1" name="allow_label2" type="string" width="144"> + <text left="138" name="allow_label2" width="144"> オブジェクトã®ä½œæˆï¼š </text> <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="edit objects check"/> <check_box label="グループ" left="380" name="edit group objects check"/> - <text left="138" length="1" name="allow_label3" type="string" width="144"> + <text left="138" name="allow_label3" width="144"> オブジェクトã®é€²å…¥ï¼š </text> <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="all object entry check"/> <check_box label="グループ" left="380" name="group object entry check"/> - <text left="138" length="1" name="allow_label4" type="string" width="144"> + <text left="138" name="allow_label4" width="144"> スクリプトã®å®Ÿè¡Œï¼š </text> <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="check other scripts"/> <check_box label="グループ" left="380" name="check group scripts"/> - <text length="1" name="land_options_label" type="string"> + <text name="land_options_label"> 土地オプション: </text> <check_box label="安全(ダメージãªã—)" name="check safe" tool_tip="ãƒã‚§ãƒƒã‚¯ã‚’入れるã¨ã“ã®åœŸåœ°ã§ã®ãƒ€ãƒ¡ãƒ¼ã‚¸ã‚³ãƒ³ãƒãƒƒãƒˆãŒç„¡åŠ¹ã«ãªã‚Šã€ã€Œå®‰å…¨ã€ã«è¨å®šã•ã‚Œã¾ã™ã€‚ ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ€ãƒ¡ãƒ¼ã‚¸ã‚³ãƒ³ãƒãƒƒãƒˆãŒæœ‰åŠ¹ã«ãªã‚Šã¾ã™ã€‚"/> <check_box label="プッシングを制é™" name="PushRestrictCheck" tool_tip="スクリプトã«ã‚ˆã‚‹ãƒ—ッシングを制é™ã—ã¾ã™ã€‚ ã“ã®ã‚ªãƒ—ションをé¸æŠžã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ã‚ãªãŸã®åœŸåœ°ã§ã®ç ´å£Šçš„行動を妨ã’ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"/> <check_box label="検索ã«è¡¨ç¤ºï¼žï¼ˆé€±L$30)以下ã®å ´æ‰€" name="ShowDirectoryCheck" tool_tip="検索çµæžœã§ã“ã®åŒºç”»ã‚’表示ã•ã›ã‚‹"/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> ã“ã®åŒºç”»ã‚’検索çµæžœã«è¡¨ç¤ºã™ã‚‹ - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> 区画é¢ç©ãŒ128平方メートルã‹ãれ以下ã®ãŸã‚ã€ã“ã®ã‚ªãƒ—ションã¯ç„¡åŠ¹ã§ã™ã€‚ 大ããªåŒºç”»ã®ã¿æ¤œç´¢ã«è¡¨ç¤ºã•ã›ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> ã‚ãªãŸã¯ã“ã®åŒºç”»ã®è¨å®šç·¨é›†ãŒã§ããªã„ãŸã‚ã€ã“ã®ã‚ªãƒ—ションã¯ç„¡åŠ¹ã§ã™ã€‚ - </string> + </panel.string> <combo_box name="land category with adult"> - <combo_item name="AnyCategory"> - 全カテゴリ - </combo_item> - <combo_item name="LindenLocation"> - Linden所在地 - </combo_item> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Arts&Culture"> - アートã¨ã‚«ãƒ«ãƒãƒ£ãƒ¼ - </combo_item> - <combo_item name="Business"> - ビジãƒã‚¹ - </combo_item> - <combo_item name="Educational"> - 教育的 - </combo_item> - <combo_item name="Gaming"> - ゲーム- </combo_item> - <combo_item name="Hangout"> - ãŸã¾ã‚Šå ´ - </combo_item> - <combo_item name="NewcomerFriendly"> - æ–°ä½äººã«å¥½æ„çš„ - </combo_item> - <combo_item name="Parks&Nature"> - 公園ã¨è‡ªç„¶ - </combo_item> - <combo_item name="Residential"> - ä½å®…用 - </combo_item> - <combo_item name="Shopping"> - ショッピング - </combo_item> - <combo_item name="Other"> - ãã®ä»– - </combo_item> + <combo_box.item name="item0" label="全カテゴリ" + /> + <combo_box.item name="item1" label="Linden所在地" + /> + <combo_box.item name="item2" label="Adult" + /> + <combo_box.item name="item3" label="アートã¨ã‚«ãƒ«ãƒãƒ£ãƒ¼" + /> + <combo_box.item name="item4" label="ビジãƒã‚¹" + /> + <combo_box.item name="item5" label="教育的" + /> + <combo_box.item name="item6" label="ゲーム" + /> + <combo_box.item name="item7" label="ãŸã¾ã‚Šå ´" + /> + <combo_box.item name="item8" label="æ–°ä½äººã«å¥½æ„çš„" + /> + <combo_box.item name="item9" label="公園ã¨è‡ªç„¶" + /> + <combo_box.item name="item10" label="ä½å®…用" + /> + <combo_box.item name="item11" label="ショッピング" + /> + <combo_box.item name="item12" label="ãã®ä»–" + /> </combo_box> <combo_box name="land category"> - <combo_box.item name="AnyCategory" label="全カテゴリー"/> - <combo_box.item name="LindenLocation" label="Linden所在地"/> - <combo_box.item name="Arts&Culture" label="アート&カルãƒãƒ£ãƒ¼"/> - <combo_box.item name="Business" label="ビジãƒã‚¹"/> - <combo_box.item name="Educational" label="教育的"/> - <combo_box.item name="Gaming" label="ゲーム"/> - <combo_box.item name="Hangout" label="ãŸã¾ã‚Šå ´"/> - <combo_box.item name="NewcomerFriendly" label="æ–°ä½äººã«å¥½æ„çš„"/> - <combo_box.item name="Parks&Nature" label="公園ã¨è‡ªç„¶"/> - <combo_box.item name="Residential" label="ä½å®…用"/> - <combo_box.item name="Shopping" label="ショッピング"/> - <combo_box.item name="Other" label="ãã®ä»–"/> + <combo_box.item name="item0" label="全カテゴリー" + /> + <combo_box.item name="item1" label="Linden所在地" + /> + <combo_box.item name="item3" label="アート&カルãƒãƒ£ãƒ¼" + /> + <combo_box.item name="item4" label="ビジãƒã‚¹" + /> + <combo_box.item name="item5" label="教育的" + /> + <combo_box.item name="item6" label="ゲーム" + /> + <combo_box.item name="item7" label="ãŸã¾ã‚Šå ´" + /> + <combo_box.item name="item8" label="æ–°ä½äººã«å¥½æ„çš„" + /> + <combo_box.item name="item9" label="公園ã¨è‡ªç„¶" + /> + <combo_box.item name="item10" label="ä½å®…用" + /> + <combo_box.item name="item11" label="ショッピング" + /> + <combo_box.item name="item12" label="ãã®ä»–" + /> </combo_box> <button label="?" label_selected="?" name="?"/> <check_box label="Matureコンテンツ" name="MatureCheck" tool_tip=""/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Matureコンテンツ - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Adultコンテンツ - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> ã‚ãªãŸã®åŒºç”»æƒ…å ±åŠã³ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¯Matureã¨ã•ã‚Œã¦ã„ã¾ã™ã€‚ - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> ã‚ãªãŸã®åŒºç”»æƒ…å ±åŠã³ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¯Adultã¨ã•ã‚Œã¦ã„ã¾ã™ã€‚ - </string> - <text length="1" name="Snapshot:" type="string"> + </panel.string> + <text name="Snapshot:"> スナップショット: </text> <texture_picker label="" left="116" name="snapshot_ctrl" tool_tip="写真をクリックã—ã¦é¸æŠž"/> <text name="landing_point"> ç€åœ°ç‚¹: [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (ãªã—) - </string> + </panel.string> <button label="è¨å®š" label_selected="è¨å®š" name="Set" tool_tip="訪å•è€…ã®ç€åœ°ç‚¹ã®è¨å®šã‚’è¡Œã„ã¾ã™ã€‚ã“ã®åŒºç”»å†…ã«ç«‹ã£ã¦è¡Œã£ã¦ãã ã•ã„。"/> <button label="クリア" label_selected="クリア" name="Clear" tool_tip="ç€åœ°ç‚¹ã‚’クリアã—ã¦ãã ã•ã„。"/> - <text length="1" name="Teleport Routing: " type="string"> + <text name="Teleport Routing: "> テレãƒãƒ¼ãƒˆåˆ¶é™ï¼š </text> <combo_box name="landing type" tool_tip="Teleport Routing -- select how to handle teleports onto your land."> - <combo_box.item length="1" name="Blocked" type="string" label="ä¸å¯"/> - <combo_box.item length="1" name="LandingPoint" type="string" label="ç€åœ°ç‚¹"/> - <combo_box.item length="1" name="Anywhere" type="string" label="ã©ã“ã§ã‚‚"/> + <combo_box.item name="Blocked" label="ä¸å¯" + /> + <combo_box.item name="LandingPoint" label="ç€åœ°ç‚¹" + /> + <combo_box.item name="Anywhere" label="ã©ã“ã§ã‚‚" + /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> ãƒ—ãƒƒã‚·ãƒ³ã‚°ã‚’åˆ¶é™ - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> ãƒ—ãƒƒã‚·ãƒ³ã‚°ã‚’åˆ¶é™ (地域優先) - </string> + </panel.string> </panel> <panel label="メディア" name="land_media_panel"> <text name="with media:"> @@ -412,7 +414,7 @@ 説明: </text> <line_editor name="url_description" tool_tip="ï¼»å†ç”Ÿï¼½/ï¼»ãƒãƒ¼ãƒ‰ï¼½ãƒœã‚¿ãƒ³ã®éš£ã«è¡¨ç¤ºã•ã‚Œã‚‹ãƒ†ã‚スト"/> - <text length="1" name="Media texture:" type="string"> + <text name="Media texture:"> テクスムャå–替: </text> @@ -454,7 +456,7 @@ <check_box label="ã“ã®åŒºç”»ã§ã®ãƒœã‚¤ã‚¹ä½¿ç”¨ã‚’制é™ã™ã‚‹" name="parcel_enable_voice_channel_parcel"/> </panel> <panel label="アクセス" name="land_access_panel"> - <text length="1" name="Limit access to this parcel to:" type="string"> + <text name="Limit access to this parcel to:"> ã“ã®åŒºç”»ã«ã‚¢ã‚¯ã‚»ã‚¹ </text> <check_box label="パブリック・アクセスを許å¯" name="public_access"/> @@ -463,14 +465,16 @@ </text> <check_box label="Linden Labã«æ”¯æ‰•ã„æƒ…å ±ã‚’ç™»éŒ²ã—ã¦ã„ãªã„ä½äºº" name="limit_payment" tool_tip="支払ã„æƒ…å ±æœªç¢ºèªã®ä½äººã‚’排除ã™ã‚‹"/> <check_box label="年齢確èªã‚’済ã¾ã›ã¦ã„ãªã„æˆäººã®ä½äºº" name="limit_age_verified" tool_tip="年齢確èªã‚’済ã¾ã›ã¦ã„ãªã„ä½äººã‚’排除ã™ã‚‹è©³ç´°ã«ã¤ã„ã¦ã¯ã€support.secondlife.comã‚’å‚ç…§ã—ã¦ãã ã•ã„。"/> - <string name="estate_override"> + <panel.string name="estate_override"> 1ã¤ä»¥ä¸Šã®ã‚ªãƒ—ションãŒã€ä¸å‹•ç”£ãƒ¬ãƒ™ãƒ«ã§è¨å®šã•ã‚Œã¦ã„ã¾ã™ã€‚ - </string> + </panel.string> <check_box label="グループ・アクセスを許å¯ï¼š[GROUP]" name="GroupCheck" tool_tip="[一般]タブã§ã€ã‚°ãƒ«ãƒ¼ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。"/> <check_box label="å…¥å ´è¨±å¯ã‚’販売:" name="PassCheck" tool_tip="ã“ã®åŒºç”»ã¸ã®ä¸€æ™‚çš„ãªã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯"/> <combo_box name="pass_combo"> - <combo_box.item name="Anyone" label="誰ã§ã‚‚"/> - <combo_box.item name="Group" label="グループ"/> + <combo_box.item name="Anyone" label="誰ã§ã‚‚" + /> + <combo_box.item name="Group" label="グループ" + /> </combo_box> <spinner label="ä¾¡æ ¼ï¼ˆL$):" name="PriceSpin"/> <spinner label="アクセス時間:" name="HoursSpin"/> diff --git a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml index 1ea10324b307e6a03723397cb472ec7bed83f3d6..8bf660d71d6a71b994eade0fc0920e068f15d3b4 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml @@ -1,14 +1,15 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="floater_buy_contents" title="コンテンツを購入"> - <text name="contains_text"> +<floater name="floater_buy_contents" title="コンテンツを購入" width="340" min_width="340"> + <text name="contains_text" width="320"> [NAME]ã®å†…容: </text> - <text name="buy_text"> + <scroll_list name="item_list" width="310"/> + <text name="buy_text" width="320"> コンテンツを[NAME]ã‹ã‚‰L$[AMOUNT]ã§è³¼å…¥ã—ã¾ã™ã‹ï¼Ÿ </text> - <button label="å–り消ã—" label_selected="å–り消ã—" name="cancel_btn" /> - <button label="購入" label_selected="購入" name="buy_btn" /> - <check_box label="今ã™ãæœã‚’ç€ã‚‹" name="wear_check" /> + <button label="å–り消ã—" label_selected="å–り消ã—" name="cancel_btn" width="73"/> + <button label="購入" label_selected="購入" name="buy_btn" width="73" left_delta="-77"/> + <check_box label="今ã™ãæœã‚’ç€ã‚‹" name="wear_check" left_delta="-125"/> <text name="no_copy_text"> (コピーãªã—) </text> diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml index 27fa434963b6d5fe0129bee3b60f467fc7591167..d51fb74807cdc8fe8fa34463f29fd086be2366b6 100644 --- a/indra/newview/skins/default/xui/ja/floater_customize.xml +++ b/indra/newview/skins/default/xui/ja/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="容姿"> <tab_container name="customize tab container"> - <panel label="身体部ä½" name="body_parts_placeholder"/> + <placeholder label="身体部ä½" name="body_parts_placeholder"/> <panel label="シェイプ" name="Shape"> <button label="戻ã™" label_selected="戻ã™" name="Revert"/> <button label="身体" label_selected="身体" name="Body"/> @@ -14,33 +14,29 @@ <button label="胴体" label_selected="胴体" name="Torso"/> <button label="両脚" label_selected="両脚" name="Legs"/> <radio_group name="sex radio"> - <radio_item length="1" name="radio" type="string"> - 女性 - </radio_item> - <radio_item length="1" name="radio2" type="string"> - 男性 - </radio_item> + <radio_item name="radio" label="女性"/> + <radio_item name="radio2" label="男性"/> </radio_group> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„シェイプ(体型)ã‚’æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ ã—ょã†ã€‚完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -55,26 +51,26 @@ <button label="é¡”ã®ç´°éƒ¨" label_selected="é¡”ã®ç´°éƒ¨" name="Face Detail"/> <button label="メイクアップ" label_selected="メイクアップ" name="Makeup"/> <button label="身体細部" label_selected="身体細部" name="Body Detail"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„スã‚ンをæŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -93,26 +89,26 @@ <button label="スタイル" label_selected="スタイル" name="Style"/> <button label="眉毛" label_selected="眉毛" name="Eyebrows"/> <button label="é¡”" label_selected="é¡”" name="Facial"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„髪型をæŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -125,26 +121,26 @@ <button label="戻ã™" label_selected="戻ã™" name="Revert"/> </panel> <panel label="眼" name="Eyes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„眼をæŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -165,26 +161,26 @@ <button label="ä¿å˜" label_selected="ä¿å˜" name="Save"/> <button label="別åã§ä¿å˜..." label_selected="別åã§ä¿å˜..." name="Save As"/> <button label="戻ã™" label_selected="戻ã™" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„シャツをæŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -199,26 +195,26 @@ <button label="ä¿å˜" label_selected="ä¿å˜" name="Save"/> <button label="別åã§ä¿å˜..." label_selected="別åã§ä¿å˜..." name="Save As"/> <button label="戻ã™" label_selected="戻ã™" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„ズボンをæŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -226,26 +222,26 @@ </text> </panel> <panel label="é´" name="Shoes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„é´ã‚’æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -260,26 +256,26 @@ <button label="戻ã™" label_selected="戻ã™" name="Revert"/> </panel> <panel label="é´ä¸‹" name="Socks"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„é´ä¸‹ã‚’æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -294,26 +290,26 @@ <button label="戻ã™" label_selected="戻ã™" name="Revert"/> </panel> <panel label="上ç€" name="Jacket"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„上ç€ã‚’æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -329,26 +325,26 @@ <button label="戻ã™" label_selected="戻ã™" name="Revert"/> </panel> <panel label="手袋" name="Gloves"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„手袋をæŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -363,26 +359,26 @@ <button label="戻ã™" label_selected="戻ã™" name="Revert"/> </panel> <panel label="下ç€ã‚·ãƒ£ãƒ„" name="Undershirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„下ç€ã‚’æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -397,26 +393,26 @@ <button label="戻ã™" label_selected="戻ã™" name="Revert"/> </panel> <panel label="下ç€ãƒ‘ンツ" name="Underpants"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„パンツをæŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> @@ -431,26 +427,26 @@ <button label="戻ã™" label_selected="戻ã™" name="Revert"/> </panel> <panel label="スカート" name="Skirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: ä¿®æ£ã§ãã¾ã›ã‚“。 </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: 未装ç€ã€‚ </text> - <text length="1" name="path" type="string"> + <text name="path"> [PATH] ã«æ‰€åœ¨ </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> æ–°ã—ã„スカートをæŒç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚ 完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 </text> <text name="Item Action Label"> 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 92475aacf493538425ccc41b799d7b7c3eca32f6..d4037487b70413e84baa7eabd7b599495a8b3cf5 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,7 +15,7 @@ <button label="ãªã—" label_selected="ãªã—" name="None" /> <check_box label="常ã«ãƒ•ã‚©ãƒ«ãƒ€ã‚’表示" name="check_show_empty" /> <check_box label="ãƒã‚°ã‚ªãƒ•ä»¥é™" name="check_since_logoff" /> - <text type="string" length="1" name="- OR -"> + <text name="- OR -"> ï¼ã¾ãŸã¯ï¼ </text> <spinner label="経éŽæ™‚é–“" name="spin_hours_ago" /> diff --git a/indra/newview/skins/default/xui/ja/floater_joystick.xml b/indra/newview/skins/default/xui/ja/floater_joystick.xml index 5029a781f6bab348c0cb7dab61df5a330bbda796..177567c80600adf9ec7115cfd28694be415327c7 100644 --- a/indra/newview/skins/default/xui/ja/floater_joystick.xml +++ b/indra/newview/skins/default/xui/ja/floater_joystick.xml @@ -1,8 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="ジョイスティックã®è¨å®š"> - <check_box name="enable_joystick" width="120"> - ジョイスティックを使ã†ï¼š - </check_box> + <check_box name="enable_joystick" width="120" label="ジョイスティックを使ã†ï¼š"/> <text left="180" name="joystick_type" width="320"/> <spinner label="X軸マッピング" name="JoystickAxis1"/> <spinner label="Y軸マッピング" name="JoystickAxis2"/> @@ -17,15 +15,9 @@ <text name="Control Modes:"> 制御モード: </text> - <check_box left="131" name="JoystickAvatarEnabled"> - ã‚¢ãƒã‚¿ãƒ¼ - </check_box> - <check_box left="201" name="JoystickBuildEnabled"> - é€ ã‚‹ - </check_box> - <check_box left="271" name="JoystickFlycamEnabled"> - フライ・カメラ - </check_box> + <check_box left="131" name="JoystickAvatarEnabled" label="ã‚¢ãƒã‚¿ãƒ¼"/> + <check_box left="201" name="JoystickBuildEnabled" label="é€ ã‚‹"/> + <check_box left="271" name="JoystickFlycamEnabled" label="フライ・カメラ"/> <text left="5" name="XScale" width="120"> Xスケール </text> @@ -113,12 +105,14 @@ <button label="SpaceNavigatorã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆè¨å®š" left="330" name="SpaceNavigatorDefaults" width="210"/> <button label="OK" label_selected="OK" name="ok_btn"/> <button label="å–り消ã—" label_selected="å–り消ã—" name="cancel_btn"/> - <string name="JoystickMonitor"> - ジョイスティック・モニター - </string> - <string name="Axis"> - 軸 [NUM] - </string> + <stat_view label="ジョイスティック・モニター" name="axis_view"> + <stat_bar label="軸 0" name="axis0"/> + <stat_bar label="軸 1" name="axis1"/> + <stat_bar label="軸 2" name="axis2"/> + <stat_bar label="軸 3" name="axis3"/> + <stat_bar label="軸 4" name="axis4"/> + <stat_bar label="軸 5" name="axis5"/> + </stat_view> <string name="NoDevice"> デãƒã‚¤ã‚¹ã¯æ¤œå‡ºã•ã‚Œã¾ã›ã‚“ã§ã—㟠</string> diff --git a/indra/newview/skins/default/xui/ja/floater_map.xml b/indra/newview/skins/default/xui/ja/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..3884333c9126cd2a954e2ebdcd0cb9cb2da4055f --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + 北 + </floater.string> + <floater.string name="mini_map_east"> + æ± + </floater.string> + <floater.string name="mini_map_west"> + 西 + </floater.string> + <floater.string name="mini_map_south"> + å— + </floater.string> + <floater.string name="mini_map_southeast"> + å—æ± + </floater.string> + <floater.string name="mini_map_northeast"> + åŒ—æ± + </floater.string> + <floater.string name="mini_map_southwest"> + å—西 + </floater.string> + <floater.string name="mini_map_northwest"> + 北西 + </floater.string> + <text label="北" name="floater_map_north" text="北"> + 北 + </text> + <text label="æ±" name="floater_map_east" text="æ±"> + æ± + </text> + <text label="西" name="floater_map_west" text="西"> + 西 + </text> + <text label="å—" name="floater_map_south" text="å—"> + å— + </text> + <text label="å—æ±" name="floater_map_southeast" text="å—æ±"> + å—æ± + </text> + <text label="北æ±" name="floater_map_northeast" text="北æ±"> + åŒ—æ± + </text> + <text label="å—西" name="floater_map_southwest" text="å—西"> + å—西 + </text> + <text label="北西" name="floater_map_northwest" text="北西"> + 北西 + </text> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_moveview.xml b/indra/newview/skins/default/xui/ja/floater_moveview.xml index c40a1d93f4fce476b19750520182d07e9473ba96..df6ae7bb61bd9a82cae7749458de2f55f8ea760a 100644 --- a/indra/newview/skins/default/xui/ja/floater_moveview.xml +++ b/indra/newview/skins/default/xui/ja/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="å·¦ã«æ›²ãŒã‚‹" /> <button label="" label_selected="" name="turn right btn" tool_tip="å³ã«æ›²ãŒã‚‹" /> <button label="" label_selected="" name="move up btn" @@ -12,4 +13,5 @@ <joystick_slide name="slide right btn" tool_tip="å³ã«ç§»å‹•" /> <joystick_turn name="forward btn" tool_tip="å‰ã«ç§»å‹•" /> <joystick_turn name="backward btn" tool_tip="後ã‚ã«ç§»å‹•" /> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_openobject.xml b/indra/newview/skins/default/xui/ja/floater_openobject.xml index 3abda50f182919a90e9fe1ed582b28610430de02..485528e985a382043f0c13dbdf15325622acee95 100644 --- a/indra/newview/skins/default/xui/ja/floater_openobject.xml +++ b/indra/newview/skins/default/xui/ja/floater_openobject.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="objectcontents" title="オブジェクト・コンテンツ"> - <text type="string" length="1" name="object_name"> + <text name="object_name"> [DESC]: </text> <button label="æŒã¡ç‰©ã«ã‚³ãƒ”ー" label_selected="æŒã¡ç‰©ã«ã‚³ãƒ”ー" diff --git a/indra/newview/skins/default/xui/ja/floater_pay.xml b/indra/newview/skins/default/xui/ja/floater_pay.xml index 114cb90bf2991b9e69c9f03d439c2dac8b390927..8702ab1e74ff45c858cdf30403273387116b7fed 100644 --- a/indra/newview/skins/default/xui/ja/floater_pay.xml +++ b/indra/newview/skins/default/xui/ja/floater_pay.xml @@ -6,16 +6,16 @@ <button label="L$20" label_selected="L$20" name="fastpay 20" /> <button label="支払ã„" label_selected="支払ã„" name="pay btn" /> <button label="å–り消ã—" label_selected="å–り消ã—" name="cancel btn" /> - <text type="string" length="1" name="payee_label"> + <text name="payee_label"> 支払ã„先: </text> - <text type="string" length="1" name="payee_name"> + <text name="payee_name"> [FIRST] [LAST] </text> - <text type="string" length="1" name="fastpay text"> + <text name="fastpay text"> 一括払ã„: </text> - <text type="string" length="1" name="amount text"> + <text name="amount text"> 金é¡ï¼š </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_pay_object.xml b/indra/newview/skins/default/xui/ja/floater_pay_object.xml index 6ad9c7c2b8f45c3e8a3ce61caf4469bf652e8211..5f280ca5fae6384f007685b671d979fdfb400e94 100644 --- a/indra/newview/skins/default/xui/ja/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/ja/floater_pay_object.xml @@ -1,24 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Give Money" title=""> - <text type="string" length="1" name="payee_group"> + <text name="payee_group"> グループã¸ã®æ”¯æ‰•ã„: </text> - <text type="string" length="1" name="payee_resident"> + <text name="payee_resident"> ä½äººã¸ã®æ”¯æ‰•ã„: </text> - <text type="string" length="1" name="payee_name"> + <text name="payee_name"> [FIRST] [LAST] </text> - <text type="string" length="1" name="object_name_label"> + <text name="object_name_label"> オブジェクトを介ã—ã¦ï¼š </text> - <text type="string" length="1" name="object_name_text"> + <text name="object_name_text"> ... </text> - <text type="string" length="1" name="fastpay text"> + <text name="fastpay text"> 一括払ã„: </text> - <text type="string" length="1" name="amount text"> + <text name="amount text"> 金é¡ï¼š </text> <button label="L$1" label_selected="L$1" name="fastpay 1" /> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_animation.xml b/indra/newview/skins/default/xui/ja/floater_preview_animation.xml index dfb90f2c20a7cc31e64e838521d20e3057d69786..653674129cf6b2ab2a2b27538f39c83e15e0a99b 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_animation.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_anim"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> 説明: </text> <button label="世界ã§å†ç”Ÿ" label_selected="åœæ¢" name="Anim play btn" diff --git a/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml b/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml index 2fb42d1fae1374dd1fd3366e2969298be926cf42..e7dd4d2c098fdc18bf8ad35348e51ae49e3e75ed 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview notecard" title="メモ:"> <button label="ä¿å˜" label_selected="ä¿å˜" name="Save" /> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> 説明: </text> - <text_editor type="string" length="1" name="Notecard Editor"> + <text_editor name="Notecard Editor"> ãƒãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ï¼Žï¼Žï¼Ž </text_editor> <text name="no_object"> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_sound.xml b/indra/newview/skins/default/xui/ja/floater_preview_sound.xml index d455d4cea9ab378f143115fd314471d8e228ae34..244ef13d13985ce3e1b6ca14c35e890a1a8b61f1 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_sound.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_sound"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> 説明: </text> <button label="世界ã§å†ç”Ÿ" label_selected="世界ã§å†ç”Ÿ" name="Sound play btn" diff --git a/indra/newview/skins/default/xui/ja/floater_preview_texture.xml b/indra/newview/skins/default/xui/ja/floater_preview_texture.xml index affcc51b0bea0e33db5626e86480ed8e7a7e8f2a..ffd9e3bfbefa5768a02f4da7e8b45b02456df366 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_texture.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_texture"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> 説明: </text> - <text type="string" length="1" name="dimensions"> + <text name="dimensions"> 寸法:[HEIGHT]x[WIDTH] </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml index b523023e6e2792560218afe62e6c6ed0e619136f..6eae7613b347c5ab5a7266d4aed6b26809ce517f 100644 --- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml @@ -37,123 +37,84 @@ Hendrerit Vulputate </text> <combo_box name="category_combo" tool_tip="カテゴリー -- ã“ã®å ±å‘Šã«æœ€ã‚‚é©ã—ãŸã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„"> - <combo_item name="Select_category"> - カテゴリーをé¸æŠž - </combo_item> - <combo_item name="Age__Age_play"> - 年齢>年齢å½è¨¼ - </combo_item> - <combo_item name="Age__Adult_resident_on_Teen_Second_Life"> - 年齢>æˆäººã®ä½äººãŒTeen Second Life上ã«ã„ã‚‹ - </combo_item> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - 年齢>未æˆå¹´ãªä½äººãŒTeen Second Lifeã®å¤–ã«ã„ã‚‹ - </combo_item> - <combo_item name="Assault__Combat_sandbox___unsafe_area"> - 攻撃>コンãƒãƒƒãƒˆãƒ»ã‚µãƒ³ãƒ‰ãƒœãƒƒã‚¯ã‚¹/å±é™ºãªã‚¨ãƒªã‚¢ - </combo_item> - <combo_item name="Assault__Safe_area"> - 攻撃>安全ãªã‚¨ãƒªã‚¢ - </combo_item> - <combo_item name="Assault__Weapons_testing_sandbox"> - 攻撃>æ¦å™¨ãƒ†ã‚¹ãƒˆç”¨ã‚µãƒ³ãƒ‰ãƒœãƒƒã‚¯ã‚¹ - </combo_item> - <combo_item name="Commerce__Failure_to_deliver_product_or_service"> - 商å–引>製å“ã¾ãŸã¯ã‚µãƒ¼ãƒ“スã®æä¾›ãŒè¡Œã‚ã‚Œãªã„ - </combo_item> - <combo_item name="Disclosure__Real_world_information"> - 開示>リアルワールドã®æƒ…å ± - </combo_item> - <combo_item name="Disclosure__Remotely_monitoring chat"> - 開示>離れãŸã¨ã“ã‚ã‹ã‚‰ãƒãƒ£ãƒƒãƒˆã‚’モニターã—ã¦ã„ã‚‹ - </combo_item> - <combo_item name="Disclosure__Second_Life_information_chat_IMs"> - 開示>Second Lifeã®æƒ…å ±/ãƒãƒ£ãƒƒãƒˆ/IM - </combo_item> - <combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources"> - å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žåœ°åŸŸãƒªã‚½ãƒ¼ã‚¹ã®ä½¿ç”¨ãŒä¸å…¬å¹³ - </combo_item> - <combo_item name="Disturbing_the_peace__Excessive_scripted_objects"> - å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žã‚¹ã‚¯ãƒªãƒ—ト・オブジェクトã®ä¹±ç”¨ - </combo_item> - <combo_item name="Disturbing_the_peace__Object_littering"> - å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žã‚ªãƒ–ジェクトã®æ¨ã¦ç½®ã - </combo_item> - <combo_item name="Disturbing_the_peace__Repetitive_spam"> - å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žç¹°ã‚Šè¿”ã—スパム- </combo_item> - <combo_item name="Disturbing_the_peace__Unwanted_advert_spam"> - å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žä¸è¦ãªåºƒå‘Šã‚¹ãƒ‘ム- </combo_item> - <combo_item name="Fraud__L$"> - è©æ¬ºï¼ž L$ - </combo_item> - <combo_item name="Fraud__Land"> - è©æ¬ºï¼žåœŸåœ° - </combo_item> - <combo_item name="Fraud__Pyramid_scheme_or_chain_letter"> - è©æ¬ºï¼žãƒžãƒ«ãƒå•†æ³•ã¾ãŸã¯ãƒã‚§ãƒ¼ãƒ³ãƒ»ãƒ¡ãƒ¼ãƒ« - </combo_item> - <combo_item name="Fraud__US$"> - è©æ¬ºï¼ž US$ - </combo_item> - <combo_item name="Harassment__Advert_farms___visual_spam"> - å«ŒãŒã‚‰ã›ï¼žåºƒå‘Šå§”託/視覚的ãªã‚¹ãƒ‘ム- </combo_item> - <combo_item name="Harassment__Defaming_individuals_or_groups"> - å«ŒãŒã‚‰ã›ï¼žå€‹äººã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®ä¸å‚· - </combo_item> - <combo_item name="Harassment__Impeding_movement"> - å«ŒãŒã‚‰ã›ï¼žç§»å‹•ã®å¦¨å®³ - </combo_item> - <combo_item name="Harassment__Sexual_harassment"> - å«ŒãŒã‚‰ã›ï¼žæ€§çš„ãªå«ŒãŒã‚‰ã› - </combo_item> - <combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS"> - å«ŒãŒã‚‰ã›ï¼žåˆ©ç”¨è¦ç´„(ToS)ã«é•åã™ã‚‹è¡Œç‚ºã‚’è¡Œã†ã‚ˆã†ä»–者を勧誘/扇動 - </combo_item> - <combo_item name="Harassment__Verbal_abuse"> - å«ŒãŒã‚‰ã›ï¼žæš´è¨€ - </combo_item> - <combo_item name="Indecency__Broadly_offensive_content_or_conduct"> - ã‚ã„ã›ã¤ï¼žè‘—ã—ãä¸å¿«ã§ã‚ã‚‹ã¨è¦‹ãªã•ã‚Œã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¾ãŸã¯è¡Œç‚º - </combo_item> - <combo_item name="Indecency__Inappropriate_avatar_name"> - ã‚ã„ã›ã¤ï¼žä¸é©åˆ‡ãªã‚¢ãƒã‚¿ãƒ¼å - </combo_item> - <combo_item name="Indecency__Mature_content_in_PG_region"> - ã‚ã„ã›ã¤ï¼žPG地域ã§ã®ä¸é©åˆ‡ãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¾ãŸã¯è¡Œç‚º - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - ã‚ã„ã›ã¤ï¼žMature地域ã§ã®ä¸é©åˆ‡ãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¾ãŸã¯è¡Œç‚º - </combo_item> - <combo_item name="Intellectual_property_infringement_Content_Removal"> - 知的財産ã®ä¾µå®³ï¼žã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®æ’¤åŽ» - </combo_item> - <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit"> - 知的財産ã®ä¾µå®³ï¼žã‚³ãƒ”ーBotåŠã³æ¨©é™ã®æ‚ªç”¨ - </combo_item> - <combo_item name="Intolerance"> - ä¸å¯›å®¹ - </combo_item> - <combo_item name="Land__Abuse_of_sandbox_resources"> - 土地>サンドボックス・リソースã®ä¹±ç”¨ - </combo_item> - <combo_item name="Land__Encroachment__Objects_textures"> - 土地>ä¸æ³•ä¾µå…¥ï¼žã‚ªãƒ–ジェクト/テクスãƒãƒ£ãƒ¼ - </combo_item> - <combo_item name="Land__Encroachment__Particles"> - 土地>ä¸æ³•ä¾µå…¥ï¼žãƒ‘ーティクル - </combo_item> - <combo_item name="Land__Encroachment__Trees_plants"> - 土地>ä¸æ³•ä¾µå…¥ï¼žæ¨¹æœ¨/æ¤ç‰© - </combo_item> - <combo_item name="Wagering_gambling"> - è³ã‘/ギャンブル - </combo_item> - <combo_item name="Other"> - ãã®ä»– - </combo_item> + <combo_box.item name="Select_category" label="カテゴリーをé¸æŠž" + /> + <combo_box.item name="Age__Age_play" label="年齢>年齢å½è¨¼" + /> + <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="年齢>æˆäººã®ä½äººãŒTeen Second Life上ã«ã„ã‚‹" + /> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="年齢>未æˆå¹´ãªä½äººãŒTeen Second Lifeã®å¤–ã«ã„ã‚‹" + /> + <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="攻撃>コンãƒãƒƒãƒˆãƒ»ã‚µãƒ³ãƒ‰ãƒœãƒƒã‚¯ã‚¹/å±é™ºãªã‚¨ãƒªã‚¢" + /> + <combo_box.item name="Assault__Safe_area" label="攻撃>安全ãªã‚¨ãƒªã‚¢" + /> + <combo_box.item name="Assault__Weapons_testing_sandbox" label="攻撃>æ¦å™¨ãƒ†ã‚¹ãƒˆç”¨ã‚µãƒ³ãƒ‰ãƒœãƒƒã‚¯ã‚¹" + /> + <combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="商å–引>製å“ã¾ãŸã¯ã‚µãƒ¼ãƒ“スã®æä¾›ãŒè¡Œã‚ã‚Œãªã„" + /> + <combo_box.item name="Disclosure__Real_world_information" label="開示>リアルワールドã®æƒ…å ±" + /> + <combo_box.item name="Disclosure__Remotely_monitoring chat" label="開示>離れãŸã¨ã“ã‚ã‹ã‚‰ãƒãƒ£ãƒƒãƒˆã‚’モニターã—ã¦ã„ã‚‹" + /> + <combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="開示>Second Lifeã®æƒ…å ±/ãƒãƒ£ãƒƒãƒˆ/IM" + /> + <combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žåœ°åŸŸãƒªã‚½ãƒ¼ã‚¹ã®ä½¿ç”¨ãŒä¸å…¬å¹³" + /> + <combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žã‚¹ã‚¯ãƒªãƒ—ト・オブジェクトã®ä¹±ç”¨" + /> + <combo_box.item name="Disturbing_the_peace__Object_littering" label="å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žã‚ªãƒ–ジェクトã®æ¨ã¦ç½®ã" + /> + <combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žç¹°ã‚Šè¿”ã—スパム" + /> + <combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="å¹³ç©ã‚’ä¹±ã™è¡Œç‚ºï¼žä¸è¦ãªåºƒå‘Šã‚¹ãƒ‘ム" + /> + <combo_box.item name="Fraud__L$" label="è©æ¬ºï¼ž L$" + /> + <combo_box.item name="Fraud__Land" label="è©æ¬ºï¼žåœŸåœ°" + /> + <combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="è©æ¬ºï¼žãƒžãƒ«ãƒå•†æ³•ã¾ãŸã¯ãƒã‚§ãƒ¼ãƒ³ãƒ»ãƒ¡ãƒ¼ãƒ«" + /> + <combo_box.item name="Fraud__US$" label="è©æ¬ºï¼ž US$" + /> + <combo_box.item name="Harassment__Advert_farms___visual_spam" label="å«ŒãŒã‚‰ã›ï¼žåºƒå‘Šå§”託/視覚的ãªã‚¹ãƒ‘ム" + /> + <combo_box.item name="Harassment__Defaming_individuals_or_groups" label="å«ŒãŒã‚‰ã›ï¼žå€‹äººã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®ä¸å‚·" + /> + <combo_box.item name="Harassment__Impeding_movement" label="å«ŒãŒã‚‰ã›ï¼žç§»å‹•ã®å¦¨å®³" + /> + <combo_box.item name="Harassment__Sexual_harassment" label="å«ŒãŒã‚‰ã›ï¼žæ€§çš„ãªå«ŒãŒã‚‰ã›" + /> + <combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="å«ŒãŒã‚‰ã›ï¼žåˆ©ç”¨è¦ç´„(ToS)ã«é•åã™ã‚‹è¡Œç‚ºã‚’è¡Œã†ã‚ˆã†ä»–者を勧誘/扇動" + /> + <combo_box.item name="Harassment__Verbal_abuse" label="å«ŒãŒã‚‰ã›ï¼žæš´è¨€" + /> + <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="ã‚ã„ã›ã¤ï¼žè‘—ã—ãä¸å¿«ã§ã‚ã‚‹ã¨è¦‹ãªã•ã‚Œã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¾ãŸã¯è¡Œç‚º" + /> + <combo_box.item name="Indecency__Inappropriate_avatar_name" label="ã‚ã„ã›ã¤ï¼žä¸é©åˆ‡ãªã‚¢ãƒã‚¿ãƒ¼å" + /> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="ã‚ã„ã›ã¤ï¼žPG地域ã§ã®ä¸é©åˆ‡ãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¾ãŸã¯è¡Œç‚º" + /> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="ã‚ã„ã›ã¤ï¼žMature地域ã§ã®ä¸é©åˆ‡ãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¾ãŸã¯è¡Œç‚º" + /> + <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="知的財産ã®ä¾µå®³ï¼žã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®æ’¤åŽ»" + /> + <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="知的財産ã®ä¾µå®³ï¼žã‚³ãƒ”ーBotåŠã³æ¨©é™ã®æ‚ªç”¨" + /> + <combo_box.item name="Intolerance" label="ä¸å¯›å®¹" + /> + <combo_box.item name="Land__Abuse_of_sandbox_resources" label="土地>サンドボックス・リソースã®ä¹±ç”¨" + /> + <combo_box.item name="Land__Encroachment__Objects_textures" label="土地>ä¸æ³•ä¾µå…¥ï¼žã‚ªãƒ–ジェクト/テクスãƒãƒ£ãƒ¼" + /> + <combo_box.item name="Land__Encroachment__Particles" label="土地>ä¸æ³•ä¾µå…¥ï¼žãƒ‘ーティクル" + /> + <combo_box.item name="Land__Encroachment__Trees_plants" label="土地>ä¸æ³•ä¾µå…¥ï¼žæ¨¹æœ¨/æ¤ç‰©" + /> + <combo_box.item name="Wagering_gambling" label="è³ã‘/ギャンブル" + /> + <combo_box.item name="Other" label="ãã®ä»–" + /> </combo_box> <text name="abuser_name_title"> 迷惑ユーザーã®åå‰ï¼š diff --git a/indra/newview/skins/default/xui/ja/floater_script_preview.xml b/indra/newview/skins/default/xui/ja/floater_script_preview.xml index 4cf485155af87d53163ca288d6a387320217c7c4..ef729e0f6fd31a7a368123772502def548e9af36 100644 --- a/indra/newview/skins/default/xui/ja/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_script_preview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview lsl text" title="スクリプト:回転スクリプト"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> 説明: </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_script_search.xml b/indra/newview/skins/default/xui/ja/floater_script_search.xml index 2accc0f1e41d8b4c09b9c7e08124068eddcc9543..90f4393bf7b41ba56da0adf96ae3b3a81c87e7d9 100644 --- a/indra/newview/skins/default/xui/ja/floater_script_search.xml +++ b/indra/newview/skins/default/xui/ja/floater_script_search.xml @@ -4,10 +4,10 @@ <button label="検索" label_selected="検索" name="search_btn" /> <button label="ç½®æ›" label_selected="ç½®æ›" name="replace_btn" /> <button label="ã™ã¹ã¦ç½®æ›" label_selected="ã™ã¹ã¦ç½®æ›" name="replace_all_btn" /> - <text type="string" length="1" name="txt"> + <text name="txt"> 検索 </text> - <text type="string" length="1" name="txt2"> + <text name="txt2"> ç½®æ› </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml index 98db0e358e55308c9220a2cb73064416febdf994..fb9f7be7a9378d5ad0171f3f2d6155d9eca69092 100644 --- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml @@ -15,12 +15,8 @@ <button label="é€ä¿¡" name="send_btn"/> <button label="ä¿å˜ï¼ˆL$[AMOUNT])" name="upload_btn"/> <flyout_button label="ä¿å˜" name="save_btn" tool_tip="ç”»åƒã‚’ファイルã«ä¿å˜"> - <flyout_button.item name="save_item"> - ä¿å˜ - </flyout_button.item> - <flyout_button.item name="saveas_item"> - åå‰ã‚’付ã‘ã¦ä¿å˜ - </flyout_button.item> + <flyout_button.item name="save_item" label="ä¿å˜"/> + <flyout_button.item name="saveas_item" label="åå‰ã‚’付ã‘ã¦ä¿å˜"/> </flyout_button> <button label="ã‚ャンセル" name="discard_btn"/> <button label="全表示 >>" name="more_btn" tool_tip="高度ãªã‚ªãƒ—ション"/> diff --git a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml index 79af253bdcccfdf42fd1122e6929cf02c6ab6a97..5102116069f8ae2be108f10ce8c2fc6f0afc1fb9 100644 --- a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml @@ -3,10 +3,10 @@ <string name="choose_picture"> クリックã—ã¦å†™çœŸã‚’é¸æŠž </string> - <text type="string" length="1" name="Multiple"> + <text name="Multiple"> 複数 </text> - <text type="string" length="1" name="unknown"> + <text name="unknown"> 寸法: [DIMENSIONS] </text> <button label="デフォルト" label_selected="デフォルト" name="Default" /> diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml index 477ba2bdcb507579b23e04d5e0fdfdc63c98e2cc..36aec17f9a5f877f95fcd624e9ad91b3ec9bce22 100644 --- a/indra/newview/skins/default/xui/ja/floater_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_tools.xml @@ -5,16 +5,22 @@ <button label="" label_selected="" name="button edit" tool_tip="編集"/> <button label="" label_selected="" name="button create" tool_tip="作æˆ"/> <button label="" label_selected="" name="button land" tool_tip="土地"/> - <check_box label="ズーム" name="radio zoom"/> - <check_box label="軌跡(Ctrl)" name="radio orbit"/> - <check_box label="パン(Ctrl+Shift)" name="radio pan"/> - <check_box label="移動" name="radio move"/> - <check_box label="æŒã¡ä¸Šã’る(Ctrl)" name="radio lift"/> - <check_box label="スピン(Ctrl+Shift)" name="radio spin"/> - <check_box label="ä½ç½®" name="radio position"/> - <check_box label="回転(Ctrl)" name="radio rotate"/> - <check_box label="引伸ã°ã™ï¼ˆCtrl+Shift)" name="radio stretch"/> - <check_box label="テクスãƒãƒ£ãƒ¼ã‚’é¸æŠž" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="ズーム" name="radio zoom"/> + <radio_item label="軌跡(Ctrl)" name="radio orbit"/> + <radio_item label="パン(Ctrl+Shift)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="移動" name="radio move"/> + <radio_item label="æŒã¡ä¸Šã’る(Ctrl)" name="radio lift"/> + <radio_item label="スピン(Ctrl+Shift)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="ä½ç½®" name="radio position"/> + <radio_item label="回転(Ctrl)" name="radio rotate"/> + <radio_item label="引伸ã°ã™ï¼ˆCtrl+Shift)" name="radio stretch"/> + <radio_item label="テクスãƒãƒ£ãƒ¼ã‚’é¸æŠž" name="radio select face"/> + </radio_group> <check_box label="リンク部ä½ã‚’編集" name="checkbox edit linked parts"/> <text name="text ruler mode" width="88"> ルーラー: @@ -50,13 +56,15 @@ <check_box label="é¸æŠžã—ãŸã‚‚ã®ã‚’コピー" name="checkbox copy selection"/> <check_box label="ä¸å¤®ã«ä½ç½®" name="checkbox copy centers"/> <check_box label="回転" name="checkbox copy rotates"/> - <check_box label="土地をé¸æŠž" name="radio select land"/> - <check_box label="ãªã‚‰ã™" name="radio flatten"/> - <check_box label="隆起" name="radio raise"/> - <check_box label="低ãã™ã‚‹" name="radio lower"/> - <check_box label="滑らã‹ã«ã™ã‚‹" name="radio smooth"/> - <check_box label="凸凹ã«ã™ã‚‹" name="radio noise"/> - <check_box label="å…ƒã«æˆ»ã™" name="radio revert"/> + <radio_group name="land_radio_group"> + <radio_item label="土地をé¸æŠž" name="radio select land"/> + <radio_item label="ãªã‚‰ã™" name="radio flatten"/> + <radio_item label="隆起" name="radio raise"/> + <radio_item label="低ãã™ã‚‹" name="radio lower"/> + <radio_item label="滑らã‹ã«ã™ã‚‹" name="radio smooth"/> + <radio_item label="凸凹ã«ã™ã‚‹" name="radio noise"/> + <radio_item label="å…ƒã«æˆ»ã™" name="radio revert"/> + </radio_group> <button label="é©ç”¨" label_selected="é©ç”¨" name="button apply to selection" tool_tip="é¸æŠžã—ãŸåœŸåœ°ã‚’ä¿®æ£"/> <text name="Bulldozer:"> ブルドーザー: @@ -68,7 +76,7 @@ 強度 </text> <text name="obj_count"> - é¸æŠžã‚ªãƒ–ジェクト:[COUNT] + é¸æŠžæ¸ˆã‚ªãƒ–ジェクト:[COUNT] </text> <text name="prim_count"> プリム:[COUNT] @@ -105,9 +113,7 @@ <text name="Permissions:"> æ¨©é™ </text> - <text name="perm_modify"> - ã“ã®ã‚ªãƒ–ジェクトã¯ä¿®æ£ã§ãã¾ã™ã€‚ - </text> + <check_box label="グループã§å…±åŒç®¡ç†" name="checkbox share with group" tool_tip="è¨å®šã—ãŸã‚°ãƒ«ãƒ¼ãƒ—ã«å±žã™ã‚‹ã™ã¹ã¦ã®ãƒ¡ãƒ³ãƒãƒ¼ã¨ã“ã®ã‚ªãƒ–ジェクトã®æ¨©é™ã‚’共有ã—ã¾ã™ã€‚ 役割制é™ã‚’有効ã«ã™ã‚‹ã«ã¯ã€è²æ¸¡ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"/> <string name="text deed continued"> è²æ¸¡... @@ -123,22 +129,17 @@ <text name="Cost"> ä¾¡æ ¼ï¼š L$ </text> - <radio_group left="30" name="sale type"> - <radio_item name="Original" label="オリジナル" /> - <radio_item left="82" name="Copy" label="コピー" /> - <radio_item left="148" name="Contents" label="コンテンツ" /> - </radio_group> - <text name="Next owner can:"> - 次ã®ã‚ªãƒ¼ãƒŠãƒ¼ãŒå®Ÿè¡Œã§ãã‚‹æ“作: - </text> - <check_box label="ä¿®æ£" name="checkbox next owner can modify"/> - <check_box label="コピー" name="checkbox next owner can copy"/> - <check_box label="å†è²©ï¼ãƒ—レゼント" name="checkbox next owner can transfer"/> + <combo_box name="sale type"> + <combo_box.item label="コピー" name="Copy"/> + <combo_box.item label="コンテンツ" name="Contents"/> + <combo_box.item label="オリジナル" name="Original"/> + </combo_box> + <text name="label click action"> 左クリックã™ã‚‹ã¨ï¼š </text> <combo_box name="clickaction"> - <combo_box.item name="Touch/grab(default)" label="触るï¼ã¤ã‹ã‚€ (デフォルト)"/> + <combo_box.item name="Touch/grab(default)" label="触るï¼ã¤ã‹ã‚€ (デフォルト)"/> <combo_box.item name="Sitonobject" label="オブジェクトã«åº§ã‚‹"/> <combo_box.item name="Buyobject" label="オブジェクトを購入"/> <combo_box.item name="Payobject" label="オブジェクトã¸ã®æ”¯æ‰•ã„"/> @@ -146,11 +147,15 @@ <combo_box.item name="Play" label="区画メディアをå†ç”Ÿ"/> <combo_box.item name="Opemmedia" label="区画メディアを開ã"/> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + ã“ã®ã‚ªãƒ–ジェクトã¯ä¿®æ£ã§ãã¾ã™ã€‚ + </text> <text name="B:"> B: </text> <text name="O:"> - O; + O: </text> <text name="G:"> G: @@ -164,6 +169,13 @@ <text name="F:"> F: </text> + <text name="Next owner can:"> + 次ã®ã‚ªãƒ¼ãƒŠãƒ¼ãŒå®Ÿè¡Œã§ãã‚‹æ“作: + </text> + <check_box label="ä¿®æ£" name="checkbox next owner can modify"/> + <check_box label="コピー" name="checkbox next owner can copy"/> + <check_box name="checkbox next owner can transfer"/> + </panel> <string name="text modify info 1"> ã“ã®ã‚ªãƒ–ジェクトã¯ä¿®æ£ã§ãã¾ã™ã€‚ </string> @@ -255,7 +267,7 @@ <spinner label="B" name="cut begin"/> <spinner label="E" name="cut end"/> <text name="text hollow"> - ä¸ç©º(空洞) + ä¸ç©ºï¼ˆç©ºæ´žï¼‰ </text> <text name="text skew"> 傾斜 @@ -316,7 +328,7 @@ 縫ã„ç›®ã®ã‚¿ã‚¤ãƒ— </text> <combo_box name="sculpt type control"> - <combo_box.item name="None" label="ãªã—)"/> + <combo_box.item name="None" label="(ãªã—)"/> <combo_box.item name="Sphere" label="çƒå½¢"/> <combo_box.item name="Torus" label="トーラス"/> <combo_box.item name="Plane" label="å¹³é¢"/> @@ -402,7 +414,7 @@ </text> <spinner label="水平(U)" name="TexScaleU"/> <check_box label="å転" name="checkbox flip s"/> - <spinner label="åž‚ç›´ (V)" name="TexScaleV"/> + <spinner label="垂直(V)" name="TexScaleV"/> <check_box label="å転" name="checkbox flip t"/> <text name="tex rotate"> 回転(度) @@ -421,7 +433,7 @@ ãšã‚Œ </text> <spinner label="水平(U)" name="TexOffsetU"/> - <spinner label="åž‚ç›´ (V)" name="TexOffsetV"/> + <spinner label="垂直(V)" name="TexOffsetV"/> <text name="textbox autofix" width="190"> メディア・テクスãƒãƒ£ãƒ¼ã‚’æƒãˆã‚‹ (最åˆã«ãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ï¼‰ @@ -457,43 +469,43 @@ <button label="土地を購入..." label_selected="土地を購入..." name="button buy land"/> <button label="土地を放棄..." label_selected="土地を放棄..." name="button abandon land"/> </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> 色ã®ä»˜ã„ãŸãƒãƒ³ãƒ‰ã‚’ドラッグã—ã¦ã‚ªãƒ–ジェクトを回転 - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> é¸æŠžã—ãŸå´ã‚’クリックã—ã€ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦å¼•ã伸ã°ã™ - </string> - <string name="status_move"> + </floater.string> + <floater.string name="status_move"> 移動:ドラッグã€ã‚³ãƒ”ー:Shiftを押ã—ãªãŒã‚‰ï¾„゙ラッグ - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_modifyland"> 土地をクリックã—ã€ãƒœã‚¿ãƒ³ã‚’押ã—ãŸã¾ã¾å…¥åŠ›ã—ã¦ä¿®æ£å¤‰æ›´ - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> クリックã—ドラッグã—ã¦è¦–界を調整 - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> 移動:ドラッグã€æŒã¡ä¸Šã’:Ctrlã€å›žè»¢ï¼šCtrl+Shift - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> インワールドã§ã‚¯ãƒªãƒƒã‚¯ã—ã¦ä½œæˆ - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> 土地をクリックã—ã€ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦é¸æŠž - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> ç”»é¢ - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> ãƒãƒ¼ã‚«ãƒ« - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> 世界 - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> å‚ç…§ - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> アタッãƒãƒ¡ãƒ³ãƒˆ - </string> + </floater.string> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml index 8286d29973f0d7f9092b6a313f1d4afa3e8d3dd1..fc9ddf509607d4c4cd1d98343fd80a213025bf4f 100644 --- a/indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml +++ b/indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml @@ -2,10 +2,10 @@ <floater name="modal container" title=" "> <button label="ä¿å˜" label_selected="ä¿å˜" name="Save" /> <button label="å–り消ã—" label_selected="å–り消ã—" name="Cancel" /> - <text type="string" length="1" name="Save item as:"> + <text name="Save item as:"> アイテムを別åã§ä¿å˜ï¼š </text> <line_editor name="name ed"> - æ–°è¦[DESC] + New [DESC] </line_editor> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml index f7fe65bb725a006c8750b8fcdcb1db77121f60aa..6a34e49d84360e6fe8a792cb147f6e6c6c7a228c 100644 --- a/indra/newview/skins/default/xui/ja/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml @@ -29,10 +29,10 @@ <check_box label="Mature" name="event_mature_chk"/> <check_box label="Adult" name="event_adult_chk"/> <combo_box label="オンラインã®ãƒ•ãƒ¬ãƒ³ãƒ‰" name="friend combo" tool_tip="地図ã«è¡¨ç¤ºã•ã‚ŒãŸãƒ•ãƒ¬ãƒ³ãƒ‰"> - <combo_box.item name="none_selected" label="オンラインã®ãƒ•ãƒ¬ãƒ³ãƒ‰" /> + <combo_box.item name="item1" label="オンラインã®ãƒ•ãƒ¬ãƒ³ãƒ‰" /> </combo_box> <combo_box label="ランドマーク" name="landmark combo" tool_tip="地図ã«è¡¨ç¤ºã•ã‚ŒãŸãƒ©ãƒ³ãƒ‰ãƒžãƒ¼ã‚¯"> - <combo_box.item name="none_selected" label="ランドマーク" /> + <combo_box.item name="item1" label="ランドマーク" /> </combo_box> <line_editor label="地域åã§æ¤œç´¢" name="location" tool_tip="地域åを入力ã—ã¦ãã ã•ã„。"/> <button label="検索" name="DoSearch" tool_tip="地域検索"/> diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml index b6d09f893b672dc645c1fb9b1b392fd6ceaeeaa0..f9d91c31faae3c276ec310f30b6fe957705ed6b9 100644 --- a/indra/newview/skins/default/xui/ja/notifications.xml +++ b/indra/newview/skins/default/xui/ja/notifications.xml @@ -1030,7 +1030,7 @@ L$ã¯è¿”金ã•ã‚Œã¾ã›ã‚“。 [NAME] ã«ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—ã®ã‚ªãƒ•ã‚¡ãƒ¼ã‚’ã—ã¾ã™ã‹ï¼Ÿ <form name="form"> - <input name="message" type="text"> + <input name="message"> フレンドã¨ã—ã¦ç™»éŒ²ã—ã¦ãã‚Œã¾ã™ã‹ï¼Ÿ </input> <button name="Offer" text="OK"/> @@ -1459,7 +1459,7 @@ F1ã‚ーを押ã—ã¦ãã ã•ã„。 <notification name="KickUser"> ã©ã‚“ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã—ã¦ã€ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’追ã„出ã—ã¾ã™ã‹ï¼Ÿ <form name="form"> - <input name="message" type="text"> + <input name="message"> ã‚ãªãŸã¯ç®¡ç†è€…ã«ã‚ˆã‚Šãƒã‚°ã‚ªãƒ•ã•ã‚Œã¾ã—ãŸã€‚ </input> <button name="OK" text="OK"/> @@ -1469,7 +1469,7 @@ F1ã‚ーを押ã—ã¦ãã ã•ã„。 <notification name="KickAllUsers"> ã©ã‚“ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã—ã¦ã€ã‚°ãƒªãƒƒãƒ‰ã«ã„る全員を追ã„出ã—ã¾ã™ã‹ï¼Ÿ <form name="form"> - <input name="message" type="text"> + <input name="message"> ã‚ãªãŸã¯ç®¡ç†è€…ã«ã‚ˆã‚Šãƒã‚°ã‚ªãƒ•ã•ã‚Œã¾ã—ãŸã€‚ </input> <button name="OK" text="OK"/> @@ -1479,7 +1479,7 @@ F1ã‚ーを押ã—ã¦ãã ã•ã„。 <notification name="FreezeUser"> ã©ã‚“ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã—ã¦ã€ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’フリーズã—ã¾ã™ã‹ï¼Ÿ <form name="form"> - <input name="message" type="text"> + <input name="message"> ã‚ãªãŸã¯ãƒ•ãƒªãƒ¼ã‚ºã•ã‚Œã¦ã„ã¾ã™ã€‚ å‹•ãã“ã¨ã‚‚ãƒãƒ£ãƒƒãƒˆã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã›ã‚“。 管ç†è€…ãŒIMを通ã˜ã¦ã‚ãªãŸã«é€£çµ¡ã—ã¾ã™ã€‚ </input> <button name="OK" text="OK"/> @@ -1489,7 +1489,7 @@ F1ã‚ーを押ã—ã¦ãã ã•ã„。 <notification name="UnFreezeUser"> ã©ã‚“ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã—ã¦ã€ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ãƒªãƒ¼ã‚ºã‚’解除ã—ã¾ã™ã‹ï¼Ÿ <form name="form"> - <input name="message" type="text"> + <input name="message"> ã‚‚ã†ãƒ•ãƒªãƒ¼ã‚ºã•ã‚Œã¦ã„ã¾ã›ã‚“。 </input> <button name="OK" text="OK"/> @@ -1499,7 +1499,7 @@ F1ã‚ーを押ã—ã¦ãã ã•ã„。 <notification name="OfferTeleport"> 次ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æ·»ãˆã¦ã‚ãªãŸãŒä»Šã„ã‚‹å ´æ‰€ã¸ã®ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã‚’é€ã‚Šã¾ã™ã‹ï¼Ÿ <form name="form"> - <input name="message" type="text"> + <input name="message"> [REGION]ã«æ¥ã¾ã›ã‚“ã‹ï¼Ÿ </input> <button name="OK" text="OK"/> @@ -1509,7 +1509,7 @@ F1ã‚ーを押ã—ã¦ãã ã•ã„。 <notification name="OfferTeleportFromGod"> ユーザーをゴッド・コールã§å‘¼ã³å¯„ã›ã¾ã™ã‹ï¼Ÿ <form name="form"> - <input name="message" type="text"> + <input name="message"> [REGION]ã«æ¥ã¾ã›ã‚“ã‹ï¼Ÿ </input> <button name="OK" text="OK"/> @@ -1524,7 +1524,7 @@ F1ã‚ーを押ã—ã¦ãã ã•ã„。 今ã‚ãªãŸã®ä¸å‹•ç”£ã«ã„る人全員ã«é€ã‚‹ çŸã„メッセージを入力ã—ã¦ãã ã•ã„。 <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="å–り消ã—"/> </form> @@ -1719,7 +1719,7 @@ L$[AMOUNT]ã§ã€ã“ã®ã‚¯ãƒ©ã‚·ãƒ•ã‚¡ã‚¤ãƒ‰åºƒå‘Šã‚’今ã™ã公開ã—ã¾ã™ã‹ ã“ã®åœ°åŸŸã«ã„る人全員ã«é€ã‚‹ çŸã„メッセージを入力ã—ã¦ãã ã•ã„。 <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="å–り消ã—"/> </form> @@ -2094,14 +2094,14 @@ RGBã€256x256ã§ã€ãƒãƒ£ãƒ³ãƒãƒ«æ•°ãŒ13 ã“ã®è³¼å…¥ã‚’続行ã—ã¾ã™ã‹ï¼Ÿ <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> </notification> - <notification name="ConfirmPurchasePassword" type="password"> + <notification name="ConfirmPurchasePassword"> ã“ã®å–引ã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šè¡Œã‚ã‚Œã¾ã™ï¼š [ACTION] ã“ã®è³¼å…¥ã‚’続行ã—ã¾ã™ã‹ï¼Ÿ パスワードをå†å…¥åŠ›ã—ã€ã€ŒOKã€ã‚’クリックã—ã¦ãã ã•ã„。 <form name="form"> - <input name="message" type="password"/> + <input name="message"/> <button name="ConfirmPurchase" text="OK"/> <button name="Cancel" text="å–り消ã—"/> </form> @@ -2527,7 +2527,7 @@ Linden Lab <notification name="NewSkyPreset"> æ–°ã—ã„空ã®åå‰ã‚’指定ã—ã¦ãã ã•ã„。 <form name="form"> - <input name="message" type="text"> + <input name="message"> æ–°ã—ã„事å‰è¨å®š </input> <button name="OK" text="OK"/> @@ -2540,7 +2540,7 @@ Linden Lab <notification name="NewWaterPreset"> æ–°ã—ã„æ°´ã®äº‹å‰è¨å®šã®åå‰ã‚’指定ã—ã¦ãã ã•ã„。 <form name="form"> - <input name="message" type="text"> + <input name="message"> æ–°ã—ã„事å‰è¨å®š </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml index ea2953038e597b561ed10f60532fa2350aabe5d3..266937e216fd437f4ecf00ff0571badd8c53f109 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml @@ -37,9 +37,9 @@ (オーナーã¯å¤ªå—ã§è¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ï¼‰ </text> <name_list name="visible_members"> - <column label="メンãƒãƒ¼å" name="name"/> - <column label="タイトル" name="title"/> - <column label="最終ãƒã‚°ã‚¤ãƒ³" name="online"/> + <name_list.columns label="メンãƒãƒ¼å" name="name"/> + <name_list.columns label="タイトル" name="title"/> + <name_list.columns label="最終ãƒã‚°ã‚¤ãƒ³" name="online"/> </name_list> <text name="text_group_preferences"> グループ環境è¨å®š @@ -50,15 +50,9 @@ <check_box label="入会費:L$" name="check_enrollment_fee" tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®å‚åŠ ã«å…¥ä¼šè²»ã‚’å¿…é ˆã¨ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™"/> <spinner name="spin_enrollment_fee" tool_tip="「入会費ã€ãŒãƒã‚§ãƒƒã‚¯ã•ã‚Œã¦ã„ã‚‹å ´åˆã€æ–°è¦ä¼šå“¡ã¯å…¥ä¼šæ™‚ã«ã“ã“ã«æŒ‡å®šã•ã‚ŒãŸé‡‘é¡ã‚’支払ã†å¿…è¦ãŒã‚ã‚Šã¾ã™"/> <combo_box name="group_mature_check" tool_tip="ã‚°ãƒ«ãƒ¼ãƒ—æƒ…å ±ãŒMatureå‘ã‘ã‹ã©ã†ã‹ã®è¨å®šã‚’ã—ã¾ã™ã€‚"> - <combo_item name="select_mature"> - - Matureã®é¸æŠž - - </combo_item> - <combo_item name="mature"> - Matureコンテンツ - </combo_item> - <combo_item name="pg"> - PGコンテンツ - </combo_item> + <combo_box.item name="select_mature" label="- Matureã®é¸æŠž -"/> + <combo_box.item name="mature" label="Matureコンテンツ"/> + <combo_box.item name="pg" label="PGコンテンツ"/> </combo_box> <panel name="title_container"> <text name="active_title_label"> diff --git a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml index f55dbf90098f68a5baa0361daff66e423856e032..019d42c40a75061d38077f9df7503e5625e96efd 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml @@ -52,7 +52,8 @@ 平方メートル ([AMOUNT]最大) </text> <text name="group_over_limit_text"> - 使用ä¸ã®åœŸåœ°ã‚’サãƒãƒ¼ãƒˆã™ã‚‹ã«ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—・メンãƒãƒ¼ãŒã•ã‚‰ã«å¤šãã®åœŸåœ°ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’æä¾›ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ + 使用ä¸ã®åœŸåœ°ã‚’サãƒãƒ¼ãƒˆã™ã‚‹ã«ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—・メンãƒãƒ¼ãŒã•ã‚‰ã«å¤š +ãã®åœŸåœ°ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’æä¾›ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ </text> <text name="group_money_heading"> グループL$ diff --git a/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/indra/newview/skins/default/xui/ja/panel_group_notices.xml index 090ae2e329b0f31ea8b32d68f94bcf58de2e136d..afca4c4dfd200768cd1fc24d20ce830f84be2bf0 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml @@ -15,9 +15,7 @@ グループ通知アーカイブ </text> <text name="lbl2"> - 通知ã¯14日間ä¿å˜ã•ã‚Œã¾ã™ã€‚閲覧ã—ãŸã„通知をクリックã—ã¦ãã ã•ã„。 -æ–°ç€ã®é€šçŸ¥ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã«ã¯ã€ã€Œæ›´æ–°ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚ -ãŸã ã—ã€å„グループã®é€šçŸ¥ãƒªã‚¹ãƒˆã¯1æ—¥ã‚ãŸã‚Š200通ã«åˆ¶é™ã•ã‚Œã¾ã™ã€‚ + 通知ã¯14日間ä¿å˜ã•ã‚Œã¾ã™ã€‚ãŸã ã—ã€å„グループã®é€šçŸ¥ãƒªã‚¹ãƒˆã¯1æ—¥ã‚ãŸã‚Š200通ã«åˆ¶é™ã•ã‚Œã¾ã™ã€‚ </text> <scroll_list name="notice_list"> <column label="" name="icon"/> @@ -35,10 +33,7 @@ é€šçŸ¥ã‚’ä½œæˆ </text> <text name="lbl2"> - 件åを入力ã—ã¦é€šçŸ¥ã‚’é€ã‚Šã¾ã™ã€‚ -æŒã¡ç‰©ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’1ã¤ã“ã®ãƒ‘ãƒãƒ«ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€ -通知ã«æ·»ä»˜ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 添付ã§ãã‚‹ã®ã¯ã‚³ãƒ”ー〠-è²æ¸¡ãŒå¯èƒ½ãªã‚¢ã‚¤ãƒ†ãƒ ã§ã€ãƒ•ã‚©ãƒ«ãƒ€ã‚’é€ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 + æŒã¡ç‰©ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’1ã¤ã“ã®ãƒ‘ãƒãƒ«ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€é€šçŸ¥ã«æ·»ä»˜ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 添付ã§ãã‚‹ã®ã¯ã‚³ãƒ”ーã€è²æ¸¡ãŒå¯èƒ½ãªã‚¢ã‚¤ãƒ†ãƒ ã§ã€ãƒ•ã‚©ãƒ«ãƒ€ã‚’é€ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 </text> <text name="lbl3"> 件å: diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml index dc57b51b0d8be314123cb49e5cc7308566e9ef6d..0f270beb2c5e38813f3de92335758d7210cff92d 100644 --- a/indra/newview/skins/default/xui/ja/panel_login.xml +++ b/indra/newview/skins/default/xui/ja/panel_login.xml @@ -17,7 +17,7 @@ <combo_box name="start_location_combo" left_delta="92" width="172"> <combo_box.item name="MyHome" label="自宅(ホーム)" /> <combo_box.item name="MyLastLocation" label="最後ã«ãƒã‚°ã‚¢ã‚¦ãƒˆã—ãŸå ´æ‰€" /> - <combo_box.item name="Typeregionname" label="lt; 地域ã®åå‰å…¥åŠ› >" /> + <combo_box.item name="Typeregionname" label="< 地域ã®åå‰å…¥åŠ› >" /> </combo_box> <check_box label="パスワードを記憶" name="remember_check" left_delta="180"/> <text name="full_screen_text"> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b6f1f061ba26da3767bb94f2bfba2d89e2561eb --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel name="advanced"> + <text name="AspectRatioLabel1" tool_tip="(幅/高ã•ï¼‰"> + 縦横比: + </text> + <combo_box name="aspect_ratio" tool_tip="(幅/高ã•ï¼‰"> + <combo_box.item label="4:3(標準CRT)" name="item1"/> + <combo_box.item label="5:4(1280x1024 LCD)" name="item2"/> + <combo_box.item label="8:5(ワイドスクリï¼ãƒ³ï¼‰" name="item3"/> + <combo_box.item label="16:9(ワイドスクリï¼ãƒ³ï¼‰" name="item4"/> + </combo_box> +</panel> 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 875755a8c780eb5840da56ac219fe546517d6ee8..3bf303eaa302ae8021cfd7803ddb79653906492f 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml @@ -1,52 +1,57 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel label="ãƒãƒ£ãƒƒãƒˆ" name="chat"> - <text length="1" name="text_box" type="string"> + <text name="text_box"> ãƒãƒ£ãƒƒãƒˆã®ãƒ•ã‚©ãƒ³ãƒˆï¼š </text> <radio_group name="chat_font_size"> - <radio_item length="1" name="radio" type="string" label="å°" /> - <radio_item length="1" name="radio2" type="string" label="ä¸" /> - <radio_item length="1" name="radio3" type="string" label="大" /> + <radio_item name="radio" label="å°" /> + <radio_item name="radio2" label="ä¸" /> + <radio_item name="radio3" label="大" /> </radio_group> - <text length="1" name="text_box2" type="string"> - ãƒãƒ£ãƒƒãƒˆãƒ»ã‚«ãƒ©ãƒ¼ï¼š + <color_swatch label="自分" name="user"/> + <text name="text_box1"> + 自分 + </text> + <color_swatch label="ãã®ä»–" name="agent"/> + <text name="text_box2"> + ãã®ä»– </text> - <color_swatch label="自分" name="user" width="56"/> - <color_swatch label="ãã®ä»–" name="agent" left_delta="60"/> <color_swatch label="IM" name="im"/> + <text name="text_box3"> + IM + </text> <color_swatch label="システム" name="system"/> - <color_swatch label="ãƒãƒ£ãƒƒãƒˆ" name="users"/> - <color_swatch label="オブジェクト" name="objects" width="56"/> - <color_swatch label="所有者" name="owner" left_delta="60"/> + <text name="text_box4"> + システム + </text> + <color_swatch label="エラー" name="script_error"/> + <text name="text_box5"> + エラー + </text> + <color_swatch label="オブジェクト" name="objects"/> + <text name="text_box6"> + オブジェクト + </text> + <color_swatch label="所有者" name="owner"/> + <text name="text_box7"> + 所有者 + </text> <color_swatch label="å¹å‡ºã—" name="background"/> + <text name="text_box8"> + å¹å‡ºã— + </text> <color_swatch label="URL" name="links"/> - <text length="1" name="text_box3" type="string"> - ãƒãƒ£ãƒƒãƒˆãƒ»ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ï¼š + <text name="text_box9"> + URL </text> <spinner label="フェード" name="fade_chat_time"/> - <text length="1" name="text_box4" type="string"> - (秒後) - </text> - <text length="1" name="text_box5" type="string"> - (行数) - </text> <slider label="ä¸é€æ˜Žåº¦" name="console_opacity"/> - <text length="1" name="text_box6" type="string"> - ãƒãƒ£ãƒƒãƒˆãƒ»ã‚ªãƒ—ション: - </text> <check_box label="全画é¢å¹…を使用 (å†èµ·å‹•ãŒå¿…è¦)" name="chat_full_width_check"/> <check_box label="Enterã‚ーを押ã—ãŸå¾Œãƒãƒ£ãƒƒãƒˆ ãƒãƒ¼ã‚’é–‰ã˜ã‚‹" name="close_chat_on_return_check"/> <check_box label="ãƒãƒ£ãƒƒãƒˆä¸ã¯ã€ã„ã¤ã§ã‚‚矢å°ã‚ーã§ã‚¢ãƒã‚¿ãƒ¼ã‚’移動å¯èƒ½" name="arrow_keys_move_avatar_check"/> <check_box label="ãƒãƒ¼ã‚«ãƒ«ãƒãƒ£ãƒƒãƒˆã«ã‚¿ã‚¤ãƒ スタンプを表示" name="show_timestamps_check"/> <check_box label="ãƒãƒ£ãƒƒãƒˆä¸ã¯ã‚¿ã‚¤ãƒ”ング動作ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’å†ç”Ÿ" name="play_typing_animation"/> - <text length="1" name="text_box7" type="string"> - ãƒãƒ£ãƒƒãƒˆã®å¹ã出ã—: - </text> <check_box label="ãƒãƒ£ãƒƒãƒˆã®å¹ã出ã—を表示" name="bubble_text_chat"/> <slider label="ä¸é€æ˜Žåº¦" name="bubble_chat_opacity"/> - <text length="1" name="text_box8" type="string"> - スクリプト・エラー: - </text> <check_box label="スクリプト・エラーã¨è¦å‘Šã‚’ãƒãƒ£ãƒƒãƒˆåŒæ§˜ã«è¡¨ç¤º" name="script_errors_as_chat"/> - <color_swatch label="エラー" name="script_error"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml index 3e3d62640facf139575f525f883e7b71beff3bef..6c3ad93d4fdebf9772702b8b144f12ca6a6478f3 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml @@ -1,13 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="一般" name="general_panel"> - <radio_group name="default_start_location"> - <radio_item name="MyHome" tool_tip="常ã«è‡ªå®…(ホーム)ã«ãƒã‚°ã‚¤ãƒ³"> - 自宅(ホーム) - </radio_item> - <radio_item name="MyLastLocation" tool_tip="常ã«æœ€å¾Œã«ã„ãŸå ´æ‰€ã«ãƒã‚°ã‚¤ãƒ³"> - 最後ã«ãƒã‚°ã‚¢ã‚¦ãƒˆã—ãŸå ´æ‰€ - </radio_item> - </radio_group> + <combo_box name="start_location_combo"> + <combo_box.item name="MyHome" tool_tip="常ã«è‡ªå®…(ホーム)ã«ãƒã‚°ã‚¤ãƒ³" label="自宅(ホーム)"/> + <combo_box.item name="MyLastLocation" tool_tip="常ã«æœ€å¾Œã«ã„ãŸå ´æ‰€ã«ãƒã‚°ã‚¤ãƒ³" label="最後ã«ãƒã‚°ã‚¢ã‚¦ãƒˆã—ãŸå ´æ‰€"/> + </combo_box> <check_box label="ãƒã‚°ã‚¤ãƒ³ç”»é¢ã«ãƒã‚°ã‚¤ãƒ³ä½ç½®ã‚’表示" name="show_location_checkbox"/> <combo_box name="fade_out_combobox"> <combo_box.item name="Never" label="ãªã—"/> @@ -35,72 +31,60 @@ アクセスã—ãŸã„コンテンツ: </text> <combo_box name="maturity_desired_combobox"> - <combo_item name="Desired_Adult"> - PGã€Mature〠Adult - </combo_item> - <combo_item name="Desired_Mature"> - PGã¨Mature - </combo_item> - <combo_item name="Desired_PG"> - PGé™å®š - </combo_item> + <combo_box.item name="Desired_Adult" label="PGã€Matureã€Adult"/> + <combo_box.item name="Desired_Mature" label="PGã¨Mature"/> + <combo_box.item name="Desired_PG" label="PGé™å®š"/> </combo_box> <text name="maturity_desired_textbox"> PGé™å®š </text> - <text length="1" name="start_location_textbox" type="string"> + <text name="start_location_textbox"> ãƒã‚°ã‚¤ãƒ³ä½ç½®ï¼š </text> - <text length="1" name="show_names_textbox" type="string"> + <text name="show_names_textbox"> åå‰ã‚’表示: </text> - <text length="1" name="effects_color_textbox" type="string"> + <text name="effects_color_textbox"> 自分ã®åŠ¹æžœã®è‰²ï¼š </text> - <text length="1" name="seconds_textbox" type="string"> + <text name="seconds_textbox"> 秒 </text> - <text length="1" name="crash_report_textbox" type="string"> + <text name="crash_report_textbox"> ã‚¯ãƒ©ãƒƒã‚·ãƒ¥å ±å‘Šï¼š </text> - <text length="1" name="language_textbox" type="string"> + <text name="language_textbox"> 言語: </text> - <text length="1" name="language_textbox2" type="string"> + <text name="language_textbox2"> (å†èµ·å‹•ã«ã¦åæ˜ ï¼‰ </text> <string name="region_name_prompt"> <地域ã®åå‰å…¥åŠ›> </string> <combo_box name="crash_behavior_combobox"> - <combo_box.item length="1" name="Askbeforesending" type="string" label="é€ã‚‹å‰ã«ç¢ºèªã™ã‚‹"/> - <combo_box.item length="1" name="Alwayssend" type="string" label="常ã«é€ä¿¡"/> - <combo_box.item length="1" name="Neversend" type="string" label="é€ä¿¡ã—ãªã„"/> + <combo_box.item name="Askbeforesending" label="é€ã‚‹å‰ã«ç¢ºèªã™ã‚‹"/> + <combo_box.item name="Alwayssend" label="常ã«é€ä¿¡"/> + <combo_box.item name="Neversend" label="é€ä¿¡ã—ãªã„"/> </combo_box> <combo_box name="language_combobox"> - <combo_box.item length="1" name="System Default Language" type="string" label="システム・デフォルト"/> - <combo_box.item length="1" name="English" type="string" label="English (英語)"/> - <combo_box.item length="1" name="Danish" type="string" label="Dansk (デンマーク語) – ベータ"/> - <combo_box.item length="1" name="Deutsch(German)" type="string" label="Deutsch (ドイツ語) – ベータ"/> - <combo_box.item length="1" name="Spanish" type="string" label="Español (スペイン語) – ベータ"/> - <combo_box.item length="1" name="French" type="string" label="Français (フランス語) – ベータ"/> - <combo_box.item name="Hungarian" label="Magyar (ãƒãƒ³ã‚¬ãƒªãƒ¼èªž) - ベータ"/> - <combo_box.item name="Polish" label="Polski (ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªž) - ベータ"/> - <combo_box.item length="1" name="Portugese" type="string" label="Português (ãƒãƒ«ãƒˆã‚¬ãƒ«èªž) – ベータ"/> - <combo_box.item name="Russian" label="РуÑÑкий (ãƒã‚·ã‚¢èªž) - ベータ"/> - <combo_box.item name="Ukrainian" label="УкраїнÑька (ウクライナ語) - ベータ"/> - <combo_box.item length="1" name="Chinese" type="string" label="ä¸æ–‡ (简体) (ä¸å›½èªž) - ベータ"/> - <combo_box.item length="1" name="(Japanese)" type="string" label="日本語 – ベータ"/> - <combo_box.item length="1" name="(Korean)" type="string" label="í•œêµì–´ (韓国語) – ベータ"/> - <combo_item name="Italian"> - Italiano (イタリア語) - ベータ - </combo_item> - <combo_item name="Dutch"> - Nederlands (オランダ語) - ベータ - </combo_item> - </combo_item> - <combo_item name="Turkish"> - Türkçe (トルコ語) - ベータ + <combo_box.item name="System Default Language" label="システム・デフォルト"/> + <combo_box.item name="English" label="English (英語)"/> + <combo_box.item name="Danish" label="Dansk (デンマーク語) – ベータ"/> + <combo_box.item name="Deutsch(German)" label="Deutsch (ドイツ語) – ベータ"/> + <combo_box.item name="Spanish" label="Español (スペイン語) – ベータ"/> + <combo_box.item name="French" label="Français (フランス語) – ベータ"/> + <combo_box.item name="Italian" label="Italiano (イタリア語) - ベータ"/> + <combo_box.item name="Hungarian" label="Magyar (ãƒãƒ³ã‚¬ãƒªãƒ¼èªžï¼‰ - ベータ"/> + <combo_box.item name="Dutch" label="Nederlands (オランダ語) - ベータ"/> + <combo_box.item name="Polish" label="Polski (ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªžï¼‰ - ベータ"/> + <combo_box.item name="Portugese" label="Português (ãƒãƒ«ãƒˆã‚¬ãƒ«èªžï¼‰ – ベータ"/> + <combo_box.item name="Russian" label="РуÑÑкий (ãƒã‚·ã‚¢èªžï¼‰ - ベータ"/> + <combo_box.item name="Turkish" label="Türkçe (トルコ語) - ベータ"/> + <combo_box.item name="Ukrainian" label="УкраїнÑька (ウクライナ語) - ベータ"/> + <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (ä¸å›½èªžï¼‰ - ベータ"/> + <combo_box.item name="(Japanese)" label="日本語 – ベータ"/> + <combo_box.item name="(Korean)" label="í•œêµì–´ (韓国語) – ベータ"/> </combo_box> <check_box label="言語をオブジェクトã¨å…±æœ‰" name="language_is_public" tool_tip="優先言語をインワールドã®ã‚ªãƒ–ジェクトãŒèªè˜ã™ã‚‹"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml index b70f04645f35679c9505d9f5d8211d48c6f89123..636c137b4b689d0724f2d48b38b694c203b5cc2d 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel label="表示" name="Display panel"> - <text type="string" length="1" name="text"> + <text name="text"> 表示解åƒåº¦ï¼š </text> <button label="?" name="GraphicsPreferencesHelpButton" /> @@ -8,10 +8,10 @@ <text_editor name="voice_chat_description"> ãƒã‚§ãƒƒã‚¯ç„¡ã—ã®å ´åˆã¯ã€ãƒã‚°ã‚¤ãƒ³æ™‚ã«ãƒ•ãƒ«ã‚¹ã‚¯ãƒªãƒ¼ãƒ³è¡¨ç¤º </text_editor> - <text type="string" length="1" name="Fullscreen Aspect Ratio:"> + <text name="Fullscreen Aspect Ratio:"> 全画é¢ã®ç¸¦æ¨ªæ¯”: </text> - <text type="string" length="1" name="(width / height)"> + <text name="(width / height)"> (幅ï¼é«˜ã•ï¼‰ </text> <text_editor bottom="-56" height="40" name="FullScreenInfo" width="480"> @@ -34,19 +34,19 @@ 縦横比: </text> <combo_box name="aspect_ratio" tool_tip="(幅/高ã•ï¼‰"> - <combo_box.item type="string" length="1" name="4:3(StandardCRT)" label="4:3(標準CRT)" /> - <combo_box.item type="string" length="1" name="5:4(1280x1024LCD)" label="5:4(1280x1024 LCD)" /> + <combo_box.item name="4:3(StandardCRT)" label="4:3(標準CRT)" /> + <combo_box.item name="5:4(1280x1024LCD)" label="5:4(1280x1024 LCD)" /> <combo_box.item name="8:5(Widescreen)" label="8:5(ワイドスクリï¼ãƒ³ï¼‰" /> - <combo_box.item type="string" length="1" name="16:9(Widescreen)" label="16:9(ワイドスクリï¼ãƒ³ï¼‰" /> + <combo_box.item name="16:9(Widescreen)" label="16:9(ワイドスクリï¼ãƒ³ï¼‰" /> </combo_box> <check_box label="自動検出率" name="aspect_auto_detect" /> - <text type="string" length="1" name="UI Size:"> + <text name="UI Size:"> UIサイズ: </text> - <text type="string" length="1" name="(meters, lower is faster)"> + <text name="(meters, lower is faster)"> (メートルã€ä½Žã„ã»ã©é€Ÿã„) </text> - <text type="string" length="1" name="text2"> + <text name="text2"> 表示オプション: </text> <check_box label="解åƒåº¦å˜ç‹¬ã‚¹ã‚±ãƒ¼ãƒ«ã‚’使用" name="ui_auto_scale" /> @@ -80,6 +80,7 @@ å“質 </text> <check_box label="カスタム" name="CustomSettings" /> + <panel name="CustomGraphics Panel"> <text name="ShadersText"> シェーダー: </text> @@ -156,14 +157,15 @@ <radio_item name="0" label="低" /> <radio_item name="2" label="高" /> </radio_group> + </panel> <button label="推奨ã•ã‚ŒãŸè¨å®š" name="Defaults" /> <button label="ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãƒ»ã‚ªãƒ—ション" label_selected="ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãƒ»ã‚ªãƒ—ション" name="GraphicsHardwareButton" /> - <text name="resolution_format"> + <panel.string name="resolution_format"> [RES_X] x [RES_Y] - </text> - <text name="aspect_ratio_text"> + </panel.string> + <panel.string name="aspect_ratio_text"> [NUM]:[DEN] - </text> + </panel.string> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml index 186820f00aa49e739dfbf85762c4b89f4f74bf8d..ce4f3c19b22b1959cd7f67054e7f1f105b2a539f 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="ä¸å‹•ç”£" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="ä¸å‹•ç”£" name="Estate"> <text name="estate_help_text"> ã“ã®ã‚¿ãƒ–ã®è¨å®šã‚’変更ã™ã‚‹ã¨ã“ã®ä¸å‹•ç”£å†… ã®å…¨ã¦ã®åœ°åŸŸã«å½±éŸ¿ã‚’与ãˆã¾ã™ã€‚ @@ -75,4 +77,6 @@ <button label="メッセージをä¸å‹•ç”£ã¸é€ä¿¡..." name="message_estate_btn" /> <button label="土地ã‹ã‚‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’追ã„出ã™..." name="kick_user_from_estate_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml b/indra/newview/skins/default/xui/ja/panel_region_general.xml index 73d202544656ecd2ab3fb716e8c4912bde4825a1..690cf3f33dfe389745b806e4a1134251bb03c1e7 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml @@ -40,15 +40,9 @@ 区分: </text> <combo_box label="Mature" name="access_combo"> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Mature"> - Mature - </combo_item> - <combo_item name="PG"> - PG - </combo_item> + <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="Mature" name="Mature"/> + <combo_box.item label="PG" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="é©ç”¨" name="apply_btn"/> diff --git a/indra/newview/skins/default/xui/ja/panel_region_texture.xml b/indra/newview/skins/default/xui/ja/panel_region_texture.xml index 6527f0fbe6c5bd4dc79bee6f6672cd0cad077862..19326c82b600156584c8e308531304962e8fee6d 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_texture.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="地é¢ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="地é¢ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼" name="Textures"> <text name="region_text_lbl"> 地域: </text> @@ -54,4 +56,6 @@ ãã—ã¦ã€Œé«˜ã€ã®å€¤ã¯ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼#4ã®é«˜ã•ã®ä¸‹é™ã¨ãªã‚Šã¾ã™ã€‚ </text> <button label="é©ç”¨" name="apply_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_scrolling_param.xml b/indra/newview/skins/default/xui/ja/panel_scrolling_param.xml index b7e334df108203cf6080ca3aa4599d7951e17afe..b698fa762dfe0fe490ff6132058189c1664b7a35 100644 --- a/indra/newview/skins/default/xui/ja/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/ja/panel_scrolling_param.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="LLScrollingPanelParam"> - <text type="string" length="1" name="Loading..."> + <text name="Loading..."> ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> - <text type="string" length="1" name="Loading...2"> + <text name="Loading...2"> ãƒãƒ¼ãƒ‰ä¸ï¼Žï¼Žï¼Ž </text> <button label="" label_selected="" name="less" /> diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml index d713d867c4b16d9c7c71723ce0aac643a6ae7128..9c5fe981b8df3d7516b2e2d99ad0ad2b17efd268 100644 --- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <text length="1" name="ParcelNameText" tool_tip="ã‚ãªãŸãŒç«‹ã£ã¦ã„る土地区画ã®å å‰ã€‚クリックã™ã‚‹ã¨ã€ŒåœŸåœ°æƒ…å ±ã€ãŒé–‹ãã¾ã™ã€‚" type="string"> + <text name="ParcelNameText" tool_tip="ã‚ãªãŸãŒç«‹ã£ã¦ã„る土地区画ã®å å‰ã€‚クリックã™ã‚‹ã¨ã€ŒåœŸåœ°æƒ…å ±ã€ãŒé–‹ãã¾ã™ã€‚"> 区画åã¯ã“ã“ã§ã™ </text> - <text length="1" name="BalanceText" tool_tip="å£åº§æ®‹é«˜" type="string"> + <text name="BalanceText" tool_tip="å£åº§æ®‹é«˜"> ãƒãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ï¼Žï¼Žï¼Ž </text> <button label="" label_selected="" name="buycurrency" tool_tip="貨幣ã®è³¼å…¥"/> - <text length="12" name="TimeText" tool_tip="ç¾åœ¨æ™‚刻(太平洋時)" type="string"> + <text name="TimeText" tool_tip="ç¾åœ¨æ™‚刻(太平洋時)"> 12:00 AM </text> <text name="StatBarDaysOfWeek"> @@ -18,7 +18,7 @@ </text> <button label="" label_selected="" name="scriptout" tool_tip="スクリプトè¦å‘ŠãŠã‚ˆã³ã‚¨ãƒ©ãƒ¼"/> <button label="" label_selected="" name="health" tool_tip="å¥åº·çŠ¶æ…‹"/> - <text length="1" name="HealthText" tool_tip="å¥åº·çŠ¶æ…‹" type="string"> + <text name="HealthText" tool_tip="å¥åº·çŠ¶æ…‹"> 100% </text> <button label="" label_selected="" name="fly" tool_tip="飛行ç¦æ¢"/> diff --git a/indra/newview/skins/default/xui/ja/panel_world_map.xml b/indra/newview/skins/default/xui/ja/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..22b94715338f72322126c601cd4f10835bb07833 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + 北 + </panel.string> + <panel.string name="world_map_east"> + æ± + </panel.string> + <panel.string name="world_map_west"> + 西 + </panel.string> + <panel.string name="world_map_south"> + å— + </panel.string> + <panel.string name="world_map_southeast"> + å—æ± + </panel.string> + <panel.string name="world_map_northeast"> + åŒ—æ± + </panel.string> + <panel.string name="world_map_southwest"> + å—西 + </panel.string> + <panel.string name="world_map_northwest"> + 北西 + </panel.string> + <text label="北" name="floater_map_north" text="北"> + 北 + </text> + <text label="æ±" name="floater_map_east" text="æ±"> + æ± + </text> + <text label="西" name="floater_map_west" text="西"> + 西 + </text> + <text label="å—" name="floater_map_south" text="å—"> + å— + </text> + <text label="å—æ±" name="floater_map_southeast" text="å—æ±"> + å—æ± + </text> + <text label="北æ±" name="floater_map_northeast" text="北æ±"> + åŒ—æ± + </text> + <text label="å—西" name="floater_map_southwest" text="å—西"> + å—西 + </text> + <text label="北西" name="floater_map_northwest" text="北西"> + 北西 + </text> +</panel> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 5432c116a787733b347c162e7299548759f2f686..5d308f78d1be16cce6ee29055e6ee4128485bf07 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -487,4 +487,34 @@ <string name="choose_the_directory"> å‚ç…§ </string> + <string name="accel-mac-control"> + Ctrl- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Opt- + </string> + <string name="accel-mac-shift"> + Shift- + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Shift+ + </string> + <string name="GraphicsQualityLow"> + 低 + </string> + <string name="GraphicsQualityMid"> + ä¸ + </string> + <string name="GraphicsQualityHigh"> + 高 + </string> </strings> diff --git a/indra/newview/skins/default/xui/nl/floater_about_land.xml b/indra/newview/skins/default/xui/nl/floater_about_land.xml index 44c2ebccf7bb09a3d29d88feab737de7d5f8ef0d..6aa80c00dbe60bca60cb78fb48749f3676ad057e 100644 --- a/indra/newview/skins/default/xui/nl/floater_about_land.xml +++ b/indra/newview/skins/default/xui/nl/floater_about_land.xml @@ -79,45 +79,45 @@ <button label="Land Afstaan..." label_selected="Land Afstaan..." name="Abandon Land..."/> <button label="Land terugvorderen..." label_selected="Land terugvorderen..." name="Reclaim Land..."/> <button label="Lindenverkoop..." label_selected="Lindenverkoop..." name="Linden Sale..." tool_tip="Land moet in bezit zijn, de inhoud moet ingesteld zijn en niet al ter veiling zijn aangeboden."/> - <string name="new users only"> + <panel.string name="new users only"> Alleen nieuwe gebruikers - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> Iedereen - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> Gebied - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA] m² - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> Veiling ID: [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> U dient uw aankoop te goedkeuren voor u dit land kunt wijzigen. - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (Groepseigendom) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> Profiel... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> Informatie... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (public) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (none) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (Verkoop bezig) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> Geen perceel geselecteerd. Ga naar Wereld menu > Over land of selecteer een ander perceel om zijn details te tonen. - </string> + </panel.string> </panel> <panel label="Convenant" name="land_covenant_panel"> <text name="estate_section_lbl"> @@ -147,47 +147,47 @@ <text name="region_name_lbl"> Naam: </text> - <text name="region_name_text"> + <text name="region_name_text" left="114"> leyla </text> <text name="region_landtype_lbl"> Type: </text> - <text name="region_landtype_text"> + <text name="region_landtype_text" left="114"> Mainland / Homestead </text> <text name="region_maturity_lbl"> Inhoudscategorie: </text> - <text name="region_maturity_text"> + <text name="region_maturity_text" left="114"> Adult </text> <text name="resellable_lbl"> Doorverkopen: </text> - <text name="resellable_clause"> + <text name="resellable_clause" left="114"> Land in deze regio mag niet worden doorverkocht. </text> <text name="changeable_lbl"> Opsplitsen: </text> - <text name="changeable_clause"> + <text name="changeable_clause" left="114" width="340"> Land in deze regio mag niet worden samengevoegd/opgesplitst. </text> - <string name="can_resell"> + <panel.string name="can_resell"> Aangekocht land in deze regio mag worden doorverkocht. - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> Aangekocht land in deze regio mag niet worden doorverkocht. - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> Aangekocht land in deze regio mag worden samengevoegd of opgedeeld. - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> Aangekocht land in deze regio mag niet worden samengevoegd of opgedeeld. - </string> + </panel.string> </panel> <panel label="Objecten" name="land_objects_panel"> <text name="parcel_object_bonus"> @@ -199,12 +199,12 @@ of opgedeeld. <text name="objects_available" left="214" width="230"> [COUNT] van [MAX] ([AVAILABLE] beschikbaar) </text> - <string name="objects_available_text"> + <panel.string name="objects_available_text"> [COUNT] van [MAX] ([AVAILABLE] beschikbaar) - </string> - <string name="objects_deleted_text"> + </panel.string> + <panel.string name="objects_deleted_text"> [COUNT] van [MAX] ([DELETED] zullen worden verwijderd) - </string> + </panel.string> <text name="Primitives parcel supports:" width="200"> Primitieven ondersteund door perceel: </text> @@ -292,84 +292,83 @@ of opgedeeld. <check_box label="Veilig (geen letsel)" name="check safe" tool_tip="Indien aangevinkt, wordt het land op Veilig ingesteld, waarmee letselgevechten worden uitgeschakeld. Indien niet aangevinkt, is letsel ingeschakeld."/> <check_box label="Niet duwen" name="PushRestrictCheck" tool_tip="Weerhoudt scripts van duwen. Het aanvinken van deze optie kan handig zijn om storend gedrag op uw land te voorkomen."/> <check_box label="Toon plaats in Zoeken (L$30/week) onder" name="ShowDirectoryCheck" tool_tip="Laat mensen dit perceel zien in zoekresultaten."/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> Laat mensen dit perceel zien in zoekresultaten - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> Deze optie is uitgeschakeld, omdat dit gebied 128 m² of kleiner is. Alleen grote percelen kunnen worden opgenomen in Zoeken. - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> Deze optie is uitgeschakeld omdat u de opties van dit perceel niet kunt wijzigen. - </string> + </panel.string> <combo_box name="land category with adult"> - <combo_item name="AnyCategory"> - Alle Categorieën - </combo_item> - <combo_item name="LindenLocation"> - Linden locatie - </combo_item> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Arts&Culture"> - Kunst & Cultuur - </combo_item> - <combo_item name="Business"> - Zakelijk - </combo_item> - <combo_item name="Educational"> - Educatief - </combo_item> - <combo_item name="Gaming"> - Spellen - </combo_item> - <combo_item name="Hangout"> - Ontmoetingsplaats - </combo_item> - <combo_item name="NewcomerFriendly"> - Nieuwkomervriendelijk - </combo_item> - <combo_item name="Parks&Nature"> - Parken & natuur - </combo_item> - <combo_item name="Residential"> - Woongebied - </combo_item> - <combo_item name="Shopping"> - Winkelen - </combo_item> - <combo_item name="Other"> - Anders - </combo_item> + <combo_box.item name="item0" label="Alle Categorieën" + /> + <combo_box.item name="item1" label="Linden locatie" + /> + <combo_box.item name="item2" label="Adult" + /> + <combo_box.item name="item3" label="Kunst & Cultuur" + /> + <combo_box.item name="item4" label="Zakelijk" + /> + <combo_box.item name="item5" label="Educatief" + /> + <combo_box.item name="item6" label="Spelen" + /> + <combo_box.item name="item7" label="Ontmoetingsplaats" + /> + <combo_box.item name="item8" label="Nieuwkomervriendelijk" + /> + <combo_box.item name="item9" label="Parken & natuur" + /> + <combo_box.item name="item10" label="Woongebied" + /> + <combo_box.item name="item11" label="Winkelen" + /> + <combo_box.item name="item12" label="Anders" + /> </combo_box> <combo_box name="land category"> - <combo_box.item name="AnyCategory" label="Alle categorieën"/> - <combo_box.item name="LindenLocation" label="Linden Locatie"/> - <combo_box.item name="Arts&Culture" label="Kunst & Cultuur"/> - <combo_box.item name="Business" label="Zakelijk"/> - <combo_box.item name="Educational" label="Educatief"/> - <combo_box.item name="Gaming" label="Spelen"/> - <combo_box.item name="Hangout" label="Ontmoetingsplaats"/> - <combo_box.item name="NewcomerFriendly" label="Nieuwkomervriendelijk"/> - <combo_box.item name="Parks&Nature" label="Parken & Natuur"/> - <combo_box.item name="Residential" label="Woongebied"/> - <combo_box.item name="Shopping" label="Winkelen"/> - <combo_box.item name="Other" label="Anders"/> + <combo_box.item name="item0" label="Alle categorieën" + /> + <combo_box.item name="item1" label="Linden Locatie" + /> + <combo_box.item name="item3" label="Kunst & Cultuur" + /> + <combo_box.item name="item4" label="Zakelijk" + /> + <combo_box.item name="item5" label="Educatief" + /> + <combo_box.item name="item6" label="Spelen" + /> + <combo_box.item name="item7" label="Ontmoetingsplaats" + /> + <combo_box.item name="item8" label="Nieuwkomervriendelijk" + /> + <combo_box.item name="item9" label="Parken & Natuur" + /> + <combo_box.item name="item10" label="Woongebied" + /> + <combo_box.item name="item11" label="Winkelen" + /> + <combo_box.item name="item12" label="Anders" + /> </combo_box> <button label="?" label_selected="?" name="?"/> <check_box label="Mature inhoud" name="MatureCheck" tool_tip=" "/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Mature inhoud - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Adult inhoud - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> Uw perceelinformatie of -inhoud wordt beschouwd als mature. - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> Uw perceelinformatie of -inhoud wordt beschouwd als adult. - </string> + </panel.string> <text name="Snapshot:"> Foto: </text> @@ -377,25 +376,28 @@ of opgedeeld. <text name="landing_point"> Landingsplaats: [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (none) - </string> + </panel.string> <button width="70" label="Instellen" label_selected="Instellen" name="Set" tool_tip="Stelt het landingspunt in waar bezoekers arriveren. Wordt ingesteld op uw avatar's positie binnen dit perceel."/> - <button width="70" left="311" label="Opschonen" label_selected="Opschonen" name="Clear" tool_tip="Landingspunt leegmaken"/> + <button width="80" left="311" label="Opschonen" label_selected="Opschonen" name="Clear" tool_tip="Landingspunt leegmaken"/> <text name="Teleport Routing: "> Teleport routering: </text> <combo_box name="landing type" tool_tip="Teleport routering -- selecteer hoe teleports naar uw land moeten worden afgehandeld."> - <combo_box.item name="Blocked" label="Geblokkeerd"/> - <combo_box.item name="LandingPoint" label="Landingsplaats"/> - <combo_box.item name="Anywhere" label="Overal"/> + <combo_box.item name="Blocked" label="Geblokkeerd" + /> + <combo_box.item name="LandingPoint" label="Landingsplaats" + /> + <combo_box.item name="Anywhere" label="Overal" + /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> Niet duwen - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> Niet duwen (ingesteld op regio) - </string> + </panel.string> </panel> <panel label="Media" name="land_media_panel"> <text name="with media:"> @@ -460,14 +462,16 @@ hebt geklikt.) </text> <check_box label="Inwoners die geen betalingsinformatie hebben gegeven aan Linden Lab" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/> <check_box label="Inwoners die geen leeftijdgeverifieerde volwassenen zijn" name="limit_age_verified" tool_tip="Verban inwoners die hun leeftijd niet geverifieerd hebben. Zie support.secondlife.com voor meer informatie."/> - <string name="estate_override"> + <panel.string name="estate_override"> Een of meer van deze opties is op estate-niveau ingesteld - </string> + </panel.string> <check_box label="Groepstoegang toestaan: [GROUP]" name="GroupCheck" tool_tip="Stel de groep in op het tabblad Algemeen"/> <check_box label="Verkoop toegangspassen aan:" name="PassCheck" tool_tip="Tijdelijke toegang tot dit perceel toestaan"/> <combo_box name="pass_combo" left_delta="190"> - <combo_box.item name="Anyone" label="Iedereen"/> - <combo_box.item name="Group" label="Groep"/> + <combo_box.item name="Anyone" label="Iedereen" + /> + <combo_box.item name="Group" label="Groep" + /> </combo_box> <spinner label="Prijs in L$:" name="PriceSpin" label_width="168" width="228" /> <spinner label="Toegangsuren" name="HoursSpin" label_width="168" width="228" /> diff --git a/indra/newview/skins/default/xui/nl/floater_buy_contents.xml b/indra/newview/skins/default/xui/nl/floater_buy_contents.xml index 0c513c923a0e2826bf98c18020d3ff7c447cab97..df0614b3d2c14aef8b5f229009cddbdff565edf0 100644 --- a/indra/newview/skins/default/xui/nl/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/nl/floater_buy_contents.xml @@ -6,7 +6,7 @@ <text name="buy_text"> Koop voor L$[AMOUNT] van [NAME]? </text> - <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/> + <button label="Annuleren" label_selected="Annuleren" name="cancel_btn" width="73"/> <button label="Koop" label_selected="Koop" name="buy_btn"/> <check_box label="Draag kleding nu" name="wear_check"/> <string name="no_copy_text"> diff --git a/indra/newview/skins/default/xui/nl/floater_color_picker.xml b/indra/newview/skins/default/xui/nl/floater_color_picker.xml index 24b242e15c4218382d26478dbdaf39eb0f8103d7..25294e17e2b57b478650927f777dd971e2615d4a 100644 --- a/indra/newview/skins/default/xui/nl/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/nl/floater_color_picker.xml @@ -18,13 +18,14 @@ <text name="l_val_text"> Lum: </text> - <check_box label="Meteen toepassen" name="apply_immediate"/> + <check_box label="Direct toepassen" name="apply_immediate"/> <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/> <button label="Selecteer" label_selected="Selecteer" name="select_btn"/> <text name="Current color:"> Huidige kleur: </text> <text name="(Drag below to save.)"> - (Sleep naar beneden om op te slaan.) + (Sleep naar beneden + om op te slaan.) </text> </floater> diff --git a/indra/newview/skins/default/xui/nl/floater_customize.xml b/indra/newview/skins/default/xui/nl/floater_customize.xml index a94f4f2348d663dce834c03c95fcc3929407ee85..99a109ab782b9af2dbc44708b0a9ced7f7e877a9 100644 --- a/indra/newview/skins/default/xui/nl/floater_customize.xml +++ b/indra/newview/skins/default/xui/nl/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="Uiterlijk" width="551"> <tab_container name="customize tab container" tab_min_width="120" width="549"> - <panel label="Lichaamsdelen" name="body_parts_placeholder"/> + <placeholder label="Lichaamsdelen" name="body_parts_placeholder"/> <panel label="Postuur" name="Shape" left="124" width="389"> <button label="Herstel" label_selected="Herstel" name="Revert"/> <button label="Lichaam" label_selected="Lichaam" name="Body"/> diff --git a/indra/newview/skins/default/xui/nl/floater_env_settings.xml b/indra/newview/skins/default/xui/nl/floater_env_settings.xml index d212f544c56bbc2b7306e13bf86639cf978bf4f0..d66c0b220564be3217a210db7f6582f7bdc23240 100644 --- a/indra/newview/skins/default/xui/nl/floater_env_settings.xml +++ b/indra/newview/skins/default/xui/nl/floater_env_settings.xml @@ -1,9 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Environment Editor Floater" title="Omgeving editor"> - <text name="EnvTimeText"> - Tijd van de dag + <text bottom="-42" name="EnvTimeText"> + Tijd van de +dag </text> - <text name="EnvTimeText2"> + <text bottom_delta="-36" name="EnvTimeText2"> 0:00 </text> <text name="EnvCloudText"> diff --git a/indra/newview/skins/default/xui/nl/floater_inspect.xml b/indra/newview/skins/default/xui/nl/floater_inspect.xml index d4fa75d94fc4e2c1445d8b2dc775cadf022bdbec..96c9d59f905fed6910a042c175b2e140bdb4581c 100644 --- a/indra/newview/skins/default/xui/nl/floater_inspect.xml +++ b/indra/newview/skins/default/xui/nl/floater_inspect.xml @@ -2,10 +2,10 @@ <floater name="inspect" title="Objecten inspecteren"> <scroll_list name="object_list" tool_tip="Selecteer een object van deze lijst om het in-wereld te markeren"> <column label="Objectnaam" name="object_name"/> - <column label="Eigenaarnaam" name="owner_name"/> - <column label="Makernaam:" name="creator_name"/> + <column label="Eigenaar" name="owner_name"/> + <column label="Maker" name="creator_name"/> <column label="Aanmaakdatum" name="creation_date"/> </scroll_list> - <button label="Bekijk eigenaarprofiel..." label_selected="" name="button owner" tool_tip="Bekijk het profiel van de eigenaar van het gemarkeerde object"/> - <button label="Bekijk makerprofiel..." label_selected="" name="button creator" tool_tip="Bekijk het profiel van de originele maker van het gemarkeerde object"/> + <button label="Toon profiel eigenaar..." label_selected="" name="button owner" tool_tip="Bekijk het profiel van de eigenaar van het gemarkeerde object"/> + <button label="Toon profiel maker..." label_selected="" name="button creator" tool_tip="Bekijk het profiel van de originele maker van het gemarkeerde object"/> </floater> diff --git a/indra/newview/skins/default/xui/nl/floater_joystick.xml b/indra/newview/skins/default/xui/nl/floater_joystick.xml index 27556a89f8cc982beccf904b3175ce77d0b08d5b..ccc39034f5e58af37502da9a3f81fd35e93ebf90 100644 --- a/indra/newview/skins/default/xui/nl/floater_joystick.xml +++ b/indra/newview/skins/default/xui/nl/floater_joystick.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="Joystick configuratie"> - <check_box name="enable_joystick"> - Joystick inschakelen - </check_box> + <check_box name="enable_joystick" width="80" label="Joystick inschakelen:"/> + <text left="146" name="joystick_type" width="360"/> <spinner label="X-as mapping" name="JoystickAxis1"/> <spinner label="Y-as mapping" name="JoystickAxis2"/> <spinner label="Z-as mapping" name="JoystickAxis0"/> @@ -16,15 +15,9 @@ <text name="Control Modes:"> Besturingsmodi: </text> - <check_box name="JoystickAvatarEnabled"> - Avatar - </check_box> - <check_box name="JoystickBuildEnabled"> - Bouwen - </check_box> - <check_box name="JoystickFlycamEnabled"> - Vliegcamera - </check_box> + <check_box name="JoystickAvatarEnabled" label="Avatar"/> + <check_box name="JoystickBuildEnabled" label="Bouwen"/> + <check_box name="JoystickFlycamEnabled" label="Vliegcamera"/> <text name="XScale"> X schaal </text> @@ -52,7 +45,7 @@ <text name="ZDeadZone"> Z dode zone </text> - <text name="PitchDeadZone"> + <text name="PitchDeadZone" left="4" width="110"> Stampen dode zone </text> <text name="YawDeadZone"> @@ -70,15 +63,17 @@ <text name="ZoomDeadZone"> Zoom dode zone </text> - <button label="SpaceNavigator standaardwaarden" name="SpaceNavigatorDefaults"/> + <button label="SpaceNavigator standaardwaarden" name="SpaceNavigatorDefaults" width="200" font="SansSerifSmall"/> <button label="OK" label_selected="OK" name="ok_btn"/> - <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/> - <string name="JoystickMonitor"> - Joystick monitor - </string> - <string name="Axis"> - As [NUM] - </string> + <button label="Annuleren" label_selected="Annuleren" name="cancel_btn" left_delta="110"/> + <stat_view label="Joystick monitor" name="axis_view"> + <stat_bar label="As 0" name="axis0"/> + <stat_bar label="As 1" name="axis1"/> + <stat_bar label="As 2" name="axis2"/> + <stat_bar label="As 3" name="axis3"/> + <stat_bar label="As 4" name="axis4"/> + <stat_bar label="As 5" name="axis5"/> + </stat_view> <string name="NoDevice"> Geen apparaat gedetecteerd </string> diff --git a/indra/newview/skins/default/xui/nl/floater_map.xml b/indra/newview/skins/default/xui/nl/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..4bd691a96a43b89dad3ac95b01dc02fded359da9 --- /dev/null +++ b/indra/newview/skins/default/xui/nl/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + N + </floater.string> + <floater.string name="mini_map_east"> + O + </floater.string> + <floater.string name="mini_map_west"> + W + </floater.string> + <floater.string name="mini_map_south"> + Z + </floater.string> + <floater.string name="mini_map_southeast"> + ZO + </floater.string> + <floater.string name="mini_map_northeast"> + NO + </floater.string> + <floater.string name="mini_map_southwest"> + ZW + </floater.string> + <floater.string name="mini_map_northwest"> + NW + </floater.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="O" name="floater_map_east" text="O"> + O + </text> + <text label="W" name="floater_map_west" text="W"> + W + </text> + <text label="Z" name="floater_map_south" text="Z"> + Z + </text> + <text label="ZO" name="floater_map_southeast" text="ZO"> + ZO + </text> + <text label="NO" name="floater_map_northeast" text="NO"> + NO + </text> + <text label="ZW" name="floater_map_southwest" text="ZW"> + ZW + </text> + <text label="NW" name="floater_map_northwest" text="NW"> + NW + </text> +</floater> diff --git a/indra/newview/skins/default/xui/nl/floater_moveview.xml b/indra/newview/skins/default/xui/nl/floater_moveview.xml index 9b0b95b99a4d20f71e9b12e3ecfb6b3c889873e5..8a6a874e49907695b7b47805dcaa7eafb1fc5199 100644 --- a/indra/newview/skins/default/xui/nl/floater_moveview.xml +++ b/indra/newview/skins/default/xui/nl/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Draai links"/> <button label="" label_selected="" name="turn right btn" tool_tip="Draai rechts"/> <button label="" label_selected="" name="move up btn" tool_tip="Spring of vlieg omhoog"/> @@ -8,4 +9,5 @@ <joystick_slide name="slide right btn" tool_tip="Verplaats rechts"/> <joystick_turn name="forward btn" tool_tip="Verplaats vooruit"/> <joystick_turn name="backward btn" tool_tip="Verplaats achteruit"/> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/nl/floater_mute_object.xml b/indra/newview/skins/default/xui/nl/floater_mute_object.xml index efc12f29e278f33444e0fc2c0ce696dab2ed33b9..ca3b34c3a2e2f08c15206e7e7769e6eef6ef2998 100644 --- a/indra/newview/skins/default/xui/nl/floater_mute_object.xml +++ b/indra/newview/skins/default/xui/nl/floater_mute_object.xml @@ -1,9 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="mute by name" title="Negeer object op naam"> - <text name="message"> - Negeer op naam heeft alleen invloed op object chat en IM, niet op geluiden. U dient de naam van het object exact te typen. + <text name="message" bottom_delta="-40"> + Negeer op naam heeft alleen invloed op object chat +en IM, niet op geluiden. U dient de naam van het object +exact te typen. </text> - <line_editor name="object_name"> + <line_editor name="object_name" bottom_delta="-58"> Object naam </line_editor> <button label="Ok" name="OK"/> diff --git a/indra/newview/skins/default/xui/nl/floater_openobject.xml b/indra/newview/skins/default/xui/nl/floater_openobject.xml index 58ca71505a3890a0aadc6e4567dc635a8d4b20aa..10b502be1cbe61b9fd3fb1eee248f05913b8b49e 100644 --- a/indra/newview/skins/default/xui/nl/floater_openobject.xml +++ b/indra/newview/skins/default/xui/nl/floater_openobject.xml @@ -3,6 +3,6 @@ <text name="object_name"> [DESC]: </text> - <button label="Kopiëren naar inventaris" label_selected="Kopiëren naar inventaris" name="copy_to_inventory_button"/> - <button label="Kopiëren en dragen" label_selected="Kopiëren en dragen" name="copy_and_wear_button"/> + <button label="Kopiëren naar inventaris" label_selected="Kopiëren naar inventaris" name="copy_to_inventory_button" width="140"/> + <button label="Kopiëren en dragen" label_selected="Kopiëren en dragen" name="copy_and_wear_button" left="164"/> </floater> diff --git a/indra/newview/skins/default/xui/nl/floater_pay.xml b/indra/newview/skins/default/xui/nl/floater_pay.xml index 325541243990a87bf5975d9448cb9b91a512a23d..4018ebdc93b0f977083a569260f446ff33c4099e 100644 --- a/indra/newview/skins/default/xui/nl/floater_pay.xml +++ b/indra/newview/skins/default/xui/nl/floater_pay.xml @@ -6,10 +6,10 @@ <button label="L$20" label_selected="L$20" name="fastpay 20"/> <button label="Betaal" label_selected="Betaal" name="pay btn"/> <button label="Annuleren" label_selected="Annuleren" name="cancel btn"/> - <text name="payee_label"> + <text name="payee_label" width="100"> Betaal inwoner: </text> - <text name="payee_name"> + <text name="payee_name" left="110"> [FIRST] [LAST] </text> <text name="fastpay text"> diff --git a/indra/newview/skins/default/xui/nl/floater_pay_object.xml b/indra/newview/skins/default/xui/nl/floater_pay_object.xml index 23a161ac145841b3b6b5e2644b9901d4c3c6de1b..d3826648f23a37acc8d3219f9345aa200340740b 100644 --- a/indra/newview/skins/default/xui/nl/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/nl/floater_pay_object.xml @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Give Money" title=""> - <text name="payee_group"> + <text name="payee_group" left="5" width="90" halign="left"> Betaal groep: </text> - <text name="payee_resident"> + <text name="payee_resident" left="5" width="90" halign="left"> Betaal inwoner: </text> - <text name="payee_name"> + <text name="payee_name" left="100" width="200"> [FIRST] [LAST] </text> - <text name="object_name_label"> + <text name="object_name_label" left="5" width="90" halign="left"> Via object: </text> - <text name="object_name_text"> + <text name="object_name_text" left="100" width="200"> ... </text> - <text name="fastpay text"> + <text name="fastpay text" halign="left"> Snel betalen: </text> <text name="amount text"> diff --git a/indra/newview/skins/default/xui/nl/floater_perm_prefs.xml b/indra/newview/skins/default/xui/nl/floater_perm_prefs.xml index d19b5523f5d8ca094dedd1f9c91daf993066887a..c1c949228610577f957f3d811c739fd9fa921270 100644 --- a/indra/newview/skins/default/xui/nl/floater_perm_prefs.xml +++ b/indra/newview/skins/default/xui/nl/floater_perm_prefs.xml @@ -9,7 +9,7 @@ </text> <check_box label="Wijzigen" name="next_owner_modify"/> <check_box label="Kopiëren" name="next_owner_copy"/> - <check_box label="Verkopen/weggeven" name="next_owner_transfer"/> + <check_box label="Verkopen/weggeven" name="next_owner_transfer" left_delta="80"/> </panel> <button label="OK" label_selected="OK" name="ok"/> <button label="Annuleren" label_selected="Annuleren" name="cancel"/> diff --git a/indra/newview/skins/default/xui/nl/floater_report_abuse.xml b/indra/newview/skins/default/xui/nl/floater_report_abuse.xml index e82a5a3b89927cec273e1a39198ed8a375eed0a4..012198d7b6f579331180ab90449395a4170e2386 100644 --- a/indra/newview/skins/default/xui/nl/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/nl/floater_report_abuse.xml @@ -39,9 +39,7 @@ <combo_box.item name="Select_category" label="Selecteer categorie"/> <combo_box.item name="Age__Age_play" label="Leeftijd > Leeftijd spelen"/> <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Leeftijd > Volwassen inwoner in Teen Second Life"/> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - Leeftijd > Minderjarige inwoner buiten Teen Second Life - </combo_item> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Leeftijd > Minderjarige inwoner buiten Teen Second Life"/> <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Aanval > Gevechtszandbak / onveilig gebied"/> <combo_box.item name="Assault__Safe_area" label="Aanval > Veilig gebied"/> <combo_box.item name="Assault__Weapons_testing_sandbox" label="Aanval > Zandbak voor het testen van wapens"/> @@ -66,12 +64,8 @@ <combo_box.item name="Harassment__Verbal_abuse" label="Intimidatie > Verbaal misbruik"/> <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Onfatsoenlijkheid > Globaal beledigende inhoud of gedrag"/> <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Onfatsoenlijkheid > Ongepaste avatar naam"/> - <combo_item name="Indecency__Mature_content_in_PG_region"> - Onfatsoenlijkheid > Ongepaste inhoud of gedrag in een PG regio - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - Onfatsoenlijkheid > Ongepaste inhoud of gedrag in een Mature regio - </combo_item> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="Onfatsoenlijkheid > Ongepaste inhoud of gedrag in een PG regio"/> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Onfatsoenlijkheid > Ongepaste inhoud of gedrag in een Mature regio"/> <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Inbreuk op intellectueel eigendom > Verwijderen van inhoud"/> <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Inbreuk op intellectueel eigendom > CopyBot of misbruik van permissies"/> <combo_box.item name="Intolerance" label="Intolerantie"/> diff --git a/indra/newview/skins/default/xui/nl/floater_select_key.xml b/indra/newview/skins/default/xui/nl/floater_select_key.xml index da97c03a6caffab3ec66160edecfeb1a14738833..c8daa10ab64d86c5f1280f9ad5fcc99ae3541322 100644 --- a/indra/newview/skins/default/xui/nl/floater_select_key.xml +++ b/indra/newview/skins/default/xui/nl/floater_select_key.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="modal container" title=""> <button label="Annuleren" label_selected="Annuleren" name="Cancel"/> - <text name="Save item as:"> - Druk een toets om te selecteren + <text name="Save item as:" left="12" width="220"> + Druk op een toets om die te selecteren </text> </floater> diff --git a/indra/newview/skins/default/xui/nl/floater_telehub.xml b/indra/newview/skins/default/xui/nl/floater_telehub.xml index b1fc80cf3ce082a12206f244bd3d7c47e9adebf3..5a8abc208a64a275d0c44b2a7d297e50e846bee5 100644 --- a/indra/newview/skins/default/xui/nl/floater_telehub.xml +++ b/indra/newview/skins/default/xui/nl/floater_telehub.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="telehub" title="Telehub"> +<floater name="telehub" title="Telehub" width="292"> <text name="status_text_connected"> Telehub verbonden met object [OBJECT] </text> @@ -13,13 +13,21 @@ Selecteer objecten klik Verbind telehub </text> <button label="Verbind telehub" name="connect_btn"/> - <button label="Verbinding verbreken" name="disconnect_btn"/> + <button label="Verbinding verbreken" name="disconnect_btn" width="128"/> <text name="spawn_points_text"> Spawnpunten (posities, niet objecten): </text> + <scroll_list bottom_delta="-44" draw_border="true" follows="left|top" font="SansSerifSmall" + height="40" left="10" multi_select="false" name="spawn_points_list" + width="230" /> + <button label="Spawn toevoegen" name="add_spawn_point_btn"/> <button label="Verwijder Spawn" name="remove_spawn_point_btn"/> - <text name="spawn_point_help"> - Selecteer object en klik Toevoegen om positie te specificeren. U kunt het object daarna verplaatsen of verwijderen. Posities zijn relatief ten opzichte van het middelpunt van de telehub. Selecteer een item in de lijst om de positie in de wereld te tonen. + <text name="spawn_point_help" width="290"> + Selecteer object en klik Toevoegen om positie +te specificeren. U kunt het object daarna verplaatsen +of verwijderen. Posities zijn relatief ten opzichte +van het middelpunt van de telehub. Selecteer een +item in de lijst om de positie in de wereld te tonen. </text> </floater> diff --git a/indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml index 440a31097dbaf4680d5ee1c17d22612c12b28067..13a68747c6febc11d49a8a0e835d7edae7c252fb 100644 --- a/indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml @@ -9,12 +9,12 @@ <text name="unknown"> Afmetingen: [DIMENSIONS] </text> - <button label="Standaard" label_selected="Standaard" name="Default"/> - <button label="Geen" label_selected="Geen" name="None"/> + <button label="Standaard" label_selected="Standaard" name="Default" width="70"/> + <button label="Geen" label_selected="Geen" name="None" left="80"/> <button label="Blanco" label_selected="Blanco" name="Blank"/> <check_box label="Toon mappen" name="show_folders_check"/> <search_editor label="Type hier om te zoeken" name="inventory search editor"/> - <check_box label="Meteen toepassen" name="apply_immediate_check"/> + <check_box label="Direct toepassen" name="apply_immediate_check"/> <button label="Annuleren" label_selected="Annuleren" name="Cancel"/> <button label="Selecteren" label_selected="Selecteren" name="Select"/> <string name="pick title"> diff --git a/indra/newview/skins/default/xui/nl/floater_tools.xml b/indra/newview/skins/default/xui/nl/floater_tools.xml index c7f99195dd9f8c7f2022a5506bb5349e16ade81a..0d2c009dc6f195bda0a2be70bdb6d123b71e4192 100644 --- a/indra/newview/skins/default/xui/nl/floater_tools.xml +++ b/indra/newview/skins/default/xui/nl/floater_tools.xml @@ -1,47 +1,50 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="toolbox floater" title=""> +<floater name="toolbox floater" title="" short_title="Bouwen" width="288"> <button label="" label_selected="" name="button focus" tool_tip="Focus"/> <button label="" label_selected="" name="button move" tool_tip="Verplaats"/> <button label="" label_selected="" name="button edit" tool_tip="Bewerk"/> <button label="" label_selected="" name="button create" tool_tip="Maak"/> <button label="" label_selected="" name="button land" tool_tip="Land"/> - <check_box label="Zoom" name="radio zoom"/> - <check_box label="Draaien (Ctrl)" name="radio orbit"/> - <check_box label="Verplaatsen (Ctrl-Shift)" name="radio pan"/> - <check_box label="Verplaatsen" name="radio move"/> - <check_box label="Optillen (Ctrl)" name="radio lift"/> - <check_box label="Draaien (Ctrl-Shift)" name="radio spin"/> - <check_box label="Positie" name="radio position"/> - <check_box label="Draaien (Ctrl)" name="radio rotate"/> - <check_box label="Uitrekken (Ctrl-Shift)" name="radio stretch"/> - <check_box label="Selecteer textuur" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="Zoom" name="radio zoom"/> + <radio_item label="Roteren (Ctrl)" name="radio orbit"/> + <radio_item label="Verplaatsen (Ctrl-Shift)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="Verplaatsen" name="radio move"/> + <radio_item label="Optillen (Ctrl)" name="radio lift"/> + <radio_item label="Roteren (Ctrl-Shift)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="Positie" name="radio position"/> + <radio_item label="Roteren (Ctrl)" name="radio rotate"/> + <radio_item label="Uitrekken (Ctrl-Shift)" name="radio stretch"/> + <radio_item label="Selecteer textuur" name="radio select face"/> + </radio_group> <check_box label="Bewerk gekoppelde onderdelen" name="checkbox edit linked parts"/> <text name="text ruler mode"> Liniaal: </text> - <combo_box name="combobox grid mode"> - <combo_item name="World"> - Wereld - </combo_item> - <combo_item name="Local"> - Lokaal - </combo_item> - <combo_item name="Reference"> - Referentie - </combo_item> + <combo_box name="combobox grid mode" width="78" left_delta="38"> + <combo_box.item name="World" label="Wereld" + /> + <combo_box.item name="Local" label="Lokaal" + /> + <combo_box.item name="Reference" label="Referentie" + /> </combo_box> - <check_box label="Beide zijden uitrekken" name="checkbox uniform"/> - <check_box label="Texturen uitrekken" name="checkbox stretch textures"/> - <check_box label="Gebruik grid" name="checkbox snap to grid"/> - <button label="Opties..." label_selected="Opties..." name="Options..."/> - <text name="text status"> + <check_box left="136" label="Beide zijden uitrekken" name="checkbox uniform"/> + <check_box left="136" label="Texturen uitrekken" name="checkbox stretch textures"/> + <check_box left="136" label="Gebruik grid" name="checkbox snap to grid"/> + <button label="Opties..." label_selected="Opties..." name="Options..." height="18" bottom_delta="-15"/> + <text name="text status" width="280"> Sleep om te verplaatsen, Shift-slepen om te kopiëren </text> <button label="" label_selected="" name="ToolCube" tool_tip="Kubus"/> <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/> <button label="" label_selected="" name="ToolPyramid" tool_tip="Piramide"/> <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetrahedron"/> - <button label="" label_selected="" name="ToolCylinder" tool_tip="Cylinder"/> + <button label="" label_selected="" name="ToolCylinder" tool_tip="Cilinder"/> <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Halve cilinder"/> <button label="" label_selected="" name="ToolCone" tool_tip="Kegel"/> <button label="" label_selected="" name="ToolHemiCone" tool_tip="Halve kegel"/> @@ -56,13 +59,15 @@ <check_box label="Kopiëer Selectie" name="checkbox copy selection"/> <check_box label="Middelpunt" name="checkbox copy centers"/> <check_box label="Roteer" name="checkbox copy rotates"/> - <check_box label="Selecteer land" name="radio select land"/> - <check_box label="Vlak maken" name="radio flatten"/> - <check_box label="Verhogen" name="radio raise"/> - <check_box label="Verlagen" name="radio lower"/> - <check_box label="Egaliseren" name="radio smooth"/> - <check_box label="Opruwen" name="radio noise"/> - <check_box label="Herstellen" name="radio revert"/> + <radio_group name="land_radio_group"> + <radio_item label="Selecteer land" name="radio select land"/> + <radio_item label="Vlak maken" name="radio flatten"/> + <radio_item label="Verhogen" name="radio raise"/> + <radio_item label="Verlagen" name="radio lower"/> + <radio_item label="Egaliseren" name="radio smooth"/> + <radio_item label="Opruwen" name="radio noise"/> + <radio_item label="Herstellen" name="radio revert"/> + </radio_group> <button label="Toepassen" label_selected="Toepassen" name="button apply to selection" tool_tip="Wijzig geselecteerd land"/> <text name="Bulldozer:"> Bulldozer: @@ -73,13 +78,13 @@ <text name="Strength:"> Sterkte </text> - <text name="obj_count"> + <text name="obj_count" left="134"> Geselecteerde objecten: [COUNT] </text> - <text name="prim_count"> + <text name="prim_count" left="134"> primitieven: [COUNT] </text> - <tab_container name="Object Info Tabs"> + <tab_container name="Object Info Tabs" tab_max_width="62" tab_min_width="30" width="288"> <panel label="Algemeen" name="General"> <text name="Name:"> Naam: @@ -95,7 +100,7 @@ </text> <button label="Profiel..." label_selected="Profiel..." name="button creator profile"/> <text name="Owner:"> - Eigenaar + Eigenaar: </text> <text name="Owner Name"> Thrax Linden @@ -111,9 +116,7 @@ <text name="Permissions:"> Permissies: </text> - <text name="perm_modify"> - U kunt dit object wijzigen - </text> + <check_box label="Deel met groep" name="checkbox share with group" tool_tip="Alle leden van de ingestelde groep toestaan om te delen en uw permissies voor dit object te gebruiken. U moet 'Overdragen' om rolbeperkingen in te schakelen."/> <string name="text deed continued"> Overdragen... @@ -129,49 +132,35 @@ <text name="Cost"> Prijs: L$ </text> - <radio_group name="sale type"> - <radio_item name="Original"> - Origineel - </radio_item> - <radio_item name="Copy"> - Kopie - </radio_item> - <radio_item name="Contents"> - Inhoud - </radio_item> - </radio_group> - <text name="Next owner can:"> - Volgende eigenaar kan: - </text> - <check_box label="Wijzigen" name="checkbox next owner can modify"/> - <check_box label="Kopiëren" name="checkbox next owner can copy"/> - <check_box label="Verkopen/weggeven" name="checkbox next owner can transfer"/> + <combo_box name="sale type"> + <combo_box.item label="Kopie" name="Copy"/> + <combo_box.item label="Inhoud" name="Contents"/> + <combo_box.item label="Origineel" name="Original"/> + </combo_box> + <text name="label click action"> Wanneer links-geklikt: </text> - <combo_box name="clickaction"> - <combo_item name="Touch/grab(default)"> - Aanraken/pakken (standaard) - </combo_item> - <combo_item name="Sitonobject"> - Zit op object - </combo_item> - <combo_item name="Buyobject"> - Koop object - </combo_item> - <combo_item name="Payobject"> - Betaal object - </combo_item> - <combo_item name="Open"> - Open - </combo_item> - <combo_item name="Play"> - Perceelmedia afspelen - </combo_item> - <combo_item name="Opemmedia"> - Perceelmedia openen - </combo_item> + <combo_box name="clickaction" width="178"> + <combo_box.item name="Touch/grab(default)" label="Aanraken/pakken (standaard)" + /> + <combo_box.item name="Sitonobject" label="Zit op object" + /> + <combo_box.item name="Buyobject" label="Koop object" + /> + <combo_box.item name="Payobject" label="Betaal object" + /> + <combo_box.item name="Open" label="Open" + /> + <combo_box.item name="Play" label="Perceelmedia afspelen" + /> + <combo_box.item name="Opemmedia" label="Perceelmedia openen" + /> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + U kunt dit object wijzigen. + </text> <text name="B:"> B: </text> @@ -190,20 +179,27 @@ <text name="F:"> F: </text> + <text name="Next owner can:"> + Volgende eigenaar kan: + </text> + <check_box label="Wijzigen" name="checkbox next owner can modify"/> + <check_box label="Kopiëren" name="checkbox next owner can copy" left_delta="80"/> + <check_box name="checkbox next owner can transfer" left_delta="67"/> + </panel> <string name="text modify info 1"> - U kunt dit object wijzigen + U kunt dit object wijzigen. </string> <string name="text modify info 2"> - U kunt deze objecten wijzigen + U kunt deze objecten wijzigen. </string> <string name="text modify info 3"> - U kunt dit object niet wijzigen + U kunt dit object niet wijzigen. </string> <string name="text modify info 4"> - U kunt deze objecten niet wijzigen + U kunt deze objecten niet wijzigen. </string> <string name="text modify warning"> - U moet het hele object selecteren om permissies in te stellen + U moet het hele object selecteren om permissies in te stellen. </string> <string name="Cost Default"> Prijs: L$ @@ -254,56 +250,41 @@ Materiaal </text> <combo_box name="material"> - <combo_item name="Stone"> - Steen - </combo_item> - <combo_item name="Metal"> - Metaal - </combo_item> - <combo_item name="Glass"> - Glas - </combo_item> - <combo_item name="Wood"> - Hout - </combo_item> - <combo_item name="Flesh"> - Vlees - </combo_item> - <combo_item name="Plastic"> - Plastic - </combo_item> - <combo_item name="Rubber"> - Rubber - </combo_item> + <combo_box.item name="Stone" label="Steen" + /> + <combo_box.item name="Metal" label="Metaal" + /> + <combo_box.item name="Glass" label="Glas" + /> + <combo_box.item name="Wood" label="Hout" + /> + <combo_box.item name="Flesh" label="Vlees" + /> + <combo_box.item name="Plastic" label="Plastic" + /> + <combo_box.item name="Rubber" label="Rubber" + /> </combo_box> <text name="label basetype"> Bouwbloktype </text> <combo_box name="comboBaseType"> - <combo_item name="Box"> - Kubus - </combo_item> - <combo_item name="Cylinder"> - Cilinder - </combo_item> - <combo_item name="Prism"> - Prisma - </combo_item> - <combo_item name="Sphere"> - Bol - </combo_item> - <combo_item name="Torus"> - Torus - </combo_item> - <combo_item name="Tube"> - Buis - </combo_item> - <combo_item name="Ring"> - Ring - </combo_item> - <combo_item name="Sculpted"> - Sculpted - </combo_item> + <combo_box.item name="Box" label="Kubus" + /> + <combo_box.item name="Cylinder" label="Cilinder" + /> + <combo_box.item name="Prism" label="Prisma" + /> + <combo_box.item name="Sphere" label="Bol" + /> + <combo_box.item name="Torus" label="Torus" + /> + <combo_box.item name="Tube" label="Buis" + /> + <combo_box.item name="Ring" label="Ring" + /> + <combo_box.item name="Sculpted" label="Sculpted" + /> </combo_box> <text name="text cut"> Uitsnede begin en einde @@ -320,18 +301,14 @@ Holtevorm </text> <combo_box name="hole"> - <combo_item name="Default"> - Standaard - </combo_item> - <combo_item name="Circle"> - Cirkel - </combo_item> - <combo_item name="Square"> - Vierkant - </combo_item> - <combo_item name="Triangle"> - Driehoek - </combo_item> + <combo_box.item name="Default" label="Standaard" + /> + <combo_box.item name="Circle" label="Cirkel" + /> + <combo_box.item name="Square" label="Vierkant" + /> + <combo_box.item name="Triangle" label="Driehoek" + /> </combo_box> <text name="text twist"> Verdraai begin en einde @@ -358,7 +335,7 @@ Deuk begin en einde </text> <text name="advanced_slice"> - Uitsnede Begin en Einde + Uitsnede begin en einde </text> <spinner label="B" name="Path Limit Begin"/> <spinner label="E" name="Path Limit End"/> @@ -370,7 +347,7 @@ <text name="text radius delta"> Straal </text> - <text name="text revolutions"> + <text name="text revolutions" width="84"> Omwentelingen </text> <texture_picker label="Sculpt textuur" name="sculpt texture control" tool_tip="Klik om een afbeelding te kiezen"/> @@ -380,21 +357,16 @@ Hechtingstype </text> <combo_box name="sculpt type control"> - <combo_item name="None"> - (none) - </combo_item> - <combo_item name="Sphere"> - Bol - </combo_item> - <combo_item name="Torus"> - Torus - </combo_item> - <combo_item name="Plane"> - Vlak - </combo_item> - <combo_item name="Cylinder"> - Cilinder - </combo_item> + <combo_box.item name="None" label="(geen)" + /> + <combo_box.item name="Sphere" label="Bol" + /> + <combo_box.item name="Torus" label="Torus" + /> + <combo_box.item name="Plane" label="Vlak" + /> + <combo_box.item name="Cylinder" label="Cilinder" + /> </combo_box> </panel> <panel label="Kenmerken" name="Features"> @@ -405,14 +377,14 @@ Bewerk objectkenmerken: </text> <check_box label="Flexibiliteit" name="Flexible1D Checkbox Ctrl" tool_tip="Staat toe dat objecten kunnen buigen om de Z-as. (alleen aan de client kant)"/> - <spinner label="Zachtheid" name="FlexNumSections"/> - <spinner label="Zwaartekracht" name="FlexGravity"/> - <spinner label="Slepen" name="FlexFriction"/> - <spinner label="Wind" name="FlexWind"/> - <spinner label="Spanning" name="FlexTension"/> - <spinner label="Kracht X" name="FlexForceX"/> - <spinner label="Kracht Y" name="FlexForceY"/> - <spinner label="Kracht Z" name="FlexForceZ"/> + <spinner label="Zachtheid" name="FlexNumSections" width="143" label_width="80"/> + <spinner label="Zwaartekracht" name="FlexGravity" width="143" label_width="80"/> + <spinner label="Slepen" name="FlexFriction" width="143" label_width="80"/> + <spinner label="Wind" name="FlexWind" width="143" label_width="80"/> + <spinner label="Spanning" name="FlexTension" width="143" label_width="80"/> + <spinner label="Kracht X" name="FlexForceX" width="143" label_width="80"/> + <spinner label="Kracht Y" name="FlexForceY" width="143" label_width="80"/> + <spinner label="Kracht Z" name="FlexForceZ" width="143" label_width="80"/> <check_box label="Licht" name="Light Checkbox Ctrl" tool_tip="Zorgt dat het object licht uitstraalt"/> <text name="label color"> Kleur @@ -425,99 +397,75 @@ <panel label="Textuur" name="Texture"> <texture_picker label="Textuur" name="texture control" tool_tip="Klik om een afbeelding te kiezen"/> <color_swatch label="Kleur" name="colorswatch" tool_tip="Klik om kleurkiezer to openen"/> - <text name="color trans"> + <text name="color trans" width="100"> Transparantie % </text> <text name="glow label"> Gloed </text> - <check_box label="Volledige helderheid" name="checkbox fullbright"/> + <check_box label="Volledige helderheid" name="checkbox fullbright" bottom_delta="-21"/> <text name="tex gen"> Mapping </text> <combo_box name="combobox texgen"> - <combo_item name="Default"> - Standaard - </combo_item> - <combo_item name="Planar"> - Vlak - </combo_item> + <combo_box.item name="Default" label="Standaard" + /> + <combo_box.item name="Planar" label="Vlak" + /> </combo_box> <text name="label shininess"> Glans </text> <combo_box name="combobox shininess"> - <combo_item name="None"> - Geen - </combo_item> - <combo_item name="Low"> - Laag - </combo_item> - <combo_item name="Medium"> - Middel - </combo_item> - <combo_item name="High"> - Hoog - </combo_item> + <combo_box.item name="None" label="Geen" + /> + <combo_box.item name="Low" label="Laag" + /> + <combo_box.item name="Medium" label="Middel" + /> + <combo_box.item name="High" label="Hoog" + /> </combo_box> <text name="label bumpiness"> Bumpiness </text> <combo_box name="combobox bumpiness"> - <combo_item name="None"> - Geen - </combo_item> - <combo_item name="Brightness"> - Helderheid - </combo_item> - <combo_item name="Darkness"> - Donkerheid - </combo_item> - <combo_item name="woodgrain"> - Houtnerf - </combo_item> - <combo_item name="bark"> - Schors - </combo_item> - <combo_item name="bricks"> - Stenen - </combo_item> - <combo_item name="checker"> - Dambord - </combo_item> - <combo_item name="concrete"> - Beton - </combo_item> - <combo_item name="crustytile"> - gebarsten tegels - </combo_item> - <combo_item name="cutstone"> - natuursteen - </combo_item> - <combo_item name="discs"> - schijven - </combo_item> - <combo_item name="gravel"> - grind - </combo_item> - <combo_item name="petridish"> - petrischaal - </combo_item> - <combo_item name="siding"> - wandpaneel - </combo_item> - <combo_item name="stonetile"> - plavuizen - </combo_item> - <combo_item name="stucco"> - stucwerk - </combo_item> - <combo_item name="suction"> - zuignappen - </combo_item> - <combo_item name="weave"> - weven - </combo_item> + <combo_box.item name="None" label="Geen" + /> + <combo_box.item name="Brightness" label="Helderheid" + /> + <combo_box.item name="Darkness" label="Donkerheid" + /> + <combo_box.item name="woodgrain" label="Houtnerf" + /> + <combo_box.item name="bark" label="Schors" + /> + <combo_box.item name="bricks" label="Stenen" + /> + <combo_box.item name="checker" label="Dambord" + /> + <combo_box.item name="concrete" label="Beton" + /> + <combo_box.item name="crustytile" label="gebarsten tegels" + /> + <combo_box.item name="cutstone" label="natuursteen" + /> + <combo_box.item name="discs" label="schijven" + /> + <combo_box.item name="gravel" label="grind" + /> + <combo_box.item name="petridish" label="petrischaal" + /> + <combo_box.item name="siding" label="wandpaneel" + /> + <combo_box.item name="stonetile" label="plavuizen" + /> + <combo_box.item name="stucco" label="stucwerk" + /> + <combo_box.item name="suction" label="zuignappen" + /> + <combo_box.item name="weave" label="weven" + /> </combo_box> <text name="tex scale"> Herhalingen per zijde @@ -536,7 +484,7 @@ Herhalingen per zijde </string> <text name="rpt"> - Herhalingen per meter + Herhalingen per m </text> <button label="Toepassen" label_selected="Toepassen" name="button apply"/> <text name="tex offset"> @@ -545,13 +493,15 @@ <spinner label="Horizontaal (U)" name="TexOffsetU"/> <spinner label="Verticaal (V)" name="TexOffsetV"/> <text name="textbox autofix"> - Mediatextuur uitlijnen (moet eerst laden) + Mediatextuur uitlijnen +(moet eerst laden) </text> - <button label="Uitlijnen" label_selected="Uitlijnen" name="button align"/> + <button label="Uitlijnen" label_selected="Uitlijnen" name="button align" left="155" /> </panel> <panel label="Inhoud" name="Contents"> <button label="Nieuw script" label_selected="Nieuw script..." name="button new script"/> <button label="Permissies..." name="button permissions"/> + <panel name="ContentsInventory" width="272" /> </panel> </tab_container> <panel name="land info panel"> @@ -559,14 +509,14 @@ Perceel Informatie </text> <text name="label_area_price"> - Prijs: L$[PRICE] voor [AREA] m2. + Prijs: L$[PRICE] voor [AREA] m². </text> <text name="label_area"> - Gebied: [AREA] m2. + Gebied: [AREA] m². </text> <button label="Over land..." label_selected="Over land..." name="button about land"/> <check_box label="Toon Eigenaren" name="checkbox show owners" tool_tip="Kleur percelen op basis van hun eigendom"/> - <button label="?" label_selected="?" name="button show owners help"/> + <button label="?" label_selected="?" name="button show owners help" left_delta="105"/> <text name="label_parcel_modify"> Wijzig Perceel </text> @@ -578,43 +528,43 @@ <button label="Koop land..." label_selected="Koop land..." name="button buy land"/> <button label="Land Afstaan..." label_selected="Land Afstaan..." name="button abandon land"/> </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> Sleep de gekleurde banden om het object te roteren - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> Klik en sleep om de geselecteerde zijde uit te rekken. - </string> - <string name="status_move"> + </floater.string> + <floater.string name="status_move"> Sleep om te verplaatsen, Shift-slepen om te kopiëren - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_modifyland"> Klik en houd vast om land te wijzigen - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> Klik en sleep om beeld te wijzigen - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> Sleep om te verplaatsen, Ctrl om op te tillen, Ctrl-Shift om te roteren. - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> Klik in-wereld om te bouwen - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> Klik en sleep om land te selecteren - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> Scherm - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> Lokaal - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> Wereld - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> Referentie - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> Bevestiging - </string> + </floater.string> </floater> diff --git a/indra/newview/skins/default/xui/nl/floater_top_objects.xml b/indra/newview/skins/default/xui/nl/floater_top_objects.xml index e79ee4ea56139aa1fe83e3a7f8d4432624255ea9..cc252352ebc1f8f19752cb5e0b9aa022a51adb66 100644 --- a/indra/newview/skins/default/xui/nl/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/nl/floater_top_objects.xml @@ -4,29 +4,29 @@ Laden… </text> <scroll_list name="objects_list"> - <column label="Score" name="score"/> - <column label="Naam" name="name"/> - <column label="Eigenaar" name="owner"/> - <column label="Locatie" name="location"/> - <column label="Tijd" name="time"/> - <column label="Mono tijd" name="mono_time"/> + <column label="Score" name="score" width="84"/> + <column label="Naam" name="name" width="84"/> + <column label="Eigenaar" name="owner" width="84"/> + <column label="Locatie" name="location" width="84"/> + <column label="Tijd" name="time" width="84"/> + <column label="Mono tijd" name="mono_time" width="84"/> </scroll_list> - <text name="id_text"> + <text name="id_text" left="2"> Object ID: </text> <button label="Toon baken" name="show_beacon_btn"/> - <text name="obj_name_text"> + <text name="obj_name_text" left="2"> Object naam: </text> <button label="Filter" name="filter_object_btn"/> - <text name="owner_name_text"> + <text name="owner_name_text" left="2"> Eigenaar naam: </text> <button label="Filter" name="filter_owner_btn"/> - <button label="Geselecteerde retourneren" name="return_selected_btn"/> - <button label="Alles retourneren" name="return_all_btn"/> - <button label="Geselecteerde uitschakelen" name="disable_selected_btn"/> - <button label="Alles uitschakelen" name="disable_all_btn"/> + <button label="Geselecteerde retourneren" name="return_selected_btn" width="170"/> + <button label="Alles retourneren" name="return_all_btn" left="190"/> + <button label="Geselecteerde uitschakelen" name="disable_selected_btn" width="170"/> + <button label="Alles uitschakelen" name="disable_all_btn" left="190"/> <button label="Verversen" name="refresh_btn"/> <string name="top_scripts_title"> Top scripts diff --git a/indra/newview/skins/default/xui/nl/floater_url_entry.xml b/indra/newview/skins/default/xui/nl/floater_url_entry.xml index 23ea21bcc591e3fc04d82083afbb50402ee766a7..6926f093904950d3f4716e97ae313dd1050fb6e0 100644 --- a/indra/newview/skins/default/xui/nl/floater_url_entry.xml +++ b/indra/newview/skins/default/xui/nl/floater_url_entry.xml @@ -4,8 +4,8 @@ Media URL: </text> <button label="OK" name="ok_btn"/> - <button label="Annuleren" name="cancel_btn"/> - <button label="Leegmaken" name="clear_btn"/> + <button label="Annuleren" name="cancel_btn" width="80"/> + <button label="Leegmaken" name="clear_btn" width="80"/> <text name="loading_label"> Laden… </text> diff --git a/indra/newview/skins/default/xui/nl/floater_water.xml b/indra/newview/skins/default/xui/nl/floater_water.xml index 38ec15d1a01b20e549789bab77200cebc6b7f021..2238008fd80ed38dba326d9878ca7fca89ea8dd1 100644 --- a/indra/newview/skins/default/xui/nl/floater_water.xml +++ b/indra/newview/skins/default/xui/nl/floater_water.xml @@ -1,11 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Water Floater" title="Geavanceerde water editor"> + <combo_box bottom="-50" height="18" left_delta="116" name="WaterPresetsCombo" width="150" /> <text name="KeyFramePresetsText"> Watervoorinstellingen </text> - <button label="Nieuw" label_selected="Nieuw" name="WaterNewPreset"/> + <button label="Nieuw" label_selected="Nieuw" name="WaterNewPreset" left_delta="190"/> <button label="Opslaan" label_selected="Opslaan" name="WaterSavePreset"/> - <button label="Verwijderen" label_selected="Verwijderen" name="WaterDeletePreset"/> + <button label="Verwijderen" label_selected="Verwijderen" name="WaterDeletePreset" width="80"/> <tab_container name="Water Tabs"> <panel label="Instellingen" name="Settings"> <text name="BHText"> diff --git a/indra/newview/skins/default/xui/nl/floater_world_map.xml b/indra/newview/skins/default/xui/nl/floater_world_map.xml index 4385442cd3bddbfb9dfae8dc66c53b7ef1213e6b..e1eebaf92f36338be7d564d3a887125a76a7097f 100644 --- a/indra/newview/skins/default/xui/nl/floater_world_map.xml +++ b/indra/newview/skins/default/xui/nl/floater_world_map.xml @@ -29,10 +29,10 @@ <check_box label="Mature" name="event_mature_chk"/> <check_box label="Adult" name="event_adult_chk"/> <combo_box label="Online vrienden" name="friend combo" tool_tip="Vriend die op kaart getoond wordt"> - <combo_box.item name="none_selected" label="Online vrienden"/> + <combo_box.item name="item1" label="Online vrienden"/> </combo_box> <combo_box label="Landmarkeringen" name="landmark combo" tool_tip="Landmarkering die op kaart getoond wordt"> - <combo_box.item name="none_selected" label="Landmarkeringen"/> + <combo_box.item name="item1" label="Landmarkeringen"/> </combo_box> <line_editor label="Zoek op regionaam" name="location" tool_tip="Type de naam van een regio"/> <button label="Zoeken" name="DoSearch" tool_tip="Zoek naar regio"/> diff --git a/indra/newview/skins/default/xui/nl/notifications.xml b/indra/newview/skins/default/xui/nl/notifications.xml index 179ad2ace1c4b8ed546b78e701554fa7321867e8..cbe075362a78a3f4c7c9a83f1e22bd8ac4074993 100644 --- a/indra/newview/skins/default/xui/nl/notifications.xml +++ b/indra/newview/skins/default/xui/nl/notifications.xml @@ -983,7 +983,7 @@ Vriendschap aanbieden aan [NAME]? Vriendschap aanbieden aan [NAME]? <form name="form"> - <input name="message" type="text"> + <input name="message"> Wilt U mijn vriend zijn? </input> <button name="Offer" text="OK"/> @@ -1391,7 +1391,7 @@ Om een groep te verlaten, selecteer de 'Groep..' optie via het 'B <notification name="KickUser"> Verwijder deze gebruiker met welk bericht? <form name="form"> - <input name="message" type="text"> + <input name="message"> Een administrator heeft u uitgelogd. </input> <button name="OK" text="OK"/> @@ -1401,7 +1401,7 @@ Om een groep te verlaten, selecteer de 'Groep..' optie via het 'B <notification name="KickAllUsers"> Verwijder iedereen momenteel op het grid met welk bericht? <form name="form"> - <input name="message" type="text"> + <input name="message"> Een administrator heeft u uitgelogd. </input> <button name="OK" text="OK"/> @@ -1411,7 +1411,7 @@ Om een groep te verlaten, selecteer de 'Groep..' optie via het 'B <notification name="FreezeUser"> Bevries deze gebruiker met welk bericht? <form name="form"> - <input name="message" type="text"> + <input name="message"> U bent bevroren. U kunt zich niet verplaatsen of praten. Een administrator zal contact met u opnemen via instant message (IM). </input> <button name="OK" text="OK"/> @@ -1421,7 +1421,7 @@ Om een groep te verlaten, selecteer de 'Groep..' optie via het 'B <notification name="UnFreezeUser"> Ontdooi deze gebruiker met welk bericht? <form name="form"> - <input name="message" type="text"> + <input name="message"> U bent niet langer bevroren. </input> <button name="OK" text="OK"/> @@ -1431,7 +1431,7 @@ Om een groep te verlaten, selecteer de 'Groep..' optie via het 'B <notification name="OfferTeleport"> Een Teleport aanbieden naar uw locatie met welk bericht? <form name="form"> - <input name="message" type="text"> + <input name="message"> Voeg u bij mij in [REGION] </input> <button name="OK" text="OK"/> @@ -1441,7 +1441,7 @@ Om een groep te verlaten, selecteer de 'Groep..' optie via het 'B <notification name="OfferTeleportFromGod"> God beveel gebruiker naar uw locatie? <form name="form"> - <input name="message" type="text"> + <input name="message"> Voeg u bij mij in [REGION] </input> <button name="OK" text="OK"/> @@ -1455,7 +1455,7 @@ Om een groep te verlaten, selecteer de 'Groep..' optie via het 'B <notification label="Bericht iedereen in uw Estate" name="MessageEstate"> Type een kort bericht om naar iedereen sturen die momenteel in uw Estate aanwezig is. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Annuleren"/> </form> @@ -1678,7 +1678,7 @@ Advertentie nu Publiceren voor L$[AMOUNT]? <notification label="Bericht iedereen in deze regio" name="MessageRegion"> Type een kort bericht om naar iedereen sturen die momenteel in regio aanwezig is. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Annuleren"/> </form> @@ -1971,14 +1971,14 @@ De inhoud zal naar uw inventaris gekopieerd worden. Weet u zeker dat u verder wilt gaan met deze aankoop? <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/> </notification> - <notification name="ConfirmPurchasePassword" type="password"> + <notification name="ConfirmPurchasePassword"> Deze transactie zal: [ACTION] Weet u zeker dat u verder wilt gaan met deze aankoop? Voer alstublieft opnieuw uw wachtwoord in en klik op OK. <form name="form"> - <input name="message" type="password"/> + <input name="message"/> <button name="ConfirmPurchase" text="OK"/> <button name="Cancel" text="Annuleren"/> </form> @@ -2351,7 +2351,7 @@ Gelijkwaardig aan azimut. <notification name="NewSkyPreset"> Geef een naam op voor de nieuwe lucht. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nieuwe Voorinstelling </input> <button name="OK" text="OK"/> @@ -2364,7 +2364,7 @@ Gelijkwaardig aan azimut. <notification name="NewWaterPreset"> Geef een naam voor de nieuwe voorinstelling van water. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nieuwe Voorinstelling </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/nl/panel_friends.xml b/indra/newview/skins/default/xui/nl/panel_friends.xml index 2f43ee0a539e2d57b41010cf528e6a69a29d7b3c..eaf6e5d55b3ec3dc5d879e47de52abd60b784901 100644 --- a/indra/newview/skins/default/xui/nl/panel_friends.xml +++ b/indra/newview/skins/default/xui/nl/panel_friends.xml @@ -11,10 +11,10 @@ <column name="icon_edit_mine" tool_tip="Vriend kan objecten wijzigen, verwijderen of oppakken"/> <column name="icon_edit_theirs" tool_tip="U kunt de objecten van deze vriend bewerken"/> </scroll_list> - <button label="IM/Oproepen" name="im_btn" tool_tip="Open Instant Message sessie"/> - <button label="Profiel" name="profile_btn" tool_tip="Toon afbeelding, groepen en andere informatie"/> - <button label="Teleport..." name="offer_teleport_btn" tool_tip="Bied deze vriend een teleport naar uw huidige locatie aan"/> - <button label="Betaal..." name="pay_btn" tool_tip="Geef Linden dollars (L$) aan deze vriend"/> - <button label="Verwijderen..." name="remove_btn" tool_tip="Verwijder deze persoon van uw vriendenlijst"/> - <button label="Toevoegen..." name="add_btn" tool_tip="Bied vriendschap aan een inwoner aan"/> + <button label="IM/Oproepen" name="im_btn" tool_tip="Open Instant Message sessie" width="86"/> + <button label="Profiel" name="profile_btn" tool_tip="Toon afbeelding, groepen en andere informatie" width="86"/> + <button label="Teleport..." name="offer_teleport_btn" tool_tip="Bied deze vriend een teleport naar uw huidige locatie aan" width="86"/> + <button label="Betaal..." name="pay_btn" tool_tip="Geef Linden dollars (L$) aan deze vriend" width="86"/> + <button label="Verwijderen..." name="remove_btn" tool_tip="Verwijder deze persoon van uw vriendenlijst" width="86"/> + <button label="Toevoegen..." name="add_btn" tool_tip="Bied vriendschap aan een inwoner aan" width="86"/> </panel> diff --git a/indra/newview/skins/default/xui/nl/panel_group_general.xml b/indra/newview/skins/default/xui/nl/panel_group_general.xml index 9982a527f48e150468ff87b6ca80aa09613e9e0b..d92d41bcb3f0fca3f157901e4ae2a65b622a203a 100644 --- a/indra/newview/skins/default/xui/nl/panel_group_general.xml +++ b/indra/newview/skins/default/xui/nl/panel_group_general.xml @@ -16,18 +16,18 @@ Laat uw muis boven de opties zweven voor meer help. <text name="prepend_founded_by"> Opgericht door </text> - <text name="founder_name"> + <text name="founder_name" left_delta="84"> (wachten) </text> - <text name="group_charter_label"> + <text name="group_charter_label" width="244"> Groepcharter </text> <texture_picker label="Groepinsigne" name="insignia" tool_tip="Klik om een afbeelding te kiezen"/> - <text_editor name="charter"> + <text_editor name="charter" width="244"> Groepcharter </text_editor> <button label="Deelnemen (L$0)" label_selected="Deelnemen (L$0)" name="join_button"/> - <button label="Gedetailleerde weergave" label_selected="Gedetailleerde weergave" name="info_button"/> + <button label="Gedetailleerde weergave" label_selected="Gedetailleerde weergave" name="info_button" width="154"/> <text name="text_owners_and_visible_members"> Eigenaren en zichtbare leden </text> @@ -35,28 +35,22 @@ Laat uw muis boven de opties zweven voor meer help. (Eigenaren worden vet getoond) </text> <name_list name="visible_members"> - <column label="Lidnaam" name="name"/> - <column label="Titel" name="title"/> - <column label="Laatste login" name="online"/> + <name_list.columns label="Lidnaam" name="name"/> + <name_list.columns label="Titel" name="title"/> + <name_list.columns label="Laatste login" name="online"/> </name_list> <text name="text_group_preferences"> Groepvoorkeuren </text> <panel name="preferences_container"> - <check_box label="Toon in zoeken" name="show_in_group_list" tool_tip="Laat mensen deze groep zien in zoekresultaten."/> + <check_box label="Toon in zoeken" name="show_in_group_list" tool_tip="Stelt in of deze groep zichtbaar is in de zoekresultaten."/> <check_box label="Vrije toegang" name="open_enrollement" tool_tip="Stelt in of deze groep toestaat dat nieuwe leden lid kunnen worden zonder uitgenodigd te zijn."/> <check_box label="Contributiebijdrage: L$" name="check_enrollment_fee" tool_tip="Stelt in of er een contributiebijdrage vereist is om lid te worden van de groep."/> - <spinner name="spin_enrollment_fee" tool_tip="Nieuwe leden moeten deze bijdrage betalen om deel te nemen aan de groep wanneer "Contributie bijdrage" is aangevinkt."/> + <spinner name="spin_enrollment_fee" tool_tip="Nieuwe leden moeten deze bijdrage betalen om deel te nemen aan de groep wanneer "Contributie bijdrage" is aangevinkt." width="58" left_delta="142"/> <combo_box name="group_mature_check" tool_tip="Stelt in of uw groepsinformatie als mature beschouwd wordt."> - <combo_item name="select_mature"> - - Selecteer - - </combo_item> - <combo_item name="mature"> - Mature inhoud - </combo_item> - <combo_item name="pg"> - PG inhoud - </combo_item> + <combo_box.item name="select_mature" label="- Selecteer -"/> + <combo_box.item name="mature" label="Mature inhoud"/> + <combo_box.item name="pg" label="PG inhoud"/> </combo_box> <panel name="title_container"> <text name="active_title_label"> @@ -64,14 +58,15 @@ Laat uw muis boven de opties zweven voor meer help. </text> <combo_box name="active_title" tool_tip="Stelt de titel in die in uw avatar's naamlabel verschijnt wanneer deze groep actief is."/> </panel> - <check_box label="Ontvang groepsberichten" name="receive_notices" tool_tip="Stelt in of u berichten van deze groep wilt ontvangen. Verwijder het vinkje wanneer u spam ontvangt van deze groep."/> + <check_box label="Ontvang groepsberichten" name="receive_notices" tool_tip="Stelt in of u berichten van deze groep wilt ontvangen. Verwijder het vinkje wanneer u spam ontvangt van deze groep." left_delta="-4"/> <check_box label="Toon deze groep in mijn profiel" name="list_groups_in_profile" tool_tip="Stelt in of u deze groep in uw profiel wil laten zien"/> </panel> <string name="incomplete_member_data_str"> Ledendata ophalen </string> <string name="confirm_group_create_str"> - Het maken van deze groep zal u L$100 kosten. Weet u echt, echt, ECHT zeker dat u L$100 wil besteden om deze groep te maken? -Wees u ervan bewust dat, indien niemand anders binnen 48 uur lid wordt van deze groep, deze ontmanteld zal worden, waarbij de groepsnaam onbeschikbaar zal blijven voor toekomstig gebruik. + Het maken van deze groep zal u L$ 100 kosten. Weet u ECHT héél zeker dat u L$ 100 wilt betalen om deze groep te maken? + +WEES U ER VAN BEWUST, dat als er niemand binnen 48 uur lid wordt van deze groep, deze weer ontmanteld zal worden. Hierbij zal ook de groepsnaam onbeschikbaar blijven voor toekomstig gebruik! </string> </panel> diff --git a/indra/newview/skins/default/xui/nl/panel_group_invite.xml b/indra/newview/skins/default/xui/nl/panel_group_invite.xml index 004fdc4bee68f5fa1b25fc9fe1cac6d92ac3a031..e012d88ff5900f2ff6a2e0509de43f5f4920b72d 100644 --- a/indra/newview/skins/default/xui/nl/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/nl/panel_group_invite.xml @@ -1,15 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Nodig een lid uit" name="invite_panel"> <text name="help_text"> - U kunt meerdere inwoners selecteren om voor uw groep uit te nodigen. Klik 'Open inwonerkiezer' om te starten. + U kunt meerdere inwoners selecteren +om voor uw groep uit te nodigen. Klik +'Open inwonerkiezer' om te starten. </text> <button label="Open inwonerkiezer" name="add_button" tool_tip=""/> <name_list name="invitee_list" tool_tip="Houd de Ctrl-toets vast en klik de namen van de inwoners om meerdere te selecteren."/> <button label="Verwijder geselecteerden van lijst" name="remove_button" tool_tip="Verwijderd hierboven geselecteerde inwoners van de uitnodigingslijst."/> <text name="role_text"> - Kies welke rol aan hen wordt toegewezen: + Kies welke rol aan hen wordt +toegewezen: </text> - <combo_box name="role_name" tool_tip="Kies uit de lijst met rollen waarvoor u toestemming heeft om leden toe te wijzen."/> + <combo_box name="role_name" tool_tip="Kies uit de lijst met rollen waarvoor u toestemming heeft om leden toe te wijzen." bottom_delta="-30"/> <button label="Verzend uitnodigingen" name="ok_button"/> <button label="Annuleren" name="cancel_button"/> <string name="confirm_invite_owner_str"> diff --git a/indra/newview/skins/default/xui/nl/panel_group_notices.xml b/indra/newview/skins/default/xui/nl/panel_group_notices.xml index 41aff527dd2cdaa4debd0688c4a350a988833e1f..134261197aaa6699615bc86536e901d3b8f79774 100644 --- a/indra/newview/skins/default/xui/nl/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/nl/panel_group_notices.xml @@ -11,7 +11,7 @@ Groepsberichtenarchief </text> <text name="lbl2"> - Berichten worden 14 dagen bewaard. Klik hieronder het bericht dat u wilt bekijken. Klik de 'Verversen' knop om te controleren of nieuwe berichten zijn ontvangen. Berichtenlijsten zijn gelimiteerd tot 200 berichten groep per dag. + Berichten worden 14 dagen bewaard. Berichtenlijsten zijn gelimiteerd tot 200 berichten groep per dag. </text> <scroll_list name="notice_list"> <column label="Onderwerp" name="subject"/> @@ -28,18 +28,21 @@ Maak een bericht </text> <text name="lbl2"> - U dient een onderwerp in te voeren om een bericht te versturen. U kunt een enkel item aan een bericht toevoegen door het van uw inventaris naar dit paneel te slepen. Bevestigde items moeten kopieerbaar en overdraagbaar zijn en u kunt geen mappen versturen. + U kunt een enkel item aan een bericht toevoegen door het van uw inventaris naar dit paneel te slepen. Bevestigde items moeten kopieerbaar en overdraagbaar zijn en u kunt geen mappen versturen. </text> - <text name="lbl3"> + <text bottom_delta="-79" halign="right" left="10" name="lbl3" width="60"> Onderwerp: </text> - <text name="lbl4"> + <line_editor name="create_subject" width="331" left_delta="71"/> + <text bottom_delta="-18" halign="right" left="10" name="lbl4" width="60"> Bericht: </text> - <text name="lbl5"> + <text_editor name="create_message" bottom_delta="-90" height="104" left_delta="71" width="330"/> + <line_editor name="create_inventory_name" width="190" left_delta="71"/> + <text name="lbl5" left="10"> Bevestig: </text> - <button label="Verwijder bevestiging:" label_selected="Verwijder bevestiging:" name="remove_attachment"/> + <button label="Verwijder bevestiging" label_selected="Verwijder bevestiging" name="remove_attachment"/> <button label="Verzend bericht" label_selected="Verzend bericht" name="send_notice"/> <panel name="drop_target" tool_tip="Sleep een inventarisitem op het berichtvenster om het met het bericht mee te sturen. U dient permissie te hebben om het object te kopiëren en over te dragen wilt u het met het bericht mee kunnen sturen."/> </panel> @@ -56,6 +59,7 @@ <text name="lbl4"> Bericht: </text> - <button label="Open bevestiging" label_selected="Open bevestiging" name="open_attachment"/> + <button label="Open bevestiging" label_selected="Open bevestiging" name="open_attachment" width="118"/> + <line_editor left="128" name="view_inventory_name" width="256"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/nl/panel_group_roles.xml b/indra/newview/skins/default/xui/nl/panel_group_roles.xml index 50aabb04338ebb5c51038c45099a72eb1a528ec4..ffaaa8137a9a8d6143994d438bc7a7b5e3ed7763 100644 --- a/indra/newview/skins/default/xui/nl/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/nl/panel_group_roles.xml @@ -12,7 +12,9 @@ Leden & Rollen </text> <text name="static2"> - Groepsleden krijgen Rollen met Mogelijkheden toegekend. Deze instellingen kunnen eenvoudig aangepast worden, zodat meer organisatie en flexibiliteit mogelijk is. + Groepsleden krijgen Rollen met Mogelijkheden toegekend. Deze instellingen +kunnen eenvoudig aangepast worden, zodat meer organisatie en flexibiliteit +mogelijk is. </text> </panel> <panel name="roles_header"> @@ -20,12 +22,14 @@ Rollen </text> <text name="role_properties_modifiable"> - Selecteer een Rol hieronder. U kunt zijn Naam, Omschrijving en Lid Titel wijzigen. + Selecteer een Rol hieronder. U kunt zijn Naam, Omschrijving en +Lid Titel wijzigen. </text> <text name="role_properties_not_modifiable"> - Selecteer een Rol hieronder om zijn eigenschappen, Leden en toegestane Mogelijkheden te bekijken. + Selecteer een Rol hieronder om zijn eigenschappen, Leden en +toegestane Mogelijkheden te bekijken. </text> - <text name="role_actions_modifiable"> + <text bottom_delta="-28" name="role_actions_modifiable"> U kunt ook Mogelijkheden aan de Rol toekennen. </text> <text name="role_actions_not_modifiable"> @@ -37,14 +41,16 @@ Mogelijkheden </text> <text name="static2"> - U kunt de Omschrijving van een Mogelijkheid bekijken en welke Rollen en Leden de Mogelijkheid kunnen uitvoeren. + U kunt de Omschrijving van een Mogelijkheid bekijken en welke Rollen en +Leden de Mogelijkheid kunnen uitvoeren. </text> </panel> - <tab_container name="roles_tab_container"> - <panel label="Leden" name="members_sub_tab" tool_tip="Leden"> + <tab_container height="164" name="roles_tab_container"> + <panel height="148" label="Leden" name="members_sub_tab" tool_tip="Leden"> + <line_editor bottom="127" name="search_text"/> <button label="Zoeken" name="search_button"/> <button label="Alles Tonen" name="show_all_button"/> - <name_list name="member_list"> + <name_list bottom_delta="-105" height="104" name="member_list"> <column label="Lid Naam" name="name"/> <column label="Gedoneerde Tier" name="donated"/> <column label="Laatste Login" name="online"/> @@ -55,15 +61,16 @@ U kunt Rollen aan Leden toewijzen of van Leden afnemen. Selecteer meerdere Leden door de Ctrl toets ingedrukt te houden en op hun namen te klikken. </string> </panel> - <panel label="Rollen" name="roles_sub_tab"> + <panel height="148" label="Rollen" name="roles_sub_tab"> + <line_editor bottom="127" name="search_text"/> <button label="Zoeken" name="search_button"/> <button label="Alles Tonen" name="show_all_button"/> - <scroll_list name="role_list"> + <scroll_list bottom_delta="-104" height="104" name="role_list"> <column label="Rol Naam" name="name"/> <column label="Titel" name="title"/> <column label="Leden" name="members"/> </scroll_list> - <button label="Nieuwe Rol Maken ..." name="role_create"/> + <button label="Nieuwe Rol Maken..." name="role_create"/> <button label="Rol Verwijderen" name="role_delete"/> <string name="help_text"> Rollen hebben een titel en een toegestane lijst met Mogelijkheden die Leden kunnen uitvoeren. Leden kunnen tot 1 of meer Rollen behoren. Een groep kan tot 10 Rollen bevatten, inclusief de Iedereen en Eigenaren Rollen. @@ -72,10 +79,11 @@ De 'Iedereen' en 'Eigenaren' Rollen zijn speciaal en kunnen niet verwijderd worden. </string> </panel> - <panel label="Mogelijkheden" name="actions_sub_tab"> + <panel height="148" label="Mogelijkheden" name="actions_sub_tab"> + <line_editor bottom="127" name="search_text"/> <button label="Zoeken" name="search_button"/> <button label="Alles Tonen" name="show_all_button"/> - <scroll_list name="action_list" tool_tip="Selecteer een Mogelijkheid om meer details te bekijken."/> + <scroll_list bottom_delta="-120" height="118" name="action_list" tool_tip="Selecteer een Mogelijkheid om meer details te bekijken."/> <string name="help_text"> Mogelijkheden stellen leden in staat om specifieke dingen in een groep te doen. Er is een brede variëteit aan Mogelijkheden. </string> diff --git a/indra/newview/skins/default/xui/nl/panel_groups.xml b/indra/newview/skins/default/xui/nl/panel_groups.xml index 5b66eddb731ef36ae69f305cda00cbb3fd799ea4..a0c77b83ffbfa42fbabbf0c76bfb7a221650e234 100644 --- a/indra/newview/skins/default/xui/nl/panel_groups.xml +++ b/indra/newview/skins/default/xui/nl/panel_groups.xml @@ -3,13 +3,13 @@ <text name="groupdesc"> Uw huidige actieve groep wordt vet getoond. </text> - <text name="groupcount"> + <text name="groupcount" width="300"> U behoort tot [COUNT] groepen (maximaal [MAX]). </text> - <button label="IM/Oproepen" name="IM" tool_tip="Open Instant Message sessie"/> - <button label="Info" name="Info"/> - <button label="Activeren" name="Activate"/> - <button label="Verlaten" name="Leave"/> - <button label="Maak…" name="Create"/> - <button label="Zoeken…" name="Search..."/> + <button label="IM/Oproepen" name="IM" tool_tip="Open Instant Message sessie" width="86"/> + <button label="Info" name="Info" width="86"/> + <button label="Activeren" name="Activate" width="86"/> + <button label="Verlaten" name="Leave" width="86"/> + <button label="Maak…" name="Create" width="86"/> + <button label="Zoeken…" name="Search..." width="86"/> </panel> diff --git a/indra/newview/skins/default/xui/nl/panel_login.xml b/indra/newview/skins/default/xui/nl/panel_login.xml index 5014d7761c0ebecdddfa3429f3bc6fb83d25285e..5bfb9dd235864a615912a01d2855f10742359d04 100644 --- a/indra/newview/skins/default/xui/nl/panel_login.xml +++ b/indra/newview/skins/default/xui/nl/panel_login.xml @@ -21,7 +21,7 @@ <combo_box name="start_location_combo"> <combo_box.item name="MyHome" label="Mijn Thuis"/> <combo_box.item name="MyLastLocation" label="Mijn Laatste Locatie"/> - <combo_box.item name="Typeregionname" label="lt; Type regio naam >"/> + <combo_box.item name="Typeregionname" label="< Type regio naam >"/> </combo_box> <check_box label="Onthoud wachtwoord" name="remember_check"/> <button label="Inloggen" label_selected="Inloggen" name="connect_btn"/> diff --git a/indra/newview/skins/default/xui/nl/panel_region_estate.xml b/indra/newview/skins/default/xui/nl/panel_region_estate.xml index 731887dc5d43f94dc7d5957a4eb9bd9f501dc7b7..3a8096ce5f5573e6e433dfd1e6b2b50e14abcf95 100644 --- a/indra/newview/skins/default/xui/nl/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/nl/panel_region_estate.xml @@ -1,7 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Estate" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="Estate" name="Estate"> <text name="estate_help_text"> - Wijzigingen van instellingen op dit tabblad zullen alle regio's in de estate beïnvloeden. + Wijzigingen van instellingen op dit tabblad +zullen alle regio's in de estate beïnvloeden. </text> <text name="estate_text"> Estate: @@ -10,7 +13,7 @@ (onbekend) </text> <text name="owner_text"> - Eigenaar + Eigenaar: </text> <text name="estate_owner"> (onbekend) @@ -25,21 +28,22 @@ <text name="Only Allow"> Beperk toegang tot: </text> - <check_box label="Inwoners met betalingsinformatie opgeslagen" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/> - <check_box label="Leeftijdgeverifieerde volwassenen" name="limit_age_verified" tool_tip="Verban inwoners die hun leeftijd niet geverifieerd hebben. Zie support.secondlife.com voor meer informatie."/> + <check_box label="Inwoners met betalingsinformatie opgeslagen" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/> + <check_box label="Leeftijdgeverifieerde volwassenen" name="limit_age_verified" tool_tip="Verban inwoners die hun leeftijd niet geverifieerd hebben. Zie support.secondlife.com voor meer informatie." bottom_delta="-30"/> <check_box label="Voice chat toestaan" name="voice_chat_check"/> <button label="?" name="voice_chat_help"/> <check_box label="Directe teleport toestaan" name="allow_direct_teleport"/> <button label="?" name="allow_direct_teleport_help"/> - <text name="abuse_email_text"> + <text name="abuse_email_text" bottom_delta="-23"> Misbruik e-mail adres: </text> + <line_editor bottom_delta="-14" name="abuse_email_address" /> <string name="email_unsupported"> Optie niet ondersteund </string> <button label="?" name="abuse_email_address_help"/> - <button label="Toepassen" name="apply_btn"/> - <button label="Gebruiker verwijderen van estate" name="kick_user_from_estate_btn"/> + <button label="Toepassen" name="apply_btn" bottom_delta="-22"/> + <button label="Gebruiker verwijderen van estate..." name="kick_user_from_estate_btn"/> <button label="Zend bericht naar estate..." name="message_estate_btn"/> <text name="estate_manager_label"> Estate beheerders: @@ -65,4 +69,6 @@ <button label="?" name="ban_resident_help"/> <button label="Verwijderen..." name="remove_banned_avatar_btn"/> <button label="Toevoegen..." name="add_banned_avatar_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/nl/panel_region_general.xml b/indra/newview/skins/default/xui/nl/panel_region_general.xml index 9ed822ac13d1681082f92ace8b1eeaad9f95ab11..74480ed0a49ffb513422d7ac91f88ca75050793d 100644 --- a/indra/newview/skins/default/xui/nl/panel_region_general.xml +++ b/indra/newview/skins/default/xui/nl/panel_region_general.xml @@ -29,9 +29,9 @@ <check_box label="Landverkoop toestaan" name="allow_land_resell_check"/> <button label="?" name="land_resell_help"/> <check_box label="Samenvoegen/opsplitsen land toestaan" name="allow_parcel_changes_check"/> - <button label="?" name="parcel_changes_help"/> + <button label="?" name="parcel_changes_help" left="240"/> <check_box label="Blokkeer zichtbaarheid land in zoeken" name="block_parcel_search_check" tool_tip="Laat mensen deze regio en zijn percelen in zoekresultaten zien"/> - <button label="?" name="parcel_search_help"/> + <button label="?" name="parcel_search_help" left="240"/> <spinner label="Agent limiet" name="agent_limit_spin"/> <button label="?" name="agent_limit_help"/> <spinner label="Object bonus" name="object_bonus_spin"/> @@ -40,15 +40,9 @@ Inhoudscategorie: </text> <combo_box label="Mature" name="access_combo"> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Mature"> - Mature - </combo_item> - <combo_item name="PG"> - PG - </combo_item> + <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="Mature" name="Mature"/> + <combo_box.item label="PG" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="Toepassen" name="apply_btn"/> diff --git a/indra/newview/skins/default/xui/nl/panel_region_texture.xml b/indra/newview/skins/default/xui/nl/panel_region_texture.xml index ff10e20b7ce8e3ef7558fc59b9c1ac38eb96c4d6..da40926ce2f925a36c324180b7f22f37a4d89f2f 100644 --- a/indra/newview/skins/default/xui/nl/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/nl/panel_region_texture.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Grond texturen" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="Grond texturen" name="Textures"> <text name="region_text_lbl"> Regio: </text> @@ -54,4 +56,6 @@ en de HIGH waarde is de MINIMUM hoogte van textuur #4. </text> <button label="Toepassen" name="apply_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/nl/panel_world_map.xml b/indra/newview/skins/default/xui/nl/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..4df1ec10d8bdf2d08b978101473ad70d0d460087 --- /dev/null +++ b/indra/newview/skins/default/xui/nl/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + N + </panel.string> + <panel.string name="world_map_east"> + O + </panel.string> + <panel.string name="world_map_west"> + W + </panel.string> + <panel.string name="world_map_south"> + Z + </panel.string> + <panel.string name="world_map_southeast"> + ZO + </panel.string> + <panel.string name="world_map_northeast"> + NO + </panel.string> + <panel.string name="world_map_southwest"> + ZW + </panel.string> + <panel.string name="world_map_northwest"> + NW + </panel.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="O" name="floater_map_east" text="O"> + O + </text> + <text label="W" name="floater_map_west" text="W"> + W + </text> + <text label="Z" name="floater_map_south" text="Z"> + Z + </text> + <text label="ZO" name="floater_map_southeast" text="ZO"> + ZO + </text> + <text label="NO" name="floater_map_northeast" text="NO"> + NO + </text> + <text label="ZW" name="floater_map_southwest" text="ZW"> + ZW + </text> + <text label="NW" name="floater_map_northwest" text="NW"> + NW + </text> +</panel> diff --git a/indra/newview/skins/default/xui/nl/strings.xml b/indra/newview/skins/default/xui/nl/strings.xml index 49e566080ab488ab830bca9759e5264cb25f4f98..4f5f60bcfe628eb734089b50ca4792920b373778 100644 --- a/indra/newview/skins/default/xui/nl/strings.xml +++ b/indra/newview/skins/default/xui/nl/strings.xml @@ -486,4 +486,34 @@ <string name="choose_the_directory"> Kies folder </string> + <string name="accel-mac-control"> + Ctrl- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Opt- + </string> + <string name="accel-mac-shift"> + Shift- + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Shift+ + </string> + <string name="GraphicsQualityLow"> + Laag + </string> + <string name="GraphicsQualityMid"> + Middel + </string> + <string name="GraphicsQualityHigh"> + Hoog + </string> </strings> diff --git a/indra/newview/skins/default/xui/pl/floater_about_land.xml b/indra/newview/skins/default/xui/pl/floater_about_land.xml index 7612212105b01437b1036c606ea05eb8ebb57a57..b146891787682dde397ca10db693166c3872deb3 100755 --- a/indra/newview/skins/default/xui/pl/floater_about_land.xml +++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml @@ -2,10 +2,10 @@ <floater name="floaterland" title="O PosiadÅ‚oÅ›ci"> <tab_container name="landtab"> <panel label="Ogólne" name="land_general_panel"> - <text length="1" name="Name:" type="string"> + <text name="Name:"> Nazwa: </text> - <text length="1" name="Description:" type="string"> + <text name="Description:"> Opis: </text> <text name="LandType"> @@ -20,56 +20,56 @@ <text name="ContentRatingText"> 'Adult' </text> - <text length="1" name="Owner:" type="string"> + <text name="Owner:"> WÅ‚aÅ›ciciel: </text> - <text length="1" name="OwnerText" type="string"> + <text name="OwnerText"> Leyla Linden </text> <button label="Profile..." label_selected="Profile..." name="Profile..."/> - <text length="1" name="Group:" type="string"> + <text name="Group:"> Grupa: </text> <button label="Ustaw..." label_selected="Ustaw..." name="Set..."/> <check_box label="UdostÄ™pnij przypisywanie na grupÄ™" name="check deed" tool_tip="Oficer grupy ma prawo przepisać prawo wÅ‚asnoÅ›ci posiadÅ‚oÅ›ci na grupÄ™. PosiadÅ‚ość wspierana jest przez przydziaÅ‚y pochodzÄ…ce od czÅ‚onków grupy."/> <button label="Przypisz..." label_selected="Przypisz..." name="Deed..." tool_tip="Prawo przypisania posiadÅ‚oÅ›ci na grupÄ™ może dokonać jedynie oficer grupy."/> <check_box label="WÅ‚aÅ›cicel dokonuje wpÅ‚at zwiÄ…zanych z posiadÅ‚oÅ›ciÄ…" name="check contrib" tool_tip="Kiedy posiadÅ‚ość zostaje przypisana na grupÄ™, poprzedni wÅ‚aÅ›ciciel realizuje wpÅ‚aty z niÄ… zwiÄ…zane w celu jej utrzymania."/> - <text length="1" name="For Sale:" type="string"> + <text name="For Sale:"> Na Sprzedaż: </text> - <text length="1" name="Not for sale." type="string"> + <text name="Not for sale."> Nie </text> - <text length="1" name="For Sale: Price L$[PRICE]." type="string"> + <text name="For Sale: Price L$[PRICE]."> Cena: L$[PRICE] (L$[PRICE_PER_SQM]/m²). </text> <button label="Sprzedaj PosiadÅ‚ość..." label_selected="Sprzedaj PosiadÅ‚ość..." name="Sell Land..."/> - <text length="1" name="For sale to" type="string"> + <text name="For sale to"> Na sprzedaż dla: [BUYER] </text> - <text length="1" name="Sell with landowners objects in parcel." type="string"> + <text name="Sell with landowners objects in parcel."> Obiekty sÄ… zawarte w sprzedaży. </text> - <text length="1" name="Selling with no objects in parcel." type="string"> + <text name="Selling with no objects in parcel."> Obiekty nie sÄ… zawarte w sprzedaży. </text> <button label="Anuluj Sprzedaż" label_selected="Anuluj Sprzedaż" name="Cancel Land Sale"/> - <text length="1" name="Claimed:" type="string"> + <text name="Claimed:"> Data: </text> - <text length="1" name="DateClaimText" type="string"> + <text name="DateClaimText"> Tue Aug 15 13:47:25 2006 </text> - <text length="1" name="PriceLabel" type="string"> + <text name="PriceLabel"> Obszar: </text> - <text length="1" name="PriceText" type="string"> + <text name="PriceText"> 4048 m² </text> - <text length="1" name="Traffic:" type="string"> + <text name="Traffic:"> Ruch: </text> - <text length="1" name="DwellText" type="string"> + <text name="DwellText"> 0 </text> <button label="Kup PosiadÅ‚ość..." label_selected="Kup PosiadÅ‚ość..." left="130" name="Buy Land..." width="125"/> @@ -78,76 +78,76 @@ <button label="Porzuć z PosiadÅ‚oÅ›ci..." label_selected="Porzuć z PosiadÅ‚oÅ›ci..." name="Abandon Land..."/> <button label="Odzyskaj PosiadÅ‚ość..." label_selected="Odzyskaj PosiadÅ‚ość..." name="Reclaim Land..."/> <button label="Sprzedaż przez Lindenów..." label_selected="Sprzedaż przez Lindenów..." name="Linden Sale..." tool_tip="PosiadÅ‚ość musi mieć wÅ‚aÅ›ciciela, zawartość oraz nie może być wystawiona na aukcÄ™."/> - <string name="new users only"> + <panel.string name="new users only"> Tylko nowi użytkownicy - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> Każdy - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> Obszar: - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA] m² - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> Numer aukcji: [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> Musisz zaakceptować zakup by móc modyfikować posiadÅ‚ość. - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (WÅ‚asność Grupy) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> Profil... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> Info... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (publiczne) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (brak) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (Sprzedaż w Toku Realizacji) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> PosiadÅ‚ość nie wybrana. Idź do Åšwiat > O PosiadÅ‚oÅ›ci albo wybierz innÄ… posiadÅ‚ość żeby pokazać jej dane. - </string> + </panel.string> </panel> <panel label="Umowa" name="land_covenant_panel"> <text name="estate_section_lbl"> MajÄ…tek: </text> - <text length="1" name="estate_name_lbl" type="string"> + <text name="estate_name_lbl"> Nazwa: </text> - <text length="1" name="estate_name_text" type="string" left="115"> + <text name="estate_name_text" left="115"> Główne </text> - <text length="1" name="estate_owner_lbl" type="string"> + <text name="estate_owner_lbl"> WÅ‚aÅ›ciciel: </text> - <text length="1" name="estate_owner_text" type="string" left="115"> + <text name="estate_owner_text" left="115"> (brak) </text> - <text_editor length="1" name="covenant_editor" type="string" left="115"> + <text_editor name="covenant_editor" left="115"> Ta posiadÅ‚ość nie wymaga żadej umowy. </text_editor> - <text length="1" name="covenant_timestamp_text" type="string" left="115"> + <text name="covenant_timestamp_text" left="115"> Ostatnia Modyfikacja Wed Dec 31 16:00:00 1969 </text> <text name="region_section_lbl"> Region: </text> - <text length="1" name="region_name_lbl" type="string"> + <text name="region_name_lbl"> Nazwa: </text> - <text length="1" name="region_name_text" type="string" left="115"> + <text name="region_name_text" left="115"> leyla </text> <text name="region_landtype_lbl"> @@ -165,92 +165,92 @@ Idź do Åšwiat > O PosiadÅ‚oÅ›ci albo wybierz innÄ… posiadÅ‚ość żeby pokaz <text name="resellable_lbl"> Odsprzedaj: </text> - <text length="1" name="resellable_clause" type="string" width="338" left="115"> + <text name="resellable_clause" width="338" left="115"> PosiadÅ‚ość zakupiona w tym regionie nie może być odsprzedana. </text> <text name="changeable_lbl"> Podziel: </text> - <text length="1" name="changeable_clause" type="string" width="338" left="115"> + <text name="changeable_clause" width="338" left="115"> PosiadÅ‚ość zakupiona w tym regionie nie może być Å‚Ä…czona/dzielona. </text> - <string name="can_resell"> + <panel.string name="can_resell"> PosiadÅ‚ość zakupiona w tym regionie może być odsprzedana. - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> PosiadÅ‚ość zakupiona w tym regionie nie może być odsprzedana. - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> PosiadÅ‚ość zakupiona w tym regionie może być Å‚Ä…czona/dzielona. - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> PosiadÅ‚ość zakupiona w tym regionie nie może być Å‚Ä…czona/dzielona. - </string> + </panel.string> </panel> <panel label="Obiekty" name="land_objects_panel"> - <text length="1" name="parcel_object_bonus" type="string"> + <text name="parcel_object_bonus"> Ilość Ekstra Obiektów: [BONUS] </text> - <text length="1" name="Simulator primitive usage:" type="string"> + <text name="Simulator primitive usage:"> Ilość używanych primóww: </text> - <text length="1" name="objects_available" type="string" width="230"> + <text name="objects_available" width="230"> [COUNT] z [MAX] ([AVAILABLE] jest dostÄ™pne) </text> - <string name="objects_available_text"> + <panel.string name="objects_available_text"> [COUNT] z [MAX] ([AVAILABLE] jest dostÄ™pne) - </string> - <string name="objects_deleted_text"> + </panel.string> + <panel.string name="objects_deleted_text"> [COUNT] z [MAX] ([DELETED] zostanie usuniÄ™te) - </string> - <text length="1" name="Primitives parcel supports:" type="string"> + </panel.string> + <text name="Primitives parcel supports:"> Maksymalna ilość primów: </text> - <text length="1" name="object_contrib_text" type="string"> + <text name="object_contrib_text"> [COUNT] </text> - <text length="1" name="Primitives on parcel:" type="string"> + <text name="Primitives on parcel:"> Primy na posiadÅ‚oÅ›ci: </text> - <text length="1" name="total_objects_text" type="string"> + <text name="total_objects_text"> [COUNT] </text> - <text length="1" name="Owned by parcel owner:" type="string"> + <text name="Owned by parcel owner:"> WÅ‚aÅ›ciciela posiadÅ‚oÅ›ci: </text> - <text length="1" name="owner_objects_text" type="string"> + <text name="owner_objects_text"> [COUNT] </text> <button label="Pokaż" label_selected="Pokaż" name="ShowOwner"/> <button label="Zwróć..." label_selected="Zwróć..." name="ReturnOwner..." tool_tip="Zwróć obiekty do ich wÅ‚aÅ›cicieli."/> - <text length="1" name="Set to group:" type="string"> + <text name="Set to group:"> Grupy: </text> - <text length="1" name="group_objects_text" type="string"> + <text name="group_objects_text"> [COUNT] </text> <button label="Pokaż" label_selected="Pokaż" name="ShowGroup"/> <button label="Zwróć..." label_selected="Zwróć..." name="ReturnGroup..." tool_tip="Zwróć obiekty do ich wÅ‚aÅ›cicieli.."/> - <text length="1" name="Owned by others:" type="string"> + <text name="Owned by others:"> Innych Rezydentów: </text> - <text length="1" name="other_objects_text" type="string"> + <text name="other_objects_text"> [COUNT] </text> <button label="Pokaż" label_selected="Pokaż" name="ShowOther"/> <button label="Zwróć..." label_selected="Zwróć..." name="ReturnOther..." tool_tip="Zwróć obiekty do ich wÅ‚aÅ›cicieli."/> - <text length="1" name="Selected / sat upon:" type="string"> + <text name="Selected / sat upon:"> Wybranych: </text> - <text length="1" name="selected_objects_text" type="string"> + <text name="selected_objects_text"> [COUNT] </text> - <text length="1" name="Autoreturn" type="string"> + <text name="Autoreturn"> Zwracaj obiekty innych Rezydentów (minut, 0 = wyÅ‚Ä…cz): </text> - <text length="1" name="Object Owners:" type="string" width="108"> + <text name="Object Owners:" width="108"> WÅ‚aÅ›ciciel Obiektów: </text> <button label="OdÅ›wież ListÄ™" label_selected="OdÅ›wież ListÄ™" left="112" name="Refresh List"/> @@ -264,153 +264,155 @@ Idź do Åšwiat > O PosiadÅ‚oÅ›ci albo wybierz innÄ… posiadÅ‚ość żeby pokaz </name_list> </panel> <panel label="Opcje" name="land_options_panel"> - <text length="1" name="allow_label" type="string"> + <text name="allow_label"> UdostÄ™pnij innym Rezydentom: </text> <check_box label="Edytowanie Terenu" name="edit land check" tool_tip="Wybrana - każdy może ksztaÅ‚tować Twój teren. Najlepiej jest zostawić tÄ… opcjÄ™ nie wybranÄ…, Ty zawsze możesz ksztaÅ‚towć Twój teren."/> <check_box label="Zapisywania Miejsca" name="check landmark"/> <check_box label="Latanie" name="check fly" tool_tip="Wybrana - Rezydenci mogÄ… latać na Twojej posiadÅ‚oÅ›ci. Nie wybrana - mogÄ… tylko wlatywać do lub latać ponad TwojÄ… posiadÅ‚oÅ›ciÄ…."/> - <text length="1" name="allow_label2" type="string"> + <text name="allow_label2"> Budowanie: </text> <check_box label="Wszyscy" name="edit objects check"/> <check_box label="Grupa" name="edit group objects check"/> - <text length="1" name="allow_label3" type="string"> + <text name="allow_label3"> Nowe Obiekty: </text> <check_box label="Wszyscy" name="all object entry check"/> <check_box label="Grupa" name="group object entry check"/> - <text length="1" name="allow_label4" type="string"> + <text name="allow_label4"> Skrypty: </text> <check_box label="Wszyscy" name="check other scripts"/> <check_box label="Grupa" name="check group scripts"/> - <text length="1" name="land_options_label" type="string"> + <text name="land_options_label"> Opcje PosiadÅ‚oÅ›ci: </text> <check_box label="Bezpieczna (brak zniszczeÅ„)" name="check safe" tool_tip="Wybrana - posiadÅ‚ość jest bezpieczna - zniszczenia w walce sÄ… zablokowane. Nie wybrana - zniszczenia w walce sÄ… wÅ‚Ä…czone."/> <check_box label="Popychanie niedozwolone" name="PushRestrictCheck" tool_tip="Nie pozwalaj skryptom na popychanie. Wybranie tej opcji może być przydatne do ograniczenia zakłóceÅ„ spokoju w Twojej posiadÅ‚oÅ›ci."/> <check_box label="WyÅ›wietlaj w wyszukiwarce (30L$/tyg.)" name="ShowDirectoryCheck" tool_tip="UdostÄ™pnij ukazywanie siÄ™ nazwy posiadÅ‚oÅ›ci w wyszukiwarce"/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> UdostÄ™pnij wyÅ›wietlanie tej posiadÅ‚oÅ›ci w wyszukiwarce - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> Wybrana opcja jest wyÅ‚Ä…czona ze wzglÄ™du iż wielkość posiadÅ‚oÅ›ci wynosi 128 m² bÄ…dź mniej. Jedynie wiÄ™ksze posiadÅ‚oÅ›ci mogÄ… być umieszczone w bazie wyszukiwarki. - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> Wybrana opcja jest wyÅ‚Ä…czona ponieważ nie posiadasz prawa do modyfikacji posiadÅ‚oÅ›ci. - </string> + </panel.string> <combo_box name="land category with adult"> - <combo_item name="AnyCategory"> - Każda Kategoria - </combo_item> - <combo_item name="LindenLocation"> - Linden Lokacja - </combo_item> - <combo_item name="Adult"> - 'Adult' - </combo_item> - <combo_item name="Arts&Culture"> - Sztuka i Kultura - </combo_item> - <combo_item name="Business"> - Biznes - </combo_item> - <combo_item name="Educational"> - Edukacja - </combo_item> - <combo_item name="Gaming"> - Gra - </combo_item> - <combo_item name="Hangout"> - Poznawanie ludzi - </combo_item> - <combo_item name="NewcomerFriendly"> - Przyjazne dla nowych - </combo_item> - <combo_item name="Parks&Nature"> - Park i Natura - </combo_item> - <combo_item name="Residential"> - Mieszkalna - </combo_item> - <combo_item name="Shopping"> - Zakupy - </combo_item> - <combo_item name="Other"> - Inne - </combo_item> + <combo_box.item name="item0" label="Każda Kategoria" + /> + <combo_box.item name="item1" label="Linden Lokacja" + /> + <combo_box.item name="item2" label="'Adult'" + /> + <combo_box.item name="item3" label="Sztuka i Kultura" + /> + <combo_box.item name="item4" label="Biznes" + /> + <combo_box.item name="item5" label="Edukacyjna" + /> + <combo_box.item name="item6" label="Gra" + /> + <combo_box.item name="item7" label="Poznawanie ludzi" + /> + <combo_box.item name="item8" label="Przyjazne dla nowych" + /> + <combo_box.item name="item9" label=" Park i Natura" + /> + <combo_box.item name="item10" label="Mieszkalna" + /> + <combo_box.item name="item11" label="Zakupy" + /> + <combo_box.item name="item12" label="Inna" + /> </combo_box> <combo_box name="land category"> - <combo_box.item name="AnyCategory" label="Każda"/> - <combo_box.item name="LindenLocation" label="Linden Lokacja"/> - <combo_box.item name="Arts&Culture" label="Sztuka i Kultura"/> - <combo_box.item name="Business" label="Biznes"/> - <combo_box.item name="Educational" label="Edukacyjna"/> - <combo_box.item name="Gaming" label="Gra"/> - <combo_box.item name="Hangout" label="Poznawanie ludzi"/> - <combo_box.item name="NewcomerFriendly" label="Przyjazna dla nowych"/> - <combo_box.item name="Parks&Nature" label="Parki i Natura"/> - <combo_box.item name="Residential" label="Mieszkalna"/> - <combo_box.item name="Shopping" label="Komercja/Sklepy"/> - <combo_box.item name="Other" label="Inna"/> + <combo_box.item name="item0" label="Każda Kategoria" + /> + <combo_box.item name="item1" label="Linden Lokacja" + /> + <combo_box.item name="item3" label="Sztuka i Kultura" + /> + <combo_box.item name="item4" label="Biznes" + /> + <combo_box.item name="item5" label="Edukacyjna" + /> + <combo_box.item name="item6" label="Gra" + /> + <combo_box.item name="item7" label="Poznawanie ludzi" + /> + <combo_box.item name="item8" label="Przyjazna dla nowych" + /> + <combo_box.item name="item9" label="Parki i Natura" + /> + <combo_box.item name="item10" label="Mieszkalna" + /> + <combo_box.item name="item11" label="Zakupy" + /> + <combo_box.item name="item12" label="Inna" + /> </combo_box> <button label="?" label_selected="?" name="?"/> <check_box label="Treść 'Mature'" name="MatureCheck" tool_tip=""/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Treść 'Mature' - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Treść 'Adult' - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> Twoja posiadÅ‚ość bÄ…dź treść jakÄ… zawiera klasyfikowana jest jako 'Mature'. - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> Informacje o Twojej posiadÅ‚oÅ›ci i treÅ›ci jakÄ… zawiera klasyfikowane sÄ… jako 'Adult'. - </string> - <text length="1" name="Snapshot:" type="string"> + </panel.string> + <text name="Snapshot:"> ZdjÄ™cie: </text> <texture_picker label="" name="snapshot_ctrl" tool_tip="Kliknij by wybrać zdjÄ™ce"/> - <text length="1" name="landing_point" type="string"> + <text name="landing_point"> Punkt LÄ…dowania: [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (brak) - </string> + </panel.string> <button label="Ustaw" label_selected="Ustaw" name="Set" tool_tip="Ustal miejsce lÄ…dowania dla przybywajÄ…cych goÅ›ci. Używa poÅ‚ożenia Twojego awatara na tej posiadÅ‚oÅ›ci."/> <button label="Nowy" label_selected="Nowy" name="Clear" tool_tip="Clear the landing point."/> - <text length="1" name="Teleport Routing: " type="string"> + <text name="Teleport Routing: "> Trasa Teleportacji: </text> <combo_box name="landing type" tool_tip="Trasa Teleportacj-ustaw w jaki sposób bÄ™dzie sÄ™ odbywać proces telportacji w posiadÅ‚oÅ›ci."> - <combo_box.item length="1" name="Blocked" type="string" label="Zablokowana"/> - <combo_box.item length="1" name="LandingPoint" type="string" label="Punkt LÄ…dowania"/> - <combo_box.item length="1" name="Anywhere" type="string" label="Gdziekolwiek"/> + <combo_box.item name="Blocked" label="Zablokowana" + /> + <combo_box.item name="LandingPoint" label="Punkt LÄ…dowania" + /> + <combo_box.item name="Anywhere" label="Gdziekolwiek" + /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> Popychanie niedozwolone - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> Popychanie niedozwolone (Ustawienie Regionu) - </string> + </panel.string> </panel> <panel label="Media" name="land_media_panel"> - <text length="1" name="with media:" type="string"> + <text name="with media:"> Typ Mediów: </text> <combo_box name="media type" tool_tip=""/> - <text length="1" name="at URL:" type="string"> + <text name="at URL:"> URL Mediów: </text> <button label="Ustaw..." label_selected="Ustaw..." name="set_media_url"/> - <text length="1" name="Description:" type="string"> + <text name="Description:"> Opis: </text> <line_editor name="url_description" tool_tip="Text displayed next to play/load button"/> - <text length="1" name="Media texture:" type="string"> + <text name="Media texture:"> ZmieÅ„ TeksturÄ™: </text> @@ -420,7 +422,7 @@ TeksturÄ™: film lub stronÄ™ internetowÄ… po naciÅ›niÄ™ciu przycisku odtwarzania.) </text> - <text length="1" name="Options:" type="string"> + <text name="Options:"> Opcje Mediów: </text> @@ -428,23 +430,23 @@ Mediów: <check_box label="Powtórka Odtwarzania" name="media_loop" tool_tip="Odtwarzaj media z powtórkÄ…. Po wyÅ›wietleniu materialu, rozpocznie siÄ™ odtwarzanie od poczÄ…tku."/> <check_box label="Ukryj URL Mediów" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym użytkownikom. Nie dotyczy to jednak typów HTML."/> <check_box label="Ukryj URL Muzyki" name="hide_music_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów muzycznych w posiadÅ‚oÅ›ci wszystkim nieautoryzowanym użytkownikom"/> - <text length="1" name="media_size" tool_tip="Rozmiar dla Å‚adowania mediów internetowych. Zostaw 0 dla ustawieÅ„ domyÅ›lnych." type="string"> + <text name="media_size" tool_tip="Rozmiar dla Å‚adowania mediów internetowych. Zostaw 0 dla ustawieÅ„ domyÅ›lnych."> Rozmiar: </text> <spinner name="media_size_width" tool_tip="Rozmiar dla Å‚adowania mediów internetowych. Zostaw 0 dla ustawieÅ„ domyÅ›lnych."/> <spinner name="media_size_height" tool_tip="Rozmiar dla Å‚adowania mediów internetowych. Zostaw 0 dla ustawieÅ„ domyÅ›lnych."/> - <text length="1" name="pixels" type="string"> + <text name="pixels"> pixeli </text> - <text length="1" name="MusicURL:" type="string"> + <text name="MusicURL:"> URL Muzyki: </text> - <text length="1" name="Sound:" type="string"> + <text name="Sound:"> DźwiÄ™k: </text> <check_box label="Restrykcja obiektów oraz gestur dozwolonych w tej posiadÅ‚oÅ›ci" name="check sound local"/> <button label="?" label_selected="?" name="?" left="432"/> - <text length="1" name="Voice settings:" type="string"> + <text name="Voice settings:"> GÅ‚os: </text> <check_box label="Rozmowy Dozwolone" name="parcel_enable_voice_channel"/> @@ -452,23 +454,25 @@ Mediów: <check_box label="Ogranicz komunikacjÄ™ gÅ‚osowÄ… w tej posiadÅ‚oÅ›ci." name="parcel_enable_voice_channel_parcel"/> </panel> <panel label="DostÄ™p" name="land_access_panel"> - <text length="1" name="Limit access to this parcel to:" type="string"> + <text name="Limit access to this parcel to:"> DostÄ™p do tej posiadÅ‚oÅ›ci: </text> <check_box label="Publiczny" name="public_access"/> - <text length="1" name="Only Allow" type="string"> + <text name="Only Allow"> Zablokuj dostÄ™p dla: </text> <check_box label="Rezydentów niezarejestrowanych w systemie pÅ‚atniczym z Linden Lab" name="limit_payment" tool_tip="Ban unidentified residents."/> <check_box label="Rezydentów z brakiem weryfikacji wieku " name="limit_age_verified" tool_tip="Zbanuj Rezydetów bez weryfikacji wieku. Odwiedź support.secondlife.com po wiÄ™cej informacji."/> - <string name="estate_override"> + <panel.string name="estate_override"> Jedna lub wiÄ™cej z tych opcji ustawiona jest z poziomu posiadÅ‚oÅ›ci - </string> + </panel.string> <check_box label="UdostÄ™pnij wejÅ›cie grupie: [GROUP]" name="GroupCheck" tool_tip="Ustaw grupÄ™ w głównej zakÅ‚adce"/> <check_box label="Sprzedaj wejÅ›ciówki:" name="PassCheck" tool_tip="Otwórz tymczasowy dostÄ™p do tej posiadÅ‚oÅ›ci"/> <combo_box name="pass_combo"> - <combo_box.item name="Anyone" label="Każdemu"/> - <combo_box.item name="Group" label="Grupie"/> + <combo_box.item name="Anyone" label="Każdemu" + /> + <combo_box.item name="Group" label="Grupie" + /> </combo_box> <spinner label="Cena w L$:" name="PriceSpin"/> <spinner label="Ilość godzin dostÄ™pu:" name="HoursSpin"/> diff --git a/indra/newview/skins/default/xui/pl/floater_customize.xml b/indra/newview/skins/default/xui/pl/floater_customize.xml index 83c7c5c87d4f986c2c715b1156b5d215f4ad3a69..64d9300621c534e5a5b51ded84b647f888c6ea5f 100755 --- a/indra/newview/skins/default/xui/pl/floater_customize.xml +++ b/indra/newview/skins/default/xui/pl/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="WyglÄ…d"> <tab_container name="customize tab container"> - <panel label="Części CiaÅ‚a" name="body_parts_placeholder"/> + <placeholder label="Części CiaÅ‚a" name="body_parts_placeholder"/> <panel label="KsztaÅ‚t" name="Shape"> <button label="Wróć" label_selected="Wróć" name="Revert"/> <button label="CiaÅ‚o" label_selected="CiaÅ‚o" name="Body"/> @@ -14,34 +14,30 @@ <button label="Tułów" label_selected="Tułów" name="Torso"/> <button label="Nogi" label_selected="Nogi" name="Legs"/> <radio_group name="sex radio"> - <radio_item length="1" name="radio" type="string"> - Kobieta - </radio_item> - <radio_item length="1" name="radio2" type="string"> - Mężczyzna - </radio_item> + <radio_item name="radio" label="Kobieta"/> + <radio_item name="radio2" label="Mężczyzna"/> </radio_group> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: zabroniona modyfikacja </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowy ksztaÅ‚t poprzez przeciÄ…gniÄ™cie go ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asny ksztaÅ‚t z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tego ksztaÅ‚tu. </text> <text name="Item Action Label"> @@ -56,27 +52,27 @@ z plików roboczych. <button label="Detale Twarzy" label_selected="Detale Twarzy" name="Face Detail"/> <button label="Makijaż" label_selected="Makijaż" name="Makeup"/> <button label="Detale CiaÅ‚a" label_selected="Detale CiaÅ‚a" name="Body Detail"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowÄ… skórkÄ™ poprzez przeciÄ…gniÄ™cie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asnÄ… skórkÄ™ z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tej skórki. </text> <text name="Item Action Label"> @@ -95,27 +91,27 @@ z plików roboczych. <button label="Styl" label_selected="Styl" name="Style"/> <button label="Brwi" label_selected="Brwi" name="Eyebrows"/> <button label="Twarzy" label_selected="Twarzy" name="Facial"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowe wÅ‚osy poprzez przeciÄ…gniÄ™cie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asne wÅ‚osy z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tych wÅ‚osów. </text> <text name="Item Action Label"> @@ -128,27 +124,27 @@ z plików roboczych. <button label="Wróć" label_selected="Wróć" name="Revert"/> </panel> <panel label="Oczy" name="Eyes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowe oczy poprzez przeciÄ…gniÄ™cie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asne oczy z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tych oczów. </text> <text name="Item Action Label"> @@ -169,27 +165,27 @@ z plików roboczych. <button label="Zapisz" label_selected="Zapisz" name="Save"/> <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/> <button label="Wróć" label_selected="Wróć" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikowanie zabronione </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowÄ… koszulÄ™ poprzez przeciÄ…gniÄ™cie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asnÄ… koszulÄ™ z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tej koszuli. </text> <text name="Item Action Label"> @@ -204,27 +200,27 @@ z plików roboczych. <button label="Zapisz" label_selected="Zapisz" name="Save"/> <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/> <button label="Wróć" label_selected="Wróć" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikcja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowe spodnie poprzez przeciÄ…gniÄ™cie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asne spodnie z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tych spodni. </text> <text name="Item Action Label"> @@ -232,27 +228,27 @@ z plików roboczych. </text> </panel> <panel label="Buty" name="Shoes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adwanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowe buty poprzez przeciÄ…gniÄ™cie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asne buty z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tych butów. </text> <text name="Item Action Label"> @@ -267,27 +263,27 @@ z plików roboczych. <button label="Wróć" label_selected="Wróć" name="Revert"/> </panel> <panel label="Skarpety" name="Socks"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowe skarpety poprzez przeciÄ…gniÄ™cie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asne skarpety z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tych skarpet. </text> <text name="Item Action Label"> @@ -302,27 +298,27 @@ z plików roboczych. <button label="Wróć" label_selected="Wróć" name="Revert"/> </panel> <panel label="Kurtka" name="Jacket"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowÄ… kurtkÄ™ poprzez przeciÄ…gniÄ™cie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asnÄ… kurtkÄ™ z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tej kurtki. </text> <text name="Item Action Label"> @@ -338,27 +334,27 @@ z plików roboczych. <button label="Wróć" label_selected="Wróć" name="Revert"/> </panel> <panel label="RÄ™kawiczki" name="Gloves"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowe rÄ™kawiczki poprzez przeciÄ…gniÄ™cie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asne rÄ™kawiczki z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tych rÄ™kawiczek </text> <text name="Item Action Label"> @@ -373,27 +369,27 @@ z plików roboczych. <button label="Wróć" label_selected="Wróć" name="Revert"/> </panel> <panel label="Podkoszulek" name="Undershirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowy podkoszulek poprzez przeciÄ…gniÄ™cie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asny podkoszulek z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tego podkoszulka. </text> <text name="Item Action Label"> @@ -408,27 +404,27 @@ z plików roboczych. <button label="Wróć" label_selected="Wróć" name="Revert"/> </panel> <panel label="Bielizna" name="Underpants"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowÄ… bieliznÄ™ poprzez przeciÄ…gniÄ™cie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asnÄ… bieliznÄ™ z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tej bielizny. </text> <text name="Item Action Label"> @@ -443,27 +439,27 @@ z plików roboczych. <button label="Wróć" label_selected="Wróć" name="Revert"/> </panel> <panel label="Spódnica" name="Skirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: modyfikacja zabroniona </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: Å‚adowanie... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: niezaÅ‚ożone </text> - <text length="1" name="path" type="string"> + <text name="path"> Zapisane w [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Załóż nowÄ… spódnicÄ™ poprzez przeciÄ…gniÄ™cie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć wÅ‚asnÄ… spódnicÄ™ z plików roboczych. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Nie posiadasz prawa do modyfikowania tej spódnicy. </text> <text name="Item Action Label"> diff --git a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml index 6f2dc69d8e05fb0a0171b5ae2eee3c8805cad281..ea8db99570f269f4b59469a2b954ebf59978c346 100755 --- a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml @@ -5,85 +5,85 @@ <button label="?" name="WLDayCycleHelp" /> <multi_slider label="" name="WLTimeSlider" /> <multi_slider label="" name="WLDayCycleKeys" /> - <text type="string" length="1" name="WL12am"> + <text name="WL12am"> 12am </text> - <text type="string" length="1" name="WL3am"> + <text name="WL3am"> 3am </text> - <text type="string" length="1" name="WL6am"> + <text name="WL6am"> 6am </text> - <text type="string" length="1" name="WL9amHash"> + <text name="WL9amHash"> 9am </text> - <text type="string" length="1" name="WL12pmHash"> + <text name="WL12pmHash"> 12pm </text> - <text type="string" length="1" name="WL3pm"> + <text name="WL3pm"> 3pm </text> - <text type="string" length="1" name="WL6pm"> + <text name="WL6pm"> 6pm </text> - <text type="string" length="1" name="WL9pm"> + <text name="WL9pm"> 9pm </text> - <text type="string" length="1" name="WL12am2"> + <text name="WL12am2"> 12am </text> - <text type="string" length="1" name="WL12amHash"> + <text name="WL12amHash"> | </text> - <text type="string" length="1" name="WL3amHash"> + <text name="WL3amHash"> I </text> - <text type="string" length="1" name="WL6amHash"> + <text name="WL6amHash"> | </text> - <text type="string" length="1" name="WL9amHash2"> + <text name="WL9amHash2"> I </text> - <text type="string" length="1" name="WL12pmHash2"> + <text name="WL12pmHash2"> | </text> - <text type="string" length="1" name="WL3pmHash"> + <text name="WL3pmHash"> I </text> - <text type="string" length="1" name="WL6pmHash"> + <text name="WL6pmHash"> | </text> - <text type="string" length="1" name="WL9pmHash"> + <text name="WL9pmHash"> I </text> - <text type="string" length="1" name="WL12amHash2"> + <text name="WL12amHash2"> | </text> <button label="Dodaj" label_selected="Dodaj" name="WLAddKey" /> <button label="UsuÅ„" label_selected="UsuÅ„" name="WLDeleteKey" /> - <text type="string" length="1" name="WLCurKeyFrameText"> + <text name="WLCurKeyFrameText"> Preferencje Czasu: </text> - <text type="string" length="1" name="WLCurKeyTimeText"> + <text name="WLCurKeyTimeText"> Czas: </text> <spinner label="Godz" name="WLCurKeyHour" /> <spinner label="Min" name="WLCurKeyMin" /> - <text type="string" length="1" name="WLCurKeyTimeText2"> + <text name="WLCurKeyTimeText2"> Ustawienia: </text> <combo_box label="Preset" name="WLKeyPresets" /> - <text type="string" length="1" name="DayCycleText"> + <text name="DayCycleText"> Przerwij: </text> <combo_box label="5 min" name="WLSnapOptions" /> - <text type="string" length="1" name="DayCycleText2"> + <text name="DayCycleText2"> DÅ‚ugość Cyklu: </text> <spinner label="Godz" name="WLLengthOfDayHour" /> <spinner label="Min" name="WLLengthOfDayMin" /> <spinner label="Sek" name="WLLengthOfDaySec" /> - <text type="string" length="1" name="DayCycleText3"> + <text name="DayCycleText3"> WyglÄ…d: </text> <button label="Start" label_selected="Start" name="WLAnimSky" /> diff --git a/indra/newview/skins/default/xui/pl/floater_env_settings.xml b/indra/newview/skins/default/xui/pl/floater_env_settings.xml index fbb8eca70e020bc8d5bd0fe8d5fbf30b54125574..3e0809b193de75ad8464655bc984cd3dd3b7b52c 100755 --- a/indra/newview/skins/default/xui/pl/floater_env_settings.xml +++ b/indra/newview/skins/default/xui/pl/floater_env_settings.xml @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Environment Editor Floater" title="Edytor Åšrodowiska"> - <text type="string" length="1" name="EnvTimeText"> + <text name="EnvTimeText"> Czas </text> - <text type="string" length="1" name="EnvTimeText2"> + <text name="EnvTimeText2"> 12:00 PM </text> <slider label="" name="EnvTimeSlider" /> - <text type="string" length="1" name="EnvCloudText"> + <text name="EnvCloudText"> Chmury: </text> <slider label="" name="EnvCloudSlider" /> - <text type="string" length="1" name="EnvWaterColorText"> + <text name="EnvWaterColorText"> Kolor Wody </text> <color_swatch label="" name="EnvWaterColor" tool_tip="Kliknij by wybrać kolor" /> - <text type="string" length="1" name="EnvWaterFogText"> + <text name="EnvWaterFogText"> Zamglenie: </text> <slider label="" name="EnvWaterFogSlider" /> diff --git a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml index 051e9b510d002be7ff7999f212f96cfaf1d162e6..f1e6e5ea9e2f43bd7e8b18f93830ee5e2d1cc301 100755 --- a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml +++ b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Hardware Settings Floater" title="Ustawienia SprzÄ™towe"> - <text type="string" length="1" name="Filtering:"> + <text name="Filtering:"> Filtrowanie: </text> <check_box label="Filtrowanie Anizotropowe" name="ani" /> - <text type="string" length="1" name="Antialiasing:"> + <text name="Antialiasing:"> Antialiasing: </text> <combo_box label="Antialiasing" name="fsaa" width="84"> @@ -15,10 +15,10 @@ <combo_box.item name="16x" label="16x" /> </combo_box> <spinner label="Gamma:" name="gamma" /> - <text type="string" length="1" name="(brightness, lower is brighter)"> + <text name="(brightness, lower is brighter)"> (jaskrawość, mniej jest jaÅ›niej, 0=domyÅ›lny) </text> - <text type="string" length="1" name="Enable VBO:"> + <text name="Enable VBO:"> WÅ‚Ä…cz VBO: </text> <check_box label="WÅ‚Ä…cz Bufor Vertexów OpenGL" name="vbo" tool_tip="" /> diff --git a/indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml index fb4e30d2a3b2e9d0bcb49ec856e1d71972860781..2224c026ef0977f50a91acb8d05e1603add15bf9 100755 --- a/indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/pl/floater_inventory_view_finder.xml @@ -15,7 +15,7 @@ <button label="Å»adne" label_selected="Å»adne" name="None" /> <check_box label="Zawsze pokazuj foldery" name="check_show_empty" /> <check_box label="Od czasu wylogowania" name="check_since_logoff" /> - <text type="string" length="1" name="- OR -"> + <text name="- OR -"> - LUB - </text> <spinner label="Od godzin" name="spin_hours_ago" /> diff --git a/indra/newview/skins/default/xui/pl/floater_joystick.xml b/indra/newview/skins/default/xui/pl/floater_joystick.xml index 8ce113514b62b900fdae315e8794fc10e120eed8..2ab92dfbb7b4f0e09e5465141695e0ec1c2032ee 100755 --- a/indra/newview/skins/default/xui/pl/floater_joystick.xml +++ b/indra/newview/skins/default/xui/pl/floater_joystick.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" width="590" title="Konfiguracja Joysticka"> - <check_box name="enable_joystick"> - Aktywuj Joystick: - </check_box> + <check_box name="enable_joystick" label="Aktywuj Joystick:"/> + <text left="130" name="joystick_type" width="360"/> <spinner label="Kalibracja Osi X" left="20" width="170" label_width="130" name="JoystickAxis1"/> <spinner label="Kalibracja Osi Y" left="210" width="170" label_width="130" name="JoystickAxis2" /> <spinner label="Kalibracja Osi Z" left="400" width="170" label_width="130" name="JoystickAxis0" /> @@ -13,111 +12,107 @@ <check_box label="BezpoÅ›rednie" left="205" name="ZoomDirect" /> <check_box label="Kursor 3D" left="340" name="Cursor3D" /> <check_box label="Automatyczne" left="450" name="AutoLeveling" /> - <text length="1" left="42" name="Control Modes:" type="string"> + <text left="22" name="Control Modes:"> Kontroluj: </text> - <check_box left="150" width="90" name="JoystickAvatarEnabled"> - Awatara - </check_box> - <check_box left="249" width="90" name="JoystickBuildEnabled"> - Budowanie - </check_box> - <check_box left="340" width="90" name="JoystickFlycamEnabled"> - KamerÄ™ podczas latania - </check_box> - <text width="124" name="XScale"> + <check_box left="130" width="90" name="JoystickAvatarEnabled" label="Awatara"/> + <check_box left="205" width="90" name="JoystickBuildEnabled" label="Budowanie"/> + <check_box left="282" width="90" name="JoystickFlycamEnabled" label="KamerÄ™ podczas latania"/> + <text width="104" name="XScale"> Skala X </text> - <spinner left="153" name="AvatarAxisScale1" /> - <spinner left="218" name="BuildAxisScale1" /> + <spinner left="133" name="AvatarAxisScale1" /> + <spinner left="208" name="BuildAxisScale1" /> <spinner left="283" name="FlycamAxisScale1" /> - <text width="124" name="YScale"> + <text width="104" name="YScale"> Skala Y </text> - <spinner left="153" name="AvatarAxisScale2" /> - <spinner left="218" name="BuildAxisScale2" /> + <spinner left="133" name="AvatarAxisScale2" /> + <spinner left="208" name="BuildAxisScale2" /> <spinner left="283" name="FlycamAxisScale2" /> - <text width="124" name="ZScale"> + <text width="104" name="ZScale"> Skala Z </text> - <spinner left="153" name="AvatarAxisScale0" /> - <spinner left="218" name="BuildAxisScale0" /> + <spinner left="133" name="AvatarAxisScale0" /> + <spinner left="208" name="BuildAxisScale0" /> <spinner left="283" name="FlycamAxisScale0" /> - <text width="124" name="PitchScale"> + <text width="104" name="PitchScale"> Skala Wznoszenia </text> - <spinner left="153" name="AvatarAxisScale4" /> - <spinner left="218" name="BuildAxisScale4" /> + <spinner left="133" name="AvatarAxisScale4" /> + <spinner left="208" name="BuildAxisScale4" /> <spinner left="283" name="FlycamAxisScale4" /> - <text width="124" name="YawScale"> + <text width="104" name="YawScale"> Skala Odchylania </text> - <spinner left="153" name="AvatarAxisScale5" /> - <spinner left="218" name="BuildAxisScale5" /> + <spinner left="133" name="AvatarAxisScale5" /> + <spinner left="208" name="BuildAxisScale5" /> <spinner left="283" name="FlycamAxisScale5" /> - <text width="124" name="RollScale"> + <text width="104" name="RollScale"> Skala Obrotu </text> - <spinner left="218" name="BuildAxisScale3" /> + <spinner left="208" name="BuildAxisScale3" /> <spinner left="283" name="FlycamAxisScale3" /> - <text width="124" name="XDeadZone"> + <text width="104" name="XDeadZone"> Tolerancja Osi X </text> - <spinner left="153" name="AvatarAxisDeadZone1" /> - <spinner left="218" name="BuildAxisDeadZone1" /> + <spinner left="133" name="AvatarAxisDeadZone1" /> + <spinner left="208" name="BuildAxisDeadZone1" /> <spinner left="283" name="FlycamAxisDeadZone1" /> - <text width="124" name="YDeadZone"> + <text width="104" name="YDeadZone"> Tolerancja Osi Y </text> - <spinner left="153" name="AvatarAxisDeadZone2" /> - <spinner left="218" name="BuildAxisDeadZone2" /> + <spinner left="133" name="AvatarAxisDeadZone2" /> + <spinner left="208" name="BuildAxisDeadZone2" /> <spinner left="283" name="FlycamAxisDeadZone2" /> - <text width="124" name="ZDeadZone"> + <text width="104" name="ZDeadZone"> Tolerancja Osi Z </text> - <spinner left="153" name="AvatarAxisDeadZone0" /> - <spinner left="218" name="BuildAxisDeadZone0" /> + <spinner left="133" name="AvatarAxisDeadZone0" /> + <spinner left="208" name="BuildAxisDeadZone0" /> <spinner left="283" name="FlycamAxisDeadZone0" /> - <text width="124" name="PitchDeadZone"> + <text width="104" name="PitchDeadZone"> Tolerancja Wznoszenia </text> - <spinner left="153" name="AvatarAxisDeadZone4" /> - <spinner left="218" name="BuildAxisDeadZone4" /> + <spinner left="133" name="AvatarAxisDeadZone4" /> + <spinner left="208" name="BuildAxisDeadZone4" /> <spinner left="283" name="FlycamAxisDeadZone4" /> - <text width="124" name="YawDeadZone"> + <text width="104" name="YawDeadZone"> Tolerancja Odchylania </text> - <spinner left="153" name="AvatarAxisDeadZone5" /> - <spinner left="218" name="BuildAxisDeadZone5" /> + <spinner left="133" name="AvatarAxisDeadZone5" /> + <spinner left="208" name="BuildAxisDeadZone5" /> <spinner left="283" name="FlycamAxisDeadZone5" /> - <text width="124" name="RollDeadZone"> + <text width="104" name="RollDeadZone"> Tolerancja Obrotu </text> - <spinner left="218" name="BuildAxisDeadZone3" /> + <spinner left="208" name="BuildAxisDeadZone3" /> <spinner left="283" name="FlycamAxisDeadZone3" /> - <text width="124" name="Feathering"> + <text width="104" name="Feathering"> Przenikanie </text> - <slider left="145" label="" name="AvatarFeathering" /> - <slider left="210" label="" name="BuildFeathering" /> + <slider left="125" label="" name="AvatarFeathering" /> + <slider left="200" label="" name="BuildFeathering" /> <slider left="275" label="" name="FlycamFeathering" /> - <text width="124" name="ZoomScale2"> + <text width="104" name="ZoomScale2"> Skala PowiÄ™kszania </text> <spinner left="283" label="" name="FlycamAxisScale6" /> - <text width="124" name="ZoomDeadZone"> + <text width="104" name="ZoomDeadZone"> Tolerancja PowiÄ™kszania </text> <spinner left="283" label="" name="FlycamAxisDeadZone6" /> <button left="366" label="Ustawienia DomyÅ›lne" name="SpaceNavigatorDefaults" /> - <button label="OK" label_selected="OK" name="ok_btn" /> + <button left="366" label="OK" label_selected="OK" name="ok_btn" /> <button label="Anuluj" label_selected="Anuluj" name="cancel_btn" /> - <string name="JoystickMonitor"> - Monitor Joysticka - </string> - <string name="Axis"> - OÅ› [NUM] - </string> + <stat_view label="Monitor Joysticka" name="axis_view"> + <stat_bar label="OÅ› 0" name="axis0"/> + <stat_bar label="OÅ› 1" name="axis1"/> + <stat_bar label="OÅ› 2" name="axis2"/> + <stat_bar label="OÅ› 3" name="axis3"/> + <stat_bar label="OÅ› 4" name="axis4"/> + <stat_bar label="OÅ› 5" name="axis5"/> + </stat_view> <string name="NoDevice"> brak podÅ‚Ä…cznego urzÄ…dzenia </string> diff --git a/indra/newview/skins/default/xui/pl/floater_map.xml b/indra/newview/skins/default/xui/pl/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..361f8f4f495b1e1fafbdd4197b7f707f96f36e2e --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + N + </floater.string> + <floater.string name="mini_map_east"> + E + </floater.string> + <floater.string name="mini_map_west"> + W + </floater.string> + <floater.string name="mini_map_south"> + S + </floater.string> + <floater.string name="mini_map_southeast"> + SE + </floater.string> + <floater.string name="mini_map_northeast"> + NE + </floater.string> + <floater.string name="mini_map_southwest"> + SW + </floater.string> + <floater.string name="mini_map_northwest"> + NW + </floater.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="E" name="floater_map_east" text="E"> + E + </text> + <text label="W" name="floater_map_west" text="W"> + W + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SW" name="floater_map_southwest" text="SW"> + SW + </text> + <text label="NW" name="floater_map_northwest" text="NW"> + NW + </text> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_moveview.xml b/indra/newview/skins/default/xui/pl/floater_moveview.xml index 715fec0baea640526a16bbfd7600c22209750606..e28cfd589dfb65fb2702a20c93432d50b89311d1 100755 --- a/indra/newview/skins/default/xui/pl/floater_moveview.xml +++ b/indra/newview/skins/default/xui/pl/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Obróć w lewo" /> <button label="" label_selected="" name="turn right btn" tool_tip="Obroć w Prawo" /> <button label="" label_selected="" name="move up btn" @@ -10,4 +11,5 @@ <joystick_slide name="slide right btn" tool_tip="PrzesuÅ„ w prawo" /> <joystick_turn name="forward btn" tool_tip="PrzesuÅ„ do przodu" /> <joystick_turn name="backward btn" tool_tip="PrzesuÅ„ do tyÅ‚u" /> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_openobject.xml b/indra/newview/skins/default/xui/pl/floater_openobject.xml index 9969d661a0b8649d32acd5c6d8e49e2f9f9162ba..0470f4d6dcf2acc1a8817554477271ac34ff2575 100755 --- a/indra/newview/skins/default/xui/pl/floater_openobject.xml +++ b/indra/newview/skins/default/xui/pl/floater_openobject.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="objectcontents" title="Zawartość Obiektu"> - <text type="string" length="1" name="object_name"> + <text name="object_name"> [DESC]: </text> <button label="Kopiuj do Szafy" label_selected="Kopiuj do Szafy" diff --git a/indra/newview/skins/default/xui/pl/floater_pay.xml b/indra/newview/skins/default/xui/pl/floater_pay.xml index 70358909f234f9a0a5693f91bdb8f50c6295b334..dfb1b6616ce9ca64f3b96f4db0ff72a527a3c27d 100755 --- a/indra/newview/skins/default/xui/pl/floater_pay.xml +++ b/indra/newview/skins/default/xui/pl/floater_pay.xml @@ -6,16 +6,16 @@ <button label="L$20" label_selected="L$20" name="fastpay 20" /> <button label="ZapÅ‚ać" label_selected="ZapÅ‚ać" name="pay btn" /> <button label="Anuluj" label_selected="Anuluj" name="cancel btn" /> - <text type="string" length="1" name="payee_label"> + <text name="payee_label"> ZapÅ‚ata dla: </text> - <text type="string" length="1" name="payee_name"> + <text name="payee_name"> [FIRST] [LAST] </text> - <text type="string" length="1" name="fastpay text" halign="left" left="12"> + <text name="fastpay text" halign="left" left="12"> Szybka ZapÅ‚ata: </text> - <text type="string" length="1" name="amount text"> + <text name="amount text"> Suma: </text> <line_editor left="52" name="amount" /> diff --git a/indra/newview/skins/default/xui/pl/floater_pay_object.xml b/indra/newview/skins/default/xui/pl/floater_pay_object.xml index 97c87d55d357295c17d8838dd01cc54c99c1c9f2..376f517aaa35cd1aeebed29dcff99c34f375a882 100755 --- a/indra/newview/skins/default/xui/pl/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/pl/floater_pay_object.xml @@ -1,24 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Give Money" title=""> - <text type="string" length="1" name="payee_group" width="100" halign="left"> + <text name="payee_group" width="100" halign="left"> ZapÅ‚ać Grupie: </text> - <text type="string" length="1" name="payee_resident" width="120" halign="left" > + <text name="payee_resident" width="120" halign="left" > ZapÅ‚ać Rezydentowi: </text> - <text type="string" length="1" name="payee_name" left="125"> + <text name="payee_name" left="125"> [FIRST] [LAST] </text> - <text type="string" length="1" name="object_name_label" left="5" width="95" halign="left"> + <text name="object_name_label" left="5" width="95" halign="left"> Poprzez Obiekt: </text> - <text type="string" length="1" name="object_name_text" left="105" > + <text name="object_name_text" left="105" > ... </text> - <text type="string" length="1" name="fastpay text" width="95" halign="left"> + <text name="fastpay text" width="95" halign="left"> Szybka ZapÅ‚ata: </text> - <text type="string" length="1" name="amount text" left="5" halign="left"> + <text name="amount text" left="5" halign="left"> Suma: </text> <button label="L$1" label_selected="L$1" name="fastpay 1" left="105"/> diff --git a/indra/newview/skins/default/xui/pl/floater_post_process.xml b/indra/newview/skins/default/xui/pl/floater_post_process.xml index a86e1bcfa5a7796207c5c4695cbd14e8ab8eab60..0081d1d3a7e4d15f742011d5f2db4f471e28d649 100755 --- a/indra/newview/skins/default/xui/pl/floater_post_process.xml +++ b/indra/newview/skins/default/xui/pl/floater_post_process.xml @@ -3,19 +3,19 @@ <tab_container name="Post-Process Tabs"> <panel label="Kolor Filtru" name="wmiColorFilterPanel"> <check_box label="UdostÄ™pnij" name="wmiColorFilterToggle" /> - <text type="string" length="1" name="wmiColorFilterBrightnessText"> + <text name="wmiColorFilterBrightnessText"> Jasność </text> <slider label="" name="wmiColorFilterBrightness" /> - <text type="string" length="1" name="wmiColorFilterSaturationText"> + <text name="wmiColorFilterSaturationText"> Nasycenie </text> <slider label="" name="wmiColorFilterSaturation" /> - <text type="string" length="1" name="wmiColorFilterContrastText"> + <text name="wmiColorFilterContrastText"> Kontrast </text> <slider label="" name="wmiColorFilterContrast" /> - <text type="string" length="1" name="wmiColorFilterBaseText"> + <text name="wmiColorFilterBaseText"> Kontrast Koloru Podstawowego </text> <slider label="R" name="wmiColorFilterBaseR" /> @@ -25,30 +25,30 @@ </panel> <panel label="Wizja Nocna" name="wmiNightVisionPanel"> <check_box label="UdostÄ™pnij" name="wmiNightVisionToggle" /> - <text type="string" length="1" name="wmiNightVisionBrightMultText"> + <text name="wmiNightVisionBrightMultText"> Wielokrotne Wzmocnienie ÅšwiatÅ‚a </text> <slider label="" name="wmiNightVisionBrightMult" /> - <text type="string" length="1" name="wmiNightVisionNoiseSizeText"> + <text name="wmiNightVisionNoiseSizeText"> Rozmiar Szumu </text> <slider label="" name="wmiNightVisionNoiseSize" /> - <text type="string" length="1" name="wmiNightVisionNoiseStrengthText"> + <text name="wmiNightVisionNoiseStrengthText"> Moc Szumu </text> <slider label="" name="wmiNightVisionNoiseStrength" /> </panel> <panel label="Bloom" name="wmiBloomPanel"> <check_box label="UdostÄ™pnij" name="wmiBloomToggle" /> - <text type="string" length="1" name="wmiBloomExtractText"> + <text name="wmiBloomExtractText"> Ekstracja Luminacji </text> <slider label="" name="wmiBloomExtract" /> - <text type="string" length="1" name="wmiBloomSizeText"> + <text name="wmiBloomSizeText"> Rozmiar Rozmazania Obrazu </text> <slider label="" name="wmiBloomSize" /> - <text type="string" length="1" name="wmiBloomStrengthText"> + <text name="wmiBloomStrengthText"> Moc Rozmazania Obrazu </text> <slider label="" name="wmiBloomStrength" /> diff --git a/indra/newview/skins/default/xui/pl/floater_preview_animation.xml b/indra/newview/skins/default/xui/pl/floater_preview_animation.xml index d6752223f9c9fc6a1e439190d6e6fe19ee7f2198..7139c470a44c1e12eb319eecb752d1657d13654a 100755 --- a/indra/newview/skins/default/xui/pl/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/pl/floater_preview_animation.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_anim"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Opis: </text> <button label="Używaj w Åšwiecie" label_selected="Stop" name="Anim play btn" diff --git a/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml b/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml index c67d9a9206136bdbe15a846a62d5074258db716e..0b3b9063c42d0037d70e9c018a1011a169290e68 100755 --- a/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview notecard" title="Nota:"> <button label="Zapisz" label_selected="Zapisz" name="Save" /> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Opis: </text> - <text_editor type="string" length="1" name="Notecard Editor"> + <text_editor name="Notecard Editor"> Åadowanie... </text_editor> <string name="no_object"> diff --git a/indra/newview/skins/default/xui/pl/floater_preview_sound.xml b/indra/newview/skins/default/xui/pl/floater_preview_sound.xml index c9dd20128d29aae517d3780ae3dfe1fc81767656..656b9bec380d6554c08d0e2ef42edf359891bfd9 100755 --- a/indra/newview/skins/default/xui/pl/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/pl/floater_preview_sound.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_sound"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Opis: </text> <button label="Odtwarzaj Lokalnie" label_selected="Odtwarzaj Lokalnie" @@ -8,5 +8,5 @@ tool_tip="DźwiÄ™k bÄ™dzie sÅ‚yszalny tylko dla Ciebie." /> <button label="Odtwarzaj w Åšwiecie" label_selected="Odtwarzaj w Åšwiecie" name="Sound play btn" - tool_tip="DźwiÄ™k bÄ™dzie sÅ‚yszalny przez wszystkich." /> + tool_tip="DźwiÄ™k bÄ™dzie sÅ‚yszalny przez wszystkich." width="130" left_delta="-136"/> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_preview_texture.xml b/indra/newview/skins/default/xui/pl/floater_preview_texture.xml index 860feee9b17e31c97488c56c4ab4154eeed905f2..8bcd800411e40ebc1ce7e0a4b2733d9a0ada102a 100755 --- a/indra/newview/skins/default/xui/pl/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/pl/floater_preview_texture.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_texture"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Opis: </text> - <text type="string" length="1" name="dimensions"> + <text name="dimensions"> Wymiary: [WIDTH] x [HEIGHT] </text> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml index a831c7e511cb91a1170a422b126ed2331178f0a6..853c669adefbd4a5e31bfd7e84ab9f2bdf8872c5 100755 --- a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml @@ -40,9 +40,7 @@ <combo_box.item name="Select_category" label="Wybierz KategoriÄ™:"/> <combo_box.item name="Age__Age_play" label="Wiek > Udawanie Nieletniej Osoby"/> <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Wiek > DorosÅ‚y Rezydent w Teen Second Life"/> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - Wiek > Nieletni Rezydent poza Teen Second Life - </combo_item> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Wiek > Nieletni Rezydent poza Teen Second Life"/> <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Napaść > Strefa Militarna / Niebezpieczny Obszar"/> <combo_box.item name="Assault__Safe_area" label="Napaść > Bezpieczny Obszar"/> <combo_box.item name="Assault__Weapons_testing_sandbox" label="Napaść > Obszar do Testowania Broni"/> @@ -67,12 +65,8 @@ <combo_box.item name="Harassment__Verbal_abuse" label="PrzeÅ›ladowanie > Znieważanie SÅ‚owne"/> <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Nieprzyzwoitość > Obraźliwa Treść lub PostÄ™powanie"/> <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Nieprzyzwoitość > Niestosowne ImiÄ™ Awatara"/> - <combo_item name="Indecency__Mature_content_in_PG_region"> - Nieprzyzwoitość > Obraźliwa treść i postÄ™powanie w regionie 'PG' - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - Nieprzyzwoitość > Obraźliwa treść i postÄ™powanie w regionie 'Mature' - </combo_item> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="Nieprzyzwoitość > Obraźliwa treść i postÄ™powanie w regionie 'PG'"/> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Nieprzyzwoitość > Obraźliwa treść i postÄ™powanie w regionie 'Mature'"/> <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Naruszenie WÅ‚asnoÅ›ci Intelektualnej > UsuniÄ™cie TreÅ›ci"/> <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Naruszenie WÅ‚asnoÅ›ci Intelektualnej > CopyBot albo Nadużycie Przywilejów"/> <combo_box.item name="Intolerance" label="Nietolerancja"/> diff --git a/indra/newview/skins/default/xui/pl/floater_script_preview.xml b/indra/newview/skins/default/xui/pl/floater_script_preview.xml index 55a18be1489cfc0575e8b7bbd97ade4513334abe..ca3fde33e7c6fba377f5494fbe85d38d19c07648 100755 --- a/indra/newview/skins/default/xui/pl/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/pl/floater_script_preview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview lsl text" title="Skrypt: Skrypt Obrotu"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Opis: </text> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_script_search.xml b/indra/newview/skins/default/xui/pl/floater_script_search.xml index d00f1c267a5551a10554f9d471748381b6687fc2..50a9de15005199812ff2782b96e58886aa171d6d 100755 --- a/indra/newview/skins/default/xui/pl/floater_script_search.xml +++ b/indra/newview/skins/default/xui/pl/floater_script_search.xml @@ -5,10 +5,10 @@ <button label="ZamieÅ„" label_selected="ZamieÅ„" name="replace_btn" /> <button label="ZamieÅ„ Wszystko" label_selected="ZamieÅ„ Wszystko" name="replace_all_btn" /> - <text type="string" length="1" name="txt"> + <text name="txt"> Szukaj </text> - <text type="string" length="1" name="txt2"> + <text name="txt2"> ZamieÅ„ </text> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_select_key.xml b/indra/newview/skins/default/xui/pl/floater_select_key.xml index aa9e57773843a4eae6ab554ea561458becad3e0a..194a6da1bd5a4cb1c4dba8aff3471d8c9da1a99b 100755 --- a/indra/newview/skins/default/xui/pl/floater_select_key.xml +++ b/indra/newview/skins/default/xui/pl/floater_select_key.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="modal container" title=""> <button label="Anuluj" label_selected="Anuluj" name="Cancel" /> - <text type="string" length="1" name="Save item as:"> + <text name="Save item as:"> By wybrać wciÅ›nij klawisz </text> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_snapshot.xml b/indra/newview/skins/default/xui/pl/floater_snapshot.xml index 24bf88da855832b0c7952bb859a6db564dd51b34..4945cf641324cccf7271d38cd305ef92a2be9570 100755 --- a/indra/newview/skins/default/xui/pl/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/pl/floater_snapshot.xml @@ -15,12 +15,8 @@ <button label="WyÅ›lij" name="send_btn"/> <button label="ZaÅ‚aduj (L$[AMOUNT])" name="upload_btn"/> <flyout_button label="Zapisz" name="save_btn" tool_tip="Zapisz zdjÄ™cie na dysk"> - <flyout_button.item name="save_item"> - Zapisz - </flyout_button.item> - <flyout_button.item name="saveas_item"> - Zapisz Jako... - </flyout_button.item> + <flyout_button.item name="save_item" label="Zapisz"/> + <flyout_button.item name="saveas_item" label="Zapisz Jako..."/> </flyout_button> <button label="Anuluj" name="discard_btn"/> <button label="WiÄ™cej >>" name="more_btn" tool_tip="Ustawienia Zaawansowane"/> diff --git a/indra/newview/skins/default/xui/pl/floater_telehub.xml b/indra/newview/skins/default/xui/pl/floater_telehub.xml index b4cf0988786b9f04f126ceeee064e0bdff1f4f13..917ab95eccb14b11dacef064293573a2cb44019d 100755 --- a/indra/newview/skins/default/xui/pl/floater_telehub.xml +++ b/indra/newview/skins/default/xui/pl/floater_telehub.xml @@ -12,8 +12,8 @@ <text name="help_text_not_connected"> Wybierz obiekt i kliknij PoÅ‚Ä…cz z teleporterem </text> - <button label="PoÅ‚Ä…cz z teleporterem" name="connect_btn" width="122" /> - <button label="RozÅ‚Ä…cz" name="disconnect_btn" left="142" width="98"/> + <button label="PoÅ‚Ä…cz z teleporterem" name="connect_btn" width="132" /> + <button label="RozÅ‚Ä…cz" name="disconnect_btn" left="152" width="88"/> <text name="spawn_points_text" width="250"> Punkty SkÅ‚adowe (pozycje - nie obiekty!): </text> diff --git a/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml index 702422f1ba2b39b6e6ec4320adb81b46be1926b0..6d4df12e4bb16875e8de7f09d34bd15311116c2a 100755 --- a/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml @@ -3,10 +3,10 @@ <string name="choose_picture"> Kliknij by wybrać obraz </string> - <text length="1" name="Multiple" type="string"> + <text name="Multiple"> Wiele </text> - <text length="1" name="unknown" type="string"> + <text name="unknown"> Wymiary: [DIMENSIONS] </text> <button label="DomyÅ›lna" label_selected="DomyÅ›lna" name="Default"/> diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml index 380943f4ad62874c0db0b7dae2cbe81bf19a4b8c..ad03e6e9f08efbd4424be3b37005db1ebf06003e 100755 --- a/indra/newview/skins/default/xui/pl/floater_tools.xml +++ b/indra/newview/skins/default/xui/pl/floater_tools.xml @@ -1,35 +1,37 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="toolbox floater" title=""> +<floater name="toolbox floater" title="" short_title="Buduj"> <button label="" label_selected="" name="button focus" tool_tip="Zbliżenie"/> <button label="" label_selected="" name="button move" tool_tip="PrzesuniÄ™cie"/> <button label="" label_selected="" name="button edit" tool_tip="Edycja"/> <button label="" label_selected="" name="button create" tool_tip="Stwórz"/> <button label="" label_selected="" name="button land" tool_tip="Teren"/> - <check_box label="Zbliżenie" name="radio zoom"/> - <volume_slider name="slider zoom"/> - <check_box label="Obracanie (Ctrl)" name="radio orbit"/> - <check_box label="PrzesuniÄ™cie (Ctrl-Shift)" name="radio pan"/> - <check_box label="PrzesuÅ„" name="radio move"/> - <check_box label="PodnieÅ› (Ctrl)" name="radio lift"/> - <check_box label="Obróć (Ctrl-Shift)" name="radio spin"/> - <check_box label="Pozycja" name="radio position"/> - <check_box label="Obróć (Ctrl)" name="radio rotate"/> - <check_box label="RozciÄ…gnij (Ctrl-Shift)" name="radio stretch"/> - <check_box label="Wybierz TeksturÄ™" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="Zbliżenie" name="radio zoom"/> + <radio_item label="Obracanie (Ctrl)" name="radio orbit"/> + <radio_item label="PrzesuniÄ™cie (Ctrl-Shift)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="PrzesuÅ„" name="radio move"/> + <radio_item label="PodnieÅ› (Ctrl)" name="radio lift"/> + <radio_item label="Obróć (Ctrl-Shift)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="Pozycja" name="radio position"/> + <radio_item label="Obróć (Ctrl)" name="radio rotate"/> + <radio_item label="RozciÄ…gnij (Ctrl-Shift)" name="radio stretch"/> + <radio_item label="Wybierz TeksturÄ™" name="radio select face"/> + </radio_group> <check_box label="Edytuj PoÅ‚Ä…czone Części" name="checkbox edit linked parts"/> <text name="text ruler mode"> Linijka: </text> <combo_box name="combobox grid mode"> - <combo_item name="World"> - Åšwiat - </combo_item> - <combo_item name="Local"> - Lokalna - </combo_item> - <combo_item name="Reference"> - WzglÄ™dna - </combo_item> + <combo_box.item name="World" label="Åšwiat" + /> + <combo_box.item name="Local" label="Lokalna" + /> + <combo_box.item name="Reference" label="WzglÄ™dna" + /> </combo_box> <check_box label="RozciÄ…gnij 2 Strony" name="checkbox uniform"/> <check_box label="RozciÄ…gnij TeksturÄ™" name="checkbox stretch textures"/> @@ -57,13 +59,15 @@ <check_box label="Kopiuj zaznaczone" name="checkbox copy selection"/> <check_box label="Åšrodek" name="checkbox copy centers"/> <check_box label="Obróć" name="checkbox copy rotates"/> - <check_box label="Zaznaczanie" name="radio select land"/> - <check_box label="Prostowanie" name="radio flatten"/> - <check_box label="Podnoszenie" name="radio raise"/> - <check_box label="Obniżanie" name="radio lower"/> - <check_box label="WygÅ‚adzanie" name="radio smooth"/> - <check_box label="FaÅ‚dowanie" name="radio noise"/> - <check_box label="Cofnij modyfikacjÄ™" name="radio revert"/> + <radio_group name="land_radio_group"> + <radio_item label="Zaznaczanie" name="radio select land"/> + <radio_item label="Prostowanie" name="radio flatten"/> + <radio_item label="Podnoszenie" name="radio raise"/> + <radio_item label="Obniżanie" name="radio lower"/> + <radio_item label="WygÅ‚adzanie" name="radio smooth"/> + <radio_item label="FaÅ‚dowanie" name="radio noise"/> + <radio_item label="Cofnij modyfikacjÄ™" name="radio revert"/> + </radio_group> <button label="Zastosuj" label_selected="Zastosuj" name="button apply to selection" tool_tip="Modyfikuj zaznaczony teren"/> <text name="Bulldozer:"> Burzenie: @@ -71,7 +75,7 @@ <text name="Dozer Size:"> Rozmiar </text> - <text length="1" name="Strength:" type="string"> + <text name="Strength:"> SiÅ‚a </text> <volume_slider name="slider force"/> @@ -115,9 +119,7 @@ <text name="Permissions:"> Prawa: </text> - <text name="perm_modify"> - Nie masz prawda do modyfikacji tego obiektu - </text> + <check_box label="UdostÄ™pnij grupie" name="checkbox share with group" tool_tip="Pozwól czÅ‚onkom grupy przesuwać, modyfikować, kopiować i usuwać."/> <string name="text deed continued"> Przypisz... @@ -134,49 +136,35 @@ Cena: L$ </text> <line_editor name="Edit Cost"/> - <radio_group name="sale type"> - <radio_item name="Original"> - OrginaÅ‚ - </radio_item> - <radio_item name="Copy"> - Kopia - </radio_item> - <radio_item name="Contents"> - Zawartość - </radio_item> - </radio_group> - <text name="Next owner can:"> - NastÄ™pny wÅ‚aÅ›ciciel: - </text> - <check_box label="Zmienia" name="checkbox next owner can modify"/> - <check_box label="Kopiuje" name="checkbox next owner can copy"/> - <check_box label="Oddaje/Sprzedaje" name="checkbox next owner can transfer"/> + <combo_box name="sale type"> + <combo_box.item label="Kopia" name="Copy"/> + <combo_box.item label="Zawartość" name="Contents"/> + <combo_box.item label="OrginaÅ‚" name="Original"/> + </combo_box> + <text name="label click action"> Lewe KlikniÄ™cie: </text> <combo_box name="clickaction"> - <combo_item name="Touch/grab(default)"> - Dotknij (domyÅ›lne) - </combo_item> - <combo_item name="Sitonobject"> - UsiÄ…dź na Obiekcie - </combo_item> - <combo_item name="Buyobject"> - Kup Obiekt - </combo_item> - <combo_item name="Payobject"> - ZapÅ‚ać Obiektowi - </combo_item> - <combo_item name="Open"> - Otwórz - </combo_item> - <combo_item name="Play"> - Odtwarzaj Media - </combo_item> - <combo_item name="Opemmedia"> - Otwrórz Media - </combo_item> + <combo_box.item name="Touch/grab(default)" label="Dotknij (domyÅ›lne)" + /> + <combo_box.item name="Sitonobject" label="UsiÄ…dź na Obiekcie" + /> + <combo_box.item name="Buyobject" label="Kup Obiekt" + /> + <combo_box.item name="Payobject" label="ZapÅ‚ać Obiektowi" + /> + <combo_box.item name="Open" label="Otwórz" + /> + <combo_box.item name="Play" label="Odtwarzaj Media" + /> + <combo_box.item name="Opemmedia" label="Otwrórz Media" + /> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + Nie masz prawda do modyfikacji tego obiektu + </text> <text name="B:"> B: </text> @@ -195,6 +183,13 @@ <text name="F:"> F: </text> + <text name="Next owner can:"> + NastÄ™pny wÅ‚aÅ›ciciel: + </text> + <check_box label="Zmienia" name="checkbox next owner can modify"/> + <check_box label="Kopiuje" name="checkbox next owner can copy"/> + <check_box name="checkbox next owner can transfer"/> + </panel> <string name="text modify info 1"> Możesz modyfikować ten obiekt. </string> @@ -259,62 +254,47 @@ MateriaÅ‚ </text> <combo_box name="material"> - <combo_item name="Stone"> - KamieÅ„ - </combo_item> - <combo_item name="Metal"> - Metal - </combo_item> - <combo_item name="Glass"> - SzkÅ‚o - </combo_item> - <combo_item name="Wood"> - Drewno - </combo_item> - <combo_item name="Flesh"> - CiaÅ‚o - </combo_item> - <combo_item name="Plastic"> - Plastik - </combo_item> - <combo_item name="Rubber"> - Guma - </combo_item> + <combo_box.item name="Stone" label="KamieÅ„" + /> + <combo_box.item name="Metal" label="Metal" + /> + <combo_box.item name="Glass" label="SzkÅ‚o" + /> + <combo_box.item name="Wood" label="Drewno" + /> + <combo_box.item name="Flesh" label="CiaÅ‚o" + /> + <combo_box.item name="Plastic" label="Plastik" + /> + <combo_box.item name="Rubber" label="Guma" + /> </combo_box> <text name="label basetype"> Rodzaj Bloku Budowalnego </text> <combo_box name="comboBaseType"> - <combo_item name="Box"> - Klocek - </combo_item> - <combo_item name="Cylinder"> - Walec - </combo_item> - <combo_item name="Prism"> - GraniastosÅ‚up - </combo_item> - <combo_item name="Sphere"> - Kula - </combo_item> - <combo_item name="Torus"> - Torus - </combo_item> - <combo_item name="Tube"> - Rura - </combo_item> - <combo_item name="Ring"> - PierÅ›cieÅ„ - </combo_item> - <combo_item name="Sculpted"> - Skulpty - </combo_item> + <combo_box.item name="Box" label="Klocek" + /> + <combo_box.item name="Cylinder" label="Walec" + /> + <combo_box.item name="Prism" label="GraniastosÅ‚up" + /> + <combo_box.item name="Sphere" label="Kula" + /> + <combo_box.item name="Torus" label="Torus" + /> + <combo_box.item name="Tube" label="Rura" + /> + <combo_box.item name="Ring" label="PierÅ›cieÅ„" + /> + <combo_box.item name="Sculpted" label="Skulpty" + /> </combo_box> <text name="text cut"> - Wykrój + Wykrój poczÄ…tek i koniec </text> - <spinner label="B" name="cut begin"/> - <spinner label="E" name="cut end"/> + <spinner label="P" name="cut begin"/> + <spinner label="K" name="cut end"/> <text name="text hollow"> Wydrążenie </text> @@ -327,24 +307,20 @@ KsztaÅ‚t Wydrążenia </text> <combo_box name="hole"> - <combo_item name="Default"> - DomyÅ›lny - </combo_item> - <combo_item name="Circle"> - KoÅ‚o - </combo_item> - <combo_item name="Square"> - Kwadrat - </combo_item> - <combo_item name="Triangle"> - TrójkÄ…t - </combo_item> + <combo_box.item name="Default" label="DomyÅ›lny" + /> + <combo_box.item name="Circle" label="KoÅ‚o" + /> + <combo_box.item name="Square" label="Kwadrat" + /> + <combo_box.item name="Triangle" label="TrójkÄ…t" + /> </combo_box> <text name="text twist"> SkrÄ™cenie </text> - <spinner label="B" name="Twist Begin"/> - <spinner label="E" name="Twist End"/> + <spinner label="P" name="Twist Begin"/> + <spinner label="K" name="Twist End"/> <text name="scale_taper"> Zwężenie </text> @@ -367,8 +343,8 @@ <text name="advanced_slice"> Przetnij poczÄ…tek i koniec </text> - <spinner label="B" name="Path Limit Begin"/> - <spinner label="E" name="Path Limit End"/> + <spinner label="P" name="Path Limit Begin"/> + <spinner label="K" name="Path Limit End"/> <text name="text taper2"> Zwężenie </text> @@ -389,21 +365,16 @@ Typ ÅšciÄ™gna </text> <combo_box name="sculpt type control"> - <combo_item name="None"> - (żadne) - </combo_item> - <combo_item name="Sphere"> - Kula - </combo_item> - <combo_item name="Torus"> - Torus - </combo_item> - <combo_item name="Plane"> - PÅ‚aczyzna - </combo_item> - <combo_item name="Cylinder"> - Walec - </combo_item> + <combo_box.item name="None" label="(żadne)" + /> + <combo_box.item name="Sphere" label="Kula" + /> + <combo_box.item name="Torus" label="Torus" + /> + <combo_box.item name="Plane" label="PÅ‚aczyzna" + /> + <combo_box.item name="Cylinder" label="Walec" + /> </combo_box> </panel> <panel label="Atrybuty" name="Features"> @@ -434,101 +405,77 @@ <panel label="Tekstura" name="Texture"> <texture_picker label="Tekstura" name="texture control" tool_tip="Kliknij by wybrać obraz"/> <color_swatch label="Kolor" name="colorswatch" tool_tip="Kliknij by wybrać kolor"/> - <text name="color trans"> - Przezroczystość % + <text name="color trans" left="170" width="99"> + Przezroczystość% </text> - <spinner name="ColorTrans"/> - <text name="glow label"> + <spinner left="170" name="ColorTrans"/> + <text name="glow label" left="170"> Blask </text> - <spinner name="glow"/> - <check_box label="Jaskrawość" name="checkbox fullbright"/> + <spinner left="170" name="glow"/> + <check_box label="Jaskrawość" name="checkbox fullbright" left="170"/> <text name="tex gen"> Mapowanie </text> <combo_box name="combobox texgen"> - <combo_item name="Default"> - DomyÅ›lne - </combo_item> - <combo_item name="Planar"> - Planarne - </combo_item> + <combo_box.item name="Default" label="DomyÅ›lne" + /> + <combo_box.item name="Planar" label="Planarne" + /> </combo_box> <text name="label shininess"> PoÅ‚ysk </text> <combo_box name="combobox shininess"> - <combo_item name="None"> - Å»adny - </combo_item> - <combo_item name="Low"> - Niski - </combo_item> - <combo_item name="Medium"> - Åšredni - </combo_item> - <combo_item name="High"> - Wysoki - </combo_item> + <combo_box.item name="None" label="Å»adny" + /> + <combo_box.item name="Low" label="Niski" + /> + <combo_box.item name="Medium" label="Åšredni" + /> + <combo_box.item name="High" label="Wysoki" + /> </combo_box> <text name="label bumpiness"> Powierzchnia </text> <combo_box name="combobox bumpiness"> - <combo_item name="None"> - Å»adna - </combo_item> - <combo_item name="Brightness"> - NajjaÅ›niejsza - </combo_item> - <combo_item name="Darkness"> - Najciemniejsza - </combo_item> - <combo_item name="woodgrain"> - Drewniano-ziarnista - </combo_item> - <combo_item name="bark"> - Kory Drzewa - </combo_item> - <combo_item name="bricks"> - CegieÅ‚ - </combo_item> - <combo_item name="checker"> - Planszy Szachowej - </combo_item> - <combo_item name="concrete"> - Betonu - </combo_item> - <combo_item name="crustytile"> - PÅ‚ytki/Kafelki - </combo_item> - <combo_item name="cutstone"> - Kamienia - </combo_item> - <combo_item name="discs"> - Dysku CD - </combo_item> - <combo_item name="gravel"> - Å»wiru - </combo_item> - <combo_item name="petridish"> - Skamieliny - </combo_item> - <combo_item name="siding"> - Brzegu - </combo_item> - <combo_item name="stonetile"> - PÅ‚ytki Kamiennej - </combo_item> - <combo_item name="stucco"> - Stucco - </combo_item> - <combo_item name="suction"> - Suction - </combo_item> - <combo_item name="weave"> - Fali - </combo_item> + <combo_box.item name="None" label="Å»adna" + /> + <combo_box.item name="Brightness" label="NajjaÅ›niejsza" + /> + <combo_box.item name="Darkness" label="Najciemniejsza" + /> + <combo_box.item name="woodgrain" label="Drewniano-ziarnista" + /> + <combo_box.item name="bark" label="Kory Drzewa" + /> + <combo_box.item name="bricks" label="CegieÅ‚" + /> + <combo_box.item name="checker" label="Planszy Szachowej" + /> + <combo_box.item name="concrete" label="Betonu" + /> + <combo_box.item name="crustytile" label="PÅ‚ytki/Kafelki" + /> + <combo_box.item name="cutstone" label="Kamienia" + /> + <combo_box.item name="discs" label="Dysku CD" + /> + <combo_box.item name="gravel" label="Å»wiru" + /> + <combo_box.item name="petridish" label="Skamieliny" + /> + <combo_box.item name="siding" label="Brzegu" + /> + <combo_box.item name="stonetile" label="PÅ‚ytki Kamiennej" + /> + <combo_box.item name="stucco" label="Stucco" + /> + <combo_box.item name="suction" label="Suction" + /> + <combo_box.item name="weave" label="Fali" + /> </combo_box> <text name="tex scale"> Ilość powtórzeÅ„ @@ -561,7 +508,7 @@ Dopasuj TeksturÄ™ Mediów (najpierw zaÅ‚aduj) </text> - <button label="Dopasuj" label_selected="Dopasuj" name="button align"/> + <button label="Dopasuj" label_selected="Dopasuj" name="button align" left="160"/> </panel> <panel label="Treść" name="Contents"> <button label="Nowy Skrypt" label_selected="Nowy Skrypt..." name="button new script"/> @@ -592,43 +539,43 @@ <button label="Kup..." label_selected="Kup..." name="button buy land"/> <button label="Anuluj..." label_selected="Anuluj..." name="button abandon land"/> </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> PrzeciÄ…gaj kolorowe pierÅ›cienie żeby obracać obiekt - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> Kliknij i przeciÄ…gaj żeby rozciÄ…gnąć wybranÄ… stronÄ™ - </string> - <string name="status_move"> + </floater.string> + <floater.string name="status_move"> Wybierz opcjÄ™: - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_modifyland"> Kliknij i przytrzymaj żeby modyfikować teren - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> Kliknij i przeciÄ…gnij żeby zmienić widok - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> PrzeciÄ…gnij by przesunąć, wybierz Ctrl by podnieść, wybierz Ctrl-Shift by obrócić - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> Kliknij in-world by zacząć budować - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> Edytowanie Terenu: - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> Widok - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> Lokalna - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> Åšwiat - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> WzglÄ™da - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> ZaÅ‚Ä…czniki - </string> + </floater.string> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_water.xml b/indra/newview/skins/default/xui/pl/floater_water.xml index 61ffce4177004ad625373fac7707c3b7216c7f5c..a22b5809dc10223d14de99ab33af1f7fbfa83a6d 100755 --- a/indra/newview/skins/default/xui/pl/floater_water.xml +++ b/indra/newview/skins/default/xui/pl/floater_water.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Water Floater" title="Zaawansowany Edytor Wody"> - <text type="string" length="1" name="KeyFramePresetsText"> + <text name="KeyFramePresetsText"> Ustawienia Wody: </text> <button label="Nowe" label_selected="Nowe" name="WaterNewPreset" /> @@ -8,89 +8,89 @@ <button label="UsuÅ„" label_selected="UsuÅ„" name="WaterDeletePreset" /> <tab_container name="Water Tabs"> <panel label="Ustawienia" name="Settings"> - <text type="string" length="1" name="BHText"> + <text name="BHText"> Kolor Podwodnej MgÅ‚y </text> <button label="?" name="WaterFogColorHelp" /> <color_swatch label="" name="WaterFogColor" tool_tip="Kliknij by wybrać kolor" /> - <text type="string" length="1" name="WaterFogDensText"> + <text name="WaterFogDensText"> WykÅ‚adnik GÄ™stoÅ›ci MgÅ‚y </text> <button label="?" name="WaterFogDensityHelp" /> <slider label="" name="WaterFogDensity" /> - <text type="string" length="1" name="WaterUnderWaterFogModText"> + <text name="WaterUnderWaterFogModText"> Modyfikator MgÅ‚y </text> <button label="?" name="WaterUnderWaterFogModHelp" /> <slider label="" name="WaterUnderWaterFogMod" /> - <text type="string" length="1" name="BDensText"> + <text name="BDensText"> Skala ZmarszczeÅ„ </text> <button label="?" name="WaterNormalScaleHelp" /> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> 1 </text> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> 2 </text> - <text type="string" length="1" name="BHText4"> + <text name="BHText4"> 3 </text> <slider label="" name="WaterNormalScaleX" /> <slider label="" name="WaterNormalScaleY" /> <slider label="" name="WaterNormalScaleZ" /> - <text type="string" length="1" name="HDText"> + <text name="HDText"> Skala Fresnela </text> <button label="?" name="WaterFresnelScaleHelp" /> <slider label="" name="WaterFresnelScale" /> - <text type="string" length="1" name="FresnelOffsetText"> + <text name="FresnelOffsetText"> PrzesuniÄ™cie Fresnela </text> <button label="?" name="WaterFresnelOffsetHelp" /> <slider label="" name="WaterFresnelOffset" /> - <text type="string" length="1" name="DensMultText"> + <text name="DensMultText"> Górna Refrakcja </text> <button label="?" name="WaterScaleAboveHelp" /> <slider label="" name="WaterScaleAbove" /> - <text type="string" length="1" name="WaterScaleBelowText"> + <text name="WaterScaleBelowText"> Dolna Refrakcja </text> <button label="?" name="WaterScaleBelowHelp" /> <slider label="" name="WaterScaleBelow" /> - <text type="string" length="1" name="MaxAltText"> + <text name="MaxAltText"> Mnożnik Rozmycia </text> <button label="?" name="WaterBlurMultiplierHelp" /> <slider label="" name="WaterBlurMult" /> </panel> <panel label="Rysowanie" name="Waves"> - <text type="string" length="1" name="BHText"> + <text name="BHText"> Kierunek Dużych Fal </text> <button label="?" name="WaterWave1Help" /> - <text type="string" length="1" name="WaterWave1DirXText"> + <text name="WaterWave1DirXText"> X </text> - <text type="string" length="1" name="WaterWave1DirYText"> + <text name="WaterWave1DirYText"> Y </text> <slider label="" name="WaterWave1DirX" /> <slider label="" name="WaterWave1DirY" /> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> Kierunek MaÅ‚ych Fal </text> <button label="?" name="WaterWave2Help" /> - <text type="string" length="1" name="WaterWave2DirXText"> + <text name="WaterWave2DirXText"> X </text> - <text type="string" length="1" name="WaterWave2DirYText"> + <text name="WaterWave2DirYText"> Y </text> <slider label="" name="WaterWave2DirX" /> <slider label="" name="WaterWave2DirY" /> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> Mapa Normalnych </text> <button label="?" name="WaterNormalMapHelp" /> diff --git a/indra/newview/skins/default/xui/pl/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/pl/floater_wearable_save_as.xml index b9071c0df9eec5a0c82036fb7e2c4db36e54b7e6..2d4582392c301d2964e6e7415a25266d825a702c 100755 --- a/indra/newview/skins/default/xui/pl/floater_wearable_save_as.xml +++ b/indra/newview/skins/default/xui/pl/floater_wearable_save_as.xml @@ -2,7 +2,7 @@ <floater name="modal container" title=""> <button label="Zapisz" label_selected="Zapisz" name="Save" /> <button label="Anuluj" label_selected="Anuluj" name="Cancel" /> - <text type="string" length="1" name="Save item as:"> + <text name="Save item as:"> Zachowaj jako: </text> <line_editor name="name ed"> diff --git a/indra/newview/skins/default/xui/pl/floater_windlight_options.xml b/indra/newview/skins/default/xui/pl/floater_windlight_options.xml index 2a9d1dff2430dfea4cac283a24360d2dd89f7ca2..94c20c06f72bda940cdcbe89d23fa64622c40d54 100755 --- a/indra/newview/skins/default/xui/pl/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/pl/floater_windlight_options.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="WindLight floater" title="Zaawansowany Edytor Nieba"> - <text type="string" length="1" name="KeyFramePresetsText"> + <text name="KeyFramePresetsText"> Ustawienia Nieba: </text> <button label="Nowe" label_selected="Nowe" name="WLNewPreset" /> @@ -10,210 +10,210 @@ name="WLDayCycleMenuButton" /> <tab_container name="WindLight Tabs"> <panel label="Atmosfera" name="Atmosphere"> - <text type="string" length="1" name="BHText"> + <text name="BHText"> Horyzont BÅ‚Ä™kitu </text> <button label="?" name="WLBlueHorizonHelp" /> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> R </text> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> G </text> - <text type="string" length="1" name="BHText4"> + <text name="BHText4"> B </text> - <text type="string" length="1" name="BHText5"> + <text name="BHText5"> I </text> <slider label="" name="WLBlueHorizonR" /> <slider label="" name="WLBlueHorizonG" /> <slider label="" name="WLBlueHorizonB" /> <slider label="" name="WLBlueHorizonI" /> - <text type="string" length="1" name="BDensText"> + <text name="BDensText"> Horyzont Zamglenia </text> <button label="?" name="WLHazeHorizonHelp" /> <slider label="" name="WLHazeHorizon" /> - <text type="string" length="1" name="BDensText2"> + <text name="BDensText2"> GÄ™stość BÅ‚Ä™kitu </text> <button label="?" name="WLBlueDensityHelp" /> - <text type="string" length="1" name="BHText6"> + <text name="BHText6"> R </text> - <text type="string" length="1" name="BHText7"> + <text name="BHText7"> G </text> - <text type="string" length="1" name="BHText8"> + <text name="BHText8"> B </text> - <text type="string" length="1" name="BHText9"> + <text name="BHText9"> I </text> <slider label="" name="WLBlueDensityR" /> <slider label="" name="WLBlueDensityG" /> <slider label="" name="WLBlueDensityB" /> <slider label="" name="WLBlueDensityI" /> - <text type="string" length="1" name="HDText"> + <text name="HDText"> GÄ™stość Zamglenia </text> <button label="?" name="WLHazeDensityHelp" /> <slider label="" name="WLHazeDensity" /> - <text type="string" length="1" name="DensMultText"> + <text name="DensMultText"> Mnożnik GÄ™soÅ›ci </text> <button label="?" name="WLDensityMultHelp" /> <slider label="" name="WLDensityMult" /> - <text type="string" length="1" name="WLDistanceMultText"> + <text name="WLDistanceMultText"> Mnożnik Dystansu </text> <button label="?" name="WLDistanceMultHelp" /> <slider label="" name="WLDistanceMult" /> - <text type="string" length="1" name="MaxAltText"> + <text name="MaxAltText"> Max Wysokość </text> <button label="?" name="WLMaxAltitudeHelp" /> <slider label="" name="WLMaxAltitude" /> </panel> <panel label="ÅšwiatÅ‚o" name="Lighting"> - <text type="string" length="1" name="SLCText"> + <text name="SLCText"> Kolor SÅ‚oÅ„ca/Księżyca </text> <button label="?" name="WLSunlightColorHelp" /> - <text type="string" length="1" name="BHText"> + <text name="BHText"> R </text> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> G </text> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> B </text> - <text type="string" length="1" name="BHText4"> + <text name="BHText4"> I </text> <slider label="" name="WLSunlightR" /> <slider label="" name="WLSunlightG" /> <slider label="" name="WLSunlightB" /> <slider label="" name="WLSunlightI" /> - <text type="string" length="1" name="TODText"> + <text name="TODText"> Pozycja SÅ‚oÅ„ca/Księżyca </text> <button label="?" name="WLTimeOfDayHelp" /> <slider label="" name="WLSunAngle" /> - <text type="string" length="1" name="WLAmbientText"> + <text name="WLAmbientText"> Otoczenie </text> <button label="?" name="WLAmbientHelp" /> - <text type="string" length="1" name="BHText5"> + <text name="BHText5"> R </text> - <text type="string" length="1" name="BHText6"> + <text name="BHText6"> G </text> - <text type="string" length="1" name="BHText7"> + <text name="BHText7"> B </text> - <text type="string" length="1" name="BHText8"> + <text name="BHText8"> I </text> <slider label="" name="WLAmbientR" /> <slider label="" name="WLAmbientG" /> <slider label="" name="WLAmbientB" /> <slider label="" name="WLAmbientI" /> - <text type="string" length="1" name="WLEastAngleText"> + <text name="WLEastAngleText"> Pozycja Wschodu </text> <button label="?" name="WLEastAngleHelp" /> <slider label="" name="WLEastAngle" /> - <text type="string" length="1" name="SunGlowText"> + <text name="SunGlowText"> Blask SÅ‚oÅ„ca </text> <button label="?" name="WLSunGlowHelp" /> <slider label="Ostrość" name="WLGlowB" /> <slider label="Rozmiar" name="WLGlowR" /> - <text type="string" length="1" name="SceneGammaText"> + <text name="SceneGammaText"> Jasność Obrazu </text> <button label="?" name="WLSceneGammaHelp" /> <slider label="" name="WLGamma" /> - <text type="string" length="1" name="WLStarText"> + <text name="WLStarText"> Blask Gwiazd </text> <button label="?" name="WLStarBrightnessHelp" /> <slider label="" name="WLStarAlpha" /> </panel> <panel label="Chmury" name="Clouds"> - <text type="string" length="1" name="WLCloudColorText"> + <text name="WLCloudColorText"> Kolor Chmur </text> <button label="?" name="WLCloudColorHelp" /> - <text type="string" length="1" name="BHText"> + <text name="BHText"> R </text> - <text type="string" length="1" name="BHText2"> + <text name="BHText2"> G </text> - <text type="string" length="1" name="BHText3"> + <text name="BHText3"> B </text> - <text type="string" length="1" name="BHText4"> + <text name="BHText4"> I </text> <slider label="" name="WLCloudColorR" /> <slider label="" name="WLCloudColorG" /> <slider label="" name="WLCloudColorB" /> <slider label="" name="WLCloudColorI" /> - <text type="string" length="1" name="WLCloudColorText2"> + <text name="WLCloudColorText2"> Chmury (XY/GÄ™stość) </text> <button label="?" name="WLCloudDensityHelp" /> - <text type="string" length="1" name="BHText5"> + <text name="BHText5"> X </text> - <text type="string" length="1" name="BHText6"> + <text name="BHText6"> Y </text> - <text type="string" length="1" name="BHText7"> + <text name="BHText7"> G </text> <slider label="" name="WLCloudX" /> <slider label="" name="WLCloudY" /> <slider label="" name="WLCloudDensity" /> - <text type="string" length="1" name="WLCloudCoverageText"> + <text name="WLCloudCoverageText"> Pokrycie Chmur </text> <button label="?" name="WLCloudCoverageHelp" /> <slider label="" name="WLCloudCoverage" /> - <text type="string" length="1" name="WLCloudScaleText"> + <text name="WLCloudScaleText"> Skala Chmur </text> <button label="?" name="WLCloudScaleHelp" /> <slider label="" name="WLCloudScale" /> - <text type="string" length="1" name="WLCloudDetailText"> + <text name="WLCloudDetailText"> Szczegóły (XY/GÄ™stość) </text> <button label="?" name="WLCloudDetailHelp" /> - <text type="string" length="1" name="BHText8"> + <text name="BHText8"> X </text> - <text type="string" length="1" name="BHText9"> + <text name="BHText9"> Y </text> - <text type="string" length="1" name="BHText10"> + <text name="BHText10"> G </text> <slider label="" name="WLCloudDetailX" /> <slider label="" name="WLCloudDetailY" /> <slider label="" name="WLCloudDetailDensity" /> - <text type="string" length="1" name="WLCloudScrollXText"> + <text name="WLCloudScrollXText"> Przewijanie Chmur X </text> <button label="?" name="WLCloudScrollXHelp" /> <check_box label="Zablokuj" name="WLCloudLockX" /> <slider label="" name="WLCloudScrollX" /> - <text type="string" length="1" name="WLCloudScrollYText"> + <text name="WLCloudScrollYText"> Przewijanie Chmur Y </text> <button label="?" name="WLCloudScrollYHelp" /> diff --git a/indra/newview/skins/default/xui/pl/floater_world_map.xml b/indra/newview/skins/default/xui/pl/floater_world_map.xml index 42befb1affe8924f5a41d85133583fe0eebac13d..65f1c8ae592551b3503de822b6bcfcc27c8c9cc3 100755 --- a/indra/newview/skins/default/xui/pl/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pl/floater_world_map.xml @@ -30,10 +30,10 @@ <check_box label="'Adult'" name="event_adult_chk"/> <icon bottom="-196" name="avatar_icon"/> <combo_box label="DostÄ™pni Znajomi" name="friend combo" tool_tip="Znajomi na mapie"> - <combo_box.item name="none_selected" label="DostÄ™pni Znajomi" /> + <combo_box.item name="item1" label="DostÄ™pni Znajomi" /> </combo_box> <combo_box label="Zapisane Miejsca" name="landmark combo" tool_tip="Zapisane miejsca na mapie"> - <combo_box.item name="none_selected" label="Zapisane Miejsca" /> + <combo_box.item name="item1" label="Zapisane Miejsca" /> </combo_box> <line_editor label="Szukaj po nazwie regionu" name="location" tool_tip="Wpisz nazwÄ™ regionu"/> <button label="Szukaj" name="DoSearch" tool_tip="Wyszukiwaie regionu"/> diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml index 3c21f7f5b5e51986be894d714ad9cd226b1cc1f6..15089926b2c9a32f0f4b8c730c86eea66f5aad04 100644 --- a/indra/newview/skins/default/xui/pl/notifications.xml +++ b/indra/newview/skins/default/xui/pl/notifications.xml @@ -971,7 +971,7 @@ Zaproponować znajomość [NAME]? Zaproponować znajomość [NAME]? <form name="form"> - <input name="message" type="text"> + <input name="message"> Chcesz zawrzeć znajomość? </input> <button name="Offer" text="OK"/> @@ -1368,7 +1368,7 @@ Musisz opuÅ›cić przynajmniej jednÄ… grupÄ™ żeby przyjąć czÅ‚onkostwo w tej g <notification name="KickUser"> Z jakim komunikatem wyrzucić tego użytkownia? <form name="form"> - <input name="message" type="text"> + <input name="message"> Administrator wylogowaÅ‚ CiÄ™. </input> <button name="OK" text="OK"/> @@ -1378,7 +1378,7 @@ Musisz opuÅ›cić przynajmniej jednÄ… grupÄ™ żeby przyjąć czÅ‚onkostwo w tej g <notification name="KickAllUsers"> Z jakim komunikatem wyrzucić wszystkich użytkowników z regionu? <form name="form"> - <input name="message" type="text"> + <input name="message"> Administrator wylogowaÅ‚ CiÄ™. </input> <button name="OK" text="OK"/> @@ -1388,7 +1388,7 @@ Musisz opuÅ›cić przynajmniej jednÄ… grupÄ™ żeby przyjąć czÅ‚onkostwo w tej g <notification name="FreezeUser"> Z jakim komunikatem unieruchomić tego użytkownia? <form name="form"> - <input name="message" type="text"> + <input name="message"> Unieruchomiono CiÄ™. Nie możesz siÄ™ ruszać ani rozmawiać. Administrator skontaktuje siÄ™ z TobÄ… poprzez IM. </input> <button name="OK" text="OK"/> @@ -1398,7 +1398,7 @@ Musisz opuÅ›cić przynajmniej jednÄ… grupÄ™ żeby przyjąć czÅ‚onkostwo w tej g <notification name="UnFreezeUser"> Z jakim komunikatem odblokować tego użytkownia? <form name="form"> - <input name="message" type="text"> + <input name="message"> Odblokowano CiÄ™. </input> <button name="OK" text="OK"/> @@ -1408,7 +1408,7 @@ Musisz opuÅ›cić przynajmniej jednÄ… grupÄ™ żeby przyjąć czÅ‚onkostwo w tej g <notification name="OfferTeleport"> Zaproponować teleportacjÄ™ do miejsca Twojego pobytu z tÄ… wiadomoÅ›ciÄ…? <form name="form"> - <input name="message" type="text"> + <input name="message"> Zapraszam do siebie. Region: [REGION] </input> <button name="OK" text="OK"/> @@ -1418,7 +1418,7 @@ Musisz opuÅ›cić przynajmniej jednÄ… grupÄ™ żeby przyjąć czÅ‚onkostwo w tej g <notification name="OfferTeleportFromGod"> Wymusić przeniesienie użytkownika do miejsca Twojego pobytu? <form name="form"> - <input name="message" type="text"> + <input name="message"> Zapraszam do siebie. Region: [REGION] </input> <button name="OK" text="OK"/> @@ -1432,7 +1432,7 @@ Musisz opuÅ›cić przynajmniej jednÄ… grupÄ™ żeby przyjąć czÅ‚onkostwo w tej g <notification label="Wiadomość do Wszystkich w Twoim MajÄ…tku" name="MessageEstate"> Wpisz krótkÄ… wiadomość która zostanie wysÅ‚ana do wszystkich osób w Twoim majÄ…tku. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Anuluj"/> </form> @@ -1654,7 +1654,7 @@ ZamieÅ›cić tÄ… reklamÄ™ za [AMOUNT]L$? <notification label="Wiadomość do Wszystkich w tym Regionie" name="MessageRegion"> Wpisz krótkÄ… wiadomość która zostanie wysÅ‚ana do wszystkich osób w tym regionie. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Anuluj"/> </form> @@ -1916,14 +1916,14 @@ Zawartość zostanie skopiowana do Twojej szafy. Na pewno chcesz dokonać tego zakupu? <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/> </notification> - <notification name="ConfirmPurchasePassword" type="password"> + <notification name="ConfirmPurchasePassword"> Ta transakcja spowoduje: [ACTION] Na pewno chcesz dokonać tego zakupu? Wpisz hasÅ‚o ponownie i kliknij OK. <form name="form"> - <input name="message" type="password"/> + <input name="message"/> <button name="ConfirmPurchase" text="OK"/> <button name="Cancel" text="Anuluj"/> </form> @@ -2287,7 +2287,7 @@ Suwak G (GÄ™stość) kontroluje gÄ™stość chmur. <notification name="NewSkyPreset"> Nazwij nowe niebo. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nowe Ustawienie </input> <button name="OK" text="OK"/> @@ -2300,7 +2300,7 @@ Suwak G (GÄ™stość) kontroluje gÄ™stość chmur. <notification name="NewWaterPreset"> Nazwij nowe ustawienie wody. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nowe Ustawienie </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/pl/panel_audio_device.xml b/indra/newview/skins/default/xui/pl/panel_audio_device.xml index ad30dfbacb473f623766979cb145988d083f56d1..fc3b3776f07374935cbfd5ad575f467ecad9ec7f 100755 --- a/indra/newview/skins/default/xui/pl/panel_audio_device.xml +++ b/indra/newview/skins/default/xui/pl/panel_audio_device.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="device_settings"> - <text type="string" length="1" name="Audio Devices"> + <text name="Audio Devices"> UrzÄ…dzenia Audio </text> - <text type="string" length="1" name="Input device (microphone):"> + <text name="Input device (microphone):"> UrzÄ…dzenia WejÅ›ciowe (mikrofon): </text> - <text type="string" length="1" name="Output device (speakers):"> + <text name="Output device (speakers):"> UrzÄ…dzenia WyjÅ›ciowe (gÅ‚oÅ›niki): </text> - <text type="string" length="1" name="Input level:"> + <text name="Input level:"> Poziom WejÅ›cia </text> - <text_editor type="string" length="1" name="voice_intro_text1"> + <text_editor name="voice_intro_text1"> Użyj suwaka by dostosować jak gÅ‚oÅ›no CiÄ™ sÅ‚ychać dla innych Rezydentów. By przetestować poziom wejÅ›cia, zacznij mówić do mikrofonu. </text_editor> <volume_slider name="mic_volume_slider" diff --git a/indra/newview/skins/default/xui/pl/panel_group_general.xml b/indra/newview/skins/default/xui/pl/panel_group_general.xml index 6f6d524cd969ddc154039df70606553f5abf76d3..5d19485634680da0489d6a15f8bb8e9a59c6face 100755 --- a/indra/newview/skins/default/xui/pl/panel_group_general.xml +++ b/indra/newview/skins/default/xui/pl/panel_group_general.xml @@ -35,9 +35,9 @@ ustawienia grupy oraz opcje czÅ‚onkostwa. (WÅ‚aÅ›ciciele wyÅ›wietlajÄ… siÄ™ pogrubionÄ… czcionkÄ…) </text> <name_list name="visible_members"> - <column label="ImiÄ™" name="name"/> - <column label="TytuÅ‚" name="title"/> - <column label="Ostatnio w SL" name="online"/> + <name_list.columns label="ImiÄ™" name="name"/> + <name_list.columns label="TytuÅ‚" name="title"/> + <name_list.columns label="Ostatnio w SL" name="online"/> </name_list> <text name="text_group_preferences"> Ustawienia Grupy @@ -48,21 +48,15 @@ ustawienia grupy oraz opcje czÅ‚onkostwa. <check_box label="OpÅ‚ata WstÄ™pu: L$" name="check_enrollment_fee" tool_tip="Ustaw opÅ‚atÄ™ za przyÅ‚Ä…czenie siÄ™ do grupy."/> <spinner name="spin_enrollment_fee" tool_tip="Nowi czÅ‚onkowie grupy muszÄ… zapÅ‚acić wymaganÄ… opÅ‚atÄ™ by doÅ‚Ä…czyć do grupy."/> <combo_box name="group_mature_check" tool_tip="Wybierz jeżeli uważasz, iż Twoja grupa klasyfikowana jest jako 'Mature'."> - <combo_item name="select_mature"> - - Wybierz Treść - - </combo_item> - <combo_item name="mature"> - Treść 'Mature' - </combo_item> - <combo_item name="pg"> - Treść 'PG' - </combo_item> + <combo_box.item name="select_mature" label="- Wybierz Treść -"/> + <combo_box.item name="mature" label="Treść 'Mature'"/> + <combo_box.item name="pg" label="Treść 'PG'"/> </combo_box> <panel name="title_container"> <text name="active_title_label"> Mój Aktywny TytuÅ‚ </text> - <combo_box length="150" name="active_title" tool_tip="Ustaw tytuÅ‚ który wyÅ›wietla siÄ™ kiedy grupa jest aktywna."/> + <combo_box name="active_title" tool_tip="Ustaw tytuÅ‚ który wyÅ›wietla siÄ™ kiedy grupa jest aktywna."/> </panel> <check_box label="Otrzymuj grupowe ogÅ‚oszenia" name="receive_notices" tool_tip="Zaznacz jeżeli chcesz otrzymywać ogÅ‚oszenia z tej grupy. Anuluj z zaznaczenia, jeżeli nie chcesz otrzymywać żadnych ogÅ‚oszeÅ„ z tej grupy."/> <check_box label="WyÅ›wietl grupÄ™ w profilu" name="list_groups_in_profile" tool_tip="Zaznacz jeżeli chcesz by grupa wyÅ›wietlaÅ‚a siÄ™ w Twoim profilu"/> diff --git a/indra/newview/skins/default/xui/pl/panel_group_notices.xml b/indra/newview/skins/default/xui/pl/panel_group_notices.xml index 7a3b6fbceca26ed3b76836948b1b1b2b00559fe2..1c19571ec0df3b237591d9c2103df663811cfecf 100755 --- a/indra/newview/skins/default/xui/pl/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/pl/panel_group_notices.xml @@ -12,8 +12,6 @@ </text> <text name="lbl2"> OgÅ‚oszenia przechowywane sÄ… przez 14 dni. -Kliknij tutaj by zobaczyć ogÅ‚oszenie. -Użyj Odswież by zobaczyć czy nowe ogloszenia zostaÅ‚y wysÅ‚ane. Limit dzienny ogÅ‚oszeÅ„ dla grupy wynosi 200. </text> <scroll_list name="notice_list"> @@ -33,10 +31,7 @@ Limit dzienny ogÅ‚oszeÅ„ dla grupy wynosi 200. Stwórz OgÅ‚oszenie </text> <text name="lbl2"> - By wysÅ‚ać ogÅ‚oszenie musisz nadać mu tytuÅ‚. -Możesz także doÅ‚Ä…czyć pojedynczy zaÅ‚Ä…cznik ze swojej -szafy. ZaÅ‚Ä…cznik musi mieć prawo modyfikacyjne -do kopiowania oraz transferu. + Możesz także doÅ‚Ä…czyć pojedynczy zaÅ‚Ä…cznik ze swojej szafy. ZaÅ‚Ä…cznik musi mieć prawo modyfikacyjne do kopiowania oraz transferu. </text> <text name="lbl3"> Temat: diff --git a/indra/newview/skins/default/xui/pl/panel_groups.xml b/indra/newview/skins/default/xui/pl/panel_groups.xml index 58106a6105c7af0ca5a09cbae5ebaba12f91b243..9df90fc79710e22c27cc147e65af1362c8635b42 100755 --- a/indra/newview/skins/default/xui/pl/panel_groups.xml +++ b/indra/newview/skins/default/xui/pl/panel_groups.xml @@ -3,10 +3,10 @@ <scroll_list name="group list"> <column label="" name="name" /> </scroll_list> - <text type="string" length="1" name="groupdesc"> + <text name="groupdesc"> Twoja aktywna grupa jest pogrubiona. </text> - <text type="string" length="1" name="groupcount"> + <text name="groupcount"> Należysz do [COUNT] grup (maksimum to [MAX]). </text> <button label="Czat/IM" name="IM" tool_tip="Rozpocznij sesjÄ™ czatu (IM)" /> diff --git a/indra/newview/skins/default/xui/pl/panel_login.xml b/indra/newview/skins/default/xui/pl/panel_login.xml index 63659cf4295daebff56d1bc366adc2a5b401010c..3caf9338a23dd2fe33633a71be33ff0d74679564 100755 --- a/indra/newview/skins/default/xui/pl/panel_login.xml +++ b/indra/newview/skins/default/xui/pl/panel_login.xml @@ -21,7 +21,7 @@ <combo_box name="start_location_combo"> <combo_box.item name="MyHome" label="Mój Start" /> <combo_box.item name="MyLastLocation" label="Ostatnie Miejsce" /> - <combo_box.item name="Typeregionname" label="lt;Wpisz Region>" /> + <combo_box.item name="Typeregionname" label="<Wpisz Region>" /> </combo_box> <check_box label="ZapamiÄ™taj HasÅ‚o" name="remember_check" /> <button label="PoÅ‚Ä…cz" label_selected="PoÅ‚Ä…cz" name="connect_btn" /> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml new file mode 100644 index 0000000000000000000000000000000000000000..75a9efcd0a329d591a26e7af3d586df30677c07c --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel name="advanced"> + <text name="AspectRatioLabel1" tool_tip="width / height"> + Proporcje: + </text> + <combo_box name="aspect_ratio" tool_tip="width / height"> + <combo_box.item label="4:3 (Standardowy CRT)" name="item1"/> + <combo_box.item label="5:4 (1280x1024 LCD)" name="item2"/> + <combo_box.item label="8:5 (Panoramiczny)" name="item3"/> + <combo_box.item label="16:9 (Panoramiczny)" name="item4"/> + </combo_box> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml index 67252f6fd28ee52d155c4130376ed24d419e1b47..13b66ed242ae37ec4f6b0ff4d2414eb42cb1ade1 100755 --- a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml @@ -1,51 +1,57 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Czat/IM" name="chat"> - <text type="string" length="1" name="text_box"> + <text name="text_box"> Rozmiar Czcionki Czatu: </text> <radio_group name="chat_font_size"> - <radio_item type="string" length="1" name="radio" label="MaÅ‚a" /> - <radio_item type="string" length="1" name="radio2" label="Åšrednia" /> - <radio_item type="string" length="1" name="radio3" label="Duża" /> + <radio_item name="radio" label="MaÅ‚a" /> + <radio_item name="radio2" label="Åšrednia" /> + <radio_item name="radio3" label="Duża" /> </radio_group> - <text type="string" length="1" name="text_box2"> - Kolor Czatu: - </text> - <color_swatch label="Ty" name="user" /> - <color_swatch label="Inni" name="agent" /> - <color_swatch label="IM" name="im" /> - <color_swatch label="System" name="system" /> - <color_swatch label="BÅ‚Ä™dy" name="script_error" /> - <color_swatch label="Obiekty" name="objects" /> - <color_swatch label="WÅ‚aÅ›ciciel" name="owner" /> - <color_swatch label="Chmurka" name="background" /> - <color_swatch label="Linki" name="links" /> - <text type="string" length="1" name="text_box8"> - BÅ‚Ä™dy Skryptu: + <color_swatch label="Ty" name="user"/> + <text name="text_box1"> + Ty </text> - <check_box label="Pokazuj ostrzeżenia i bÅ‚Ä™dy skryptu w czacie" name="script_errors_as_chat" /> - <text type="string" length="1" name="text_box3"> - Konsola Czatu: + <color_swatch label="Inni" name="agent"/> + <text name="text_box2"> + Inni </text> - <spinner label="Zamykaj czat w" name="fade_chat_time" /> - <text type="string" length="1" name="text_box4"> - (sekund) + <color_swatch label="IM" name="im"/> + <text name="text_box3"> + IM + </text> + <color_swatch label="System" name="system"/> + <text name="text_box4"> + System + </text> + <color_swatch label="BÅ‚Ä™dy" name="script_error"/> + <text name="text_box5"> + BÅ‚Ä™dy + </text> + <color_swatch label="Obiekty" name="objects"/> + <text name="text_box6"> + Obiekty + </text> + <color_swatch label="WÅ‚aÅ›ciciel" name="owner"/> + <text name="text_box7"> + WÅ‚aÅ›ciciel </text> - <text type="string" length="1" name="text_box5"> - (linii) + <color_swatch label="Chmurka" name="background"/> + <text name="text_box8"> + Chmurka </text> + <color_swatch label="Linki" name="links"/> + <text name="text_box9"> + Linki + </text> + <check_box label="Pokazuj ostrzeżenia i bÅ‚Ä™dy skryptu w czacie" name="script_errors_as_chat" /> + <spinner label="Zamykaj czat w" name="fade_chat_time" /> <slider label="Przeźroczystość" name="console_opacity" /> <check_box label="Używaj peÅ‚nej szerokość ekranu (restart wymagany)" name="chat_full_width_check" /> - <text type="string" length="1" name="text_box6"> - Ustawienia Czatu: - </text> <check_box label="Zamknij panel czatu po naciÅ›niÄ™ciu Wróć" name="close_chat_on_return_check" /> <check_box label="StrzaÅ‚ki sterujÄ… awatarem podczas czatu" name="arrow_keys_move_avatar_check" /> <check_box label="Pokazuj czas w czacie" name="show_timestamps_check" /> <check_box label="Używaj animacji podczas pisania" name="play_typing_animation" /> - <text type="string" length="1" name="text_box7"> - Czat z Chmurkami: - </text> <check_box label="Pokazuj chmurki w czacie" name="bubble_text_chat" /> <slider label="Przeźroczystość" name="bubble_chat_opacity" /> </panel> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml index 1199f0622f37fff38509b8c9aef22d00ce138656..a7654ef2ff5b1f1a82bfada6cc909e773d41f2be 100755 --- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml @@ -1,148 +1,91 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Ogólne" name="general_panel"> - <radio_group name="default_start_location"> - <radio_item name="MyHome" tool_tip="DomyÅ›lnie loguj mnie do mojego miejsca startu."> - Mój Start - </radio_item> - <radio_item name="MyLastLocation" tool_tip="DomyÅ›lnie loguj mnie do ostatnio odwiedzonego miejsca."> - Ostatnie Miejsce - </radio_item> - </radio_group> + <combo_box name="start_location_combo"> + <combo_box.item name="MyHome" tool_tip="DomyÅ›lnie loguj mnie do mojego miejsca startu." label="Mój Start"/> + <combo_box.item name="MyLastLocation" tool_tip="DomyÅ›lnie loguj mnie do ostatnio odwiedzonego miejsca." label="Ostatnie Miejsce"/> + </combo_box> <check_box label="Pokaż Miejsce Startu podczas Logowania" name="show_location_checkbox"/> <combo_box name="fade_out_combobox"> - <combo_item name="Never"> - Nigdy - </combo_item> - <combo_item name="Show Temporarily"> - Tymczasowo - </combo_item> - <combo_item name="Always"> - Zawsze - </combo_item> + <combo_box.item name="Never" label="Nigdy"/> + <combo_box.item name="Show Temporarily" label="Tymczasowo"/> + <combo_box.item name="Always" label="Zawsze"/> </combo_box> <check_box label="Używaj MaÅ‚ych Imion Awatarów" name="small_avatar_names_checkbox"/> <check_box label="Nie WyÅ›wietlaj Mojego Imienia" name="show_my_name_checkbox"/> - <text length="1" name="group_titles_textbox" type="string"> + <text name="group_titles_textbox"> TytuÅ‚y Grupowe: </text> <check_box label="Nie WyÅ›wietlaj Å»adnych Tytułów Grupowych" name="show_all_title_checkbox"/> <check_box label="Nie WyÅ›wietlaj Mojego TytuÅ‚u Grupowego" name="show_my_title_checkbox"/> <color_swatch label="" name="effect_color_swatch" tool_tip="Selekcja koloru"/> - <text length="1" name="UI Size:" type="string"> + <text name="UI Size:"> Wymiar Interfejsu (UI): </text> <slider name="ui_scale_slider"/> <check_box label="Używaj Skali Nizależnej od RozdzielczoÅ›ci" name="ui_auto_scale"/> <spinner label="Zasypiaj w:" name="afk_timeout_spinner"/> <check_box label="Powiadamiaj o Wydatkach i Zarobkach (L$)" name="notify_money_change_checkbox"/> - <text name="maturity_desired_label" bottom="-312"> + <text name="maturity_desired_label"> Treść: </text> - <text name="maturity_desired_prompt" bottom="-312"> - ChcÄ™ uzyskać dostÄ™p do -miejsc zakwalifikowanych jako: + <text name="maturity_desired_prompt"> + ChcÄ™ uzyskać dostÄ™p do miejsc zakwalifikowanych jako: </text> - <combo_box name="maturity_desired_combobox" bottom="-330" left="322" width="162" > - <combo_item name="Desired_Adult"> - 'PG', 'Mature' oraz 'Adult' - </combo_item> - <combo_item name="Desired_Mature"> - 'PG' i 'Mature' - </combo_item> - <combo_item name="Desired_PG"> - tylko 'PG' - </combo_item> + <combo_box name="maturity_desired_combobox"> + <combo_box.item name="Desired_Adult" label="'PG', 'Mature' oraz 'Adult'"/> + <combo_box.item name="Desired_Mature" label="'PG' i 'Mature'"/> + <combo_box.item name="Desired_PG" label="tylko 'PG'"/> </combo_box> - <text name="maturity_desired_textbox" bottom="-324" left="322"> + <text name="maturity_desired_textbox"> tylko 'PG' </text> - <text length="1" name="start_location_textbox" type="string"> + <text name="start_location_textbox"> Miejsce Startu: </text> - <text length="1" name="show_names_textbox" type="string"> + <text name="show_names_textbox"> Imiona: </text> - <text length="1" name="effects_color_textbox" type="string"> + <text name="effects_color_textbox"> Kolor dla Moich Efektów: </text> - <text length="1" name="seconds_textbox" type="string"> + <text name="seconds_textbox"> sekund </text> - <text length="1" name="crash_report_textbox" type="string"> + <text name="crash_report_textbox"> ZgÅ‚aszanie BÅ‚Ä™dów: </text> - <text length="1" name="language_textbox" type="string"> + <text name="language_textbox"> JÄ™zyk: </text> - <text length="1" name="language_textbox2" type="string"> + <text name="language_textbox2"> (Restart wymagany) </text> <string name="region_name_prompt"> <Wpisz Region> </string> <combo_box name="crash_behavior_combobox"> - <combo_item length="1" name="Askbeforesending" type="string"> - Pytaj przed wysÅ‚aniem - </combo_item> - <combo_item length="1" name="Alwayssend" type="string"> - Zawsze wysyÅ‚aj - </combo_item> - <combo_item length="1" name="Neversend" type="string"> - Nigdy nie wysyÅ‚aj - </combo_item> + <combo_box.item name="Askbeforesending" label="Pytaj przed wysÅ‚aniem"/> + <combo_box.item name="Alwayssend" label="Zawsze wysyÅ‚aj"/> + <combo_box.item name="Neversend" label="Nigdy nie wysyÅ‚aj"/> </combo_box> <combo_box name="language_combobox"> - <combo_item length="1" name="System Default Language" type="string"> - DomyÅ›lny - </combo_item> - <combo_item length="1" name="English" type="string"> - English (Angielski) - </combo_item> - <combo_item name="Danish"> - Dansk (DuÅ„ski) - Beta - </combo_item> - <combo_item length="1" name="Deutsch(German)" type="string"> - Deutsch (Niemiecki) - Beta - </combo_item> - <combo_item length="1" name="Spanish" type="string"> - Español (HiszpaÅ„ski) - Beta - </combo_item> - <combo_item length="1" name="French" type="string"> - Français (Francuski) - Beta - </combo_item> - <combo_item name="Italian"> - Italiano (WÅ‚oski) - Beta - </combo_item> - <combo_item name="Hungarian"> - Magyar (WÄ™gierski) - Beta - </combo_item> - <combo_item name="Dutch"> - Nederlands (Niderlandzki) - Beta - </combo_item> - <combo_item length="1" name="Polish" type="string"> - Polski - Beta - </combo_item> - <combo_item length="1" name="Portugese" type="string"> - Portugués (Portugalski) - Beta - </combo_item> - <combo_item name="Russian"> - РуÑÑкий (Rosyjski) - Beta - </combo_item> - <combo_item name="Turkish"> - Türkçe (Turecki) - Beta - </combo_item> - <combo_item name="Ukrainian"> - УкраїнÑька (UkraiÅ„ski) - Beta - </combo_item> - <combo_item length="1" name="Chinese" type="string"> - ä¸æ–‡ (简体) (ChiÅ„ski) - Beta - </combo_item> - <combo_item length="1" name="(Japanese)" type="string"> - 日本語 (JapoÅ„ski) - Beta - </combo_item> - <combo_item length="1" name="(Korean)" type="string"> - í•œêµì–´ (KoreaÅ„ski) - Beta - </combo_item> + <combo_box.item name="System Default Language" label="DomyÅ›lny"/> + <combo_box.item name="English" label="English (Angielski)"/> + <combo_box.item name="Danish" label="Dansk (DuÅ„ski) - Beta"/> + <combo_box.item name="Deutsch(German)" label="Deutsch (Niemiecki) - Beta"/> + <combo_box.item name="Spanish" label="Español (HiszpaÅ„ski) - Beta"/> + <combo_box.item name="French" label="Français (Francuski) - Beta"/> + <combo_box.item name="Italian" label="Italiano (WÅ‚oski) - Beta"/> + <combo_box.item name="Hungarian" label="Magyar (WÄ™gierski) - Beta"/> + <combo_box.item name="Dutch" label="Nederlands (Niderlandzki) - Beta"/> + <combo_box.item name="Polish" label="Polski - Beta"/> + <combo_box.item name="Portugese" label="Portugués (Portugalski) - Beta"/> + <combo_box.item name="Russian" label="РуÑÑкий (Rosyjski) - Beta"/> + <combo_box.item name="Turkish" label="Türkçe (Turecki) - Beta"/> + <combo_box.item name="Ukrainian" label="УкраїнÑька (UkraiÅ„ski) - Beta"/> + <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (ChiÅ„ski) - Beta"/> + <combo_box.item name="(Japanese)" label="日本語 (JapoÅ„ski) - Beta"/> + <combo_box.item name="(Korean)" label="í•œêµì–´ (KoreaÅ„ski) - Beta"/> </combo_box> <check_box label="JÄ™zyk znany publicznie" name="language_is_public" tool_tip="Pozwala obiektom w Å›wiecie poznać Twój wybór jÄ™zyk."/> </panel> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml index d59e6dbaf0466647991da673dcf080f9b734817d..ddd4c736d67b6e78509a4d7b462ced799a9c770e 100755 --- a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml @@ -2,62 +2,63 @@ <panel label="Grafika" name="Display panel"> <button label="?" name="GraphicsPreferencesHelpButton" /> <check_box label="Uruchom Second Life w oknie" name="windowed mode" /> - <text_editor type="string" length="1" name="FullScreenInfo"> + <text_editor name="FullScreenInfo"> WyÅ‚Ä…czone = klient uruchamiany w trybie peÅ‚noekranowym. </text_editor> - <text type="string" length="1" name="WindowSizeLabel"> + <text name="WindowSizeLabel"> Wymiary Okna: </text> <combo_box name="windowsize combo"> - <combo_box.item type="string" length="1" name="640x480" label="640x480" /> - <combo_box.item type="string" length="1" name="800x600" label="800x600" /> - <combo_box.item type="string" length="1" name="720x480" label="720x480 (NTSC)" /> - <combo_box.item type="string" length="1" name="768x576" label="768x576 (PAL)" /> - <combo_box.item type="string" length="1" name="1024x768" label="1024x768" /> + <combo_box.item name="640x480" label="640x480" /> + <combo_box.item name="800x600" label="800x600" /> + <combo_box.item name="720x480" label="720x480 (NTSC)" /> + <combo_box.item name="768x576" label="768x576 (PAL)" /> + <combo_box.item name="1024x768" label="1024x768" /> </combo_box> - <text type="string" length="1" name="DisplayResLabel"> + <text name="DisplayResLabel"> Rozdzielczość: </text> - <text type="string" length="1" name="AspectRatioLabel1" tool_tip="width / height"> + <text name="AspectRatioLabel1" tool_tip="width / height"> Proporcje: </text> <combo_box name="aspect_ratio" tool_tip="width / height"> - <combo_box.item type="string" length="1" name="4:3(StandardCRT)" label="4:3 (Standardowy CRT)" /> - <combo_box.item type="string" length="1" name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)" /> - <combo_box.item type="string" length="1" name="8:5(Widescreen)" label="8:5 (Panoramiczny)" /> - <combo_box.item type="string" length="1" name="16:9(Widescreen)" label="16:9 (Panoramiczny)" /> + <combo_box.item name="4:3(StandardCRT)" label="4:3 (Standardowy CRT)" /> + <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)" /> + <combo_box.item name="8:5(Widescreen)" label="8:5 (Panoramiczny)" /> + <combo_box.item name="16:9(Widescreen)" label="16:9 (Panoramiczny)" /> </combo_box> <check_box label="Detekcja proporcji" name="aspect_auto_detect" /> - <text type="string" length="1" name="HigherText"> + <text name="HigherText"> Jakość i </text> - <text type="string" length="1" name="QualityText"> + <text name="QualityText"> PrÄ™dkość: </text> - <text type="string" length="1" name="FasterText"> + <text name="FasterText"> PrÄ™dkość </text> - <text type="string" length="1" name="ShadersPrefText"> + <text name="ShadersPrefText"> Niska </text> - <text type="string" length="1" name="ShadersPrefText2"> + <text name="ShadersPrefText2"> Åšrednia </text> - <text type="string" length="1" name="ShadersPrefText3"> + <text name="ShadersPrefText3"> Wysoka </text> - <text type="string" length="1" name="ShadersPrefText4"> + <text name="ShadersPrefText4"> Super </text> - <text type="string" length="1" name="HigherText2"> + <text name="HigherText2"> Wyższa </text> - <text type="string" length="1" name="QualityText2"> + <text name="QualityText2"> Jakość </text> <slider label="" name="QualityPerformanceSelection" /> <check_box label="Zaawansowane" name="CustomSettings" /> - <text type="string" length="1" name="ShadersText"> + <panel name="CustomGraphics Panel"> + <text name="ShadersText"> Shadery: </text> <check_box label="Mapowanie WypukÅ‚oÅ›ci i PoÅ‚ysk" name="BumpShiny" /> @@ -65,31 +66,31 @@ tool_tip="WyÅ‚Ä…czenie tej opcji może naprawić bÅ‚Ä™dy niektórych sterowników graficznych." /> <check_box label="Shadery Atmosfery" name="WindLightUseAtmosShaders" /> <check_box label="Odbicia w Wodzie" name="Reflections" /> - <text type="string" length="1" name="ReflectionDetailText"> + <text name="ReflectionDetailText"> Ustawienia Odbić: </text> <radio_group name="ReflectionDetailRadio"> - <radio_item type="string" length="1" name="0" label="Teren i Drzewa" /> - <radio_item type="string" length="1" name="1" label="Obiekty Statyczne" /> - <radio_item type="string" length="1" name="2" label="Awatary i Obiekty" /> - <radio_item type="string" length="1" name="3" label="Wszystko" /> + <radio_item name="0" label="Teren i Drzewa" /> + <radio_item name="1" label="Obiekty Statyczne" /> + <radio_item name="2" label="Awatary i Obiekty" /> + <radio_item name="3" label="Wszystko" /> </radio_group> - <text type="string" length="1" name="AvatarRenderingText"> + <text name="AvatarRenderingText"> Prezentacja Awatarów: </text> <check_box label="Impostoryzacja Awatarowa" name="AvatarImpostors" /> <check_box label="Skinning" name="AvatarVertexProgram" /> <check_box label="Ubranie Awatarów" name="AvatarCloth" /> - <text type="string" length="1" name="DrawDistanceMeterText1"> + <text name="DrawDistanceMeterText1"> m </text> - <text type="string" length="1" name="DrawDistanceMeterText2"> + <text name="DrawDistanceMeterText2"> m </text> <slider label="GÅ‚Ä™bia Rysowania:" name="DrawDistance" /> <slider label="Liczba CzÄ…steczek:" name="MaxParticleCount" /> <slider label="Jakość Post-Procesu:" name="RenderPostProcess" /> - <text type="string" length="1" name="MeshDetailText"> + <text name="MeshDetailText"> Szczegóły Meszu: </text> <slider label=" Obiekty:" name="ObjectMeshDetail" /> @@ -98,48 +99,49 @@ <slider label=" Awatary:" name="AvatarMeshDetail" /> <slider label=" Teren:" name="TerrainMeshDetail" /> <slider label=" Niebo:" name="SkyMeshDetail" /> - <text type="string" length="1" name="PostProcessText"> + <text name="PostProcessText"> MaÅ‚o </text> - <text type="string" length="1" name="ObjectMeshDetailText"> + <text name="ObjectMeshDetailText"> MaÅ‚o </text> - <text type="string" length="1" name="FlexibleMeshDetailText"> + <text name="FlexibleMeshDetailText"> MaÅ‚o </text> - <text type="string" length="1" name="TreeMeshDetailText"> + <text name="TreeMeshDetailText"> MaÅ‚o </text> - <text type="string" length="1" name="AvatarMeshDetailText"> + <text name="AvatarMeshDetailText"> MaÅ‚o </text> - <text type="string" length="1" name="TerrainMeshDetailText"> + <text name="TerrainMeshDetailText"> MaÅ‚o </text> - <text type="string" length="1" name="SkyMeshDetailText"> + <text name="SkyMeshDetailText"> MaÅ‚o </text> - <text type="string" length="1" name="LightingDetailText"> + <text name="LightingDetailText"> Ustawienia ÅšwiatÅ‚a: </text> <radio_group name="LightingDetailRadio"> - <radio_item type="string" length="1" name="SunMoon" label="Tylko SÅ‚oÅ„ce i Księżyc" /> - <radio_item type="string" length="1" name="LocalLights" label="Tylko Bliskie ÅšwiatÅ‚a" /> + <radio_item name="SunMoon" label="Tylko SÅ‚oÅ„ce i Księżyc" /> + <radio_item name="LocalLights" label="Tylko Bliskie ÅšwiatÅ‚a" /> </radio_group> - <text type="string" length="1" name="TerrainDetailText"> + <text name="TerrainDetailText"> Szczgóły Terenu: </text> <radio_group name="TerrainDetailRadio"> - <radio_item type="string" length="1" name="0" label="MaÅ‚o" /> - <radio_item type="string" length="1" name="2" label="Dużo" /> + <radio_item name="0" label="MaÅ‚o" /> + <radio_item name="2" label="Dużo" /> </radio_group> + </panel> <button label="Ustawienia DomyÅ›lne" name="Defaults" /> <button label="Ustawnia SprzÄ™towe" label_selected="Ustawienia SprzÄ™towe" name="GraphicsHardwareButton" /> - <string name="resolution_format"> + <panel.string name="resolution_format"> [RES_X] x [RES_Y] - </string> - <string name="aspect_ratio_text"> + </panel.string> + <panel.string name="aspect_ratio_text"> [NUM]:[DEN] - </string> + </panel.string> </panel> diff --git a/indra/newview/skins/default/xui/pl/panel_region_estate.xml b/indra/newview/skins/default/xui/pl/panel_region_estate.xml index 5ef94baaa5187b18ebf84730a1b43cec0f795709..4447de517b83c658c96d38244f24b45bc46d7868 100755 --- a/indra/newview/skins/default/xui/pl/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/pl/panel_region_estate.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="MajÄ…tek" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="MajÄ…tek" name="Estate"> <text name="estate_help_text"> Zmiany ustawieÅ„ na tej zakÅ‚adce odnoszÄ… siÄ™ do wszystkich Regionów w tym MajÄ…tku. @@ -23,7 +25,7 @@ do wszystkich Regionów w tym MajÄ…tku. <slider label="Pora Doby" name="sun_hour_slider"/> <check_box label="DostÄ™p Publiczny" name="externally_visible_check"/> <button label="?" name="externally_visible_help"/> - <text length="1" name="Only Allow" type="string"> + <text name="Only Allow"> DostÄ™p Ograniczony do: </text> <check_box label="Rezydenci z danymi o koncie" name="limit_payment" tool_tip="Zablokuj niepożądanych Rezydentów."/> @@ -71,4 +73,6 @@ do wszystkich Regionów w tym MajÄ…tku. <name_list name="banned_avatar_name_list"/> <button label="UsuÅ„..." name="remove_banned_avatar_btn"/> <button label="Dodaj..." name="add_banned_avatar_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/pl/panel_region_general.xml b/indra/newview/skins/default/xui/pl/panel_region_general.xml index 36cff9c2d00547e54c368d5d4a6923f156d0e10d..20296dac71e304719f0ede5bebce43e24553ecf9 100755 --- a/indra/newview/skins/default/xui/pl/panel_region_general.xml +++ b/indra/newview/skins/default/xui/pl/panel_region_general.xml @@ -40,15 +40,9 @@ Rodzaj: </text> <combo_box label="'Mature'" name="access_combo"> - <combo_item name="Adult"> - 'Adult' - </combo_item> - <combo_item name="Mature"> - 'Mature' - </combo_item> - <combo_item name="PG"> - 'PG' - </combo_item> + <combo_box.item label="'Adult'" name="Adult"/> + <combo_box.item label="'Mature'" name="Mature"/> + <combo_box.item label="'PG'" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="Zastosuj" name="apply_btn"/> diff --git a/indra/newview/skins/default/xui/pl/panel_region_texture.xml b/indra/newview/skins/default/xui/pl/panel_region_texture.xml index d24579fc7579f0d5fe353c27b17ae6225719b680..ac43f0b2ccce7d822a8e029407762da59f38adca 100755 --- a/indra/newview/skins/default/xui/pl/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/pl/panel_region_texture.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Tekstury Gruntu" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="Tekstury Gruntu" name="Textures"> <text name="region_text_lbl"> Region: </text> @@ -54,4 +56,6 @@ a wartość GÓRA to MINIMALNY poziom dla tekstury #4. </text> <button label="Zastosuj" name="apply_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/pl/panel_scrolling_param.xml b/indra/newview/skins/default/xui/pl/panel_scrolling_param.xml index f057c824ac13f722911ae6c6d0b22ba72691530a..70a6e394120a5701cdbe20d9cb2d7cb6608be484 100755 --- a/indra/newview/skins/default/xui/pl/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/pl/panel_scrolling_param.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="LLScrollingPanelParam"> - <text type="string" length="1" name="Loading..."> + <text name="Loading..."> Åadowanie... </text> - <text type="string" length="1" name="Loading...2"> + <text name="Loading...2"> Åadowanie... </text> <button label="" label_selected="" name="less" /> diff --git a/indra/newview/skins/default/xui/pl/panel_status_bar.xml b/indra/newview/skins/default/xui/pl/panel_status_bar.xml index fcaac7f11611ae01d698bb1805549a6373fa571d..9226e67dff0a6a78f5d44c25bbe7918483221cc3 100755 --- a/indra/newview/skins/default/xui/pl/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/pl/panel_status_bar.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="status"> - <text type="string" length="1" name="ParcelNameText" tool_tip="Nazwa posiadÅ‚oÅ›ci w której siÄ™ znajdujesz. Po wiÄ™cej informacji kliknij O PosiadÅ‚oÅ›ci."> + <text name="ParcelNameText" tool_tip="Nazwa posiadÅ‚oÅ›ci w której siÄ™ znajdujesz. Po wiÄ™cej informacji kliknij O PosiadÅ‚oÅ›ci."> Nazwa PosiadÅ‚oÅ›ci </text> - <text type="string" length="1" name="BalanceText" tool_tip="Stan Konta"> + <text name="BalanceText" tool_tip="Stan Konta"> Åadowanie... </text> <button label="" label_selected="" name="buycurrency" tool_tip="Kup $L" /> - <text type="string" length="12" name="TimeText" tool_tip="Obecny Czas (Pacyficzny)"> + <text name="TimeText" tool_tip="Obecny Czas (Pacyficzny)"> 12:00 AM </text> <string name="StatBarDaysOfWeek"> @@ -18,7 +18,7 @@ </string> <button label="" label_selected="" name="scriptout" tool_tip="BÅ‚Ä™dy i Ostrzeżenia Skryptów" /> <button label="" label_selected="" name="health" tool_tip="Stan" /> - <text type="string" length="1" name="HealthText" tool_tip="Stan"> + <text name="HealthText" tool_tip="Stan"> 100% </text> <button label="" label_selected="" name="no_fly" tool_tip="Latanie jest niedozwolone" /> diff --git a/indra/newview/skins/default/xui/pl/panel_world_map.xml b/indra/newview/skins/default/xui/pl/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..babb9fbae1739f3884b4a8a4e424d4da9a3f4dbf --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + N + </panel.string> + <panel.string name="world_map_east"> + E + </panel.string> + <panel.string name="world_map_west"> + W + </panel.string> + <panel.string name="world_map_south"> + S + </panel.string> + <panel.string name="world_map_southeast"> + SE + </panel.string> + <panel.string name="world_map_northeast"> + NE + </panel.string> + <panel.string name="world_map_southwest"> + SW + </panel.string> + <panel.string name="world_map_northwest"> + NW + </panel.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="E" name="floater_map_east" text="E"> + E + </text> + <text label="W" name="floater_map_west" text="W"> + W + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SW" name="floater_map_southwest" text="SW"> + SW + </text> + <text label="NW" name="floater_map_northwest" text="NW"> + NW + </text> +</panel> diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml index 3ec2b45237c2ee600c6fab963c38dd08f1a6707b..402bf0a3ed923bd6dbaa4c27fb91d34d31707557 100755 --- a/indra/newview/skins/default/xui/pl/strings.xml +++ b/indra/newview/skins/default/xui/pl/strings.xml @@ -486,4 +486,34 @@ <string name="choose_the_directory"> Wybierz Katalog </string> + <string name="accel-mac-control"> + Ctrl- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Opt- + </string> + <string name="accel-mac-shift"> + Shift- + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Shift+ + </string> + <string name="GraphicsQualityLow"> + Niska + </string> + <string name="GraphicsQualityMid"> + Åšrednia + </string> + <string name="GraphicsQualityHigh"> + Wysoka + </string> </strings> 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 fee7ed60f5db3b736cc71fc49c8f33f79784f218..417d24608e418d14fbb3b63705ef81df23ebd6c7 100644 --- a/indra/newview/skins/default/xui/pt/floater_about_land.xml +++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml @@ -2,10 +2,10 @@ <floater name="floaterland" title="Sobre o Terreno"> <tab_container name="landtab"> <panel label="Geral" name="land_general_panel"> - <text length="1" name="Name:" type="string"> + <text name="Name:"> Nome: </text> - <text length="1" name="Description:" type="string"> + <text name="Description:"> Descrição: </text> <text name="LandType"> @@ -20,56 +20,56 @@ <text name="ContentRatingText"> Adult </text> - <text length="1" name="Owner:" type="string"> + <text name="Owner:"> Proprietário: </text> - <text length="1" name="OwnerText" type="string"> + <text name="OwnerText"> Leyla Linden </text> <button label="Perfil..." label_selected="Perfil..." name="Profile..."/> - <text length="1" name="Group:" type="string"> + <text name="Group:"> Grupo: </text> <button label="Ajustar..." label_selected="Ajustar..." name="Set..."/> <check_box label="Permitir posse para o grupo" name="check deed" tool_tip="O gerente do grupo pode acionar essa terra ao grupo, então esta será mantida pelo gestor da ilha"/> <button label="Passar..." label_selected="Passar..." name="Deed..." tool_tip="Você só pode delegar esta terra se você for um gerente selecionado pelo grupo."/> <check_box label="Proprietário faz contribuição com delegação" name="check contrib" tool_tip="Quando a terra é delegada ao grupo, o proprietário anterior contribui alocando terra suficiente para mantê-la."/> - <text length="1" name="For Sale:" type="string"> + <text name="For Sale:"> À Venda: </text> - <text length="1" name="Not for sale." type="string"> + <text name="Not for sale."> Não está à Venda. </text> - <text length="1" name="For Sale: Price L$[PRICE]." type="string"> + <text name="For Sale: Price L$[PRICE]."> Preço: L$[PRICE] (L$[PRICE_PER_SQM]/m²). </text> <button label="Vender Terra..." label_selected="Vender Terra..." name="Sell Land..."/> - <text length="1" name="For sale to" type="string"> + <text name="For sale to"> À venda para: [BUYER] </text> - <text length="1" name="Sell with landowners objects in parcel." type="string"> + <text name="Sell with landowners objects in parcel."> À venda (Objetos incluÃdos). </text> - <text length="1" name="Selling with no objects in parcel." type="string"> + <text name="Selling with no objects in parcel."> À venda (Objetos não incluÃdos). </text> <button label="Cancelar venda do terreno" label_selected="Cancelar venda do terreno" left="275" name="Cancel Land Sale" width="165"/> - <text length="1" name="Claimed:" type="string"> + <text name="Claimed:"> Reclamado: </text> - <text length="1" name="DateClaimText" type="string"> + <text name="DateClaimText"> Ter Ago 15 13:47:25 2006 </text> - <text length="1" name="PriceLabel" type="string"> + <text name="PriceLabel"> Ãrea: </text> - <text length="1" name="PriceText" type="string"> + <text name="PriceText"> 4048 m² </text> - <text length="1" name="Traffic:" type="string"> + <text name="Traffic:"> Tráfego: </text> - <text length="1" name="DwellText" type="string"> + <text name="DwellText"> 0 </text> <button label="Comprar Terra..." label_selected="Comprar Terra..." left="130" name="Buy Land..." width="125"/> @@ -78,76 +78,76 @@ <button label="Abandonar Terra.." label_selected="Abandonar Terra.." name="Abandon Land..."/> <button label="Reclamar Terra..." label_selected="Reclamar Terra..." name="Reclaim Land..."/> <button label="Venda Linden..." label_selected="Venda Linden..." name="Linden Sale..." tool_tip="A terra precisa ser possuÃda, estar com o conteúdo configurado e não estar pronta para leilão."/> - <string name="new users only"> + <panel.string name="new users only"> Somente novos usuários - </string> - <string name="anyone"> + </panel.string> + <panel.string name="anyone"> Qualquer um - </string> - <string name="area_text"> + </panel.string> + <panel.string name="area_text"> Ãrea - </string> - <string name="area_size_text"> + </panel.string> + <panel.string name="area_size_text"> [AREA] m² - </string> - <string name="auction_id_text"> + </panel.string> + <panel.string name="auction_id_text"> ID do Leilão: [ID] - </string> - <string name="need_tier_to_modify"> + </panel.string> + <panel.string name="need_tier_to_modify"> Você deve ter sua compra aprovada para modificar este terreno. - </string> - <string name="group_owned_text"> + </panel.string> + <panel.string name="group_owned_text"> (PossuÃdo pelo Grupo) - </string> - <string name="profile_text"> + </panel.string> + <panel.string name="profile_text"> Perfil... - </string> - <string name="info_text"> + </panel.string> + <panel.string name="info_text"> Informação... - </string> - <string name="public_text"> + </panel.string> + <panel.string name="public_text"> (público) - </string> - <string name="none_text"> + </panel.string> + <panel.string name="none_text"> (nenhum) - </string> - <string name="sale_pending_text"> + </panel.string> + <panel.string name="sale_pending_text"> (Venda Pendente) - </string> - <string name="no_selection_text"> + </panel.string> + <panel.string name="no_selection_text"> Nenhum lote selecionado. Vá para o menu Mundo > Sobre a Terra ou selecione outro lote para mostrar seus detalhes. - </string> + </panel.string> </panel> <panel label="Corretor" name="land_covenant_panel"> <text name="estate_section_lbl"> Propriedade: </text> - <text length="1" name="estate_name_lbl" type="string"> + <text name="estate_name_lbl"> Nome: </text> - <text length="1" name="estate_name_text" type="string"> + <text name="estate_name_text"> mainland </text> - <text length="1" name="estate_owner_lbl" type="string"> + <text name="estate_owner_lbl"> Dono: </text> - <text length="1" name="estate_owner_text" type="string"> + <text name="estate_owner_text"> (nenhum) </text> - <text_editor length="1" name="covenant_editor" type="string"> + <text_editor name="covenant_editor"> Não há corretor para esta Propriedade. </text_editor> - <text length="1" name="covenant_timestamp_text" type="string"> + <text name="covenant_timestamp_text"> Última Alteração: Qua, Dez 31 16:00:00 1969 </text> <text name="region_section_lbl"> Região: </text> - <text length="1" name="region_name_lbl" type="string"> + <text name="region_name_lbl"> Nome: </text> - <text length="1" name="region_name_text" type="string"> + <text name="region_name_text"> leyla </text> <text name="region_landtype_lbl"> @@ -165,93 +165,93 @@ Vá para o menu Mundo > Sobre a Terra ou selecione outro lote para mostrar se <text name="resellable_lbl"> Revender: </text> - <text length="1" name="resellable_clause" type="string"> + <text name="resellable_clause"> Terra nesta região não pode ser revendida. </text> <text name="changeable_lbl"> Subdividir: </text> - <text length="1" name="changeable_clause" type="string"> + <text name="changeable_clause"> Terra nesta região não pode ser unida/sub-dividida. </text> - <string name="can_resell"> + <panel.string name="can_resell"> Terra comprada nesta região pode ser revendida. - </string> - <string name="can_not_resell"> + </panel.string> + <panel.string name="can_not_resell"> Terra comprada nesta região não pode ser revendida. - </string> - <string name="can_change"> + </panel.string> + <panel.string name="can_change"> Terra comprada nesta região pode ser compartilhada ou sub-dividida. - </string> - <string name="can_not_change"> + </panel.string> + <panel.string name="can_not_change"> Terra comprada nesta região não pode ser compartilhada ou sub-dividida. - </string> + </panel.string> </panel> <panel label="Objetos" name="land_objects_panel"> <text name="parcel_object_bonus"> Fator de Bonus para Objetos na Região: [BONUS] </text> - <text length="1" name="Simulator primitive usage:" type="string"> + <text name="Simulator primitive usage:"> Uso do simulador de primitivas: </text> <text left="214" name="objects_available" width="230"> [COUNT] de [MAX] ([AVAILABLE] disponÃveis) </text> - <string name="objects_available_text"> + <panel.string name="objects_available_text"> [COUNT] de [MAX] ([AVAILABLE] disponÃveis) - </string> - <string name="objects_deleted_text"> + </panel.string> + <panel.string name="objects_deleted_text"> [COUNT] de [MAX] ([DELETED] serão deletados) - </string> - <text length="1" name="Primitives parcel supports:" type="string" width="200"> + </panel.string> + <text name="Primitives parcel supports:" width="200"> Primitivas suportadas pelo lote: </text> - <text left="214" length="1" name="object_contrib_text" type="string" width="152"> + <text left="214" name="object_contrib_text" width="152"> [COUNT] </text> - <text length="1" name="Primitives on parcel:" type="string"> + <text name="Primitives on parcel:"> Primitivas no Lote: </text> - <text left="214" length="1" name="total_objects_text" type="string" width="48"> + <text left="214" name="total_objects_text" width="48"> [COUNT] </text> - <text left="14" length="1" name="Owned by parcel owner:" type="string" width="180"> + <text left="14" name="Owned by parcel owner:" width="180"> Pertencentes ao dono do lote: </text> - <text left="214" length="1" name="owner_objects_text" type="string" width="48"> + <text left="214" name="owner_objects_text" width="48"> [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/> <button label="Retornar..." label_selected="Retornar..." name="ReturnOwner..." right="-10" tool_tip="Retornar os objetos aos seus donos." width="119"/> - <text left="14" length="1" name="Set to group:" type="string" width="180"> + <text left="14" name="Set to group:" width="180"> Configurados ao grupo: </text> - <text left="214" length="1" name="group_objects_text" type="string" width="48"> + <text left="214" name="group_objects_text" width="48"> [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/> <button label="Retornar..." label_selected="Retornar..." name="ReturnGroup..." right="-10" tool_tip="Retornar os objetos para seus donos." width="119"/> - <text left="14" length="1" name="Owned by others:" type="string" width="128"> + <text left="14" name="Owned by others:" width="128"> Propriedade de Outros: </text> - <text left="214" length="1" name="other_objects_text" type="string" width="48"> + <text left="214" name="other_objects_text" width="48"> [COUNT] </text> <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/> <button label="Retornar..." label_selected="Retornar..." name="ReturnOther..." right="-10" tool_tip="Retornar os objetos aos seus donos." width="119"/> - <text left="14" length="1" name="Selected / sat upon:" type="string" width="193"> + <text left="14" name="Selected / sat upon:" width="193"> Selecionado/Sentado: </text> - <text left="214" length="1" name="selected_objects_text" type="string" width="48"> + <text left="214" name="selected_objects_text" width="48"> [COUNT] </text> - <text left="4" length="1" name="Autoreturn" type="string" width="412"> + <text left="4" name="Autoreturn" width="412"> Auto-retornar objetos dos outros residentes (minutos, 0 para desligado): </text> <line_editor name="clean other time" right="-10"/> - <text length="1" name="Object Owners:" type="string"> + <text name="Object Owners:"> Donos dos Objetos: </text> <button label="Atualizar Lista" label_selected="Atualizar Lista" name="Refresh List" left="118"/> @@ -264,138 +264,140 @@ ou sub-dividida. </name_list> </panel> <panel label="Opções" name="land_options_panel"> - <text length="1" name="allow_label" type="string"> + <text name="allow_label"> Permitir outros residentes a: </text> <check_box label="Editar Terreno" name="edit land check" tool_tip="Se ativado, qualquer um pode modificar a forma da sua terra. É melhor deixar esta opção desativada, uma vez que você sempre pode editar seu próprio terreno."/> <check_box label="Criar Landmarks" name="check landmark"/> <check_box label="Voar" name="check fly" tool_tip="Se ativado, os Residentes podem voar na sua terra. Se desativado, eles podem voar apenas para dentro e por cima de sua terra."/> - <text length="1" name="allow_label2" type="string" left="172"> + <text name="allow_label2" left="172"> Criar Objetos: </text> <check_box label="Residentes" name="edit objects check"/> <check_box label="Grupo" name="edit group objects check"/> - <text length="1" name="allow_label3" type="string" left="172"> + <text name="allow_label3" left="172"> Entrada do Objeto: </text> <check_box label="Residentes" name="all object entry check"/> <check_box label="Grupo" name="group object entry check"/> - <text length="1" name="allow_label4" type="string" left="172"> + <text name="allow_label4" left="172"> Executar Scripts: </text> <check_box label="Residentes" name="check other scripts"/> <check_box label="Grupo" name="check group scripts"/> - <text length="1" name="land_options_label" type="string"> + <text name="land_options_label"> Opções de Terra: </text> <check_box label="Salvo (sem dano)" name="check safe" tool_tip="Se ativado, ajusta o terreno para Seguro, desabilitando combate com danos. Se não ativado, o combate com danos é habilitado."/> <check_box label="Sem Empurrar" name="PushRestrictCheck" tool_tip="Evita scripts que empurram. A ativação dessa opção pode ser útil para prevenir comportamentos desordeiros na sua terra."/> <check_box label="Mostra o Lugar na Busca (L$30/semana) sob" name="ShowDirectoryCheck" tool_tip="Permitir que as pessoas vejam este terreno nos resultados de busca"/> - <string name="search_enabled_tooltip"> + <panel.string name="search_enabled_tooltip"> Permitir que as pessoas vejam este lote nos resultados de busca - </string> - <string name="search_disabled_small_tooltip"> + </panel.string> + <panel.string name="search_disabled_small_tooltip"> Esta opção está desabilitada porque a área deste lote tem 128 m² ou menos. Apenas lotes maiores podem ser listados na busca. - </string> - <string name="search_disabled_permissions_tooltip"> + </panel.string> + <panel.string name="search_disabled_permissions_tooltip"> Esta opção está desabilitada porque você não pode modificar as opções deste lote. - </string> - <combo_box name="land category with adult"> - <combo_item name="AnyCategory"> - Qualquer Categoria - </combo_item> - <combo_item name="LindenLocation"> - Local da Linden - </combo_item> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Arts&Culture"> - Artes & Cultura - </combo_item> - <combo_item name="Business"> - Negócios - </combo_item> - <combo_item name="Educational"> - Educacional - </combo_item> - <combo_item name="Gaming"> - Jogos - </combo_item> - <combo_item name="Hangout"> - Moradia - </combo_item> - <combo_item name="NewcomerFriendly"> - Amigável a Novos Usuários - </combo_item> - <combo_item name="Parks&Nature"> - Parques & Natureza - </combo_item> - <combo_item name="Residential"> - Residencial - </combo_item> - <combo_item name="Shopping"> - Shopping - </combo_item> - <combo_item name="Other"> - Outros - </combo_item> + </panel.string> + <combo_box name="land category with adult" left="265" width="155"> + <combo_box.item name="item0" label="Qualquer Categoria" + /> + <combo_box.item name="item1" label="Locação Linden" + /> + <combo_box.item name="item2" label="Adult" + /> + <combo_box.item name="item3" label="Artes e Cultura" + /> + <combo_box.item name="item4" label="Negócios" + /> + <combo_box.item name="item5" label="Educacional" + /> + <combo_box.item name="item6" label="Jogos" + /> + <combo_box.item name="item7" label="Moradia" + /> + <combo_box.item name="item8" label="Amigável a Novos Usuários" + /> + <combo_box.item name="item9" label="Parques & Natureza" + /> + <combo_box.item name="item10" label="Residencial" + /> + <combo_box.item name="item11" label="Compras" + /> + <combo_box.item name="item12" label="Outros" + /> </combo_box> - <combo_box left="276" name="land category" width="146"> - <combo_box.item name="AnyCategory" label="Qualquer Categoria"/> - <combo_box.item name="LindenLocation" label="Locação Linden"/> - <combo_box.item name="Arts&Culture" label="Artes e Cultura"/> - <combo_box.item name="Business" label="Negócios"/> - <combo_box.item name="Educational" label="Educacional"/> - <combo_box.item name="Gaming" label="Jogo"/> - <combo_box.item name="Hangout" label="Lazer"/> - <combo_box.item name="NewcomerFriendly" label="Amigável para novatos"/> - <combo_box.item name="Parks&Nature" label="Parques e Natureza"/> - <combo_box.item name="Residential" label="Residencial"/> - <combo_box.item name="Shopping" label="Compras"/> - <combo_box.item name="Other" label="Outros"/> + <combo_box name="land category" left="265" width="155"> + <combo_box.item name="item0" label="Qualquer Categoria" + /> + <combo_box.item name="item1" label="Locação Linden" + /> + <combo_box.item name="item3" label="Artes e Cultura" + /> + <combo_box.item name="item4" label="Negócios" + /> + <combo_box.item name="item5" label="Educacional" + /> + <combo_box.item name="item6" label="Jogos" + /> + <combo_box.item name="item7" label="Moradia" + /> + <combo_box.item name="item8" label="Amigável a Novos Usuários" + /> + <combo_box.item name="item9" label="Parques e Natureza" + /> + <combo_box.item name="item10" label="Residencial" + /> + <combo_box.item name="item11" label="Compras" + /> + <combo_box.item name="item12" label="Outros" + /> </combo_box> <button label="?" label_selected="?" left="426" name="?"/> <check_box label="Conteúdo Mature" name="MatureCheck" tool_tip=""/> - <string name="mature_check_mature"> + <panel.string name="mature_check_mature"> Conteúdo Mature - </string> - <string name="mature_check_adult"> + </panel.string> + <panel.string name="mature_check_adult"> Conteúdo Adult - </string> - <string name="mature_check_mature_tooltip"> + </panel.string> + <panel.string name="mature_check_mature_tooltip"> A informação do seu lote ou seu conteúdo são considerados mature. - </string> - <string name="mature_check_adult_tooltip"> + </panel.string> + <panel.string name="mature_check_adult_tooltip"> A informação do seu lote ou seu conteúdo são considerados adult. - </string> - <text length="1" name="Snapshot:" type="string"> + </panel.string> + <text name="Snapshot:"> Foto: </text> <texture_picker label="" name="snapshot_ctrl" tool_tip="Clique para escolher uma imagem"/> <text name="landing_point"> Ponto de Aterrissagem: [LANDING] </text> - <string name="landing_point_none"> + <panel.string name="landing_point_none"> (nenhum) - </string> + </panel.string> <button label="Definir" label_selected="Definir" name="Set" tool_tip="Define o ponto de aterrissagem aonde o visitante chega. Define para o ponto em que seu avatar se encontra neste lote."/> <button label="Limpar" label_selected="Limpar" name="Clear" tool_tip="Limpar o ponto de aterrissagem."/> - <text length="1" name="Teleport Routing: " type="string"> + <text name="Teleport Routing: "> Rota de Tele-transporte: </text> - <combo_box left="140" name="landing type" tool_tip="Rota de Teletransporte -- Selecione como tratar os tele-transportes no seu lote." width="140"> - <combo_box.item length="1" name="Blocked" type="string" label="Bloqueado"/> - <combo_box.item length="1" name="LandingPoint" type="string" label="Ponto de Aterrissagem"/> - <combo_box.item length="1" name="Anywhere" type="string" label="Qualquer lugar"/> + <combo_box width="160" left="140" name="landing type" tool_tip="Rota de Teletransporte -- Selecione como tratar os tele-transportes no seu lote."> + <combo_box.item name="Blocked" label="Bloqueado" + /> + <combo_box.item name="LandingPoint" label="Ponto de Aterrissagem" + /> + <combo_box.item name="Anywhere" label="Qualquer lugar" + /> </combo_box> - <string name="push_restrict_text"> + <panel.string name="push_restrict_text"> Sem Empurrar - </string> - <string name="push_restrict_region_text"> + </panel.string> + <panel.string name="push_restrict_region_text"> Sem Empurrar (Imposição na Região) - </string> + </panel.string> </panel> <panel label="MÃdia" name="land_media_panel"> <text name="with media:" width="85"> @@ -411,7 +413,7 @@ Apenas lotes maiores podem ser listados na busca. Descrição: </text> <line_editor left="97" name="url_description" tool_tip="Texto mostrado ao lado do botão reproduzir/carregar"/> - <text length="1" name="Media texture:" type="string"> + <text name="Media texture:"> Substituir Textura: </text> @@ -454,7 +456,7 @@ MÃdia: <check_box left="117" label="Restringir Voz a este lote" name="parcel_enable_voice_channel_parcel"/> </panel> <panel label="Acesso" name="land_access_panel"> - <text length="1" name="Limit access to this parcel to:" type="string"> + <text name="Limit access to this parcel to:"> Acesso a Este Lote </text> <check_box label="Permitir Acesso Público" name="public_access"/> @@ -463,14 +465,16 @@ MÃdia: </text> <check_box label="Residentes que não forneceram informações de pagamento para a Linden Lab" name="limit_payment" tool_tip="Banir residentes não identificados."/> <check_box label="Residentes que não tiveram a idade de adulto confirmada" name="limit_age_verified" tool_tip="Banir residentes que não tiveram sua idade verificada. Veja support.secondlife.com para maiores informações."/> - <string name="estate_override"> + <panel.string name="estate_override"> Uma ou mais destas opções está definida no nÃvel de propriedade. - </string> + </panel.string> <check_box label="Permitir Acesso do Grupo: [GROUP]" 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 name="Anyone" label="Qualquer um"/> - <combo_box.item name="Group" label="Grupo"/> + <combo_box.item name="Anyone" label="Qualquer um" + /> + <combo_box.item name="Group" label="Grupo" + /> </combo_box> <spinner label="Preço em L$:" name="PriceSpin"/> <spinner label="Horas de Acesso:" name="HoursSpin"/> 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 8f433a635db3f3d3edcd6f9cfab421a61713f7ea..4e1598c8fafed7443cf62a0009f1cac869f5f253 100644 --- a/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="avatarpicker" title="Escolha o Residente"> - <tab_container name="ResidentChooserTabs"> +<floater name="avatarpicker" title="Escolha o Residente" min_width="285" width="285"> + <tab_container name="ResidentChooserTabs" width="275"> <panel label="Buscar" name="SearchPanel"> <text name="InstructSearchResidentName"> Digite parte do nome do Residente: @@ -14,13 +14,15 @@ </panel> <panel label="Próximo a Mim" name="NearMePanel"> <text name="InstructSelectResident"> - Selecione residente próximo: + Selecione residente +próximo: </text> - <button label="Atualizar Lista" label_selected="Atualizar Lista" name="Refresh"/> - <slider label="Faixa" name="near_me_range"/> + <button font="SansSerifSmall" left_delta="1" width="115" label="Atualizar Lista" label_selected="Atualizar Lista" name="Refresh"/> + <slider label="Faixa" name="near_me_range" bottom_delta="-36"/> <text name="meters"> Metros </text> + <scroll_list bottom_delta="-169" height="159" name="NearMe" /> </panel> </tab_container> <button label="Selecionar" label_selected="Selecionar" name="Select"/> diff --git a/indra/newview/skins/default/xui/pt/floater_build_options.xml b/indra/newview/skins/default/xui/pt/floater_build_options.xml index 4dfebc3abd52b2648dd1e1f72a8fe054e47f171a..ebc9d0f0c8d2f931949de4fe456ed4af4ce3ca3f 100644 --- a/indra/newview/skins/default/xui/pt/floater_build_options.xml +++ b/indra/newview/skins/default/xui/pt/floater_build_options.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="build options floater" title="Opções de grade"> - <spinner label="Uni. Grade (metros)" name="GridResolution"/> - <spinner label="Ext. da Grade (metros)" name="GridDrawSize"/> + <spinner label="Uni. Grade (metros)" name="GridResolution" width="180" label_width="122"/> + <spinner label="Ext. da Grade (metros)" name="GridDrawSize" width="180" label_width="122"/> <check_box label="Habilitar ajuste de sub-grade" name="GridSubUnit"/> <check_box label="Mostrar as seções de cruzamento" name="GridCrossSection"/> - <slider label="Opacidade da grade" name="GridOpacity"/> + <slider label="Opacidade da grade" name="GridOpacity" width="220"/> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_buy_contents.xml b/indra/newview/skins/default/xui/pt/floater_buy_contents.xml index 0c1fb77a0833d4a74d8dab5b649b000dbe430b99..3e8713d59efce0a6f88c22f2c20fdaa2a51e018b 100644 --- a/indra/newview/skins/default/xui/pt/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/pt/floater_buy_contents.xml @@ -6,9 +6,9 @@ <text name="buy_text"> Comprar por L$[AMOUNT] de(a) [NAME]? </text> - <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/> - <button label="Comprar" label_selected="Comprar" name="buy_btn"/> - <check_box label="Vestir roupa agora" name="wear_check"/> + <button label="Cancelar" label_selected="Cancelar" name="cancel_btn" width="73"/> + <button label="Comprar" label_selected="Comprar" name="buy_btn" width="73" left_delta="-77"/> + <check_box label="Vestir roupa agora" name="wear_check" left_delta="-130"/> <string name="no_copy_text"> (sem copiar) </string> diff --git a/indra/newview/skins/default/xui/pt/floater_color_picker.xml b/indra/newview/skins/default/xui/pt/floater_color_picker.xml index 475280b013d201a528a8d81dc3d5c559b220f0c4..95dd53ccd44f965eb97f7caaad19f8d8b3487968 100644 --- a/indra/newview/skins/default/xui/pt/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/pt/floater_color_picker.xml @@ -19,12 +19,14 @@ Lum: </text> <check_box label="Aplicar imediatamente" name="apply_immediate"/> - <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/> + <button left_delta="150" name="color_pipette" /> + <button left_delta="55" label="Cancelar" label_selected="Cancelar" name="cancel_btn"/> <button label="Selecionar" label_selected="Selecionar" name="select_btn"/> <text name="Current color:"> Cor atual: </text> <text name="(Drag below to save.)"> - (Arraste abaixo para salvar.) + (Arraste abaixo + para salvar.) </text> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_customize.xml b/indra/newview/skins/default/xui/pt/floater_customize.xml index 7c4fa20f1b00b8b8598ef2c1936bb48d29f8ea8f..4bced69664ef9d238074c745643f1f27ed59c2e7 100644 --- a/indra/newview/skins/default/xui/pt/floater_customize.xml +++ b/indra/newview/skins/default/xui/pt/floater_customize.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="Aparência" width="546"> <tab_container name="customize tab container" tab_min_width="115" width="544"> - <panel label="Partes de corpo" name="body_parts_placeholder"/> + <placeholder label="Partes de corpo" name="body_parts_placeholder"/> <panel label="Forma" name="Shape"> <button label="Reverter" label_selected="Reverter" name="Revert"/> <button label="Corpo" label_selected="Corpo" name="Body"/> @@ -14,29 +14,29 @@ <button label="Tórax" label_selected="Tórax" name="Torso"/> <button label="Pernas" label_selected="Pernas" name="Legs"/> <radio_group name="sex radio"> - <radio_item length="1" name="radio" type="string" label="Feminino" /> - <radio_item length="1" name="radio2" type="string" label="Masculino" /> + <radio_item name="radio" label="Feminino" /> + <radio_item name="radio2" label="Masculino" /> </radio_group> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Coloque uma nova forma arrastando uma do seu inventário para seu avatar. Alternativamente, você pode criar uma nova de um esboço e usá-la. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar esta vestimenta. </text> <text name="Item Action Label"> @@ -51,27 +51,27 @@ Alternativamente, você pode criar uma nova de um esboço e usá-la. <button width="115" label="Detalhes Faciais" label_selected="Detalhes Faciais" name="Face Detail"/> <button width="115" label="Maquiagem" label_selected="Maquiagem" name="Makeup"/> <button width="115" label="Detalhes do Corpo" label_selected="Detalhes do Corpo" name="Body Detail"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando.. </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizada em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Coloque uma nova pele arrastando uma de seu inventário para seu avatar. Alternativamente, você pode criar uma nova forma a partir de um esboço e usá-la. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar esta vestimenta. </text> <text name="Item Action Label"> @@ -90,27 +90,27 @@ e usá-la. <button width="115" label="Estilo" label_selected="Estilo" name="Style"/> <button width="115" label="Sombrancelhas" label_selected="Sombrancelhas" name="Eyebrows"/> <button width="115" label="Rosto" label_selected="Rosto" name="Facial"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Ponha um novo cabelo em seu avatar arrastando um do seu inventário. Alternativamente, você pode criar um novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não ter permissão para modificar essa vestimenta. </text> <text name="Item Action Label"> @@ -123,26 +123,26 @@ e usá-lo. <button label="Reverter" label_selected="Reverter" name="Revert"/> </panel> <panel label="Olhos" name="Eyes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para colocar novos olhos, arraste um do seu inventário para seu avatar. Alternativamente, você pode criar um novo modelo de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para alterar esta vestimenta. </text> <text name="Item Action Label"> @@ -163,27 +163,27 @@ Alternativamente, você pode criar um novo modelo de um esboço e usá-lo. <button label="Salvar" label_selected="Salvar" name="Save"/> <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/> <button label="Reverter" label_selected="Reverter" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para por uma nova camisa em seu avatar, arraste uma do seu inventário para seu avatar. Alternativamente, você pode criar um novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não ter permissão para modificar esta vestimenta. </text> <text name="Item Action Label"> @@ -198,27 +198,27 @@ um esboço e usá-lo. <button label="Salvar" label_selected="Salvar" name="Save"/> <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/> <button label="Reverter" label_selected="Reverter" name="Revert"/> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestindo </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para por uma nova calça em seu avatar, basta arrastar uma outra do seu inventário. Alternativamente, você pode criar um novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar esta vestimenta. </text> <text name="Item Action Label"> @@ -226,27 +226,27 @@ de um esboço e usá-lo. </text> </panel> <panel label="Sapatos" name="Shoes"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para por novos sapatos em seu avatar, basta arrastar um novo do seu inventário. Alternativamente, você pode criar um novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar esta vestimenta. </text> <text name="Item Action Label"> @@ -261,27 +261,27 @@ de um esboço e usá-lo. <button label="Reverter" label_selected="Reverter" name="Revert"/> </panel> <panel label="Meias" name="Socks"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido. </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para por novas meias em seu avatar, basta arrastar uma nova do seu inventário. Alternativamente, você pode criar novas meias a partir de um esboço e usá-las. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar essa vestimenta. </text> <text name="Item Action Label"> @@ -296,27 +296,27 @@ um esboço e usá-las. <button label="Reverter" label_selected="Reverter" name="Revert"/> </panel> <panel label="Jaqueta" name="Jacket"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: Não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para por uma nova jaqueta em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar esta vestimenta. </text> <text name="Item Action Label"> @@ -332,27 +332,27 @@ partir de um esboço e usá-lo. <button label="Reverter" label_selected="Reverter" name="Revert"/> </panel> <panel label="Luvas" name="Gloves"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando.... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para colocar uma nova jaqueta em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar uma novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar essa vestimenta. </text> <text name="Item Action Label"> @@ -367,27 +367,27 @@ partir de um esboço e usá-lo. <button label="Reverter" label_selected="Reverter" name="Revert"/> </panel> <panel label="Camiseta" name="Undershirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para por uma nova Camiseta em seu avatar, basta arrastar um novo modelo de seu inventário. Alternativamente, você pode criar um novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não ter permissão para modificar essa vestimenta. </text> <text name="Item Action Label"> @@ -402,27 +402,27 @@ partir de um esboço e usá-lo. <button label="Reverter" label_selected="Reverter" name="Revert"/> </panel> <panel label="Roupas de Baixo" name="Underpants"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para por novas roupas de baixo em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar essa vestimenta. </text> <text name="Item Action Label"> @@ -437,27 +437,27 @@ modelo a partir de um esboço e usá-lo. <button label="Reverter" label_selected="Reverter" name="Revert"/> </panel> <panel label="Saia" name="Skirt"> - <text length="1" name="title" type="string"> + <text name="title"> [DESC] </text> - <text length="1" name="title_no_modify" type="string"> + <text name="title_no_modify"> [DESC]: não foi possÃvel modificar </text> - <text length="1" name="title_loading" type="string"> + <text name="title_loading"> [DESC]: carregando... </text> - <text length="1" name="title_not_worn" type="string"> + <text name="title_not_worn"> [DESC]: não vestido </text> - <text length="1" name="path" type="string"> + <text name="path"> Localizado em [PATH] </text> - <text length="1" name="not worn instructions" type="string"> + <text name="not worn instructions"> Para por uma nova saia em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir de um esboço e usá-lo. </text> - <text length="1" name="no modify instructions" type="string"> + <text name="no modify instructions"> Você não tem permissão para modificar esta vestimenta. </text> <text name="Item Action Label"> diff --git a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml index 5049b87a560b63f3585abe6b91972702fcbc2df8..f02cca9c2543fcec0c2f9523cd252c544421e9c2 100644 --- a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml @@ -4,35 +4,35 @@ <panel label="Ciclo do dia" name="Day Cycle"> <button label="?" name="WLDayCycleHelp"/> <text name="WL12am"> - 12:00 meia-noite + 0:00 </text> <text name="WL3am"> - 3:00 da manhã + 3:00 </text> <text name="WL6am"> - 6:00 da manhã + 6:00 </text> <text name="WL9amHash"> - 9:00 da manhã + 9:00 </text> <text name="WL12pmHash"> - 12:00 meio dia + 12:00 </text> <text name="WL3pm"> - 3:00 da tarde + 15:00 </text> <text name="WL6pm"> - 6:00 da tarde + 18:00 </text> <text name="WL9pm"> - 9:00 da noite + 21:00 </text> <text name="WL12am2"> - 12:00 meia noite + 24:00 </text> - <button label="Add Key" label_selected="Adicionar chave" name="WLAddKey"/> - <button label="Apagar chave" label_selected="Apagar chave" name="WLDeleteKey"/> - <text name="WLCurKeyFrameText"> + <button font="SansSerifSmall" width="96" left="546" label="Adicionar chave" label_selected="Adicionar chave" name="WLAddKey"/> + <button font="SansSerifSmall" width="96" left="546" label="Apagar chave" label_selected="Apagar chave" name="WLDeleteKey"/> + <text name="WLCurKeyFrameText" width="190" left="17"> Configurações de Quadro-chave: </text> <text name="WLCurKeyTimeText"> @@ -47,7 +47,7 @@ <text name="DayCycleText"> Grudar: </text> - <combo_box label="5 minutos" name="WLSnapOptions"/> + <combo_box label="5 minutos" name="WLSnapOptions" width="85"/> <text name="DayCycleText2"> Duração do Ciclo: </text> @@ -59,7 +59,7 @@ </text> <button label="Tocar" label_selected="Tocar" name="WLAnimSky"/> <button label="Pare!" label_selected="Pare" name="WLStopAnimSky"/> - <button label="Usar o horário da Propriedade" label_selected="Ir para o horário da Propriedade" name="WLUseLindenTime"/> + <button width="175" font="SansSerifSmall" label="Usar o horário da Propriedade" label_selected="Ir para o horário da Propriedade" name="WLUseLindenTime"/> <button label="Salvar o Dia teste" label_selected="Salvar o Dia teste" name="WLSaveDayCycle"/> <button label="Carregar o Dia teste" label_selected="Carregar o Dia teste" name="WLLoadDayCycle"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/floater_env_settings.xml b/indra/newview/skins/default/xui/pt/floater_env_settings.xml index b1c85a32b78d24c175ad23000811a04596c3045b..d3ed760551b122bc119d15e489415c7816b603cc 100644 --- a/indra/newview/skins/default/xui/pt/floater_env_settings.xml +++ b/indra/newview/skins/default/xui/pt/floater_env_settings.xml @@ -7,17 +7,19 @@ 12:00 PM </text> <text name="EnvCloudText"> - Cobertura de Nuvens + Cobertura de +Nuvens </text> <text name="EnvWaterColorText"> Cor da água </text> <color_swatch label="" name="EnvWaterColor" tool_tip="Clique para abrir o Editor de cores"/> <text name="EnvWaterFogText"> - Névoa da água + Névoa da +água </text> - <button label="Usar hora da propriedade" name="EnvUseEstateTimeButton"/> - <button label="Céu Avançado" name="EnvAdvancedSkyButton"/> - <button label="Ãgua Avançada" name="EnvAdvancedWaterButton"/> + <button bottom="-144" label="Usar hora da propriedade" name="EnvUseEstateTimeButton" width="155"/> + <button label="Céu Avançado" name="EnvAdvancedSkyButton" width="155" left="167"/> + <button label="Ãgua Avançada" name="EnvAdvancedWaterButton" width="155" left="326"/> <button label="?" name="EnvSettingsHelpButton"/> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_inspect.xml b/indra/newview/skins/default/xui/pt/floater_inspect.xml index f3d4b0f33f06dbdeea6350b7c6fb9eb514e2abcd..f3c23f008e610ed1f349bb3ea3c553272f4f2151 100644 --- a/indra/newview/skins/default/xui/pt/floater_inspect.xml +++ b/indra/newview/skins/default/xui/pt/floater_inspect.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="inspect" title="Inspecionar Objeto"> +<floater name="inspect" title="Inspecionar Objeto" min_width="450"> <scroll_list name="object_list" tool_tip="Selecione um objeto nesta lista para destacá-lo in-world"> <column label="Nome do Objeto" name="object_name"/> - <column label="Nome do Proprietário" name="owner_name"/> - <column label="Nome do Criador" name="creator_name"/> + <column label="Proprietário" name="owner_name"/> + <column label="Criador" name="creator_name"/> <column label="Data de Criação" name="creation_date"/> </scroll_list> - <button label="Ver Perfil do Proprietário..." label_selected="" name="button owner" tool_tip="Veja o perfil do proprietário do objeto destacado"/> - <button label="Ver perfil do criador..." label_selected="" name="button creator" tool_tip="Veja o perfil do criador original do objeto destacado"/> + <button width="185" label="Ver Perfil do Proprietário..." label_selected="" name="button owner" tool_tip="Veja o perfil do proprietário do objeto destacado"/> + <button width="165" left="205" label="Ver perfil do criador..." label_selected="" name="button creator" tool_tip="Veja o perfil do criador original do objeto destacado"/> </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 634e23665002a92b00f49c9bcf390240a4c6cb5c..83df449ae6fdf0d3627190d4a9872aecd700aa54 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 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Inventory Finder" title="itens_de_inventário_recentes"> +<floater name="Inventory Finder" title="itens_de_inventário_recentes" width="165"> <check_box label="Animação" name="check_animation"/> <check_box label="Cartões de chamadas" name="check_calling_card"/> <check_box label="Roupas" name="check_clothing"/> @@ -13,9 +13,9 @@ <check_box label="Fotos" name="check_snapshot"/> <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="Desde o Logoff" name="check_since_logoff"/> - <text length="1" name="- OR -" type="string"> + <check_box label="Sempre mostrar as pastas" name="check_show_empty" left="3"/> + <check_box label="Desde o Logoff" name="check_since_logoff" left="3"/> + <text name="- OR -"> - OU - </text> <spinner label="Horas Atrás" name="spin_hours_ago"/> diff --git a/indra/newview/skins/default/xui/pt/floater_joystick.xml b/indra/newview/skins/default/xui/pt/floater_joystick.xml index 6c2e4a51444a9d09150a0b30def212dfb9f01ac0..ac7b7fd02a0c8a4c6de55442f4208524e86364f7 100644 --- a/indra/newview/skins/default/xui/pt/floater_joystick.xml +++ b/indra/newview/skins/default/xui/pt/floater_joystick.xml @@ -1,30 +1,23 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Joystick" title="Configuração do Joystick"> - <check_box name="enable_joystick"> - Habilitar Joystick: - </check_box> - <spinner label="Mapeamento do eixo X" name="JoystickAxis1"/> - <spinner label="Mapeamento do eixo Y" name="JoystickAxis2"/> - <spinner label="Mapeamento do Eixo Z" name="JoystickAxis0"/> - <spinner label="Mapeamento da Elevação" name="JoystickAxis4"/> - <spinner label="Mapeamento da Guinada" name="JoystickAxis5"/> - <spinner label="Mapeamento da Rolagem" name="JoystickAxis3"/> - <spinner label="Mapeamento do Zoom" name="JoystickAxis6"/> - <check_box label="Zoom Direto" name="ZoomDirect"/> + <check_box name="enable_joystick" label="Habilitar Joystick:"/> + <text left="135" name="joystick_type" width="360"/> + <spinner label="Mapeamento: eixo X" name="JoystickAxis1" label_width="124" width="164"/> + <spinner label="Mapeamento: eixo Y" name="JoystickAxis2" label_width="124" width="164"/> + <spinner label="Mapeamento: eixo Z" name="JoystickAxis0" label_width="124" width="164"/> + <spinner label="Mapeamento: Elevação" name="JoystickAxis4" label_width="124" width="164"/> + <spinner label="Mapeamento: Guinada" name="JoystickAxis5" label_width="124" width="164"/> + <spinner label="Mapeamento: Rolagem" name="JoystickAxis3" label_width="124" width="164"/> + <spinner label="Mapeamento: Zoom" name="JoystickAxis6" label_width="124" width="164"/> + <check_box label="Zoom Direto" name="ZoomDirect" left="194"/> <check_box label="Cursor 3D" name="Cursor3D"/> <check_box label="NÃvel Automático" name="AutoLeveling"/> <text name="Control Modes:"> Modos de Controle: </text> - <check_box name="JoystickAvatarEnabled"> - Avatar - </check_box> - <check_box name="JoystickBuildEnabled"> - Construir - </check_box> - <check_box name="JoystickFlycamEnabled"> - Camera aérea - </check_box> + <check_box name="JoystickAvatarEnabled" label="Avatar"/> + <check_box name="JoystickBuildEnabled" left="192" label="Construir"/> + <check_box name="JoystickFlycamEnabled" label="Camera aérea"/> <text name="XScale"> Escala X </text> @@ -34,13 +27,13 @@ <text name="ZScale"> Escala Z </text> - <text name="PitchScale"> + <text name="PitchScale" left="3" width="115"> Escala de Elevação </text> - <text name="YawScale"> + <text name="YawScale" left="3" width="115"> Escala da Guinada </text> - <text name="RollScale"> + <text name="RollScale" left="3" width="115"> Escala de Rolagem </text> <text name="XDeadZone"> @@ -52,14 +45,14 @@ <text name="ZDeadZone"> Zona Morta Z </text> - <text name="PitchDeadZone"> - Zona Morta da Elevação + <text name="PitchDeadZone" left="3" width="115"> + Zona Morta: Elevação </text> - <text name="YawDeadZone"> - Zona Morta da Guinada + <text name="YawDeadZone" left="3" width="115"> + Zona Morta: Guinada </text> - <text name="RollDeadZone"> - Zona Morta de Rolagem + <text name="RollDeadZone" left="3" width="115"> + Zona Morta: Rolagem </text> <text name="Feathering"> Alisar @@ -67,18 +60,20 @@ <text name="ZoomScale2"> Escala de Zoom </text> - <text name="ZoomDeadZone"> + <text name="ZoomDeadZone" width="110" left="4"> Zona Morta de Zoom </text> - <button label="Padrões do Navegador Espacial" name="SpaceNavigatorDefaults"/> + <button label="Padrões do SpaceNavigator" name="SpaceNavigatorDefaults" font="SansSerifSmall"/> <button label="OK" label_selected="OK" name="ok_btn"/> <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/> - <string name="JoystickMonitor"> - Monitor do Joystick - </string> - <string name="Axis"> - Eixo [NUM] - </string> + <stat_view label="Monitor do Joystick" name="axis_view"> + <stat_bar label="Eixo 0" name="axis0"/> + <stat_bar label="Eixo 1" name="axis1"/> + <stat_bar label="Eixo 2" name="axis2"/> + <stat_bar label="Eixo 3" name="axis3"/> + <stat_bar label="Eixo 4" name="axis4"/> + <stat_bar label="Eixo 5" name="axis5"/> + </stat_view> <string name="NoDevice"> nenhum dispositivo detectado </string> diff --git a/indra/newview/skins/default/xui/pt/floater_lagmeter.xml b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml index 9dbad7099e86707b04a5c608da157f46684f246f..6657641992b75677c38671826cb690855cdb66d1 100644 --- a/indra/newview/skins/default/xui/pt/floater_lagmeter.xml +++ b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml @@ -1,24 +1,27 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_lagmeter" title="Medidor de Atraso"> <button label="" label_selected="" name="client_lagmeter" tool_tip="Status de atraso no Cliente"/> + <text left="30" name="client_lag_cause" right="-10" /> + <text left="30" name="network_lag_cause" right="-10" /> + <text left="30" name="server_lag_cause" right="-32" /> <text name="client"> Cliente: </text> - <text name="client_text"> + <text name="client_text" font="SansSerifSmall"> Normal </text> <button label="" label_selected="" name="network_lagmeter" tool_tip="Status de atraso na rede"/> <text name="network"> Rede: </text> - <text name="network_text"> + <text name="network_text" font="SansSerifSmall"> Normal </text> <button label="" label_selected="" name="server_lagmeter" tool_tip="Status de atraso no servidor"/> <text name="server"> Servidor: </text> - <text name="server_text"> + <text name="server_text" font="SansSerifSmall"> Normal </text> <button label="?" name="server_help"/> @@ -117,10 +120,10 @@ 20 </string> <string name="server_frame_time_critical_msg"> - Taxa de quadros do simulador abaixo de [SERVER_FRAME_RATE_CRITICAL] + Taxa de quadros abaixo de [SERVER_FRAME_RATE_CRITICAL] </string> <string name="server_frame_time_warning_msg"> - Taxa de quadros do simulador entre [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING] + Taxa de quadros entre [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING] </string> <string name="server_frame_time_normal_msg"> Normal diff --git a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml index 1a640c9793df4a1abf8e07681da6bd10abcd0f20..4734d665efb092e2e656754ff642d6f3c58d5d59 100644 --- a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml @@ -7,7 +7,7 @@ <column label="Ãrea" name="area"/> </scroll_list> <button label="Teletransporte" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para o centro do terreno."/> - <button label="Mostrar no mapa" label_selected="Mostrar no mapa" name="Show on Map" tool_tip="Mostrar esse terreno no mapa do mundo."/> + <button width="130" label="Mostrar no mapa" label_selected="Mostrar no mapa" name="Show on Map" tool_tip="Mostrar esse terreno no mapa do mundo."/> <text name="contrib_label"> Contribuições para os seus grupos: </text> @@ -15,22 +15,22 @@ <column label="Grupo" name="group"/> <column label="Ãrea" name="area"/> </scroll_list> - <text name="allowed_label"> + <text name="allowed_label" width="380"> Propriedades de terreno permitidas com o plano de pagamento atual: </text> - <text name="allowed_text"> + <text name="allowed_text" left_delta="390"> [AREA] m² </text> <text name="current_label"> Propriedades de terrenos atuais: </text> - <text name="current_text"> + <text name="current_text" left_delta="390"> [AREA] m² </text> <text name="available_label"> DisponÃvel para compra de terras: </text> - <text name="available_text"> + <text name="available_text" left_delta="390"> [AREA] m² </text> <string name="area_string"> diff --git a/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml index af45fa5873ef00b32622cd7240b11b2b44e0b726..d2654de5898e477122032c4c1001395f096382ae 100644 --- a/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml +++ b/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml @@ -2,7 +2,7 @@ <floater name="script ed float" title="Script: Novo Script"> <button label="Resetar" label_selected="Resetar" name="Reset"/> <check_box label="Correndo" name="running"/> - <check_box label="Mono" name="mono"/> + <check_box label="Mono" name="mono" left="86"/> <string name="not_allowed"> Você não tem permissão para visualizar este script. </string> diff --git a/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml b/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml index e7e4a22937424e5d8ea259e9ef05d57090ea4408..4f60ef23a61de207dae2dadfaa8ad2d44a5762d8 100644 --- a/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="script ed float" title="LSL Wiki"> <check_box label="Seguir o Cursor" name="lock_check" /> - <combo_box label="Bloquear" name="history_combo" /> - <button label="Anterior" name="back_btn" /> + <combo_box label="Bloquear" name="history_combo" left_delta="120" width="70"/> + <button label="Anterior" name="back_btn" left_delta="75"/> <button label="Posterior" name="fwd_btn" /> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_map.xml b/indra/newview/skins/default/xui/pt/floater_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..eb55560a1ef5ebcfa86a7003e6f7130d3e447b0b --- /dev/null +++ b/indra/newview/skins/default/xui/pt/floater_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Map"> + <floater.string name="mini_map_north"> + N + </floater.string> + <floater.string name="mini_map_east"> + L + </floater.string> + <floater.string name="mini_map_west"> + O + </floater.string> + <floater.string name="mini_map_south"> + S + </floater.string> + <floater.string name="mini_map_southeast"> + SE + </floater.string> + <floater.string name="mini_map_northeast"> + NE + </floater.string> + <floater.string name="mini_map_southwest"> + SO + </floater.string> + <floater.string name="mini_map_northwest"> + NO + </floater.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="L" name="floater_map_east" text="L"> + L + </text> + <text label="O" name="floater_map_west" text="O"> + O + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SO" name="floater_map_southwest" text="SO"> + SO + </text> + <text label="NO" name="floater_map_northwest" text="NO"> + NO + </text> +</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_moveview.xml b/indra/newview/skins/default/xui/pt/floater_moveview.xml index fde1c164544701faea0c8b48e3020bf15c36cb2b..996a974254f655274a97ca4a84b691823181e8f4 100644 --- a/indra/newview/skins/default/xui/pt/floater_moveview.xml +++ b/indra/newview/skins/default/xui/pt/floater_moveview.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move floater" title=""> +<floater name="move_floater"> +<panel name="panel_actions"> <button label="" label_selected="" name="turn left btn" tool_tip="Virar à esquerda"/> <button label="" label_selected="" name="turn right btn" tool_tip="Virar à direita"/> <button label="" label_selected="" name="move up btn" tool_tip="Pular ou Voar"/> @@ -8,4 +9,5 @@ <joystick_slide name="slide right btn" tool_tip="Mover para a direita"/> <joystick_turn name="forward btn" tool_tip="Mover para a frente."/> <joystick_turn name="backward btn" tool_tip="Mover para trás"/> +</panel> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_mute_object.xml b/indra/newview/skins/default/xui/pt/floater_mute_object.xml index d967f527aed0ecda20ef6702401dcfad4dc8be1b..7ec0051a7d5e0157bd57ff2a8bde2f5469478dfd 100644 --- a/indra/newview/skins/default/xui/pt/floater_mute_object.xml +++ b/indra/newview/skins/default/xui/pt/floater_mute_object.xml @@ -1,11 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="mute by name" title="Silenciar objeto pelo nome"> <text name="message"> - Silenciar pelo nome afeta apenas conversa de objeto e MI, não sons. Você deve digitar o nome exato do objeto. + Silenciar pelo nome afeta apenas conversa de objeto e MI, +não sons. Você deve digitar o nome exato do objeto. </text> <line_editor name="object_name"> Nome do objeto </line_editor> - <button label="Ok" name="OK"/> + <button label="OK" name="OK"/> <button label="Cancelar" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_openobject.xml b/indra/newview/skins/default/xui/pt/floater_openobject.xml index 78fe3398be743e571dab39c265cf2605b4f6928a..d3b72b4b18a961dd664f542ec12f9c0366390506 100644 --- a/indra/newview/skins/default/xui/pt/floater_openobject.xml +++ b/indra/newview/skins/default/xui/pt/floater_openobject.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="objectcontents" title="Conteúdo do objeto"> - <text length="1" name="object_name" type="string"> + <text name="object_name"> [DESC]: </text> <button label="Copiar para Inventário" label_selected="Copiar para Inventário" name="copy_to_inventory_button" width="132"/> diff --git a/indra/newview/skins/default/xui/pt/floater_pay.xml b/indra/newview/skins/default/xui/pt/floater_pay.xml index 6b094d07f6f2e0085b2a5544778ef669fa052f11..187df8fd18d5b824739b3e1e7ee4acc31cbc88c2 100644 --- a/indra/newview/skins/default/xui/pt/floater_pay.xml +++ b/indra/newview/skins/default/xui/pt/floater_pay.xml @@ -6,16 +6,16 @@ <button label="L$20" label_selected="L$20" name="fastpay 20" /> <button label="Pagar" label_selected="Pagar" name="pay btn" /> <button label="Cancelar" label_selected="Cancelar" name="cancel btn" /> - <text type="string" length="1" name="payee_label" width="110" left="5"> + <text name="payee_label" width="110" left="5"> Pagar residente: </text> - <text type="string" length="1" name="payee_name" left="110"> + <text name="payee_name" left="115"> [FIRST] [LAST] </text> - <text type="string" length="1" name="fastpay text" width="120" halign="left"> + <text name="fastpay text" width="120" halign="left"> Pagamento rápido: </text> - <text type="string" length="1" name="amount text" left="4" > + <text name="amount text" left="4" > Quantia: </text> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_pay_object.xml b/indra/newview/skins/default/xui/pt/floater_pay_object.xml index ad76cf805c032967ccda07289075d00ce1ed63c7..3a3dd9e52e244f0cfd0b1b8803df16cf31766434 100644 --- a/indra/newview/skins/default/xui/pt/floater_pay_object.xml +++ b/indra/newview/skins/default/xui/pt/floater_pay_object.xml @@ -1,24 +1,24 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Give Money" title=""> - <text type="string" length="1" name="payee_group" width="100" halign="left"> + <text name="payee_group" width="100" halign="left"> Pagar Grupo: </text> - <text type="string" length="1" name="payee_resident" width="120" halign="left" > + <text name="payee_resident" width="120" halign="left" > Pagar residente: </text> - <text type="string" length="1" name="payee_name" left="105"> + <text name="payee_name" left="105"> [FIRST] [LAST] </text> - <text type="string" length="1" name="object_name_label" left="5" width="95" halign="left"> + <text name="object_name_label" left="5" width="95" halign="left"> Via objeto: </text> - <text type="string" length="1" name="object_name_text" left="105" > + <text name="object_name_text" left="105" > ... </text> - <text type="string" length="1" name="fastpay text" width="115" halign="left"> + <text name="fastpay text" width="115" halign="left"> Pagamento Rápido: </text> - <text type="string" length="1" name="amount text" left="5" halign="left"> + <text name="amount text" left="5" halign="left"> Quantia: </text> <button label="L$1" label_selected="L$1" name="fastpay 1" left="125" width="70"/> diff --git a/indra/newview/skins/default/xui/pt/floater_preferences.xml b/indra/newview/skins/default/xui/pt/floater_preferences.xml index eb28e997130ec1846d0b30fae822d55aed3938d3..0e9ef768b5ad9e7f9734da997e1bb20277ac0040 100644 --- a/indra/newview/skins/default/xui/pt/floater_preferences.xml +++ b/indra/newview/skins/default/xui/pt/floater_preferences.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Preferences" title="Preferências"> +<floater name="Preferences" title="Preferências" min_width="332" width="628"> <button label="OK" label_selected="OK" name="OK"/> <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> <button label="Aplicar" label_selected="Aplicar" name="Apply"/> <button label="Sobre" label_selected="Sobre" name="About..."/> <button label="Ajuda" label_selected="Ajuda" name="Help"/> + <tab_container name="pref core" tab_width="128" width="628" /> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_preview_animation.xml b/indra/newview/skins/default/xui/pt/floater_preview_animation.xml index f9b590b8c2e07ce4f8ad2d9822d6b7a91c1fa19f..26ca8f87e0bb59e18959c53e908edce5ff9e3fe7 100644 --- a/indra/newview/skins/default/xui/pt/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/pt/floater_preview_animation.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview_anim"> - <text length="1" name="desc txt" type="string"> + <text name="desc txt"> Descrição: </text> <button label="Executar in World" label_selected="Parar" left="20" name="Anim play btn" tool_tip="Executar esta animação para que outros vejam." width="131"/> diff --git a/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml b/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml index e7d31442924511f01dd67882a3a8d3dd4ceed493..e0a133d8ab6483ec465591c17a7e29284b9baffc 100644 --- a/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview notecard" title="Nota:"> <button label="Salvar" label_selected="Salvar" name="Save"/> - <text length="1" name="desc txt" type="string"> + <text name="desc txt"> Descrição: </text> - <text_editor length="1" name="Notecard Editor" type="string"> + <text_editor name="Notecard Editor"> Carregando... </text_editor> <string name="no_object"> diff --git a/indra/newview/skins/default/xui/pt/floater_preview_sound.xml b/indra/newview/skins/default/xui/pt/floater_preview_sound.xml index b61508480d7487804c8858671a154e536603737e..3dd2f84f9111c47f2ea3e10c235ef6dd4424357f 100644 --- a/indra/newview/skins/default/xui/pt/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/pt/floater_preview_sound.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="preview_sound"> - <text length="1" name="desc txt" type="string"> + <text name="desc txt"> Descrição: </text> - <button label="Executar in-World" label_selected="Executar in-World" name="Sound play btn" tool_tip="Executar este som para que todos possam ouvi-lo."/> - <button label="Executar Localmente" label_selected="Executar Localmente" name="Sound audition btn" tool_tip="Executar este som somente para você ouvir."/> + <button left_delta="-132" label="Executar in-World" label_selected="Executar in-World" name="Sound play btn" tool_tip="Executar este som para que todos possam ouvi-lo."/> + <button width="135" left="152" label="Executar Localmente" label_selected="Executar Localmente" name="Sound audition btn" tool_tip="Executar este som somente para você ouvir."/> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_preview_texture.xml b/indra/newview/skins/default/xui/pt/floater_preview_texture.xml index 43f8497cbd9e26a4c57419869ed9485b89a27fbf..72bc42fa19b7121b635d778e82edeaca9a763913 100644 --- a/indra/newview/skins/default/xui/pt/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/pt/floater_preview_texture.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview_texture"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Descrição: </text> - <text type="string" length="1" name="dimensions"> + <text name="dimensions"> Dimensões: [WIDTH] x [HEIGHT] </text> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_report_abuse.xml b/indra/newview/skins/default/xui/pt/floater_report_abuse.xml index 79dcf7649433e28dc2fd19e19c74477c6c1e8d46..51d7ef8190b39d2f0ea7849ad2f81c8634faa266 100644 --- a/indra/newview/skins/default/xui/pt/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/pt/floater_report_abuse.xml @@ -39,9 +39,7 @@ <combo_box.item name="Select_category" label="Selecionar categoria"/> <combo_box.item name="Age__Age_play" label="Idade > Idade no jogo"/> <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Idade > Residente adulto no Second Life Jovem"/> - <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life"> - Idade > Residente menor de idade fora do Second Life Teen - </combo_item> + <combo_box.item name="Age__Underage_resident_outside_of_Teen_Second_Life" label="Idade > Residente menor de idade fora do Second Life Teen"/> <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Assalto > Sandbox de combate / área não segura"/> <combo_box.item name="Assault__Safe_area" label="Assalto > Ãrea segura"/> <combo_box.item name="Assault__Weapons_testing_sandbox" label="Assalto > Testando armas em sandbox"/> @@ -66,12 +64,8 @@ <combo_box.item name="Harassment__Verbal_abuse" label="Perturbação > Abuso verbal"/> <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indecência > Conteúdo ou conduta amplamente ofensivos"/> <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indecência > Nome de avatar inapropriado"/> - <combo_item name="Indecency__Mature_content_in_PG_region"> - Indecência > Conduta ou conteúdo inapropriados numa região PG - </combo_item> - <combo_item name="Indecency__Inappropriate_content_in_Mature_region"> - Indecência > Conduta ou conteúdo inapropriados numa região Mature - </combo_item> + <combo_box.item name="Indecency__Mature_content_in_PG_region" label="Indecência > Conduta ou conteúdo inapropriados numa região PG"/> + <combo_box.item name="Indecency__Inappropriate_content_in_Mature_region" label="Indecência > Conduta ou conteúdo inapropriados numa região Mature"/> <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Violação de propriedade intelectual > Remoção de Conteúdo"/> <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Violação de Propriedade intelectual > Cópia Ilegal ou Aproveitar-se de Permissões"/> <combo_box.item name="Intolerance" label="Intolerância"/> diff --git a/indra/newview/skins/default/xui/pt/floater_script_preview.xml b/indra/newview/skins/default/xui/pt/floater_script_preview.xml index d014e040a2208890153c684ec49c44924c26dfbf..2a7680565f5c417eac0836d62a9f323398d10a95 100644 --- a/indra/newview/skins/default/xui/pt/floater_script_preview.xml +++ b/indra/newview/skins/default/xui/pt/floater_script_preview.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="preview lsl text" title="Script: Rotation Script"> - <text type="string" length="1" name="desc txt"> + <text name="desc txt"> Descrição: </text> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_script_search.xml b/indra/newview/skins/default/xui/pt/floater_script_search.xml index aaf1ea433930c098f6f60d46daad577cb128ff8b..c904c0f816f05fbd20db046e3ee1285aea256262 100644 --- a/indra/newview/skins/default/xui/pt/floater_script_search.xml +++ b/indra/newview/skins/default/xui/pt/floater_script_search.xml @@ -1,13 +1,15 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="script search" title="Busca de Script"> - <check_box label="Não diferenciar Maiúsculas de Minúsculas" name="case_text"/> - <button label="Buscar" label_selected="Buscar" name="search_btn"/> - <button label="Substituir" label_selected="Substituir" name="replace_btn"/> - <button label="Substituir Tudo" label_selected="Substituir Tudo" name="replace_all_btn"/> - <text length="1" name="txt" type="string"> +<floater name="script search" title="Busca de Script" width="320"> + <check_box label="Não diferenciar Maiúsculas de Minúsculas" name="case_text" left="75"/> + <button label="Buscar" label_selected="Buscar" name="search_btn" width="85"/> + <button label="Substituir" label_selected="Substituir" name="replace_btn" left="100" width="85"/> + <button label="Substituir Tudo" label_selected="Substituir Tudo" name="replace_all_btn" left="190" width="122"/> + <text name="txt" width="65"> Buscar </text> - <text length="1" name="txt2" type="string"> + <text name="txt2" width="65"> Substituir </text> + <line_editor left="75" name="search_text" width="240" /> + <line_editor left="75" name="replace_text" width="240" /> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_snapshot.xml b/indra/newview/skins/default/xui/pt/floater_snapshot.xml index 2f6efd49986e05d2d314b9a026cb54a5b5ccddef..a924706cb9903ae47f36398ea74690c69571f054 100644 --- a/indra/newview/skins/default/xui/pt/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/pt/floater_snapshot.xml @@ -15,12 +15,8 @@ <button label="Enviar" name="send_btn"/> <button label="Salvar (L$[AMOUNT])" name="upload_btn"/> <flyout_button label="Salvar" name="save_btn" tool_tip="Salvar imagem em um arquivo"> - <flyout_button.item name="save_item"> - Salvar - </flyout_button.item> - <flyout_button.item name="saveas_item"> - Salvar como... - </flyout_button.item> + <flyout_button.item name="save_item" label="Salvar"/> + <flyout_button.item name="saveas_item" label="Salvar como..."/> </flyout_button> <button label="Cancelar" name="discard_btn"/> <button label="Mais >" name="more_btn" tool_tip="Opções Avançadas"/> diff --git a/indra/newview/skins/default/xui/pt/floater_telehub.xml b/indra/newview/skins/default/xui/pt/floater_telehub.xml index f2634be852467ad7b54e9830fb62629b89b8bbae..11886c7cabf096ec73bbbad1227050663c61965f 100644 --- a/indra/newview/skins/default/xui/pt/floater_telehub.xml +++ b/indra/newview/skins/default/xui/pt/floater_telehub.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="telehub" title="Telehub"> +<floater name="telehub" title="Telehub" min_height="310" height="310" width="286"> <text name="status_text_connected"> Telehub conectado ao objeto [OBJECT] </text> @@ -14,15 +14,19 @@ </text> <button label="Conectar Telehub" name="connect_btn"/> <button label="Desconectar" name="disconnect_btn"/> - <text name="spawn_points_text"> + <text name="spawn_points_text" width="265"> Pontos de Nascimento (posições, não objetos): </text> - <button label="Adicionar Nascimento" name="add_spawn_point_btn"/> - <button label="Remover Nascimento" name="remove_spawn_point_btn"/> + <scroll_list name="spawn_points_list" width="265" /> + <button width="135" label="Adicionar Nascimento" name="add_spawn_point_btn"/> + <button width="130" label="Remover Nascimento" name="remove_spawn_point_btn" left="150"/> <text name="spawn_point_help"> - Selecione um objeto e clique Adicionar para especificar -a posição. Em seguida, você pode mover ou apagar o objeto. + Selecione um objeto e clique Adicionar para +especificar a posição. +Em seguida, você pode mover ou apagar o objeto. As posições são relativas ao centro do telehub. -Selecione um item na lista para mostrar a posição in-world. + +Selecione um item na lista para mostrar a posição +in-world. </text> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml index 3fd0d6103e80f2aef7dedc45a4675b717628f494..784540a48e6701785392f03c4f478691bf2f984f 100644 --- a/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml @@ -3,10 +3,10 @@ <string name="choose_picture"> Clique para escolher uma imagem </string> - <text length="1" name="Multiple" type="string"> + <text name="Multiple"> Multiplo </text> - <text length="1" name="unknown" type="string"> + <text name="unknown"> Dimensões: [DIMENSIONS] </text> <button label="Padrão" label_selected="Padrão" name="Default"/> diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml index 9a3d14c0ea816acb12f5647549cf4f9fa262e927..7302c1c8f8cd37db4a65d0d36df8404df9c7e66c 100644 --- a/indra/newview/skins/default/xui/pt/floater_tools.xml +++ b/indra/newview/skins/default/xui/pt/floater_tools.xml @@ -1,40 +1,43 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="toolbox floater" title=""> +<floater name="toolbox floater" title="" short_title="Construir" width="288"> <button label="" label_selected="" name="button focus" tool_tip="Foco"/> <button label="" label_selected="" name="button move" tool_tip="Mover"/> <button label="" label_selected="" name="button edit" tool_tip="Editar"/> <button label="" label_selected="" name="button create" tool_tip="Criar"/> <button label="" label_selected="" name="button land" tool_tip="Terra"/> - <check_box label="Zoom" name="radio zoom"/> - <check_box label="Órbita (Ctrl)" name="radio orbit"/> - <check_box label="Pan (Ctrl-Shift)" name="radio pan"/> - <check_box label="Mover" name="radio move"/> - <check_box label="Suspender (Ctrl)" name="radio lift"/> - <check_box label="Girar (Ctrl-Shift)" name="radio spin"/> - <check_box label="Posição" name="radio position"/> - <check_box label="Rotacionar (Ctrl)" name="radio rotate"/> - <check_box label="Esticar (Ctrl-Shift)" name="radio stretch"/> - <check_box label="Selecionar Textura" name="radio select face"/> + <radio_group name="focus_radio_group"> + <radio_item label="Zoom" name="radio zoom"/> + <radio_item label="Órbita (Ctrl)" name="radio orbit"/> + <radio_item label="Pan (Ctrl-Shift)" name="radio pan"/> + </radio_group> + <radio_group name="move_radio_group"> + <radio_item label="Mover" name="radio move"/> + <radio_item label="Suspender (Ctrl)" name="radio lift"/> + <radio_item label="Girar (Ctrl-Shift)" name="radio spin"/> + </radio_group> + <radio_group name="edit_radio_group"> + <radio_item label="Posição" name="radio position"/> + <radio_item label="Rotacionar (Ctrl)" name="radio rotate"/> + <radio_item label="Esticar (Ctrl-Shift)" name="radio stretch"/> + <radio_item label="Selecionar Textura" name="radio select face"/> + </radio_group> <check_box label="Editar partes unidas" name="checkbox edit linked parts"/> <text name="text ruler mode"> Régua: </text> <combo_box name="combobox grid mode"> - <combo_item name="World"> - Mundo - </combo_item> - <combo_item name="Local"> - Local - </combo_item> - <combo_item name="Reference"> - Referência - </combo_item> + <combo_box.item name="World" label="Mundo" + /> + <combo_box.item name="Local" label="Local" + /> + <combo_box.item name="Reference" label="Referência" + /> </combo_box> <check_box label="Esticar ambos os lados" name="checkbox uniform"/> <check_box label="Esticar Texturas" name="checkbox stretch textures"/> <check_box label="Usar Grade" name="checkbox snap to grid"/> <button label="Opções..." label_selected="Opções..." name="Options..."/> - <text name="text status"> + <text name="text status" width="280"> Arraste para mover, shift+Arrastar para Copiar </text> <button label="" label_selected="" name="ToolCube" tool_tip="Cubo"/> @@ -56,13 +59,15 @@ <check_box label="Copiar selecionado" name="checkbox copy selection"/> <check_box label="Centro" name="checkbox copy centers"/> <check_box label="Rotacionar" name="checkbox copy rotates"/> - <check_box label="Selecionar Terra" name="radio select land"/> - <check_box label="Aplainar" name="radio flatten"/> - <check_box label="Subir" name="radio raise"/> - <check_box label="Abaixar" name="radio lower"/> - <check_box label="Suavizar" name="radio smooth"/> - <check_box label="Endurecer" name="radio noise"/> - <check_box label="Reverter" name="radio revert"/> + <radio_group name="land_radio_group"> + <radio_item label="Selecionar Terra" name="radio select land"/> + <radio_item label="Aplainar" name="radio flatten"/> + <radio_item label="Subir" name="radio raise"/> + <radio_item label="Abaixar" name="radio lower"/> + <radio_item label="Suavizar" name="radio smooth"/> + <radio_item label="Endurecer" name="radio noise"/> + <radio_item label="Reverter" name="radio revert"/> + </radio_group> <button label="Aplicar" label_selected="Aplicar" name="button apply to selection" tool_tip="Modificar Terra Selecionada"/> <text name="Bulldozer:"> Escavadeira: @@ -73,13 +78,13 @@ <text name="Strength:"> Força </text> - <text name="obj_count"> + <text name="obj_count" left="134"> Objetos selecionados: [COUNT] </text> - <text name="prim_count"> + <text name="prim_count" left="134"> primitivas: [COUNT] </text> - <tab_container name="Object Info Tabs"> + <tab_container name="Object Info Tabs" tab_max_width="60" tab_min_width="30" width="288"> <panel label="Comum" name="General"> <text name="Name:"> Nome: @@ -105,15 +110,13 @@ Grupo: </text> <text name="Group Name Proxy"> - Os Lindens + The Lindens </text> <button label="Definir..." label_selected="Definir..." name="button set group"/> <text name="Permissions:"> Permissões: </text> - <text name="perm_modify"> - Você pode modificar este objeto. - </text> + <check_box label="Compartilhar com o Grupo" name="checkbox share with group" tool_tip="Permite que todos os membros do grupo definido compartilhem e usem suas permissões para este objeto. Você precisa Doar ao Grupo para habilitar as restrições de função."/> <string name="text deed continued"> Doar... @@ -129,54 +132,40 @@ <text name="Cost"> Preço: L$ </text> - <radio_group name="sale type"> - <radio_item name="Original"> - Original - </radio_item> - <radio_item name="Copy"> - Cópia - </radio_item> - <radio_item name="Contents"> - Conteúdo - </radio_item> - </radio_group> - <text name="Next owner can:"> - Próximo Proprietário pode: - </text> - <check_box label="Modificar" name="checkbox next owner can modify"/> - <check_box label="Copiar" name="checkbox next owner can copy"/> - <check_box label="Revender/Dar" name="checkbox next owner can transfer"/> - <text name="label click action"> + <combo_box name="sale type"> + <combo_box.item label="Cópia" name="Copy"/> + <combo_box.item label="Conteúdo" name="Contents"/> + <combo_box.item label="Original" name="Original"/> + </combo_box> + + <text name="label click action" width="220"> Quando clicado com o botão esquerdo: </text> - <combo_box name="clickaction"> - <combo_item name="Touch/grab(default)"> - Tocar/Pegar (padrão) - </combo_item> - <combo_item name="Sitonobject"> - Sentar no objeto - </combo_item> - <combo_item name="Buyobject"> - Comprar objeto - </combo_item> - <combo_item name="Payobject"> - Pagar Objeto - </combo_item> - <combo_item name="Open"> - Abrir - </combo_item> - <combo_item name="Play"> - Executar a mÃdia do lote - </combo_item> - <combo_item name="Opemmedia"> - Abrir a mÃdia do lote - </combo_item> + <combo_box name="clickaction" width="192"> + <combo_box.item name="Touch/grab(default)" label="Tocar/Pegar (padrão)" + /> + <combo_box.item name="Sitonobject" label="Sentar no objeto" + /> + <combo_box.item name="Buyobject" label="Comprar objeto" + /> + <combo_box.item name="Payobject" label="Pagar Objeto" + /> + <combo_box.item name="Open" label="Abrir" + /> + <combo_box.item name="Play" label="Executar a mÃdia do lote" + /> + <combo_box.item name="Opemmedia" label="Abrir a mÃdia do lote" + /> </combo_box> + <panel name="perms_build"> + <text name="perm_modify"> + Você pode modificar este objeto. + </text> <text name="B:"> B: </text> <text name="O:"> - O; + O: </text> <text name="G:"> G: @@ -190,6 +179,13 @@ <text name="F:"> F: </text> + <text name="Next owner can:"> + Próximo Proprietário pode: + </text> + <check_box label="Modificar" name="checkbox next owner can modify"/> + <check_box label="Copiar" name="checkbox next owner can copy" left_delta="80"/> + <check_box name="checkbox next owner can transfer" left_delta="67"/> + </panel> <string name="text modify info 1"> Você pode modificar este objeto. </string> @@ -222,7 +218,7 @@ </string> </panel> <panel label="Objeto" name="Object"> - <text name="select_single"> + <text name="select_single" width="272"> Selecione apenas uma primitiva para editar os parâmetros. </text> <text name="edit_object"> @@ -254,62 +250,47 @@ Material </text> <combo_box name="material"> - <combo_item name="Stone"> - Pedra - </combo_item> - <combo_item name="Metal"> - Metal - </combo_item> - <combo_item name="Glass"> - Vidro - </combo_item> - <combo_item name="Wood"> - Madeira - </combo_item> - <combo_item name="Flesh"> - Carne - </combo_item> - <combo_item name="Plastic"> - Plástico - </combo_item> - <combo_item name="Rubber"> - Couro - </combo_item> + <combo_box.item name="Stone" label="Pedra" + /> + <combo_box.item name="Metal" label="Metal" + /> + <combo_box.item name="Glass" label="Vidro" + /> + <combo_box.item name="Wood" label="Madeira" + /> + <combo_box.item name="Flesh" label="Carne" + /> + <combo_box.item name="Plastic" label="Plástico" + /> + <combo_box.item name="Rubber" label="Couro" + /> </combo_box> <text name="label basetype"> Forma básica </text> <combo_box name="comboBaseType"> - <combo_item name="Box"> - Caixa - </combo_item> - <combo_item name="Cylinder"> - Cilindro - </combo_item> - <combo_item name="Prism"> - Prisma - </combo_item> - <combo_item name="Sphere"> - Esfera - </combo_item> - <combo_item name="Torus"> - Toróide - </combo_item> - <combo_item name="Tube"> - Tubo - </combo_item> - <combo_item name="Ring"> - Anel - </combo_item> - <combo_item name="Sculpted"> - Esculpida - </combo_item> + <combo_box.item name="Box" label="Caixa" + /> + <combo_box.item name="Cylinder" label="Cilindro" + /> + <combo_box.item name="Prism" label="Prisma" + /> + <combo_box.item name="Sphere" label="Esfera" + /> + <combo_box.item name="Torus" label="Toróide" + /> + <combo_box.item name="Tube" label="Tubo" + /> + <combo_box.item name="Ring" label="Anel" + /> + <combo_box.item name="Sculpted" label="Esculpida" + /> </combo_box> <text name="text cut"> - Recorte inicial e final + Recorte InÃcio e final </text> - <spinner label="B" name="cut begin"/> - <spinner label="E" name="cut end"/> + <spinner label="I" name="cut begin"/> + <spinner label="F" name="cut end"/> <text name="text hollow"> Vazio </text> @@ -320,24 +301,20 @@ Forma Vazia </text> <combo_box name="hole"> - <combo_item name="Default"> - Padrão - </combo_item> - <combo_item name="Circle"> - Circulo - </combo_item> - <combo_item name="Square"> - Quadrado - </combo_item> - <combo_item name="Triangle"> - Triâgulo - </combo_item> + <combo_box.item name="Default" label="Padrão" + /> + <combo_box.item name="Circle" label="Circulo" + /> + <combo_box.item name="Square" label="Quadrado" + /> + <combo_box.item name="Triangle" label="Triâgulo" + /> </combo_box> <text name="text twist"> Torcer no InÃcio e final </text> - <spinner label="B" name="Twist Begin"/> - <spinner label="E" name="Twist End"/> + <spinner label="I" name="Twist Begin"/> + <spinner label="F" name="Twist End"/> <text name="scale_taper"> Afinar </text> @@ -351,17 +328,17 @@ </text> <spinner label="X" name="Shear X"/> <spinner label="Y" name="Shear Y"/> - <text name="advanced_cut"> - Perfil Recortado no InÃcio e Final + <text name="advanced_cut" width="156"> + Perfil Recortado no InÃcio e fim </text> <text name="advanced_dimple"> - Cova InÃcio e Final + Cova InÃcio e final </text> <text name="advanced_slice"> - Pedaço InÃcio (B) e Fim (E) + Pedaço InÃcio e fim </text> - <spinner label="B" name="Path Limit Begin"/> - <spinner label="E" name="Path Limit End"/> + <spinner label="I" name="Path Limit Begin"/> + <spinner label="F" name="Path Limit End"/> <text name="text taper2"> Afinar </text> @@ -380,25 +357,20 @@ Tipo costura </text> <combo_box name="sculpt type control"> - <combo_item name="None"> - (nenhum) - </combo_item> - <combo_item name="Sphere"> - Esfera - </combo_item> - <combo_item name="Torus"> - Toróide - </combo_item> - <combo_item name="Plane"> - Plano - </combo_item> - <combo_item name="Cylinder"> - Cilindro - </combo_item> + <combo_box.item name="None" label="(nenhum)" + /> + <combo_box.item name="Sphere" label="Esfera" + /> + <combo_box.item name="Torus" label="Toróide" + /> + <combo_box.item name="Plane" label="Plano" + /> + <combo_box.item name="Cylinder" label="Cilindro" + /> </combo_box> </panel> <panel label="Recursos" name="Features"> - <text name="select_single"> + <text name="select_single" width="272"> Selecione apenas uma primitiva para editar suas caracterÃsticas. </text> <text name="edit_object"> @@ -425,7 +397,7 @@ <panel label="Textura" name="Texture"> <texture_picker label="Textura" name="texture control" tool_tip="Clique para escolher uma imagem"/> <color_swatch label="Cor" name="colorswatch" tool_tip="Clique para abrir o Seletor de Cores"/> - <text name="color trans"> + <text name="color trans" width="100"> Transparência % </text> <text name="glow label"> @@ -436,88 +408,64 @@ Mapeamento </text> <combo_box name="combobox texgen"> - <combo_item name="Default"> - Padrão - </combo_item> - <combo_item name="Planar"> - Planar - </combo_item> + <combo_box.item name="Default" label="Padrão" + /> + <combo_box.item name="Planar" label="Planar" + /> </combo_box> <text name="label shininess"> Brilho </text> <combo_box name="combobox shininess"> - <combo_item name="None"> - Nenhum - </combo_item> - <combo_item name="Low"> - Baixo - </combo_item> - <combo_item name="Medium"> - Médio - </combo_item> - <combo_item name="High"> - Alto - </combo_item> + <combo_box.item name="None" label="Nenhum" + /> + <combo_box.item name="Low" label="Baixo" + /> + <combo_box.item name="Medium" label="Médio" + /> + <combo_box.item name="High" label="Alto" + /> </combo_box> <text name="label bumpiness"> Ondulação </text> - <combo_box name="combobox bumpiness"> - <combo_item name="None"> - Nenhum - </combo_item> - <combo_item name="Brightness"> - Claridade - </combo_item> - <combo_item name="Darkness"> - Escuridão - </combo_item> - <combo_item name="woodgrain"> - Granulação - </combo_item> - <combo_item name="bark"> - casca - </combo_item> - <combo_item name="bricks"> - Tijolos - </combo_item> - <combo_item name="checker"> - Caixa - </combo_item> - <combo_item name="concrete"> - Concreto - </combo_item> - <combo_item name="crustytile"> - Encaroçado - </combo_item> - <combo_item name="cutstone"> - Pedra Cortante - </combo_item> - <combo_item name="discs"> - Discos - </combo_item> - <combo_item name="gravel"> - Cascalho - </combo_item> - <combo_item name="petridish"> - Pedrisco - </combo_item> - <combo_item name="siding"> - Revestimento - </combo_item> - <combo_item name="stonetile"> - empedrado - </combo_item> - <combo_item name="stucco"> - Grafiato - </combo_item> - <combo_item name="suction"> - Sulcos - </combo_item> - <combo_item name="weave"> - weave - </combo_item> + <combo_box name="combobox bumpiness" width="100" > + <combo_box.item name="None" label="Nenhum" + /> + <combo_box.item name="Brightness" label="Claridade" + /> + <combo_box.item name="Darkness" label="Escuridão" + /> + <combo_box.item name="woodgrain" label="Granulação" + /> + <combo_box.item name="bark" label="Casca" + /> + <combo_box.item name="bricks" label="Tijolos" + /> + <combo_box.item name="checker" label="Caixa" + /> + <combo_box.item name="concrete" label="Concreto" + /> + <combo_box.item name="crustytile" label="Encaroçado" + /> + <combo_box.item name="cutstone" label="Pedra Cortante" + /> + <combo_box.item name="discs" label="Discos" + /> + <combo_box.item name="gravel" label="Cascalho" + /> + <combo_box.item name="petridish" label="Pedrisco" + /> + <combo_box.item name="siding" label="Revestimento" + /> + <combo_box.item name="stonetile" label="Empedrado" + /> + <combo_box.item name="stucco" label="Grafiato" + /> + <combo_box.item name="suction" label="Sulcos" + /> + <combo_box.item name="weave" label="Weave" + /> </combo_box> <text name="tex scale"> Repetir por Face @@ -552,6 +500,7 @@ <panel label="Conteúdo" name="Contents"> <button label="Novo Script" label_selected="Novo Script..." name="button new script"/> <button label="Permissões..." name="button permissions"/> + <panel name="ContentsInventory" width="272" /> </panel> </tab_container> <panel name="land info panel"> @@ -566,7 +515,7 @@ </text> <button label="Sobre a Terra..." label_selected="Sobre a Terra..." name="button about land"/> <check_box label="Mostrar donos" name="checkbox show owners" tool_tip="Colorir lotes de acordo com seus donos"/> - <button label="?" label_selected="?" name="button show owners help"/> + <button label="?" label_selected="?" name="button show owners help" left_delta="100"/> <text name="label_parcel_modify"> Modificar Lote </text> @@ -578,43 +527,43 @@ <button label="Comprar Terra..." label_selected="Comprar Terra.." name="button buy land"/> <button label="Abandonar Terra..." label_selected="Abandonar Terra..." name="button abandon land"/> </panel> - <string name="status_rotate"> + <floater.string name="status_rotate"> Arrastar as bandas coloridas para girar o objeto - </string> - <string name="status_scale"> + </floater.string> + <floater.string name="status_scale"> Clicar e arrastar para esticar o lado selecionado - </string> - <string name="status_move"> + </floater.string> + <floater.string name="status_move"> Arrastar para mover, Shift-arrastar para copiar - </string> - <string name="status_modifyland"> + </floater.string> + <floater.string name="status_modifyland"> Clicar e reter para modificar a terra - </string> - <string name="status_camera"> + </floater.string> + <floater.string name="status_camera"> Clicar e arrastar para mudar a vista - </string> - <string name="status_grab"> + </floater.string> + <floater.string name="status_grab"> Arrastar para mover, Ctrl para levantar, Ctrl-Shift para rotacionar - </string> - <string name="status_place"> + </floater.string> + <floater.string name="status_place"> Clique no mundo para construir - </string> - <string name="status_selectland"> + </floater.string> + <floater.string name="status_selectland"> Clicar e arrastar para selecionar a terra - </string> - <string name="grid_screen_text"> + </floater.string> + <floater.string name="grid_screen_text"> Tela - </string> - <string name="grid_local_text"> + </floater.string> + <floater.string name="grid_local_text"> Local - </string> - <string name="grid_world_text"> + </floater.string> + <floater.string name="grid_world_text"> Mundo - </string> - <string name="grid_reference_text"> + </floater.string> + <floater.string name="grid_reference_text"> Referência - </string> - <string name="grid_attachment_text"> + </floater.string> + <floater.string name="grid_attachment_text"> Anexo - </string> + </floater.string> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_top_objects.xml b/indra/newview/skins/default/xui/pt/floater_top_objects.xml index 694100297df5abe26fe3cf64290845374161dba1..cd94b51b16771ff4f1ade9654a60fcbee492e4c5 100644 --- a/indra/newview/skins/default/xui/pt/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/pt/floater_top_objects.xml @@ -19,14 +19,17 @@ Nome do Objeto: </text> <button label="Filtro" name="filter_object_btn"/> - <text name="owner_name_text"> + <text name="owner_name_text" width="130"> Nome do Proprietário: </text> + <line_editor font="SansSerifSmall" left="140" name="id_editor" width="280"/> + <line_editor font="SansSerifSmall" left="140" name="object_name_editor" width="280"/> + <line_editor font="SansSerifSmall" left="140" name="owner_name_editor" width="280"/> <button label="Filtro" name="filter_owner_btn"/> - <button label="Retornar Selecionado" name="return_selected_btn"/> - <button label="Retornar Tudo" name="return_all_btn"/> - <button label="Desabilitar Selecionado" name="disable_selected_btn"/> - <button label="Desabilitar Tudo" name="disable_all_btn"/> + <button label="Retornar Selecionado" name="return_selected_btn" width="170"/> + <button label="Retornar Tudo" name="return_all_btn" left="190"/> + <button label="Desabilitar Selecionado" name="disable_selected_btn" width="170"/> + <button label="Desabilitar Tudo" name="disable_all_btn" left="190"/> <button label="Atualizar" name="refresh_btn"/> <string name="top_scripts_title"> Principais Scripts diff --git a/indra/newview/skins/default/xui/pt/floater_url_entry.xml b/indra/newview/skins/default/xui/pt/floater_url_entry.xml index a4ae5e2e3dcd388d9885756d480b01c7894c8142..48af8de363807b09c2a07ba9b883e2ee3c977b85 100644 --- a/indra/newview/skins/default/xui/pt/floater_url_entry.xml +++ b/indra/newview/skins/default/xui/pt/floater_url_entry.xml @@ -3,6 +3,7 @@ <text name="media_label"> URL da MÃdia: </text> + <combo_box left="100" name="media_entry" width="360" /> <button label="OK" name="ok_btn"/> <button label="Cancelar" name="cancel_btn"/> <button label="Limpar" name="clear_btn"/> diff --git a/indra/newview/skins/default/xui/pt/floater_water.xml b/indra/newview/skins/default/xui/pt/floater_water.xml index 007eb3f6bab0ea0a5ee035d105f26c76f68038a6..ceb4414058e55bac0ba5c2d29ccb82c801187077 100644 --- a/indra/newview/skins/default/xui/pt/floater_water.xml +++ b/indra/newview/skins/default/xui/pt/floater_water.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Water Floater" title="Editor de Ãgua Avançado"> - <text name="KeyFramePresetsText"> + <text name="KeyFramePresetsText" width="154"> Pré-configurações da Ãgua: </text> + <combo_box left_delta="160" name="WaterPresetsCombo" width="150" /> <button label="Novo" label_selected="Novo" name="WaterNewPreset"/> <button label="Salvar" label_selected="Salvar" name="WaterSavePreset"/> <button label="Deletar" label_selected="Deletar" name="WaterDeletePreset"/> @@ -16,15 +17,15 @@ <text name="WaterFogDensText"> Expoente da Densidade de névoa </text> - <button label="?" name="WaterFogDensityHelp"/> + <button label="?" name="WaterFogDensityHelp" left="209"/> <text name="WaterUnderWaterFogModText"> Modificador da névoa Subaquática </text> - <button label="?" name="WaterUnderWaterFogModHelp"/> + <button label="?" name="WaterUnderWaterFogModHelp" left="209"/> <text name="BDensText"> Escala da Marola de Reflexão </text> - <button label="?" name="WaterNormalScaleHelp"/> + <button label="?" name="WaterNormalScaleHelp" left="415"/> <text name="BHText2"> 1 </text> @@ -37,29 +38,29 @@ <text name="HDText"> Escala de Fresnel </text> - <button label="?" name="WaterFresnelScaleHelp"/> + <button label="?" name="WaterFresnelScaleHelp" left="415"/> <text name="FresnelOffsetText"> Deslocamento de Fresnel </text> - <button label="?" name="WaterFresnelOffsetHelp"/> + <button label="?" name="WaterFresnelOffsetHelp" left="415"/> <text name="DensMultText"> Refratar a Escala para Cima </text> - <button label="?" name="WaterScaleAboveHelp"/> + <button label="?" name="WaterScaleAboveHelp" left="640"/> <text name="WaterScaleBelowText"> Refratar a Escala para Baixo </text> - <button label="?" name="WaterScaleBelowHelp"/> + <button label="?" name="WaterScaleBelowHelp" left="640"/> <text name="MaxAltText"> Multiplicador de Difusão </text> - <button label="?" name="WaterBlurMultiplierHelp"/> + <button label="?" name="WaterBlurMultiplierHelp" left="640"/> </panel> <panel label="Imagem" name="Waves"> <text name="BHText"> Direção da Onda Maior </text> - <button label="?" name="WaterWave1Help"/> + <button label="?" name="WaterWave1Help" left="170"/> <text name="WaterWave1DirXText"> X </text> @@ -69,7 +70,7 @@ <text name="BHText2"> Direção da Onda Pequena </text> - <button label="?" name="WaterWave2Help"/> + <button label="?" name="WaterWave2Help" left="170"/> <text name="WaterWave2DirXText"> X </text> diff --git a/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml index 3f08b4b992300cee1509cbc8dc3ea0b154afcc39..2b2c669a185f995c89d7f520571423ac17401bdd 100644 --- a/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml +++ b/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml @@ -2,7 +2,7 @@ <floater name="modal container" title=" "> <button label="Salvar" label_selected="Salvar" name="Save"/> <button label="Cancelar" label_selected="Cancelar" name="Cancel"/> - <text length="1" name="Save item as:" type="string"> + <text name="Save item as:"> Salvar item como: </text> <line_editor name="name ed"> diff --git a/indra/newview/skins/default/xui/pt/floater_windlight_options.xml b/indra/newview/skins/default/xui/pt/floater_windlight_options.xml index f86775c770ca52b86e126e9c414b562323c2e1b1..0de8bd22f8bf2d14f39e6ba4dcf010c1e975463e 100644 --- a/indra/newview/skins/default/xui/pt/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/pt/floater_windlight_options.xml @@ -1,12 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="WindLight floater" title="Editor de Céu Avançado"> - <text name="KeyFramePresetsText"> + <text name="KeyFramePresetsText" width="130"> Pré-definições de Céu: </text> + <combo_box left_delta="130" name="WLPresetsCombo"/> <button label="Novo" label_selected="Novo" name="WLNewPreset"/> - <button label="Salvar" label_selected="Salvar" name="WLSavePreset"/> - <button label="Deletar" label_selected="Deletar" name="WLDeletePreset"/> - <button label="Editor de Ciclos do Dia" label_selected="Editor de Ciclos do Dia" name="WLDayCycleMenuButton" width="150" left_delta="95" /> + <button label="Salvar" label_selected="Salvar" name="WLSavePreset" left_delta="72"/> + <button label="Deletar" label_selected="Deletar" name="WLDeletePreset" left_delta="72"/> + <button label="Editor de Ciclos do Dia" label_selected="Editor de Ciclos do Dia" name="WLDayCycleMenuButton" width="150" left_delta="84" /> <tab_container name="WindLight Tabs"> <panel label="Atmosfera" name="Atmosphere"> <text name="BHText"> @@ -52,15 +53,15 @@ <text name="DensMultText"> Multiplicador de Densidade </text> - <button label="?" name="WLDensityMultHelp"/> + <button label="?" name="WLDensityMultHelp" left="635"/> <text name="WLDistanceMultText"> Multiplicador de Distância </text> - <button label="?" name="WLDistanceMultHelp"/> + <button label="?" name="WLDistanceMultHelp" left="635"/> <text name="MaxAltText"> Altitude Máxima </text> - <button label="?" name="WLMaxAltitudeHelp"/> + <button label="?" name="WLMaxAltitudeHelp" left="635"/> </panel> <panel label="Iluminação" name="Lighting"> <text name="SLCText"> @@ -156,10 +157,10 @@ Escala da Nuvem </text> <button label="?" name="WLCloudScaleHelp"/> - <text name="WLCloudDetailText"> - Detalhe da Nuvem (XY/Densidade) + <text name="WLCloudDetailText" font="SansSerifSmall"> + Detalhe da Nuvem (XY/Densidade) </text> - <button label="?" name="WLCloudDetailHelp"/> + <button label="?" name="WLCloudDetailHelp" left="421"/> <text name="BHText8"> X </text> @@ -180,7 +181,7 @@ <button label="?" name="WLCloudScrollYHelp"/> <check_box label="Travar" name="WLCloudLockY"/> <check_box label="Desenhar Nuvens Clássicas" name="DrawClassicClouds"/> - <button label="?" name="WLClassicCloudsHelp"/> + <button label="?" name="WLClassicCloudsHelp" left="645"/> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/pt/floater_world_map.xml b/indra/newview/skins/default/xui/pt/floater_world_map.xml index bc4b5462ef6226fc08343833d305a93cf57189ea..056d12152029b696a3fcccdb136f9eefadb04089 100644 --- a/indra/newview/skins/default/xui/pt/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pt/floater_world_map.xml @@ -28,10 +28,10 @@ <check_box label="Mature" name="event_mature_chk"/> <check_box label="Adult" name="event_adult_chk"/> <combo_box label="Amigos Conectados" name="friend combo" tool_tip="Amigos para mostrar no Mapa"> - <combo_box.item name="none_selected" label="Amigos Conectados" /> + <combo_box.item name="item1" label="Amigos Conectados" /> </combo_box> <combo_box label="Landmarks" name="landmark combo" tool_tip="Landmark para mostrar no Mapa"> - <combo_box.item name="none_selected" label="Landmarks" /> + <combo_box.item name="item1" label="Landmarks" /> </combo_box> <line_editor label="Procurar por nome de região" name="location" tool_tip="Digite o nome de uma Região"/> <button label="Procurar" name="DoSearch" tool_tip="Procurar por região"/> diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml index a303b383487c27175b1fa39eb2795bf684861c34..411f45a650f7ec24c847388d3cdb7cfa432b3f05 100644 --- a/indra/newview/skins/default/xui/pt/notifications.xml +++ b/indra/newview/skins/default/xui/pt/notifications.xml @@ -974,7 +974,7 @@ Oferecer amizade para [NAME]? Oferecer amizade para [NAME]? <form name="form"> - <input name="message" type="text"> + <input name="message"> Quer ser meu amigo? </input> <button name="Offer" text="Oferecer"/> @@ -1368,7 +1368,7 @@ Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas i <notification name="KickUser"> Expulsar este usuário com qual mensagem? <form name="form"> - <input name="message" type="text"> + <input name="message"> Um administrador desligou você. </input> <button name="OK" text="OK"/> @@ -1378,7 +1378,7 @@ Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas i <notification name="KickAllUsers"> Expulsar todo mundo atualmente do grid com qual mensagem? <form name="form"> - <input name="message" type="text"> + <input name="message"> Um administrador deslogou você. </input> <button name="OK" text="OK"/> @@ -1388,7 +1388,7 @@ Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas i <notification name="FreezeUser"> Paralise este usuário com qual mensagem? <form name="form"> - <input name="message" type="text"> + <input name="message"> Você foi congelado. Você não pode se mover ou conversar. Um administrador irá contatá-lo via mensagem instantânea (MI). </input> <button name="OK" text="OK"/> @@ -1398,7 +1398,7 @@ Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas i <notification name="UnFreezeUser"> Liberar este usuário com qual mensagem? <form name="form"> - <input name="message" type="text"> + <input name="message"> Você não está mais congelado. </input> <button name="OK" text="OK"/> @@ -1408,7 +1408,7 @@ Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas i <notification name="OfferTeleport"> Oferecer um teletransporte para sua localização com qual mensagem? <form name="form"> - <input name="message" type="text"> + <input name="message"> Junte-se a mim em [REGION] </input> <button name="OK" text="OK"/> @@ -1418,7 +1418,7 @@ Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas i <notification name="OfferTeleportFromGod"> God user convocou para a sua localização? <form name="form"> - <input name="message" type="text"> + <input name="message"> Junte-se a mim em [REGION] </input> <button name="OK" text="OK"/> @@ -1432,7 +1432,7 @@ Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas i <notification label="Mensagem para todos na sua Propriedade" name="MessageEstate"> Digite um breve anúncio que será enviado para todos que estejam atualmente na sua propriedade. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Cancelar"/> </form> @@ -1654,7 +1654,7 @@ Publicar este classificado agora por L$ [AMOUNT]? <notification label="Mensagem para todos desta Região" name="MessageRegion"> Digite um breve aviso que será enviado para todos nesta região. <form name="form"> - <input name="message" type="text"/> + <input name="message"/> <button name="OK" text="OK"/> <button name="Cancel" text="Cancelar"/> </form> @@ -1936,14 +1936,14 @@ Eles serão copiados para o seu inventário. Você tem certeza de que deseja prosseguir com esta compra? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Confirmar"/> </notification> - <notification name="ConfirmPurchasePassword" type="password"> + <notification name="ConfirmPurchasePassword"> Esta transação fará: [ACTION] Você tem certeza de que deseja prosseguir com esta compra? Por favor, re-insira sua senha e clique 'Confirmar Compra'. <form name="form"> - <input name="message" type="password"/> + <input name="message"/> <button name="ConfirmPurchase" text="Confirmar Compra"/> <button name="Cancel" text="Cancelar"/> </form> @@ -2305,7 +2305,7 @@ Similar ao azimute. <notification name="NewSkyPreset"> Me dê o nome para o novo céu. <form name="form"> - <input name="message" type="text"> + <input name="message"> Novo padrão </input> <button name="OK" text="OK"/> @@ -2318,7 +2318,7 @@ Similar ao azimute. <notification name="NewWaterPreset"> Dê o nome para o novo padrão de água. <form name="form"> - <input name="message" type="text"> + <input name="message"> Nova Apresentação </input> <button name="OK" text="OK"/> diff --git a/indra/newview/skins/default/xui/pt/panel_friends.xml b/indra/newview/skins/default/xui/pt/panel_friends.xml index afd7b79eaa7aad1f54ab46e095bed895430e0d05..d430d637ad0f5f179a5d735f182793568a7472ae 100644 --- a/indra/newview/skins/default/xui/pt/panel_friends.xml +++ b/indra/newview/skins/default/xui/pt/panel_friends.xml @@ -11,10 +11,10 @@ <column name="icon_edit_mine" tool_tip="Amigo pode editar, apagar ou pegar seus objetos"/> <column name="icon_edit_theirs" tool_tip="Você pode editar os objetos deste amigo"/> </scroll_list> - <button label="MI/Chamar" name="im_btn" tool_tip="Abrir sessão de Mensagem Instantânea"/> - <button label="Perfil" name="profile_btn" tool_tip="Mostrar foto, grupos e outras informações"/> - <button label="Teletransporte..." name="offer_teleport_btn" tool_tip="Oferecer a este amigo o teletransporte para sua localização atual"/> - <button label="Pagar..." name="pay_btn" tool_tip="Dar Linden dólares (L$) a este amigo"/> - <button label="Remover..." name="remove_btn" tool_tip="Remover esta pessoa de sua lista de amigos"/> - <button label="Adicionar..." name="add_btn" tool_tip="Oferecer amizade a um residente"/> + <button width="86" label="MI/Chamar" name="im_btn" tool_tip="Abrir sessão de Mensagem Instantânea"/> + <button width="86" label="Perfil" name="profile_btn" tool_tip="Mostrar foto, grupos e outras informações"/> + <button width="86" label="Teletransp..." name="offer_teleport_btn" tool_tip="Oferecer a este amigo o teletransporte para sua localização atual"/> + <button width="86" label="Pagar..." name="pay_btn" tool_tip="Dar Linden dólares (L$) a este amigo"/> + <button width="86" label="Remover..." name="remove_btn" tool_tip="Remover esta pessoa de sua lista de amigos"/> + <button width="86" label="Adicionar..." name="add_btn" tool_tip="Oferecer amizade a um residente"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_group_general.xml b/indra/newview/skins/default/xui/pt/panel_group_general.xml index f4941eabd9796557214d5433b976b616bff1bad4..bdaa0e72f5d1a599c5ca6e57a76d8c14bad6dbd3 100644 --- a/indra/newview/skins/default/xui/pt/panel_group_general.xml +++ b/indra/newview/skins/default/xui/pt/panel_group_general.xml @@ -14,7 +14,7 @@ <text name="prepend_founded_by"> Fundado por: </text> - <text name="founder_name"> + <text name="founder_name" left_delta="74" > (espera) </text> <text name="group_charter_label"> @@ -33,9 +33,9 @@ (Proprietários são mostrados em negrito ) </text> <name_list name="visible_members"> - <column label="Nome do membro" name="name"/> - <column label="TÃtulo" name="title"/> - <column label="Último login" name="online"/> + <name_list.columns label="Nome do membro" name="name"/> + <name_list.columns label="TÃtulo" name="title"/> + <name_list.columns label="Último login" name="online"/> </name_list> <text name="text_group_preferences"> Preferências do Grupo @@ -44,17 +44,11 @@ <check_box label="Mostre na busca" name="show_in_group_list" tool_tip="Deixe as pessoas verem este grupo nos resultados de busca."/> <check_box label="Adesão aberta" name="open_enrollement" tool_tip="Definir se este grupo permite que novos membros entrem sem serem convidados"/> <check_box label="Taxa de adesão: L$" name="check_enrollment_fee" tool_tip="Define se é necessária uma taxa de adesão para se unir ao grupo."/> - <spinner name="spin_enrollment_fee" tool_tip="Os novos membros devem pagar esta taxa para se unir ao grupo quando a Taxa de Adesão está marcada."/> - <combo_box name="group_mature_check" tool_tip="Define se a informação do seu grupo é considerada mature."> - <combo_item name="select_mature"> - - Selecionar Maturidade - - </combo_item> - <combo_item name="mature"> - Conteúdo Mature - </combo_item> - <combo_item name="pg"> - Conteúdo PG - </combo_item> + <spinner width="60" left_delta="120" name="spin_enrollment_fee" tool_tip="Os novos membros devem pagar esta taxa para se unir ao grupo quando a Taxa de Adesão está marcada."/> + <combo_box width="170" name="group_mature_check" tool_tip="Define se a informação do seu grupo é considerada mature."> + <combo_box.item name="select_mature" label="- Selecionar Maturidade -"/> + <combo_box.item name="mature" label="Conteúdo Mature"/> + <combo_box.item name="pg" label="Conteúdo PG"/> </combo_box> <panel name="title_container"> <text name="active_title_label"> diff --git a/indra/newview/skins/default/xui/pt/panel_group_invite.xml b/indra/newview/skins/default/xui/pt/panel_group_invite.xml index e9c7bab3dbea24377387b608a5d51d4a1c39a645..a02a17139b0b39b77b6b307ea4b98fdb72ae43c5 100644 --- a/indra/newview/skins/default/xui/pt/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/pt/panel_group_invite.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Convidar um membro" name="invite_panel"> - <text name="help_text"> +<panel label="Convidar um membro" name="invite_panel" width="224"> + <text name="help_text" width="214"> Voce pode selecionar vários residentes -para convidar ao seu grupo. Clique 'Abrir -Seletor de Residente' para iniciar. +para convidar ao seu grupo. Clique +'Abrir Seletor de Residente' para iniciar. </text> <button label="Abrir Seletor de Residente" name="add_button" tool_tip=""/> <name_list name="invitee_list" tool_tip="Mantenha apertada a tecla Control e clique nos nomes dos residentes para uma seleção múltipla."/> - <button label="Remove Selected from List" name="remove_button" tool_tip="Remove os residentes selecionados acima da lista de convite."/> + <button left_delta="-7" width="214" label="Remove os selecionados acima da lista" name="remove_button" tool_tip="Remove os residentes selecionados acima da lista de convite."/> <text name="role_text"> Escolha que Função atribuir a eles: </text> diff --git a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml index f5e96869d7c1dc4987b1be10c891aa91c7fd1da4..103da6d67dacaa420cf9a0adf58d3d327d211a9f 100644 --- a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml @@ -13,7 +13,7 @@ <string name="loading_txt"> Carregando... </string> - <text name="group_land_heading"> + <text name="group_land_heading" width="250"> Terra percentente ao grupo </text> <scroll_list name="group_parcel_list"> @@ -22,7 +22,7 @@ <column label="Tipo" name="type"/> <column label="Ãrea" name="area"/> </scroll_list> - <button label="Mostrar no Mapa" label_selected="Mostrar no Mapa" name="map_button"/> + <button label="Mostrar no Mapa" label_selected="Mostrar no Mapa" name="map_button" left="282" width="130"/> <text name="total_contributed_land_label"> Contribuição Total: </text> @@ -51,7 +51,8 @@ m² ([AMOUNT] máxima) </text> <text name="group_over_limit_text"> - Membros do grupo precisam contribuir com mais créditos de Terra para garantir a terra em uso. + Membros do grupo precisam contribuir com mais créditos de Terra para +garantir a terra em uso. </text> <text name="group_money_heading"> Grupo L$ @@ -66,8 +67,8 @@ <text_editor name="group_money_details_text"> Computando... </text_editor> - <button label="< Cedo" label_selected="< Cedo" name="earlier_details_button" tool_tip="Voltar no Tempo"/> - <button label="Tarde >" label_selected="Tarde >" name="later_details_button" tool_tip="Adiantar o Tempo"/> + <button label="< Mais Cedo" label_selected="< Cedo" name="earlier_details_button" tool_tip="Voltar no Tempo"/> + <button label="Mais Tarde >" label_selected="Tarde >" name="later_details_button" tool_tip="Adiantar o Tempo"/> </panel> <panel label="Vendas" name="group_money_sales_tab"> <text_editor name="group_money_sales_text"> diff --git a/indra/newview/skins/default/xui/pt/panel_group_notices.xml b/indra/newview/skins/default/xui/pt/panel_group_notices.xml index 1285a24aced86d9d76a08a84360413ac2c5c3a8a..d5c0f01e33b249332f8da17616105676ff5edadf 100644 --- a/indra/newview/skins/default/xui/pt/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/pt/panel_group_notices.xml @@ -1,11 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="NotÃcias" name="notices_tab"> <text name="help_text"> - As notÃcias são uma maneira rápida de -comunicar-se através de um grupo transmitindo uma mensagem e -entregando um item anexo, opcionalmente. As notÃcias vão apenas a membros -do grupo que têm a função habilitada para receber notÃcias. Você pode desligar -NotÃcias na aba Geral. + As notÃcias são uma maneira rápida de comunicar-se através de um grupo transmitindo uma mensagem e entregando um item anexo, opcionalmente. As notÃcias vão apenas a membros do grupo que têm a função habilitada para receber notÃcias. Você pode desligar NotÃcias na aba Geral. </text> <text name="no_notices_text"> Não existem notÃcias anteriores. @@ -15,8 +11,7 @@ NotÃcias na aba Geral. Arquivo de notÃcias do grupo </text> <text name="lbl2"> - As notÃcias são mantidas por 14 dias. Clique na notÃcia abaixo que você deseja ver. -Clique no botão “Atualizar†para verificar se novas notÃcias foram recebidas. + As notÃcias são mantidas por 14 dias. Listas de aviso estão limitadas a 200 por grupo, diariamente. </text> <scroll_list name="notice_list"> @@ -34,22 +29,22 @@ Listas de aviso estão limitadas a 200 por grupo, diariamente. Criar uma notÃcia </text> <text name="lbl2"> - Você deve colocar um assunto para enviar uma notÃcia. Você pode -adicionar um item simples à notÃcia, arrastando-o do seu -Inventário para o painel. Itens anexados devem ser copiáveis -e transferÃveis e você não pode mandar uma pasta. + Você pode adicionar um item simples à notÃcia, arrastando-o do seu Inventário para o painel. Itens anexados devem ser copiáveis e transferÃveis e você não pode mandar uma pasta. </text> - <text name="lbl3"> + <text name="lbl3" left="20"> Assunto: </text> - <text name="lbl4"> + <line_editor name="create_subject" width="251" left_delta="61"/> + <text name="lbl4" left="15" width="60"> Mensagem: </text> - <text name="lbl5"> + <text_editor name="create_message" left_delta="66" width="330"/> + <text name="lbl5" width="68"> Anexo: </text> + <line_editor name="create_inventory_name" width="190" left_delta="74"/> <button label="Remover o anexo" label_selected="Remover o anexo" name="remove_attachment"/> - <button label="Enviar notÃcia" label_selected="Enviar notÃcia" name="send_notice"/> + <button label="Enviar" label_selected="Enviar" name="send_notice"/> <panel name="drop_target" tool_tip="Arraste um item do inventário para dentro da caixa de mensagem para enviá-lo com a notÃcia. Você deve ter permissão para copiar e transferir o objeto, para enviá-lo com a notÃcia."/> </panel> <panel label="Visualizar NotÃcia Anterior" name="panel_view_past_notice"> diff --git a/indra/newview/skins/default/xui/pt/panel_group_roles.xml b/indra/newview/skins/default/xui/pt/panel_group_roles.xml index 32ed839bd8b6d1fb425b063e0313dfb844649538..087cf0c1073b33e90c2ef927daf6085f396504fb 100644 --- a/indra/newview/skins/default/xui/pt/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/pt/panel_group_roles.xml @@ -13,7 +13,8 @@ </text> <text name="static2"> São atribuÃdas funções com habilidades aos membros do grupo. -Estes ajustes podem ser facilmente customizados para uma flexibilidade e organização maiores. +Estes ajustes podem ser facilmente customizados para uma flexibilidade +e organização maiores. </text> </panel> <panel name="roles_header"> @@ -21,12 +22,14 @@ Estes ajustes podem ser facilmente customizados para uma flexibilidade e organiz Funções </text> <text name="role_properties_modifiable"> - Selecionar uma função abaixo. Você pode modificar o nome, a descrição e o tÃtulo do membro. + Selecionar uma função abaixo. Você pode modificar o nome, a descrição +e o tÃtulo do membro. </text> <text name="role_properties_not_modifiable"> - Selecione uma função abaixo para ver suas propriedades, membros e habilidades permitidas. + Selecione uma função abaixo para ver suas propriedades, membros e +habilidades permitidas. </text> - <text name="role_actions_modifiable"> + <text bottom_delta="-28" name="role_actions_modifiable"> Você também pode atribuir habilidades à função. </text> <text name="role_actions_not_modifiable"> @@ -38,28 +41,31 @@ Estes ajustes podem ser facilmente customizados para uma flexibilidade e organiz Habilidades </text> <text name="static2"> - Você pode ver a descrição de uma habilidade e quais funções e membros podem executar essa habilidade. + Você pode ver a descrição de uma habilidade e quais funções e membros +podem executar essa habilidade. </text> </panel> - <tab_container name="roles_tab_container"> - <panel label="Membros" name="members_sub_tab" tool_tip="Membros"> - <button label="Pesquisar" name="search_button"/> - <button label="Mostrar todos" name="show_all_button"/> - <name_list name="member_list"> + <tab_container height="164" name="roles_tab_container"> + <panel height="148" label="Membros" name="members_sub_tab" tool_tip="Membros"> + <line_editor bottom="127" name="search_text"/> + <button label="Pesquisar" name="search_button" width="75"/> + <button label="Mostrar todos" name="show_all_button" left_delta="80"/> + <name_list name="member_list" bottom_delta="-105" height="104" > <column label="Nome do membro" name="name"/> <column label="Tarifa doada" name="donated"/> <column label="Último login" name="online"/> </name_list> - <button label="Convidar Novo Membro ..." name="member_invite"/> + <button label="Convidar Novo Membro..." name="member_invite" width="165"/> <button label="Ejetar do Grupo" name="member_eject"/> <string name="help_text"> Você pode adicionar ou remover as funções designadas aos membros. Selecione vários membros, segurando a tecla Ctrl e clicando em seus nomes. </string> </panel> - <panel label="Funções" name="roles_sub_tab"> - <button label="Busca" name="search_button"/> - <button label="Mostrar todos" name="show_all_button"/> - <scroll_list name="role_list"> + <panel height="148" label="Funções" name="roles_sub_tab"> + <line_editor bottom="127" name="search_text"/> + <button label="Busca" name="search_button" width="75"/> + <button label="Mostrar todos" name="show_all_button" left_delta="80"/> + <scroll_list name="role_list" bottom_delta="-104" height="104"> <column label="Nome da função" name="name"/> <column label="TÃtulo" name="title"/> <column label="Membro" name="members"/> @@ -75,10 +81,11 @@ permitidas que os membros podem executar. Os membros poderão ter um ou mais fun As funções 'todos' e 'donos' são especiais e não podem ser deletadas. </string> </panel> - <panel label="Habilidades" name="actions_sub_tab"> - <button label="Busca" name="search_button"/> - <button label="Mostrar todos" name="show_all_button"/> - <scroll_list name="action_list" tool_tip="Selecione uma habilidade para ver mais detalhes."/> + <panel height="148" label="Habilidades" name="actions_sub_tab"> + <line_editor bottom="127" name="search_text"/> + <button label="Busca" name="search_button" width="75"/> + <button label="Mostrar todos" name="show_all_button" left_delta="80"/> + <scroll_list bottom_delta="-120" height="118" name="action_list" tool_tip="Selecione uma habilidade para ver mais detalhes."/> <string name="help_text"> As habilidades permitem que os membros nas funções façam coisas especÃficas dentro do grupo. Há uma grande variedade de habilidades. diff --git a/indra/newview/skins/default/xui/pt/panel_groups.xml b/indra/newview/skins/default/xui/pt/panel_groups.xml index 8a886ef8b1c7f99446f9aaac690f3802c12ec1b5..aaea1178a639a5d9ea56c1f63d1cda77ba4da59c 100644 --- a/indra/newview/skins/default/xui/pt/panel_groups.xml +++ b/indra/newview/skins/default/xui/pt/panel_groups.xml @@ -1,16 +1,15 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="groups"> - <text name="groupdesc"> + <text name="groupdesc" width="268"> Seu grupo ativo atual es'ta mostrado em negrito. </text> - <text name="groupcount"> + <text name="groupcount" width="300"> Você pertence a [COUNT] grupos (de no máximo [MAX]). -aximo </text> - <button label="MI/Chamada" name="IM" tool_tip="Abrir sessão de Mensagem Instantânea"/> - <button label="Informações" name="Info"/> - <button label="Ativar" name="Activate"/> - <button label="Deixar" name="Leave"/> - <button label="Criar..." name="Create"/> - <button label="Buscar..." name="Search..."/> + <button width="86" label="MI/Chamada" name="IM" tool_tip="Abrir sessão de Mensagem Instantânea"/> + <button width="86" label="Informações" name="Info"/> + <button width="86" label="Ativar" name="Activate"/> + <button width="86" label="Deixar" name="Leave"/> + <button width="86" label="Criar..." name="Create"/> + <button width="86" label="Buscar..." name="Search..."/> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_login.xml b/indra/newview/skins/default/xui/pt/panel_login.xml index 9f9b80912d5a63e73392c282b7611414c2cc4c88..c6f1433440cba378b58a2e78a45d30852cae578b 100644 --- a/indra/newview/skins/default/xui/pt/panel_login.xml +++ b/indra/newview/skins/default/xui/pt/panel_login.xml @@ -15,7 +15,7 @@ <combo_box name="start_location_combo"> <combo_box.item name="MyHome" label="Minha casa" /> <combo_box.item name="MyLastLocation" label="Minha última localização" /> - <combo_box.item name="Typeregionname" label="lt; Digite o nome da região;" /> + <combo_box.item name="Typeregionname" label="< Digite o nome da região >" /> </combo_box> <check_box label="Lembrar senha" name="remember_check"/> <button label="Entrar" label_selected="Entrar" name="connect_btn"/> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml new file mode 100644 index 0000000000000000000000000000000000000000..b53fe515097d2d7bcae380108867f6cdb3153953 --- /dev/null +++ b/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel name="advanced"> + <text name="AspectRatioLabel1" tool_tip="largura / altura"> + Relação de Aspecto: + </text> + <combo_box name="aspect_ratio" tool_tip="largura / altura"> + <combo_box.item label="4:3 (CRT Padrão)" name="item1"/> + <combo_box.item label="5:4 (1280x1024 LCD)" name="item2"/> + <combo_box.item label="8:5 (tela ampla)" name="item3"/> + <combo_box.item label="16:9 (tela ampla)" name="item4"/> + </combo_box> +</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml index b32e1fb3e15560a5113bffd2689e3056548cee47..aa40f97fe38044495461f25815e0a4ad4ff421e7 100644 --- a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat" name="chat"> - <text length="1" name="text_box" type="string"> + <text name="text_box"> Tamanho da Fonte do Chat: </text> @@ -9,45 +9,51 @@ do Chat: <radio_item name="radio2" label="Médio" /> <radio_item name="radio3" label="Grande" /> </radio_group> - <text length="1" name="text_box2" type="string"> - Cor do Chat: - </text> <color_swatch label="Você" name="user"/> + <text name="text_box1"> + Você + </text> <color_swatch label="Outros" name="agent"/> + <text name="text_box2"> + Outros + </text> <color_swatch label="MI" name="im"/> + <text name="text_box3"> + MI + </text> <color_swatch label="Sistema" name="system"/> + <text name="text_box4"> + Sistema + </text> <color_swatch label="Erros" name="script_error"/> + <text name="text_box5"> + Erros + </text> <color_swatch label="Objetos" name="objects"/> + <text name="text_box6"> + Objetos + </text> <color_swatch label="Dono" name="owner"/> + <text name="text_box7"> + Dono + </text> <color_swatch label="Bolha" name="background"/> + <text name="text_box8"> + Bolha + </text> <color_swatch label="URLs" name="links"/> - <text length="1" name="text_box8" type="string"> - Erros de Script: + <text name="text_box9"> + URLs </text> <check_box label="Mostrar Erros de Script e avisos como chat comum" name="script_errors_as_chat"/> - <text length="1" name="text_box3" type="string"> - Console do Chat: - </text> <spinner label="Ocultar Chat depois" label_width="108" name="fade_chat_time" width="160"/> - <text left="310" length="1" name="text_box4" type="string"> - (segundos) - </text> <spinner left="373" name="max_chat_count"/> - <text left="435" length="1" name="text_box5" type="string" width="94"> - (# linhas) - </text> <slider label="Opacidade" name="console_opacity"/> <check_box label="Use a largura total da tela (Precisa reiniciar)" name="chat_full_width_check"/> - <text length="1" name="text_box6" type="string"> - Opções do Chat: - </text> <check_box label="Feche a barra de conversa após pressionar retornar" name="close_chat_on_return_check"/> <check_box label="Teclas de Setas sempre movem o avatar durante a conversa" name="arrow_keys_move_avatar_check"/> <check_box label="Mostrar a hora na conversa local" name="show_timestamps_check"/> <check_box label="Executar animação digitada quando estiver conversando" name="play_typing_animation"/> - <text length="1" name="text_box7" type="string"> - Chat com bolha: - </text> <check_box label="Mostrar bolhas do chat" name="bubble_text_chat"/> <slider label="Opacidade" name="bubble_chat_opacity"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml index d82330cc785da380c6305c857b9bc6b998273c92..e50713c0c8c832f3d1c6dbc5a1e19fa0d5a9e582 100644 --- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml @@ -1,15 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Geral" name="general_panel"> - <radio_group name="default_start_location"> - <radio_item name="MyHome" tool_tip="Como padrão, registrar na minha casa."> - Minha Casa - </radio_item> - <radio_item name="MyLastLocation" tool_tip="Por padrão, registrar na minha última localidade."> - Minha Última Localidade - </radio_item> - </radio_group> + <combo_box name="start_location_combo"> + <combo_box.item name="MyHome" tool_tip="Como padrão, registrar na minha casa." label="Minha Casa"/> + <combo_box.item name="MyLastLocation" tool_tip="Por padrão, registrar na minha última localidade." label="Minha Última Localidade"/> + </combo_box> <check_box label="Mostrar Posição Inicial na Tela de Login" name="show_location_checkbox"/> - <combo_box name="fade_out_combobox" width="166"> + <combo_box name="fade_out_combobox"> <combo_box.item name="Never" label="Nunca"/> <combo_box.item name="Show Temporarily" label="Mostrar Temporariamente"/> <combo_box.item name="Always" label="Sempre"/> @@ -28,84 +24,67 @@ <check_box label="Usar escala independente da resolução" name="ui_auto_scale"/> <spinner label="Tempo para ficar Ausente:" name="afk_timeout_spinner"/> <check_box label="Avisar quando receber ou gastar Linden dollars (L$)" name="notify_money_change_checkbox"/> - <text name="maturity_desired_label" bottom="-312"> + <text name="maturity_desired_label"> Classificação: </text> - <text name="maturity_desired_prompt" bottom="-312"> - Eu quero acessar -conteúdo classificado: + <text name="maturity_desired_prompt"> + Eu quero acessar conteúdo classificado: </text> - <combo_box name="maturity_desired_combobox" bottom="-330" left="278"> - <combo_item name="Desired_Adult"> - PG, Mature e Adult - </combo_item> - <combo_item name="Desired_Mature"> - PG e Mature - </combo_item> - <combo_item name="Desired_PG"> - apenas PG - </combo_item> + <combo_box name="maturity_desired_combobox"> + <combo_box.item name="Desired_Adult" label="PG, Mature e Adult"/> + <combo_box.item name="Desired_Mature" label="PG e Mature"/> + <combo_box.item name="Desired_PG" label="apenas PG"/> </combo_box> - <text name="maturity_desired_textbox" bottom="-324" left="278"> + <text name="maturity_desired_textbox"> apenas PG </text> - <text length="1" name="start_location_textbox" type="string"> + <text name="start_location_textbox"> Posição Inicial: </text> - <text length="1" name="show_names_textbox" type="string"> + <text name="show_names_textbox"> Mostrar Nomes: </text> - <text length="1" name="effects_color_textbox" type="string"> + <text name="effects_color_textbox"> Cores para Meus Efeitos: </text> - <text length="1" name="seconds_textbox" type="string"> + <text name="seconds_textbox"> segundos </text> - <text length="1" name="crash_report_textbox" type="string"> + <text name="crash_report_textbox"> Relatórios de Falhas: </text> <text name="language_textbox"> Linguagem: </text> - <text left_delta="313" length="1" name="language_textbox2" type="string"> + <text name="language_textbox2"> (Precisa de reinÃcio para efetivar) </text> <string name="region_name_prompt"> Digite o nome da Região </string> - <combo_box name="crash_behavior_combobox" width="166"> - <combo_box.item length="1" name="Askbeforesending" type="string" label="Perguntar antes de enviar"/> - <combo_box.item length="1" name="Alwayssend" type="string" label="Sempre enviar"/> - <combo_box.item length="1" name="Neversend" type="string" label="Nunca Enviar"/> + <combo_box name="crash_behavior_combobox"> + <combo_box.item name="Askbeforesending" label="Perguntar antes de enviar"/> + <combo_box.item name="Alwayssend" label="Sempre enviar"/> + <combo_box.item name="Neversend" label="Nunca Enviar"/> </combo_box> - <combo_box name="language_combobox" width="166"> + <combo_box name="language_combobox"> <combo_box.item name="System Default Language" label="Padrão do Sistema"/> <combo_box.item name="English" label="English (Inglês)"/> <combo_box.item name="Danish" label="Dansk (Dinamarquês) - Beta"/> <combo_box.item name="Deutsch(German)" label="Deutsch (Alemão) - Beta"/> <combo_box.item name="Spanish" label="Español (Espanhol) - Beta"/> <combo_box.item name="French" label="Français (Francês) - Beta"/> + <combo_box.item name="Italian" label="Italiano - Beta"/> <combo_box.item name="Hungarian" label="Magyar (Húngaro) - Beta"/> + <combo_box.item name="Dutch" label="Nederlands (Holandês) - Beta"/> <combo_box.item name="Polish" label="Polski (Polonês) - Beta"/> <combo_box.item name="Portugese" label="Português - Beta"/> + <combo_box.item name="Russian" label="РуÑÑкий (Russo) - Beta"/> + <combo_box.item name="Turkish" label="Türkçe (Turco) - Beta"/> + <combo_box.item name="Ukrainian" label="УкраїнÑька (Ucraniano) - Beta"/> <combo_box.item name="Chinese" label="ä¸æ–‡ (简体) (Chinês) - Beta"/> <combo_box.item name="(Japanese)" label="日本語 (Japonês) - Beta"/> <combo_box.item name="(Korean)" label="í•œêµì–´ (Coreano) - Beta"/> - <combo_item name="Italian"> - Italiano - Beta - </combo_item> - <combo_item name="Dutch"> - Nederlands (Holandês) - Beta - </combo_item> - </combo_item> - <combo_item name="Russian"> - РуÑÑкий (Russo) - Beta - </combo_item> - <combo_item name="Turkish"> - Türkçe (Turco) - Beta - </combo_item> - <combo_item name="Ukrainian"> - УкраїнÑька (Ucraniano) - Beta </combo_box> <check_box label="Compartilhar a linguagem com objetos" name="language_is_public" tool_tip="Isto permite que os objetos no mundo conheçam sua linguagem preferida."/> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml index 621e99c9c5713dc4c3cdfa794cea39967bbbc0b8..d7982ab940535334ec247ec3cef9179d009aae77 100644 --- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml @@ -22,10 +22,10 @@ Relação de Aspecto: </text> <combo_box name="aspect_ratio" tool_tip="largura / altura"> - <combo_box.item length="1" name="4:3(StandardCRT)" type="string" label="4:3 (CRT Padrão)" /> - <combo_box.item length="1" name="5:4(1280x1024LCD)" type="string" label="5:4 (1280x1024 LCD)" /> + <combo_box.item name="4:3(StandardCRT)" label="4:3 (CRT Padrão)" /> + <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)" /> <combo_box.item name="8:5(Widescreen)" label="8:5 (tela ampla)" /> - <combo_box.item length="1" name="16:9(Widescreen)" type="string" label="16:9 (tela ampla)" /> + <combo_box.item name="16:9(Widescreen)" label="16:9 (tela ampla)" /> </combo_box> <check_box label="Auto-detectar a relação" name="aspect_auto_detect"/> <text name="HigherText"> @@ -57,6 +57,7 @@ rápido Qualidade </text> <check_box label="Personalizar" left="395" name="CustomSettings"/> + <panel name="CustomGraphics Panel"> <text name="ShadersText"> Sombreadores: </text> @@ -132,12 +133,13 @@ rápido <radio_item name="0" label="Baixo" /> <radio_item name="2" label="Alto" /> </radio_group> + </panel> <button label="Configurações Recomendadas" name="Defaults" width="190" left="110"/> <button label="Opções de Hardware" label_selected="Opções de Hardware" name="GraphicsHardwareButton"/> - <string name="resolution_format"> + <panel.string name="resolution_format"> [RES_X] x [RES_Y] - </string> - <string name="aspect_ratio_text"> + </panel.string> + <panel.string name="aspect_ratio_text"> [NUM]:[DEN] - </string> + </panel.string> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_region_covenant.xml b/indra/newview/skins/default/xui/pt/panel_region_covenant.xml index 6218e4eafbfa06da70c6e02f07561dde1d5abf65..4977a1fac9771b0e47f15e4e370e466ffba2e87b 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_covenant.xml @@ -22,20 +22,22 @@ Última modificação: Quarta, 31 de dezembro de 1969 à s 16:00:00 horas </text> <button label="?" name="covenant_help"/> - <text_editor name="covenant_editor"> + <text_editor name="covenant_editor" bottom="-247" height="162" > Não há nenhuma regra fornecida para esta Propriedade. </text_editor> <button label="Resetar" name="reset_covenant"/> <text bottom="-25" name="covenant_help_text"> - As mudanças das regras serão mostradas em todos os lotes da propriedade. + As mudanças das regras serão mostradas em todos os lotes + da propriedade. </text> - <text name="covenant_instructions"> - Arraste e solte um notecard, para mudar as Regras desta Propriedade. + <text bottom_delta="-36" name="covenant_instructions"> + Arraste e solte um notecard, para mudar as Regras desta + Propriedade. </text> - <text name="region_section_lbl"> + <text bottom_delta="-36" name="region_section_lbl"> Região: </text> - <text bottom_delta="-31" name="region_name_lbl"> + <text name="region_name_lbl"> Nome: </text> <text name="region_name_text"> @@ -72,9 +74,11 @@ Terras compradas na região não poderão ser revendidas. </string> <string name="can_change"> - O terreno comprado nesta região pode ser compartilhado ou subdividido. + O terreno comprado nesta região pode ser compartilhado ou +subdividido. </string> <string name="can_not_change"> - O terreno comprado nesta região não pode ser compartilhado ou subdividido. + O terreno comprado nesta região não pode ser compartilhado +ou subdividido. </string> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_region_debug.xml b/indra/newview/skins/default/xui/pt/panel_region_debug.xml index 93c5d276486c01bc13d90ac55662f38c2eb51813..724df201555f9dd6ffe83f9849c6592d0238320d 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_debug.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_debug.xml @@ -13,7 +13,7 @@ <check_box label="Desabilitar fÃsica" name="disable_physics_check" tool_tip="Desabilitar toda a fÃsÃca nesta região"/> <button label="?" name="disable_physics_help"/> <button label="Aplicar" name="apply_btn"/> - <text name="objret_text_lbl"> + <text name="objret_text_lbl" width="130"> Retornar objeto </text> <text name="resident_text_lbl"> @@ -30,10 +30,10 @@ <check_box label="Retornar apenas aqueles objetos na terra de alguém" name="return_other_land" tool_tip="Retornar apenas objetos que estejam na terra pertencente a alguém"/> <check_box label="Retornar objetos em cada região desta propriedade" name="return_estate_wide" tool_tip="Retornar objetos em todas as regiões que constituem esta propriedade"/> <button label="Retornar" name="return_btn"/> - <button label="Pegar os principais colidentes..." name="top_colliders_btn" tool_tip="Lista dos objetos que experimentam as mais potenciais colisões"/> - <button label="?" name="top_colliders_help"/> - <button label="Pegar Principais Scripts..." name="top_scripts_btn" tool_tip="Lista de objetos gastando mais tempo rodando scripts"/> - <button label="?" name="top_scripts_help"/> + <button width="280" label="Pegar os principais colidentes..." name="top_colliders_btn" tool_tip="Lista dos objetos que experimentam as mais potenciais colisões"/> + <button label="?" name="top_colliders_help" left="297"/> + <button width="280" label="Pegar Principais Scripts..." name="top_scripts_btn" tool_tip="Lista de objetos gastando mais tempo rodando scripts"/> + <button label="?" name="top_scripts_help" left="297"/> <button label="Reiniciar a Região" name="restart_btn" tool_tip="Dar 2 minutos de contagem regressiva e reiniciar a região"/> <button label="?" name="restart_help"/> <button label="Atrasar o Reinicio" name="cancel_restart_btn" tool_tip="Atrasar o reinicio da região por uma hora"/> 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 c236b95ca12969b8a6a9befeccaec8711b80ae66..e62ba85763237c1044dcff4f17cdb8897ccfeb4e 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_estate.xml @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Propriedade" name="Estate"> +<panel name="EstateWrapper"> + <scroll_container name="container1"> + <panel label="Propriedade" name="Estate"> <text name="estate_help_text"> Mudanças nas definições nesta guia irão afetar todas as regiões desta propriedade. @@ -24,9 +26,9 @@ todas as regiões desta propriedade. <check_box label="Permitir acesso público" name="externally_visible_check"/> <button label="?" name="externally_visible_help"/> <text name="Only Allow"> - Acesso restrito a: + Acesso restrito a Residentes... </text> - <check_box label="Residentes com informações de pagamento em arquivo" name="limit_payment" tool_tip="Banir residentes não identificados."/> + <check_box label="com info. de pagamento em arquivo" name="limit_payment" tool_tip="Banir residentes não identificados."/> <check_box label="Adultos com idade verificada" name="limit_age_verified" tool_tip="Banir residentes que não tenham confirmado a sua idade. Ver support.secondlife.com para mais informações."/> <check_box label="Permitir conversa de voz" name="voice_chat_check"/> <button label="?" name="voice_chat_help"/> @@ -66,4 +68,6 @@ todas as regiões desta propriedade. <button label="?" name="ban_resident_help"/> <button label="Remover..." name="remove_banned_avatar_btn"/> <button label="Adicionar..." name="add_banned_avatar_btn"/> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_region_general.xml b/indra/newview/skins/default/xui/pt/panel_region_general.xml index 6873d4ac98f75cdab6563eb728f972e3a5382491..1a06d91aa84e1551dbedfcc5133fea8facd28811 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_general.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_general.xml @@ -40,15 +40,9 @@ Classificação: </text> <combo_box label="Mature" name="access_combo"> - <combo_item name="Adult"> - Adult - </combo_item> - <combo_item name="Mature"> - Mature - </combo_item> - <combo_item name="PG"> - PG - </combo_item> + <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="Mature" name="Mature"/> + <combo_box.item label="PG" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="Aplicar" name="apply_btn"/> diff --git a/indra/newview/skins/default/xui/pt/panel_region_terrain.xml b/indra/newview/skins/default/xui/pt/panel_region_terrain.xml index 9b8fc48fb9a9a49089ed6ea7ff03080529b7cf5b..b9b0e9d90f758eef100d6962ab0569bd0acba5d9 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_terrain.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_terrain.xml @@ -8,9 +8,9 @@ </text> <spinner label="Altura da água" name="water_height_spin"/> <button label="?" name="water_height_help"/> - <spinner label="Limite do aumento do terreno" name="terrain_raise_spin"/> + <spinner label="Limite do aumento do terreno" name="terrain_raise_spin"/> <button label="?" name="terrain_raise_help"/> - <spinner label="Limite mais baixo do terreno" name="terrain_lower_spin"/> + <spinner label="Limite mais baixo do terreno" name="terrain_lower_spin" bottom_delta="-34"/> <button label="?" name="terrain_lower_help"/> <check_box label="Usar o sol da propriedade" name="use_estate_sun_check"/> <button label="?" name="use_estate_sun_help"/> @@ -18,10 +18,10 @@ <button label="?" name="fixed_sun_help"/> <slider label="Fase" name="sun_hour_slider"/> <button label="Aplicar" name="apply_btn"/> - <button label="Download de terreno RAW ..." name="download_raw_btn" tool_tip="Não disponÃvel aos gerentes, somente aos proprietários."/> + <button label="Download de terreno RAW..." name="download_raw_btn" tool_tip="Não disponÃvel aos gerentes, somente aos proprietários."/> <button label="?" name="download_raw_help"/> <button label="Upload de terreno RAW..." name="upload_raw_btn" tool_tip="Não disponÃvel aos gerentes, somente aos proprietários."/> <button label="?" name="upload_raw_help"/> - <button label="Nivelar o terreno" name="bake_terrain_btn" tool_tip="Ajustar terreno atual como o ponto médio para os limites de aumento/decréscimo"/> - <button label="?" name="bake_terrain_help"/> + <button width="170" label="Nivelar o terreno" name="bake_terrain_btn" tool_tip="Ajustar terreno atual como o ponto médio para os limites de aumento/decréscimo"/> + <button left="190" label="?" name="bake_terrain_help"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_region_texture.xml b/indra/newview/skins/default/xui/pt/panel_region_texture.xml index 8d7bdfe97b9adb635eb52f1bd3781d3074c048c3..2fdba798072d0078d703db01a74c367f9bf02fc4 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_texture.xml @@ -1,12 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Texturas de Chão" name="Textures"> +<panel name="TextureWrapper"> + <scroll_container name="container1"> + <panel label="Texturas de Chão" name="Textures"> <text name="region_text_lbl"> Região: </text> <text name="region_text"> desconhecido </text> - <text name="detail_texture_text"> + <text name="detail_texture_text" width="380"> Texturas de Terreno (requer 512x512, arquivos 24 bit .tga ) </text> <text name="height_text_lbl"> @@ -54,4 +56,6 @@ e o valor Alto é a altura MÃnima da Textura #4. </text> <button label="Aplicar" name="apply_btn" /> + </panel> + </scroll_container> </panel> diff --git a/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml b/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml index d5b67884c918d27fcfd3373cd87b0758e443dbfb..87e6d16056ac21b9d2c50098b8e6b3121cf50255 100644 --- a/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="LLScrollingPanelParam"> - <text length="1" name="Loading..." type="string"> + <text name="Loading..."> Carregando... </text> - <text length="1" name="Loading...2" type="string"> + <text name="Loading...2"> Carregando... </text> <slider label="[DESC]" name="param slider"/> diff --git a/indra/newview/skins/default/xui/pt/panel_status_bar.xml b/indra/newview/skins/default/xui/pt/panel_status_bar.xml index e9a02344ab628232b9d8bfc8d934fe9c4b6234fd..7f3d2b34a61d71fdef5931b617a1bfc3bb360e78 100644 --- a/indra/newview/skins/default/xui/pt/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/pt/panel_status_bar.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <text length="1" name="ParcelNameText" tool_tip="Nome do pedaço de terra em que você está. Clique Sobre a Terra para informações." type="string"> + <text name="ParcelNameText" tool_tip="Nome do pedaço de terra em que você está. Clique Sobre a Terra para informações."> Nome do pedaço de terra vai aqui </text> - <text length="1" name="BalanceText" tool_tip="Saldo" type="string"> + <text name="BalanceText" tool_tip="Saldo"> Carregando... </text> <button label="" label_selected="" name="buycurrency" tool_tip="Comprar dinheiro"/> - <text length="12" name="TimeText" tool_tip="Hora atual (do PacÃfico)" type="string"> + <text name="TimeText" tool_tip="Hora atual (do PacÃfico)"> 12:00 AM </text> <string name="StatBarDaysOfWeek"> @@ -18,7 +18,7 @@ </string> <button label="" label_selected="" name="scriptout" tool_tip="Erros e avisos do Script"/> <button label="" label_selected="" name="health" tool_tip="Saúde"/> - <text length="1" name="HealthText" tool_tip="Saúde" type="string"> + <text name="HealthText" tool_tip="Saúde"> 100% </text> <button label="" label_selected="" name="no_fly" tool_tip="Não é permitido Voar"/> diff --git a/indra/newview/skins/default/xui/pt/panel_world_map.xml b/indra/newview/skins/default/xui/pt/panel_world_map.xml new file mode 100644 index 0000000000000000000000000000000000000000..ed63b1eb0d1aab87d23002c09b7fb0d40a85f55a --- /dev/null +++ b/indra/newview/skins/default/xui/pt/panel_world_map.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="world_map"> + <panel.string name="world_map_north"> + N + </panel.string> + <panel.string name="world_map_east"> + L + </panel.string> + <panel.string name="world_map_west"> + O + </panel.string> + <panel.string name="world_map_south"> + S + </panel.string> + <panel.string name="world_map_southeast"> + SE + </panel.string> + <panel.string name="world_map_northeast"> + NE + </panel.string> + <panel.string name="world_map_southwest"> + SO + </panel.string> + <panel.string name="world_map_northwest"> + NO + </panel.string> + <text label="N" name="floater_map_north" text="N"> + N + </text> + <text label="L" name="floater_map_east" text="L"> + L + </text> + <text label="O" name="floater_map_west" text="O"> + O + </text> + <text label="S" name="floater_map_south" text="S"> + S + </text> + <text label="SE" name="floater_map_southeast" text="SE"> + SE + </text> + <text label="NE" name="floater_map_northeast" text="NE"> + NE + </text> + <text label="SO" name="floater_map_southwest" text="SO"> + SO + </text> + <text label="NO" name="floater_map_northwest" text="NO"> + NO + </text> +</panel> diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml index 8542fc6c0e7056bf37feec1cc0c388eb45974da3..36377b346b6afd5b91801755a2b72050d5d36573 100644 --- a/indra/newview/skins/default/xui/pt/strings.xml +++ b/indra/newview/skins/default/xui/pt/strings.xml @@ -483,4 +483,34 @@ <string name="choose_the_directory"> Escolher Diretório </string> + <string name="accel-mac-control"> + Ctrl- + </string> + <string name="accel-mac-command"> + Cmd- + </string> + <string name="accel-mac-option"> + Opt- + </string> + <string name="accel-mac-shift"> + Shift- + </string> + <string name="accel-win-control"> + Ctrl+ + </string> + <string name="accel-win-alt"> + Alt+ + </string> + <string name="accel-win-shift"> + Shift+ + </string> + <string name="GraphicsQualityLow"> + Baixo + </string> + <string name="GraphicsQualityMid"> + Meio + </string> + <string name="GraphicsQualityHigh"> + Alto + </string> </strings> diff --git a/install.xml b/install.xml index 416f204226a1e31b1d2153a1002ffceb1ec91b2b..967093c0f523bed8e1763f10964716b640480975 100644 --- a/install.xml +++ b/install.xml @@ -443,9 +443,9 @@ <key>darwin</key> <map> <key>md5sum</key> - <string>694173293a483c01472a30cc7d895c5a</string> + <string>f00144dfb597140f328774c3244f0c3e</string> <key>url</key> - <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.1.5-darwin-20080812.tar.bz2</uri> + <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/freetype-2.3.9-darwin-20090922.tar.bz2</uri> </map> <key>linux</key> <map> diff --git a/scripts/messages/message_template.msg b/scripts/messages/message_template.msg index e1b01c569b7549ab0e240c19b5a73c12648bfda6..f0c6780938b9bbc6fd2ed155e247a5b1756c3f67 100644 --- a/scripts/messages/message_template.msg +++ b/scripts/messages/message_template.msg @@ -8971,4 +8971,3 @@ version 2.0 } } -