diff options
715 files changed, 8203 insertions, 14332 deletions
diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml new file mode 100644 index 0000000000..17c0ace02f --- /dev/null +++ b/.github/workflows/pre-commit.yaml @@ -0,0 +1,18 @@ +name: pre-commit + +on: + pull_request: + push: + branches: [main, contribute] + tags: [v*] + + +jobs: + pre-commit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - uses: pre-commit/action@v3.0.0 diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml new file mode 100644 index 0000000000..35ac41420c --- /dev/null +++ b/.github/workflows/stale.yaml @@ -0,0 +1,24 @@ +name: Stale PRs +on: + workflow_dispatch: + schedule: + - cron: 0 0 * * * + +permissions: + issues: write + pull-requests: write + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v6 + id: stale + with: + stale-pr-message: This pull request is stale because it has been open 30 days with no activity. Remove stale label or comment or it will be closed in 7 days + days-before-stale: 30 + days-before-close: 7 + exempt-pr-labels: blocked,must,should,keep + stale-pr-label: stale + - name: Print outputs + run: echo ${{ join(steps.stale.outputs.*, ',') }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6d296d7a24..fe7dfbac7a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,9 +1,8 @@ repos: - - repo: https://bitbucket.org/lindenlab/git-hooks.git - rev: v1.0.0-beta2 + - repo: https://github.com/secondlife/git-hooks.git + rev: v1.0.0 hooks: - id: opensource-license - - id: jira-issue - id: llsd - id: no-trigraphs - id: copyright @@ -11,7 +10,7 @@ repos: files: \.(cpp|c|h|py|glsl|cmake|txt)$ exclude: language.txt - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.5.0 + rev: v4.4.0 hooks: - id: check-xml - id: mixed-line-ending diff --git a/autobuild.xml b/autobuild.xml index d09d862f1b..e4ff35b7e7 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1,6 +1,5 @@ <?xml version="1.0" ?> -<llsd> -<map> +<llsd><map> <key>installables</key> <map> <key>SDL</key> @@ -184,9 +183,9 @@ <key>archive</key> <map> <key>hash</key> - <string>7b4aceaed511d44c4d1354b2162b59c7</string> + <string>02b569ac2bd71f201e3dd86ade7b3eeb</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/107398/936936/bugsplat-1.0.7.576560-darwin64-576560.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/113876/983684/bugsplat-1.0.7.579696-darwin64-579696.tar.bz2</string> </map> <key>name</key> <string>darwin64</string> @@ -196,9 +195,9 @@ <key>archive</key> <map> <key>hash</key> - <string>53918c7c74b943cdc0bb90caf9657a84</string> + <string>5b32c47ae8e8cf0d4106f08e8db18044</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/107400/936949/bugsplat-4.0.3.0.576560-windows-576560.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/113878/983697/bugsplat-4.0.3.0.579696-windows-579696.tar.bz2</string> </map> <key>name</key> <string>windows</string> @@ -208,16 +207,16 @@ <key>archive</key> <map> <key>hash</key> - <string>19d6a55db101f02e7eb531daf3e8cfd1</string> + <string>79c005fd8a660f8551b3c9ede64fa4ef</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/107401/936948/bugsplat-.576560-windows64-576560.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/113879/983696/bugsplat-4.0.3.0.579696-windows64-579696.tar.bz2</string> </map> <key>name</key> <string>windows64</string> </map> </map> <key>version</key> - <string>4.0.3.0.576560</string> + <string>4.0.3.0.579696</string> </map> <key>colladadom</key> <map> @@ -307,31 +306,29 @@ <key>name</key> <string>darwin64</string> </map> - <key>windows</key> + <key>linux64</key> <map> <key>archive</key> <map> <key>hash</key> - <string>b5ea7097ae10037024b0c2b3df9812b5</string> + <string>ac54672e0b38f52726f5c99047c913e4</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89307/815434/cubemaptoequirectangular-1.1.0-windows-564841.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89306/815431/cubemaptoequirectangular-1.1.0-windows64-564841.tar.bz2</string> </map> - <key>name</key> - <string>windows</string> </map> - <key>windows64</key> + <key>windows</key> <map> <key>archive</key> <map> <key>hash</key> - <string>ac54672e0b38f52726f5c99047c913e4</string> + <string>b5ea7097ae10037024b0c2b3df9812b5</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89306/815431/cubemaptoequirectangular-1.1.0-windows64-564841.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89307/815434/cubemaptoequirectangular-1.1.0-windows-564841.tar.bz2</string> </map> <key>name</key> - <string>windows64</string> + <string>windows</string> </map> - <key>linux64</key> + <key>windows64</key> <map> <key>archive</key> <map> @@ -340,6 +337,8 @@ <key>url</key> <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89306/815431/cubemaptoequirectangular-1.1.0-windows64-564841.tar.bz2</string> </map> + <key>name</key> + <string>windows64</string> </map> </map> <key>version</key> @@ -1063,31 +1062,29 @@ <key>name</key> <string>darwin64</string> </map> - <key>windows</key> + <key>linux64</key> <map> <key>archive</key> <map> <key>hash</key> - <string>0a376676dbb43fdd0c81ffdfbc5e6f81</string> + <string>e70898903475d8ac2e81ff33278fc987</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89308/815432/jpegencoderbasic-1.0-windows-564842.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89309/815433/jpegencoderbasic-1.0-windows64-564842.tar.bz2</string> </map> - <key>name</key> - <string>windows</string> </map> - <key>windows64</key> + <key>windows</key> <map> <key>archive</key> <map> <key>hash</key> - <string>e70898903475d8ac2e81ff33278fc987</string> + <string>0a376676dbb43fdd0c81ffdfbc5e6f81</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89309/815433/jpegencoderbasic-1.0-windows64-564842.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89308/815432/jpegencoderbasic-1.0-windows-564842.tar.bz2</string> </map> <key>name</key> - <string>windows64</string> + <string>windows</string> </map> - <key>linux64</key> + <key>windows64</key> <map> <key>archive</key> <map> @@ -1096,6 +1093,8 @@ <key>url</key> <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89309/815433/jpegencoderbasic-1.0-windows64-564842.tar.bz2</string> </map> + <key>name</key> + <string>windows64</string> </map> </map> <key>version</key> @@ -2484,31 +2483,29 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>name</key> <string>darwin64</string> </map> - <key>windows</key> + <key>linux64</key> <map> <key>archive</key> <map> <key>hash</key> - <string>e1303fb9f2242a79aee5fd9f97726ace</string> + <string>46edf0f55417f8ef0d33a5c007bc3644</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89311/815452/threejs-0.132.2-windows-564843.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89310/815451/threejs-0.132.2-windows64-564843.tar.bz2</string> </map> - <key>name</key> - <string>windows</string> </map> - <key>windows64</key> + <key>windows</key> <map> <key>archive</key> <map> <key>hash</key> - <string>46edf0f55417f8ef0d33a5c007bc3644</string> + <string>e1303fb9f2242a79aee5fd9f97726ace</string> <key>url</key> - <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89310/815451/threejs-0.132.2-windows64-564843.tar.bz2</string> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89311/815452/threejs-0.132.2-windows-564843.tar.bz2</string> </map> <key>name</key> - <string>windows64</string> + <string>windows</string> </map> - <key>linux64</key> + <key>windows64</key> <map> <key>archive</key> <map> @@ -2517,6 +2514,8 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>url</key> <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/89310/815451/threejs-0.132.2-windows64-564843.tar.bz2</string> </map> + <key>name</key> + <string>windows64</string> </map> </map> <key>version</key> @@ -2846,6 +2845,36 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>version</key> <string>0.54.1.555529</string> </map> + <key>xxhash</key> + <map> + <key>copyright</key> + <string>Copyright 2012-2020 Yann Collet</string> + <key>description</key> + <string>xxHash Extremely fast hash algorithm</string> + <key>license</key> + <string>bsd</string> + <key>license_file</key> + <string>LICENSES/xxhash.txt</string> + <key>name</key> + <string>xxhash</string> + <key>platforms</key> + <map> + <key>common</key> + <map> + <key>archive</key> + <map> + <key>hash</key> + <string>e4f77ba0a9b8ec3cc3fabc51c4da81d2</string> + <key>url</key> + <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/110070/956941/xxhash-0.8.1.578006-windows-578006.tar.bz2</string> + </map> + <key>name</key> + <string>common</string> + </map> + </map> + <key>version</key> + <string>0.8.1</string> + </map> <key>zlib-ng</key> <map> <key>canonical_repo</key> @@ -3021,18 +3050,25 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>name</key> <string>common</string> </map> - <key>linux64</key> + <key>darwin64</key> <map> <key>build_directory</key> - <string>build-linux-x86_64</string> + <string>build-darwin-x86_64</string> <key>configurations</key> <map> - <key>Release</key> + <key>RelWithDebInfo</key> <map> <key>build</key> <map> <key>command</key> - <string>ninja</string> + <string>xcodebuild</string> + <key>options</key> + <array> + <string>-configuration</string> + <string>RelWithDebInfo</string> + <string>-project</string> + <string>SecondLife.xcodeproj</string> + </array> </map> <key>configure</key> <map> @@ -3043,53 +3079,40 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>options</key> <array> <string>-G</string> - <string>Ninja</string> - <string>-DLL_TESTS=Off</string> + <string>Xcode</string> </array> </map> <key>default</key> <string>True</string> <key>name</key> - <string>Release</string> + <string>RelWithDebInfo</string> </map> - <key>ReleaseOS</key> + <key>RelWithDebInfoOS</key> <map> <key>build</key> <map> <key>command</key> - <string>ninja</string> + <string>xcodebuild</string> + <key>options</key> + <array> + <string>-configuration</string> + <string>RelWithDebInfo</string> + <string>-project</string> + <string>SecondLife.xcodeproj</string> + </array> </map> <key>configure</key> <map> <key>options</key> <array> <string>-G</string> - <string>Ninja</string> - <string>-DLL_TESTS=Off</string> + <string>Xcode</string> </array> </map> <key>name</key> - <string>ReleaseOS</string> - </map> - <key>default</key> - <map> - <key>build</key> - <map> - </map> - <key>name</key> - <string>default</string> + <string>RelWithDebInfoOS</string> </map> - </map> - <key>name</key> - <string>linux64</string> - </map> - <key>darwin64</key> - <map> - <key>build_directory</key> - <string>build-darwin-x86_64</string> - <key>configurations</key> - <map> - <key>RelWithDebInfo</key> + <key>Release</key> <map> <key>build</key> <map> @@ -3098,7 +3121,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>options</key> <array> <string>-configuration</string> - <string>RelWithDebInfo</string> + <string>Release</string> <string>-project</string> <string>SecondLife.xcodeproj</string> </array> @@ -3115,12 +3138,10 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <string>Xcode</string> </array> </map> - <key>default</key> - <string>True</string> <key>name</key> - <string>RelWithDebInfo</string> + <string>Release</string> </map> - <key>RelWithDebInfoOS</key> + <key>ReleaseOS</key> <map> <key>build</key> <map> @@ -3129,7 +3150,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>options</key> <array> <string>-configuration</string> - <string>RelWithDebInfo</string> + <string>Release</string> <string>-project</string> <string>SecondLife.xcodeproj</string> </array> @@ -3143,21 +3164,24 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> </array> </map> <key>name</key> - <string>RelWithDebInfoOS</string> + <string>ReleaseOS</string> </map> + </map> + <key>name</key> + <string>darwin64</string> + </map> + <key>linux64</key> + <map> + <key>build_directory</key> + <string>build-linux-x86_64</string> + <key>configurations</key> + <map> <key>Release</key> <map> <key>build</key> <map> <key>command</key> - <string>xcodebuild</string> - <key>options</key> - <array> - <string>-configuration</string> - <string>Release</string> - <string>-project</string> - <string>SecondLife.xcodeproj</string> - </array> + <string>ninja</string> </map> <key>configure</key> <map> @@ -3168,9 +3192,12 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>options</key> <array> <string>-G</string> - <string>Xcode</string> + <string>Ninja</string> + <string>-DLL_TESTS=Off</string> </array> </map> + <key>default</key> + <string>True</string> <key>name</key> <string>Release</string> </map> @@ -3179,29 +3206,31 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>build</key> <map> <key>command</key> - <string>xcodebuild</string> - <key>options</key> - <array> - <string>-configuration</string> - <string>Release</string> - <string>-project</string> - <string>SecondLife.xcodeproj</string> - </array> + <string>ninja</string> </map> <key>configure</key> <map> <key>options</key> <array> <string>-G</string> - <string>Xcode</string> + <string>Ninja</string> + <string>-DLL_TESTS=Off</string> </array> </map> <key>name</key> <string>ReleaseOS</string> </map> + <key>default</key> + <map> + <key>build</key> + <map> + </map> + <key>name</key> + <string>default</string> + </map> </map> <key>name</key> - <string>darwin64</string> + <string>linux64</string> </map> <key>windows</key> <map> @@ -3372,5 +3401,4 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <string>autobuild</string> <key>version</key> <string>1.3</string> - </map> -</llsd> + </map></llsd> diff --git a/doc/contributions.txt b/doc/contributions.txt index 02603f361d..51b8397d60 100755 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -495,6 +495,8 @@ Evangelista Emerald Faelon Swordthain Farallon Greyskin VWR-2036 +Fawrsk + SL-18893 Feep Larsson VWR-447 VWR-1314 @@ -587,6 +589,9 @@ Henri Beauchamp VWR-1320 VWR-1406 VWR-4157 + SL-15175 + SL-19110 + SL-19159 herina Bode Hikkoshi Sakai VWR-429 @@ -1177,6 +1182,11 @@ Ollie Kubrick Orenj Marat Orion Delphis Oryx Tempel +PanteraPolnocy + SL-18891 + SL-18904 + SL-18937 + SL-19207 Parvati Silverweb Patric Mills VWR-2645 diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake index 92045f7b58..869d5805f2 100644 --- a/indra/cmake/LLCommon.cmake +++ b/indra/cmake/LLCommon.cmake @@ -4,6 +4,7 @@ include(APR) include(Boost) include(EXPAT) include(Tracy) +include(xxHash) include(ZLIBNG) include(JsonCpp) diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 653db2069a..e6285ab48b 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -63,7 +63,7 @@ if (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake) set(INSTALL_PROPRIETARY ON CACHE BOOL "Install proprietary binaries") endif (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake) set(TEMPLATE_VERIFIER_OPTIONS "" CACHE STRING "Options for scripts/template_verifier.py") -set(TEMPLATE_VERIFIER_MASTER_URL "https://bitbucket.org/lindenlab/master-message-template-git/raw/master/message_template.msg" CACHE STRING "Location of the master message template") +set(TEMPLATE_VERIFIER_MASTER_URL "https://github.com/secondlife/master-message-template/raw/master/message_template.msg" CACHE STRING "Location of the master message template") if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING @@ -191,9 +191,15 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # development must be done after the build as we do in viewer_manifest.py for # released builds # https://stackoverflow.com/a/54296008 + # With Xcode 14.1, apparently you must take drastic steps to prevent + # implicit signing. + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED NO) + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED NO) # "-" represents "Sign to Run Locally" and empty string represents "Do Not Sign" set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") - + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "") + set(CMAKE_XCODE_ATTRIBUTE_DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING YES) + set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_64_TO_32_BIT_CONVERSION NO) set(CMAKE_OSX_ARCHITECTURES "${ARCH}") string(REPLACE "i686" "i386" CMAKE_OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}") string(REPLACE "AMD64" "x86_64" CMAKE_OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}") diff --git a/indra/cmake/xxHash.cmake b/indra/cmake/xxHash.cmake new file mode 100644 index 0000000000..a7c1cba62c --- /dev/null +++ b/indra/cmake/xxHash.cmake @@ -0,0 +1,8 @@ +# -*- cmake -*- +if (XXHASH_CMAKE_INCLUDED) + return() +endif (XXHASH_CMAKE_INCLUDED) +set (XXHASH_CMAKE_INCLUDED TRUE) + +include(Prebuilt) +use_prebuilt_binary(xxhash) diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp index c1336fd612..7946a3e705 100644 --- a/indra/llappearance/llavatarappearance.cpp +++ b/indra/llappearance/llavatarappearance.cpp @@ -214,12 +214,10 @@ void LLAvatarAppearance::initInstance() mRoot = createAvatarJoint(); mRoot->setName( "mRoot" ); - for (LLAvatarAppearanceDictionary::MeshEntries::const_iterator iter = sAvatarDictionary->getMeshEntries().begin(); - iter != sAvatarDictionary->getMeshEntries().end(); - ++iter) + for (const LLAvatarAppearanceDictionary::MeshEntries::value_type& mesh_pair : sAvatarDictionary->getMeshEntries()) { - const EMeshIndex mesh_index = iter->first; - const LLAvatarAppearanceDictionary::MeshEntry *mesh_dict = iter->second; + const EMeshIndex mesh_index = mesh_pair.first; + const LLAvatarAppearanceDictionary::MeshEntry *mesh_dict = mesh_pair.second; LLAvatarJoint* joint = createAvatarJoint(); joint->setName(mesh_dict->mName); joint->setMeshID(mesh_index); @@ -260,21 +258,16 @@ void LLAvatarAppearance::initInstance() //------------------------------------------------------------------------- // associate baked textures with meshes //------------------------------------------------------------------------- - for (LLAvatarAppearanceDictionary::MeshEntries::const_iterator iter = sAvatarDictionary->getMeshEntries().begin(); - iter != sAvatarDictionary->getMeshEntries().end(); - ++iter) + for (const LLAvatarAppearanceDictionary::MeshEntries::value_type& mesh_pair : sAvatarDictionary->getMeshEntries()) { - const EMeshIndex mesh_index = iter->first; - const LLAvatarAppearanceDictionary::MeshEntry *mesh_dict = iter->second; + const EMeshIndex mesh_index = mesh_pair.first; + const LLAvatarAppearanceDictionary::MeshEntry *mesh_dict = mesh_pair.second; const EBakedTextureIndex baked_texture_index = mesh_dict->mBakedID; // Skip it if there's no associated baked texture. if (baked_texture_index == BAKED_NUM_INDICES) continue; - for (avatar_joint_mesh_list_t::iterator iter = mMeshLOD[mesh_index]->mMeshParts.begin(); - iter != mMeshLOD[mesh_index]->mMeshParts.end(); - ++iter) + for (LLAvatarJointMesh* mesh : mMeshLOD[mesh_index]->mMeshParts) { - LLAvatarJointMesh* mesh = (*iter); mBakedTextureDatas[(S32)baked_texture_index].mJointMeshes.push_back(mesh); } } @@ -297,10 +290,8 @@ LLAvatarAppearance::~LLAvatarAppearance() delete_and_clear(mBakedTextureDatas[i].mTexLayerSet); mBakedTextureDatas[i].mJointMeshes.clear(); - for (morph_list_t::iterator iter2 = mBakedTextureDatas[i].mMaskedMorphs.begin(); - iter2 != mBakedTextureDatas[i].mMaskedMorphs.end(); iter2++) + for (LLMaskedMorph* masked_morph : mBakedTextureDatas[i].mMaskedMorphs) { - LLMaskedMorph* masked_morph = (*iter2); delete masked_morph; } } @@ -319,11 +310,8 @@ LLAvatarAppearance::~LLAvatarAppearance() std::for_each(mPolyMeshes.begin(), mPolyMeshes.end(), DeletePairedPointer()); mPolyMeshes.clear(); - for (avatar_joint_list_t::iterator jointIter = mMeshLOD.begin(); - jointIter != mMeshLOD.end(); - ++jointIter) + for (LLAvatarJoint* joint : mMeshLOD) { - LLAvatarJoint* joint = *jointIter; std::for_each(joint->mMeshParts.begin(), joint->mMeshParts.end(), DeletePointer()); joint->mMeshParts.clear(); } @@ -477,10 +465,9 @@ void LLAvatarAppearance::compareJointStateMaps(joint_state_map_t& last_state, if (!last_state.empty() && (last_state != curr_state)) { S32 diff_count = 0; - joint_state_map_t::iterator it; - for (it=last_state.begin(); it != last_state.end(); ++it) + for (joint_state_map_t::value_type& pair : last_state) { - const std::string& key = it->first; + const std::string& key = pair.first; if (last_state[key] != curr_state[key]) { LL_DEBUGS("AvatarBodySize") << "BodySize change " << key << " " << last_state[key] << "->" << curr_state[key] << LL_ENDL; @@ -690,10 +677,8 @@ BOOL LLAvatarAppearance::setupBone(const LLAvatarBoneInfo* info, LLJoint* parent // setup children - LLAvatarBoneInfo::bones_t::const_iterator iter; - for (iter = info->mChildren.begin(); iter != info->mChildren.end(); ++iter) + for (LLAvatarBoneInfo* child_info : info->mChildren) { - LLAvatarBoneInfo *child_info = *iter; if (!setupBone(child_info, joint, volume_num, joint_num)) { return FALSE; @@ -745,10 +730,8 @@ BOOL LLAvatarAppearance::buildSkeleton(const LLAvatarSkeletonInfo *info) S32 current_joint_num = 0; S32 current_volume_num = 0; - LLAvatarSkeletonInfo::bone_info_list_t::const_iterator iter; - for (iter = info->mBoneInfoList.begin(); iter != info->mBoneInfoList.end(); ++iter) + for (LLAvatarBoneInfo* bone_info : info->mBoneInfoList) { - LLAvatarBoneInfo *bone_info = *iter; if (!setupBone(bone_info, NULL, current_volume_num, current_joint_num)) { LL_ERRS() << "Error parsing bone in skeleton file" << LL_ENDL; @@ -826,14 +809,10 @@ void LLAvatarAppearance::buildCharacter() //------------------------------------------------------------------------- // clear mesh data //------------------------------------------------------------------------- - for (avatar_joint_list_t::iterator jointIter = mMeshLOD.begin(); - jointIter != mMeshLOD.end(); ++jointIter) + for (LLAvatarJoint* joint : mMeshLOD) { - LLAvatarJoint* joint = *jointIter; - for (avatar_joint_mesh_list_t::iterator meshIter = joint->mMeshParts.begin(); - meshIter != joint->mMeshParts.end(); ++meshIter) + for (LLAvatarJointMesh* mesh : joint->mMeshParts) { - LLAvatarJointMesh * mesh = *meshIter; mesh->setMesh(NULL); } } @@ -1007,12 +986,8 @@ BOOL LLAvatarAppearance::loadAvatar() } // avatar_lad.xml : <morph_masks> - for (LLAvatarXmlInfo::morph_info_list_t::iterator iter = sAvatarXmlInfo->mMorphMaskInfoList.begin(); - iter != sAvatarXmlInfo->mMorphMaskInfoList.end(); - ++iter) + for (LLAvatarXmlInfo::LLAvatarMorphInfo* info : sAvatarXmlInfo->mMorphMaskInfoList) { - LLAvatarXmlInfo::LLAvatarMorphInfo *info = *iter; - EBakedTextureIndex baked = sAvatarDictionary->findBakedByRegionName(info->mRegion); if (baked != BAKED_NUM_INDICES) { @@ -1031,11 +1006,8 @@ BOOL LLAvatarAppearance::loadAvatar() loadLayersets(); // avatar_lad.xml : <driver_parameters> - for (LLAvatarXmlInfo::driver_info_list_t::iterator iter = sAvatarXmlInfo->mDriverInfoList.begin(); - iter != sAvatarXmlInfo->mDriverInfoList.end(); - ++iter) + for (LLDriverParamInfo* info : sAvatarXmlInfo->mDriverInfoList) { - LLDriverParamInfo *info = *iter; LLDriverParam* driver_param = new LLDriverParam( this ); if (driver_param->setInfo(info)) { @@ -1067,11 +1039,8 @@ BOOL LLAvatarAppearance::loadSkeletonNode () mRoot->addChild( mSkeleton[0] ); // make meshes children before calling parent version of the function - for (avatar_joint_list_t::iterator iter = mMeshLOD.begin(); - iter != mMeshLOD.end(); - ++iter) + for (LLAvatarJoint* joint : mMeshLOD) { - LLAvatarJoint *joint = *iter; joint->mUpdateXform = FALSE; joint->setMeshesToChildren(); } @@ -1103,12 +1072,9 @@ BOOL LLAvatarAppearance::loadSkeletonNode () // SKELETAL DISTORTIONS { - LLAvatarXmlInfo::skeletal_distortion_info_list_t::iterator iter; - for (iter = sAvatarXmlInfo->mSkeletalDistortionInfoList.begin(); - iter != sAvatarXmlInfo->mSkeletalDistortionInfoList.end(); - ++iter) + for (LLViewerVisualParamInfo* visual_param_info : sAvatarXmlInfo->mSkeletalDistortionInfoList) { - LLPolySkeletalDistortionInfo *info = (LLPolySkeletalDistortionInfo*)*iter; + LLPolySkeletalDistortionInfo *info = (LLPolySkeletalDistortionInfo*)visual_param_info; LLPolySkeletalDistortion *param = new LLPolySkeletalDistortion(this); if (!param->setInfo(info)) { @@ -1132,11 +1098,8 @@ BOOL LLAvatarAppearance::loadSkeletonNode () //----------------------------------------------------------------------------- BOOL LLAvatarAppearance::loadMeshNodes() { - for (LLAvatarXmlInfo::mesh_info_list_t::const_iterator meshinfo_iter = sAvatarXmlInfo->mMeshInfoList.begin(); - meshinfo_iter != sAvatarXmlInfo->mMeshInfoList.end(); - ++meshinfo_iter) + for (const LLAvatarXmlInfo::LLAvatarMeshInfo* info : sAvatarXmlInfo->mMeshInfoList) { - const LLAvatarXmlInfo::LLAvatarMeshInfo *info = *meshinfo_iter; const std::string &type = info->mType; S32 lod = info->mLOD; @@ -1148,12 +1111,10 @@ BOOL LLAvatarAppearance::loadMeshNodes() switch(lod) case 0: mesh = &mHairMesh0; */ - for (LLAvatarAppearanceDictionary::MeshEntries::const_iterator mesh_iter = sAvatarDictionary->getMeshEntries().begin(); - mesh_iter != sAvatarDictionary->getMeshEntries().end(); - ++mesh_iter) + for (const LLAvatarAppearanceDictionary::MeshEntries::value_type& mesh_pair : sAvatarDictionary->getMeshEntries()) { - const EMeshIndex mesh_index = mesh_iter->first; - const LLAvatarAppearanceDictionary::MeshEntry *mesh_dict = mesh_iter->second; + const EMeshIndex mesh_index = mesh_pair.first; + const LLAvatarAppearanceDictionary::MeshEntry *mesh_dict = mesh_pair.second; if (type.compare(mesh_dict->mName) == 0) { mesh_id = mesh_index; @@ -1221,20 +1182,17 @@ BOOL LLAvatarAppearance::loadMeshNodes() mesh->setMesh( poly_mesh ); mesh->setLOD( info->mMinPixelArea ); - for (LLAvatarXmlInfo::LLAvatarMeshInfo::morph_info_list_t::const_iterator xmlinfo_iter = info->mPolyMorphTargetInfoList.begin(); - xmlinfo_iter != info->mPolyMorphTargetInfoList.end(); - ++xmlinfo_iter) + for (const LLAvatarXmlInfo::LLAvatarMeshInfo::morph_info_pair_t& info_pair : info->mPolyMorphTargetInfoList) { - const LLAvatarXmlInfo::LLAvatarMeshInfo::morph_info_pair_t *info_pair = &(*xmlinfo_iter); LLPolyMorphTarget *param = new LLPolyMorphTarget(mesh->getMesh()); - if (!param->setInfo((LLPolyMorphTargetInfo*)info_pair->first)) + if (!param->setInfo((LLPolyMorphTargetInfo*)info_pair.first)) { delete param; return FALSE; } else { - if (info_pair->second) + if (info_pair.second) { addSharedVisualParam(param); param->setParamLocation(isSelf() ? LOC_AV_SELF : LOC_AV_OTHER); @@ -1257,11 +1215,8 @@ BOOL LLAvatarAppearance::loadMeshNodes() BOOL LLAvatarAppearance::loadLayersets() { BOOL success = TRUE; - for (LLAvatarXmlInfo::layer_info_list_t::const_iterator layerset_iter = sAvatarXmlInfo->mLayerInfoList.begin(); - layerset_iter != sAvatarXmlInfo->mLayerInfoList.end(); - ++layerset_iter) + for (LLTexLayerSetInfo* layerset_info : sAvatarXmlInfo->mLayerInfoList) { - LLTexLayerSetInfo *layerset_info = *layerset_iter; if (isSelf()) { // Construct a layerset for each one specified in avatar_lad.xml and initialize it as such. @@ -1277,14 +1232,12 @@ BOOL LLAvatarAppearance::loadLayersets() // scan baked textures and associate the layerset with the appropriate one EBakedTextureIndex baked_index = BAKED_NUM_INDICES; - for (LLAvatarAppearanceDictionary::BakedTextures::const_iterator baked_iter = sAvatarDictionary->getBakedTextures().begin(); - baked_iter != sAvatarDictionary->getBakedTextures().end(); - ++baked_iter) + for (const LLAvatarAppearanceDictionary::BakedTextures::value_type& baked_pair : sAvatarDictionary->getBakedTextures()) { - const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = baked_iter->second; + const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = baked_pair.second; if (layer_set->isBodyRegion(baked_dict->mName)) { - baked_index = baked_iter->first; + baked_index = baked_pair.first; // ensure both structures are aware of each other mBakedTextureDatas[baked_index].mTexLayerSet = layer_set; layer_set->setBakedTexIndex(baked_index); @@ -1300,11 +1253,8 @@ BOOL LLAvatarAppearance::loadLayersets() } // scan morph masks and let any affected layers know they have an associated morph - for (LLAvatarAppearance::morph_list_t::const_iterator morph_iter = mBakedTextureDatas[baked_index].mMaskedMorphs.begin(); - morph_iter != mBakedTextureDatas[baked_index].mMaskedMorphs.end(); - ++morph_iter) + for (LLMaskedMorph* morph : mBakedTextureDatas[baked_index].mMaskedMorphs) { - LLMaskedMorph *morph = *morph_iter; LLTexLayerInterface* layer = layer_set->findLayerByName(morph->mLayer); if (layer) { @@ -1320,7 +1270,6 @@ BOOL LLAvatarAppearance::loadLayersets() else // !isSelf() { // Construct a layerset for each one specified in avatar_lad.xml and initialize it as such. - LLTexLayerSetInfo *layerset_info = *layerset_iter; layerset_info->createVisualParams(this); } } @@ -1747,13 +1696,13 @@ void LLAvatarAppearance::makeJointAliases(LLAvatarBoneInfo *bone_info) boost::char_separator<char> sep(" "); boost::tokenizer<boost::char_separator<char> > tok(aliases, sep); - for(boost::tokenizer<boost::char_separator<char> >::iterator i = tok.begin(); i != tok.end(); ++i) + for(const std::string& i : tok) { - if ( mJointAliasMap.find(*i) != mJointAliasMap.end() ) + if ( mJointAliasMap.find(i) != mJointAliasMap.end() ) { - LL_WARNS() << "avatar skeleton: Joint alias \"" << *i << "\" remapped from " << mJointAliasMap[*i] << " to " << bone_name << LL_ENDL; + LL_WARNS() << "avatar skeleton: Joint alias \"" << i << "\" remapped from " << mJointAliasMap[i] << " to " << bone_name << LL_ENDL; } - mJointAliasMap[*i] = bone_name; + mJointAliasMap[i] = bone_name; } for (LLAvatarBoneInfo* bone : bone_info->mChildren) @@ -1768,21 +1717,14 @@ const LLAvatarAppearance::joint_alias_map_t& LLAvatarAppearance::getJointAliases if (mJointAliasMap.empty()) { - LLAvatarSkeletonInfo::bone_info_list_t::const_iterator iter; - for (iter = sAvatarSkeletonInfo->mBoneInfoList.begin(); - iter != sAvatarSkeletonInfo->mBoneInfoList.end(); - ++iter) + for (LLAvatarBoneInfo* bone_info : sAvatarSkeletonInfo->mBoneInfoList) { //LLAvatarBoneInfo *bone_info = *iter; - makeJointAliases( *iter ); + makeJointAliases(bone_info); } - LLAvatarXmlInfo::attachment_info_list_t::iterator attach_iter; - for (attach_iter = sAvatarXmlInfo->mAttachmentInfoList.begin(); - attach_iter != sAvatarXmlInfo->mAttachmentInfoList.end(); - ++attach_iter) + for (LLAvatarXmlInfo::LLAvatarAttachmentInfo* info : sAvatarXmlInfo->mAttachmentInfoList) { - LLAvatarXmlInfo::LLAvatarAttachmentInfo *info = *attach_iter; std::string bone_name = info->mName; // Also accept the name with spaces substituted with diff --git a/indra/llappearance/llavatarappearance.h b/indra/llappearance/llavatarappearance.h index b1c70f9064..e3444efcf6 100644 --- a/indra/llappearance/llavatarappearance.h +++ b/indra/llappearance/llavatarappearance.h @@ -387,10 +387,9 @@ protected: LLAvatarMeshInfo() : mLOD(0), mMinPixelArea(.1f) {} ~LLAvatarMeshInfo() { - morph_info_list_t::iterator iter; - for (iter = mPolyMorphTargetInfoList.begin(); iter != mPolyMorphTargetInfoList.end(); iter++) + for (morph_info_list_t::value_type& pair : mPolyMorphTargetInfoList) { - delete iter->first; + delete pair.first; } mPolyMorphTargetInfoList.clear(); } diff --git a/indra/llappearance/llavatarappearancedefines.cpp b/indra/llappearance/llavatarappearancedefines.cpp index 2bcfd06c40..8759c387e8 100644 --- a/indra/llappearance/llavatarappearancedefines.cpp +++ b/indra/llappearance/llavatarappearancedefines.cpp @@ -183,18 +183,15 @@ LLAvatarAppearanceDictionary::~LLAvatarAppearanceDictionary() // map it to the baked texture. void LLAvatarAppearanceDictionary::createAssociations() { - for (BakedTextures::const_iterator iter = mBakedTextures.begin(); iter != mBakedTextures.end(); iter++) + for (BakedTextures::value_type& baked_pair : mBakedTextures) { - const EBakedTextureIndex baked_index = (iter->first); - const BakedEntry *dict = (iter->second); + const EBakedTextureIndex baked_index = baked_pair.first; + const BakedEntry *dict = baked_pair.second; // For each texture that this baked texture index affects, associate those textures // with this baked texture index. - for (texture_vec_t::const_iterator local_texture_iter = dict->mLocalTextures.begin(); - local_texture_iter != dict->mLocalTextures.end(); - local_texture_iter++) + for (const ETextureIndex local_texture_index : dict->mLocalTextures) { - const ETextureIndex local_texture_index = (ETextureIndex) *local_texture_iter; mTextures[local_texture_index]->mIsUsedByBakedTexture = true; mTextures[local_texture_index]->mBakedTextureIndex = baked_index; } diff --git a/indra/llappearance/llavatarjoint.cpp b/indra/llappearance/llavatarjoint.cpp index a1d4fe6423..9300b08b7b 100644 --- a/indra/llappearance/llavatarjoint.cpp +++ b/indra/llappearance/llavatarjoint.cpp @@ -100,10 +100,9 @@ void LLAvatarJoint::setValid( BOOL valid, BOOL recursive ) //---------------------------------------------------------------- if (recursive) { - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* child : mChildren) { - LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter); + LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child); joint->setValid(valid, TRUE); } } @@ -118,10 +117,9 @@ void LLAvatarJoint::setSkeletonComponents( U32 comp, BOOL recursive ) mComponents = comp; if (recursive) { - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (auto child : mChildren) { - LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter); + LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child); joint->setSkeletonComponents(comp, recursive); } } @@ -133,10 +131,9 @@ void LLAvatarJoint::setVisible(BOOL visible, BOOL recursive) if (recursive) { - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* child : mChildren) { - LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter); + LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child); joint->setVisible(visible, recursive); } } @@ -144,30 +141,27 @@ void LLAvatarJoint::setVisible(BOOL visible, BOOL recursive) void LLAvatarJoint::updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pixel_area) { - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* child : mChildren) { - LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter); + LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child); joint->updateFaceSizes(num_vertices, num_indices, pixel_area); } } void LLAvatarJoint::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind, bool terse_update) { - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* child : mChildren) { - LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter); + LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child); joint->updateFaceData(face, pixel_area, damp_wind, terse_update); } } void LLAvatarJoint::updateJointGeometry() { - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* child : mChildren) { - LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter); + LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child); joint->updateJointGeometry(); } } @@ -178,10 +172,9 @@ BOOL LLAvatarJoint::updateLOD(F32 pixel_area, BOOL activate) BOOL lod_changed = FALSE; BOOL found_lod = FALSE; - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* child : mChildren) { - LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter); + LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child); F32 jointLOD = joint->getLOD(); if (found_lod || jointLOD == DEFAULT_AVATAR_JOINT_LOD) @@ -207,10 +200,9 @@ BOOL LLAvatarJoint::updateLOD(F32 pixel_area, BOOL activate) void LLAvatarJoint::dump() { - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* child : mChildren) { - LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(*iter); + LLAvatarJoint* joint = static_cast<LLAvatarJoint*>(child); joint->dump(); } } @@ -219,10 +211,9 @@ void LLAvatarJoint::dump() void LLAvatarJoint::setMeshesToChildren() { removeAllChildren(); - for (avatar_joint_mesh_list_t::iterator iter = mMeshParts.begin(); - iter != mMeshParts.end(); iter++) + for (LLAvatarJointMesh* mesh : mMeshParts) { - addChild((*iter)); + addChild(mesh); } } //----------------------------------------------------------------------------- diff --git a/indra/llappearance/llavatarjointmesh.cpp b/indra/llappearance/llavatarjointmesh.cpp index 0a23b1fda3..ed39f78d28 100644 --- a/indra/llappearance/llavatarjointmesh.cpp +++ b/indra/llappearance/llavatarjointmesh.cpp @@ -379,10 +379,9 @@ void LLAvatarJointMesh::setupJoint(LLAvatarJoint* current_joint) } // depth-first traversal - for (LLJoint::joints_t::iterator iter = current_joint->mChildren.begin(); - iter != current_joint->mChildren.end(); ++iter) + for (LLJoint* joint : current_joint->mChildren) { - LLAvatarJoint* child_joint = (LLAvatarJoint*)(*iter); + LLAvatarJoint* child_joint = (LLAvatarJoint*)joint; setupJoint(child_joint); } } diff --git a/indra/llappearance/lldriverparam.cpp b/indra/llappearance/lldriverparam.cpp index 05d26fbe7a..f46d0324a5 100644 --- a/indra/llappearance/lldriverparam.cpp +++ b/indra/llappearance/lldriverparam.cpp @@ -102,9 +102,8 @@ void LLDriverParamInfo::toStream(std::ostream &out) LLViewerVisualParamInfo::toStream(out); out << "driver" << "\t"; out << mDrivenInfoList.size() << "\t"; - for (entry_info_list_t::iterator iter = mDrivenInfoList.begin(); iter != mDrivenInfoList.end(); iter++) + for (LLDrivenEntryInfo& driven : mDrivenInfoList) { - LLDrivenEntryInfo driven = *iter; out << driven.mDrivenID << "\t"; } @@ -121,9 +120,8 @@ void LLDriverParamInfo::toStream(std::ostream &out) if(mDriverParam && mDriverParam->getAvatarAppearance()->isSelf() && mDriverParam->getAvatarAppearance()->isValid()) { - for (entry_info_list_t::iterator iter = mDrivenInfoList.begin(); iter != mDrivenInfoList.end(); iter++) + for (LLDrivenEntryInfo& driven : mDrivenInfoList) { - LLDrivenEntryInfo driven = *iter; LLViewerVisualParam *param = (LLViewerVisualParam*)mDriverParam->getAvatarAppearance()->getVisualParam(driven.mDrivenID); if (param) @@ -232,19 +230,19 @@ void LLDriverParam::setWeight(F32 weight) //-------|----|-------|----|-------> driver // | min1 max1 max2 min2 - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - LLDrivenEntryInfo* info = driven->mInfo; + LLDrivenEntry* drivenp = &driven; + LLDrivenEntryInfo* info = drivenp->mInfo; F32 driven_weight = 0.f; - F32 driven_min = driven->mParam->getMinWeight(); - F32 driven_max = driven->mParam->getMaxWeight(); + F32 driven_min = drivenp->mParam->getMinWeight(); + F32 driven_max = drivenp->mParam->getMaxWeight(); if (mIsAnimating) { // driven param doesn't interpolate (textures, for example) - if (!driven->mParam->getAnimating()) + if (!drivenp->mParam->getAnimating()) { continue; } @@ -268,7 +266,7 @@ void LLDriverParam::setWeight(F32 weight) driven_weight = driven_min; } - setDrivenWeight(driven,driven_weight); + setDrivenWeight(drivenp,driven_weight); continue; } else @@ -292,23 +290,22 @@ void LLDriverParam::setWeight(F32 weight) driven_weight = driven_min; } - setDrivenWeight(driven,driven_weight); + setDrivenWeight(drivenp,driven_weight); continue; } } - driven_weight = getDrivenWeight(driven, mCurWeight); - setDrivenWeight(driven,driven_weight); + driven_weight = getDrivenWeight(drivenp, mCurWeight); + setDrivenWeight(drivenp,driven_weight); } } F32 LLDriverParam::getTotalDistortion() { F32 sum = 0.f; - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - sum += driven->mParam->getTotalDistortion(); + sum += driven.mParam->getTotalDistortion(); } return sum; @@ -320,10 +317,9 @@ const LLVector4a &LLDriverParam::getAvgDistortion() LLVector4a sum; sum.clear(); S32 count = 0; - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - sum.add(driven->mParam->getAvgDistortion()); + sum.add(driven.mParam->getAvgDistortion()); count++; } sum.mul( 1.f/(F32)count); @@ -335,10 +331,9 @@ const LLVector4a &LLDriverParam::getAvgDistortion() F32 LLDriverParam::getMaxDistortion() { F32 max = 0.f; - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - F32 param_max = driven->mParam->getMaxDistortion(); + F32 param_max = driven.mParam->getMaxDistortion(); if( param_max > max ) { max = param_max; @@ -353,10 +348,9 @@ LLVector4a LLDriverParam::getVertexDistortion(S32 index, LLPolyMesh *poly_mesh) { LLVector4a sum; sum.clear(); - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - sum.add(driven->mParam->getVertexDistortion( index, poly_mesh )); + sum.add(driven.mParam->getVertexDistortion(index, poly_mesh)); } return sum; } @@ -365,13 +359,12 @@ const LLVector4a* LLDriverParam::getFirstDistortion(U32 *index, LLPolyMesh **pol { mCurrentDistortionParam = NULL; const LLVector4a* v = NULL; - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - v = driven->mParam->getFirstDistortion( index, poly_mesh ); + v = driven.mParam->getFirstDistortion(index, poly_mesh); if( v ) { - mCurrentDistortionParam = driven->mParam; + mCurrentDistortionParam = driven.mParam; break; } } @@ -415,7 +408,7 @@ const LLVector4a* LLDriverParam::getNextDistortion(U32 *index, LLPolyMesh **poly for( iter++; iter != mDriven.end(); iter++ ) { driven = &(*iter); - v = driven->mParam->getFirstDistortion( index, poly_mesh ); + v = driven->mParam->getFirstDistortion(index, poly_mesh); if( v ) { mCurrentDistortionParam = driven->mParam; @@ -448,14 +441,14 @@ void LLDriverParam::setAnimationTarget( F32 target_value) { LLVisualParam::setAnimationTarget(target_value); - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - F32 driven_weight = getDrivenWeight(driven, mTargetWeight); + LLDrivenEntry* drivenp = &driven; + F32 driven_weight = getDrivenWeight(drivenp, mTargetWeight); // this isn't normally necessary, as driver params handle interpolation of their driven params // but texture params need to know to assume their final value at beginning of interpolation - driven->mParam->setAnimationTarget(driven_weight); + drivenp->mParam->setAnimationTarget(driven_weight); } } @@ -466,10 +459,9 @@ void LLDriverParam::stopAnimating() { LLVisualParam::stopAnimating(); - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - driven->mParam->setAnimating(FALSE); + driven.mParam->setAnimating(FALSE); } } @@ -477,17 +469,15 @@ void LLDriverParam::stopAnimating() BOOL LLDriverParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross_params) { BOOL success = TRUE; - LLDriverParamInfo::entry_info_list_t::iterator iter; - for (iter = getInfo()->mDrivenInfoList.begin(); iter != getInfo()->mDrivenInfoList.end(); ++iter) + for (LLDrivenEntryInfo& driven_info : getInfo()->mDrivenInfoList) { - LLDrivenEntryInfo *driven_info = &(*iter); - S32 driven_id = driven_info->mDrivenID; + S32 driven_id = driven_info.mDrivenID; // check for already existing links. Do not overwrite. BOOL found = FALSE; - for (entry_list_t::iterator driven_iter = mDriven.begin(); driven_iter != mDriven.end() && !found; ++driven_iter) + for (auto& driven : mDriven) { - if (driven_iter->mInfo->mDrivenID == driven_id) + if (driven.mInfo->mDrivenID == driven_id) { found = TRUE; } @@ -500,7 +490,7 @@ BOOL LLDriverParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross bool push = param && (!only_cross_params || param->getCrossWearable()); if (push) { - mDriven.push_back(LLDrivenEntry( param, driven_info )); + mDriven.push_back(LLDrivenEntry( param, &driven_info )); } else { @@ -523,10 +513,9 @@ void LLDriverParam::updateCrossDrivenParams(LLWearableType::EType driven_type) bool needs_update = (getWearableType()==driven_type); // if the driver has a driven entry for the passed-in wearable type, we need to refresh the value - for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ ) + for(LLDrivenEntry& driven : mDriven) { - LLDrivenEntry* driven = &(*iter); - if (driven && driven->mParam && driven->mParam->getCrossWearable() && driven->mParam->getWearableType() == driven_type) + if (driven.mParam && driven.mParam->getCrossWearable() && driven.mParam->getWearableType() == driven_type) { needs_update = true; } diff --git a/indra/llappearance/lllocaltextureobject.cpp b/indra/llappearance/lllocaltextureobject.cpp index 0481326e9e..ab50db3a5a 100644 --- a/indra/llappearance/lllocaltextureobject.cpp +++ b/indra/llappearance/lllocaltextureobject.cpp @@ -96,9 +96,8 @@ LLTexLayer* LLLocalTextureObject::getTexLayer(U32 index) const LLTexLayer* LLLocalTextureObject::getTexLayer(const std::string &name) { - for( tex_layer_vec_t::iterator iter = mTexLayers.begin(); iter != mTexLayers.end(); iter++) + for(LLTexLayer* layer : mTexLayers) { - LLTexLayer *layer = *iter; if (layer->getName().compare(name) == 0) { return layer; diff --git a/indra/llappearance/llpolymesh.cpp b/indra/llappearance/llpolymesh.cpp index 3892e4ce43..dab14851c8 100644 --- a/indra/llappearance/llpolymesh.cpp +++ b/indra/llappearance/llpolymesh.cpp @@ -890,11 +890,10 @@ void LLPolyMesh::dumpDiagInfo() LL_INFOS() << "-----------------------------------------------------" << LL_ENDL; // print each loaded mesh, and it's memory usage - for(LLPolyMeshSharedDataTable::iterator iter = sGlobalSharedMeshList.begin(); - iter != sGlobalSharedMeshList.end(); ++iter) + for(const LLPolyMeshSharedDataTable::value_type& mesh_pair : sGlobalSharedMeshList) { - const std::string& mesh_name = iter->first; - LLPolyMeshSharedData* mesh = iter->second; + const std::string& mesh_name = mesh_pair.first; + LLPolyMeshSharedData* mesh = mesh_pair.second; S32 num_verts = mesh->mNumVertices; S32 num_faces = mesh->mNumFaces; @@ -997,14 +996,12 @@ LLPolyMorphData* LLPolyMesh::getMorphData(const std::string& morph_name) { if (!mSharedData) return NULL; - for (LLPolyMeshSharedData::morphdata_list_t::iterator iter = mSharedData->mMorphData.begin(); - iter != mSharedData->mMorphData.end(); ++iter) + for (LLPolyMorphData* morph_data : mSharedData->mMorphData) { - LLPolyMorphData *morph_data = *iter; - if (morph_data->getName() == morph_name) - { - return morph_data; - } + if (morph_data->getName() == morph_name) + { + return morph_data; + } } return NULL; } diff --git a/indra/llappearance/llpolymorph.cpp b/indra/llappearance/llpolymorph.cpp index 84dd6156a9..965b999bd4 100644 --- a/indra/llappearance/llpolymorph.cpp +++ b/indra/llappearance/llpolymorph.cpp @@ -363,18 +363,16 @@ BOOL LLPolyMorphTarget::setInfo(LLPolyMorphTargetInfo* info) setWeight(getDefaultWeight()); LLAvatarAppearance* avatarp = mMesh->getAvatar(); - LLPolyMorphTargetInfo::volume_info_list_t::iterator iter; - for (iter = getInfo()->mVolumeInfoList.begin(); iter != getInfo()->mVolumeInfoList.end(); iter++) + for (LLPolyVolumeMorphInfo& volume_info : getInfo()->mVolumeInfoList) { - LLPolyVolumeMorphInfo *volume_info = &(*iter); for (S32 i = 0; i < avatarp->mNumCollisionVolumes; i++) { - if (avatarp->mCollisionVolumes[i].getName() == volume_info->mName) + if (avatarp->mCollisionVolumes[i].getName() == volume_info.mName) { mVolumeMorphs.push_back( LLPolyVolumeMorph(&avatarp->mCollisionVolumes[i], - volume_info->mScale, - volume_info->mPos)); + volume_info.mScale, + volume_info.mPos)); break; } } @@ -641,15 +639,14 @@ void LLPolyMorphTarget::apply( ESex avatar_sex ) } // now apply volume changes - for( volume_list_t::iterator iter = mVolumeMorphs.begin(); iter != mVolumeMorphs.end(); iter++ ) + for(LLPolyVolumeMorph& volume_morph : mVolumeMorphs) { - LLPolyVolumeMorph* volume_morph = &(*iter); - LLVector3 scale_delta = volume_morph->mScale * delta_weight; - LLVector3 pos_delta = volume_morph->mPos * delta_weight; + LLVector3 scale_delta = volume_morph.mScale * delta_weight; + LLVector3 pos_delta = volume_morph.mPos * delta_weight; - volume_morph->mVolume->setScale(volume_morph->mVolume->getScale() + scale_delta); + volume_morph.mVolume->setScale(volume_morph.mVolume->getScale() + scale_delta); // SL-315 - volume_morph->mVolume->setPosition(volume_morph->mVolume->getPosition() + pos_delta); + volume_morph.mVolume->setPosition(volume_morph.mVolume->getPosition() + pos_delta); } } @@ -735,15 +732,14 @@ void LLPolyMorphTarget::applyMask(U8 *maskTextureData, S32 width, S32 height, S3 void LLPolyMorphTarget::applyVolumeChanges(F32 delta_weight) { // now apply volume changes - for( volume_list_t::iterator iter = mVolumeMorphs.begin(); iter != mVolumeMorphs.end(); iter++ ) + for(LLPolyVolumeMorph& volume_morph : mVolumeMorphs) { - LLPolyVolumeMorph* volume_morph = &(*iter); - LLVector3 scale_delta = volume_morph->mScale * delta_weight; - LLVector3 pos_delta = volume_morph->mPos * delta_weight; + LLVector3 scale_delta = volume_morph.mScale * delta_weight; + LLVector3 pos_delta = volume_morph.mPos * delta_weight; - volume_morph->mVolume->setScale(volume_morph->mVolume->getScale() + scale_delta); + volume_morph.mVolume->setScale(volume_morph.mVolume->getScale() + scale_delta); // SL-315 - volume_morph->mVolume->setPosition(volume_morph->mVolume->getPosition() + pos_delta); + volume_morph.mVolume->setPosition(volume_morph.mVolume->getPosition() + pos_delta); } } diff --git a/indra/llappearance/llpolyskeletaldistortion.cpp b/indra/llappearance/llpolyskeletaldistortion.cpp index 360f17508f..586e631ded 100644 --- a/indra/llappearance/llpolyskeletaldistortion.cpp +++ b/indra/llappearance/llpolyskeletaldistortion.cpp @@ -143,38 +143,35 @@ BOOL LLPolySkeletalDistortion::setInfo(LLPolySkeletalDistortionInfo *info) mID = info->mID; setWeight(getDefaultWeight()); - LLPolySkeletalDistortionInfo::bone_info_list_t::iterator iter; - for (iter = getInfo()->mBoneInfoList.begin(); iter != getInfo()->mBoneInfoList.end(); iter++) + for (LLPolySkeletalBoneInfo& bone_info : getInfo()->mBoneInfoList) { - LLPolySkeletalBoneInfo *bone_info = &(*iter); - LLJoint* joint = mAvatar->getJoint(bone_info->mBoneName); + LLJoint* joint = mAvatar->getJoint(bone_info.mBoneName); if (!joint) { // There's no point continuing after this error - means // that either the skeleton or lad file is broken. - LL_WARNS() << "Joint " << bone_info->mBoneName << " not found." << LL_ENDL; + LL_WARNS() << "Joint " << bone_info.mBoneName << " not found." << LL_ENDL; return FALSE; } // store it - mJointScales[joint] = bone_info->mScaleDeformation; + mJointScales[joint] = bone_info.mScaleDeformation; // apply to children that need to inherit it - for (LLJoint::joints_t::iterator iter = joint->mChildren.begin(); - iter != joint->mChildren.end(); ++iter) + for (LLJoint* joint : joint->mChildren) { - LLAvatarJoint* child_joint = (LLAvatarJoint*)(*iter); + LLAvatarJoint* child_joint = (LLAvatarJoint*)joint; if (child_joint->inheritScale()) { LLVector3 childDeformation = LLVector3(child_joint->getScale()); - childDeformation.scaleVec(bone_info->mScaleDeformation); + childDeformation.scaleVec(bone_info.mScaleDeformation); mJointScales[child_joint] = childDeformation; } } - if (bone_info->mHasPositionDeformation) + if (bone_info.mHasPositionDeformation) { - mJointOffsets[joint] = bone_info->mPositionDeformation; + mJointOffsets[joint] = bone_info.mPositionDeformation; } } return TRUE; @@ -195,15 +192,12 @@ void LLPolySkeletalDistortion::apply( ESex avatar_sex ) F32 effective_weight = ( getSex() & avatar_sex ) ? mCurWeight : getDefaultWeight(); LLJoint* joint; - joint_vec_map_t::iterator iter; - for (iter = mJointScales.begin(); - iter != mJointScales.end(); - iter++) + for (joint_vec_map_t::value_type& scale_pair : mJointScales) { - joint = iter->first; + joint = scale_pair.first; LLVector3 newScale = joint->getScale(); - LLVector3 scaleDelta = iter->second; + LLVector3 scaleDelta = scale_pair.second; LLVector3 offset = (effective_weight - mLastWeight) * scaleDelta; newScale = newScale + offset; //An aspect of attached mesh objects (which contain joint offsets) that need to be cleaned up when detached @@ -218,13 +212,11 @@ void LLPolySkeletalDistortion::apply( ESex avatar_sex ) joint->setScale(newScale, true); } - for (iter = mJointOffsets.begin(); - iter != mJointOffsets.end(); - iter++) + for (joint_vec_map_t::value_type& offset_pair : mJointOffsets) { - joint = iter->first; + joint = offset_pair.first; LLVector3 newPosition = joint->getPosition(); - LLVector3 positionDelta = iter->second; + LLVector3 positionDelta = offset_pair.second; newPosition = newPosition + (effective_weight * positionDelta) - (mLastWeight * positionDelta); // SL-315 bool allow_attachment_pos_overrides = true; diff --git a/indra/llappearance/lltexglobalcolor.cpp b/indra/llappearance/lltexglobalcolor.cpp index 3df2254b14..75815482c9 100644 --- a/indra/llappearance/lltexglobalcolor.cpp +++ b/indra/llappearance/lltexglobalcolor.cpp @@ -55,12 +55,10 @@ BOOL LLTexGlobalColor::setInfo(LLTexGlobalColorInfo *info) //mID = info->mID; // No ID mParamGlobalColorList.reserve(mInfo->mParamColorInfoList.size()); - for (param_color_info_list_t::iterator iter = mInfo->mParamColorInfoList.begin(); - iter != mInfo->mParamColorInfoList.end(); - iter++) + for (LLTexLayerParamColorInfo* color_info : mInfo->mParamColorInfoList) { LLTexParamGlobalColor* param_color = new LLTexParamGlobalColor(this); - if (!param_color->setInfo(*iter, TRUE)) + if (!param_color->setInfo(color_info, TRUE)) { mInfo = NULL; return FALSE; diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp index 3430a25536..6f23b2e04c 100644 --- a/indra/llappearance/lltexlayer.cpp +++ b/indra/llappearance/lltexlayer.cpp @@ -241,11 +241,8 @@ BOOL LLTexLayerSetInfo::parseXml(LLXmlTreeNode* node) void LLTexLayerSetInfo::createVisualParams(LLAvatarAppearance *appearance) { //layer_info_list_t mLayerInfoList; - for (layer_info_list_t::iterator layer_iter = mLayerInfoList.begin(); - layer_iter != mLayerInfoList.end(); - layer_iter++) + for (LLTexLayerInfo* layer_info : mLayerInfoList) { - LLTexLayerInfo *layer_info = *layer_iter; layer_info->createVisualParams(appearance); } } @@ -287,12 +284,10 @@ BOOL LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info) //mID = info->mID; // No ID mLayerList.reserve(info->mLayerInfoList.size()); - for (LLTexLayerSetInfo::layer_info_list_t::const_iterator iter = info->mLayerInfoList.begin(); - iter != info->mLayerInfoList.end(); - iter++) + for (LLTexLayerInfo* layer_info : info->mLayerInfoList) { LLTexLayerInterface *layer = NULL; - if ( (*iter)->isUserSettable() ) + if (layer_info->isUserSettable()) { layer = new LLTexLayerTemplate( this, getAvatarAppearance() ); } @@ -301,7 +296,7 @@ BOOL LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info) layer = new LLTexLayer(this); } // this is the first time this layer (of either type) is being created - make sure you add the parameters to the avatar appearance - if (!layer->setInfo(*iter, NULL)) + if (!layer->setInfo(layer_info, NULL)) { mInfo = NULL; return FALSE; @@ -348,14 +343,12 @@ BOOL LLTexLayerSet::parseData(LLXmlTreeNode* node) void LLTexLayerSet::deleteCaches() { - for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) + for(LLTexLayerInterface* layer : mLayerList) { - LLTexLayerInterface* layer = *iter; layer->deleteCaches(); } - for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++) + for (LLTexLayerInterface* layer : mMaskLayerList) { - LLTexLayerInterface* layer = *iter; layer->deleteCaches(); } } @@ -368,9 +361,8 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height, LLRenderTarget* if (mMaskLayerList.size() > 0) { - for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++) + for (LLTexLayerInterface* layer : mMaskLayerList) { - LLTexLayerInterface* layer = *iter; if (layer->isInvisibleAlphaMask()) { mIsVisible = FALSE; @@ -399,9 +391,8 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height, LLRenderTarget* if (mIsVisible) { // composite color layers - for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) + for(LLTexLayerInterface* layer : mLayerList) { - LLTexLayerInterface* layer = *iter; if (layer->getRenderPass() == LLTexLayer::RP_COLOR) { gGL.flush(); @@ -473,9 +464,8 @@ void LLTexLayerSet::gatherMorphMaskAlpha(U8 *data, S32 origin_x, S32 origin_y, S LL_PROFILE_ZONE_SCOPED; memset(data, 255, width * height); - for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) + for(LLTexLayerInterface* layer : mLayerList) { - LLTexLayerInterface* layer = *iter; layer->gatherAlphaMasks(data, origin_x, origin_y, width, height, bound_target); } @@ -526,9 +516,8 @@ void LLTexLayerSet::renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height, if (mMaskLayerList.size() > 0) { gGL.setSceneBlendType(LLRender::BT_MULT_ALPHA); - for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++) + for (LLTexLayerInterface* layer : mMaskLayerList) { - LLTexLayerInterface* layer = *iter; gGL.flush(); layer->blendAlphaTexture(x,y,width, height); gGL.flush(); @@ -549,9 +538,8 @@ void LLTexLayerSet::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_ BOOL LLTexLayerSet::isMorphValid() const { - for(layer_list_t::const_iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) + for(const LLTexLayerInterface* layer : mLayerList) { - const LLTexLayerInterface* layer = *iter; if (layer && !layer->isMorphValid()) { return FALSE; @@ -562,9 +550,8 @@ BOOL LLTexLayerSet::isMorphValid() const void LLTexLayerSet::invalidateMorphMasks() { - for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) + for(LLTexLayerInterface* layer : mLayerList) { - LLTexLayerInterface* layer = *iter; if (layer) { layer->invalidateMorphMasks(); @@ -661,14 +648,12 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node) /* if ("upper_shirt" == local_texture_name) mLocalTexture = TEX_UPPER_SHIRT; */ mLocalTexture = TEX_NUM_INDICES; - for (LLAvatarAppearanceDictionary::Textures::const_iterator iter = LLAvatarAppearance::getDictionary()->getTextures().begin(); - iter != LLAvatarAppearance::getDictionary()->getTextures().end(); - iter++) + for (const LLAvatarAppearanceDictionary::Textures::value_type& dict_pair : LLAvatarAppearance::getDictionary()->getTextures()) { - const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = iter->second; + const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = dict_pair.second; if (local_texture_name == texture_dict->mName) { - mLocalTexture = iter->first; + mLocalTexture = dict_pair.first; break; } } @@ -735,11 +720,8 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node) BOOL LLTexLayerInfo::createVisualParams(LLAvatarAppearance *appearance) { BOOL success = TRUE; - for (param_color_info_list_t::iterator color_info_iter = mParamColorInfoList.begin(); - color_info_iter != mParamColorInfoList.end(); - color_info_iter++) + for (LLTexLayerParamColorInfo* color_info : mParamColorInfoList) { - LLTexLayerParamColorInfo * color_info = *color_info_iter; LLTexLayerParamColor* param_color = new LLTexLayerParamColor(appearance); if (!param_color->setInfo(color_info, TRUE)) { @@ -749,11 +731,8 @@ BOOL LLTexLayerInfo::createVisualParams(LLAvatarAppearance *appearance) } } - for (param_alpha_info_list_t::iterator alpha_info_iter = mParamAlphaInfoList.begin(); - alpha_info_iter != mParamAlphaInfoList.end(); - alpha_info_iter++) + for (LLTexLayerParamAlphaInfo* alpha_info : mParamAlphaInfoList) { - LLTexLayerParamAlphaInfo * alpha_info = *alpha_info_iter; LLTexLayerParamAlpha* param_alpha = new LLTexLayerParamAlpha(appearance); if (!param_alpha->setInfo(alpha_info, TRUE)) { @@ -796,15 +775,13 @@ BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearab //mID = info->mID; // No ID mParamColorList.reserve(mInfo->mParamColorInfoList.size()); - for (param_color_info_list_t::const_iterator iter = mInfo->mParamColorInfoList.begin(); - iter != mInfo->mParamColorInfoList.end(); - iter++) + for (LLTexLayerParamColorInfo* color_info : mInfo->mParamColorInfoList) { LLTexLayerParamColor* param_color; if (!wearable) { param_color = new LLTexLayerParamColor(this); - if (!param_color->setInfo(*iter, TRUE)) + if (!param_color->setInfo(color_info, TRUE)) { mInfo = NULL; return FALSE; @@ -812,7 +789,7 @@ BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearab } else { - param_color = (LLTexLayerParamColor*)wearable->getVisualParam((*iter)->getID()); + param_color = (LLTexLayerParamColor*)wearable->getVisualParam(color_info->getID()); if (!param_color) { mInfo = NULL; @@ -823,15 +800,13 @@ BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearab } mParamAlphaList.reserve(mInfo->mParamAlphaInfoList.size()); - for (param_alpha_info_list_t::const_iterator iter = mInfo->mParamAlphaInfoList.begin(); - iter != mInfo->mParamAlphaInfoList.end(); - iter++) + for (LLTexLayerParamAlphaInfo* alpha_info : mInfo->mParamAlphaInfoList) { LLTexLayerParamAlpha* param_alpha; if (!wearable) { param_alpha = new LLTexLayerParamAlpha( this ); - if (!param_alpha->setInfo(*iter, TRUE)) + if (!param_alpha->setInfo(alpha_info, TRUE)) { mInfo = NULL; return FALSE; @@ -839,7 +814,7 @@ BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearab } else { - param_alpha = (LLTexLayerParamAlpha*) wearable->getVisualParam((*iter)->getID()); + param_alpha = (LLTexLayerParamAlpha*) wearable->getVisualParam(alpha_info->getID()); if (!param_alpha) { mInfo = NULL; @@ -873,12 +848,9 @@ LLWearableType::EType LLTexLayerInterface::getWearableType() const if (TEX_INVALID == te) { LLWearableType::EType type = LLWearableType::WT_INVALID; - param_color_list_t::const_iterator color_iter = mParamColorList.begin(); - param_alpha_list_t::const_iterator alpha_iter = mParamAlphaList.begin(); - for (; color_iter != mParamColorList.end(); color_iter++) + for (LLTexLayerParamColor* param : mParamColorList) { - LLTexLayerParamColor* param = *color_iter; if (param) { LLWearableType::EType new_type = (LLWearableType::EType)param->getWearableType(); @@ -893,9 +865,8 @@ LLWearableType::EType LLTexLayerInterface::getWearableType() const } } - for (; alpha_iter != mParamAlphaList.end(); alpha_iter++) + for (LLTexLayerParamAlpha* param : mParamAlphaList) { - LLTexLayerParamAlpha* param = *alpha_iter; if (param) { LLWearableType::EType new_type = (LLWearableType::EType)param->getWearableType(); @@ -938,18 +909,18 @@ void LLTexLayerInterface::invalidateMorphMasks() LLViewerVisualParam* LLTexLayerInterface::getVisualParamPtr(S32 index) const { LLViewerVisualParam *result = NULL; - for (param_color_list_t::const_iterator color_iter = mParamColorList.begin(); color_iter != mParamColorList.end() && !result; ++color_iter) + for (LLTexLayerParamColor* param : mParamColorList) { - if ((*color_iter)->getID() == index) + if (param->getID() == index) { - result = *color_iter; + result = param; } } - for (param_alpha_list_t::const_iterator alpha_iter = mParamAlphaList.begin(); alpha_iter != mParamAlphaList.end() && !result; ++alpha_iter) + for (LLTexLayerParamAlpha* param : mParamAlphaList) { - if ((*alpha_iter)->getID() == index) + if (param->getID() == index) { - result = *alpha_iter; + result = param; } } @@ -994,10 +965,9 @@ LLTexLayer::~LLTexLayer() //std::for_each(mParamAlphaList.begin(), mParamAlphaList.end(), DeletePointer()); //std::for_each(mParamColorList.begin(), mParamColorList.end(), DeletePointer()); - for( alpha_cache_t::iterator iter = mAlphaCache.begin(); - iter != mAlphaCache.end(); iter++ ) + for (alpha_cache_t::value_type& alpha_pair : mAlphaCache) { - U8* alpha_data = iter->second; + U8* alpha_data = alpha_pair.second; ll_aligned_free_32(alpha_data); } @@ -1021,10 +991,8 @@ BOOL LLTexLayer::setInfo(const LLTexLayerInfo* info, LLWearable* wearable ) //static void LLTexLayer::calculateTexLayerColor(const param_color_list_t ¶m_list, LLColor4 &net_color) { - for (param_color_list_t::const_iterator iter = param_list.begin(); - iter != param_list.end(); iter++) + for (const LLTexLayerParamColor* param : param_list) { - const LLTexLayerParamColor* param = *iter; LLColor4 param_net = param->getNetColor(); const LLTexLayerParamColorInfo *info = (LLTexLayerParamColorInfo *)param->getInfo(); switch(info->getOperation()) @@ -1049,10 +1017,8 @@ void LLTexLayer::calculateTexLayerColor(const param_color_list_t ¶m_list, LL /*virtual*/ void LLTexLayer::deleteCaches() { // Only need to delete caches for alpha params. Color params don't hold extra memory - for (param_alpha_list_t::iterator iter = mParamAlphaList.begin(); - iter != mParamAlphaList.end(); iter++ ) + for (LLTexLayerParamAlpha* param : mParamAlphaList) { - LLTexLayerParamAlpha* param = *iter; param->deleteCaches(); } } @@ -1226,9 +1192,8 @@ const U8* LLTexLayer::getAlphaData() const const LLUUID& uuid = getUUID(); alpha_mask_crc.update((U8*)(&uuid.mData), UUID_BYTES); - for (param_alpha_list_t::const_iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++) + for (const LLTexLayerParamAlpha* param : mParamAlphaList) { - const LLTexLayerParamAlpha* param = *iter; // MULTI-WEARABLE: verify visual parameters used here F32 param_weight = param->getWeight(); alpha_mask_crc.update((U8*)¶m_weight, sizeof(F32)); @@ -1365,9 +1330,8 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC // Accumulate alphas LLGLSNoAlphaTest gls_no_alpha_test; gGL.color4f( 1.f, 1.f, 1.f, 1.f ); - for (param_alpha_list_t::iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++) + for (LLTexLayerParamAlpha* param : mParamAlphaList) { - LLTexLayerParamAlpha* param = *iter; success &= param->render( x, y, width, height ); if (!success && !force_render) { @@ -1441,9 +1405,8 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC const LLUUID& uuid = getUUID(); alpha_mask_crc.update((U8*)(&uuid.mData), UUID_BYTES); - for (param_alpha_list_t::const_iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++) + for (const LLTexLayerParamAlpha* param : mParamAlphaList) { - const LLTexLayerParamAlpha* param = *iter; F32 param_weight = param->getWeight(); alpha_mask_crc.update((U8*)¶m_weight, sizeof(F32)); } @@ -1683,12 +1646,10 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const BOOL success = TRUE; updateWearableCache(); - for (wearable_cache_t::const_iterator iter = mWearableCache.begin(); iter!= mWearableCache.end(); iter++) + for (LLWearable* wearable : mWearableCache) { - LLWearable* wearable = NULL; LLLocalTextureObject *lto = NULL; LLTexLayer *layer = NULL; - wearable = *iter; if (wearable) { lto = wearable->getLocalTextureObject(mInfo->mLocalTexture); @@ -1785,17 +1746,15 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const //----------------------------------------------------------------------------- LLTexLayerInterface* LLTexLayerSet::findLayerByName(const std::string& name) { - for (layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) + for (LLTexLayerInterface* layer : mLayerList) { - LLTexLayerInterface* layer = *iter; if (layer->getName() == name) { return layer; } } - for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++ ) + for (LLTexLayerInterface* layer : mMaskLayerList) { - LLTexLayerInterface* layer = *iter; if (layer->getName() == name) { return layer; @@ -1807,20 +1766,20 @@ LLTexLayerInterface* LLTexLayerSet::findLayerByName(const std::string& name) void LLTexLayerSet::cloneTemplates(LLLocalTextureObject *lto, LLAvatarAppearanceDefines::ETextureIndex tex_index, LLWearable *wearable) { // initialize all texlayers with this texture type for this LTO - for( LLTexLayerSet::layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ ) + for(LLTexLayerInterface* layer : mLayerList) { - LLTexLayerTemplate* layer = (LLTexLayerTemplate*)*iter; - if (layer->getInfo()->getLocalTexture() == (S32) tex_index) + LLTexLayerTemplate* layer_template = (LLTexLayerTemplate*)layer; + if (layer_template->getInfo()->getLocalTexture() == (S32)tex_index) { - lto->addTexLayer(layer, wearable); + lto->addTexLayer(layer_template, wearable); } } - for( LLTexLayerSet::layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++ ) + for(LLTexLayerInterface* layer : mMaskLayerList) { - LLTexLayerTemplate* layer = (LLTexLayerTemplate*)*iter; - if (layer->getInfo()->getLocalTexture() == (S32) tex_index) + LLTexLayerTemplate* layer_template = (LLTexLayerTemplate*)layer; + if (layer_template->getInfo()->getLocalTexture() == (S32)tex_index) { - lto->addTexLayer(layer, wearable); + lto->addTexLayer(layer_template, wearable); } } } diff --git a/indra/llappearance/lltexlayerparams.cpp b/indra/llappearance/lltexlayerparams.cpp index ce5c7142d5..a288c8955a 100644 --- a/indra/llappearance/lltexlayerparams.cpp +++ b/indra/llappearance/lltexlayerparams.cpp @@ -103,10 +103,8 @@ void LLTexLayerParamAlpha::getCacheByteCount(S32* gl_bytes) { *gl_bytes = 0; - for (param_alpha_ptr_list_t::iterator iter = sInstances.begin(); - iter != sInstances.end(); iter++) + for (LLTexLayerParamAlpha* instance : sInstances) { - LLTexLayerParamAlpha* instance = *iter; LLGLTexture* tex = instance->mCachedProcessedTexture; if (tex) { diff --git a/indra/llappearance/llwearable.cpp b/indra/llappearance/llwearable.cpp index e4bc8ff427..10d668d0af 100644 --- a/indra/llappearance/llwearable.cpp +++ b/indra/llappearance/llwearable.cpp @@ -60,12 +60,12 @@ LLWearable::LLWearable() // virtual LLWearable::~LLWearable() { - for (visual_param_index_map_t::iterator vpIter = mVisualParamIndexMap.begin(); vpIter != mVisualParamIndexMap.end(); ++vpIter) + for (visual_param_index_map_t::value_type& vp_pair : mVisualParamIndexMap) { - LLVisualParam* vp = vpIter->second; + LLVisualParam* vp = vp_pair.second; vp->clearNextParam(); delete vp; - vpIter->second = NULL; + vp_pair.second = NULL; } destroyTextures(); @@ -122,12 +122,10 @@ BOOL LLWearable::exportStream( std::ostream& output_stream ) const // parameters output_stream << "parameters " << mVisualParamIndexMap.size() << "\n"; - for (visual_param_index_map_t::const_iterator iter = mVisualParamIndexMap.begin(); - iter != mVisualParamIndexMap.end(); - ++iter) + for (const visual_param_index_map_t::value_type& vp_pair : mVisualParamIndexMap) { - S32 param_id = iter->first; - const LLVisualParam* param = iter->second; + S32 param_id = vp_pair.first; + const LLVisualParam* param = vp_pair.second; F32 param_weight = param->getWeight(); output_stream << param_id << " " << terse_F32_to_string( param_weight ) << "\n"; } @@ -135,11 +133,11 @@ BOOL LLWearable::exportStream( std::ostream& output_stream ) const // texture entries output_stream << "textures " << mTEMap.size() << "\n"; - for (te_map_t::const_iterator iter = mTEMap.begin(); iter != mTEMap.end(); ++iter) + for (const te_map_t::value_type& te_pair : mTEMap) { - S32 te = iter->first; - const LLUUID& image_id = iter->second->getID(); - output_stream << te << " " << image_id << "\n"; + S32 te = te_pair.first; + const LLUUID& image_id = te_pair.second->getID(); + output_stream << te << " " << image_id << "\n"; } return TRUE; } @@ -160,11 +158,9 @@ void LLWearable::createVisualParams(LLAvatarAppearance *avatarp) } // resync driver parameters to point to the newly cloned driven parameters - for (visual_param_index_map_t::iterator param_iter = mVisualParamIndexMap.begin(); - param_iter != mVisualParamIndexMap.end(); - ++param_iter) + for (visual_param_index_map_t::value_type& param_pair : mVisualParamIndexMap) { - LLVisualParam* param = param_iter->second; + LLVisualParam* param = param_pair.second; LLVisualParam*(LLWearable::*wearable_function)(S32)const = &LLWearable::getVisualParam; // need this line to disambiguate between versions of LLCharacter::getVisualParam() LLVisualParam*(LLAvatarAppearance::*param_function)(S32)const = &LLAvatarAppearance::getVisualParam; @@ -523,10 +519,9 @@ std::vector<LLLocalTextureObject*> LLWearable::getLocalTextureListSeq() { std::vector<LLLocalTextureObject*> result; - for(te_map_t::const_iterator iter = mTEMap.begin(); - iter != mTEMap.end(); iter++) + for(te_map_t::value_type& te_pair : mTEMap) { - LLLocalTextureObject* lto = iter->second; + LLLocalTextureObject* lto = te_pair.second; result.push_back(lto); } @@ -547,37 +542,15 @@ void LLWearable::revertValues() // FIXME DRANO - this triggers changes to driven params on avatar, potentially clobbering baked appearance. //update saved settings so wearable is no longer dirty - // non-driver params first - for (param_map_t::const_iterator iter = mSavedVisualParamMap.begin(); iter != mSavedVisualParamMap.end(); iter++) - { - S32 id = iter->first; - F32 value = iter->second; - LLVisualParam *param = getVisualParam(id); - if(param && !dynamic_cast<LLDriverParam*>(param) ) - { - setVisualParamWeight(id, value); - } - } - - //then driver params - for (param_map_t::const_iterator iter = mSavedVisualParamMap.begin(); iter != mSavedVisualParamMap.end(); iter++) + // One loop should be necessary here + for (param_map_t::value_type& vp_pair : mSavedVisualParamMap) { - S32 id = iter->first; - F32 value = iter->second; + S32 id = vp_pair.first; LLVisualParam *param = getVisualParam(id); - if(param && dynamic_cast<LLDriverParam*>(param) ) + if(param) { + F32 value = vp_pair.second; setVisualParamWeight(id, value); - } - } - - // make sure that saved values are sane - for (param_map_t::const_iterator iter = mSavedVisualParamMap.begin(); iter != mSavedVisualParamMap.end(); iter++) - { - S32 id = iter->first; - LLVisualParam *param = getVisualParam(id); - if( param ) - { mSavedVisualParamMap[id] = param->getWeight(); } } @@ -589,10 +562,10 @@ void LLWearable::saveValues() { //update saved settings so wearable is no longer dirty mSavedVisualParamMap.clear(); - for (visual_param_index_map_t::const_iterator iter = mVisualParamIndexMap.begin(); iter != mVisualParamIndexMap.end(); ++iter) + for (const visual_param_index_map_t::value_type& vp_pair : mVisualParamIndexMap) { - S32 id = iter->first; - LLVisualParam *wearable_param = iter->second; + S32 id = vp_pair.first; + LLVisualParam *wearable_param = vp_pair.second; F32 value = wearable_param->getWeight(); mSavedVisualParamMap[id] = value; } @@ -706,23 +679,18 @@ LLVisualParam* LLWearable::getVisualParam(S32 index) const void LLWearable::getVisualParams(visual_param_vec_t &list) { - visual_param_index_map_t::iterator iter = mVisualParamIndexMap.begin(); - visual_param_index_map_t::iterator end = mVisualParamIndexMap.end(); - // add all visual params to the passed-in vector - for( ; iter != end; ++iter ) + for(visual_param_index_map_t::value_type& vp_pair : mVisualParamIndexMap) { - list.push_back(iter->second); + list.push_back(vp_pair.second); } } void LLWearable::animateParams(F32 delta) { - for(visual_param_index_map_t::iterator iter = mVisualParamIndexMap.begin(); - iter != mVisualParamIndexMap.end(); - ++iter) + for(visual_param_index_map_t::value_type& vp_pair : mVisualParamIndexMap) { - LLVisualParam *param = (LLVisualParam*) iter->second; + LLVisualParam *param = (LLVisualParam*)vp_pair.second; param->animate(delta); } } diff --git a/indra/llappearance/llwearable.h b/indra/llappearance/llwearable.h index 875c2932f1..d86db236a3 100644 --- a/indra/llappearance/llwearable.h +++ b/indra/llappearance/llwearable.h @@ -32,7 +32,6 @@ #include "llsaleinfo.h" #include "llwearabletype.h" -class LLMD5; class LLVisualParam; class LLTexGlobalColorInfo; class LLTexGlobalColor; @@ -110,9 +109,6 @@ public: // Something happened that requires the wearable to be updated (e.g. worn/unworn). virtual void setUpdated() const = 0; - // Update the baked texture hash. - virtual void addToBakedTextureHash(LLMD5& hash) const = 0; - typedef std::map<S32, LLVisualParam *> visual_param_index_map_t; visual_param_index_map_t mVisualParamIndexMap; diff --git a/indra/llappearance/llwearabledata.cpp b/indra/llappearance/llwearabledata.cpp index 0eaeedb6ee..9fbbc57c87 100644 --- a/indra/llappearance/llwearabledata.cpp +++ b/indra/llappearance/llwearabledata.cpp @@ -31,7 +31,6 @@ #include "llavatarappearance.h" #include "llavatarappearancedefines.h" #include "lldriverparam.h" -#include "llmd5.h" LLWearableData::LLWearableData() : mAvatarAppearance(NULL) @@ -343,42 +342,3 @@ U32 LLWearableData::getWearableCount(const U32 tex_index) const const LLWearableType::EType wearable_type = LLAvatarAppearance::getDictionary()->getTEWearableType((LLAvatarAppearanceDefines::ETextureIndex)tex_index); return getWearableCount(wearable_type); } - -LLUUID LLWearableData::computeBakedTextureHash(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index, - BOOL generate_valid_hash) // Set to false if you want to upload the baked texture w/o putting it in the cache -{ - LLUUID hash_id; - bool hash_computed = false; - LLMD5 hash; - const LLAvatarAppearanceDictionary::BakedEntry *baked_dict = LLAvatarAppearance::getDictionary()->getBakedTexture(baked_index); - - for (U8 i=0; i < baked_dict->mWearables.size(); i++) - { - const LLWearableType::EType baked_type = baked_dict->mWearables[i]; - const U32 num_wearables = getWearableCount(baked_type); - for (U32 index = 0; index < num_wearables; ++index) - { - const LLWearable* wearable = getWearable(baked_type,index); - if (wearable) - { - wearable->addToBakedTextureHash(hash); - hash_computed = true; - } - } - } - if (hash_computed) - { - hash.update((const unsigned char*)baked_dict->mWearablesHashID.mData, UUID_BYTES); - - if (!generate_valid_hash) - { - invalidateBakedTextureHash(hash); - } - hash.finalize(); - hash.raw_digest(hash_id.mData); - } - - return hash_id; -} - - diff --git a/indra/llappearance/llwearabledata.h b/indra/llappearance/llwearabledata.h index a0c446ea9e..b8e0bf8bd1 100644 --- a/indra/llappearance/llwearabledata.h +++ b/indra/llappearance/llwearabledata.h @@ -86,15 +86,6 @@ private: void pullCrossWearableValues(const LLWearableType::EType type); //-------------------------------------------------------------------- - // Server Communication - //-------------------------------------------------------------------- -public: - LLUUID computeBakedTextureHash(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index, - BOOL generate_valid_hash = TRUE); -protected: - virtual void invalidateBakedTextureHash(LLMD5& hash) const {} - - //-------------------------------------------------------------------- // Member variables //-------------------------------------------------------------------- protected: diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp index 008e1827c5..a387bb23cd 100644 --- a/indra/llaudio/llaudioengine.cpp +++ b/indra/llaudio/llaudioengine.cpp @@ -123,18 +123,16 @@ void LLAudioEngine::shutdown() cleanupWind(); // Clean up audio sources - source_map::iterator iter_src; - for (iter_src = mAllSources.begin(); iter_src != mAllSources.end(); iter_src++) + for (source_map::value_type& src_pair : mAllSources) { - delete iter_src->second; + delete src_pair.second; } // Clean up audio data - data_map::iterator iter_data; - for (iter_data = mAllData.begin(); iter_data != mAllData.end(); iter_data++) + for (data_map::value_type& data_pair : mAllData) { - delete iter_data->second; + delete data_pair.second; } @@ -206,7 +204,8 @@ std::string LLAudioEngine::getInternetStreamURL() { if (mStreamingAudioImpl) return mStreamingAudioImpl->getURL(); - else return std::string(); + + return std::string(); } @@ -310,12 +309,12 @@ void LLAudioEngine::idle() updateChannels(); // Update queued sounds (switch to next queued data if the current has finished playing) - for (iter = mAllSources.begin(); iter != mAllSources.end(); ++iter) + for (source_map::value_type& src_pair : mAllSources) { // This is lame, instead of this I could actually iterate through all the sources // attached to each channel, since only those with active channels // can have anything interesting happen with their queue? (Maybe not true) - LLAudioSource *sourcep = iter->second; + LLAudioSource *sourcep = src_pair.second; if (!sourcep->mQueuedDatap || sourcep->isMuted()) { // Muted, or nothing queued, so we don't care. @@ -347,42 +346,43 @@ void LLAudioEngine::idle() } continue; } - else + + // Check to see if the current sound is done playing. + if (!channelp->isPlaying()) { - // Check to see if the current sound is done playing, or looped. - if (!channelp->isPlaying()) + sourcep->mCurrentDatap = sourcep->mQueuedDatap; + sourcep->mQueuedDatap = NULL; + + // Reset the timer so the source doesn't die. + sourcep->mAgeTimer.reset(); + + // Make sure we have the buffer set up if we just decoded the data + if (sourcep->mCurrentDatap) { - sourcep->mCurrentDatap = sourcep->mQueuedDatap; - sourcep->mQueuedDatap = NULL; + updateBufferForData(sourcep->mCurrentDatap); + } - // Reset the timer so the source doesn't die. - sourcep->mAgeTimer.reset(); + // Actually play the associated data. + sourcep->setupChannel(); + channelp->updateBuffer(); + sourcep->getChannel()->play(); + continue; + } - // Make sure we have the buffer set up if we just decoded the data - if (sourcep->mCurrentDatap) - { - updateBufferForData(sourcep->mCurrentDatap); - } + // Check to see if the current sound is looped. + if (sourcep->isLoop()) + { + // It's a loop, we need to check and see if we're done with it. + if (channelp->mLoopedThisFrame) + { + sourcep->mCurrentDatap = sourcep->mQueuedDatap; + sourcep->mQueuedDatap = NULL; - // Actually play the associated data. + // Actually, should do a time sync so if we're a loop master/slave + // we don't drift away. sourcep->setupChannel(); - channelp->updateBuffer(); sourcep->getChannel()->play(); } - else if (sourcep->isLoop()) - { - // It's a loop, we need to check and see if we're done with it. - if (channelp->mLoopedThisFrame) - { - sourcep->mCurrentDatap = sourcep->mQueuedDatap; - sourcep->mQueuedDatap = NULL; - - // Actually, should do a time sync so if we're a loop master/slave - // we don't drift away. - sourcep->setupChannel(); - sourcep->getChannel()->play(); - } - } } } @@ -395,21 +395,14 @@ void LLAudioEngine::idle() LLAudioSource *sync_masterp = NULL; LLAudioChannel *master_channelp = NULL; F32 max_sm_priority = -1.f; - for (iter = mAllSources.begin(); iter != mAllSources.end(); ++iter) + for (source_map::value_type& src_pair : mAllSources) { - LLAudioSource *sourcep = iter->second; - if (sourcep->isMuted()) + LLAudioSource *sourcep = src_pair.second; + if (sourcep->isMuted() && sourcep->isSyncMaster() && sourcep->getPriority() > max_sm_priority) { - continue; - } - if (sourcep->isSyncMaster()) - { - if (sourcep->getPriority() > max_sm_priority) - { - sync_masterp = sourcep; - master_channelp = sync_masterp->getChannel(); - max_sm_priority = sourcep->getPriority(); - } + sync_masterp = sourcep; + master_channelp = sync_masterp->getChannel(); + max_sm_priority = sourcep->getPriority(); } } @@ -417,9 +410,9 @@ void LLAudioEngine::idle() { // Synchronize loop slaves with their masters // Update queued sounds (switch to next queued data if the current has finished playing) - for (iter = mAllSources.begin(); iter != mAllSources.end(); ++iter) + for (source_map::value_type& src_pair : mAllSources) { - LLAudioSource *sourcep = iter->second; + LLAudioSource *sourcep = src_pair.second; if (!sourcep->isSyncSlave()) { @@ -739,7 +732,7 @@ F64 LLAudioEngine::mapWindVecToGain(LLVector3 wind_vec) } return (gain); -} +} F64 LLAudioEngine::mapWindVecToPitch(LLVector3 wind_vec) @@ -966,12 +959,11 @@ void LLAudioEngine::cleanupAudioSource(LLAudioSource *asp) else { LL_DEBUGS("AudioEngine") << "Cleaning up audio sources for "<< asp->getID() <<LL_ENDL; - delete asp; - mAllSources.erase(iter); -} + delete asp; + mAllSources.erase(iter); + } } - bool LLAudioEngine::hasDecodedFile(const LLUUID &uuid) { std::string uuid_str; @@ -1115,9 +1107,9 @@ void LLAudioEngine::startNextTransfer() } - for (data_iter = asp->mPreloadMap.begin(); data_iter != asp->mPreloadMap.end(); data_iter++) + for (data_map::value_type& preload_pair : asp->mPreloadMap) { - LLAudioData *adp = data_iter->second; + LLAudioData *adp = preload_pair.second; if (!adp) { continue; @@ -1137,9 +1129,9 @@ void LLAudioEngine::startNextTransfer() { max_pri = -1.f; source_map::iterator source_iter; - for (source_iter = mAllSources.begin(); source_iter != mAllSources.end(); source_iter++) + for (source_map::value_type& source_pair : mAllSources) { - asp = source_iter->second; + asp = source_pair.second; if (!asp) { continue; @@ -1166,9 +1158,9 @@ void LLAudioEngine::startNextTransfer() continue; } - for (data_iter = asp->mPreloadMap.begin(); data_iter != asp->mPreloadMap.end(); data_iter++) + for (data_map::value_type& preload_pair : asp->mPreloadMap) { - LLAudioData *adp = data_iter->second; + LLAudioData *adp = preload_pair.second; if (!adp) { continue; @@ -1603,10 +1595,9 @@ void LLAudioSource::addAudioData(LLAudioData *adp, const bool set_current) bool LLAudioSource::hasPendingPreloads() const { // Check to see if we've got any preloads on deck for this source - data_map::const_iterator iter; - for (iter = mPreloadMap.begin(); iter != mPreloadMap.end(); iter++) + for (const data_map::value_type& preload_pair : mPreloadMap) { - LLAudioData *adp = iter->second; + LLAudioData *adp = preload_pair.second; // note: a bad UUID will forever be !hasDecodedData() // but also hasDecodeFailed(), hence the check for hasDecodeFailed() if (!adp) @@ -1690,20 +1681,19 @@ void LLAudioChannel::setSource(LLAudioSource *sourcep) { LL_DEBUGS("AudioEngine") << "( id: " << sourcep->getID() << ")" << LL_ENDL; - if (sourcep == mCurrentSourcep) - { - // Don't reallocate the channel, this will make FMOD goofy. - //LL_INFOS() << "Calling setSource with same source!" << LL_ENDL; - } + if (sourcep == mCurrentSourcep) + { + // Don't reallocate the channel, this will make FMOD goofy. + //LL_INFOS() << "Calling setSource with same source!" << LL_ENDL; + } - mCurrentSourcep = sourcep; + mCurrentSourcep = sourcep; - updateBuffer(); - update3DPosition(); -} + updateBuffer(); + update3DPosition(); + } } - bool LLAudioChannel::updateBuffer() { if (!gAudiop) diff --git a/indra/llaudio/llaudioengine.h b/indra/llaudio/llaudioengine.h index 0fe8b3d756..a133898969 100755 --- a/indra/llaudio/llaudioengine.h +++ b/indra/llaudio/llaudioengine.h @@ -90,6 +90,7 @@ public: // initialization/startup/shutdown virtual bool init(void *userdata, const std::string &app_title); virtual std::string getDriverName(bool verbose) = 0; + virtual LLStreamingAudioInterface *createDefaultStreamingAudioImpl() const = 0; virtual void shutdown(); // Used by the mechanics of the engine @@ -468,13 +469,13 @@ struct SoundData const LLUUID& owner_id, const F32 gain, const S32 type = LLAudioEngine::AUDIO_TYPE_NONE, - const LLVector3d &pos_global = LLVector3d::zero) + const LLVector3d &pos_global = LLVector3d::zero) : + audio_uuid(audio_uuid), + owner_id(owner_id), + gain(gain), + type(type), + pos_global(pos_global) { - this->audio_uuid = audio_uuid; - this->owner_id = owner_id; - this->gain = gain; - this->type = type; - this->pos_global = pos_global; } }; diff --git a/indra/llaudio/llaudioengine_fmodstudio.cpp b/indra/llaudio/llaudioengine_fmodstudio.cpp index ba743020b5..c6313ea289 100644 --- a/indra/llaudio/llaudioengine_fmodstudio.cpp +++ b/indra/llaudio/llaudioengine_fmodstudio.cpp @@ -208,10 +208,6 @@ bool LLAudioEngine_FMODSTUDIO::init(void* userdata, const std::string &app_title } #endif - // set up our favourite FMOD-native streaming audio implementation if none has already been added - if (!getStreamingAudioImpl()) // no existing implementation added - setStreamingAudioImpl(new LLStreamingAudio_FMODSTUDIO(mSystem)); - LL_INFOS("AppInit") << "LLAudioEngine_FMODSTUDIO::init() FMOD Studio initialized correctly" << LL_ENDL; int r_numbuffers, r_samplerate, r_channels; @@ -253,6 +249,13 @@ std::string LLAudioEngine_FMODSTUDIO::getDriverName(bool verbose) } +// create our favourite FMOD-native streaming audio implementation +LLStreamingAudioInterface *LLAudioEngine_FMODSTUDIO::createDefaultStreamingAudioImpl() const +{ + return new LLStreamingAudio_FMODSTUDIO(mSystem); +} + + void LLAudioEngine_FMODSTUDIO::allocateListener(void) { mListenerp = (LLListener *) new LLListener_FMODSTUDIO(mSystem); diff --git a/indra/llaudio/llaudioengine_fmodstudio.h b/indra/llaudio/llaudioengine_fmodstudio.h index d3d6d69685..29e7bc6bf0 100644 --- a/indra/llaudio/llaudioengine_fmodstudio.h +++ b/indra/llaudio/llaudioengine_fmodstudio.h @@ -53,6 +53,7 @@ public: // initialization/startup/shutdown virtual bool init(void *user_data, const std::string &app_title); virtual std::string getDriverName(bool verbose); + virtual LLStreamingAudioInterface* createDefaultStreamingAudioImpl() const; virtual void allocateListener(); virtual void shutdown(); diff --git a/indra/llcharacter/llanimationstates.cpp b/indra/llcharacter/llanimationstates.cpp index c16cae1bbc..2e78e30405 100644 --- a/indra/llcharacter/llanimationstates.cpp +++ b/indra/llcharacter/llanimationstates.cpp @@ -379,12 +379,11 @@ LLUUID LLAnimationLibrary::stringToAnimState( const std::string& name, BOOL allo if (true_name) { - for (anim_map_t::iterator iter = mAnimMap.begin(); - iter != mAnimMap.end(); iter++) + for (anim_map_t::value_type& anim_pair : mAnimMap) { - if (iter->second == true_name) + if (anim_pair.second == true_name) { - id = iter->first; + id = anim_pair.first; break; } } diff --git a/indra/llcharacter/llbvhloader.cpp b/indra/llcharacter/llbvhloader.cpp index c38614b0b4..117d408b21 100644 --- a/indra/llcharacter/llbvhloader.cpp +++ b/indra/llcharacter/llbvhloader.cpp @@ -156,10 +156,9 @@ LLBVHLoader::LLBVHLoader(const char* buffer, ELoadStatus &loadStatus, S32 &error } // Recognize all names we've been told are legal. - std::map<std::string, std::string>::iterator iter; - for (iter = joint_alias_map.begin(); iter != joint_alias_map.end(); iter++) + for (std::map<std::string, std::string>::value_type& alias_pair : joint_alias_map) { - makeTranslation( iter->first , iter->second ); + makeTranslation( alias_pair.first , alias_pair.second ); } char error_text[128]; /* Flawfinder: ignore */ @@ -950,10 +949,8 @@ ELoadStatus LLBVHLoader::loadBVHFile(const char *buffer, char* error_text, S32 & //------------------------------------------------------------------------ void LLBVHLoader::applyTranslations() { - JointVector::iterator ji; - for (ji = mJoints.begin(); ji != mJoints.end(); ++ji ) + for (Joint* joint : mJoints) { - Joint *joint = *ji; //---------------------------------------------------------------- // Look for a translation for this joint. // If none, skip to next joint @@ -1066,10 +1063,8 @@ void LLBVHLoader::optimize() mEaseOut *= factor; } - JointVector::iterator ji; - for (ji = mJoints.begin(); ji != mJoints.end(); ++ji) + for (Joint* joint : mJoints) { - Joint *joint = *ji; BOOL pos_changed = FALSE; BOOL rot_changed = FALSE; @@ -1294,15 +1289,12 @@ U32 LLBVHLoader::getOutputSize() // writes contents to datapacker BOOL LLBVHLoader::serialize(LLDataPacker& dp) { - JointVector::iterator ji; - KeyVector::iterator ki; F32 time; // count number of non-ignored joints S32 numJoints = 0; - for (ji=mJoints.begin(); ji!=mJoints.end(); ++ji) + for (Joint* joint : mJoints) { - Joint *joint = *ji; if ( ! joint->mIgnore ) numJoints++; } @@ -1321,11 +1313,8 @@ BOOL LLBVHLoader::serialize(LLDataPacker& dp) dp.packU32(mHand, "hand_pose"); dp.packU32(numJoints, "num_joints"); - for ( ji = mJoints.begin(); - ji != mJoints.end(); - ++ji ) + for (Joint* joint : mJoints) { - Joint *joint = *ji; // if ignored, skip it if ( joint->mIgnore ) continue; @@ -1348,17 +1337,15 @@ BOOL LLBVHLoader::serialize(LLDataPacker& dp) Joint *mergeParent = NULL; Joint *mergeChild = NULL; - JointVector::iterator mji; - for (mji=mJoints.begin(); mji!=mJoints.end(); ++mji) + for (Joint* mjoint : mJoints) { - Joint *mjoint = *mji; if ( !joint->mMergeParentName.empty() && (mjoint->mName == joint->mMergeParentName) ) { - mergeParent = *mji; + mergeParent = mjoint; } if ( !joint->mMergeChildName.empty() && (mjoint->mName == joint->mMergeChildName) ) { - mergeChild = *mji; + mergeChild = mjoint; } } @@ -1367,19 +1354,17 @@ BOOL LLBVHLoader::serialize(LLDataPacker& dp) LLQuaternion::Order order = bvhStringToOrder( joint->mOrder ); S32 outcount = 0; S32 frame = 0; - for ( ki = joint->mKeys.begin(); - ki != joint->mKeys.end(); - ++ki ) + for (Key& key : joint->mKeys) { if ((frame == 0) && joint->mRelativeRotationKey) { - first_frame_rot = mayaQ( ki->mRot[0], ki->mRot[1], ki->mRot[2], order); + first_frame_rot = mayaQ( key.mRot[0], key.mRot[1], key.mRot[2], order); fixup_rot.shortestArc(LLVector3::z_axis * first_frame_rot * frameRot, LLVector3::z_axis); } - if (ki->mIgnoreRot) + if (key.mIgnoreRot) { frame++; continue; @@ -1418,7 +1403,7 @@ BOOL LLBVHLoader::serialize(LLDataPacker& dp) mergeChildRot.loadIdentity(); } - LLQuaternion inRot = mayaQ( ki->mRot[0], ki->mRot[1], ki->mRot[2], order); + LLQuaternion inRot = mayaQ( key.mRot[0], key.mRot[1], key.mRot[2], order); LLQuaternion outRot = frameRotInv* mergeChildRot * inRot * mergeParentRot * ~first_frame_rot * frameRot * offsetRot; @@ -1446,16 +1431,14 @@ BOOL LLBVHLoader::serialize(LLDataPacker& dp) LLVector3 relKey; frame = 0; - for ( ki = joint->mKeys.begin(); - ki != joint->mKeys.end(); - ++ki ) + for (Key& key : joint->mKeys) { if ((frame == 0) && joint->mRelativePositionKey) { - relKey.setVec(ki->mPos); + relKey.setVec(key.mPos); } - if (ki->mIgnorePos) + if (key.mIgnorePos) { frame++; continue; @@ -1463,7 +1446,7 @@ BOOL LLBVHLoader::serialize(LLDataPacker& dp) time = llmax((F32)(frame - NUMBER_OF_IGNORED_FRAMES_AT_START), 0.0f) * mFrameTime; // Time elapsed before this frame starts. - LLVector3 inPos = (LLVector3(ki->mPos) - relKey) * ~first_frame_rot;// * fixup_rot; + LLVector3 inPos = (LLVector3(key.mPos) - relKey) * ~first_frame_rot;// * fixup_rot; LLVector3 outPos = inPos * frameRot * offsetRot; outPos *= INCHES_TO_METERS; @@ -1496,24 +1479,22 @@ BOOL LLBVHLoader::serialize(LLDataPacker& dp) S32 num_constraints = (S32)mConstraints.size(); dp.packS32(num_constraints, "num_constraints"); - for (ConstraintVector::iterator constraint_it = mConstraints.begin(); - constraint_it != mConstraints.end(); - constraint_it++) + for (Constraint& constraint : mConstraints) { - U8 byte = constraint_it->mChainLength; + U8 byte = constraint.mChainLength; dp.packU8(byte, "chain_length"); - byte = constraint_it->mConstraintType; + byte = constraint.mConstraintType; dp.packU8(byte, "constraint_type"); - dp.packBinaryDataFixed((U8*)constraint_it->mSourceJointName, 16, "source_volume"); - dp.packVector3(constraint_it->mSourceOffset, "source_offset"); - dp.packBinaryDataFixed((U8*)constraint_it->mTargetJointName, 16, "target_volume"); - dp.packVector3(constraint_it->mTargetOffset, "target_offset"); - dp.packVector3(constraint_it->mTargetDir, "target_dir"); - dp.packF32(constraint_it->mEaseInStart, "ease_in_start"); - dp.packF32(constraint_it->mEaseInStop, "ease_in_stop"); - dp.packF32(constraint_it->mEaseOutStart, "ease_out_start"); - dp.packF32(constraint_it->mEaseOutStop, "ease_out_stop"); + dp.packBinaryDataFixed((U8*)constraint.mSourceJointName, 16, "source_volume"); + dp.packVector3(constraint.mSourceOffset, "source_offset"); + dp.packBinaryDataFixed((U8*)constraint.mTargetJointName, 16, "target_volume"); + dp.packVector3(constraint.mTargetOffset, "target_offset"); + dp.packVector3(constraint.mTargetDir, "target_dir"); + dp.packF32(constraint.mEaseInStart, "ease_in_start"); + dp.packF32(constraint.mEaseInStop, "ease_in_stop"); + dp.packF32(constraint.mEaseOutStart, "ease_out_start"); + dp.packF32(constraint.mEaseOutStop, "ease_out_stop"); } diff --git a/indra/llcharacter/llcharacter.cpp b/indra/llcharacter/llcharacter.cpp index 376f096642..cf6be8daf0 100644 --- a/indra/llcharacter/llcharacter.cpp +++ b/indra/llcharacter/llcharacter.cpp @@ -246,10 +246,8 @@ void LLCharacter::dumpCharacter( LLJoint* joint ) LL_INFOS() << "DEBUG: " << joint->getName() << " (" << (joint->getParent()?joint->getParent()->getName():std::string("ROOT")) << ")" << LL_ENDL; // recurse - for (LLJoint::joints_t::iterator iter = joint->mChildren.begin(); - iter != joint->mChildren.end(); ++iter) + for (LLJoint* child_joint : joint->mChildren) { - LLJoint* child_joint = *iter; dumpCharacter(child_joint); } } diff --git a/indra/llcharacter/llcharacter.h b/indra/llcharacter/llcharacter.h index 2fac5f53a6..6d56d59e8c 100644 --- a/indra/llcharacter/llcharacter.h +++ b/indra/llcharacter/llcharacter.h @@ -218,11 +218,9 @@ public: S32 getVisualParamCountInGroup(const EVisualParamGroup group) const { S32 rtn = 0; - for (visual_param_index_map_t::const_iterator iter = mVisualParamIndexMap.begin(); - iter != mVisualParamIndexMap.end(); - /**/ ) + for (const visual_param_index_map_t::value_type& index_pair : mVisualParamIndexMap) { - if ((iter++)->second->getGroup() == group) + if (index_pair.second->getGroup() == group) { ++rtn; } @@ -237,11 +235,10 @@ public: } S32 getVisualParamID(LLVisualParam *id) { - visual_param_index_map_t::iterator iter; - for (iter = mVisualParamIndexMap.begin(); iter != mVisualParamIndexMap.end(); iter++) + for (visual_param_index_map_t::value_type& index_pair : mVisualParamIndexMap) { - if (iter->second == id) - return iter->first; + if (index_pair.second == id) + return index_pair.first; } return 0; } diff --git a/indra/llcharacter/llgesture.cpp b/indra/llcharacter/llgesture.cpp index 37904936d8..80717d8d26 100644 --- a/indra/llcharacter/llgesture.cpp +++ b/indra/llcharacter/llgesture.cpp @@ -199,15 +199,14 @@ BOOL LLGestureList::triggerAndReviseString(const std::string &string, std::strin typedef boost::tokenizer<boost::char_separator<char> > tokenizer; boost::char_separator<char> sep(" "); tokenizer tokens(string, sep); - tokenizer::iterator token_iter; - for( token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter) + for(const std::string& cur_token : tokens) { LLGesture* gesture = NULL; if( !found_gestures ) // Only pay attention to the first gesture in the string. { - std::string cur_token_lower = *token_iter; + std::string cur_token_lower = cur_token; LLStringUtil::toLower(cur_token_lower); for (U32 i = 0; i < mList.size(); i++) @@ -228,7 +227,7 @@ BOOL LLGestureList::triggerAndReviseString(const std::string &string, std::strin LLStringUtil::toLower(output_lower); if( cur_token_lower == output_lower ) { - revised_string->append(*token_iter); + revised_string->append(cur_token); } else { @@ -249,7 +248,7 @@ BOOL LLGestureList::triggerAndReviseString(const std::string &string, std::strin { revised_string->append( " " ); } - revised_string->append( *token_iter ); + revised_string->append( cur_token ); } first_token = FALSE; diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp index d72282ab42..06f3bedf85 100644 --- a/indra/llcharacter/lljoint.cpp +++ b/indra/llcharacter/lljoint.cpp @@ -67,11 +67,10 @@ void LLVector3OverrideMap::showJointVector3Overrides( std::ostringstream& os ) c map_type::const_iterator max_it = std::max_element(m_map.begin(), m_map.end(), attachment_map_iter_compare_key<map_type::value_type>); - for (map_type::const_iterator it = m_map.begin(); - it != m_map.end(); ++it) + for (const map_type::value_type& pos_pair : m_map) { - const LLVector3& pos = it->second; - os << " " << "[" << it->first <<": " << pos << "]" << ((it==max_it) ? "*" : ""); + const LLVector3& pos = pos_pair.second; + os << " " << "[" << pos_pair.first <<": " << pos << "]" << ((pos_pair==(*max_it)) ? "*" : ""); } } @@ -209,10 +208,8 @@ void LLJoint::touch(U32 flags) child_flags |= POSITION_DIRTY; } - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* joint : mChildren) { - LLJoint* joint = *iter; joint->touch(child_flags); } } @@ -251,10 +248,8 @@ LLJoint *LLJoint::findJoint( const std::string &name ) if (name == getName()) return this; - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* joint : mChildren) { - LLJoint* joint = *iter; LLJoint *found = joint->findJoint(name); if (found) { @@ -514,10 +509,9 @@ void LLJoint::getAllAttachmentPosOverrides(S32& num_pos_overrides, std::set<LLVector3>& distinct_pos_overrides) const { num_pos_overrides = m_attachmentPosOverrides.count(); - LLVector3OverrideMap::map_type::const_iterator it = m_attachmentPosOverrides.getMap().begin(); - for (; it != m_attachmentPosOverrides.getMap().end(); ++it) + for (const LLVector3OverrideMap::map_type::value_type& pos_override_pair : m_attachmentPosOverrides.getMap()) { - distinct_pos_overrides.insert(it->second); + distinct_pos_overrides.insert(pos_override_pair.second); } } @@ -528,10 +522,9 @@ void LLJoint::getAllAttachmentScaleOverrides(S32& num_scale_overrides, std::set<LLVector3>& distinct_scale_overrides) const { num_scale_overrides = m_attachmentScaleOverrides.count(); - LLVector3OverrideMap::map_type::const_iterator it = m_attachmentScaleOverrides.getMap().begin(); - for (; it != m_attachmentScaleOverrides.getMap().end(); ++it) + for (const LLVector3OverrideMap::map_type::value_type& scale_override_pair : m_attachmentScaleOverrides.getMap()) { - distinct_scale_overrides.insert(it->second); + distinct_scale_overrides.insert(scale_override_pair.second); } } @@ -556,10 +549,9 @@ void LLJoint::showAttachmentPosOverrides(const std::string& av_info) const { LL_DEBUGS("Avatar") << "av " << av_info << " joint " << getName() << " has " << count << " attachment pos overrides" << LL_ENDL; std::set<LLVector3> distinct_offsets; - LLVector3OverrideMap::map_type::const_iterator it = m_attachmentPosOverrides.getMap().begin(); - for (; it != m_attachmentPosOverrides.getMap().end(); ++it) + for (const LLVector3OverrideMap::map_type::value_type& pos_override_pair : m_attachmentPosOverrides.getMap()) { - distinct_offsets.insert(it->second); + distinct_offsets.insert(pos_override_pair.second); } if (distinct_offsets.size()>1) { @@ -569,11 +561,10 @@ void LLJoint::showAttachmentPosOverrides(const std::string& av_info) const { LL_DEBUGS("Avatar") << "no conflicts" << LL_ENDL; } - std::set<LLVector3>::iterator dit = distinct_offsets.begin(); - for ( ; dit != distinct_offsets.end(); ++dit) + for (const LLVector3& offset : distinct_offsets) { - std::string highlight = (has_active_override && *dit == active_override) ? "*" : ""; - LL_DEBUGS("Avatar") << " POS " << highlight << "" << (*dit) << " default " << mDefaultPosition << LL_ENDL; + std::string highlight = (has_active_override && offset == active_override) ? "*" : ""; + LL_DEBUGS("Avatar") << " POS " << highlight << "" << offset << " default " << mDefaultPosition << LL_ENDL; } } } @@ -717,10 +708,9 @@ void LLJoint::showAttachmentScaleOverrides(const std::string& av_info) const { LL_DEBUGS("Avatar") << "av " << av_info << " joint " << getName() << " has " << count << " attachment scale overrides" << LL_ENDL; std::set<LLVector3> distinct_offsets; - LLVector3OverrideMap::map_type::const_iterator it = m_attachmentScaleOverrides.getMap().begin(); - for (; it != m_attachmentScaleOverrides.getMap().end(); ++it) + for (const LLVector3OverrideMap::map_type::value_type& scale_override_pair : m_attachmentScaleOverrides.getMap()) { - distinct_offsets.insert(it->second); + distinct_offsets.insert(scale_override_pair.second); } if (distinct_offsets.size()>1) { @@ -730,11 +720,10 @@ void LLJoint::showAttachmentScaleOverrides(const std::string& av_info) const { LL_DEBUGS("Avatar") << "no conflicts" << LL_ENDL; } - std::set<LLVector3>::iterator dit = distinct_offsets.begin(); - for ( ; dit != distinct_offsets.end(); ++dit) + for (const LLVector3& offset : distinct_offsets) { - std::string highlight = (has_active_override && *dit == active_override) ? "*" : ""; - LL_DEBUGS("Avatar") << " POS " << highlight << "" << (*dit) << " default " << mDefaultScale << LL_ENDL; + std::string highlight = (has_active_override && offset == active_override) ? "*" : ""; + LL_DEBUGS("Avatar") << " POS " << highlight << "" << offset << " default " << mDefaultScale << LL_ENDL; } } } @@ -993,10 +982,8 @@ void LLJoint::updateWorldMatrixChildren() { updateWorldMatrix(); } - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* joint : mChildren) { - LLJoint* joint = *iter; joint->updateWorldMatrixChildren(); } } @@ -1040,10 +1027,8 @@ void LLJoint::clampRotation(LLQuaternion old_rot, LLQuaternion new_rot) { LLVector3 main_axis(1.f, 0.f, 0.f); - for (joints_t::iterator iter = mChildren.begin(); - iter != mChildren.end(); ++iter) + for (LLJoint* joint : mChildren) { - LLJoint* joint = *iter; if (joint->isAnimatable()) { main_axis = joint->getPosition(); diff --git a/indra/llcharacter/llkeyframemotion.cpp b/indra/llcharacter/llkeyframemotion.cpp index 403d5bcf49..6720f902bd 100644 --- a/indra/llcharacter/llkeyframemotion.cpp +++ b/indra/llcharacter/llkeyframemotion.cpp @@ -626,10 +626,8 @@ BOOL LLKeyframeMotion::setupPose() } // initialize joint constraints - for (JointMotionList::constraint_list_t::iterator iter = mJointMotionList->mConstraints.begin(); - iter != mJointMotionList->mConstraints.end(); ++iter) + for (JointConstraintSharedData* shared_constraintp : mJointMotionList->mConstraints) { - JointConstraintSharedData* shared_constraintp = *iter; JointConstraint* constraintp = new JointConstraint(shared_constraintp); initializeConstraint(constraintp); mConstraints.push_front(constraintp); @@ -764,19 +762,15 @@ void LLKeyframeMotion::applyConstraints(F32 time, U8* joint_mask) if (mCharacter->getSkeletonSerialNum() != mLastSkeletonSerialNum) { mLastSkeletonSerialNum = mCharacter->getSkeletonSerialNum(); - for (constraint_list_t::iterator iter = mConstraints.begin(); - iter != mConstraints.end(); ++iter) + for (JointConstraint* constraintp : mConstraints) { - JointConstraint* constraintp = *iter; initializeConstraint(constraintp); } } // apply constraints - for (constraint_list_t::iterator iter = mConstraints.begin(); - iter != mConstraints.end(); ++iter) + for (JointConstraint* constraintp : mConstraints) { - JointConstraint* constraintp = *iter; applyConstraint(constraintp, time, joint_mask); } } @@ -786,10 +780,8 @@ void LLKeyframeMotion::applyConstraints(F32 time, U8* joint_mask) //----------------------------------------------------------------------------- void LLKeyframeMotion::onDeactivate() { - for (constraint_list_t::iterator iter = mConstraints.begin(); - iter != mConstraints.end(); ++iter) + for (JointConstraint* constraintp : mConstraints) { - JointConstraint* constraintp = *iter; deactivateConstraint(constraintp); } } @@ -2016,10 +2008,9 @@ BOOL LLKeyframeMotion::serialize(LLDataPacker& dp) const success &= dp.packS32(joint_motionp->mRotationCurve.mNumKeys, "num_rot_keys"); LL_DEBUGS("BVH") << "Joint " << joint_motionp->mJointName << LL_ENDL; - for (RotationCurve::key_map_t::iterator iter = joint_motionp->mRotationCurve.mKeys.begin(); - iter != joint_motionp->mRotationCurve.mKeys.end(); ++iter) + for (RotationCurve::key_map_t::value_type& rot_pair : joint_motionp->mRotationCurve.mKeys) { - RotationKey& rot_key = iter->second; + RotationKey& rot_key = rot_pair.second; U16 time_short = F32_to_U16(rot_key.mTime, 0.f, mJointMotionList->mDuration); success &= dp.packU16(time_short, "time"); @@ -2038,10 +2029,9 @@ BOOL LLKeyframeMotion::serialize(LLDataPacker& dp) const } success &= dp.packS32(joint_motionp->mPositionCurve.mNumKeys, "num_pos_keys"); - for (PositionCurve::key_map_t::iterator iter = joint_motionp->mPositionCurve.mKeys.begin(); - iter != joint_motionp->mPositionCurve.mKeys.end(); ++iter) + for (PositionCurve::key_map_t::value_type& pos_pair : joint_motionp->mPositionCurve.mKeys) { - PositionKey& pos_key = iter->second; + PositionKey& pos_key = pos_pair.second; U16 time_short = F32_to_U16(pos_key.mTime, 0.f, mJointMotionList->mDuration); success &= dp.packU16(time_short, "time"); @@ -2060,10 +2050,8 @@ BOOL LLKeyframeMotion::serialize(LLDataPacker& dp) const success &= dp.packS32(mJointMotionList->mConstraints.size(), "num_constraints"); LL_DEBUGS("BVH") << "num_constraints " << mJointMotionList->mConstraints.size() << LL_ENDL; - for (JointMotionList::constraint_list_t::const_iterator iter = mJointMotionList->mConstraints.begin(); - iter != mJointMotionList->mConstraints.end(); ++iter) + for (JointConstraintSharedData* shared_constraintp : mJointMotionList->mConstraints) { - JointConstraintSharedData* shared_constraintp = *iter; success &= dp.packU8(shared_constraintp->mChainLength, "chain_length"); success &= dp.packU8(shared_constraintp->mConstraintType, "constraint_type"); char source_volume[16]; /* Flawfinder: ignore */ @@ -2415,14 +2403,13 @@ void LLKeyframeDataCache::dumpDiagInfo() LL_INFOS() << "-----------------------------------------------------" << LL_ENDL; // print each loaded mesh, and it's memory usage - for (keyframe_data_map_t::iterator map_it = sKeyframeDataMap.begin(); - map_it != sKeyframeDataMap.end(); ++map_it) + for (keyframe_data_map_t::value_type& data_pair : sKeyframeDataMap) { U32 joint_motion_kb; - LLKeyframeMotion::JointMotionList *motion_list_p = map_it->second; + LLKeyframeMotion::JointMotionList *motion_list_p = data_pair.second; - LL_INFOS() << "Motion: " << map_it->first << LL_ENDL; + LL_INFOS() << "Motion: " << data_pair.first << LL_ENDL; joint_motion_kb = motion_list_p->dumpDiagInfo(); diff --git a/indra/llcharacter/llkeyframemotionparam.cpp b/indra/llcharacter/llkeyframemotionparam.cpp index aba1c5db39..c80aabe294 100644 --- a/indra/llcharacter/llkeyframemotionparam.cpp +++ b/indra/llcharacter/llkeyframemotionparam.cpp @@ -64,13 +64,11 @@ LLKeyframeMotionParam::LLKeyframeMotionParam( const LLUUID &id) : LLMotion(id) //----------------------------------------------------------------------------- LLKeyframeMotionParam::~LLKeyframeMotionParam() { - for (motion_map_t::iterator iter = mParameterizedMotions.begin(); - iter != mParameterizedMotions.end(); ++iter) + for (motion_map_t::value_type& motion_pair : mParameterizedMotions) { - motion_list_t& motionList = iter->second; - for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2) + motion_list_t& motionList = motion_pair.second; + for (const ParameterizedMotion& paramMotion : motionList) { - const ParameterizedMotion& paramMotion = *iter2; delete paramMotion.mMotion; } motionList.clear(); @@ -90,13 +88,11 @@ LLMotion::LLMotionInitStatus LLKeyframeMotionParam::onInitialize(LLCharacter *ch return STATUS_FAILURE; } - for (motion_map_t::iterator iter = mParameterizedMotions.begin(); - iter != mParameterizedMotions.end(); ++iter) + for (motion_map_t::value_type& motion_pair : mParameterizedMotions) { - motion_list_t& motionList = iter->second; - for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2) + motion_list_t& motionList = motion_pair.second; + for (const ParameterizedMotion& paramMotion : motionList) { - const ParameterizedMotion& paramMotion = *iter2; LLMotion* motion = paramMotion.mMotion; motion->onInitialize(character); @@ -139,13 +135,11 @@ LLMotion::LLMotionInitStatus LLKeyframeMotionParam::onInitialize(LLCharacter *ch //----------------------------------------------------------------------------- BOOL LLKeyframeMotionParam::onActivate() { - for (motion_map_t::iterator iter = mParameterizedMotions.begin(); - iter != mParameterizedMotions.end(); ++iter) + for (motion_map_t::value_type& motion_pair : mParameterizedMotions) { - motion_list_t& motionList = iter->second; - for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2) + motion_list_t& motionList = motion_pair.second; + for (const ParameterizedMotion& paramMotion : motionList) { - const ParameterizedMotion& paramMotion = *iter2; paramMotion.mMotion->activate(mActivationTimestamp); } } @@ -162,23 +156,20 @@ BOOL LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask) F32 weightFactor = 1.f / (F32)mParameterizedMotions.size(); // zero out all pose weights - for (motion_map_t::iterator iter = mParameterizedMotions.begin(); - iter != mParameterizedMotions.end(); ++iter) + for (motion_map_t::value_type& motion_pair : mParameterizedMotions) { - motion_list_t& motionList = iter->second; - for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2) + motion_list_t& motionList = motion_pair.second; + for (const ParameterizedMotion& paramMotion : motionList) { - const ParameterizedMotion& paramMotion = *iter2; // LL_INFOS() << "Weight for pose " << paramMotion.mMotion->getName() << " is " << paramMotion.mMotion->getPose()->getWeight() << LL_ENDL; paramMotion.mMotion->getPose()->setWeight(0.f); } } - for (motion_map_t::iterator iter = mParameterizedMotions.begin(); - iter != mParameterizedMotions.end(); ++iter) + for (motion_map_t::value_type& motion_pair : mParameterizedMotions) { - const std::string& paramName = iter->first; + const std::string& paramName = motion_pair.first; F32* paramValue = (F32 *)mCharacter->getAnimationData(paramName); if (NULL == paramValue) // unexpected, but... { @@ -190,10 +181,9 @@ BOOL LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask) const ParameterizedMotion* firstMotion = NULL; const ParameterizedMotion* secondMotion = NULL; - motion_list_t& motionList = iter->second; - for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2) + motion_list_t& motionList = motion_pair.second; + for (const ParameterizedMotion& paramMotion : motionList) { - const ParameterizedMotion& paramMotion = *iter2; paramMotion.mMotion->onUpdate(time, joint_mask); F32 distToParam = paramMotion.mParam - *paramValue; @@ -280,13 +270,11 @@ BOOL LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask) //----------------------------------------------------------------------------- void LLKeyframeMotionParam::onDeactivate() { - for (motion_map_t::iterator iter = mParameterizedMotions.begin(); - iter != mParameterizedMotions.end(); ++iter) + for (motion_map_t::value_type& motion_pair : mParameterizedMotions) { - motion_list_t& motionList = iter->second; - for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2) + motion_list_t& motionList = motion_pair.second; + for (const ParameterizedMotion& paramMotion : motionList) { - const ParameterizedMotion& paramMotion = *iter2; paramMotion.mMotion->onDeactivate(); } } @@ -318,13 +306,11 @@ BOOL LLKeyframeMotionParam::addKeyframeMotion(char *name, const LLUUID &id, char //----------------------------------------------------------------------------- void LLKeyframeMotionParam::setDefaultKeyframeMotion(char *name) { - for (motion_map_t::iterator iter = mParameterizedMotions.begin(); - iter != mParameterizedMotions.end(); ++iter) + for (motion_map_t::value_type& motion_pair : mParameterizedMotions) { - motion_list_t& motionList = iter->second; - for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2) + motion_list_t& motionList = motion_pair.second; + for (const ParameterizedMotion& paramMotion : motionList) { - const ParameterizedMotion& paramMotion = *iter2; if (paramMotion.mMotion->getName() == name) { mDefaultKeyframeMotion = paramMotion.mMotion; diff --git a/indra/llcharacter/llmotioncontroller.cpp b/indra/llcharacter/llmotioncontroller.cpp index e66714388a..96e0d5e8d7 100644 --- a/indra/llcharacter/llmotioncontroller.cpp +++ b/indra/llcharacter/llmotioncontroller.cpp @@ -211,11 +211,8 @@ void LLMotionController::purgeExcessMotions() { // too many motions active this frame, kill all blenders mPoseBlender.clearBlenders(); - for (motion_set_t::iterator loaded_motion_it = mLoadedMotions.begin(); - loaded_motion_it != mLoadedMotions.end(); - ++loaded_motion_it) + for (LLMotion* cur_motionp : mLoadedMotions) { - LLMotion* cur_motionp = *loaded_motion_it; // motion isn't playing, delete it if (!isMotionActive(cur_motionp)) { @@ -225,13 +222,10 @@ void LLMotionController::purgeExcessMotions() } // clean up all inactive, loaded motions - for (std::set<LLUUID>::iterator motion_it = motions_to_kill.begin(); - motion_it != motions_to_kill.end(); - ++motion_it) + for (LLUUID motion_id : motions_to_kill) { // look up the motion again by ID to get canonical instance // and kill it only if that one is inactive - LLUUID motion_id = *motion_it; LLMotion* motionp = findMotion(motion_id); if (motionp && !isMotionActive(motionp)) { @@ -1059,12 +1053,11 @@ LLMotion* LLMotionController::findMotion(const LLUUID& id) const void LLMotionController::dumpMotions() { LL_INFOS() << "=====================================" << LL_ENDL; - for (motion_map_t::iterator iter = mAllMotions.begin(); - iter != mAllMotions.end(); iter++) + for (motion_map_t::value_type& motion_pair : mAllMotions) { - LLUUID id = iter->first; + LLUUID id = motion_pair.first; std::string state_string; - LLMotion *motion = iter->second; + LLMotion *motion = motion_pair.second; if (mLoadingMotions.find(motion) != mLoadingMotions.end()) state_string += std::string("l"); if (mLoadedMotions.find(motion) != mLoadedMotions.end()) @@ -1083,10 +1076,9 @@ void LLMotionController::dumpMotions() //----------------------------------------------------------------------------- void LLMotionController::deactivateAllMotions() { - for (motion_map_t::iterator iter = mAllMotions.begin(); - iter != mAllMotions.end(); iter++) + for (motion_map_t::value_type& motion_pair : mAllMotions) { - LLMotion* motionp = iter->second; + LLMotion* motionp = motion_pair.second; deactivateMotionInstance(motionp); } } @@ -1118,10 +1110,9 @@ void LLMotionController::flushAllMotions() mCharacter->removeAnimationData("Hand Pose"); // restart motions - for (std::vector<std::pair<LLUUID,F32> >::iterator iter = active_motions.begin(); - iter != active_motions.end(); ++iter) + for (std::vector<std::pair<LLUUID,F32> >::value_type& motion_pair : active_motions) { - startMotion(iter->first, iter->second); + startMotion(motion_pair.first, motion_pair.second); } } diff --git a/indra/llcharacter/llmultigesture.cpp b/indra/llcharacter/llmultigesture.cpp index 2045739c7f..7ed242f90a 100644 --- a/indra/llcharacter/llmultigesture.cpp +++ b/indra/llcharacter/llmultigesture.cpp @@ -88,10 +88,8 @@ S32 LLMultiGesture::getMaxSerialSize() const max_size += 64; // step count S32 - std::vector<LLGestureStep*>::const_iterator it; - for (it = mSteps.begin(); it != mSteps.end(); ++it) + for (LLGestureStep* step : mSteps) { - LLGestureStep* step = *it; max_size += 64; // type S32 max_size += step->getMaxSerialSize(); } diff --git a/indra/llcharacter/llpose.cpp b/indra/llcharacter/llpose.cpp index fc95fafd61..6f41a0e747 100644 --- a/indra/llcharacter/llpose.cpp +++ b/indra/llcharacter/llpose.cpp @@ -148,11 +148,9 @@ LLJointState* LLPose::findJointState(const std::string &name) void LLPose::setWeight(F32 weight) { joint_map_iterator iter; - for(iter = mJointMap.begin(); - iter != mJointMap.end(); - ++iter) + for (joint_map_value_type& joint_pair : mJointMap) { - iter->second->setWeight(weight); + joint_pair.second->setWeight(weight); } mWeight = weight; } diff --git a/indra/llcharacter/llstatemachine.cpp b/indra/llcharacter/llstatemachine.cpp index b917db3117..2e8214ffaf 100644 --- a/indra/llcharacter/llstatemachine.cpp +++ b/indra/llcharacter/llstatemachine.cpp @@ -169,10 +169,9 @@ void LLStateDiagram::setDefaultState(LLFSMState& default_state) S32 LLStateDiagram::numDeadendStates() { S32 numDeadends = 0; - StateMap::iterator state_it; - for(state_it = mStates.begin(); state_it != mStates.end(); ++state_it) + for (StateMap::value_type& state_pair : mStates) { - if (state_it->second.size() == 0) + if (state_pair.second.size() == 0) { numDeadends++; } @@ -191,12 +190,11 @@ BOOL LLStateDiagram::stateIsValid(LLFSMState& state) LLFSMState* LLStateDiagram::getState(U32 state_id) { - StateMap::iterator state_it; - for(state_it = mStates.begin(); state_it != mStates.end(); ++state_it) + for (StateMap::value_type& state_pair : mStates) { - if (state_it->first->getID() == state_id) + if (state_pair.first->getID() == state_id) { - return state_it->first; + return state_pair.first; } } return NULL; @@ -215,18 +213,16 @@ BOOL LLStateDiagram::saveDotFile(const std::string& filename) } apr_file_printf(dot_file, "digraph StateMachine {\n\tsize=\"100,100\";\n\tfontsize=40;\n\tlabel=\"Finite State Machine\";\n\torientation=landscape\n\tratio=.77\n"); - StateMap::iterator state_it; - for(state_it = mStates.begin(); state_it != mStates.end(); ++state_it) + for (StateMap::value_type& state_pair : mStates) { - apr_file_printf(dot_file, "\t\"%s\" [fontsize=28,shape=box]\n", state_it->first->getName().c_str()); + apr_file_printf(dot_file, "\t\"%s\" [fontsize=28,shape=box]\n", state_pair.first->getName().c_str()); } apr_file_printf(dot_file, "\t\"All States\" [fontsize=30,style=bold,shape=box]\n"); - Transitions::iterator transitions_it; - for(transitions_it = mDefaultTransitions.begin(); transitions_it != mDefaultTransitions.end(); ++transitions_it) + for (Transitions::value_type& transition_pair : mDefaultTransitions) { - apr_file_printf(dot_file, "\t\"All States\" -> \"%s\" [label = \"%s\",fontsize=24];\n", transitions_it->second->getName().c_str(), - transitions_it->second->getName().c_str()); + apr_file_printf(dot_file, "\t\"All States\" -> \"%s\" [label = \"%s\",fontsize=24];\n", transition_pair.second->getName().c_str(), + transition_pair.second->getName().c_str()); } if (mDefaultState) @@ -235,18 +231,15 @@ BOOL LLStateDiagram::saveDotFile(const std::string& filename) } - for(state_it = mStates.begin(); state_it != mStates.end(); ++state_it) + for (StateMap::value_type& state_pair : mStates) { - LLFSMState *state = state_it->first; + LLFSMState *state = state_pair.first; - Transitions::iterator transitions_it; - for(transitions_it = state_it->second.begin(); - transitions_it != state_it->second.end(); - ++transitions_it) + for (Transitions::value_type& transition_pair : state_pair.second) { std::string state_name = state->getName(); - std::string target_name = transitions_it->second->getName(); - std::string transition_name = transitions_it->first->getName(); + std::string target_name = transition_pair.second->getName(); + std::string transition_name = transition_pair.first->getName(); apr_file_printf(dot_file, "\t\"%s\" -> \"%s\" [label = \"%s\",fontsize=24];\n", state->getName().c_str(), target_name.c_str(), transition_name.c_str()); @@ -265,25 +258,18 @@ std::ostream& operator<<(std::ostream &s, LLStateDiagram &FSM) s << "Default State: " << FSM.mDefaultState->getName() << "\n"; } - LLStateDiagram::Transitions::iterator transitions_it; - for(transitions_it = FSM.mDefaultTransitions.begin(); - transitions_it != FSM.mDefaultTransitions.end(); - ++transitions_it) + for (LLStateDiagram::Transitions::value_type& transition_pair : FSM.mDefaultTransitions) { - s << "Any State -- " << transitions_it->first->getName() - << " --> " << transitions_it->second->getName() << "\n"; + s << "Any State -- " << transition_pair.first->getName() + << " --> " << transition_pair.second->getName() << "\n"; } - LLStateDiagram::StateMap::iterator state_it; - for(state_it = FSM.mStates.begin(); state_it != FSM.mStates.end(); ++state_it) + for (LLStateDiagram::StateMap::value_type& state_pair : FSM.mStates) { - LLStateDiagram::Transitions::iterator transitions_it; - for(transitions_it = state_it->second.begin(); - transitions_it != state_it->second.end(); - ++transitions_it) + for (LLStateDiagram::Transitions::value_type& transition_pair : state_pair.second) { - s << state_it->first->getName() << " -- " << transitions_it->first->getName() - << " --> " << transitions_it->second->getName() << "\n"; + s << state_pair.first->getName() << " -- " << transition_pair.first->getName() + << " --> " << transition_pair.second->getName() << "\n"; } s << "\n"; } diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index 3d073b009c..54020a4231 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -105,6 +105,7 @@ set(llcommon_SOURCE_FILES lluriparser.cpp lluuid.cpp llworkerthread.cpp + hbxxh.cpp u64.cpp threadpool.cpp workqueue.cpp @@ -241,6 +242,7 @@ set(llcommon_HEADER_FILES llwin32headers.h llwin32headerslean.h llworkerthread.h + hbxxh.h lockstatic.h stdtypes.h stringize.h diff --git a/indra/llcommon/hbxxh.cpp b/indra/llcommon/hbxxh.cpp new file mode 100644 index 0000000000..388269d6c8 --- /dev/null +++ b/indra/llcommon/hbxxh.cpp @@ -0,0 +1,377 @@ +/** + * @file hbxxh.cpp + * @brief High performances vectorized hashing based on xxHash. + * + * $LicenseInfo:firstyear=2023&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (c) 2023, Henri Beauchamp. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "linden_common.h" + +// This define ensures that xxHash will be compiled within this module, with +// vectorized (*) and inlined functions (with no exported API symbol); our +// xxhash "pre-built library" package actually only contains the xxhash.h +// header (no library needed at link time). +// (*) SSE2 is normally used for x86(_64) builds, unless you enabled AVX2 +// in your build, in which case the latter would be used instead. For ARM64 +// builds, this would also automatically enable NEON vectorization. +#define XXH_INLINE_ALL +#include "xxhash/xxhash.h" + +#include "hbxxh.h" + +// How many bytes to grab at a time when hashing files or streams +constexpr size_t BLOCK_LEN = 4096; + +/////////////////////////////////////////////////////////////////////////////// +// HBXXH64 class +/////////////////////////////////////////////////////////////////////////////// + +//static +U64 HBXXH64::digest(const void* buffer, size_t len) +{ + return XXH3_64bits(buffer, len); +} + +//static +U64 HBXXH64::digest(const char* str) +{ + return XXH3_64bits((const void*)str, strlen(str)); +} + +//static +U64 HBXXH64::digest(const std::string& str) +{ + return XXH3_64bits((const void*)str.c_str(), str.size()); +} + +// Must be called by all constructors. +void HBXXH64::init() +{ + mDigest = 0; + mState = (void*)XXH3_createState(); + if (!mState || XXH3_64bits_reset((XXH3_state_t*)mState) != XXH_OK) + { + LL_WARNS() << "Failed to initialize state !" << LL_ENDL; + } +} + +HBXXH64::~HBXXH64() +{ + if (mState) + { + XXH3_freeState((XXH3_state_t*)mState); + } +} + +void HBXXH64::update(const void* buffer, size_t len) +{ + if (mState) + { + XXH3_64bits_update((XXH3_state_t*)mState, buffer, len); + } + else + { + LL_WARNS() << "Cannot update a finalized digest !" << LL_ENDL; + } +} + +void HBXXH64::update(const std::string& str) +{ + if (mState) + { + XXH3_64bits_update((XXH3_state_t*)mState, (const void*)str.c_str(), + str.length()); + } + else + { + LL_WARNS() << "Cannot update a finalized digest !" << LL_ENDL; + } +} + +void HBXXH64::update(std::istream& stream) +{ + if (!mState) + { + LL_WARNS() << "Cannot update a finalized digest !" << LL_ENDL; + return; + } + + char buffer[BLOCK_LEN]; + size_t len; + while (stream.good()) + { + stream.read(buffer, BLOCK_LEN); + len = stream.gcount(); + XXH3_64bits_update((XXH3_state_t*)mState, (const void*)buffer, len); + } +} + +void HBXXH64::update(FILE* file) +{ + if (!mState) + { + LL_WARNS() << "Cannot update a finalized digest !" << LL_ENDL; + return; + } + + char buffer[BLOCK_LEN]; + size_t len; + while ((len = fread((void*)buffer, 1, BLOCK_LEN, file))) + { + XXH3_64bits_update((XXH3_state_t*)mState, (const void*)buffer, len); + } + fclose(file); +} + +void HBXXH64::finalize() +{ + if (!mState) + { + LL_WARNS() << "Already finalized !" << LL_ENDL; + return; + } + mDigest = XXH3_64bits_digest((XXH3_state_t*)mState); + XXH3_freeState((XXH3_state_t*)mState); + mState = NULL; +} + +U64 HBXXH64::digest() const +{ + return mState ? XXH3_64bits_digest((XXH3_state_t*)mState) : mDigest; +} + +std::ostream& operator<<(std::ostream& stream, HBXXH64 context) +{ + stream << context.digest(); + return stream; +} + +/////////////////////////////////////////////////////////////////////////////// +// HBXXH128 class +/////////////////////////////////////////////////////////////////////////////// + +//static +LLUUID HBXXH128::digest(const void* buffer, size_t len) +{ + XXH128_hash_t hash = XXH3_128bits(buffer, len); + LLUUID id; + U64* data = (U64*)id.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; + return id; +} + +//static +LLUUID HBXXH128::digest(const char* str) +{ + XXH128_hash_t hash = XXH3_128bits((const void*)str, strlen(str)); + LLUUID id; + U64* data = (U64*)id.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; + return id; +} + +//static +LLUUID HBXXH128::digest(const std::string& str) +{ + XXH128_hash_t hash = XXH3_128bits((const void*)str.c_str(), str.size()); + LLUUID id; + U64* data = (U64*)id.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; + return id; +} + +//static +void HBXXH128::digest(LLUUID& result, const void* buffer, size_t len) +{ + XXH128_hash_t hash = XXH3_128bits(buffer, len); + U64* data = (U64*)result.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; +} + +//static +void HBXXH128::digest(LLUUID& result, const char* str) +{ + XXH128_hash_t hash = XXH3_128bits((const void*)str, strlen(str)); + U64* data = (U64*)result.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; +} + +//static +void HBXXH128::digest(LLUUID& result, const std::string& str) +{ + XXH128_hash_t hash = XXH3_128bits((const void*)str.c_str(), str.size()); + U64* data = (U64*)result.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; +} + +// Must be called by all constructors. +void HBXXH128::init() +{ + mState = (void*)XXH3_createState(); + if (!mState || XXH3_128bits_reset((XXH3_state_t*)mState) != XXH_OK) + { + LL_WARNS() << "Failed to initialize state !" << LL_ENDL; + } +} + +HBXXH128::~HBXXH128() +{ + if (mState) + { + XXH3_freeState((XXH3_state_t*)mState); + } +} + +void HBXXH128::update(const void* buffer, size_t len) +{ + if (mState) + { + XXH3_128bits_update((XXH3_state_t*)mState, buffer, len); + } + else + { + LL_WARNS() << "Cannot update a finalized digest !" << LL_ENDL; + } +} + +void HBXXH128::update(const std::string& str) +{ + if (mState) + { + XXH3_128bits_update((XXH3_state_t*)mState, (const void*)str.c_str(), + str.length()); + } + else + { + LL_WARNS() << "Cannot update a finalized digest !" << LL_ENDL; + } +} + +void HBXXH128::update(std::istream& stream) +{ + if (!mState) + { + LL_WARNS() << "Cannot update a finalized digest !" << LL_ENDL; + return; + } + + char buffer[BLOCK_LEN]; + size_t len; + while (stream.good()) + { + stream.read(buffer, BLOCK_LEN); + len = stream.gcount(); + XXH3_128bits_update((XXH3_state_t*)mState, (const void*)buffer, len); + } +} + +void HBXXH128::update(FILE* file) +{ + if (!mState) + { + LL_WARNS() << "Cannot update a finalized digest !" << LL_ENDL; + return; + } + + char buffer[BLOCK_LEN]; + size_t len; + while ((len = fread((void*)buffer, 1, BLOCK_LEN, file))) + { + XXH3_128bits_update((XXH3_state_t*)mState, (const void*)buffer, len); + } + fclose(file); +} + +void HBXXH128::finalize() +{ + if (!mState) + { + LL_WARNS() << "Already finalized !" << LL_ENDL; + return; + } + XXH128_hash_t hash = XXH3_128bits_digest((XXH3_state_t*)mState); + U64* data = (U64*)mDigest.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; + XXH3_freeState((XXH3_state_t*)mState); + mState = NULL; +} + +const LLUUID& HBXXH128::digest() const +{ + if (mState) + { + XXH128_hash_t hash = XXH3_128bits_digest((XXH3_state_t*)mState); + // We cheat the const-ness of the method here, but this is OK, since + // mDigest is private and cannot be accessed indirectly by other + // methods than digest() ones, that do check for mState to decide + // wether mDigest's current value may be provided as is or not. This + // cheat saves us a temporary LLLUID copy. + U64* data = (U64*)mDigest.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; + } + return mDigest; +} + +void HBXXH128::digest(LLUUID& result) const +{ + if (!mState) + { + result = mDigest; + return; + } + XXH128_hash_t hash = XXH3_128bits_digest((XXH3_state_t*)mState); + U64* data = (U64*)result.mData; + // Note: we do not check endianness here and we just store in the same + // order as XXH128_hash_t, that is low word "first". + data[0] = hash.low64; + data[1] = hash.high64; +} + +std::ostream& operator<<(std::ostream& stream, HBXXH128 context) +{ + stream << context.digest(); + return stream; +} diff --git a/indra/llcommon/hbxxh.h b/indra/llcommon/hbxxh.h new file mode 100644 index 0000000000..9c0e9cf172 --- /dev/null +++ b/indra/llcommon/hbxxh.h @@ -0,0 +1,277 @@ +/** + * @file hbxxh.h + * @brief High performances vectorized hashing based on xxHash. + * + * $LicenseInfo:firstyear=2023&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (c) 2023, Henri Beauchamp. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#ifndef LL_HBXXH_H +#define LL_HBXXH_H + +#include "lluuid.h" + +// HBXXH* classes are to be used where speed matters and cryptographic quality +// is not required (no "one-way" guarantee, though they are likely not worst in +// this respect than MD5 which got busted and is now considered too weak). The +// xxHash code they are built upon is vectorized and about 50 times faster than +// MD5. A 64 bits hash class is also provided for when 128 bits of entropy are +// not needed. The hashes collision rate is similar to MD5's. +// See https://github.com/Cyan4973/xxHash#readme for details. + +// 64 bits hashing class + +class HBXXH64 +{ + friend std::ostream& operator<<(std::ostream&, HBXXH64); + +protected: + LOG_CLASS(HBXXH64); + +public: + inline HBXXH64() { init(); } + + // Constructors for special circumstances; they all digest the first passed + // parameter. Set 'do_finalize' to false if you do not want to finalize the + // context, which is useful/needed when you want to update() it afterwards. + // Ideally, the compiler should be smart enough to get our clue and + // optimize out the const bool test during inlining... + + inline HBXXH64(const void* buffer, size_t len, + const bool do_finalize = true) + { + init(); + update(buffer, len); + if (do_finalize) + { + finalize(); + } + } + + inline HBXXH64(const std::string& str, const bool do_finalize = true) + { + init(); + update(str); + if (do_finalize) + { + finalize(); + } + } + + inline HBXXH64(std::istream& s, const bool do_finalize = true) + { + init(); + update(s); + if (do_finalize) + { + finalize(); + } + } + + inline HBXXH64(FILE* file, const bool do_finalize = true) + { + init(); + update(file); + if (do_finalize) + { + finalize(); + } + } + + // Make this class no-copy (it would be possible, with custom copy + // operators, but it is not trivially copyable, because of the mState + // pointer): it does not really make sense to allow copying it anyway, + // since all we care about is the resulting digest (so you should only + // need and care about storing/copying the digest and not a class + // instance). + HBXXH64(const HBXXH64&) noexcept = delete; + HBXXH64& operator=(const HBXXH64&) noexcept = delete; + + ~HBXXH64(); + + void update(const void* buffer, size_t len); + void update(const std::string& str); + void update(std::istream& s); + void update(FILE* file); + + // Note that unlike what happens with LLMD5, you do not need to finalize() + // HBXXH64 before using digest(), and you may keep updating() it even after + // you got a first digest() (the next digest would of course change after + // any update). It is still useful to use finalize() when you do not want + // to store a final digest() result in a separate U64; after this method + // has been called, digest() simply returns mDigest value. + void finalize(); + + U64 digest() const; + + // Fast static methods. Use them when hashing just one contiguous block of + // data. + static U64 digest(const void* buffer, size_t len); + static U64 digest(const char* str); // str must be NUL-terminated + static U64 digest(const std::string& str); + +private: + void init(); + +private: + // We use a void pointer to avoid including xxhash.h here for XXH3_state_t + // (which cannot either be trivially forward-declared, due to complex API + // related pre-processor macros in xxhash.h). + void* mState; + U64 mDigest; +}; + +inline bool operator==(const HBXXH64& a, const HBXXH64& b) +{ + return a.digest() == b.digest(); +} + +inline bool operator!=(const HBXXH64& a, const HBXXH64& b) +{ + return a.digest() != b.digest(); +} + +// 128 bits hashing class + +class HBXXH128 +{ + friend std::ostream& operator<<(std::ostream&, HBXXH128); + +protected: + LOG_CLASS(HBXXH128); + +public: + inline HBXXH128() { init(); } + + // Constructors for special circumstances; they all digest the first passed + // parameter. Set 'do_finalize' to false if you do not want to finalize the + // context, which is useful/needed when you want to update() it afterwards. + // Ideally, the compiler should be smart enough to get our clue and + // optimize out the const bool test during inlining... + + inline HBXXH128(const void* buffer, size_t len, + const bool do_finalize = true) + { + init(); + update(buffer, len); + if (do_finalize) + { + finalize(); + } + } + + inline HBXXH128(const std::string& str, const bool do_finalize = true) + { + init(); + update(str); + if (do_finalize) + { + finalize(); + } + } + + inline HBXXH128(std::istream& s, const bool do_finalize = true) + { + init(); + update(s); + if (do_finalize) + { + finalize(); + } + } + + inline HBXXH128(FILE* file, const bool do_finalize = true) + { + init(); + update(file); + if (do_finalize) + { + finalize(); + } + } + + // Make this class no-copy (it would be possible, with custom copy + // operators, but it is not trivially copyable, because of the mState + // pointer): it does not really make sense to allow copying it anyway, + // since all we care about is the resulting digest (so you should only + // need and care about storing/copying the digest and not a class + // instance). + HBXXH128(const HBXXH128&) noexcept = delete; + HBXXH128& operator=(const HBXXH128&) noexcept = delete; + + ~HBXXH128(); + + void update(const void* buffer, size_t len); + void update(const std::string& str); + void update(std::istream& s); + void update(FILE* file); + + // Note that unlike what happens with LLMD5, you do not need to finalize() + // HBXXH128 before using digest(), and you may keep updating() it even + // after you got a first digest() (the next digest would of course change + // after any update). It is still useful to use finalize() when you do not + // want to store a final digest() result in a separate LLUUID; after this + // method has been called, digest() simply returns a reference on mDigest. + void finalize(); + + // We use an LLUUID for the digest, since this is a 128 bits wide native + // type available in the viewer code, making it easy to manipulate. It also + // allows to use HBXXH128 efficiently in LLUUID generate() and combine() + // methods. + const LLUUID& digest() const; + + // Here, we avoid an LLUUID copy whenever we already got one to store the + // result *and* we did not yet call finalize(). + void digest(LLUUID& result) const; + + // Fast static methods. Use them when hashing just one contiguous block of + // data. + static LLUUID digest(const void* buffer, size_t len); + static LLUUID digest(const char* str); // str must be NUL-terminated + static LLUUID digest(const std::string& str); + // Same as above, but saves you from an LLUUID copy when you already got + // one for storage use. + static void digest(LLUUID& result, const void* buffer, size_t len); + static void digest(LLUUID& result, const char* str); // str NUL-terminated + static void digest(LLUUID& result, const std::string& str); + +private: + void init(); + +private: + // We use a void pointer to avoid including xxhash.h here for XXH3_state_t + // (which cannot either be trivially forward-declared, due to complex API + // related pre-processor macros in xxhash.h). + void* mState; + LLUUID mDigest; +}; + +inline bool operator==(const HBXXH128& a, const HBXXH128& b) +{ + return a.digest() == b.digest(); +} + +inline bool operator!=(const HBXXH128& a, const HBXXH128& b) +{ + return a.digest() != b.digest(); +} + +#endif // LL_HBXXH_H diff --git a/indra/llcommon/llallocator_heap_profile.cpp b/indra/llcommon/llallocator_heap_profile.cpp index b2eafde1aa..c6d9542b42 100644 --- a/indra/llcommon/llallocator_heap_profile.cpp +++ b/indra/llcommon/llallocator_heap_profile.cpp @@ -130,15 +130,13 @@ void LLAllocatorHeapProfile::parse(std::string const & prof_text) void LLAllocatorHeapProfile::dump(std::ostream & out) const { - lines_t::const_iterator i; - for(i = mLines.begin(); i != mLines.end(); ++i) + for (const LLAllocatorHeapProfile::line& line : mLines) { - out << i->mLiveCount << ": " << i->mLiveSize << '[' << i->mTotalCount << ": " << i->mTotalSize << "] @"; + out << line.mLiveCount << ": " << line.mLiveSize << '[' << line.mTotalCount << ": " << line.mTotalSize << "] @"; - stack_trace::const_iterator j; - for(j = i->mTrace.begin(); j != i->mTrace.end(); ++j) + for (const stack_marker marker : line.mTrace) { - out << ' ' << *j; + out << ' ' << marker; } out << '\n'; } diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp index 3ff8d16bbb..d839b19c99 100644 --- a/indra/llcommon/llapp.cpp +++ b/indra/llcommon/llapp.cpp @@ -862,14 +862,14 @@ bool unix_post_minidump_callback(const char *dump_dir, // heap allocations in a crash handler. // path format: <dump_dir>/<minidump_id>.dmp - int dirPathLength = strlen(dump_dir); - int idLength = strlen(minidump_id); + auto dirPathLength = strlen(dump_dir); + auto idLength = strlen(minidump_id); // The path must not be truncated. llassert((dirPathLength + idLength + 5) <= LLApp::MAX_MINDUMP_PATH_LENGTH); char * path = LLApp::instance()->getMiniDumpFilename(); - S32 remaining = LLApp::MAX_MINDUMP_PATH_LENGTH; + auto remaining = LLApp::MAX_MINDUMP_PATH_LENGTH; strncpy(path, dump_dir, remaining); remaining -= dirPathLength; path += dirPathLength; diff --git a/indra/llcommon/llassettype.cpp b/indra/llcommon/llassettype.cpp index e6cc06e8d0..4c84223dad 100644 --- a/indra/llcommon/llassettype.cpp +++ b/indra/llcommon/llassettype.cpp @@ -150,14 +150,12 @@ LLAssetType::EType LLAssetType::lookup(const char* name) LLAssetType::EType LLAssetType::lookup(const std::string& type_name) { const LLAssetDictionary *dict = LLAssetDictionary::getInstance(); - for (LLAssetDictionary::const_iterator iter = dict->begin(); - iter != dict->end(); - iter++) + for (const LLAssetDictionary::value_type& pair : *dict) { - const AssetEntry *entry = iter->second; + const AssetEntry *entry = pair.second; if (type_name == entry->mTypeName) { - return iter->first; + return pair.first; } } return AT_UNKNOWN; @@ -188,14 +186,12 @@ LLAssetType::EType LLAssetType::lookupHumanReadable(const char* name) LLAssetType::EType LLAssetType::lookupHumanReadable(const std::string& readable_name) { const LLAssetDictionary *dict = LLAssetDictionary::getInstance(); - for (LLAssetDictionary::const_iterator iter = dict->begin(); - iter != dict->end(); - iter++) + for (const LLAssetDictionary::value_type& pair : *dict) { - const AssetEntry *entry = iter->second; + const AssetEntry *entry = pair.second; if (entry->mHumanName && (readable_name == entry->mHumanName)) { - return iter->first; + return pair.first; } } return AT_NONE; diff --git a/indra/llcommon/llbase64.cpp b/indra/llcommon/llbase64.cpp index 4e82cf7f20..bb85fe32a3 100644 --- a/indra/llcommon/llbase64.cpp +++ b/indra/llcommon/llbase64.cpp @@ -42,7 +42,7 @@ std::string LLBase64::encode(const U8* input, size_t input_size) && input_size > 0) { // Yes, it returns int. - int b64_buffer_length = apr_base64_encode_len(input_size); + int b64_buffer_length = apr_base64_encode_len(narrow(input_size)); char* b64_buffer = new char[b64_buffer_length]; // This is faster than apr_base64_encode() if you know @@ -52,7 +52,7 @@ std::string LLBase64::encode(const U8* input, size_t input_size) b64_buffer_length = apr_base64_encode_binary( b64_buffer, input, - input_size); + narrow(input_size)); output.assign(b64_buffer); delete[] b64_buffer; } diff --git a/indra/llcommon/llcallbacklist.cpp b/indra/llcommon/llcallbacklist.cpp index 541ff75ee4..93d0a035da 100644 --- a/indra/llcommon/llcallbacklist.cpp +++ b/indra/llcommon/llcallbacklist.cpp @@ -109,7 +109,7 @@ void LLCallbackList::deleteAllFunctions() void LLCallbackList::callFunctions() { - for (callback_list_t::iterator iter = mCallbackList.begin(); iter != mCallbackList.end(); ) + for (callback_list_t::iterator iter = mCallbackList.begin(); iter != mCallbackList.end(); ) { callback_list_t::iterator curiter = iter++; curiter->first(curiter->second); diff --git a/indra/llcommon/llcallstack.cpp b/indra/llcommon/llcallstack.cpp index 8db291eed1..83d5ae2a63 100644 --- a/indra/llcommon/llcallstack.cpp +++ b/indra/llcommon/llcallstack.cpp @@ -91,10 +91,9 @@ LLCallStack::LLCallStack(S32 skip_count, bool verbose): bool LLCallStack::contains(const std::string& str) { - for (std::vector<std::string>::const_iterator it = m_strings.begin(); - it != m_strings.end(); ++it) + for (const std::string& src_str : m_strings) { - if (it->find(str) != std::string::npos) + if (src_str.find(str) != std::string::npos) { return true; } @@ -105,10 +104,9 @@ bool LLCallStack::contains(const std::string& str) std::ostream& operator<<(std::ostream& s, const LLCallStack& call_stack) { #ifndef LL_RELEASE_FOR_DOWNLOAD - std::vector<std::string>::const_iterator it; - for (it=call_stack.m_strings.begin(); it!=call_stack.m_strings.end(); ++it) + for (const std::string& str : call_stack.m_strings) { - s << *it; + s << str; } #else s << "UNAVAILABLE IN RELEASE"; @@ -156,9 +154,9 @@ bool LLContextStrings::contains(const std::string& str) { const std::map<std::string,S32>& strings = LLThreadLocalSingletonPointer<LLContextStrings>::getInstance()->m_contextStrings; - for (std::map<std::string,S32>::const_iterator it = strings.begin(); it!=strings.end(); ++it) + for (const std::map<std::string,S32>::value_type& str_pair : strings) { - if (it->first.find(str) != std::string::npos) + if (str_pair.first.find(str) != std::string::npos) { return true; } @@ -171,9 +169,9 @@ void LLContextStrings::output(std::ostream& os) { const std::map<std::string,S32>& strings = LLThreadLocalSingletonPointer<LLContextStrings>::getInstance()->m_contextStrings; - for (std::map<std::string,S32>::const_iterator it = strings.begin(); it!=strings.end(); ++it) + for (const std::map<std::string,S32>::value_type& str_pair : strings) { - os << it->first << "[" << it->second << "]" << "\n"; + os << str_pair.first << "[" << str_pair.second << "]" << "\n"; } } diff --git a/indra/llcommon/lldefs.h b/indra/llcommon/lldefs.h index 5a4b8325f4..4e25001fff 100644 --- a/indra/llcommon/lldefs.h +++ b/indra/llcommon/lldefs.h @@ -28,6 +28,7 @@ #define LL_LLDEFS_H #include "stdtypes.h" +#include <type_traits> // Often used array indices const U32 VX = 0; @@ -166,82 +167,67 @@ const U32 MAXADDRSTR = 17; // 123.567.901.345 = 15 chars + \0 + 1 for good luc // // defined for U16, U32, U64, S16, S32, S64, : // llclampb(a) // clamps a to [0 .. 255] -// - -template <class LLDATATYPE> -inline LLDATATYPE llmax(const LLDATATYPE& d1, const LLDATATYPE& d2) -{ - return (d1 > d2) ? d1 : d2; -} - -template <class LLDATATYPE> -inline LLDATATYPE llmax(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3) -{ - LLDATATYPE r = llmax(d1,d2); - return llmax(r, d3); -} +// -template <class LLDATATYPE> -inline LLDATATYPE llmax(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3, const LLDATATYPE& d4) +// recursion tail +template <typename T> +inline auto llmax(T data) { - LLDATATYPE r1 = llmax(d1,d2); - LLDATATYPE r2 = llmax(d3,d4); - return llmax(r1, r2); + return data; } -template <class LLDATATYPE> -inline LLDATATYPE llmin(const LLDATATYPE& d1, const LLDATATYPE& d2) +template <typename T0, typename T1, typename... Ts> +inline auto llmax(T0 d0, T1 d1, Ts... rest) { - return (d1 < d2) ? d1 : d2; + auto maxrest = llmax(d1, rest...); + return (d0 > maxrest)? d0 : maxrest; } -template <class LLDATATYPE> -inline LLDATATYPE llmin(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3) +// recursion tail +template <typename T> +inline auto llmin(T data) { - LLDATATYPE r = llmin(d1,d2); - return (r < d3 ? r : d3); + return data; } -template <class LLDATATYPE> -inline LLDATATYPE llmin(const LLDATATYPE& d1, const LLDATATYPE& d2, const LLDATATYPE& d3, const LLDATATYPE& d4) +template <typename T0, typename T1, typename... Ts> +inline auto llmin(T0 d0, T1 d1, Ts... rest) { - LLDATATYPE r1 = llmin(d1,d2); - LLDATATYPE r2 = llmin(d3,d4); - return llmin(r1, r2); + auto minrest = llmin(d1, rest...); + return (d0 < minrest) ? d0 : minrest; } -template <class LLDATATYPE> -inline LLDATATYPE llclamp(const LLDATATYPE& a, const LLDATATYPE& minval, const LLDATATYPE& maxval) +template <typename A, typename MIN, typename MAX> +inline A llclamp(A a, MIN minval, MAX maxval) { - if ( a < minval ) + A aminval{ static_cast<A>(minval) }, amaxval{ static_cast<A>(maxval) }; + if ( a < aminval ) { - return minval; + return aminval; } - else if ( a > maxval ) + else if ( a > amaxval ) { - return maxval; + return amaxval; } return a; } template <class LLDATATYPE> -inline LLDATATYPE llclampf(const LLDATATYPE& a) +inline LLDATATYPE llclampf(LLDATATYPE a) { - return llmin(llmax(a, (LLDATATYPE)0), (LLDATATYPE)1); + return llmin(llmax(a, LLDATATYPE(0)), LLDATATYPE(1)); } template <class LLDATATYPE> -inline LLDATATYPE llclampb(const LLDATATYPE& a) +inline LLDATATYPE llclampb(LLDATATYPE a) { - return llmin(llmax(a, (LLDATATYPE)0), (LLDATATYPE)255); + return llmin(llmax(a, LLDATATYPE(0)), LLDATATYPE(255)); } template <class LLDATATYPE> inline void llswap(LLDATATYPE& lhs, LLDATATYPE& rhs) { - LLDATATYPE tmp = lhs; - lhs = rhs; - rhs = tmp; + std::swap(lhs, rhs); } #endif // LL_LLDEFS_H diff --git a/indra/llcommon/lldependencies.cpp b/indra/llcommon/lldependencies.cpp index 0d5757effd..db546c5c3b 100644 --- a/indra/llcommon/lldependencies.cpp +++ b/indra/llcommon/lldependencies.cpp @@ -42,7 +42,7 @@ // other Linden headers #include "llexception.h" -LLDependenciesBase::VertexList LLDependenciesBase::topo_sort(int vertices, const EdgeList& edges) const +LLDependenciesBase::VertexList LLDependenciesBase::topo_sort(size_t vertices, const EdgeList& edges) const { // Construct a Boost Graph Library graph according to the constraints // we've collected. It seems as though we ought to be able to capture diff --git a/indra/llcommon/lldependencies.h b/indra/llcommon/lldependencies.h index db2bbab8b0..950af4a4ad 100644 --- a/indra/llcommon/lldependencies.h +++ b/indra/llcommon/lldependencies.h @@ -126,7 +126,7 @@ public: protected: typedef std::vector< std::pair<std::size_t, std::size_t> > EdgeList; typedef std::vector<std::size_t> VertexList; - VertexList topo_sort(int vertices, const EdgeList& edges) const; + VertexList topo_sort(size_t vertices, const EdgeList& edges) const; /** * refpair is specifically intended to capture a pair of references. This @@ -539,7 +539,7 @@ public: for (typename DepNodeMap::const_iterator nmi = mNodes.begin(), nmend = mNodes.end(); nmi != nmend; ++nmi) { - int thisnode = vmap[nmi->first]; + auto thisnode = vmap[nmi->first]; // after dependencies: build edges from the named node to this one for (typename DepNode::dep_set::const_iterator ai = nmi->second.after.begin(), aend = nmi->second.after.end(); diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index 56fb7c21ca..02cb186275 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -586,11 +586,9 @@ namespace void Globals::invalidateCallSites() { - for (CallSiteVector::const_iterator i = callSites.begin(); - i != callSites.end(); - ++i) + for (LLError::CallSite* site : callSites) { - (*i)->invalidate(); + site->invalidate(); } callSites.clear(); @@ -1224,12 +1222,8 @@ namespace std::string escaped_message; LLMutexLock lock(&s->mRecorderMutex); - for (Recorders::const_iterator i = s->mRecorders.begin(); - i != s->mRecorders.end(); - ++i) + for (LLError::RecorderPtr& r : s->mRecorders) { - LLError::RecorderPtr r = *i; - if (!r->enabled()) { continue; @@ -1514,7 +1508,7 @@ namespace LLError const size_t BUF_SIZE = 64; char time_str[BUF_SIZE]; /* Flawfinder: ignore */ - int chars = strftime(time_str, BUF_SIZE, + auto chars = strftime(time_str, BUF_SIZE, "%Y-%m-%dT%H:%M:%SZ", gmtime(&now)); diff --git a/indra/llcommon/llevent.cpp b/indra/llcommon/llevent.cpp index 633df01588..501d06e3cd 100644 --- a/indra/llcommon/llevent.cpp +++ b/indra/llcommon/llevent.cpp @@ -203,10 +203,9 @@ void LLSimpleDispatcher::removeListener(LLEventListener* listener) std::vector<LLListenerEntry> LLSimpleDispatcher::getListeners() const { std::vector<LLListenerEntry> ret; - std::vector<LLListenerEntry>::const_iterator itor; - for (itor=mListeners.begin(); itor!=mListeners.end(); ++itor) + for (const LLListenerEntry& entry : mListeners) { - ret.push_back(*itor); + ret.push_back(entry); } return ret; @@ -215,14 +214,12 @@ std::vector<LLListenerEntry> LLSimpleDispatcher::getListeners() const // virtual bool LLSimpleDispatcher::fireEvent(LLPointer<LLEvent> event, LLSD filter) { - std::vector<LLListenerEntry>::iterator itor; std::string filter_string = filter.asString(); - for (itor=mListeners.begin(); itor!=mListeners.end(); ++itor) + for (LLListenerEntry& entry : mListeners) { - LLListenerEntry& entry = *itor; if (filter_string == "" || entry.filter.asString() == filter_string) { - (entry.listener)->handleEvent(event, (*itor).userdata); + (entry.listener)->handleEvent(event, entry.userdata); } } return true; @@ -276,10 +273,9 @@ void LLSimpleListener::clearDispatchers() bool LLSimpleListener::handleAttach(LLEventDispatcher *dispatcher) { // Add dispatcher if it doesn't already exist - std::vector<LLEventDispatcher *>::iterator itor; - for (itor = mDispatchers.begin(); itor != mDispatchers.end(); ++itor) + for (LLEventDispatcher* disp : mDispatchers) { - if ((*itor) == dispatcher) return true; + if (disp == dispatcher) return true; } mDispatchers.push_back(dispatcher); return true; diff --git a/indra/llcommon/lleventdispatcher.cpp b/indra/llcommon/lleventdispatcher.cpp index 5b6d4efbe9..cd0ab6bc29 100644 --- a/indra/llcommon/lleventdispatcher.cpp +++ b/indra/llcommon/lleventdispatcher.cpp @@ -178,7 +178,7 @@ private: // store it as a map from name string to position index. Of course that's // easy to generate from the incoming names array, but why do it more than // once? - typedef std::map<LLSD::String, LLSD::Integer> IndexMap; + typedef std::map<LLSD::String, size_t> IndexMap; IndexMap _indexes; // Generated array of default values, aligned with the array of param names. LLSD _defaults; @@ -197,9 +197,9 @@ LLSDArgsMapper::LLSDArgsMapper(const std::string& function, { LL_ERRS("LLSDArgsMapper") << function << " names must be an array, not " << names << LL_ENDL; } - LLSD::Integer nparams(_names.size()); + auto nparams(_names.size()); // From _names generate _indexes. - for (LLSD::Integer ni = 0, nend = _names.size(); ni < nend; ++ni) + for (size_t ni = 0, nend = _names.size(); ni < nend; ++ni) { _indexes[_names[ni]] = ni; } @@ -214,7 +214,7 @@ LLSDArgsMapper::LLSDArgsMapper(const std::string& function, if (defaults.isUndefined() || defaults.isArray()) { - LLSD::Integer ndefaults = defaults.size(); + auto ndefaults = defaults.size(); // defaults is a (possibly empty) array. Right-align it with names. if (ndefaults > nparams) { @@ -224,10 +224,10 @@ LLSDArgsMapper::LLSDArgsMapper(const std::string& function, // Offset by which we slide defaults array right to right-align with // _names array - LLSD::Integer offset = nparams - ndefaults; + auto offset = nparams - ndefaults; // Fill rightmost _defaults entries from defaults, and mark them as // filled - for (LLSD::Integer i = 0, iend = ndefaults; i < iend; ++i) + for (size_t i = 0, iend = ndefaults; i < iend; ++i) { _defaults[i + offset] = defaults[i]; _has_dft[i + offset] = 1; @@ -247,7 +247,7 @@ LLSDArgsMapper::LLSDArgsMapper(const std::string& function, continue; } - LLSD::Integer pos = ixit->second; + auto pos = ixit->second; // Store default value at that position in the _defaults array. _defaults[pos] = mi->second; // Don't forget to record the fact that we've filled this @@ -301,7 +301,7 @@ LLSD LLSDArgsMapper::map(const LLSD& argsmap) const { // Fill args from array. If there are too many args in passed array, // ignore the rest. - LLSD::Integer size(argsmap.size()); + auto size(argsmap.size()); if (size > args.size()) { // We don't just use std::min() because we want to sneak in this @@ -338,7 +338,7 @@ LLSD LLSDArgsMapper::map(const LLSD& argsmap) const << mi->first << "=" << mi->second << LL_ENDL; continue; } - LLSD::Integer pos = ixit->second; + auto pos = ixit->second; // Store the value at that position in the args array. args[pos] = mi->second; // Don't forget to record the fact that we've filled this @@ -349,7 +349,7 @@ LLSD LLSDArgsMapper::map(const LLSD& argsmap) const // Fill any remaining holes from _defaults. LLSD unfilled(LLSD::emptyArray()); - for (LLSD::Integer i = 0, iend = args.size(); i < iend; ++i) + for (size_t i = 0, iend = args.size(); i < iend; ++i) { if (! filled[i]) { @@ -503,9 +503,9 @@ struct LLEventDispatcher::MapParamsDispatchEntry: public LLEventDispatcher::Para if (defaults.isArray() || defaults.isUndefined()) { // Right-align the params and defaults arrays. - LLSD::Integer offset = params.size() - defaults.size(); + auto offset = params.size() - defaults.size(); // Now the name of every defaults[i] is at params[i + offset]. - for (LLSD::Integer i(0), iend(defaults.size()); i < iend; ++i) + for (size_t i(0), iend(defaults.size()); i < iend; ++i) { // Erase this optional param from mRequired. mRequired.erase(params[i + offset].asString()); diff --git a/indra/llcommon/llheteromap.cpp b/indra/llcommon/llheteromap.cpp index 7c19196e0c..c84e49d085 100644 --- a/indra/llcommon/llheteromap.cpp +++ b/indra/llcommon/llheteromap.cpp @@ -22,11 +22,11 @@ LLHeteroMap::~LLHeteroMap() { // For each entry in our map, we must call its deleter, which is the only // record we have of its original type. - for (TypeMap::iterator mi(mMap.begin()), me(mMap.end()); mi != me; ++mi) + for (TypeMap::value_type& pair : mMap) { - // mi->second is the std::pair; mi->second.first is the void*; - // mi->second.second points to the deleter function - (mi->second.second)(mi->second.first); - mi->second.first = NULL; + // pair.second is the std::pair; pair.second.first is the void*; + // pair.second.second points to the deleter function + (pair.second.second)(pair.second.first); + pair.second.first = NULL; } } diff --git a/indra/llcommon/llinitdestroyclass.cpp b/indra/llcommon/llinitdestroyclass.cpp index e6382a7924..e3b9e6d099 100644 --- a/indra/llcommon/llinitdestroyclass.cpp +++ b/indra/llcommon/llinitdestroyclass.cpp @@ -21,10 +21,9 @@ void LLCallbackRegistry::fireCallbacks() const { - for (FuncList::const_iterator fi = mCallbacks.begin(), fe = mCallbacks.end(); - fi != fe; ++fi) + for (FuncList::value_type pair : mCallbacks) { - LL_INFOS("LLInitDestroyClass") << "calling " << fi->first << "()" << LL_ENDL; - fi->second(); + LL_INFOS("LLInitDestroyClass") << "calling " << pair.first << "()" << LL_ENDL; + pair.second(); } } diff --git a/indra/llcommon/llinitparam.cpp b/indra/llcommon/llinitparam.cpp index aa2f4eb289..d15bd2f619 100644 --- a/indra/llcommon/llinitparam.cpp +++ b/indra/llcommon/llinitparam.cpp @@ -207,10 +207,10 @@ namespace LLInitParam if (!mValidated) { const BlockDescriptor& block_data = mostDerivedBlockDescriptor(); - for (BlockDescriptor::param_validation_list_t::const_iterator it = block_data.mValidationList.begin(); it != block_data.mValidationList.end(); ++it) + for (const BlockDescriptor::param_validation_list_t::value_type& pair : block_data.mValidationList) { - const Param* param = getParamFromHandle(it->first); - if (!it->second(param)) + const Param* param = getParamFromHandle(pair.first); + if (!pair.second(param)) { if (emit_errors) { @@ -235,13 +235,11 @@ namespace LLInitParam // unnamed param is like LLView::Params::rect - implicit const BlockDescriptor& block_data = mostDerivedBlockDescriptor(); - for (BlockDescriptor::param_list_t::const_iterator it = block_data.mUnnamedParams.begin(); - it != block_data.mUnnamedParams.end(); - ++it) + for (const ParamDescriptorPtr& ptr : block_data.mUnnamedParams) { - param_handle_t param_handle = (*it)->mParamHandle; + param_handle_t param_handle = ptr->mParamHandle; const Param* param = getParamFromHandle(param_handle); - ParamDescriptor::serialize_func_t serialize_func = (*it)->mSerializeFunc; + ParamDescriptor::serialize_func_t serialize_func = ptr->mSerializeFunc; if (serialize_func && predicate_rule.check(ll_make_predicate(PROVIDED, param->anyProvided()))) { const Param* diff_param = diff_block ? diff_block->getParamFromHandle(param_handle) : NULL; @@ -249,23 +247,19 @@ namespace LLInitParam } } - for(BlockDescriptor::param_map_t::const_iterator it = block_data.mNamedParams.begin(); - it != block_data.mNamedParams.end(); - ++it) + for (const BlockDescriptor::param_map_t::value_type& pair : block_data.mNamedParams) { - param_handle_t param_handle = it->second->mParamHandle; + param_handle_t param_handle = pair.second->mParamHandle; const Param* param = getParamFromHandle(param_handle); - ParamDescriptor::serialize_func_t serialize_func = it->second->mSerializeFunc; + ParamDescriptor::serialize_func_t serialize_func = pair.second->mSerializeFunc; if (serialize_func && predicate_rule.check(ll_make_predicate(PROVIDED, param->anyProvided()))) { // Ensure this param has not already been serialized // Prevents <rect> from being serialized as its own tag. bool duplicate = false; - for (BlockDescriptor::param_list_t::const_iterator it2 = block_data.mUnnamedParams.begin(); - it2 != block_data.mUnnamedParams.end(); - ++it2) + for (const ParamDescriptorPtr& ptr : block_data.mUnnamedParams) { - if (param_handle == (*it2)->mParamHandle) + if (param_handle == ptr->mParamHandle) { duplicate = true; break; @@ -279,7 +273,7 @@ namespace LLInitParam continue; } - name_stack.push_back(std::make_pair(it->first, !duplicate)); + name_stack.push_back(std::make_pair(pair.first, !duplicate)); const Param* diff_param = diff_block ? diff_block->getParamFromHandle(param_handle) : NULL; serialized |= serialize_func(*param, parser, name_stack, predicate_rule, diff_param); name_stack.pop_back(); @@ -300,45 +294,39 @@ namespace LLInitParam // unnamed param is like LLView::Params::rect - implicit const BlockDescriptor& block_data = mostDerivedBlockDescriptor(); - for (BlockDescriptor::param_list_t::const_iterator it = block_data.mUnnamedParams.begin(); - it != block_data.mUnnamedParams.end(); - ++it) + for (const ParamDescriptorPtr& ptr : block_data.mUnnamedParams) { - param_handle_t param_handle = (*it)->mParamHandle; + param_handle_t param_handle = ptr->mParamHandle; const Param* param = getParamFromHandle(param_handle); - ParamDescriptor::inspect_func_t inspect_func = (*it)->mInspectFunc; + ParamDescriptor::inspect_func_t inspect_func = ptr->mInspectFunc; if (inspect_func) { name_stack.push_back(std::make_pair("", true)); - inspect_func(*param, parser, name_stack, (*it)->mMinCount, (*it)->mMaxCount); + inspect_func(*param, parser, name_stack, ptr->mMinCount, ptr->mMaxCount); name_stack.pop_back(); } } - for(BlockDescriptor::param_map_t::const_iterator it = block_data.mNamedParams.begin(); - it != block_data.mNamedParams.end(); - ++it) + for(const BlockDescriptor::param_map_t::value_type& pair : block_data.mNamedParams) { - param_handle_t param_handle = it->second->mParamHandle; + param_handle_t param_handle = pair.second->mParamHandle; const Param* param = getParamFromHandle(param_handle); - ParamDescriptor::inspect_func_t inspect_func = it->second->mInspectFunc; + ParamDescriptor::inspect_func_t inspect_func = pair.second->mInspectFunc; if (inspect_func) { // Ensure this param has not already been inspected bool duplicate = false; - for (BlockDescriptor::param_list_t::const_iterator it2 = block_data.mUnnamedParams.begin(); - it2 != block_data.mUnnamedParams.end(); - ++it2) + for (const ParamDescriptorPtr &ptr : block_data.mUnnamedParams) { - if (param_handle == (*it2)->mParamHandle) + if (param_handle == ptr->mParamHandle) { duplicate = true; break; } } - name_stack.push_back(std::make_pair(it->first, !duplicate)); - inspect_func(*param, parser, name_stack, it->second->mMinCount, it->second->mMaxCount); + name_stack.push_back(std::make_pair(pair.first, !duplicate)); + inspect_func(*param, parser, name_stack, pair.second->mMinCount, pair.second->mMaxCount); name_stack.pop_back(); } } @@ -382,12 +370,10 @@ namespace LLInitParam } // try to parse unnamed parameters, in declaration order - for ( BlockDescriptor::param_list_t::iterator it = block_data.mUnnamedParams.begin(); - it != block_data.mUnnamedParams.end(); - ++it) + for (ParamDescriptorPtr& ptr : block_data.mUnnamedParams) { - Param* paramp = getParamFromHandle((*it)->mParamHandle); - ParamDescriptor::deserialize_func_t deserialize_func = (*it)->mDeserializeFunc; + Param* paramp = getParamFromHandle(ptr->mParamHandle); + ParamDescriptor::deserialize_func_t deserialize_func = ptr->mDeserializeFunc; if (deserialize_func && deserialize_func(*paramp, p, name_stack_range, new_name)) { @@ -453,12 +439,9 @@ namespace LLInitParam { param_handle_t handle = getHandleFromParam(¶m); BlockDescriptor& descriptor = mostDerivedBlockDescriptor(); - BlockDescriptor::all_params_list_t::iterator end_it = descriptor.mAllParams.end(); - for (BlockDescriptor::all_params_list_t::iterator it = descriptor.mAllParams.begin(); - it != end_it; - ++it) + for (ParamDescriptorPtr& ptr : descriptor.mAllParams) { - if ((*it)->mParamHandle == handle) return *it; + if (ptr->mParamHandle == handle) return ptr; } return ParamDescriptorPtr(); } @@ -468,17 +451,14 @@ namespace LLInitParam bool BaseBlock::mergeBlock(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite) { bool some_param_changed = false; - BlockDescriptor::all_params_list_t::const_iterator end_it = block_data.mAllParams.end(); - for (BlockDescriptor::all_params_list_t::const_iterator it = block_data.mAllParams.begin(); - it != end_it; - ++it) + for (const ParamDescriptorPtr& ptr : block_data.mAllParams) { - const Param* other_paramp = other.getParamFromHandle((*it)->mParamHandle); - ParamDescriptor::merge_func_t merge_func = (*it)->mMergeFunc; + const Param* other_paramp = other.getParamFromHandle(ptr->mParamHandle); + ParamDescriptor::merge_func_t merge_func = ptr->mMergeFunc; if (merge_func) { - Param* paramp = getParamFromHandle((*it)->mParamHandle); - llassert(paramp->getEnclosingBlockOffset() == (*it)->mParamHandle); + Param* paramp = getParamFromHandle(ptr->mParamHandle); + llassert(paramp->getEnclosingBlockOffset() == ptr->mParamHandle); some_param_changed |= merge_func(*paramp, *other_paramp, overwrite); } } diff --git a/indra/llcommon/llinitparam.h b/indra/llcommon/llinitparam.h index 7f5b9b4ac2..9edc7e40f3 100644 --- a/indra/llcommon/llinitparam.h +++ b/indra/llcommon/llinitparam.h @@ -325,13 +325,11 @@ namespace LLInitParam std::string calcValueName(const value_t& value) const { value_name_map_t* map = getValueNames(); - for (typename value_name_map_t::iterator it = map->begin(), end_it = map->end(); - it != end_it; - ++it) + for (typename value_name_map_t::value_type& map_pair : *map) { - if (ParamCompare<T>::equals(it->second, value)) + if (ParamCompare<T>::equals(map_pair.second, value)) { - return it->first; + return map_pair.first; } } @@ -376,11 +374,9 @@ namespace LLInitParam static std::vector<std::string> sValues; value_name_map_t* map = getValueNames(); - for (typename value_name_map_t::iterator it = map->begin(), end_it = map->end(); - it != end_it; - ++it) + for (typename value_name_map_t::value_type& map_pair : *map) { - sValues.push_back(it->first); + sValues.push_back(map_pair.first); } return &sValues; } diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h index 02535a59e7..34f2a5985a 100644 --- a/indra/llcommon/llinstancetracker.h +++ b/indra/llcommon/llinstancetracker.h @@ -99,7 +99,7 @@ public: return mSelf; } - static S32 instanceCount() + static size_t instanceCount() { return LockStatic()->mMap.size(); } @@ -363,7 +363,7 @@ public: return mSelf; } - static S32 instanceCount() + static size_t instanceCount() { return LockStatic()->mSet.size(); } diff --git a/indra/llcommon/llkeybind.cpp b/indra/llcommon/llkeybind.cpp index 38696c2258..b89160cc55 100644 --- a/indra/llcommon/llkeybind.cpp +++ b/indra/llcommon/llkeybind.cpp @@ -30,6 +30,7 @@ #include "llsd.h" #include "llsdutil.h" +#include <algorithm> LLKeyData::LLKeyData() : @@ -180,10 +181,10 @@ LLKeyBind::LLKeyBind(const LLSD &key_bind) bool LLKeyBind::operator==(const LLKeyBind& rhs) { - U32 size = mData.size(); + auto size = mData.size(); if (size != rhs.mData.size()) return false; - for (U32 i = 0; i < size; i++) + for (size_t i = 0; i < size; i++) { if (mData[i] != rhs.mData[i]) return false; } @@ -193,7 +194,7 @@ bool LLKeyBind::operator==(const LLKeyBind& rhs) bool LLKeyBind::operator!=(const LLKeyBind& rhs) { - U32 size = mData.size(); + auto size = mData.size(); if (size != rhs.mData.size()) return true; for (U32 i = 0; i < size; i++) @@ -206,26 +207,29 @@ bool LLKeyBind::operator!=(const LLKeyBind& rhs) bool LLKeyBind::isEmpty() const { - for (data_vector_t::const_iterator iter = mData.begin(); iter != mData.end(); iter++) + for (const LLKeyData& key_data : mData) { - if (!iter->isEmpty()) return false; + if (!key_data.isEmpty()) return false; } return true; } -LLSD LLKeyBind::asLLSD() const +LLKeyBind::data_vector_t::const_iterator LLKeyBind::endNonEmpty() const { - S32 last = mData.size() - 1; - while (mData[last].empty()) - { - last--; - } + // search backwards for last non-empty entry, then turn back into forwards + // iterator (.base() call) + return std::find_if_not(mData.rbegin(), mData.rend(), + [](const auto& kdata){ return kdata.empty(); }).base(); +} +LLSD LLKeyBind::asLLSD() const +{ LLSD data; - for (S32 i = 0; i <= last; ++i) + for (const LLKeyData& key_data : mData) { - // append even if empty to not affect visual representation - data.append(mData[i].asLLSD()); + // append intermediate entries even if empty to not affect visual + // representation + data.append(key_data.asLLSD()); } return data; } @@ -238,9 +242,9 @@ bool LLKeyBind::canHandle(EMouseClickType mouse, KEY key, MASK mask) const return false; } - for (data_vector_t::const_iterator iter = mData.begin(); iter != mData.end(); iter++) + for (const LLKeyData& key_data : mData) { - if (iter->canHandle(mouse, key, mask)) + if (key_data.canHandle(mouse, key, mask)) { return true; } @@ -262,12 +266,12 @@ bool LLKeyBind::hasKeyData(EMouseClickType mouse, KEY key, MASK mask, bool ignor { if (mouse != CLICK_NONE || key != KEY_NONE) { - for (data_vector_t::const_iterator iter = mData.begin(); iter != mData.end(); iter++) + for (const LLKeyData& key_data : mData) { - if (iter->mKey == key - && iter->mMask == mask - && iter->mMouse == mouse - && iter->mIgnoreMasks == ignore) + if (key_data.mKey == key + && key_data.mMask == mask + && key_data.mMouse == mouse + && key_data.mIgnoreMasks == ignore) { return true; } @@ -349,16 +353,16 @@ void LLKeyBind::replaceKeyData(const LLKeyData& data, U32 index) { // if both click and key are none (isEmpty()), we are inserting a placeholder, we don't want to reset anything // otherwise reset identical key - for (data_vector_t::iterator iter = mData.begin(); iter != mData.end(); iter++) + for (LLKeyData& key_data : mData) { - if (iter->mKey == data.mKey - && iter->mMouse == data.mMouse - && iter->mIgnoreMasks == data.mIgnoreMasks - && iter->mMask == data.mMask) + if (key_data.mKey == data.mKey + && key_data.mMouse == data.mMouse + && key_data.mIgnoreMasks == data.mIgnoreMasks + && key_data.mMask == data.mMask) { // Replacing only fully equal combinations even in case 'ignore' is set // Reason: Simplicity and user might decide to do a 'move' command as W and Shift+Ctrl+W, and 'run' as Shift+W - iter->reset(); + key_data.reset(); break; } } @@ -380,16 +384,10 @@ void LLKeyBind::resetKeyData(S32 index) void LLKeyBind::trimEmpty() { - S32 last = mData.size() - 1; - while (last >= 0 && mData[last].empty()) - { - mData.erase(mData.begin() + last); - last--; - } + mData.erase(endNonEmpty(), mData.end()); } -U32 LLKeyBind::getDataCount() +size_t LLKeyBind::getDataCount() { return mData.size(); } - diff --git a/indra/llcommon/llkeybind.h b/indra/llcommon/llkeybind.h index c6b4bd970f..488f509411 100644 --- a/indra/llcommon/llkeybind.h +++ b/indra/llcommon/llkeybind.h @@ -95,11 +95,13 @@ public: void clear() { mData.clear(); } // if there any empty LLKeyData in the end of the array, remove them void trimEmpty(); - U32 getDataCount(); + size_t getDataCount(); private: typedef std::vector<LLKeyData> data_vector_t; data_vector_t mData; + + data_vector_t::const_iterator endNonEmpty() const; }; diff --git a/indra/llcommon/llleap.cpp b/indra/llcommon/llleap.cpp index 2704f8b6de..259f5bc505 100644 --- a/indra/llcommon/llleap.cpp +++ b/indra/llcommon/llleap.cpp @@ -204,34 +204,40 @@ public: LLSD packet(LLSDMap("pump", pump)("data", data)); std::ostringstream buffer; - buffer << LLSDNotationStreamer(packet); + // SL-18330: for large data blocks, it's much faster to parse binary + // LLSD than notation LLSD. Use serialize(LLSD_BINARY) rather than + // directly calling LLSDBinaryFormatter because, unlike the latter, + // serialize() prepends the relevant header, needed by a general- + // purpose LLSD parser to distinguish binary from notation. + LLSDSerialize::serialize(packet, buffer, LLSDSerialize::LLSD_BINARY, + LLSDFormatter::OPTIONS_NONE); /*==========================================================================*| // DEBUGGING ONLY: don't copy str() if we can avoid it. std::string strdata(buffer.str()); if (std::size_t(buffer.tellp()) != strdata.length()) { - LL_ERRS("LLLeap") << "tellp() -> " << buffer.tellp() << " != " + LL_ERRS("LLLeap") << "tellp() -> " << static_cast<U64>(buffer.tellp()) << " != " << "str().length() -> " << strdata.length() << LL_ENDL; } // DEBUGGING ONLY: reading back is terribly inefficient. std::istringstream readback(strdata); LLSD echo; - LLPointer<LLSDParser> parser(new LLSDNotationParser()); - S32 parse_status(parser->parse(readback, echo, strdata.length())); - if (parse_status == LLSDParser::PARSE_FAILURE) + bool parse_status(LLSDSerialize::deserialize(echo, readback, strdata.length())); + if (! parse_status) { - LL_ERRS("LLLeap") << "LLSDNotationParser() cannot parse output of " - << "LLSDNotationStreamer()" << LL_ENDL; + LL_ERRS("LLLeap") << "LLSDSerialize::deserialize() cannot parse output of " + << "LLSDSerialize::serialize(LLSD_BINARY)" << LL_ENDL; } if (! llsd_equals(echo, packet)) { - LL_ERRS("LLLeap") << "LLSDNotationParser() produced different LLSD " - << "than passed to LLSDNotationStreamer()" << LL_ENDL; + LL_ERRS("LLLeap") << "LLSDSerialize::deserialize() returned different LLSD " + << "than passed to LLSDSerialize::serialize()" << LL_ENDL; } |*==========================================================================*/ - LL_DEBUGS("EventHost") << "Sending: " << buffer.tellp() << ':'; + LL_DEBUGS("EventHost") << "Sending: " + << static_cast<U64>(buffer.tellp()) << ':'; std::string::size_type truncate(80); if (buffer.tellp() <= truncate) { @@ -244,7 +250,8 @@ public: LL_CONT << LL_ENDL; LLProcess::WritePipe& childin(mChild->getWritePipe(LLProcess::STDIN)); - childin.get_ostream() << buffer.tellp() << ':' << buffer.str() << std::flush; + childin.get_ostream() << static_cast<U64>(buffer.tellp()) + << ':' << buffer.str() << std::flush; return false; } @@ -312,9 +319,17 @@ public: LL_DEBUGS("LLLeap") << "needed " << mExpect << " bytes, got " << childout.size() << ", parsing LLSD" << LL_ENDL; LLSD data; +#if 1 + // specifically require notation LLSD from child LLPointer<LLSDParser> parser(new LLSDNotationParser()); S32 parse_status(parser->parse(childout.get_istream(), data, mExpect)); if (parse_status == LLSDParser::PARSE_FAILURE) +#else + // SL-18330: accept any valid LLSD serialization format from child + // Unfortunately this runs into trouble we have not yet debugged. + bool parse_status(LLSDSerialize::deserialize(data, childout.get_istream(), mExpect)); + if (! parse_status) +#endif { bad_protocol("unparseable LLSD data"); } diff --git a/indra/llcommon/llmd5.cpp b/indra/llcommon/llmd5.cpp index f942a976b7..0abe817f1d 100644 --- a/indra/llcommon/llmd5.cpp +++ b/indra/llcommon/llmd5.cpp @@ -96,10 +96,10 @@ LLMD5::LLMD5() // operation, processing another message block, and updating the // context. -void LLMD5::update (const uint1 *input, const uint4 input_length) { +void LLMD5::update (const uint8_t *input, const size_t input_length) { - uint4 input_index, buffer_index; - uint4 buffer_space; // how much space is left in buffer + size_t input_index, buffer_index; + size_t buffer_space; // how much space is left in buffer if (finalized){ // so we can't update! std::cerr << "LLMD5::update: Can't update a finalized digest!" << std::endl; @@ -107,14 +107,10 @@ void LLMD5::update (const uint1 *input, const uint4 input_length) { } // Compute number of bytes mod 64 - buffer_index = (unsigned int)((count[0] >> 3) & 0x3F); + buffer_index = size_t((count >> 3) & 0x3F); // Update number of bits - if ( (count[0] += ((uint4) input_length << 3))<((uint4) input_length << 3) ) - count[1]++; - - count[1] += ((uint4)input_length >> 29); - + count += input_length << 3; buffer_space = 64 - buffer_index; // how much space is left in buffer @@ -192,8 +188,8 @@ void LLMD5::update(const std::string& s) void LLMD5::finalize (){ unsigned char bits[8]; /* Flawfinder: ignore */ - unsigned int index, padLen; - static uint1 PADDING[64]={ + size_t index, padLen; + static uint8_t PADDING[64]={ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 @@ -204,11 +200,12 @@ void LLMD5::finalize (){ return; } - // Save number of bits - encode (bits, count, 8); + // Save number of bits. + // Treat count, a uint64_t, as uint32_t[2]. + encode (bits, reinterpret_cast<uint32_t*>(&count), 8); // Pad out to 56 mod 64. - index = (uint4) ((count[0] >> 3) & 0x3f); + index = size_t((count >> 3) & 0x3f); padLen = (index < 56) ? (56 - index) : (120 - index); update (PADDING, padLen); @@ -340,8 +337,7 @@ void LLMD5::init(){ finalized=0; // we just started! // Nothing counted, so count=0 - count[0] = 0; - count[1] = 0; + count = 0; // Load magic initialization constants. state[0] = 0x67452301; @@ -416,7 +412,7 @@ Rotation is separate from addition to prevent recomputation. // LLMD5 basic transformation. Transforms state based on block. void LLMD5::transform (const U8 block[64]){ - uint4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; + uint32_t a = state[0], b = state[1], c = state[2], d = state[3], x[16]; decode (x, block, 64); @@ -500,38 +496,38 @@ void LLMD5::transform (const U8 block[64]){ state[3] += d; // Zeroize sensitive information. - memset ( (uint1 *) x, 0, sizeof(x)); + memset ( (uint8_t *) x, 0, sizeof(x)); } -// Encodes input (UINT4) into output (unsigned char). Assumes len is +// Encodes input (uint32_t) into output (unsigned char). Assumes len is // a multiple of 4. -void LLMD5::encode (uint1 *output, const uint4 *input, const uint4 len) { +void LLMD5::encode (uint8_t *output, const uint32_t *input, const size_t len) { - unsigned int i, j; + size_t i, j; for (i = 0, j = 0; j < len; i++, j += 4) { - output[j] = (uint1) (input[i] & 0xff); - output[j+1] = (uint1) ((input[i] >> 8) & 0xff); - output[j+2] = (uint1) ((input[i] >> 16) & 0xff); - output[j+3] = (uint1) ((input[i] >> 24) & 0xff); + output[j] = (uint8_t) (input[i] & 0xff); + output[j+1] = (uint8_t) ((input[i] >> 8) & 0xff); + output[j+2] = (uint8_t) ((input[i] >> 16) & 0xff); + output[j+3] = (uint8_t) ((input[i] >> 24) & 0xff); } } -// Decodes input (unsigned char) into output (UINT4). Assumes len is +// Decodes input (unsigned char) into output (uint32_t). Assumes len is // a multiple of 4. -void LLMD5::decode (uint4 *output, const uint1 *input, const uint4 len){ +void LLMD5::decode (uint32_t *output, const uint8_t *input, const size_t len){ - unsigned int i, j; + size_t i, j; for (i = 0, j = 0; j < len; i++, j += 4) - output[i] = ((uint4)input[j]) | (((uint4)input[j+1]) << 8) | - (((uint4)input[j+2]) << 16) | (((uint4)input[j+3]) << 24); + output[i] = ((uint32_t)input[j]) | (((uint32_t)input[j+1]) << 8) | + (((uint32_t)input[j+2]) << 16) | (((uint32_t)input[j+3]) << 24); } diff --git a/indra/llcommon/llmd5.h b/indra/llcommon/llmd5.h index 1526e6ac3c..7d6373c20c 100644 --- a/indra/llcommon/llmd5.h +++ b/indra/llcommon/llmd5.h @@ -67,6 +67,8 @@ documentation and/or software. */ +#include <cstdint> // uint32_t et al. + // use for the raw digest output const int MD5RAW_BYTES = 16; @@ -75,18 +77,13 @@ const int MD5HEX_STR_SIZE = 33; // char hex[MD5HEX_STR_SIZE]; with null const int MD5HEX_STR_BYTES = 32; // message system fixed size class LL_COMMON_API LLMD5 { -// first, some types: - typedef unsigned int uint4; // assumes integer is 4 words long - typedef unsigned short int uint2; // assumes short integer is 2 words long - typedef unsigned char uint1; // assumes char is 1 word long - // how many bytes to grab at a time when checking files static const int BLOCK_LEN; public: // methods for controlled operation: LLMD5 (); // simple initializer - void update (const uint1 *input, const uint4 input_length); + void update (const uint8_t *input, const size_t input_length); void update (std::istream& stream); void update (FILE *file); void update (const std::string& str); @@ -109,19 +106,19 @@ private: // next, the private data: - uint4 state[4]; - uint4 count[2]; // number of *bits*, mod 2^64 - uint1 buffer[64]; // input buffer - uint1 digest[16]; - uint1 finalized; + uint32_t state[4]; + uint64_t count; // number of *bits*, mod 2^64 + uint8_t buffer[64]; // input buffer + uint8_t digest[16]; + uint8_t finalized; // last, the private methods, mostly static: void init (); // called by all constructors - void transform (const uint1 *buffer); // does the real update work. Note + void transform (const uint8_t *buffer); // does the real update work. Note // that length is implied to be 64. - static void encode (uint1 *dest, const uint4 *src, const uint4 length); - static void decode (uint4 *dest, const uint1 *src, const uint4 length); + static void encode (uint8_t *dest, const uint32_t *src, const size_t length); + static void decode (uint32_t *dest, const uint8_t *src, const size_t length); }; diff --git a/indra/llcommon/llmetricperformancetester.cpp b/indra/llcommon/llmetricperformancetester.cpp index 100eb57555..ab509b46eb 100644 --- a/indra/llcommon/llmetricperformancetester.cpp +++ b/indra/llcommon/llmetricperformancetester.cpp @@ -42,9 +42,9 @@ LLMetricPerformanceTesterBasic::name_tester_map_t LLMetricPerformanceTesterBasic /*static*/ void LLMetricPerformanceTesterBasic::cleanupClass() { - for (name_tester_map_t::iterator iter = sTesterMap.begin() ; iter != sTesterMap.end() ; ++iter) + for (name_tester_map_t::value_type& pair : sTesterMap) { - delete iter->second ; + delete pair.second; } sTesterMap.clear() ; } @@ -111,8 +111,8 @@ LLSD LLMetricPerformanceTesterBasic::analyzeMetricPerformanceLog(std::istream& i { ret[label]["Name"] = iter->second["Name"] ; - S32 num_of_metrics = tester->getNumberOfMetrics() ; - for(S32 index = 0 ; index < num_of_metrics ; index++) + auto num_of_metrics = tester->getNumberOfMetrics() ; + for(size_t index = 0 ; index < num_of_metrics ; index++) { ret[label][ tester->getMetricName(index) ] = iter->second[ tester->getMetricName(index) ] ; } @@ -154,10 +154,9 @@ void LLMetricPerformanceTesterBasic::doAnalysisMetrics(std::string baseline, std llofstream os(output.c_str()); os << "Label, Metric, Base(B), Target(T), Diff(T-B), Percentage(100*T/B)\n"; - for(LLMetricPerformanceTesterBasic::name_tester_map_t::iterator iter = LLMetricPerformanceTesterBasic::sTesterMap.begin() ; - iter != LLMetricPerformanceTesterBasic::sTesterMap.end() ; ++iter) + for (LLMetricPerformanceTesterBasic::name_tester_map_t::value_type& pair : LLMetricPerformanceTesterBasic::sTesterMap) { - LLMetricPerformanceTesterBasic* tester = ((LLMetricPerformanceTesterBasic*)iter->second) ; + LLMetricPerformanceTesterBasic* tester = ((LLMetricPerformanceTesterBasic*)pair.second); tester->analyzePerformance(&os, &base, ¤t) ; } diff --git a/indra/llcommon/llmetricperformancetester.h b/indra/llcommon/llmetricperformancetester.h index 2e99ed979d..6561a78f03 100644 --- a/indra/llcommon/llmetricperformancetester.h +++ b/indra/llcommon/llmetricperformancetester.h @@ -67,12 +67,12 @@ public: /** * @return Returns the number of the test metrics in this tester instance. */ - S32 getNumberOfMetrics() const { return mMetricStrings.size() ;} + auto getNumberOfMetrics() const { return mMetricStrings.size() ;} /** * @return Returns the metric name at index * @param[in] index - Index on the list of metrics managed by this tester instance. */ - std::string getMetricName(S32 index) const { return mMetricStrings[index] ;} + std::string getMetricName(size_t index) const { return mMetricStrings[index] ;} protected: /** diff --git a/indra/llcommon/llmortician.cpp b/indra/llcommon/llmortician.cpp index 93c7d520f2..b6ad40c2af 100644 --- a/indra/llcommon/llmortician.cpp +++ b/indra/llcommon/llmortician.cpp @@ -37,9 +37,9 @@ LLMortician::~LLMortician() sGraveyard.remove(this); } -U32 LLMortician::logClass(std::stringstream &str) +size_t LLMortician::logClass(std::stringstream &str) { - U32 size = sGraveyard.size(); + auto size = sGraveyard.size(); str << "Mortician graveyard count: " << size; str << " Zealous: " << (sDestroyImmediate ? "True" : "False"); if (size == 0) diff --git a/indra/llcommon/llmortician.h b/indra/llcommon/llmortician.h index 41cb49fab1..f92c5a11db 100644 --- a/indra/llcommon/llmortician.h +++ b/indra/llcommon/llmortician.h @@ -34,8 +34,8 @@ class LL_COMMON_API LLMortician { public: LLMortician() { mIsDead = FALSE; } - static U32 graveyardCount() { return sGraveyard.size(); }; - static U32 logClass(std::stringstream &str); + static auto graveyardCount() { return sGraveyard.size(); }; + static size_t logClass(std::stringstream &str); static void updateClass(); virtual ~LLMortician(); void die(); diff --git a/indra/llcommon/llnametable.h b/indra/llcommon/llnametable.h index d3283543f3..2c8e71263e 100644 --- a/indra/llcommon/llnametable.h +++ b/indra/llcommon/llnametable.h @@ -86,12 +86,10 @@ public: // O(N)! (currently only used in one place... (newsim/llstate.cpp)) const char *resolveData(const DATA &data) const { - const_iter_t iter = mNameMap.begin(); - const_iter_t end = mNameMap.end(); - for (; iter != end; ++iter) + for (const name_map_t::value_type& pair : mNameMap) { - if (iter->second == data) - return iter->first; + if (pair.second == data) + return pair.first; } return NULL; } diff --git a/indra/llcommon/llpriqueuemap.h b/indra/llcommon/llpriqueuemap.h index d8d3edd48a..030e2e0f21 100644 --- a/indra/llcommon/llpriqueuemap.h +++ b/indra/llcommon/llpriqueuemap.h @@ -115,9 +115,9 @@ public: LL_WARNS() << "Data not on priority queue!" << LL_ENDL; // OK, try iterating through all of the data and seeing if we just screwed up the priority // somehow. - for (iter = mMap.begin(); iter != mMap.end(); iter++) + for (pqm_pair pair : mMap) { - if ((*(iter)).second == data) + if (pair.second == data) { LL_ERRS() << "Data on priority queue but priority not matched!" << LL_ENDL; } diff --git a/indra/llcommon/llqueuedthread.cpp b/indra/llcommon/llqueuedthread.cpp index 8cef4293cd..b06fee0ec2 100644 --- a/indra/llcommon/llqueuedthread.cpp +++ b/indra/llcommon/llqueuedthread.cpp @@ -110,7 +110,7 @@ void LLQueuedThread::shutdown() // MAIN THREAD // virtual -S32 LLQueuedThread::update(F32 max_time_ms) +size_t LLQueuedThread::update(F32 max_time_ms) { if (!mStarted) { @@ -123,11 +123,11 @@ S32 LLQueuedThread::update(F32 max_time_ms) return updateQueue(max_time_ms); } -S32 LLQueuedThread::updateQueue(F32 max_time_ms) +size_t LLQueuedThread::updateQueue(F32 max_time_ms) { F64 max_time = (F64)max_time_ms * .001; LLTimer timer; - S32 pending = 1; + size_t pending = 1; // Frame Update if (mThreaded) @@ -164,9 +164,9 @@ void LLQueuedThread::incQueue() //virtual // May be called from any thread -S32 LLQueuedThread::getPending() +size_t LLQueuedThread::getPending() { - S32 res; + size_t res; lockData(); res = mRequestQueue.size(); unlockData(); @@ -399,7 +399,7 @@ bool LLQueuedThread::check() //============================================================================ // Runs on its OWN thread -S32 LLQueuedThread::processNextRequest() +size_t LLQueuedThread::processNextRequest() { QueuedRequest *req; // Get next request from pool @@ -473,8 +473,7 @@ S32 LLQueuedThread::processNextRequest() LLTrace::get_thread_recorder()->pushToParent(); } - S32 pending = getPending(); - return pending; + return getPending(); } // virtual @@ -511,7 +510,7 @@ void LLQueuedThread::run() threadedUpdate(); - int pending_work = processNextRequest(); + auto pending_work = processNextRequest(); if (pending_work == 0) { diff --git a/indra/llcommon/llqueuedthread.h b/indra/llcommon/llqueuedthread.h index 5d3f873646..90fce3dc5d 100644 --- a/indra/llcommon/llqueuedthread.h +++ b/indra/llcommon/llqueuedthread.h @@ -167,19 +167,19 @@ private: protected: handle_t generateHandle(); bool addRequest(QueuedRequest* req); - S32 processNextRequest(void); + size_t processNextRequest(void); void incQueue(); public: bool waitForResult(handle_t handle, bool auto_complete = true); - virtual S32 update(F32 max_time_ms); - S32 updateQueue(F32 max_time_ms); - + virtual size_t update(F32 max_time_ms); + size_t updateQueue(F32 max_time_ms); + void waitOnPending(); void printQueueStats(); - virtual S32 getPending(); + virtual size_t getPending(); bool getThreaded() { return mThreaded ? true : false; } // Request accessors diff --git a/indra/llcommon/llregistry.h b/indra/llcommon/llregistry.h index 750fe9fdc8..e272d7a9b8 100644 --- a/indra/llcommon/llregistry.h +++ b/indra/llcommon/llregistry.h @@ -141,11 +141,9 @@ public: ptr_value_t getValue(ref_const_key_t key) { - for(scope_list_iterator_t it = mActiveScopes.begin(); - it != mActiveScopes.end(); - ++it) + for(Registrar* scope : mActiveScopes) { - ptr_value_t valuep = (*it)->getValue(key); + ptr_value_t valuep = scope->getValue(key); if (valuep != NULL) return valuep; } return mDefaultRegistrar.getValue(key); @@ -153,11 +151,9 @@ public: ptr_const_value_t getValue(ref_const_key_t key) const { - for(scope_list_const_iterator_t it = mActiveScopes.begin(); - it != mActiveScopes.end(); - ++it) + for(const Registrar* scope : mActiveScopes) { - ptr_value_t valuep = (*it)->getValue(key); + ptr_const_value_t valuep = scope->getValue(key); if (valuep != NULL) return valuep; } return mDefaultRegistrar.getValue(key); @@ -165,11 +161,9 @@ public: bool exists(ref_const_key_t key) const { - for(scope_list_const_iterator_t it = mActiveScopes.begin(); - it != mActiveScopes.end(); - ++it) + for(const Registrar* scope : mActiveScopes) { - if ((*it)->exists(key)) return true; + if (scope->exists(key)) return true; } return mDefaultRegistrar.exists(key); @@ -177,11 +171,9 @@ public: bool empty() const { - for(scope_list_const_iterator_t it = mActiveScopes.begin(); - it != mActiveScopes.end(); - ++it) + for(const Registrar* scope : mActiveScopes) { - if (!(*it)->empty()) return false; + if (!scope->empty()) return false; } return mDefaultRegistrar.empty(); diff --git a/indra/llcommon/llrun.cpp b/indra/llcommon/llrun.cpp index f5d3f302fa..a3b3fccf4b 100644 --- a/indra/llcommon/llrun.cpp +++ b/indra/llcommon/llrun.cpp @@ -47,7 +47,7 @@ LLRunner::~LLRunner() mRunEvery.clear(); } -S32 LLRunner::run() +size_t LLRunner::run() { // We collect all of the runnables which should be run. Since the // runnables are allowed to adjust the run list, we need to copy diff --git a/indra/llcommon/llrun.h b/indra/llcommon/llrun.h index a117405366..d610f86234 100644 --- a/indra/llcommon/llrun.h +++ b/indra/llcommon/llrun.h @@ -85,7 +85,7 @@ public: * * @return Returns the number of runnables run. */ - S32 run(); + size_t run(); /** * @brief Add a runnable to the run list. diff --git a/indra/llcommon/llsd.cpp b/indra/llcommon/llsd.cpp index 807b3d13f8..a645e624f8 100644 --- a/indra/llcommon/llsd.cpp +++ b/indra/llcommon/llsd.cpp @@ -36,6 +36,18 @@ #include "llsdserialize.h" #include "stringize.h" +#include <limits> + +// Defend against a caller forcibly passing a negative number into an unsigned +// size_t index param +inline +bool was_negative(size_t i) +{ + return (i > std::numeric_limits<int>::max()); +} +#define NEGATIVE_EXIT(i) if (was_negative(i)) return +#define NEGATIVE_RETURN(i, result) NEGATIVE_EXIT(i) (result) + #ifndef LL_RELEASE_FOR_DOWNLOAD #define NAME_UNNAMED_NAMESPACE #endif @@ -136,10 +148,10 @@ public: virtual void erase(const String&) { } virtual const LLSD& ref(const String&) const{ return undef(); } - virtual int size() const { return 0; } - virtual LLSD get(Integer) const { return LLSD(); } - virtual void erase(Integer) { } - virtual const LLSD& ref(Integer) const { return undef(); } + virtual size_t size() const { return 0; } + virtual LLSD get(size_t) const { return LLSD(); } + virtual void erase(size_t) { } + virtual const LLSD& ref(size_t) const { return undef(); } virtual LLSD::map_const_iterator beginMap() const { return endMap(); } virtual LLSD::map_const_iterator endMap() const { static const std::map<String, LLSD> empty; return empty.end(); } @@ -272,7 +284,7 @@ namespace virtual LLSD::UUID asUUID() const { return LLUUID(mValue); } virtual LLSD::Date asDate() const { return LLDate(mValue); } virtual LLSD::URI asURI() const { return LLURI(mValue); } - virtual int size() const { return mValue.size(); } + virtual size_t size() const { return mValue.size(); } virtual const LLSD::String& asStringRef() const { return mValue; } }; @@ -377,9 +389,9 @@ namespace virtual bool has(const LLSD::String&) const; - using LLSD::Impl::get; // Unhiding get(LLSD::Integer) - using LLSD::Impl::erase; // Unhiding erase(LLSD::Integer) - using LLSD::Impl::ref; // Unhiding ref(LLSD::Integer) + using LLSD::Impl::get; // Unhiding get(size_t) + using LLSD::Impl::erase; // Unhiding erase(size_t) + using LLSD::Impl::ref; // Unhiding ref(size_t) virtual LLSD get(const LLSD::String&) const; virtual LLSD getKeys() const; void insert(const LLSD::String& k, const LLSD& v); @@ -387,7 +399,7 @@ namespace LLSD& ref(const LLSD::String&); virtual const LLSD& ref(const LLSD::String&) const; - virtual int size() const { return mData.size(); } + virtual size_t size() const { return mData.size(); } LLSD::map_iterator beginMap() { return mData.begin(); } LLSD::map_iterator endMap() { return mData.end(); } @@ -518,14 +530,14 @@ namespace using LLSD::Impl::get; // Unhiding get(LLSD::String) using LLSD::Impl::erase; // Unhiding erase(LLSD::String) using LLSD::Impl::ref; // Unhiding ref(LLSD::String) - virtual int size() const; - virtual LLSD get(LLSD::Integer) const; - void set(LLSD::Integer, const LLSD&); - void insert(LLSD::Integer, const LLSD&); + virtual size_t size() const; + virtual LLSD get(size_t) const; + void set(size_t, const LLSD&); + void insert(size_t, const LLSD&); LLSD& append(const LLSD&); - virtual void erase(LLSD::Integer); - LLSD& ref(LLSD::Integer); - virtual const LLSD& ref(LLSD::Integer) const; + virtual void erase(size_t); + LLSD& ref(size_t); + virtual const LLSD& ref(size_t) const; LLSD::array_iterator beginArray() { return mData.begin(); } LLSD::array_iterator endArray() { return mData.end(); } @@ -550,85 +562,82 @@ namespace return *this; } } - - int ImplArray::size() const { return mData.size(); } - - LLSD ImplArray::get(LLSD::Integer i) const + + size_t ImplArray::size() const { return mData.size(); } + + LLSD ImplArray::get(size_t i) const { - if (i < 0) { return LLSD(); } + NEGATIVE_RETURN(i, LLSD()); DataVector::size_type index = i; - + return (index < mData.size()) ? mData[index] : LLSD(); } - - void ImplArray::set(LLSD::Integer i, const LLSD& v) + + void ImplArray::set(size_t i, const LLSD& v) { - if (i < 0) { return; } + NEGATIVE_EXIT(i); DataVector::size_type index = i; - + if (index >= mData.size()) { mData.resize(index + 1); } - + mData[index] = v; } - - void ImplArray::insert(LLSD::Integer i, const LLSD& v) + + void ImplArray::insert(size_t i, const LLSD& v) { - if (i < 0) - { - return; - } + NEGATIVE_EXIT(i); DataVector::size_type index = i; - + if (index >= mData.size()) // tbd - sanity check limit for index ? { mData.resize(index + 1); } - + mData.insert(mData.begin() + index, v); } - + LLSD& ImplArray::append(const LLSD& v) { mData.push_back(v); return mData.back(); } - - void ImplArray::erase(LLSD::Integer i) + + void ImplArray::erase(size_t i) { - if (i < 0) { return; } + NEGATIVE_EXIT(i); DataVector::size_type index = i; - + if (index < mData.size()) { mData.erase(mData.begin() + index); } } - - LLSD& ImplArray::ref(LLSD::Integer i) + + LLSD& ImplArray::ref(size_t i) { - DataVector::size_type index = i >= 0 ? i : 0; - + DataVector::size_type index = was_negative(i)? 0 : i; + if (index >= mData.size()) { mData.resize(i + 1); } - + return mData[index]; } - const LLSD& ImplArray::ref(LLSD::Integer i) const + const LLSD& ImplArray::ref(size_t i) const { - if (i < 0) { return undef(); } + NEGATIVE_RETURN(i, undef()); DataVector::size_type index = i; - + if (index >= mData.size()) { return undef(); } - + return mData[index]; } @@ -841,9 +850,6 @@ LLSD::LLSD(const Date& v) : impl(0) { ALLOC_LLSD_OBJECT; assign(v); } LLSD::LLSD(const URI& v) : impl(0) { ALLOC_LLSD_OBJECT; assign(v); } LLSD::LLSD(const Binary& v) : impl(0) { ALLOC_LLSD_OBJECT; assign(v); } -// Convenience Constructors -LLSD::LLSD(F32 v) : impl(0) { ALLOC_LLSD_OBJECT; assign((Real)v); } - // Scalar Assignment void LLSD::assign(Boolean v) { safe(impl).assign(impl, v); } void LLSD::assign(Integer v) { safe(impl).assign(impl, v); } @@ -912,7 +918,7 @@ LLSD LLSD::emptyArray() return v; } -int LLSD::size() const { return safe(impl).size(); } +size_t LLSD::size() const { return safe(impl).size(); } LLSD LLSD::get(Integer i) const { return safe(impl).get(i); } void LLSD::set(Integer i, const LLSD& v){ makeArray(impl).set(i, v); } @@ -926,12 +932,12 @@ LLSD& LLSD::with(Integer i, const LLSD& v) LLSD& LLSD::append(const LLSD& v) { return makeArray(impl).append(v); } void LLSD::erase(Integer i) { makeArray(impl).erase(i); } -LLSD& LLSD::operator[](Integer i) +LLSD& LLSD::operator[](size_t i) { LL_PROFILE_ZONE_SCOPED_CATEGORY_LLSD; return makeArray(impl).ref(i); } -const LLSD& LLSD::operator[](Integer i) const +const LLSD& LLSD::operator[](size_t i) const { LL_PROFILE_ZONE_SCOPED_CATEGORY_LLSD; return safe(impl).ref(i); @@ -956,7 +962,7 @@ static const char *llsd_dump(const LLSD &llsd, bool useXMLFormat) out << LLSDNotationStreamer(llsd); out_string = out.str(); } - int len = out_string.length(); + auto len = out_string.length(); sStorage = new char[len + 1]; memcpy(sStorage, out_string.c_str(), len); sStorage[len] = '\0'; diff --git a/indra/llcommon/llsd.h b/indra/llcommon/llsd.h index 3daaef44fc..4e9fcc77ee 100644 --- a/indra/llcommon/llsd.h +++ b/indra/llcommon/llsd.h @@ -30,6 +30,7 @@ #include <map> #include <string> #include <vector> +#include <type_traits> #include "stdtypes.h" @@ -192,7 +193,17 @@ public: /** @name Convenience Constructors */ //@{ - LLSD(F32); // F32 -> Real + // support construction from size_t et al. + template <typename VALUE, + typename std::enable_if<std::is_integral<VALUE>::value && + ! std::is_same<VALUE, Boolean>::value, + bool>::type = true> + LLSD(VALUE v): LLSD(Integer(narrow(v))) {} + // support construction from F32 et al. + template <typename VALUE, + typename std::enable_if<std::is_floating_point<VALUE>::value, + bool>::type = true> + LLSD(VALUE v): LLSD(Real(narrow(v))) {} //@} /** @name Scalar Assignment */ @@ -205,15 +216,21 @@ public: void assign(const Date&); void assign(const URI&); void assign(const Binary&); - - LLSD& operator=(Boolean v) { assign(v); return *this; } - LLSD& operator=(Integer v) { assign(v); return *this; } - LLSD& operator=(Real v) { assign(v); return *this; } - LLSD& operator=(const String& v) { assign(v); return *this; } - LLSD& operator=(const UUID& v) { assign(v); return *this; } - LLSD& operator=(const Date& v) { assign(v); return *this; } - LLSD& operator=(const URI& v) { assign(v); return *this; } - LLSD& operator=(const Binary& v) { assign(v); return *this; } + + // support assignment from size_t et al. + template <typename VALUE, + typename std::enable_if<std::is_integral<VALUE>::value && + ! std::is_same<VALUE, Boolean>::value, + bool>::type = true> + void assign(VALUE v) { assign(Integer(narrow(v))); } + // support assignment from F32 et al. + template <typename VALUE, + typename std::enable_if<std::is_floating_point<VALUE>::value, + bool>::type = true> + void assign(VALUE v) { assign(Real(narrow(v))); } + + template <typename VALUE> + LLSD& operator=(VALUE v) { assign(v); return *this; } //@} /** @@ -275,7 +292,6 @@ public: //@{ LLSD(const char*); void assign(const char*); - LLSD& operator=(const char* v) { assign(v); return *this; } //@} /** @name Map Values */ @@ -313,14 +329,24 @@ public: LLSD& append(const LLSD&); void erase(Integer); LLSD& with(Integer, const LLSD&); - - const LLSD& operator[](Integer) const; - LLSD& operator[](Integer); + + // accept size_t so we can index relative to size() + const LLSD& operator[](size_t) const; + LLSD& operator[](size_t); + // template overloads to support int literals, U32 et al. + template <typename IDX, + typename std::enable_if<std::is_convertible<IDX, size_t>::value, + bool>::type = true> + const LLSD& operator[](IDX i) const { return (*this)[size_t(i)]; } + template <typename IDX, + typename std::enable_if<std::is_convertible<IDX, size_t>::value, + bool>::type = true> + LLSD& operator[](IDX i) { return (*this)[size_t(i)]; } //@} /** @name Iterators */ //@{ - int size() const; + size_t size() const; typedef std::map<String, LLSD>::iterator map_iterator; typedef std::map<String, LLSD>::const_iterator map_const_iterator; diff --git a/indra/llcommon/llsdparam.cpp b/indra/llcommon/llsdparam.cpp index af4ccf25fd..30f49b27ea 100644 --- a/indra/llcommon/llsdparam.cpp +++ b/indra/llcommon/llsdparam.cpp @@ -113,11 +113,9 @@ void LLParamSDParser::writeSDImpl(LLSD& sd, const LLInitParam::BaseBlock& block, /*virtual*/ std::string LLParamSDParser::getCurrentElementName() { std::string full_name = "sd"; - for (name_stack_t::iterator it = mNameStack.begin(); - it != mNameStack.end(); - ++it) + for (name_stack_t::value_type& stack_pair : mNameStack) { - full_name += llformat("[%s]", it->first.c_str()); + full_name += llformat("[%s]", stack_pair.first.c_str()); } return full_name; diff --git a/indra/llcommon/llsdserialize.cpp b/indra/llcommon/llsdserialize.cpp index a510b73096..e7482b601d 100644 --- a/indra/llcommon/llsdserialize.cpp +++ b/indra/llcommon/llsdserialize.cpp @@ -48,12 +48,13 @@ #endif #include "lldate.h" +#include "llmemorystream.h" #include "llsd.h" #include "llstring.h" #include "lluri.h" // File constants -static const int MAX_HDR_LEN = 20; +static const size_t MAX_HDR_LEN = 20; static const S32 UNZIP_LLSD_MAX_DEPTH = 96; static const char LEGACY_NON_HEADER[] = "<llsd>"; const std::string LLSD_BINARY_HEADER("LLSD/Binary"); @@ -64,6 +65,23 @@ const std::string LLSD_NOTATION_HEADER("llsd/notation"); #define windowBits 15 #define ENABLE_ZLIB_GZIP 32 +// If we published this in llsdserialize.h, we could use it in the +// implementation of LLSDOStreamer's operator<<(). +template <class Formatter> +void format_using(const LLSD& data, std::ostream& ostr, + LLSDFormatter::EFormatterOptions options=LLSDFormatter::OPTIONS_PRETTY_BINARY) +{ + LLPointer<Formatter> f{ new Formatter }; + f->format(data, ostr, options); +} + +template <class Parser> +S32 parse_using(std::istream& istr, LLSD& data, size_t max_bytes, S32 max_depth=-1) +{ + LLPointer<Parser> p{ new Parser }; + return p->parse(istr, data, max_bytes, max_depth); +} + /** * LLSDSerialize */ @@ -86,10 +104,10 @@ void LLSDSerialize::serialize(const LLSD& sd, std::ostream& str, ELLSD_Serialize f = new LLSDXMLFormatter; break; - case LLSD_NOTATION: - str << "<? " << LLSD_NOTATION_HEADER << " ?>\n"; - f = new LLSDNotationFormatter; - break; + case LLSD_NOTATION: + str << "<? " << LLSD_NOTATION_HEADER << " ?>\n"; + f = new LLSDNotationFormatter; + break; default: LL_WARNS() << "serialize request for unknown ELLSD_Serialize" << LL_ENDL; @@ -102,20 +120,33 @@ void LLSDSerialize::serialize(const LLSD& sd, std::ostream& str, ELLSD_Serialize } // static -bool LLSDSerialize::deserialize(LLSD& sd, std::istream& str, S32 max_bytes) +bool LLSDSerialize::deserialize(LLSD& sd, std::istream& str, llssize max_bytes) { - LLPointer<LLSDParser> p = NULL; char hdr_buf[MAX_HDR_LEN + 1] = ""; /* Flawfinder: ignore */ - int i; - int inbuf = 0; - bool legacy_no_header = false; bool fail_if_not_legacy = false; - std::string header; /* - * Get the first line before anything. + * Get the first line before anything. Don't read more than max_bytes: + * this get() overload reads no more than (count-1) bytes into the + * specified buffer. In the usual case when max_bytes exceeds + * sizeof(hdr_buf), get() will read no more than sizeof(hdr_buf)-2. */ - str.get(hdr_buf, MAX_HDR_LEN, '\n'); + str.get(hdr_buf, llmin(max_bytes+1, sizeof(hdr_buf)-1), '\n'); + auto inbuf = str.gcount(); + // https://en.cppreference.com/w/cpp/io/basic_istream/get + // When the get() above sees the specified delimiter '\n', it stops there + // without pulling it from the stream. If it turns out that the stream + // does NOT contain a header, and the content includes meaningful '\n', + // it's important to pull that into hdr_buf too. + if (inbuf < max_bytes && str.get(hdr_buf[inbuf])) + { + // got the delimiting '\n' + ++inbuf; + // None of the following requires that hdr_buf contain a final '\0' + // byte. We could store one if needed, since even the incremented + // inbuf won't exceed sizeof(hdr_buf)-1, but there's no need. + } + std::string header{ hdr_buf, static_cast<std::string::size_type>(inbuf) }; if (str.fail()) { str.clear(); @@ -123,79 +154,97 @@ bool LLSDSerialize::deserialize(LLSD& sd, std::istream& str, S32 max_bytes) } if (!strncasecmp(LEGACY_NON_HEADER, hdr_buf, strlen(LEGACY_NON_HEADER))) /* Flawfinder: ignore */ + { // Create a LLSD XML parser, and parse the first chunk read above. + LLSDXMLParser x; + x.parsePart(hdr_buf, inbuf); // Parse the first part that was already read + auto parsed = x.parse(str, sd, max_bytes - inbuf); // Parse the rest of it + // Formally we should probably check (parsed != PARSE_FAILURE && + // parsed > 0), but since PARSE_FAILURE is -1, this suffices. + return (parsed > 0); + } + + if (fail_if_not_legacy) { - legacy_no_header = true; - inbuf = (int)str.gcount(); + LL_WARNS() << "deserialize LLSD parse failure" << LL_ENDL; + return false; } - else + + /* + * Remove the newline chars + */ + std::string::size_type lastchar = header.find_last_not_of("\r\n"); + if (lastchar != std::string::npos) { - if (fail_if_not_legacy) - goto fail; - /* - * Remove the newline chars - */ - for (i = 0; i < MAX_HDR_LEN; i++) - { - if (hdr_buf[i] == 0 || hdr_buf[i] == '\r' || - hdr_buf[i] == '\n') - { - hdr_buf[i] = 0; - break; - } - } - header = hdr_buf; + // It's important that find_last_not_of() returns size_type, which is + // why lastchar explicitly declares the type above. erase(size_type) + // erases from that offset to the end of the string, whereas + // erase(iterator) erases only a single character. + header.erase(lastchar+1); + } - std::string::size_type start = std::string::npos; - std::string::size_type end = std::string::npos; - start = header.find_first_not_of("<? "); - if (start != std::string::npos) + // trim off the <? ... ?> header syntax + auto start = header.find_first_not_of("<? "); + if (start != std::string::npos) + { + auto end = header.find_first_of(" ?", start); + if (end != std::string::npos) { - end = header.find_first_of(" ?", start); + header = header.substr(start, end - start); + ws(str); } - if ((start == std::string::npos) || (end == std::string::npos)) - goto fail; - - header = header.substr(start, end - start); - ws(str); } /* * Create the parser as appropriate */ - if (legacy_no_header) - { // Create a LLSD XML parser, and parse the first chunk read above - LLSDXMLParser* x = new LLSDXMLParser(); - x->parsePart(hdr_buf, inbuf); // Parse the first part that was already read - x->parseLines(str, sd); // Parse the rest of it - delete x; - return true; - } - - if (header == LLSD_BINARY_HEADER) + if (0 == LLStringUtil::compareInsensitive(header, LLSD_BINARY_HEADER)) { - p = new LLSDBinaryParser; + return (parse_using<LLSDBinaryParser>(str, sd, max_bytes-inbuf) > 0); } - else if (header == LLSD_XML_HEADER) + else if (0 == LLStringUtil::compareInsensitive(header, LLSD_XML_HEADER)) { - p = new LLSDXMLParser; + return (parse_using<LLSDXMLParser>(str, sd, max_bytes-inbuf) > 0); } - else if (header == LLSD_NOTATION_HEADER) + else if (0 == LLStringUtil::compareInsensitive(header, LLSD_NOTATION_HEADER)) { - p = new LLSDNotationParser; + return (parse_using<LLSDNotationParser>(str, sd, max_bytes-inbuf) > 0); } - else + else // no header we recognize { - LL_WARNS() << "deserialize request for unknown ELLSD_Serialize" << LL_ENDL; - } - - if (p.notNull()) - { - p->parse(str, sd, max_bytes); - return true; + LLPointer<LLSDParser> p; + if (inbuf && hdr_buf[0] == '<') + { + // looks like XML + LL_DEBUGS() << "deserialize request with no header, assuming XML" << LL_ENDL; + p = new LLSDXMLParser; + } + else + { + // assume notation + LL_DEBUGS() << "deserialize request with no header, assuming notation" << LL_ENDL; + p = new LLSDNotationParser; + } + // Since we've already read 'inbuf' bytes into 'hdr_buf', prepend that + // data to whatever remains in 'str'. + LLMemoryStreamBuf already(reinterpret_cast<const U8*>(hdr_buf), inbuf); + cat_streambuf prebuff(&already, str.rdbuf()); + std::istream prepend(&prebuff); +#if 1 + return (p->parse(prepend, sd, max_bytes) > 0); +#else + // debugging the reconstituted 'prepend' stream + // allocate a buffer that we hope is big enough for the whole thing + std::vector<char> wholemsg((max_bytes == size_t(SIZE_UNLIMITED))? 1024 : max_bytes); + prepend.read(wholemsg.data(), std::min(max_bytes, wholemsg.size())); + LLMemoryStream replay(reinterpret_cast<const U8*>(wholemsg.data()), prepend.gcount()); + auto success{ p->parse(replay, sd, prepend.gcount()) > 0 }; + { + LL_DEBUGS() << (success? "parsed: $$" : "failed: '") + << std::string(wholemsg.data(), llmin(prepend.gcount(), 100)) << "$$" + << LL_ENDL; + } + return success; +#endif } - -fail: - LL_WARNS() << "deserialize LLSD parse failure" << LL_ENDL; - return false; } /** @@ -255,7 +304,7 @@ F64 ll_ntohd(F64 netdouble) * @return Returns number of bytes read off of the stream. Returns * PARSE_FAILURE (-1) on failure. */ -int deserialize_string(std::istream& istr, std::string& value, S32 max_bytes); +llssize deserialize_string(std::istream& istr, std::string& value, llssize max_bytes); /** * @brief Parse a delimited string. @@ -266,7 +315,7 @@ int deserialize_string(std::istream& istr, std::string& value, S32 max_bytes); * @return Returns number of bytes read off of the stream. Returns * PARSE_FAILURE (-1) on failure. */ -int deserialize_string_delim(std::istream& istr, std::string& value, char d); +llssize deserialize_string_delim(std::istream& istr, std::string& value, char d); /** * @brief Read a raw string off the stream. @@ -280,10 +329,10 @@ int deserialize_string_delim(std::istream& istr, std::string& value, char d); * @return Returns number of bytes read off of the stream. Returns * PARSE_FAILURE (-1) on failure. */ -int deserialize_string_raw( +llssize deserialize_string_raw( std::istream& istr, std::string& value, - S32 max_bytes); + llssize max_bytes); /** * @brief helper method for dealing with the different notation boolean format. @@ -295,7 +344,7 @@ int deserialize_string_raw( * @return Returns number of bytes read off of the stream. Returns * PARSE_FAILURE (-1) on failure. */ -int deserialize_boolean( +llssize deserialize_boolean( std::istream& istr, LLSD& data, const std::string& compare, @@ -332,7 +381,7 @@ LLSDParser::LLSDParser() LLSDParser::~LLSDParser() { } -S32 LLSDParser::parse(std::istream& istr, LLSD& data, S32 max_bytes, S32 max_depth) +S32 LLSDParser::parse(std::istream& istr, LLSD& data, llssize max_bytes, S32 max_depth) { mCheckLimits = (LLSDSerialize::SIZE_UNLIMITED == max_bytes) ? false : true; mMaxBytesLeft = max_bytes; @@ -362,7 +411,7 @@ std::istream& LLSDParser::get( char delim) const { istr.get(s, n, delim); - if(mCheckLimits) mMaxBytesLeft -= (int)istr.gcount(); + if(mCheckLimits) mMaxBytesLeft -= istr.gcount(); return istr; } @@ -372,7 +421,7 @@ std::istream& LLSDParser::get( char delim) const { istr.get(sb, delim); - if(mCheckLimits) mMaxBytesLeft -= (int)istr.gcount(); + if(mCheckLimits) mMaxBytesLeft -= istr.gcount(); return istr; } @@ -396,11 +445,11 @@ std::istream& LLSDParser::read( std::streamsize n) const { istr.read(s, n); - if(mCheckLimits) mMaxBytesLeft -= (int)istr.gcount(); + if(mCheckLimits) mMaxBytesLeft -= istr.gcount(); return istr; } -void LLSDParser::account(S32 bytes) const +void LLSDParser::account(llssize bytes) const { if(mCheckLimits) mMaxBytesLeft -= bytes; } @@ -505,7 +554,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data, S32 max_depth) c c = istr.peek(); if(isalpha(c)) { - int cnt = deserialize_boolean( + auto cnt = deserialize_boolean( istr, data, NOTATION_FALSE_SERIAL, @@ -535,7 +584,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data, S32 max_depth) c c = istr.peek(); if(isalpha(c)) { - int cnt = deserialize_boolean(istr,data,NOTATION_TRUE_SERIAL,true); + auto cnt = deserialize_boolean(istr,data,NOTATION_TRUE_SERIAL,true); if(PARSE_FAILURE == cnt) parse_count = cnt; else account(cnt); } @@ -611,7 +660,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data, S32 max_depth) c c = get(istr); // pop the 'l' c = get(istr); // pop the delimiter std::string str; - int cnt = deserialize_string_delim(istr, str, c); + auto cnt = deserialize_string_delim(istr, str, c); if(PARSE_FAILURE == cnt) { parse_count = PARSE_FAILURE; @@ -634,7 +683,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data, S32 max_depth) c c = get(istr); // pop the 'd' c = get(istr); // pop the delimiter std::string str; - int cnt = deserialize_string_delim(istr, str, c); + auto cnt = deserialize_string_delim(istr, str, c); if(PARSE_FAILURE == cnt) { parse_count = PARSE_FAILURE; @@ -666,7 +715,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data, S32 max_depth) c default: parse_count = PARSE_FAILURE; - LL_INFOS() << "Unrecognized character while parsing: int(" << (int)c + LL_INFOS() << "Unrecognized character while parsing: int(" << int(c) << ")" << LL_ENDL; break; } @@ -697,7 +746,7 @@ S32 LLSDNotationParser::parseMap(std::istream& istr, LLSD& map, S32 max_depth) c { putback(istr, c); found_name = true; - int count = deserialize_string(istr, name, mMaxBytesLeft); + auto count = deserialize_string(istr, name, mMaxBytesLeft); if(PARSE_FAILURE == count) return PARSE_FAILURE; account(count); } @@ -779,7 +828,7 @@ S32 LLSDNotationParser::parseArray(std::istream& istr, LLSD& array, S32 max_dept bool LLSDNotationParser::parseString(std::istream& istr, LLSD& data) const { std::string value; - int count = deserialize_string(istr, value, mMaxBytesLeft); + auto count = deserialize_string(istr, value, mMaxBytesLeft); if(PARSE_FAILURE == count) return false; account(count); data = value; @@ -806,13 +855,13 @@ bool LLSDNotationParser::parseBinary(std::istream& istr, LLSD& data) const { // We probably have a valid raw binary stream. determine // the size, and read it. - S32 len = strtol(buf + 2, NULL, 0); + auto len = strtol(buf + 2, NULL, 0); if(mCheckLimits && (len > mMaxBytesLeft)) return false; std::vector<U8> value; if(len) { value.resize(len); - account((int)fullread(istr, (char *)&value[0], len)); + account(fullread(istr, (char *)&value[0], len)); } c = get(istr); // strip off the trailing double-quote data = value; @@ -1009,7 +1058,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data, S32 max_depth) con case '"': { std::string value; - int cnt = deserialize_string_delim(istr, value, c); + auto cnt = deserialize_string_delim(istr, value, c); if(PARSE_FAILURE == cnt) { parse_count = PARSE_FAILURE; @@ -1096,7 +1145,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data, S32 max_depth) con if(size > 0) { value.resize(size); - account((int)fullread(istr, (char*)&value[0], size)); + account(fullread(istr, (char*)&value[0], size)); } data = value; } @@ -1110,7 +1159,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data, S32 max_depth) con default: parse_count = PARSE_FAILURE; - LL_INFOS() << "Unrecognized character while parsing: int(" << (int)c + LL_INFOS() << "Unrecognized character while parsing: int(" << int(c) << ")" << LL_ENDL; break; } @@ -1144,7 +1193,7 @@ S32 LLSDBinaryParser::parseMap(std::istream& istr, LLSD& map, S32 max_depth) con case '\'': case '"': { - int cnt = deserialize_string_delim(istr, name, c); + auto cnt = deserialize_string_delim(istr, name, c); if(PARSE_FAILURE == cnt) return PARSE_FAILURE; account(cnt); break; @@ -1228,7 +1277,7 @@ bool LLSDBinaryParser::parseString( if(size) { buf.resize(size); - account((int)fullread(istr, &buf[0], size)); + account(fullread(istr, &buf[0], size)); value.assign(buf.begin(), buf.end()); } return true; @@ -1432,7 +1481,7 @@ S32 LLSDNotationFormatter::format_impl(const LLSD& data, std::ostream& ostr, ostr << std::uppercase; auto oldfill(ostr.fill('0')); auto oldwidth(ostr.width()); - for (int i = 0; i < buffer.size(); i++) + for (size_t i = 0; i < buffer.size(); i++) { // have to restate setw() before every conversion ostr << std::setw(2) << (int) buffer[i]; @@ -1595,7 +1644,7 @@ void LLSDBinaryFormatter::formatString( /** * local functions */ -int deserialize_string(std::istream& istr, std::string& value, S32 max_bytes) +llssize deserialize_string(std::istream& istr, std::string& value, llssize max_bytes) { int c = istr.get(); if(istr.fail()) @@ -1605,7 +1654,7 @@ int deserialize_string(std::istream& istr, std::string& value, S32 max_bytes) return LLSDParser::PARSE_FAILURE; } - int rv = LLSDParser::PARSE_FAILURE; + llssize rv = LLSDParser::PARSE_FAILURE; switch(c) { case '\'': @@ -1625,7 +1674,7 @@ int deserialize_string(std::istream& istr, std::string& value, S32 max_bytes) return rv + 1; // account for the character grabbed at the top. } -int deserialize_string_delim( +llssize deserialize_string_delim( std::istream& istr, std::string& value, char delim) @@ -1635,7 +1684,7 @@ int deserialize_string_delim( bool found_hex = false; bool found_digit = false; U8 byte = 0; - int count = 0; + llssize count = 0; while (true) { @@ -1650,7 +1699,7 @@ int deserialize_string_delim( } char next_char = (char)next_byte; // Now that we know it's not EOF - + if(found_escape) { // next character(s) is a special sequence. @@ -1728,16 +1777,16 @@ int deserialize_string_delim( return count; } -int deserialize_string_raw( +llssize deserialize_string_raw( std::istream& istr, std::string& value, - S32 max_bytes) + llssize max_bytes) { - int count = 0; + llssize count = 0; const S32 BUF_LEN = 20; char buf[BUF_LEN]; /* Flawfinder: ignore */ istr.get(buf, BUF_LEN - 1, ')'); - count += (int)istr.gcount(); + count += istr.gcount(); int c = istr.get(); c = istr.get(); count += 2; @@ -1746,13 +1795,13 @@ int deserialize_string_raw( // We probably have a valid raw string. determine // the size, and read it. // *FIX: This is memory inefficient. - S32 len = strtol(buf + 1, NULL, 0); + auto len = strtol(buf + 1, NULL, 0); if((max_bytes>0)&&(len>max_bytes)) return LLSDParser::PARSE_FAILURE; std::vector<char> buf; if(len) { buf.resize(len); - count += (int)fullread(istr, (char *)&buf[0], len); + count += fullread(istr, (char *)&buf[0], len); value.assign(buf.begin(), buf.end()); } c = istr.get(); @@ -2041,7 +2090,7 @@ void serialize_string(const std::string& value, std::ostream& str) } } -int deserialize_boolean( +llssize deserialize_boolean( std::istream& istr, LLSD& data, const std::string& compare, @@ -2058,7 +2107,7 @@ int deserialize_boolean( // * set data to LLSD::null // * return LLSDParser::PARSE_FAILURE (-1) // - int bytes_read = 0; + llssize bytes_read = 0; std::string::size_type ii = 0; char c = istr.peek(); while((++ii < compare.size()) @@ -2113,7 +2162,7 @@ std::string zip_llsd(LLSD& data) U8 out[CHUNK]; - strm.avail_in = source.size(); + strm.avail_in = narrow(source.size()); strm.next_in = (U8*) source.data(); U8* output = NULL; @@ -2287,7 +2336,7 @@ LLUZipHelper::EZipRresult LLUZipHelper::unzip_llsd(LLSD& data, const U8* in, S32 //This unzip function will only work with a gzip header and trailer - while the contents //of the actual compressed data is the same for either format (gzip vs zlib ), the headers //and trailers are different for the formats. -U8* unzip_llsdNavMesh( bool& valid, unsigned int& outsize, std::istream& is, S32 size ) +U8* unzip_llsdNavMesh( bool& valid, size_t& outsize, std::istream& is, S32 size ) { if (size == 0) { diff --git a/indra/llcommon/llsdserialize.h b/indra/llcommon/llsdserialize.h index d33d2b6f34..2f12c6d1ff 100644 --- a/indra/llcommon/llsdserialize.h +++ b/indra/llcommon/llsdserialize.h @@ -77,7 +77,7 @@ public: * @return Returns the number of LLSD objects parsed into * data. Returns PARSE_FAILURE (-1) on parse failure. */ - S32 parse(std::istream& istr, LLSD& data, S32 max_bytes, S32 max_depth = -1); + S32 parse(std::istream& istr, LLSD& data, llssize max_bytes, S32 max_depth = -1); /** Like parse(), but uses a different call (istream.getline()) to read by lines * This API is better suited for XML, where the parse cannot tell @@ -194,7 +194,7 @@ protected: * Conceptually const since it only modifies mutable members. * @param bytes The number of bytes read. */ - void account(S32 bytes) const; + void account(llssize bytes) const; protected: /** @@ -205,7 +205,7 @@ protected: /** * @brief The maximum number of bytes left to be parsed. */ - mutable S32 mMaxBytesLeft; + mutable llssize mMaxBytesLeft; /** * @brief Use line-based reading to get text @@ -336,7 +336,7 @@ private: class Impl; Impl& impl; - void parsePart(const char* buf, int len); + void parsePart(const char* buf, llssize len); friend class LLSDSerialize; }; @@ -756,7 +756,7 @@ public: * @param max_bytes the maximum number of bytes to parse * @return Returns true if the stream appears to contain valid data */ - static bool deserialize(LLSD& sd, std::istream& str, S32 max_bytes); + static bool deserialize(LLSD& sd, std::istream& str, llssize max_bytes); /* * Notation Methods @@ -778,12 +778,12 @@ public: LLSDFormatter::EFormatterOptions(LLSDFormatter::OPTIONS_PRETTY | LLSDFormatter::OPTIONS_PRETTY_BINARY)); } - static S32 fromNotation(LLSD& sd, std::istream& str, S32 max_bytes) + static S32 fromNotation(LLSD& sd, std::istream& str, llssize max_bytes) { LLPointer<LLSDNotationParser> p = new LLSDNotationParser; return p->parse(str, sd, max_bytes); } - static LLSD fromNotation(std::istream& str, S32 max_bytes) + static LLSD fromNotation(std::istream& str, llssize max_bytes) { LLPointer<LLSDNotationParser> p = new LLSDNotationParser; LLSD sd; @@ -834,12 +834,12 @@ public: LLPointer<LLSDBinaryFormatter> f = new LLSDBinaryFormatter; return f->format(sd, str, LLSDFormatter::OPTIONS_NONE); } - static S32 fromBinary(LLSD& sd, std::istream& str, S32 max_bytes, S32 max_depth = -1) + static S32 fromBinary(LLSD& sd, std::istream& str, llssize max_bytes, S32 max_depth = -1) { LLPointer<LLSDBinaryParser> p = new LLSDBinaryParser; return p->parse(str, sd, max_bytes, max_depth); } - static LLSD fromBinary(std::istream& str, S32 max_bytes, S32 max_depth = -1) + static LLSD fromBinary(std::istream& str, llssize max_bytes, S32 max_depth = -1) { LLPointer<LLSDBinaryParser> p = new LLSDBinaryParser; LLSD sd; @@ -870,7 +870,7 @@ public: LL_COMMON_API std::string zip_llsd(LLSD& data); -LL_COMMON_API U8* unzip_llsdNavMesh( bool& valid, unsigned int& outsize,std::istream& is, S32 size); +LL_COMMON_API U8* unzip_llsdNavMesh( bool& valid, size_t& outsize,std::istream& is, S32 size); // returns a pointer to the array or past the array if the deprecated header exists LL_COMMON_API char* strip_deprecated_header(char* in, U32& cur_size, U32* header_size = nullptr); diff --git a/indra/llcommon/llsdserialize_xml.cpp b/indra/llcommon/llsdserialize_xml.cpp index 0da824d694..ac128c9f86 100644 --- a/indra/llcommon/llsdserialize_xml.cpp +++ b/indra/llcommon/llsdserialize_xml.cpp @@ -196,12 +196,12 @@ S32 LLSDXMLFormatter::format_impl(const LLSD& data, std::ostream& ostr, // *FIX: memory inefficient. // *TODO: convert to use LLBase64 ostr << pre << "<binary encoding=\"base64\">"; - int b64_buffer_length = apr_base64_encode_len(buffer.size()); + int b64_buffer_length = apr_base64_encode_len(narrow(buffer.size())); char* b64_buffer = new char[b64_buffer_length]; b64_buffer_length = apr_base64_encode_binary( b64_buffer, &buffer[0], - buffer.size()); + narrow(buffer.size())); ostr.write(b64_buffer, b64_buffer_length - 1); delete[] b64_buffer; ostr << "</binary>" << post; @@ -260,7 +260,7 @@ public: S32 parse(std::istream& input, LLSD& data); S32 parseLines(std::istream& input, LLSD& data); - void parsePart(const char *buf, int len); + void parsePart(const char *buf, llssize len); void reset(); @@ -542,7 +542,7 @@ LLSDXMLParser::Impl::findAttribute(const XML_Char* name, const XML_Char** pairs) return NULL; } -void LLSDXMLParser::Impl::parsePart(const char* buf, int len) +void LLSDXMLParser::Impl::parsePart(const char* buf, llssize len) { if ( buf != NULL && len > 0 ) @@ -915,7 +915,7 @@ LLSDXMLParser::~LLSDXMLParser() delete &impl; } -void LLSDXMLParser::parsePart(const char *buf, int len) +void LLSDXMLParser::parsePart(const char *buf, llssize len) { impl.parsePart(buf, len); } diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp index 8e90d1e8b8..f70bee9903 100644 --- a/indra/llcommon/llsdutil.cpp +++ b/indra/llcommon/llsdutil.cpp @@ -148,10 +148,9 @@ LLSD ll_binary_from_string(const LLSD& sd) std::vector<U8> binary_value; std::string string_value = sd.asString(); - for (std::string::iterator iter = string_value.begin(); - iter != string_value.end(); ++iter) + for (const U8 c : string_value) { - binary_value.push_back(*iter); + binary_value.push_back(c); } binary_value.push_back('\0'); diff --git a/indra/llcommon/llsdutil.h b/indra/llcommon/llsdutil.h index 1321615805..372278c51a 100644 --- a/indra/llcommon/llsdutil.h +++ b/indra/llcommon/llsdutil.h @@ -191,75 +191,6 @@ LLSD& drill_ref( LLSD& blob, const LLSD& path); } -/***************************************************************************** -* LLSDArray -*****************************************************************************/ -/** - * Construct an LLSD::Array inline, with implicit conversion to LLSD. Usage: - * - * @code - * void somefunc(const LLSD&); - * ... - * somefunc(LLSDArray("text")(17)(3.14)); - * @endcode - * - * For completeness, LLSDArray() with no args constructs an empty array, so - * <tt>LLSDArray()("text")(17)(3.14)</tt> produces an array equivalent to the - * above. But for most purposes, LLSD() is already equivalent to an empty - * array, and if you explicitly want an empty isArray(), there's - * LLSD::emptyArray(). However, supporting a no-args LLSDArray() constructor - * follows the principle of least astonishment. - */ -class LLSDArray -{ -public: - LLSDArray(): - _data(LLSD::emptyArray()) - {} - - /** - * Need an explicit copy constructor. Consider the following: - * - * @code - * LLSD array_of_arrays(LLSDArray(LLSDArray(17)(34)) - * (LLSDArray("x")("y"))); - * @endcode - * - * The coder intends to construct [[17, 34], ["x", "y"]]. - * - * With the compiler's implicit copy constructor, s/he gets instead - * [17, 34, ["x", "y"]]. - * - * The expression LLSDArray(17)(34) constructs an LLSDArray with those two - * values. The reader assumes it should be converted to LLSD, as we always - * want with LLSDArray, before passing it to the @em outer LLSDArray - * constructor! This copy constructor makes that happen. - */ - LLSDArray(const LLSDArray& inner): - _data(LLSD::emptyArray()) - { - _data.append(inner); - } - - LLSDArray(const LLSD& value): - _data(LLSD::emptyArray()) - { - _data.append(value); - } - - LLSDArray& operator()(const LLSD& value) - { - _data.append(value); - return *this; - } - - operator LLSD() const { return _data; } - LLSD get() const { return _data; } - -private: - LLSD _data; -}; - namespace llsd { diff --git a/indra/llcommon/llstreamtools.cpp b/indra/llcommon/llstreamtools.cpp index d7a6f47932..bc32b6fd9e 100644 --- a/indra/llcommon/llstreamtools.cpp +++ b/indra/llcommon/llstreamtools.cpp @@ -118,7 +118,7 @@ bool skip_to_next_word(std::istream& input_stream) bool skip_to_end_of_next_keyword(const char* keyword, std::istream& input_stream) { - int key_length = strlen(keyword); /*Flawfinder: ignore*/ + auto key_length = strlen(keyword); /*Flawfinder: ignore*/ if (0 == key_length) { return false; @@ -315,7 +315,7 @@ bool unget_line(const std::string& line, std::istream& input_stream) // returns true if removed last char bool remove_last_char(char c, std::string& line) { - int line_size = line.size(); + auto line_size = line.size(); if (line_size > 1 && c == line[line_size - 1]) { @@ -330,9 +330,8 @@ bool remove_last_char(char c, std::string& line) // "\\n" ---> '\n' (backslash n becomes carriage return) void unescape_string(std::string& line) { - int line_size = line.size(); - int index = 0; - while (index < line_size - 1) + auto line_size = line.size(); + for (size_t index = 0; line_size >= 1 && index < line_size - 1; ++index) { if ('\\' == line[index]) { @@ -347,7 +346,6 @@ void unescape_string(std::string& line) line_size--; } } - index++; } } @@ -356,9 +354,8 @@ void unescape_string(std::string& line) // '\n' ---> "\\n" (carriage return becomes backslash n) void escape_string(std::string& line) { - int line_size = line.size(); - int index = 0; - while (index < line_size) + auto line_size = line.size(); + for (size_t index = 0; index < line_size; ++index) { if ('\\' == line[index]) { @@ -372,31 +369,27 @@ void escape_string(std::string& line) line_size++; index++; } - index++; } } // removes '\n' characters void replace_newlines_with_whitespace(std::string& line) { - int line_size = line.size(); - int index = 0; - while (index < line_size) + auto line_size = line.size(); + for (size_t index = 0; index < line_size; ++index) { if ('\n' == line[index]) { line.replace(index, 1, " "); } - index++; } } // erases any double-quote characters in 'line' void remove_double_quotes(std::string& line) { - int index = 0; - int line_size = line.size(); - while (index < line_size) + auto line_size = line.size(); + for (size_t index = 0; index < line_size; ) { if ('"' == line[index]) { @@ -424,22 +417,21 @@ void get_keyword_and_value(std::string& keyword, const std::string& line) { // skip initial whitespace - int line_size = line.size(); - int line_index = 0; + auto line_size = line.size(); + size_t line_index = 0; char c; - while (line_index < line_size) + for ( ; line_index < line_size; ++line_index) { c = line[line_index]; if (!LLStringOps::isSpace(c)) { break; } - line_index++; } // get the keyword keyword.clear(); - while (line_index < line_size) + for ( ; line_index < line_size; ++line_index) { c = line[line_index]; if (LLStringOps::isSpace(c) || '\r' == c || '\n' == c) @@ -447,7 +439,6 @@ void get_keyword_and_value(std::string& keyword, break; } keyword += c; - line_index++; } // get the value @@ -465,7 +456,7 @@ void get_keyword_and_value(std::string& keyword, line_index++; } - while (line_index < line_size) + for ( ; line_index < line_size; ++line_index) { c = line[line_index]; if ('\r' == c || '\n' == c) @@ -473,7 +464,6 @@ void get_keyword_and_value(std::string& keyword, break; } value += c; - line_index++; } } } @@ -523,3 +513,29 @@ std::istream& operator>>(std::istream& str, const char *tocheck) } return str; } + +int cat_streambuf::underflow() +{ + if (gptr() == egptr()) + { + // here because our buffer is empty + std::streamsize size = 0; + // Until we've run out of mInputs, try reading the first of them + // into mBuffer. If that fetches some characters, break the loop. + while (! mInputs.empty() + && ! (size = mInputs.front()->sgetn(mBuffer.data(), mBuffer.size()))) + { + // We tried to read mInputs.front() but got zero characters. + // Discard the first streambuf and try the next one. + mInputs.pop_front(); + } + // Either we ran out of mInputs or we succeeded in reading some + // characters, that is, size != 0. Tell base class what we have. + setg(mBuffer.data(), mBuffer.data(), mBuffer.data() + size); + } + // If we fell out of the above loop with mBuffer still empty, return + // eof(), otherwise return the next character. + return (gptr() == egptr()) + ? std::char_traits<char>::eof() + : std::char_traits<char>::to_int_type(*gptr()); +} diff --git a/indra/llcommon/llstreamtools.h b/indra/llcommon/llstreamtools.h index 1b04bf91d7..bb7bc20327 100644 --- a/indra/llcommon/llstreamtools.h +++ b/indra/llcommon/llstreamtools.h @@ -27,8 +27,10 @@ #ifndef LL_STREAM_TOOLS_H #define LL_STREAM_TOOLS_H +#include <deque> #include <iostream> #include <string> +#include <vector> // unless specifed otherwise these all return input_stream.good() @@ -113,6 +115,27 @@ LL_COMMON_API std::streamsize fullread( LL_COMMON_API std::istream& operator>>(std::istream& str, const char *tocheck); -#endif - +/** + * cat_streambuf is a std::streambuf subclass that accepts a variadic number + * of std::streambuf* (e.g. some_istream.rdbuf()) and virtually concatenates + * their contents. + */ +// derived from https://stackoverflow.com/a/49441066/5533635 +class cat_streambuf: public std::streambuf +{ +private: + std::deque<std::streambuf*> mInputs; + std::vector<char> mBuffer; + +public: + // only valid for std::streambuf* arguments + template <typename... Inputs> + cat_streambuf(Inputs... inputs): + mInputs{inputs...}, + mBuffer(1024) + {} + + int underflow() override; +}; +#endif diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp index 7f501f2e77..f6629803ee 100644 --- a/indra/llcommon/llstring.cpp +++ b/indra/llcommon/llstring.cpp @@ -141,7 +141,7 @@ std::string rawstr_to_utf8(const std::string& raw) return wstring_to_utf8str(wstr); } -S32 wchar_to_utf8chars(llwchar in_char, char* outchars) +std::ptrdiff_t wchar_to_utf8chars(llwchar in_char, char* outchars) { U32 cur_char = (U32)in_char; char* base = outchars; @@ -192,7 +192,7 @@ S32 wchar_to_utf8chars(llwchar in_char, char* outchars) return outchars - base; } -S32 utf16chars_to_wchar(const U16* inchars, llwchar* outchar) +auto utf16chars_to_wchar(const U16* inchars, llwchar* outchar) { const U16* base = inchars; U16 cur_char = *inchars++; @@ -310,7 +310,7 @@ S32 wstring_utf16_length(const LLWString &wstr, const S32 woffset, const S32 wle // and whose equivalent utf-16 string does not exceeds the given utf16_length. S32 wstring_wstring_length_from_utf16_length(const LLWString & wstr, const S32 woffset, const S32 utf16_length, BOOL *unaligned) { - const S32 end = wstr.length(); + const auto end = wstr.length(); BOOL u = FALSE; S32 n = woffset + utf16_length; S32 i = woffset; @@ -426,7 +426,7 @@ LLWString utf8str_to_wstring(const char* utf8str, size_t len) } // Check that this character doesn't go past the end of the string - S32 end = (len < (i + cont_bytes)) ? len : (i + cont_bytes); + auto end = (len < (i + cont_bytes)) ? len : (i + cont_bytes); do { ++i; @@ -471,7 +471,7 @@ std::string wstring_to_utf8str(const llwchar* utf32str, size_t len) while (i < len) { char tchars[8]; /* Flawfinder: ignore */ - S32 n = wchar_to_utf8chars(utf32str[i], tchars); + auto n = wchar_to_utf8chars(utf32str[i], tchars); tchars[n] = 0; out += tchars; i++; diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h index d94f549480..1fd6cac14a 100644 --- a/indra/llcommon/llstring.h +++ b/indra/llcommon/llstring.h @@ -664,7 +664,7 @@ ll_convert_forms(ll_convert_alias, LLWString, std::string, utf8str_to_ // Same function, better name. JC inline LLWString utf8string_to_wstring(const std::string& utf8_string) { return utf8str_to_wstring(utf8_string); } -LL_COMMON_API S32 wchar_to_utf8chars(llwchar inchar, char* outchars); +LL_COMMON_API std::ptrdiff_t wchar_to_utf8chars(llwchar inchar, char* outchars); ll_convert_forms(ll_convert_alias, std::string, LLWString, wstring_to_utf8str); ll_convert_forms(ll_convert_u16_alias, std::string, llutf16string, utf16str_to_utf8str); diff --git a/indra/llcommon/llstringtable.cpp b/indra/llcommon/llstringtable.cpp index f288999964..92a5e777a6 100644 --- a/indra/llcommon/llstringtable.cpp +++ b/indra/llcommon/llstringtable.cpp @@ -89,9 +89,8 @@ LLStringTable::~LLStringTable() { if (mStringList[i]) { - string_list_t::iterator iter; - for (iter = mStringList[i]->begin(); iter != mStringList[i]->end(); iter++) - delete *iter; // *iter = (LLStringTableEntry*) + for (LLStringTableEntry* entry : *mStringList[i]) + delete entry; } delete mStringList[i]; } @@ -156,9 +155,9 @@ LLStringTableEntry* LLStringTable::checkStringEntry(const char *str) if (str) { char *ret_val; - LLStringTableEntry *entry; U32 hash_value = hash_my_string(str, mMaxEntries); #if STRING_TABLE_HASH_MAP + LLStringTableEntry *entry; #if 1 // Microsoft string_hash_t::iterator lower = mStringHash.lower_bound(hash_value); string_hash_t::iterator upper = mStringHash.upper_bound(hash_value); @@ -180,10 +179,8 @@ LLStringTableEntry* LLStringTable::checkStringEntry(const char *str) string_list_t *strlist = mStringList[hash_value]; if (strlist) { - string_list_t::iterator iter; - for (iter = strlist->begin(); iter != strlist->end(); iter++) + for (LLStringTableEntry* entry : *strlist) { - entry = *iter; ret_val = entry->mString; if (!strncmp(ret_val, str, MAX_STRINGS_LENGTH)) { @@ -226,9 +223,9 @@ LLStringTableEntry* LLStringTable::addStringEntry(const char *str) if (str) { char *ret_val = NULL; - LLStringTableEntry *entry; U32 hash_value = hash_my_string(str, mMaxEntries); #if STRING_TABLE_HASH_MAP + LLStringTableEntry *entry; #if 1 // Microsoft string_hash_t::iterator lower = mStringHash.lower_bound(hash_value); string_hash_t::iterator upper = mStringHash.upper_bound(hash_value); @@ -257,10 +254,8 @@ LLStringTableEntry* LLStringTable::addStringEntry(const char *str) if (strlist) { - string_list_t::iterator iter; - for (iter = strlist->begin(); iter != strlist->end(); iter++) + for (LLStringTableEntry* entry : *strlist) { - entry = *iter; ret_val = entry->mString; if (!strncmp(ret_val, str, MAX_STRINGS_LENGTH)) { @@ -294,10 +289,10 @@ void LLStringTable::removeString(const char *str) if (str) { char *ret_val; - LLStringTableEntry *entry; U32 hash_value = hash_my_string(str, mMaxEntries); #if STRING_TABLE_HASH_MAP { + LLStringTableEntry *entry; #if 1 // Microsoft string_hash_t::iterator lower = mStringHash.lower_bound(hash_value); string_hash_t::iterator upper = mStringHash.upper_bound(hash_value); @@ -331,10 +326,8 @@ void LLStringTable::removeString(const char *str) if (strlist) { - string_list_t::iterator iter; - for (iter = strlist->begin(); iter != strlist->end(); iter++) + for (LLStringTableEntry* entry : *strlist) { - entry = *iter; ret_val = entry->mString; if (!strncmp(ret_val, str, MAX_STRINGS_LENGTH)) { diff --git a/indra/llcommon/llstringtable.h b/indra/llcommon/llstringtable.h index ff09e71677..0a292c8bac 100644 --- a/indra/llcommon/llstringtable.h +++ b/indra/llcommon/llstringtable.h @@ -136,9 +136,9 @@ public: for (S32 i = 0; i<mTableSize; i++) { string_set_t& stringset = mStringList[i]; - for (string_set_t::iterator iter = stringset.begin(); iter != stringset.end(); iter++) + for (LLStdStringHandle str : stringset) { - delete *iter; + delete str; } stringset.clear(); } diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp index a8b5c7b3a8..91cb65b815 100644 --- a/indra/llcommon/llsys.cpp +++ b/indra/llcommon/llsys.cpp @@ -273,7 +273,7 @@ LLOSInfo::LLOSInfo() : { const char * DARWIN_PRODUCT_NAME = "Mac OS X"; - S32 major_version, minor_version, bugfix_version = 0; + int64_t major_version, minor_version, bugfix_version = 0; if (LLGetDarwinOSInfo(major_version, minor_version, bugfix_version)) { @@ -454,14 +454,14 @@ LLOSInfo::LLOSInfo() : #ifndef LL_WINDOWS // static -S32 LLOSInfo::getMaxOpenFiles() +long LLOSInfo::getMaxOpenFiles() { - const S32 OPEN_MAX_GUESS = 256; + const long OPEN_MAX_GUESS = 256; #ifdef OPEN_MAX - static S32 open_max = OPEN_MAX; + static long open_max = OPEN_MAX; #else - static S32 open_max = 0; + static long open_max = 0; #endif if (0 == open_max) @@ -909,7 +909,7 @@ void LLMemoryInfo::stream(std::ostream& s) const // Now stream stats BOOST_FOREACH(const MapEntry& pair, inMap(mStatsMap)) { - s << pfx << std::setw(key_width+1) << (pair.first + ':') << ' '; + s << pfx << std::setw(narrow(key_width+1)) << (pair.first + ':') << ' '; LLSD value(pair.second); if (value.isInteger()) s << std::setw(12) << value.asInteger(); @@ -1280,7 +1280,7 @@ public: << " seconds "; } - S32 precision = LL_CONT.precision(); + auto precision = LL_CONT.precision(); LL_CONT << std::fixed << std::setprecision(1) << framerate << '\n' << LLMemoryInfo(); diff --git a/indra/llcommon/llsys.h b/indra/llcommon/llsys.h index 5ffbf5a732..70a03810c5 100644 --- a/indra/llcommon/llsys.h +++ b/indra/llcommon/llsys.h @@ -59,7 +59,7 @@ public: S32 mBuild; #ifndef LL_WINDOWS - static S32 getMaxOpenFiles(); + static long getMaxOpenFiles(); #endif static bool is64Bit(); diff --git a/indra/llcommon/llsys_objc.h b/indra/llcommon/llsys_objc.h index 35599a574b..b48ff97bdb 100644 --- a/indra/llcommon/llsys_objc.h +++ b/indra/llcommon/llsys_objc.h @@ -27,7 +27,11 @@ #ifndef LL_LLSYS_OBJC_H #define LL_LLSYS_OBJC_H -bool LLGetDarwinOSInfo(int &major, int &minor, int &patch); +#include <cstdint> + +// C++ land doesn't define NSInteger, and we don't want to introduce that for +// this one case, so use int64_t instead (which is equivalent). +bool LLGetDarwinOSInfo(int64_t &major, int64_t &minor, int64_t &patch); #endif // LL_LLSYS_OBJC_H diff --git a/indra/llcommon/llsys_objc.mm b/indra/llcommon/llsys_objc.mm index cdb1e320d5..3fd85fb1c9 100644 --- a/indra/llcommon/llsys_objc.mm +++ b/indra/llcommon/llsys_objc.mm @@ -27,12 +27,12 @@ #import "llsys_objc.h" #import <AppKit/AppKit.h> -static int intAtStringIndex(NSArray *array, int index) +static auto intAtStringIndex(NSArray *array, int index) { return [(NSString *)[array objectAtIndex:index] integerValue]; } -bool LLGetDarwinOSInfo(int &major, int &minor, int &patch) +bool LLGetDarwinOSInfo(int64_t &major, int64_t &minor, int64_t &patch) { if (NSAppKitVersionNumber > NSAppKitVersionNumber10_8) { diff --git a/indra/llcommon/llthreadsafequeue.h b/indra/llcommon/llthreadsafequeue.h index 68d79cdd12..f396a71e6f 100644 --- a/indra/llcommon/llthreadsafequeue.h +++ b/indra/llcommon/llthreadsafequeue.h @@ -82,7 +82,7 @@ public: // Limiting the number of pending items prevents unbounded growth of the // underlying queue. - LLThreadSafeQueue(U32 capacity = 1024); + LLThreadSafeQueue(size_t capacity = 1024); virtual ~LLThreadSafeQueue() {} // Add an element to the queue (will block if the queue has reached @@ -179,7 +179,7 @@ public: protected: typedef QueueT queue_type; QueueT mStorage; - U32 mCapacity; + size_t mCapacity; bool mClosed; boost::fibers::timed_mutex mLock; @@ -262,7 +262,7 @@ namespace LL * LLThreadSafeQueue implementation *****************************************************************************/ template<typename ElementT, typename QueueT> -LLThreadSafeQueue<ElementT, QueueT>::LLThreadSafeQueue(U32 capacity) : +LLThreadSafeQueue<ElementT, QueueT>::LLThreadSafeQueue(size_t capacity) : mCapacity(capacity), mClosed(false) { diff --git a/indra/llcommon/lltimer.cpp b/indra/llcommon/lltimer.cpp index aaa6df325c..74ec62d347 100644 --- a/indra/llcommon/lltimer.cpp +++ b/indra/llcommon/lltimer.cpp @@ -123,7 +123,7 @@ U32 micro_sleep(U64 us, U32 max_yields) // interrupts at 250 Hz (every 4,000 microseconds). const U64 KERNEL_SLEEP_INTERVAL_US = 4000; - S32 num_sleep_intervals = (us - (KERNEL_SLEEP_INTERVAL_US >> 1)) / KERNEL_SLEEP_INTERVAL_US; + auto num_sleep_intervals = (us - (KERNEL_SLEEP_INTERVAL_US >> 1)) / KERNEL_SLEEP_INTERVAL_US; if (num_sleep_intervals > 0) { U64 sleep_time = (num_sleep_intervals * KERNEL_SLEEP_INTERVAL_US) - (KERNEL_SLEEP_INTERVAL_US >> 1); diff --git a/indra/llcommon/lltrace.cpp b/indra/llcommon/lltrace.cpp index acdda5fe1e..ff671a8370 100644 --- a/indra/llcommon/lltrace.cpp +++ b/indra/llcommon/lltrace.cpp @@ -65,7 +65,7 @@ void TimeBlockTreeNode::setParent( BlockTimerStatHandle* parent ) llassert_always(parent != mBlock); llassert_always(parent != NULL); - TimeBlockTreeNode* parent_tree_node = get_thread_recorder()->getTimeBlockTreeNode(parent->getIndex()); + TimeBlockTreeNode* parent_tree_node = get_thread_recorder()->getTimeBlockTreeNode(narrow(parent->getIndex())); if (!parent_tree_node) return; if (mParent) diff --git a/indra/llcommon/lltrace.h b/indra/llcommon/lltrace.h index fcd8753f75..580cf0a5fd 100644 --- a/indra/llcommon/lltrace.h +++ b/indra/llcommon/lltrace.h @@ -340,7 +340,7 @@ inline void claim_alloc(MemStatHandle& measurement, const T& value) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; #if LL_TRACE_ENABLED - S32 size = MeasureMem<T>::measureFootprint(value); + auto size = MeasureMem<T>::measureFootprint(value); if(size == 0) return; MemAccumulator& accumulator = measurement.getCurrentAccumulator(); accumulator.mSize.sample(accumulator.mSize.hasValue() ? accumulator.mSize.getLastValue() + (F64)size : (F64)size); @@ -353,7 +353,7 @@ inline void disclaim_alloc(MemStatHandle& measurement, const T& value) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; #if LL_TRACE_ENABLED - S32 size = MeasureMem<T>::measureFootprint(value); + auto size = MeasureMem<T>::measureFootprint(value); if(size == 0) return; MemAccumulator& accumulator = measurement.getCurrentAccumulator(); accumulator.mSize.sample(accumulator.mSize.hasValue() ? accumulator.mSize.getLastValue() - (F64)size : -(F64)size); diff --git a/indra/llcommon/lltraceaccumulators.cpp b/indra/llcommon/lltraceaccumulators.cpp index fe447d5319..6bd886ae98 100644 --- a/indra/llcommon/lltraceaccumulators.cpp +++ b/indra/llcommon/lltraceaccumulators.cpp @@ -96,9 +96,9 @@ void AccumulatorBufferGroup::makeCurrent() ThreadRecorder* thread_recorder = get_thread_recorder(); AccumulatorBuffer<TimeBlockAccumulator>& timer_accumulator_buffer = mStackTimers; // update stacktimer parent pointers - for (S32 i = 0, end_i = mStackTimers.size(); i < end_i; i++) + for (size_t i = 0, end_i = mStackTimers.size(); i < end_i; i++) { - TimeBlockTreeNode* tree_node = thread_recorder->getTimeBlockTreeNode(i); + TimeBlockTreeNode* tree_node = thread_recorder->getTimeBlockTreeNode(narrow(i)); if (tree_node) { timer_accumulator_buffer[i].mParent = tree_node->mParent; diff --git a/indra/llcommon/lltracerecording.cpp b/indra/llcommon/lltracerecording.cpp index 8cbb0db135..bb3d667a42 100644 --- a/indra/llcommon/lltracerecording.cpp +++ b/indra/llcommon/lltracerecording.cpp @@ -577,10 +577,12 @@ S32 Recording::getSampleCount( const StatType<EventAccumulator>& stat ) // PeriodicRecording /////////////////////////////////////////////////////////////////////// -PeriodicRecording::PeriodicRecording( S32 num_periods, EPlayState state) +PeriodicRecording::PeriodicRecording( size_t num_periods, EPlayState state) : mAutoResize(num_periods == 0), mCurPeriod(0), mNumRecordedPeriods(0), + // This guarantee that mRecordingPeriods cannot be empty is essential for + // code in several methods. mRecordingPeriods(num_periods ? num_periods : 1) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; @@ -596,17 +598,19 @@ PeriodicRecording::~PeriodicRecording() void PeriodicRecording::nextPeriod() { - LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; + LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; if (mAutoResize) { mRecordingPeriods.push_back(Recording()); } Recording& old_recording = getCurRecording(); - mCurPeriod = (mCurPeriod + 1) % mRecordingPeriods.size(); + inci(mCurPeriod); old_recording.splitTo(getCurRecording()); - mNumRecordedPeriods = llmin((S32)mRecordingPeriods.size() - 1, mNumRecordedPeriods + 1); + // Since mRecordingPeriods always has at least one entry, we can always + // safely subtract 1 from its size(). + mNumRecordedPeriods = llmin(mRecordingPeriods.size() - 1, mNumRecordedPeriods + 1); } void PeriodicRecording::appendRecording(Recording& recording) @@ -619,31 +623,29 @@ void PeriodicRecording::appendRecording(Recording& recording) void PeriodicRecording::appendPeriodicRecording( PeriodicRecording& other ) { - LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; + LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; if (other.mRecordingPeriods.empty()) return; getCurRecording().update(); other.getCurRecording().update(); - - const S32 other_recording_slots = other.mRecordingPeriods.size(); - const S32 other_num_recordings = other.getNumRecordedPeriods(); - const S32 other_current_recording_index = other.mCurPeriod; - const S32 other_oldest_recording_index = (other_current_recording_index + other_recording_slots - other_num_recordings) % other_recording_slots; + + const auto other_num_recordings = other.getNumRecordedPeriods(); + const auto other_current_recording_index = other.mCurPeriod; + const auto other_oldest_recording_index = other.previ(other_current_recording_index, other_num_recordings); // append first recording into our current slot getCurRecording().appendRecording(other.mRecordingPeriods[other_oldest_recording_index]); // from now on, add new recordings for everything after the first - S32 other_index = (other_oldest_recording_index + 1) % other_recording_slots; + auto other_index = other.nexti(other_oldest_recording_index); if (mAutoResize) { // push back recordings for everything in the middle - S32 other_index = (other_oldest_recording_index + 1) % other_recording_slots; while (other_index != other_current_recording_index) { mRecordingPeriods.push_back(other.mRecordingPeriods[other_index]); - other_index = (other_index + 1) % other_recording_slots; + other.inci(other_index); } // add final recording, if it wasn't already added as the first @@ -652,37 +654,26 @@ void PeriodicRecording::appendPeriodicRecording( PeriodicRecording& other ) mRecordingPeriods.push_back(other.mRecordingPeriods[other_current_recording_index]); } + // mRecordingPeriods is never empty() mCurPeriod = mRecordingPeriods.size() - 1; - mNumRecordedPeriods = mRecordingPeriods.size() - 1; + mNumRecordedPeriods = mCurPeriod; } else { - S32 num_to_copy = llmin((S32)mRecordingPeriods.size(), (S32)other_num_recordings); - - std::vector<Recording>::iterator src_it = other.mRecordingPeriods.begin() + other_index ; - std::vector<Recording>::iterator dest_it = mRecordingPeriods.begin() + mCurPeriod; - + auto num_to_copy = llmin(mRecordingPeriods.size(), other_num_recordings); // already consumed the first recording from other, so start counting at 1 - for(S32 i = 1; i < num_to_copy; i++) + for (size_t n = 1, srci = other_index, dsti = mCurPeriod; + n < num_to_copy; + ++n, other.inci(srci), inci(dsti)) { - *dest_it = *src_it; - - if (++src_it == other.mRecordingPeriods.end()) - { - src_it = other.mRecordingPeriods.begin(); - } - - if (++dest_it == mRecordingPeriods.end()) - { - dest_it = mRecordingPeriods.begin(); - } + mRecordingPeriods[dsti] = other.mRecordingPeriods[srci]; } - + // want argument to % to be positive, otherwise result could be negative and thus out of bounds llassert(num_to_copy >= 1); // advance to last recording period copied, and make that our current period - mCurPeriod = (mCurPeriod + num_to_copy - 1) % mRecordingPeriods.size(); - mNumRecordedPeriods = llmin((S32)mRecordingPeriods.size() - 1, mNumRecordedPeriods + num_to_copy - 1); + inci(mCurPeriod, num_to_copy - 1); + mNumRecordedPeriods = llmin(mRecordingPeriods.size() - 1, mNumRecordedPeriods + num_to_copy - 1); } // end with fresh period, otherwise next appendPeriodicRecording() will merge the first @@ -693,13 +684,11 @@ void PeriodicRecording::appendPeriodicRecording( PeriodicRecording& other ) F64Seconds PeriodicRecording::getDuration() const { - LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; + LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; F64Seconds duration; - S32 num_periods = mRecordingPeriods.size(); - for (S32 i = 1; i <= num_periods; i++) + for (size_t n = 0; n < mRecordingPeriods.size(); ++n) { - S32 index = (mCurPeriod + num_periods - i) % num_periods; - duration += mRecordingPeriods[index].getDuration(); + duration += mRecordingPeriods[nexti(mCurPeriod, n)].getDuration(); } return duration; } @@ -734,18 +723,16 @@ const Recording& PeriodicRecording::getCurRecording() const return mRecordingPeriods[mCurPeriod]; } -Recording& PeriodicRecording::getPrevRecording( S32 offset ) +Recording& PeriodicRecording::getPrevRecording( size_t offset ) { - S32 num_periods = mRecordingPeriods.size(); - offset = llclamp(offset, 0, num_periods - 1); - return mRecordingPeriods[(mCurPeriod + num_periods - offset) % num_periods]; + // reuse const implementation, but return non-const reference + return const_cast<Recording&>( + const_cast<const PeriodicRecording*>(this)->getPrevRecording(offset)); } -const Recording& PeriodicRecording::getPrevRecording( S32 offset ) const +const Recording& PeriodicRecording::getPrevRecording( size_t offset ) const { - S32 num_periods = mRecordingPeriods.size(); - offset = llclamp(offset, 0, num_periods - 1); - return mRecordingPeriods[(mCurPeriod + num_periods - offset) % num_periods]; + return mRecordingPeriods[previ(mCurPeriod, offset)]; } void PeriodicRecording::handleStart() @@ -772,11 +759,9 @@ void PeriodicRecording::handleReset() } else { - for (std::vector<Recording>::iterator it = mRecordingPeriods.begin(), end_it = mRecordingPeriods.end(); - it != end_it; - ++it) + for (Recording& rec : mRecordingPeriods) { - it->reset(); + rec.reset(); } } mCurPeriod = 0; @@ -790,14 +775,14 @@ void PeriodicRecording::handleSplitTo(PeriodicRecording& other) getCurRecording().splitTo(other.getCurRecording()); } -F64 PeriodicRecording::getPeriodMin( const StatType<EventAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64 PeriodicRecording::getPeriodMin( const StatType<EventAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); bool has_value = false; F64 min_val = std::numeric_limits<F64>::max(); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -812,14 +797,14 @@ F64 PeriodicRecording::getPeriodMin( const StatType<EventAccumulator>& stat, S32 : NaN; } -F64 PeriodicRecording::getPeriodMax( const StatType<EventAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64 PeriodicRecording::getPeriodMax( const StatType<EventAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); bool has_value = false; F64 max_val = std::numeric_limits<F64>::min(); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -835,7 +820,7 @@ F64 PeriodicRecording::getPeriodMax( const StatType<EventAccumulator>& stat, S32 } // calculates means using aggregates per period -F64 PeriodicRecording::getPeriodMean( const StatType<EventAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64 PeriodicRecording::getPeriodMean( const StatType<EventAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); @@ -843,7 +828,7 @@ F64 PeriodicRecording::getPeriodMean( const StatType<EventAccumulator>& stat, S3 F64 mean = 0; S32 valid_period_count = 0; - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -858,7 +843,7 @@ F64 PeriodicRecording::getPeriodMean( const StatType<EventAccumulator>& stat, S3 : NaN; } -F64 PeriodicRecording::getPeriodStandardDeviation( const StatType<EventAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64 PeriodicRecording::getPeriodStandardDeviation( const StatType<EventAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); @@ -867,7 +852,7 @@ F64 PeriodicRecording::getPeriodStandardDeviation( const StatType<EventAccumulat F64 sum_of_squares = 0; S32 valid_period_count = 0; - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -883,14 +868,14 @@ F64 PeriodicRecording::getPeriodStandardDeviation( const StatType<EventAccumulat : NaN; } -F64 PeriodicRecording::getPeriodMin( const StatType<SampleAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64 PeriodicRecording::getPeriodMin( const StatType<SampleAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); bool has_value = false; F64 min_val = std::numeric_limits<F64>::max(); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -905,14 +890,14 @@ F64 PeriodicRecording::getPeriodMin( const StatType<SampleAccumulator>& stat, S3 : NaN; } -F64 PeriodicRecording::getPeriodMax(const StatType<SampleAccumulator>& stat, S32 num_periods /*= S32_MAX*/) +F64 PeriodicRecording::getPeriodMax(const StatType<SampleAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); bool has_value = false; F64 max_val = std::numeric_limits<F64>::min(); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -928,7 +913,7 @@ F64 PeriodicRecording::getPeriodMax(const StatType<SampleAccumulator>& stat, S32 } -F64 PeriodicRecording::getPeriodMean( const StatType<SampleAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64 PeriodicRecording::getPeriodMean( const StatType<SampleAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); @@ -936,7 +921,7 @@ F64 PeriodicRecording::getPeriodMean( const StatType<SampleAccumulator>& stat, S S32 valid_period_count = 0; F64 mean = 0; - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -951,13 +936,13 @@ F64 PeriodicRecording::getPeriodMean( const StatType<SampleAccumulator>& stat, S : NaN; } -F64 PeriodicRecording::getPeriodMedian( const StatType<SampleAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64 PeriodicRecording::getPeriodMedian( const StatType<SampleAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); std::vector<F64> buf; - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.getDuration() > (F32Seconds)0.f) @@ -977,7 +962,7 @@ F64 PeriodicRecording::getPeriodMedian( const StatType<SampleAccumulator>& stat, return F64((buf.size() % 2 == 0) ? (buf[buf.size() / 2 - 1] + buf[buf.size() / 2]) / 2 : buf[buf.size() / 2]); } -F64 PeriodicRecording::getPeriodStandardDeviation( const StatType<SampleAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64 PeriodicRecording::getPeriodStandardDeviation( const StatType<SampleAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); @@ -986,7 +971,7 @@ F64 PeriodicRecording::getPeriodStandardDeviation( const StatType<SampleAccumula S32 valid_period_count = 0; F64 sum_of_squares = 0; - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -1003,13 +988,13 @@ F64 PeriodicRecording::getPeriodStandardDeviation( const StatType<SampleAccumula } -F64Kilobytes PeriodicRecording::getPeriodMin( const StatType<MemAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64Kilobytes PeriodicRecording::getPeriodMin( const StatType<MemAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); F64Kilobytes min_val(std::numeric_limits<F64>::max()); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); min_val = llmin(min_val, recording.getMin(stat)); @@ -1018,18 +1003,18 @@ F64Kilobytes PeriodicRecording::getPeriodMin( const StatType<MemAccumulator>& st return min_val; } -F64Kilobytes PeriodicRecording::getPeriodMin(const MemStatHandle& stat, S32 num_periods) +F64Kilobytes PeriodicRecording::getPeriodMin(const MemStatHandle& stat, size_t num_periods) { return getPeriodMin(static_cast<const StatType<MemAccumulator>&>(stat), num_periods); } -F64Kilobytes PeriodicRecording::getPeriodMax(const StatType<MemAccumulator>& stat, S32 num_periods /*= S32_MAX*/) +F64Kilobytes PeriodicRecording::getPeriodMax(const StatType<MemAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); F64Kilobytes max_val(0.0); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); max_val = llmax(max_val, recording.getMax(stat)); @@ -1038,19 +1023,19 @@ F64Kilobytes PeriodicRecording::getPeriodMax(const StatType<MemAccumulator>& sta return max_val; } -F64Kilobytes PeriodicRecording::getPeriodMax(const MemStatHandle& stat, S32 num_periods) +F64Kilobytes PeriodicRecording::getPeriodMax(const MemStatHandle& stat, size_t num_periods) { return getPeriodMax(static_cast<const StatType<MemAccumulator>&>(stat), num_periods); } -F64Kilobytes PeriodicRecording::getPeriodMean( const StatType<MemAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64Kilobytes PeriodicRecording::getPeriodMean( const StatType<MemAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); F64Kilobytes mean(0); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); mean += recording.getMean(stat); @@ -1059,12 +1044,12 @@ F64Kilobytes PeriodicRecording::getPeriodMean( const StatType<MemAccumulator>& s return mean / F64(num_periods); } -F64Kilobytes PeriodicRecording::getPeriodMean(const MemStatHandle& stat, S32 num_periods) +F64Kilobytes PeriodicRecording::getPeriodMean(const MemStatHandle& stat, size_t num_periods) { return getPeriodMean(static_cast<const StatType<MemAccumulator>&>(stat), num_periods); } -F64Kilobytes PeriodicRecording::getPeriodStandardDeviation( const StatType<MemAccumulator>& stat, S32 num_periods /*= S32_MAX*/ ) +F64Kilobytes PeriodicRecording::getPeriodStandardDeviation( const StatType<MemAccumulator>& stat, size_t num_periods /*= std::numeric_limits<size_t>::max()*/ ) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); @@ -1073,7 +1058,7 @@ F64Kilobytes PeriodicRecording::getPeriodStandardDeviation( const StatType<MemAc S32 valid_period_count = 0; F64 sum_of_squares = 0; - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -1089,7 +1074,7 @@ F64Kilobytes PeriodicRecording::getPeriodStandardDeviation( const StatType<MemAc : NaN); } -F64Kilobytes PeriodicRecording::getPeriodStandardDeviation(const MemStatHandle& stat, S32 num_periods) +F64Kilobytes PeriodicRecording::getPeriodStandardDeviation(const MemStatHandle& stat, size_t num_periods) { return getPeriodStandardDeviation(static_cast<const StatType<MemAccumulator>&>(stat), num_periods); } diff --git a/indra/llcommon/lltracerecording.h b/indra/llcommon/lltracerecording.h index 556b7470cf..a6b1a67d02 100644 --- a/indra/llcommon/lltracerecording.h +++ b/indra/llcommon/lltracerecording.h @@ -33,6 +33,7 @@ #include "lltimer.h" #include "lltraceaccumulators.h" #include "llpointer.h" +#include <limits> class LLStopWatchControlsMixinCommon { @@ -330,11 +331,11 @@ namespace LLTrace : public LLStopWatchControlsMixin<PeriodicRecording> { public: - PeriodicRecording(S32 num_periods, EPlayState state = STOPPED); + PeriodicRecording(size_t num_periods, EPlayState state = STOPPED); ~PeriodicRecording(); void nextPeriod(); - S32 getNumRecordedPeriods() + auto getNumRecordedPeriods() { // current period counts if not active return mNumRecordedPeriods + (isStarted() ? 0 : 1); @@ -348,24 +349,24 @@ namespace LLTrace const Recording& getLastRecording() const; Recording& getCurRecording(); const Recording& getCurRecording() const; - Recording& getPrevRecording(S32 offset); - const Recording& getPrevRecording(S32 offset) const; + Recording& getPrevRecording(size_t offset); + const Recording& getPrevRecording(size_t offset) const; Recording snapshotCurRecording() const; template <typename T> - S32 getSampleCount(const StatType<T>& stat, S32 num_periods = S32_MAX) - { - LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; + auto getSampleCount(const StatType<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) + { + LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); - S32 num_samples = 0; - for (S32 i = 1; i <= num_periods; i++) + size_t num_samples = 0; + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); num_samples += recording.getSampleCount(stat); } return num_samples; - } + } // // PERIODIC MIN @@ -373,14 +374,14 @@ namespace LLTrace // catch all for stats that have a defined sum template <typename T> - typename T::value_t getPeriodMin(const StatType<T>& stat, S32 num_periods = S32_MAX) + typename T::value_t getPeriodMin(const StatType<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); bool has_value = false; typename T::value_t min_val(std::numeric_limits<typename T::value_t>::max()); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -396,39 +397,39 @@ namespace LLTrace } template<typename T> - T getPeriodMin(const CountStatHandle<T>& stat, S32 num_periods = S32_MAX) + T getPeriodMin(const CountStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return T(getPeriodMin(static_cast<const StatType<CountAccumulator>&>(stat), num_periods)); } - F64 getPeriodMin(const StatType<SampleAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodMin(const StatType<SampleAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template<typename T> - T getPeriodMin(const SampleStatHandle<T>& stat, S32 num_periods = S32_MAX) + T getPeriodMin(const SampleStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return T(getPeriodMin(static_cast<const StatType<SampleAccumulator>&>(stat), num_periods)); } - F64 getPeriodMin(const StatType<EventAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodMin(const StatType<EventAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template<typename T> - T getPeriodMin(const EventStatHandle<T>& stat, S32 num_periods = S32_MAX) + T getPeriodMin(const EventStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return T(getPeriodMin(static_cast<const StatType<EventAccumulator>&>(stat), num_periods)); } - F64Kilobytes getPeriodMin(const StatType<MemAccumulator>& stat, S32 num_periods = S32_MAX); - F64Kilobytes getPeriodMin(const MemStatHandle& stat, S32 num_periods = S32_MAX); + F64Kilobytes getPeriodMin(const StatType<MemAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); + F64Kilobytes getPeriodMin(const MemStatHandle& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template <typename T> - typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMinPerSec(const StatType<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMinPerSec(const StatType<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); typename RelatedTypes<typename T::value_t>::fractional_t min_val(std::numeric_limits<F64>::max()); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); min_val = llmin(min_val, recording.getPerSec(stat)); @@ -437,7 +438,7 @@ namespace LLTrace } template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodMinPerSec(const CountStatHandle<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<T>::fractional_t getPeriodMinPerSec(const CountStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return typename RelatedTypes<T>::fractional_t(getPeriodMinPerSec(static_cast<const StatType<CountAccumulator>&>(stat), num_periods)); @@ -449,14 +450,14 @@ namespace LLTrace // catch all for stats that have a defined sum template <typename T> - typename T::value_t getPeriodMax(const StatType<T>& stat, S32 num_periods = S32_MAX) + typename T::value_t getPeriodMax(const StatType<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); bool has_value = false; typename T::value_t max_val(std::numeric_limits<typename T::value_t>::min()); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.hasValue(stat)) @@ -472,39 +473,39 @@ namespace LLTrace } template<typename T> - T getPeriodMax(const CountStatHandle<T>& stat, S32 num_periods = S32_MAX) + T getPeriodMax(const CountStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return T(getPeriodMax(static_cast<const StatType<CountAccumulator>&>(stat), num_periods)); } - F64 getPeriodMax(const StatType<SampleAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodMax(const StatType<SampleAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template<typename T> - T getPeriodMax(const SampleStatHandle<T>& stat, S32 num_periods = S32_MAX) + T getPeriodMax(const SampleStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return T(getPeriodMax(static_cast<const StatType<SampleAccumulator>&>(stat), num_periods)); } - F64 getPeriodMax(const StatType<EventAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodMax(const StatType<EventAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template<typename T> - T getPeriodMax(const EventStatHandle<T>& stat, S32 num_periods = S32_MAX) + T getPeriodMax(const EventStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return T(getPeriodMax(static_cast<const StatType<EventAccumulator>&>(stat), num_periods)); } - F64Kilobytes getPeriodMax(const StatType<MemAccumulator>& stat, S32 num_periods = S32_MAX); - F64Kilobytes getPeriodMax(const MemStatHandle& stat, S32 num_periods = S32_MAX); + F64Kilobytes getPeriodMax(const StatType<MemAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); + F64Kilobytes getPeriodMax(const MemStatHandle& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template <typename T> - typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMaxPerSec(const StatType<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMaxPerSec(const StatType<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); F64 max_val = std::numeric_limits<F64>::min(); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); max_val = llmax(max_val, recording.getPerSec(stat)); @@ -513,7 +514,7 @@ namespace LLTrace } template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodMaxPerSec(const CountStatHandle<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<T>::fractional_t getPeriodMaxPerSec(const CountStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return typename RelatedTypes<T>::fractional_t(getPeriodMaxPerSec(static_cast<const StatType<CountAccumulator>&>(stat), num_periods)); @@ -525,14 +526,14 @@ namespace LLTrace // catch all for stats that have a defined sum template <typename T> - typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMean(const StatType<T >& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMean(const StatType<T >& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); typename RelatedTypes<typename T::value_t>::fractional_t mean(0); - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.getDuration() > (F32Seconds)0.f) @@ -546,39 +547,39 @@ namespace LLTrace } template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodMean(const CountStatHandle<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<T>::fractional_t getPeriodMean(const CountStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return typename RelatedTypes<T>::fractional_t(getPeriodMean(static_cast<const StatType<CountAccumulator>&>(stat), num_periods)); } - F64 getPeriodMean(const StatType<SampleAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodMean(const StatType<SampleAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodMean(const SampleStatHandle<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<T>::fractional_t getPeriodMean(const SampleStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return typename RelatedTypes<T>::fractional_t(getPeriodMean(static_cast<const StatType<SampleAccumulator>&>(stat), num_periods)); } - F64 getPeriodMean(const StatType<EventAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodMean(const StatType<EventAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodMean(const EventStatHandle<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<T>::fractional_t getPeriodMean(const EventStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return typename RelatedTypes<T>::fractional_t(getPeriodMean(static_cast<const StatType<EventAccumulator>&>(stat), num_periods)); } - F64Kilobytes getPeriodMean(const StatType<MemAccumulator>& stat, S32 num_periods = S32_MAX); - F64Kilobytes getPeriodMean(const MemStatHandle& stat, S32 num_periods = S32_MAX); + F64Kilobytes getPeriodMean(const StatType<MemAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); + F64Kilobytes getPeriodMean(const MemStatHandle& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template <typename T> - typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMeanPerSec(const StatType<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMeanPerSec(const StatType<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; num_periods = llmin(num_periods, getNumRecordedPeriods()); typename RelatedTypes<typename T::value_t>::fractional_t mean = 0; - for (S32 i = 1; i <= num_periods; i++) + for (size_t i = 1; i <= num_periods; i++) { Recording& recording = getPrevRecording(i); if (recording.getDuration() > (F32Seconds)0.f) @@ -593,64 +594,64 @@ namespace LLTrace } template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodMeanPerSec(const CountStatHandle<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<T>::fractional_t getPeriodMeanPerSec(const CountStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return typename RelatedTypes<T>::fractional_t(getPeriodMeanPerSec(static_cast<const StatType<CountAccumulator>&>(stat), num_periods)); } - F64 getPeriodMedian( const StatType<SampleAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodMedian( const StatType<SampleAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); - template <typename T> - typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMedianPerSec(const StatType<T>& stat, S32 num_periods = S32_MAX) - { - LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; - num_periods = llmin(num_periods, getNumRecordedPeriods()); - - std::vector <typename RelatedTypes<typename T::value_t>::fractional_t> buf; - for (S32 i = 1; i <= num_periods; i++) - { - Recording& recording = getPrevRecording(i); - if (recording.getDuration() > (F32Seconds)0.f) - { - buf.push_back(recording.getPerSec(stat)); - } - } - std::sort(buf.begin(), buf.end()); - - return typename RelatedTypes<T>::fractional_t((buf.size() % 2 == 0) ? (buf[buf.size() / 2 - 1] + buf[buf.size() / 2]) / 2 : buf[buf.size() / 2]); - } - - template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodMedianPerSec(const CountStatHandle<T>& stat, S32 num_periods = S32_MAX) - { - LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; - return typename RelatedTypes<T>::fractional_t(getPeriodMedianPerSec(static_cast<const StatType<CountAccumulator>&>(stat), num_periods)); - } + template <typename T> + typename RelatedTypes<typename T::value_t>::fractional_t getPeriodMedianPerSec(const StatType<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) + { + LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; + num_periods = llmin(num_periods, getNumRecordedPeriods()); + + std::vector <typename RelatedTypes<typename T::value_t>::fractional_t> buf; + for (size_t i = 1; i <= num_periods; i++) + { + Recording& recording = getPrevRecording(i); + if (recording.getDuration() > (F32Seconds)0.f) + { + buf.push_back(recording.getPerSec(stat)); + } + } + std::sort(buf.begin(), buf.end()); + + return typename RelatedTypes<T>::fractional_t((buf.size() % 2 == 0) ? (buf[buf.size() / 2 - 1] + buf[buf.size() / 2]) / 2 : buf[buf.size() / 2]); + } + + template<typename T> + typename RelatedTypes<T>::fractional_t getPeriodMedianPerSec(const CountStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) + { + LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; + return typename RelatedTypes<T>::fractional_t(getPeriodMedianPerSec(static_cast<const StatType<CountAccumulator>&>(stat), num_periods)); + } // // PERIODIC STANDARD DEVIATION // - F64 getPeriodStandardDeviation(const StatType<SampleAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodStandardDeviation(const StatType<SampleAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodStandardDeviation(const SampleStatHandle<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<T>::fractional_t getPeriodStandardDeviation(const SampleStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return typename RelatedTypes<T>::fractional_t(getPeriodStandardDeviation(static_cast<const StatType<SampleAccumulator>&>(stat), num_periods)); } - F64 getPeriodStandardDeviation(const StatType<EventAccumulator>& stat, S32 num_periods = S32_MAX); + F64 getPeriodStandardDeviation(const StatType<EventAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); template<typename T> - typename RelatedTypes<T>::fractional_t getPeriodStandardDeviation(const EventStatHandle<T>& stat, S32 num_periods = S32_MAX) + typename RelatedTypes<T>::fractional_t getPeriodStandardDeviation(const EventStatHandle<T>& stat, size_t num_periods = std::numeric_limits<size_t>::max()) { LL_PROFILE_ZONE_SCOPED_CATEGORY_STATS; return typename RelatedTypes<T>::fractional_t(getPeriodStandardDeviation(static_cast<const StatType<EventAccumulator>&>(stat), num_periods)); } - F64Kilobytes getPeriodStandardDeviation(const StatType<MemAccumulator>& stat, S32 num_periods = S32_MAX); - F64Kilobytes getPeriodStandardDeviation(const MemStatHandle& stat, S32 num_periods = S32_MAX); + F64Kilobytes getPeriodStandardDeviation(const StatType<MemAccumulator>& stat, size_t num_periods = std::numeric_limits<size_t>::max()); + F64Kilobytes getPeriodStandardDeviation(const MemStatHandle& stat, size_t num_periods = std::numeric_limits<size_t>::max()); private: // implementation for LLStopWatchControlsMixin @@ -659,11 +660,40 @@ namespace LLTrace /*virtual*/ void handleReset(); /*virtual*/ void handleSplitTo(PeriodicRecording& other); + // helper methods for wraparound ring-buffer arithmetic + inline + size_t wrapi(size_t i) const + { + return i % mRecordingPeriods.size(); + } + + inline + size_t nexti(size_t i, size_t offset=1) const + { + return wrapi(i + offset); + } + + inline + size_t previ(size_t i, size_t offset=1) const + { + auto num_periods = mRecordingPeriods.size(); + // constrain offset + offset = llclamp(offset, 0, num_periods - 1); + // add size() so expression can't go (unsigned) "negative" + return wrapi(i + num_periods - offset); + } + + inline + void inci(size_t& i, size_t offset=1) const + { + i = nexti(i, offset); + } + private: std::vector<Recording> mRecordingPeriods; const bool mAutoResize; - S32 mCurPeriod; - S32 mNumRecordedPeriods; + size_t mCurPeriod; + size_t mNumRecordedPeriods; }; PeriodicRecording& get_frame_recording(); diff --git a/indra/llcommon/lltracethreadrecorder.cpp b/indra/llcommon/lltracethreadrecorder.cpp index 26db15eaa0..282c454a2a 100644 --- a/indra/llcommon/lltracethreadrecorder.cpp +++ b/indra/llcommon/lltracethreadrecorder.cpp @@ -125,7 +125,7 @@ ThreadRecorder::~ThreadRecorder() #endif } -TimeBlockTreeNode* ThreadRecorder::getTimeBlockTreeNode( S32 index ) +TimeBlockTreeNode* ThreadRecorder::getTimeBlockTreeNode( size_t index ) { #if LL_TRACE_ENABLED if (0 <= index && index < mNumTimeBlockTreeNodes) @@ -284,13 +284,11 @@ void ThreadRecorder::pullFromChildren() AccumulatorBufferGroup& target_recording_buffers = mActiveRecordings.back()->mPartialRecording; target_recording_buffers.sync(); - for (child_thread_recorder_list_t::iterator it = mChildThreadRecorders.begin(), end_it = mChildThreadRecorders.end(); - it != end_it; - ++it) - { LLMutexLock lock(&(*it)->mSharedRecordingMutex); + for (LLTrace::ThreadRecorder* rec : mChildThreadRecorders) + { LLMutexLock lock(&(rec->mSharedRecordingMutex)); - target_recording_buffers.merge((*it)->mSharedRecordingBuffers); - (*it)->mSharedRecordingBuffers.reset(); + target_recording_buffers.merge(rec->mSharedRecordingBuffers); + rec->mSharedRecordingBuffers.reset(); } } #endif diff --git a/indra/llcommon/lltracethreadrecorder.h b/indra/llcommon/lltracethreadrecorder.h index 8fd1e5ef58..8ee6729ac6 100644 --- a/indra/llcommon/lltracethreadrecorder.h +++ b/indra/llcommon/lltracethreadrecorder.h @@ -57,7 +57,7 @@ namespace LLTrace void pullFromChildren(); void pushToParent(); - TimeBlockTreeNode* getTimeBlockTreeNode(S32 index); + TimeBlockTreeNode* getTimeBlockTreeNode(size_t index); protected: void init(); diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp index 22711a83d2..4fb92a8f3e 100644 --- a/indra/llcommon/lluri.cpp +++ b/indra/llcommon/lluri.cpp @@ -663,9 +663,9 @@ LLSD LLURI::pathArray() const tokenizer::iterator end = tokens.end(); LLSD params; - for ( ; it != end; ++it) + for (const std::string& str : tokens) { - params.append(*it); + params.append(str); } return params; } diff --git a/indra/llcommon/lluuid.cpp b/indra/llcommon/lluuid.cpp index 6f9e09a587..5655e8e2f2 100644 --- a/indra/llcommon/lluuid.cpp +++ b/indra/llcommon/lluuid.cpp @@ -40,11 +40,12 @@ #include "lluuid.h" #include "llerror.h" #include "llrand.h" -#include "llmd5.h" #include "llstring.h" #include "lltimer.h" #include "llthread.h" #include "llmutex.h" +#include "llmd5.h" +#include "hbxxh.h" const LLUUID LLUUID::null; const LLTransactionID LLTransactionID::tnull; @@ -400,6 +401,9 @@ LLUUID LLUUID::operator^(const LLUUID& rhs) const return id; } +// WARNING: this algorithm SHALL NOT be changed. It is also used by the server +// and plays a role in some assets validation (e.g. clothing items). Changing +// it would cause invalid assets. void LLUUID::combine(const LLUUID& other, LLUUID& result) const { LLMD5 md5_uuid; @@ -857,17 +861,12 @@ void LLUUID::generate() tmp >>= 8; mData[8] = (unsigned char) tmp; - LLMD5 md5_uuid; - - md5_uuid.update(mData,16); - md5_uuid.finalize(); - md5_uuid.raw_digest(mData); + HBXXH128::digest(*this, (const void*)mData, 16); } void LLUUID::generate(const std::string& hash_string) { - LLMD5 md5_uuid((U8*)hash_string.c_str()); - md5_uuid.raw_digest(mData); + HBXXH128::digest(*this, hash_string); } U32 LLUUID::getRandomSeed() @@ -885,13 +884,8 @@ U32 LLUUID::getRandomSeed() seed[7]=(unsigned char)(pid); getSystemTime((uuid_time_t *)(&seed[8])); - LLMD5 md5_seed; - - md5_seed.update(seed,16); - md5_seed.finalize(); - md5_seed.raw_digest(seed); - - return(*(U32 *)seed); + U64 seed64 = HBXXH64::digest((const void*)seed, 16); + return U32(seed64) ^ U32(seed64 >> 32); } BOOL LLUUID::parseUUID(const std::string& buf, LLUUID* value) diff --git a/indra/llcommon/lluuid.h b/indra/llcommon/lluuid.h index c139c4eb4e..80597fa186 100644 --- a/indra/llcommon/lluuid.h +++ b/indra/llcommon/lluuid.h @@ -116,6 +116,14 @@ public: U16 getCRC16() const; U32 getCRC32() const; + // Returns a 64 bits digest of the UUID, by XORing its two 64 bits long + // words. HB + inline U64 getDigest64() const + { + U64* tmp = (U64*)mData; + return tmp[0] ^ tmp[1]; + } + static BOOL validate(const std::string& in_string); // Validate that the UUID string is legal. static const LLUUID null; @@ -165,36 +173,22 @@ public: LLAssetID makeAssetID(const LLUUID& session) const; }; -// Generate a hash of an LLUUID object using the boost hash templates. -template <> -struct boost::hash<LLUUID> -{ - typedef LLUUID argument_type; - typedef std::size_t result_type; - result_type operator()(argument_type const& s) const - { - result_type seed(0); - - for (S32 i = 0; i < UUID_BYTES; ++i) - { - boost::hash_combine(seed, s.mData[i]); - } - - return seed; - } -}; - -// Adapt boost hash to std hash +// std::hash implementation for LLUUID namespace std { - template<> struct hash<LLUUID> - { - std::size_t operator()(LLUUID const& s) const noexcept - { - return boost::hash<LLUUID>()(s); - } - }; + template<> struct hash<LLUUID> + { + inline size_t operator()(const LLUUID& id) const noexcept + { + return (size_t)id.getDigest64(); + } + }; } -#endif +// For use with boost containers. +inline size_t hash_value(const LLUUID& id) noexcept +{ + return (size_t)id.getDigest64(); +} +#endif // LL_LLUUID_H diff --git a/indra/llcommon/llworkerthread.cpp b/indra/llcommon/llworkerthread.cpp index 4b91b2caca..e5eda1eac7 100644 --- a/indra/llcommon/llworkerthread.cpp +++ b/indra/llcommon/llworkerthread.cpp @@ -69,11 +69,11 @@ void LLWorkerThread::clearDeleteList() << " entries in delete list." << LL_ENDL; mDeleteMutex->lock(); - for (delete_list_t::iterator iter = mDeleteList.begin(); iter != mDeleteList.end(); ++iter) + for (LLWorkerClass* worker : mDeleteList) { - (*iter)->mRequestHandle = LLWorkerThread::nullHandle(); - (*iter)->clearFlags(LLWorkerClass::WCF_HAVE_WORK); - delete *iter ; + worker->mRequestHandle = LLWorkerThread::nullHandle(); + worker->clearFlags(LLWorkerClass::WCF_HAVE_WORK); + delete worker; } mDeleteList.clear() ; mDeleteMutex->unlock() ; @@ -81,9 +81,9 @@ void LLWorkerThread::clearDeleteList() } // virtual -S32 LLWorkerThread::update(F32 max_time_ms) +size_t LLWorkerThread::update(F32 max_time_ms) { - S32 res = LLQueuedThread::update(max_time_ms); + auto res = LLQueuedThread::update(max_time_ms); // Delete scheduled workers std::vector<LLWorkerClass*> delete_list; std::vector<LLWorkerClass*> abort_list; @@ -108,15 +108,12 @@ S32 LLWorkerThread::update(F32 max_time_ms) } mDeleteMutex->unlock(); // abort and delete after releasing mutex - for (std::vector<LLWorkerClass*>::iterator iter = abort_list.begin(); - iter != abort_list.end(); ++iter) + for (LLWorkerClass* worker : abort_list) { - (*iter)->abortWork(false); + worker->abortWork(false); } - for (std::vector<LLWorkerClass*>::iterator iter = delete_list.begin(); - iter != delete_list.end(); ++iter) + for (LLWorkerClass* worker : delete_list) { - LLWorkerClass* worker = *iter; if (worker->mRequestHandle) { // Finished but not completed @@ -124,7 +121,7 @@ S32 LLWorkerThread::update(F32 max_time_ms) worker->mRequestHandle = LLWorkerThread::nullHandle(); worker->clearFlags(LLWorkerClass::WCF_HAVE_WORK); } - delete *iter; + delete worker; } // delete and aborted entries mean there's still work to do res += delete_list.size() + abort_list.size(); diff --git a/indra/llcommon/llworkerthread.h b/indra/llcommon/llworkerthread.h index 0387e75c65..e3004d7242 100644 --- a/indra/llcommon/llworkerthread.h +++ b/indra/llcommon/llworkerthread.h @@ -88,7 +88,7 @@ public: LLWorkerThread(const std::string& name, bool threaded = true, bool should_pause = false); ~LLWorkerThread(); - /*virtual*/ S32 update(F32 max_time_ms); + /*virtual*/ size_t update(F32 max_time_ms); handle_t addWorkRequest(LLWorkerClass* workerclass, S32 param, U32 priority = PRIORITY_NORMAL); diff --git a/indra/llcommon/stdtypes.h b/indra/llcommon/stdtypes.h index b07805b628..da8512169c 100644 --- a/indra/llcommon/stdtypes.h +++ b/indra/llcommon/stdtypes.h @@ -26,16 +26,23 @@ #ifndef LL_STDTYPES_H #define LL_STDTYPES_H +#include <cassert> #include <cfloat> #include <climits> +#include <limits> +#include <type_traits> -typedef signed char S8; +typedef signed char S8; typedef unsigned char U8; typedef signed short S16; typedef unsigned short U16; -typedef signed int S32; +typedef signed int S32; typedef unsigned int U32; +// to express an index that might go negative +// (ssize_t is provided by SOME compilers, don't collide) +typedef typename std::make_signed<size_t>::type llssize; + #if LL_WINDOWS // https://docs.microsoft.com/en-us/cpp/build/reference/zc-wchar-t-wchar-t-is-native-type // https://docs.microsoft.com/en-us/cpp/cpp/fundamental-types-cpp @@ -45,7 +52,7 @@ typedef unsigned int U32; // The version of clang available with VS 2019 also defines wchar_t as __wchar_t // which is also 16 bits. // In any case, llwchar should be a UTF-32 type. -typedef U32 llwchar; +typedef U32 llwchar; #else typedef wchar_t llwchar; // What we'd actually want is a simple module-scope 'if constexpr' to test @@ -76,7 +83,7 @@ typedef double F64; typedef S32 BOOL; typedef U8 KEY; typedef U32 MASK; -typedef U32 TPACKETID; +typedef U32 TPACKETID; // Use #define instead of consts to avoid conversion headaches #define S8_MAX (SCHAR_MAX) @@ -118,4 +125,95 @@ typedef U8 LLPCode; typedef int intptr_t; #endif +/***************************************************************************** +* Narrowing +*****************************************************************************/ +/** + * narrow() is used to cast a wider type to a narrower type with validation. + * + * In many cases we take the size() of a container and try to pass it to an + * S32 or a U32 parameter. We used to be able to assume that the size of + * anything we could fit into memory could be expressed as a 32-bit int. With + * 64-bit viewers, though, size_t as returned by size() and length() and so + * forth is 64 bits, and the compiler is unhappy about stuffing such values + * into 32-bit types. + * + * It works to force the compiler to truncate, e.g. static_cast<S32>(len) or + * S32(len) or (S32)len, but we can do better. + * + * For: + * @code + * std::vector<Object> container; + * void somefunc(S32 size); + * @endcode + * call: + * @code + * somefunc(narrow(container.size())); + * @endcode + * + * narrow() truncates but, in RelWithDebInfo builds, it validates (using + * assert()) that the passed value can validly be expressed by the destination + * type. + */ +// narrow_holder is a struct that accepts the passed value as its original +// type and provides templated conversion functions to other types. Once we're +// building with compilers that support Class Template Argument Deduction, we +// can rename this class template 'narrow' and eliminate the narrow() factory +// function below. +template <typename FROM> +class narrow_holder +{ +private: + FROM mValue; + +public: + narrow_holder(FROM value): mValue(value) {} + + /*---------------------- Narrowing unsigned to signed ----------------------*/ + template <typename TO, + typename std::enable_if<std::is_unsigned<FROM>::value && + std::is_signed<TO>::value, + bool>::type = true> + inline + operator TO() const + { + // The reason we skip the + // assert(value >= std::numeric_limits<TO>::lowest()); + // like the overload below is that to perform the above comparison, + // the compiler promotes the signed lowest() to the unsigned FROM + // type, making it hugely positive -- so a reasonable 'value' will + // always fail the assert(). + assert(mValue <= std::numeric_limits<TO>::max()); + return static_cast<TO>(mValue); + } + + /*----------------------- Narrowing all other cases ------------------------*/ + template <typename TO, + typename std::enable_if<! (std::is_unsigned<FROM>::value && + std::is_signed<TO>::value), + bool>::type = true> + inline + operator TO() const + { + // two different assert()s so we can tell which condition failed + assert(mValue <= std::numeric_limits<TO>::max()); + // Funny, with floating point types min() is "positive epsilon" rather + // than "largest negative" -- that's lowest(). + assert(mValue >= std::numeric_limits<TO>::lowest()); + // Do we really expect to use this with floating point types? + // If so, does it matter if a very small value truncates to zero? + //assert(fabs(mValue) >= std::numeric_limits<TO>::min()); + return static_cast<TO>(mValue); + } +}; + +/// narrow() factory function returns a narrow_holder<FROM>(), which can be +/// implicitly converted to the target type. +template <typename FROM> +inline +narrow_holder<FROM> narrow(FROM value) +{ + return { value }; +} + #endif diff --git a/indra/llcommon/tests/lleventdispatcher_test.cpp b/indra/llcommon/tests/lleventdispatcher_test.cpp index 9da1ecfd67..466f11f52a 100644 --- a/indra/llcommon/tests/lleventdispatcher_test.cpp +++ b/indra/llcommon/tests/lleventdispatcher_test.cpp @@ -335,7 +335,7 @@ namespace tut // Full, partial defaults arrays for params for freena(), freenb() LLSD dft_array_full, dft_array_partial; // Start index of partial defaults arrays - const LLSD::Integer partial_offset; + const size_t partial_offset; // Full, partial defaults maps for params for freena(), freenb() LLSD dft_map_full, dft_map_partial; // Most of the above are indexed by "a" or "b". Useful to have an @@ -345,7 +345,7 @@ namespace tut lleventdispatcher_data(): work("test dispatcher", "op"), // map {d=double, array=[3 elements]} - required(LLSDMap("d", LLSD::Real(0))("array", LLSDArray(LLSD())(LLSD())(LLSD()))), + required(LLSDMap("d", LLSD::Real(0))("array", llsd::array(LLSD(), LLSD(), LLSD()))), // first several params are required, last couple optional partial_offset(3) { @@ -434,8 +434,8 @@ namespace tut // freena(), methodna(), cmethodna(), smethodna() all take same param list. // Same for freenb() et al. - params = LLSDMap("a", LLSDArray("b")("i")("f")("d")("cp")) - ("b", LLSDArray("s")("uuid")("date")("uri")("bin")); + params = LLSDMap("a", llsd::array("b", "i", "f", "d", "cp")) + ("b", llsd::array("s", "uuid", "date", "uri", "bin")); debug("params:\n", params, "\n" "params[\"a\"]:\n", @@ -452,12 +452,12 @@ namespace tut // LLDate values are, as long as they're different from the // LLUUID() and LLDate() default values so inspect() will report // them. - dft_array_full = LLSDMap("a", LLSDArray(true)(17)(3.14)(123456.78)("classic")) - ("b", LLSDArray("string") - (LLUUID::generateNewID()) - (LLDate::now()) - (LLURI("http://www.ietf.org/rfc/rfc3986.txt")) - (binary)); + dft_array_full = LLSDMap("a", llsd::array(true, 17, 3.14, 123456.78, "classic")) + ("b", llsd::array("string", + LLUUID::generateNewID(), + LLDate::now(), + LLURI("http://www.ietf.org/rfc/rfc3986.txt"), + binary)); debug("dft_array_full:\n", dft_array_full); // Partial defaults arrays. @@ -723,7 +723,7 @@ namespace tut { set_test_name("map-style registration with non-array params"); // Pass "param names" as scalar or as map - LLSD attempts(LLSDArray(17)(LLSDMap("pi", 3.14)("two", 2))); + LLSD attempts(llsd::array(17, LLSDMap("pi", 3.14)("two", 2))); foreach(LLSD ae, inArray(attempts)) { std::string threw = catch_what<std::exception>([this, &ae](){ @@ -738,7 +738,7 @@ namespace tut { set_test_name("map-style registration with badly-formed defaults"); std::string threw = catch_what<std::exception>([this](){ - work.add("freena_err", "freena", freena, LLSDArray("a")("b"), 17); + work.add("freena_err", "freena", freena, llsd::array("a", "b"), 17); }); ensure_has(threw, "must be a map or an array"); } @@ -749,8 +749,8 @@ namespace tut set_test_name("map-style registration with too many array defaults"); std::string threw = catch_what<std::exception>([this](){ work.add("freena_err", "freena", freena, - LLSDArray("a")("b"), - LLSDArray(17)(0.9)("gack")); + llsd::array("a", "b"), + llsd::array(17, 0.9, "gack")); }); ensure_has(threw, "shorter than"); } @@ -761,7 +761,7 @@ namespace tut set_test_name("map-style registration with too many map defaults"); std::string threw = catch_what<std::exception>([this](){ work.add("freena_err", "freena", freena, - LLSDArray("a")("b"), + llsd::array("a", "b"), LLSDMap("b", 17)("foo", 3.14)("bar", "sinister")); }); ensure_has(threw, "nonexistent params"); @@ -798,7 +798,7 @@ namespace tut void object::test<8>() { set_test_name("query Callables with/out required params"); - LLSD names(LLSDArray("free1")("Dmethod1")("Dcmethod1")("method1")); + LLSD names(llsd::array("free1", "Dmethod1", "Dcmethod1", "method1")); foreach(LLSD nm, inArray(names)) { LLSD metadata(getMetadata(nm)); @@ -821,13 +821,13 @@ namespace tut { set_test_name("query array-style functions/methods"); // Associate each registered name with expected arity. - LLSD expected(LLSDArray - (LLSDArray - (0)(LLSDArray("free0_array")("smethod0_array")("method0_array"))) - (LLSDArray - (5)(LLSDArray("freena_array")("smethodna_array")("methodna_array"))) - (LLSDArray - (5)(LLSDArray("freenb_array")("smethodnb_array")("methodnb_array")))); + LLSD expected(llsd::array + (llsd::array + (0, llsd::array("free0_array", "smethod0_array", "method0_array")), + llsd::array + (5, llsd::array("freena_array", "smethodna_array", "methodna_array")), + llsd::array + (5, llsd::array("freenb_array", "smethodnb_array", "methodnb_array")))); foreach(LLSD ae, inArray(expected)) { LLSD::Integer arity(ae[0].asInteger()); @@ -853,7 +853,7 @@ namespace tut set_test_name("query map-style no-params functions/methods"); // - (Free function | non-static method), map style, no params (ergo // no defaults) - LLSD names(LLSDArray("free0_map")("smethod0_map")("method0_map")); + LLSD names(llsd::array("free0_map", "smethod0_map", "method0_map")); foreach(LLSD nm, inArray(names)) { LLSD metadata(getMetadata(nm)); @@ -877,13 +877,13 @@ namespace tut // there should (!) be no difference beween array defaults and map // defaults. Verify, so we can ignore the distinction for all other // tests. - LLSD equivalences(LLSDArray - (LLSDArray("freena_map_adft")("freena_map_mdft")) - (LLSDArray("freenb_map_adft")("freenb_map_mdft")) - (LLSDArray("smethodna_map_adft")("smethodna_map_mdft")) - (LLSDArray("smethodnb_map_adft")("smethodnb_map_mdft")) - (LLSDArray("methodna_map_adft")("methodna_map_mdft")) - (LLSDArray("methodnb_map_adft")("methodnb_map_mdft"))); + LLSD equivalences(llsd::array + (llsd::array("freena_map_adft", "freena_map_mdft"), + llsd::array("freenb_map_adft", "freenb_map_mdft"), + llsd::array("smethodna_map_adft", "smethodna_map_mdft"), + llsd::array("smethodnb_map_adft", "smethodnb_map_mdft"), + llsd::array("methodna_map_adft", "methodna_map_mdft"), + llsd::array("methodnb_map_adft", "methodnb_map_mdft"))); foreach(LLSD eq, inArray(equivalences)) { LLSD adft(eq[0]); @@ -953,42 +953,42 @@ namespace tut debug("skipreq:\n", skipreq); - LLSD groups(LLSDArray // array of groups + LLSD groups(llsd::array // array of groups - (LLSDArray // group - (LLSDArray("freena_map_allreq")("smethodna_map_allreq")("methodna_map_allreq")) - (LLSDArray(allreq["a"])(LLSD()))) // required, optional + (llsd::array // group + (llsd::array("freena_map_allreq", "smethodna_map_allreq", "methodna_map_allreq"), + llsd::array(allreq["a"], LLSD())), // required, optional - (LLSDArray // group - (LLSDArray("freenb_map_allreq")("smethodnb_map_allreq")("methodnb_map_allreq")) - (LLSDArray(allreq["b"])(LLSD()))) // required, optional + llsd::array // group + (llsd::array("freenb_map_allreq", "smethodnb_map_allreq", "methodnb_map_allreq"), + llsd::array(allreq["b"], LLSD())), // required, optional - (LLSDArray // group - (LLSDArray("freena_map_leftreq")("smethodna_map_leftreq")("methodna_map_leftreq")) - (LLSDArray(leftreq["a"])(rightdft["a"]))) // required, optional + llsd::array // group + (llsd::array("freena_map_leftreq", "smethodna_map_leftreq", "methodna_map_leftreq"), + llsd::array(leftreq["a"], rightdft["a"])), // required, optional - (LLSDArray // group - (LLSDArray("freenb_map_leftreq")("smethodnb_map_leftreq")("methodnb_map_leftreq")) - (LLSDArray(leftreq["b"])(rightdft["b"]))) // required, optional + llsd::array // group + (llsd::array("freenb_map_leftreq", "smethodnb_map_leftreq", "methodnb_map_leftreq"), + llsd::array(leftreq["b"], rightdft["b"])), // required, optional - (LLSDArray // group - (LLSDArray("freena_map_skipreq")("smethodna_map_skipreq")("methodna_map_skipreq")) - (LLSDArray(skipreq["a"])(dft_map_partial["a"]))) // required, optional + llsd::array // group + (llsd::array("freena_map_skipreq", "smethodna_map_skipreq", "methodna_map_skipreq"), + llsd::array(skipreq["a"], dft_map_partial["a"])), // required, optional - (LLSDArray // group - (LLSDArray("freenb_map_skipreq")("smethodnb_map_skipreq")("methodnb_map_skipreq")) - (LLSDArray(skipreq["b"])(dft_map_partial["b"]))) // required, optional + llsd::array // group + (llsd::array("freenb_map_skipreq", "smethodnb_map_skipreq", "methodnb_map_skipreq"), + llsd::array(skipreq["b"], dft_map_partial["b"])), // required, optional - // We only need mention the full-map-defaults ("_mdft" suffix) - // registrations, having established their equivalence with the - // full-array-defaults ("_adft" suffix) registrations in another test. - (LLSDArray // group - (LLSDArray("freena_map_mdft")("smethodna_map_mdft")("methodna_map_mdft")) - (LLSDArray(LLSD::emptyMap())(dft_map_full["a"]))) // required, optional + // We only need mention the full-map-defaults ("_mdft" suffix) + // registrations, having established their equivalence with the + // full-array-defaults ("_adft" suffix) registrations in another test. + llsd::array // group + (llsd::array("freena_map_mdft", "smethodna_map_mdft", "methodna_map_mdft"), + llsd::array(LLSD::emptyMap(), dft_map_full["a"])), // required, optional - (LLSDArray // group - (LLSDArray("freenb_map_mdft")("smethodnb_map_mdft")("methodnb_map_mdft")) - (LLSDArray(LLSD::emptyMap())(dft_map_full["b"])))); // required, optional + llsd::array // group + (llsd::array("freenb_map_mdft", "smethodnb_map_mdft", "methodnb_map_mdft"), + llsd::array(LLSD::emptyMap(), dft_map_full["b"])))); // required, optional foreach(LLSD grp, inArray(groups)) { @@ -1077,7 +1077,7 @@ namespace tut // with 'required'. LLSD answer(42); // LLSD value matching 'required' according to llsd_matches() rules. - LLSD matching(LLSDMap("d", 3.14)("array", LLSDArray("answer")(true)(answer))); + LLSD matching(LLSDMap("d", 3.14)("array", llsd::array("answer", true, answer))); // Okay, walk through 'tests'. foreach(const CallablesTriple& tr, tests) { @@ -1114,17 +1114,17 @@ namespace tut call_exc("free0_map", 17, map_exc); // Passing an array to a map-style function works now! No longer an // error case! -// call_exc("free0_map", LLSDArray("a")("b"), map_exc); +// call_exc("free0_map", llsd::array("a", "b"), map_exc); } template<> template<> void object::test<18>() { set_test_name("call no-args functions"); - LLSD names(LLSDArray - ("free0_array")("free0_map") - ("smethod0_array")("smethod0_map") - ("method0_array")("method0_map")); + LLSD names(llsd::array + ("free0_array", "free0_map", + "smethod0_array", "smethod0_map", + "method0_array", "method0_map")); foreach(LLSD name, inArray(names)) { // Look up the Vars instance for this function. @@ -1142,10 +1142,10 @@ namespace tut } // Break out this data because we use it in a couple different tests. - LLSD array_funcs(LLSDArray - (LLSDMap("a", "freena_array") ("b", "freenb_array")) - (LLSDMap("a", "smethodna_array")("b", "smethodnb_array")) - (LLSDMap("a", "methodna_array") ("b", "methodnb_array"))); + LLSD array_funcs(llsd::array + (LLSDMap("a", "freena_array") ("b", "freenb_array"), + LLSDMap("a", "smethodna_array")("b", "smethodnb_array"), + LLSDMap("a", "methodna_array") ("b", "methodnb_array"))); template<> template<> void object::test<19>() @@ -1153,7 +1153,7 @@ namespace tut set_test_name("call array-style functions with too-short arrays"); // Could have two different too-short arrays, one for *na and one for // *nb, but since they both take 5 params... - LLSD tooshort(LLSDArray("this")("array")("too")("short")); + LLSD tooshort(llsd::array("this", "array", "too", "short")); foreach(const LLSD& funcsab, inArray(array_funcs)) { foreach(const llsd::MapEntry& e, inMap(funcsab)) @@ -1172,12 +1172,12 @@ namespace tut { binary.push_back((U8)h); } - LLSD args(LLSDMap("a", LLSDArray(true)(17)(3.14)(123.456)("char*")) - ("b", LLSDArray("string") - (LLUUID("01234567-89ab-cdef-0123-456789abcdef")) - (LLDate("2011-02-03T15:07:00Z")) - (LLURI("http://secondlife.com")) - (binary))); + LLSD args(LLSDMap("a", llsd::array(true, 17, 3.14, 123.456, "char*")) + ("b", llsd::array("string", + LLUUID("01234567-89ab-cdef-0123-456789abcdef"), + LLDate("2011-02-03T15:07:00Z"), + LLURI("http://secondlife.com"), + binary))); LLSD argsplus(args); argsplus["a"].append("bogus"); argsplus["b"].append("bogus"); @@ -1191,7 +1191,7 @@ namespace tut debug("expect: ", expect); // Use substantially the same logic for args and argsplus - LLSD argsarrays(LLSDArray(args)(argsplus)); + LLSD argsarrays(llsd::array(args, argsplus)); // So i==0 selects 'args', i==1 selects argsplus for (LLSD::Integer i(0), iend(argsarrays.size()); i < iend; ++i) { @@ -1236,8 +1236,8 @@ namespace tut set_test_name("call map-style functions with (full | oversized) (arrays | maps)"); const char binary[] = "\x99\x88\x77\x66\x55"; LLSD array_full(LLSDMap - ("a", LLSDArray(false)(255)(98.6)(1024.5)("pointer")) - ("b", LLSDArray("object")(LLUUID::generateNewID())(LLDate::now())(LLURI("http://wiki.lindenlab.com/wiki"))(LLSD::Binary(boost::begin(binary), boost::end(binary))))); + ("a", llsd::array(false, 255, 98.6, 1024.5, "pointer")) + ("b", llsd::array("object", LLUUID::generateNewID(), LLDate::now(), LLURI("http://wiki.lindenlab.com/wiki"), LLSD::Binary(boost::begin(binary), boost::end(binary))))); LLSD array_overfull(array_full); foreach(LLSD::String a, ab) { @@ -1280,20 +1280,20 @@ namespace tut // parameter defaults should make NO DIFFERENCE WHATSOEVER. Every call // should pass all params. LLSD names(LLSDMap - ("a", LLSDArray - ("freena_map_allreq") ("smethodna_map_allreq") ("methodna_map_allreq") - ("freena_map_leftreq")("smethodna_map_leftreq")("methodna_map_leftreq") - ("freena_map_skipreq")("smethodna_map_skipreq")("methodna_map_skipreq") - ("freena_map_adft") ("smethodna_map_adft") ("methodna_map_adft") - ("freena_map_mdft") ("smethodna_map_mdft") ("methodna_map_mdft")) - ("b", LLSDArray - ("freenb_map_allreq") ("smethodnb_map_allreq") ("methodnb_map_allreq") - ("freenb_map_leftreq")("smethodnb_map_leftreq")("methodnb_map_leftreq") - ("freenb_map_skipreq")("smethodnb_map_skipreq")("methodnb_map_skipreq") - ("freenb_map_adft") ("smethodnb_map_adft") ("methodnb_map_adft") - ("freenb_map_mdft") ("smethodnb_map_mdft") ("methodnb_map_mdft"))); + ("a", llsd::array + ("freena_map_allreq", "smethodna_map_allreq", "methodna_map_allreq", + "freena_map_leftreq", "smethodna_map_leftreq", "methodna_map_leftreq", + "freena_map_skipreq", "smethodna_map_skipreq", "methodna_map_skipreq", + "freena_map_adft", "smethodna_map_adft", "methodna_map_adft", + "freena_map_mdft", "smethodna_map_mdft", "methodna_map_mdft")) + ("b", llsd::array + ("freenb_map_allreq", "smethodnb_map_allreq", "methodnb_map_allreq", + "freenb_map_leftreq", "smethodnb_map_leftreq", "methodnb_map_leftreq", + "freenb_map_skipreq", "smethodnb_map_skipreq", "methodnb_map_skipreq", + "freenb_map_adft", "smethodnb_map_adft", "methodnb_map_adft", + "freenb_map_mdft", "smethodnb_map_mdft", "methodnb_map_mdft"))); // Treat (full | overfull) (array | map) the same. - LLSD argssets(LLSDArray(array_full)(array_overfull)(map_full)(map_overfull)); + LLSD argssets(llsd::array(array_full, array_overfull, map_full, map_overfull)); foreach(const LLSD& args, inArray(argssets)) { foreach(LLSD::String a, ab) diff --git a/indra/llcommon/tests/llleap_test.cpp b/indra/llcommon/tests/llleap_test.cpp index 7ee36a9ea6..3ae48a2532 100644 --- a/indra/llcommon/tests/llleap_test.cpp +++ b/indra/llcommon/tests/llleap_test.cpp @@ -109,7 +109,12 @@ namespace tut "import os\n" "import sys\n" "\n" - "from llbase import llsd\n" + "try:\n" + // new freestanding llsd package + " import llsd\n" + "except ImportError:\n" + // older llbase.llsd module + " from llbase import llsd\n" "\n" "class ProtocolError(Exception):\n" " def __init__(self, msg, data):\n" @@ -120,26 +125,26 @@ namespace tut " pass\n" "\n" "def get():\n" - " hdr = ''\n" - " while ':' not in hdr and len(hdr) < 20:\n" - " hdr += sys.stdin.read(1)\n" + " hdr = []\n" + " while b':' not in hdr and len(hdr) < 20:\n" + " hdr.append(sys.stdin.buffer.read(1))\n" " if not hdr:\n" " sys.exit(0)\n" - " if not hdr.endswith(':'):\n" + " if not hdr[-1] == b':':\n" " raise ProtocolError('Expected len:data, got %r' % hdr, hdr)\n" " try:\n" - " length = int(hdr[:-1])\n" + " length = int(b''.join(hdr[:-1]))\n" " except ValueError:\n" " raise ProtocolError('Non-numeric len %r' % hdr[:-1], hdr[:-1])\n" " parts = []\n" " received = 0\n" " while received < length:\n" - " parts.append(sys.stdin.read(length - received))\n" + " parts.append(sys.stdin.buffer.read(length - received))\n" " received += len(parts[-1])\n" - " data = ''.join(parts)\n" + " data = b''.join(parts)\n" " assert len(data) == length\n" " try:\n" - " return llsd.parse(data.encode())\n" + " return llsd.parse(data)\n" // Seems the old indra.base.llsd module didn't properly // convert IndexError (from running off end of string) to // LLSDParseError. @@ -179,11 +184,11 @@ namespace tut " return _reply\n" "\n" "def put(req):\n" - " sys.stdout.write(':'.join((str(len(req)), req)))\n" + " sys.stdout.buffer.write(b'%d:%b' % (len(req), req))\n" " sys.stdout.flush()\n" "\n" "def send(pump, data):\n" - " put(llsd.format_notation(dict(pump=pump, data=data)).decode())\n" + " put(llsd.format_notation(dict(pump=pump, data=data)))\n" "\n" "def request(pump, data):\n" " # we expect 'data' is a dict\n" diff --git a/indra/llcommon/tests/llsdserialize_test.cpp b/indra/llcommon/tests/llsdserialize_test.cpp index c246f5ee56..acb2953b5b 100644 --- a/indra/llcommon/tests/llsdserialize_test.cpp +++ b/indra/llcommon/tests/llsdserialize_test.cpp @@ -46,20 +46,24 @@ typedef U32 uint32_t; #include "boost/range.hpp" #include "boost/foreach.hpp" -#include "boost/function.hpp" #include "boost/bind.hpp" #include "boost/phoenix/bind/bind_function.hpp" #include "boost/phoenix/core/argument.hpp" using namespace boost::phoenix; -#include "../llsd.h" -#include "../llsdserialize.h" +#include "llsd.h" +#include "llsdserialize.h" #include "llsdutil.h" -#include "../llformat.h" +#include "llformat.h" +#include "llmemorystream.h" #include "../test/lltut.h" #include "../test/namedtempfile.h" #include "stringize.h" +#include <functional> + +typedef std::function<void(const LLSD& data, std::ostream& str)> FormatterFunction; +typedef std::function<bool(std::istream& istr, LLSD& data, llssize max_bytes)> ParserFunction; std::vector<U8> string_to_vector(const std::string& str) { @@ -112,7 +116,7 @@ namespace tut mSD = LLUUID::null; expected = "<llsd><uuid /></llsd>\n"; xml_test("null uuid", expected); - + mSD = LLUUID("c96f9b1e-f589-4100-9774-d98643ce0bed"); expected = "<llsd><uuid>c96f9b1e-f589-4100-9774-d98643ce0bed</uuid></llsd>\n"; xml_test("uuid", expected); @@ -136,7 +140,7 @@ namespace tut expected = "<llsd><binary encoding=\"base64\">aGVsbG8=</binary></llsd>\n"; xml_test("binary", expected); } - + template<> template<> void sd_xml_object::test<2>() { @@ -225,7 +229,7 @@ namespace tut expected = "<llsd><map><key>baz</key><undef /><key>foo</key><string>bar</string></map></llsd>\n"; xml_test("2 element map", expected); } - + template<> template<> void sd_xml_object::test<6>() { @@ -241,7 +245,7 @@ namespace tut expected = "<llsd><binary encoding=\"base64\">Nnw2fGFzZGZoYXBweWJveHw2MGU0NGVjNS0zMDVjLTQzYzItOWExOS1iNGI4OWIxYWUyYTZ8NjBlNDRlYzUtMzA1Yy00M2MyLTlhMTktYjRiODliMWFlMmE2fDYwZTQ0ZWM1LTMwNWMtNDNjMi05YTE5LWI0Yjg5YjFhZTJhNnwwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDB8N2ZmZmZmZmZ8N2ZmZmZmZmZ8MHwwfDgyMDAwfDQ1MGZlMzk0LTI5MDQtYzlhZC0yMTRjLWEwN2ViN2ZlZWMyOXwoTm8gRGVzY3JpcHRpb24pfDB8MTB8MA==</binary></llsd>\n"; xml_test("binary", expected); } - + class TestLLSDSerializeData { public: @@ -250,9 +254,34 @@ namespace tut void doRoundTripTests(const std::string&); void checkRoundTrip(const std::string&, const LLSD& v); - - LLPointer<LLSDFormatter> mFormatter; - LLPointer<LLSDParser> mParser; + + void setFormatterParser(LLPointer<LLSDFormatter> formatter, LLPointer<LLSDParser> parser) + { + mFormatter = [formatter](const LLSD& data, std::ostream& str) + { + formatter->format(data, str); + }; + // this lambda must be mutable since otherwise the bound 'parser' + // is assumed to point to a const LLSDParser + mParser = [parser](std::istream& istr, LLSD& data, llssize max_bytes) mutable + { + // reset() call is needed since test code re-uses parser object + parser->reset(); + return (parser->parse(istr, data, max_bytes) > 0); + }; + } + + void setParser(bool (*parser)(LLSD&, std::istream&, llssize)) + { + // why does LLSDSerialize::deserialize() reverse the parse() params?? + mParser = [parser](std::istream& istr, LLSD& data, llssize max_bytes) + { + return parser(data, istr, max_bytes); + }; + } + + FormatterFunction mFormatter; + ParserFunction mParser; }; TestLLSDSerializeData::TestLLSDSerializeData() @@ -265,12 +294,11 @@ namespace tut void TestLLSDSerializeData::checkRoundTrip(const std::string& msg, const LLSD& v) { - std::stringstream stream; - mFormatter->format(v, stream); + std::stringstream stream; + mFormatter(v, stream); //LL_INFOS() << "checkRoundTrip: length " << stream.str().length() << LL_ENDL; LLSD w; - mParser->reset(); // reset() call is needed since test code re-uses mParser - mParser->parse(stream, w, stream.str().size()); + mParser(stream, w, stream.str().size()); try { @@ -299,52 +327,52 @@ namespace tut fillmap(root[key], width, depth - 1); } } - + void TestLLSDSerializeData::doRoundTripTests(const std::string& msg) { LLSD v; checkRoundTrip(msg + " undefined", v); - + v = true; checkRoundTrip(msg + " true bool", v); - + v = false; checkRoundTrip(msg + " false bool", v); - + v = 1; checkRoundTrip(msg + " positive int", v); - + v = 0; checkRoundTrip(msg + " zero int", v); - + v = -1; checkRoundTrip(msg + " negative int", v); - + v = 1234.5f; checkRoundTrip(msg + " positive float", v); - + v = 0.0f; checkRoundTrip(msg + " zero float", v); - + v = -1234.5f; checkRoundTrip(msg + " negative float", v); - + // FIXME: need a NaN test - + v = LLUUID::null; checkRoundTrip(msg + " null uuid", v); - + LLUUID newUUID; newUUID.generate(); v = newUUID; checkRoundTrip(msg + " new uuid", v); - + v = ""; checkRoundTrip(msg + " empty string", v); - + v = "some string"; checkRoundTrip(msg + " non-empty string", v); - + v = "Second Life is a 3-D virtual world entirely built and owned by its residents. " "Since opening to the public in 2003, it has grown explosively and today is " @@ -372,7 +400,7 @@ namespace tut for (U32 block = 0x000000; block <= 0x10ffff; block += block_size) { std::ostringstream out; - + for (U32 c = block; c < block + block_size; ++c) { if (c <= 0x000001f @@ -386,7 +414,7 @@ namespace tut if (0x00fdd0 <= c && c <= 0x00fdef) { continue; } if ((c & 0x00fffe) == 0x00fffe) { continue; } // see Unicode standard, section 15.8 - + if (c <= 0x00007f) { out << (char)(c & 0x7f); @@ -410,55 +438,55 @@ namespace tut out << (char)(0x80 | ((c >> 0) & 0x3f)); } } - + v = out.str(); std::ostringstream blockmsg; blockmsg << msg << " unicode string block 0x" << std::hex << block; checkRoundTrip(blockmsg.str(), v); } - + LLDate epoch; v = epoch; checkRoundTrip(msg + " epoch date", v); - + LLDate aDay("2002-12-07T05:07:15.00Z"); v = aDay; checkRoundTrip(msg + " date", v); - + LLURI path("http://slurl.com/secondlife/Ambleside/57/104/26/"); v = path; checkRoundTrip(msg + " url", v); - + const char source[] = "it must be a blue moon again"; std::vector<U8> data; // note, includes terminating '\0' copy(&source[0], &source[sizeof(source)], back_inserter(data)); - + v = data; checkRoundTrip(msg + " binary", v); - + v = LLSD::emptyMap(); checkRoundTrip(msg + " empty map", v); - + v = LLSD::emptyMap(); v["name"] = "luke"; //v.insert("name", "luke"); v["age"] = 3; //v.insert("age", 3); checkRoundTrip(msg + " map", v); - + v.clear(); v["a"]["1"] = true; v["b"]["0"] = false; checkRoundTrip(msg + " nested maps", v); - + v = LLSD::emptyArray(); checkRoundTrip(msg + " empty array", v); - + v = LLSD::emptyArray(); v.append("ali"); v.append(28); checkRoundTrip(msg + " array", v); - + v.clear(); v[0][0] = true; v[1][0] = false; @@ -468,7 +496,7 @@ namespace tut fillmap(v, 10, 3); // 10^6 maps checkRoundTrip(msg + " many nested maps", v); } - + typedef tut::test_group<TestLLSDSerializeData> TestLLSDSerializeGroup; typedef TestLLSDSerializeGroup::object TestLLSDSerializeObject; TestLLSDSerializeGroup gTestLLSDSerializeGroup("llsd serialization"); @@ -476,35 +504,106 @@ namespace tut template<> template<> void TestLLSDSerializeObject::test<1>() { - mFormatter = new LLSDNotationFormatter(false, "", LLSDFormatter::OPTIONS_PRETTY_BINARY); - mParser = new LLSDNotationParser(); + setFormatterParser(new LLSDNotationFormatter(false, "", LLSDFormatter::OPTIONS_PRETTY_BINARY), + new LLSDNotationParser()); doRoundTripTests("pretty binary notation serialization"); } template<> template<> void TestLLSDSerializeObject::test<2>() { - mFormatter = new LLSDNotationFormatter(false, "", LLSDFormatter::OPTIONS_NONE); - mParser = new LLSDNotationParser(); + setFormatterParser(new LLSDNotationFormatter(false, "", LLSDFormatter::OPTIONS_NONE), + new LLSDNotationParser()); doRoundTripTests("raw binary notation serialization"); } template<> template<> void TestLLSDSerializeObject::test<3>() { - mFormatter = new LLSDXMLFormatter(); - mParser = new LLSDXMLParser(); + setFormatterParser(new LLSDXMLFormatter(), new LLSDXMLParser()); doRoundTripTests("xml serialization"); } template<> template<> void TestLLSDSerializeObject::test<4>() { - mFormatter = new LLSDBinaryFormatter(); - mParser = new LLSDBinaryParser(); + setFormatterParser(new LLSDBinaryFormatter(), new LLSDBinaryParser()); doRoundTripTests("binary serialization"); } + template<> template<> + void TestLLSDSerializeObject::test<5>() + { + mFormatter = [](const LLSD& sd, std::ostream& str) + { + LLSDSerialize::serialize(sd, str, LLSDSerialize::LLSD_BINARY); + }; + setParser(LLSDSerialize::deserialize); + doRoundTripTests("serialize(LLSD_BINARY)"); + }; + + template<> template<> + void TestLLSDSerializeObject::test<6>() + { + mFormatter = [](const LLSD& sd, std::ostream& str) + { + LLSDSerialize::serialize(sd, str, LLSDSerialize::LLSD_XML); + }; + setParser(LLSDSerialize::deserialize); + doRoundTripTests("serialize(LLSD_XML)"); + }; + + template<> template<> + void TestLLSDSerializeObject::test<7>() + { + mFormatter = [](const LLSD& sd, std::ostream& str) + { + LLSDSerialize::serialize(sd, str, LLSDSerialize::LLSD_NOTATION); + }; + setParser(LLSDSerialize::deserialize); + // In this test, serialize(LLSD_NOTATION) emits a header recognized by + // deserialize(). + doRoundTripTests("serialize(LLSD_NOTATION)"); + }; + + template<> template<> + void TestLLSDSerializeObject::test<8>() + { + setFormatterParser(new LLSDNotationFormatter(false, "", LLSDFormatter::OPTIONS_NONE), + new LLSDNotationParser()); + setParser(LLSDSerialize::deserialize); + // This is an interesting test because LLSDNotationFormatter does not + // emit an llsd/notation header. + doRoundTripTests("LLSDNotationFormatter -> deserialize"); + }; + + template<> template<> + void TestLLSDSerializeObject::test<9>() + { + setFormatterParser(new LLSDXMLFormatter(false, "", LLSDFormatter::OPTIONS_NONE), + new LLSDXMLParser()); + setParser(LLSDSerialize::deserialize); + // This is an interesting test because LLSDXMLFormatter does not + // emit an LLSD/XML header. + doRoundTripTests("LLSDXMLFormatter -> deserialize"); + }; + +/*==========================================================================*| + // We do not expect this test to succeed. Without a header, neither + // notation LLSD nor binary LLSD reliably start with a distinct character, + // the way XML LLSD starts with '<'. By convention, we default to notation + // rather than binary. + template<> template<> + void TestLLSDSerializeObject::test<10>() + { + setFormatterParser(new LLSDBinaryFormatter(false, "", LLSDFormatter::OPTIONS_NONE), + new LLSDBinaryParser()); + setParser(LLSDSerialize::deserialize); + // This is an interesting test because LLSDBinaryFormatter does not + // emit an LLSD/Binary header. + doRoundTripTests("LLSDBinaryFormatter -> deserialize"); + }; +|*==========================================================================*/ /** * @class TestLLSDParsing @@ -555,7 +654,7 @@ namespace tut public: TestLLSDXMLParsing() {} }; - + typedef tut::test_group<TestLLSDXMLParsing> TestLLSDXMLParsingGroup; typedef TestLLSDXMLParsingGroup::object TestLLSDXMLParsingObject; TestLLSDXMLParsingGroup gTestLLSDXMLParsingGroup("llsd XML parsing"); @@ -586,8 +685,8 @@ namespace tut LLSD(), LLSDParser::PARSE_FAILURE); } - - + + template<> template<> void TestLLSDXMLParsingObject::test<2>() { @@ -596,7 +695,7 @@ namespace tut v["amy"] = 23; v["bob"] = LLSD(); v["cam"] = 1.23; - + ensureParse( "unknown data type", "<llsd><map>" @@ -607,16 +706,16 @@ namespace tut v, v.size() + 1); } - + template<> template<> void TestLLSDXMLParsingObject::test<3>() { // test handling of nested bad data - + LLSD v; v["amy"] = 23; v["cam"] = 1.23; - + ensureParse( "map with html", "<llsd><map>" @@ -626,7 +725,7 @@ namespace tut "</map></llsd>", v, v.size() + 1); - + v.clear(); v["amy"] = 23; v["cam"] = 1.23; @@ -639,7 +738,7 @@ namespace tut "</map></llsd>", v, v.size() + 1); - + v.clear(); v["amy"] = 23; v["bob"] = LLSD::emptyMap(); @@ -661,7 +760,7 @@ namespace tut v[0] = 23; v[1] = LLSD(); v[2] = 1.23; - + ensureParse( "array value of html", "<llsd><array>" @@ -671,7 +770,7 @@ namespace tut "</array></llsd>", v, v.size() + 1); - + v.clear(); v[0] = 23; v[1] = LLSD::emptyMap(); @@ -1225,7 +1324,7 @@ namespace tut vec[0] = 'a'; vec[1] = 'b'; vec[2] = 'c'; vec[3] = '3'; vec[4] = '2'; vec[5] = '1'; LLSD value = vec; - + vec.resize(11); vec[0] = 'b'; // for binary vec[5] = 'a'; vec[6] = 'b'; vec[7] = 'c'; @@ -1694,85 +1793,83 @@ namespace tut ensureBinaryAndXML("map", test); } - struct TestPythonCompatible + // helper for TestPythonCompatible + static std::string import_llsd("import os.path\n" + "import sys\n" + "try:\n" + // new freestanding llsd package + " import llsd\n" + "except ImportError:\n" + // older llbase.llsd module + " from llbase import llsd\n"); + + // helper for TestPythonCompatible + template <typename CONTENT> + void python(const std::string& desc, const CONTENT& script, int expect=0) { - TestPythonCompatible(): - // Note the peculiar insertion of __FILE__ into this string. Since - // this script is being written into a platform-dependent temp - // directory, we can't locate indra/lib/python relative to - // Python's __file__. Use __FILE__ instead, navigating relative - // to this C++ source file. Use Python raw-string syntax so - // Windows pathname backslashes won't mislead Python's string - // scanner. - import_llsd("import os.path\n" - "import sys\n" - "from llbase import llsd\n") - {} - ~TestPythonCompatible() {} + auto PYTHON(LLStringUtil::getenv("PYTHON")); + ensure("Set $PYTHON to the Python interpreter", !PYTHON.empty()); - std::string import_llsd; + NamedTempFile scriptfile("py", script); - template <typename CONTENT> - void python(const std::string& desc, const CONTENT& script, int expect=0) +#if LL_WINDOWS + std::string q("\""); + std::string qPYTHON(q + PYTHON + q); + std::string qscript(q + scriptfile.getName() + q); + int rc = _spawnl(_P_WAIT, PYTHON.c_str(), qPYTHON.c_str(), qscript.c_str(), NULL); + if (rc == -1) { - auto PYTHON(LLStringUtil::getenv("PYTHON")); - ensure("Set $PYTHON to the Python interpreter", !PYTHON.empty()); - - NamedTempFile scriptfile("py", script); + char buffer[256]; + strerror_s(buffer, errno); // C++ can infer the buffer size! :-O + ensure(STRINGIZE("Couldn't run Python " << desc << "script: " << buffer), false); + } + else + { + ensure_equals(STRINGIZE(desc << " script terminated with rc " << rc), rc, expect); + } -#if LL_WINDOWS - std::string q("\""); - std::string qPYTHON(q + PYTHON + q); - std::string qscript(q + scriptfile.getName() + q); - int rc = _spawnl(_P_WAIT, PYTHON.c_str(), qPYTHON.c_str(), qscript.c_str(), NULL); - if (rc == -1) - { - char buffer[256]; - strerror_s(buffer, errno); // C++ can infer the buffer size! :-O - ensure(STRINGIZE("Couldn't run Python " << desc << "script: " << buffer), false); - } - else +#else // LL_DARWIN, LL_LINUX + LLProcess::Params params; + params.executable = PYTHON; + params.args.add(scriptfile.getName()); + LLProcessPtr py(LLProcess::create(params)); + ensure(STRINGIZE("Couldn't launch " << desc << " script"), bool(py)); + // Implementing timeout would mean messing with alarm() and + // catching SIGALRM... later maybe... + int status(0); + if (waitpid(py->getProcessID(), &status, 0) == -1) + { + int waitpid_errno(errno); + ensure_equals(STRINGIZE("Couldn't retrieve rc from " << desc << " script: " + "waitpid() errno " << waitpid_errno), + waitpid_errno, ECHILD); + } + else + { + if (WIFEXITED(status)) { - ensure_equals(STRINGIZE(desc << " script terminated with rc " << rc), rc, expect); + int rc(WEXITSTATUS(status)); + ensure_equals(STRINGIZE(desc << " script terminated with rc " << rc), + rc, expect); } - -#else // LL_DARWIN, LL_LINUX - LLProcess::Params params; - params.executable = PYTHON; - params.args.add(scriptfile.getName()); - LLProcessPtr py(LLProcess::create(params)); - ensure(STRINGIZE("Couldn't launch " << desc << " script"), bool(py)); - // Implementing timeout would mean messing with alarm() and - // catching SIGALRM... later maybe... - int status(0); - if (waitpid(py->getProcessID(), &status, 0) == -1) + else if (WIFSIGNALED(status)) { - int waitpid_errno(errno); - ensure_equals(STRINGIZE("Couldn't retrieve rc from " << desc << " script: " - "waitpid() errno " << waitpid_errno), - waitpid_errno, ECHILD); + ensure(STRINGIZE(desc << " script terminated by signal " << WTERMSIG(status)), + false); } else { - if (WIFEXITED(status)) - { - int rc(WEXITSTATUS(status)); - ensure_equals(STRINGIZE(desc << " script terminated with rc " << rc), - rc, expect); - } - else if (WIFSIGNALED(status)) - { - ensure(STRINGIZE(desc << " script terminated by signal " << WTERMSIG(status)), - false); - } - else - { - ensure(STRINGIZE(desc << " script produced impossible status " << status), - false); - } + ensure(STRINGIZE(desc << " script produced impossible status " << status), + false); } -#endif } +#endif + } + + struct TestPythonCompatible + { + TestPythonCompatible() {} + ~TestPythonCompatible() {} }; typedef tut::test_group<TestPythonCompatible> TestPythonCompatibleGroup; @@ -1798,29 +1895,37 @@ namespace tut "print('Running on', sys.platform)\n"); } - // helper for test<3> - static void writeLLSDArray(std::ostream& out, const LLSD& array) + // helper for test<3> - test<7> + static void writeLLSDArray(const FormatterFunction& serialize, + std::ostream& out, const LLSD& array) { - BOOST_FOREACH(LLSD item, llsd::inArray(array)) + for (const LLSD& item : llsd::inArray(array)) { - LLSDSerialize::toNotation(item, out); - // It's important to separate with newlines because Python's llsd - // module doesn't support parsing from a file stream, only from a - // string, so we have to know how much of the file to read into a - // string. - out << '\n'; + // It's important to delimit the entries in this file somehow + // because, although Python's llsd.parse() can accept a file + // stream, the XML parser expects EOF after a single outer element + // -- it doesn't just stop. So we must extract a sequence of bytes + // strings from the file. But since one of the serialization + // formats we want to test is binary, we can't pick any single + // byte value as a delimiter! Use a binary integer length prefix + // instead. + std::ostringstream buffer; + serialize(item, buffer); + auto buffstr{ buffer.str() }; + int bufflen{ static_cast<int>(buffstr.length()) }; + out.write(reinterpret_cast<const char*>(&bufflen), sizeof(bufflen)); + out.write(buffstr.c_str(), buffstr.length()); } } - template<> template<> - void TestPythonCompatibleObject::test<3>() + // helper for test<3> - test<7> + static void toPythonUsing(const std::string& desc, + const FormatterFunction& serialize) { - set_test_name("verify sequence to Python"); - - LLSD cdata(LLSDArray(17)(3.14) - ("This string\n" - "has several\n" - "lines.")); + LLSD cdata(llsd::array(17, 3.14, + "This string\n" + "has several\n" + "lines.")); const char pydata[] = "def verify(iterable):\n" @@ -1836,7 +1941,7 @@ namespace tut " except StopIteration:\n" " pass\n" " else:\n" - " assert False, 'Too many data items'\n"; + " raise AssertionError('Too many data items')\n"; // Create an llsdXXXXXX file containing 'data' serialized to // notation. @@ -1845,32 +1950,128 @@ namespace tut // takes a callable. To this callable it passes the // std::ostream with which it's writing the // NamedTempFile. - boost::bind(writeLLSDArray, _1, cdata)); + [serialize, cdata] + (std::ostream& out) + { writeLLSDArray(serialize, out, cdata); }); - python("read C++ notation", + python("read C++ " + desc, placeholders::arg1 << import_llsd << - "def parse_each(iterable):\n" - " for item in iterable:\n" - " yield llsd.parse(item)\n" << - pydata << + "from functools import partial\n" + "import io\n" + "import struct\n" + "lenformat = struct.Struct('i')\n" + "def parse_each(inf):\n" + " for rawlen in iter(partial(inf.read, lenformat.size), b''):\n" + " len = lenformat.unpack(rawlen)[0]\n" + // Since llsd.parse() has no max_bytes argument, instead of + // passing the input stream directly to parse(), read the item + // into a distinct bytes object and parse that. + " data = inf.read(len)\n" + " try:\n" + " frombytes = llsd.parse(data)\n" + " except llsd.LLSDParseError as err:\n" + " print(f'*** {err}')\n" + " print(f'Bad content:\\n{data!r}')\n" + " raise\n" + // Also try parsing from a distinct stream. + " stream = io.BytesIO(data)\n" + " fromstream = llsd.parse(stream)\n" + " assert frombytes == fromstream\n" + " yield frombytes\n" + << pydata << // Don't forget raw-string syntax for Windows pathnames. "verify(parse_each(open(r'" << file.getName() << "', 'rb')))\n"); } template<> template<> + void TestPythonCompatibleObject::test<3>() + { + set_test_name("to Python using LLSDSerialize::serialize(LLSD_XML)"); + toPythonUsing("LLSD_XML", + [](const LLSD& sd, std::ostream& out) + { LLSDSerialize::serialize(sd, out, LLSDSerialize::LLSD_XML); }); + } + + template<> template<> void TestPythonCompatibleObject::test<4>() { - set_test_name("verify sequence from Python"); + set_test_name("to Python using LLSDSerialize::serialize(LLSD_NOTATION)"); + toPythonUsing("LLSD_NOTATION", + [](const LLSD& sd, std::ostream& out) + { LLSDSerialize::serialize(sd, out, LLSDSerialize::LLSD_NOTATION); }); + } + + template<> template<> + void TestPythonCompatibleObject::test<5>() + { + set_test_name("to Python using LLSDSerialize::serialize(LLSD_BINARY)"); + toPythonUsing("LLSD_BINARY", + [](const LLSD& sd, std::ostream& out) + { LLSDSerialize::serialize(sd, out, LLSDSerialize::LLSD_BINARY); }); + } + + template<> template<> + void TestPythonCompatibleObject::test<6>() + { + set_test_name("to Python using LLSDSerialize::toXML()"); + toPythonUsing("toXML()", LLSDSerialize::toXML); + } + + template<> template<> + void TestPythonCompatibleObject::test<7>() + { + set_test_name("to Python using LLSDSerialize::toNotation()"); + toPythonUsing("toNotation()", LLSDSerialize::toNotation); + } +/*==========================================================================*| + template<> template<> + void TestPythonCompatibleObject::test<8>() + { + set_test_name("to Python using LLSDSerialize::toBinary()"); + // We don't expect this to work because, without a header, + // llsd.parse() will assume notation rather than binary. + toPythonUsing("toBinary()", LLSDSerialize::toBinary); + } +|*==========================================================================*/ + + // helper for test<8> - test<12> + bool itemFromStream(std::istream& istr, LLSD& item, const ParserFunction& parse) + { + // reset the output value for debugging clarity + item.clear(); + // We use an int length prefix as a foolproof delimiter even for + // binary serialized streams. + int length{ 0 }; + istr.read(reinterpret_cast<char*>(&length), sizeof(length)); +// return parse(istr, item, length); + // Sadly, as of 2022-12-01 it seems we can't really trust our LLSD + // parsers to honor max_bytes: this test works better when we read + // each item into its own distinct LLMemoryStream, instead of passing + // the original istr with a max_bytes constraint. + std::vector<U8> buffer(length); + istr.read(reinterpret_cast<char*>(buffer.data()), length); + LLMemoryStream stream(buffer.data(), length); + return parse(stream, item, length); + } + + // helper for test<8> - test<12> + void fromPythonUsing(const std::string& pyformatter, + const ParserFunction& parse= + [](std::istream& istr, LLSD& data, llssize max_bytes) + { return LLSDSerialize::deserialize(data, istr, max_bytes); }) + { // Create an empty data file. This is just a placeholder for our // script to write into. Create it to establish a unique name that // we know. NamedTempFile file("llsd", ""); - python("write Python notation", + python("Python " + pyformatter, placeholders::arg1 << import_llsd << + "import struct\n" + "lenformat = struct.Struct('i')\n" "DATA = [\n" " 17,\n" " 3.14,\n" @@ -1881,34 +2082,87 @@ namespace tut "]\n" // Don't forget raw-string syntax for Windows pathnames. // N.B. Using 'print' implicitly adds newlines. - "with open(r'" << file.getName() << "', 'w') as f:\n" + "with open(r'" << file.getName() << "', 'wb') as f:\n" " for item in DATA:\n" - " print(llsd.format_notation(item).decode(), file=f)\n"); + " serialized = llsd." << pyformatter << "(item)\n" + " f.write(lenformat.pack(len(serialized)))\n" + " f.write(serialized)\n"); std::ifstream inf(file.getName().c_str()); LLSD item; - // Notice that we're not doing anything special to parse out the - // newlines: LLSDSerialize::fromNotation ignores them. While it would - // seem they're not strictly necessary, going in this direction, we - // want to ensure that notation-separated-by-newlines works in both - // directions -- since in practice, a given file might be read by - // either language. - ensure_equals("Failed to read LLSD::Integer from Python", - LLSDSerialize::fromNotation(item, inf, LLSDSerialize::SIZE_UNLIMITED), - 1); - ensure_equals(item.asInteger(), 17); - ensure_equals("Failed to read LLSD::Real from Python", - LLSDSerialize::fromNotation(item, inf, LLSDSerialize::SIZE_UNLIMITED), - 1); - ensure_approximately_equals("Bad LLSD::Real value from Python", - item.asReal(), 3.14, 7); // 7 bits ~= 0.01 - ensure_equals("Failed to read LLSD::String from Python", - LLSDSerialize::fromNotation(item, inf, LLSDSerialize::SIZE_UNLIMITED), - 1); - ensure_equals(item.asString(), - "This string\n" - "has several\n" - "lines."); - + try + { + ensure("Failed to read LLSD::Integer from Python", + itemFromStream(inf, item, parse)); + ensure_equals(item.asInteger(), 17); + ensure("Failed to read LLSD::Real from Python", + itemFromStream(inf, item, parse)); + ensure_approximately_equals("Bad LLSD::Real value from Python", + item.asReal(), 3.14, 7); // 7 bits ~= 0.01 + ensure("Failed to read LLSD::String from Python", + itemFromStream(inf, item, parse)); + ensure_equals(item.asString(), + "This string\n" + "has several\n" + "lines."); + } + catch (const tut::failure& err) + { + std::cout << "for " << err.what() << ", item = " << item << std::endl; + throw; + } + } + + template<> template<> + void TestPythonCompatibleObject::test<8>() + { + set_test_name("from Python XML using LLSDSerialize::deserialize()"); + fromPythonUsing("format_xml"); + } + + template<> template<> + void TestPythonCompatibleObject::test<9>() + { + set_test_name("from Python notation using LLSDSerialize::deserialize()"); + fromPythonUsing("format_notation"); + } + + template<> template<> + void TestPythonCompatibleObject::test<10>() + { + set_test_name("from Python binary using LLSDSerialize::deserialize()"); + fromPythonUsing("format_binary"); + } + + template<> template<> + void TestPythonCompatibleObject::test<11>() + { + set_test_name("from Python XML using fromXML()"); + // fromXML()'s optional 3rd param isn't max_bytes, it's emit_errors + fromPythonUsing("format_xml", + [](std::istream& istr, LLSD& data, llssize) + { return LLSDSerialize::fromXML(data, istr) > 0; }); + } + + template<> template<> + void TestPythonCompatibleObject::test<12>() + { + set_test_name("from Python notation using fromNotation()"); + fromPythonUsing("format_notation", + [](std::istream& istr, LLSD& data, llssize max_bytes) + { return LLSDSerialize::fromNotation(data, istr, max_bytes) > 0; }); + } + +/*==========================================================================*| + template<> template<> + void TestPythonCompatibleObject::test<13>() + { + set_test_name("from Python binary using fromBinary()"); + // We don't expect this to work because format_binary() emits a + // header, but fromBinary() won't recognize a header. + fromPythonUsing("format_binary", + [](std::istream& istr, LLSD& data, llssize max_bytes) + { return LLSDSerialize::fromBinary(data, istr, max_bytes) > 0; }); } +|*==========================================================================*/ } diff --git a/indra/llcommon/threadsafeschedule.h b/indra/llcommon/threadsafeschedule.h index 0c3a541196..92bc7da940 100644 --- a/indra/llcommon/threadsafeschedule.h +++ b/indra/llcommon/threadsafeschedule.h @@ -82,7 +82,7 @@ namespace LL using TimePoint = ThreadSafeSchedulePrivate::TimePoint; using Clock = TimePoint::clock; - ThreadSafeSchedule(U32 capacity=1024): + ThreadSafeSchedule(size_t capacity=1024): super(capacity) {} diff --git a/indra/llcorehttp/bufferarray.cpp b/indra/llcorehttp/bufferarray.cpp index e0b2876a00..8d2e7c6a63 100644 --- a/indra/llcorehttp/bufferarray.cpp +++ b/indra/llcorehttp/bufferarray.cpp @@ -196,7 +196,7 @@ size_t BufferArray::read(size_t pos, void * dst, size_t len) return 0; size_t result(0), offset(0); - const int block_limit(mBlocks.size()); + const auto block_limit(mBlocks.size()); int block_start(findBlock(pos, &offset)); if (block_start < 0) return 0; @@ -228,7 +228,7 @@ size_t BufferArray::write(size_t pos, const void * src, size_t len) return 0; size_t result(0), offset(0); - const int block_limit(mBlocks.size()); + const auto block_limit(mBlocks.size()); int block_start(findBlock(pos, &offset)); if (block_start >= 0) @@ -288,7 +288,7 @@ int BufferArray::findBlock(size_t pos, size_t * ret_offset) if (pos >= mLen) return -1; // Doesn't exist - const int block_limit(mBlocks.size()); + const int block_limit(narrow(mBlocks.size())); for (int i(0); i < block_limit; ++i) { if (pos < mBlocks[i]->mUsed) diff --git a/indra/llimage/llimageworker.cpp b/indra/llimage/llimageworker.cpp index 0dbb744bcf..ff4336d2de 100644 --- a/indra/llimage/llimageworker.cpp +++ b/indra/llimage/llimageworker.cpp @@ -46,7 +46,7 @@ LLImageDecodeThread::~LLImageDecodeThread() // MAIN THREAD // virtual -S32 LLImageDecodeThread::update(F32 max_time_ms) +size_t LLImageDecodeThread::update(F32 max_time_ms) { LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE; LLMutexLock lock(mCreationMutex); diff --git a/indra/llimage/llimageworker.h b/indra/llimage/llimageworker.h index 1bfb0ddfd3..54814c24c5 100644 --- a/indra/llimage/llimageworker.h +++ b/indra/llimage/llimageworker.h @@ -78,7 +78,7 @@ public: handle_t decodeImage(LLImageFormatted* image, U32 priority, S32 discard, BOOL needs_aux, Responder* responder); - S32 update(F32 max_time_ms); + size_t update(F32 max_time_ms); // Used by unit tests to check the consistency of the thread instance S32 tut_size(); diff --git a/indra/llinventory/llsettingsdaycycle.cpp b/indra/llinventory/llsettingsdaycycle.cpp index 241826604f..42dd5e3d10 100644 --- a/indra/llinventory/llsettingsdaycycle.cpp +++ b/indra/llinventory/llsettingsdaycycle.cpp @@ -440,8 +440,8 @@ LLSD LLSettingsDay::defaults() } LLSD tracks; - tracks.append(LLSDArray(waterTrack)); - tracks.append(LLSDArray(skyTrack)); + tracks.append(llsd::array(waterTrack)); + tracks.append(llsd::array(skyTrack)); dfltsetting[SETTING_TRACKS] = tracks; dfltsetting[SETTING_FRAMES] = frames; diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp index 83a92f08d0..a129f0a6f0 100644 --- a/indra/llinventory/llsettingssky.cpp +++ b/indra/llinventory/llsettingssky.cpp @@ -152,24 +152,24 @@ LLSettingsSky::validation_list_t legacyHazeValidationList() { legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_AMBIENT, false, LLSD::TypeArray, boost::bind(&LLSettingsBase::Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), - LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*"))))); + llsd::array(0.0f, 0.0f, 0.0f, "*"), + llsd::array(3.0f, 3.0f, 3.0f, "*")))); legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_BLUE_DENSITY, false, LLSD::TypeArray, boost::bind(&LLSettingsBase::Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), - LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*"))))); + llsd::array(0.0f, 0.0f, 0.0f, "*"), + llsd::array(3.0f, 3.0f, 3.0f, "*")))); legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_BLUE_HORIZON, false, LLSD::TypeArray, boost::bind(&LLSettingsBase::Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), - LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*"))))); + llsd::array(0.0f, 0.0f, 0.0f, "*"), + llsd::array(3.0f, 3.0f, 3.0f, "*")))); legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_HAZE_DENSITY, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(5.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 5.0f)))); legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_HAZE_HORIZON, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(5.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 5.0f)))); legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_MULTIPLIER, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0001f)(2.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0001f, 2.0f)))); legacyHazeValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DISTANCE_MULTIPLIER, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0001f)(1000.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0001f, 1000.0f)))); } return legacyHazeValidation; } @@ -180,19 +180,19 @@ LLSettingsSky::validation_list_t rayleighValidationList() if (rayleighValidation.empty()) { rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(32768.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 32768.0f)))); rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f)))); rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-1.0f)(1.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(-1.0f, 1.0f)))); rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f)))); rayleighValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); } return rayleighValidation; } @@ -203,19 +203,19 @@ LLSettingsSky::validation_list_t absorptionValidationList() if (absorptionValidation.empty()) { absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(32768.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 32768.0f)))); absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f)))); absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-1.0f)(1.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(-1.0f, 1.0f)))); absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f)))); absorptionValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); } return absorptionValidation; } @@ -226,22 +226,22 @@ LLSettingsSky::validation_list_t mieValidationList() if (mieValidation.empty()) { mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(32768.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 32768.0f)))); mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f)))); mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-1.0f)(1.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(-1.0f, 1.0f)))); mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(2.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 2.0f)))); mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); mieValidation.push_back(LLSettingsBase::Validator(LLSettingsSky::SETTING_MIE_ANISOTROPY_FACTOR, false, LLSD::TypeReal, - boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&LLSettingsBase::Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); } return mieValidation; } @@ -546,89 +546,86 @@ LLSettingsSky::validation_list_t LLSettingsSky::validationList() static validation_list_t validation; if (validation.empty()) - { // Note the use of LLSD(LLSDArray()()()...) This is due to an issue with the - // copy constructor for LLSDArray. Directly binding the LLSDArray as - // a parameter without first wrapping it in a pure LLSD object will result - // in deeply nested arrays like this [[[[[[[[[[v1,v2,v3]]]]]]]]]] + { validation.push_back(Validator(SETTING_BLOOM_TEXTUREID, true, LLSD::TypeUUID)); validation.push_back(Validator(SETTING_RAINBOW_TEXTUREID, false, LLSD::TypeUUID)); validation.push_back(Validator(SETTING_HALO_TEXTUREID, false, LLSD::TypeUUID)); validation.push_back(Validator(SETTING_CLOUD_COLOR, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), - LLSD(LLSDArray(1.0f)(1.0f)(1.0f)("*"))))); + llsd::array(0.0f, 0.0f, 0.0f, "*"), + llsd::array(1.0f, 1.0f, 1.0f, "*")))); validation.push_back(Validator(SETTING_CLOUD_POS_DENSITY1, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), - LLSD(LLSDArray(1.0f)(1.0f)(3.0f)("*"))))); + llsd::array(0.0f, 0.0f, 0.0f, "*"), + llsd::array(1.0f, 1.0f, 3.0f, "*")))); validation.push_back(Validator(SETTING_CLOUD_POS_DENSITY2, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), - LLSD(LLSDArray(1.0f)(1.0f)(1.0f)("*"))))); + llsd::array(0.0f, 0.0f, 0.0f, "*"), + llsd::array(1.0f, 1.0f, 1.0f, "*")))); validation.push_back(Validator(SETTING_CLOUD_SCALE, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.001f)(3.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.001f, 3.0f)))); validation.push_back(Validator(SETTING_CLOUD_SCROLL_RATE, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(-50.0f)(-50.0f)), - LLSD(LLSDArray(50.0f)(50.0f))))); + llsd::array(-50.0f, -50.0f), + llsd::array(50.0f, 50.0f)))); validation.push_back(Validator(SETTING_CLOUD_SHADOW, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); validation.push_back(Validator(SETTING_CLOUD_TEXTUREID, false, LLSD::TypeUUID)); validation.push_back(Validator(SETTING_CLOUD_VARIANCE, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); validation.push_back(Validator(SETTING_DOME_OFFSET, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); validation.push_back(Validator(SETTING_DOME_RADIUS, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(1000.0f)(2000.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(1000.0f, 2000.0f)))); validation.push_back(Validator(SETTING_GAMMA, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(20.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 20.0f)))); validation.push_back(Validator(SETTING_GLOW, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.2f)("*")(-10.0f)("*")), - LLSD(LLSDArray(40.0f)("*")(10.0f)("*"))))); + llsd::array(0.2f, "*", -10.0f, "*"), + llsd::array(40.0f, "*", 10.0f, "*")))); validation.push_back(Validator(SETTING_MAX_Y, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(10000.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 10000.0f)))); validation.push_back(Validator(SETTING_MOON_ROTATION, true, LLSD::TypeArray, &Validator::verifyQuaternionNormal)); validation.push_back(Validator(SETTING_MOON_SCALE, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.25f)(20.0f))), LLSD::Real(1.0))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.25f, 20.0f)), LLSD::Real(1.0))); validation.push_back(Validator(SETTING_MOON_TEXTUREID, false, LLSD::TypeUUID)); validation.push_back(Validator(SETTING_MOON_BRIGHTNESS, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); validation.push_back(Validator(SETTING_STAR_BRIGHTNESS, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(500.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 500.0f)))); validation.push_back(Validator(SETTING_SUNLIGHT_COLOR, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")), - LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*"))))); + llsd::array(0.0f, 0.0f, 0.0f, "*"), + llsd::array(3.0f, 3.0f, 3.0f, "*")))); validation.push_back(Validator(SETTING_SUN_ROTATION, true, LLSD::TypeArray, &Validator::verifyQuaternionNormal)); validation.push_back(Validator(SETTING_SUN_SCALE, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.25f)(20.0f))), LLSD::Real(1.0))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.25f, 20.0f)), LLSD::Real(1.0))); validation.push_back(Validator(SETTING_SUN_TEXTUREID, false, LLSD::TypeUUID)); validation.push_back(Validator(SETTING_PLANET_RADIUS, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(1000.0f)(32768.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(1000.0f, 32768.0f)))); validation.push_back(Validator(SETTING_SKY_BOTTOM_RADIUS, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(1000.0f)(32768.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(1000.0f, 32768.0f)))); validation.push_back(Validator(SETTING_SKY_TOP_RADIUS, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(1000.0f)(32768.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(1000.0f, 32768.0f)))); validation.push_back(Validator(SETTING_SUN_ARC_RADIANS, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(0.1f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 0.1f)))); validation.push_back(Validator(SETTING_SKY_MOISTURE_LEVEL, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); validation.push_back(Validator(SETTING_SKY_DROPLET_RADIUS, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(5.0f)(1000.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(5.0f, 1000.0f)))); validation.push_back(Validator(SETTING_SKY_ICE_LEVEL, false, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); validation.push_back(Validator(SETTING_RAYLEIGH_CONFIG, true, LLSD::TypeArray, &validateRayleighLayers)); validation.push_back(Validator(SETTING_ABSORPTION_CONFIG, true, LLSD::TypeArray, &validateAbsorptionLayers)); @@ -719,7 +716,7 @@ LLSD LLSettingsSky::defaults(const LLSettingsBase::TrackPosition& position) dfltsetting[SETTING_CLOUD_POS_DENSITY1] = LLColor4(1.0000, 0.5260, 1.0000, 0.0).getValue(); dfltsetting[SETTING_CLOUD_POS_DENSITY2] = LLColor4(1.0000, 0.5260, 1.0000, 0.0).getValue(); dfltsetting[SETTING_CLOUD_SCALE] = LLSD::Real(0.4199); - dfltsetting[SETTING_CLOUD_SCROLL_RATE] = LLSDArray(0.0f)(0.0f); + dfltsetting[SETTING_CLOUD_SCROLL_RATE] = llsd::array(0.0f, 0.0f); dfltsetting[SETTING_CLOUD_SHADOW] = LLSD::Real(0.2699); dfltsetting[SETTING_CLOUD_VARIANCE] = LLSD::Real(0.0); diff --git a/indra/llinventory/llsettingswater.cpp b/indra/llinventory/llsettingswater.cpp index 90f99e8198..f19beb5be5 100644 --- a/indra/llinventory/llsettingswater.cpp +++ b/indra/llinventory/llsettingswater.cpp @@ -222,42 +222,38 @@ LLSettingsWater::validation_list_t LLSettingsWater::validationList() static validation_list_t validation; if (validation.empty()) - { // Note the use of LLSD(LLSDArray()()()...) This is due to an issue with the - // copy constructor for LLSDArray. Directly binding the LLSDArray as - // a parameter without first wrapping it in a pure LLSD object will result - // in deeply nested arrays like this [[[[[[[[[[v1,v2,v3]]]]]]]]]] - + { validation.push_back(Validator(SETTING_BLUR_MULTIPLIER, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-0.5f)(0.5f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(-0.5f, 0.5f)))); validation.push_back(Validator(SETTING_FOG_COLOR, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)(1.0f)), - LLSD(LLSDArray(1.0f)(1.0f)(1.0f)(1.0f))))); + llsd::array(0.0f, 0.0f, 0.0f, 1.0f), + llsd::array(1.0f, 1.0f, 1.0f, 1.0f)))); validation.push_back(Validator(SETTING_FOG_DENSITY, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(-10.0f)(10.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(-10.0f, 10.0f)))); validation.push_back(Validator(SETTING_FOG_MOD, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(20.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 20.0f)))); validation.push_back(Validator(SETTING_FRESNEL_OFFSET, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); validation.push_back(Validator(SETTING_FRESNEL_SCALE, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(1.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 1.0f)))); validation.push_back(Validator(SETTING_NORMAL_MAP, true, LLSD::TypeUUID)); validation.push_back(Validator(SETTING_NORMAL_SCALE, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(0.0f)(0.0f)(0.0f)), - LLSD(LLSDArray(10.0f)(10.0f)(10.0f))))); + llsd::array(0.0f, 0.0f, 0.0f), + llsd::array(10.0f, 10.0f, 10.0f)))); validation.push_back(Validator(SETTING_SCALE_ABOVE, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(3.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 3.0f)))); validation.push_back(Validator(SETTING_SCALE_BELOW, true, LLSD::TypeReal, - boost::bind(&Validator::verifyFloatRange, _1, _2, LLSD(LLSDArray(0.0f)(3.0f))))); + boost::bind(&Validator::verifyFloatRange, _1, _2, llsd::array(0.0f, 3.0f)))); validation.push_back(Validator(SETTING_WAVE1_DIR, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(-20.0f)(-20.0f)), - LLSD(LLSDArray(20.0f)(20.0f))))); + llsd::array(-20.0f, -20.0f), + llsd::array(20.0f, 20.0f)))); validation.push_back(Validator(SETTING_WAVE2_DIR, true, LLSD::TypeArray, boost::bind(&Validator::verifyVectorMinMax, _1, _2, - LLSD(LLSDArray(-20.0f)(-20.0f)), - LLSD(LLSDArray(20.0f)(20.0f))))); + llsd::array(-20.0f, -20.0f), + llsd::array(20.0f, 20.0f)))); } return validation; diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index 281f1bd87a..40f7b1e9fb 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -2416,7 +2416,7 @@ bool LLVolume::unpackVolumeFacesInternal(const LLSD& mdl) mVolumeFaces.resize(face_count); - for (U32 i = 0; i < face_count; ++i) + for (size_t i = 0; i < face_count; ++i) { LLVolumeFace& face = mVolumeFaces[i]; diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp index be014e7b1e..d310cefd1e 100644 --- a/indra/llmessage/llcoproceduremanager.cpp +++ b/indra/llmessage/llcoproceduremanager.cpp @@ -47,7 +47,10 @@ static const std::map<std::string, U32> DefaultPoolSizes{ }; static const U32 DEFAULT_POOL_SIZE = 5; -const U32 LLCoprocedureManager::DEFAULT_QUEUE_SIZE = 4096; +// SL-14399: When we teleport to a brand-new simulator, the coprocedure queue +// gets absolutely slammed with fetch requests. Make this queue effectively +// unlimited. +const U32 LLCoprocedureManager::DEFAULT_QUEUE_SIZE = 1024*1024; //========================================================================= class LLCoprocedurePool: private boost::noncopyable diff --git a/indra/llprimitive/llmaterialid.h b/indra/llprimitive/llmaterialid.h index ee663f8f99..c66e3e30a3 100644 --- a/indra/llprimitive/llmaterialid.h +++ b/indra/llprimitive/llmaterialid.h @@ -66,6 +66,14 @@ public: static const LLMaterialID null; + // Returns a 64 bits digest of the material Id, by XORing its two 64 bits + // long words. HB + inline U64 getDigest64() const + { + U64* tmp = (U64*)mID; + return tmp[0] ^ tmp[1]; + } + private: void parseFromBinary(const LLSD::Binary& pMaterialID); void copyFromOtherMaterialID(const LLMaterialID& pOtherMaterialID); @@ -74,5 +82,23 @@ private: U8 mID[MATERIAL_ID_SIZE]; } ; +// std::hash implementation for LLMaterialID +namespace std +{ + template<> struct hash<LLMaterialID> + { + inline size_t operator()(const LLMaterialID& id) const noexcept + { + return (size_t)id.getDigest64(); + } + }; +} + +// For use with boost containers. +inline size_t hash_value(const LLMaterialID& id) noexcept +{ + return (size_t)id.getDigest64(); +} + #endif // LL_LLMATERIALID_H diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp index 765a8cda22..fbd97b3de7 100644 --- a/indra/llprimitive/llmodel.cpp +++ b/indra/llprimitive/llmodel.cpp @@ -31,7 +31,7 @@ #include "llconvexdecomposition.h" #include "llsdserialize.h" #include "llvector4a.h" -#include "llmd5.h" +#include "hbxxh.h" #ifdef LL_USESYSTEMLIBS # include <zlib.h> @@ -832,55 +832,69 @@ LLSD LLModel::writeModel( if (skinning) { - //write out skin weights - - //each influence list entry is up to 4 24-bit values - // first 8 bits is bone index - // last 16 bits is bone influence weight - // a bone index of 0xFF signifies no more influences for this vertex - - std::stringstream ostr; - - for (U32 j = 0; j < face.mNumVertices; ++j) - { - LLVector3 pos(face.mPositions[j].getF32ptr()); - - weight_list& weights = model[idx]->getJointInfluences(pos); - - S32 count = 0; - for (weight_list::iterator iter = weights.begin(); iter != weights.end(); ++iter) - { - // Note joint index cannot exceed 255. - if (iter->mJointIdx < 255 && iter->mJointIdx >= 0) - { - U8 idx = (U8) iter->mJointIdx; - ostr.write((const char*) &idx, 1); - - U16 influence = (U16) (iter->mWeight*65535); - ostr.write((const char*) &influence, 2); - - ++count; - } - } - U8 end_list = 0xFF; - if (count < 4) - { - ostr.write((const char*) &end_list, 1); - } - } - - //copy ostr to binary buffer - std::string data = ostr.str(); - const U8* buff = (U8*) data.data(); - U32 bytes = data.size(); - - LLSD::Binary w(bytes); - for (U32 j = 0; j < bytes; ++j) - { - w[j] = buff[j]; - } - - mdl[model_names[idx]][i]["Weights"] = w; + if (!model[idx]->mSkinWeights.empty()) + { + //write out skin weights + + //each influence list entry is up to 4 24-bit values + // first 8 bits is bone index + // last 16 bits is bone influence weight + // a bone index of 0xFF signifies no more influences for this vertex + + std::stringstream ostr; + for (U32 j = 0; j < face.mNumVertices; ++j) + { + LLVector3 pos(face.mPositions[j].getF32ptr()); + + weight_list& weights = model[idx]->getJointInfluences(pos); + + S32 count = 0; + for (weight_list::iterator iter = weights.begin(); iter != weights.end(); ++iter) + { + // Note joint index cannot exceed 255. + if (iter->mJointIdx < 255 && iter->mJointIdx >= 0) + { + U8 idx = (U8)iter->mJointIdx; + ostr.write((const char*)&idx, 1); + + U16 influence = (U16)(iter->mWeight * 65535); + ostr.write((const char*)&influence, 2); + + ++count; + } + } + U8 end_list = 0xFF; + if (count < 4) + { + ostr.write((const char*)&end_list, 1); + } + } + + //copy ostr to binary buffer + std::string data = ostr.str(); + const U8* buff = (U8*)data.data(); + U32 bytes = data.size(); + + LLSD::Binary w(bytes); + for (U32 j = 0; j < bytes; ++j) + { + w[j] = buff[j]; + } + + mdl[model_names[idx]][i]["Weights"] = w; + } + else + { + if (idx == LLModel::LOD_PHYSICS) + { + // Ex: using "bounding box" + LL_DEBUGS("MESHSKININFO") << "Using physics model without skin weights" << LL_ENDL; + } + else + { + LL_WARNS("MESHSKININFO") << "Attempting to use skinning without having skin weights" << LL_ENDL; + } + } } } } @@ -982,6 +996,8 @@ LLModel::weight_list& LLModel::getJointInfluences(const LLVector3& pos) //1. If a vertex has been weighted then we'll find it via pos and return its weight list weight_map::iterator iterPos = mSkinWeights.begin(); weight_map::iterator iterEnd = mSkinWeights.end(); + + llassert(!mSkinWeights.empty()); for ( ; iterPos!=iterEnd; ++iterPos ) { @@ -1531,7 +1547,7 @@ LLSD LLMeshSkinInfo::asLLSD(bool include_joints, bool lock_scale_if_joint_positi void LLMeshSkinInfo::updateHash() { // get hash of data relevant to render batches - LLMD5 hash; + HBXXH64 hash; //mJointNames for (auto& name : mJointNames) @@ -1540,24 +1556,19 @@ void LLMeshSkinInfo::updateHash() } //mJointNums - hash.update((U8*)&(mJointNums[0]), sizeof(S32) * mJointNums.size()); + hash.update((const void*)mJointNums.data(), sizeof(S32) * mJointNums.size()); //mInvBindMatrix F32* src = mInvBindMatrix[0].getF32ptr(); - for (int i = 0; i < mInvBindMatrix.size() * 16; ++i) + for (size_t i = 0, count = mInvBindMatrix.size() * 16; i < count; ++i) { S32 t = llround(src[i] * 10000.f); - hash.update((U8*)&t, sizeof(S32)); + hash.update((const void*)&t, sizeof(S32)); } - //hash.update((U8*)&(mInvBindMatrix[0]), sizeof(LLMatrix4a) * mInvBindMatrix.size()); - - hash.finalize(); - - U64 digest[2]; - hash.raw_digest((U8*) digest); + //hash.update((const void*)mInvBindMatrix.data(), sizeof(LLMatrix4a) * mInvBindMatrix.size()); - mHash = digest[0]; + mHash = hash.digest(); } U32 LLMeshSkinInfo::sizeBytes() const diff --git a/indra/llprimitive/llmodelloader.cpp b/indra/llprimitive/llmodelloader.cpp index 5171621007..3dd1652154 100644 --- a/indra/llprimitive/llmodelloader.cpp +++ b/indra/llprimitive/llmodelloader.cpp @@ -25,6 +25,8 @@ */ #include "llmodelloader.h" + +#include "llapp.h" #include "llsdserialize.h" #include "lljoint.h" #include "llcallbacklist.h" @@ -363,7 +365,10 @@ bool LLModelLoader::isAlive(LLModelLoader* loader) void LLModelLoader::loadModelCallback() { - mLoadCallback(mScene,mModelList,mLod, mOpaqueData); + if (!LLApp::isExiting()) + { + mLoadCallback(mScene, mModelList, mLod, mOpaqueData); + } while (!isStopped()) { //wait until this thread is stopped before deleting self diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml index e16a5c7e76..340334aee8 100644 --- a/indra/newview/app_settings/cmd_line.xml +++ b/indra/newview/app_settings/cmd_line.xml @@ -209,6 +209,12 @@ <string>NoAudio</string> </map> + <key>nofmod</key> + <map> + <key>map-to</key> + <string>UseMediaPluginsForStreamingAudio</string> + </map> + <key>noninteractive</key> <map> <key>desc</key> diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 3d1a384793..9f2d6f746d 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -7077,6 +7077,17 @@ <key>Value</key> <integer>0</integer> </map> + <key>UseMediaPluginsForStreamingAudio</key> + <map> + <key>Comment</key> + <string>Use media plugins (VLC) for streaming audio.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>NoHardwareProbe</key> <map> <key>Comment</key> @@ -11338,11 +11349,11 @@ <key>ShowBanLines</key> <map> <key>Comment</key> - <string>Show in-world ban/access borders</string> + <string>Show in-world ban/access borders, 0 - do not show, 1 - show on collision, 2 - show on proximity</string> <key>Persist</key> <integer>1</integer> <key>Type</key> - <string>Boolean</string> + <string>S32</string> <key>Value</key> <integer>1</integer> </map> @@ -16953,17 +16964,6 @@ <key>Value</key> <integer>0</integer> </map> - <key>ResetUIScaleOnFirstRun</key> - <map> - <key>Comment</key> - <string>Resets the UI scale factor on first run due to changed display scaling behavior</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>Boolean</string> - <key>Value</key> - <integer>1</integer> - </map> <key>360CaptureUseInterestListCap</key> <map> <key>Comment</key> diff --git a/indra/newview/groupchatlistener.cpp b/indra/newview/groupchatlistener.cpp index ef015a950d..a05caa961b 100644 --- a/indra/newview/groupchatlistener.cpp +++ b/indra/newview/groupchatlistener.cpp @@ -64,11 +64,11 @@ GroupChatListener::GroupChatListener(): "Leave a group chat in group with UUID [\"id\"]\n" "Assumes a prior successful startIM request.", &LLGroupActions::endIM, - LLSDArray("id")); - add("sendIM", - "send a groupchat IM", - &send_message_wrapper, - LLSDArray("text")("session_id")("group_id")); + llsd::array("id")); + add("sendIM", + "send a groupchat IM", + &send_message_wrapper, + llsd::array("text", "session_id", "group_id")); } /* static void sendMessage(const std::string& utf8_text, const LLUUID& im_session_id, diff --git a/indra/newview/llagentlistener.cpp b/indra/newview/llagentlistener.cpp index 7887184a11..5a720af038 100644 --- a/indra/newview/llagentlistener.cpp +++ b/indra/newview/llagentlistener.cpp @@ -35,6 +35,7 @@ #include "llcommandhandler.h" #include "llslurl.h" #include "llurldispatcher.h" +#include "llviewernetwork.h" #include "llviewerobject.h" #include "llviewerobjectlist.h" #include "llviewerregion.h" @@ -148,7 +149,7 @@ void LLAgentListener::requestTeleport(LLSD const & event_data) const params.append(event_data["x"]); params.append(event_data["y"]); params.append(event_data["z"]); - LLCommandDispatcher::dispatch("teleport", params, LLSD(), NULL, "clicked", true); + LLCommandDispatcher::dispatch("teleport", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, "clicked", true); // *TODO - lookup other LLCommandHandlers for "agent", "classified", "event", "group", "floater", "parcel", "login", login_refresh", "balance", "chat" // should we just compose LLCommandHandler and LLDispatchListener? } diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 2e769dc737..53397978e0 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -41,7 +41,6 @@ #include "llinventoryobserver.h" #include "llinventorypanel.h" #include "lllocaltextureobject.h" -#include "llmd5.h" #include "llnotificationsutil.h" #include "lloutfitobserver.h" #include "llsidepanelappearance.h" diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 3c93a9df7e..d0fad07f1c 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -41,7 +41,9 @@ #include "llinventorybridge.h" #include "llinventoryfunctions.h" #include "llinventoryobserver.h" +#include "llmd5.h" #include "llnotificationsutil.h" +#include "llmd5.h" #include "lloutfitobserver.h" #include "lloutfitslist.h" #include "llselectmgr.h" @@ -145,7 +147,10 @@ public: // requests will be throttled from a non-trusted browser LLAppearanceHandler() : LLCommandHandler("appearance", UNTRUSTED_THROTTLE) {} - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { // support secondlife:///app/appearance/show, but for now we just // make all secondlife:///app/appearance SLapps behave this way @@ -4470,8 +4475,10 @@ public: // not allowed from outside the app LLWearFolderHandler() : LLCommandHandler("wear_folder", UNTRUSTED_BLOCK) { } - bool handle(const LLSD& tokens, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& tokens, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { LLSD::UUID folder_uuid; diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 9c194562f9..23d99da8ba 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -3208,15 +3208,16 @@ LLSD LLAppViewer::getViewerInfo() const // LLFloaterAbout. LLSD info; auto& versionInfo(LLVersionInfo::instance()); - info["VIEWER_VERSION"] = LLSDArray(versionInfo.getMajor())(versionInfo.getMinor())(versionInfo.getPatch())(versionInfo.getBuild()); + info["VIEWER_VERSION"] = llsd::array(versionInfo.getMajor(), versionInfo.getMinor(), + versionInfo.getPatch(), versionInfo.getBuild()); info["VIEWER_VERSION_STR"] = versionInfo.getVersion(); info["CHANNEL"] = versionInfo.getChannel(); - info["ADDRESS_SIZE"] = ADDRESS_SIZE; - std::string build_config = versionInfo.getBuildConfig(); - if (build_config != "Release") - { - info["BUILD_CONFIG"] = build_config; - } + info["ADDRESS_SIZE"] = ADDRESS_SIZE; + std::string build_config = versionInfo.getBuildConfig(); + if (build_config != "Release") + { + info["BUILD_CONFIG"] = build_config; + } // return a URL to the release notes for this viewer, such as: // https://releasenotes.secondlife.com/viewer/2.1.0.123456.html diff --git a/indra/newview/llbuycurrencyhtml.cpp b/indra/newview/llbuycurrencyhtml.cpp index 7ad06f8eaa..37de89a48b 100644 --- a/indra/newview/llbuycurrencyhtml.cpp +++ b/indra/newview/llbuycurrencyhtml.cpp @@ -43,7 +43,7 @@ public: // requests will be throttled from a non-trusted browser LLBuyCurrencyHTMLHandler() : LLCommandHandler( "buycurrencyhtml", UNTRUSTED_THROTTLE) {} - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { std::string action( "" ); if ( params.size() >= 1 ) diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 9a608fba8e..43dc10ef5f 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -82,7 +82,7 @@ public: // requests will be throttled from a non-trusted browser LLObjectIMHandler() : LLCommandHandler("objectim", UNTRUSTED_THROTTLE) {} - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (params.size() < 1) { diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp index 1c22e055bb..dc2cc57f0f 100644 --- a/indra/newview/llchatitemscontainerctrl.cpp +++ b/indra/newview/llchatitemscontainerctrl.cpp @@ -57,7 +57,7 @@ class LLObjectHandler : public LLCommandHandler public: LLObjectHandler() : LLCommandHandler("object", UNTRUSTED_BLOCK) { } - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (params.size() < 2) return false; diff --git a/indra/newview/llcommanddispatcherlistener.cpp b/indra/newview/llcommanddispatcherlistener.cpp index 586f45fd8f..1b85c09071 100644 --- a/indra/newview/llcommanddispatcherlistener.cpp +++ b/indra/newview/llcommanddispatcherlistener.cpp @@ -64,7 +64,7 @@ void LLCommandDispatcherListener::dispatch(const LLSD& params) const // But for testing, allow a caller to specify untrusted. trusted_browser = params["trusted"].asBoolean(); } - LLCommandDispatcher::dispatch(params["cmd"], params["params"], params["query"], NULL, + LLCommandDispatcher::dispatch(params["cmd"], params["params"], params["query"], "", NULL, "clicked", trusted_browser); } diff --git a/indra/newview/llcommandhandler.cpp b/indra/newview/llcommandhandler.cpp index 74f37961c7..e774a9390a 100644 --- a/indra/newview/llcommandhandler.cpp +++ b/indra/newview/llcommandhandler.cpp @@ -60,6 +60,7 @@ public: bool dispatch(const std::string& cmd, const LLSD& params, const LLSD& query_map, + const std::string& grid, LLMediaCtrl* web, const std::string& nav_type, bool trusted_browser); @@ -96,6 +97,7 @@ void LLCommandHandlerRegistry::add(const char* cmd, bool LLCommandHandlerRegistry::dispatch(const std::string& cmd, const LLSD& params, const LLSD& query_map, + const std::string& grid, LLMediaCtrl* web, const std::string& nav_type, bool trusted_browser) @@ -163,7 +165,7 @@ bool LLCommandHandlerRegistry::dispatch(const std::string& cmd, } } if (!info.mHandler) return false; - return info.mHandler->handle(params, query_map, web); + return info.mHandler->handle(params, query_map, grid, web); } void LLCommandHandlerRegistry::notifySlurlBlocked() @@ -218,12 +220,13 @@ LLCommandHandler::~LLCommandHandler() bool LLCommandDispatcher::dispatch(const std::string& cmd, const LLSD& params, const LLSD& query_map, + const std::string& grid, LLMediaCtrl* web, const std::string& nav_type, bool trusted_browser) { return LLCommandHandlerRegistry::instance().dispatch( - cmd, params, query_map, web, nav_type, trusted_browser); + cmd, params, query_map, grid, web, nav_type, trusted_browser); } static std::string lookup(LLCommandHandler::EUntrustedAccess value); diff --git a/indra/newview/llcommandhandler.h b/indra/newview/llcommandhandler.h index 763e3ee51f..c7a7a18c7d 100644 --- a/indra/newview/llcommandhandler.h +++ b/indra/newview/llcommandhandler.h @@ -42,7 +42,7 @@ public: LLFooHandler() : LLCommandHandler("foo", UNTRUSTED_BLOCK) { } // Your code here - bool handle(const LLSD& tokens, const LLSD& query_map, + bool handle(const LLSD& tokens, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (tokens.size() < 1) return false; @@ -88,6 +88,7 @@ public: virtual bool handle(const LLSD& params, const LLSD& query_map, + const std::string& grid, LLMediaCtrl* web) = 0; // For URL secondlife:///app/foo/bar/baz?cat=1&dog=2 // @params - array of "bar", "baz", possibly empty @@ -104,6 +105,7 @@ public: static bool dispatch(const std::string& cmd, const LLSD& params, const LLSD& query_map, + const std::string& grid, LLMediaCtrl* web, const std::string& nav_type, bool trusted_browser); diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp index f1a44a68c9..788b61b381 100644 --- a/indra/newview/lleventnotifier.cpp +++ b/indra/newview/lleventnotifier.cpp @@ -43,8 +43,10 @@ class LLEventHandler : public LLCommandHandler public: // requires trusted browser to trigger LLEventHandler() : LLCommandHandler("event", UNTRUSTED_THROTTLE) { } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (params.size() < 2) { diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index b5f6f80b39..b61afcbbc9 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -285,6 +285,15 @@ BOOL LLFilePicker::getOpenFile(ELoadFilter filter, bool blocking) return success; } +BOOL LLFilePicker::getOpenFileModeless(ELoadFilter filter, + void (*callback)(bool, std::vector<std::string> &, void*), + void *userdata) +{ + // not supposed to be used yet, use LLFilePickerThread + LL_ERRS() << "NOT IMPLEMENTED" << LL_ENDL; + return FALSE; +} + BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter, bool blocking) { if( mLocked ) @@ -362,6 +371,15 @@ BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter, bool blocking) return success; } +BOOL LLFilePicker::getMultipleOpenFilesModeless(ELoadFilter filter, + void (*callback)(bool, std::vector<std::string> &, void*), + void *userdata ) +{ + // not supposed to be used yet, use LLFilePickerThread + LL_ERRS() << "NOT IMPLEMENTED" << LL_ENDL; + return FALSE; +} + BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename, bool blocking) { if( mLocked ) @@ -584,6 +602,16 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename, return success; } +BOOL LLFilePicker::getSaveFileModeless(ESaveFilter filter, + const std::string& filename, + void (*callback)(bool, std::string&, void*), + void *userdata) +{ + // not supposed to be used yet, use LLFilePickerThread + LL_ERRS() << "NOT IMPLEMENTED" << LL_ENDL; + return FALSE; +} + #elif LL_DARWIN std::unique_ptr<std::vector<std::string>> LLFilePicker::navOpenFilterProc(ELoadFilter filter) //(AEDesc *theItem, void *info, void *callBackUD, NavFilterModes filterMode) @@ -678,105 +706,123 @@ bool LLFilePicker::doNavChooseDialog(ELoadFilter filter) return false; } -bool LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& filename) +bool LLFilePicker::doNavChooseDialogModeless(ELoadFilter filter, + void (*callback)(bool, std::vector<std::string> &,void*), + void *userdata) { - - // Setup the type, creator, and extension - std::string extension, type, creator; + // if local file browsing is turned off, return without opening dialog + if ( check_local_file_access_enabled() == false ) + { + return false; + } - switch (filter) - { - case FFSAVE_WAV: - type = "WAVE"; - creator = "TVOD"; - extension = "wav"; - break; - case FFSAVE_TGA: - type = "TPIC"; - creator = "prvw"; - extension = "tga"; - break; - case FFSAVE_TGAPNG: - type = "PNG"; - creator = "prvw"; - extension = "png,tga"; - break; - case FFSAVE_BMP: - type = "BMPf"; - creator = "prvw"; - extension = "bmp"; - break; - case FFSAVE_JPEG: - type = "JPEG"; - creator = "prvw"; - extension = "jpeg"; - break; - case FFSAVE_PNG: - type = "PNG "; - creator = "prvw"; - extension = "png"; - break; - case FFSAVE_AVI: - type = "\?\?\?\?"; - creator = "\?\?\?\?"; - extension = "mov"; - break; + std::unique_ptr<std::vector<std::string>> allowed_types=navOpenFilterProc(filter); + + doLoadDialogModeless(allowed_types.get(), + mPickOptions, + callback, + userdata); + + return true; +} - case FFSAVE_ANIM: - type = "\?\?\?\?"; - creator = "\?\?\?\?"; - extension = "xaf"; - break; +void set_nav_save_data(LLFilePicker::ESaveFilter filter, std::string &extension, std::string &type, std::string &creator) +{ + switch (filter) + { + case LLFilePicker::FFSAVE_WAV: + type = "WAVE"; + creator = "TVOD"; + extension = "wav"; + break; + case LLFilePicker::FFSAVE_TGA: + type = "TPIC"; + creator = "prvw"; + extension = "tga"; + break; + case LLFilePicker::FFSAVE_TGAPNG: + type = "PNG"; + creator = "prvw"; + extension = "png,tga"; + break; + case LLFilePicker::FFSAVE_BMP: + type = "BMPf"; + creator = "prvw"; + extension = "bmp"; + break; + case LLFilePicker::FFSAVE_JPEG: + type = "JPEG"; + creator = "prvw"; + extension = "jpeg"; + break; + case LLFilePicker::FFSAVE_PNG: + type = "PNG "; + creator = "prvw"; + extension = "png"; + break; + case LLFilePicker::FFSAVE_AVI: + type = "\?\?\?\?"; + creator = "\?\?\?\?"; + extension = "mov"; + break; + + case LLFilePicker::FFSAVE_ANIM: + type = "\?\?\?\?"; + creator = "\?\?\?\?"; + extension = "xaf"; + break; #ifdef _CORY_TESTING - case FFSAVE_GEOMETRY: - type = "\?\?\?\?"; - creator = "\?\?\?\?"; - extension = "slg"; - break; -#endif - - case FFSAVE_XML: - type = "\?\?\?\?"; - creator = "\?\?\?\?"; - extension = "xml"; - break; - - case FFSAVE_RAW: - type = "\?\?\?\?"; - creator = "\?\?\?\?"; - extension = "raw"; - break; + case LLFilePicker::FFSAVE_GEOMETRY: + type = "\?\?\?\?"; + creator = "\?\?\?\?"; + extension = "slg"; + break; +#endif + + case LLFilePicker::FFSAVE_XML: + type = "\?\?\?\?"; + creator = "\?\?\?\?"; + extension = "xml"; + break; + + case LLFilePicker::FFSAVE_RAW: + type = "\?\?\?\?"; + creator = "\?\?\?\?"; + extension = "raw"; + break; - case FFSAVE_J2C: - type = "\?\?\?\?"; - creator = "prvw"; - extension = "j2c"; - break; - - case FFSAVE_SCRIPT: - type = "LSL "; - creator = "\?\?\?\?"; - extension = "lsl"; - break; - - case FFSAVE_ALL: - default: - type = "\?\?\?\?"; - creator = "\?\?\?\?"; - extension = ""; - break; - } + case LLFilePicker::FFSAVE_J2C: + type = "\?\?\?\?"; + creator = "prvw"; + extension = "j2c"; + break; + + case LLFilePicker::FFSAVE_SCRIPT: + type = "LSL "; + creator = "\?\?\?\?"; + extension = "lsl"; + break; + + case LLFilePicker::FFSAVE_ALL: + default: + type = "\?\?\?\?"; + creator = "\?\?\?\?"; + extension = ""; + break; + } +} + +bool LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& filename) +{ + // Setup the type, creator, and extension + std::string extension, type, creator; + + set_nav_save_data(filter, extension, type, creator); std::string namestring = filename; if (namestring.empty()) namestring="Untitled"; -// if (! boost::algorithm::ends_with(namestring, extension) ) -// { -// namestring = namestring + "." + extension; -// -// } - gViewerWindow->getWindow()->beforeDialog(); // Run the dialog @@ -797,6 +843,30 @@ bool LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& filena return false; } +bool LLFilePicker::doNavSaveDialogModeless(ESaveFilter filter, + const std::string& filename, + void (*callback)(bool, std::string&, void*), + void *userdata) +{ + // Setup the type, creator, and extension + std::string extension, type, creator; + + set_nav_save_data(filter, extension, type, creator); + + std::string namestring = filename; + if (namestring.empty()) namestring="Untitled"; + + // Run the dialog + doSaveDialogModeless(&namestring, + &type, + &creator, + &extension, + mPickOptions, + callback, + userdata); + return true; +} + BOOL LLFilePicker::getOpenFile(ELoadFilter filter, bool blocking) { if( mLocked ) @@ -852,18 +922,52 @@ BOOL LLFilePicker::getOpenFile(ELoadFilter filter, bool blocking) return success; } + +BOOL LLFilePicker::getOpenFileModeless(ELoadFilter filter, + void (*callback)(bool, std::vector<std::string> &, void*), + void *userdata) +{ + if( mLocked ) + return FALSE; + + // if local file browsing is turned off, return without opening dialog + if ( check_local_file_access_enabled() == false ) + { + return FALSE; + } + + reset(); + + mPickOptions &= ~F_MULTIPLE; + mPickOptions |= F_FILE; + + if (filter == FFLOAD_DIRECTORY) //This should only be called from lldirpicker. + { + + mPickOptions |= ( F_NAV_SUPPORT | F_DIRECTORY ); + mPickOptions &= ~F_FILE; + } + + if (filter == FFLOAD_ALL) // allow application bundles etc. to be traversed; important for DEV-16869, but generally useful + { + mPickOptions |= F_NAV_SUPPORT; + } + + return doNavChooseDialogModeless(filter, callback, userdata); +} + BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter, bool blocking) { if( mLocked ) return FALSE; - BOOL success = FALSE; - // if local file browsing is turned off, return without opening dialog if ( check_local_file_access_enabled() == false ) { return FALSE; } + + BOOL success = FALSE; reset(); @@ -897,6 +1001,29 @@ BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter, bool blocking) return success; } + +BOOL LLFilePicker::getMultipleOpenFilesModeless(ELoadFilter filter, + void (*callback)(bool, std::vector<std::string> &, void*), + void *userdata ) +{ + if( mLocked ) + return FALSE; + + // if local file browsing is turned off, return without opening dialog + if ( check_local_file_access_enabled() == false ) + { + return FALSE; + } + + reset(); + + mPickOptions |= F_FILE; + + mPickOptions |= F_MULTIPLE; + + return doNavChooseDialogModeless(filter, callback, userdata); +} + BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename, bool blocking) { @@ -937,6 +1064,27 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename, LLFrameTimer::updateFrameTime(); return success; } + +BOOL LLFilePicker::getSaveFileModeless(ESaveFilter filter, + const std::string& filename, + void (*callback)(bool, std::string&, void*), + void *userdata) +{ + if( mLocked ) + return false; + + // if local file browsing is turned off, return without opening dialog + if ( check_local_file_access_enabled() == false ) + { + return false; + } + + reset(); + + mPickOptions &= ~F_MULTIPLE; + + return doNavSaveDialogModeless(filter, filename, callback, userdata); +} //END LL_DARWIN #elif LL_LINUX @@ -1444,6 +1592,15 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename, return FALSE; } +BOOL LLFilePicker::getSaveFileModeless(ESaveFilter filter, + const std::string& filename, + void (*callback)(bool, std::string&, void*), + void *userdata) +{ + LL_ERRS() << "NOT IMPLEMENTED" << LL_ENDL; + return FALSE; +} + BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking ) { // if local file browsing is turned off, return without opening dialog @@ -1469,6 +1626,14 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking ) return TRUE; } +BOOL LLFilePicker::getOpenFileModeless(ELoadFilter filter, + void (*callback)(bool, std::vector<std::string> &, void*), + void *userdata) +{ + LL_ERRS() << "NOT IMPLEMENTED" << LL_ENDL; + return FALSE; +} + BOOL LLFilePicker::getMultipleOpenFiles( ELoadFilter filter, bool blocking) { // if local file browsing is turned off, return without opening dialog @@ -1482,6 +1647,14 @@ BOOL LLFilePicker::getMultipleOpenFiles( ELoadFilter filter, bool blocking) return FALSE; } +BOOL LLFilePicker::getMultipleOpenFilesModeless(ELoadFilter filter, + void (*callback)(bool, std::vector<std::string> &, void*), + void *userdata ) +{ + LL_ERRS() << "NOT IMPLEMENTED" << LL_ENDL; + return FALSE; +} + #endif // LL_GTK #else // not implemented diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h index 73baeca1c0..26649e0940 100644 --- a/indra/newview/llfilepicker.h +++ b/indra/newview/llfilepicker.h @@ -114,8 +114,16 @@ public: // open the dialog. This is a modal operation BOOL getSaveFile( ESaveFilter filter = FFSAVE_ALL, const std::string& filename = LLStringUtil::null, bool blocking = true); + BOOL getSaveFileModeless(ESaveFilter filter, + const std::string& filename, + void (*callback)(bool, std::string&, void*), + void *userdata); BOOL getOpenFile( ELoadFilter filter = FFLOAD_ALL, bool blocking = true ); + // Todo: implement getOpenFileModeless and getMultipleOpenFilesModeless + // for windows and use directly instead of ugly LLFilePickerThread + BOOL getOpenFileModeless( ELoadFilter filter, void (*callback)(bool, std::vector<std::string> &, void*), void *userdata); // MAC only. BOOL getMultipleOpenFiles( ELoadFilter filter = FFLOAD_ALL, bool blocking = true ); + BOOL getMultipleOpenFilesModeless( ELoadFilter filter, void (*callback)(bool, std::vector<std::string> &, void*), void *userdata ); // MAC only // Get the filename(s) found. getFirstFile() sets the pointer to // the start of the structure and allows the start of iteration. @@ -166,8 +174,15 @@ private: std::vector<std::string> mFileVector; bool doNavChooseDialog(ELoadFilter filter); + bool doNavChooseDialogModeless(ELoadFilter filter, + void (*callback)(bool, std::vector<std::string>&, void*), + void *userdata); bool doNavSaveDialog(ESaveFilter filter, const std::string& filename); std::unique_ptr<std::vector<std::string>> navOpenFilterProc(ELoadFilter filter); + bool doNavSaveDialogModeless(ESaveFilter filter, + const std::string& filename, + void (*callback)(bool, std::string&, void*), + void *userdata); #endif #if LL_GTK diff --git a/indra/newview/llfilepicker_mac.h b/indra/newview/llfilepicker_mac.h index b2fb371afe..367c792969 100644 --- a/indra/newview/llfilepicker_mac.h +++ b/indra/newview/llfilepicker_mac.h @@ -41,11 +41,25 @@ //void modelessPicker(); std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::string>* allowed_types, unsigned int flags); + +void doLoadDialogModeless(const std::vector<std::string>* allowed_types, + unsigned int flags, + void (*callback)(bool, std::vector<std::string>&, void*), + void *userdata); + std::unique_ptr<std::string> doSaveDialog(const std::string* file, const std::string* type, const std::string* creator, const std::string* extension, unsigned int flags); + +void doSaveDialogModeless(const std::string* file, + const std::string* type, + const std::string* creator, + const std::string* extension, + unsigned int flags, + void (*callback)(bool, std::string&, void*), + void *userdata); enum { F_FILE = 0x00000001, F_DIRECTORY = 0x00000002, diff --git a/indra/newview/llfilepicker_mac.mm b/indra/newview/llfilepicker_mac.mm index 0ae5fc3f77..bca5b10c8a 100644 --- a/indra/newview/llfilepicker_mac.mm +++ b/indra/newview/llfilepicker_mac.mm @@ -29,108 +29,189 @@ #include <iostream> #include "llfilepicker_mac.h" -std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::string>* allowed_types, - unsigned int flags) +NSOpenPanel *init_panel(const std::vector<std::string>* allowed_types, unsigned int flags) { - std::unique_ptr<std::vector<std::string>> outfiles; - - @autoreleasepool { - int i, result; - //Aura TODO: We could init a small window and release it at the end of this routine - //for a modeless interface. + int i; + + NSOpenPanel *panel = [NSOpenPanel openPanel]; + NSMutableArray *fileTypes = nil; + + + if ( allowed_types && !allowed_types->empty()) + { + fileTypes = [[NSMutableArray alloc] init]; - NSOpenPanel *panel = [NSOpenPanel openPanel]; - //NSString *fileName = nil; - NSMutableArray *fileTypes = nil; - - if ( allowed_types && !allowed_types->empty()) + for (i=0;i<allowed_types->size();++i) { - fileTypes = [[[NSMutableArray alloc] init] autorelease]; - - for (i=0;i<allowed_types->size();++i) - { - [fileTypes addObject: - [NSString stringWithCString:(*allowed_types)[i].c_str() - encoding:[NSString defaultCStringEncoding]]]; - } + [fileTypes addObject: + [NSString stringWithCString:(*allowed_types)[i].c_str() + encoding:[NSString defaultCStringEncoding]]]; } + } - //[panel setMessage:@"Import one or more files or directories."]; - [panel setAllowsMultipleSelection: ( (flags & F_MULTIPLE)?true:false ) ]; - [panel setCanChooseDirectories: ( (flags & F_DIRECTORY)?true:false ) ]; - [panel setCanCreateDirectories: true]; - [panel setResolvesAliases: true]; - [panel setCanChooseFiles: ( (flags & F_FILE)?true:false )]; - [panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ]; - - if (fileTypes) + //[panel setMessage:@"Import one or more files or directories."]; + [panel setAllowsMultipleSelection: ( (flags & F_MULTIPLE)?true:false ) ]; + [panel setCanChooseDirectories: ( (flags & F_DIRECTORY)?true:false ) ]; + [panel setCanCreateDirectories: true]; + [panel setResolvesAliases: true]; + [panel setCanChooseFiles: ( (flags & F_FILE)?true:false )]; + [panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ]; + + if (fileTypes) + { + [panel setAllowedFileTypes:fileTypes]; + } + else + { + // I suggest it's better to open the last path and let this default to home dir as necessary + // for consistency with other OS X apps + // + //[panel setDirectoryURL: fileURLWithPath(NSHomeDirectory()) ]; + } + return panel; +} + +std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::string>* allowed_types, + unsigned int flags) +{ + int result; + + NSOpenPanel *panel = init_panel(allowed_types,flags); + + result = [panel runModal]; + + std::unique_ptr<std::vector<std::string>> outfiles = nullptr; + + if (result == NSOKButton) + { + NSArray *filesToOpen = [panel URLs]; + int count = [filesToOpen count]; + + if (count > 0) { - [panel setAllowedFileTypes:fileTypes]; - result = [panel runModal]; + outfiles = std::make_unique<std::vector<std::string>>(); } - else - { - // I suggest it's better to open the last path and let this default to home dir as necessary - // for consistency with other OS X apps - // - //[panel setDirectoryURL: fileURLWithPath(NSHomeDirectory()) ]; - result = [panel runModal]; + + for (int i=0; i<count; i++) { + NSString *aFile = [filesToOpen objectAtIndex:i]; + std::string afilestr = [[aFile stringByStandardizingPath] UTF8String]; + outfiles->push_back(std::move(afilestr)); } - - if (result == NSOKButton) + } + return outfiles; +} + +void doLoadDialogModeless(const std::vector<std::string>* allowed_types, + unsigned int flags, + void (*callback)(bool, std::vector<std::string> &, void*), + void *userdata) +{ + // Note: might need to return and save this panel + // so that it does not close immediately + NSOpenPanel *panel = init_panel(allowed_types,flags); + + [panel beginWithCompletionHandler:^(NSModalResponse result) { - NSArray *filesToOpen = [panel URLs]; - int i, count = [filesToOpen count]; - - if (count > 0) + std::vector<std::string> outfiles; + if (result == NSOKButton) { - outfiles.reset(new std::vector<std::string>); + NSArray *filesToOpen = [panel URLs]; + int i, count = [filesToOpen count]; + + if (count > 0) + { + + for (i=0; i<count; i++) { + NSString *aFile = [[filesToOpen objectAtIndex:i] path]; + std::string *afilestr = new std::string([aFile UTF8String]); + outfiles.push_back(*afilestr); + } + callback(true, outfiles, userdata); + } + else // no valid result + { + callback(false, outfiles, userdata); + } } - - for (i=0; i<count; i++) { - NSString *aFile = [[filesToOpen objectAtIndex:i] path]; - std::string afilestr = std::string([aFile UTF8String]); - outfiles->push_back(afilestr); + else // cancel + { + callback(false, outfiles, userdata); } - } - } - - return outfiles; + }]; } - -std::unique_ptr<std::string> doSaveDialog(const std::string* file, +std::unique_ptr<std::string> doSaveDialog(const std::string* file, const std::string* type, const std::string* creator, const std::string* extension, unsigned int flags) { - std::unique_ptr<std::string> outfile; - @autoreleasepool { - NSSavePanel *panel = [NSSavePanel savePanel]; - - NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]]; - NSArray *fileType = [extensionns componentsSeparatedByString:@","]; - - //[panel setMessage:@"Save Image File"]; - [panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ]; - [panel setCanSelectHiddenExtension:true]; - [panel setAllowedFileTypes:fileType]; - NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]]; - - NSURL* url = [NSURL fileURLWithPath:fileName]; - [panel setNameFieldStringValue: fileName]; - [panel setDirectoryURL: url]; - if([panel runModal] == - NSFileHandlingPanelOKButton) + NSSavePanel *panel = [NSSavePanel savePanel]; + + NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]]; + NSArray *fileType = [extensionns componentsSeparatedByString:@","]; + + //[panel setMessage:@"Save Image File"]; + [panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ]; + [panel setCanSelectHiddenExtension:true]; + [panel setAllowedFileTypes:fileType]; + NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]]; + + std::unique_ptr<std::string> outfile = nullptr; + NSURL* url = [NSURL fileURLWithPath:fileName]; + [panel setNameFieldStringValue: fileName]; + [panel setDirectoryURL: url]; + if([panel runModal] == + NSFileHandlingPanelOKButton) + { + NSURL* url = [panel URL]; + NSString* p = [url path]; + outfile = std::make_unique<std::string>( [p UTF8String] ); + // write the file + } + return outfile; +} + +void doSaveDialogModeless(const std::string* file, + const std::string* type, + const std::string* creator, + const std::string* extension, + unsigned int flags, + void (*callback)(bool, std::string&, void*), + void *userdata) +{ + NSSavePanel *panel = [NSSavePanel savePanel]; + + NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]]; + NSArray *fileType = [extensionns componentsSeparatedByString:@","]; + + //[panel setMessage:@"Save Image File"]; + [panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ]; + [panel setCanSelectHiddenExtension:true]; + [panel setAllowedFileTypes:fileType]; + NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]]; + + NSURL* url = [NSURL fileURLWithPath:fileName]; + [panel setNameFieldStringValue: fileName]; + [panel setDirectoryURL: url]; + + + [panel beginWithCompletionHandler:^(NSModalResponse result) + { + if (result == NSOKButton) { NSURL* url = [panel URL]; NSString* p = [url path]; - outfile.reset(new std::string([p UTF8String])); - // write the file + std::string outfile([p UTF8String]); + + callback(true, outfile, userdata); } - } - return outfile; + else // cancel + { + std::string outfile; + callback(false, outfile, userdata); + } + }]; } #endif diff --git a/indra/newview/llfloatereditsky.cpp b/indra/newview/llfloatereditsky.cpp index 6bdc5ee823..2d5e86869d 100644 --- a/indra/newview/llfloatereditsky.cpp +++ b/indra/newview/llfloatereditsky.cpp @@ -523,7 +523,7 @@ void LLFloaterEditSky::refreshSkyPresetsList() for (LLEnvironment::list_name_id_t::iterator it = list.begin(); it != list.end(); ++it) { - mSkyPresetCombo->add((*it).first, LLSDArray((*it).first)((*it).second)); + mSkyPresetCombo->add((*it).first, llsd::array((*it).first, (*it).second)); } mSkyPresetCombo->setLabel(getString("combo_label")); diff --git a/indra/newview/llfloatereditwater.cpp b/indra/newview/llfloatereditwater.cpp index 6e7b777e70..c44ae7faca 100644 --- a/indra/newview/llfloatereditwater.cpp +++ b/indra/newview/llfloatereditwater.cpp @@ -335,7 +335,7 @@ void LLFloaterEditWater::refreshWaterPresetsList() for (LLEnvironment::list_name_id_t::iterator it = list.begin(); it != list.end(); ++it) { - mWaterPresetCombo->add((*it).first, LLSDArray((*it).first)((*it).second)); + mWaterPresetCombo->add((*it).first, llsd::array((*it).first, (*it).second)); } mWaterPresetCombo->setLabel(getString("combo_label")); diff --git a/indra/newview/llfloaterexperienceprofile.cpp b/indra/newview/llfloaterexperienceprofile.cpp index a99a096ea7..f6afdd29fb 100644 --- a/indra/newview/llfloaterexperienceprofile.cpp +++ b/indra/newview/llfloaterexperienceprofile.cpp @@ -92,8 +92,10 @@ class LLExperienceHandler : public LLCommandHandler public: LLExperienceHandler() : LLCommandHandler("experience", UNTRUSTED_THROTTLE) { } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if(params.size() != 2 || params[1].asString() != "profile") return false; diff --git a/indra/newview/llfloaterhandler.cpp b/indra/newview/llfloaterhandler.cpp index 8ebb14149c..b66049de7f 100644 --- a/indra/newview/llfloaterhandler.cpp +++ b/indra/newview/llfloaterhandler.cpp @@ -49,7 +49,7 @@ LLFloater* get_parent_floater(LLView* view) } -bool LLFloaterHandler::handle(const LLSD ¶ms, const LLSD &query_map, LLMediaCtrl *web) +bool LLFloaterHandler::handle(const LLSD ¶ms, const LLSD &query_map, const std::string& grid, LLMediaCtrl *web) { if (params.size() < 1) return false; LLFloater* floater = NULL; diff --git a/indra/newview/llfloaterhandler.h b/indra/newview/llfloaterhandler.h index 5915642d66..959c972275 100644 --- a/indra/newview/llfloaterhandler.h +++ b/indra/newview/llfloaterhandler.h @@ -33,7 +33,7 @@ class LLFloaterHandler { public: LLFloaterHandler() : LLCommandHandler("floater", UNTRUSTED_BLOCK) { } - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web); + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web); }; #endif diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp index f1807f1c5b..f63268660c 100644 --- a/indra/newview/llfloaterimnearbychat.cpp +++ b/indra/newview/llfloaterimnearbychat.cpp @@ -901,8 +901,10 @@ public: LLChatCommandHandler() : LLCommandHandler("chat", UNTRUSTED_BLOCK) { } // Your code here - bool handle(const LLSD& tokens, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& tokens, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { bool retval = false; // Need at least 2 tokens to have a valid message. diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 7e6af45515..37ae80fa8f 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -46,7 +46,7 @@ class LLSearchHandler : public LLCommandHandler public: // requires trusted browser to trigger LLSearchHandler() : LLCommandHandler("search", UNTRUSTED_CLICK_ONLY) { } - bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& tokens, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableSearch")) { diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp index bd49405f34..9f277021c8 100644 --- a/indra/newview/llfloatertopobjects.cpp +++ b/indra/newview/llfloatertopobjects.cpp @@ -49,6 +49,7 @@ #include "llviewerparcelmgr.h" #include "llviewerregion.h" #include "lluictrlfactory.h" +#include "llviewerobjectlist.h" #include "llviewerwindow.h" #include "llfloaterregioninfo.h" @@ -83,6 +84,8 @@ LLFloaterTopObjects::LLFloaterTopObjects(const LLSD& key) mCommitCallbackRegistrar.add("TopObjects.GetByOwnerName", boost::bind(&LLFloaterTopObjects::onGetByOwnerName, this)); mCommitCallbackRegistrar.add("TopObjects.GetByParcelName", boost::bind(&LLFloaterTopObjects::onGetByParcelName, this)); mCommitCallbackRegistrar.add("TopObjects.CommitObjectsList",boost::bind(&LLFloaterTopObjects::onCommitObjectsList, this)); + + mCommitCallbackRegistrar.add("TopObjects.TeleportToSelected", boost::bind(&LLFloaterTopObjects::teleportToSelectedObject, this)); } LLFloaterTopObjects::~LLFloaterTopObjects() @@ -92,10 +95,11 @@ LLFloaterTopObjects::~LLFloaterTopObjects() // virtual BOOL LLFloaterTopObjects::postBuild() { - LLScrollListCtrl *objects_list = getChild<LLScrollListCtrl>("objects_list"); - getChild<LLUICtrl>("objects_list")->setFocus(TRUE); - objects_list->setDoubleClickCallback(onDoubleClickObjectsList, this); - objects_list->setCommitOnSelectionChange(TRUE); + mObjectsScrollList = getChild<LLScrollListCtrl>("objects_list"); + mObjectsScrollList->setFocus(TRUE); + mObjectsScrollList->setDoubleClickCallback(onDoubleClickObjectsList, this); + mObjectsScrollList->setCommitOnSelectionChange(TRUE); + mObjectsScrollList->setCommitCallback(boost::bind(&LLFloaterTopObjects::onSelectionChanged, this)); setDefaultBtn("show_beacon_btn"); @@ -421,6 +425,8 @@ void LLFloaterTopObjects::clearList() mObjectListData.clear(); mObjectListIDs.clear(); mtotalScore = 0.f; + + onSelectionChanged(); } @@ -507,3 +513,38 @@ void LLFloaterTopObjects::showBeacon() std::string tooltip(""); LLTracker::trackLocation(pos_global, name, tooltip, LLTracker::LOCATION_ITEM); } + +void LLFloaterTopObjects::teleportToSelectedObject() +{ + std::vector<LLScrollListItem*> selected_items = mObjectsScrollList->getAllSelected(); + if (selected_items.size() == 1) + { + LLScrollListItem* first_selected = selected_items.front(); + + LLVector3d teleport_location; + LLViewerObject *viewer_object = gObjectList.findObject(first_selected->getUUID()); + if (viewer_object == NULL) + { + // If we cannot find the object in the viewer list, teleport to the last reported position + std::string pos_string = first_selected->getColumn(3)->getValue().asString(); + + F32 x, y, z; + S32 matched = sscanf(pos_string.c_str(), "<%g,%g,%g>", &x, &y, &z); + if (matched != 3) return; + + LLVector3 pos_agent(x, y, z); + teleport_location = gAgent.getPosGlobalFromAgent(pos_agent); + } + else + { + // If we can find the object in the viewer list, teleport to the known current position + teleport_location = viewer_object->getPositionGlobal(); + } + gAgent.teleportViaLocationLookAt(teleport_location); + } +} + +void LLFloaterTopObjects::onSelectionChanged() +{ + getChildView("teleport_btn")->setEnabled(mObjectsScrollList->getNumSelected() == 1); +} diff --git a/indra/newview/llfloatertopobjects.h b/indra/newview/llfloatertopobjects.h index 3138249c7a..b73401e50d 100644 --- a/indra/newview/llfloatertopobjects.h +++ b/indra/newview/llfloatertopobjects.h @@ -30,6 +30,7 @@ #include "llfloater.h" class LLUICtrl; +class LLScrollListCtrl; // Bits for simulator performance query flags enum LAND_STAT_FLAGS @@ -75,6 +76,7 @@ private: void initColumns(LLCtrlListInterface *list); void onCommitObjectsList(); + void onSelectionChanged(); static void onDoubleClickObjectsList(void* data); void onClickShowBeacon(); @@ -90,6 +92,7 @@ private: void onGetByParcelName(); void showBeacon(); + void teleportToSelectedObject(); private: std::string mMethod; @@ -106,6 +109,7 @@ private: F32 mtotalScore; static LLFloaterTopObjects* sInstance; + LLScrollListCtrl* mObjectsScrollList; }; #endif diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 704abd269f..8f3ec8af05 100755 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -124,8 +124,10 @@ public: // requires trusted browser to trigger LLWorldMapHandler() : LLCommandHandler("worldmap", UNTRUSTED_CLICK_ONLY ) { } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableWorldMap")) { @@ -163,7 +165,10 @@ public: { } - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableWorldMap")) { diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp index 0c8e248538..03c1b6f631 100644 --- a/indra/newview/llglsandbox.cpp +++ b/indra/newview/llglsandbox.cpp @@ -741,6 +741,12 @@ void LLViewerParcelMgr::renderCollisionSegments(U8* segments, BOOL use_pass, LLV gGL.end(); } +void LLViewerParcelMgr::resetCollisionTimer() +{ + mCollisionTimer.reset(); + mRenderCollision = TRUE; +} + void draw_line_cube(F32 width, const LLVector3& center) { width = 0.5f * width; diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index be52e280e1..85b8ff0570 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -78,8 +78,10 @@ public: return true; } - bool handle(const LLSD& tokens, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& tokens, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (LLStartUp::getStartupState() < STATE_STARTED) { diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 67240ac7e7..145814ab41 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -213,8 +213,7 @@ bool contains_nocopy_items(const LLUUID& id) return false; } -// Generates a string containing the path to the item specified by -// item_id. +// Generates a string containing the path to the item specified by id. void append_path(const LLUUID& id, std::string& path) { std::string temp; @@ -234,6 +233,36 @@ void append_path(const LLUUID& id, std::string& path) path.append(temp); } +// Generates a string containing the path name of the object. +std::string make_path(const LLInventoryObject* object) +{ + std::string path; + append_path(object->getUUID(), path); + return path + "/" + object->getName(); +} + +// Generates a string containing the path name of the object specified by id. +std::string make_inventory_path(const LLUUID& id) +{ + if (LLInventoryObject* object = gInventory.getObject(id)) + return make_path(object); + return ""; +} + +// Generates a string containing the path name and id of the object. +std::string make_info(const LLInventoryObject* object) +{ + return "'" + make_path(object) + "' (" + object->getUUID().asString() + ")"; +} + +// Generates a string containing the path name and id of the object specified by id. +std::string make_inventory_info(const LLUUID& id) +{ + if (LLInventoryObject* object = gInventory.getObject(id)) + return make_info(object); + return "<Inventory object not found!> (" + id.asString() + ")"; +} + void update_marketplace_folder_hierarchy(const LLUUID cat_id) { // When changing the marketplace status of a folder, the only thing that needs to happen is @@ -1415,6 +1444,7 @@ bool move_item_to_marketplacelistings(LLInventoryItem* inv_item, LLUUID dest_fol if (copy) { // Copy the item + LL_INFOS("SLM") << "Copy item '" << make_info(viewer_inv_item) << "' to '" << make_inventory_path(dest_folder) << "'" << LL_ENDL; LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(update_folder_cb, dest_folder)); copy_inventory_item( gAgent.getID(), @@ -1426,6 +1456,7 @@ bool move_item_to_marketplacelistings(LLInventoryItem* inv_item, LLUUID dest_fol } else { + LL_INFOS("SLM") << "Move item '" << make_info(viewer_inv_item) << "' to '" << make_inventory_path(dest_folder) << "'" << LL_ENDL; // Reparent the item gInventory.changeItemParent(viewer_inv_item, dest_folder, true); } @@ -1472,6 +1503,7 @@ bool move_folder_to_marketplacelistings(LLInventoryCategory* inv_cat, const LLUU } else { + LL_INFOS("SLM") << "Move category " << make_info(viewer_inv_cat) << " to '" << make_inventory_path(dest_folder) << "'" << LL_ENDL; // Reparent the folder gInventory.changeCategoryParent(viewer_inv_cat, dest_folder, false); // Check the destination folder recursively for no copy items and promote the including folders if any diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h index 56ad6f6496..8c8bd789c2 100644 --- a/indra/newview/llinventoryfunctions.h +++ b/indra/newview/llinventoryfunctions.h @@ -78,9 +78,19 @@ void copy_inventory_category(LLInventoryModel* model, LLViewerInventoryCategory* void copy_inventory_category_content(const LLUUID& new_cat_uuid, LLInventoryModel* model, LLViewerInventoryCategory* cat, const LLUUID& root_copy_id, bool move_no_copy_items); -// Generates a string containing the path to the item specified by item_id. +// Generates a string containing the path to the object specified by id (not including the object name). void append_path(const LLUUID& id, std::string& path); +// Generates a string containing the path name of the object. +std::string make_path(const LLInventoryObject* object); +// Generates a string containing the path name of the object specified by id. +std::string make_inventory_path(const LLUUID& id); + +// Generates a string containing the path name and id of the object. +std::string make_info(const LLInventoryObject* object); +// Generates a string containing the path name and id of the object specified by id. +std::string make_inventory_info(const LLUUID& id); + typedef boost::function<void(std::string& validation_message, S32 depth, LLError::ELevel log_level)> validation_callback_t; bool can_move_item_to_marketplace(const LLInventoryCategory* root_folder, LLInventoryCategory* dest_folder, LLInventoryItem* inv_item, std::string& tooltip_msg, S32 bundle_size = 1, bool from_paste = false); diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index 0bbf201dc6..06050dc4a4 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -62,6 +62,7 @@ #include "bufferarray.h" #include "bufferstream.h" #include "llcorehttputil.h" +#include "hbxxh.h" //#define DIFF_INVENTORY_FILES #ifdef DIFF_INVENTORY_FILES @@ -451,17 +452,16 @@ void LLInventoryModel::getDirectDescendentsOf(const LLUUID& cat_id, items = get_ptr_in_map(mParentChildItemTree, cat_id); } -LLMD5 LLInventoryModel::hashDirectDescendentNames(const LLUUID& cat_id) const +LLInventoryModel::digest_t LLInventoryModel::hashDirectDescendentNames(const LLUUID& cat_id) const { LLInventoryModel::cat_array_t* cat_array; LLInventoryModel::item_array_t* item_array; getDirectDescendentsOf(cat_id,cat_array,item_array); - LLMD5 item_name_hash; if (!item_array) { - item_name_hash.finalize(); - return item_name_hash; + return LLUUID::null; } + HBXXH128 item_name_hash; for (LLInventoryModel::item_array_t::const_iterator iter = item_array->begin(); iter != item_array->end(); iter++) @@ -471,8 +471,7 @@ LLMD5 LLInventoryModel::hashDirectDescendentNames(const LLUUID& cat_id) const continue; item_name_hash.update(item->getName()); } - item_name_hash.finalize(); - return item_name_hash; + return item_name_hash.digest(); } // SJB: Added version to lock the arrays to catch potential logic bugs @@ -669,6 +668,7 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id, const std::string& pname, inventory_func_type callback) { + LL_DEBUGS(LOG_INV) << "Create '" << pname << "' in '" << make_inventory_path(parent_id) << "'" << LL_ENDL; LLUUID id; if (!isInventoryUsable()) { @@ -760,6 +760,7 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id, cat->packMessage(msg); gAgent.sendReliableMessage(); + LL_INFOS(LOG_INV) << "Created new category '" << make_inventory_path(id) << "'" << LL_ENDL; // return the folder id of the newly created folder return id; } @@ -1348,6 +1349,7 @@ void LLInventoryModel::moveObject(const LLUUID& object_id, const LLUUID& cat_id) LLPointer<LLViewerInventoryCategory> cat = getCategory(object_id); if(cat && (cat->getParentUUID() != cat_id)) { + LL_DEBUGS(LOG_INV) << "Move category '" << make_path(cat) << "' to '" << make_inventory_path(cat_id) << "'" << LL_ENDL; cat_array_t* cat_array; cat_array = getUnlockedCatArray(cat->getParentUUID()); if(cat_array) vector_replace_with_last(*cat_array, cat); @@ -1360,6 +1362,7 @@ void LLInventoryModel::moveObject(const LLUUID& object_id, const LLUUID& cat_id) LLPointer<LLViewerInventoryItem> item = getItem(object_id); if(item && (item->getParentUUID() != cat_id)) { + LL_DEBUGS(LOG_INV) << "Move item '" << make_path(item) << "' to '" << make_inventory_path(cat_id) << "'" << LL_ENDL; item_array_t* item_array; item_array = getUnlockedItemArray(item->getParentUUID()); if(item_array) vector_replace_with_last(*item_array, item); @@ -1378,14 +1381,14 @@ void LLInventoryModel::changeItemParent(LLViewerInventoryItem* item, { if (item->getParentUUID() == new_parent_id) { - LL_DEBUGS(LOG_INV) << "'" << item->getName() << "' (" << item->getUUID() - << ") is already in folder " << new_parent_id << LL_ENDL; + LL_DEBUGS(LOG_INV) << make_info(item) << " is already in folder " << make_inventory_info(new_parent_id) << LL_ENDL; } else { - LL_INFOS(LOG_INV) << "Moving '" << item->getName() << "' (" << item->getUUID() - << ") from " << item->getParentUUID() << " to folder " - << new_parent_id << LL_ENDL; + LL_INFOS(LOG_INV) << "Move item " << make_info(item) + << " from " << make_inventory_info(item->getParentUUID()) + << " to " << make_inventory_info(new_parent_id) << LL_ENDL; + LLInventoryModel::update_list_t update; LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1); update.push_back(old_folder); @@ -1417,6 +1420,10 @@ void LLInventoryModel::changeCategoryParent(LLViewerInventoryCategory* cat, return; } + LL_INFOS(LOG_INV) << "Move category " << make_info(cat) + << " from " << make_inventory_info(cat->getParentUUID()) + << " to " << make_inventory_info(new_parent_id) << LL_ENDL; + LLInventoryModel::update_list_t update; LLInventoryModel::LLCategoryUpdate old_folder(cat->getParentUUID(), -1); update.push_back(old_folder); diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index 685c2c0fe5..6c5706f871 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -39,7 +39,6 @@ #include "llpermissionsflags.h" #include "llviewerinventory.h" #include "llstring.h" -#include "llmd5.h" #include "httpcommon.h" #include "httprequest.h" #include "httpoptions.h" @@ -257,8 +256,9 @@ public: cat_array_t*& categories, item_array_t*& items) const; + typedef LLUUID digest_t; // To clarify the actual usage of this "UUID" // Compute a hash of direct descendant names (for detecting child name changes) - LLMD5 hashDirectDescendentNames(const LLUUID& cat_id) const; + digest_t hashDirectDescendentNames(const LLUUID& cat_id) const; // Starting with the object specified, add its descendants to the // array provided, but do not add the inventory object specified diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp index 26d7a7a28a..db0751cb89 100644 --- a/indra/newview/llinventoryobserver.cpp +++ b/indra/newview/llinventoryobserver.cpp @@ -640,7 +640,7 @@ void LLInventoryCategoriesObserver::changed(U32 mask) // computed, or (b) a name has changed. if (!cat_data.mIsNameHashInitialized || (mask & LLInventoryObserver::LABEL)) { - LLMD5 item_name_hash = gInventory.hashDirectDescendentNames(cat_id); + digest_t item_name_hash = gInventory.hashDirectDescendentNames(cat_id); if (cat_data.mItemNameHash != item_name_hash) { cat_data.mIsNameHashInitialized = true; @@ -701,7 +701,7 @@ bool LLInventoryCategoriesObserver::addCategory(const LLUUID& cat_id, callback_t { if(init_name_hash) { - LLMD5 item_name_hash = gInventory.hashDirectDescendentNames(cat_id); + digest_t item_name_hash = gInventory.hashDirectDescendentNames(cat_id); mCategoryMap.insert(category_map_value_t(cat_id,LLCategoryData(cat_id, cb, version, current_num_known_descendents,item_name_hash))); } else @@ -727,11 +727,10 @@ LLInventoryCategoriesObserver::LLCategoryData::LLCategoryData( , mDescendentsCount(num_descendents) , mIsNameHashInitialized(false) { - mItemNameHash.finalize(); } LLInventoryCategoriesObserver::LLCategoryData::LLCategoryData( - const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents, LLMD5 name_hash) + const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents, const digest_t& name_hash) : mCatID(cat_id) , mCallback(cb) diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h index 36d8ee3f59..4af8102055 100644 --- a/indra/newview/llinventoryobserver.h +++ b/indra/newview/llinventoryobserver.h @@ -28,7 +28,6 @@ #define LL_LLINVENTORYOBSERVERS_H #include "lluuid.h" -#include "llmd5.h" #include <string> #include <vector> @@ -271,14 +270,15 @@ public: void removeCategory(const LLUUID& cat_id); protected: + typedef LLUUID digest_t; // To clarify the actual usage of this "UUID" struct LLCategoryData { LLCategoryData(const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents); - LLCategoryData(const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents, LLMD5 name_hash); + LLCategoryData(const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents, const digest_t& name_hash); callback_t mCallback; S32 mVersion; S32 mDescendentsCount; - LLMD5 mItemNameHash; + digest_t mItemNameHash; bool mIsNameHashInitialized; LLUUID mCatID; }; diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp index 31e76267e6..d790c6f95e 100644 --- a/indra/newview/lllandmarklist.cpp +++ b/indra/newview/lllandmarklist.cpp @@ -39,12 +39,6 @@ // Globals LLLandmarkList gLandmarkList; -// number is mostly arbitrary, but it should be below DEFAULT_QUEUE_SIZE pool size, -// which is 4096, to not overfill the pool if user has more than 4K of landmarks -// and it should leave some space for other potential simultaneous asset request -const S32 MAX_SIMULTANEOUS_REQUESTS = 512; - - //////////////////////////////////////////////////////////////////////////// // LLLandmarkList @@ -83,12 +77,6 @@ LLLandmark* LLLandmarkList::getAsset(const LLUUID& asset_uuid, loaded_callback_t loaded_callback_map_t::value_type vt(asset_uuid, cb); mLoadedCallbackMap.insert(vt); } - - if ( mWaitList.find(asset_uuid) != mWaitList.end() ) - { - // Landmark is sheduled for download, but not requested yet - return NULL; - } landmark_requested_list_t::iterator iter = mRequestedList.find(asset_uuid); if (iter != mRequestedList.end()) @@ -100,17 +88,6 @@ LLLandmark* LLLandmarkList::getAsset(const LLUUID& asset_uuid, loaded_callback_t } } - if (mRequestedList.size() > MAX_SIMULTANEOUS_REQUESTS) - { - // Workarounds for corutines pending list size limit: - // Postpone download till queue is emptier. - // Coroutines have own built in 'pending' list, but unfortunately - // it is too small compared to potential amount of landmarks - // or assets. - mWaitList.insert(asset_uuid); - return NULL; - } - mRequestedList[asset_uuid] = gFrameTimeSeconds; // Note that getAssetData can callback immediately and cleans mRequestedList @@ -197,33 +174,6 @@ void LLLandmarkList::processGetAssetReply( gLandmarkList.mRequestedList.erase(uuid); //mBadList effectively blocks any load, so no point keeping id in requests gLandmarkList.eraseCallbacks(uuid); } - - // getAssetData can fire callback immediately, causing - // a recursion which is suboptimal for very large wait list. - // 'scheduling' indicates that we are inside request and - // shouldn't be launching more requests. - static bool scheduling = false; - if (!scheduling && !gLandmarkList.mWaitList.empty()) - { - scheduling = true; - while (!gLandmarkList.mWaitList.empty() && gLandmarkList.mRequestedList.size() < MAX_SIMULTANEOUS_REQUESTS) - { - // start new download from wait list - landmark_uuid_list_t::iterator iter = gLandmarkList.mWaitList.begin(); - LLUUID asset_uuid = *iter; - gLandmarkList.mWaitList.erase(iter); - - // add to mRequestedList before calling getAssetData() - gLandmarkList.mRequestedList[asset_uuid] = gFrameTimeSeconds; - - // Note that getAssetData can callback immediately and cleans mRequestedList - gAssetStorage->getAssetData(asset_uuid, - LLAssetType::AT_LANDMARK, - LLLandmarkList::processGetAssetReply, - NULL); - } - scheduling = false; - } } BOOL LLLandmarkList::isAssetInLoadedCallbackMap(const LLUUID& asset_uuid) diff --git a/indra/newview/lllandmarklist.h b/indra/newview/lllandmarklist.h index f5fa958204..b50332b215 100644 --- a/indra/newview/lllandmarklist.h +++ b/indra/newview/lllandmarklist.h @@ -72,7 +72,6 @@ protected: typedef std::set<LLUUID> landmark_uuid_list_t; landmark_uuid_list_t mBadList; - landmark_uuid_list_t mWaitList; typedef std::map<LLUUID,F32> landmark_requested_list_t; landmark_requested_list_t mRequestedList; diff --git a/indra/newview/llloginhandler.cpp b/indra/newview/llloginhandler.cpp index 22cedf450e..92e341ce93 100644 --- a/indra/newview/llloginhandler.cpp +++ b/indra/newview/llloginhandler.cpp @@ -87,6 +87,7 @@ void LLLoginHandler::parse(const LLSD& queryMap) bool LLLoginHandler::handle(const LLSD& tokens, const LLSD& query_map, + const std::string& grid, LLMediaCtrl* web) { // do nothing if we are already logged in diff --git a/indra/newview/llloginhandler.h b/indra/newview/llloginhandler.h index 1f2eacd094..2579341dbf 100644 --- a/indra/newview/llloginhandler.h +++ b/indra/newview/llloginhandler.h @@ -35,7 +35,7 @@ class LLLoginHandler : public LLCommandHandler public: // allow from external browsers LLLoginHandler() : LLCommandHandler("login", UNTRUSTED_ALLOW) { } - /*virtual*/ bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web); + /*virtual*/ bool handle(const LLSD& tokens, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web); // Fill in our internal fields from a SLURL like // secondlife:///app/login?first=Bob&last=Dobbs diff --git a/indra/newview/llmaterialmgr.h b/indra/newview/llmaterialmgr.h index 843dc66fbc..8f1ec8584b 100644 --- a/indra/newview/llmaterialmgr.h +++ b/indra/newview/llmaterialmgr.h @@ -93,7 +93,11 @@ private: bool operator==(const TEMaterialPair& b) const { return (materialID == b.materialID) && (te == b.te); } }; - + + // definitions follow class + friend std::hash<TEMaterialPair>; + friend size_t hash_value(const TEMaterialPair&) noexcept; + friend inline bool operator<( const LLMaterialMgr::TEMaterialPair& lhs, const LLMaterialMgr::TEMaterialPair& rhs) @@ -102,13 +106,6 @@ private: (lhs.materialID < rhs.materialID); } - struct TEMaterialPairHasher - { - enum { bucket_size = 8 }; - size_t operator()(const TEMaterialPair& key_value) const { return *((size_t*)key_value.materialID.get()); } // cheesy, but effective - bool operator()(const TEMaterialPair& left, const TEMaterialPair& right) const { return left < right; } - }; - typedef std::set<LLMaterialID> material_queue_t; typedef std::map<LLUUID, material_queue_t> get_queue_t; typedef std::pair<const LLUUID, LLMaterialID> pending_material_t; @@ -116,7 +113,7 @@ private: typedef std::map<LLMaterialID, get_callback_t*> get_callback_map_t; - typedef boost::unordered_map<TEMaterialPair, get_callback_te_t*, TEMaterialPairHasher> get_callback_te_map_t; + typedef boost::unordered_map<TEMaterialPair, get_callback_te_t*> get_callback_te_map_t; typedef std::set<LLUUID> getall_queue_t; typedef std::map<LLUUID, F64> getall_pending_map_t; typedef std::map<LLUUID, getall_callback_t*> getall_callback_map_t; @@ -146,5 +143,23 @@ private: U32 getMaxEntries(const LLViewerRegion* regionp); }; +// std::hash implementation for TEMaterialPair +namespace std +{ + template<> struct hash<LLMaterialMgr::TEMaterialPair> + { + inline size_t operator()(const LLMaterialMgr::TEMaterialPair& p) const noexcept + { + return size_t((p.te + 1) * p.materialID.getDigest64()); + } + }; +} + +// For use with boost containers. +inline size_t hash_value(const LLMaterialMgr::TEMaterialPair& p) noexcept +{ + return size_t((p.te + 1) * p.materialID.getDigest64()); +} + #endif // LL_LLMATERIALMGR_H diff --git a/indra/newview/lloutfitobserver.cpp b/indra/newview/lloutfitobserver.cpp index 5bb69367aa..3ec5bcd9fc 100644 --- a/indra/newview/lloutfitobserver.cpp +++ b/indra/newview/lloutfitobserver.cpp @@ -34,7 +34,6 @@ LLOutfitObserver::LLOutfitObserver() : mCOFLastVersion(LLViewerInventoryCategory::VERSION_UNKNOWN) { - mItemNameHash.finalize(); gInventory.addObserver(this); } @@ -83,7 +82,7 @@ bool LLOutfitObserver::checkCOF() return false; bool cof_changed = false; - LLMD5 item_name_hash = gInventory.hashDirectDescendentNames(cof); + LLUUID item_name_hash = gInventory.hashDirectDescendentNames(cof); if (item_name_hash != mItemNameHash) { cof_changed = true; diff --git a/indra/newview/lloutfitobserver.h b/indra/newview/lloutfitobserver.h index 77041db68d..2f136d48e8 100644 --- a/indra/newview/lloutfitobserver.h +++ b/indra/newview/lloutfitobserver.h @@ -28,7 +28,6 @@ #define LL_OUTFITOBSERVER_H #include "llsingleton.h" -#include "llmd5.h" /** * Outfit observer facade that provides simple possibility to subscribe on @@ -78,7 +77,7 @@ protected: bool mLastOutfitDirtiness; - LLMD5 mItemNameHash; + LLUUID mItemNameHash; private: signal_t mBOFReplaced; diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp index 0103bf628a..1b4684d073 100644 --- a/indra/newview/llpaneleditwearable.cpp +++ b/indra/newview/llpaneleditwearable.cpp @@ -1665,7 +1665,7 @@ class LLMetricSystemHandler : public LLCommandHandler public: LLMetricSystemHandler() : LLCommandHandler("metricsystem", UNTRUSTED_CLICK_ONLY) { } - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { // change height units TRUE for meters and FALSE for feet BOOL new_value = (gSavedSettings.getBOOL("HeightUnits") == FALSE) ? TRUE : FALSE; diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index b14fdbf38e..8f1e57e44c 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -97,7 +97,7 @@ class LLLoginLocationAutoHandler : public LLCommandHandler public: // don't allow from external browsers LLLoginLocationAutoHandler() : LLCommandHandler("location_login", UNTRUSTED_BLOCK) { } - bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& tokens, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) { diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index 0f00231643..1d5ed93c4d 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -91,8 +91,10 @@ class LLParcelHandler : public LLCommandHandler public: // requires trusted browser to trigger LLParcelHandler() : LLCommandHandler("parcel", UNTRUSTED_THROTTLE) { } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (params.size() < 2) { diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 708ff26ced..79b7ed8216 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -460,8 +460,10 @@ public: // requires trusted browser to trigger LLProfileHandler() : LLCommandHandler("profile", UNTRUSTED_THROTTLE) { } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (params.size() < 1) return false; std::string agent_name = params[0]; @@ -508,8 +510,10 @@ public: return false; } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (params.size() < 2) return false; LLUUID avatar_id; diff --git a/indra/newview/llpanelprofileclassifieds.cpp b/indra/newview/llpanelprofileclassifieds.cpp index 1ff12b4f37..dec6cfd83b 100644 --- a/indra/newview/llpanelprofileclassifieds.cpp +++ b/indra/newview/llpanelprofileclassifieds.cpp @@ -106,7 +106,7 @@ public: return true; } - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (LLStartUp::getStartupState() < STATE_STARTED) { diff --git a/indra/newview/llpanelprofilepicks.cpp b/indra/newview/llpanelprofilepicks.cpp index 45d0252e4f..274d42f7eb 100644 --- a/indra/newview/llpanelprofilepicks.cpp +++ b/indra/newview/llpanelprofilepicks.cpp @@ -87,8 +87,10 @@ public: return true; } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (LLStartUp::getStartupState() < STATE_STARTED) { diff --git a/indra/newview/llpathfindingnavmesh.cpp b/indra/newview/llpathfindingnavmesh.cpp index 0287c07f96..c297cac771 100644 --- a/indra/newview/llpathfindingnavmesh.cpp +++ b/indra/newview/llpathfindingnavmesh.cpp @@ -143,7 +143,7 @@ void LLPathfindingNavMesh::handleNavMeshResult(const LLSD &pContent, U32 pNavMes unsigned int binSize = value.size(); std::string newStr(reinterpret_cast<const char *>(&value[0]), binSize); std::istringstream streamdecomp( newStr ); - unsigned int decompBinSize = 0; + size_t decompBinSize = 0; bool valid = false; U8* pUncompressedNavMeshContainer = unzip_llsdNavMesh( valid, decompBinSize, streamdecomp, binSize ) ; if ( !valid ) diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index 33656566d1..095d5a0a1e 100644 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -39,7 +39,9 @@ #include "llinventorydefines.h" #include "llinventorymodel.h" #include "lllineeditor.h" +#include "llmd5.h" #include "llnotificationsutil.h" +#include "llmd5.h" #include "llresmgr.h" #include "roles_constants.h" #include "llscrollbar.h" diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index d677a996c1..23c6cc01f5 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -40,6 +40,7 @@ #include "llinventorymodel.h" #include "llkeyboard.h" #include "lllineeditor.h" +#include "llmd5.h" #include "llhelp.h" #include "llnotificationsutil.h" #include "llresmgr.h" diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp index 707b602fc6..b1eed81476 100644 --- a/indra/newview/llsettingsvo.cpp +++ b/indra/newview/llsettingsvo.cpp @@ -568,11 +568,11 @@ void LLSettingsVOSky::convertAtmosphericsToLegacy(LLSD& legacy, LLSD& settings) legacy[SETTING_BLUE_DENSITY] = ensure_array_4(legacyhaze[SETTING_BLUE_DENSITY], 1.0); legacy[SETTING_BLUE_HORIZON] = ensure_array_4(legacyhaze[SETTING_BLUE_HORIZON], 1.0); - legacy[SETTING_DENSITY_MULTIPLIER] = LLSDArray(legacyhaze[SETTING_DENSITY_MULTIPLIER].asReal())(0.0f)(0.0f)(1.0f); - legacy[SETTING_DISTANCE_MULTIPLIER] = LLSDArray(legacyhaze[SETTING_DISTANCE_MULTIPLIER].asReal())(0.0f)(0.0f)(1.0f); + legacy[SETTING_DENSITY_MULTIPLIER] = llsd::array(legacyhaze[SETTING_DENSITY_MULTIPLIER].asReal(), 0.0f, 0.0f, 1.0f); + legacy[SETTING_DISTANCE_MULTIPLIER] = llsd::array(legacyhaze[SETTING_DISTANCE_MULTIPLIER].asReal(), 0.0f, 0.0f, 1.0f); - legacy[SETTING_HAZE_DENSITY] = LLSDArray(legacyhaze[SETTING_HAZE_DENSITY])(0.0f)(0.0f)(1.0f); - legacy[SETTING_HAZE_HORIZON] = LLSDArray(legacyhaze[SETTING_HAZE_HORIZON])(0.0f)(0.0f)(1.0f); + legacy[SETTING_HAZE_DENSITY] = llsd::array(legacyhaze[SETTING_HAZE_DENSITY], 0.0f, 0.0f, 1.0f); + legacy[SETTING_HAZE_HORIZON] = llsd::array(legacyhaze[SETTING_HAZE_HORIZON], 0.0f, 0.0f, 1.0f); } } @@ -586,15 +586,15 @@ LLSD LLSettingsVOSky::convertToLegacy(const LLSettingsSky::ptr_t &psky, bool isA legacy[SETTING_CLOUD_COLOR] = ensure_array_4(settings[SETTING_CLOUD_COLOR], 1.0); legacy[SETTING_CLOUD_POS_DENSITY1] = ensure_array_4(settings[SETTING_CLOUD_POS_DENSITY1], 1.0); legacy[SETTING_CLOUD_POS_DENSITY2] = ensure_array_4(settings[SETTING_CLOUD_POS_DENSITY2], 1.0); - legacy[SETTING_CLOUD_SCALE] = LLSDArray(settings[SETTING_CLOUD_SCALE])(LLSD::Real(0.0))(LLSD::Real(0.0))(LLSD::Real(1.0)); + legacy[SETTING_CLOUD_SCALE] = llsd::array(settings[SETTING_CLOUD_SCALE], LLSD::Real(0.0), LLSD::Real(0.0), LLSD::Real(1.0)); legacy[SETTING_CLOUD_SCROLL_RATE] = settings[SETTING_CLOUD_SCROLL_RATE]; - legacy[SETTING_LEGACY_ENABLE_CLOUD_SCROLL] = LLSDArray(LLSD::Boolean(!is_approx_zero(settings[SETTING_CLOUD_SCROLL_RATE][0].asReal()))) - (LLSD::Boolean(!is_approx_zero(settings[SETTING_CLOUD_SCROLL_RATE][1].asReal()))); - legacy[SETTING_CLOUD_SHADOW] = LLSDArray(settings[SETTING_CLOUD_SHADOW].asReal())(0.0f)(0.0f)(1.0f); - legacy[SETTING_GAMMA] = LLSDArray(settings[SETTING_GAMMA])(0.0f)(0.0f)(1.0f); + legacy[SETTING_LEGACY_ENABLE_CLOUD_SCROLL] = llsd::array(LLSD::Boolean(!is_approx_zero(settings[SETTING_CLOUD_SCROLL_RATE][0].asReal())), + LLSD::Boolean(!is_approx_zero(settings[SETTING_CLOUD_SCROLL_RATE][1].asReal()))); + legacy[SETTING_CLOUD_SHADOW] = llsd::array(settings[SETTING_CLOUD_SHADOW].asReal(), 0.0f, 0.0f, 1.0f); + legacy[SETTING_GAMMA] = llsd::array(settings[SETTING_GAMMA], 0.0f, 0.0f, 1.0f); legacy[SETTING_GLOW] = ensure_array_4(settings[SETTING_GLOW], 1.0); legacy[SETTING_LIGHT_NORMAL] = ensure_array_4(psky->getLightDirection().getValue(), 0.0f); - legacy[SETTING_MAX_Y] = LLSDArray(settings[SETTING_MAX_Y])(0.0f)(0.0f)(1.0f); + legacy[SETTING_MAX_Y] = llsd::array(settings[SETTING_MAX_Y], 0.0f, 0.0f, 1.0f); legacy[SETTING_STAR_BRIGHTNESS] = settings[SETTING_STAR_BRIGHTNESS].asReal() / 250.0f; // convert from 0-500 -> 0-2 ala pre-FS-compat changes legacy[SETTING_SUNLIGHT_COLOR] = ensure_array_4(settings[SETTING_SUNLIGHT_COLOR], 1.0f); @@ -1062,7 +1062,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyPreset(const std::string &n newsettings[SETTING_NAME] = name; - LLSD watertrack = LLSDArray( + LLSD watertrack = llsd::array( LLSDMap(SETTING_KEYKFRAME, LLSD::Real(0.0f)) (SETTING_KEYNAME, "water:Default")); @@ -1077,7 +1077,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyPreset(const std::string &n skytrack.append(entry); } - newsettings[SETTING_TRACKS] = LLSDArray(watertrack)(skytrack); + newsettings[SETTING_TRACKS] = llsd::array(watertrack, skytrack); LLSD frames(LLSD::emptyMap()); @@ -1165,7 +1165,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyMessage(const LLUUID ®io watersettings[SETTING_NAME] = watername; frames[watername] = watersettings; - LLSD watertrack = LLSDArray( + LLSD watertrack = llsd::array( LLSDMap(SETTING_KEYKFRAME, LLSD::Real(0.0f)) (SETTING_KEYNAME, watername)); @@ -1179,7 +1179,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyMessage(const LLUUID ®io LLSD newsettings = LLSDMap ( SETTING_NAME, "Region (legacy)" ) - ( SETTING_TRACKS, LLSDArray(watertrack)(skytrack)) + ( SETTING_TRACKS, llsd::array(watertrack, skytrack)) ( SETTING_FRAMES, frames ) ( SETTING_TYPE, "daycycle" ); @@ -1360,7 +1360,7 @@ LLSD LLSettingsVODay::convertToLegacy(const LLSettingsVODay::ptr_t &pday) skys[name.str()] = std::static_pointer_cast<LLSettingsSky>((*it).second); F32 frame = ((tracksky.size() == 1) && (it == tracksky.begin())) ? -1.0f : (*it).first; - llsdcycle.append( LLSDArray(LLSD::Real(frame))(name.str()) ); + llsdcycle.append( llsd::array(LLSD::Real(frame), name.str()) ); } LLSD llsdskylist(LLSD::emptyMap()); @@ -1373,7 +1373,7 @@ LLSD LLSettingsVODay::convertToLegacy(const LLSettingsVODay::ptr_t &pday) llsdskylist[(*its).first] = llsdsky; } - return LLSDArray(LLSD::emptyMap())(llsdcycle)(llsdskylist)(llsdwater); + return llsd::array(LLSD::emptyMap(), llsdcycle, llsdskylist, llsdwater); } LLSettingsSkyPtr_t LLSettingsVODay::getDefaultSky() const diff --git a/indra/newview/llshareavatarhandler.cpp b/indra/newview/llshareavatarhandler.cpp index 142e00c3f7..8c5ebb75ef 100644 --- a/indra/newview/llshareavatarhandler.cpp +++ b/indra/newview/llshareavatarhandler.cpp @@ -38,7 +38,7 @@ public: { } - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableAvatarShare")) { diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index bcb57d2237..221912a029 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -661,9 +661,22 @@ bool idle_startup() #else void* window_handle = NULL; #endif - bool init = gAudiop->init(window_handle, LLAppViewer::instance()->getSecondLifeTitle()); - if(init) + if (gAudiop->init(window_handle, LLAppViewer::instance()->getSecondLifeTitle())) { + if (FALSE == gSavedSettings.getBOOL("UseMediaPluginsForStreamingAudio")) + { + LL_INFOS("AppInit") << "Using default impl to render streaming audio" << LL_ENDL; + gAudiop->setStreamingAudioImpl(gAudiop->createDefaultStreamingAudioImpl()); + } + + // if the audio engine hasn't set up its own preferred handler for streaming audio + // then set up the generic streaming audio implementation which uses media plugins + if (NULL == gAudiop->getStreamingAudioImpl()) + { + LL_INFOS("AppInit") << "Using media plugins to render streaming audio" << LL_ENDL; + gAudiop->setStreamingAudioImpl(new LLStreamingAudio_MediaPlugins()); + } + gAudiop->setMuted(TRUE); } else @@ -672,16 +685,6 @@ bool idle_startup() delete gAudiop; gAudiop = NULL; } - - if (gAudiop) - { - // if the audio engine hasn't set up its own preferred handler for streaming audio then set up the generic streaming audio implementation which uses media plugins - if (NULL == gAudiop->getStreamingAudioImpl()) - { - LL_INFOS("AppInit") << "Using media plugins to render streaming audio" << LL_ENDL; - gAudiop->setStreamingAudioImpl(new LLStreamingAudio_MediaPlugins()); - } - } } } diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 0a87b14e17..1ef5d1c50b 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -729,7 +729,7 @@ class LLBalanceHandler : public LLCommandHandler public: // Requires "trusted" browser/URL source LLBalanceHandler() : LLCommandHandler("balance", UNTRUSTED_BLOCK) { } - bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& tokens, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (tokens.size() == 1 && tokens[0].asString() == "request") diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index af89b4b53b..5c6f7254f2 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -859,12 +859,12 @@ LLTextureCache::~LLTextureCache() ////////////////////////////////////////////////////////////////////////////// //virtual -S32 LLTextureCache::update(F32 max_time_ms) +size_t LLTextureCache::update(F32 max_time_ms) { static LLFrameTimer timer ; static const F32 MAX_TIME_INTERVAL = 300.f ; //seconds. - S32 res; + size_t res; res = LLWorkerThread::update(max_time_ms); mListMutex.lock(); diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h index e1c752b58e..b6ace467c7 100644 --- a/indra/newview/lltexturecache.h +++ b/indra/newview/lltexturecache.h @@ -113,7 +113,7 @@ public: LLTextureCache(bool threaded); ~LLTextureCache(); - /*virtual*/ S32 update(F32 max_time_ms); + /*virtual*/ size_t update(F32 max_time_ms); void purgeCache(ELLPath location, bool remove_dir = true); void setReadOnly(BOOL read_only) ; diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index eea56af0ae..a1beec7c1f 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -2880,9 +2880,9 @@ bool LLTextureFetch::updateRequestPriority(const LLUUID& id, F32 priority) // Threads: T* //virtual -S32 LLTextureFetch::getPending() +size_t LLTextureFetch::getPending() { - S32 res; + size_t res; lockData(); // +Ct { LLMutexLock lock(&mQueueMutex); // +Mfq @@ -2957,7 +2957,7 @@ void LLTextureFetch::commonUpdate() // Threads: Tmain //virtual -S32 LLTextureFetch::update(F32 max_time_ms) +size_t LLTextureFetch::update(F32 max_time_ms) { static LLCachedControl<F32> band_width(gSavedSettings,"ThrottleBandwidthKBPS", 3000.0); @@ -2971,7 +2971,7 @@ S32 LLTextureFetch::update(F32 max_time_ms) mNetworkQueueMutex.unlock(); // -Mfnq } - S32 res = LLWorkerThread::update(max_time_ms); + size_t res = LLWorkerThread::update(max_time_ms); if (!mThreaded) { diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h index d087db275b..611a7d6419 100644 --- a/indra/newview/lltexturefetch.h +++ b/indra/newview/lltexturefetch.h @@ -65,7 +65,7 @@ public: class TFRequest; // Threads: Tmain - /*virtual*/ S32 update(F32 max_time_ms); + /*virtual*/ size_t update(F32 max_time_ms); // called in the main thread after the TextureCacheThread shuts down. // Threads: Tmain @@ -131,7 +131,7 @@ public: U32 getTotalNumHTTPRequests(); // Threads: T* - S32 getPending(); + size_t getPending(); // Threads: T* void lockQueue() { mQueueMutex.lock(); } diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp index 7c92e7ef98..6fc870f890 100644 --- a/indra/newview/llurldispatcher.cpp +++ b/indra/newview/llurldispatcher.cpp @@ -97,6 +97,8 @@ private: // Called by LLWorldMap when a region name has been resolved to a // location in-world, used by places-panel display. + static bool handleGrid(const LLSLURL& slurl); + friend class LLTeleportHandler; }; @@ -155,7 +157,7 @@ bool LLURLDispatcherImpl::dispatchApp(const LLSLURL& slurl, LL_INFOS() << "cmd: " << slurl.getAppCmd() << " path: " << slurl.getAppPath() << " query: " << slurl.getAppQuery() << LL_ENDL; const LLSD& query_map = LLURI::queryMap(slurl.getAppQuery()); bool handled = LLCommandDispatcher::dispatch( - slurl.getAppCmd(), slurl.getAppPath(), query_map, web, nav_type, trusted_browser); + slurl.getAppCmd(), slurl.getAppPath(), query_map, slurl.getGrid(), web, nav_type, trusted_browser); // alert if we didn't handle this secondlife:///app/ SLURL // (but still return true because it is a valid app SLURL) @@ -184,6 +186,11 @@ bool LLURLDispatcherImpl::dispatchRegion(const LLSLURL& slurl, const std::string return true; } + if (!handleGrid(slurl)) + { + return true; + } + // Request a region handle by name LLWorldMapMessage::getInstance()->sendNamedRegionRequest(slurl.getRegion(), LLURLDispatcherImpl::regionNameCallback, @@ -202,31 +209,39 @@ void LLURLDispatcherImpl::regionNameCallback(U64 region_handle, const LLSLURL& s } } +bool LLURLDispatcherImpl::handleGrid(const LLSLURL& slurl) +{ + if (LLGridManager::getInstance()->getGrid(slurl.getGrid()) + != LLGridManager::getInstance()->getGrid()) + { + LLSD args; + args["SLURL"] = slurl.getLocationString(); + args["CURRENT_GRID"] = LLGridManager::getInstance()->getGridLabel(); + std::string grid_label = + LLGridManager::getInstance()->getGridLabel(slurl.getGrid()); + + if (!grid_label.empty()) + { + args["GRID"] = grid_label; + } + else + { + args["GRID"] = slurl.getGrid(); + } + LLNotificationsUtil::add("CantTeleportToGrid", args); + return false; + } + return true; +} + /* static */ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const LLSLURL& slurl, const LLUUID& snapshot_id, bool teleport) { - - // we can't teleport cross grid at this point - if( LLGridManager::getInstance()->getGrid(slurl.getGrid()) - != LLGridManager::getInstance()->getGrid()) - { - LLSD args; - args["SLURL"] = slurl.getLocationString(); - args["CURRENT_GRID"] = LLGridManager::getInstance()->getGridLabel(); - std::string grid_label = - LLGridManager::getInstance()->getGridLabel(slurl.getGrid()); - - if(!grid_label.empty()) - { - args["GRID"] = grid_label; - } - else - { - args["GRID"] = slurl.getGrid(); - } - LLNotificationsUtil::add("CantTeleportToGrid", args); - return; - } + if (!handleGrid(slurl)) + { + // we can't teleport cross grid at this point + return; + } LLVector3d global_pos = from_region_handle(region_handle); global_pos += LLVector3d(slurl.getPosition()); @@ -274,8 +289,10 @@ public: &LLTeleportHandler::from_event); } - bool handle(const LLSD& tokens, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& tokens, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { // construct a "normal" SLURL, resolve the region to // a global position, and teleport to it @@ -297,7 +314,7 @@ public: LLSD payload; payload["region_name"] = region_name; - payload["callback_url"] = LLSLURL(region_name, coords).getSLURLString(); + payload["callback_url"] = LLSLURL(grid, region_name, coords).getSLURLString(); LLNotificationsUtil::add("TeleportViaSLAPP", args, payload); return true; diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp index 70065cb5a0..aa9ff012c3 100644 --- a/indra/newview/llviewerassetstorage.cpp +++ b/indra/newview/llviewerassetstorage.cpp @@ -134,14 +134,6 @@ LLViewerAssetStorage::~LLViewerAssetStorage() // This class has dedicated coroutine pool, clean it up, otherwise coroutines will crash later. LLCoprocedureManager::instance().close(VIEWER_ASSET_STORAGE_CORO_POOL); } - - while (mCoroWaitList.size() > 0) - { - CoroWaitList &request = mCoroWaitList.front(); - // Clean up pending downloads, delete request and trigger callbacks - removeAndCallbackPendingDownloads(request.mId, request.mType, request.mId, request.mType, LL_ERR_NOERR, LLExtStat::NONE); - mCoroWaitList.pop_front(); - } } // virtual @@ -346,28 +338,6 @@ void LLViewerAssetStorage::storeAssetData( } } -void LLViewerAssetStorage::checkForTimeouts() -{ - LLAssetStorage::checkForTimeouts(); - - // Restore requests - LLCoprocedureManager* manager = LLCoprocedureManager::getInstance(); - while (mCoroWaitList.size() > 0 - && manager->count(VIEWER_ASSET_STORAGE_CORO_POOL) < (LLCoprocedureManager::DEFAULT_QUEUE_SIZE - 1)) - { - CoroWaitList &request = mCoroWaitList.front(); - - bool with_http = true; - bool is_temp = false; - LLViewerAssetStatsFF::record_enqueue(request.mType, with_http, is_temp); - - manager->enqueueCoprocedure(VIEWER_ASSET_STORAGE_CORO_POOL, "LLViewerAssetStorage::assetRequestCoro", - boost::bind(&LLViewerAssetStorage::assetRequestCoro, this, request.mRequest, request.mId, request.mType, request.mCallback, request.mUserData)); - - mCoroWaitList.pop_front(); - } -} - /** * @brief Allocate and queue an asset fetch request for the viewer * @@ -424,21 +394,18 @@ void LLViewerAssetStorage::queueRequestHttp( // This is the same as the current UDP logic - don't re-request a duplicate. if (!duplicate) { - // Coroutine buffer has fixed size (synchronization buffer, so we have no alternatives), so buffer any request above limit LLCoprocedureManager* manager = LLCoprocedureManager::getInstance(); - if (manager->count(VIEWER_ASSET_STORAGE_CORO_POOL) < (LLCoprocedureManager::DEFAULT_QUEUE_SIZE - 1)) - { - bool with_http = true; - bool is_temp = false; - LLViewerAssetStatsFF::record_enqueue(atype, with_http, is_temp); - - manager->enqueueCoprocedure(VIEWER_ASSET_STORAGE_CORO_POOL, "LLViewerAssetStorage::assetRequestCoro", - boost::bind(&LLViewerAssetStorage::assetRequestCoro, this, req, uuid, atype, callback, user_data)); - } - else - { - mCoroWaitList.emplace_back(req, uuid, atype, callback, user_data); - } + bool with_http = true; + bool is_temp = false; + LLViewerAssetStatsFF::record_enqueue(atype, with_http, is_temp); + manager->enqueueCoprocedure( + VIEWER_ASSET_STORAGE_CORO_POOL, + "LLViewerAssetStorage::assetRequestCoro", + [this, req, uuid, atype, callback, user_data] + (LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t&, const LLUUID&) + { + assetRequestCoro(req, uuid, atype, callback, user_data); + }); } } diff --git a/indra/newview/llviewerassetstorage.h b/indra/newview/llviewerassetstorage.h index 0965a17ce1..c3719d0918 100644 --- a/indra/newview/llviewerassetstorage.h +++ b/indra/newview/llviewerassetstorage.h @@ -65,8 +65,6 @@ public: bool user_waiting=FALSE, F64Seconds timeout=LL_ASSET_STORAGE_TIMEOUT) override; - void checkForTimeouts() override; - protected: void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type, @@ -118,8 +116,6 @@ protected: LLGetAssetCallback mCallback; void *mUserData; }; - typedef std::list<CoroWaitList> wait_list_t; - wait_list_t mCoroWaitList; std::string mViewerAssetUrl; S32 mCountRequests; diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp index cc73f7ca80..6a0edbecb1 100644 --- a/indra/newview/llvieweraudio.cpp +++ b/indra/newview/llvieweraudio.cpp @@ -91,17 +91,18 @@ void LLViewerAudio::startInternetStreamWithAutoFade(const std::string &streamURI return; } - // Record the URI we are going to be switching to + if (!gAudiop) + { + LL_WARNS("AudioEngine") << "LLAudioEngine instance doesn't exist!" << LL_ENDL; + return; + } + + // Record the URI we are going to be switching to mNextStreamURI = streamURI; switch (mFadeState) { case FADE_IDLE: - if (!gAudiop) - { - LL_WARNS("AudioEngine") << "LLAudioEngine instance doesn't exist!" << LL_ENDL; - break; - } // If a stream is playing fade it out first if (!gAudiop->getInternetStreamURL().empty()) { @@ -114,28 +115,28 @@ void LLViewerAudio::startInternetStreamWithAutoFade(const std::string &streamURI mFadeState = FADE_IN; LLStreamingAudioInterface *stream = gAudiop->getStreamingAudioImpl(); - if(stream && stream->supportsAdjustableBufferSizes()) - stream->setBufferSizes(gSavedSettings.getU32("FMODExStreamBufferSize"),gSavedSettings.getU32("FMODExDecodeBufferSize")); + if (stream && stream->supportsAdjustableBufferSizes()) + stream->setBufferSizes(gSavedSettings.getU32("FMODExStreamBufferSize"), gSavedSettings.getU32("FMODExDecodeBufferSize")); gAudiop->startInternetStream(mNextStreamURI); - startFading(); - registerIdleListener(); - break; } + startFading(); + break; + case FADE_OUT: startFading(); - registerIdleListener(); break; case FADE_IN: - registerIdleListener(); break; default: LL_WARNS() << "Unknown fading state: " << mFadeState << LL_ENDL; - break; + return; } + + registerIdleListener(); } // A return of false from onIdleUpdate means it will be called again next idle update. @@ -236,15 +237,12 @@ void LLViewerAudio::startFading() // This minimum fade time prevents divide by zero and negative times const F32 AUDIO_MUSIC_MINIMUM_FADE_TIME = 0.01f; - if(mDone) + if (mDone) { // The fade state here should only be one of FADE_IN or FADE_OUT, but, in case it is not, // rather than check for both states assume a fade in and check for the fade out case. - mFadeTime = AUDIO_MUSIC_FADE_IN_TIME; - if (LLViewerAudio::getInstance()->getFadeState() == LLViewerAudio::FADE_OUT) - { - mFadeTime = AUDIO_MUSIC_FADE_OUT_TIME; - } + mFadeTime = LLViewerAudio::getInstance()->getFadeState() == LLViewerAudio::FADE_OUT ? + AUDIO_MUSIC_FADE_OUT_TIME : AUDIO_MUSIC_FADE_IN_TIME; // Prevent invalid fade time mFadeTime = llmax(mFadeTime, AUDIO_MUSIC_MINIMUM_FADE_TIME); diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index a1773ae8d5..b40cf4acec 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -237,6 +237,148 @@ void display_stats() } } +static void update_tp_display(bool minimized) +{ + static LLCachedControl<F32> teleport_arrival_delay(gSavedSettings, "TeleportArrivalDelay"); + static LLCachedControl<F32> teleport_local_delay(gSavedSettings, "TeleportLocalDelay"); + + S32 attach_count = 0; + if (isAgentAvatarValid()) + { + attach_count = gAgentAvatarp->getAttachmentCount(); + } + F32 teleport_save_time = TELEPORT_EXPIRY + TELEPORT_EXPIRY_PER_ATTACHMENT * attach_count; + F32 teleport_elapsed = gTeleportDisplayTimer.getElapsedTimeF32(); + F32 teleport_percent = teleport_elapsed * (100.f / teleport_save_time); + if (gAgent.getTeleportState() != LLAgent::TELEPORT_START && teleport_percent > 100.f) + { + // Give up. Don't keep the UI locked forever. + LL_WARNS("Teleport") << "Giving up on teleport. elapsed time " << teleport_elapsed << " exceeds max time " << teleport_save_time << LL_ENDL; + gAgent.setTeleportState(LLAgent::TELEPORT_NONE); + gAgent.setTeleportMessage(std::string()); + } + + // Make sure the TP progress panel gets hidden in case the viewer window + // is minimized *during* a TP. HB + if (minimized) + { + gViewerWindow->setShowProgress(FALSE); + } + + const std::string& message = gAgent.getTeleportMessage(); + switch (gAgent.getTeleportState()) + { + case LLAgent::TELEPORT_PENDING: + { + gTeleportDisplayTimer.reset(); + const std::string& msg = LLAgent::sTeleportProgressMessages["pending"]; + if (!minimized) + { + gViewerWindow->setShowProgress(TRUE); + gViewerWindow->setProgressPercent(llmin(teleport_percent, 0.0f)); + gViewerWindow->setProgressString(msg); + } + gAgent.setTeleportMessage(msg); + break; + } + + case LLAgent::TELEPORT_START: + { + // Transition to REQUESTED. Viewer has sent some kind + // of TeleportRequest to the source simulator + gTeleportDisplayTimer.reset(); + const std::string& msg = LLAgent::sTeleportProgressMessages["requesting"]; + LL_INFOS("Teleport") << "A teleport request has been sent, setting state to TELEPORT_REQUESTED" << LL_ENDL; + gAgent.setTeleportState(LLAgent::TELEPORT_REQUESTED); + gAgent.setTeleportMessage(msg); + if (!minimized) + { + gViewerWindow->setShowProgress(TRUE); + gViewerWindow->setProgressPercent(llmin(teleport_percent, 0.0f)); + gViewerWindow->setProgressString(msg); + gViewerWindow->setProgressMessage(gAgent.mMOTD); + } + break; + } + + case LLAgent::TELEPORT_REQUESTED: + // Waiting for source simulator to respond + if (!minimized) + { + gViewerWindow->setProgressPercent(llmin(teleport_percent, 37.5f)); + gViewerWindow->setProgressString(message); + } + break; + + case LLAgent::TELEPORT_MOVING: + // Viewer has received destination location from source simulator + if (!minimized) + { + gViewerWindow->setProgressPercent(llmin(teleport_percent, 75.f)); + gViewerWindow->setProgressString(message); + } + break; + + case LLAgent::TELEPORT_START_ARRIVAL: + // Transition to ARRIVING. Viewer has received avatar update, etc., + // from destination simulator + gTeleportArrivalTimer.reset(); + LL_INFOS("Teleport") << "Changing state to TELEPORT_ARRIVING" << LL_ENDL; + gAgent.setTeleportState(LLAgent::TELEPORT_ARRIVING); + gAgent.setTeleportMessage(LLAgent::sTeleportProgressMessages["arriving"]); + gAgent.sheduleTeleportIM(); + gTextureList.mForceResetTextureStats = TRUE; + gAgentCamera.resetView(TRUE, TRUE); + if (!minimized) + { + gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel")); + gViewerWindow->setProgressPercent(75.f); + } + break; + + case LLAgent::TELEPORT_ARRIVING: + // Make the user wait while content "pre-caches" + { + F32 arrival_fraction = (gTeleportArrivalTimer.getElapsedTimeF32() / teleport_arrival_delay()); + if (arrival_fraction > 1.f) + { + arrival_fraction = 1.f; + //LLFirstUse::useTeleport(); + LL_INFOS("Teleport") << "arrival_fraction is " << arrival_fraction << " changing state to TELEPORT_NONE" << LL_ENDL; + gAgent.setTeleportState(LLAgent::TELEPORT_NONE); + } + if (!minimized) + { + gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel")); + gViewerWindow->setProgressPercent(arrival_fraction * 25.f + 75.f); + gViewerWindow->setProgressString(message); + } + break; + } + + case LLAgent::TELEPORT_LOCAL: + // Short delay when teleporting in the same sim (progress screen active but not shown - did not + // fall-through from TELEPORT_START) + { + if (gTeleportDisplayTimer.getElapsedTimeF32() > teleport_local_delay()) + { + //LLFirstUse::useTeleport(); + LL_INFOS("Teleport") << "State is local and gTeleportDisplayTimer " << gTeleportDisplayTimer.getElapsedTimeF32() + << " exceeds teleport_local_delete " << teleport_local_delay + << "; setting state to TELEPORT_NONE" + << LL_ENDL; + gAgent.setTeleportState(LLAgent::TELEPORT_NONE); + } + break; + } + + case LLAgent::TELEPORT_NONE: + // No teleport in progress + gViewerWindow->setShowProgress(FALSE); + gTeleportDisplay = FALSE; + } +} + static LLTrace::BlockTimerStatHandle FTM_PICK("Picking"); static LLTrace::BlockTimerStatHandle FTM_RENDER("Render"); static LLTrace::BlockTimerStatHandle FTM_RENDER_HUD("Render HUD"); @@ -328,6 +470,15 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) stop_glerror(); gViewerWindow->returnEmptyPicks(); stop_glerror(); + + // We still need to update the teleport progress (to get changes done + // in TP states, else the sim does not get the messages signaling the + // agent's arrival). This fixes BUG-230616. HB + if (gTeleportDisplay) + { + // true = minimized, do not show/update the TP screen. HB + update_tp_display(true); + } return; } @@ -415,116 +566,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) { LL_RECORD_BLOCK_TIME(FTM_TELEPORT_DISPLAY); LLAppViewer::instance()->pingMainloopTimeout("Display:Teleport"); - static LLCachedControl<F32> teleport_arrival_delay(gSavedSettings, "TeleportArrivalDelay"); - static LLCachedControl<F32> teleport_local_delay(gSavedSettings, "TeleportLocalDelay"); - - S32 attach_count = 0; - if (isAgentAvatarValid()) - { - attach_count = gAgentAvatarp->getAttachmentCount(); - } - F32 teleport_save_time = TELEPORT_EXPIRY + TELEPORT_EXPIRY_PER_ATTACHMENT * attach_count; - F32 teleport_elapsed = gTeleportDisplayTimer.getElapsedTimeF32(); - F32 teleport_percent = teleport_elapsed * (100.f / teleport_save_time); - if( (gAgent.getTeleportState() != LLAgent::TELEPORT_START) && (teleport_percent > 100.f) ) - { - // Give up. Don't keep the UI locked forever. - LL_WARNS("Teleport") << "Giving up on teleport. elapsed time " << teleport_elapsed << " exceeds max time " << teleport_save_time << LL_ENDL; - gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); - gAgent.setTeleportMessage(std::string()); - } - - const std::string& message = gAgent.getTeleportMessage(); - switch( gAgent.getTeleportState() ) - { - case LLAgent::TELEPORT_PENDING: - gTeleportDisplayTimer.reset(); - gViewerWindow->setShowProgress(TRUE); - gViewerWindow->setProgressPercent(llmin(teleport_percent, 0.0f)); - gAgent.setTeleportMessage(LLAgent::sTeleportProgressMessages["pending"]); - gViewerWindow->setProgressString(LLAgent::sTeleportProgressMessages["pending"]); - break; - - case LLAgent::TELEPORT_START: - // Transition to REQUESTED. Viewer has sent some kind - // of TeleportRequest to the source simulator - gTeleportDisplayTimer.reset(); - gViewerWindow->setShowProgress(TRUE); - gViewerWindow->setProgressPercent(llmin(teleport_percent, 0.0f)); - LL_INFOS("Teleport") << "A teleport request has been sent, setting state to TELEPORT_REQUESTED" << LL_ENDL; - gAgent.setTeleportState( LLAgent::TELEPORT_REQUESTED ); - gAgent.setTeleportMessage( - LLAgent::sTeleportProgressMessages["requesting"]); - gViewerWindow->setProgressString(LLAgent::sTeleportProgressMessages["requesting"]); - gViewerWindow->setProgressMessage(gAgent.mMOTD); - break; - - case LLAgent::TELEPORT_REQUESTED: - // Waiting for source simulator to respond - gViewerWindow->setProgressPercent( llmin(teleport_percent, 37.5f) ); - gViewerWindow->setProgressString(message); - break; - - case LLAgent::TELEPORT_MOVING: - // Viewer has received destination location from source simulator - gViewerWindow->setProgressPercent( llmin(teleport_percent, 75.f) ); - gViewerWindow->setProgressString(message); - break; - - case LLAgent::TELEPORT_START_ARRIVAL: - // Transition to ARRIVING. Viewer has received avatar update, etc., from destination simulator - gTeleportArrivalTimer.reset(); - gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel")); - gViewerWindow->setProgressPercent(75.f); - LL_INFOS("Teleport") << "Changing state to TELEPORT_ARRIVING" << LL_ENDL; - gAgent.setTeleportState( LLAgent::TELEPORT_ARRIVING ); - gAgent.setTeleportMessage( - LLAgent::sTeleportProgressMessages["arriving"]); - gAgent.sheduleTeleportIM(); - gTextureList.mForceResetTextureStats = TRUE; - gAgentCamera.resetView(TRUE, TRUE); - - break; - - case LLAgent::TELEPORT_ARRIVING: - // Make the user wait while content "pre-caches" - { - F32 arrival_fraction = (gTeleportArrivalTimer.getElapsedTimeF32() / teleport_arrival_delay()); - if( arrival_fraction > 1.f ) - { - arrival_fraction = 1.f; - //LLFirstUse::useTeleport(); - LL_INFOS("Teleport") << "arrival_fraction is " << arrival_fraction << " changing state to TELEPORT_NONE" << LL_ENDL; - gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); - } - gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel")); - gViewerWindow->setProgressPercent( arrival_fraction * 25.f + 75.f); - gViewerWindow->setProgressString(message); - } - break; - - case LLAgent::TELEPORT_LOCAL: - // Short delay when teleporting in the same sim (progress screen active but not shown - did not - // fall-through from TELEPORT_START) - { - if( gTeleportDisplayTimer.getElapsedTimeF32() > teleport_local_delay() ) - { - //LLFirstUse::useTeleport(); - LL_INFOS("Teleport") << "State is local and gTeleportDisplayTimer " << gTeleportDisplayTimer.getElapsedTimeF32() - << " exceeds teleport_local_delete " << teleport_local_delay - << "; setting state to TELEPORT_NONE" - << LL_ENDL; - gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); - } - } - break; - - case LLAgent::TELEPORT_NONE: - // No teleport in progress - gViewerWindow->setShowProgress(FALSE); - gTeleportDisplay = FALSE; - break; - } + // Note: false = not minimized, do update the TP screen. HB + update_tp_display(false); } else if(LLAppViewer::instance()->logoutRequestSent()) { diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 92c862d530..0f2fe1e1cd 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -272,6 +272,7 @@ public: bool handle( const LLSD& params, const LLSD& query_map, + const std::string& grid, LLMediaCtrl* web) override { if (params.size() != 1) diff --git a/indra/newview/llviewerhelp.cpp b/indra/newview/llviewerhelp.cpp index 04c2e27c9d..b03942db9f 100644 --- a/indra/newview/llviewerhelp.cpp +++ b/indra/newview/llviewerhelp.cpp @@ -45,7 +45,7 @@ public: // requests will be throttled from a non-trusted browser LLHelpHandler() : LLCommandHandler("help", UNTRUSTED_THROTTLE) {} - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { LLViewerHelp* vhelp = LLViewerHelp::getInstance(); if (! vhelp) diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 50252556de..793eb56734 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -234,8 +234,10 @@ public: // requires trusted browser to trigger LLInventoryHandler() : LLCommandHandler("inventory", UNTRUSTED_CLICK_ONLY) { } - bool handle(const LLSD& params, const LLSD& query_map, - LLMediaCtrl* web) + bool handle(const LLSD& params, + const LLSD& query_map, + const std::string& grid, + LLMediaCtrl* web) { if (params.size() < 1) { diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 77cb5f86af..d1b240d2c4 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -9086,6 +9086,25 @@ class LLWorldPostProcess : public view_listener_t } }; +class LLWorldCheckBanLines : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + S32 callback_data = userdata.asInteger(); + return gSavedSettings.getS32("ShowBanLines") == callback_data; + } +}; + +class LLWorldShowBanLines : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + S32 callback_data = userdata.asInteger(); + gSavedSettings.setS32("ShowBanLines", callback_data); + return true; + } +}; + void handle_flush_name_caches() { if (gCacheName) gCacheName->clear(); @@ -9375,6 +9394,8 @@ void initialize_menus() view_listener_t::addMenu(new LLWorldEnvPreset(), "World.EnvPreset"); view_listener_t::addMenu(new LLWorldEnableEnvPreset(), "World.EnableEnvPreset"); view_listener_t::addMenu(new LLWorldPostProcess(), "World.PostProcess"); + view_listener_t::addMenu(new LLWorldCheckBanLines() , "World.CheckBanLines"); + view_listener_t::addMenu(new LLWorldShowBanLines() , "World.ShowBanLines"); // Tools menu view_listener_t::addMenu(new LLToolsSelectTool(), "Tools.SelectTool"); diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index fdf1d04c09..27fe7a7018 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -123,7 +123,10 @@ std::queue<LLFilePickerThread*> LLFilePickerThread::sDeadQ; void LLFilePickerThread::getFile() { #if LL_WINDOWS + // Todo: get rid of LLFilePickerThread and make this modeless start(); +#elif LL_DARWIN + runModeless(); #else run(); #endif @@ -166,7 +169,82 @@ void LLFilePickerThread::run() LLMutexLock lock(sMutex); sDeadQ.push(this); } +} + +void LLFilePickerThread::runModeless() +{ + BOOL result = FALSE; + LLFilePicker picker; + + if (mIsSaveDialog) + { + result = picker.getSaveFileModeless(mSaveFilter, + mProposedName, + modelessStringCallback, + this); + } + else if (mIsGetMultiple) + { + result = picker.getMultipleOpenFilesModeless(mLoadFilter, modelessVectorCallback, this); + } + else + { + result = picker.getOpenFileModeless(mLoadFilter, modelessVectorCallback, this); + } + + if (!result) + { + LLMutexLock lock(sMutex); + sDeadQ.push(this); + } +} +void LLFilePickerThread::modelessStringCallback(bool success, + std::string &response, + void *user_data) +{ + LLFilePickerThread *picker = (LLFilePickerThread*)user_data; + if (success) + { + picker->mResponses.push_back(response); + } + + { + LLMutexLock lock(sMutex); + sDeadQ.push(picker); + } +} + +void LLFilePickerThread::modelessVectorCallback(bool success, + std::vector<std::string> &responses, + void *user_data) +{ + LLFilePickerThread *picker = (LLFilePickerThread*)user_data; + if (success) + { + if (picker->mIsGetMultiple) + { + picker->mResponses = responses; + } + else + { + std::vector<std::string>::iterator iter = responses.begin(); + while (iter != responses.end()) + { + if (!iter->empty()) + { + picker->mResponses.push_back(*iter); + break; + } + iter++; + } + } + } + + { + LLMutexLock lock(sMutex); + sDeadQ.push(picker); + } } //static diff --git a/indra/newview/llviewermenufile.h b/indra/newview/llviewermenufile.h index beeac418d9..61572b9996 100644 --- a/indra/newview/llviewermenufile.h +++ b/indra/newview/llviewermenufile.h @@ -105,6 +105,9 @@ public: void getFile(); virtual void run(); + void runModeless(); + static void modelessStringCallback(bool success, std::string &response, void *user_data); + static void modelessVectorCallback(bool success, std::vector<std::string> &responses, void *user_data); virtual void notify(const std::vector<std::string>& filenames) = 0; }; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index c1a9b6be80..a60f11d97b 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -5151,6 +5151,11 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem) LandBuyAccessBlocked_AdultsOnlyContent -----------------------------------------------------------------------*/ + static LLCachedControl<S32> ban_lines_mode(gSavedSettings , "ShowBanLines" , LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION); + if (ban_lines_mode == LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION) + { + LLViewerParcelMgr::getInstance()->resetCollisionTimer(); + } if (handle_special_notification(notificationID, llsdBlock)) { return true; @@ -5319,6 +5324,13 @@ void process_alert_message(LLMessageSystem *msgsystem, void **user_data) { BOOL modal = FALSE; process_alert_core(message, modal); + + static LLCachedControl<S32> ban_lines_mode(gSavedSettings , "ShowBanLines" , LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION); + if (ban_lines_mode == LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION + && message.find("Cannot enter parcel") != std::string::npos) + { + LLViewerParcelMgr::getInstance()->resetCollisionTimer(); + } } } diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 97dc916bfe..15accd0547 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -72,12 +72,16 @@ #include "llenvironment.h" -const F32 PARCEL_COLLISION_DRAW_SECS = 1.f; +const F32 PARCEL_BAN_LINES_DRAW_SECS_ON_COLLISION = 10.f; +const F32 PARCEL_COLLISION_DRAW_SECS_ON_PROXIMITY = 1.f; // Globals U8* LLViewerParcelMgr::sPackedOverlay = NULL; +S32 LLViewerParcelMgr::PARCEL_BAN_LINES_HIDE = 0; +S32 LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION = 1; +S32 LLViewerParcelMgr::PARCEL_BAN_LINES_ON_PROXIMITY = 2; LLUUID gCurrentMovieID = LLUUID::null; @@ -892,13 +896,18 @@ void LLViewerParcelMgr::render() void LLViewerParcelMgr::renderParcelCollision() { + static LLCachedControl<S32> ban_lines_mode(gSavedSettings , "ShowBanLines" , PARCEL_BAN_LINES_ON_COLLISION); + // check for expiration - if (mCollisionTimer.getElapsedTimeF32() > PARCEL_COLLISION_DRAW_SECS) + F32 expiration = (ban_lines_mode == PARCEL_BAN_LINES_ON_PROXIMITY) + ? PARCEL_COLLISION_DRAW_SECS_ON_PROXIMITY + : PARCEL_BAN_LINES_DRAW_SECS_ON_COLLISION; + if (mCollisionTimer.getElapsedTimeF32() > expiration) { - mRenderCollision = FALSE; + mRenderCollision = false; } - if (mRenderCollision && gSavedSettings.getBOOL("ShowBanLines")) + if (mRenderCollision && ban_lines_mode != PARCEL_BAN_LINES_HIDE) { LLViewerRegion* regionp = gAgent.getRegion(); if (regionp) @@ -1842,8 +1851,11 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use sequence_id == COLLISION_BANNED_PARCEL_SEQ_ID) { // We're about to collide with this parcel - parcel_mgr.mRenderCollision = TRUE; - parcel_mgr.mCollisionTimer.reset(); + static LLCachedControl<S32> ban_lines_mode(gSavedSettings , "ShowBanLines" , PARCEL_BAN_LINES_ON_COLLISION); + if (ban_lines_mode == PARCEL_BAN_LINES_ON_PROXIMITY) + { + parcel_mgr.resetCollisionTimer(); + } // Differentiate this parcel if we are banned from it. if (sequence_id == COLLISION_BANNED_PARCEL_SEQ_ID) diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h index 6ce389ab88..56dacd3efd 100644 --- a/indra/newview/llviewerparcelmgr.h +++ b/indra/newview/llviewerparcelmgr.h @@ -205,6 +205,11 @@ public: void renderHighlightSegments(const U8* segments, LLViewerRegion* regionp); void renderCollisionSegments(U8* segments, BOOL use_pass, LLViewerRegion* regionp); + static S32 PARCEL_BAN_LINES_HIDE; + static S32 PARCEL_BAN_LINES_ON_COLLISION; + static S32 PARCEL_BAN_LINES_ON_PROXIMITY; + void resetCollisionTimer(); // Ban lines visibility timer + void sendParcelGodForceOwner(const LLUUID& owner_id); // make the selected parcel a content parcel. @@ -361,7 +366,7 @@ private: // If it's coming, draw the parcel's boundaries. LLParcel* mCollisionParcel; U8* mCollisionSegments; - BOOL mRenderCollision; + bool mRenderCollision; BOOL mRenderSelection; S32 mCollisionBanned; LLFrameTimer mCollisionTimer; diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 3d1a81694a..54d787366f 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -131,8 +131,8 @@ class LLRegionHandler : public LLCommandHandler public: // requests will be throttled from a non-trusted browser LLRegionHandler() : LLCommandHandler("region", UNTRUSTED_THROTTLE) {} - - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { // make sure that we at least have a region name int num_params = params.size(); @@ -143,6 +143,10 @@ public: // build a secondlife://{PLACE} SLurl from this SLapp std::string url = "secondlife://"; + if (!grid.empty()) + { + url += grid + "/secondlife/"; + } boost::regex name_rx("[A-Za-z0-9()_%]+"); boost::regex coord_rx("[0-9]+"); for (int i = 0; i < num_params; i++) diff --git a/indra/newview/llviewerwearable.h b/indra/newview/llviewerwearable.h index cc99f6af2f..24b1323b2b 100644 --- a/indra/newview/llviewerwearable.h +++ b/indra/newview/llviewerwearable.h @@ -93,7 +93,6 @@ public: // the wearable was worn. make sure the name of the wearable object matches the LLViewerInventoryItem, // not the wearable asset itself. void refreshName(); - /*virtual*/void addToBakedTextureHash(LLMD5& hash) const {} protected: LLAssetID mAssetID; diff --git a/indra/newview/llvoicecallhandler.cpp b/indra/newview/llvoicecallhandler.cpp index 1e993d1384..95e11abd82 100644 --- a/indra/newview/llvoicecallhandler.cpp +++ b/indra/newview/llvoicecallhandler.cpp @@ -38,7 +38,7 @@ public: { } - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableVoiceCall")) { diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 6bb987ede4..bf96f0bbb4 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -53,7 +53,7 @@ public: // requests will be throttled from a non-trusted browser LLVoiceHandler() : LLCommandHandler("voice", UNTRUSTED_THROTTLE) {} - bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) { if (params[0].asString() == "effects") { diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index 6e994b4e68..b59bbaaa88 100755 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -50,6 +50,7 @@ #include "lltextureview.h" #include "lltracker.h" #include "llviewercamera.h" +#include "llviewernetwork.h" #include "llviewertexture.h" #include "llviewertexturelist.h" #include "llviewerregion.h" @@ -1829,7 +1830,7 @@ BOOL LLWorldMapView::handleDoubleClick( S32 x, S32 y, MASK mask ) // Invoke the event details floater if someone is clicking on an event. LLSD params(LLSD::emptyArray()); params.append(event_id); - LLCommandDispatcher::dispatch("event", params, LLSD(), NULL, "clicked", true); + LLCommandDispatcher::dispatch("event", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, "clicked", true); break; } case MAP_ITEM_LAND_FOR_SALE: diff --git a/indra/newview/skins/default/xui/da/floater_about.xml b/indra/newview/skins/default/xui/da/floater_about.xml index b322e67bb7..7bcae69779 100644 --- a/indra/newview/skins/default/xui/da/floater_about.xml +++ b/indra/newview/skins/default/xui/da/floater_about.xml @@ -70,6 +70,7 @@ PCRE Copyright (c) 1997-2008 University of Cambridge 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. +xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. google-perftools Copyright (c) 2005, Google Inc. diff --git a/indra/newview/skins/default/xui/da/floater_animation_preview.xml b/indra/newview/skins/default/xui/da/floater_animation_preview.xml deleted file mode 100644 index adf96841c0..0000000000 --- a/indra/newview/skins/default/xui/da/floater_animation_preview.xml +++ /dev/null @@ -1,187 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Animation Preview" title=""> - <floater.string name="failed_to_initialize"> - Fejlede at starte bevægelse - </floater.string> - <floater.string name="anim_too_long"> - Animations filen er [LENGTH] sekunder lang. - -Maksimal animations længde er [MAX_LENGTH] sekunder. - </floater.string> - <floater.string name="failed_file_read"> - Kan ikke læse animations fil. - -[STATUS] - </floater.string> - <floater.string name="E_ST_OK"> - OK - </floater.string> - <floater.string name="E_ST_EOF"> - Fil afsluttet for tidligt. - </floater.string> - <floater.string name="E_ST_NO_CONSTRAINT"> - Kan ikke læse "constraint definition". - </floater.string> - <floater.string name="E_ST_NO_FILE"> - Kan ikke åbne BVH fil. - </floater.string> - <floater.string name="E_ST_NO_HIER"> - Ugyldig header i HIERARCHY. - </floater.string> - <floater.string name="E_ST_NO_JOINT"> - Kan ikke finde "ROOT" eller "JOINT". - </floater.string> - <floater.string name="E_ST_NO_NAME"> - Kan ikke finde JOINT navn. - </floater.string> - <floater.string name="E_ST_NO_OFFSET"> - Kan ikke finde OFFSET. - </floater.string> - <floater.string name="E_ST_NO_CHANNELS"> - Kan ikke finde CHANNELS. - </floater.string> - <floater.string name="E_ST_NO_ROTATION"> - Kan ikke læse "rotation order". - </floater.string> - <floater.string name="E_ST_NO_AXIS"> - Kan ikke finde rotationsakser. - </floater.string> - <floater.string name="E_ST_NO_MOTION"> - Kan ikke finde MOTION. - </floater.string> - <floater.string name="E_ST_NO_FRAMES"> - Kan ikke læse antal "frames". - </floater.string> - <floater.string name="E_ST_NO_FRAME_TIME"> - Kan ikke læse "frame time". - </floater.string> - <floater.string name="E_ST_NO_POS"> - Kan ikke læse positionsværdier. - </floater.string> - <floater.string name="E_ST_NO_ROT"> - Kan ikke læse rotationsværdier. - </floater.string> - <floater.string name="E_ST_NO_XLT_FILE"> - kan ikke åbne "translation file". - </floater.string> - <floater.string name="E_ST_NO_XLT_HEADER"> - Kan ikke læse "translation header. - </floater.string> - <floater.string name="E_ST_NO_XLT_NAME"> - Kan ikke aflæse "translation" navne. - </floater.string> - <floater.string name="E_ST_NO_XLT_IGNORE"> - Kan ikke læse "translation ignore" værdi. - </floater.string> - <floater.string name="E_ST_NO_XLT_RELATIVE"> - Kan ikke læse "translation relative" værdi. - </floater.string> - <floater.string name="E_ST_NO_XLT_OUTNAME"> - Kan ikke læse "translation outname" værdi. - </floater.string> - <floater.string name="E_ST_NO_XLT_MATRIX"> - Kan ikke læse "translation matrix". - </floater.string> - <floater.string name="E_ST_NO_XLT_MERGECHILD"> - Kan ikke læse "mergechild" navn. - </floater.string> - <floater.string name="E_ST_NO_XLT_MERGEPARENT"> - Kan ikke læse "mergeparent" navn. - </floater.string> - <floater.string name="E_ST_NO_XLT_PRIORITY"> - Kan ikke finde prioritetsværdi. - </floater.string> - <floater.string name="E_ST_NO_XLT_LOOP"> - Kan ikke læse "loop" værdi. - </floater.string> - <floater.string name="E_ST_NO_XLT_EASEIN"> - kan ikke læse "easeIn" værdier. - </floater.string> - <floater.string name="E_ST_NO_XLT_EASEOUT"> - Kan ikke læse "easeOut" værdier. - </floater.string> - <floater.string name="E_ST_NO_XLT_HAND"> - Kan ikke læse "hand morph" værdi. - </floater.string> - <floater.string name="E_ST_NO_XLT_EMOTE"> - kan ikke læse "emote" navn. - </floater.string> - <floater.string name="E_ST_BAD_ROOT"> - Incorrect root joint name, use "hip". - </floater.string> - <text name="name_label"> - Navn: - </text> - <text name="description_label"> - Beskrivelse: - </text> - <spinner label="Prioritet" name="priority" tool_tip="Vælg hvilke andre animationer der "overstyres" af denne"/> - <check_box label="Gentag" name="loop_check" tool_tip="Gentager animationen konstant"/> - <spinner label="Ind(%)" label_width="40" left="76" name="loop_in_point" tool_tip="Sætter punktet hvor gentagelsen genstarter fra" width="105"/> - <spinner label="Ud (%)" name="loop_out_point" tool_tip="Sætter punktet i animationen der afslutter gentagelsen"/> - <text name="hand_label"> - Hånd posering - </text> - <combo_box label="" name="hand_pose_combo" tool_tip="Kontrollerer hvad hænderne går i løbet af animationen" width="140"> - <combo_box.item label="Spredt" name="Spread"/> - <combo_box.item label="Afslappet" name="Relaxed"/> - <combo_box.item label="Peg begge" name="PointBoth"/> - <combo_box.item label="Knytnæver" name="Fist"/> - <combo_box.item label="Afslappet venstre" name="RelaxedLeft"/> - <combo_box.item label="Peg venstre" name="PointLeft"/> - <combo_box.item label="Knytnæve venstre" name="FistLeft"/> - <combo_box.item label="Afslappet højre" name="RelaxedRight"/> - <combo_box.item label="peg højre" name="PointRight"/> - <combo_box.item label="knytnæve højre" name="FistRight"/> - <combo_box.item label="Honnør højre" name="SaluteRight"/> - <combo_box.item label="Skrivende" name="Typing"/> - <combo_box.item label="Fredstegn højre" name="PeaceRight"/> - </combo_box> - <text name="emote_label"> - Ansigtsudtryk - </text> - <combo_box label="" name="emote_combo" tool_tip="Angiver hvad ansigtet gør under animationen" width="140"> - <item label="(Intet)" name="[None]" value=""/> - <item label="Aaaaah" name="Aaaaah" value="Aaaaah"/> - <item label="Bange" name="Afraid" value="Bange"/> - <item label="Vred" name="Angry" value="Vred"/> - <item label="Stort smil" name="BigSmile" value="Stort smil"/> - <item label="Keder sig" name="Bored" value="Keder sig"/> - <item label="Græder" name="Cry" value="Grædende"/> - <item label="Forarget" name="Disdain" value="Foragt"/> - <item label="Flov" name="Embarrassed" value="Embarrassed"/> - <item label="Skuler" name="Frown" value="Alvorlig"/> - <item label="Kysser" name="Kiss" value="Kys"/> - <item label="Griner" name="Laugh" value="Leende"/> - <item label="Plllppt" name="Plllppt" value="Plllppt"/> - <item label="Frastødt" name="Repulsed" value="Frastødt"/> - <item label="Ked af det" name="Sad" value="Ked af det"/> - <item label="Skuldertræk" name="Shrug" value="Skuldertræk"/> - <item label="Smil" name="Smile" value="Smilende"/> - <item label="Overrasket" name="Surprise" value="Overrasket"/> - <item label="Blinker" name="Wink" value="Blink"/> - <item label="Bekymret" name="Worry" value="Bekymret"/> - </combo_box> - <text name="preview_label"> - Vis mens - </text> - <combo_box label="" name="preview_base_anim" tool_tip="Se hvordan animation ser ud i forskellige typiske avatar-situationer." width="140"> - <item label="Stående" name="Standing" value="Stående"/> - <item label="Gående" name="Walking" value="Gående"/> - <item label="Sidder" name="Sitting" value="Siddende"/> - <item label="Flyver" name="Flying" value="Flyvende"/> - </combo_box> - <spinner label="start (sec)" name="ease_in_time" tool_tip="Tid (i sekunder) animationen bruger på at komme i gang."/> - <spinner label="Afslut (sec)" name="ease_out_time" tool_tip="Tid (i sekunder) animationen bruger på at afslutte"/> - <button label="" name="play_btn" tool_tip="Start din animation"/> - <button name="pause_btn" tool_tip="Pause din animation"/> - <button label="" name="stop_btn" tool_tip="Stop afspilning af animation"/> - <slider label="" name="playback_slider"/> - <text name="bad_animation_text"> - Kan ikke læse animations fil. - -Vi anbefaler BVH filer der er exporteret fra Poser 4. - </text> - <button label="Hent (L$[AMOUNT])" name="ok_btn"/> - <button label="Annullér" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/da/floater_hardware_settings.xml b/indra/newview/skins/default/xui/da/floater_hardware_settings.xml deleted file mode 100644 index a5942eb625..0000000000 --- a/indra/newview/skins/default/xui/da/floater_hardware_settings.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="HARDWARE OPSÆTNING"> - <text name="Filtering:"> - Filtrering: - </text> - <check_box label="Anisotropic filtrering (langsommere når aktiveret)" name="ani"/> - <text name="Antialiasing:"> - Antialiasing: - </text> - <combo_box label="Antialiasing" name="fsaa" width="100"> - <combo_box.item label="Slået fra" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (kræver genstart af din Second Life klient) - </text> - <spinner label="Gamma:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (Lysstyrke, lavere er lysere, 0=benyt standard) - </text> - <text name="Enable VBO:"> - Aktivér VBO: - </text> - <check_box initial_value="true" label="Aktivér OpenGL Vertex Buffer objekter" name="vbo" tool_tip="Aktivér af dette på nyere hardware giver performance forbedring. På ældre hardware kan aktivering medfø nedbrud."/> - <slider label="Tekstur hukommelse (MB):" name="GraphicsCardTextureMemory" tool_tip="Mængde hukommelse der skal allokeres til teksturer (textures). Standardindstilling er hukommelse på grafikkortet. Reduktion kan medfø bedre ydeevne, men kan samtidig gøre teksturer mere udflydende."/> - <spinner label="Tåge: afstandsforhold:" name="fog"/> - <button label="OK" label_selected="OK" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/da/floater_inventory.xml b/indra/newview/skins/default/xui/da/floater_inventory.xml deleted file mode 100644 index 3a4b0fbd6b..0000000000 --- a/indra/newview/skins/default/xui/da/floater_inventory.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Inventory" title="MIN BEHOLDNING"> - <floater.string name="Title"> - MIN BEHOLDNING - </floater.string> - <floater.string name="TitleFetching"> - MIN BEHOLDNING (Henter [ITEM_COUNT] genstande...) [FILTER] - </floater.string> - <floater.string name="TitleCompleted"> - MIN BEHOLDNING ([ITEM_COUNT] genstande) [FILTER] - </floater.string> - <floater.string name="Fetched"> - Hentet - </floater.string> - <panel label="Beholdningspanel" name="Inventory Panel"/> -</floater> diff --git a/indra/newview/skins/default/xui/da/floater_nearby_chat.xml b/indra/newview/skins/default/xui/da/floater_nearby_chat.xml deleted file mode 100644 index 76bc40edac..0000000000 --- a/indra/newview/skins/default/xui/da/floater_nearby_chat.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="CHAT NÆRVED"> - <check_box label="Oversæt chat" name="translate_chat_checkbox"/> -</floater> diff --git a/indra/newview/skins/default/xui/da/floater_perm_prefs.xml b/indra/newview/skins/default/xui/da/floater_perm_prefs.xml deleted file mode 100644 index eecddbcdb0..0000000000 --- a/indra/newview/skins/default/xui/da/floater_perm_prefs.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="STANDARD RETTIGHEDER"> - <panel label="Tilladelser" name="permissions"> - <button label="?" label_selected="?" name="help"/> - <check_box label="Del med gruppe" name="share_with_group"/> - <check_box label="Tillad enhver at kopiere" name="everyone_copy"/> - <text name="NextOwnerLabel"> - Næste ejer kan: - </text> - <check_box label="Redigere" name="next_owner_modify"/> - <check_box label="Kopiére" name="next_owner_copy"/> - <check_box label="Sælge/Give væk" name="next_owner_transfer"/> - </panel> - <button label="OK" label_selected="OK" name="ok"/> - <button label="Annullér" label_selected="Annullér" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/da/floater_postcard.xml b/indra/newview/skins/default/xui/da/floater_postcard.xml deleted file mode 100644 index 44b0fd4faa..0000000000 --- a/indra/newview/skins/default/xui/da/floater_postcard.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Postcard" title="EMAIL FOTO"> - <text name="to_label"> - Send til: - </text> - <text name="from_label"> - Din e-mail: - </text> - <text name="name_label"> - Dit navn: - </text> - <text name="subject_label"> - Emne: - </text> - <line_editor label="Skriv dit emne her." name="subject_form"/> - <text name="msg_label"> - Besked: - </text> - <text_editor name="msg_form"> - Skriv din besked her. - </text_editor> - <text name="fine_print"> - Hvis din modtager opretter en konto i SL, vil du få en henvisnings bonus. - </text> - <button label="Annullér" name="cancel_btn"/> - <button label="Send" name="send_btn"/> - <string name="default_subject"> - Postkort fra [SECOND_LIFE]. - </string> - <string name="default_message"> - Tjek det her ud! - </string> - <string name="upload_message"> - Sender... - </string> -</floater> diff --git a/indra/newview/skins/default/xui/da/floater_voice_controls.xml b/indra/newview/skins/default/xui/da/floater_voice_controls.xml deleted file mode 100644 index 69de696bf5..0000000000 --- a/indra/newview/skins/default/xui/da/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="Stemme opsætning"> - <string name="title_nearby"> - STEMMER NÆR - </string> - <string name="title_group"> - Gruppe opkald med [GROUP] - </string> - <string name="title_adhoc"> - Konference kald - </string> - <string name="title_peer_2_peer"> - Opkald med [NAME] - </string> - <string name="no_one_near"> - Ingen i nærheden har aktiveret stemmer - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="Min avatar:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="Forlad samtale" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/da/menu_bottomtray.xml b/indra/newview/skins/default/xui/da/menu_bottomtray.xml deleted file mode 100644 index a0d74db36d..0000000000 --- a/indra/newview/skins/default/xui/da/menu_bottomtray.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="hide_camera_move_controls_menu"> - <menu_item_check label="Tal knap" name="EnableVoiceChat"/> - <menu_item_check label="Faste bevægelser" name="ShowGestureButton"/> - <menu_item_check label="Bevægelse knap" name="ShowMoveButton"/> - <menu_item_check label="Vis knap" name="ShowCameraButton"/> - <menu_item_check label="Foto knap" name="ShowSnapshotButton"/> - <menu_item_check label="Bygge knap" name="ShowBuildButton"/> - <menu_item_check label="Søge knap" name="ShowSearchButton"/> - <menu_item_check label="Kort knap" name="ShowWorldMapButton"/> - <menu_item_check label="Mini-Map button" name="ShowMiniMapButton"/> - <menu_item_call label="Klip" name="NearbyChatBar_Cut"/> - <menu_item_call label="Kopiér" name="NearbyChatBar_Copy"/> - <menu_item_call label="Sæt ind" name="NearbyChatBar_Paste"/> - <menu_item_call label="Slet" name="NearbyChatBar_Delete"/> - <menu_item_call label="Vælg alt" name="NearbyChatBar_Select_All"/> -</menu> diff --git a/indra/newview/skins/default/xui/da/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/da/menu_inspect_avatar_gear.xml deleted file mode 100644 index 8da35adb1b..0000000000 --- a/indra/newview/skins/default/xui/da/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Profil" name="view_profile"/> - <menu_item_call label="Tilføj ven" name="add_friend"/> - <menu_item_call label="Besked" name="im"/> - <menu_item_call label="Opkald" name="call"/> - <menu_item_call label="Teleportér" name="teleport"/> - <menu_item_call label="Invitér til gruppe" name="invite_to_group"/> - <menu_item_call label="Blokér" name="block"/> - <menu_item_call label="Fjern blokering" name="unblock"/> - <menu_item_call label="Rapportér" name="report"/> - <menu_item_call label="Frys" name="freeze"/> - <menu_item_call label="Smid ud" name="eject"/> - <menu_item_call label="Spark" name="kick"/> - <menu_item_call label="CSR" name="csr"/> - <menu_item_call label="Debug teksturer" name="debug"/> - <menu_item_call label="Find på kort" name="find_on_map"/> - <menu_item_call label="Zoom ind" name="zoom_in"/> - <menu_item_call label="Betal" name="pay"/> - <menu_item_call label="Del" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/da/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/da/menu_inspect_self_gear.xml deleted file mode 100644 index 887c6484bc..0000000000 --- a/indra/newview/skins/default/xui/da/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Sid ned" name="Sit Down Here"/> - <menu_item_call label="Stå op" name="Stand Up"/> - <context_menu label="Tag af" name="Take Off >"> - <context_menu label="Tøj" name="Clothes >"> - <menu_item_call label="Trøje" name="Shirt"/> - <menu_item_call label="Bukser" name="Pants"/> - <menu_item_call label="Nederdel" name="Skirt"/> - <menu_item_call label="Sko" name="Shoes"/> - <menu_item_call label="Strømper" name="Socks"/> - <menu_item_call label="Jakke" name="Jacket"/> - <menu_item_call label="Handsker" name="Gloves"/> - <menu_item_call label="Undertrøje" name="Self Undershirt"/> - <menu_item_call label="Underbukser" name="Self Underpants"/> - <menu_item_call label="Tatovering" name="Self Tattoo"/> - <menu_item_call label="Alpha" name="Self Alpha"/> - <menu_item_call label="Alt tøj" name="All Clothes"/> - </context_menu> - <context_menu label="HUD" name="Object Detach HUD"/> - <context_menu label="Tag af" name="Object Detach"/> - <menu_item_call label="Tag alt af" name="Detach All"/> - </context_menu> - <menu_item_call label="Skift sæt" name="Chenge Outfit"/> - <menu_item_call label="Redigér sæt" name="Edit Outfit"/> - <menu_item_call label="Redigér min figur" name="Edit My Shape"/> - <menu_item_call label="Mine venner" name="Friends..."/> - <menu_item_call label="Mine grupper" name="Groups..."/> - <menu_item_call label="Min profil" name="Profile..."/> - <menu_item_call label="Debug teksturer" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/da/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/da/menu_people_friends_view_sort.xml deleted file mode 100644 index 32c5e6a6c7..0000000000 --- a/indra/newview/skins/default/xui/da/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Sortér efter navn" name="sort_name"/> - <menu_item_check label="Sortér efter status" name="sort_status"/> - <menu_item_check label="Vis person ikoner" name="view_icons"/> - <menu_item_check label="Vis tildelte rettigheder" name="view_permissions"/> - <menu_item_call label="Vis blokerede beboere og objekter" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/da/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/da/menu_people_groups_view_sort.xml deleted file mode 100644 index 0b9a791530..0000000000 --- a/indra/newview/skins/default/xui/da/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Vis gruppe ikoner" name="Display Group Icons"/> - <menu_item_call label="Forlad valgte gruppe" name="Leave Selected Group"/> -</menu> diff --git a/indra/newview/skins/default/xui/da/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/da/menu_people_nearby_view_sort.xml deleted file mode 100644 index 2f35ff3c92..0000000000 --- a/indra/newview/skins/default/xui/da/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Sortér efter tidligere talere" name="sort_by_recent_speakers"/> - <menu_item_check label="Sortér efter navn" name="sort_name"/> - <menu_item_check label="Sortér efter afstand" name="sort_distance"/> - <menu_item_check label="Se ikoner for personer" name="view_icons"/> - <menu_item_call label="Vis blokerede beboere og objekter" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/da/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/da/menu_people_recent_view_sort.xml deleted file mode 100644 index d081f637f2..0000000000 --- a/indra/newview/skins/default/xui/da/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Sortér efter nyeste" name="sort_most"/> - <menu_item_check label="Sortér efter navn" name="sort_name"/> - <menu_item_check label="Vis person ikoner" name="view_icons"/> - <menu_item_call label="Vis blokerede beboere og objekter" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/da/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/da/panel_adhoc_control_panel.xml deleted file mode 100644 index 1953fad31f..0000000000 --- a/indra/newview/skins/default/xui/da/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="Opkald" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Forlad opkald" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Stemmekontroller" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_bottomtray.xml b/indra/newview/skins/default/xui/da/panel_bottomtray.xml deleted file mode 100644 index 3cd9d55dd0..0000000000 --- a/indra/newview/skins/default/xui/da/panel_bottomtray.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="bottom_tray"> - <string name="DragIndicationImageName" value="Accordion_ArrowOpened_Off"/> - <string name="SpeakBtnToolTip" value="Slå mikrofon til/fra"/> - <string name="VoiceControlBtnToolTip" value="Vis/skjul stemme kontrolpanel"/> - <layout_stack name="toolbar_stack"> - <layout_panel name="speak_panel"> - <talk_button name="talk"> - <speak_button label="Tal" label_selected="Tal" name="speak_btn"/> - </talk_button> - </layout_panel> - <layout_panel name="gesture_panel"> - <gesture_combo_list label="Bevægelse" name="Gesture" tool_tip="Skjuler/viser bevægelser"/> - </layout_panel> - <layout_panel name="movement_panel"> - <bottomtray_button label="Flyt" name="movement_btn" tool_tip="Vis/skjul bevægelseskontroller"/> - </layout_panel> - <layout_panel name="cam_panel"> - <bottomtray_button label="Vis" name="camera_btn" tool_tip="Vis/Skjul kamerakontroller"/> - </layout_panel> - <layout_panel name="snapshot_panel"> - <bottomtray_button label="" name="snapshots" tool_tip="Tag foto"/> - </layout_panel> - <layout_panel name="build_btn_panel"> - <bottomtray_button label="Byg" name="build_btn" tool_tip="Vis/skjul byggeværktøjer"/> - </layout_panel> - <layout_panel name="search_btn_panel"> - <bottomtray_button label="Søg" name="search_btn" tool_tip="Vis/skjul søgning"/> - </layout_panel> - <layout_panel name="world_map_btn_panel"> - <bottomtray_button label="Kort" name="world_map_btn" tool_tip="Vis/skjul verdenskort"/> - </layout_panel> - <layout_panel name="mini_map_btn_panel"> - <bottomtray_button label="Mini-kort" name="mini_map_btn" tool_tip="Vis/skjul Mini-kort"/> - </layout_panel> - <layout_panel name="im_well_panel"> - <chiclet_im_well name="im_well"> - <button name="Unread IM messages" tool_tip="Konversationer"/> - </chiclet_im_well> - </layout_panel> - <layout_panel name="notification_well_panel"> - <chiclet_notification name="notification_well"> - <button name="Unread" tool_tip="Notifikationer"/> - </chiclet_notification> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_edit_classified.xml b/indra/newview/skins/default/xui/da/panel_edit_classified.xml deleted file mode 100644 index fc4780a34e..0000000000 --- a/indra/newview/skins/default/xui/da/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Redigér annoncer" name="panel_edit_classified"> - <panel.string name="location_notice"> - (vil blive opdateret efter gemning) - </panel.string> - <string name="publish_label"> - Publicér - </string> - <string name="save_label"> - Gem - </string> - <text name="title"> - Rediger annonce - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="Klik for at vælge et billede"/> - </panel> - <text name="Name:"> - Titel: - </text> - <text name="description_label"> - Beskrivelse: - </text> - <text name="location_label"> - Lokation: - </text> - <text name="classified_location"> - henter... - </text> - <button label="Sæt til nuværende lokation" name="set_to_curr_location_btn"/> - <text name="category_label" value="Kategori:"/> - <text name="content_type_label" value="Indholdstype:"/> - <icons_combo_box label="Generelt" name="content_type"> - <icons_combo_box.item label="Moderat" name="mature_ci" value="Voksent"/> - <icons_combo_box.item label="Generelt" name="pg_ci" value="PG"/> - </icons_combo_box> - <check_box label="Forny automatisk hver uge" name="auto_renew"/> - <text name="price_for_listing_label" value="Pris for optagelse:"/> - <spinner label="L$" name="price_for_listing" tool_tip="Pris for optagelse." value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Annullér" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_edit_pick.xml b/indra/newview/skins/default/xui/da/panel_edit_pick.xml deleted file mode 100644 index 3036f30240..0000000000 --- a/indra/newview/skins/default/xui/da/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Redigér Pick" name="panel_edit_pick"> - <panel.string name="location_notice"> - (vil blive opdateret ved gemning) - </panel.string> - <text name="title"> - Redigér favorit - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Klik for at vælge billede"/> - <text name="Name:"> - Titel: - </text> - <text name="description_label"> - Beskrivelse: - </text> - <text name="location_label"> - Lokation: - </text> - <text name="pick_location"> - henter... - </text> - <button label="Sæt til nuværende lokation" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Gem valgte" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="Annullér" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_edit_profile.xml b/indra/newview/skins/default/xui/da/panel_edit_profile.xml deleted file mode 100644 index 14fd48ba2f..0000000000 --- a/indra/newview/skins/default/xui/da/panel_edit_profile.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Redigér profil" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] -[PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="Beboer"/> - <string name="AcctTypeTrial" value="På prøve"/> - <string name="AcctTypeCharterMember" value="æresmedlem"/> - <string name="AcctTypeEmployee" value="Linden Lab medarbejder"/> - <string name="PaymentInfoUsed" value="Betalende medlem"/> - <string name="PaymentInfoOnFile" value="Registreret betalende"/> - <string name="NoPaymentInfoOnFile" value="Ingen betalingsinfo"/> - <string name="AgeVerified" value="Alders-checket"/> - <string name="NotAgeVerified" value="Ikke alders-checket"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=da - </string> - <string name="no_partner_text" value="Ingen"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Visningsnavn:"/> - <text name="solo_username_label" value="Bugernavn:"/> - <button name="set_name" tool_tip="Sæt visningsnavn"/> - <text name="user_label" value="Brugernavn:"/> - <panel name="lifes_images_panel"> - <icon label="" name="2nd_life_edit_icon" tool_tip="Klik for at vælge et billede"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Real World:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="Klik for at vælge et billede"/> - <text name="title_homepage_text"> - Hjemmeside: - </text> - <check_box label="Vis mig i søgeresultater" name="show_in_search_checkbox"/> - <text name="title_acc_status_text" value="Min konto:"/> - <text_editor name="acc_status_text" value="Beboer. Ingen betalingsinfo."/> - <text name="my_account_link" value="[[URL] Go to My Dashboard]"/> - <text name="title_partner_text" value="Min partner:"/> - <panel name="partner_data_panel"> - <text initial_value="(henter)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] Edit]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Gem ændringer" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Annullér" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_group_control_panel.xml b/indra/newview/skins/default/xui/da/panel_group_control_panel.xml deleted file mode 100644 index 26fe4f6ebe..0000000000 --- a/indra/newview/skins/default/xui/da/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="Gruppe profil" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Opkald gruppe" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Forlad opkald" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Åben stemmekontroller" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_im_control_panel.xml b/indra/newview/skins/default/xui/da/panel_im_control_panel.xml deleted file mode 100644 index 5cecb93d40..0000000000 --- a/indra/newview/skins/default/xui/da/panel_im_control_panel.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="Profil" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="Tilføj ven" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="Teleport" name="teleport_btn" tool_tip="Tilbyd teleport til denne person"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="Del" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="Betal" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Opkald" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Afslut kald" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Stemme kontroller" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_pick_info.xml b/indra/newview/skins/default/xui/da/panel_pick_info.xml deleted file mode 100644 index 8a5141f967..0000000000 --- a/indra/newview/skins/default/xui/da/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="Favorit info"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[name]"/> - <text_editor name="pick_location" value="[loading...]"/> - <text_editor name="pick_desc" value="[description]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Teleport" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Kort" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Rediger" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_picks.xml b/indra/newview/skins/default/xui/da/panel_picks.xml deleted file mode 100644 index 8af68ee69a..0000000000 --- a/indra/newview/skins/default/xui/da/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Favoritter" name="panel_picks"> - <string name="no_picks" value="Ingen favoritter"/> - <string name="no_classifieds" value="Ingen annoncer"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Favoritter"/> - <accordion_tab name="tab_classifieds" title="Annoncer"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="Opret favorit eller annonce på nuværende lokation"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="Info" name="info_btn" tool_tip="Vis favoritinformation"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Teleport" name="teleport_btn" tool_tip="Teleportér til tilsvarende område"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Kort" name="show_on_map_btn" tool_tip="Vis tilsvarende område på verdenskort"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/da/panel_region_texture.xml b/indra/newview/skins/default/xui/da/panel_region_texture.xml deleted file mode 100644 index c8a3ad328e..0000000000 --- a/indra/newview/skins/default/xui/da/panel_region_texture.xml +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Terræn textures" name="Textures"> - <text name="region_text_lbl"> - Region: - </text> - <text name="region_text"> - ukendt - </text> - <text name="detail_texture_text"> - Terræn teksturer (kræver 1024x1024, 24 bit .tga filer) - </text> - <text name="height_text_lbl"> - 1 (Lav) - </text> - <text name="height_text_lbl2"> - 2 - </text> - <text name="height_text_lbl3"> - 3 - </text> - <text name="height_text_lbl4"> - 4 (Høj) - </text> - <text name="height_text_lbl5"> - Texture højde intervaller - </text> - <text name="height_text_lbl6"> - Nordvest - </text> - <text name="height_text_lbl7"> - Nordøst - </text> - <text name="height_text_lbl8"> - Sydvest - </text> - <text name="height_text_lbl9"> - Sydøst - </text> - <spinner label="Lav" name="height_start_spin_0"/> - <spinner label="Lav" name="height_start_spin_1"/> - <spinner label="Lav" name="height_start_spin_2"/> - <spinner label="Lav" name="height_start_spin_3"/> - <spinner label="Høj" name="height_range_spin_0"/> - <spinner label="Høj" name="height_range_spin_1"/> - <spinner label="Høj" name="height_range_spin_2"/> - <spinner label="Høj" name="height_range_spin_3"/> - <text name="height_text_lbl10"> - Disse værdier repræsenterer blandingsforhold for teksturer ovenfor. - </text> - <text name="height_text_lbl11"> - Målt i meter, angiver LAV værdien MAKSIMUM højden for tekstur 1 og HØJ værdien er MINIMUMSshøjden for tekstur 4. - </text> - <text name="height_text_lbl12"> - og HØJ værdien er MIMIMUM højde for texture nummer 4. - </text> - <button label="Gem" name="apply_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml index b2708f7141..10ccf0d5da 100644 --- a/indra/newview/skins/default/xui/de/floater_about.xml +++ b/indra/newview/skins/default/xui/de/floater_about.xml @@ -29,6 +29,7 @@ mit Open-Source-Beiträgen von:</text> 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. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2012 Jean-loup Gailly und Mark Adler. Second Life Viewer verwendet Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (und Lizenzgeber). Alle Rechte vorbehalten. Details siehe www.havok.com. diff --git a/indra/newview/skins/default/xui/de/floater_chat_bar.xml b/indra/newview/skins/default/xui/de/floater_chat_bar.xml deleted file mode 100644 index ab77d4dae5..0000000000 --- a/indra/newview/skins/default/xui/de/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="CHAT IN DER NÄHE"> - <panel name="bottom_panel"> - <line_editor label="Zum Chatten hier klicken." name="chat_box" tool_tip="Eingabetaste zum Sprechen, Strg+Eingabe zum Rufen"/> - <button name="show_nearby_chat" tool_tip="Chatprotokoll in der Nähe ein-/ausblenden"/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/de/floater_edit_day_cycle.xml deleted file mode 100644 index 8b29428c24..0000000000 --- a/indra/newview/skins/default/xui/de/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="Tageszyklus bearbeiten"> - <string name="title_new"> - Neuen Tageszyklus erstellen - </string> - <string name="title_edit"> - Tageszyklus bearbeiten - </string> - <string name="hint_new"> - Geben Sie einen Namen für den Tageszyklus ein, passen Sie die Steuerungen an, um den Tageszyklus zu erstellen, und klicken Sie auf „Speichern“. - </string> - <string name="hint_edit"> - Um den Tageszyklus zu bearbeiten, passen Sie die Steuerungen unten an und klicken Sie auf „Speichern“. - </string> - <string name="combo_label"> - -Voreinstellung auswählen- - </string> - <text name="label"> - Name der Voreinstellung: - </text> - <text name="note"> - Hinweis: Wenn Sie den Namen Ihrer Voreinstellung ändern, entsteht eine neue Voreinstellung; die vorhandene Voreinstellung wird nicht geändert. - </text> - <text name="hint_item1"> - - Klicken Sie auf eine Registerkarte, um die Himmeleinstellungen und die Uhrzeit zu bearbeiten. - </text> - <text name="hint_item2"> - - Klicken und ziehen Sie die Registerkarten, um die Übergangszeiten einzustellen. - </text> - <text name="hint_item3"> - - Anhand des Scrubbers können Sie eine Vorschau Ihres Tageszyklus anzeigen. - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="Schlüssel hinzufügen" label_selected="Schlüssel hinzufügen" name="WLAddKey"/> - <button label="Schlüssel löschen" label_selected="Schlüssel löschen" name="WLDeleteKey"/> - <text name="WL12am"> - 0:00 - </text> - <text name="WL3am"> - 3:00 - </text> - <text name="WL6am"> - 6:00 - </text> - <text name="WL9amHash"> - 9:00 - </text> - <text name="WL12pmHash"> - 12:00 - </text> - <text name="WL3pm"> - 15:00 - </text> - <text name="WL6pm"> - 18:00 - </text> - <text name="WL9pm"> - 21:00 - </text> - <text name="WL12am2"> - 0:00 - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - Himmeleinstellung: - </text> - <combo_box label="Voreinstellung" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - Uhrzeit: - </text> - <time name="time" value="6:00"/> - <check_box label="Zu meinem neuen Tageszyklus machen" name="make_default_cb"/> - <button label="Speichern" name="save"/> - <button label="Abbrechen" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/de/floater_edit_sky_preset.xml deleted file mode 100644 index adb7e5e479..0000000000 --- a/indra/newview/skins/default/xui/de/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="Himmel-Voreinstellung bearbeiten"> - <string name="title_new"> - Neue Himmel-Voreinstellung erstellen - </string> - <string name="title_edit"> - Himmel-Voreinstellung bearbeiten - </string> - <string name="hint_new"> - Geben Sie einen Namen für die Voreinstellung ein, passen Sie die Steuerungen an, um die Voreinstellung zu erstellen, und klicken Sie dann auf „Speichern“. - </string> - <string name="hint_edit"> - Um Ihre Himmel-Voreinstellung zu bearbeiten, passen Sie die Steuerungen an und klicken Sie auf „Speichern“. - </string> - <string name="combo_label"> - -Voreinstellung auswählen- - </string> - <text name="hint"> - Um Ihre Voreinstellung zu bearbeiten, passen Sie die Steuerungen an und klicken Sie auf „Speichern“. - </text> - <text name="label"> - Name der Voreinstellung: - </text> - <text name="note"> - Hinweis: Wenn Sie den Namen Ihrer Voreinstellung ändern, erstellen Sie eine neue Voreinstellung. Die vorhandene Voreinstellung wird nicht geändert. - </text> - <tab_container name="WindLight Tabs"> - <panel label="ATMOSPHÄRE" name="Atmosphere"> - <text name="BHText"> - Blauer Horizont - </text> - <text name="BDensText"> - Horizonttrübung - </text> - <text name="BDensText2"> - Farbintensität - </text> - <text name="HDText"> - Trübungsintensität - </text> - <text name="DensMultText"> - Dichtemultiplikator - </text> - <text name="WLDistanceMultText"> - Entfernungsmultiplikator - </text> - <text name="MaxAltText"> - Max. Höhe - </text> - </panel> - <panel label="BELEUCHTUNG" name="Lighting"> - <text name="SLCText"> - Sonne/Mond-Farbe - </text> - <text name="WLAmbientText"> - Umgebung - </text> - <text name="SunGlowText"> - Sonnenleuchtkraft - </text> - <slider label="Fokus" name="WLGlowB"/> - <slider label="Größe" name="WLGlowR"/> - <text name="WLStarText"> - Sternenleuchtkraft - </text> - <text name="SceneGammaText"> - Gamma in Szene - </text> - <text name="TODText"> - Sonne/Mond-Stand - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - 0:00 - </text> - <text name="WL6am"> - 6:00 - </text> - <text name="WL12pmHash"> - 12:00 - </text> - <text name="WL6pm"> - 18:00 - </text> - <text name="WL12am2"> - 0:00 - </text> - <time name="WLDayTime" value="6:00"/> - <text name="WLEastAngleText"> - Ostausrichtung - </text> - </panel> - <panel label="WOLKEN" name="Clouds"> - <text name="WLCloudColorText"> - Wolkenfarbe - </text> - <text name="WLCloudColorText2"> - Wolken-XY/Dichte - </text> - <slider label="X" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - Wolkendichte - </text> - <text name="WLCloudScaleText"> - Wolkenskalierung - </text> - <text name="WLCloudDetailText"> - Wolkendetails (XY/Dichte) - </text> - <slider label="X" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - Wolkenbewegung X - </text> - <check_box label="Sperren" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - Wolkenbewegung Y - </text> - <check_box label="Sperren" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="Diese Voreinstellung zu meiner neuen Himmeleinstellung machen" name="make_default_cb"/> - <button label="Speichern" name="save"/> - <button label="Abbrechen" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/de/floater_edit_water_preset.xml deleted file mode 100644 index dc7a18acb8..0000000000 --- a/indra/newview/skins/default/xui/de/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="Wasser-Voreinstellung bearbeiten"> - <string name="title_new"> - Neue Wasser-Voreinstellung erstellen - </string> - <string name="title_edit"> - Wasser-Voreinstellung bearbeiten - </string> - <string name="hint_new"> - Geben Sie einen Namen für die Voreinstellung ein, passen Sie die Steuerungen an, um die Voreinstellung zu erstellen, und klicken Sie dann auf „Speichern“. - </string> - <string name="hint_edit"> - Um Ihre Wasser-Voreinstellung zu bearbeiten, passen Sie die Steuerungen an und klicken Sie auf „Speichern“. - </string> - <string name="combo_label"> - -Voreinstellung auswählen- - </string> - <text name="hint"> - Um Ihre Voreinstellung zu bearbeiten, passen Sie die Steuerungen an und klicken Sie auf „Speichern“. - </text> - <text name="label"> - Name der Voreinstellung: - </text> - <text name="note"> - Hinweis: Wenn Sie den Namen Ihrer Voreinstellung ändern, erstellen Sie eine neue Voreinstellung. Die vorhandene Voreinstellung wird nicht geändert. - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - Trübungsfarbe - </text> - <text name="water_fog_density_label"> - Exponent für Trübungsdichte - </text> - <text name="underwater_fog_modifier_label"> - Modifikator für Wassertrübung - </text> - <text name="BHText"> - Richtung für große Wellen - </text> - <slider label="X" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - Reflexionswellengröße - </text> - <text name="HDText"> - Fresnel-Skalierung - </text> - <text name="FresnelOffsetText"> - Fresnel-Versatz - </text> - <text name="BHText2"> - Richtung für kleine Wellen - </text> - <slider label="X" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - Brechungsstärke oben - </text> - <text name="WaterScaleBelowText"> - Brechungsstärke unten - </text> - <text name="MaxAltText"> - Mischungsmultiplikator - </text> - <text name="BHText3"> - Normal-Map - </text> - </panel> - <check_box label="Diese Voreinstellung zu meiner neuen Wassereinstellung machen" name="make_default_cb"/> - <button label="Speichern" name="save"/> - <button label="Abbrechen" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_environment_settings.xml b/indra/newview/skins/default/xui/de/floater_environment_settings.xml deleted file mode 100644 index 7ad26b23b5..0000000000 --- a/indra/newview/skins/default/xui/de/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="UMGEBUNGSEINSTELLUNGEN"> - <text name="note"> - Anhand der nachstehenden Optionen können Sie die Umgebungseinstellungen für Ihren Viewer anpassen. - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="Regionseinstellungen verwenden" name="use_region_settings"/> - <radio_item label="Meine Umgebung anpassen" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - Hinweis: Ihre benutzerdefinierten Einstellungen sind für andere Benutzer nicht sichtbar. - </text> - <text name="water_settings_title"> - Wassereinstellung - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-Voreinstellung auswählen-" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - Himmel/Tageszyklus - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="Fester Himmel" name="my_sky_settings"/> - <radio_item label="Tageszyklus" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-Voreinstellung auswählen-" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-Voreinstellung auswählen-" name="item0"/> - </combo_box> - </panel> - <button label="OK" name="ok_btn"/> - <button label="Abbrechen" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_facebook.xml b/indra/newview/skins/default/xui/de/floater_facebook.xml deleted file mode 100644 index 32d6d02c7a..0000000000 --- a/indra/newview/skins/default/xui/de/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="AUF FACEBOOK POSTEN"> - <tab_container name="tabs"> - <panel label="STATUS" name="panel_facebook_status"/> - <panel label="FOTO" name="panel_facebook_photo"/> - <panel label="EINCHECKEN" name="panel_facebook_place"/> - <panel label="FREUNDE" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - Fehler - </text> - <text name="connection_loading_text"> - Laden... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_flickr.xml b/indra/newview/skins/default/xui/de/floater_flickr.xml deleted file mode 100644 index 525d015c2b..0000000000 --- a/indra/newview/skins/default/xui/de/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="AUF FLICKR TEILEN"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="FOTO" name="panel_flickr_photo"/> - <panel label="KONTO" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - Fehler - </text> - <text name="connection_loading_text"> - Laden... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_hardware_settings.xml b/indra/newview/skins/default/xui/de/floater_hardware_settings.xml deleted file mode 100644 index fd6c9a0875..0000000000 --- a/indra/newview/skins/default/xui/de/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="HARDWARE-EINSTELLUNGEN"> - <text name="Filtering:"> - Filtern: - </text> - <check_box label="Anisotropische Filterung (langsamer, wenn aktiviert)" name="ani"/> - <text name="antialiasing label"> - Antialiasing: - </text> - <combo_box label="Antialiasing" name="fsaa"> - <combo_box.item label="Deaktiviert" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (Neustart des Viewers erforderlich) - </text> - <spinner label="Gamma:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (0 = Standard-Helligkeit, weniger = heller) - </text> - <text name="Enable VBO:"> - VBO aktivieren: - </text> - <check_box initial_value="true" label="OpenGL Vertex-Buffer-Objekte aktivieren" name="vbo" tool_tip="Wenn Sie über moderne Grafikhardware verfügen, können Sie durch Aktivieren dieser Option die Geschwindigkeit verbessern. Bei alter Hardware sind die VBO oft schlecht implementiert, was zu Abstürzen führen kann, wenn diese Option aktiviert ist."/> - <text name="tc label"> - S3TC aktivieren: - </text> - <check_box initial_value="true" label="Texturkomprimierung aktivieren (Neustart erforderlich)" name="texture compression" tool_tip="Komprimiert Texturen im Videospeicher, damit höher auflösende Texturen geladen werden können (leichte Beeinträchtigung der Farbqualität)."/> - <slider label="Texturen-Cache (MB):" name="GraphicsCardTextureMemory" tool_tip="Speicherplatz, der für Texturen zur Verfügung steht. In der Regel handelt es sich um Grafikkartenspeicher. Ein kleinerer Wert kann die Geschwindigkeit erhöhen, aber auch zu Texturunschärfen führen."/> - <spinner label="Nebeldistanzverhältnis:" name="fog"/> - <button label="OK" label_selected="OK" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml deleted file mode 100644 index 9be22f3ccb..0000000000 --- a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="STANDARD-BERECHTIGUNGEN FÜR HOCHLADEN"> - <panel label="Berechtigungen" name="permissions"> - <button label="?" label_selected="?" name="help"/> - <check_box label="Mit Gruppe teilen" name="share_with_group"/> - <check_box label="Kopieren allen erlauben" name="everyone_copy"/> - <text name="NextOwnerLabel"> - Nächster Eigentümer kann: - </text> - <check_box label="Bearbeiten" name="next_owner_modify"/> - <check_box label="Kopieren" name="next_owner_copy"/> - <check_box label="Verkaufen/Weggeben" name="next_owner_transfer"/> - </panel> - <button label="OK" label_selected="OK" name="ok"/> - <button label="Abbrechen" label_selected="Abbrechen" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_twitter.xml b/indra/newview/skins/default/xui/de/floater_twitter.xml deleted file mode 100644 index 483641c260..0000000000 --- a/indra/newview/skins/default/xui/de/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="TWITTER"> - <tab_container name="tabs"> - <panel label="ERSTELLEN" name="panel_twitter_photo"/> - <panel label="KONTO" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - Fehler - </text> - <text name="connection_loading_text"> - Laden... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/de/floater_voice_controls.xml b/indra/newview/skins/default/xui/de/floater_voice_controls.xml deleted file mode 100644 index 5efda4136e..0000000000 --- a/indra/newview/skins/default/xui/de/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="SPRACHSTEUERUNGEN"> - <string name="title_nearby"> - VOICE-EINSTELLUNGEN - </string> - <string name="title_group"> - GRUPPENGESPRÄCH MIT [GROUP] - </string> - <string name="title_adhoc"> - KONFERENZGESPRÄCH - </string> - <string name="title_peer_2_peer"> - GESPRÄCH MIT [NAME] - </string> - <string name="no_one_near"> - Es ist niemand in der Nähe, der Voice aktiviert hat. - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="Mein Avatar:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="Anruf beenden" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml deleted file mode 100644 index 641a0ceebe..0000000000 --- a/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Profil anzeigen" name="view_profile"/> - <menu_item_call label="Freund hinzufügen" name="add_friend"/> - <menu_item_call label="IM" name="im"/> - <menu_item_call label="Anrufen" name="call"/> - <menu_item_call label="Teleportieren" name="teleport"/> - <menu_item_call label="In Gruppe einladen" name="invite_to_group"/> - <menu_item_call label="Ignorieren" name="block"/> - <menu_item_call label="Freischalten" name="unblock"/> - <menu_item_call label="Melden" name="report"/> - <menu_item_call label="Einfrieren" name="freeze"/> - <menu_item_call label="Hinauswerfen" name="eject"/> - <menu_item_call label="Hinauswerfen" name="kick"/> - <menu_item_call label="CSR" name="csr"/> - <menu_item_call label="Fehler in Texturen beseitigen" name="debug"/> - <menu_item_call label="Auf Karte anzeigen" name="find_on_map"/> - <menu_item_call label="Hineinzoomen" name="zoom_in"/> - <menu_item_call label="Bezahlen" name="pay"/> - <menu_item_call label="Teilen" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml deleted file mode 100644 index 5979194bfb..0000000000 --- a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Hinsetzen" name="Sit Down Here"/> - <menu_item_call label="Aufstehen" name="Stand Up"/> - <context_menu label="Ausziehen" name="Take Off >"> - <context_menu label="Kleidung" name="Clothes >"> - <menu_item_call label="Hemd" name="Shirt"/> - <menu_item_call label="Hose" name="Pants"/> - <menu_item_call label="Rock" name="Skirt"/> - <menu_item_call label="Schuhe" name="Shoes"/> - <menu_item_call label="Strümpfe" name="Socks"/> - <menu_item_call label="Jacke" name="Jacket"/> - <menu_item_call label="Handschuhe" name="Gloves"/> - <menu_item_call label="Unterhemd" name="Self Undershirt"/> - <menu_item_call label="Unterhose" name="Self Underpants"/> - <menu_item_call label="Tätowierung" name="Self Tattoo"/> - <menu_item_call label="Alpha" name="Self Alpha"/> - <menu_item_call label="Alle Kleider" name="All Clothes"/> - </context_menu> - <context_menu label="HUD" name="Object Detach HUD"/> - <context_menu label="Abnehmen" name="Object Detach"/> - <menu_item_call label="Alles abnehmen" name="Detach All"/> - </context_menu> - <menu_item_call label="Outfit ändern" name="Chenge Outfit"/> - <menu_item_call label="Mein Outfit bearbeiten" name="Edit Outfit"/> - <menu_item_call label="Meine Form bearbeiten" name="Edit My Shape"/> - <menu_item_call label="Meine Freunde" name="Friends..."/> - <menu_item_call label="Meine Gruppen" name="Groups..."/> - <menu_item_call label="Mein Profil" name="Profile..."/> - <menu_item_call label="Fehler in Texturen beseitigen" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/de/menu_name_field.xml b/indra/newview/skins/default/xui/de/menu_name_field.xml deleted file mode 100644 index 1d293c9361..0000000000 --- a/indra/newview/skins/default/xui/de/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="Anzeigenamen kopieren" name="copy_display"/> - <menu_item_call label="Agent-Namen kopieren" name="copy_name"/> - <menu_item_call label="Agent-ID kopieren" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/de/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/de/menu_people_friends_view_sort.xml deleted file mode 100644 index 84d9d8938c..0000000000 --- a/indra/newview/skins/default/xui/de/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Nach Name sortieren" name="sort_name"/> - <menu_item_check label="Nach Status sortieren" name="sort_status"/> - <menu_item_check label="Symbole für Personen anzeigen" name="view_icons"/> - <menu_item_check label="Erteilte Genehmigungen anzeigen" name="view_permissions"/> - <menu_item_call label="Ignorierte Einwohner & Objekte anzeigen" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/de/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/de/menu_people_groups_view_sort.xml deleted file mode 100644 index b68597d8aa..0000000000 --- a/indra/newview/skins/default/xui/de/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Gruppensymbole anzeigen" name="Display Group Icons"/> - <menu_item_call label="Ausgewählte Gruppe verlassen" name="Leave Selected Group"/> -</menu> diff --git a/indra/newview/skins/default/xui/de/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/de/menu_people_nearby_view_sort.xml deleted file mode 100644 index a001544f3e..0000000000 --- a/indra/newview/skins/default/xui/de/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Nach letzten Sprechern sortieren" name="sort_by_recent_speakers"/> - <menu_item_check label="Nach Name sortieren" name="sort_name"/> - <menu_item_check label="Nach Entfernung sortieren" name="sort_distance"/> - <menu_item_check label="Symbole für Personen anzeigen" name="view_icons"/> - <menu_item_check label="Karte anzeigen" name="view_map"/> - <menu_item_call label="Ignorierte Einwohner & Objekte anzeigen" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/de/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/de/menu_people_recent_view_sort.xml deleted file mode 100644 index 1ef020f5e1..0000000000 --- a/indra/newview/skins/default/xui/de/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Nach aktuellesten Sprechern sortieren" name="sort_most"/> - <menu_item_check label="Nach Name sortieren" name="sort_name"/> - <menu_item_check label="Symbole für Personen anzeigen" name="view_icons"/> - <menu_item_call label="Ignorierte Einwohner & Objekte anzeigen" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml deleted file mode 100644 index 6ad18781f5..0000000000 --- a/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="Anrufen" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Anruf beenden" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Voice-Steuerung" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_edit_classified.xml b/indra/newview/skins/default/xui/de/panel_edit_classified.xml deleted file mode 100644 index 8adacb4a5f..0000000000 --- a/indra/newview/skins/default/xui/de/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Anzeige bearbeiten" name="panel_edit_classified"> - <panel.string name="location_notice"> - (wird nach Speichern aktualisiert) - </panel.string> - <string name="publish_label"> - Veröffentlichen - </string> - <string name="save_label"> - Speichern - </string> - <text name="title"> - Anzeige bearbeiten - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="Klicken, um ein Bild auszuwählen"/> - </panel> - <text name="Name:"> - Titel: - </text> - <text name="description_label"> - Beschreibung: - </text> - <text name="location_label"> - Standort: - </text> - <text name="classified_location"> - wird geladen... - </text> - <button label="Aktuellen Standort verwenden" name="set_to_curr_location_btn"/> - <text name="category_label" value="Kategorie:"/> - <text name="content_type_label" value="Inhaltsart:"/> - <icons_combo_box label="Genereller Inhalt" name="content_type"> - <icons_combo_box.item label="Moderater Inhalt" name="mature_ci" value="Moderat"/> - <icons_combo_box.item label="Genereller Inhalt" name="pg_ci" value="G"/> - </icons_combo_box> - <check_box label="Jede Woche automatisch erneuern" name="auto_renew"/> - <text name="price_for_listing_label" value="Preis für Anzeige:"/> - <spinner label="L$" name="price_for_listing" tool_tip="Preis für Anzeige." value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="Abbrechen" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_edit_pick.xml b/indra/newview/skins/default/xui/de/panel_edit_pick.xml deleted file mode 100644 index aafffc7ae3..0000000000 --- a/indra/newview/skins/default/xui/de/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Auswahl bearbeiten" name="panel_edit_pick"> - <panel.string name="location_notice"> - (wird nach Speichern aktualisiert) - </panel.string> - <text name="title"> - Auswahl bearbeiten - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Klicken, um ein Bild auszuwählen"/> - <text name="Name:"> - Titel: - </text> - <text name="description_label"> - Beschreibung: - </text> - <text name="location_label"> - Standort: - </text> - <text name="pick_location"> - wird geladen... - </text> - <button label="Aktuellen Standort verwenden" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Auswahl speichern" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="Abbrechen" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_edit_profile.xml b/indra/newview/skins/default/xui/de/panel_edit_profile.xml deleted file mode 100644 index 03974e7f7f..0000000000 --- a/indra/newview/skins/default/xui/de/panel_edit_profile.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Profil bearbeiten" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] -[PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="Einwohner"/> - <string name="AcctTypeTrial" value="Test"/> - <string name="AcctTypeCharterMember" value="Charta-Mitglied"/> - <string name="AcctTypeEmployee" value="Linden Lab-Mitarbeiter"/> - <string name="PaymentInfoUsed" value="Zahlungsinfo verwendet"/> - <string name="PaymentInfoOnFile" value="Zahlungsinfo archiviert"/> - <string name="NoPaymentInfoOnFile" value="Keine Zahlungsinfo archiviert"/> - <string name="AgeVerified" value="Altersgeprüft"/> - <string name="NotAgeVerified" value="Nicht altersgeprüft"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=de - </string> - <string name="my_account_link_url"> - http://de.secondlife.com/my - </string> - <string name="no_partner_text" value="Keiner"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Anzeigename:"/> - <text name="solo_username_label" value="Benutzername:"/> - <button name="set_name" tool_tip="Anzeigenamen festlegen"/> - <text name="user_label" value="Benutzername:"/> - <panel name="lifes_images_panel"> - <panel name="second_life_image_panel"> - <text name="second_life_photo_title_text" value="[SECOND_LIFE]:"/> - </panel> - <icon label="" name="2nd_life_edit_icon" tool_tip="Klicken, um ein Bild auszuwählen"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Echtes Leben:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="Klicken, um ein Bild auszuwählen"/> - <text name="title_homepage_text"> - Webseite: - </text> - <line_editor name="homepage_edit" value="http://"/> - <check_box label="In Suchergebnissen anzeigen" name="show_in_search_checkbox"/> - <text name="title_acc_status_text" value="Mein Konto:"/> - <text_editor name="acc_status_text" value="Einwohner. Keine Zahlungsinfo archiviert."/> - <text name="my_account_link" value="[[URL] Meine Startseite aufrufen]"/> - <text name="title_partner_text" value="Mein Partner:"/> - <panel name="partner_data_panel"> - <text initial_value="(wird in Datenbank gesucht)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] bearbeiten]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Änderungen speichern" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Abbrechen" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_facebook_account.xml b/indra/newview/skins/default/xui/de/panel_facebook_account.xml deleted file mode 100644 index caa5f55186..0000000000 --- a/indra/newview/skins/default/xui/de/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="Sie sind mit Facebook verbunden als:"/> - <string name="facebook_disconnected" value="Nicht mit Facebook verbunden"/> - <text name="account_caption_label"> - Nicht mit Facebook verbunden. - </text> - <panel name="panel_buttons"> - <button label="Verbinden..." name="connect_btn"/> - <button label="Trennen" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Anweisungen zum Posten auf Facebook] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_facebook_friends.xml b/indra/newview/skins/default/xui/de/panel_facebook_friends.xml deleted file mode 100644 index 1a0bbc7d30..0000000000 --- a/indra/newview/skins/default/xui/de/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="Sie haben gegenwärtig keine Facebook-Freunde, die ebenfalls Second Life-Einwohner sind. Laden Sie Ihre Facebook-Freunde ein, Second Life beizutreten!"/> - <string name="facebook_friends_no_connected" value="Sie sind gegenwärtig nicht mit Facebook verbunden. Um eine Verbindung herzustellen und diese Funktion zu aktivieren, wechseln Sie zur Registerkarte "Status"."/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="SL-Freunde"/> - <accordion_tab name="tab_suggested_friends" title="Diese Personen als SL-Freunde hinzufügen"/> - </accordion> - <text name="facebook_friends_status"> - Nicht mit Facebook verbunden. - </text> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_facebook_photo.xml b/indra/newview/skins/default/xui/de/panel_facebook_photo.xml deleted file mode 100644 index fac9fe9984..0000000000 --- a/indra/newview/skins/default/xui/de/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="Bildauflösung"> - <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/> - <combo_box.item label="640 x 480" name="640x480"/> - <combo_box.item label="800 x 600" name="800x600"/> - <combo_box.item label="1024 x 768" name="1024x768"/> - <combo_box.item label="1200 x 630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Bildfilter"> - <combo_box.item label="Kein Filter" name="NoFilter"/> - </combo_box> - <button label="Aktualisieren" name="new_snapshot_btn" tool_tip="Zum Aktualisieren klicken"/> - <button label="Vorschau" name="big_preview_btn" tool_tip="Klicken, um Vorschau ein-/auszuschalten"/> - <text name="caption_label"> - Kommentar (optional): - </text> - <button label="Posten" name="post_photo_btn"/> - <button label="Abbrechen" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_facebook_place.xml b/indra/newview/skins/default/xui/de/panel_facebook_place.xml deleted file mode 100644 index 102be80502..0000000000 --- a/indra/newview/skins/default/xui/de/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - Details zu Ihrem aktuellen Standort: - </text> - <check_box initial_value="false" label="Draufsicht des Standorts einschließen" name="add_place_view_cb"/> - <button label="Posten" name="post_place_btn"/> - <button label="Abbrechen" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_facebook_status.xml b/indra/newview/skins/default/xui/de/panel_facebook_status.xml deleted file mode 100644 index 1fefef548e..0000000000 --- a/indra/newview/skins/default/xui/de/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="Sie sind mit Facebook verbunden als:"/> - <string name="facebook_disconnected" value="Nicht mit Facebook verbunden"/> - <text name="account_caption_label"> - Nicht mit Facebook verbunden. - </text> - <panel name="panel_buttons"> - <button label="Verbinden..." name="connect_btn"/> - <button label="Trennen" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Anweisungen zum Posten auf Facebook] - </text> - </panel> - <text name="status_caption_label"> - Was machen Sie gerade? - </text> - <button label="Posten" name="post_status_btn"/> - <button label="Abbrechen" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_flickr_account.xml b/indra/newview/skins/default/xui/de/panel_flickr_account.xml deleted file mode 100644 index 416761f0da..0000000000 --- a/indra/newview/skins/default/xui/de/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="Sie sind mit Flickr verbunden als:"/> - <string name="flickr_disconnected" value="Nicht mit Flickr verbunden"/> - <text name="account_caption_label"> - Nicht mit Flickr verbunden. - </text> - <panel name="panel_buttons"> - <button label="Verbinden..." name="connect_btn"/> - <button label="Trennen" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Anweisungen zum Posten auf Flickr] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_flickr_photo.xml b/indra/newview/skins/default/xui/de/panel_flickr_photo.xml deleted file mode 100644 index d8bc1f310d..0000000000 --- a/indra/newview/skins/default/xui/de/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="Bildauflösung"> - <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Bildfilter"> - <combo_box.item label="Kein Filter" name="NoFilter"/> - </combo_box> - <button label="Aktualisieren" name="new_snapshot_btn" tool_tip="Zum Aktualisieren klicken"/> - <button label="Vorschau" name="big_preview_btn" tool_tip="Klicken, um Vorschau ein-/auszuschalten"/> - <text name="title_label"> - Titel: - </text> - <text name="description_label"> - Beschreibung: - </text> - <check_box initial_value="true" label="SL-Standort am Ende der Beschreibung hinzufügen" name="add_location_cb"/> - <text name="tags_label"> - Markierungen: - </text> - <text name="tags_help_label"> - Markierungen durch Leerzeichen trennen. -Für Markierungen, die aus mehreren Wörtern bestehen, "" verwenden. - </text> - <combo_box name="rating_combobox" tool_tip="Flickr-Inhaltseinstufung"> - <combo_box.item label="Sichere Flickr-Einstufung" name="SafeRating"/> - <combo_box.item label="Moderate Flickr-Einstufung" name="ModerateRating"/> - <combo_box.item label="Beschränkte Flickr-Einstufung" name="RestrictedRating"/> - </combo_box> - <button label="Teilen" name="post_photo_btn"/> - <button label="Abbrechen" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_group_control_panel.xml b/indra/newview/skins/default/xui/de/panel_group_control_panel.xml deleted file mode 100644 index 9cb72fafff..0000000000 --- a/indra/newview/skins/default/xui/de/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="Gruppenprofil" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Gruppe anrufen" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Anruf beenden" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Voice-Steuerung öffnen" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml deleted file mode 100644 index abf8011d9d..0000000000 --- a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <text name="avatar_name" value="Unbekannt"/> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="Profil" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="Freund hinzufügen" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="Teleportieren" name="teleport_btn" tool_tip="Dieser Person einen Teleport anbieten."/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="Teilen" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="Bezahlen" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Anrufen" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Anruf beenden" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Voice-Steuerung" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_pick_info.xml b/indra/newview/skins/default/xui/de/panel_pick_info.xml deleted file mode 100644 index f215c43a3d..0000000000 --- a/indra/newview/skins/default/xui/de/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="Auswahl-Info"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[name]"/> - <text_editor name="pick_location" value="[wird geladen...]"/> - <text_editor name="pick_desc" value="[description]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Teleportieren" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Karte" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Bearbeiten" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_picks.xml b/indra/newview/skins/default/xui/de/panel_picks.xml deleted file mode 100644 index 6aaa3151a8..0000000000 --- a/indra/newview/skins/default/xui/de/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Auswahl" name="panel_picks"> - <string name="no_picks" value="Keine Auswahl"/> - <string name="no_classifieds" value="Keine Anzeigen"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Auswahl"/> - <accordion_tab name="tab_classifieds" title="Anzeigen"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="An aktuellem Standort neue Auswahl oder Anzeige erstellen"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="Info" name="info_btn" tool_tip="Informationen zur Auswahl anzeigen"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Teleportieren" name="teleport_btn" tool_tip="Zu entsprechendem Standort teleportieren"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Karte" name="show_on_map_btn" tool_tip="Den entsprechenden Standort auf der Karte anzeigen"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_profile_interests.xml b/indra/newview/skins/default/xui/de/panel_profile_interests.xml deleted file mode 100644 index 0f36f76aa0..0000000000 --- a/indra/newview/skins/default/xui/de/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Interessen" name="panel_profile_interests"> - <text name="I Want To:"> - Ich möchte: - </text> - <check_box label="Erstellen" name="chk0"/> - <check_box label="Erkunden" name="chk1"/> - <check_box label="Treffen" name="chk2"/> - <check_box label="Angestellt werden" name="chk6"/> - <check_box label="Gruppe" name="chk3"/> - <check_box label="Kaufen" name="chk4"/> - <check_box label="Verkaufen" name="chk5"/> - <check_box label="Anstellen" name="chk7"/> - <line_editor name="want_to_edit"> - (wird geladen...) - </line_editor> - <text name="Skills:"> - Fähigkeiten: - </text> - <check_box label="Texturen" name="schk0"/> - <check_box label="Architektur" name="schk1"/> - <check_box label="Modellierung" name="schk3"/> - <check_box label="Eventplanung" name="schk2"/> - <check_box label="Scripting" name="schk4"/> - <check_box label="Benutzerdefinierte Charaktere" name="schk5"/> - <line_editor name="skills_edit"> - (wird geladen...) - </line_editor> - <text name="Languages:"> - Sprachen: - </text> - <line_editor name="languages_edit"> - (wird geladen...) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_twitter_account.xml b/indra/newview/skins/default/xui/de/panel_twitter_account.xml deleted file mode 100644 index f2cbf3eb55..0000000000 --- a/indra/newview/skins/default/xui/de/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="Sie sind mit Twitter verbunden als:"/> - <string name="twitter_disconnected" value="Nicht mit Twitter verbunden"/> - <text name="account_caption_label"> - Nicht mit Twitter verbunden. - </text> - <panel name="panel_buttons"> - <button label="Verbinden..." name="connect_btn"/> - <button label="Trennen" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Anweisungen zum Posten auf Twitter] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/de/panel_twitter_photo.xml b/indra/newview/skins/default/xui/de/panel_twitter_photo.xml deleted file mode 100644 index e637253983..0000000000 --- a/indra/newview/skins/default/xui/de/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - Was ist los? - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="SL-Standort hinzufügen" name="add_location_cb"/> - <check_box initial_value="true" label="Foto hinzufügen" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="Bildauflösung"> - <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Bildfilter"> - <combo_box.item label="Kein Filter" name="NoFilter"/> - </combo_box> - <button label="Aktualisieren" name="new_snapshot_btn" tool_tip="Zum Aktualisieren klicken"/> - <button label="Vorschau" name="big_preview_btn" tool_tip="Klicken, um Vorschau ein-/auszuschalten"/> - <button label="Tweeten" name="post_photo_btn"/> - <button label="Abbrechen" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/en/floater_360capture.xml b/indra/newview/skins/default/xui/en/floater_360capture.xml index c89489d145..23d054105f 100644 --- a/indra/newview/skins/default/xui/en/floater_360capture.xml +++ b/indra/newview/skins/default/xui/en/floater_360capture.xml @@ -24,6 +24,7 @@ height="16" layout="topleft" left="10" + name="quality_level_label" top="10" width="100"> Quality level diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index eb07425dfe..1ad7811d85 100644 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -112,6 +112,7 @@ Dummy Name replaced at run time 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. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler. Second Life Viewer uses Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (and its Licensors). All Rights Reserved. See www.havok.com for details. 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 c6776ad039..4985d07eb9 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -2,13 +2,16 @@ <floater positioning="cascading" can_tear_off="false" - height="396" + can_resize="true" layout="topleft" name="floaterland" help_topic="floaterland" save_rect="true" title="ABOUT LAND" - width="634"> + height="396" + width="634" + min_height="420" + min_width="634"> <floater.string name="maturity_icon_general"> "Parcel_PG_Dark" @@ -659,10 +662,11 @@ type="string" length="1" enabled="false" - follows="top|left" + follows="top|left|right" height="175" layout="topleft" left="10" + right="-10" max_length="65535" name="covenant_editor" width="470" @@ -1129,25 +1133,25 @@ top_delta="-6"/> <button enabled="false" - follows="left|top" + follows="top|right" height="23" label="Return Objects" layout="topleft" left_pad="6" name="Return objects..." top_delta="0" - right="-154" + right="-10" width="164" /> <name_list column_padding="0" draw_heading="true" - follows="top|left" + follows="all" height="150" layout="topleft" left="10" name="owner list" name_column="name" - width="470"> + right="-10"> <name_list.columns label="Type" name="type" @@ -1341,9 +1345,9 @@ Only large parcels can be listed in search. <panel bevel_style="none" border="true" - top="121" - bottom="121" - follows="left|bottom|right" + top="116" + bottom="116" + follows="left|top|right" left="20" right="-20"/> <check_box @@ -1377,9 +1381,10 @@ Only large parcels can be listed in search. enabled="true" height="23" layout="topleft" - left="164" + left="18" top="194" name="land category" + follows="left|top" visible="true" width="140"> <combo_box.item @@ -1508,18 +1513,18 @@ Only large parcels can be listed in search. Landing Point: [LANDING] </text> <button - follows="right|top" + follows="left|top" top_pad="0" height="23" label="Set" label_selected="Set" layout="topleft" name="Set" - left="399" + left_delta="0" tool_tip="Sets the landing point where visitors arrive. Sets to your avatar's location inside this parcel." width="50" /> <button - follows="right|top" + follows="left|top" height="23" label="Clear" label_selected="Clear" @@ -1546,7 +1551,8 @@ Only large parcels can be listed in search. layout="topleft" name="landing type" top_pad="0" - left="399" + left_delta="0" + follows="left|top" tool_tip="Teleport Routing -- select how to handle teleports onto your land" width="120"> <combo_box.item @@ -1590,7 +1596,8 @@ Only large parcels can be listed in search. <combo_box height="23" layout="topleft" - left_pad="144" + left_pad="0" + follows="left|top" name="media type" tool_tip="Specify if the URL is a movie, web page, or other media" width="120" @@ -1625,11 +1632,11 @@ Only large parcels can be listed in search. width="300" top_delta="0"/> <button - follows="right|top" + follows="left|top" height="23" label="Set" layout="topleft" - left_pad="149" + left_pad="3" name="set_media_url" width="70" top_delta="0"/> @@ -1985,7 +1992,8 @@ Only large parcels can be listed in search. <combo_box height="23" layout="topleft" - left_pad="166" + follows="left|top" + left_pad="22" name="pass_combo" top_delta="0" width="100"> @@ -2039,14 +2047,21 @@ Only large parcels can be listed in search. top_pad="5" width="400"> (The estate owner may have limited these choices) - </text> - <panel - name="Allowed_layout_panel" - follows="top|left" - left="10" - height="170" - top_pad="8" - width="240"> + </text> + <layout_stack name="access_stack" + height="170" + follows="all" + animate="false" + left="10" + right="-10" + top_pad="8" + orientation="horizontal"> + <layout_panel + auto_resize="true" + user_resize="false" + name="Allowed_layout_panel" + height="170" + width="240"> <text type="string" length="1" @@ -2062,7 +2077,7 @@ Only large parcels can be listed in search. </text> <name_list column_padding="0" - follows="top|bottom" + follows="all" heading_height="14" height="125" layout="topleft" @@ -2070,7 +2085,7 @@ Only large parcels can be listed in search. multi_select="true" name="AccessList" tool_tip="([LISTED] listed, [MAX] max)" - width="230" /> + width="228" /> <button follows="bottom" height="23" @@ -2080,22 +2095,21 @@ Only large parcels can be listed in search. name="add_allowed" width="100" /> <button - follows="bottom" + follows="right|bottom" height="23" label="Remove" label_selected="Remove" layout="topleft" - left_pad="10" + left_pad="28" name="remove_allowed" - right="-10" width="100" /> - </panel> - <panel + </layout_panel> + <layout_panel + auto_resize="true" + user_resize="false" name="Banned_layout_panel" - follows="top|right" height="170" - width="240" - left_pad="146"> + width="240"> <text type="string" length="1" @@ -2103,7 +2117,7 @@ Only large parcels can be listed in search. height="16" label="Ban" layout="topleft" - left="0" + left="1" name="BanCheck" top="0" width="200"> @@ -2111,11 +2125,11 @@ Only large parcels can be listed in search. </text> <name_list column_padding="0" - follows="top|bottom" + follows="all" heading_height="16" height="125" layout="topleft" - left="0" + left="1" multi_select="true" draw_heading="true" name="BannedList" @@ -2135,21 +2149,21 @@ Only large parcels can be listed in search. height="23" label="Add" layout="topleft" - left="0" + left="1" name="add_banned" width="100" /> <button enabled="false" - follows="bottom" + follows="right|bottom" height="23" label="Remove" label_selected="Remove" layout="topleft" - left_pad="10" + left_pad="29" name="remove_banned" - right="-10" width="100" /> - </panel> + </layout_panel> + </layout_stack> </panel> <panel border="true" diff --git a/indra/newview/skins/default/xui/en/floater_adjust_environment.xml b/indra/newview/skins/default/xui/en/floater_adjust_environment.xml index f4a686bae1..bf97d32a5c 100644 --- a/indra/newview/skins/default/xui/en/floater_adjust_environment.xml +++ b/indra/newview/skins/default/xui/en/floater_adjust_environment.xml @@ -33,6 +33,7 @@ animate="false" orientation="horizontal"> <layout_panel border="false" + name="lp_1" bevel_style="in" auto_resize="false" user_resize="false" @@ -40,6 +41,7 @@ width="160" height="150"> <text follows="left|top" + name="ambient_lbl" height="10" layout="topleft" left="10" @@ -55,6 +57,7 @@ top_pad="5" width="60"/> <text follows="left|top" + name="blue_horizon_lbl" height="10" layout="topleft" left_delta="0" @@ -70,6 +73,7 @@ top_pad="5" width="60"/> <text follows="left|top" + name="blue_density_lbl" height="10" layout="topleft" left_delta="0" @@ -95,6 +99,7 @@ top_pad="10" width="100"/> <text follows="right|top" + name="sun_color_lbl" height="10" layout="topleft" right="-12" @@ -110,6 +115,7 @@ top_pad="5" width="60"/> <text follows="left|top" + name="cloud_color_lbl" height="10" layout="topleft" left_delta="0" @@ -142,7 +148,7 @@ layout="topleft" left_delta="0" top_pad="-13" - name="cloud_map_label" + name="water_map_label" width="80">Water Image:</text> <texture_picker height="63" layout="topleft" @@ -152,6 +158,7 @@ width="60"/> </layout_panel> <layout_panel border="false" + name="lp_2" bevel_style="in" auto_resize="false" user_resize="false" @@ -159,6 +166,7 @@ width="200" height="150"> <text follows="left|top" + name="haze_horizon_label" height="10" layout="topleft" left_delta="5" @@ -178,6 +186,7 @@ width="185" can_edit_text="true"/> <text follows="left|top" + name="haze_density_label" height="10" layout="topleft" left_delta="-5" @@ -197,6 +206,7 @@ width="185" can_edit_text="true"/> <text follows="left|top" + name="cloud_coverage_label" height="10" layout="topleft" left_delta="-5" @@ -216,6 +226,7 @@ width="185" can_edit_text="true"/> <text follows="left|top" + name="cloud_scale_label" height="10" layout="topleft" left_delta="-5" @@ -235,6 +246,7 @@ width="185" can_edit_text="true"/> <text follows="left|top" + name="scene_gamma_label" height="10" layout="topleft" left_delta="-5" @@ -254,6 +266,7 @@ can_edit_text="true"/> </layout_panel> <layout_panel border="false" + name="lp_3" bevel_style="in" auto_resize="false" user_resize="false" @@ -277,6 +290,7 @@ width="150" thumb_mode="sun"/> <text follows="left|top" + name="sun_azimuth_label" height="10" layout="topleft" left_delta="0" @@ -296,6 +310,7 @@ width="130" can_edit_text="true"/> <text follows="left|top" + name="sun_elevation_label" height="10" layout="topleft" left_delta="-5" @@ -324,6 +339,7 @@ top_pad="8" follows="left|top"/> <text follows="left|top" + name="scale_label" height="10" layout="topleft" left_pad="95" @@ -343,6 +359,7 @@ width="130" can_edit_text="true"/> <text follows="left|top" + name="glow_focus_label" height="10" layout="topleft" left_delta="-5" @@ -362,6 +379,7 @@ width="130" can_edit_text="true"/> <text follows="left|top" + name="glow_size_label" height="10" layout="topleft" left_delta="-5" @@ -381,6 +399,7 @@ width="130" can_edit_text="true"/> <text follows="left|top" + name="star_brightness_label" height="10" layout="topleft" left_delta="-5" @@ -401,6 +420,7 @@ can_edit_text="true"/> </layout_panel> <layout_panel border="false" + name="lp_4" bevel_style="in" auto_resize="false" user_resize="false" @@ -424,6 +444,7 @@ width="150" thumb_mode="moon"/> <text follows="left|top" + name="moon_azimuth_label" height="10" layout="topleft" left_delta="0" @@ -443,6 +464,7 @@ width="130" can_edit_text="true"/> <text follows="left|top" + name="moon_elevation_label" height="10" layout="topleft" left_delta="-5" diff --git a/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml b/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml index 31c524c38a..f3d7c38a76 100644 --- a/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml +++ b/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml @@ -270,6 +270,7 @@ word_wrap="true"/> <layout_stack + name="track_options_ls" follows="all" height="200" animate="false" @@ -277,6 +278,7 @@ left="0" orientation="horizontal"> <layout_panel + name="track_options_lp" border="false" bevel_style="in" auto_resize="false" @@ -312,6 +314,7 @@ </layout_panel> <layout_panel + name="track_progress_lp" border="false" bevel_style="in" auto_resize="false" @@ -457,6 +460,7 @@ </layout_stack> </layout_panel> <layout_panel + name="frames_lp" border="false" bevel_style="in" auto_resize="false" diff --git a/indra/newview/skins/default/xui/en/floater_experienceprofile.xml b/indra/newview/skins/default/xui/en/floater_experienceprofile.xml index f275fec066..588aca38e6 100644 --- a/indra/newview/skins/default/xui/en/floater_experienceprofile.xml +++ b/indra/newview/skins/default/xui/en/floater_experienceprofile.xml @@ -1,6 +1,7 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <floater + name="experience_profile" positioning="cascading" can_close="true" enabled="true" @@ -88,6 +89,7 @@ animate="false" top="0" orientation="vertical" + name="ls1" width="315"> <layout_panel follows="all" @@ -264,6 +266,7 @@ auto_resize="false" name="marketplace panel"> <text + name="Marketplace" type="string" length="1" follows="left|top" @@ -287,6 +290,7 @@ </text> </layout_panel> <layout_panel + name="owner panel" follows="left|top|right" height="18" left="0" @@ -613,6 +617,7 @@ name="clear_btn" label="Clear Location"/> <text + name="edit_marketplace" type="string" length="1" follows="left|top|right" diff --git a/indra/newview/skins/default/xui/en/floater_fixedenvironment.xml b/indra/newview/skins/default/xui/en/floater_fixedenvironment.xml index a6e20880a9..45f3880a15 100644 --- a/indra/newview/skins/default/xui/en/floater_fixedenvironment.xml +++ b/indra/newview/skins/default/xui/en/floater_fixedenvironment.xml @@ -34,6 +34,7 @@ left_delta="10" width="35" height="20" + name="info_panel_label" font="SansSerif"> Name: </text> diff --git a/indra/newview/skins/default/xui/en/floater_my_environments.xml b/indra/newview/skins/default/xui/en/floater_my_environments.xml index 6aff387dcb..4ff25de5e2 100644 --- a/indra/newview/skins/default/xui/en/floater_my_environments.xml +++ b/indra/newview/skins/default/xui/en/floater_my_environments.xml @@ -17,6 +17,7 @@ min_width="265" width="313"> <layout_stack + name="main_layout" follows="all" layout="topleft" left="5" @@ -126,6 +127,7 @@ auto_resize="false" user_resize="false" tab_group="1" + name="lp_showfolders" height="15"> <check_box follows="left|bottom" 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 b82fe43e74..a8b4b84ab7 100644 --- a/indra/newview/skins/default/xui/en/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/en/floater_top_objects.xml @@ -273,4 +273,17 @@ <button.commit_callback function="TopObjects.ReturnAll" /> </button> + <button + follows="bottom|left" + height="23" + label="Teleport to selected" + layout="topleft" + left_pad="10" + name="teleport_btn" + enabled="false" + top_delta="0" + width="160"> + <button.commit_callback + function="TopObjects.TeleportToSelected" /> +</button> </floater> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index d78ebf17e3..07471ed5bb 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -794,14 +794,36 @@ name="LandShow" tear_off="true"> <menu_item_check - label="Ban Lines" - name="Ban Lines"> + label="Hide Ban Lines" + name="Hide Ban Lines"> <menu_item_check.on_check - control="ShowBanLines" /> + function="World.CheckBanLines" + parameter="0" /> <menu_item_check.on_click - function="ToggleControl" - parameter="ShowBanLines" /> + function="World.ShowBanLines" + parameter="0" /> + </menu_item_check> + <menu_item_check + label="Show Ban Lines On Collision" + name="Show Ban Lines On Collision"> + <menu_item_check.on_check + function="World.CheckBanLines" + parameter="1" /> + <menu_item_check.on_click + function="World.ShowBanLines" + parameter="1" /> + </menu_item_check> + <menu_item_check + label="Show Ban Lines On Proximity" + name="Show Ban Lines On Proximity"> + <menu_item_check.on_check + function="World.CheckBanLines" + parameter="2" /> + <menu_item_check.on_click + function="World.ShowBanLines" + parameter="2" /> </menu_item_check> + <menu_item_separator /> <menu_item_check label="Beacons" name="beacons" diff --git a/indra/newview/skins/default/xui/en/mime_types.xml b/indra/newview/skins/default/xui/en/mime_types.xml index de9ac4247f..a9d99dad27 100644 --- a/indra/newview/skins/default/xui/en/mime_types.xml +++ b/indra/newview/skins/default/xui/en/mime_types.xml @@ -309,6 +309,17 @@ media_plugin_cef </impl> </mimetype> + <mimetype name="application/octet-stream"> + <label name="application/octet-stream_label"> + Stream + </label> + <widgettype> + movie + </widgettype> + <impl> + media_plugin_libvlc + </impl> + </mimetype> <mimetype name="audio/mid"> <label name="audio/mid_label"> Audio (MIDI) @@ -474,6 +485,17 @@ media_plugin_libvlc </impl> </mimetype> + <mimetype name="video/x-flv"> + <label name="video/x-flv_label"> + Movie (flv) + </label> + <widgettype> + movie + </widgettype> + <impl> + media_plugin_libvlc + </impl> + </mimetype> <mimetype name="application/octet-stream"> <label name="video/octet-stream"> Movie diff --git a/indra/newview/skins/default/xui/en/mime_types_mac.xml b/indra/newview/skins/default/xui/en/mime_types_mac.xml index 2d96708b86..7fa0a676dd 100644 --- a/indra/newview/skins/default/xui/en/mime_types_mac.xml +++ b/indra/newview/skins/default/xui/en/mime_types_mac.xml @@ -287,6 +287,17 @@ media_plugin_cef </impl> </mimetype> + <mimetype name="application/octet-stream"> + <label name="application/octet-stream_label"> + Stream + </label> + <widgettype> + movie + </widgettype> + <impl> + media_plugin_libvlc + </impl> + </mimetype> <mimetype name="audio/mid"> <label name="audio/mid_label"> Audio (MIDI) @@ -452,6 +463,17 @@ media_plugin_libvlc </impl> </mimetype> + <mimetype name="video/x-flv"> + <label name="video/x-flv_label"> + Movie (flv) + </label> + <widgettype> + movie + </widgettype> + <impl> + media_plugin_libvlc + </impl> + </mimetype> <mimetype menu="1" name="video/quicktime"> <label name="video/quicktime_label"> Movie (QuickTime) diff --git a/indra/newview/skins/default/xui/en/panel_experience_info.xml b/indra/newview/skins/default/xui/en/panel_experience_info.xml index 70d8a4fc64..5b6dab3ac6 100644 --- a/indra/newview/skins/default/xui/en/panel_experience_info.xml +++ b/indra/newview/skins/default/xui/en/panel_experience_info.xml @@ -44,6 +44,7 @@ width="315" min_width="315"> <layout_stack + name="ls1" follows="all" height="480" layout="topleft" @@ -73,6 +74,7 @@ width="290" /> </layout_panel> <layout_panel + name="title panel" follows="all" height="19" layout="topleft" @@ -203,6 +205,7 @@ </text> </layout_panel> <layout_panel + name="details panel" follows="left|top|right" height="69" left="0" diff --git a/indra/newview/skins/default/xui/en/panel_experience_list_item.xml b/indra/newview/skins/default/xui/en/panel_experience_list_item.xml index a9777c51e7..58c18b8bb1 100644 --- a/indra/newview/skins/default/xui/en/panel_experience_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_experience_list_item.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel + name="panel_experience_list_item" layout="topleft" top="100" left="5" diff --git a/indra/newview/skins/default/xui/en/panel_experience_log.xml b/indra/newview/skins/default/xui/en/panel_experience_log.xml index 6869a135d8..bf7295b187 100644 --- a/indra/newview/skins/default/xui/en/panel_experience_log.xml +++ b/indra/newview/skins/default/xui/en/panel_experience_log.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel + name="panel_experience_log" layout="topleft" top="3" left="3" @@ -16,6 +17,7 @@ name="loading" value="loading..."/> <layout_stack + name="ls1" layout="topleft" top="0" left="4" @@ -24,6 +26,7 @@ orientation="vertical" follows="all"> <layout_panel + name="list panel" layout="topleft" top="0" left="1" diff --git a/indra/newview/skins/default/xui/en/panel_experience_search.xml b/indra/newview/skins/default/xui/en/panel_experience_search.xml index 99ad3e7fe3..c2fe9fb085 100644 --- a/indra/newview/skins/default/xui/en/panel_experience_search.xml +++ b/indra/newview/skins/default/xui/en/panel_experience_search.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel + name="panel_experience_search" layout="topleft" top="18" left="0" @@ -44,6 +45,7 @@ top="0" name="search_panel"> <text + name="lbl name part" left="0" follows="top|left|right" right="-1"> @@ -63,6 +65,7 @@ height="18" name="find"/> <text + name="lbl max content rating" top_pad="6" left="0" follows="top|left" diff --git a/indra/newview/skins/default/xui/en/panel_experiences.xml b/indra/newview/skins/default/xui/en/panel_experiences.xml index 7691e684c0..9d30615442 100644 --- a/indra/newview/skins/default/xui/en/panel_experiences.xml +++ b/indra/newview/skins/default/xui/en/panel_experiences.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel + name="panel_experiences" layout="topleft" top="3" left="3" diff --git a/indra/newview/skins/default/xui/en/panel_script_experience.xml b/indra/newview/skins/default/xui/en/panel_script_experience.xml index e798638751..9ae5b201a6 100644 --- a/indra/newview/skins/default/xui/en/panel_script_experience.xml +++ b/indra/newview/skins/default/xui/en/panel_script_experience.xml @@ -48,23 +48,28 @@ layout="topleft" visible="false"> <layout_panel width="120" - height="140"> - <text > + height="140" + name="xp_layout_panel"> + <text name="lbl_script"> Script: </text> - <text bottom_delta="25"> + <text bottom_delta="25" + name="lbl_associated"> Associated with: </text> - <text bottom_delta="25"> + <text bottom_delta="25" + name="lbl_contribute"> You can contribute: </text> - <text bottom_delta="25"> + <text bottom_delta="25" + name="lbl_associate"> Associate with: </text> </layout_panel> <layout_panel width="250" - height="140"> + height="140" + name="xp_choose_panel"> <text > EasySit Animator 1.2.4 </text> diff --git a/indra/newview/skins/default/xui/en/panel_settings_sky_atmos.xml b/indra/newview/skins/default/xui/en/panel_settings_sky_atmos.xml index 6f82a0efa1..fa2d4dfe73 100644 --- a/indra/newview/skins/default/xui/en/panel_settings_sky_atmos.xml +++ b/indra/newview/skins/default/xui/en/panel_settings_sky_atmos.xml @@ -8,6 +8,7 @@ name="panel_settings_sky_atmos" top="0"> <layout_stack + name="main_ls" follows="all" layout="topleft" left="5" @@ -16,6 +17,7 @@ bottom="-5" orientation="vertical"> <layout_panel + name="top_lp" border="true" bevel_style="in" auto_resize="false" @@ -24,6 +26,7 @@ height="75"> <text + name="ambient_color_label" follows="left|top" height="10" layout="topleft" @@ -43,6 +46,7 @@ top_pad="5" width="60" /> <text + name="blue_horizon_label" follows="left" height="10" layout="topleft" @@ -62,6 +66,7 @@ top_pad="5" width="60" /> <text + name="blue_density_label" follows="left" height="10" layout="topleft" @@ -82,6 +87,7 @@ width="60" /> </layout_panel> <layout_panel + name="bottom_lp" border="true" bevel_style="in" auto_resize="true" @@ -95,6 +101,7 @@ follows="left|top|right|bottom" orientation="hoizontal"> <layout_panel + name="left_lp" border="false" bevel_style="in" auto_resize="true" @@ -102,6 +109,7 @@ visible="true" min_width="225"> <text + name="haze_horizon_label" follows="left|top" height="10" layout="topleft" @@ -125,6 +133,7 @@ width="207" can_edit_text="true"/> <text + name="haze_density_label" follows="left|top" height="10" layout="topleft" @@ -148,6 +157,7 @@ width="207" can_edit_text="true"/> <text + name="moisture_level_label" follows="left|top" height="10" layout="topleft" @@ -171,6 +181,7 @@ width="207" can_edit_text="true"/> <text + name="droplet_radius_label" follows="left|top" height="10" layout="topleft" @@ -194,6 +205,7 @@ width="207" can_edit_text="true"/> <text + name="ice_level_label" follows="left|top" height="10" layout="topleft" @@ -217,6 +229,7 @@ width="207" can_edit_text="true"/> <text + name="scene_gamma_label" follows="left|top" height="10" layout="topleft" @@ -240,6 +253,7 @@ can_edit_text="true"/> </layout_panel> <layout_panel + name="right_lp" border="false" bevel_style="in" auto_resize="true" @@ -247,6 +261,7 @@ visible="true" min_width="225"> <text + name="density_multiplier_label" follows="left|top" height="10" layout="topleft" @@ -270,6 +285,7 @@ width="219" can_edit_text="true"/> <text + name="distance_multiplier_label" follows="left|top" height="10" layout="topleft" @@ -293,6 +309,7 @@ width="219" can_edit_text="true"/> <text + name="maximum_altitude_label" follows="left|top" height="10" layout="topleft" @@ -302,7 +319,7 @@ Maximum Altitude: </text> <slider - decimal_digits="1" + decimal_digits="2" follows="left|top" height="16" increment="0.01" diff --git a/indra/newview/skins/default/xui/en/panel_settings_sky_clouds.xml b/indra/newview/skins/default/xui/en/panel_settings_sky_clouds.xml index ac3b45d24c..9bdfa94a33 100644 --- a/indra/newview/skins/default/xui/en/panel_settings_sky_clouds.xml +++ b/indra/newview/skins/default/xui/en/panel_settings_sky_clouds.xml @@ -9,6 +9,7 @@ name="panel_settings_sky_clouds" top="0"> <layout_stack + name="main_ls" follows="all" layout="topleft" left="5" @@ -17,6 +18,7 @@ bottom="-5" orientation="hoizontal"> <layout_panel + name="left_lp" border="true" bevel_style="in" auto_resize="true" @@ -24,6 +26,7 @@ visible="true" height="75"> <text + name="cloud_color_label" follows="left|top" height="10" layout="topleft" @@ -43,6 +46,7 @@ top_pad="5" width="60" /> <text + name="cloud_coverage_label" follows="left|top" height="10" layout="topleft" @@ -66,6 +70,7 @@ width="214" can_edit_text="true"/> <text + name="cloud_scale_label" follows="left|top" height="10" layout="topleft" @@ -89,6 +94,7 @@ width="214" can_edit_text="true"/> <text + name="cloud_variance_label" follows="left|top" height="10" layout="topleft" @@ -112,6 +118,7 @@ width="214" can_edit_text="true"/> <text + name="cloud_scroll_label" follows="left|top" height="10" layout="topleft" @@ -135,6 +142,7 @@ logarithmic="1"/> <text + name="cloud_image_label" follows="left|top" height="10" layout="topleft" @@ -152,6 +160,7 @@ width="100"/> </layout_panel> <layout_panel + name="right_lp" border="true" bevel_style="in" auto_resize="true" @@ -159,6 +168,7 @@ visible="true" height="75"> <text + name="cloud_density_label" follows="left|top" height="10" layout="topleft" @@ -213,6 +223,7 @@ width="200" can_edit_text="true"/> <text + name="cloud_detail_label" follows="left|top" height="10" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_settings_sky_density.xml b/indra/newview/skins/default/xui/en/panel_settings_sky_density.xml index b3a33961bc..9b37896979 100644 --- a/indra/newview/skins/default/xui/en/panel_settings_sky_density.xml +++ b/indra/newview/skins/default/xui/en/panel_settings_sky_density.xml @@ -9,6 +9,7 @@ name="panel_settings_sky_density" top="0"> <layout_stack + name="main_ls" follows="all" layout="topleft" left="5" @@ -17,6 +18,7 @@ bottom="-5" orientation="vertical"> <layout_panel + name="lp_1" border="true" bevel_style="in" auto_resize="true" @@ -96,6 +98,7 @@ can_edit_text="true"/> </layout_panel> <layout_panel + name="lp_2" border="true" bevel_style="in" auto_resize="true" @@ -190,6 +193,7 @@ can_edit_text="true"/> </layout_panel> <layout_panel + name="lp_3" border="true" bevel_style="in" auto_resize="true" diff --git a/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml b/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml index 1ad78dbb13..35adb262bb 100644 --- a/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml +++ b/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml @@ -8,6 +8,7 @@ name="panel_settings_sky_hbodies" top="0"> <layout_stack + name="main_ls" follows="all" layout="topleft" left="5" @@ -24,6 +25,7 @@ name="sun_layout" height="400"> <text + name="sun_stars_label" follows="left|top" height="10" layout="topleft" @@ -34,6 +36,7 @@ Sun & Stars </text> <text + name="position_label" follows="left|top" height="10" layout="topleft" @@ -51,6 +54,7 @@ width="150" thumb_mode="sun" /> <text + name="image_label" follows="left|top" height="10" layout="topleft" @@ -67,6 +71,7 @@ top_pad="10" width="100"/> <text + name="scale_label" follows="left|top" height="10" layout="topleft" @@ -90,6 +95,7 @@ width="130" can_edit_text="true"/> <text + name="color_label" follows="left|top" height="10" layout="topleft" @@ -110,6 +116,7 @@ width="60" /> <text follows="left|top" + name="sun_azimuth_label" height="10" layout="topleft" left_delta="-235" @@ -133,6 +140,7 @@ can_edit_text="true"/> <text follows="left|top" + name="sun_elevation_label" height="10" layout="topleft" left_delta="-5" @@ -155,6 +163,7 @@ width="215" can_edit_text="true"/> <text + name="glow_focus_label" follows="left|top" height="10" layout="topleft" @@ -178,6 +187,7 @@ width="215" can_edit_text="true"/> <text + name="glow_size_label" follows="left|top" height="10" layout="topleft" @@ -201,6 +211,7 @@ width="215" can_edit_text="true"/> <text + name="star_brightness_label" follows="left|top" height="10" layout="topleft" @@ -237,6 +248,7 @@ </layout_panel> <layout_panel + name="moon_layout" border="false" bevel_style="in" auto_resize="true" @@ -244,6 +256,7 @@ visible="true" height="400"> <layout_stack + name="moon_stack" left="5" top="5" right="-5" @@ -259,6 +272,7 @@ name="moon_layout" height="220"> <text + name="moon_label" follows="left|top" height="10" layout="topleft" @@ -269,6 +283,7 @@ Moon </text> <text + name="position_label" follows="left|top" height="10" layout="topleft" @@ -286,6 +301,7 @@ width="150" thumb_mode="moon" /> <text + name="moon_image_label" follows="left|top" height="10" layout="topleft" @@ -302,6 +318,7 @@ top_pad="10" width="100"/> <text + name="scale_label" follows="left|top" height="10" layout="topleft" @@ -326,6 +343,7 @@ can_edit_text="true"/> <text follows="left|top" + name="moon_azimuth_label" height="10" layout="topleft" left_delta="-170" @@ -349,6 +367,7 @@ can_edit_text="true"/> <text follows="left|top" + name="moon_elevation_label" height="10" layout="topleft" left_delta="-5" @@ -371,6 +390,7 @@ width="215" can_edit_text="true"/> <text + name="brightness_label" follows="left|top" height="10" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_settings_water.xml b/indra/newview/skins/default/xui/en/panel_settings_water.xml index 991ce25bec..1aa42af3a8 100644 --- a/indra/newview/skins/default/xui/en/panel_settings_water.xml +++ b/indra/newview/skins/default/xui/en/panel_settings_water.xml @@ -17,6 +17,7 @@ bottom="-5" orientation="vertical"> <layout_panel + name="lp_top" border="true" bevel_style="in" auto_resize="false" @@ -24,6 +25,7 @@ visible="true" height="105"> <text + name="water_fog_label" follows="left|top" height="20" font="SansSerif" @@ -34,6 +36,7 @@ Water Fog: </text> <text + name="color_label" follows="left|top" height="10" layout="left|top" @@ -53,6 +56,7 @@ top_pad="5" width="60" /> <text + name="density_exponent_label" follows="left|top" height="10" top_delta="-15" @@ -75,6 +79,7 @@ width="150" can_edit_text="true"/> <text + name="underwater_modifier_label" follows="left|top" height="10" top_delta="25" @@ -101,6 +106,7 @@ height="10" layout="topleft" left_delta="165" + name="FresnelScaleText" top_delta="-53" width="150"> Fresnel Scale: @@ -141,6 +147,7 @@ </layout_panel> <layout_panel + name="lp_bottom" auto_resize="true" user_resize="false" visible="true"> @@ -152,6 +159,7 @@ follows="left|top|right|bottom" orientation="horizontal"> <layout_panel + name="lp_left" border="true" bevel_style="in" auto_resize="true" @@ -160,6 +168,7 @@ min_width="460" width="50"> <text + name="normal_map_label" follows="left|top|right" height="16" layout="topleft" @@ -177,6 +186,7 @@ width="61"/> <text + name="large_wave_speed_label" follows="left|top" height="16" width="120" @@ -202,6 +212,7 @@ arrow_color="white"/> <text + name="small_wave_speed_label" follows="left|top" height="16" layout="topleft" @@ -226,6 +237,7 @@ arrow_color="white"/> <text + name="reflection_wavelet_scale_label" follows="left|top|right" height="16" layout="topleft" @@ -277,6 +289,7 @@ </layout_panel> <layout_panel + name="lp_right" border="true" bevel_style="in" auto_resize="true" @@ -284,6 +297,7 @@ width="50" visible="true"> <text + name="refraction_and_blur_label" follows="left|top" height="20" font="SansSerif" @@ -294,6 +308,7 @@ Refraction And Blur: </text> <text + name="refraction_scale_above_label" follows="left|top|right" height="16" layout="topleft" @@ -318,6 +333,7 @@ width="200" can_edit_text="true" /> <text + name="refraction_scale_below_label" type="string" length="1" follows="left|top|right" @@ -344,6 +360,7 @@ width="200" can_edit_text="true"/> <text + name="blur_multiplier_label" follows="left|top|right" font="SansSerif" height="16" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 01f5b513c7..0b19ad1473 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -233,7 +233,7 @@ If you feel this is an error, please contact support@secondlife.com</string> <string name="TooltipForSaleL$">For Sale: L$[AMOUNT]</string> <!-- L$ version --> <string name="TooltipFlagGroupBuild">Group Build</string> <string name="TooltipFlagNoBuild">No Build</string> - <string name="TooltipFlagNoEdit">Group Build</string> + <string name="TooltipFlagNoEdit">No Edit</string> <string name="TooltipFlagNotSafe">Not Safe</string><!-- damage area --> <string name="TooltipFlagNoFly">No Fly</string> <string name="TooltipFlagGroupScripts">Group Scripts</string> diff --git a/indra/newview/skins/default/xui/en/widgets/density_ctrl.xml b/indra/newview/skins/default/xui/en/widgets/density_ctrl.xml index 0f3f0159db..eb665fd3cb 100644 --- a/indra/newview/skins/default/xui/en/widgets/density_ctrl.xml +++ b/indra/newview/skins/default/xui/en/widgets/density_ctrl.xml @@ -13,6 +13,7 @@ follows="left|top" height="11" layout="topleft" + name="exponential_term_label" left="15" top_pad="-5" width="120"> @@ -45,6 +46,7 @@ Exponential Term follows="left|top" height="11" layout="topleft" + name="exponential_scale_factor_label" left="15" top_pad="-5" width="120"> @@ -69,6 +71,7 @@ Exponential Scale Factor follows="left|top" height="11" layout="topleft" + name="linear_term_label" left="15" top_pad="-5" width="120"> @@ -93,6 +96,7 @@ Linear Term follows="left|top" height="11" layout="topleft" + name="constant_term_label" left="15" top_pad="-5" width="120"> @@ -117,6 +121,7 @@ Constant Term follows="left|top" height="11" layout="topleft" + name="max_altitude_label" left="15" top_pad="15" width="80"> diff --git a/indra/newview/skins/default/xui/es/floater_about.xml b/indra/newview/skins/default/xui/es/floater_about.xml index f59f534908..e14ba32f69 100644 --- a/indra/newview/skins/default/xui/es/floater_about.xml +++ b/indra/newview/skins/default/xui/es/floater_about.xml @@ -29,6 +29,7 @@ con contribuciones de código abierto de:</text> 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. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2012 Jean-loup Gailly y Mark Adler. El visor de Second Life usa Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (y sus licenciadores). Reservados todos los derechos. Vea los detalles en www.havok.com. diff --git a/indra/newview/skins/default/xui/es/floater_chat_bar.xml b/indra/newview/skins/default/xui/es/floater_chat_bar.xml deleted file mode 100644 index 02369c9a43..0000000000 --- a/indra/newview/skins/default/xui/es/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="CHAT"> - <panel name="bottom_panel"> - <line_editor label="Pulsa aquí para chatear." name="chat_box" tool_tip="Pulsa Enter para decirlo o Ctrl+Enter para gritarlo"/> - <button name="show_nearby_chat" tool_tip="Muestra o esconde el registro del chat"/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/es/floater_edit_day_cycle.xml deleted file mode 100644 index 6ac46351db..0000000000 --- a/indra/newview/skins/default/xui/es/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="Editar ciclo del día"> - <string name="title_new"> - Crear un ciclo del día nuevo - </string> - <string name="title_edit"> - Editar ciclo del día - </string> - <string name="hint_new"> - Asigna un nombre al ciclo del día, ajusta los controles para crearlo y selecciona "Guardar". - </string> - <string name="hint_edit"> - Para editar el ciclo del día, ajusta los controles siguientes y selecciona "Guardar". - </string> - <string name="combo_label"> - -Selecciona un valor predefinido- - </string> - <text name="label"> - Nombre predefinido: - </text> - <text name="note"> - Nota: Si cambias el nombre del valor predefinido, crearás un predefinido nuevo y el actual no se modificará. - </text> - <text name="hint_item1"> - - Pulsa en una pestaña para editar la configuración y el tiempo de un cielo determinado. - </text> - <text name="hint_item2"> - - Pulsa y arrastra las pestañas para ajustar los tiempos de transición. - </text> - <text name="hint_item3"> - - Usa el depurador para obtener una vista previa del ciclo del día. - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="Añadir clave" label_selected="Añadir clave" name="WLAddKey"/> - <button label="Eliminar clave" label_selected="Eliminar clave" name="WLDeleteKey"/> - <text name="WL12am"> - 12 AM - </text> - <text name="WL3am"> - 3 AM - </text> - <text name="WL6am"> - 6 AM - </text> - <text name="WL9amHash"> - 9 AM - </text> - <text name="WL12pmHash"> - 12 PM - </text> - <text name="WL3pm"> - 3 PM - </text> - <text name="WL6pm"> - 6 PM - </text> - <text name="WL9pm"> - 9 PM - </text> - <text name="WL12am2"> - 12 AM - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - Configuración del cielo: - </text> - <combo_box label="Predefinido" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - Hora: - </text> - <time name="time" value="6 AM"/> - <check_box label="Convertir en mi nuevo ciclo del día" name="make_default_cb"/> - <button label="Guardar" name="save"/> - <button label="Cancelar" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/es/floater_edit_sky_preset.xml deleted file mode 100644 index bbb9d64c6c..0000000000 --- a/indra/newview/skins/default/xui/es/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="Editar cielo predefinido"> - <string name="title_new"> - Crear un nuevo cielo predefinido - </string> - <string name="title_edit"> - Editar cielo predefinido - </string> - <string name="hint_new"> - Asigna un nombre al valor predefinido, ajusta los controles para crearlo y selecciona "Guardar". - </string> - <string name="hint_edit"> - Para editar el cielo predefinido, ajusta los controles y selecciona "Guardar". - </string> - <string name="combo_label"> - -Selecciona un valor predefinido- - </string> - <text name="hint"> - Para editar el valor predefinido, ajusta los controles y selecciona "Guardar". - </text> - <text name="label"> - Nombre predefinido: - </text> - <text name="note"> - Nota: Si cambias el nombre del valor predefinido, crearás un predefinido nuevo y el actual no se modificará. - </text> - <tab_container name="WindLight Tabs"> - <panel label="ATMÓSFERA" name="Atmosphere"> - <text name="BHText"> - Horizonte azul - </text> - <text name="BDensText"> - Cantidad de bruma - </text> - <text name="BDensText2"> - Saturación - </text> - <text name="HDText"> - Densidad de la bruma - </text> - <text name="DensMultText"> - Densidad - </text> - <text name="WLDistanceMultText"> - Distancia - </text> - <text name="MaxAltText"> - Altitud máx. - </text> - </panel> - <panel label="LUZ" name="Lighting"> - <text name="SLCText"> - Color del sol y de la luna - </text> - <text name="WLAmbientText"> - Ambiental - </text> - <text name="SunGlowText"> - Resplandor del sol - </text> - <slider label="Visión" name="WLGlowB"/> - <slider label="Tamaño" name="WLGlowR"/> - <text name="WLStarText"> - Brillo de las estrellas - </text> - <text name="SceneGammaText"> - Gamma de la escena - </text> - <text name="TODText"> - Posición del sol y la luna - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - 12 AM - </text> - <text name="WL6am"> - 6 AM - </text> - <text name="WL12pmHash"> - 12 PM - </text> - <text name="WL6pm"> - 6 PM - </text> - <text name="WL12am2"> - 12 AM - </text> - <time name="WLDayTime" value="6 AM"/> - <text name="WLEastAngleText"> - Ángulo de elevación - </text> - </panel> - <panel label="NUBES" name="Clouds"> - <text name="WLCloudColorText"> - Color de las nubes - </text> - <text name="WLCloudColorText2"> - Posición/Densidad de las nubes - </text> - <slider label="X" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - Nubosidad - </text> - <text name="WLCloudScaleText"> - Altitud de las nubes - </text> - <text name="WLCloudDetailText"> - Detalle de las nubes (Posición/Densidad) - </text> - <slider label="X" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - Velocidad de las nubes: X - </text> - <check_box label="Bloquear" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - Velocidad de las nubes: Y - </text> - <check_box label="Bloquear" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="Convertir este valor predefinido en mi nueva configuración de cielo" name="make_default_cb"/> - <button label="Guardar" name="save"/> - <button label="Cancelar" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/es/floater_edit_water_preset.xml deleted file mode 100644 index f90ad59f78..0000000000 --- a/indra/newview/skins/default/xui/es/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="Editar el agua predefinida"> - <string name="title_new"> - Crear una nueva agua predefinida - </string> - <string name="title_edit"> - Editar el agua predefinida - </string> - <string name="hint_new"> - Asigna un nombre al valor predefinido, ajusta los controles para crearlo y selecciona "Guardar". - </string> - <string name="hint_edit"> - Para editar el agua predefinida, ajusta los controles y selecciona "Guardar". - </string> - <string name="combo_label"> - -Selecciona un valor predefinido- - </string> - <text name="hint"> - Para editar el valor predefinido, ajusta los controles y selecciona "Guardar". - </text> - <text name="label"> - Nombre predefinido: - </text> - <text name="note"> - Nota: Si cambias el nombre del valor predefinido, crearás un predefinido nuevo y el actual no se modificará. - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - Color del agua - </text> - <text name="water_fog_density_label"> - Transparencia - </text> - <text name="underwater_fog_modifier_label"> - Modificar la claridad del agua - </text> - <text name="BHText"> - Sentido de las olas grandes - </text> - <slider label="X" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - Tamaño de las ondulaciones - </text> - <text name="HDText"> - Escala de Fresnel - </text> - <text name="FresnelOffsetText"> - Coeficiente de reflexión - </text> - <text name="BHText2"> - Sentido de las olas pequeñas - </text> - <slider label="X" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - Refracción de la superficie - </text> - <text name="WaterScaleBelowText"> - Refracción bajo la superficie - </text> - <text name="MaxAltText"> - Desenfoque - </text> - <text name="BHText3"> - Vista Normal - </text> - </panel> - <check_box label="Convertir este valor predefinido en mi nueva configuración de agua" name="make_default_cb"/> - <button label="Guardar" name="save"/> - <button label="Cancelar" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_environment_settings.xml b/indra/newview/skins/default/xui/es/floater_environment_settings.xml deleted file mode 100644 index 7f48a26def..0000000000 --- a/indra/newview/skins/default/xui/es/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="CONFIGURACIÓN DE ENTORNO"> - <text name="note"> - Puedes personalizar la configuración del entorno de tu visor con las opciones siguientes. - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="Usar configuración de región" name="use_region_settings"/> - <radio_item label="Personalizar mi entorno" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - Nota: Tu configuración personalizada no estará visible para otros usuarios. - </text> - <text name="water_settings_title"> - Configuración de agua - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-Selecciona un valor predefinido-" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - Cielo/Ciclo del día - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="Cielo invariable" name="my_sky_settings"/> - <radio_item label="Ciclo del día" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-Selecciona un valor predefinido-" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-Selecciona un valor predefinido-" name="item0"/> - </combo_box> - </panel> - <button label="OK" name="ok_btn"/> - <button label="Cancelar" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_facebook.xml b/indra/newview/skins/default/xui/es/floater_facebook.xml deleted file mode 100644 index 4bccc6ee57..0000000000 --- a/indra/newview/skins/default/xui/es/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="PUBLICAR EN FACEBOOK"> - <tab_container name="tabs"> - <panel label="ESTADO" name="panel_facebook_status"/> - <panel label="FOTO" name="panel_facebook_photo"/> - <panel label="ESTOY AQUÍ" name="panel_facebook_place"/> - <panel label="AMIGOS" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - Error - </text> - <text name="connection_loading_text"> - Cargando... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_flickr.xml b/indra/newview/skins/default/xui/es/floater_flickr.xml deleted file mode 100644 index e254d8ba77..0000000000 --- a/indra/newview/skins/default/xui/es/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="COMPARTIR EN FLICKR"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="FOTO" name="panel_flickr_photo"/> - <panel label="CUENTA" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - Error - </text> - <text name="connection_loading_text"> - Cargando... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml deleted file mode 100644 index c2327c96c4..0000000000 --- a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="CONFIGURACIÓN DEL HARDWARE"> - <text name="Filtering:"> - Filtrado: - </text> - <check_box label="Filtrado anisotrópico (más lento si se activa)" name="ani"/> - <text name="antialiasing label"> - Antialiasing: - </text> - <combo_box label="Antialiasing" name="fsaa" width="94"> - <combo_box.item label="Desactivado" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (requiere reiniciar el visor) - </text> - <spinner label="Gamma:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (0 = brillo por defecto, más bajo = más brillo) - </text> - <text name="Enable VBO:"> - Activar VBO: - </text> - <check_box initial_value="true" label="Activar OpenGL Vertex Buffer Objects" name="vbo" tool_tip="En hardware moderno, habilitar esta opción mejora el rendimiento. Pero en hardware antiguo, el habilitarlo hace que, frecuentemente, se obtenga una implementación pobre de VBO, lo que puede provocarle caídas."/> - <text name="tc label"> - Activar S3TC: - </text> - <check_box initial_value="true" label="Activar la compresión de texturas (requiere reiniciar)" name="texture compression" tool_tip="Comprime las texturas de la memoria de vídeo, lo cual permite cargar texturas de una resolución más alta, pero con una cierta pérdida de calidad del color."/> - <slider label="Memoria para texturas (MB):" name="GraphicsCardTextureMemory" tool_tip="Cantidad de memoria asignada a las texturas. Por defecto es la memoria de la tarjeta de vídeo. Reducir esta cantidad puede mejorar el rendimiento, pero también hacer que las texturas se vean borrosas."/> - <spinner label="Intensidad de la niebla:" name="fog"/> - <button label="OK" label_selected="OK" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_perm_prefs.xml b/indra/newview/skins/default/xui/es/floater_perm_prefs.xml deleted file mode 100644 index 93e2088aba..0000000000 --- a/indra/newview/skins/default/xui/es/floater_perm_prefs.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="PERMISOS POR DEFECTO DE SUBIDA"> - <panel label="Permisos" name="permissions"> - <button label="?" label_selected="?" name="help"/> - <check_box label="Compartir con el grupo" name="share_with_group"/> - <check_box label="Permitir a cualquiera que lo copie" name="everyone_copy"/> - <text name="NextOwnerLabel"> - El próximo propietario puede: - </text> - <check_box label="Modificarlo" name="next_owner_modify"/> - <check_box label="Copiarlo" name="next_owner_copy"/> - <check_box label="Revenderlo/Darlo" name="next_owner_transfer"/> - </panel> - <button label="OK" label_selected="OK" name="ok"/> - <button label="Cancelar" label_selected="Cancelar" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_twitter.xml b/indra/newview/skins/default/xui/es/floater_twitter.xml deleted file mode 100644 index 92f4fc5bba..0000000000 --- a/indra/newview/skins/default/xui/es/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="TWITTER"> - <tab_container name="tabs"> - <panel label="REDACTAR" name="panel_twitter_photo"/> - <panel label="CUENTA" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - Error - </text> - <text name="connection_loading_text"> - Cargando... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/es/floater_voice_controls.xml b/indra/newview/skins/default/xui/es/floater_voice_controls.xml deleted file mode 100644 index eff21239be..0000000000 --- a/indra/newview/skins/default/xui/es/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="CONTROLES DE LA VOZ"> - <string name="title_nearby"> - CONFIGURACIÓN DE VOZ - </string> - <string name="title_group"> - MULTICONFERENCIA DE VOZ CON [GROUP] - </string> - <string name="title_adhoc"> - MULTICONFERENCIA DE VOZ - </string> - <string name="title_peer_2_peer"> - LLAMADA A [NAME] - </string> - <string name="no_one_near"> - Nadie cercano tiene activada la voz - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="Mi avatar:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="Colgar" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml deleted file mode 100644 index 82fc8ddd39..0000000000 --- a/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Ver el perfil" name="view_profile"/> - <menu_item_call label="Añadir como amigo" name="add_friend"/> - <menu_item_call label="MI" name="im"/> - <menu_item_call label="Llamada" name="call"/> - <menu_item_call label="Teleportar" name="teleport"/> - <menu_item_call label="Invitar al grupo" name="invite_to_group"/> - <menu_item_call label="Ignorar" name="block"/> - <menu_item_call label="Designorar" name="unblock"/> - <menu_item_call label="Denunciar" name="report"/> - <menu_item_call label="Congelar" name="freeze"/> - <menu_item_call label="Expulsar" name="eject"/> - <menu_item_call label="Expulsar" name="kick"/> - <menu_item_call label="CSR" name="csr"/> - <menu_item_call label="Depurar las texturas" name="debug"/> - <menu_item_call label="Encontrar en el mapa" name="find_on_map"/> - <menu_item_call label="Acercar el zoom" name="zoom_in"/> - <menu_item_call label="Pagar" name="pay"/> - <menu_item_call label="Compartir" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml deleted file mode 100644 index 29ad718fdd..0000000000 --- a/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Sentarme" name="Sit Down Here"/> - <menu_item_call label="Levantarme" name="Stand Up"/> - <context_menu label="Quitarme" name="Take Off >"> - <context_menu label="Ropas" name="Clothes >"> - <menu_item_call label="Camisa" name="Shirt"/> - <menu_item_call label="Pantalones" name="Pants"/> - <menu_item_call label="Falda" name="Skirt"/> - <menu_item_call label="Zapatos" name="Shoes"/> - <menu_item_call label="Calcetines" name="Socks"/> - <menu_item_call label="Chaqueta" name="Jacket"/> - <menu_item_call label="Guantes" name="Gloves"/> - <menu_item_call label="Camiseta" name="Self Undershirt"/> - <menu_item_call label="Ropa interior" name="Self Underpants"/> - <menu_item_call label="Tatuaje" name="Self Tattoo"/> - <menu_item_call label="Alfa" name="Self Alpha"/> - <menu_item_call label="Toda la ropa" name="All Clothes"/> - </context_menu> - <context_menu label="HUD" name="Object Detach HUD"/> - <context_menu label="Quitar" name="Object Detach"/> - <menu_item_call label="Quitarse todo" name="Detach All"/> - </context_menu> - <menu_item_call label="Cambiar vestuario" name="Chenge Outfit"/> - <menu_item_call label="Editar mi vestuario" name="Edit Outfit"/> - <menu_item_call label="Editar mi anatomía" name="Edit My Shape"/> - <menu_item_call label="Mis amigos" name="Friends..."/> - <menu_item_call label="Mis grupos" name="Groups..."/> - <menu_item_call label="Mi perfil" name="Profile..."/> - <menu_item_call label="Depurar las texturas" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/es/menu_name_field.xml b/indra/newview/skins/default/xui/es/menu_name_field.xml deleted file mode 100644 index 0d51fbffeb..0000000000 --- a/indra/newview/skins/default/xui/es/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="Copiar Nombre mostrado" name="copy_display"/> - <menu_item_call label="Copiar Nombre de agente" name="copy_name"/> - <menu_item_call label="Copiar ID de agente" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/es/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/es/menu_people_friends_view_sort.xml deleted file mode 100644 index 3899ad9e96..0000000000 --- a/indra/newview/skins/default/xui/es/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Ordenar alfabéticamente" name="sort_name"/> - <menu_item_check label="Ordenar por estatus" name="sort_status"/> - <menu_item_check label="Ver los iconos de la gente" name="view_icons"/> - <menu_item_check label="Ver permisos concedidos" name="view_permissions"/> - <menu_item_call label="Ver la lista de Residentes y Objetos ignorados" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/es/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/es/menu_people_groups_view_sort.xml deleted file mode 100644 index 1bd3efb611..0000000000 --- a/indra/newview/skins/default/xui/es/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Mostrar los iconos de grupo" name="Display Group Icons"/> - <menu_item_call label="Dejar el grupo seleccionado" name="Leave Selected Group"/> -</menu> diff --git a/indra/newview/skins/default/xui/es/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/es/menu_people_nearby_view_sort.xml deleted file mode 100644 index 1403e4db01..0000000000 --- a/indra/newview/skins/default/xui/es/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Ordenar según las intervenciones recientes" name="sort_by_recent_speakers"/> - <menu_item_check label="Ordenar alfabéticamente" name="sort_name"/> - <menu_item_check label="Ordenar según distancia" name="sort_distance"/> - <menu_item_check label="Ver los iconos de la gente" name="view_icons"/> - <menu_item_check label="Ver mapa" name="view_map"/> - <menu_item_call label="Ver la lista de Residentes y Objetos ignorados" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/es/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/es/menu_people_recent_view_sort.xml deleted file mode 100644 index e4aaa89110..0000000000 --- a/indra/newview/skins/default/xui/es/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Ordenar por los más recientes" name="sort_most"/> - <menu_item_check label="Ordenar alfabéticamente" name="sort_name"/> - <menu_item_check label="Ver los iconos de la gente" name="view_icons"/> - <menu_item_call label="Ver la lista de Residentes y Objetos ignorados" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/es/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/es/panel_adhoc_control_panel.xml deleted file mode 100644 index c64a93e0e5..0000000000 --- a/indra/newview/skins/default/xui/es/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="Llamar" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Colgar" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Controles de la voz" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_edit_classified.xml b/indra/newview/skins/default/xui/es/panel_edit_classified.xml deleted file mode 100644 index 09f87015cc..0000000000 --- a/indra/newview/skins/default/xui/es/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Editar el clasificado" name="panel_edit_classified"> - <panel.string name="location_notice"> - (se actualizará tras guardarlo) - </panel.string> - <string name="publish_label"> - Publicar - </string> - <string name="save_label"> - Guardar - </string> - <text name="title"> - Editar el clasificado - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="Pulsa para elegir una imagen"/> - </panel> - <text name="Name:"> - Título: - </text> - <text name="description_label"> - Descripción: - </text> - <text name="location_label"> - Localización: - </text> - <text name="classified_location"> - cargando... - </text> - <button label="Configurar en esta posición" name="set_to_curr_location_btn"/> - <text name="category_label" value="Categoría:"/> - <text name="content_type_label" value="Tipo de contenido:"/> - <icons_combo_box label="Contenido general" name="content_type"> - <icons_combo_box.item label="Contenido moderado" name="mature_ci" value="Moderado"/> - <icons_combo_box.item label="Contenido general" name="pg_ci" value="General"/> - </icons_combo_box> - <check_box label="Renovar automáticamente cada semana" name="auto_renew"/> - <text name="price_for_listing_label" value="Precio por publicarlo:"/> - <spinner label="L$" name="price_for_listing" tool_tip="Precio por publicarlo." value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="Cancelar" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_edit_pick.xml b/indra/newview/skins/default/xui/es/panel_edit_pick.xml deleted file mode 100644 index cda465da9c..0000000000 --- a/indra/newview/skins/default/xui/es/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Editar el destacado" name="panel_edit_pick"> - <panel.string name="location_notice"> - (se actualizará tras guardarlo) - </panel.string> - <text name="title"> - Editar el destacado - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Pulsa para elegir una imagen"/> - <text name="Name:"> - Título: - </text> - <text name="description_label"> - Descripción: - </text> - <text name="location_label"> - Posición: - </text> - <text name="pick_location"> - cargando... - </text> - <button label="Configurar en mi posición" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Guardar" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="Cancelar" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_edit_profile.xml b/indra/newview/skins/default/xui/es/panel_edit_profile.xml deleted file mode 100644 index 8e5e09cfec..0000000000 --- a/indra/newview/skins/default/xui/es/panel_edit_profile.xml +++ /dev/null @@ -1,61 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Editar el perfil" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="Residente"/> - <string name="AcctTypeTrial" value="Prueba"/> - <string name="AcctTypeCharterMember" value="Miembro fundador"/> - <string name="AcctTypeEmployee" value="Empleado de Linden Lab"/> - <string name="PaymentInfoUsed" value="Ha usado una forma de pago"/> - <string name="PaymentInfoOnFile" value="Hay infor. de la forma de pago"/> - <string name="NoPaymentInfoOnFile" value="Sin infor. de la forma de pago"/> - <string name="AgeVerified" value="Edad verificada"/> - <string name="NotAgeVerified" value="Edad no verificada"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=es - </string> - <string name="no_partner_text" value="Ninguno"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Nombre mostrado:"/> - <text name="solo_username_label" value="Nombre de usuario:"/> - <button name="set_name" tool_tip="Configurar nombre mostrado"/> - <text name="user_label" value="Nombre de usuario:"/> - <panel name="lifes_images_panel"> - <icon label="" name="2nd_life_edit_icon" tool_tip="Pulsa para elegir una imagen"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Mundo real:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="Pulsa para elegir una imagen"/> - <text name="title_homepage_text"> - Web: - </text> - <check_box label="Mostrarme en los resultados de la búsqueda" name="show_in_search_checkbox"/> - <text name="title_acc_status_text" value="Mi cuenta:"/> - <text_editor name="acc_status_text" value="Residente. No ha aportado información de pago."/> - <text name="my_account_link" value="[[URL] Ir a mi Panel de Control]"/> - <text name="title_partner_text" value="Mi compañero/a:"/> - <panel name="partner_data_panel"> - <text initial_value="(obteniendo)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] Editar]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Guardar cambios" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Cancelar" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_facebook_account.xml b/indra/newview/skins/default/xui/es/panel_facebook_account.xml deleted file mode 100644 index 2b6d407ad7..0000000000 --- a/indra/newview/skins/default/xui/es/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="Estás conectado a Facebook como:"/> - <string name="facebook_disconnected" value="No conectado a Facebook"/> - <text name="account_caption_label"> - No conectado a Facebook. - </text> - <panel name="panel_buttons"> - <button label="Conectar..." name="connect_btn"/> - <button label="Desconectar" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Aprende a publicar en Facebook] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_facebook_friends.xml b/indra/newview/skins/default/xui/es/panel_facebook_friends.xml deleted file mode 100644 index 5557c0a73c..0000000000 --- a/indra/newview/skins/default/xui/es/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="Actualmente no tienes amigos en Facebook que también sean residentes de Second Life. Invita a tus amigos de Facebook a que se unan a Second Life."/> - <string name="facebook_friends_no_connected" value="Actualmente no estás conectado a Facebook. Selecciona la pestaña Estado para conectarte y habilitar esta función."/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="Amigos de SL"/> - <accordion_tab name="tab_suggested_friends" title="Agregar estas personas como amigos de SL"/> - </accordion> - <text name="facebook_friends_status"> - No conectado a Facebook. - </text> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_facebook_photo.xml b/indra/newview/skins/default/xui/es/panel_facebook_photo.xml deleted file mode 100644 index 5a533f8bcb..0000000000 --- a/indra/newview/skins/default/xui/es/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="Resolución de imagen"> - <combo_box.item label="Ventana actual" name="CurrentWindow"/> - <combo_box.item label="640 × 480" name="640x480"/> - <combo_box.item label="800 × 600" name="800x600"/> - <combo_box.item label="1024 × 768" name="1024x768"/> - <combo_box.item label="1200 × 630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtros de imagen"> - <combo_box.item label="Sin filtro" name="NoFilter"/> - </combo_box> - <button label="Actualizar" name="new_snapshot_btn" tool_tip="Pulsa para actualizar"/> - <button label="Vista previa" name="big_preview_btn" tool_tip="Pulsa para alternar entre vista previa sí/no"/> - <text name="caption_label"> - Comentario (opcional): - </text> - <button label="Publicar" name="post_photo_btn"/> - <button label="Cancelar" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_facebook_place.xml b/indra/newview/skins/default/xui/es/panel_facebook_place.xml deleted file mode 100644 index 29f6147f23..0000000000 --- a/indra/newview/skins/default/xui/es/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - Cuenta algo del lugar donde te encuentras: - </text> - <check_box initial_value="false" label="Incluye una vista general del lugar" name="add_place_view_cb"/> - <button label="Publicar" name="post_place_btn"/> - <button label="Cancelar" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_facebook_status.xml b/indra/newview/skins/default/xui/es/panel_facebook_status.xml deleted file mode 100644 index e6f137b750..0000000000 --- a/indra/newview/skins/default/xui/es/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="Estás conectado a Facebook como:"/> - <string name="facebook_disconnected" value="No conectado a Facebook"/> - <text name="account_caption_label"> - No conectado a Facebook. - </text> - <panel name="panel_buttons"> - <button label="Conectar..." name="connect_btn"/> - <button label="Desconectar" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Aprende a publicar en Facebook] - </text> - </panel> - <text name="status_caption_label"> - ¿En qué estás pensando? - </text> - <button label="Publicar" name="post_status_btn"/> - <button label="Cancelar" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_flickr_account.xml b/indra/newview/skins/default/xui/es/panel_flickr_account.xml deleted file mode 100644 index 7dcf5b5595..0000000000 --- a/indra/newview/skins/default/xui/es/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="Estás conectado a Flickr como:"/> - <string name="flickr_disconnected" value="No conectado a Flickr"/> - <text name="account_caption_label"> - No estás conectado a Flickr. - </text> - <panel name="panel_buttons"> - <button label="Conectar..." name="connect_btn"/> - <button label="Desconectar" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Aprende a publicar en Flickr] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_flickr_photo.xml b/indra/newview/skins/default/xui/es/panel_flickr_photo.xml deleted file mode 100644 index f8cc8c1de7..0000000000 --- a/indra/newview/skins/default/xui/es/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="Resolución de imagen"> - <combo_box.item label="Ventana actual" name="CurrentWindow"/> - <combo_box.item label="640 × 480" name="640x480"/> - <combo_box.item label="800 × 600" name="800x600"/> - <combo_box.item label="1024 × 768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtros de imagen"> - <combo_box.item label="Sin filtro" name="NoFilter"/> - </combo_box> - <button label="Actualizar" name="new_snapshot_btn" tool_tip="Pulsa para actualizar"/> - <button label="Vista previa" name="big_preview_btn" tool_tip="Pulsa para alternar entre vista previa sí/no"/> - <text name="title_label"> - Título: - </text> - <text name="description_label"> - Descripción: - </text> - <check_box initial_value="true" label="Incluir la ubicación de SL al final de la descripción" name="add_location_cb"/> - <text name="tags_label"> - Etiquetas: - </text> - <text name="tags_help_label"> - Separa las etiquetas con espacios -Usa "" para las etiquetas con varias palabras - </text> - <combo_box name="rating_combobox" tool_tip="Calificación de contenido de Flickr"> - <combo_box.item label="Calificación segura de Flickr" name="SafeRating"/> - <combo_box.item label="Calificación moderada de Flickr" name="ModerateRating"/> - <combo_box.item label="Calificación restringida de Flickr" name="RestrictedRating"/> - </combo_box> - <button label="Compartir" name="post_photo_btn"/> - <button label="Cancelar" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_group_control_panel.xml b/indra/newview/skins/default/xui/es/panel_group_control_panel.xml deleted file mode 100644 index b398293175..0000000000 --- a/indra/newview/skins/default/xui/es/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="Perfil del grupo" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Llamar al grupo" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Colgar" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Abrir los controles de la voz" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_im_control_panel.xml b/indra/newview/skins/default/xui/es/panel_im_control_panel.xml deleted file mode 100644 index f218324d50..0000000000 --- a/indra/newview/skins/default/xui/es/panel_im_control_panel.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="Perfil" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="Añadir como amigo" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="Teleportar" name="teleport_btn" tool_tip="Ofrecer teleporte a esta persona"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="Compartir" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="Pagar" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Llamar" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Colgar" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Controles de la voz" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_pick_info.xml b/indra/newview/skins/default/xui/es/panel_pick_info.xml deleted file mode 100644 index 3450279b4a..0000000000 --- a/indra/newview/skins/default/xui/es/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="Datos del destacado"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[nombre]"/> - <text_editor name="pick_location" value="[cargando...]"/> - <text_editor name="pick_desc" value="[descripción]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Teleporte" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Mapa" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Editar" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_picks.xml b/indra/newview/skins/default/xui/es/panel_picks.xml deleted file mode 100644 index 904cdd12f1..0000000000 --- a/indra/newview/skins/default/xui/es/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Destacados" name="panel_picks"> - <string name="no_picks" value="No hay destacados"/> - <string name="no_classifieds" value="No hay clasificados"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Destacados"/> - <accordion_tab name="tab_classifieds" title="Clasificados"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="Crear un nuevo destacado o clasificado de la posición actual"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="Información" name="info_btn" tool_tip="Mostrar la información del destacado"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Teleporte" name="teleport_btn" tool_tip="Teleportar a esta zona"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Mapa" name="show_on_map_btn" tool_tip="Mostrar esta zona en el mapa del mundo"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_profile_interests.xml b/indra/newview/skins/default/xui/es/panel_profile_interests.xml deleted file mode 100644 index 86dd63390c..0000000000 --- a/indra/newview/skins/default/xui/es/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Intereses" name="panel_profile_interests"> - <text name="I Want To:"> - Quiero: - </text> - <check_box label="Construye" name="chk0"/> - <check_box label="Explora" name="chk1"/> - <check_box label="Conoce" name="chk2"/> - <check_box label="Encuentra empleo" name="chk6"/> - <check_box label="Agrupa" name="chk3"/> - <check_box label="Compra" name="chk4"/> - <check_box label="Vende" name="chk5"/> - <check_box label="Contrata" name="chk7"/> - <line_editor name="want_to_edit"> - (cargando...) - </line_editor> - <text name="Skills:"> - Habilidades: - </text> - <check_box label="Texturas" name="schk0"/> - <check_box label="Arquitectura" name="schk1"/> - <check_box label="Modelo" name="schk3"/> - <check_box label="Planificación de eventos" name="schk2"/> - <check_box label="Preparación de scripts" name="schk4"/> - <check_box label="Personajes personalizados" name="schk5"/> - <line_editor name="skills_edit"> - (cargando...) - </line_editor> - <text name="Languages:"> - Idiomas: - </text> - <line_editor name="languages_edit"> - (cargando...) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_twitter_account.xml b/indra/newview/skins/default/xui/es/panel_twitter_account.xml deleted file mode 100644 index f51af64b05..0000000000 --- a/indra/newview/skins/default/xui/es/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="Estás conectado a Twitter como:"/> - <string name="twitter_disconnected" value="No conectado a Twitter"/> - <text name="account_caption_label"> - No estás conectado a Twitter. - </text> - <panel name="panel_buttons"> - <button label="Conectar..." name="connect_btn"/> - <button label="Desconectar" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Aprende a publicar en Twitter] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_twitter_photo.xml b/indra/newview/skins/default/xui/es/panel_twitter_photo.xml deleted file mode 100644 index 0ae790514a..0000000000 --- a/indra/newview/skins/default/xui/es/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - ¿Qué está ocurriendo? - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="Incluir ubicación de SL" name="add_location_cb"/> - <check_box initial_value="true" label="Incluir una foto" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="Resolución de imagen"> - <combo_box.item label="Ventana actual" name="CurrentWindow"/> - <combo_box.item label="640 × 480" name="640x480"/> - <combo_box.item label="800 × 600" name="800x600"/> - <combo_box.item label="1024 × 768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtros de imagen"> - <combo_box.item label="Sin filtro" name="NoFilter"/> - </combo_box> - <button label="Actualizar" name="new_snapshot_btn" tool_tip="Pulsa para actualizar"/> - <button label="Vista previa" name="big_preview_btn" tool_tip="Pulsa para alternar entre vista previa sí/no"/> - <button label="Tuitear" name="post_photo_btn"/> - <button label="Cancelar" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/fr/floater_about.xml b/indra/newview/skins/default/xui/fr/floater_about.xml index df6b61e293..09da1fb5fd 100644 --- a/indra/newview/skins/default/xui/fr/floater_about.xml +++ b/indra/newview/skins/default/xui/fr/floater_about.xml @@ -29,6 +29,7 @@ avec les contributions Open Source de :</text> 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. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2012 Jean-Loup Gailly et Mark Adler. Le client Second Life utilise Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (et ses concédants de licence). Tous droits réservés. Pour plus de détails, consultez le site Web www.havok.com. diff --git a/indra/newview/skins/default/xui/fr/floater_chat_bar.xml b/indra/newview/skins/default/xui/fr/floater_chat_bar.xml deleted file mode 100644 index 7dcb9a280d..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="CHAT PRÈS DE MOI"> - <panel name="bottom_panel"> - <line_editor label="Cliquer ici pour chatter." name="chat_box" tool_tip="Appuyer sur Entrée pour dire, Ctrl+Entrée pour crier"/> - <button name="show_nearby_chat" tool_tip="Afficher/masquer le journal de chat près de vous."/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml deleted file mode 100644 index 5ec68458e1..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="Modifier un cycle du jour"> - <string name="title_new"> - Créer un nouveau cycle du jour - </string> - <string name="title_edit"> - Modifier un cycle du jour - </string> - <string name="hint_new"> - Donnez un nom au cycle du jour, ajustez les contrôles afin de le créer, puis cliquez sur Enregistrer. - </string> - <string name="hint_edit"> - Pour modifier le cycle du jour, ajustez les contrôles ci-dessous, puis cliquez sur Enregistrer. - </string> - <string name="combo_label"> - -Effectuer une sélection- - </string> - <text name="label"> - Nom du préréglage : - </text> - <text name="note"> - Remarque : si vous changez votre préréglage de nom, un nouveau préréglage sera créé et celui existant restera tel quel. - </text> - <text name="hint_item1"> - - Modifier un réglage de ciel/heure : clic sur le repère - </text> - <text name="hint_item2"> - - Heures de transition : clic-glissement des repères - </text> - <text name="hint_item3"> - - Aperçu du cycle du jour : déplacement du triangle - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="Ajouter clé" label_selected="Ajouter clé" name="WLAddKey"/> - <button label="Supprimer clé" label_selected="Supprimer clé" name="WLDeleteKey"/> - <text name="WL12am"> - Min. - </text> - <text name="WL3am"> - 3h - </text> - <text name="WL6am"> - 6h - </text> - <text name="WL9amHash"> - 9h - </text> - <text name="WL12pmHash"> - Midi - </text> - <text name="WL3pm"> - 15h - </text> - <text name="WL6pm"> - 18h - </text> - <text name="WL9pm"> - 21h - </text> - <text name="WL12am2"> - Min. - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - Régl. ciel : - </text> - <combo_box label="Préréglage" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - H. : - </text> - <time name="time" value="6h"/> - <check_box label="Appliquer ce nouveau cycle du jour" name="make_default_cb"/> - <button label="Enregistrer" name="save"/> - <button label="Annuler" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/fr/floater_edit_sky_preset.xml deleted file mode 100644 index 47293a6342..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="Modifier un préréglage du ciel"> - <string name="title_new"> - Créer un nouveau préréglage du ciel - </string> - <string name="title_edit"> - Modifier un préréglage du ciel - </string> - <string name="hint_new"> - Donnez un nom à votre préréglage, ajustez les contrôles afin de le créer, puis cliquez sur "Enregistrer". - </string> - <string name="hint_edit"> - Pour modifier le préréglage du ciel, ajustez les contrôles, puis cliquez sur "Enregistrer". - </string> - <string name="combo_label"> - -Sélectionner un préréglage- - </string> - <text name="hint"> - Pour modifier le préréglage, ajustez les contrôles, puis cliquez sur "Enregistrer". - </text> - <text name="label"> - Nom du préréglage : - </text> - <text name="note"> - Remarque : Si vous changez votre préréglage de nom, un nouveau préréglage sera créé et celui existant restera tel quel. - </text> - <tab_container name="WindLight Tabs"> - <panel label="ATMOSPHÈRE" name="Atmosphere"> - <text name="BHText"> - Horizon bleu - </text> - <text name="BDensText"> - Horizon brumeux - </text> - <text name="BDensText2"> - Densité bleue - </text> - <text name="HDText"> - Densité brumeuse - </text> - <text name="DensMultText"> - Multiplicateur de densité - </text> - <text name="WLDistanceMultText"> - Multiplicateur de distance - </text> - <text name="MaxAltText"> - Altitude maximum - </text> - </panel> - <panel label="LUMIÈRE" name="Lighting"> - <text name="SLCText"> - Couleur soleil/lune - </text> - <text name="WLAmbientText"> - Ambiante - </text> - <text name="SunGlowText"> - Rayonnement du soleil - </text> - <slider label="Netteté" name="WLGlowB"/> - <slider label="Taille" name="WLGlowR"/> - <text name="WLStarText"> - Éclat des étoiles - </text> - <text name="SceneGammaText"> - Gamma de la scène - </text> - <text name="TODText"> - Position soleil/lune - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - Min. - </text> - <text name="WL6am"> - 6h - </text> - <text name="WL12pmHash"> - Midi - </text> - <text name="WL6pm"> - 18h - </text> - <text name="WL12am2"> - Min. - </text> - <time name="WLDayTime" value="6h"/> - <text name="WLEastAngleText"> - Angle du levant - </text> - </panel> - <panel label="NUAGES" name="Clouds"> - <text name="WLCloudColorText"> - Couleur des nuages - </text> - <text name="WLCloudColorText2"> - Nuages - XY/Densité - </text> - <slider label="X" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - Couverture nuageuse - </text> - <text name="WLCloudScaleText"> - Altitude des nuages - </text> - <text name="WLCloudDetailText"> - Détails des nuages (XY/Densité) - </text> - <slider label="X" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - Défilement des nuages X - </text> - <check_box label="Verrouillage" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - Défilement des nuages Y - </text> - <check_box label="Verrouillage" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="Appliquer ce nouveau préréglage pour le ciel" name="make_default_cb"/> - <button label="Enregistrer" name="save"/> - <button label="Annuler" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/fr/floater_edit_water_preset.xml deleted file mode 100644 index 08dced834d..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="Modifier un préréglage de l'eau"> - <string name="title_new"> - Créer un nouveau préréglage de l'eau - </string> - <string name="title_edit"> - Modifier un préréglage de l'eau - </string> - <string name="hint_new"> - Donnez un nom à votre préréglage, ajustez les contrôles afin de le créer, puis cliquez sur "Enregistrer". - </string> - <string name="hint_edit"> - Pour modifier le préréglage de l'eau, ajustez les contrôles, puis cliquez sur "Enregistrer". - </string> - <string name="combo_label"> - -Sélectionner un préréglage- - </string> - <text name="hint"> - Pour modifier le préréglage, ajustez les contrôles, puis cliquez sur "Enregistrer". - </text> - <text name="label"> - Nom du préréglage : - </text> - <text name="note"> - Remarque : Si vous changez votre préréglage de nom, un nouveau préréglage sera créé et celui existant restera tel quel. - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - Couleur du brouillard dans l'eau - </text> - <text name="water_fog_density_label"> - Exposant densité de brouillard - </text> - <text name="underwater_fog_modifier_label"> - Modificateurs de brouillard sous-marin - </text> - <text name="BHText"> - Direction grande vague - </text> - <slider label="X" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - Échelle d'ondelettes à réflexion - </text> - <text name="HDText"> - Échelle Fresnel - </text> - <text name="FresnelOffsetText"> - Décalage Fresnel - </text> - <text name="BHText2"> - Direction petite vague - </text> - <slider label="X" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - Échelle de réfraction au-dessus - </text> - <text name="WaterScaleBelowText"> - Échelle de réfraction en-dessous - </text> - <text name="MaxAltText"> - Multiplicateur de flou - </text> - <text name="BHText3"> - Carte normale - </text> - </panel> - <check_box label="Appliquer ce nouveau préréglage pour l'eau" name="make_default_cb"/> - <button label="Enregistrer" name="save"/> - <button label="Annuler" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_environment_settings.xml b/indra/newview/skins/default/xui/fr/floater_environment_settings.xml deleted file mode 100644 index e438fcbf42..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="PARAMÈTRES D'ENVIRONNEMENT"> - <text name="note"> - Utilisez les options ci-dessous pour personnaliser l'environnement de votre client. - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="Utiliser les réglages de la région" name="use_region_settings"/> - <radio_item label="Personnaliser mon environnement" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - Remarque : Les autres utilisateurs ne pourront pas voir votre configuration personnalisée. - </text> - <text name="water_settings_title"> - Réglage de l'eau - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-Sélectionner un préréglage-" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - Ciel / Cycle du jour - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="Ciel fixe" name="my_sky_settings"/> - <radio_item label="Cycle du jour" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-Sélectionner un préréglage-" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-Sélectionner un préréglage-" name="item0"/> - </combo_box> - </panel> - <button label="OK" name="ok_btn"/> - <button label="Annuler" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_facebook.xml b/indra/newview/skins/default/xui/fr/floater_facebook.xml deleted file mode 100644 index f6e8696e53..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="PUBLIER SUR FACEBOOK"> - <tab_container name="tabs"> - <panel label="STATUT" name="panel_facebook_status"/> - <panel label="PHOTO" name="panel_facebook_photo"/> - <panel label="INDIQUER VOTRE PRÉSENCE" name="panel_facebook_place"/> - <panel label="AMIS" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - Erreur - </text> - <text name="connection_loading_text"> - En cours de chargement... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_flickr.xml b/indra/newview/skins/default/xui/fr/floater_flickr.xml deleted file mode 100644 index 721d6aa6bf..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="PARTAGER SUR FLICKR"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="PHOTO" name="panel_flickr_photo"/> - <panel label="COMPTE" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - Erreur - </text> - <text name="connection_loading_text"> - Chargement... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml b/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml deleted file mode 100644 index bb146556ba..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="PARAMÈTRES MATÉRIELS"> - <text name="Filtering:"> - Filtres : - </text> - <check_box label="Filtre anisotrope (plus lent si activé)" name="ani"/> - <text name="antialiasing label"> - Anti-aliasing : - </text> - <combo_box label="Anti-aliasing" name="fsaa" width="84"> - <combo_box.item label="Désactivé" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (redémarrage du client requis) - </text> - <spinner label="Gamma :" name="gamma"/> - <text left="217" name="(brightness, lower is brighter)"> - (0 = défaut, valeur faible = plus lumineux) - </text> - <text name="Enable VBO:"> - Activer le VBO : - </text> - <check_box initial_value="true" label="Activer OpenGL Vertex Buffer Objects" name="vbo" tool_tip="Sur un matériel moderne, cette option permet une meilleure performance. Par contre, sur un matériel plus ancien, les VBO sont souvent mal implémentés et peuvent causer des crashs lorsqu'ils sont activés."/> - <text name="tc label"> - Activer S3TC : - </text> - <check_box initial_value="true" label="Activer la compression des textures (redémarrage requis)" name="texture compression" tool_tip="Comprime les textures en mémoire vidéo afin de permettre de charger des textures de résolution plus élevée au prix d'une certaine qualité de couleur."/> - <slider label="Mémoire textures (Mo) :" name="GraphicsCardTextureMemory" tool_tip="Quantité de mémoire à affecter aux textures. Utilise la mémoire de la carte vidéo par défaut. Si vous réduisez ce paramètre, cela peut améliorer les performances, mais les textures risquent d'être floues."/> - <spinner label="Indice du brouillard :" name="fog"/> - <button label="OK" label_selected="OK" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml b/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml deleted file mode 100644 index 36bec80561..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="DROITS DE CHARGEMENT PAR DÉFAUT"> - <panel label="Droits" name="permissions"> - <button label="?" label_selected="?" name="help"/> - <check_box label="Partager avec le groupe" name="share_with_group"/> - <check_box label="Autoriser tout le monde à copier" name="everyone_copy"/> - <text name="NextOwnerLabel"> - Le prochain propriétaire pourra : - </text> - <check_box label="Modifier" name="next_owner_modify"/> - <check_box label="Copier" name="next_owner_copy"/> - <check_box label="Revendre/Donner" name="next_owner_transfer"/> - </panel> - <button label="OK" label_selected="OK" name="ok"/> - <button label="Annuler" label_selected="Annuler" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_twitter.xml b/indra/newview/skins/default/xui/fr/floater_twitter.xml deleted file mode 100644 index 608b02dced..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="TWITTER"> - <tab_container name="tabs"> - <panel label="COMPOSER" name="panel_twitter_photo"/> - <panel label="COMPTE" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - Erreur - </text> - <text name="connection_loading_text"> - Chargement... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/fr/floater_voice_controls.xml b/indra/newview/skins/default/xui/fr/floater_voice_controls.xml deleted file mode 100644 index fc4de4a5a6..0000000000 --- a/indra/newview/skins/default/xui/fr/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="CONTROLES DE LA VOIX"> - <string name="title_nearby"> - PARAMÈTRES VOCAUX - </string> - <string name="title_group"> - APPEL DE GROUPE AVEC [GROUP] - </string> - <string name="title_adhoc"> - CONFÉRENCE - </string> - <string name="title_peer_2_peer"> - APPEL AVEC [NAME] - </string> - <string name="no_one_near"> - Il n'y a personne près de vous avec le chat vocal activé - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="Mon avatar :"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="Quitter l'appel" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml deleted file mode 100644 index 53f22bb44a..0000000000 --- a/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Voir le profil" name="view_profile"/> - <menu_item_call label="Devenir amis" name="add_friend"/> - <menu_item_call label="IM" name="im"/> - <menu_item_call label="Appel" name="call"/> - <menu_item_call label="Téléporter" name="teleport"/> - <menu_item_call label="Inviter dans le groupe" name="invite_to_group"/> - <menu_item_call label="Ignorer" name="block"/> - <menu_item_call label="Ne plus ignorer" name="unblock"/> - <menu_item_call label="Signaler" name="report"/> - <menu_item_call label="Figer" name="freeze"/> - <menu_item_call label="Expulser" name="eject"/> - <menu_item_call label="Éjecter" name="kick"/> - <menu_item_call label="Représentant de l'Assistance client" name="csr"/> - <menu_item_call label="Déboguer les textures" name="debug"/> - <menu_item_call label="Situer sur la carte" name="find_on_map"/> - <menu_item_call label="Zoomer en avant" name="zoom_in"/> - <menu_item_call label="Payer" name="pay"/> - <menu_item_call label="Partager" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml deleted file mode 100644 index ac70df472d..0000000000 --- a/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="M'asseoir" name="Sit Down Here"/> - <menu_item_call label="Me lever" name="Stand Up"/> - <context_menu label="Enlever" name="Take Off >"> - <context_menu label="Habits" name="Clothes >"> - <menu_item_call label="Chemise" name="Shirt"/> - <menu_item_call label="Pantalon" name="Pants"/> - <menu_item_call label="Jupe" name="Skirt"/> - <menu_item_call label="Chaussures" name="Shoes"/> - <menu_item_call label="Chaussettes" name="Socks"/> - <menu_item_call label="Veste" name="Jacket"/> - <menu_item_call label="Gants" name="Gloves"/> - <menu_item_call label="Débardeur" name="Self Undershirt"/> - <menu_item_call label="Caleçon" name="Self Underpants"/> - <menu_item_call label="Tatouage" name="Self Tattoo"/> - <menu_item_call label="Alpha" name="Self Alpha"/> - <menu_item_call label="Tous les habits" name="All Clothes"/> - </context_menu> - <context_menu label="HUD" name="Object Detach HUD"/> - <context_menu label="Détacher" name="Object Detach"/> - <menu_item_call label="Tout détacher" name="Detach All"/> - </context_menu> - <menu_item_call label="Changer de tenue" name="Chenge Outfit"/> - <menu_item_call label="Modifier ma tenue" name="Edit Outfit"/> - <menu_item_call label="Modifier ma silhouette" name="Edit My Shape"/> - <menu_item_call label="Mes amis" name="Friends..."/> - <menu_item_call label="Mes groupes" name="Groups..."/> - <menu_item_call label="Mon profil" name="Profile..."/> - <menu_item_call label="Déboguer les textures" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_name_field.xml b/indra/newview/skins/default/xui/fr/menu_name_field.xml deleted file mode 100644 index 6c3fba4110..0000000000 --- a/indra/newview/skins/default/xui/fr/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="Copier le Nom d'affichage" name="copy_display"/> - <menu_item_call label="Copier le Nom de l'agent" name="copy_name"/> - <menu_item_call label="Copier l'ID de l'agent" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/fr/menu_people_friends_view_sort.xml deleted file mode 100644 index a6170a6c16..0000000000 --- a/indra/newview/skins/default/xui/fr/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Trier par nom" name="sort_name"/> - <menu_item_check label="Trier par statut" name="sort_status"/> - <menu_item_check label="Afficher les icônes des résidents" name="view_icons"/> - <menu_item_check label="Afficher les droits octroyés" name="view_permissions"/> - <menu_item_call label="Afficher les résidents et les objets ignorés" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/fr/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/fr/menu_people_groups_view_sort.xml deleted file mode 100644 index 34f949cf2c..0000000000 --- a/indra/newview/skins/default/xui/fr/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Afficher les icônes des groupes" name="Display Group Icons"/> - <menu_item_call label="Quitter le groupe sélectionné" name="Leave Selected Group"/> -</menu> diff --git a/indra/newview/skins/default/xui/fr/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/fr/menu_people_nearby_view_sort.xml deleted file mode 100644 index 8bb466b8d6..0000000000 --- a/indra/newview/skins/default/xui/fr/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Trier par intervenants récents" name="sort_by_recent_speakers"/> - <menu_item_check label="Trier par nom" name="sort_name"/> - <menu_item_check label="Trier par distance" name="sort_distance"/> - <menu_item_check label="Afficher les icônes des résidents" name="view_icons"/> - <menu_item_check label="Afficher la carte" name="view_map"/> - <menu_item_call label="Afficher les résidents et les objets ignorés" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/fr/menu_people_recent_view_sort.xml deleted file mode 100644 index 93b90ae61c..0000000000 --- a/indra/newview/skins/default/xui/fr/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Trier en commençant par le plus récent" name="sort_most"/> - <menu_item_check label="Trier par nom" name="sort_name"/> - <menu_item_check label="Afficher les icônes des résidents" name="view_icons"/> - <menu_item_call label="Afficher les résidents et les objets ignorés" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/fr/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/fr/panel_adhoc_control_panel.xml deleted file mode 100644 index 4191ba42f9..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="Appeler" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Quitter l'appel" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Contrôles vocaux" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_classified.xml b/indra/newview/skins/default/xui/fr/panel_edit_classified.xml deleted file mode 100644 index b892d25f26..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Modifier la petite annonce" name="panel_edit_classified"> - <panel.string name="location_notice"> - (mise à jour après l'enregistrement) - </panel.string> - <string name="publish_label"> - Publier - </string> - <string name="save_label"> - Enregistrer - </string> - <text name="title"> - Modifier la petite annonce - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="Cliquer pour sélectionner une image"/> - </panel> - <text name="Name:"> - Titre : - </text> - <text name="description_label"> - Description : - </text> - <text name="location_label"> - Lieu : - </text> - <text name="classified_location"> - en cours de chargement... - </text> - <button label="Définir sur l'emplacement actuel" name="set_to_curr_location_btn"/> - <text name="category_label" value="Catégorie :"/> - <text name="content_type_label" value="Type de contenu :"/> - <icons_combo_box label="Contenu Général" name="content_type"> - <icons_combo_box.item label="Contenu Modéré" name="mature_ci" value="Mature"/> - <icons_combo_box.item label="Contenu Général" name="pg_ci" value="PG"/> - </icons_combo_box> - <check_box label="Renouvellement auto toutes les semaines" name="auto_renew"/> - <text name="price_for_listing_label" value="Coût de l'annonce :"/> - <spinner label="L$" name="price_for_listing" tool_tip="Coût de l'annonce." value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="Annuler" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_pick.xml b/indra/newview/skins/default/xui/fr/panel_edit_pick.xml deleted file mode 100644 index 247e18da82..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Modifier le favori" name="panel_edit_pick"> - <panel.string name="location_notice"> - (mise à jour après enregistrement) - </panel.string> - <text name="title"> - Modifier le favori - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Cliquez pour sélectionner une image"/> - <text name="Name:"> - Titre : - </text> - <text name="description_label"> - Description : - </text> - <text name="location_label"> - Lieu : - </text> - <text name="pick_location"> - en cours de chargement... - </text> - <button label="Définir sur l'emplacement actuel" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Enregistrer" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="Annuler" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml deleted file mode 100644 index 9e63c88221..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Modification du profil" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] -[PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="Résident"/> - <string name="AcctTypeTrial" value="Essai"/> - <string name="AcctTypeCharterMember" value="Membre originaire"/> - <string name="AcctTypeEmployee" value="Employé(e) de Linden Lab"/> - <string name="PaymentInfoUsed" value="Infos de paiement utilisées"/> - <string name="PaymentInfoOnFile" value="Infos de paiement enregistrées"/> - <string name="NoPaymentInfoOnFile" value="Aucune info de paiement enregistrée"/> - <string name="AgeVerified" value="Personne dont l'âge a été vérifié"/> - <string name="NotAgeVerified" value="Personne dont l'âge n'a pas été vérifié"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=fr - </string> - <string name="my_account_link_url"> - http://secondlife.com/my - </string> - <string name="no_partner_text" value="Aucun"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Nom d'affichage :"/> - <text name="solo_username_label" value="Nom d'utilisateur :"/> - <button name="set_name" tool_tip="Définir un nom d'affichage"/> - <text name="user_label" value="Nom d'utilisateur :"/> - <panel name="lifes_images_panel"> - <panel name="second_life_image_panel"> - <text name="second_life_photo_title_text" value="[SECOND_LIFE]:"/> - </panel> - <icon label="" name="2nd_life_edit_icon" tool_tip="Cliquez pour sélectionner une image"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Vie réelle :"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="Cliquez pour sélectionner une image"/> - <text name="title_homepage_text"> - Page d'accueil : - </text> - <line_editor name="homepage_edit" value="http://"/> - <check_box label="Afficher avec la recherche" name="show_in_search_checkbox"/> - <text name="title_acc_status_text" value="Mon compte :"/> - <text_editor name="acc_status_text" value="Résident. Aucune info de paiement enregistrée."/> - <text name="my_account_link" value="[[URL] Accéder à ma Page d'accueil]"/> - <text name="title_partner_text" value="Mon partenaire :"/> - <panel name="partner_data_panel"> - <text initial_value="(récupération en cours)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] Modifier]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Enregistrer" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Annuler" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_facebook_account.xml b/indra/newview/skins/default/xui/fr/panel_facebook_account.xml deleted file mode 100644 index 6406ae4ae7..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="Vous êtes connecté(e) à Facebook en tant que :"/> - <string name="facebook_disconnected" value="Pas connecté(e) à Facebook"/> - <text name="account_caption_label"> - Pas connecté(e) à Facebook. - </text> - <panel name="panel_buttons"> - <button label="Connexion..." name="connect_btn"/> - <button label="Déconnexion" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Apprenez comment publier sur Facebook] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_facebook_friends.xml b/indra/newview/skins/default/xui/fr/panel_facebook_friends.xml deleted file mode 100644 index 0e36c2092c..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="Vous n'avez actuellement aucun ami Facebook qui est également résident de Second Life. Invitez vos amis Facebook à rejoindre Second Life aujourd'hui !"/> - <string name="facebook_friends_no_connected" value="Vous n'êtes pas connecté(e) à Facebook. Allez à l'onglet Statut pour vous connecter et activer cette fonctionnalité."/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="Amis SL"/> - <accordion_tab name="tab_suggested_friends" title="Ajouter ces personnes en tant qu'amis SL"/> - </accordion> - <text name="facebook_friends_status"> - Pas connecté(e) à Facebook. - </text> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_facebook_photo.xml b/indra/newview/skins/default/xui/fr/panel_facebook_photo.xml deleted file mode 100644 index cc4045bc74..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="Résolution d’image"> - <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/> - <combo_box.item label="640 x 480" name="640x480"/> - <combo_box.item label="800 x 600" name="800x600"/> - <combo_box.item label="1024 x 768" name="1024x768"/> - <combo_box.item label="1200 x 630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtres d’image"> - <combo_box.item label="Aucun filtre" name="NoFilter"/> - </combo_box> - <button label="Actualiser" name="new_snapshot_btn" tool_tip="Cliquer pour actualiser"/> - <button label="Aperçu" name="big_preview_btn" tool_tip="Cliquer pour basculer l'aperçu"/> - <text name="caption_label"> - Commentaire (facultatif) : - </text> - <button label="Publier" name="post_photo_btn"/> - <button label="Annuler" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_facebook_place.xml b/indra/newview/skins/default/xui/fr/panel_facebook_place.xml deleted file mode 100644 index f8e597450b..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - Dites quelque chose au sujet du lieu où vous vous trouvez : - </text> - <check_box initial_value="false" label="Inclure la vue aérienne du lieu" name="add_place_view_cb"/> - <button label="Publier" name="post_place_btn"/> - <button label="Annuler" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_facebook_status.xml b/indra/newview/skins/default/xui/fr/panel_facebook_status.xml deleted file mode 100644 index dc8e4b9ecc..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="Vous êtes connecté(e) à Facebook en tant que :"/> - <string name="facebook_disconnected" value="Pas connecté(e) à Facebook"/> - <text name="account_caption_label"> - Pas connecté(e) à Facebook. - </text> - <panel name="panel_buttons"> - <button label="Connexion en cours..." name="connect_btn"/> - <button label="Déconnexion" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Apprenez comment publier sur Facebook] - </text> - </panel> - <text name="status_caption_label"> - À quoi pensez-vous ? - </text> - <button label="Publier" name="post_status_btn"/> - <button label="Annuler" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_flickr_account.xml b/indra/newview/skins/default/xui/fr/panel_flickr_account.xml deleted file mode 100644 index 7082223b14..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="Vous êtes connecté(e) à Flickr en tant que :"/> - <string name="flickr_disconnected" value="Pas connecté(e) à Flickr"/> - <text name="account_caption_label"> - Pas connecté(e) à Flickr. - </text> - <panel name="panel_buttons"> - <button label="Connexion..." name="connect_btn"/> - <button label="Déconnexion" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Apprenez comment publier sur Flickr] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_flickr_photo.xml b/indra/newview/skins/default/xui/fr/panel_flickr_photo.xml deleted file mode 100644 index 9dac26b165..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="Résolution d’image"> - <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/> - <combo_box.item label="640 x 480" name="640x480"/> - <combo_box.item label="800 x 600" name="800x600"/> - <combo_box.item label="1 024 x 768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtres d'image"> - <combo_box.item label="Aucun filtre" name="NoFilter"/> - </combo_box> - <button label="Actualiser" name="new_snapshot_btn" tool_tip="Cliquer pour actualiser"/> - <button label="Aperçu" name="big_preview_btn" tool_tip="Cliquer pour activer/désactiver l'aperçu"/> - <text name="title_label"> - Titre : - </text> - <text name="description_label"> - Description : - </text> - <check_box initial_value="true" label="Inclure l'emplacement SL à la fin de la description" name="add_location_cb"/> - <text name="tags_label"> - Balises : - </text> - <text name="tags_help_label"> - Séparer les balises par des espaces -Utiliser "" pour les balises contenant plusieurs mots - </text> - <combo_box name="rating_combobox" tool_tip="Catégorie de contenu Flickr"> - <combo_box.item label="Catégorie de contenu Flickr sûr" name="SafeRating"/> - <combo_box.item label="Catégorie de contenu Flickr modéré" name="ModerateRating"/> - <combo_box.item label="Catégorie de contenu Flickr réservé aux adultes" name="RestrictedRating"/> - </combo_box> - <button label="Partager" name="post_photo_btn"/> - <button label="Annuler" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_group_control_panel.xml b/indra/newview/skins/default/xui/fr/panel_group_control_panel.xml deleted file mode 100644 index 3e66b3c72a..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="Profil du groupe" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Appeler le groupe" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Quitter l'appel" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Ouvrir contrôles vocaux" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml b/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml deleted file mode 100644 index 1f2169e22c..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <text name="avatar_name" value="Inconnu"/> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="Profil" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="Devenir amis" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="Téléporter" name="teleport_btn" tool_tip="Proposer de téléporter cette personne"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="Partager" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="Payer" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Appeler" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Quitter l'appel" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Contrôles vocaux" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_pick_info.xml b/indra/newview/skins/default/xui/fr/panel_pick_info.xml deleted file mode 100644 index 1de9b243f1..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="Infos"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[name]"/> - <text_editor name="pick_location" value="[loading...]"/> - <text_editor name="pick_desc" value="[description]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Téléportation" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Carte" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Modifier" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_picks.xml b/indra/newview/skins/default/xui/fr/panel_picks.xml deleted file mode 100644 index fb277f653f..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Favoris" name="panel_picks"> - <string name="no_picks" value="Pas de favoris"/> - <string name="no_classifieds" value="Pas de petites annonces"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Favoris"/> - <accordion_tab name="tab_classifieds" title="Petites annonces"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="Créer un nouveau favori ou une nouvelle petite annonce à l’endroit actuel"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="Infos" name="info_btn" tool_tip="Afficher les informations du favori"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Téléportation" name="teleport_btn" tool_tip="Me téléporter jusqu'à la zone correspondante"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Carte" name="show_on_map_btn" tool_tip="Afficher la zone correspondante sur la carte du monde"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_profile_interests.xml b/indra/newview/skins/default/xui/fr/panel_profile_interests.xml deleted file mode 100644 index e8212817d2..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Centres d'intérêt" name="panel_profile_interests"> - <text name="I Want To:"> - Je veux : - </text> - <check_box label="Construire" name="chk0"/> - <check_box label="Explorer" name="chk1"/> - <check_box label="Rencontrer" name="chk2"/> - <check_box label="Être recruté" name="chk6"/> - <check_box label="Grouper" name="chk3"/> - <check_box label="Acheter" name="chk4"/> - <check_box label="Vendre" name="chk5"/> - <check_box label="Louer" name="chk7"/> - <line_editor name="want_to_edit"> - (en cours de chargement...) - </line_editor> - <text name="Skills:"> - Compétences : - </text> - <check_box label="Textures" name="schk0"/> - <check_box label="Architecture" name="schk1"/> - <check_box label="Modèle" name="schk3"/> - <check_box label="Planification des événements" name="schk2"/> - <check_box label="Langage de scripts" name="schk4"/> - <check_box label="Personnages personnalisés" name="schk5"/> - <line_editor name="skills_edit"> - (en cours de chargement...) - </line_editor> - <text name="Languages:"> - Langues : - </text> - <line_editor name="languages_edit"> - (en cours de chargement...) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_twitter_account.xml b/indra/newview/skins/default/xui/fr/panel_twitter_account.xml deleted file mode 100644 index ed2208c69f..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="Vous êtes connecté(e) à Twitter en tant que :"/> - <string name="twitter_disconnected" value="Pas connecté(e) à Twitter"/> - <text name="account_caption_label"> - Pas connecté(e) à Twitter. - </text> - <panel name="panel_buttons"> - <button label="Connexion..." name="connect_btn"/> - <button label="Déconnexion" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Apprenez comment publier sur Twitter] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_twitter_photo.xml b/indra/newview/skins/default/xui/fr/panel_twitter_photo.xml deleted file mode 100644 index 3e23e5d577..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - Que se passe-t-il ? - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="Inclure l'emplacement SL" name="add_location_cb"/> - <check_box initial_value="true" label="Inclure une photo" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="Résolution d’image"> - <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/> - <combo_box.item label="640 x 480" name="640x480"/> - <combo_box.item label="800 x 600" name="800x600"/> - <combo_box.item label="1 024 x 768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtres d'image"> - <combo_box.item label="Aucun filtre" name="NoFilter"/> - </combo_box> - <button label="Actualiser" name="new_snapshot_btn" tool_tip="Cliquer pour actualiser"/> - <button label="Aperçu" name="big_preview_btn" tool_tip="Cliquer pour activer/désactiver l'aperçu"/> - <button label="Envoyer tweet" name="post_photo_btn"/> - <button label="Annuler" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/it/floater_about.xml b/indra/newview/skins/default/xui/it/floater_about.xml index edb334e13e..7e195d3ca9 100644 --- a/indra/newview/skins/default/xui/it/floater_about.xml +++ b/indra/newview/skins/default/xui/it/floater_about.xml @@ -29,6 +29,7 @@ con contributi open source da:</text> 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. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2012 Jean-loup Gailly e Mark Adler. Il Viewer Second Life utilizza Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (e licenziatari). Tutti i diritti riservati. Per informazioni dettagliate, vedere www.havok.com. diff --git a/indra/newview/skins/default/xui/it/floater_chat_bar.xml b/indra/newview/skins/default/xui/it/floater_chat_bar.xml deleted file mode 100644 index b47e32ce90..0000000000 --- a/indra/newview/skins/default/xui/it/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="CHAT NEI DINTORNI"> - <panel name="bottom_panel"> - <line_editor label="Clicca qui per la chat." name="chat_box" tool_tip="Premi Invio per parlare, Ctrl+Invio per gridare"/> - <button name="show_nearby_chat" tool_tip="Mostra/Nasconde il registro della chat nei dintorni"/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/it/floater_edit_day_cycle.xml deleted file mode 100644 index c922b2e4f7..0000000000 --- a/indra/newview/skins/default/xui/it/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="Modifica ciclo giornata"> - <string name="title_new"> - Crea un nuovo ciclo giornata - </string> - <string name="title_edit"> - Modifica ciclo giornata - </string> - <string name="hint_new"> - Dai un nome al ciclo della giornata, modifica i controlli per crearlo e fai clic su "Salva". - </string> - <string name="hint_edit"> - Per modificare il ciclo della giornata, modifica i controlli seguenti e fai clic su "Salva". - </string> - <string name="combo_label"> - -Seleziona un valore predefinito- - </string> - <text name="label"> - Nome predefinito: - </text> - <text name="note"> - Nota: se cambi il nome del valore predefinito, in realtà ne crei uno nuovo e quello esistente non viene cambiato. - </text> - <text name="hint_item1"> - - Fai clic su una scheda per modificare gli orari e le impostazioni cielo specifiche. - </text> - <text name="hint_item2"> - - Fai clic e trascina le schede per impostare i tempi di transizione. - </text> - <text name="hint_item3"> - - Usa lo scrubber per visualizzare in anteprima il ciclo giornata. - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="Aggiungi chiave" label_selected="Aggiungi chiave" name="WLAddKey"/> - <button label="Tasto cancella" label_selected="Tasto cancella" name="WLDeleteKey"/> - <text name="WL12am"> - 00:00 - </text> - <text name="WL3am"> - 03:00:00 - </text> - <text name="WL6am"> - 06:00:00 - </text> - <text name="WL9amHash"> - 09:00:00 - </text> - <text name="WL12pmHash"> - 12:00:00 - </text> - <text name="WL3pm"> - 15:00:00 - </text> - <text name="WL6pm"> - 18:00:00 - </text> - <text name="WL9pm"> - 21:00:00 - </text> - <text name="WL12am2"> - 00:00 - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - Impostazioni cielo: - </text> - <combo_box label="Valori predefiniti" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - Giorno/ora: - </text> - <time name="time" value="06:00:00"/> - <check_box label="Usa come nuovo ciclo giornata" name="make_default_cb"/> - <button label="Salva" name="save"/> - <button label="Annulla" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/it/floater_edit_sky_preset.xml deleted file mode 100644 index e2dda7da9d..0000000000 --- a/indra/newview/skins/default/xui/it/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="Modifica valore predefinito cielo"> - <string name="title_new"> - Crea un nuovo valore predefinito cielo - </string> - <string name="title_edit"> - Modifica valore predefinito cielo - </string> - <string name="hint_new"> - Dai un nome al valore predefinito, regola i comandi per crearlo e fai clic su "Salva". - </string> - <string name="hint_edit"> - Per modificare il valore predefinito cielo, regola i comandi e fai clic su "Salva". - </string> - <string name="combo_label"> - -Seleziona un valore predefinito- - </string> - <text name="hint"> - Per modificare il valore predefinito, regola i comandi e quindi fai clic su "Salva" - </text> - <text name="label"> - Nome predefinito: - </text> - <text name="note"> - Nota: se cambi il nome del valore predefinito, in realtà ne crei uno nuovo e quello esistente non viene cambiato. - </text> - <tab_container name="WindLight Tabs"> - <panel label="ATMOSFERA" name="Atmosphere"> - <text name="BHText"> - Orizzonte blu - </text> - <text name="BDensText"> - Orizzonte foschia - </text> - <text name="BDensText2"> - Densità blu - </text> - <text name="HDText"> - Densità foschia - </text> - <text name="DensMultText"> - Fattore moltiplicativo densità - </text> - <text name="WLDistanceMultText"> - Fattore moltiplicativo distanza - </text> - <text name="MaxAltText"> - Altitudine massima - </text> - </panel> - <panel label="ILLUMINAZIONE" name="Lighting"> - <text name="SLCText"> - Colore sole/luna - </text> - <text name="WLAmbientText"> - Ambiente - </text> - <text name="SunGlowText"> - Bagliore sole - </text> - <slider label="Centro focale" name="WLGlowB"/> - <slider label="Dimensioni" name="WLGlowR"/> - <text name="WLStarText"> - Luminosità stella - </text> - <text name="SceneGammaText"> - Gamma scena - </text> - <text name="TODText"> - Posizione sole/luna - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - 00:00 - </text> - <text name="WL6am"> - 06.00 - </text> - <text name="WL12pmHash"> - 12:00 - </text> - <text name="WL6pm"> - 18:00 - </text> - <text name="WL12am2"> - 00:00 - </text> - <time name="WLDayTime" value="06:00"/> - <text name="WLEastAngleText"> - Angolo est - </text> - </panel> - <panel label="NUVOLE" name="Clouds"> - <text name="WLCloudColorText"> - Colore nuvole - </text> - <text name="WLCloudColorText2"> - XY/Densità nuvole - </text> - <slider label="X" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - Copertura nuvole - </text> - <text name="WLCloudScaleText"> - Scala nuvole - </text> - <text name="WLCloudDetailText"> - Dettaglio nuvole (XY/Densità) - </text> - <slider label="X" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - Scorrimento nuvole X - </text> - <check_box label="Blocca" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - Scorrimento nuvole Y - </text> - <check_box label="Blocca" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="Usa questo valore predefinito come nuova impostazione per il cielo" name="make_default_cb"/> - <button label="Salva" name="save"/> - <button label="Annulla" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/it/floater_edit_water_preset.xml deleted file mode 100644 index 19eb6566c9..0000000000 --- a/indra/newview/skins/default/xui/it/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="Modifica valore predefinito acqua"> - <string name="title_new"> - Crea un nuovo valore predefinito per l'acqua - </string> - <string name="title_edit"> - Modifica un valore predefinito per l'acqua - </string> - <string name="hint_new"> - Dai un nome al valore predefinito, regola i comandi per crearlo e fai clic su "Salva". - </string> - <string name="hint_edit"> - Per modificare il valore predefinito per l’acqua, regola i comandi e fai clic su "Salva". - </string> - <string name="combo_label"> - -Seleziona un valore predefinito- - </string> - <text name="hint"> - Per modificare il valore predefinito, regola i comandi e quindi fai clic su "Salva" - </text> - <text name="label"> - Nome predefinito: - </text> - <text name="note"> - Nota: se cambi il nome del valore predefinito, in realtà ne crei uno nuovo e quello esistente non viene cambiato. - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - Colore nebbia acqua - </text> - <text name="water_fog_density_label"> - Esponente densità nebbia - </text> - <text name="underwater_fog_modifier_label"> - Modificatore nebbia sott'acqua - </text> - <text name="BHText"> - Direzione onda grande - </text> - <slider label="X" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - Scala wavelet riflesso - </text> - <text name="HDText"> - Scala Fresnel - </text> - <text name="FresnelOffsetText"> - Spostamento Fresnel - </text> - <text name="BHText2"> - Direzione onda piccola - </text> - <slider label="X" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - Scala wavelet sopra - </text> - <text name="WaterScaleBelowText"> - Scala wavelet sotto - </text> - <text name="MaxAltText"> - Fattore moltiplicativo sfocatura - </text> - <text name="BHText3"> - Mappa normale - </text> - </panel> - <check_box label="Usa questo valore predefinito come nuova impostazione per l'acqua" name="make_default_cb"/> - <button label="Salva" name="save"/> - <button label="Annulla" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_environment_settings.xml b/indra/newview/skins/default/xui/it/floater_environment_settings.xml deleted file mode 100644 index a7ed5f9e67..0000000000 --- a/indra/newview/skins/default/xui/it/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="IMPOSTAZIONI AMBIENTE"> - <text name="note"> - Usa le opzioni seguenti per personalizzare le impostazioni dell'ambiente per il tuo viewer. - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="Usa impostazioni regione" name="use_region_settings"/> - <radio_item label="Personalizza il mio ambiente" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - Nota: gli altri utenti non vedranno le tue impostazioni personalizzate. - </text> - <text name="water_settings_title"> - Impostazione Acqua - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-Seleziona un valore predefinito-" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - Ciclo cielo / giornata - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="Cielo fisso" name="my_sky_settings"/> - <radio_item label="Ciclo giornata" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-Seleziona un valore predefinito-" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-Seleziona un valore predefinito-" name="item0"/> - </combo_box> - </panel> - <button label="OK" name="ok_btn"/> - <button label="Annulla" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_facebook.xml b/indra/newview/skins/default/xui/it/floater_facebook.xml deleted file mode 100644 index cb700f00e1..0000000000 --- a/indra/newview/skins/default/xui/it/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="PUBBLICA SU FACEBOOK"> - <tab_container name="tabs"> - <panel label="STATO" name="panel_facebook_status"/> - <panel label="FOTO" name="panel_facebook_photo"/> - <panel label="REGISTRATI" name="panel_facebook_place"/> - <panel label="AMICI" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - Errore - </text> - <text name="connection_loading_text"> - Caricamento in corso... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_flickr.xml b/indra/newview/skins/default/xui/it/floater_flickr.xml deleted file mode 100644 index 85482a44a4..0000000000 --- a/indra/newview/skins/default/xui/it/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="CONDIVIDI SU FLICKR"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="FOTO" name="panel_flickr_photo"/> - <panel label="ACCOUNT" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - Errore - </text> - <text name="connection_loading_text"> - Caricamento... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_hardware_settings.xml b/indra/newview/skins/default/xui/it/floater_hardware_settings.xml deleted file mode 100644 index edbbc354cf..0000000000 --- a/indra/newview/skins/default/xui/it/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="OPZIONI HARDWARE"> - <text name="Filtering:"> - Filtraggio: - </text> - <check_box label="Filtraggio Anisotropico (rallenta se attivato)" name="ani"/> - <text name="antialiasing label"> - Antialiasing: - </text> - <combo_box label="Antialiasing" name="fsaa" width="94"> - <combo_box.item label="Disattivato" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (richiede il riavvio del viewer) - </text> - <spinner label="Gamma:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (0 = luminosità default, più basso = più luminoso) - </text> - <text name="Enable VBO:"> - Attiva VBO: - </text> - <check_box initial_value="true" label="Attiva oggetti OpenGL Vertex Buffer" name="vbo" tool_tip="Attivandolo su un hardware moderno aumenta la performance. Ma, su un vecchio hardware, spesso l'implementazione dei VBO è scarsa e potresti avere dei crash quando è attivato."/> - <text name="tc label"> - Attiva S3TC: - </text> - <check_box initial_value="true" label="Attiva compressione texture (richiede riavvio)" name="texture compression" tool_tip="Comprime le texture nella memoria video, consentendo il caricamento di texture a risoluzione maggiore al prezzo di ua perdita di qualit' del colore."/> - <slider label="Memoria texture (MB):" name="GraphicsCardTextureMemory" tool_tip="Spazio di memoria da ssegnare alle textures. Utilizza la memoria della scheda video come impostazione predefinita. La riduzione di questa impostazione potrebbe migliorare il rendimento ma potrebbe anche rendere le texture poco definite."/> - <spinner label="Indice della distanza della nebbia:" name="fog"/> - <button label="OK" label_selected="OK" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_perm_prefs.xml b/indra/newview/skins/default/xui/it/floater_perm_prefs.xml deleted file mode 100644 index a02b3b5075..0000000000 --- a/indra/newview/skins/default/xui/it/floater_perm_prefs.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="DIRITTI DI CARICAMENTO PREDEFINITI"> - <panel label="Permessi" name="permissions"> - <button label="?" label_selected="?" name="help"/> - <check_box label="Condividi con il gruppo" name="share_with_group"/> - <check_box label="Permetti a chiunque di copiare" name="everyone_copy"/> - <text name="NextOwnerLabel"> - Il prossimo possessore può: - </text> - <check_box label="Modificare" name="next_owner_modify"/> - <check_box label="Copiare" name="next_owner_copy"/> - <check_box label="Rivendere/Regalare" name="next_owner_transfer"/> - </panel> - <button label="OK" label_selected="OK" name="ok"/> - <button label="Annulla" label_selected="Annulla" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_twitter.xml b/indra/newview/skins/default/xui/it/floater_twitter.xml deleted file mode 100644 index a34052a620..0000000000 --- a/indra/newview/skins/default/xui/it/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="TWITTER"> - <tab_container name="tabs"> - <panel label="COMPONI" name="panel_twitter_photo"/> - <panel label="ACCOUNT" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - Errore - </text> - <text name="connection_loading_text"> - Caricamento in corso... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/it/floater_voice_controls.xml b/indra/newview/skins/default/xui/it/floater_voice_controls.xml deleted file mode 100644 index 77973eef1e..0000000000 --- a/indra/newview/skins/default/xui/it/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="CONTROLLI VOCE"> - <string name="title_nearby"> - IMPOSTAZIONI VOCE - </string> - <string name="title_group"> - CHIAMATA DI GRUPPO CON [GROUP] - </string> - <string name="title_adhoc"> - CHIAMATA IN CONFERENZA - </string> - <string name="title_peer_2_peer"> - CHIAMATA CON [NAME] - </string> - <string name="no_one_near"> - Nessuno nei dintorni ha attivato la funzione voce - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="Il mio avatar:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="Abbandona chiamata" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml deleted file mode 100644 index 1f10734c4a..0000000000 --- a/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Vedi profilo" name="view_profile"/> - <menu_item_call label="Aggiungi amico" name="add_friend"/> - <menu_item_call label="IM" name="im"/> - <menu_item_call label="Chiama" name="call"/> - <menu_item_call label="Teleport" name="teleport"/> - <menu_item_call label="Invita al gruppo" name="invite_to_group"/> - <menu_item_call label="Blocca" name="block"/> - <menu_item_call label="Sblocca" name="unblock"/> - <menu_item_call label="Segnala" name="report"/> - <menu_item_call label="Congela" name="freeze"/> - <menu_item_call label="Espelli" name="eject"/> - <menu_item_call label="Espelli" name="kick"/> - <menu_item_call label="CSR" name="csr"/> - <menu_item_call label="Debug delle texture" name="debug"/> - <menu_item_call label="Trova sulla mappa" name="find_on_map"/> - <menu_item_call label="Zoom avanti" name="zoom_in"/> - <menu_item_call label="Paga" name="pay"/> - <menu_item_call label="Condividi" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml deleted file mode 100644 index 4f62ccaa9c..0000000000 --- a/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Siedi" name="Sit Down Here"/> - <menu_item_call label="Alzati" name="Stand Up"/> - <context_menu label="Togli" name="Take Off >"> - <context_menu label="Abiti" name="Clothes >"> - <menu_item_call label="Camicia" name="Shirt"/> - <menu_item_call label="Pantaloni" name="Pants"/> - <menu_item_call label="Gonna" name="Skirt"/> - <menu_item_call label="Scarpe" name="Shoes"/> - <menu_item_call label="Calzini" name="Socks"/> - <menu_item_call label="Giacca" name="Jacket"/> - <menu_item_call label="Guanti" name="Gloves"/> - <menu_item_call label="Maglietta intima" name="Self Undershirt"/> - <menu_item_call label="Slip" name="Self Underpants"/> - <menu_item_call label="Tatuaggio" name="Self Tattoo"/> - <menu_item_call label="Alpha (Trasparenza)" name="Self Alpha"/> - <menu_item_call label="Tutti gli abiti" name="All Clothes"/> - </context_menu> - <context_menu label="HUD" name="Object Detach HUD"/> - <context_menu label="Stacca" name="Object Detach"/> - <menu_item_call label="Stacca tutto" name="Detach All"/> - </context_menu> - <menu_item_call label="Cambia vestiario" name="Chenge Outfit"/> - <menu_item_call label="Modifica il mio vestiario" name="Edit Outfit"/> - <menu_item_call label="Modifica la figura corporea" name="Edit My Shape"/> - <menu_item_call label="I miei amici" name="Friends..."/> - <menu_item_call label="I miei gruppi" name="Groups..."/> - <menu_item_call label="Il mio profilo" name="Profile..."/> - <menu_item_call label="Debug delle texture" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/it/menu_name_field.xml b/indra/newview/skins/default/xui/it/menu_name_field.xml deleted file mode 100644 index 9ac863323c..0000000000 --- a/indra/newview/skins/default/xui/it/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="Copia Nome Visualizzato" name="copy_display"/> - <menu_item_call label="Copia Nome Agente" name="copy_name"/> - <menu_item_call label="Copia ID Agente" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/it/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/it/menu_people_friends_view_sort.xml deleted file mode 100644 index 3a799f44eb..0000000000 --- a/indra/newview/skins/default/xui/it/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Ordina in base al nome" name="sort_name"/> - <menu_item_check label="Ordina in base allo stato" name="sort_status"/> - <menu_item_check label="Icone persone" name="view_icons"/> - <menu_item_check label="Visualizza autorizzazioni concesse" name="view_permissions"/> - <menu_item_call label="Mostra oggetti e residenti bloccati" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/it/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/it/menu_people_groups_view_sort.xml deleted file mode 100644 index d31ddaf1aa..0000000000 --- a/indra/newview/skins/default/xui/it/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Visualizza le icone di gruppo" name="Display Group Icons"/> - <menu_item_call label="Lascia i gruppi selezionati" name="Leave Selected Group"/> -</menu> diff --git a/indra/newview/skins/default/xui/it/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/it/menu_people_nearby_view_sort.xml deleted file mode 100644 index 2b5c235706..0000000000 --- a/indra/newview/skins/default/xui/it/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Ordina in base a intervenuti recenti" name="sort_by_recent_speakers"/> - <menu_item_check label="Ordina in base al nome" name="sort_name"/> - <menu_item_check label="Ordina in base alla distanza" name="sort_distance"/> - <menu_item_check label="Icone persone" name="view_icons"/> - <menu_item_check label="Visualizza mappa" name="view_map"/> - <menu_item_call label="Mostra oggetti e residenti bloccati" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/it/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/it/menu_people_recent_view_sort.xml deleted file mode 100644 index 7fccd1621a..0000000000 --- a/indra/newview/skins/default/xui/it/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Mostra prima i più recenti" name="sort_most"/> - <menu_item_check label="Ordina in base al nome" name="sort_name"/> - <menu_item_check label="Icone persone" name="view_icons"/> - <menu_item_call label="Mostra oggetti e residenti bloccati" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml deleted file mode 100644 index be001d09f8..0000000000 --- a/indra/newview/skins/default/xui/it/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="Chiama" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Abbandona chiamata" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Regolazione voce" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_edit_classified.xml b/indra/newview/skins/default/xui/it/panel_edit_classified.xml deleted file mode 100644 index 57e422a25b..0000000000 --- a/indra/newview/skins/default/xui/it/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Modifica inserzione" name="panel_edit_classified"> - <panel.string name="location_notice"> - (si aggiornerà dopo il salvataggio) - </panel.string> - <string name="publish_label"> - Pubblica - </string> - <string name="save_label"> - Salva - </string> - <text name="title"> - Modifica inserzione - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="Clicca per selezionare un'immagine"/> - </panel> - <text name="Name:"> - Titolo: - </text> - <text name="description_label"> - Descrizione: - </text> - <text name="location_label"> - Luogo: - </text> - <text name="classified_location"> - caricamento... - </text> - <button label="Imposta come luogo attuale" name="set_to_curr_location_btn"/> - <text name="category_label" value="Categoria:"/> - <text name="content_type_label" value="Tipo di contenuto:"/> - <icons_combo_box label="Contenuto generale" name="content_type"> - <icons_combo_box.item label="Contenuto moderato" name="mature_ci" value="Moderato"/> - <icons_combo_box.item label="Contenuto generale" name="pg_ci" value="Generale"/> - </icons_combo_box> - <check_box label="Rinnovo automatico ogni settimana" name="auto_renew"/> - <text name="price_for_listing_label" value="Prezzo per inserzione:"/> - <spinner label="L$" name="price_for_listing" tool_tip="Prezzo per inserzione:" value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="Annulla" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_edit_pick.xml b/indra/newview/skins/default/xui/it/panel_edit_pick.xml deleted file mode 100644 index 145b8cf4e3..0000000000 --- a/indra/newview/skins/default/xui/it/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Modifica preferito" name="panel_edit_pick"> - <panel.string name="location_notice"> - (si aggiornerà dopo il salvataggio) - </panel.string> - <text name="title"> - Modifica preferito - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Clicca per selezionare un'immagine"/> - <text name="Name:"> - Titolo: - </text> - <text name="description_label"> - Descrizione: - </text> - <text name="location_label"> - Luogo: - </text> - <text name="pick_location"> - caricamento... - </text> - <button label="Imposta come luogo attuale" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Salva luogo preferito" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="Annulla" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_edit_profile.xml b/indra/newview/skins/default/xui/it/panel_edit_profile.xml deleted file mode 100644 index 545e96a8f1..0000000000 --- a/indra/newview/skins/default/xui/it/panel_edit_profile.xml +++ /dev/null @@ -1,65 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Modifica profilo" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="Residente"/> - <string name="AcctTypeTrial" value="Prova"/> - <string name="AcctTypeCharterMember" value="Membro privilegiato"/> - <string name="AcctTypeEmployee" value="Impiegato della Linden Lab"/> - <string name="PaymentInfoUsed" value="Info. di pagamento usate"/> - <string name="PaymentInfoOnFile" value="Info. di pagamento in archivio"/> - <string name="NoPaymentInfoOnFile" value="Nessuna info. di pagamento"/> - <string name="AgeVerified" value="Età verificata"/> - <string name="NotAgeVerified" value="Età non verificata"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=it - </string> - <string name="no_partner_text" value="Nessuno"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Nome visualizzato:"/> - <text name="solo_username_label" value="Nome utente:"/> - <button name="set_name" tool_tip="Imposta nome visualizzato"/> - <text name="solo_user_name" value="Hamilton Hitchings"/> - <text name="user_name" value="Hamilton Hitchings"/> - <text name="user_name_small" value="Hamilton Hitchings"/> - <text name="user_label" value="Nome utente:"/> - <text name="user_slid" value="hamilton.linden"/> - <panel name="lifes_images_panel"> - <icon label="" name="2nd_life_edit_icon" tool_tip="Clicca per selezionare un'immagine"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Mondo reale:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="Clicca per selezionare un'immagine"/> - <text name="title_homepage_text"> - Home page: - </text> - <check_box label="Mostrami nei risultati della ricerca" name="show_in_search_checkbox"/> - <text name="title_acc_status_text" value="Il mio account:"/> - <text_editor name="acc_status_text" value="Residente. Nessuna informazione di pagamento disponibile."/> - <text name="my_account_link" value="[[URL] Go to My Dashboard]"/> - <text name="title_partner_text" value="Il mio partner:"/> - <panel name="partner_data_panel"> - <text initial_value="(recupero)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] Edit]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Salva modifiche" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Annulla" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_facebook_account.xml b/indra/newview/skins/default/xui/it/panel_facebook_account.xml deleted file mode 100644 index e887e7e4dc..0000000000 --- a/indra/newview/skins/default/xui/it/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="Sei in collegamento con Facebook come:"/> - <string name="facebook_disconnected" value="Non in collegamento con Facebook"/> - <text name="account_caption_label"> - Non in collegamento con Facebook. - </text> - <panel name="panel_buttons"> - <button label="Collegamento..." name="connect_btn"/> - <button label="Interrompi collegamento" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Come pubblicare su Facebook] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_facebook_friends.xml b/indra/newview/skins/default/xui/it/panel_facebook_friends.xml deleted file mode 100644 index 28769a010f..0000000000 --- a/indra/newview/skins/default/xui/it/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="Attualmente non hai amici su Facebook che sono anche residenti Second Life. Invita ora i tuoi amici di Facebook a unirsi a Second Life!"/> - <string name="facebook_friends_no_connected" value="Non sei connesso a Facebook. Accedi alla scheda Stato per collegarti e attivare questa funzionalità."/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="Amici SL"/> - <accordion_tab name="tab_suggested_friends" title="Aggiungi queste persone come amici SL"/> - </accordion> - <text name="facebook_friends_status"> - Non connesso a Facebook. - </text> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_facebook_photo.xml b/indra/newview/skins/default/xui/it/panel_facebook_photo.xml deleted file mode 100644 index 8d66f35c3c..0000000000 --- a/indra/newview/skins/default/xui/it/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="Risoluzione immagine"> - <combo_box.item label="Finestra attuale" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - <combo_box.item label="1200x630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtri immagine"> - <combo_box.item label="Nessun filtro" name="NoFilter"/> - </combo_box> - <button label="Aggiorna" name="new_snapshot_btn" tool_tip="Fai clic per aggiornare"/> - <button label="Anteprima" name="big_preview_btn" tool_tip="Fai clic per alternare l'anteprima"/> - <text name="caption_label"> - Commento (facoltativo): - </text> - <button label="Post" name="post_photo_btn"/> - <button label="Annulla" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_facebook_place.xml b/indra/newview/skins/default/xui/it/panel_facebook_place.xml deleted file mode 100644 index 3f1365f12c..0000000000 --- a/indra/newview/skins/default/xui/it/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - Racconta dove ti trovi: - </text> - <check_box initial_value="false" label="Includi vista dall'alto del luogo" name="add_place_view_cb"/> - <button label="Post" name="post_place_btn"/> - <button label="Annulla" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_facebook_status.xml b/indra/newview/skins/default/xui/it/panel_facebook_status.xml deleted file mode 100644 index 7fb1cec78e..0000000000 --- a/indra/newview/skins/default/xui/it/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="Sei connesso a Facebook come:"/> - <string name="facebook_disconnected" value="Non connesso a Facebook"/> - <text name="account_caption_label"> - Non connesso a Facebook. - </text> - <panel name="panel_buttons"> - <button label="Connessione in corso..." name="connect_btn"/> - <button label="Disconnetti" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Come pubblicare su Facebook] - </text> - </panel> - <text name="status_caption_label"> - A cosa stai pensando? - </text> - <button label="Post" name="post_status_btn"/> - <button label="Annulla" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_flickr_account.xml b/indra/newview/skins/default/xui/it/panel_flickr_account.xml deleted file mode 100644 index 573754a68e..0000000000 --- a/indra/newview/skins/default/xui/it/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="Sei in collegamento con Flickr come:"/> - <string name="flickr_disconnected" value="Non in collegamento con Flickr"/> - <text name="account_caption_label"> - Non in collegamento con Flickr. - </text> - <panel name="panel_buttons"> - <button label="Collegamento..." name="connect_btn"/> - <button label="Interrompi collegamento" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Come pubblicare su Flickr] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_flickr_photo.xml b/indra/newview/skins/default/xui/it/panel_flickr_photo.xml deleted file mode 100644 index f6700b6150..0000000000 --- a/indra/newview/skins/default/xui/it/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="Risoluzione immagini"> - <combo_box.item label="Finestra attuale" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtri immagini"> - <combo_box.item label="Nessun filtro" name="NoFilter"/> - </combo_box> - <button label="Aggiorna" name="new_snapshot_btn" tool_tip="Fai clic per aggiornare"/> - <button label="Anteprima" name="big_preview_btn" tool_tip="Fai clic per alternare l'anteprima"/> - <text name="title_label"> - Titolo: - </text> - <text name="description_label"> - Descrizione: - </text> - <check_box initial_value="true" label="Includi il luogo SL al termine della descrizione" name="add_location_cb"/> - <text name="tags_label"> - Tag: - </text> - <text name="tags_help_label"> - Separa tag con spazi -Usa "" per tag con più di una parola - </text> - <combo_box name="rating_combobox" tool_tip="Categoria del contenuto di Flickr"> - <combo_box.item label="Categoria Flickr Sicuro" name="SafeRating"/> - <combo_box.item label="Categoria Flickr Moderato" name="ModerateRating"/> - <combo_box.item label="Categoria Flickr Censurato" name="RestrictedRating"/> - </combo_box> - <button label="Condividi" name="post_photo_btn"/> - <button label="Annulla" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_group_control_panel.xml b/indra/newview/skins/default/xui/it/panel_group_control_panel.xml deleted file mode 100644 index 2d17e4a0cd..0000000000 --- a/indra/newview/skins/default/xui/it/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="Profilo del gruppo" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Chiama il gruppo" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Abbandona chiamata" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Apri la regolazione voce" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_im_control_panel.xml b/indra/newview/skins/default/xui/it/panel_im_control_panel.xml deleted file mode 100644 index 76b28eab24..0000000000 --- a/indra/newview/skins/default/xui/it/panel_im_control_panel.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="Profilo" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="Aggiungi amico" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="Teleport" name="teleport_btn" tool_tip="Offri teleport a questa persona"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="Condividi" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="Paga" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Chiama" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Chiudi chiamata" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Regolazione voce" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_pick_info.xml b/indra/newview/skins/default/xui/it/panel_pick_info.xml deleted file mode 100644 index ca9959a581..0000000000 --- a/indra/newview/skins/default/xui/it/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="Scegli Info"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[nome]"/> - <text_editor name="pick_location" value="[caricamento...]"/> - <text_editor name="pick_desc" value="[descrizione]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Teleport" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Mappa" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Modifica" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_picks.xml b/indra/newview/skins/default/xui/it/panel_picks.xml deleted file mode 100644 index 3faf28a948..0000000000 --- a/indra/newview/skins/default/xui/it/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Preferiti" name="panel_picks"> - <string name="no_picks" value="Nessun luogo preferito"/> - <string name="no_classifieds" value="Nessun annuncio"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Preferiti"/> - <accordion_tab name="tab_classifieds" title="Annunci pubblicitari"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="Crea un nuovo luogo preferito o annuncio in questo luogo"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="Informazioni" name="info_btn" tool_tip="Mostra informazioni sul luogo preferito"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Teleport" name="teleport_btn" tool_tip="Teleport alla zona corrispondente"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Mappa" name="show_on_map_btn" tool_tip="Mostra la zona corrispondente nella mappa del Mondo"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_profile_interests.xml b/indra/newview/skins/default/xui/it/panel_profile_interests.xml deleted file mode 100644 index 9fe7331e5c..0000000000 --- a/indra/newview/skins/default/xui/it/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Interessi" name="panel_profile_interests"> - <text name="I Want To:"> - Desidero: - </text> - <check_box label="Costruire" name="chk0"/> - <check_box label="Esplorare" name="chk1"/> - <check_box label="Incontrare" name="chk2"/> - <check_box label="Essere assunto" name="chk6"/> - <check_box label="Gruppo" name="chk3"/> - <check_box label="Acquistare" name="chk4"/> - <check_box label="Vendere" name="chk5"/> - <check_box label="Assumere" name="chk7"/> - <line_editor name="want_to_edit"> - (caricamento in corso...) - </line_editor> - <text name="Skills:"> - Abilità: - </text> - <check_box label="Texture" name="schk0"/> - <check_box label="Architettura" name="schk1"/> - <check_box label="Realizzazione modelli 3D" name="schk3"/> - <check_box label="Organizzazione eventi" name="schk2"/> - <check_box label="Scripting" name="schk4"/> - <check_box label="Personaggi personalizzati" name="schk5"/> - <line_editor name="skills_edit"> - (caricamento in corso...) - </line_editor> - <text name="Languages:"> - Lingue: - </text> - <line_editor name="languages_edit"> - (caricamento in corso...) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_twitter_account.xml b/indra/newview/skins/default/xui/it/panel_twitter_account.xml deleted file mode 100644 index 7eb3968f75..0000000000 --- a/indra/newview/skins/default/xui/it/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="Sei in collegamento con Twitter come:"/> - <string name="twitter_disconnected" value="Non in collegamento con Twitter"/> - <text name="account_caption_label"> - Non in collegamento con Twitter. - </text> - <panel name="panel_buttons"> - <button label="Collegamento..." name="connect_btn"/> - <button label="Interrompi collegamento" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Come pubblicare su Twitter] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_twitter_photo.xml b/indra/newview/skins/default/xui/it/panel_twitter_photo.xml deleted file mode 100644 index 69596784bd..0000000000 --- a/indra/newview/skins/default/xui/it/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - Cosa sta succedendo? - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="Includi il luogo in SL" name="add_location_cb"/> - <check_box initial_value="true" label="Includi una foto" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="Risoluzione immagini"> - <combo_box.item label="Finestra attuale" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtri immagini"> - <combo_box.item label="Nessun filtro" name="NoFilter"/> - </combo_box> - <button label="Aggiorna" name="new_snapshot_btn" tool_tip="Fai clic per aggiornare"/> - <button label="Anteprima" name="big_preview_btn" tool_tip="Fai clic per alternare l'anteprima"/> - <button label="Tweetta" name="post_photo_btn"/> - <button label="Annulla" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml index 6a39d057e2..22a65003d3 100644 --- a/indra/newview/skins/default/xui/ja/floater_about.xml +++ b/indra/newview/skins/default/xui/ja/floater_about.xml @@ -29,6 +29,7 @@ PCRE Copyright (c) 1997-2012 University of Cambridge 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. +xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler. Second Life ビューワでは Havok (TM) Physics が使用されています。(c)Copyright 1999-2010 Havok.com Inc. (and its Licensors).無断複写・複製・転載を禁じます。詳細については www.havok.com をご参照ください。 diff --git a/indra/newview/skins/default/xui/ja/floater_chat_bar.xml b/indra/newview/skins/default/xui/ja/floater_chat_bar.xml deleted file mode 100644 index 9f5df6fb85..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="近くのチャット"> - <panel name="bottom_panel"> - <line_editor label="ここをクリックしてチャットを開始します。" name="chat_box" tool_tip="Enter キーを押して話し、Ctrl + Enter キーで叫びます。"/> - <button name="show_nearby_chat" tool_tip="近くのチャットログを表示/非表示"/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/ja/floater_edit_day_cycle.xml deleted file mode 100644 index fd601672b6..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="デイサイクルを編集"> - <string name="title_new"> - 新たなデイサイクルを作成 - </string> - <string name="title_edit"> - デイサイクルを編集 - </string> - <string name="hint_new"> - 新しいデイサイクルに名前をつけ、希望の設定に調節して、「保存」をクリックします。 - </string> - <string name="hint_edit"> - 自分で作成したデイサイクルを編集するには、希望の設定に調節して、「保存」をクリックします。 - </string> - <string name="combo_label"> - - 事前設定を選択 - - </string> - <text name="label"> - 事前設定の名前: - </text> - <text name="note"> - 注意:自分で作成した事前設定の名前を変更すると、新しい事前設定が別に作成されるだけで、元の事前設定は変更されません。 - </text> - <text name="hint_item1"> - - 特定の空の設定や時間を編集するにはタブを1つクリックします。 - </text> - <text name="hint_item2"> - - 移行時間を設定するにはタブをクリックしてドラッグします。 - </text> - <text name="hint_item3"> - - デイサイクルをプレビューするにはスクラバーを使います。 - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="キーの追加" label_selected="キーの追加" name="WLAddKey"/> - <button label="キーの削除" label_selected="キーの削除" name="WLDeleteKey"/> - <text name="WL12am"> - 12am - </text> - <text name="WL3am"> - 3am - </text> - <text name="WL6am"> - 6am - </text> - <text name="WL9amHash"> - 9am - </text> - <text name="WL12pmHash"> - 12pm - </text> - <text name="WL3pm"> - 3pm - </text> - <text name="WL6pm"> - 6pm - </text> - <text name="WL9pm"> - 9pm - </text> - <text name="WL12am2"> - 12am - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - 空の設定: - </text> - <combo_box label="事前設定" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - 時間: - </text> - <time name="time" value="6:00 AM"/> - <check_box label="これを新しいデイサイクルにする" name="make_default_cb"/> - <button label="保存" name="save"/> - <button label="取り消し" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/ja/floater_edit_sky_preset.xml deleted file mode 100644 index 2d74bdeeb9..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="空の事前設定を編集"> - <string name="title_new"> - 新しい空の事前設定を作成 - </string> - <string name="title_edit"> - 空の事前設定を編集 - </string> - <string name="hint_new"> - 新しい事前設定に名前をつけ、希望の設定に調節して、「保存」をクリックします。 - </string> - <string name="hint_edit"> - 空の事前設定を編集するには、希望の設定に調節して、「保存」をクリックします。 - </string> - <string name="combo_label"> - - 事前設定を選択 - - </string> - <text name="hint"> - 事前設定を編集するには、希望の設定に調節して、「保存」をクリックします。 - </text> - <text name="label"> - 事前設定の名前: - </text> - <text name="note"> - 注記: 自分で作成した事前設定の名前を変更すると、新しい事前設定が別に作成されるだけで、元の事前設定は変更されません。 - </text> - <tab_container name="WindLight Tabs"> - <panel label="大気" name="Atmosphere"> - <text name="BHText"> - 空の配色 - </text> - <text name="BDensText"> - 空と遠景の露光 - </text> - <text name="BDensText2"> - 空の配色と濃度 - </text> - <text name="HDText"> - 大気の不透明度 - </text> - <text name="DensMultText"> - 大気の不透明度の増幅 - </text> - <text name="WLDistanceMultText"> - 視界の増幅 - </text> - <text name="MaxAltText"> - 最大高度 - </text> - </panel> - <panel label="ライティング" name="Lighting"> - <text name="SLCText"> - 太陽/月の色 - </text> - <text name="WLAmbientText"> - アンビエント - </text> - <text name="SunGlowText"> - 太陽の輝き - </text> - <slider label="焦点" name="WLGlowB"/> - <slider label="サイズ" name="WLGlowR"/> - <text name="WLStarText"> - 星の輝き - </text> - <text name="SceneGammaText"> - 風景ガンマ - </text> - <text name="TODText"> - 太陽/月の位置 - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - 12am - </text> - <text name="WL6am"> - 6am - </text> - <text name="WL12pmHash"> - 12pm - </text> - <text name="WL6pm"> - 6pm - </text> - <text name="WL12am2"> - 12am - </text> - <time name="WLDayTime" value="6:00 AM"/> - <text name="WLEastAngleText"> - 東の角度 - </text> - </panel> - <panel label="雲" name="Clouds"> - <text name="WLCloudColorText"> - 雲の色 - </text> - <text name="WLCloudColorText2"> - 雲のXY/密度 - </text> - <slider label="X" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - 雲の量 - </text> - <text name="WLCloudScaleText"> - 雲のスケール - </text> - <text name="WLCloudDetailText"> - 雲の詳細(XY/密度) - </text> - <slider label="X" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - 雲の移動速度(X方向) - </text> - <check_box label="ロック" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - 雲の移動速度(Y方向) - </text> - <check_box label="ロック" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="この事前設定を新しい空の設定にする" name="make_default_cb"/> - <button label="保存" name="save"/> - <button label="キャンセル" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/ja/floater_edit_water_preset.xml deleted file mode 100644 index 691aed35d0..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="水の事前設定を編集"> - <string name="title_new"> - 新しい水の事前設定を作成 - </string> - <string name="title_edit"> - 水の事前設定を編集 - </string> - <string name="hint_new"> - 新しい事前設定に名前をつけ、希望の設定に調節して、「保存」をクリックします。 - </string> - <string name="hint_edit"> - 水の事前設定を編集するには、希望の設定に調節して、「保存」をクリックします。 - </string> - <string name="combo_label"> - - 事前設定を選択 - - </string> - <text name="hint"> - 事前設定を編集するには、希望の設定に調節して、「保存」をクリックします。 - </text> - <text name="label"> - 事前設定の名前: - </text> - <text name="note"> - 注記: 自分で作成した事前設定の名前を変更すると、新しい事前設定が別に作成されるだけで、元の事前設定は変更されません。 - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - 水中のフォグ効果の色 - </text> - <text name="water_fog_density_label"> - 水中の透明度指数 - </text> - <text name="underwater_fog_modifier_label"> - 水中のフォグ効果加減 - </text> - <text name="BHText"> - 大波の方向 - </text> - <slider label="X" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - さざ波の反射スケール - </text> - <text name="HDText"> - フレネル・スケール - </text> - <text name="FresnelOffsetText"> - フレネル・オフセット - </text> - <text name="BHText2"> - 小波の方向 - </text> - <slider label="X" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - 水面の屈折スケール - </text> - <text name="WaterScaleBelowText"> - 水中の屈折スケール - </text> - <text name="MaxAltText"> - 不透明度の増幅 - </text> - <text name="BHText3"> - ノーマル・マップ - </text> - </panel> - <check_box label="この事前設定を新しい水の設定にする" name="make_default_cb"/> - <button label="保存" name="save"/> - <button label="キャンセル" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_environment_settings.xml b/indra/newview/skins/default/xui/ja/floater_environment_settings.xml deleted file mode 100644 index f9290971c6..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="自然環境の設定"> - <text name="note"> - ビューワの自然環境の設定は以下のオプションを使ってカスタマイズできます。 - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="リージョンの設定を使用" name="use_region_settings"/> - <radio_item label="自然環境をカスタマイズ" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - 注記: カスタム設定は他のユーザーには見えません。 - </text> - <text name="water_settings_title"> - 水の設定 - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="- 事前設定を選択 -" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - 空 / デイサイクル - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="空の固定" name="my_sky_settings"/> - <radio_item label="デイサイクル" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="- 事前設定を選択 -" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="- 事前設定を選択 -" name="item0"/> - </combo_box> - </panel> - <button label="OK" name="ok_btn"/> - <button label="キャンセル" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_facebook.xml b/indra/newview/skins/default/xui/ja/floater_facebook.xml deleted file mode 100644 index 76149a875e..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="FACEBOOK に投稿"> - <tab_container name="tabs"> - <panel label="ステータス" name="panel_facebook_status"/> - <panel label="写真" name="panel_facebook_photo"/> - <panel label="チェックイン" name="panel_facebook_place"/> - <panel label="フレンド" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - エラー - </text> - <text name="connection_loading_text"> - ロード中... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_flickr.xml b/indra/newview/skins/default/xui/ja/floater_flickr.xml deleted file mode 100644 index 77df22c9a0..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="FLICKR で共有する"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="写真" name="panel_flickr_photo"/> - <panel label="アカウント" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - エラー - </text> - <text name="connection_loading_text"> - ロード中... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml b/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml deleted file mode 100644 index c8b8e918e0..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="ハードウェア設定"> - <text name="Filtering:"> - フィルタリング: - </text> - <check_box label="異方的フィルタリング(有効にすると速度が低下します)" name="ani"/> - <text name="antialiasing label"> - アンチエイリアシング: - </text> - <combo_box label="アンチエイリアシング" name="fsaa"> - <combo_box.item label="無効" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (ビューワの再起動が必要) - </text> - <spinner label="ガンマ:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (0 でデフォルト、低いほど明るい) - </text> - <text name="Enable VBO:"> - VBO を有効化: - </text> - <check_box initial_value="true" label="OpenGL Vertex Buffer Objectsを有効化" name="vbo" tool_tip="最新のハードウェアでこの設定を有効にすると、パフォーマンスが向上します。 しかし、旧型のハードウェアでは VBO の実装が貧弱な場合が多く、この設定を有効にすることでクラッシュにつながるおそれがあります。"/> - <text name="tc label"> - S3TC を有効にする: - </text> - <check_box initial_value="true" label="テクスチャ圧縮を有効にする(再起動が必要)" name="texture compression" tool_tip="ビデオメモリ内でテクスチャを圧縮することにより、色の質を多少犠牲にしながら、より高解像度のテクスチャを読み込めるようにします。"/> - <slider label="テクスチャメモリ(MB):" name="GraphicsCardTextureMemory" tool_tip="テクスチャに割り当てられたメモリの量。 ビデオカードのメモリに既定。 数値を下げるとパフォーマンスが向上しますが、テクスチャの精度が落ちることがあります。"/> - <spinner label="フォグの距離比率:" name="fog"/> - <button label="OK" label_selected="OK" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml deleted file mode 100644 index 98cda25a81..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="デフォルトのアップロード権限"> - <panel label="権限" name="permissions"> - <button label="?" label_selected="?" name="help"/> - <check_box label="グループで共同管理" name="share_with_group"/> - <check_box label="誰に対してもコピーを許可" name="everyone_copy"/> - <text name="NextOwnerLabel"> - 次の所有者ができる操作: - </text> - <check_box label="修正" name="next_owner_modify"/> - <check_box label="コピー" name="next_owner_copy"/> - <check_box label="再販・プレゼント" name="next_owner_transfer"/> - </panel> - <button label="OK" label_selected="OK" name="ok"/> - <button label="取り消し" label_selected="取り消し" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_twitter.xml b/indra/newview/skins/default/xui/ja/floater_twitter.xml deleted file mode 100644 index 6df2045554..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="TWITTER"> - <tab_container name="tabs"> - <panel label="作成" name="panel_twitter_photo"/> - <panel label="アカウント" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - エラー - </text> - <text name="connection_loading_text"> - ロード中... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml b/indra/newview/skins/default/xui/ja/floater_voice_controls.xml deleted file mode 100644 index f7d3fd11e0..0000000000 --- a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="ボイスコントロール"> - <string name="title_nearby"> - ボイス設定 - </string> - <string name="title_group"> - [GROUP] とグループコール - </string> - <string name="title_adhoc"> - コンファレンスコール - </string> - <string name="title_peer_2_peer"> - [NAME] とコール - </string> - <string name="no_one_near"> - 近くにボイスを有効にしている人はいません。 - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="マイ アバター:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="コール終了" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml deleted file mode 100644 index 9d0d0f10a6..0000000000 --- a/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="プロフィールの表示" name="view_profile"/> - <menu_item_call label="フレンド登録" name="add_friend"/> - <menu_item_call label="IM" name="im"/> - <menu_item_call label="コール" name="call"/> - <menu_item_call label="テレポート" name="teleport"/> - <menu_item_call label="グループに招待" name="invite_to_group"/> - <menu_item_call label="ブロック" name="block"/> - <menu_item_call label="ブロック解除" name="unblock"/> - <menu_item_call label="報告" name="report"/> - <menu_item_call label="フリーズ" name="freeze"/> - <menu_item_call label="追放" name="eject"/> - <menu_item_call label="追放" name="kick"/> - <menu_item_call label="CSR" name="csr"/> - <menu_item_call label="テクスチャのデバッグ" name="debug"/> - <menu_item_call label="地図で探す" name="find_on_map"/> - <menu_item_call label="ズームイン" name="zoom_in"/> - <menu_item_call label="支払う" name="pay"/> - <menu_item_call label="共有" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml deleted file mode 100644 index e3e206f3aa..0000000000 --- a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="座る" name="Sit Down Here"/> - <menu_item_call label="立ち上がる" name="Stand Up"/> - <context_menu label="取り外す" name="Take Off >"> - <context_menu label="衣類" name="Clothes >"> - <menu_item_call label="シャツ" name="Shirt"/> - <menu_item_call label="パンツ" name="Pants"/> - <menu_item_call label="スカート" name="Skirt"/> - <menu_item_call label="靴" name="Shoes"/> - <menu_item_call label="靴下" name="Socks"/> - <menu_item_call label="ジャケット" name="Jacket"/> - <menu_item_call label="手袋" name="Gloves"/> - <menu_item_call label="下着シャツ" name="Self Undershirt"/> - <menu_item_call label="下着パンツ" name="Self Underpants"/> - <menu_item_call label="タトゥ" name="Self Tattoo"/> - <menu_item_call label="アルファ" name="Self Alpha"/> - <menu_item_call label="すべての衣類" name="All Clothes"/> - </context_menu> - <context_menu label="HUD" name="Object Detach HUD"/> - <context_menu label="取り外す" name="Object Detach"/> - <menu_item_call label="すべて取り外す" name="Detach All"/> - </context_menu> - <menu_item_call label="アウトフィットの変更" name="Chenge Outfit"/> - <menu_item_call label="アウトフィットの編集" name="Edit Outfit"/> - <menu_item_call label="シェイプの編集" name="Edit My Shape"/> - <menu_item_call label="フレンド" name="Friends..."/> - <menu_item_call label="グループ" name="Groups..."/> - <menu_item_call label="プロフィール" name="Profile..."/> - <menu_item_call label="テクスチャのデバッグ" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_name_field.xml b/indra/newview/skins/default/xui/ja/menu_name_field.xml deleted file mode 100644 index 8c37d95073..0000000000 --- a/indra/newview/skins/default/xui/ja/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="表示名をコピー" name="copy_display"/> - <menu_item_call label="エージェント名をコピー" name="copy_name"/> - <menu_item_call label="エージェント ID をコピー" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/ja/menu_people_friends_view_sort.xml deleted file mode 100644 index 76340e4d76..0000000000 --- a/indra/newview/skins/default/xui/ja/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="名前で並べ替え" name="sort_name"/> - <menu_item_check label="オンライン状態で並べ替え" name="sort_status"/> - <menu_item_check label="人のアイコン表示" name="view_icons"/> - <menu_item_check label="与えられた権限を表示" name="view_permissions"/> - <menu_item_call label="ブロックされた住人とオブジェクトを表示" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/ja/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/ja/menu_people_groups_view_sort.xml deleted file mode 100644 index bfc7d15017..0000000000 --- a/indra/newview/skins/default/xui/ja/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="グループアイコンを表示" name="Display Group Icons"/> - <menu_item_call label="選択したグループから脱退" name="Leave Selected Group"/> -</menu> diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby_view_sort.xml deleted file mode 100644 index 44c5438509..0000000000 --- a/indra/newview/skins/default/xui/ja/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="最近の発言者で並べ替え" name="sort_by_recent_speakers"/> - <menu_item_check label="名前で並べ替え" name="sort_name"/> - <menu_item_check label="距離で並べ替え" name="sort_distance"/> - <menu_item_check label="人のアイコン表示" name="view_icons"/> - <menu_item_check label="地図を表示" name="view_map"/> - <menu_item_call label="ブロックされた住人とオブジェクトを表示" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/ja/menu_people_recent_view_sort.xml deleted file mode 100644 index b4f177a068..0000000000 --- a/indra/newview/skins/default/xui/ja/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="新しい順に並べ替え" name="sort_most"/> - <menu_item_check label="名前で並べ替え" name="sort_name"/> - <menu_item_check label="人のアイコン表示" name="view_icons"/> - <menu_item_call label="ブロックされた住人とオブジェクトを表示" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml deleted file mode 100644 index 17e1283d24..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="コール" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="コール終了" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="ボイスコントロール" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_classified.xml b/indra/newview/skins/default/xui/ja/panel_edit_classified.xml deleted file mode 100644 index 619e9de65a..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="クラシファイド広告の編集" name="panel_edit_classified"> - <panel.string name="location_notice"> - (掲載後更新) - </panel.string> - <string name="publish_label"> - 掲載 - </string> - <string name="save_label"> - 保存 - </string> - <text name="title"> - クラシファイド広告の編集 - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="クリックして画像を選択"/> - </panel> - <text name="Name:"> - タイトル: - </text> - <text name="description_label"> - 説明: - </text> - <text name="location_label"> - 位置: - </text> - <text name="classified_location"> - ローディング... - </text> - <button label="現在地に設定" name="set_to_curr_location_btn"/> - <text name="category_label" value="カテゴリ:"/> - <text name="content_type_label" value="内容の種類:"/> - <icons_combo_box label="「General」コンテンツ" name="content_type"> - <icons_combo_box.item label="「Moderate」コンテンツ" name="mature_ci" value="Mature"/> - <icons_combo_box.item label="「General」コンテンツ" name="pg_ci" value="PG"/> - </icons_combo_box> - <check_box label="毎週自動更新" name="auto_renew"/> - <text name="price_for_listing_label" value="掲載価格:"/> - <spinner label="L$" name="price_for_listing" tool_tip="掲載価格" value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="キャンセル" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_pick.xml b/indra/newview/skins/default/xui/ja/panel_edit_pick.xml deleted file mode 100644 index 39ea1df1e3..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="ピック編集" name="panel_edit_pick"> - <panel.string name="location_notice"> - (掲載後更新) - </panel.string> - <text name="title"> - ピック編集 - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="クリックして画像を選択"/> - <text name="Name:"> - タイトル: - </text> - <text name="description_label"> - 説明: - </text> - <text name="location_label"> - 場所: - </text> - <text name="pick_location"> - ローディング... - </text> - <button label="現在地に設定" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="ピックを保存" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="取り消し" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml deleted file mode 100644 index 4cbd7f793b..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="プロフィールの編集" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] -[PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="住人"/> - <string name="AcctTypeTrial" value="トライアル"/> - <string name="AcctTypeCharterMember" value="創立メンバー"/> - <string name="AcctTypeEmployee" value="Linden Lab 従業員"/> - <string name="PaymentInfoUsed" value="支払情報使用履歴あり"/> - <string name="PaymentInfoOnFile" value="支払情報登録済"/> - <string name="NoPaymentInfoOnFile" value="支払情報未登録"/> - <string name="AgeVerified" value="年齢確認済"/> - <string name="NotAgeVerified" value="年齢未確認"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=ja - </string> - <string name="my_account_link_url"> - http://jp.secondlife.com/my - </string> - <string name="no_partner_text" value="なし"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="表示名:"/> - <text name="solo_username_label" value="ユーザー名:"/> - <button name="set_name" tool_tip="表示名を設定"/> - <text name="solo_user_name" value="Hamilton Hitchings"/> - <text name="user_name" value="Hamilton Hitchings"/> - <text name="user_name_small" value="Hamilton Hitchings"/> - <text name="user_label" value="ユーザー名:"/> - <text name="user_slid" value="hamilton.linden"/> - <panel name="lifes_images_panel"> - <panel name="second_life_image_panel"> - <text name="second_life_photo_title_text" value="[SECOND_LIFE]:"/> - </panel> - <icon label="" name="2nd_life_edit_icon" tool_tip="クリックして画像を選択"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="現実世界:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="クリックして画像を選択"/> - <text name="title_homepage_text"> - Web サイト: - </text> - <line_editor name="homepage_edit" value="http://"/> - <check_box label="検索結果に表示" name="show_in_search_checkbox"/> - <text name="title_acc_status_text" value="マイアカウント:"/> - <text_editor name="acc_status_text" value="住人。 支払情報未登録。"/> - <text name="my_account_link" value="[[URL] マイアカウントに移動]"/> - <text name="title_partner_text" value="マイパートナー:"/> - <panel name="partner_data_panel"> - <text initial_value="(取得中)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] 編集]" width="100"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="変更を保存" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="取り消し" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_facebook_account.xml b/indra/newview/skins/default/xui/ja/panel_facebook_account.xml deleted file mode 100644 index 5269e5a2da..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="次のユーザーとして Facebook に接続:"/> - <string name="facebook_disconnected" value="Facebook に接続していません"/> - <text name="account_caption_label"> - Facebook に接続していません。 - </text> - <panel name="panel_buttons"> - <button label="接続..." name="connect_btn"/> - <button label="切断" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Facebook への投稿について] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_facebook_friends.xml b/indra/newview/skins/default/xui/ja/panel_facebook_friends.xml deleted file mode 100644 index 17c628a190..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="Second Life の住人にもなっている Facebook の友だちがいません。今すぐ Facebook の友だちに Second Life に参加してもらいましょう!"/> - <string name="facebook_friends_no_connected" value="現在 Facebook に接続されていません。「ステータス」タブに進んで、この機能を有効にしてください。"/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="SL の友だち"/> - <accordion_tab name="tab_suggested_friends" title="これらの人を SL の友だちとして追加"/> - </accordion> - <text name="facebook_friends_status"> - Facebook に接続していません。 - </text> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_facebook_photo.xml b/indra/newview/skins/default/xui/ja/panel_facebook_photo.xml deleted file mode 100644 index ee57d178e8..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="画像解像度"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - <combo_box.item label="1200x630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="画像フィルター"> - <combo_box.item label="フィルターなし" name="NoFilter"/> - </combo_box> - <button label="更新" name="new_snapshot_btn" tool_tip="クリックして更新"/> - <button label="プレビュー" name="big_preview_btn" tool_tip="クリックしてプレビューを切り替える"/> - <text name="caption_label"> - コメント (オプション): - </text> - <button label="投稿" name="post_photo_btn"/> - <button label="キャンセル" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_facebook_place.xml b/indra/newview/skins/default/xui/ja/panel_facebook_place.xml deleted file mode 100644 index e97422a9df..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - 自分がいる場所について何か言ってください: - </text> - <check_box initial_value="false" label="場所の俯瞰図を含める" name="add_place_view_cb"/> - <button label="投稿" name="post_place_btn"/> - <button label="キャンセル" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_facebook_status.xml b/indra/newview/skins/default/xui/ja/panel_facebook_status.xml deleted file mode 100644 index 1f48c9c8c7..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="次のユーザーとして Facebook に接続:"/> - <string name="facebook_disconnected" value="Facebook に接続していません"/> - <text name="account_caption_label"> - Facebook に接続していません。 - </text> - <panel name="panel_buttons"> - <button label="接続..." name="connect_btn"/> - <button label="切断" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Facebook への投稿について] - </text> - </panel> - <text name="status_caption_label"> - 今、何を考えている? - </text> - <button label="投稿" name="post_status_btn"/> - <button label="キャンセル" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_flickr_account.xml b/indra/newview/skins/default/xui/ja/panel_flickr_account.xml deleted file mode 100644 index bd2e96d58c..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="次のユーザーとして Flickr に接続:"/> - <string name="flickr_disconnected" value="Flickr に接続していない"/> - <text name="account_caption_label"> - Flickr に接続していません。 - </text> - <panel name="panel_buttons"> - <button label="接続..." name="connect_btn"/> - <button label="切断" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Flickr への投稿について] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_flickr_photo.xml b/indra/newview/skins/default/xui/ja/panel_flickr_photo.xml deleted file mode 100644 index 6a484b8e59..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="画像解像度"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="画像フィルター"> - <combo_box.item label="フィルターなし" name="NoFilter"/> - </combo_box> - <button label="更新" name="new_snapshot_btn" tool_tip="クリックして更新"/> - <button label="プレビュー" name="big_preview_btn" tool_tip="クリックしてプレビューを切り替える"/> - <text name="title_label"> - タイトル: - </text> - <text name="description_label"> - 説明: - </text> - <check_box initial_value="true" label="SL の場所を説明の最後に含める" name="add_location_cb"/> - <text name="tags_label"> - タグ: - </text> - <text name="tags_help_label"> - タグをスペースで区切る -複数単語のタグに "" を使用 - </text> - <combo_box name="rating_combobox" tool_tip="Flickr コンテンツのレーティング区分"> - <combo_box.item label="Flickr レーティング区分「Safe」" name="SafeRating"/> - <combo_box.item label="Flickr レーティング区分「Moderate」" name="ModerateRating"/> - <combo_box.item label="Flickr レーティング区分「Restricted」" name="RestrictedRating"/> - </combo_box> - <button label="共有" name="post_photo_btn"/> - <button label="取り消し" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml deleted file mode 100644 index 49749732c9..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="グループプロフィール" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="グループコール" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="コール終了" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="ボイスコントロールを開く" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml deleted file mode 100644 index f2429ac12a..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <text name="avatar_name" value="不明"/> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="プロフィール" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="フレンド登録" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="テレポート" name="teleport_btn" tool_tip="この人にテレポートを送ります"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="共有" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="支払う" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="コール" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="コール終了" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="ボイスコントロール" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_pick_info.xml b/indra/newview/skins/default/xui/ja/panel_pick_info.xml deleted file mode 100644 index e7b5d1929d..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="ピックの情報"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[name]"/> - <text_editor name="pick_location" value="[loading...]"/> - <text_editor name="pick_desc" value="[description]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="テレポート" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="地図" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="編集" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_picks.xml b/indra/newview/skins/default/xui/ja/panel_picks.xml deleted file mode 100644 index c6eaaeef41..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="ピック" name="panel_picks"> - <string name="no_picks" value="ピックなし"/> - <string name="no_classifieds" value="クラシファイド広告なし"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="ピック"/> - <accordion_tab name="tab_classifieds" title="クラシファイド広告"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="現在地の新しいピック、またはクラシファイド広告を作成します"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="情報" name="info_btn" tool_tip="ピックの情報を表示"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="テレポート" name="teleport_btn" tool_tip="該当するエリアにテレポート"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="地図" name="show_on_map_btn" tool_tip="世界地図に該当するエリアを表示"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_profile_interests.xml b/indra/newview/skins/default/xui/ja/panel_profile_interests.xml deleted file mode 100644 index 93cde6ffec..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="趣味" name="panel_profile_interests"> - <text name="I Want To:"> - 次の内容を実行: - </text> - <check_box label="作る" name="chk0"/> - <check_box label="探検" name="chk1"/> - <check_box label="出会う" name="chk2"/> - <check_box label="雇ってもらう" name="chk6"/> - <check_box label="グループ" name="chk3"/> - <check_box label="買う" name="chk4"/> - <check_box label="販売する" name="chk5"/> - <check_box label="雇う" name="chk7"/> - <line_editor name="want_to_edit"> - (ロード中...) - </line_editor> - <text name="Skills:"> - スキル: - </text> - <check_box label="テクスチャ" name="schk0"/> - <check_box label="建築" name="schk1"/> - <check_box label="モデリング" name="schk3"/> - <check_box label="イベント計画" name="schk2"/> - <check_box label="スクリプト" name="schk4"/> - <check_box label="キャラクターのカスタマイズ" name="schk5"/> - <line_editor name="skills_edit"> - (ロード中...) - </line_editor> - <text name="Languages:"> - 言語: - </text> - <line_editor name="languages_edit"> - (ロード中...) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_twitter_account.xml b/indra/newview/skins/default/xui/ja/panel_twitter_account.xml deleted file mode 100644 index b140b7463f..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="次のユーザーとして Twitter に接続:"/> - <string name="twitter_disconnected" value="Twitter に接続していない"/> - <text name="account_caption_label"> - Twitter に接続していません。 - </text> - <panel name="panel_buttons"> - <button label="接続..." name="connect_btn"/> - <button label="切断" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Twitter への投稿について] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_twitter_photo.xml b/indra/newview/skins/default/xui/ja/panel_twitter_photo.xml deleted file mode 100644 index cdb45e1853..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - 何が起きているのでしょうか? - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="SL の場所を含む" name="add_location_cb"/> - <check_box initial_value="true" label="写真を含める" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="画像解像度"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="画像フィルター"> - <combo_box.item label="フィルターなし" name="NoFilter"/> - </combo_box> - <button label="更新" name="new_snapshot_btn" tool_tip="クリックして更新"/> - <button label="プレビュー" name="big_preview_btn" tool_tip="クリックしてプレビューを切り替える"/> - <button label="ツイート" name="post_photo_btn"/> - <button label="取り消し" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/pl/control_table_contents_camera.xml b/indra/newview/skins/default/xui/pl/control_table_contents_camera.xml new file mode 100644 index 0000000000..95a2e0acee --- /dev/null +++ b/indra/newview/skins/default/xui/pl/control_table_contents_camera.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<contents> + <rows name="camera_actions"> + <columns label="Kamera" name="lst_action" /> + </rows> + <rows name="look_up"> + <columns name="lst_action" value="Patrz w górę" /> + </rows> + <rows name="look_down"> + <columns name="lst_action" value="Patrz w dół" /> + </rows> + <rows name="move_forward"> + <columns name="lst_action" value="Kamera w przód" /> + </rows> + <rows name="move_backward"> + <columns name="lst_action" value="Kamera w tył" /> + </rows> + <rows name="move_forward_fast"> + <columns name="lst_action" value="Kamera szybko w przód" /> + </rows> + <rows name="move_backward_fast"> + <columns name="lst_action" value="Kamera szybko w tył" /> + </rows> + <rows name="spin_over"> + <columns name="lst_action" value="Obrót kamery w górę" /> + </rows> + <rows name="spin_under"> + <columns name="lst_action" value="Obrót kamery w dół" /> + </rows> + <rows name="pan_up"> + <columns name="lst_action" value="Przesuń kamerę w górę" /> + </rows> + <rows name="pan_down"> + <columns name="lst_action" value="Przesuń kamerę w dół" /> + </rows> + <rows name="pan_left"> + <columns name="lst_action" value="Przesuń kamerę w lewo" /> + </rows> + <rows name="pan_right"> + <columns name="lst_action" value="Przesuń kamerę w prawo" /> + </rows> + <rows name="pan_in"> + <columns name="lst_action" value="Przybliż kamerę" /> + </rows> + <rows name="pan_out"> + <columns name="lst_action" value="Oddal kamerę" /> + </rows> + <rows name="spin_around_ccw"> + <columns name="lst_action" tool_tip="Obrót kamery w kierunku przeciwnym do ruchu wskazówek zegara." value="Obrót kamery w prawo" /> + </rows> + <rows name="spin_around_cw"> + <columns name="lst_action" tool_tip="Obrót kamery zgodnie z ruchem wskazówek zegara." value="Obrót kamery w lewo" /> + </rows> + <rows name="move_forward_sitting"> + <columns name="lst_action" value="Kamera w przód siedząc" /> + </rows> + <rows name="move_backward_sitting"> + <columns name="lst_action" value="Kamera w tył siedząc" /> + </rows> + <rows name="spin_over_sitting"> + <columns name="lst_action" value="Obrót kamery w górę siedząc" /> + </rows> + <rows name="spin_under_sitting"> + <columns name="lst_action" value="Obrót kamery w dół siedząc" /> + </rows> + <rows name="spin_around_ccw_sitting"> + <columns name="lst_action" tool_tip="Obrót kamery w kierunku przeciwnym do ruchu wskazówek zegara - siedząc." value="Obrót kamery w prawo siedząc" /> + </rows> + <rows name="spin_around_cw_sitting"> + <columns name="lst_action" tool_tip="Obrót kamery zgodnie z ruchem wskazówek zegara - siedząc." value="Obrót kamery w lewo siedząc" /> + </rows> +</contents> diff --git a/indra/newview/skins/default/xui/pl/control_table_contents_columns_basic.xml b/indra/newview/skins/default/xui/pl/control_table_contents_columns_basic.xml new file mode 100644 index 0000000000..5f995b4128 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/control_table_contents_columns_basic.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<contents> + <columns label="Akcja" name="lst_action" /> + <columns label="Wyzwalacz" name="lst_ctrl1" /> + <columns label="Alternatywny 1" name="lst_ctrl2" /> + <columns label="Alternatywny 2" name="lst_ctrl3" /> +</contents> diff --git a/indra/newview/skins/default/xui/pl/control_table_contents_editing.xml b/indra/newview/skins/default/xui/pl/control_table_contents_editing.xml new file mode 100644 index 0000000000..568b7dcf6d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/control_table_contents_editing.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<contents> + <rows name="editing_actions"> + <columns label="Edytowanie" name="lst_action" /> + </rows> + <rows name="edit_avatar_spin_ccw"> + <columns name="lst_action" tool_tip="Obrót kamery wokół awatara w kierunku przeciwnym do ruchu wskazówek zegara." value="Obrót kamery w prawo" /> + </rows> + <rows name="edit_avatar_spin_cw"> + <columns name="lst_action" tool_tip="Obrót kamery wokół awatara zgodnie z ruchem wskazówek zegara." value="Obrót kamery w lewo" /> + </rows> + <rows name="edit_avatar_spin_over"> + <columns name="lst_action" tool_tip="Obrót kamery ponad awatarem" value="Obrót kamery w górę" /> + </rows> + <rows name="edit_avatar_spin_under"> + <columns name="lst_action" tool_tip="Obrót kamery pod awatarem" value="Obrót kamery w dół" /> + </rows> + <rows name="edit_avatar_move_forward"> + <columns name="lst_action" value="Kamera w przód" /> + </rows> + <rows name="edit_avatar_move_backward"> + <columns name="lst_action" value="Kamera w tył" /> + </rows> +</contents> diff --git a/indra/newview/skins/default/xui/pl/control_table_contents_media.xml b/indra/newview/skins/default/xui/pl/control_table_contents_media.xml new file mode 100644 index 0000000000..042e37963d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/control_table_contents_media.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<contents> + <rows name="media_actions"> + <columns label="Dźwięk i media" name="lst_action" /> + </rows> + <rows name="toggle_pause_media"> + <columns name="lst_action" value="Odtwórz / wstrzymaj media" /> + </rows> + <rows name="toggle_enable_media"> + <columns name="lst_action" value="Odtwórz / zatrzymaj wszystkie media" /> + </rows> + <rows name="voice_follow_key"> + <columns name="lst_action" value="Głos" /> + </rows> + <rows name="toggle_voice"> + <columns name="lst_action" value="Przełącz głos" /> + </rows> + <rows name="start_chat"> + <columns name="lst_action" value="Rozpocznij czat" /> + </rows> + <rows name="start_gesture"> + <columns name="lst_action" value="Odtwórz gest" /> + </rows> + <rows name="script_trigger_lbutton"> + <columns name="lst_action" value="Interakcja (LMB)" /> + </rows> +</contents> diff --git a/indra/newview/skins/default/xui/pl/control_table_contents_movement.xml b/indra/newview/skins/default/xui/pl/control_table_contents_movement.xml new file mode 100644 index 0000000000..93dd24f0d5 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/control_table_contents_movement.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<contents> + <rows name="move_actions"> + <columns label="Ruch" name="lst_action" /> + </rows> + <rows name="walk_to"> + <columns name="lst_action" tool_tip="Podejdź do miejsca, której wskazuje kursor myszy." value="Podejdź do" /> + </rows> + <rows name="teleport_to"> + <columns name="lst_action" tool_tip="Teleportuj się do miejsca, które wskazuje kursor myszy - nie wszystkie lokalizacje pozwalają na bezpośrednią teleportację, więc zamiast tego możesz zostać teleportowana/y w pobliże celu." value="Teleportuj do" /> + </rows> + <rows name="push_forward"> + <columns name="lst_action" value="Idź w przód" /> + </rows> + <rows name="push_backward"> + <columns name="lst_action" value="Idź do tyłu" /> + </rows> + <rows name="turn_left"> + <columns name="lst_action" value="Obrót w lewo" /> + </rows> + <rows name="turn_right"> + <columns name="lst_action" value="Obrót w prawo" /> + </rows> + <rows name="slide_left"> + <columns name="lst_action" value="Idź w lewo" /> + </rows> + <rows name="slide_right"> + <columns name="lst_action" value="Idź w prawo" /> + </rows> + <rows name="jump"> + <columns name="lst_action" value="Skok / W górę" /> + </rows> + <rows name="push_down"> + <columns name="lst_action" value="W dół" /> + </rows> + <rows name="run_forward"> + <columns name="lst_action" value="Bieg w przód" /> + </rows> + <rows name="run_backward"> + <columns name="lst_action" value="Bieg w tył" /> + </rows> + <rows name="run_left"> + <columns name="lst_action" value="Bieg w lewo" /> + </rows> + <rows name="run_right"> + <columns name="lst_action" value="Bieg w prawo" /> + </rows> + <rows name="toggle_run"> + <columns name="lst_action" value="Zawsze biegaj" /> + </rows> + <rows name="toggle_fly"> + <columns name="lst_action" value="Lataj / Przestań" /> + </rows> + <rows name="toggle_sit"> + <columns name="lst_action" value="Usiądź / Wstań" /> + </rows> + <rows name="stop_moving"> + <columns name="lst_action" value="Wstrzymaj ruch" /> + </rows> +</contents> diff --git a/indra/newview/skins/default/xui/pl/floater_360capture.xml b/indra/newview/skins/default/xui/pl/floater_360capture.xml new file mode 100644 index 0000000000..d0a49d1bde --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_360capture.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<floater name="360capture" title="Zdjęcie 360°"> + <panel name="ui_panel_left"> + <text name="quality_level_label"> + Poziom detali + </text> + <radio_group name="360_quality_selection"> + <radio_item label="Podgląd (szybkie)" name="preview_quality" tool_tip="Najsłabsza jakość" /> + <radio_item label="Średni" name="medium_quality" tool_tip="Średnia jakość" /> + <radio_item label="Wysoki" name="high_quality" tool_tip="Wysoka jakość" /> + <radio_item label="Maksymalny" name="maximum_quality" tool_tip="Maksymalna jakość" /> + </radio_group> + <check_box label="Ukryj awatary" name="360_hide_avatar" /> + <button label="Stwórz obraz 360" name="capture_button" /> + <button label="Zapisz jako..." name="save_local_button" /> + </panel> + <panel name="ui_panel_right"> + <text name="statusbar"> + Przeciągaj obraz, aby przesunąć widok + </text> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml index b9c75e8e88..b8d75315de 100644 --- a/indra/newview/skins/default/xui/pl/floater_about.xml +++ b/indra/newview/skins/default/xui/pl/floater_about.xml @@ -6,8 +6,8 @@ </panel> <panel label="Podziękowania" name="credits_panel"> <text name="linden_intro"> - Second Life zostało dla Ciebie stworzone przez Lindenów, - z wkładem open source od: +Second Life zostało dla Ciebie stworzone przez Lindenów, +z wkładem open source od: </text> </panel> <panel label="Licencje" name="licenses_panel" /> 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 1646db897a..9f8e110dd6 100644 --- a/indra/newview/skins/default/xui/pl/floater_about_land.xml +++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml @@ -1,17 +1,26 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="floaterland" title="O DZIAŁCE"> + <floater.string name="Hours"> + [HOURS] godz. + </floater.string> + <floater.string name="Hour"> + godz. + </floater.string> <floater.string name="Minutes"> - [MINUTES] minuty + [MINUTES] min. </floater.string> <floater.string name="Minute"> - minuta + min. </floater.string> <floater.string name="Seconds"> - [SECONDS] sekund + [SECONDS] sek. </floater.string> <floater.string name="Remaining"> pozostało </floater.string> + <floater.string name="Always"> + Zawsze + </floater.string> <tab_container name="landtab"> <panel label="OGÓLNE" name="land_general_panel"> <panel.string name="new users only"> @@ -65,16 +74,10 @@ <text name="Owner:"> Właściciel: </text> - <text name="OwnerText"> - Ładowanie... - </text> <button label="Profil" name="Profile..." /> <text name="Group:"> Grupa: </text> - <text name="GroupText"> - Ładowanie... - </text> <button label="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 działki na Grupę. Działka wspierana jest przez przydziały pochodzące od członków Grupy." /> <button label="Przypisz" name="Deed..." tool_tip="Prawo przypisania działki na Grupę może dokonać jedynie oficer Grupy." /> @@ -111,7 +114,7 @@ <text name="DwellText"> Wczytywanie... </text> - <button label="Kup działkę" name="Buy Land..." /> + <button label="Kup działkę" label_selected="Kup działkę" name="Buy Land..." /> <button label="Sprzedaż przez Lindenów" name="Linden Sale..." tool_tip="Działka musi mieć Właściciela, zawartość oraz nie może być wystawiona na Aukcję." /> <button label="Skrypty" name="Scripts..."/> <button label="Kup dla Grupy" name="Buy For Group..." /> @@ -130,7 +133,7 @@ Działka zakupiona w tym Regionie może być łączona/dzielona. </panel.string> <panel.string name="can_not_change"> - Działka zakupiona w tym Regionie nie może być + Działka zakupiona w tym Regionie nie może być łączona/dzielona. </panel.string> <text name="estate_section_lbl"> @@ -151,9 +154,6 @@ <text name="covenant_timestamp_text"> Ostatnia modyfikacja Wed Dec 31 16:00:00 1969 </text> - <text name="region_name_text"> - Wczytywanie... - </text> <text name="region_landtype_lbl"> Typ: </text> @@ -220,8 +220,8 @@ <text name="Object Owners:"> Właściciele: </text> - <button name="Refresh List" tool_tip="Odśwież listę obiektów" /> - <button label="Zwróć obiekty" name="Return objects..." /> + <button label="Odśwież listę" label_selected="Odśwież listę" name="Refresh List" tool_tip="Odśwież listę obiektów" /> + <button label="Zwróć obiekty" label_selected="Zwróć obiekty" name="Return objects..." /> <name_list name="owner list"> <name_list.columns label="Typ" name="type" /> <name_list.columns label="Nazwa" name="name" /> @@ -250,7 +250,7 @@ Jedynie większe działki mogą być umieszczone w bazie wyszukiwarki. Twoja działka bądź treść jaką zawiera klasyfikowana jest jako Moderate. </panel.string> <panel.string name="mature_check_adult_tooltip"> - Twoja działka bądź treść jaką zawiera klasyfikowana jest jako Adult + Twoja działka bądź treść jaką zawiera klasyfikowana jest jako Adult. </panel.string> <panel.string name="landing_point_none"> (brak) @@ -271,21 +271,21 @@ Jedynie większe działki mogą być umieszczone w bazie wyszukiwarki. <text name="allow_label2"> Budowanie: </text> - <check_box label="Wszyscy" name="edit objects check" /> - <check_box label="Grupa" name="edit group objects check" /> + <check_box label="Wszyscy" name="edit objects check" tool_tip="Gdy ta opcja jest włączona, to Rezydenci mogą tworzyć i rezzować obiekty na Twojej działce." /> + <check_box label="Grupa" name="edit group objects check" tool_tip="Gdy ta opcja jest włączona, to osoby będące w grupie przypisanej do Twojej działki mogą na niej tworzyć i rezzować obiekty." /> <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" /> + <check_box label="Wszyscy" name="all object entry check" tool_tip="Gdy ta opcja jest włączona, to Rezydenci mogą przenosić istniejące obiekty z innych działek na tę działkę." /> + <check_box label="Grupa" name="group object entry check" tool_tip="Gdy ta opcja jest włączona, to osoby będące w grupie przypisanej do tej działki mogą na nią przenosić istniejące obiekty z innych działek." /> <text name="allow_label4"> Skrypty: </text> - <check_box label="Wszyscy" name="check other scripts" /> - <check_box label="Grupa" name="check group scripts" /> + <check_box label="Wszyscy" name="check other scripts" tool_tip="Gdy ta opcja jest włączona, to Rezydenci mogą uruchamiać skrypty na Twojej działce, włączając w to te z dodatków." /> + <check_box label="Grupa" name="check group scripts" tool_tip="Gdy ta opcja jest włączona, to osoby będące w grupie przypisanej do Twojej działki mogą na niej uruchamiać skrypty, włączając w to te z dodatków." /> <check_box label="Bezpieczna (brak uszkodzeń)" name="check safe" tool_tip="Wybrana - działka jest bezpieczna - uszkodzenia w walce są zablokowane. Nie jest wybrana - uszkodzenia 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 na Twojej działce." /> - <check_box label="Wyświetlaj w wyszukiwarce (30L$/tyg.)" name="ShowDirectoryCheck" tool_tip="Udostępnij ukazywanie się nazwy działki w wyszukiwarce" /> + <check_box label="Wyświetlaj w wyszukiwarce (30L$/tyg.)" name="ShowDirectoryCheck" tool_tip="Udostępnij ukazywanie się nazwy działki w wyszukiwarce"/> <combo_box name="land category"> <combo_box.item label="Każda kategoria" name="item0" /> <combo_box.item label="Lokalizacja Lindenów" name="item1" /> @@ -301,24 +301,24 @@ Jedynie większe działki mogą być umieszczone w bazie wyszukiwarki. <combo_box.item label="Wynajem" name="item13" /> <combo_box.item label="Inna" name="item12" /> </combo_box> - <check_box label="Treść Moderate" name="MatureCheck" /> + <check_box label="Treść Moderate" name="MatureCheck"/> <text name="Snapshot:"> Zdjęcie: </text> <texture_picker name="snapshot_ctrl" tool_tip="Kliknij by wybrać zdjęcie" /> - <text name="allow_label5"> + <text name="allow_see_label"> Awatary na innych działkach mogą rozmawiać/widzieć awatary na tej działce </text> - <check_box name="SeeAvatarsCheck" tool_tip="Pozwala Rezydentom z innych działek widzieć i rozmawiać z Rezydentami na tej działce - oraz Tobie, widzieć ich i rozmawiać z nimi." /> + <check_box label="Widzieć awatary" name="SeeAvatarsCheck" tool_tip="Pozwala Rezydentom z innych działek widzieć i rozmawiać z Rezydentami na tej działce - oraz Tobie, widzieć ich i rozmawiać z nimi." /> <text name="landing_point"> Punkt Lądowania: [LANDING] </text> <button label="Ustaw" label_selected="Ustaw" name="Set" tool_tip="Ustal miejsce lądowania dla przybywających gości. Używa położenia Twojego awatara na tej działce." /> - <button label="Wyczyść" label_selected="Wyczyść" name="Clear" tool_tip="Usuń dotychczasowe miejsce lądowania" /> + <button label="Wyczyść" label_selected="Wyczyść" name="Clear" tool_tip="Usuń dotychczasowe miejsce lądowania." /> <text name="Teleport Routing: "> Trasa teleportacji: </text> - <combo_box name="landing type" tool_tip="Trasa teleportacji - ustaw w jaki sposób będzie się odbywać proces teleportacji na działce"> + <combo_box name="landing type" tool_tip="Trasa teleportacji - ustaw w jaki sposób będzie się odbywać proces teleportacji na działce."> <combo_box.item label="Zablokowana" name="Blocked" /> <combo_box.item label="Punkt Lądowania" name="LandingPoint" /> <combo_box.item label="Gdziekolwiek" name="Anywhere" /> @@ -345,18 +345,18 @@ Jedynie większe działki mogą być umieszczone w bazie wyszukiwarki. Obiekty używające tej tekstury będą wyświetlały film lub stronę internetową po naciśnięciu przycisku odtwarzania. Wybierz miniaturę, jeśli chcesz zmienić teksturę. </text> <check_box label="Skaluj automatycznie" name="media_auto_scale" tool_tip="Wybranie tej opcji dobierze rozmiar zawartości mediów dla tej działki automatycznie. Może to mieć znaczący wpływ na jakość odtwarzanego materiału - może on być odtwarzany wolniej i w gorszej jakości, ale żadne dalsze działania nie będą potrzebne." /> - <text name="media_size" tool_tip="Rozmiar dla ładowania mediów internetowych. Zostaw 0 dla ustawień domyślnych."> + <text name="media_size" tool_tip="Rozmiar dla przesyłanych 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." /> + <spinner name="media_size_width" tool_tip="Rozmiar dla przesyłanych mediów internetowych. Zostaw 0 dla ustawień domyślnych." /> + <spinner name="media_size_height" tool_tip="Rozmiar dla przesyłanych mediów internetowych. Zostaw 0 dla ustawień domyślnych." /> <text name="pixels"> pikseli </text> <text name="Options:"> Opcje: </text> - <check_box label="Odtwarzanie mediów w pętli" name="media_loop" tool_tip="Powtarzaj odtwarzanie mediów w pętli. Po wyświetleniu materiału odtwarzanie rozpocznie się od początku." /> + <check_box label="Odtwarzaj w pętli" name="media_loop" tool_tip="Powtarzaj odtwarzanie mediów w pętli. Po wyświetleniu materiału odtwarzanie rozpocznie się od początku." /> </panel> <panel label="DŹWIĘK" name="land_audio_panel"> <text name="MusicURL:"> @@ -377,6 +377,7 @@ Jedynie większe działki mogą być umieszczone w bazie wyszukiwarki. <check_box label="Rozmowy włączone" name="parcel_enable_voice_channel" /> <check_box label="Rozmowy włączone (ustawione przez Majątek)" name="parcel_enable_voice_channel_is_estate_disabled" /> <check_box label="Ogranicz komunikację głosową do obszaru tej działki" name="parcel_enable_voice_channel_local" /> + <check_box label="Ogranicz MOAP do obecnej działki" name="obscure_moap" tool_tip="Media na primach znajdujących się poza tą działką nie powinny odtwarzać się automatycznie dla rezydentów będących na niej - i odwrotnie." /> </panel> <panel label="DOSTĘP" name="land_access_panel"> <panel.string name="access_estate_defined"> @@ -385,13 +386,10 @@ Jedynie większe działki mogą być umieszczone w bazie wyszukiwarki. <panel.string name="estate_override"> Jedna lub więcej z tych opcji ustawiona jest z poziomu Majątku </panel.string> - <check_box name="public_access" label="Dostęp publiczny (brak zaznaczenia tej opcji = widoczne linie zakazu)" /> - <text name="Only Allow"> - Umożliwiaj dostęp tylko dla: - </text> - <check_box label="Rezydentów zarejestrowanych w systemie płatniczym Linden Lab [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Zbanuj Rezydentów niezarejestrowanych w systemie płatniczym Linden Lab. Odwiedź [SUPPORT_SITE], aby uzyskać więcej informacji." /> - <check_box label="Rezydentów, którzy mają 18+ lat [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Zbanuj Rezydetów, którzy mają mniej niż 18 lat. Odwiedź [SUPPORT_SITE], aby uzyskać więcej informacji." /> - <check_box label="Udostępnij wejście grupie [GROUP]" name="GroupCheck" tool_tip="Ustaw Grupę w głównej zakładce." /> + <check_box label="Każdy może odwiedzać (brak zaznaczenia = widoczne linie zakazu)" name="public_access" /> + <check_box label="Osoba musi mieć 18+ lat [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Zbanuj Rezydetów, którzy mają mniej niż 18 lat. Odwiedź [SUPPORT_SITE], aby uzyskać więcej informacji." /> + <check_box label="Osoba musi mieć dane płatnicze w systemie Linden Lab [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Zbanuj Rezydentów niezarejestrowanych w systemie płatniczym Linden Lab. Odwiedź [SUPPORT_SITE], aby uzyskać więcej informacji." /> + <check_box label="Umożliwiaj wejście bez ograniczeń grupie [GROUP]" name="GroupCheck" tool_tip="Ustaw Grupę w głównej zakładce." /> <check_box label="Sprzedaj przepustki:" name="PassCheck" tool_tip="Otwórz tymczasowy dostęp do tej działki" /> <combo_box name="pass_combo"> <combo_box.item label="Każdemu" name="Anyone" /> @@ -399,22 +397,32 @@ Jedynie większe działki mogą być umieszczone w bazie wyszukiwarki. </combo_box> <spinner label="Cena w L$:" name="PriceSpin" /> <spinner label="Godziny dostępu:" name="HoursSpin" /> - <panel name="Allowed_layout_panel"> - <text label="Zawsze Zezwalaj" name="AllowedText"> - Dozwoleni Rezydenci - </text> - <name_list name="AccessList" tool_tip="([LISTED] na liście, [MAX] maksimum)" /> - <button label="Dodaj" name="add_allowed" /> - <button label="Usuń" label_selected="Usuń" name="remove_allowed" /> - </panel> - <panel name="Banned_layout_panel"> - <text label="Banuj" name="BanCheck"> - Zbanowani Rezydenci - </text> - <name_list name="BannedList" tool_tip="([LISTED] na liście, [MAX] maksimum)" /> - <button label="Dodaj" name="add_banned" /> - <button label="Usuń" label_selected="Usuń" name="remove_banned" /> - </panel> + <text name="OwnerLimited"> + (właściciel Majątku może ograniczać te wybory) + </text> + <layout_stack name="access_stack"> + <layout_panel name="Allowed_layout_panel"> + <text label="Zawsze zezwalaj" name="AllowedText"> + Zawsze zezwalaj ([COUNT]/[MAX]) + </text> + <name_list name="AccessList" tool_tip="([LISTED] na liście, [MAX] maksimum)"/> + <button label="Dodaj" name="add_allowed"/> + <button label="Usuń" label_selected="Usuń" name="remove_allowed"/> + </layout_panel> + <layout_panel name="Banned_layout_panel"> + <text label="Banuj" name="BanCheck"> + Zbanowani ([COUNT]/[MAX]) + </text> + <name_list name="BannedList" tool_tip="([LISTED] na liście, [MAX] maksimum)"> + <columns label="Imię" name="name" /> + <columns label="Czas" name="duration" /> + </name_list> + <button label="Dodaj" name="add_banned"/> + <button label="Usuń" label_selected="Usuń" name="remove_banned"/> + </layout_panel> + </layout_stack> </panel> + <panel label="PRZYGODY" name="land_experiences_panel"/> + <panel label="OTOCZENIE" name="land_environment_panel" /> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_add_payment_method.xml b/indra/newview/skins/default/xui/pl/floater_add_payment_method.xml new file mode 100644 index 0000000000..2ef78d3d35 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_add_payment_method.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="floater_add_payment_method"> + <panel name="wrapper_panel"> + <text name="title_txt"> + Dodaj metodę płatności, aby kupić Lindeny i lepiej doświadczać Second Life. + </text> + <button label="Rozpocznij" name="continue_btn" /> + <button label="Później" name="close_btn" /> + <text name="image_left_desc"> + Stwórz awatara, którego pokochasz. Wybieraj spośród milionów sklepów i Second Life Marketplace. Twój styl jest tutaj. + </text> + <text name="image_center_desc"> + Wspieraj swoich ulubionych wykonawców i gospodarzy. Pomożesz im tworzyć wspaniałe doświadczenia. + </text> + <text name="image_right_desc"> + Stwórz dom swoich marzeń. Miliony przedmiotów dostępnych do kupienia mogą uczynić Twoje gniazdko wyjątkowym. + </text> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_adjust_environment.xml b/indra/newview/skins/default/xui/pl/floater_adjust_environment.xml new file mode 100644 index 0000000000..33dd99e491 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_adjust_environment.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="env_adjust_snapshot" title="Własne oświetlenie"> + <layout_stack name="outer_stack"> + <layout_panel name="env_controls"> + <layout_stack name="settings_stack"> + <layout_panel name="lp_1"> + <text name="ambient_lbl"> + Otoczenie: + </text> + <text name="blue_horizon_lbl"> + Hor. błękitu: + </text> + <text name="blue_density_lbl"> + Gęst. błękitu: + </text> + <button label="Reset" tool_tip="Zamknij i zresetuj do otoczenia współdzielonego" name="btn_reset" /> + <text name="sun_color_lbl"> + Kolor Słońca: + </text> + <text name="cloud_color_lbl"> + Kolor chmur: + </text> + <text name="cloud_map_label"> + Obraz chmur: + </text> + <text name="water_map_label"> + Obraz wody: + </text> + </layout_panel> + <layout_panel name="lp_2"> + <text name="haze_horizon_label"> + Horyzont mgły: + </text> + <text name="haze_density_label"> + Gęstość mgły: + </text> + <text name="cloud_coverage_label"> + Zachmurzenie: + </text> + <text name="cloud_scale_label"> + Rozmiar chmur: + </text> + <text name="scene_gamma_label"> + Gamma sceny: + </text> + </layout_panel> + <layout_panel name="lp_3"> + <text name="label"> + Słońce: + </text> + <text name="sun_azimuth_label"> + Azymut: + </text> + <text name="sun_elevation_label"> + Elewacja: + </text> + <check_box label="Pokaż emiter" name="sunbeacon" /> + <text name="scale_label"> + Rozmiar: + </text> + <text name="glow_focus_label"> + Ostrość blasku: + </text> + <text name="glow_size_label"> + Rozmiar blasku: + </text> + <text name="star_brightness_label"> + Jasność gwiazd: + </text> + </layout_panel> + <layout_panel name="lp_4"> + <text name="label"> + Księżyc: + </text> + <text name="moon_azimuth_label"> + Azymut: + </text> + <text name="moon_elevation_label"> + Elewacja: + </text> + <check_box label="Pokaż emiter" name="moonbeacon" /> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/pl/floater_animation_anim_preview.xml index ff2fee6f2f..c56f103d21 100644 --- a/indra/newview/skins/default/xui/pl/floater_animation_anim_preview.xml +++ b/indra/newview/skins/default/xui/pl/floater_animation_anim_preview.xml @@ -6,6 +6,6 @@ <text name="description_label"> Opis: </text> - <button label="Załaduj ([AMOUNT]L$)" name="ok_btn" /> + <button label="Prześlij ([AMOUNT]L$)" name="ok_btn" /> <button label="Anuluj" label_selected="Anuluj" name="cancel_btn" /> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/pl/floater_animation_bvh_preview.xml index 18212fad9c..63b0931b2b 100644 --- a/indra/newview/skins/default/xui/pl/floater_animation_bvh_preview.xml +++ b/indra/newview/skins/default/xui/pl/floater_animation_bvh_preview.xml @@ -173,6 +173,6 @@ Maksymalna długość pliku animacji wynosi [MAX_LENGTH] sekund. Nie można wczytać pliku animacji. Doradzamy eksport plików BVH z Poser 4. </text> - <button label="Załaduj ([AMOUNT]L$)" name="ok_btn" /> + <button label="Prześlij ([AMOUNT]L$)" name="ok_btn" /> <button label="Anuluj" name="cancel_btn" /> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_associate_listing.xml b/indra/newview/skins/default/xui/pl/floater_associate_listing.xml index b5464dd59b..7ef99457c9 100644 --- a/indra/newview/skins/default/xui/pl/floater_associate_listing.xml +++ b/indra/newview/skins/default/xui/pl/floater_associate_listing.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="associate listing" title="PRZYPISANE PRZEDMIOTY"> - <text name="message">ID przedmiotu:</text> +<floater name="associate listing" title="PRZYPISZ RZECZ"> + <text name="message">ID rzeczy:</text> <line_editor name="listing_id">Wpisz tutaj ID</line_editor> - <button label="OK" name="OK"/> <button label="Anuluj" name="Cancel"/> </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_avatar_render_settings.xml b/indra/newview/skins/default/xui/pl/floater_avatar_render_settings.xml new file mode 100644 index 0000000000..fcf39b94ff --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_avatar_render_settings.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<floater name="floater_avatar_render_settings" title="USTAWIENIA RENDEROWANIA AWATARÓW"> + <string name="av_never_render" value="Nigdy" /> + <string name="av_always_render" value="Zawsze" /> + <filter_editor label="Filtruj ludzi" name="people_filter_input" /> + <menu_button name="plus_btn" tool_tip="Działania na wybranej osobie" /> + <name_list name="render_settings_list"> + <name_list.columns label="Imię" name="name" /> + <name_list.columns label="Renderowanie" name="setting" /> + <name_list.columns label="Dodano" name="timestamp" /> + </name_list> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_ban_duration.xml b/indra/newview/skins/default/xui/pl/floater_ban_duration.xml new file mode 100644 index 0000000000..c4768960d3 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_ban_duration.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="ban_duration" title="Czas trwania bana"> + <text name="duration_textbox"> + Czas trwania bana: + </text> + <radio_group name="ban_duration_radio"> + <radio_item label="Na zawsze" name="always_radio"> + Na zawsze + </radio_item> + <radio_item label="Tymczasowo" name="temporary_radio"> + Tymczasowo + </radio_item> + </radio_group> + <text name="hours_textbox"> + godzin. + </text> + <button label="Anuluj" name="cancel_btn" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_camera_presets.xml b/indra/newview/skins/default/xui/pl/floater_camera_presets.xml new file mode 100644 index 0000000000..22b46f811f --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_camera_presets.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater title="USTAWIENIA KAMERY" name="floater_camera_presets" /> diff --git a/indra/newview/skins/default/xui/pl/floater_classified.xml b/indra/newview/skins/default/xui/pl/floater_classified.xml new file mode 100644 index 0000000000..3fa139983e --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_classified.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<floater name="floater_classified" title="REKLAMA" /> diff --git a/indra/newview/skins/default/xui/pl/floater_create_landmark.xml b/indra/newview/skins/default/xui/pl/floater_create_landmark.xml new file mode 100644 index 0000000000..aef0ba125f --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_create_landmark.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="create_landmark"> + <string name="favorites_bar"> + Pasek ulubionych + </string> + <text name="title_label" value="Dodany landmark" /> + <text name="name_label" value="Nazwa" /> + <text name="folder_label" value="Zapisz landmark w:" /> + <text name="new_folder_textbox"> + [secondlife:/// Stwórz nowy folder] + </text> + <text name="notes_label" value="Notatki" /> + <button label="Anuluj" name="cancel_btn" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_delete_pref_preset.xml b/indra/newview/skins/default/xui/pl/floater_delete_pref_preset.xml new file mode 100644 index 0000000000..f9d75ef39d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_delete_pref_preset.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<floater name="delete_pref_preset" title="USUŃ USTAWIENIE"> + <string name="title_graphic"> + Usuń ustawienie graficzne + </string> + <string name="title_camera"> + Usuń ustawienie kamery + </string> + <text name="Preset"> + Wybierz ustawienie + </text> + <button label="Usuń" name="delete" /> + <button label="Anuluj" name="cancel" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/pl/floater_edit_day_cycle.xml deleted file mode 100644 index 9d3a070191..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_edit_day_cycle.xml +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="Edit Day cycle" title="Edytuj cykl dnia"> - <string name="title_new"> - Stwórz nowy cykl dnia - </string> - <string name="title_edit"> - Edytuj cykl dnia - </string> - <string name="hint_new"> - Nazwij cykl dnia, ustaw co trzeba i kliknij na "Zapisz". - </string> - <string name="hint_edit"> - Aby edytować cykl dnia ustaw co trzeba i kliknij na "Zapisz". - </string> - <string name="combo_label"> - -Wybierz Ustawienie- - </string> - <text name="label"> - Nazwa: - </text> - <text name="note"> - Uwaga: jeśli zmienisz nazwę Ustawienia, to zaczniesz tworzyć nowe, a obecne pozostanie bez zmian. - </text> - <text name="hint_item1"> - - Kliknij na zakładce, aby edytować ust. nieba i czas. - </text> - <text name="hint_item2"> - - Klikaj i przeciągaj zakładki, aby ustawić czasy przejść. - </text> - <text name="hint_item3"> - - Użyj suwaka, aby podglądać cykl dnia. - </text> - <panel name="day_cycle_slider_panel"> - <button label="Dodaj zakł." label_selected="Dodaj zakł." name="WLAddKey" /> - <button label="Usuń zakł." label_selected="Usuń zakł." name="WLDeleteKey" /> - <text name="WL12am"> - 24:00 - </text> - <text name="WL3am"> - 3:00 - </text> - <text name="WL6am"> - 6:00 - </text> - <text name="WL9amHash"> - 9:00 - </text> - <text name="WL12pmHash"> - 12:00 - </text> - <text name="WL3pm"> - 15:00 - </text> - <text name="WL6pm"> - 18:00 - </text> - <text name="WL9pm"> - 21:00 - </text> - <text name="WL12am2"> - 24:00 - </text> - </panel> - <text name="WLCurKeyPresetText"> - Niebo: - </text> - <combo_box label="Ustawienie" name="WLSkyPresets" /> - <text name="WLCurKeyTimeText"> - Czas: - </text> - <time name="time" value="6:00" /> - <check_box label="Ustaw jako mój cykl dnia" name="make_default_cb" /> - <button label="Zapisz" name="save" /> - <button label="Anuluj" name="cancel" /> - </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_edit_ext_day_cycle.xml b/indra/newview/skins/default/xui/pl/floater_edit_ext_day_cycle.xml new file mode 100644 index 0000000000..3b85cbf26c --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_edit_ext_day_cycle.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="env_edit_extdaycycle" title="Edytuj cykl dnia"> + <string name="title_new">Stwórz nowy cykl dnia</string> + <string name="title_edit">Edytuj cykl dnia</string> + <string name="hint_new">Nazwij cykl dnia, ustaw co trzeba i kliknij na "Zapisz".</string> + <string name="hint_edit">Aby edytować cykl dnia ustaw co trzeba i kliknij na "Zapisz".</string> + <string name="sky_track_label">Niebo [ALT]</string> + <string name="sky_label">Niebo</string> + <string name="water_label">Woda</string> + <string name="commit_parcel">Zastosuj do działki</string> + <string name="commit_region">Zastosuj do regionu</string> + <layout_stack name="outer_stack"> + <layout_panel name="name_and_import"> + <text name="label"> + Nazwa cyklu dnia: + </text> + <button label="Importuj" name="btn_import" tool_tip="Zaimportuj starsze ustawienia z dysku." /> + </layout_panel> + <layout_panel name="content"> + <layout_stack name="content_stack"> + <layout_panel name="timeline_track_selection"> + <panel name="timeline_layers"> + <button label="Niebo 4" name="sky4_track" /> + <button label="Niebo 3" name="sky3_track" /> + <button label="Niebo 2" name="sky2_track" /> + <button label="Poziom ziemi" name="sky1_track" /> + <button label="Woda" name="water_track" /> + </panel> + <panel name="timeline"> + <layout_stack name="track_options_ls"> + <layout_panel name="track_options_lp"> + <button label="Klonuj ścieżkę z" name="copy_track" /> + <button label="Wczytaj ścieżkę z" name="load_track" /> + <button label="Czyść ścieżkę" name="clear_track" /> + </layout_panel> + <layout_panel name="track_progress_lp"> + <layout_stack name="progress_control"> + <layout_panel name="skip_back"> + <button name="skip_back_btn" tool_tip="Krok wstecz" /> + </layout_panel> + <layout_panel name="skip_forward"> + <button name="skip_forward_btn" tool_tip="Krok w przód" /> + </layout_panel> + </layout_stack> + </layout_panel> + <layout_panel name="frames_lp"> + <button label="Dodaj [FRAME]" name="add_frame" /> + <button label="Wczytaj [FRAME]" name="btn_load_frame" /> + <button label="Usuń [FRAME]" name="delete_frame" /> + </layout_panel> + </layout_stack> + </panel> + </layout_panel> + <layout_panel name="frame_edit_controls"> + <text name="icn_lock_edit"> + Wybierz klatkę kluczową z osi czasu, aby edytować ustawienia. + </text> + </layout_panel> + <layout_panel name="frame_settings_water"> + <tab_container name="water_tabs"> + <panel label="Woda" name="water_panel" /> + </tab_container> + </layout_panel> + <layout_panel name="frame_settings_sky"> + <tab_container name="sky_tabs"> + <panel label="Atmosfera i światła" name="atmosphere_panel" /> + <panel label="Chmury" name="clouds_panel" /> + <panel label="Słońce i Księżyc" name="moon_panel" /> + <!-- <panel label="Gęstość" name="density_panel" /> --> + </tab_container> + </layout_panel> + </layout_stack> + </layout_panel> + <layout_panel name="buttons"> + <button label="Zapisz" name="save_btn" /> + <button label="Anuluj" name="cancel_btn" /> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/pl/floater_edit_sky_preset.xml deleted file mode 100644 index 6a30ac4ed9..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_edit_sky_preset.xml +++ /dev/null @@ -1,123 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="Edit Sky Preset" title="Edytuj ustawienie nieba"> - <string name="title_new"> - Stwórz nowe Ustawienie nieba - </string> - <string name="title_edit"> - Edytuj Ustawienie nieba - </string> - <string name="hint_new"> - Nazwij Ustawienie, ustaw co trzeba i kliknij na "Zapisz". - </string> - <string name="hint_edit"> - Aby edytować Ustawienie ustaw co trzeba i kliknij na "Zapisz". - </string> - <string name="combo_label"> - -Wybierz Ustawienie- - </string> - <text name="hint"> - Aby edytować Ustawienie ustaw co trzeba i kliknij na "Zapisz". - </text> - <text name="label"> - Nazwa: - </text> - <text name="note"> - Uwaga: jeśli zmienisz nazwę Ustawienia, to zaczniesz tworzyć nowe, a obecne pozostanie bez zmian. - </text> - <tab_container name="WindLight Tabs"> - <panel label="ATMOSFERA" name="Atmosphere"> - <text name="BHText"> - Horyzont błękitu - </text> - <text name="BDensText"> - Horyzont mgły - </text> - <text name="BDensText2"> - Gęstość - </text> - <text name="HDText"> - Gęstość mgły - </text> - <text name="DensMultText"> - Mnożnik gęstości - </text> - <text name="WLDistanceMultText"> - Mnożnik odległości - </text> - <text name="MaxAltText"> - Maks. wysokość - </text> - </panel> - <panel label="OŚWIETLENIE" name="Lighting"> - <text name="SLCText"> - Kolor Słońca/Księżyca - </text> - <text name="WLAmbientText"> - Otoczenie - </text> - <text name="SunGlowText"> - Blask Słońca - </text> - <slider label="Skupienie" name="WLGlowB" /> - <slider label="Rozmiar" name="WLGlowR" /> - <text name="WLStarText"> - Jasność gwiazd - </text> - <text name="SceneGammaText"> - Gamma sceny - </text> - <text name="TODText"> - Poz. Słońca/Księżyca - </text> - <text name="WL12am"> - 24:00 - </text> - <text name="WL6am"> - 6:00 - </text> - <text name="WL12pmHash"> - 12:00 - </text> - <text name="WL6pm"> - 18:00 - </text> - <text name="WL12am2"> - 24:00 - </text> - <time name="WLDayTime" value="6:00" /> - <text name="WLEastAngleText"> - Kąt wschodu - </text> - </panel> - <panel label="CHMURY" name="Clouds"> - <text name="WLCloudColorText"> - Kolor chmur - </text> - <text name="WLCloudColorText2"> - Gęstość chmur XY - </text> - <slider label="G" name="WLCloudDensity" /> - <text name="WLCloudCoverageText"> - Zachmurzenie - </text> - <text name="WLCloudScaleText"> - Rozmiar chmur - </text> - <text name="WLCloudDetailText"> - Detale chmur (XY/Gęstość) - </text> - <slider label="G" name="WLCloudDetailDensity" /> - <text name="WLCloudScrollXText"> - Przesuwanie X - </text> - <check_box label="Blokada" name="WLCloudLockX" /> - <text name="WLCloudScrollYText"> - Przesuwanie Y - </text> - <check_box label="Blokada" name="WLCloudLockY" /> - </panel> - </tab_container> - <check_box label="Ustaw jako moje Ustawienie Nieba" name="make_default_cb" /> - <button label="Zapisz" name="save" /> - <button label="Anuluj" name="cancel" /> - </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/pl/floater_edit_water_preset.xml deleted file mode 100644 index fb3846cd21..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_edit_water_preset.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="Edit Water Preset" title="Edytuj ustawienie wody"> - <string name="title_new"> - Stwórz nowe Ustawienie wody - </string> - <string name="title_edit"> - Edytuj Ustawienie wody - </string> - <string name="hint_new"> - Nazwij Ustawienie, ustaw co trzeba i kliknij na "Zapisz". - </string> - <string name="hint_edit"> - Aby edytować Ustawienie ustaw co trzeba i kliknij na "Zapisz". - </string> - <string name="combo_label"> - -Wybierz Ustawienie- - </string> - <text name="hint"> - Aby edytować Ustawienie ustaw co trzeba i kliknij na "Zapisz". - </text> - <text name="label"> - Nazwa: - </text> - <text name="note"> - Uwaga: jeśli zmienisz nazwę Ustawienia, to zaczniesz tworzyć nowe, a obecne pozostanie bez zmian. - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - Kolor mgły wody - </text> - <text name="water_fog_density_label"> - Gęstość mgły - </text> - <text name="underwater_fog_modifier_label"> - Modyfikator mgły pod wodą - </text> - <text name="BHText"> - Kierunek Wielkiej Fali - </text> - <text name="BDensText"> - Skala odbicia falkowego - </text> - <text name="HDText"> - Skala Fresnela - </text> - <text name="FresnelOffsetText"> - Przesun. Fresnela - </text> - <text name="BHText2"> - Kierunek Małej Fali - </text> - <text name="DensMultText"> - Skala załamania ponad - </text> - <text name="WaterScaleBelowText"> - Skala załamania poniżej - </text> - <text name="MaxAltText"> - Mnożnik rozmycia - </text> - <text name="BHText3"> - Mapa normalnych - </text> - </panel> - <check_box label="Ustaw jako moje Ustawienie Wody" name="make_default_cb" /> - <button label="Zapisz" name="save" /> - <button label="Anuluj" name="cancel" /> - </floater> diff --git a/indra/newview/skins/default/xui/pl/floater_environment_settings.xml b/indra/newview/skins/default/xui/pl/floater_environment_settings.xml deleted file mode 100644 index 8a13ece8f5..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="Environment Editor Floater" title="USTAWIENIA OTOCZENIA"> - <text name="note"> - Użyj opcji poniżej, aby dostosować ustawienia otoczenia w swojej przeglądarce. - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="Użyj ustawień regionu" name="use_region_settings" /> - <radio_item label="Dostosuj otoczenie" name="use_my_settings" /> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - UWAGA: Twoje ustawienia będą niewidoczne dla innych. - </text> - <text name="water_settings_title"> - Ustaw. wody - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-Wybierz Ustawienie-" name="item0" /> - </combo_box> - <text name="sky_dayc_settings_title"> - Ustaw. nieba (stałe lub cykliczne): - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="Stałe" name="my_sky_settings" /> - <radio_item label="Cykl dnia" name="my_dayc_settings" /> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-Wybierz Ustawienie-" name="item0" /> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-Wybierz Ustawienie-" name="item0" /> - </combo_box> - </panel> - <button label="Gotowe" name="ok_btn" /> - <button label="Anuluj" name="cancel_btn" /> -</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_experience_search.xml b/indra/newview/skins/default/xui/pl/floater_experience_search.xml new file mode 100644 index 0000000000..44955e9e35 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_experience_search.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="experiencepicker" title="Wybierz Przygodę" /> diff --git a/indra/newview/skins/default/xui/pl/floater_experienceprofile.xml b/indra/newview/skins/default/xui/pl/floater_experienceprofile.xml new file mode 100644 index 0000000000..a9b24515e9 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_experienceprofile.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<floater name="experience_profile" title="Profil przygody"> + <floater.string name="empty_slurl"> + (brak) + </floater.string> + <text name="edit_title" value="Profil przygody" /> + <tab_container name="tab_container"> + <panel name="panel_experience_info"> + <scroll_container name="xp_scroll"> + <panel name="scrolling_panel"> + <layout_stack name="ls1"> + <layout_panel name="top panel"> + <button label="Edytuj" name="edit_btn" /> + </layout_panel> + <layout_panel name="maturity panel"> + <text name="ContentRating"> + Treści: + </text> + </layout_panel> + <layout_panel name="location panel"> + <text name="Location"> + Miejsce: + </text> + </layout_panel> + <layout_panel name="marketplace panel"> + <text name="Marketplace"> + Sklep Marketplace: + </text> + </layout_panel> + <layout_panel name="owner panel"> + <text name="Owner"> + Właściciel: + </text> + </layout_panel> + <layout_panel name="group_panel"> + <text name="Group"> + Grupa: + </text> + </layout_panel> + <layout_panel name="perm panel"> + <button label="Zezwól" name="allow_btn" /> + <button label="Zapomnij" name="forget_btn" /> + <button label="Zablokuj" name="block_btn" /> + <text name="privileged"> + Ta przygoda jest włączona dla wszystkich rezydentów. + </text> + <button width="100" left="104" label="Zgłoś nadużycie" name="report_btn" /> + </layout_panel> + </layout_stack> + </panel> + </scroll_container> + </panel> + <panel name="edit_panel_experience_info"> + <scroll_container name="edit_xp_scroll"> + <panel name="edit_scrolling_panel"> + <text name="edit_experience_title_label" value="Nazwa:" /> + <text name="edit_experience_desc_label" value="Opis:" /> + <button name="Group_btn" label="Grupa" /> + <text name="edit_ContentRating"> + Treści: + </text> + <icons_combo_box tool_tip="Zwiększenie poziomu limitu klasyfikacji treści dla przygody zresetuje zezwolenia wszystkim rezydentom, którzy zezwolili na nią." name="edit_ContentRatingText"> + <icons_combo_box.item label="Adult (dla dorosłych)" name="Adult" /> + <icons_combo_box.item label="Moderate (umiarkowane)" name="Mature" /> + <icons_combo_box.item label="General (dla wszystkich)" name="PG" /> + </icons_combo_box> + <text name="edit_Location"> + Miejsce: + </text> + <button name="location_btn" label="Ustaw na obecne" /> + <button name="clear_btn" label="Wyczyść" /> + <text name="edit_marketplace"> + Sklep Marketplace: + </text> + <check_box label="Aktywuj przygodę" name="edit_enable_btn" /> + <check_box label="Ukryj w wyszukiwarce" name="edit_private_btn" /> + <text name="changes" value="Może minąć kilka minut zanim zmiany w przygodzie staną się widoczne w regionach." /> + <button label="Wstecz" name="cancel_btn" /> + <button label="Zapisz" name="save_btn" /> + </panel> + </scroll_container> + </panel> + </tab_container> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_experiences.xml b/indra/newview/skins/default/xui/pl/floater_experiences.xml new file mode 100644 index 0000000000..8dab8adb61 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_experiences.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<floater name="floater_experiences" title="Przygody"/> diff --git a/indra/newview/skins/default/xui/pl/floater_facebook.xml b/indra/newview/skins/default/xui/pl/floater_facebook.xml deleted file mode 100644 index 588285ea7b..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> -<floater name="floater_facebook" title="WYŚLIJ NA FACEBOOKA"> - <tab_container name="tabs"> - <panel label="ZDJĘCIE" name="panel_facebook_photo" /> - <panel label="MIEJSCE" name="panel_facebook_place" /> - <panel label="ZNAJOMI" name="panel_facebook_friends" /> - <panel label="KONTO" name="panel_facebook_account" /> - </tab_container> - <text name="connection_error_text"> - Błąd - </text> - <text name="connection_loading_text"> - Ładowanie... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_fixedenvironment.xml b/indra/newview/skins/default/xui/pl/floater_fixedenvironment.xml new file mode 100644 index 0000000000..dd5fa4c5d4 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_fixedenvironment.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="Fixed Environment" title="Stałe otoczenie"> + <string name="edit_sky"> + Edytuj niebo: + </string> + <string name="edit_water"> + Edytuj wodę: + </string> + <layout_stack name="floater_stack"> + <layout_panel name="info_panel"> + <text name="info_panel_label"> + Nazwa: + </text> + <button label="Wczytaj" name="btn_load" tool_tip="Wczytaj ustawienia z szafy" /> + <button label="Importuj" name="btn_import" tool_tip="Zaimportuj starsze ustawienia z dysku." /> + </layout_panel> + <layout_panel name="button_panel"> + <layout_stack name="button_bar_ls"> + <layout_panel name="save_btn_lp"> + <button label="Zapisz" name="btn_commit" /> + </layout_panel> + <layout_panel name="revert_btn_lp"> + <button label="Anuluj" name="btn_cancel" tool_tip="Przywróć ostatnią zapisaną wersję" /> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_flickr.xml b/indra/newview/skins/default/xui/pl/floater_flickr.xml deleted file mode 100644 index 9522695e3c..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> -<floater name="floater_flickr" title="WYŚLIJ NA FLICKR"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="ZDJĘCIE" name="panel_flickr_photo" /> - <panel label="KONTO" name="panel_flickr_account" /> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - Błąd - </text> - <text name="connection_loading_text"> - Ładowanie... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_forget_user.xml b/indra/newview/skins/default/xui/pl/floater_forget_user.xml new file mode 100644 index 0000000000..149342ef6f --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_forget_user.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="groups" title="ZAPAMIĘTANI UŻYTKOWNICY"> + <button label="Zapomnij" label_selected="Zapomnij" name="forget" /> + <check_box label="Usuń także dane lokalne tego użytkownika" name="delete_data" tool_tip="Usuwa lokalne pliki: historia czatu, zrzut ekranu z ostatniej sesji, pliki cookie przeglądarki, historia teleportacji, ustawienia paska narzędzi itp. Niektóre pliki lokalne są współdzielone pomiędzy światami."/> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml deleted file mode 100644 index e908e30705..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="Hardware Settings Floater" title="USTAWIENIA SPRZĘTOWE"> - <text name="Filtering:"> - Filtrowanie: - </text> - <check_box label="Filtr anizotropowy (wolniej!)" name="ani" /> - <text name="Antialiasing:"> - Antyaliasing: - </text> - <combo_box label="Antyaliasing" name="fsaa"> - <combo_box.item label="Wyłączony" name="FSAADisabled" /> - </combo_box> - <text name="antialiasing restart"> - (Restart wymagany) - </text> - <text name="(brightness, lower is brighter)"> - (0 = domyślna jasność, niżej = jaśniej) - </text> - <text name="Enable VBO:"> - Włącz VBO: - </text> - <check_box label="Włącz OpenGL VBO" name="vbo" tool_tip="OpenGL Vertex Buffer Object (opis geometrii obiektów). Włączenie tej opcji na nowoczesnym sprzęcie spowoduje wzrost wydajności. Starszy sprzęt jednak ma często słabe wsparcie dla VBO i mogą wystąpić na nim awarie." /> - <text name="tc label"> - Włącz S3TC: - </text> - <check_box label="Włącz kompresję tekstur (wymaga restartu)" name="texture compression" tool_tip="Kompresuje tekstury w pamięci wideo. Umożliwi to ładowanie tekstur w wyższej rozdzielczości / większej ich ilości, ale kosztem jakości obrazu." /> - <slider label="Bufor pamięci tekstur (MB):" name="GraphicsCardTextureMemory" tool_tip="Ilość pamięci przeznaczona na tekstury. Domyślnie jest to maksymalna wielkość pamięci karty graficznej, ale nie więcej niż 512 MB. Zmniejszenie tej wartości może spowodować wzrost wydajności, ale tekstury będą bardziej rozmazane. Zwiększanie tej wartości ponad 512 MB nie jest wskazane nawet, jeśli Twoja karta to obsługuje - ogólna wydajność Przeglądarki związana z pamięcią operacyjną widocznie spadnie." /> - <spinner label="Stosunek odległości dla mgły:" name="fog" /> -</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_linkreplace.xml b/indra/newview/skins/default/xui/pl/floater_linkreplace.xml new file mode 100644 index 0000000000..c17e76eafa --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_linkreplace.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="linkreplace" title="ZASTĄP LINKI W SZAFIE"> + <string name="Ready"> + Gotowy... + </string> + <string name="TargetNotFound"> + Obiekt docelowy nie został znaleziony. + </string> + <string name="ItemsIdentical"> + Obiekty źródłowy i docelowy są identyczne. + </string> + <string name="ItemsFound"> + Znaleziono [NUM] linków w Szafie. + </string> + <string name="ItemsRemaining"> + Linków pozostało: [NUM] + </string> + <string name="ReplaceFinished"> + Zakończono zastępowanie linków. + </string> + <text name="source_label"> + Stary: + </text> + <inventory_link_replace_drop_target name="source_uuid_editor" tool_tip="Przeciągnij i upuść tutaj przedmiot, którego linki chcesz zastąpić." /> + <text name="target_label"> + Nowy: + </text> + <inventory_link_replace_drop_target name="target_uuid_editor" tool_tip="Przeciągnij i upuść tutaj przedmiot, którego linki zastąpią linki do przedmiotu pierwotnego." /> + <text name="status_text"> + Gotowy... + </text> + <button name="btn_refresh" label="Odśwież" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_load_pref_preset.xml b/indra/newview/skins/default/xui/pl/floater_load_pref_preset.xml new file mode 100644 index 0000000000..f9fe6d9ebe --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_load_pref_preset.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" ?> +<floater name="load_pref_preset" title="WCZYTAJ USTAWIENIE"> + <string name="title_graphic"> + Wczytaj ustawienie graficzne + </string> + <string name="title_camera"> + Wczytaj ustawienie kamery + </string> + <text name="Preset"> + Wybierz ustawienie + </text> + <button label="Anuluj" name="cancel" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_mfa.xml b/indra/newview/skins/default/xui/pl/floater_mfa.xml new file mode 100644 index 0000000000..bef6810007 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_mfa.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater title="Wymagany token MFA" name="mfa_challenge"> + <text name="token_prompt_text"> + token + </text> + <button label="Kontynuuj" name="continue_btn" /> + <button label="Anuluj" name="cancel_btn" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_my_environments.xml b/indra/newview/skins/default/xui/pl/floater_my_environments.xml new file mode 100644 index 0000000000..3b64cb42e6 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_my_environments.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<floater name="my_environments" title="MOJE OTOCZENIA" label="Miejsca"> + <layout_stack name="main_layout"> + <layout_panel name="filter_panel" label="Filtr"> + <check_box label="Dzień" name="chk_days" /> + <check_box label="Niebo" name="chk_skies" /> + <check_box label="Woda" name="chk_water" /> + <filter_editor label="Filtruj otoczenia" name="flt_search" /> + </layout_panel> + <layout_panel name="list_panel" label="Otoczenia" /> + <layout_panel name="lp_showfolders"> + <check_box label="Wszystkie foldery" name="chk_showfolders" /> + </layout_panel> + <layout_panel name="pnl_control"> + <panel name="pnl_bottom"> + <menu_button name="btn_gear" tool_tip="Więcej opcji" /> + <menu_button name="btn_newsettings" tool_tip="Stwórz nowe ustawienie" /> + <button name="btn_del" tool_tip="Usuń wybrany element" /> + </panel> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_my_scripts.xml b/indra/newview/skins/default/xui/pl/floater_my_scripts.xml new file mode 100644 index 0000000000..b83a34ec5b --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_my_scripts.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="myscripts" title="SKRYPTY" /> diff --git a/indra/newview/skins/default/xui/pl/floater_notifications_tabbed.xml b/indra/newview/skins/default/xui/pl/floater_notifications_tabbed.xml new file mode 100644 index 0000000000..a02666b6a1 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_notifications_tabbed.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_notifications_tabbed" title="POWIADOMIENIA"> + <floater.string name="system_tab_title"> + Systemowe ([COUNT]) + </floater.string> + <floater.string name="transactions_tab_title"> + Transakcje ([COUNT]) + </floater.string> + <floater.string name="group_invitations_tab_title"> + Zaproszenia ([COUNT]) + </floater.string> + <floater.string name="group_notices_tab_title"> + Grupowe ([COUNT]) + </floater.string> + <string name="title_notification_tabbed_window"> + Powiadomienia + </string> + <layout_stack name="TabButtonsStack"> + <layout_panel name="TabButtonsLayoutPanel"> + <tab_container name="notifications_tab_container"> + <panel label="Systemowe (0)" name="system_notification_list_tab" /> + <panel label="Transakcje (0)" name="transaction_notifications_tab" /> + <panel label="Zaproszenia (0)" name="group_invite_notifications_tab" /> + <panel label="Grupowe (0)" name="group_notice_notifications_tab" /> + </tab_container> + <layout_stack name="ButtonsStack"> + <layout_panel name="CondenseAllButtonPanel"> + <button label="Zwiń wszystkie" name="collapse_all_button" /> + </layout_panel> + <layout_panel name="DeleteAllButtonPanel"> + <button label="Usuń wszystkie" name="delete_all_button" /> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_outfit_photo_preview.xml b/indra/newview/skins/default/xui/pl/floater_outfit_photo_preview.xml new file mode 100644 index 0000000000..8c7de8e34e --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_outfit_photo_preview.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="outfit_photo_preview"> + <floater.string name="Title"> + Tekstura: [NAME] + </floater.string> + <floater.string name="exceed_limits"> + Maks. rozmiar zdjęcia stroju to [MAX_WIDTH]*[MAX_HEIGHT]. Wybierz inną teksturę. + </floater.string> + <floater.string name="photo_confirmation"> + Ustawić to zdjęcie dla stroju [OUTFIT]? + </floater.string> + <button label="Anuluj" name="cancel_btn" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_pick_track.xml b/indra/newview/skins/default/xui/pl/floater_pick_track.xml new file mode 100644 index 0000000000..a0150e67ea --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_pick_track.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="track picker" title="WYBIERZ ŚCIEŻKĘ"> + <layout_stack name="adjuster"> + <layout_panel name="pnl_desc"> + <text name="select_description"> + Wybierz niebo: + </text> + </layout_panel> + <layout_panel name="pnl_traks"> + <radio_group name="track_selection"> + <radio_item label="Niebo4 [ALT]" name="radio_sky4" /> + <radio_item label="Niebo3 [ALT]" name="radio_sky3" /> + <radio_item label="Niebo2 [ALT]" name="radio_sky2" /> + <radio_item label="Ziemia" name="radio_sky1" /> + </radio_group> + </layout_panel> + <layout_panel name="pnl_ok_cancel"> + <button label="Anuluj" label_selected="Anuluj" name="btn_cancel" /> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/pl/floater_preferences_graphics_advanced.xml new file mode 100644 index 0000000000..eb1411cd42 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_preferences_graphics_advanced.xml @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="prefs_graphics_advanced" title="ZAAWANSOWANE USTAWIENIA GRAFICZNE"> + <text name="GeneralText"> + Ogólne + </text> + <slider label="Pole widzenia:" name="DrawDistance" /> + <slider label="Maks. ilość cząsteczek:" name="MaxParticleCount" /> + <slider label="Jakość post-procesu:" name="RenderPostProcess" /> + <text name="PostProcessText"> + Niska + </text> + <check_box label="Włącz VSync" name="vsync" tool_tip="Synchronizuje liczbę klatek na sekundę z częstotliwością odświeżania monitora, może skutkować zmniejszeniem widocznej płynności i opóźnieniami." /> + <text name="AvatarText"> + Awatar + </text> + <slider tool_tip="Kontroluje w jakim momencie awatar, który jest graficznie złożony zostanie zastąpiony przez mniej obciążającą komputer formę (tzw. JellyDoll)" label="Maks. szczegółowość awatarów:" name="IndirectMaxComplexity" /> + <slider label="Maks. il. wyświetlanych awatarów:" name="IndirectMaxNonImpostors" /> + <slider label="Detale:" name="AvatarMeshDetail" /> + <text name="AvatarMeshDetailText"> + Mało + </text> + <slider label="Fizyka:" name="AvatarPhysicsDetail" /> + <text name="AvatarPhysicsDetailText"> + Mało + </text> + <text name="HardwareText"> + Sprzętowe + </text> + <slider label="Bufor pamięci tekstur (MB):" name="GraphicsCardTextureMemory" tool_tip="Ilość pamięci przeznaczona na tekstury. Domyślnie jest to maksymalna wielkość pamięci karty graficznej, ale nie więcej niż 512 MB na systemach 32 bitowych lub 2048 MB na 64 bitowych. Zmniejszenie tej wartości może spowodować wzrost wydajności, ale tekstury będą bardziej rozmazane." /> + <slider label="Stosunek odległości dla mgły:" name="fog" /> + <text name="(brightness, lower is brighter)"> + (0 = domyślna jasność, niżej = jaśniej) + </text> + <check_box label="Filtrowanie anizotropowe (wolniej, gdy włączone)" name="ani" /> + <check_box label="Włącz stratną kompresję tekstur (wymaga restartu)" name="texture compression" tool_tip="Kompresuje tekstury w pamięci wideo. Umożliwi to ładowanie tekstur w wyższej rozdzielczości / większej ich ilości, ale kosztem jakości obrazu." /> + <check_box label="Włącz wsparcie dla ekranów HiDPI (wymaga restartu)" name="use HiDPI" tool_tip="Włącz funkcje OpenGL dla rysowania w wysokich rozdzielczościach." /> + <text name="antialiasing label"> + Antyaliasing: + </text> + <combo_box label="Antyaliasing" name="fsaa"> + <combo_box.item label="Wyłączony" name="FSAADisabled" /> + </combo_box> + <text name="antialiasing restart"> + (wymaga restartu) + </text> + <text name="MeshText"> + Mesz + </text> + <slider label="Szczegóły terenu:" name="TerrainMeshDetail" /> + <text name="TerrainMeshDetailText"> + Mało + </text> + <slider label="Drzewa:" name="TreeMeshDetail" /> + <text name="TreeMeshDetailText"> + Mało + </text> + <slider label="Obiekty i skulpty:" name="ObjectMeshDetail" /> + <text name="ObjectMeshDetailText"> + Mało + </text> + <slider label="Obiekty elastyczne:" name="FlexibleMeshDetail" /> + <text name="FlexibleMeshDetailText"> + Mało + </text> + <text name="ShadersText"> + Cieniowanie + </text> + <check_box label="Przezroczysta woda" name="TransparentWater" /> + <check_box label="Mapping wypukłości i połysk" name="BumpShiny" /> + <check_box label="Lokalne światła" name="LocalLights" /> + <slider label="Szczegóły terenu:" name="TerrainDetail" /> + <text name="TerrainDetailText"> + Mało + </text> + <check_box label="Elastyczne tkaniny ubrań" name="AvatarCloth" /> + <text name="ReflectionsText"> + Odbicia w wodzie: + </text> + <combo_box name="Reflections"> + <combo_box.item label="Żadne; nieprzezroczyste" name="-2" /> + <combo_box.item label="Żadne; przezroczyste" name="-1" /> + <combo_box.item label="Minimalne" name="0" /> + <combo_box.item label="Teren i drzewa" name="1" /> + <combo_box.item label="Wszystkie obiekty statyczne" name="2" /> + <combo_box.item label="Wszystkie awatary i obiekty" name="3" /> + <combo_box.item label="Wszystko" name="4" /> + </combo_box> + <check_box label="Shadery atmosfery" name="WindLightUseAtmosShaders" /> + <slider label="Niebo:" name="SkyMeshDetail" /> + <text name="SkyMeshDetailText"> + Nisko + </text> + <check_box label="Zaawansowane oświetlenie" name="UseLightShaders" /> + <check_box label="Okluzja otoczenia" name="UseSSAO" /> + <check_box label="Włącz głębię ostrości" name="UseDoF" /> + <check_box label="Zaawansowana atmosfera" name="UseAdvancedAtmo" /> + <text name="RenderShadowDetailText"> + Cienie: + </text> + <combo_box name="ShadowDetail"> + <combo_box.item label="Brak" name="0" /> + <combo_box.item label="Słońce/Księżyc" name="1" /> + <combo_box.item label="Słońce/Księżyc + inne źródła" name="2" /> + </combo_box> + <button label="Zresetuj wartości ustawień grafiki" name="Defaults" /> + <button label="Anuluj" label_selected="Anuluj" name="Cancel" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_preferences_view_advanced.xml b/indra/newview/skins/default/xui/pl/floater_preferences_view_advanced.xml new file mode 100644 index 0000000000..e2e9cba33a --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_preferences_view_advanced.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="floaterpreferencesviewadvanced" title="POZYCJA KAMERY"> + <text name="camera_offset_lbl"> + Przesun. kamery: + </text> + <text name="focus_offset_lbl"> + Przesun. ostrości: + </text> + <text name="offset_scale_lbl"> + Skala przesunięcia kamery: + </text> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_preview_trash.xml b/indra/newview/skins/default/xui/pl/floater_preview_trash.xml new file mode 100644 index 0000000000..4f535e0546 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_preview_trash.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="floater_preview_trash" title="KOSZ"> + <layout_stack name="button_panel_ls"> + <layout_panel name="empty_btn_lp"> + <button label="Opróżnij kosz" name="empty_btn" /> + </layout_panel> + <layout_panel name="share_btn_lp"> + <button label="Anuluj" name="cancel_btn" /> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_profile.xml b/indra/newview/skins/default/xui/pl/floater_profile.xml new file mode 100644 index 0000000000..4992bb2312 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_profile.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="avatarinfo" title="Profil"> + <panel name="panel_profile_view"> + <tab_container name="panel_profile_tabs"> + <panel name="panel_profile_secondlife" label="REZYDENT" /> + <panel name="panel_profile_web" label="SIEĆ" /> + <panel name="panel_profile_picks" label="MIEJSCA" /> + <panel name="panel_profile_classifieds" label="REKLAMY" /> + <panel name="panel_profile_firstlife" label="WIĘCEJ" /> + <panel name="panel_profile_notes" label="NOTATKI" /> + </tab_container> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_profile_permissions.xml b/indra/newview/skins/default/xui/pl/floater_profile_permissions.xml new file mode 100644 index 0000000000..140f688cb1 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_profile_permissions.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="profile_permissions"> + <string name="description_string" value="Zezwól [AGENT_NAME] na:" /> + <text name="perm_description" value="Zezwól tej osobie:" /> + <check_box name="online_check" label="Widzieć gdy jestem online" /> + <check_box name="map_check" label="Znajdować mnie na mapie" /> + <check_box name="objects_check" label="Edytować, usuwać lub zabierać moje obiekty" /> + <button name="perms_btn_cancel" label="Anuluj" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_profile_texture.xml b/indra/newview/skins/default/xui/pl/floater_profile_texture.xml new file mode 100644 index 0000000000..ad1d9a6305 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_profile_texture.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="profile_texture"> + <layout_stack name="preview_stack"> + <layout_panel name="buttons_panel"> + <layout_stack name="buttons_stack"> + <layout_panel name="close_panel"> + <button label="Zamknij" name="close_btn" /> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_save_camera_preset.xml b/indra/newview/skins/default/xui/pl/floater_save_camera_preset.xml new file mode 100644 index 0000000000..0fbd377139 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_save_camera_preset.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<floater name="save_camera_preset" title="Zapisz ustawienie kamery"> + <string name="btn_label_save"> + Zapisz + </string> + <string name="btn_label_replace"> + Zastąp + </string> + <radio_group name="radio_save_preset"> + <radio_item label="Zapisz jako nowe ustawienie" name="new_preset" /> + <radio_item label="Zastąp ustawienie" name="replace_preset" /> + </radio_group> + <button label="Zapisz" name="save" /> + <button label="Anuluj" name="cancel" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_save_pref_preset.xml b/indra/newview/skins/default/xui/pl/floater_save_pref_preset.xml new file mode 100644 index 0000000000..54841442dd --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_save_pref_preset.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<floater name="save_pref_preset" title="Zapisz ustawienie graficzne"> + <text name="Preset"> + Wpisz nazwę ustawienia lub wybierz już istniejące. + </text> + <button label="Zapisz" name="save" /> + <button label="Anuluj" name="cancel" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_settings_picker.xml b/indra/newview/skins/default/xui/pl/floater_settings_picker.xml new file mode 100644 index 0000000000..8f64d70fab --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_settings_picker.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="settings picker" title="WYBÓR OTOCZENIA"> + <floater.string name="pick title"> + Wybierz: + </floater.string> + <floater.string name="pick_track"> + WYBÓR ŚCIEŻKI + </floater.string> + <floater.string name="pick_settings"> + WYBÓR OTOCZENIA + </floater.string> + <floater.string name="track_water"> + Woda + </floater.string> + <floater.string name="track_ground"> + Ziemia + </floater.string> + <floater.string name="track_sky"> + Niebo[NUM] + </floater.string> + <layout_stack name="test_stack"> + <layout_panel name="inv_list"> + <filter_editor label="Filtruj otoczenia" name="flt_inventory_search" /> + </layout_panel> + <layout_panel name="temp"> + <button label="Anuluj" label_selected="Anuluj" name="btn_cancel" /> + </layout_panel> + </layout_stack> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_simple_outfit_snapshot.xml b/indra/newview/skins/default/xui/pl/floater_simple_outfit_snapshot.xml new file mode 100644 index 0000000000..1a60b557b2 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/floater_simple_outfit_snapshot.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater name="simple_outfit_snapshot" title="ZDJĘCIE STROJU"> + <button label="Zrób zdjęcie" name="new_snapshot_btn" /> + <button label="Zapisz ([UPLOAD_COST]L$)" name="save_btn" /> + <button label="Anuluj" name="cancel_btn" /> +</floater> diff --git a/indra/newview/skins/default/xui/pl/floater_twitter.xml b/indra/newview/skins/default/xui/pl/floater_twitter.xml deleted file mode 100644 index 2e228041ab..0000000000 --- a/indra/newview/skins/default/xui/pl/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> -<floater name="floater_twitter"> - <tab_container name="tabs"> - <panel label="UTWÓRZ" name="panel_twitter_photo" /> - <panel label="KONTO" name="panel_twitter_account" /> - </tab_container> - <text name="connection_error_text"> - Błąd - </text> - <text name="connection_loading_text"> - Ładowanie... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/pl/menu_avatar_rendering_settings.xml b/indra/newview/skins/default/xui/pl/menu_avatar_rendering_settings.xml new file mode 100644 index 0000000000..4e10aa1155 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_avatar_rendering_settings.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<context_menu name="Settings"> + <menu_item_check label="Domyślne" name="default" /> + <menu_item_check label="Zawsze renderuj" name="always_render" /> + <menu_item_check label="Nigdy nie renderuj" name="never_render" /> +</context_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_avatar_rendering_settings_add.xml b/indra/newview/skins/default/xui/pl/menu_avatar_rendering_settings_add.xml new file mode 100644 index 0000000000..a4f72de93d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_avatar_rendering_settings_add.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="menu_settings_add.xml"> + <menu_item_call label="Zawsze renderuj rezydenta..." name="add_avatar_always_render" /> + <menu_item_call label="Nigdy nie renderuj rezydenta..." name="add_avatar_never_render" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_copy_paste_color.xml b/indra/newview/skins/default/xui/pl/menu_copy_paste_color.xml new file mode 100644 index 0000000000..cb7da5678d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_copy_paste_color.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Copy Paste Color Menu"> + <menu_item_call label="Kopiuj" name="params_copy" /> + <menu_item_call label="Wklej" name="params_paste" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_copy_paste_features.xml b/indra/newview/skins/default/xui/pl/menu_copy_paste_features.xml new file mode 100644 index 0000000000..d578f14a87 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_copy_paste_features.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Copy Paste Features Menu"> + <menu_item_call label="Kopiuj" name="params_copy" /> + <menu_item_call label="Wklej" name="params_paste" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_copy_paste_light.xml b/indra/newview/skins/default/xui/pl/menu_copy_paste_light.xml new file mode 100644 index 0000000000..7a94f0dbe9 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_copy_paste_light.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Copy Paste Light Menu"> + <menu_item_call label="Kopiuj" name="params_copy" /> + <menu_item_call label="Wklej" name="params_paste" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_copy_paste_object.xml b/indra/newview/skins/default/xui/pl/menu_copy_paste_object.xml new file mode 100644 index 0000000000..9d366c1e59 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_copy_paste_object.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Copy Paste Object Menu"> + <menu_item_call label="Kopiuj" name="params_copy" /> + <menu_item_call label="Wklej" name="params_paste" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_copy_paste_pos.xml b/indra/newview/skins/default/xui/pl/menu_copy_paste_pos.xml new file mode 100644 index 0000000000..3665c38f62 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_copy_paste_pos.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Copy Paste Position Menu"> + <menu_item_call label="Kopiuj wszystko" name="psr_copy" /> + <menu_item_call label="Kopiuj pozycję" name="pos_copy" /> + <menu_item_call label="Wklej wszystko" name="psr_paste" /> + <menu_item_call label="Wklej pozycję" name="pos_paste" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_copy_paste_rot.xml b/indra/newview/skins/default/xui/pl/menu_copy_paste_rot.xml new file mode 100644 index 0000000000..cee65d7db5 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_copy_paste_rot.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Copy Paste Rotation Menu"> + <menu_item_call label="Kopiuj wszystko" name="psr_copy" /> + <menu_item_call label="Wklej obrót" name="rot_copy" /> + <menu_item_call label="Wklej wszystko" name="psr_paste" /> + <menu_item_call label="Wklej obrót" name="rot_paste" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_copy_paste_size.xml b/indra/newview/skins/default/xui/pl/menu_copy_paste_size.xml new file mode 100644 index 0000000000..605eb69a72 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_copy_paste_size.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Copy Paste Size Menu"> + <menu_item_call label="Kopiuj wszystko" name="psr_copy" /> + <menu_item_call label="Wklej rozmiar" name="size_copy" /> + <menu_item_call label="Wklej wszystko" name="psr_paste" /> + <menu_item_call label="Wklej rozmiar" name="size_paste" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_copy_paste_texture.xml b/indra/newview/skins/default/xui/pl/menu_copy_paste_texture.xml new file mode 100644 index 0000000000..90444cdb0f --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_copy_paste_texture.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Copy Paste Texture Menu"> + <menu_item_call label="Kopiuj" name="params_copy" /> + <menu_item_call label="Wklej" name="params_paste" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_gallery_outfit_tab.xml b/indra/newview/skins/default/xui/pl/menu_gallery_outfit_tab.xml new file mode 100644 index 0000000000..56ee2f02d9 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_gallery_outfit_tab.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<context_menu name="Outfit"> + <menu_item_call label="Załóż - Zastąp obecny strój" name="wear_replace" /> + <menu_item_call label="Załóż - Dodaj do obecnego stroju" name="wear_add" /> + <menu_item_call label="Zdejmij - Usuń z obecnego stroju" name="take_off" /> + <menu_item_call label="Prześlij zdjęcie ([UPLOAD_COST] L$)" name="upload_photo" /> + <menu_item_call label="Wybierz zdjęcie" name="select_photo" /> + <menu_item_call label="Zrób zdjęcie" name="take_snapshot" /> + <menu_item_call label="Usuń zdjęcie" name="remove_photo" /> + <menu label="Nowe ubranie" name="New Clothes"> + <menu_item_call label="Nowa koszula" name="New Shirt"/> + <menu_item_call label="Nowe spodnie" name="New Pants"/> + <menu_item_call label="Nowe buty" name="New Shoes"/> + <menu_item_call label="Nowe skarpetki" name="New Socks"/> + <menu_item_call label="Nowa kurtka" name="New Jacket"/> + <menu_item_call label="Nowa spódnica" name="New Skirt"/> + <menu_item_call label="Nowe rękawiczki" name="New Gloves"/> + <menu_item_call label="Nowy podkoszulek" name="New Undershirt"/> + <menu_item_call label="Nowa bielizna" name="New Underpants"/> + <menu_item_call label="Nowa warstwa alpha" name="New Alpha"/> + <menu_item_call label="Nowa fizyka" name="New Physics"/> + <menu_item_call label="Nowy tatuaż" name="New Tattoo"/> + </menu> + <menu label="Nowe części ciała" name="New Body Parts"> + <menu_item_call label="Nowy kształt" name="New Shape"/> + <menu_item_call label="Nowa skórka" name="New Skin"/> + <menu_item_call label="Nowe włosy" name="New Hair"/> + <menu_item_call label="Nowe oczy" name="New Eyes"/> + </menu> + <menu_item_call label="Edytuj strój" name="edit" /> + <menu_item_call label="Zmień nazwę stroju" name="rename" /> + <menu_item_call label="Usuń strój" name="delete" /> +</context_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_inventory_search_visibility.xml b/indra/newview/skins/default/xui/pl/menu_inventory_search_visibility.xml new file mode 100644 index 0000000000..254c9acb4c --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_inventory_search_visibility.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="menu_search_visibility"> + <menu_item_check label="Szukaj w koszu" name="search_trash" /> + <menu_item_check label="Szukaj w Bibliotece" name="search_library" /> + <menu_item_check label="Uwzględniaj linki" name="include_links" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_places_gear_sorting.xml b/indra/newview/skins/default/xui/pl/menu_places_gear_sorting.xml new file mode 100644 index 0000000000..ccf4af7efb --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_places_gear_sorting.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="menu_sorter_gear"> + <menu_item_call label="Rozwiń wszystkie foldery" name="expand_all" /> + <menu_item_call label="Zwiń wszystkie foldery" name="collapse_all" /> + <menu_item_check label="Sortuj według daty" name="sort_by_date" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_profile_other.xml b/indra/newview/skins/default/xui/pl/menu_profile_other.xml new file mode 100644 index 0000000000..84ef54fc8f --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_profile_other.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Avatar Profile Menu"> + <menu_item_call label="Wiadomość IM" name="im" /> + <menu_item_call label="Proponuj teleport" name="offer_teleport" /> + <menu_item_call label="Poproś o teleport" name="request_teleport" /> + <menu_item_call label="Rozmowa głosowa" name="voice_call" /> + <menu_item_call label="Logi czatu..." name="chat_history" /> + <menu_item_call label="Dodaj do znajomych" name="add_friend" /> + <menu_item_call label="Usuń znajomego" name="remove_friend" /> + <menu_item_call label="Zaproś do grupy..." name="invite_to_group" /> + <menu_item_call label="Uprawnienia" name="agent_permissions" /> + <menu_item_call label="Mapa" name="map" /> + <menu_item_call label="Udostępnij" name="share" /> + <menu_item_call label="Zapłać" name="pay" /> + <menu_item_check label="Blokuj/Odblokuj" name="block_unblock" /> + <menu_item_call label="Kopiuj Wyświetlane Imię" name="copy_display_name" /> + <menu_item_call label="Kopiuj imię" name="copy_name" /> + <menu_item_call label="Kopiuj UUID" name="copy_id" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_profile_self.xml b/indra/newview/skins/default/xui/pl/menu_profile_self.xml new file mode 100644 index 0000000000..1da838fafd --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_profile_self.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="Avatar Profile Menu Self"> + <menu_item_call label="Edytuj Wyświetlane Imię" name="edit_display_name" /> + <menu_item_call label="Edytuj partnera" name="edit_partner" /> + <menu_item_call label="Prześlij obraz" name="upload_photo" /> + <menu_item_call label="Zmień obraz" name="change_photo" /> + <menu_item_call label="Usuń obraz" name="remove_photo" /> + <menu_item_call label="Kopiuj Wyświetlane Imię" name="copy_display_name" /> + <menu_item_call label="Kopiuj imię" name="copy_name" /> + <menu_item_call label="Kopiuj UUID" name="copy_id" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_save_settings.xml b/indra/newview/skins/default/xui/pl/menu_save_settings.xml new file mode 100644 index 0000000000..918fc75184 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_save_settings.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="save_settings_menu"> + <menu_item_check name="save_settings" label="Zapisz" /> + <menu_item_check name="save_as_new_settings" label="Zapisz jako" /> + <menu_item_check name="commit_changes" label="Zastosuj" /> + <menu_item_check name="apply_local" label="Stosuj tylko dla mnie" /> + <menu_item_check name="apply_parcel" label="Stosuj dla działki" /> + <menu_item_check name="apply_region" label="Stosuj dla regionu" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_settings_add.xml b/indra/newview/skins/default/xui/pl/menu_settings_add.xml new file mode 100644 index 0000000000..6cb3a68898 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_settings_add.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="menu_settings_add"> + <menu_item_call label="Nowe niebo" name="New Sky" /> + <menu_item_call label="Nowa woda" name="New Water" /> + <menu_item_call label="Nowy cykl dnia" name="New Day Cycle" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_settings_gear.xml b/indra/newview/skins/default/xui/pl/menu_settings_gear.xml new file mode 100644 index 0000000000..a002d3c236 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_settings_gear.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu name="menu_settings_gear"> + <menu_item_call label="Edycja" name="edit_settings" /> + <menu_item_call name="Settings Apply Local" label="Stosuj tylko dla mnie" /> + <menu_item_call name="Settings Apply Parcel" label="Stosuj dla działki" /> + <menu_item_call name="Settings Apply Region" label="Stosuj dla regionu" /> + <menu_item_call label="Kopiuj" name="copy_settings" /> + <menu_item_call label="Wklej" name="paste_settings" /> + <menu_item_call label="Kopiuj UUID" name="copy_uuid" /> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_url_email.xml b/indra/newview/skins/default/xui/pl/menu_url_email.xml new file mode 100644 index 0000000000..e2d1f8c8e3 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_url_email.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<context_menu name="Email Popup"> + <menu_item_call label="Utwórz nowego e-maila w zewnętrznym programie" name="email_open_external" /> + <menu_item_call label="Kopiuj e-mail do schowka" name="email_copy" /> +</context_menu> diff --git a/indra/newview/skins/default/xui/pl/menu_url_experience.xml b/indra/newview/skins/default/xui/pl/menu_url_experience.xml new file mode 100644 index 0000000000..747039e94d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/menu_url_experience.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<context_menu name="Url Popup"> + <menu_item_call label="Kopiuj SLurl do schowka" name="url_copy" /> +</context_menu> diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml index 87e318be1b..e668c6cc20 100644 --- a/indra/newview/skins/default/xui/pl/notifications.xml +++ b/indra/newview/skins/default/xui/pl/notifications.xml @@ -1,10 +1,14 @@ <?xml version="1.0" encoding="utf-8" ?> <notifications> <global name="skipnexttime"> - Nie pokazuj tego następnym razem + Nie pokazuj tego ponownie + </global> + <global name="skipnexttimesessiononly"> + Nie pokazuj tego ponownie +(dla obecnej sesji) </global> <global name="alwayschoose"> - Zawsze wybieraj tą opcję + Zawsze wybieraj tę opcję </global> <global name="implicitclosebutton"> Zamknij @@ -20,20 +24,25 @@ Szczegóły błędu: Błąd o nazwie '[_NAME]' nie został odnaleziony [CONTROLS] </notification> <notification name="TutorialNotFound"> - Brak samouczka na ten temat + Brak samouczka na ten temat. </notification> <notification name="GenericAlertYesCancel"> [MESSAGE] <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak" /> </notification> <notification name="BadInstallation"> - Podczas aktualizacji [APP_NAME] wystąpił błąd. Proszę [http://get.secondlife.com odwiedzić stronę] aby ściągnąć ostatnią wersję klienta. + Instalacja [APP_NAME] jest uszkodzona. Proszę [http://get.secondlife.com pobrać nową kopię] przeglądarki i ponownie ją zainstalować. </notification> <notification name="LoginFailedNoNetwork"> Nie można połączyć z [SECOND_LIFE_GRID]. '[DIAGNOSTIC]' Upewnij się, że Twoje połączenie z internetem działa. </notification> + <notification name="LoginFailedToParse"> + Przeglądarka otrzymała zniekształconą odpowiedź z serwera. Upewnij się, że połączenie internetowe działa prawidłowo i spróbuj ponownie później. + +Jeśli uważasz, że to błąd - skontaktuj się z pomocą techniczną. + </notification> <notification name="MessageTemplateNotFound"> Szablon komunikatu dla [PATH] nie został odnaleziony. </notification> @@ -72,11 +81,96 @@ Foldery nie zostały wysłane na Marketplace z powodu błędu sieci lub systemu. Inicjalizacja Marketplace nieudana z powodu błędu sieci lub systemu. Spróbuj później. </notification> + <notification name="StockPasteFailed"> + Kopiowanie lub przeniesienie do folderu Magazynowego nie powiodło się: + +'[ERROR_CODE]' + </notification> + <notification name="MyOutfitsPasteFailed"> + Jeden lub więcej przedmiotów nie może być użyty w "Strojach" + </notification> + <notification name="MerchantPasteFailed"> + Kopiowanie lub przenoszenie przedmiotów na Marketplace nie powiodło się: + +'[ERROR_CODE]' + </notification> + <notification name="MerchantTransactionFailed"> + Transakcja z Marketplace nie powiodła się: + +[ERROR_REASON][ERROR_DESCRIPTION] + </notification> + <notification name="MerchantUnprocessableEntity"> + Wylistowanie tej rzeczy lub aktywowanie folderu z wersją nie było możliwe. Zazwyczaj jest to spowodowane brakującymi informacjami w formularzu z opisem przedmiotu, ale może to również wynikać z błędów w strukturze folderów. Zmień opis przedmiotu lub sprawdź foldery, aby znaleźć błędy. + </notification> + <notification name="MerchantListingFailed"> + Listowanie na Marketplace nie powiodło się: + + '[ERROR_CODE]' + </notification> + <notification name="MerchantFolderActivationFailed"> + Aktywacja tego folderu wersji nie powiodła się: + + '[ERROR_CODE]' + </notification> + <notification name="MerchantForceValidateListing"> + Aby wylistowanie tej rzeczy było możliwe hierarchia w jej zawartości została automatycznie naprawiona. + <usetemplate ignoretext="Ostrzegaj, gdy wylistowanie rzeczy automatycznie naprawia hierarchię zawartości" name="okignore" /> + </notification> + <notification name="ConfirmMerchantActiveChange"> + Jeśli kontynuujesz, to zmieni się aktywna zawartość tej rzeczy. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź przed zmodyfikowaniem aktywnej rzeczy na Marketplace" name="okcancelignore" notext="Anuluj" /> + </notification> + <notification name="ConfirmMerchantMoveInventory"> + Przedmioty przeciągnięte do okna listowania na Marketplace są przenoszone z ich oryginalnych lokalizacji, a nie kopiowane. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź, zanim prześlę na Marketplace przedmiot z mojej Szafy" name="okcancelignore" notext="Anuluj" /> + </notification> + <notification name="ConfirmListingCutOrDelete"> + Przeniesienie lub usunięcie folderu usunie również Twój przedmiot na Marketplace. Jeśli chcesz, aby przedmiot był ciągle widoczny na Marketplace musisz przesunąć lub usunąć zawartość folderu z wersją, którą chcesz zmodyfikować. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź, zanim usunę lub przeniosę przedmiot z Marketplace" name="okcancelignore" notext="Anuluj" /> + </notification> + <notification name="ConfirmCopyToMarketplace"> + Nie masz praw do skopiowania jednego lub więcej obiektów na Marketplace. Możesz je przenieść lub pozostawić. + <usetemplate canceltext="Anuluj" ignoretext="Potwierdź, zanim wyślę na Marketplace przedmioty bez praw kopiowania" name="yesnocancelbuttons" notext="Nie przenoś" yestext="Przenieś"/> + </notification> + <notification name="ConfirmMerchantUnlist"> + Jeśli kontynuujesz, to ta rzecz zostanie usunięta z listy. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź, zanim usunę z listy rzecz na Marketplace" name="okcancelignore" notext="Anuluj" /> + </notification> + <notification name="ConfirmMerchantClearVersion"> + Jeśli kontynuujesz, to folder wersji tej rzeczy zostanie zdeaktywowany. Czy chcesz kontynuować? + <usetemplate ignoretext="Potwierdź przed wyłączeniem folderu wersji dla rzeczy na Marketplace" name="okcancelignore" notext="Anuluj" /> + </notification> + <notification name="AlertMerchantListingNotUpdated"> + Ta rzecz nie może zostać zaktualizowana. +[[URL] Kliknij tutaj] aby zaktualizować ją na Marketplace. + </notification> + <notification name="AlertMerchantListingCannotWear"> + Nie możesz założyć ubrań lub części ciała, które znajdują się w folderze listy rzeczy Marketplace. + </notification> + <notification name="AlertMerchantListingInvalidID"> + Nieprawidłowy ID rzeczy. + </notification> + <notification name="AlertMerchantListingActivateRequired"> + Istnieje kilka, lub żadna, wersji folderu dla tej rzeczy. Będziesz musiał/a wybrać i uaktywnić jedną oddzielnie później. + <usetemplate ignoretext="Powiadamiaj o aktywacji folderu wersji, gdy tworzę rzecz z kilkoma folderami wersji" name="okignore" /> + </notification> + <notification name="AlertMerchantStockFolderSplit"> + Przedmioty z ograniczonymi zasobami magazynowymi różnych typów zostały rozdzielone do osobnych folderów, aby ogólna hierarchia katalogów umożliwiała ich listowanie. + <usetemplate ignoretext="Powiadom, gdy folder Magazynowy jest dzielony przed listowaniem" name="okignore" /> + </notification> + <notification name="AlertMerchantStockFolderEmpty"> + Twoja rzecz została usunięta z listy, ponieważ nie ma jej już w Magazynie. Musisz dodać więcej jej jednostek do folderu Magazynowego, aby można było ją ponownie wyświetlać na liście. + <usetemplate ignoretext="Powiadom, gdy rzecz jest zdjęta z listy, bo folder zasobów Magazynowych jest pusty" name="okignore" /> + </notification> + <notification name="AlertMerchantVersionFolderEmpty"> + Twoja rzecz została usunięta z listy, ponieważ folder wersji jest pusty. Musisz dodać więcej jej jednostek do folderu wersji, aby można było ją ponownie wyświetlać na liście. + <usetemplate ignoretext="Powiadom, gdy rzecz jest zdjęta z listy, bo folder wersji jest pusty" name="okignore" /> + </notification> <notification name="WriteAnimationFail"> Problem w zapisywaniu danych animacji. Spróbuj ponownie za kilka minut. </notification> <notification name="UploadAuctionSnapshotFail"> - W trakcie ładowania obrazu aukcji pojawił się problem z następującego powodu: [REASON]. + W trakcie przesyłania obrazu aukcji pojawił się problem z następującego powodu: [REASON]. </notification> <notification name="UnableToViewContentsMoreThanOne"> Nie można przeglądać zawartości więcej niż jednego obiektu naraz. @@ -89,9 +183,12 @@ Wybierz pojedynczy obiekt i spróbuj jeszcze raz. <notification name="FriendsAndGroupsOnly"> Osoby spoza listy znajomych nie będą wiedzieć, że zdecydowałeś/aś się ignorować ich rozmowy głosowe i wiadomości IM. </notification> - <notification name="FavoritesOnLogin"> + <notification name="FavoritesOnLogin"> Pamiętaj: kiedy włączysz tą opcję to każdy kto używa tego komputera będzie mógł zobaczyć Twoją listę ulubionych miejsc. </notification> + <notification name="AllowMultipleViewers"> + Uruchamianie kilku przeglądarek Second Life nie podlega wsparciu. Może prowadzić do kolizji pamięci podręcznej tekstur, jej uszkodzeń, pogorszenia efektów wizualnych oraz wydajności. + </notification> <notification name="GrantModifyRights"> Udzielenie praw modyfikacji innemu Rezydentowi umożliwia modyfikację, usuwanie lub wzięcie JAKIEGOKOLWIEK z Twoich obiektów. Używaj tej opcji z rozwagą! Czy chcesz udzielić prawa do modyfikacji [NAME]? @@ -110,6 +207,9 @@ Czy chcesz dać prawa modyfikacji wybranym osobom? Czy chcesz odebrać prawa modyfikacji wybranym Rezydentom? <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> </notification> + <notification name="GroupNameLengthWarning"> + Nazwa grupy musi zawierać od [MIN_LEN] do [MAX_LEN] znaków. + </notification> <notification name="UnableToCreateGroup"> Założenie grupy nie jest możliwe. [MESSAGE] @@ -171,6 +271,17 @@ Jeśli nie chcesz, aby te przywileje były dłużej przypisane do tej roli, to w Zamierzasz wyrzucić [COUNT] osób z grupy. <usetemplate ignoretext="Potwierdź wyrzucenie kilku osób z grupy" name="okcancelignore" notext="Anuluj" yestext="Wyrzuć" /> </notification> + <notification name="BanGroupMemberWarning"> + Zamierzasz zbanować [AVATAR_NAME] z grupy. + <usetemplate ignoretext="Potwierdź przed zbanowaniem osoby z grupy" name="okcancelignore" notext="Anuluj" yestext="Banuj" /> + </notification> + <notification name="BanGroupMembersWarning"> + Zamierzasz zbanować [COUNT] osób z grupy. + <usetemplate ignoretext="Potwierdź przed zbanowaniem z grupy kilku osób na raz" name="okcancelignore" notext="Anuluj" yestext="Banuj" /> + </notification> + <notification name="GroupBanUserOnBanlist"> + Niektórzy rezydenci nie dostali zaproszenia, ponieważ są zbanowani w grupie. + </notification> <notification name="AttachmentDrop"> Wybrałeś/aś opcję upuszczenia swojego dodatku. Czy chcesz kontynuować? @@ -182,7 +293,7 @@ Chcesz kontynuować? <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Dołącz" /> </notification> <notification name="JoinGroupNoCost"> - Dołączasz do grupy [NAME]. + Dołączasz do grupy <nolink>[NAME]</nolink>. Czy chcesz kontynuować? <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Dołącz" /> </notification> @@ -194,7 +305,30 @@ Masz za mało L$ żeby do niej dołączyć. Stworzenie tej grupy kosztuje [COST]L$. W grupie powinna być więcej niż jedna osoba, w przeciwnym razie zostanie ona na zawsze skasowana. Zaproś kogoś w ciągu 48 godzin. - <usetemplate canceltext="Anuluj" name="okcancelbuttons" notext="Anuluj" yestext="Stwórz grupę za 100L$" /> + <usetemplate canceltext="Anuluj" name="okcancelbuttons" notext="Anuluj" yestext="Stwórz grupę za [COST]L$" /> + </notification> + <notification name="JoinGroupInaccessible"> + Ta grupa nie jest dla Ciebie dostępna. + </notification> + <notification name="JoinGroupError"> + Wystąpił błąd podczas próby dołączenia do grupy. + </notification> + <notification name="JoinGroupErrorReason"> + Nie można dołączyć do grupy: [reason] + </notification> + <notification name="JoinGroupTrialUser"> + Przepraszamy, ale konta próbne nie mogą dołączać do grup. + </notification> + <notification name="JoinGroupMaxGroups"> + Nie możesz dołączyć do '<nolink>[group_name]</nolink>': +Jesteś już w [group_count] grupach, a maksymalny dozwolony limit to [max_groups] + </notification> + <notification name="JoinGroupClosedEnrollment"> + Nie możesz dołączyć do '<nolink>[group_name]</nolink>': +Grupa nie umożliwia już swobodnego dołączania. + </notification> + <notification name="JoinGroupInsufficientFunds"> + Nie można przekazać wymaganej opłaty wstępu ([membership_fee] L$). </notification> <notification name="LandBuyPass"> Za [COST]L$ możesz odwiedzić tą działkę ('[PARCEL_NAME]') na [TIME] godzin. Chcesz kupić przepustkę? @@ -217,10 +351,9 @@ Cena wynosi [SALE_PRICE]L$, a sprzedaż będzie autoryzowana dla [NAME]. <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> <notification name="ReturnObjectsDeededToGroup"> - Czy na pewno chcesz zwrócić wszystkie obiekty udostępnione grupie '[NAME]' na tej działce do szaf ich poprzednich właścicieli? + Czy na pewno chcesz zwrócić wszystkie obiekty udostępnione grupie '<nolink>[NAME]</nolink>' na tej działce do szaf ich poprzednich właścicieli? -*UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów -udostępnionych grupie, które nie mają praw transferu! +*UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów udostępnionych grupie, które nie mają praw transferu! Obiekty: [N] <usetemplate name="okcancelbuttons" notext="Anuluj" /> @@ -256,7 +389,7 @@ Obiekty: [N] <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> <notification name="ReturnAllTopObjects"> - Czy na pewno chcesz zwrócić wszystkie wymienione obiekty znajdujące się na tej działce do szaf ich właścicieli? + Czy na pewno chcesz zwrócić wszystkie wymienione obiekty znajdujące się na tej działce do szaf ich właścicieli? Spowoduje to zwrot WSZYSTKICH oskryptowanych obiektów w regionie! <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> <notification name="DisableAllTopObjects"> @@ -264,7 +397,7 @@ Obiekty: [N] <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> <notification name="ReturnObjectsNotOwnedByGroup"> - Zwrócić obiekty z tej działki, które NIE są udostępnione grupie [NAME] do ich właścicieli? + Zwrócić obiekty z tej działki, które NIE są udostępnione grupie <nolink>[NAME]</nolink> do ich właścicieli? Obiekty: [N] <usetemplate name="okcancelbuttons" notext="Anuluj" /> @@ -299,14 +432,23 @@ W celu umieszczenia mediów tylko na jednej powierzchni skorzystaj z narzędzia <notification name="ErrorEncodingSnapshot"> Błąd w kodowaniu zdjęcia. </notification> + <notification name="ErrorPhotoCannotAfford"> + Potrzebujesz [COST]L$ aby zapisać zdjęcie do swojej Szafy. Możesz zamiast tego kupić L$ lub zapisać zdjęcie na swoim komputerze. + </notification> + <notification name="ErrorCannotAffordUpload"> + Potrzebujesz [COST]L$ aby przesłać ten element. + </notification> + <notification name="ErrorTextureCannotAfford"> + Potrzebujesz [COST]L$ aby zapisać teksturę do swojej Szafy. Możesz zamiast tego kupić L$ lub zapisać teksturę na swoim komputerze. + </notification> <notification name="ErrorUploadingPostcard"> - W trakcie ładowania zdjęcia pojawił się problem z następującego powodu: [REASON] + W trakcie przesyłania zdjęcia pojawił się problem z następującego powodu: [REASON] </notification> <notification name="ErrorUploadingReportScreenshot"> - W trakcie ładowania zdjęcia ekranu do raportu pojawił się problem z następującego powodu: [REASON] + W trakcie przesyłania zdjęcia ekranu do raportu pojawił się problem z następującego powodu: [REASON] </notification> <notification name="MustAgreeToLogIn"> - Musisz zaakceptować Warunki Umowy (Terms of Service) by kontynuować logowanie się do [SECOND_LIFE]. + Musisz zaakceptować Regulamin (Terms and Conditions), Politykę Prywatności (Privacy Policy) i Warunki korzystania z Usług (Terms of Service) by kontynuować logowanie się do [SECOND_LIFE]. </notification> <notification name="CouldNotPutOnOutfit"> Założenie stroju nie powiodło się. @@ -322,6 +464,9 @@ Limit [MAX_ATTACHMENTS] dodatków został przekroczony. Proszę najpierw odłąc <notification name="CannotWearInfoNotComplete"> Nie możesz założyć tego przedmiotu, ponieważ jeszcze się nie załadował do końca. Spróbuj ponownie za kilka minut. </notification> + <notification name="MustEnterPasswordToLogIn"> + Należy wprowadzić hasło. + </notification> <notification name="MustHaveAccountToLogIn"> Należy wprowadzić nazwę użytkownika. @@ -332,10 +477,10 @@ Potrzebujesz konta aby się zalogować do [SECOND_LIFE]. Czy chcesz utworzyć je Należy wprowadzić nazwę użytkownika lub imię oraz nazwisko Twojego awatara w pole nazwy użytkownika, a następnie ponownie się zalogować. </notification> <notification name="InvalidGrid"> - '[GRID]' nie jest prawidłowym identyfikatorem siatki. + '[GRID]' nie jest prawidłowym identyfikatorem świata. </notification> <notification name="InvalidLocationSLURL"> - Twój punkt startowy nie znajduje się na prawidłowej siatce. + Twój punkt startowy nie znajduje się w prawidłowym świecie. </notification> <notification name="DeleteClassified"> Usunąć reklamę '[NAME]'? @@ -354,10 +499,22 @@ Czy na pewno chcesz kontynuować? <notification name="ClassifiedInsufficientFunds"> Nie posiadasz wystarczających środków aby dodać reklamę. </notification> - <notification name="DeleteAvatarPick"> + <notification name="ProfileDeleteClassified"> + Usunąć reklamę <nolink>[CLASSIFIED]</nolink>? + <usetemplate name="okcancelbuttons" notext="Anuluj" /> + </notification> + <notification name="ProfileDeletePick"> Usunąć miejsce <nolink>[PICK]</nolink>? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> + <notification name="ProfileUnpublishedClassified"> + Masz nieopublikowane reklamy. Przepadną, jeśli zamkniesz okno. + <usetemplate name="okcancelbuttons" notext="Anuluj" /> + </notification> + <notification name="ProfileUnsavedChanges"> + Masz niezapisane zmiany. + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Odrzuć" yestext="Zapisz" /> + </notification> <notification name="DeleteOutfits"> Skasować wybrane stroje? <usetemplate name="okcancelbuttons" notext="Anuluj" /> @@ -372,14 +529,6 @@ Czy na pewno chcesz kontynuować? <notification name="SelectHistoryItemToView"> Wybierz obiekt z historii, który chcesz zobaczyć. </notification> - <notification name="ResetShowNextTimeDialogs"> - Czy chcesz aktywować ponownie wszystkie te powiadomienia, przy których wcześniej zaznaczono 'nie pokazuj ponownie'? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> - </notification> - <notification name="SkipShowNextTimeDialogs"> - Czy chcesz dezaktywować wszystkie powiadomienia, jakie tylko można? - <usetemplate name="okcancelbuttons" notext="Anuluj" /> - </notification> <notification name="CacheWillClear"> Bufor danych zostanie wyczyszczony po restarcie aplikacji [APP_NAME]. </notification> @@ -390,6 +539,9 @@ Pamiętaj: Opcja ta wyczyszcza bufor danych. <notification name="ChangeConnectionPort"> Ustawienia portu zostają zaktualizowane po restarcie aplikacji [APP_NAME]. </notification> + <notification name="ChangeDeferredDebugSetting"> + To ustawienie debugowania zostanie zaktualizowane po restarcie aplikacji [APP_NAME]. + </notification> <notification name="ChangeSkin"> Nowa skórka pojawi się po restarcie aplikacji [APP_NAME]. </notification> @@ -405,7 +557,11 @@ Pamiętaj: Opcja ta wyczyszcza bufor danych. <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz" /> </notification> <notification name="DeleteNotecard"> - Usunąć notkę? + Czy na pewno chcesz usunąć tą notkę? + <usetemplate ignoretext="Potwierdź usuwanie notki" name="okcancelignore" notext="Anuluj" /> + </notification> + <notification name="LoadPreviousReportScreenshot"> + Czy chcesz użyć poprzedniego zrzutu ekranu dla swojego zgłoszenia? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> <notification name="GestureSaveFailedTooManySteps"> @@ -451,6 +607,10 @@ Obiekt może znajdować się zbyt daleko albo został usunięty. <notification name="CannotDownloadFile"> Nie można pobrać pliku </notification> + <notification name="MediaFileDownloadUnsupported"> + Zażądano pobrania pliku, jaki nie jest obsługiwany w [SECOND_LIFE]. + <usetemplate ignoretext="Ostrzegaj o pobieraniu nieobsługiwanych typów plików" name="okignore" /> + </notification> <notification name="CannotWriteFile"> Nie można zapisać pliku [[FILE]] </notification> @@ -460,23 +620,11 @@ Obiekt może znajdować się zbyt daleko albo został usunięty. Odwiedzić [_URL], aby uzyskać więcej informacji? <usetemplate ignoretext="Sprzęt w moim komputerze nie jest wspierany" name="okcancelignore" notext="Nie" yestext="Tak" /> </notification> - <notification name="IntelOldDriver"> - Prawdopodobnie istnieje nowszy sterownik dla Twojej karty graficznej. Aktualizacja sterowników graficznych może znacznie zwiększyć wydajność. - -Odwiedzić [_URL] aby sprawdzić, czy są nowsze sterowniki? - <usetemplate ignoretext="Moje sterowniki grafiki są przestarzałe" name="okcancelignore" notext="Nie" yestext="Tak" /> - </notification> - <notification name="AMDOldDriver"> - Prawdopodobnie istnieje nowszy sterownik dla Twojej karty graficznej. Aktualizacja sterowników graficznych może znacznie zwiększyć wydajność. - -Odwiedzić [_URL] aby sprawdzić, czy są nowsze sterowniki? - <usetemplate ignoretext="Moje sterowniki grafiki są przestarzałe" name="okcancelignore" notext="Nie" yestext="Tak" /> - </notification> - <notification name="NVIDIAOldDriver"> + <notification name="OldGPUDriver"> Prawdopodobnie istnieje nowszy sterownik dla Twojej karty graficznej. Aktualizacja sterowników graficznych może znacznie zwiększyć wydajność. -Odwiedzić [_URL] aby sprawdzić, czy są nowsze sterowniki? - <usetemplate ignoretext="Moje sterowniki grafiki są przestarzałe" name="okcancelignore" notext="Nie" yestext="Tak" /> +Odwiedzić [URL] aby sprawdzić, czy są nowsze sterowniki? + <usetemplate ignoretext="Moje sterowniki grafiki są przestarzałe" name="okcancelignore" notext="Nie" yestext="Tak"/> </notification> <notification name="UnknownGPU"> Twój system jest wyposażony w kartę graficzną, która nie jest rozpoznana przez [APP_NAME]. @@ -500,7 +648,7 @@ Możesz podnieść jakość grafiki pod Ustawienia > Grafika. </notification> <notification name="CannotCopyWarning"> Nie masz pozwolenia na kopiowanie następujących obiektów: -[ITEMS] +<nolink>[ITEMS]</nolink> i stracisz je w momencie przekazania. Czy na pewno chcesz oddać te obiekty? <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> </notification> @@ -547,7 +695,7 @@ Ta osoba tymczasowo nie będzie mogła się poruszać, używać czatu (IM) lub o <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Wyrzuć" /> </notification> <notification name="EjectAvatarFromGroup"> - Wyrzuciłeś/aś [AVATAR_NAME] z grupy [GROUP_NAME] + Wyrzuciłeś/aś [AVATAR_NAME] z grupy <nolink>[GROUP_NAME]</nolink>. </notification> <notification name="AcquireErrorTooManyObjects"> BŁĄD OTRZYMYWANIA: Zbyt wiele wybranych obiektów. @@ -562,6 +710,9 @@ Przemieść wszystkie otrzymywane obiekty do jednego regionu. Odwiedzić [_URL] po więcej informacji na temat zakupu L$? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> + <notification name="MuteLimitReached"> + Nie można dodać kolejnego wpisu do listy zablokowanych, ponieważ limit [MUTE_LIMIT] rekordów został osiągnięty. + </notification> <notification name="UnableToLinkObjects"> Nie można połączyć [COUNT] obiektów. Maksymalnie można połączyć [MAX] obiektów. @@ -577,6 +728,9 @@ Upewnij się, że żaden z obiektów nie jest zablokowany i wszystkie należą d <notification name="CannotLinkPermanent"> Nie możesz łączyć obiektów przez granice regionów. </notification> + <notification name="CannotLinkAcrossRegions"> + Nie możesz łączyć obiektów przez granice regionów. + </notification> <notification name="CannotLinkDifferentOwners"> Nie możesz połączyć obiektów, ponieważ należą one do różnych osób. @@ -592,7 +746,7 @@ Upewnij się, że nazwa pliku ma poprawne rozszerzenie. Oczekiwane: [VALIDS] </notification> <notification name="CannotUploadSoundFile"> - Nie można otworzyć załadowanego pliku dźwiękowego: + Nie można otworzyć przesłanego pliku dźwiękowego: [FILE] </notification> <notification name="SoundFileNotRIFF"> @@ -624,7 +778,7 @@ Oczekiwane: [VALIDS] [FILE] </notification> <notification name="SoundFileInvalidTooLong"> - Plik audio jest zbyt długi (10 sekund maksimum): + Plik audio jest zbyt długi (maksymalnie 30 sekund): [FILE] </notification> <notification name="ProblemWithFile"> @@ -655,10 +809,10 @@ To może się zdarzyć, kiedy zmieniasz ustawienia sieci. Zrestartowanie Przegl Nie można utworzyć pliku wyjściowego: [FILE] </notification> <notification name="DoNotSupportBulkAnimationUpload"> - [APP_NAME] obecnie nie wspomaga ładowania grupowego plików animacji w formacie BVH. + [APP_NAME] obecnie nie wspomaga przesyłania grupowego plików animacji w formacie BVH. </notification> <notification name="CannotUploadReason"> - Ładowanie pliku [FILE] nie powiodło się z powodu: [REASON] + Przesyłanie pliku [FILE] nie powiodło się z powodu: [REASON] Spróbuj jeszcze raz później. </notification> <notification name="LandmarkCreated"> @@ -670,6 +824,12 @@ Spróbuj jeszcze raz później. <notification name="CannotCreateLandmarkNotOwner"> Nie możesz zapamiętać tego miejsca (LM) ponieważ właściciel działki nie pozwala na to. </notification> + <notification label="Utwórz folder" name="CreateLandmarkFolder"> + Wybierz nazwę folderu: + <form name="form"> + <button name="Cancel" text="Anuluj" /> + </form> + </notification> <notification name="CannotRecompileSelectObjectsNoScripts"> 'Rekompilacja' nie powiodła się. @@ -719,8 +879,7 @@ Nowe zapytanie: [FINALQUERY] [REASON] </notification> <notification name="invalid_tport"> - Niestety, pojawił się błąd podczas próby teleportacji. Proponujemy wylogowanie się i spróbowanie teleportacji ponownie. -Jeżeli nadal otrzymujesz tę wiadomość proponujemy odwiedzić stronę [SUPPORT_SITE]. + Próby teleportacji są ograniczone do 6 na minutę. Jeśli masz problemy odczekaj minutę i spróbuj ponownie się teleportować. Jeśli problem będzie się powtarzał wyloguj się i zaloguj ponownie. </notification> <notification name="invalid_region_handoff"> Niestety, pojawił się błąd podczas próby przedostania się na drugi region. Proponujemy wylogowanie się i spróbowanie przedostania się na drugi region ponownie. @@ -750,6 +909,9 @@ Jeżeli nadal otrzymujesz tę wiadomość proponujemy odwiedzić stronę [SUPPOR <notification name="expired_region_handoff"> Przepraszamy, ale nie udało się przeprowadzić zmiany regionu wystarczająco szybko. Spróbuj jeszcze raz za kilka minut. </notification> + <notification name="preexisting_tport"> + Przepraszamy, ale system nie mógł zainicjować teleportacji. Spróbuj jeszcze raz za kilka minut. + </notification> <notification name="no_host"> Nie można znaleźć miejsca docelowego. To miejsce może być chwilowo nieosiągalne albo przestało istnieć. Spróbuj jeszcze raz za kilka minut. </notification> @@ -937,13 +1099,16 @@ Zazwyczaj jest to tymczasowy problem. Możesz kontynuować modyfikacje i zapisa <notification name="YouHaveBeenLoggedOut"> Nastąpiło wylogowanie z [SECOND_LIFE] [MESSAGE] - <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Pokaż IM/czat" /> + <usetemplate name="okcancelbuttons" notext="Zakończ" yestext="Pokaż IM/czat" /> + </notification> + <notification name="InventoryUnusable"> + Wystąpił problem podczas ładowania szafy. Spróbuj się wylogować i zalogować ponownie. Jeśli zobaczysz ten komunikat jeszcze raz, to skontaktuj się z pomocą techniczną, aby rozwiązać problem. </notification> <notification name="OnlyOfficerCanBuyLand"> Nie możesz kupić działek dla grupy. Nie masz praw kupowania działek dla Twojej aktywnej grupy. </notification> - <notification label="Add Friend" name="AddFriendWithMessage"> + <notification label="Dodaj znajomego" name="AddFriendWithMessage"> Znajomi mogą pozwalać na odnajdywanie się wzajemnie na mapie i na otrzymywanie informacji o statusie online. Zaproponować znajomość [NAME]? @@ -1007,6 +1172,18 @@ do <notification label="Zmień nazwę stroju" name="RenameOutfit"> Nowa nazwa stroju: <form name="form"> + <button name="Cancel" text="Anuluj"/> + </form> + </notification> + <notification label="Zmień nazwę gestu" name="RenameGesture"> + Nowa nazwa gestu: + <form name="form"> + <button name="Cancel" text="Anuluj"/> + </form> + </notification> + <notification label="Zmień nazwę Landmarka" name="RenameLandmark"> + Wybierz nową nazwę dla [NAME] + <form name="form"> <button name="Cancel" text="Anuluj" /> </form> </notification> @@ -1127,7 +1304,7 @@ Wybierz mniejszy obszar i spróbuj jeszcze raz. Po przekazaniu tej działki grupa będzie musiała mieć i utrzymywać wystarczający kredyt na używanie działki. Cena zakupu działki nie jest zwracana właścicielowi. Jeżeli przekazana działka zostanie sprzedana, cena sprzedaży zostanie podzielona pomiędzy członków grupy. -Przekazać tą działkę o powierzchni [AREA] m² grupie '[GROUP_NAME]'? +Przekazać tą działkę o powierzchni [AREA] m² grupie '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> <notification name="DeedLandToGroupWithContribution"> @@ -1135,7 +1312,7 @@ Przekazać tą działkę o powierzchni [AREA] m² grupie '[GROUP_NAME]&apos Przekazanie będzie zawierać równoczesne przypisanie działki do grupy od '[NAME]'. Cena zakupu działki nie jest zwracana właścicielowi. Jeżeli przekazana działka zostanie sprzedana, cena sprzedaży zostanie podzielona pomiędzy członków grupy. -Przekazać tą działkę o powierzchni [AREA] m² grupie '[GROUP_NAME]'? +Przekazać tą działkę o powierzchni [AREA] m² grupie '<nolink>[GROUP_NAME]</nolink>'? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> <notification name="DisplaySetToSafe"> @@ -1169,12 +1346,32 @@ Możesz normalnie używać [SECOND_LIFE], inni użytkownicy będą Cię widzieli <ignore name="ignore" text="Ładowanie ubrań nadal trwa" /> </form> </notification> + <notification name="AgentComplexityWithVisibility"> + Twój [https://community.secondlife.com/t5/English-Knowledge-Base/Avatar-Rendering-Complexity/ta-p/2967838 stopień złożoności awatara] to [AGENT_COMPLEXITY]. +[OVERLIMIT_MSG] + <usetemplate ignoretext="Ostrzegaj mnie, gdy stopień złożoności mojego awatara jest zbyt wysoki" name="notifyignore" /> + </notification> + <notification name="AgentComplexity"> + Twój [https://community.secondlife.com/t5/English-Knowledge-Base/Avatar-Rendering-Complexity/ta-p/2967838 stopień złożoności awatara] to [AGENT_COMPLEXITY]. + <usetemplate ignoretext="Ostrzegaj mnie, gdy zmienia się stopień złożoności mojego awatara" name="notifyignore"/> + </notification> + <notification name="HUDComplexityWarning"> + [HUD_REASON]. Bardzo prawdopodobne, że wpłynie to negatywnie na Twoją wydajność. + <usetemplate ignoretext="Ostrzegaj mnie, gdy stopień złożoności moich dodatków HUD jest zbyt wysoki" name="notifyignore"/> + </notification> <notification name="FirstRun"> Instalacja [APP_NAME] zakończona. Jeżeli używasz [SECOND_LIFE] po raz pierwszy to musisz stworzyć konto żeby móc się zalogować. <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Stwórz konto..." /> </notification> + <notification name="LoginCantRemoveUsername"> + Zapamiętany użytkownik może zostać zapomniany w Awatar > Ustawienia > Zaawansowane > Zapamiętani użytkownicy. + </notification> + <notification name="LoginCantRemoveCurUsername"> + Zapomnienie zalogowanego użytkownika wymaga jego wylogowania. + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Potwierdź i wyloguj się" /> + </notification> <notification name="LoginPacketNeverReceived"> Problemy z połączeniem. Problem może być spowodowany Twoim połączeniem z Internetem albo może istnieć po stronie [SECOND_LIFE_GRID]. @@ -1184,6 +1381,18 @@ Możesz sprawdzić swoje połączenie z Internetem i spróbować ponownie za kil <button name="Teleport" text="Teleportuj" /> </form> </notification> + <notification name="LoginPacketNeverReceivedNoTP"> + Problemy z połączeniem. Problem może być spowodowany Twoim połączeniem z Internetem albo może istnieć po stronie [SECOND_LIFE_GRID]. + +Możesz sprawdzić swoje połączenie z Internetem i spróbować ponownie za kilka minut lub połączyć się ze stroną pomocy technicznej [SUPPORT_SITE]. + <form name="form"> + <button name="Help" text="Pomoc"/> + </form> + </notification> + <notification name="LoginRemoveMultiGridUserData"> + Usuwane Dane Lokalne są współużytkowane przez wiele światów, czy na pewno chcesz je usunąć? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Potwierdź" /> + </notification> <notification name="WelcomeChooseSex"> Twoja postać pojawi się za moment. @@ -1193,7 +1402,11 @@ Wybierz awatara właściwej płci. Ten wybór będzie można później zmienić. <usetemplate name="okcancelbuttons" notext="Kobieta" yestext="Mężczyzna" /> </notification> <notification name="CantTeleportToGrid"> - Nie można teleportować do [SLURL], ponieważ jest na innej siatce ([GRID]) niż obecna siatka ([CURRENT_GRID]). Proszę zamknąć przeglądarkę i spróbować ponownie. + Nie można teleportować do [SLURL], ponieważ jest w innym świecie ([GRID]) niż obecny ([CURRENT_GRID]). Proszę zamknąć przeglądarkę i spróbować ponownie. + </notification> + <notification name="GeneralCertificateErrorShort"> + Połączenie z serwerem nie mogło zostać nawiązane. +[REASON] </notification> <notification name="GeneralCertificateError"> Połączenie z serwerem nie mogło zostać nawiązane. @@ -1208,7 +1421,6 @@ Odcisk palca SHA1: [MD5_DIGEST] Użycie klucza: [KEYUSAGE] Rozszerzone użycie klucza: [EXTENDEDKEYUSAGE] Identyfikator klucza podmiotu: [SUBJECTKEYIDENTIFIER] - </notification> <notification name="TrustCertificateError"> Wydawca certyfikatu dla tego serwera nie jest znany. @@ -1254,6 +1466,10 @@ Wybierz pojedynczy obiekt i spróbuj jeszcze raz. Teleportować wszystkich Rezydentów z tego regionu do ich miejsc startu? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> + <notification name="ChangeObjectBonusFactor"> + Obniżenie limitu obiektów bonusowych po tym, gdy konstrukcje zostały już poustawiane w regionie może spowodować, że część z nich może zostać zwrócona lub usunięta. Na pewno chcesz zmienić tą wartość? + <usetemplate ignoretext="Potwierdź zmianę mnożnika obiektów bonusowych" name="okcancelignore" notext="Anuluj"/> + </notification> <notification name="EstateObjectReturn"> Na pewno chcesz odesłać wszystkie obiekty należące do [USER_NAME]? <usetemplate name="okcancelbuttons" notext="Anuluj" /> @@ -1262,21 +1478,25 @@ Wybierz pojedynczy obiekt i spróbuj jeszcze raz. Nie można ustawić tekstur regionu: Tekstura terenu [TEXTURE_NUM] ma niewłaściwą głębię koloru - [TEXTURE_BIT_DEPTH]. -Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze 1024x1024 lub mniejszą i ponownie kliknij na "Zastosuj". +Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze [MAX_SIZE]x[MAX_SIZE] lub mniejszą i ponownie kliknij na "Zastosuj". </notification> <notification name="InvalidTerrainSize"> Nie można ustawić tekstur regionu: Tekstura terenu [TEXTURE_NUM] jest za duża - [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]. -Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze 1024x1024 lub mniejszą i ponownie kliknij na "Zastosuj". +Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze [MAX_SIZE]x[MAX_SIZE] lub mniejszą i ponownie kliknij na "Zastosuj". </notification> <notification name="RawUploadStarted"> - Ładowanie rozpoczęte. Może potrwać do dwóch minut zależnie od prędkości Twojego połączenia. + Przesyłanie rozpoczęte. Może potrwać do dwóch minut zależnie od prędkości Twojego połączenia. </notification> <notification name="ConfirmBakeTerrain"> Na pewno chcesz zapisać obecne ukształtowanie terenu jako punkt odniesienia dla górnego i dolnego limitu terenu oraz jako domyślną wartość dla opcji 'Odtwórz'? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> + <notification name="ConfirmTextureHeights"> + Zamierzasz użyć wartości 'niższych' większych niż 'wyższe' dla zakresów elewacji. Chcesz kontynuować? + <usetemplate name="yesnocancelbuttons" notext="Anuluj" canceltext="Nie pytaj" /> + </notification> <notification name="MaxAllowedAgentOnRegion"> Maksymalna liczba Rezydentów wynosi [MAX_AGENTS]. </notification> @@ -1295,7 +1515,34 @@ Zamień teksturę [TEXTURE_NUM] na 24-bitową teksturę o wymiarze 1024x1024 lub Możesz mieć maksymalnie [MAX_MANAGER] zarządców Majątku. </notification> <notification name="OwnerCanNotBeDenied"> - Nie możesz dodać właściciela majątku do listy 'Niepożądanych Rezydentów (banów)' majątku. + Nie możesz dodać właściciela Majątku do listy 'Niepożądanych Rezydentów (banów)' Majątku. + </notification> + <notification name="ProblemAddingEstateManagerBanned"> + Nie możesz dodać zbanowanego rezydenta do listy zarządców Majątku. + </notification> + <notification name="ProblemBanningEstateManager"> + Nie można dodać zarządcy Majątku [AGENT] do listy zbanowanych. + </notification> + <notification name="GroupIsAlreadyInList"> + <nolink>[GROUP]</nolink> już jest na liście dostępu grup. + </notification> + <notification name="AgentIsAlreadyInList"> + [AGENT] już jest na Twojej liście: [LIST_TYPE]. + </notification> + <notification name="AgentsAreAlreadyInList"> + [AGENT] już są na Twojej liście: [LIST_TYPE]. + </notification> + <notification name="AgentWasAddedToList"> + [AGENT] został/a dodany/a do listy: [LIST_TYPE] w: [ESTATE]. + </notification> + <notification name="AgentsWereAddedToList"> + [AGENT] zostali dodani do listy: [LIST_TYPE] w: [ESTATE]. + </notification> + <notification name="AgentWasRemovedFromList"> + [AGENT] został/a usunięty/a z listy: [LIST_TYPE] w: [ESTATE]. + </notification> + <notification name="AgentsWereRemovedFromList"> + [AGENT] zostali usunięci z listy: [LIST_TYPE] w: [ESTATE]. </notification> <notification name="CanNotChangeAppearanceUntilLoaded"> Nie możesz zmienić wyglądu podczas ładowania ubrań i kształtu. @@ -1311,133 +1558,36 @@ Wybierz obiekt na sprzedaż i spróbuj jeszcze raz. Plik surowego terenu pobrany do: [DOWNLOAD_PATH]. </notification> - <notification name="DownloadWindowsMandatory"> - Nowa wersja [APP_NAME] została opublikowana. -[MESSAGE] -Musisz zainstalować nową wersję żeby używać [APP_NAME]. - <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Pobierz" /> - </notification> - <notification name="DownloadWindows"> - Uaktualniona wersja [APP_NAME] została opublikowana. -[MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> + <notification name="RequiredUpdate"> + Do zalogowania się wymagana jest wersja [VERSION]. +Pobierz ją z https://secondlife.com/support/downloads/ </notification> - <notification name="DownloadWindowsReleaseForDownload"> - Uaktualniona wersja [APP_NAME] została opublikowana. -[MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> - </notification> - <notification name="DownloadLinuxMandatory"> - Nowa wersja [APP_NAME] jest dostępna. -[MESSAGE] -Musisz pobrać aktualizację aby korzystać z [APP_NAME]. - <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Pobierz" /> - </notification> - <notification name="DownloadLinux"> - Aktualizacja [APP_NAME] jest dostępna. -[MESSAGE] -Ta aktualizacja nie jest wymagana, ale zaleca się jej instalację w celu poprawienia wydajności i stabilności. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> - </notification> - <notification name="DownloadLinuxReleaseForDownload"> - Uaktualniona wersja [APP_NAME]została opublikowana. -[MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> + <notification name="PauseForUpdate"> + Do zalogowania się wymagana jest wersja [VERSION]. +Informacje o wydaniu: [URL] + +Kliknij OK, aby pobrać i zainstalować. </notification> - <notification name="DownloadMacMandatory"> - Nowa wersja [APP_NAME] została opublikowana. -[MESSAGE] -Musisz zainstalować nową wersję żeby używać [APP_NAME]. + <notification name="OptionalUpdateReady"> + Wersja [VERSION] została pobrana i jest gotowa do zainstalowania. +Informacje o wydaniu: [URL] -Pobrać i zapisać w folderze Aplikacje? - <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Pobierz" /> +Kliknij OK, aby zainstalować. </notification> - <notification name="DownloadMac"> - Uaktualniona wersja [APP_NAME] została opublikowana. -[MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. + <notification name="PromptOptionalUpdate"> + Wersja [VERSION] została pobrana i jest gotowa do zainstalowania. +Informacje o wydaniu: [URL] -Pobrać i zapisać w folderze Aplikacje? - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> +Kontynuować? + <usetemplate canceltext="Nie teraz" name="yesnocancelbuttons" notext="Pomiń" yestext="Instaluj" /> </notification> - <notification name="DownloadMacReleaseForDownload"> - Uaktualniona wersja [APP_NAME] została opublikowana. -[MESSAGE] -Aktualizacja nie jest wymagana, ale jest zalecana w celu poprawy wydajności i stabilności. - -Pobrać i zapisać w folderze Aplikacje? - <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Pobierz" /> - </notification> - <notification name="FailedUpdateInstall"> - Podczas aktualizacji pojawił się błąd. -Proszę pobrać i zainstalować najnowszego klienta z -http://secondlife.com/download - </notification> - <notification name="FailedRequiredUpdateInstall"> - Nie można zainstalować wymaganej aktualizacji. -Nie będzie można zalogować się dopóki [APP_NAME] nie zostanie zaktualizowana. -Proszę pobrać i zainstalować najnowszą wersję z -http://secondlife.com/download - <usetemplate name="okbutton" yestext="Wyjdź" /> - </notification> - <notification name="UpdaterServiceNotRunning"> - Istnieje obowiązkowa aktualizacja dla Second Life. -Możesz ją pobrać z http://www.secondlife.com/downloads -lub zainstalować teraz. - <usetemplate name="okcancelbuttons" notext="Opuść Second Life" yestext="Pobierz i instaluj teraz" /> - </notification> - <notification name="DownloadBackgroundTip"> - Aktualizacja dla [APP_NAME] została pobrana. -Wersja [VERSION] [[INFO_URL] Informacja o tej aktualizacji] - <usetemplate name="okcancelbuttons" notext="Później..." yestext="Instaluj teraz i restartuj [APP_NAME]" /> - </notification> - <notification name="DownloadBackgroundDialog"> - Aktualizacja [APP_NAME] została pobrana. -Wersja [VERSION] [[INFO_URL] Informacja o aktualizacji] - <usetemplate name="okcancelbuttons" notext="Później..." yestext="Instaluj teraz i restartuj [APP_NAME]" /> - </notification> - <notification name="RequiredUpdateDownloadedVerboseDialog"> - Pobrano wymaganą aktualizację. -Wersja [VERSION] [[INFO_URL] Informacje o tej aktualizacji] - -W celu instalacji aktualizacji [APP_NAME] musi zostać zrestartowany. - </notification> - <notification name="RequiredUpdateDownloadedDialog"> - W celu instalacji aktualizacji [APP_NAME] musi zostać zrestartowany. -[[INFO_URL] Informacje o tej aktualizacji] - </notification> - <notification name="OtherChannelDownloadBackgroundTip"> - Została pobrana aktualizacja dla Twojej instalacji [APP_NAME]. -Wersja [VERSION] -Ta eksperymentalna przeglądarka została zastąpiona przez wersję [NEW_CHANNEL]; -zobacz [[INFO_URL] Więcej informacji o tej aktualizacji] - <usetemplate name="okcancelbuttons" notext="Później..." yestext="Instaluj teraz i zrestartuj [APP_NAME]" /> - </notification> - <notification name="OtherChannelDownloadBackgroundDialog"> - Została pobrana aktualizacja dla Twojej instalacji [APP_NAME]. -Wersja [VERSION] -Ta eksperymentalna przeglądarka została zastąpiona przez wersję [NEW_CHANNEL]; -zobacz [[INFO_URL] Więcej informacji o tej aktualizacji] - <usetemplate name="okcancelbuttons" notext="Później..." yestext="Instaluj teraz i zrestartuj [APP_NAME]" /> - </notification> - <notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog"> - Została pobrana wymagana aktualizacja. -Wersja [VERSION] -Ta eksperymentalna przeglądarka została zastąpiona przez wersję [NEW_CHANNEL]; -zobacz [[INFO_URL] Więcej informacji o tej aktualizacji] - -W celu instalacji aktualizacji [APP_NAME] musi zostać zrestartowany. - </notification> - <notification name="OtherChannelRequiredUpdateDownloadedDialog"> - W celu instalacji aktualizacji [APP_NAME] musi zostać zrestartowany. -Ta eksperymentalna przeglądarka została zastąpiona przez wersję [NEW_CHANNEL]; -zobacz [[INFO_URL] Więcej informacji o tej aktualizacji] + <notification name="LoginFailedUnknown"> + Przepraszamy, ale nie udało się zalogować - powód jest nieznany. +Jeśli ciągle widzisz tą wiadomość sprawdź [SUPPORT_SITE]. + <usetemplate name="okbutton" yestext="Wyjdź"/> </notification> <notification name="DeedObjectToGroup"> - Przekazanie tego obiektu spowoduje, że grupa: + Przypisanie tego obiektu spowoduje, że grupa: * Otrzyma L$ zapłacone temu obiektowi <usetemplate ignoretext="Potwierdź decyzję przypisania obiektu do grupy" name="okcancelignore" notext="Anuluj" yestext="Przekaż" /> </notification> @@ -1489,14 +1639,11 @@ Chcesz ją opuścić? Nie możesz opuścić tej grupy, ponieważ jesteś ostatnim z jej właścicieli. Przydziel najpierw innemu użytkownikowi rolę właściciela. </notification> <notification name="GroupDepartError"> - Nie można opuścić grupy: [reason]. - </notification> - <notification name="GroupDepart"> - Opuściłeś/aś grupę [group_name]. + Nie możesz opuścić tej grupy. </notification> <notification name="ConfirmKick"> - Na pewno chcesz wyrzucić wszystkich Rezydentów z siatki? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Wyrzuć Rezydentów" /> + Na pewno chcesz wyrzucić wszystkich Rezydentów ze świata? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Wyrzuć Rezydentów"/> </notification> <notification name="MuteLinden"> Przepraszamy, ale nie możesz zablokować Lindena. @@ -1520,8 +1667,7 @@ Chcesz ją opuścić? <notification name="DoNotDisturbModeSet"> Tryb Zajętości jest włączony. Nie będziesz powiadamiany/a o nadchodzących rozmowach. -- Inni Rezydenci będą otrzymywać Twoją wiadomość Trybu Zajętości (Ustawienia > Prywatność > Autoodpowiedzi). -- Propozycje teleportacji będą odrzucane. +- Inni Rezydenci będą otrzymywać Twoją wiadomość Trybu Zajętości (Ustawienia > Ogólne). - Propozycje rozmów głosowych będą odrzucane. <usetemplate ignoretext="Status zmieniony na Tryb Zajętości" name="okignore" /> </notification> @@ -1533,6 +1679,17 @@ Chcesz ją opuścić? <notification name="JoinedTooManyGroups"> Należysz już do maksymalnej ilości grup. Opuść proszę przynajmniej jedną grupę żeby przyjąć członkostwo w tej grupie, albo odmów. </notification> + <notification name="GroupLimitInfo"> + Rezydenci z członkostwem podstawowym mogą dołączyć do [MAX_BASIC] grup. +Członkostwo premium pozwala na [MAX_PREMIUM]. [https://secondlife.com/my/account/membership.php? Dowiedz się więcej] + <usetemplate name="okbutton" yestext="Zamknij" /> + </notification> + <notification name="GroupLimitInfoPlus"> + Rezydenci z członkostwem podstawowym mogą dołączyć do [MAX_BASIC] grup. +Członkostwo premium pozwala na [MAX_PREMIUM]. Członkostwo +Premium Plus pozwala na [MAX_PREMIUM_PLUS]. [https://secondlife.com/my/account/membership.php? Dowiedz się więcej] + <usetemplate name="okbutton" yestext="Zamknij" /> + </notification> <notification name="KickUser"> Wyrzuć tego Rezydenta, wysyłając następujący komunikat. <form name="form"> @@ -1543,7 +1700,7 @@ Chcesz ją opuścić? </form> </notification> <notification name="KickAllUsers"> - Z jakim komunikatem wyrzucić wszystkich użytkowników z regionu? + Z jakim komunikatem wyrzucić wszystkich użytkowników ze świata? <form name="form"> <input name="message"> Administrator wylogował Cię. @@ -1644,7 +1801,7 @@ co przekracza limit [LIMIT]. <notification name="TeleportViaSLAPP"> Na pewno chcesz się teleportować do <nolink>[LOCATION]</nolink>? <usetemplate ignoretext="Potwierdź próbę teleportacji przez SLAPP" name="okcancelignore" notext="Anuluj" yestext="Teleportuj" /> - </notification> + </notification> <notification name="TeleportToPick"> Teleportować do [PICK]? <usetemplate ignoretext="Potwierdź, że chcesz teleportować się do miejsca w Ulubionych" name="okcancelignore" notext="Anuluj" yestext="Teleportuj" /> @@ -1674,7 +1831,7 @@ Kontynuować? <notification label="Zmiana dostępu do Majątku Lindenów" name="ChangeLindenAccess"> Dokonujesz zmiany w liście dostępu Regionu głównego należącego do Lindenów (Regiony Główne, Teen Grid, Orientacja). -Żądana operacja jest wyjątkowo niebezpieczna dla wszystkich Rezydentów przebywających w regionie i powinna być używana wyłącznie w celu zablokowania opcji pozwalającej na przeniesienie obiektów/L$ do/z sieci. +Żądana operacja jest wyjątkowo niebezpieczna dla wszystkich Rezydentów przebywających w regionie i powinna być używana wyłącznie w celu zablokowania opcji pozwalającej na przeniesienie obiektów/L$ do/ze świata. Dodatkowo, zmiany dokonane w Regionie Głównym mogą spowodować problemy przestrzeni serwerowej innych regionów. Kontynuować? @@ -1712,6 +1869,30 @@ Kontynuować? Usunąć zarządcę majątku tylko z tego majątku czy z [ALL_ESTATES]? <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek" /> </notification> + <notification label="Wybierz Majątek" name="EstateAllowedExperienceAdd"> + Dodać do listy dostępu tylko do tego majątku czy do [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> + </notification> + <notification label="Wybierz Majątek" name="EstateAllowedExperienceRemove"> + Usunąć z listy dostępu tylko z tego majątku czy do [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> + </notification> + <notification label="Wybierz Majątek" name="EstateBlockedExperienceAdd"> + Zablokować dostęp tylko dla tego majątku czy dla [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> + </notification> + <notification label="Wybierz Majątek" name="EstateBlockedExperienceRemove"> + Odblokować dostęp tylko dla tego majątku czy dla [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> + </notification> + <notification label="Wybierz Majątek" name="EstateTrustedExperienceAdd"> + Dodać do listy kluczy tylko dla tego majątku czy dla [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> + </notification> + <notification label="Wybierz Majątek" name="EstateTrustedExperienceRemove"> + Usunąć z listy kluczy tylko dla tego majątku czy dla [ALL_ESTATES]? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/> + </notification> <notification label="Potwierdź Wyrzucenie" name="EstateKickUser"> Wyrzucić [EVIL_USER] z tego majątku? <usetemplate name="okcancelbuttons" notext="Anuluj" /> @@ -1720,8 +1901,18 @@ Kontynuować? Na pewno chcesz zmienić treść umowy dla tego majątku? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> + <notification name="EstateParcelAccessOverride"> + Odznaczenie tej opcji może usunąć ograniczenia nadane przez właścicieli działek w celu zapobiegania dokuczaniu, zachowaniu prywatności lub aby chronić nieletnich przed materiałami dla dorosłych. Porozmawiaj z właścicielami działek, jeśli to konieczne. + </notification> + <notification name="EstateParcelEnvironmentOverride"> + (Zmiana w całym majątku: [ESTATENAME]) Odznaczenie tej opcji spowoduje usunięcie wszelkich niestandardowych otoczeń, które zostały dodane do działek przez ich właścicieli. Przedyskutuj zmianę z właścicielami działek w razie potrzeby. +Czy chcesz kontynuować? + <usetemplate name="okcancelbuttons" notext="Anuluj" /> + </notification> <notification name="RegionEntryAccessBlocked"> - Region, który próbujesz odwiedzić zawiera treści przekraczające Twoje bieżące preferencje. Możesz je zmienić używając Ja > Ustawienia > Ogólne. + Region, który próbujesz odwiedzić, ma klasyfikację treści przekraczającą Twoje maksymalne preferencje. Możesz je zmienić używając Ja > Ustawienia > Ogólne. + +Pełne informacje na temat klasyfikacji treści można znaleźć [https://community.secondlife.com/knowledgebase/english/maturity-ratings-r52/ tutaj]. </notification> <notification name="RegionEntryAccessBlocked_AdultsOnlyContent"> Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], które są dostępne tylko dla dorosłych. @@ -1745,7 +1936,9 @@ Kontynuować? Mamy trudności techniczne z Twoim wejściem w region, ponieważ Twoje preferencje są rozsynchronizowane z serwerem. </notification> <notification name="TeleportEntryAccessBlocked"> - Region, który próbujesz odwiedzić zawiera treści przekraczające Twoje bieżące preferencje. Możesz je zmienić używając Ja > Ustawienia > Ogólne. + Region, który próbujesz odwiedzić, ma klasyfikację treści przekraczającą Twoje maksymalne preferencje. Możesz je zmienić używając Ja > Ustawienia > Ogólne. + +Pełne informacje na temat klasyfikacji treści można znaleźć [https://community.secondlife.com/knowledgebase/english/maturity-ratings-r52/ tutaj]. </notification> <notification name="TeleportEntryAccessBlocked_AdultsOnlyContent"> Region, który próbujesz odwiedzić zawiera treści [REGIONMATURITY], które są dostępne tylko dla dorosłych. @@ -1777,7 +1970,7 @@ Kontynuować? Mamy trudności techniczne z Twoim teleportem, ponieważ Twoje preferencje są rozsynchronizowane z serwerem. </notification> <notification name="RegionTPSpecialUsageBlocked"> - Nie można wejść do tego regionu. '[REGION_NAME]' jest miejscem z grami (Skill Gaming Region) - musisz spełnić określone wymagania, jeśli chcesz go odwiedzić. Aby dowiedzieć się więcej zapoznaj się z [http://wiki.secondlife.com/wiki/Linden_Lab_Official:Skill_Gaming_in_Second_Life Skill Gaming FAQ]. + Nie można wejść do tego regionu. '[REGION_NAME]' jest miejscem z grami (Skill Gaming Region) - musisz spełnić określone wymagania, jeśli chcesz go odwiedzić. Aby dowiedzieć się więcej zapoznaj się z [http://wiki.secondlife.com/wiki/Linden_Lab_Official:Second_Life_Skill_Gaming_FAQ Skill Gaming FAQ]. </notification> <notification name="PreferredMaturityChanged"> Nie będziesz już otrzymywać żadnych powiadomień związanych z odwiedzaniem regionów z treściami [RATING]. Możesz zmienić swoją preferencję treści w przyszłości używając Ja > Ustawienia > Ogólne w pasku menu. @@ -1787,6 +1980,8 @@ Kontynuować? </notification> <notification name="LandClaimAccessBlocked"> Ziemia, którą próbujesz odzyskać ma klasyfikację treści przekraczającą Twoje obecne preferencje treści. Możesz je zmienić używając Ja > Ustawienia > Ogólne w pasku menu. + +Pełne informacje na temat klasyfikacji treści można znaleźć [https://community.secondlife.com/knowledgebase/english/maturity-ratings-r52/ tutaj]. </notification> <notification name="LandClaimAccessBlocked_AdultsOnlyContent"> Tylko dorośli mogą odzyskać tą ziemię. @@ -1808,6 +2003,8 @@ Kontynuować? </notification> <notification name="LandBuyAccessBlocked"> Ziemia, którą próbujesz kupić ma klasyfikację treści przekraczającą Twoje obecne preferencje treści. Możesz je zmienić używając Ja > Ustawienia > Ogólne w pasku menu. + +Pełne informacje na temat klasyfikacji treści można znaleźć [https://community.secondlife.com/knowledgebase/english/maturity-ratings-r52/ tutaj]. </notification> <notification name="LandBuyAccessBlocked_AdultsOnlyContent"> Tylko dorośli mogą kupić tą ziemię. @@ -1830,6 +2027,9 @@ Kontynuować? <notification name="TooManyPrimsSelected"> Zbyt wiele wybranych obiektów. Wybierz [MAX_PRIM_COUNT] lub mniej i spróbuj ponownie </notification> + <notification name="TooManyScriptsSelected"> + Zbyt wiele skryptów w wybranych obiektach. Wybierz mniej obiektów i spróbuj ponownie + </notification> <notification name="ProblemImportingEstateCovenant"> Problem z importem umowy majątku. </notification> @@ -1956,7 +2156,6 @@ Wpisz hasło ponownie i kliknij na OK. <notification name="SetPickLocation"> Uwaga: Lokalizacja tego miejsca została zaktualizowana, ale pozostałe szczegóły zachowają oryginalne wartości. - </notification> <notification name="MoveInventoryFromObject"> Wybrane obiekty Szafy nie mają praw kopiowania. @@ -1986,6 +2185,9 @@ Przenieść obiekty szafy? <notification name="PayObjectFailed"> Płatność nie powiodła się: nie można znaleźć obiektu. </notification> + <notification name="PaymentBlockedButtonMismatch"> + Płatność nie powiodła się: zapłacona suma nie pasuje do żadnego z przycisków płatności dla tego obiektu. + </notification> <notification name="OpenObjectCannotCopy"> W tym obiekcie nie ma elementów które możesz skopiować. </notification> @@ -1998,8 +2200,8 @@ Przenieść obiekty szafy? <usetemplate ignoretext="Potwierdź dodanie uczestników rozmowy" name="okcancelignore" notext="Anuluj" /> </notification> <notification name="ConfirmQuit"> - Na pewno chcesz zakończyć? - <usetemplate ignoretext="Na pewno chcesz zakończyć?" name="okcancelignore" notext="Nie kończ" yestext="Wyłącz" /> + Na pewno chcesz zakończyć sesję i wyłączyć przeglądarkę? + <usetemplate ignoretext="Na pewno chcesz zakończyć sesję?" name="okcancelignore" notext="Anuluj" yestext="Zakończ"/> </notification> <notification name="ConfirmRestoreToybox"> Ta akcja przywróci domyślny układ przycisków i pasków. @@ -2015,12 +2217,24 @@ Nie możesz tego cofnąć. </notification> <notification name="DeleteItems"> [QUESTION] - <usetemplate ignoretext="Potwierdź, że na pewno chcesz skasować obiekty" name="okcancelignore" notext="Anuluj" /> + <form name="form"> + <ignore name="ignore" text="Potwierdź przed kasowaniem obiektów" /> + <button name="No" text="Anuluj" /> + </form> </notification> - <notification name="HelpReportAbuseEmailLL"> - Używaj tej opcji do zgłaszania nadużyć [http://secondlife.com/corporate/tos.php Warunków Umowy (Terms of Service)] i [http://secondlife.com/corporate/cs.php Standardów Społeczeństwa (Community Standards)]. + <notification name="DeleteFilteredItems"> + Twoja Szafa jest obecnie filtrowana i nie wszystkie obiekty jakie masz zamiar usunąć są teraz widoczne. -Wszystkie zgłoszone nadużycia są badane i rozwiązywane. +Czy na pewno chcesz je skasować? + <usetemplate ignoretext="Potwierdź przed kasowaniem filtrowanych obiektów" name="okcancelignore" notext="Anuluj" /> + </notification> + <notification name="ConfirmUnlink"> + To duże zaznaczenie z wieloma zestawami obiektów. Jeśli rozłączysz, to ponowne połączenie może nie być możliwe. Możesz chcieć na wszelki wypadek wziąć kopie zestawów obiektów do swojej szafy. + <usetemplate ignoretext="Potwierdź podczas rozłączania zestawu obiektów" name="okcancelignore" notext="Anuluj" yestext="Rozłącz" /> + </notification> + <notification name="HelpReportAbuseConfirm"> + Dziękujemy za poświęcenie czasu na poinformowanie nas o tym problemie. +Przejrzymy Twoje zgłoszenie pod kątem ewentualnych nadużyć i podejmiemy odpowiednią akcję. </notification> <notification name="HelpReportAbuseSelectCategory"> Wybierz kategorię dla tego raportu o nadużyciu. @@ -2048,7 +2262,7 @@ Dokładne dane pomogą nam w klasyfikacji i przetwarzaniu raportu. Jeżeli składasz raport dotyczący naruszenia praw autorskich proszę się upewnić, że robisz to poprawnie: -(1) Przypadek Nadużycia. Możesz złożyć raport jeżeli sądzisz, że Rezydent narusza system przywilejów [SECOND_LIFE], na przykład używając CopyBot lub podobnych narzędzi robiących kopie, naruszając prawa autorskie. Komisja Nadużyć bada wykroczenia i stosuje akcje dyscyplinarne za zachowania sprzeczne z zasadami [http://secondlife.com/corporate/tos.php Warunków Umowy] i [http://secondlife.com/corporate/cs.php Standardów Społeczeństwa] w [SECOND_LIFE]. Komisja Nadużyć nie zajmuje się i nie odpowiada na żądania usunięcia treści ze środowiska [SECOND_LIFE]. +(1) Przypadek Nadużycia. Możesz złożyć raport jeżeli sądzisz, że Rezydent narusza system przywilejów [SECOND_LIFE], na przykład używając CopyBot lub podobnych narzędzi robiących kopie, naruszając prawa autorskie. Komisja Nadużyć bada wykroczenia i stosuje akcje dyscyplinarne za zachowania sprzeczne z zasadami Warunków Umowy [http://secondlife.com/corporate/tos.php Warunków Umowy] i [http://secondlife.com/corporate/cs.php Standardów Społeczeństwa] w [SECOND_LIFE]. Komisja Nadużyć nie zajmuje się i nie odpowiada na żądania usunięcia treści ze środowiska [SECOND_LIFE]. (2) Przypadek DMCA lub Usuwanie Treści. Aby wystąpić z żądaniem o usunięcie treści ze środowiska [SECOND_LIFE] MUSISZ przedłożyć ważne zawiadomienie o nadużyciu zgodne z naszą polityką DMCA [http://secondlife.com/corporate/dmca.php DMCA Policy]. @@ -2084,13 +2298,31 @@ Chcesz wyłączyć Tryb Zajętości przed zakończeniem tej transakcji? <button ignore="Nigdy nie wyłączaj trybu Zajętości" name="No" text="Anuluj" /> </form> </notification> + <notification label="Działka odtwarza media" name="ParcelPlayingMedia"> + Ta lokalizacja odtwarza media: +[URL] +Czy chcesz je odtworzyć? + <form name="form"> + <ignore name="ignore" text="Zawsze wybieraj tę opcję dla tej ziemi."/> + <button ignore="Odtwarzaj media" name="Yes" text="Odtwarzaj"/> + <button ignore="Ignoruj media" name="No" text="Nie odtwarzaj"/> + </form> + </notification> <notification name="ConfirmDeleteProtectedCategory"> Ten folder '[FOLDERNAME]' to folder systemowy. Usunięcie folderu systemowego spowoduje niestabilność. Czy na pewno chcesz go skasować? <usetemplate ignoretext="Potwierdź zanim folder systemu zostanie skasowany" name="okcancelignore" notext="Anuluj" /> </notification> + <notification name="PurgeSelectedItems"> + [COUNT] przedmiotów zostanie usuniętych. Na pewno chcesz permanentnie usunąć zaznaczoną zawartość Kosza? + <usetemplate name="okcancelbuttons" notext="Anuluj" /> + </notification> <notification name="ConfirmEmptyTrash"> - Na pewno chcesz permanentnie usunąć zawartość Kosza? - <usetemplate ignoretext="Potwierdź przed usunięciem zawartości Kosza" name="okcancelignore" notext="Anuluj" /> + [COUNT] przedmiotów i folderów zostanie usuniętych. Na pewno chcesz permanentnie usunąć zawartość Kosza? + <usetemplate name="okcancelbuttons" notext="Anuluj" /> + </notification> + <notification name="TrashIsFull"> + Twój kosz się przepełnia. Może to sprawić, że będziesz mieć problemy z zalogowaniem się. + <usetemplate name="okcancelbuttons" notext="Wyczyszczę kosz ręcznie później" yestext="Sprawdź kosz teraz" /> </notification> <notification name="ConfirmClearBrowserCache"> Na pewno chcesz wyczyścić bufory przeglądarki internetowej, wyszukiwania i podróży? @@ -2112,6 +2344,12 @@ Chcesz wyłączyć Tryb Zajętości przed zakończeniem tej transakcji? Na pewno chcesz permanentnie usunąć zawartość Twojego folderu Zagubione i odnalezione? <usetemplate ignoretext="Potwierdź przed usunięciem zawartości foldera Zagubione i odnalezione" name="okcancelignore" notext="Nie" yestext="Tak" /> </notification> + <notification name="ConfirmReplaceLink"> + Zamierzasz zastąpić link do części ciała o typie '[TYPE]' elementem, który nie pasuje do tego typu. + +Na pewno chcesz kontynuować? + <usetemplate ignoretext="Potwierdź przed zamianą linku" name="okcancelignore" notext="Nie" yestext="Tak" /> + </notification> <notification name="CopySLURL"> Następujący link SLurl został skopiowany do schowka: [SLURL] @@ -2132,7 +2370,15 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t Ten plik cyklu dziennego używa brakującego pliku nieba: [SKY]. </notification> <notification name="WLRegionApplyFail"> - Ustawienia nie mogą zostać zastosowane w regionie. Opuszczenie regionu, a następnie powrócenie do niego może naprawić problem. Powód: [FAIL_REASON] + Ustawienia nie mogą zostać zastosowane w regionie. Powód: [FAIL_REASON] + </notification> + <notification name="WLLocalTextureDayBlock"> + Lokalna tekstura jest używana na ścieżce [TRACK], klatce #[FRAMENO] ([FRAME]%) w polu [FIELD]. +Otoczenia nie mogą zostać zapisane gdy lokalne tekstury są w użyciu. + </notification> + <notification name="WLLocalTextureFixedBlock"> + Lokalna tekstura jest używana w polu [FIELD]. +Otoczenia nie mogą zostać zapisane gdy lokalne tekstury są w użyciu. </notification> <notification name="EnvCannotDeleteLastDayCycleKey"> Nie można usunąć ostatniego klucza w cyklu dnia, bo nie może on być pusty. Zmodyfikuj ten klucz zamiast go usuwać, a potem dodaj nowy. @@ -2182,13 +2428,10 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t Ciąg [STRING_NAME] nie został znaleziony w strings.xml </notification> <notification name="Cancelled"> - Anulowane - </notification> - <notification name="CancelledSit"> - Siadanie anulowane + Anulowane. </notification> <notification name="CancelledAttach"> - Dołączanie anulowane + Dołączanie anulowane. </notification> <notification name="ReplacedMissingWearable"> Brakujące ubranie/części ciała zastąpiono domyślnymi obiektami. @@ -2197,23 +2440,26 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t Temat: [SUBJECT], Treść: [MESSAGE] </notification> <notification name="FriendOnlineOffline"> - <nolink>[NAME]</nolink> jest [STATUS] + <nolink>[NAME]</nolink> jest [STATUS]. </notification> <notification name="AddSelfFriend"> Niewątpliwie znasz siebie najlepiej, ale nie możesz dodać swojej własnej osoby do listy znajomych. </notification> + <notification name="AddSelfRenderExceptions"> + Nie możesz dodać siebie do listy wyjątków renderowania. + </notification> <notification name="UploadingAuctionSnapshot"> - Ładowanie obrazów z Internetu... + Przesyłanie obrazów... (Zajmuje około 5 minut.) </notification> <notification name="UploadPayment"> - Ładowanie kosztowało [AMOUNT]L$. + Przesyłanie kosztowało [AMOUNT]L$. </notification> <notification name="UploadWebSnapshotDone"> - Ładowanie obrazu z Internetu zakończone pomyślnie. + Przesyłanie obrazu do sieci zakończone pomyślnie. </notification> <notification name="UploadSnapshotDone"> - Ładowanie zdjęcia zakończone pomyślnie. + Przesyłanie zdjęcia zakończone pomyślnie. </notification> <notification name="TerrainDownloaded"> Plik terrain.raw ściągnięty. @@ -2377,7 +2623,7 @@ Zainstaluj wtyczki ponownie lub skontaktuj się z dostawcą, jeśli problem nada Obiekty z działki należącej do Rezydenta [NAME] zostały zwrócone do jego Szafy. </notification> <notification name="GroupObjectsReturned"> - Obiekty z wybranej działki przypisane do grupy [GROUPNAME] zostały zwrócone do szaf ich właścicieli. + Obiekty z wybranej działki przypisane do grupy <nolink>[GROUPNAME]</nolink> zostały zwrócone do szaf ich właścicieli. Przekazywalne obiekty przekazane grupie zostały zwrócone do ich poprzednich właścicieli. Nieprzekazywalne obiekty przekazane grupie zostały usunięte. </notification> @@ -2400,7 +2646,7 @@ Nie możesz tutaj latać. Popychanie niedozwolone. Nie możesz tutaj popychać innych chyba, że jesteś właścicielem tej działki. </notification> <notification name="NoVoice"> - Ta działka nie pozwala na rozmowy głosowe. + Ta działka nie pozwala na rozmowy głosowe. Nie będziesz słyszeć, jak ktoś rozmawia. </notification> <notification name="NoBuild"> Ta działka nie pozwala na budowanie. Nie możesz tworzyć tutaj obiektów. @@ -2408,6 +2654,10 @@ Nie możesz tutaj latać. <notification name="PathfindingDirty"> W tym regionie są oczekujące zmiany w odnajdywaniu ścieżek. Jeśli posiadasz prawa budowania możesz odświeżyć region klikając na przycisk “Odśwież region”. </notification> + <notification name="PathfindingDirtyRebake"> + W tym regionie są oczekujące zmiany w odnajdywaniu ścieżek. Jeśli posiadasz prawa budowania możesz odświeżyć region klikając na przycisk “Odśwież region”. + <usetemplate name="okbutton" yestext="Odśwież" /> + </notification> <notification name="DynamicPathfindingDisabled"> Dynamiczne odnajdywanie ścieżek nie jest włączone w tym regionie. Oskryptowane obiekty używające odwołań LSL wykorzystujących odnajdywanie ścieżek mogą nie działać zgodnie z oczekiwaniami. </notification> @@ -2432,13 +2682,15 @@ Nie możesz tutaj latać. Tylko publiczne działki w tym regionie, co Ty, mogą być przejęte. </notification> <notification name="RegionTPAccessBlocked"> - Region, który próbujesz odwiedzić ma klasyfikację treści przekraczającą Twoje obecne preferencje treści. Możesz je zmienić używając Ja > Ustawienia > Ogólne w pasku menu. + Region, który próbujesz odwiedzić, ma klasyfikację treści przekraczającą Twoje maksymalne preferencje. Możesz je zmienić używając Ja > Ustawienia > Ogólne. + +Pełne informacje na temat klasyfikacji treści można znaleźć [https://community.secondlife.com/knowledgebase/english/maturity-ratings-r52/ tutaj]. </notification> <notification name="RegionAboutToShutdown"> Region, do którego próbujesz się dostać, właśnie się wyłącza. </notification> <notification name="URBannedFromRegion"> - Zostałeś zbanowany w regionie. + Zostałeś/aś zbanowany/a w regionie. </notification> <notification name="NoTeenGridAccess"> Twoje konto nie może zostać połączone z podanym regionem Teen Grid. @@ -2529,7 +2781,7 @@ Spróbuj ponownie za kilka minut. [ITEM_SLURL] <form name="form"> <button name="Show" text="Pokaż" /> - <button name="Discard" text="Wyrzuć" /> + <button name="Discard" text="Odrzuć" /> <button name="Mute" text="Zablokuj" /> </form> </notification> @@ -2673,22 +2925,80 @@ Czy się zgadzasz? <button name="Mute" text="Zablokuj" /> </form> </notification> - <notification name="ScriptQuestionCaution"> - Obiekt '<nolink>[OBJECTNAME]</nolink>' chciałby uzyskać zgodę na pobieranie Linden Dolarów (L$) z Twojego konta. Jeśli zezwolisz, to będzie on mógł brać z niego wszystkie lub część środków, w dowolnej chwili, bez dodatkowych ostrzeżeń. + <notification name="ExperienceAcquireFailed"> + Nie można uzyskać nowej przygody: +[ERROR_MESSAGE] + </notification> + <notification name="NotInGroupExperienceProfileMessage"> + Zmiana do grupy przygody została zignorowana, ponieważ właściciel nie jest członkiem wybranej grupy. + </notification> + <notification name="UneditableExperienceProfileMessage"> + Niemodyfikowalne pole '[field]' zostało zignorowane podczas aktualizacji profilu przygody. + </notification> + <notification name="RestrictedToOwnerExperienceProfileMessage"> + Zignorowano zmiany dla pola '[field]', ponieważ może ono być zmieniane tylko przez właściciela przygody. + </notification> + <notification name="MaturityRatingExceedsOwnerExperienceProfileMessage"> + Nie możesz ustawić poziomu treści dla przygody większego, niż ten właściciela. + </notification> + <notification name="RestrictedTermExperienceProfileMessage"> + Następujące rzeczy uniemożliwiły zaktualizowanie nazwy/opisu profilu przygody: [extra_info] + </notification> + <notification name="TeleportedHomeExperienceRemoved"> + Zostałeś/aś wyteleportowany/a z regionu [region_name] za usunięcie przygody secondlife:///app/experience/[public_id]/profile i wobec tego nie możesz tam dłużej przebywać. + <form name="form"> + <ignore name="ignore" text="Wyteleportowanie z regionu za usunięcie przygody"/> + </form> + </notification> + <notification name="TrustedExperienceEntry"> + Dostałeś/aś przyzwolenie na przebywanie w regionie [region_name], ponieważ zgodziłeś/aś się uczestniczyć w przygodzie secondlife:///app/experience/[public_id]/profile - usunięcie jej może spowodować, że zostaniesz usunięty/a z regionu. + <form name="form"> + <ignore name="ignore" text="Przyzwolenie na przebywanie w regionie po akceptacji przygody"/> + </form> + </notification> + <notification name="TrustedExperiencesAvailable"> + Nie masz dostępu do tego miejsca. Może będziesz go mieć, jeśli zaakceptujesz następującą przygodę: -Zanim zezwolisz na dostęp upewnij się, że wiesz jaki to obiekt i dlaczego pyta o zgodę - oraz że ufasz jego twórcy. Jeśli nie masz pewności kliknij na Odmów. +[EXPERIENCE_LIST] + +Inne przygody również mogą stać się dostępne. + </notification> + <notification name="ExperienceEvent"> + Obiekt dostał zezwolenie: [EventType] - poprzez przygodę: secondlife:///app/experience/[public_id]/profile +Właściciel: secondlife:///app/agent/[OwnerID]/inspect +Nazwa obiektu: [ObjectName] +Nazwa działki: [ParcelName] + </notification> + <notification name="ExperienceEventAttachment"> + Dodatek na Tobie dostał zezwolenie: [EventType] - poprzez przygodę: secondlife:///app/experience/[public_id]/profile +Właściciel: secondlife:///app/agent/[OwnerID]/inspect + </notification> + <notification name="ScriptQuestionExperience"> + Obiekt '<nolink>[OBJECTNAME]</nolink>' którego właścicielem jest '[NAME]' prosi Cię o udział w przygodzie ([GRID_WIDE]): + +[EXPERIENCE] + +Gdy zezwolenie zostanie zatwierdzone nie zobaczysz tej wiadomości ponownie, dla tej przygody - chyba, że zostanie ono cofnięte w profilu przygody. + +Skrypty powiązane z tą przygodą będą mogły robić następujące rzeczy w regionach, gdzie przygoda jest aktywna: + +[QUESTIONS] + +Czy wyrażasz na to zgodę? <form name="form"> - <button name="Grant" text="Zezwól na dostęp" /> - <button name="Deny" text="Odmów" /> + <button name="BlockExperience" text="Zablokuj przygodę"/> + <button name="Mute" text="Zablokuj obiekt"/> + <button name="Yes" text="Tak"/> + <button name="No" text="Nie"/> </form> </notification> - <notification name="UnknownScriptQuestion"> - Zezwolenia, o jakie prosi skrypt z '<nolink>[OBJECTNAME]</nolink>', którego właścicielem jest '[NAME]', nie są rozpoznawane przez przeglądarkę i nie mogą zostać udzielone. + <notification name="ScriptQuestionCaution"> + Obiekt '<nolink>[OBJECTNAME]</nolink>' chciałby uzyskać zgodę na pobieranie Linden Dolarów (L$) z Twojego konta. Jeśli zezwolisz, to będzie on mógł brać z niego wszystkie lub część środków, w dowolnej chwili, bez dodatkowych ostrzeżeń. -Aby ich udzielić prosimy zaktualizować przeglądarkę do najnowszej wersji z [DOWNLOADURL]. +Zanim zezwolisz na dostęp upewnij się, że wiesz jaki to obiekt i dlaczego pyta o zgodę - oraz że ufasz jego twórcy. Jeśli nie masz pewności kliknij na Odmów. <form name="form"> - <button name="Deny" text="Ok, odmów jednorazowo" /> - <button name="Mute" text="Zablokuj/Wycisz" /> + <button name="Grant" text="Zezwól na dostęp"/> + <button name="Deny" text="Odmów"/> </form> </notification> <notification name="ScriptDialog"> @@ -2700,21 +3010,13 @@ Aby ich udzielić prosimy zaktualizować przeglądarkę do najnowszej wersji z [ </form> </notification> <notification name="ScriptDialogGroup"> - '<nolink>[TITLE]</nolink>' - [GROUPNAME] + '<nolink>[TITLE]</nolink>' - <nolink>[GROUPNAME]</nolink> [MESSAGE] <form name="form"> <button name="Client_Side_Mute" text="Blokuj" /> <button name="Client_Side_Ignore" text="Zignoruj" /> </form> </notification> - <notification name="FirstBalanceIncrease"> - Właśnie otrzymałeś/aś [AMOUNT] L$. -Twój stan L$ jest widoczny w prawym górnym narożniku ekranu. - </notification> - <notification name="FirstBalanceDecrease"> - Właśnie wydałeś/aś [AMOUNT] L$. -Twój stan L$ jest widoczny w prawym górnym narożniku ekranu. - </notification> <notification name="BuyLindenDollarSuccess"> Dziękujemy za wpłatę! @@ -2756,7 +3058,7 @@ Wybierz Zablokuj żeby wyciszyć wszystkie wiadomości od tej osoby. Zaoferowano [NAME] obiekty i ta osoba została automatycznie odblokowana. </notification> <notification name="VoiceInviteGroup"> - [NAME] zaczyna rozmowę głosową z grupą [GROUP]. + [NAME] zaczyna rozmowę głosową z grupą <nolink>[GROUP]</nolink>. Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia. Wybierz Zablokuj żeby wyciszyć dzwoniącą osobę. <form name="form"> @@ -2792,31 +3094,34 @@ Wybierz Zablokuj żeby wyciszyć tą osobę. Przepraszamy. Limit rozmów został przekroczony w tym obszarze. Spróbuj w innym miejscu. </notification> <notification name="VoiceChannelDisconnected"> - [VOICE_CHANNEL_NAME] odłączył się. Przełączanie do rozmowy w czacie lokalnym. + [VOICE_CHANNEL_NAME] odłączył się. Przełączanie do rozmowy w czacie w pobliżu. </notification> <notification name="VoiceChannelDisconnectedP2P"> - [VOICE_CHANNEL_NAME] skończył rozmowę. Przełączanie do rozmowy w czacie lokalnym. + [VOICE_CHANNEL_NAME] skończył rozmowę. Przełączanie do rozmowy w czacie w pobliżu. </notification> <notification name="P2PCallDeclined"> - [VOICE_CHANNEL_NAME] odmówił połączenia. Przełączanie do rozmowy w czacie lokalnym. + [VOICE_CHANNEL_NAME] odmówił połączenia. Przełączanie do rozmowy w czacie w pobliżu. </notification> <notification name="P2PCallNoAnswer"> - [VOICE_CHANNEL_NAME] nie odpowiada. Przełączanie do rozmowy w czacie lokalnym. + [VOICE_CHANNEL_NAME] nie odpowiada. Przełączanie do rozmowy w czacie w pobliżu. </notification> <notification name="VoiceChannelJoinFailed"> - Brak połączenia z [VOICE_CHANNEL_NAME], spróbuj później. Przełączanie do rozmowy w czacie lokalnym. + Brak połączenia z [VOICE_CHANNEL_NAME], spróbuj później. Przełączanie do rozmowy w czacie w pobliżu. </notification> <notification name="VoiceEffectsExpired"> Subskrypcja jednego lub więcej Przekształceń Głosu wygasła. [[URL] Kliknij tutaj] oby odnowić subskrypcję. +Jeśli jesteś użytkownikiem premium, to [[PREMIUM_URL] kliknij tutaj] aby otrzymać swój perk Przekształceń Głosu. </notification> <notification name="VoiceEffectsExpiredInUse"> Czas aktywności Przekształcenia Głosu wygasł, normalne ustawienia Twojego głosu zostały zastosowane. [[URL] Kliknij tutaj] aby odnowić subskrypcję. +Jeśli jesteś użytkownikiem premium, to [[PREMIUM_URL] kliknij tutaj] aby otrzymać swój perk Przekształceń Głosu. </notification> <notification name="VoiceEffectsWillExpire"> Jedno lub więcej z Twoich Przekształceń Głosu wygaśnie za mniej niż [INTERVAL] dni. [[URL] Kliknij tutaj] aby odnowić subskrypcję. +Jeśli jesteś użytkownikiem premium, to [[PREMIUM_URL] kliknij tutaj] aby otrzymać swój perk Przekształceń Głosu. </notification> <notification name="VoiceEffectsNew"> Nowe Przekształcenia Głosu są dostępne! @@ -2859,6 +3164,31 @@ Zostaną zablokowane na kilka sekund dla bezpieczeństwa. <notification name="AttachmentSaved"> Załącznik został zapisany. </notification> + <notification name="AppearanceToXMLSaved"> + Wygląd został zapisany do XML, w [PATH] + </notification> + <notification name="AppearanceToXMLFailed"> + Nie udało się zapisać wyglądu do XML. + </notification> + <notification name="SnapshotToComputerFailed"> + Nie można zapisać zrzutu ekranu do [PATH]: Dysk jest pełny. Potrzeba [NEED_MEMORY]KB, ale wolnego jest [FREE_MEMORY]KB. + </notification> + <notification name="SnapshotToLocalDirNotExist"> + Nie można zapisać zrzutu ekranu do [PATH]: Katalog nie istnieje. + </notification> + <notification name="PresetNotSaved"> + Błąd podczas zapisywania ustawienia [NAME]. + </notification> + <notification name="DefaultPresetNotSaved"> + Nie można zastąpić domyślnego ustawienia. + </notification> + <notification name="PresetAlreadyExists"> + '[NAME]' jest w użyciu. Możesz zastąpić +to ustawienie lub wybrać inną nazwę. + </notification> + <notification name="PresetNotDeleted"> + Błąd podczas usuwania ustawienia [NAME]. + </notification> <notification name="UnableToFindHelpTopic"> Nie można znaleźć tematu pomocy dla tego elementu. </notification> @@ -2872,12 +3202,25 @@ Zostaną zablokowane na kilka sekund dla bezpieczeństwa. <notification name="VoiceIsMutedByModerator"> Twoja rozmowa głosowa została wyciszona przez moderatora. </notification> + <notification name="FailedToGetBenefits"> + Niestety nie udało nam się uzyskać informacji o korzyściach dla tej sesji. Nie powinno się to zdarzyć w normalnym środowisku produkcyjnym. Skontaktuj się z pomocą techniczną. Ta sesja nie będzie działać normalnie i zalecamy restart. + </notification> + <notification name="BulkUploadCostConfirmation"> + Spowoduje to przesłanie [COUNT] elementów o łącznym koszcie [COST]L$. Czy chcesz kontynuować przesyłanie? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Prześlij"/> + </notification> + <notification name="BulkUploadNoCompatibleFiles"> + Wybranych plików nie można przesłać zbiorczo. + </notification> + <notification name="BulkUploadIncompatibleFiles"> + Niektórych z wybranych plików nie można przesłać zbiorczo. + </notification> <notification name="UploadCostConfirmation"> - Załadowanie tego na serwer będzie kosztować [PRICE]L$, chcesz kontynuować? - <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Załaduj" /> + Przesłanie tego na serwer będzie kosztować [PRICE]L$, chcesz kontynuować? + <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Prześlij"/> </notification> <notification name="ConfirmClearTeleportHistory"> - Czy na pewno chcesz usunąć historię teleportacji? + Spowoduje to usunięcie całej listy odwiedzonych przez Ciebie miejsc i nie będzie można tego cofnąć. Kontynuować? <usetemplate name="okcancelbuttons" notext="Anuluj" /> </notification> <notification name="BottomTrayButtonCanNotBeShown"> @@ -2887,13 +3230,16 @@ Przycisk zostanie wyświetlony w przypadku dostatecznej ilości przestrzeni. <notification name="ShareNotification"> Zaznacz Rezydentów, z którymi chcesz się podzielić. </notification> + <notification name="MeshUploadErrorDetails"> + Nie można przesłać [LABEL]: [MESSAGE] +[DETAILS] Zobacz SecondLife.log, aby dowiedzieć się więcej. + </notification> <notification name="MeshUploadError"> - Nie można załadować [LABEL]: [MESSAGE] [IDENTIFIER] - -Zobacz log, aby dowiedzieć się więcej. + Nie można przesłać [LABEL]: [MESSAGE] +Zobacz SecondLife.log, aby dowiedzieć się więcej. </notification> <notification name="MeshUploadPermError"> - Wystąpił błąd podczas pobierania uprawnień ładowania meszy. + Wystąpił błąd podczas pobierania uprawnień przesyłania meszy. </notification> <notification name="RegionCapabilityRequestError"> Nie udało się uzyskać zdolności regionu: '[CAPABILITY]'. @@ -2973,14 +3319,26 @@ Awatar '[NAME]' rozpoczął edycję wyglądu. Awatar '[NAME]' opuścił edycję wyglądu. </notification> <notification name="NoConnect"> - Występuje problem z połączeniem [PROTOCOL] [HOSTID]. + Występuje problem z połączeniem [PROTOCOL] <nolink>[HOSTID]</nolink>. Proszę sprawdź swoją sieć i ustawienia firewall. </notification> <notification name="NoVoiceConnect"> - Występuje problem z Twoim połączeniem głosowym: + Nie możemy połączyć się z serwerem głosowym: [HOSTID] +Porty, które muszą być otwarte dla połączeń głosowych, to: +:TCP: 80, 443 +:UDP: 3478, 3479, 5060, 5062, 6250, 12000-32000 + +Proszę sprawdź swoją sieć i ustawienia firewall. +Wyłącz wszelkie funkcjonalności SIP ALG (Application Layer Gateway) w swoim routerze. + +Komunikacja głosowa nie będzie dostępna. + </notification> + <notification name="NoVoiceConnect-GIAB"> + Występuje problem z Twoim połączeniem głosowym. + Komunikacja głosowa nie będzie dostępna. Proszę sprawdź swoją sieć i ustawienia firewall. </notification> @@ -2990,20 +3348,27 @@ Awatar '[NAME]' pozostał w pełni załadowany. </notification> <notification name="AvatarRezSelfBakedTextureUploadNotification"> ( [EXISTENCE] sekund w Second Life ) -Wstępnie przetworzone tekstury [RESOLUTION] dla '[BODYREGION]' zostały załadowane po [TIME] sekundach. +Wstępnie przetworzone tekstury [RESOLUTION] dla '[BODYREGION]' zostały przesłane po [TIME] sekundach. </notification> <notification name="AvatarRezSelfBakedTextureUpdateNotification"> ( [EXISTENCE] sekund w Second Life ) Wstępnie przetworzone tekstury [RESOLUTION] zostały lokalnie zaktualizowane dla '[BODYREGION]' po [TIME] sekundach. </notification> <notification name="CannotUploadTexture"> - Nie można załadować tekstury. -[REASON] - </notification> + Nie można przesłać tekstury. +[REASON] + </notification> <notification name="LivePreviewUnavailable"> Nie można wyświetlić podglądu tej tekstury - jest niekopiowalna lub/oraz nietransferowalna. <usetemplate ignoretext="Ostrzegaj, gdy podgląd na żywo nie może wyświetlić niekopiowalnych/nietransferowalnych tekstur" name="okignore" /> </notification> + <notification name="FacePasteFailed"> + Wklejanie nie powiodło się. [REASON] + </notification> + <notification name="FacePasteTexturePermissions"> + Zastosowano teksturę z ograniczonymi uprawnieniami, obiekt odziedziczy więc te uprawnienia. + <usetemplate ignoretext="Wklejanie: zastosowano teksturę z ograniczonymi uprawnieniami" name="notifyignore" /> + </notification> <notification name="ConfirmLeaveCall"> Czy jesteś pewien/pewna, że chcesz zakończyć rozmowę? <usetemplate ignoretext="Potwierdź zanim rozmowa głosowa zostanie zakończona" name="okcancelignore" notext="Nie" yestext="Tak" /> @@ -3063,13 +3428,6 @@ Kliknij i przeciągnij gdziekolwiek aby obrócić widok. <notification name="ForceQuitDueToLowMemory"> SL zostanie wyłączone za 30 sekund, brak pamięci. </notification> - <notification name="PopupAttempt"> - Wyskakujące okienko zostało zablokowane. - <form name="form"> - <ignore name="ignore" text="Zezwól na wyskakujące okienka" /> - <button name="open" text="Otwórz wyskakujące okno" /> - </form> - </notification> <notification name="SOCKS_NOT_PERMITTED"> Serwer proxy SOCKS 5 "[HOST]:[PORT]" odmawia połączenia, brak dostępu na podstawie zestawu reguł. </notification> @@ -3161,7 +3519,7 @@ Kliknij i przeciągnij gdziekolwiek aby obrócić widok. </notification> <notification name="ConfirmHideUI"> Ta akcja ukryje wszystkie menu i przyciski. Aby je pokazać użyj skrótu [SHORTCUT] ponownie. - <usetemplate name="okcancelignore" notext="Anuluj" ignoretext="Potwierdź przed ukryciem interfejsu" /> + <usetemplate name="okcancelignore" notext="Anuluj" ignoretext="Potwierdź przed ukryciem interfejsu" /> </notification> <notification name="PathfindingLinksets_WarnOnPhantom"> Niektórym z zaznaczonych zbiorów części zostanie przełączony status Widmowy. @@ -3219,10 +3577,10 @@ Czy chcesz kontynuować? Wybrany obiekt ma wpływ na Navmesh. Dodanie elastyczności spowoduje usunięcie go z Navmesha. <usetemplate ignoretext="Wybrany obiekt ma wpływ na Navmesh. Dodanie elastyczności spowoduje usunięcie go z Navmesha." name="okcancelignore" notext="Anuluj" /> </notification> - <global name="UnsupportedGLRequirements"> - Wygląda na to, że Twój system nie spełnia wymagań sprzętowych [APP_NAME]. [APP_NAME] wymaga karty graficznej kompatybilnej z OpenGL z multiteksturami. Jeżeli masz taką kartę zainstaluj najnowsze sterowniki do niej i uaktualnienia systemu operacyjnego. + <global name="UnsupportedIntelDriver"> + Zainstalowany sterownik graficzny Intela dla [GPUNAME], wersja [VERSION], jest przestarzały i jest znany z powodowania awarii. Zdecydowanie zaleca się aktualizację do aktualnego sterownika Intel. -Jeżeli wciąż masz problemy sprawdź: [SUPPORT_SITE]. +Czy chcesz sprawdzić witrynę sterowników firmy Intel? </global> <global name="UnsupportedGPU"> - Twoja karta graficzna nie spełnia minimalnych wymagań. @@ -3230,9 +3588,12 @@ Jeżeli wciąż masz problemy sprawdź: [SUPPORT_SITE]. <global name="UnsupportedRAM"> - Pamięć Twojego systemu nie spełnia minimalnych wymagań. </global> + <global name="LLLeapUpdaterFailure"> + Nie udało się uruchomić usługi aktualizatora [UPDATER_APP]. Sprawdź, czy przeglądarka jest poprawnie zainstalowana i czy ma niezbędne uprawnienia do uruchomienia. Jeśli nadal będziesz mieć problemy, odwiedź [SUPPORT_SITE]. + </global> <global name="You can only set your 'Home Location' on your land or at a mainland Infohub."> - If you own a piece of land, you can make it your home location. -Otherwise, you can look at the Map and find places marked "Infohub". + Jeśli jesteś właścicielem działki, to możesz ustawić na niej miejsce startu. +W innym przypadku możesz poszukać na mapie miejsc oznaczonych jako "Infohub". </global> <global name="You died and have been teleported to your home location"> Nastąpiła śmierć i teleportacja do Miejsca Startu. @@ -3309,13 +3670,13 @@ Anulowano. Nie możesz tworzyć drzew i trawy na ziemi, która nie należy do Ciebie. </notification> <notification name="NoCopyPermsNoObject"> - Kopiowanie nie powiodło się, ponieważ nie masz zezwoleń na kopiowanie obiektu '[OBJ_NAME]'. + Kopiowanie nie powiodło się, ponieważ nie masz zezwoleń na kopiowanie obiektu <nolink>'[OBJ_NAME]'</nolink>. </notification> <notification name="NoTransPermsNoObject"> - Kopiowanie nie powiodło się, ponieważ obiekt '[OBJ_NAME]' nie może zostać przetransferowany do Ciebie. + Kopiowanie nie powiodło się, ponieważ obiekt <nolink>'[OBJ_NAME]'</nolink> nie może zostać przetransferowany do Ciebie. </notification> <notification name="AddToNavMeshNoCopy"> - Kopiowanie nie powiodło się, ponieważ obiekt '[OBJ_NAME]' ma wpływ na Navmesh. + Kopiowanie nie powiodło się, ponieważ obiekt <nolink>'[OBJ_NAME]'</nolink> ma wpływ na Navmesh. </notification> <notification name="DupeWithNoRootsSelected"> Wybrano duplikat bez obiektów głównych. @@ -3362,34 +3723,37 @@ Spróbuj ponownie za minutę. Zabieranie z powrotem do Szafy zostało wyłączone. </notification> <notification name="NoExistNoSaveToContents"> - Nie można zapisać '[OBJ_NAME]' do zawartości obiektu, ponieważ obiekt z którego został zrezzowany już nie istnieje. + Nie można zapisać <nolink>'[OBJ_NAME]'</nolink> do zawartości obiektu, ponieważ obiekt z którego został zrezzowany już nie istnieje. </notification> <notification name="NoModNoSaveToContents"> - Nie można zapisać '[OBJ_NAME]' do zawartości obiektu, ponieważ nie masz praw do modyfikacji obiektu '[DEST_NAME]'. + Nie można zapisać <nolink>'[OBJ_NAME]'</nolink> do zawartości obiektu, ponieważ nie masz praw do modyfikacji obiektu <nolink>'[DEST_NAME]'</nolink>. </notification> <notification name="NoSaveBackToInvDisabled"> - Nie można zabrać '[OBJ_NAME]' z powrotem do Szafy -- ta operacja została wyłączona. + Nie można zabrać <nolink>'[OBJ_NAME]'</nolink> z powrotem do Szafy -- ta operacja została wyłączona. </notification> <notification name="NoCopyNoSelCopy"> - Nie możesz skopiować tego, co jest zaznaczone, ponieważ nie masz prawa do skopiowania obiektu '[OBJ_NAME]'. + Nie możesz skopiować tego, co jest zaznaczone, ponieważ nie masz prawa do skopiowania obiektu <nolink>'[OBJ_NAME]'</nolink>. </notification> <notification name="NoTransNoSelCopy"> - Nie możesz skopiować tego, co jest zaznaczone, ponieważ obiektu '[OBJ_NAME]' nie można transferować. + Nie możesz skopiować tego, co jest zaznaczone, ponieważ obiektu <nolink>'[OBJ_NAME]'</nolink> nie można transferować. </notification> <notification name="NoTransNoCopy"> - Nie możesz skopiować tego, co jest zaznaczone, ponieważ obiektu '[OBJ_NAME]' nie można transferować. + Nie możesz skopiować tego, co jest zaznaczone, ponieważ obiektu <nolink>'[OBJ_NAME]'</nolink> nie można transferować. </notification> <notification name="NoPermsNoRemoval"> - Usunięcie obiektu '[OBJ_NAME]' z symulatora zostało wzbronione przez system zezwoleń. + Usunięcie obiektu <nolink>'[OBJ_NAME]'</nolink> z symulatora zostało wzbronione przez system zezwoleń. </notification> <notification name="NoModNoSaveSelection"> - Nie możesz zapisać tego, co jest zaznaczone, ponieważ nie masz prawa do modyfikacji obiektu '[OBJ_NAME]'. + Nie możesz zapisać tego, co jest zaznaczone, ponieważ nie masz prawa do modyfikacji obiektu <nolink>'[OBJ_NAME]'</nolink>. + </notification> + <notification name="NoTransNoSaveToContents"> + Nie można zapisać <nolink>'[OBJ_NAME]'</nolink> do zawartości obiektu, ponieważ nie masz uprawnień do przeniesienia praw własności obiektu. </notification> <notification name="NoCopyNoSaveSelection"> - Nie możesz zapisać tego, co jest zaznaczone, ponieważ obiektu '[OBJ_NAME]' nie można kopiować. + Nie możesz zapisać tego, co jest zaznaczone, ponieważ obiektu <nolink>'[OBJ_NAME]'</nolink> nie można kopiować. </notification> <notification name="NoModNoTaking"> - Nie możesz zabrać tego, co jest zaznaczone, ponieważ nie masz prawa do modyfikacji obiektu '[OBJ_NAME]'. + Nie możesz zabrać tego, co jest zaznaczone, ponieważ nie masz prawa do modyfikacji obiektu <nolink>'[OBJ_NAME]'</nolink>. </notification> <notification name="RezDestInternalError"> Błąd wewnętrzny: Nieznany typ lokalizacji docelowej. @@ -3415,33 +3779,39 @@ Spróbuj ponownie za minutę. <notification name="AvatarEjectFailed"> Wyrzucenie nie powiodło się, ponieważ nie masz uprawnień administratora na tej działce. </notification> - <notification name="CantMoveObjectParcelFull"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ działka jest zbyt pełna. + <notification name="CMOParcelFull"> + Nie można przesunąć obiektu '[O]' do +[P] w regionie [R], ponieważ działka jest zbyt pełna. + </notification> + <notification name="CMOParcelPerms"> + Nie można przesunąć obiektu '[O]' do +[P] w regionie [R], ponieważ Twoje obiekty nie są dozwolone na tej działce. </notification> - <notification name="CantMoveObjectParcelPerms"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ Twoje obiekty nie są dozwolone na tej działce. + <notification name="CMOParcelResources"> + Nie można przesunąć obiektu '[O]' do +[P] w regionie [R], ponieważ nie ma wystarczającej ilości zasobów na tej działce. </notification> - <notification name="CantMoveObjectParcelResources"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ nie ma wystarczającej ilości zasobów na tej działce. + <notification name="NoParcelPermsNoObject"> + Kopiowanie nie powiodło się, ponieważ nie masz dostępu do tej działki. </notification> - <notification name="CantMoveObjectRegionVersion"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ the region działa na starszej wersji symulatora, która nie obsługuje otrzymywania obiektów przez granice działek. + <notification name="CMORegionVersion"> + Nie można przesunąć obiektu '[O]' do +[P] w regionie [R], ponieważ the region działa na starszej wersji symulatora, która nie obsługuje otrzymywania obiektów przez granice działek. </notification> - <notification name="CantMoveObjectNavMesh"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME], ponieważ nie możesz modyfikować Navmesha przez granice regionów. + <notification name="CMONavMesh"> + Nie można przesunąć obiektu '[O]' do +[P] w regionie [R], ponieważ nie możesz modyfikować Navmesha przez granice regionów. </notification> - <notification name="CantMoveObjectWTF"> - Nie można przesunąć obiektu '[OBJECT_NAME]' do -[OBJ_POSITION] w regionie [REGION_NAME] ze względu na nieznany powód. ([FAILURE_TYPE]) + <notification name="CMOWTF"> + Nie można przesunąć obiektu '[O]' do +[P] w regionie [R] ze względu na nieznany powód. ([F]) </notification> <notification name="NoPermModifyObject"> Nie masz uprawnień do modyfikowania tego obiektu </notification> + <notification name="TooMuchObjectInventorySelected"> + Zbyt wiele obiektów z dużą zawartością zostało zaznaczonych. Zaznacz mniej obiektów i spróbuj ponownie. + </notification> <notification name="CantEnablePhysObjContributesToNav"> Nie można włączyć fizyki dla obiektu, który ma wpływ na Navmesh. </notification> @@ -3478,6 +3848,12 @@ Spróbuj ponownie za minutę. <notification name="CantSaveModifyAttachment"> Nie można zapisać do zawartości obiektu: To zmodyfikowałoby prawa dodatku. </notification> + <notification name="AttachmentHasTooMuchInventory"> + Twoje dodatki zawierają w sobie zbyt dużo obiektów, aby dodać więcej. + </notification> + <notification name="IllegalAttachment"> + Dodatek chciał się doczepić do punktu, jaki nie istnieje na awatarze. Został on zamiast tego dołączony do klatki piersiowej. + </notification> <notification name="TooManyScripts"> Za dużo skryptów. </notification> @@ -3485,7 +3861,7 @@ Spróbuj ponownie za minutę. Nie można dodać skryptu! </notification> <notification name="AssetServerTimeoutObjReturn"> - Czas odpowiedzi z serwera zasobów danych przekroczył dozwolony limit. Obiekt został zwrócony do sima. + Czas odpowiedzi z serwera zasobów danych przekroczył dozwolony limit. Obiekt został zwrócony do regionu. </notification> <notification name="RegionDisablePhysicsShapes"> Ten region nie ma włączonych kształtów fizycznych. @@ -3518,7 +3894,7 @@ Spróbuj ponownie za minutę. Nie możesz zmieniać kształtu obiektu meszowego. </notification> <notification name="FullRegionCantEnter"> - Nie możesz wejść do tego regionu, \nponieważ jest pełny. + Nie możesz wejść do tego regionu, ponieważ jest pełny. </notification> <notification name="LinkFailedOwnersDiffer"> Scalanie nie powiodło się -- właściciele są różni @@ -3570,9 +3946,18 @@ Spróbuj ponownie za minutę. <notification name="TeleportedByObjectUnknownUser"> Zostałeś/aś teleportowany/a przez obiekt '[OBJECT_NAME]' należący do nieznanej osoby. </notification> + <notification name="StandDeniedByObject"> + '[OBJECT_NAME]' nie pozwala Ci w tej chwili stać. + </notification> + <notification name="ResitDeniedByObject"> + '[OBJECT_NAME]' nie pozwala Ci w tej chwili zmieniać siedzeń. + </notification> <notification name="CantCreateObjectRegionFull"> Nie można utworzyć żądanego obiektu. Region jest pełny. </notification> + <notification name="CantCreateAnimatedObjectTooLarge"> + Nie można utworzyć żądanego obiektu animowanego, ponieważ przekracza on limit trójkątów riggowania. + </notification> <notification name="CantAttackMultipleObjOneSpot"> Nie możesz podłączyć wielu obiektów do jednego punktu. </notification> @@ -3621,6 +4006,21 @@ Spróbuj ponownie za minutę. <notification name="CantChangeShape"> Nie masz pozwolenia na zmianę tego kształtu. </notification> + <notification name="NoPermsTooManyAttachedAnimatedObjects"> + Operacja spowodowałaby przekroczenie limitu liczby dołączonych animowanych obiektów. + </notification> + <notification name="NoPermsLinkAnimatedObjectTooLarge"> + Nie można połączyć tych obiektów, ponieważ powstały animowany obiekt przekroczyłby limit trójkątów riggowania. + </notification> + <notification name="NoPermsSetFlagAnimatedObjectTooLarge"> + Nie można przekształcić tego obiektu w animowany obiekt, ponieważ przekroczyłby limit trójkątów riggowania. + </notification> + <notification name="CantChangeAnimatedObjectStateInsufficientLand"> + Nie można zmienić stanu animowanego obiektu dla tej rzeczy, ponieważ spowodowałoby to przekroczenie limitu działki. + </notification> + <notification name="ErrorNoMeshData"> + Błąd serwera: nie można ukończyć tej operacji, ponieważ dane meszu nie zostały załadowane. + </notification> <notification name="NoAccessToClaimObjects"> Twoje uprawnienia nie pozwalają Ci na żądanie obiektów w tym miejscu. </notification> @@ -3679,7 +4079,7 @@ Spróbuj ponownie za minutę. Sprecyzuj proszę swoje parametry usuwania. </notification> <notification name="UnableToUploadAsset"> - Nie można załadować zasobu danych (assetu). + Nie można przesłać zasobu danych (assetu). </notification> <notification name="CantTeleportCouldNotFindUser"> Nie można znaleźć użytkownika, aby teleportować do domu @@ -3691,7 +4091,7 @@ Spróbuj ponownie za minutę. żądanie ogólne nie powiodło się </notification> <notification name="CantUploadPostcard"> - Nie można załadować pocztówki. Spróbuj ponownie później. + Nie można przesłać pocztówki. Spróbuj ponownie później. </notification> <notification name="CantFetchInventoryForGroupNotice"> Nie można pobrać szczegółów dołączonego przedmiotu dla ogłoszenia grupy. @@ -3706,7 +4106,7 @@ Spróbuj ponownie za minutę. Nie można zanalizować przedmiotu z ogłoszenia. </notification> <notification name="TerrainUploadFailed"> - Ładowanie podłoża na serwer nie powiodło się. + Przesyłanie podłoża na serwer nie powiodło się. </notification> <notification name="TerrainFileWritten"> Plik podłoża zapisany. @@ -3799,7 +4199,7 @@ Spróbuj zaznaczyć mniejszy obszar ziemi. Nie można w tej chwili kupić przepustki. Spróbuj ponownie później. </notification> <notification name="CantCreateObjectParcelFull"> - Nie można utworzyć obiektu, \n ponieważ działka jest pełna. + Nie można utworzyć obiektu, ponieważ działka jest pełna. </notification> <notification name="FailedPlacingObject"> Nie udało się umieścić obiektu w żądanej lokalizacji. Spróbuj ponownie. @@ -3870,6 +4270,9 @@ Spróbuj zaznaczyć mniejszy obszar ziemi. <notification name="CantTransfterMoneyRegionDisabled"> Transfery pieniędzy do obiektów są obecnie wyłączone w tym regionie. </notification> + <notification name="DroppedMoneyTransferRequest"> + Nie udało się dokonać płatności ze względu na obciążenie systemu. + </notification> <notification name="CantPayNoAgent"> Nie udało się ustalić, komu zapłacić. </notification> @@ -3883,12 +4286,16 @@ Spróbuj zaznaczyć mniejszy obszar ziemi. Błąd wewnętrzny uniemożliwił poprawną aktualizację danych przeglądarki. Stan konta L$ lub posiadane działki wyświetlane w przeglądarce mogą nie odzwierciedlać faktycznego stanu posiadania na serwerach. </notification> <notification name="LargePrimAgentIntersect"> - Nie można utworzyć wielkich prim, które nachodzą na innych rezydentów. Spróbuj jeszcze raz, gdy przesuną się oni. + Nie można tworzyć wielkich prim, które nachodzą na innych rezydentów. Spróbuj jeszcze raz, gdy się oni przesuną. </notification> <notification name="PreferenceChatClearLog"> Ta opcja usunie dzienniki poprzednich rozmów i wszelkie kopie zapasowe tego pliku. <usetemplate ignoretext="Potwierdź, zanim usunę dzienniki poprzednich rozmów." name="okcancelignore" notext="Anuluj" /> </notification> + <notification name="PreferenceControlsDefaults"> + Czy chcesz przywrócić domyślne ustawienia klawiszy sterowania? + <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Obecny tryb" yestext="Wszystkie tryby" /> + </notification> <notification name="PreferenceChatDeleteTranscripts"> Ta opcja usunie logi wszystkich poprzednich rozmów. Nie będzie to miało wpływu na listę rozmów odbytych w przeszłości. Wszystkie pliki z przyrostkami .txt oraz txt.backup w folderze [FOLDER] zostaną usunięte. <usetemplate ignoretext="Potwierdź, zanim usunę logi rozmów." name="okcancelignore" notext="Anuluj" /> @@ -3903,4 +4310,113 @@ Spróbuj zaznaczyć mniejszy obszar ziemi. <notification name="ChatHistoryIsBusyAlert"> Plik historii czatu jest w tej chwili przetwarzany przez poprzednią operację. Spróbuj ponownie za kilka minut lub wybierz czat innej osoby. </notification> + <notification name="AddPaymentMethod"> + Na następnej stronie wybierz kwotę L$ +i kliknij przycisk składania zamówienia. +Będziesz mógł/a dodać metodę płatności w kasie. + <form name="form"> + <button name="Continue" text="Kontynuuj" /> + <button name="Cancel" text="Anuluj" /> + </form> + </notification> + <notification name="FailedToFindSettings"> + Nie można załadować ustawień dla [NAME] z bazy danych. + </notification> + <notification name="FailedToLoadSettingsApply"> + Nie można zastosować tych ustawień do otoczenia. + </notification> + <notification name="FailedToBuildSettingsDay"> + Nie można zastosować tych ustawień do otoczenia. + </notification> + <notification name="NoEnvironmentSettings"> + Ten region nie obsługuje ustawień otoczenia. + </notification> + <notification label="Zapisz otoczenie" name="SaveSettingAs"> + Zapisz bieżące ustawienia otoczenia jako: + <form name="form"> + <input name="message"> + [DESC] (nowe) + </input> + <button name="Cancel" text="Anuluj" /> + </form> + </notification> + <notification name="WLImportFail"> + Nie można zaimportować starszych ustawień Windlight [NAME] z +[FILE]. + +[REASONS] + </notification> + <notification name="WLParcelApplyFail"> + Nie można ustawić otoczenia dla tej działki. +Odwiedź lub wybierz działkę, którą masz prawo zmodyfikować. + </notification> + <notification name="SettingsUnsuported"> + Otoczenia nie są obsługiwane w tym regionie. +Przejdź do regionu z włączonymi otoczeniami i spróbuj ponownie. + </notification> + <notification name="SettingsConfirmLoss"> + Za chwilę stracisz zmiany wprowadzone dla [TYPE] o nazwie "[NAME]". +Czy na pewno chcesz kontynuować? + <usetemplate ignoretext="Czy na pewno chcesz stracić zmiany?" name="okcancelignore" notext="Nie" yestext="Tak" /> + </notification> + <notification name="SettingsConfirmReset"> + Za chwilę usuniesz wszystkie zastosowane otoczenia. +Czy na pewno chcesz kontynuować? + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + </notification> + <notification name="PersonalSettingsConfirmReset"> + Za chwilę usuniesz wszystkie zastosowane ustawienia własnego oświetlenia. +Czy na pewno chcesz kontynuować? + <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak" /> + </notification> + <notification name="SettingsMakeNoTrans"> + Zamierzasz zaimportować nietransferowalne otoczenia do tego cyklu dnia. Kontynuowanie spowoduje, że edytowane otoczenia również staną się nietransferowalne. + +Tej zmiany nie można cofnąć. + +Czy na pewno chcesz kontynuować? + <usetemplate ignoretext="Czy na pewno chcesz, aby otoczenia były nietransferowalne?" name="okcancelignore" notext="Nie" yestext="Tak" /> + </notification> + <notification name="NoEditFromLibrary"> + Nie możesz edytować otoczeń bezpośrednio w bibliotece. +Skopiuj do własnej szafy i spróbuj ponownie. + </notification> + <notification name="EnvironmentApplyFailed"> + Napotkaliśmy problem z tymi ustawieniami otoczenia. Nie można ich teraz zapisać ani zastosować. + </notification> + <notification name="TrackLoadFailed"> + Nie można załadować ścieżki do [TRACK]. + </notification> + <notification name="TrackLoadMismatch"> + Nie można załadować ścieżki z [TRACK1] do [TRACK2]. + </notification> + <notification name="CompressionTestResults"> +Wynik testu kompresji pliku dla gzip na poziomie 6 z [FILE] o rozmiarze [SIZE] KB: +Pakowanie: [PACK_TIME]s [PSIZE]KB +Rozpakowywanie: [UNPACK_TIME]s [USIZE]KB + </notification> + <notification label="Monituj o token usługi MFA" name="PromptMFAToken"> + [MESSAGE] + <form name="form"> + <button name="continue" text="Kontynuuj" /> + <button name="cancel" text="Anuluj" /> + </form> + </notification> + <notification label="Utwórz podfolder" name="CreateSubfolder"> + Nazwij nowy folder: + <form name="form"> + <button name="Cancel" text="Anuluj" /> + </form> + </notification> + <notification name="SameFolderRequired"> + Wybrane elementy muszą znajdować się w tym samym folderze. + </notification> + <notification name="RiggedMeshAttachedToHUD"> + Dodatek o nazwie "[NAME]" dołączony do HUD "[POINT]" zawiera riggowany mesz. + +Riggowane mesze są przeznaczone do dodawania do samego awatara. Ani ty, ani nikt inny nie zobaczy tego obiektu. + +Jeśli chcesz zobaczyć ten obiekt, to usuń go i ponownie dołącz do punktu doczepienia na awatarze. + <usetemplate ignoretext="Ostrzegaj, gdy dodatek z riggowanym meszem jest dołączany do punktu HUD" name="okignore" /> + </notification> </notifications> diff --git a/indra/newview/skins/default/xui/pl/panel_camera_preset_item.xml b/indra/newview/skins/default/xui/pl/panel_camera_preset_item.xml new file mode 100644 index 0000000000..6d619f2071 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_camera_preset_item.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="camera_preset_item"> + <text name="preset_name" value="Domyślne" /> + <button name="delete_btn" tool_tip="Usuń ustawienie" /> + <button name="reset_btn" tool_tip="Zresetuj ustawienie do wartości domyślnych" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_edit_classified.xml b/indra/newview/skins/default/xui/pl/panel_edit_classified.xml deleted file mode 100644 index 2d442b054d..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_edit_classified.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Edytuj reklamę" name="panel_edit_classified"> - <panel.string name="location_notice"> - (zostanie zaktualizowane po zapisaniu) - </panel.string> - <string name="publish_label"> - Publikuj - </string> - <string name="save_label"> - Zapisz - </string> - <text name="title"> - Edytuj reklamę - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon name="edit_icon" tool_tip="Kliknij by wybrać teksturę" /> - </panel> - <text name="Name:"> - Tytuł: - </text> - <text name="description_label"> - Opis: - </text> - <text name="location_label"> - Lokalizacja: - </text> - <text name="classified_location"> - ładowanie... - </text> - <button label="Ustaw na bieżącą lokalizację" name="set_to_curr_location_btn" /> - <text name="category_label" value="Kategoria:" /> - <text name="content_type_label" value="Typ zawartości:" /> - <icons_combo_box label="Treść General" name="content_type"> - <icons_combo_box.item label="Treść Moderate" name="mature_ci" /> - <icons_combo_box.item label="Treść General" name="pg_ci" /> - </icons_combo_box> - <check_box label="Ponawiaj automatycznie co tydzień" name="auto_renew" /> - <text name="price_for_listing_label" value="Koszt listowania:" /> - <spinner name="price_for_listing" tool_tip="Koszt listowania reklamy." /> - </panel> - </scroll_container> - <panel name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="show_on_map_btn_lp"> - <button label="Anuluj" name="cancel_btn" /> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_edit_pick.xml b/indra/newview/skins/default/xui/pl/panel_edit_pick.xml deleted file mode 100644 index 15838e53b1..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Edytuj Miejsce" name="panel_edit_pick"> - <panel.string name="location_notice"> - (aktualizacja nastąpi po zapisaniu) - </panel.string> - <text name="title"> - Edytuj Miejsce - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon name="edit_icon" tool_tip="Kliknij aby wybrać teksturę" /> - <text name="Name:"> - Tytuł: - </text> - <text name="description_label"> - Opis: - </text> - <text name="location_label"> - Lokalizacja: - </text> - <text name="pick_location"> - ładowanie... - </text> - <button label="Ustaw na bieżącą lokalizację" name="set_to_curr_location_btn" /> - </panel> - </scroll_container> - <panel name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Zapisz Miejsce" name="save_changes_btn" /> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="Anuluj" name="cancel_btn" /> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_edit_profile.xml b/indra/newview/skins/default/xui/pl/panel_edit_profile.xml deleted file mode 100644 index 4e48c6a27c..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_edit_profile.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Edycja profilu" name="edit_profile_panel"> - <string name="AcctTypeResident" value="Rezydent" /> - <string name="AcctTypeTrial" value="Próbne" /> - <string name="AcctTypeCharterMember" value="Założyciel" /> - <string name="AcctTypeEmployee" value="Pracownik Linden Lab" /> - <string name="PaymentInfoUsed" value="Płatności: Dane użyte" /> - <string name="PaymentInfoOnFile" value="Płatności: Dane znane" /> - <string name="NoPaymentInfoOnFile" value="Płatności: Dane nieznane" /> - <string name="AgeVerified" value="Wiek zweryfikowany" /> - <string name="NotAgeVerified" value="Wiek niezweryfikowany" /> - <string name="no_partner_text" value="Brak" /> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Wyświetlane imię:" /> - <text name="solo_username_label" value="Nazwa użytkownika:" /> - <button name="set_name" tool_tip="Ustaw wyświetlane imię" /> - <text name="user_label" value="Użytkownik:" /> - <panel name="lifes_images_panel"> - <icon name="2nd_life_edit_icon" tool_tip="Kliknij, aby wybrać obrazek" /> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Świat realny:" /> - </panel> - <icon name="real_world_edit_icon" tool_tip="Kliknij, aby wybrać obrazek" /> - <text name="title_homepage_text"> - Strona www: - </text> - <text name="title_acc_status_text" value="Moje konto:" /> - <text_editor name="acc_status_text" value="Rezydent. Płatności: Dane nieznane." /> - <text name="my_account_link" value="[[URL] Idź do Tablicy]" /> - <text name="title_partner_text" value="Mój partner:" /> - <panel name="partner_data_panel"> - <text initial_value="(pobieranie)" name="partner_text" /> - </panel> - <text name="partner_edit_link" value="[[URL] Edytuj]" /> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Zapisz zmiany" name="save_btn" /> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Anuluj" name="cancel_btn" /> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_edit_universal.xml b/indra/newview/skins/default/xui/pl/panel_edit_universal.xml new file mode 100644 index 0000000000..f98cf92786 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_edit_universal.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="edit_universal_panel"> + <scroll_container name="avatar_universal_scroll"> + <panel name="avatar_universal_color_panel"> + <texture_picker label="Tatuaż głowy" name="Head Universal Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: górny tułów" name="Upper Universal Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: dolny tułów" name="Lower Universal Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: spódnica" name="Skirt Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: włosy" name="Hair Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: oczy" name="Eyes Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: lewe ramię" name="Left Arm Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: lewa noga" name="Left Leg Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: Aux1" name="Aux1 Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: Aux2" name="Aux2 Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <texture_picker label="Tatuaż: Aux3" name="Aux3 Tattoo" tool_tip="Kliknij by wybrać grafikę" /> + <color_swatch label="Kolor" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor" /> + </panel> + </scroll_container> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_experience_info.xml b/indra/newview/skins/default/xui/pl/panel_experience_info.xml new file mode 100644 index 0000000000..406904e9a2 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_experience_info.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_experience_info"> + <text name="title" value="Profil przygody" /> + <scroll_container name="xp_scroll"> + <panel name="scrolling_panel"> + <layout_stack name="ls1"> + <layout_panel name="location panel"> + <text name="Location"> + Miejsce: + </text> + <button label="Teleportuj" name="teleport_btn"/> + <button label="Mapa" name="map_btn"/> + </layout_panel> + <layout_panel name="marketplace panel"> + <text name="Location"> + Sklep Marketplace: + </text> + </layout_panel> + <layout_panel name="details panel"> + <text name="ContentRating"> + Klasyfikacja: + </text> + <text name="Owner"> + Właściciel: + </text> + <button label="Edytuj" name="edit_btn"/> + </layout_panel> + </layout_stack> + </panel> + </scroll_container> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_experience_list_editor.xml b/indra/newview/skins/default/xui/pl/panel_experience_list_editor.xml new file mode 100644 index 0000000000..8c314139a8 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_experience_list_editor.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="experince_list_editor"> + <panel.string name="loading"> + wczytywanie... + </panel.string> + <panel.string name="panel_allowed"> + Przygody dozwolone: + </panel.string> + <panel.string name="panel_blocked"> + Przygody blokowane: + </panel.string> + <panel.string name="panel_trusted"> + Przygody kluczowe: + </panel.string> + <panel.string name="no_results"> + (puste) + </panel.string> + <text name="text_name"> + Lista przygód + </text> + <name_list name="experience_list"> + <name_list.columns name="experience_name" label="Nazwa" /> + </name_list> + <button name="btn_add" label="Dodaj" /> + <button name="btn_remove" label="Usuń" /> + <button name="btn_profile" label="Profil" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_experience_list_item.xml b/indra/newview/skins/default/xui/pl/panel_experience_list_item.xml new file mode 100644 index 0000000000..866d3f6112 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_experience_list_item.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_experience_list_item" label="Przygody" /> diff --git a/indra/newview/skins/default/xui/pl/panel_experience_log.xml b/indra/newview/skins/default/xui/pl/panel_experience_log.xml new file mode 100644 index 0000000000..5bd5467adc --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_experience_log.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_experience_log" label="Zdarzenia"> + <string name="no_events" value="Brak zdarzeń."/> + <string name="loading" value="wczytywanie..."/> + <layout_stack name="ls1"> + <layout_panel name="list panel"> + <scroll_list name="experience_log_list"> + <columns name="time" label="Czas"/> + <columns name="event" label="Zdarzenie"/> + <columns name="experience_name" label="Przygoda"/> + <columns name="object_name" label="Obiekt"/> + </scroll_list> + <button name="btn_notify" label="Powiadom"/> + <button name="btn_profile_xp" label="Profil"/> + <button name="btn_report_xp" label="Zgłoś"/> + </layout_panel> + <layout_panel name="button_panel"> + <check_box width="175" label="Powiadom o wszystkich (dni)" name="notify_all" /> + <button name="btn_clear" label="Wyczyść"/> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_experience_search.xml b/indra/newview/skins/default/xui/pl/panel_experience_search.xml new file mode 100644 index 0000000000..96113c87cf --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_experience_search.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_experience_search" label="Wyszukiwanie"> + <string name="not_found"> + Nie znaleziono: '[TEXT]' + </string> + <string name="no_results"> + Brak wyników + </string> + <string name="searching"> + Szukam... + </string> + <string name="loading"> + Wczytywanie... + </string> + <panel name="search_panel"> + <text name="lbl name part"> + Wpisz fragment nazwy: + </text> + <button label="Szukaj" name="find"/> + <text name="lbl max content rating"> + Maksymalna klasyfikacja: + </text> + <icons_combo_box label="Moderate (umiarkowana)" name="maturity"> + <icons_combo_box.item label="Adult (dla dorosłych)" name="Adult" /> + <icons_combo_box.item label="Moderate (umiarkowana)" name="Mature" /> + <icons_combo_box.item label="General (dla wszystkich)" name="PG" /> + </icons_combo_box> + <scroll_list name="search_results"> + <columns name="experience_name" label="Nazwa" /> + <columns name="owner" label="Właściciel" /> + </scroll_list> + <button label="Anuluj" name="cancel_btn" /> + <button label="Pokaż profil" name="profile_btn" /> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_experiences.xml b/indra/newview/skins/default/xui/pl/panel_experiences.xml new file mode 100644 index 0000000000..e66fc0a1a2 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_experiences.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_experiences" label="Przygody"> + <string name="loading_experiences" value="Ładowanie przygód..." /> + <string name="no_experiences" value="Brak przygód." /> + <string name="acquire" value="Zyskaj przygodę" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_facebook_friends.xml b/indra/newview/skins/default/xui/pl/panel_facebook_friends.xml deleted file mode 100644 index 97e2db704f..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="Żaden z Twoich znajomych na Facebooku nie jest w tej chwili rezydentem w Second Life. Poproś swoich facebookowych przyjaciół, aby dołączyli do Second Life!" /> - <string name="facebook_friends_no_connected" value="Brak połączenia z Facebookiem. Przejdź na kartę Status, aby włączyć tą funkcjonalność." /> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="Znajomi z Second Life" /> - <accordion_tab name="tab_suggested_friends" title="Dodaj te osoby do znajomych w Second Life" /> - </accordion> - <text name="facebook_friends_status"> - Brak połączenia z Facebookiem. - </text> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_facebook_photo.xml b/indra/newview/skins/default/xui/pl/panel_facebook_photo.xml deleted file mode 100644 index 5ecd648209..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_facebook_photo.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="Rozdzielczość obrazka"> - <combo_box.item label="Obecne okno" name="CurrentWindow" /> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtry obrazka"> - <combo_box.item label="Bez filtru" name="NoFilter" /> - </combo_box> - <text name="working_lbl"> - Odświeżanie... - </text> - <button label="Odśwież" name="new_snapshot_btn" tool_tip="Kliknij, aby odświeżyć" /> - <button label="Podgląd" name="big_preview_btn" tool_tip="Kliknij, aby przełączyć podgląd" /> - <text name="caption_label"> - Komentarz (opcjonalnie): - </text> - <button label="Wyślij" name="post_photo_btn" /> - <button label="Anuluj" name="cancel_photo_btn" /> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_facebook_place.xml b/indra/newview/skins/default/xui/pl/panel_facebook_place.xml deleted file mode 100644 index 0514f4c326..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - Opowiedz coś o miejscu, w którym jesteś: - </text> - <check_box label="Dołącz widok z lotu ptaka" name="add_place_view_cb" /> - <button label="Wyślij" name="post_place_btn" /> - <button label="Anuluj" name="cancel_place_btn" /> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_facebook_status.xml b/indra/newview/skins/default/xui/pl/panel_facebook_status.xml deleted file mode 100644 index 5c0052e1f1..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="Połączenie z Facebookiem jako:" /> - <string name="facebook_disconnected" value="Brak połączenia z Facebookiem" /> - <text name="account_caption_label"> - Brak połączenia z Facebookiem. - </text> - <panel name="panel_buttons"> - <button label="Połącz..." name="connect_btn" /> - <button label="Rozłącz" name="disconnect_btn" /> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Więcej o wysyłaniu na Facebooka] - </text> - </panel> - <text name="status_caption_label"> - O czym teraz myślisz? - </text> - <button label="Wyślij" name="post_status_btn" /> - <button label="Anuluj" name="cancel_status_btn" /> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_flickr_account.xml b/indra/newview/skins/default/xui/pl/panel_flickr_account.xml deleted file mode 100644 index 43ce268d77..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="Połączenie z Flickr jako:" /> - <string name="flickr_disconnected" value="Brak połączenia z Flickr" /> - <text name="account_caption_label"> - Brak połączenia z Flickr. - </text> - <panel name="panel_buttons"> - <button label="Połącz..." name="connect_btn" /> - <button label="Rozłącz" name="disconnect_btn" /> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Więcej o wysyłaniu na Flickr] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_flickr_photo.xml b/indra/newview/skins/default/xui/pl/panel_flickr_photo.xml deleted file mode 100644 index a76d16f743..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="Rozdzielczość obrazka"> - <combo_box.item label="Obecne okno" name="CurrentWindow" /> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtry obrazka"> - <combo_box.item label="Bez filtru" name="NoFilter" /> - </combo_box> - <text name="working_lbl"> - Odświeżanie... - </text> - <button label="Odśwież" name="new_snapshot_btn" tool_tip="Kliknij, aby odświeżyć" /> - <button label="Podgląd" name="big_preview_btn" tool_tip="Kliknij, aby przełączyć podgląd" /> - <text name="title_label"> - Tytuł: - </text> - <text name="description_label"> - Opis: - </text> - <check_box label="Dołącz lokalizację z SL na końcu opisu" name="add_location_cb" /> - <text name="tags_label"> - Tagi: - </text> - <text name="tags_help_label"> - Rozdziel tagi spacjami -Użyj "" dla tagów wielosłownych - </text> - <combo_box name="rating_combobox" tool_tip="Klasyfikacja treści Flickr"> - <combo_box.item label="Flickr: Treść bezpieczna" name="SafeRating" /> - <combo_box.item label="Flickr: Treść umiarkowana" name="ModerateRating" /> - <combo_box.item label="Flickr: Treść ograniczona" name="RestrictedRating" /> - </combo_box> - <button label="Wyślij" name="post_photo_btn" /> - <button label="Anuluj" name="cancel_photo_btn" /> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_group_creation_sidetray.xml b/indra/newview/skins/default/xui/pl/panel_group_creation_sidetray.xml new file mode 100644 index 0000000000..cf9f00af4d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_group_creation_sidetray.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel label="Tworzenie grupy" name="GroupCreation"> + <panel.string name="current_membership"> + (twoje członkostwo) + </panel.string> + <panel name="group_info_top"> + <line_editor label="Wpisz tutaj nazwę nowej grupy" name="group_name_editor" /> + </panel> + <layout_stack name="layout"> + <layout_panel name="group_info"> + <panel name="group_info_top"> + <texture_picker name="insignia" tool_tip="Kliknij by wybrać obraz" /> + <text_editor name="charter"> + Statut grupy + </text_editor> + </panel> + <panel name="preferences_container"> + <check_box label="Wolny wstęp" name="open_enrollement" tool_tip="Grupa oferuje wolny wstęp dla każdego i nie wymaga zaproszenia." /> + <check_box label="Opłata wstępu" name="check_enrollment_fee" tool_tip="Określa, czy wymagać opłaty wstępu, aby dołączyć do grupy." /> + <spinner name="spin_enrollment_fee" tool_tip="Nowe osoby muszą zapłacić tę sumę by dołączyć do grupy, jeśli 'Opłata wstępu' jest zaznaczona." /> + <combo_box name="group_mature_check" tool_tip="Klasyfikacja dojrzałości oraz wieku określa rodzaje treści i zachowanie dozwolone w grupie."> + <combo_item name="select_mature"> + - Wybierz klasyfikację wieku - + </combo_item> + <combo_box.item label="Treść Moderate" name="mature" /> + <combo_box.item label="Treść General" name="pg" /> + </combo_box> + </panel> + </layout_panel> + <layout_panel name="create_info"> + <text name="fee_information"> + Opłata za utworzenie grupy zależy od Twojego poziomu członkostwa. [https://secondlife.com/my/account/membership.php Więcej] + </text> + <scroll_list name="membership_list"> + <scroll_list.rows name="basic" value="Podstawowe (wypełniacz)"/> + <scroll_list.rows name="premium" value="Premium (wypełniacz)" /> + </scroll_list> + </layout_panel> + <layout_panel name="create_actions"> + <layout_stack name="button_row_ls"> + <layout_panel name="layout_crt"> + <button label="Utwórz grupę za [COST] L$" name="btn_create" tool_tip="Utwórz nową grupę" /> + <button name="back" label="Anuluj" tool_tip="Powrót do listy grup" /> + </layout_panel> + </layout_stack> + <text name="info_deletion"> + Uwaga: grupa, która ma mniej niż 2 członków przez 48 godzin, zostaje usunięta! + </text> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_group_list_item_short.xml b/indra/newview/skins/default/xui/pl/panel_group_list_item_short.xml new file mode 100644 index 0000000000..e34d32c0fd --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_group_list_item_short.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="group_list_item"> + <text name="group_name" value="Nieznana" /> + <button name="visibility_hide_btn" tool_tip="Ukryj grupę w moim profilu" /> + <button name="visibility_show_btn" tool_tip="Pokaż grupę w moim profilu" /> + <button name="info_btn" tool_tip="Więcej informacji" /> + <button name="profile_btn" tool_tip="Pokaż profil" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_hide_beacon.xml b/indra/newview/skins/default/xui/pl/panel_hide_beacon.xml new file mode 100644 index 0000000000..b134254b03 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_hide_beacon.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_hide_beacon"> + <button label="Ukryj emiter" name="hide_beacon_btn" tool_tip="Zatrzymaj śledzenie i ukryj emiter" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_notification_list_item.xml b/indra/newview/skins/default/xui/pl/panel_notification_list_item.xml new file mode 100644 index 0000000000..3247e7eb8e --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_notification_list_item.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="main_panel"> + <panel.string name="sender_resident_text"> + Wysłał/a: "[SENDER_RESIDENT]" + </panel.string> + <panel.string name="group_name_text"> + Grupa: "[GROUP_NAME]" + </panel.string> + <panel.string name="group_fee_text"> + Opłata: [GROUP_FEE] + </panel.string> + <panel name="panel_total_view"> + <layout_stack name="item_vertical_stack"> + <layout_panel name="layout_panel_condensed_view"> + <panel name="panel_condensed_view"> + <layout_stack name="horizontal_stack"> + <layout_panel name="layout_panel_right"> + <group_icon name="group_icon" tool_tip="Grupa" /> + <avatar_icon name="avatar_icon" tool_tip="Osoba" /> + <icon name="system_notification_icon" tool_tip="Ikona" /> + </layout_panel> + <layout_panel name="layout_panel_middle"> + <panel name="main_info_panel"> + <panel name="notification_title_panel"> + <icon name="attachment_icon" tool_tip="Załącznik" /> + </panel> + </panel> + </layout_panel> + </layout_stack> + </panel> + </layout_panel> + <layout_panel name="layout_panel_expanded_view"> + <panel name="panel_expanded_view"> + <layout_stack name="horizontal_stack"> + <layout_panel name="layout_panel_right_exp"> + <group_icon name="group_icon_exp" tool_tip="Grupa" /> + <avatar_icon name="avatar_icon_exp" tool_tip="Osoba" /> + <icon name="system_notification_icon_exp" tool_tip="Ikona" /> + <icon name="attachment_icon_exp" tool_tip="Załącznik" /> + </layout_panel> + <layout_panel name="layout_panel_middle_exp"> + <panel name="main_info_panel_expanded"> + <panel name="button_panel"> + <button name="join_btn" label="Dołącz" /> + <button name="decline_btn" label="Anuluj"/> + </panel> + </panel> + </layout_panel> + </layout_stack> + </panel> + </layout_panel> + </layout_stack> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_outfit_gallery.xml b/indra/newview/skins/default/xui/pl/panel_outfit_gallery.xml new file mode 100644 index 0000000000..faebe3984d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_outfit_gallery.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="Outfit Gallery"> + <string name="outfit_photo_string"> + Zdjecie stroju: "[OUTFIT_NAME]" + </string> + <string name="no_outfits_msg"> + Nie ma jeszcze żadnych strojów. Spróbuj [secondlife:///app/search/all/ Wyszukiwarki] + </string> + <string name="no_matched_outfits_msg"> + Nie udało Ci się znaleźć tego, czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Wyszukiwarki]. + </string> + <text name="no_outfits_txt"> + Szukam... + </text> + <panel name="bottom_panel"> + <menu_button tool_tip="Pokaż dodatkowe opcje" name="options_gear_btn" /> + <button name="trash_btn" tool_tip="Usuń wybrany strój" /> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_outfit_gallery_item.xml b/indra/newview/skins/default/xui/pl/panel_outfit_gallery_item.xml new file mode 100644 index 0000000000..56c2009c22 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_outfit_gallery_item.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="gallery_item_panel"> + <string name="worn_string"> + (założone) + </string> + <panel name="text_bg_panel"> + <text name="outfit_worn_text"> + (założone) + </text> + </panel> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_outfit_snapshot_inventory.xml b/indra/newview/skins/default/xui/pl/panel_outfit_snapshot_inventory.xml new file mode 100644 index 0000000000..0818404594 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_outfit_snapshot_inventory.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_outfit_snapshot_inventory"> + <text name="title"> + Szafa + </text> + <text name="hint_lbl"> + Przesłanie zdjęcia do Twojej Szafy kosztuje [UPLOAD_COST] L$. + +Opłata zależy od Twojego poziomu członkostwa. Wyższe poziomy to niższe opłaty. + </text> + <button label="Anuluj" name="cancel_btn" /> + <button label="Prześlij [UPLOAD_COST]L$" name="save_btn" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_pick_info.xml b/indra/newview/skins/default/xui/pl/panel_pick_info.xml deleted file mode 100644 index 6ea8a4d819..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_pick_info"> - <text name="title" value="Info o Miejscu" /> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[nazwa]" /> - <text_editor name="pick_location" value="[wczytywanie...]" /> - <text_editor name="pick_desc" value="[opis]" /> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Teleportuj" name="teleport_btn" /> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Mapa" name="show_on_map_btn" /> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Edytuj" name="edit_btn" /> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_picks.xml b/indra/newview/skins/default/xui/pl/panel_picks.xml deleted file mode 100644 index 8e70f533b2..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel label="Miejsca" name="panel_picks"> - <string name="no_picks" value="Brak Miejsc" /> - <string name="no_classifieds" value="Brak reklam" /> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Miejsca" /> - <accordion_tab name="tab_classifieds" title="Reklamy" /> - </accordion> - <panel name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="Stwórz nowe Miejsce lub reklamę w obecnej lokalizacji" /> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button name="info_btn" tool_tip="Pokaż informacje o Miejscu" /> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Teleportuj" name="teleport_btn" tool_tip="Teleportuj do odpowiadającego obszaru" /> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Mapa" name="show_on_map_btn" tool_tip="Pokaż obszar na mapie świata" /> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_controls.xml b/indra/newview/skins/default/xui/pl/panel_preferences_controls.xml new file mode 100644 index 0000000000..fdd5664147 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_preferences_controls.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<panel label="Sterowanie" name="controls"> + <combo_box name="key_mode"> + <combo_box.item label="W trzeciej osobie" name="third_person" /> + <combo_box.item label="W trybie pierwszoosobowym" name="first_person" /> + <combo_box.item label="Podczas edycji awatara" name="edit_avatar" /> + <combo_box.item label="Siedząc" name="sitting" /> + </combo_box> + <button label="Przywróć domyślne" tool_tip="Przywraca wartości domyślne dla wszystkich trybów sterowania." name="restore_defaults" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_uploads.xml b/indra/newview/skins/default/xui/pl/panel_preferences_uploads.xml new file mode 100644 index 0000000000..ea678ea4d6 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_preferences_uploads.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<panel label="Uploads" name="uploads"> + <text name="title"> + Obecne lokalizacje dla nowych plików + </text> + <text name="title_models"> + Obrazy + </text> + <text name="title_sounds"> + Dźwięki + </text> + <text name="title_animation"> + Animacje + </text> + <text name="title_model"> + Modele + </text> + <text name="upload_help"> + Aby zmienić folder docelowy kliknij na nim prawym przyciskiem myszy w Szafie +i użyj opcji "ustaw jako domyślne dla" + </text> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_presets_camera_pulldown.xml b/indra/newview/skins/default/xui/pl/panel_presets_camera_pulldown.xml new file mode 100644 index 0000000000..7417b011f9 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_presets_camera_pulldown.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="presets_camera_pulldown"> + <text name="Camera Presets"> + Ustawienia kamery + </text> + <button name="open_prefs_btn" label="Otwórz sterowanie kamerą" tool_tip="Otwiera okno sterowania kamerą" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_presets_pulldown.xml b/indra/newview/skins/default/xui/pl/panel_presets_pulldown.xml new file mode 100644 index 0000000000..e0b1f9a896 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_presets_pulldown.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="presets_pulldown"> + <text name="Graphic Presets"> + Ustawienia graficzne + </text> + <button name="open_prefs_btn" label="Otwórz preferencje graficzne" tool_tip="Otwórz kartę preferencji graficznych" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_profile_classified.xml b/indra/newview/skins/default/xui/pl/panel_profile_classified.xml new file mode 100644 index 0000000000..d73a521e3f --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_profile_classified.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_profile_classified"> + <panel.string name="type_mature"> + Treść Moderate + </panel.string> + <panel.string name="type_pg"> + Treść General + </panel.string> + <panel.string name="l$_price"> + [PRICE]L$ + </panel.string> + <panel.string name="click_through_text_fmt"> + [TELEPORT] teleport, [MAP] mapa, [PROFILE] profil + </panel.string> + <panel.string name="date_fmt"> + [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt] + </panel.string> + <panel.string name="auto_renew_on"> + Włączone + </panel.string> + <panel.string name="auto_renew_off"> + Wyłączone + </panel.string> + <panel.string name="location_notice"> + (zaktualizuje się po zapisaniu) + </panel.string> + <string name="publish_label"> + Publikuj + </string> + <string name="save_label"> + Zapisz + </string> + <layout_stack name="main_classifieds_stack"> + <layout_panel name="scroll_layout_panel"> + <scroll_container name="profile_scroll"> + <panel name="info_scroll_content_panel"> + <icon name="edit_icon" tool_tip="Kliknij by wybrać obraz" /> + <layout_stack name="info_panel"> + <layout_panel name="main_info_panel"> + <text name="classified_location_label" value="Lokalizacja:" /> + <text name="content_type_label" value="Zawartość:" /> + <text name="category_label" value="Kategoria:" /> + <text name="creation_date_label" value="Utworzono:" /> + <text_editor name="creation_date" tool_tip="Data utworzenia" /> + <text name="price_for_listing_label" value="Koszt listowania:" /> + <text_editor name="price_for_listing" tool_tip="Koszt listowania reklamy." /> + </layout_panel> + <layout_panel name="clickthrough_layout_panel"> + <text name="click_through_label" value="Kliki:" /> + <text_editor name="click_through_text" tool_tip="Dane dotyczące przeklików" /> + </layout_panel> + <layout_panel name="auto_renew_layout_panel"> + <text name="auto_renew_label" value="Autoodnawianie:" /> + <text name="auto_renew" value="Włączone" /> + </layout_panel> + <layout_panel name="descr_layout_panel"> + <text name="classified_desc_label" value="Opis:" /> + </layout_panel> + </layout_stack> + <panel name="edit_panel"> + <text name="Name:"> + Tytuł: + </text> + <text name="description_label"> + Opis: + </text> + <text name="location_label"> + Lokalizacja: + </text> + <text name="classified_location_edit"> + ładowanie... + </text> + <button name="set_to_curr_location_btn" label="Ustaw na bieżącą lokalizację" /> + <text name="category_label" value="Kategoria:" /> + <text name="content_type_label" value="Zawartość:" /> + <icons_combo_box name="content_type_edit" label="Treść General"> + <icons_combo_box.item name="mature_ci" label="Treść Moderate" /> + <icons_combo_box.item name="pg_ci" label="Treść General" /> + </icons_combo_box> + <check_box name="auto_renew_edit" label="Auto-ponawiaj co tydzień" /> + </panel> + </panel> + </scroll_container> + </layout_panel> + <layout_panel name="util_buttons_lp"> + <layout_stack name="util_buttons_stack"> + <layout_panel name="teleport_btn_lp"> + <button name="teleport_btn" label="Teleportuj" /> + </layout_panel> + <layout_panel name="map_btn_lp"> + <button name="show_on_map_btn" label="Mapa" /> + </layout_panel> + <layout_panel name="edit_btn_lp"> + <button name="edit_btn" label="Edytuj" /> + </layout_panel> + </layout_stack> + </layout_panel> + <layout_panel name="publish_layout_panel"> + <layout_stack name="publish_stack"> + <layout_panel name="cancel_btn_lp"> + <button name="cancel_btn" label="Anuluj" /> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_profile_classifieds.xml b/indra/newview/skins/default/xui/pl/panel_profile_classifieds.xml new file mode 100644 index 0000000000..7797bc58d8 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_profile_classifieds.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_profile_classifieds" label="Reklamy"> + <string name="no_classifieds" value="Brak reklam" /> + <layout_stack name="main_stack"> + <layout_panel name="buttons_header"> + <button name="new_btn" label="Nowa..." tool_tip="Utwórz nową reklamę w obecnej lokalizacji" /> + <button name="delete_btn" label="Usuń..." tool_tip="Usuń aktualnie wybraną reklamę" /> + </layout_panel> + <layout_panel name="main_body"> + <text name="classifieds_panel_text"> + Ładowanie... + </text> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_profile_firstlife.xml b/indra/newview/skins/default/xui/pl/panel_profile_firstlife.xml new file mode 100644 index 0000000000..60549c9df9 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_profile_firstlife.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_profile_firstlife" label="Profil"> + <button name="fl_upload_image" label="Prześlij obraz" /> + <button name="fl_change_image" label="Zmień obraz" /> + <button name="fl_remove_image" label="Usuń obraz" /> + <button name="fl_save_changes" label="Zapisz" /> + <button name="fl_discard_changes" label="Odrzuć" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_profile_notes.xml b/indra/newview/skins/default/xui/pl/panel_profile_notes.xml new file mode 100644 index 0000000000..1c3d7f1180 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_profile_notes.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_notes" label="Notatki i prywatność"> + <text name="status_message" value="Twoje notatki o tej osobie. Nikt inny nie może ich zobaczyć." /> + <button name="notes_save_changes" label="Zapisz" /> + <button name="notes_discard_changes" label="Odrzuć" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_profile_pick.xml b/indra/newview/skins/default/xui/pl/panel_profile_pick.xml new file mode 100644 index 0000000000..f8c8005c19 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_profile_pick.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_pick_info"> + <panel.string name="location_notice"> + (zaktualizuje się po zapisaniu) + </panel.string> + <layout_stack name="main_pick_stack"> + <layout_panel name="main_pick_lp"> + <text name="title_label"> + Nazwa: + </text> + <text name="description_label"> + Opis: + </text> + <text name="location_label"> + Lokalizacja: + </text> + <line_editor name="pick_location"> + Ładowanie... + </line_editor> + </layout_panel> + <layout_panel name="save_changes_lp"> + <layout_stack name="save_changes_stack"> + <layout_panel name="map_btn_lp"> + <button name="show_on_map_btn" label="Pokaż na mapie" /> + </layout_panel> + <layout_panel name="tp_btn_lp"> + <button name="teleport_btn" label="Teleportuj" /> + </layout_panel> + </layout_stack> + </layout_panel> + <layout_panel name="save_changes_lp"> + <layout_stack name="save_changes_stack"> + <layout_panel name="create_btn_lp"> + <button name="create_changes_btn" label="Utwórz" /> + </layout_panel> + <layout_panel name="save_btn_lp"> + <button name="save_changes_btn" label="Zapisz" /> + </layout_panel> + <layout_panel name="cancel_btn_lp"> + <button name="cancel_changes_btn" label="Anuluj" /> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_profile_picks.xml b/indra/newview/skins/default/xui/pl/panel_profile_picks.xml new file mode 100644 index 0000000000..80d04fe00d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_profile_picks.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_picks" label="Miejsca"> + <string name="no_picks" value="Brak Miejsc" /> + <layout_stack name="main_stack"> + <layout_panel name="buttons_header"> + <text name="header_text"> + Pokaż innym swoje ulubione miejsca w Second Life. + </text> + <button name="new_btn" label="Nowe..." tool_tip="Utwórz nowe Miejsce w obecnej lokalizacji" /> + <button name="delete_btn" label="Usuń..." tool_tip="Usuń aktualnie wybrane Miejsce" /> + </layout_panel> + <layout_panel name="main_body"> + <text name="picks_panel_text"> + Ładowanie... + </text> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_profile_secondlife.xml b/indra/newview/skins/default/xui/pl/panel_profile_secondlife.xml new file mode 100644 index 0000000000..c73ad7d09e --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_profile_secondlife.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_profile" label="Profil"> + <string name="date_format" value="Urodziny: [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt]" /> + <string name="CaptionTextAcctInfo"> +Konto: [ACCTTYPE] +[PAYMENTINFO] + </string> + <layout_stack name="image_stack"> + <layout_panel name="basics_panel"> + <line_editor name="user_name" value="(ładowanie...)" /> + <line_editor name="sl_birth_date" value="(ładowanie...)" /> + <line_editor name="user_age" value="(ładowanie...)" /> + </layout_panel> + <layout_panel name="partner_layout"> + <text name="partner_link" value="Partner: (ładowanie...)" /> + </layout_panel> + <layout_panel name="frind_layout"> + <text name="frind_text" value="Jesteście znajomymi" /> + </layout_panel> + <layout_panel name="account_layout"> + <text name="account_info" value="Konto: (ładowanie...)" /> + </layout_panel> + <layout_panel name="settings_panel"> + <text name="search_label" value="Profil w wyszukiwarce:" /> + <combo_box name="show_in_search" tool_tip="Pozwól innym zobaczyć Cię w wynikach wyszukiwania"> + <combo_box.item name="Hide" label="Ukryj" /> + <combo_box.item name="Show" label="Pokaż" /> + </combo_box> + </layout_panel> + <layout_panel name="menu_panel"> + <menu_button label="Akcje" name="agent_actions_menu" /> + </layout_panel> + </layout_stack> + <layout_stack name="main_stack"> + <layout_panel name="display_name_panel"> + <line_editor name="display_name" value="(ładowanie...)" /> + <icon tool_tip="Znajomy może zobaczyć mój status online" name="can_see_online" /> + <icon tool_tip="Znajomy nie może zobaczyć mojego statusu online" name="cant_see_online" /> + <icon tool_tip="Znajomy może mnie zobaczyć na mapie" name="can_see_on_map" /> + <icon tool_tip="Znajomy nie może mnie zobaczyć na mapie" name="cant_see_on_map" /> + <icon tool_tip="Znajomy może edytować moje obiekty" name="can_edit_objects" /> + <icon tool_tip="Znajomy nie może edytować moich obiektów" name="cant_edit_objects" /> + </layout_panel> + <layout_panel name="about_buttons_panel"> + <button name="save_description_changes" label="Zapisz" /> + <button name="discard_description_changes" label="Odrzuć" /> + </layout_panel> + <layout_panel name="groups_panel"> + <text name="group_label" value="Grupy" /> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_profile_web.xml b/indra/newview/skins/default/xui/pl/panel_profile_web.xml new file mode 100644 index 0000000000..39ede4e674 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_profile_web.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="panel_profile_web" label="Sieć"> + <panel.string name="LoadTime" value="Załadowano w: [TIME] sekund" /> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_progress.xml b/indra/newview/skins/default/xui/pl/panel_progress.xml new file mode 100644 index 0000000000..22b6a8fcf5 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_progress.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel name="login_progress_panel"> + <layout_stack name="horizontal_centering"> + <layout_panel name="center"> + <layout_stack name="vertical_centering"> + <layout_panel name="panel4"> + <layout_stack name="vertical_centering"> + <layout_panel name="panel_icons"> + <text name="logos_lbl"> + Second Life używa + </text> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_region_access.xml b/indra/newview/skins/default/xui/pl/panel_region_access.xml new file mode 100644 index 0000000000..0133746917 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_region_access.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel label="Dostęp" name="Access"> + <tab_container name="tabs"> + <panel label="ZARZĄDCY MAJĄTKU" name="estate_managers_panel"> + <text name="estate_manager_label"> + Zarządcy majątku: + </text> + <name_list name="estate_manager_name_list"> + <columns label="Imię" name="name" /> + </name_list> + <button label="Dodaj..." name="add_estate_manager_btn" /> + <button label="Usuń..." name="remove_estate_manager_btn" /> + </panel> + <panel label="DOZWOLENI" name="allowed_panel"> + <panel name="allowed_search_panel"> + <filter_editor label="Szukaj wśród dozwolonych" name="allowed_search_input" /> + <button label="Kopiuj" name="copy_allowed_list_btn" /> + </panel> + <text name="allow_resident_label"> + Zawsze zezwalaj: + </text> + <name_list name="allowed_avatar_name_list"> + <columns label="Imię" name="name" /> + </name_list> + <button label="Dodaj..." name="add_allowed_avatar_btn" /> + <button label="Usuń..." name="remove_allowed_avatar_btn" /> + </panel> + <panel label="DOZWOLONE GRUPY" name="allowed_groups_panel"> + <panel name="allowed_group_search_panel"> + <filter_editor label="Szukaj wśród dozwolonych grup" name="allowed_group_search_input" /> + <button label="Kopiuj" name="copy_allowed_group_list_btn" /> + </panel> + <text name="allow_group_label"> + Zawsze zezwalaj grupom: + </text> + <name_list name="allowed_group_name_list"> + <columns label="Nazwa" name="name" /> + </name_list> + <button label="Dodaj..." name="add_allowed_group_btn" /> + <button label="Usuń..." name="remove_allowed_group_btn" /> + </panel> + <panel label="ZBANOWANI" name="banned_panel"> + <panel name="banned_search_panel"> + <filter_editor label="Szukaj wśród zbanowanych" name="banned_search_input" /> + <button label="Kopiuj" name="copy_banned_list_btn" /> + </panel> + <text name="ban_resident_label"> + Zawsze banuj: + </text> + <name_list name="banned_avatar_name_list"> + <columns label="Imię" name="name" /> + <columns label="Ostatnie logowanie" name="last_login_date" /> + <columns label="Zbanowano" name="ban_date" /> + <columns label="Przez" name="bannedby" /> + </name_list> + <button label="Dodaj..." name="add_banned_avatar_btn" /> + <button label="Usuń..." name="remove_banned_avatar_btn" /> + </panel> + </tab_container> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_region_experiences.xml b/indra/newview/skins/default/xui/pl/panel_region_experiences.xml new file mode 100644 index 0000000000..3ed3f68c65 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_region_experiences.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel label="Przygody" name="Experiences"> + <panel.string name="trusted_estate_text"> +Każda przygoda może być kluczową. + +Przygody kluczowe są dozwolone w tym Majątku. + +Jeśli Majątek ma wyłączony dostęp publiczny, Rezydenci uczestniczący w dowolnej przygodzie kluczowej mogą wejść i pozostać tak długo, jak mają oni ją aktywną. + </panel.string> + <panel.string name="allowed_estate_text"> +Tylko przygody o zasięgu ziemi mogą zostać dozwolone. + +Dozwolone przygody mogą być uruchamiane w tym Majątku. + </panel.string> + <panel.string name="blocked_estate_text"> +Tylko przygody o zasięgu świata mogą zostać blokowane. + +Zablokowane przygody nie mogą być uruchamiane w tym Majątku. + </panel.string> + <panel.string name="estate_caption"> +Zmiany ustawień z tej karty będą mieć wpływ na wszystkie regiony majątku. + </panel.string> + <panel.string name="allowed_parcel_text"> +Tylko przygody o zasięgu ziemi mogą zostać dozwolone. + +Dozwolone przygody mogą być uruchamiane na tej działce, jeśli nie są blokowane przez Majątek. + </panel.string> + <panel.string name="blocked_parcel_text"> +Każda przygoda może zostać zablokowana. + +Zablokowane przygody nie mogą być uruchamiane na tej działce. + </panel.string> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_script_experience.xml b/indra/newview/skins/default/xui/pl/panel_script_experience.xml new file mode 100644 index 0000000000..daae729385 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_script_experience.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<panel name="script_experience" title="PRZYGODA"> + <button name="Expand Experience" label="Przygoda" /> + <check_box label="Używa przygody" name="enable_xp" /> + <layout_stack name="xp_details"> + <layout_panel> + <text> + Skrypt: + </text> + <text> + Powiązane z: + </text> + <text> + Możesz uczestniczyć: + </text> + <text> + Powiąż z: + </text> + </layout_panel> + <layout_panel> + <combo_box label="Wybierz przygodę..." name="Experiences..." /> + </layout_panel> + </layout_stack> + <text name="No Experiences"> + Nie uczestniczysz w żadnych przygodach. + </text> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_settings_sky_atmos.xml b/indra/newview/skins/default/xui/pl/panel_settings_sky_atmos.xml new file mode 100644 index 0000000000..a21f9cd20d --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_settings_sky_atmos.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel label="Atmosfera i światła" name="panel_settings_sky_atmos"> + <layout_stack name="main_ls"> + <layout_panel name="top_lp"> + <text name="ambient_color_label"> + Kolor otoczenia: + </text> + <text name="blue_horizon_label"> + Horyzont błękitu: + </text> + <text name="blue_density_label"> + Gęstość błękitu: + </text> + </layout_panel> + <layout_panel name="bottom_lp"> + <layout_stack name="atmosphere1"> + <layout_panel name="left_lp"> + <text name="haze_horizon_label"> + Horyzont mgły: + </text> + <text name="haze_density_label"> + Gęstość mgły: + </text> + <text name="moisture_level_label"> + Poziom wilgoci: + </text> + <text name="droplet_radius_label"> + Promień kropli: + </text> + <text name="ice_level_label"> + Poziom lodu: + </text> + <text name="scene_gamma_label"> + Gamma sceny: + </text> + </layout_panel> + <layout_panel name="right_lp"> + <text name="density_multiplier_label"> + Mnożnik gęstości: + </text> + <text name="distance_multiplier_label"> + Mnożnik odległ.: + </text> + <text name="maximum_altitude_label"> + Maksymalna wys.: + </text> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_settings_sky_clouds.xml b/indra/newview/skins/default/xui/pl/panel_settings_sky_clouds.xml new file mode 100644 index 0000000000..4a4b693344 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_settings_sky_clouds.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel label="Chmury" name="panel_settings_sky_clouds"> + <layout_stack name="main_ls"> + <layout_panel name="left_lp"> + <text name="cloud_color_label"> + Kolor chmur: + </text> + <text name="cloud_coverage_label"> + Zachmurzenie: + </text> + <text name="cloud_scale_label"> + Rozmiar chmur: + </text> + <text name="cloud_variance_label"> + Zmienność: + </text> + <text name="cloud_scroll_label"> + Przewijanie: + </text> + <text name="cloud_image_label"> + Obraz chmur: + </text> + </layout_panel> + <layout_panel name="right_lp"> + <text name="cloud_density_label"> + Gęstość chmur: + </text> + <slider label="G" name="cloud_density_d" /> + <text name="cloud_detail_label"> + Detale chmur: + </text> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_settings_sky_density.xml b/indra/newview/skins/default/xui/pl/panel_settings_sky_density.xml new file mode 100644 index 0000000000..1f5cfec4d2 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_settings_sky_density.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel label="Gęstość" name="panel_settings_sky_density"> + <layout_stack name="main_ls"> + <layout_panel name="lp_1"> + <slider name="rayleigh_exponential" label="Okres wykładniczy Rayleigha:" /> + <slider name="rayleigh_exponential_scale" label="Skala wykładnicza Rayleigha:" /> + <slider name="rayleigh_linear" label="Okres liniowy Rayleigha:" /> + <slider name="rayleigh_constant" label="Okres stały Rayleigha:" /> + <slider name="rayleigh_max_altitude" label="Maks. wysokość Rayleigha:" /> + </layout_panel> + <layout_panel name="lp_2"> + <slider name="mie_exponential" label="Okres wykładniczy Mie:" /> + <slider name="mie_exponential_scale" label="Skala wykładnicza Mie:" /> + <slider name="mie_linear" label="Okres liniowy Mie:" /> + <slider name="mie_constant" label="Okres stały Mie:" /> + <slider name="mie_aniso_factor" label="Współczynnik aniso Mie:" /> + <slider name="mie_max_altitude" label="Maks. wysokość Mie:" /> + </layout_panel> + <layout_panel name="lp_3"> + <slider name="absorption_exponential" label="Okres wykładniczy absorpcji:" /> + <slider name="absorption_exponential_scale" label="Skala wykładnicza absorpcji:" /> + <slider name="absorption_linear" label="Okres liniowy absorpcji:" /> + <slider name="absorption_constant" label="Okres stały absorpcji:" /> + <slider name="absorption_max_altitude" label="Maks. wysokość absorpcji:" /> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_settings_sky_sunmoon.xml b/indra/newview/skins/default/xui/pl/panel_settings_sky_sunmoon.xml new file mode 100644 index 0000000000..f807148617 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_settings_sky_sunmoon.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel label="Słońce i Księżyc" name="panel_settings_sky_hbodies"> + <layout_stack name="main_ls"> + <layout_panel name="sun_layout"> + <text name="sun_stars_label"> + Słońce i Księżyc + </text> + <text name="position_label"> + Pozycja: + </text> + <text name="image_label"> + Obraz: + </text> + <text name="scale_label"> + Skala: + </text> + <text name="color_label"> + Kolor: + </text> + <text name="sun_azimuth_label"> + Azymut: + </text> + <text name="sun_elevation_label"> + Elewacja: + </text> + <text name="glow_focus_label"> + Ostrość blasku: + </text> + <text name="glow_size_label"> + Skala blasku: + </text> + <text name="star_brightness_label"> + Jasność gwiazd: + </text> + <check_box label="Pokaż emiter" name="sunbeacon" /> + </layout_panel> + <layout_panel name="moon_layout"> + <layout_stack name="moon_stack"> + <layout_panel name="moon_layout"> + <text name="moon_label"> + Księżyc + </text> + <text name="position_label"> + Pozycja: + </text> + <text name="moon_image_label"> + Obraz: + </text> + <text name="scale_label"> + Skala: + </text> + <text name="moon_azimuth_label"> + Azymut: + </text> + <text name="moon_elevation_label"> + Elewacja: + </text> + <text name="brightness_label"> + Jasność: + </text> + <check_box label="Pokaż emiter" name="moonbeacon" /> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_settings_water.xml b/indra/newview/skins/default/xui/pl/panel_settings_water.xml new file mode 100644 index 0000000000..928c9ce358 --- /dev/null +++ b/indra/newview/skins/default/xui/pl/panel_settings_water.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel label="Woda" name="panel_settings_water"> + <layout_stack name="water_stack1"> + <layout_panel name="lp_top"> + <text name="water_fog_label"> + Mgła wodna: + </text> + <text name="color_label"> + Kolor: + </text> + <text name="density_exponent_label"> + Wykładnik gęstości: + </text> + <text name="underwater_modifier_label"> + Modyfikator pod wodą: + </text> + <text name="FresnelScaleText"> + Skala Fresnela: + </text> + <text name="FresnelOffsetText"> + Przesun. Fresnela: + </text> + </layout_panel> + <layout_panel name="lp_bottom"> + <layout_stack name="water_stack2"> + <layout_panel name="lp_left"> + <text name="normal_map_label"> + Mapa normalnych + </text> + <text name="large_wave_speed_label"> + Prędkość dużej fali + </text> + <text name="small_wave_speed_label"> + Prędkość małej fali + </text> + <text name="reflection_wavelet_scale_label"> + Skala odbicia falkowego + </text> + </layout_panel> + <layout_panel name="lp_right"> + <text name="refraction_and_blur_label"> + Refrakcja i rozmycie: + </text> + <text name="refraction_scale_above_label"> + Skala refrakcji (powyżej) + </text> + <text name="refraction_scale_below_label"> + Skala refrakcji (poniżej) + </text> + <text name="blur_multiplier_label"> + Mnożnik rozmycia + </text> + </layout_panel> + </layout_stack> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_twitter_account.xml b/indra/newview/skins/default/xui/pl/panel_twitter_account.xml deleted file mode 100644 index c8f60b0dc6..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="Połączenie z Twitterem jako:" /> - <string name="twitter_disconnected" value="Brak połączenia z Twitterem" /> - <text name="account_caption_label"> - Brak połączenia z Twitterem. - </text> - <panel name="panel_buttons"> - <button label="Połącz..." name="connect_btn" /> - <button label="Rozłącz" name="disconnect_btn" /> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Więcej o wysyłaniu na Twittera] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pl/panel_twitter_photo.xml b/indra/newview/skins/default/xui/pl/panel_twitter_photo.xml deleted file mode 100644 index 0716d891f5..0000000000 --- a/indra/newview/skins/default/xui/pl/panel_twitter_photo.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - Co się dzieje? - </text> - <check_box label="Dołącz lokalizację z SL" name="add_location_cb" /> - <check_box label="Dołącz zdjęcie" name="add_photo_cb" /> - <combo_box name="resolution_combobox" tool_tip="Rozdzielczość obrazka"> - <combo_box.item label="Obecne okno" name="CurrentWindow" /> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtry obrazka"> - <combo_box.item label="Bez filtru" name="NoFilter" /> - </combo_box> - <text name="working_lbl"> - Odświeżanie... - </text> - <button label="Odśwież" name="new_snapshot_btn" tool_tip="Kliknij, aby odświeżyć" /> - <button label="Podgląd" name="big_preview_btn" tool_tip="Kliknij, aby przełączyć podgląd" /> - <button label="Tweetnij" name="post_photo_btn" /> - <button label="Anuluj" name="cancel_photo_btn" /> -</panel> diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml index 90d2d86c02..26ec6cc9dc 100644 --- a/indra/newview/skins/default/xui/pl/strings.xml +++ b/indra/newview/skins/default/xui/pl/strings.xml @@ -18,8 +18,11 @@ <string name="StartupRequireDriverUpdate"> Nie można zainicjować grafiki. Zaktualizuj sterowniki! </string> + <string name="BuildConfig"> + Konfiguracja budowania: [BUILD_CONFIG] + </string> <string name="AboutPosition"> -Położenie [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] w [REGION] zlokalizowanym w <nolink>[HOSTNAME]</nolink> ([HOSTIP]) +Położenie [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] w [REGION] zlokalizowanym w <nolink>[HOSTNAME]</nolink> SLURL: <nolink>[SLURL]</nolink> (koordynaty globalne [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1]) [SERVER_VERSION] @@ -28,28 +31,53 @@ SLURL: <nolink>[SLURL]</nolink> <string name="AboutSystem"> Procesor (CPU): [CPU] Pamięć (Memory): [MEMORY_MB] MB -Wersja OS (OS Version): [OS_VERSION] -Sprzedawca karty graficznej (Graphics Card Vendor): [GRAPHICS_CARD_VENDOR] +System operacyjny (OS Version): [OS_VERSION] +Dostawca karty graficznej (Graphics Card Vendor): [GRAPHICS_CARD_VENDOR] Karta graficzna (Graphics Card): [GRAPHICS_CARD] </string> <string name="AboutDriver"> - Sterownik karty graficznej Windows (Driver Version): [GRAPHICS_DRIVER_VERSION] + Sterownik karty graficznej (Driver Version): [GRAPHICS_DRIVER_VERSION] + </string> + <string name="AboutOGL"> + Wersja OpenGL: [OPENGL_VERSION] + </string> + <string name="AboutSettings"> +Rozmiar okna (Window size): [WINDOW_WIDTH]x[WINDOW_HEIGHT] +Dostrojenie rozmiaru czcionki: [FONT_SIZE_ADJUSTMENT]pt +Skalowanie interfejsu (UI Scaling): [UI_SCALE] +Pole widzenia (Draw Distance): [DRAW_DISTANCE]m +Przepustowość (Bandwidth): [NET_BANDWITH]kbit/s +Mnożnik poziomu detali (LOD Factor): [LOD_FACTOR] +Jakość wyświetlania (Render quality): [RENDER_QUALITY] +Zaawansowane oświetlenie (Advanced Lighting Model): [GPU_SHADERS] +Pamięć tekstur (Texture memory): [TEXTURE_MEMORY]MB +Pamięć podręczna dysku (Disk cache): [DISK_CACHE_INFO] + </string> + <string name="AboutOSXHiDPI"> + Tryb obrazu HiDPI: [HIDPI] </string> <string name="AboutLibs"> -Wersja OpenGL: [OPENGL_VERSION] - Wersja dekodera J2C: [J2C_VERSION] Wersja sterownika dźwięku (Audio Driver): [AUDIO_DRIVER_VERSION] -Wersja CEF: [LIBCEF_VERSION] +[LIBCEF_VERSION] Wersja LibVLC: [LIBVLC_VERSION] Wersja serwera głosu (Voice Server): [VOICE_VERSION] </string> <string name="AboutTraffic"> Pakiety utracone: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) </string> + <string name="AboutTime"> + [day, datetime, slt] [month, datetime, slt] [year, datetime, slt], [hour24, datetime, slt]:[min, datetime, slt]:[second, datetime, slt] SLT + </string> + <string name="LocalTime"> + [day, datetime, local] [month, datetime, local] [year, datetime, local], [hour24, datetime, local]:[min, datetime, local]:[second, datetime, local] + </string> <string name="ErrorFetchingServerReleaseNotesURL"> Błąd podczas pobierania informacji o wydaniu. </string> + <string name="BuildConfiguration"> + Konfiguracja budowania + </string> <string name="ProgressRestoring"> Przywracanie... </string> @@ -123,22 +151,28 @@ Wersja serwera głosu (Voice Server): [VOICE_VERSION] Pobieranie ubrania... </string> <string name="InvalidCertificate"> - Serwer zwrócił nieważny lub zniekształcony certyfikat. Proszę skontaktuj się z administratorem siatki. + Serwer zwrócił nieważny lub zniekształcony certyfikat. Proszę skontaktuj się z administratorem świata. </string> <string name="CertInvalidHostname"> - Nazwa hosta jest nieważna, proszę sprawdź SLURL lub nazwę hosta siatki. + Nazwa hosta jest nieważna, proszę sprawdź SLURL lub nazwę hosta świata. </string> <string name="CertExpired"> - Termin ważności certyfikatu zwróconego przez siatkę minął. Proszę sprawdzić swój zegar systemowy lub skontaktować się z administratorem siatki. + Termin ważności certyfikatu zwróconego przez świat minął. Proszę sprawdzić swój zegar systemowy lub skontaktować się z administratorem świata. </string> <string name="CertKeyUsage"> - Certyfikat zwrócony przez serwer nie może być użyty dla SSL. Proszę skontaktuj się z administratorem siatki. + Certyfikat zwrócony przez serwer nie może być użyty dla SSL. Proszę skontaktuj się z administratorem świata. </string> <string name="CertBasicConstraints"> - Zbyt wiele certyfikatów w łańcuchu certyfikatów serwera. Proszę skontaktować się z administratorem siatki. + Zbyt wiele certyfikatów w łańcuchu certyfikatów serwera. Proszę skontaktować się z administratorem świata. + </string> + <string name="CertInvalid"> + Nie udało się załadować certyfikatu. Skontaktuj się ze swoim administratorem świata. </string> <string name="CertInvalidSignature"> - Podpis certyfikatu zwrócony przez siatkę nie mógł zostać zweryfikowany. Proszę skontaktować się z administratorem siatki. + Podpis certyfikatu zwrócony przez świat nie mógł zostać zweryfikowany. Proszę skontaktować się z administratorem świata. + </string> + <string name="CertAllocationFailure"> + Nie udało się przydzielić pamięci openssl dla certyfikatu. </string> <string name="LoginFailedNoNetwork"> Błąd sieci: Brak połączenia z siecią, sprawdź status swojego połączenia internetowego. @@ -149,6 +183,12 @@ Wersja serwera głosu (Voice Server): [VOICE_VERSION] <string name="Quit"> Wyłącz </string> + <string name="AgniGridLabel"> + Second Life: świat główny (Agni) + </string> + <string name="AditiGridLabel"> + Second Life Beta: świat testowy (Aditi) + </string> <string name="LoginFailedViewerNotPermitted"> Przeglądarka używana przez Ciebie nie ma już dostępu do Second Life. Proszę przejść na poniższą stronę i pobrać nową: http://secondlife.com/download @@ -156,6 +196,10 @@ http://secondlife.com/download Więcej informacji w naszym FAQ: http://secondlife.com/viewer-access-faq </string> + <string name="LoginFailed"> + Logowanie nieudane. +Jeśli uważasz, że to błąd, skontaktuj się z support@secondlife.com. + </string> <string name="LoginIntermediateOptionalUpdateAvailable"> Opcjonalna aktualizacja jest dostępna: [VERSION]. </string> @@ -170,6 +214,7 @@ http://secondlife.com/viewer-access-faq Upewnij się, że wpisano poprawnie: * Login (np. bobsmith12 czy steller.sunshine) * Hasło + * Token weryfikacji dwuetapowej (gdy włączona) Sprawdź też, czy klawisz Caps Lock nie jest wciśnięty. </string> <string name="LoginFailedPasswordChanged"> @@ -199,14 +244,17 @@ Osoby posiadające darmowe konta nie mogą się teraz zalogować, aby ludzie pos Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com </string> + <string name="PacificTime"> + czas pacyficzny + </string> <string name="LoginFailedAcountSuspended"> Twoje konto jest niedostępne do -[TIME] czasu pacyficznego. +[TIME]. +Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com </string> <string name="LoginFailedAccountDisabled"> Nie jesteśmy w stanie na tą chwilę wykonać Twojego żądania. -Aby uzyskać pomoc skontaktuj się ze wsparciem: http://secondlife.com/support -Jeśli nie możesz zmienić swojego hasła zadzwoń pod numer (866) 476-9763. +Aby uzyskać pomoc skontaktuj się ze wsparciem: http://support.secondlife.com </string> <string name="LoginFailedTransformError"> Podczas logowania wykryto niespójność danych. @@ -215,7 +263,7 @@ Skontaktuj się z nami: support@secondlife.com <string name="LoginFailedAccountMaintenance"> Twoje konto jest w trakcie drobnych konserwacji. Nie będzie ono dostępne do -[TIME] czasu pacyficznego. +[TIME]. Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com </string> <string name="LoginFailedPendingLogoutFault"> @@ -223,8 +271,7 @@ Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com </string> <string name="LoginFailedPendingLogout"> System w tej chwili Cię wylogowywuje. -Twoje konto będzie niedostępne do -[TIME] czasu pacyficznego. +Poczekaj chwilę, zanim spróbujesz zalogować się ponownie. </string> <string name="LoginFailedUnableToCreateSession"> Nie można utworzyć poprawnej sesji. @@ -282,6 +329,10 @@ Spróbuj zalogować się ponownie za minutę. System rozpoczął wylogowywanie Twojej ostatniej sesji. Spróbuj zalogować się ponownie za minutę. </string> + <string name="LoginFailedAuthenticationMFARequired"> + Wprowadź nowy token z aplikacji do uwierzytelniania wieloskładnikowego. +Jeśli myślisz, że to błąd skontaktuj się z support@secondlife.com + </string> <string name="AgentLostConnection"> Ten region może mieć problemy. Sprawdź podłączenie do Internetu. </string> @@ -303,60 +354,6 @@ Spróbuj zalogować się ponownie za minutę. <string name="TestingDisconnect"> Testowanie rozłączenia klienta </string> - <string name="SocialFacebookConnecting"> - Łączenie z Facebookiem... - </string> - <string name="SocialFacebookPosting"> - Wysyłanie... - </string> - <string name="SocialFacebookDisconnecting"> - Rozłączanie z Facebookiem... - </string> - <string name="SocialFacebookErrorConnecting"> - Problem z łączeniem z Facebookiem - </string> - <string name="SocialFacebookErrorPosting"> - Problem z wysyłaniem na Facebooka - </string> - <string name="SocialFacebookErrorDisconnecting"> - Problem z rozłączaniem z Facebookiem - </string> - <string name="SocialFlickrConnecting"> - Łączenie z Flickr... - </string> - <string name="SocialFlickrPosting"> - Wysyłanie... - </string> - <string name="SocialFlickrDisconnecting"> - Rozłączanie z Flickr... - </string> - <string name="SocialFlickrErrorConnecting"> - Problem z łączeniem z Flickr - </string> - <string name="SocialFlickrErrorPosting"> - Problem z wysyłaniem na Flickr - </string> - <string name="SocialFlickrErrorDisconnecting"> - Problem z rozłączaniem z Flickr - </string> - <string name="SocialTwitterConnecting"> - Łączenie z Twitterem... - </string> - <string name="SocialTwitterPosting"> - Wysyłanie... - </string> - <string name="SocialTwitterDisconnecting"> - Rozłączanie z Twitterem... - </string> - <string name="SocialTwitterErrorConnecting"> - Problem z łączeniem z Twitterem - </string> - <string name="SocialTwitterErrorPosting"> - Problem z wysyłaniem na Twittera - </string> - <string name="SocialTwitterErrorDisconnecting"> - Problem z rozłączaniem z Twittera - </string> <string name="BlackAndWhite"> Czerń i biel </string> @@ -436,29 +433,56 @@ Spróbuj zalogować się ponownie za minutę. Nie możesz założyć folderu, który zawiera więcej niż [AMOUNT] przedmiotów. Możesz zmienić ten limit w Zaawansowane > Pokaż ustawienia debugowania > WearFolderLimit. </string> <string name="TooltipPrice" value="[AMOUNT]L$: "/> + <string name="TooltipSLIcon"> + Link do strony znajdującej się w oficjalnej domenie SecondLife.com lub LindenLab.com. + </string> <string name="TooltipOutboxDragToWorld"> - Nie możesz rezzować obiektów w skrzynce nadawczej kupca + Nie możesz rezzować obiektów z folderu rzeczy na Marketplace + </string> + <string name="TooltipOutboxWorn"> + Nie możesz umieszczać na Marketplace przedmiotów, które masz na sobie założone + </string> + <string name="TooltipOutboxFolderLevels"> + Głębokość zagnieżdżonych folderów przekracza [AMOUNT]. Zmniejsz ilość zagdzieżdżeń; Spakuj przedmioty w pudełka, jeśli to pomoże. + </string> + <string name="TooltipOutboxTooManyFolders"> + Ilość podfolderów przekracza [AMOUNT]. Zmniejsz ilość folderów; Spakuj przedmioty w pudełka, jeśli to pomoże. + </string> + <string name="TooltipOutboxTooManyObjects"> + Ilość rzeczy przekracza [AMOUNT]. Jeśli chcesz sprzedać więcej, niż [AMOUNT] rzeczy jako jedną pozycję, to musisz je spakować w pudełka. + </string> + <string name="TooltipOutboxTooManyStockItems"> + Ilość przedmiotów w folderze Magazynowym przekracza [AMOUNT]. + </string> + <string name="TooltipOutboxCannotDropOnRoot"> + Możesz przenosić foldery lub przedmioty wyłącznie do kart WSZYSTKO lub NIEPRZYPISANE. Wybierz teraz jedną z tych kart i spróbuj ponownie. </string> <string name="TooltipOutboxNoTransfer"> - Jeden lub kilka z tych obiektów nie może zostać sprzedany / przetransferowany. + Jeden lub kilka z tych obiektów nie może zostać sprzedany / przetransferowany </string> <string name="TooltipOutboxNotInInventory"> - Twoja skrzynka nadawcza kupca akceptuje tylko przedmioty bezpośrednio z Twojej Szafy. + Marketplace akceptuje tylko przedmioty bezpośrednio z Twojej Szafy. </string> - <string name="TooltipOutboxWorn"> - Nie możesz umieszczać w skrzynce nadawczej kupca przedmiotów, które masz na sobie założone + <string name="TooltipOutboxLinked"> + Nie możesz sprzedać zlinkowanych folderów lub przedmiotów na Marketplace </string> <string name="TooltipOutboxCallingCard"> - Nie możesz umieszczać wizytówek w skrzynce nadawczej kupca + Nie możesz umieszczać wizytówek na Marketplace </string> - <string name="TooltipOutboxFolderLevels"> - Głębokość zagnieżdżonych folderów przekracza 3 + <string name="TooltipOutboxDragActive"> + Nie można przenieść wylistowanej rzeczy </string> - <string name="TooltipOutboxTooManyFolders"> - Ilość podfolderów w folderze najwyższego poziomu przekracza 20 + <string name="TooltipOutboxCannotMoveRoot"> + Nie możesz przenieść folderu głównego rzeczy na Marketplace </string> - <string name="TooltipOutboxTooManyObjects"> - Ilość pozycji w folderze najwyższego poziomu przekracza 200 + <string name="TooltipOutboxMixedStock"> + Wszystkie rzeczy w folderze Magazynowym muszą mieć ten sam typ i zezwolenia + </string> + <string name="TooltipOutfitNotInInventory"> + W "Strojach" możesz umieszczać tylko przedmioty lub stroje z własnej Szafy + </string> + <string name="TooltipCantCreateOutfit"> + Jeden lub więcej przedmiotów nie może być użyty w "Strojach" </string> <string name="TooltipDragOntoOwnChild"> Nie możesz przenieść folderu do jego obiektu podrzędnego @@ -521,6 +545,9 @@ Spróbuj zalogować się ponownie za minutę. Kliknij aby uruchomić komendę secondlife:// </string> <string name="CurrentURL" value=" Obecny URL: [CurrentURL]"/> + <string name="TooltipEmail"> + Kliknij aby utworzyć wiadomość e-mail + </string> <string name="SLurlLabelTeleport"> Teleportuj do </string> @@ -569,6 +596,15 @@ Spróbuj zalogować się ponownie za minutę. <string name="BUTTON_HELP"> Pokaż Pomoc </string> + <string name="TooltipNotecardNotAllowedTypeDrop"> +Przedmioty tego typu nie mogą być dołączane +do notek z tego regionu. + </string> + <string name="TooltipNotecardOwnerRestrictedDrop"> +Tylko przedmioty z nieograniczonymi +uprawnieniami 'następnego właściciela' +mogą być dołączane do notek. + </string> <string name="Searching"> Wyszukiwanie... </string> @@ -588,7 +624,7 @@ Spróbuj zalogować się ponownie za minutę. (brak danych) </string> <string name="AvatarNameWaiting"> - (ładowanie) + (Wczytywanie...) </string> <string name="AvatarNameMultiple"> (kilka) @@ -629,6 +665,31 @@ Spróbuj zalogować się ponownie za minutę. <string name="AssetErrorUnknownStatus"> Status nieznany </string> + <string name="AssetUploadServerUnreacheble"> + Usługa niedostępna. + </string> + <string name="AssetUploadServerDifficulties"> + Serwer doświadcza nieoczekiwanych trudności. + </string> + <string name="AssetUploadServerUnavaliable"> + Usługa niedostępna lub osiągnięto limit czasu. + </string> + <string name="AssetUploadRequestInvalid"> + Błąd podczas przesyłania. Odwiedź +http://secondlife.com/support aby uzyskać pomoc. + </string> + <string name="SettingValidationError"> + Walidacja nie powiodła się - importowanie ustawień [NAME] + </string> + <string name="SettingImportFileError"> + Nie można otworzyć pliku [FILE] + </string> + <string name="SettingParseFileError"> + Nie można otworzyć pliku [FILE] + </string> + <string name="SettingTranslateError"> + Nie można przetłumaczyć windlight [NAME] + </string> <string name="texture"> tekstury </string> @@ -698,15 +759,18 @@ Spróbuj zalogować się ponownie za minutę. <string name="favorite"> ulubione </string> + <string name="symbolic link"> + link + </string> <string name="symbolic folder link"> link folderu </string> + <string name="settings blob"> + otoczenie + </string> <string name="mesh"> mesz </string> - <string name="settings"> - ustawień - </string> <string name="AvatarEditingAppearance"> (Edycja wyglądu) </string> @@ -714,7 +778,7 @@ Spróbuj zalogować się ponownie za minutę. Śpi </string> <string name="AvatarDoNotDisturb"> - Zajęty + Zajęty/a </string> <string name="AvatarMuted"> Wyciszony @@ -957,10 +1021,10 @@ Spróbuj zalogować się ponownie za minutę. Nie można znaleźć Podstawy lub Stawu. </string> <string name="NearbyChatTitle"> - Czat lokalny + Czat w pobliżu </string> <string name="NearbyChatLabel"> - (Czat lokalny) + (Czat w pobliżu) </string> <string name="whisper"> szepcze: @@ -1034,15 +1098,18 @@ Spróbuj zalogować się ponownie za minutę. <string name="ChangeYourDefaultAnimations"> Zmieniać Twoje domyślne animacje </string> + <string name="ForceSitAvatar"> + Zmuszać Twojego awatara do siadania + </string> + <string name="ChangeEnvSettings"> + Zmieniać Twoje ustawienia otoczenia + </string> <string name="NotConnected"> Brak połączenia </string> <string name="AgentNameSubst"> (Ty) </string> - <string name="JoinAnExperience"> - Rozpocznij przygodę - </string> <string name="SilentlyManageEstateAccess"> Wyciszyć powiadomienia o zmianach zezwoleń Majątku </string> @@ -1172,6 +1239,9 @@ Spróbuj zalogować się ponownie za minutę. <string name="tattoo"> Tatuaż </string> + <string name="universal"> + Warstwa uniwersalna + </string> <string name="physics"> Fizyka </string> @@ -1214,6 +1284,9 @@ Spróbuj zalogować się ponownie za minutę. <string name="tattoo_not_worn"> Tatuaż nie jest założony </string> + <string name="universal_not_worn"> + Warstwa uniwersalna nie jest założona + </string> <string name="physics_not_worn"> Fizyka nie jest założona </string> @@ -1260,13 +1333,16 @@ Spróbuj zalogować się ponownie za minutę. Nowa spódnica </string> <string name="create_new_alpha"> - Nowe alpha + Nowa warstwa alpha </string> <string name="create_new_tattoo"> Nowy tatuaż </string> + <string name="create_new_universal"> + Nowa warstwa uniwersalna + </string> <string name="create_new_physics"> - Nową fizyka + Nowa fizyka </string> <string name="create_new_invalid"> nieprawidłowy @@ -1284,7 +1360,7 @@ Spróbuj zalogować się ponownie za minutę. Ogłoszenia grupowe </string> <string name="GroupNotifySentBy"> - Wysłane przez + Wysłał/a </string> <string name="GroupNotifyAttached"> Załączone: @@ -1325,6 +1401,9 @@ Spróbuj zalogować się ponownie za minutę. <string name="BodyPartsRightLeg"> Prawa noga </string> + <string name="BodyPartsEnhancedSkeleton"> + Rozszerzony szkielet + </string> <string name="GraphicsQualityLow"> Niska </string> @@ -1340,11 +1419,20 @@ Spróbuj zalogować się ponownie za minutę. <string name="InventoryNoMatchingItems"> Nie udało Ci się znaleźć tego, czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Wyszukiwarki]. </string> + <string name="InventoryNoMatchingRecentItems"> + Nie udało Ci się znaleźć tego, czego szukasz? Spróbuj [secondlife:///app/inventory/filters Filtrowania]. + </string> <string name="PlacesNoMatchingItems"> - Nie udało Ci się znaleźć tego, czego szukasz? Spróbuj [secondlife:///app/search/places/[SEARCH_TERM] Wyszukiwarki]. + Aby dodać miejsce do ulubionych, kliknij gwiazdkę po prawej stronie nazwy lokalizacji. </string> <string name="FavoritesNoMatchingItems"> - Przeciągnij landmark tutaj aby dodać go do swoich ulubionych. + Aby dodać miejsce do ulubionych, kliknij gwiazdkę po prawej stronie nazwy lokalizacji, a następnie zapisz landmark na pasku "Ulubione". + </string> + <string name="MarketplaceNoListing"> + Nie masz jeszcze żadnych przedmiotów na Marketplace. + </string> + <string name="MarketplaceNoMatchingItems"> + Niczego nie znaleziono. Sprawdź pisownię i spróbuj ponownie. </string> <string name="InventoryNoTexture"> Nie posiadasz kopii tej tekstury w swojej Szafie. @@ -1352,6 +1440,15 @@ Spróbuj zalogować się ponownie za minutę. <string name="InventoryInboxNoItems"> Przedmioty zakupione na Marketplace pojawią się tutaj. Możesz następnie przeciągnąć je do głównej części Szafy. </string> + <string name="InventoryPlayAnimationTooltip"> + Otwórz okno z opcjami odtwarzania. + </string> + <string name="InventoryPlayGestureTooltip"> + Odtwarzaj wybrany gest w świecie. + </string> + <string name="InventoryPlaySoundTooltip"> + Otwórz okno z opcjami odtwarzania. + </string> <string name="InventoryOutboxNotMerchantTitle"> Każdy może sprzedawać przedmioty na Marketplace. </string> @@ -1376,29 +1473,110 @@ Spróbuj zalogować się ponownie za minutę. <string name="InventoryOutboxError"> [[MARKETPLACE_CREATE_STORE_URL] Sklep na Marketplace] zwraca błędy. </string> + <string name="InventoryMarketplaceError"> + Wystapił błąd podczas otwierania listy rzeczy z Marketplace. +Jeśli ciągle otrzymujesz tą wiadomość, to skontaktuj się z pomocą techniczną Second Life: http://support.secondlife.com + </string> + <string name="InventoryMarketplaceConnectionError"> + Wystapił błąd podczas łączenia z Marketplace. +Jeśli ciągle otrzymujesz tą wiadomość, to skontaktuj się z pomocą techniczną Second Life: http://support.secondlife.com + </string> + <string name="InventoryMarketplaceConnectionErrorReason"> + Wystapił błąd podczas łączenia z Marketplace. Powód: [REASON] +Jeśli ciągle otrzymujesz tą wiadomość, to skontaktuj się z pomocą techniczną Second Life: http://support.secondlife.com + </string> + <string name="InventoryMarketplaceListingsNoItemsTitle"> + Twój folder rzeczy na Marketplace jest pusty. + </string> + <string name="InventoryMarketplaceListingsNoItems"> + Przeciągnij foldery do tego obszaru, aby dodać je na listę sprzedaży w [[MARKETPLACE_DASHBOARD_URL] Marketplace]. + </string> + <string name="InventoryItemsCount"> + ( [ITEMS_COUNT] elementów ) + </string> + <string name="Marketplace Validation Warning Stock"> + folder Magazynowy musi być zawarty w folderze wersji + </string> + <string name="Marketplace Validation Error Mixed Stock"> + : Błąd: wszystkie przedmioty w folderze Magazynowym muszą mieć ten sam typ i być niekopiowalne + </string> + <string name="Marketplace Validation Error Subfolder In Stock"> + : Błąd: folder Magazynowy nie może zawierać podfolderów + </string> + <string name="Marketplace Validation Warning Empty"> + : Uwaga: folder jest pusty + </string> + <string name="Marketplace Validation Warning Create Stock"> + : Uwaga: tworzę folder Magazynowy + </string> + <string name="Marketplace Validation Warning Create Version"> + : Uwaga: tworzę folder wersji + </string> + <string name="Marketplace Validation Warning Move"> + : Uwaga: przenoszę przedmioty + </string> + <string name="Marketplace Validation Warning Delete"> + : Uwaga: zawartość folderu przeniesiona do folderu Magazynowego, usuwam pusty katalog + </string> + <string name="Marketplace Validation Error Stock Item"> + : Błąd: przedmioty bez praw kopiowania muszą się znajdować w folderze Magazynowym + </string> + <string name="Marketplace Validation Warning Unwrapped Item"> + : Uwaga: przedmioty muszą się znajdować w folderze wersji + </string> + <string name="Marketplace Validation Error"> + : Błąd: + </string> + <string name="Marketplace Validation Warning"> + : Uwaga: + </string> + <string name="Marketplace Validation Error Empty Version"> + : Uwaga: folder wersji musi zawierać przynajmniej jedną pozycję + </string> + <string name="Marketplace Validation Error Empty Stock"> + : Uwaga: folder Magazynowy musi zawierać przynajmniej jedną pozycję + </string> + <string name="Marketplace Validation No Error"> + Brak błędów lub ostrzeżeń + </string> <string name="Marketplace Error None"> Brak błędów </string> + <string name="Marketplace Error Prefix"> + Błąd: + </string> <string name="Marketplace Error Not Merchant"> - Błąd: Przed wysłaniem przedmiotów na Marketplace musisz zostać kupcem (darmowe). + Przed wysłaniem przedmiotów na Marketplace musisz zostać kupcem (darmowe). </string> - <string name="Marketplace Error Empty Folder"> - Błąd: Ten folder nie ma zawartości. + <string name="Marketplace Error Not Accepted"> + Nie można przenieść tego przedmiotu. </string> - <string name="Marketplace Error Unassociated Products"> - Błąd: Ta pozycja nie może zostać załadowana, ponieważ Twoje konto kupca ma zbyt wiele nieprzypisanych przedmiotów. Aby naprawić ten błąd zaloguj się na stronę Marketplace i zmniejsz ilość nieprzypisanych (unassociated) przedmiotów. + <string name="Marketplace Error Unsellable Item"> + Ta pozycja nie może być sprzedana na Marketplace. </string> - <string name="Marketplace Error Object Limit"> - Błąd: Ta pozycja zawiera zbyt wiele elementów. Umieść przedmioty razem w pudełkach, aby zmniejszyć ich całkowitą liczbę do mniej niż 200. + <string name="MarketplaceNoID"> + Brak Mkt ID </string> - <string name="Marketplace Error Folder Depth"> - Błąd: Ta pozycja zawiera zbyt wiele zagnieżdżonych folderów. Zreorganizuj wszystko tak, aby były obecne maksymalnie 3 poziomy zagnieżdżonych folderów. + <string name="MarketplaceLive"> + na liście </string> - <string name="Marketplace Error Unsellable Item"> - Błąd: Ta pozycja nie może być sprzedana na Marketplace. + <string name="MarketplaceActive"> + aktywne + </string> + <string name="MarketplaceMax"> + maks + </string> + <string name="MarketplaceStock"> + magazyn </string> - <string name="Marketplace Error Internal Import"> - Błąd: Wystąpił problem z tą pozycją. Spróbuj ponownie później. + <string name="MarketplaceNoStock"> + brak w Magazynie + </string> + <string name="MarketplaceUpdating"> + aktualizacja... + </string> + <string name="UploadFeeInfo"> + Opłata zależy od Twojego poziomu członkostwa. Wyższe poziomy to niższe opłaty. [https://secondlife.com/my/account/membership.php? Więcej] </string> <string name="Open landmarks"> Otwórz landmarki @@ -1445,6 +1623,7 @@ Spróbuj zalogować się ponownie za minutę. <string name="Scripts" value=" Skrypty,"/> <string name="Sounds" value=" Dźwięki,"/> <string name="Textures" value=" Tekstury,"/> + <string name="Settings" value=" Otoczenia," /> <string name="Snapshots" value=" Zdjęcia,"/> <string name="No Filters" value="Nie "/> <string name="Since Logoff" value=" - od wylogowania"/> @@ -1614,7 +1793,7 @@ Spróbuj zalogować się ponownie za minutę. Usta </string> <string name="Chin"> - Szczęka + Podbródek </string> <string name="Left Ear"> Lewe ucho @@ -1676,6 +1855,51 @@ Spróbuj zalogować się ponownie za minutę. <string name="Avatar Center"> Środek awatara </string> + <string name="Left Ring Finger"> + Lewy palec serdeczny + </string> + <string name="Right Ring Finger"> + Prawy palec serdeczny + </string> + <string name="Tail Base"> + Podstawa ogona + </string> + <string name="Tail Tip"> + Koniec ogona + </string> + <string name="Left Wing"> + Lewe skrzydło + </string> + <string name="Right Wing"> + Prawe skrzydło + </string> + <string name="Jaw"> + Szczęka + </string> + <string name="Alt Left Ear"> + Lewe ucho 2 + </string> + <string name="Alt Right Ear"> + Prawe ucho 2 + </string> + <string name="Alt Left Eye"> + Lewe oko 2 + </string> + <string name="Alt Right Eye"> + Prawe oko 2 + </string> + <string name="Tongue"> + Język + </string> + <string name="Groin"> + Krocze + </string> + <string name="Left Hind Foot"> + Lewa tylna stopa + </string> + <string name="Right Hind Foot"> + Prawa tylna stopa + </string> <string name="Invalid Attachment"> Nieprawidłowy punkt dodatku </string> @@ -1706,6 +1930,42 @@ Spróbuj zalogować się ponownie za minutę. <string name="TodayOld"> Dołączył dzisiaj </string> + <string name="av_render_everyone_now"> + Wszyscy mogą Cię obecnie widzieć. + </string> + <string name="av_render_not_everyone"> + Możesz nie być widziany/a przez niektóre osoby wokół Ciebie. + </string> + <string name="av_render_over_half"> + Możesz nie być widziany/a przez ponad połowę osób wokół Ciebie. + </string> + <string name="av_render_most_of"> + Możesz nie być widziany/a przez większość osób wokół Ciebie. + </string> + <string name="av_render_anyone"> + Wszystkie osoby znajdujące się wokół Ciebie nie mogą Cię widzieć. + </string> + <string name="hud_description_total"> + Twój HUD + </string> + <string name="hud_name_with_joint"> + [OBJ_NAME] (założone na [JNT_NAME]) + </string> + <string name="hud_render_memory_warning"> + [HUD_DETAILS] używa dużo pamięci tekstur + </string> + <string name="hud_render_cost_warning"> + [HUD_DETAILS] zawiera dużo obiektów i tekstur, jakie są ciężkie w renderowaniu + </string> + <string name="hud_render_heavy_textures_warning"> + [HUD_DETAILS] zawiera dużo tekstur w wielkich rozmiarach + </string> + <string name="hud_render_cramped_warning"> + [HUD_DETAILS] zawiera zbyt dużo obiektów + </string> + <string name="hud_render_textures_warning"> + [HUD_DETAILS] zawiera zbyt dużo tekstur + </string> <string name="AgeYearsA"> [COUNT] rok </string> @@ -1764,10 +2024,10 @@ Spróbuj zalogować się ponownie za minutę. Pracownik Linden Lab </string> <string name="PaymentInfoUsed"> - Płatności: Dane użyte + Płatności: Dane w użyciu </string> <string name="PaymentInfoOnFile"> - Płatności: Dane znane + Płatności: Dane przypisane </string> <string name="NoPaymentInfoOnFile"> Płatności: Dane nieznane @@ -1823,6 +2083,9 @@ Spróbuj zalogować się ponownie za minutę. <string name="CompileQueueUnknownFailure"> Nieznany błąd podczas pobierania </string> + <string name="CompileNoExperiencePerm"> + Pomijanie skryptu [SCRIPT] z Przygodą [EXPERIENCE]. + </string> <string name="CompileQueueTitle"> Postęp rekompilacji </string> @@ -1857,11 +2120,14 @@ Spróbuj zalogować się ponownie za minutę. Zapisywanie zakończone. </string> <string name="UploadFailed"> - Ładowanie nieudane: + Przesyłanie nieudane: </string> <string name="ObjectOutOfRange"> Skrypt (obiekt poza zasięgiem) </string> + <string name="ScriptWasDeleted"> + Skrypt (usunięty z zawartości obiektu) + </string> <string name="GodToolsObjectOwnedBy"> Obiekt [OBJECT] należący do [OWNER] </string> @@ -1894,6 +2160,9 @@ Spróbuj zalogować się ponownie za minutę. <string name="NoGroupDataFound"> Brak informacji na temat grupy </string> + <string name="AlreadyInGroup"> + Jesteś już w tej grupie + </string> <string name="IMParentEstate"> majątek rodziców </string> @@ -1916,22 +2185,34 @@ Spróbuj zalogować się ponownie za minutę. wszystkie majątki, które nadzorujesz dla [OWNER] </string> <string name="RegionInfoAllowedResidents"> - Dozwoleni Rezydenci: ([ALLOWEDAGENTS], maks. [MAXACCESS]) + Zawsze dozwoleni: ([ALLOWEDAGENTS], maks. [MAXACCESS]) </string> <string name="RegionInfoAllowedGroups"> - Dozwolone Grupy: ([ALLOWEDGROUPS], maks. [MAXACCESS]) + Zawsze dozwolone grupy: ([ALLOWEDGROUPS], maks. [MAXACCESS]) </string> <string name="RegionInfoEstateManagers"> Zarządcy Majątku: ([ESTATEMANAGERS], maks. [MAXMANAGERS]) </string> <string name="RegionInfoBannedResidents"> - Zbanowani Rezydenci: ([BANNEDAGENTS], maks. [MAXBANNED]) + Zawsze zbanowani: ([BANNEDAGENTS], maks. [MAXBANNED]) </string> <string name="RegionInfoListTypeAllowedAgents"> - Dozwoleni Rezydenci + zawsze dozwoleni rezydenci </string> <string name="RegionInfoListTypeBannedAgents"> - Zbanowani Rezydenci + zawsze zbanowani rezydenci + </string> + <string name="RegionInfoAllEstates"> + wszystkie majątki + </string> + <string name="RegionInfoManagedEstates"> + zarządzane majątki + </string> + <string name="RegionInfoThisEstate"> + ten majątek + </string> + <string name="AndNMore"> + i [EXTRA_COUNT] więcej </string> <string name="ScriptLimitsParcelScriptMemory"> Pamięć skryptów działki @@ -1976,7 +2257,7 @@ Spróbuj zalogować się ponownie za minutę. Klatka piersiowa </string> <string name="ATTACH_HEAD"> - Głowa + Czaszka </string> <string name="ATTACH_LSHOULDER"> Lewe ramię @@ -1997,7 +2278,7 @@ Spróbuj zalogować się ponownie za minutę. Prawa stopa </string> <string name="ATTACH_BACK"> - Plecy + Kręgosłup </string> <string name="ATTACH_PELVIS"> Miednica @@ -2027,13 +2308,13 @@ Spróbuj zalogować się ponownie za minutę. Prawe górne ramię </string> <string name="ATTACH_RLARM"> - Prawe dolne ramię + Prawe przedramię </string> <string name="ATTACH_LUARM"> Lewe górne ramię </string> <string name="ATTACH_LLARM"> - Lewe dolne ramię + Lewe przedramię </string> <string name="ATTACH_RHIP"> Biodro prawe @@ -2056,12 +2337,12 @@ Spróbuj zalogować się ponownie za minutę. <string name="ATTACH_BELLY"> Brzuch </string> - <string name="ATTACH_RPEC"> - Prawa pierś - </string> - <string name="ATTACH_LPEC"> + <string name="ATTACH_LEFT_PEC"> Lewa pierś </string> + <string name="ATTACH_RIGHT_PEC"> + Prawa pierś + </string> <string name="ATTACH_HUD_CENTER_2"> HUD środek 2 </string> @@ -2092,6 +2373,51 @@ Spróbuj zalogować się ponownie za minutę. <string name="ATTACH_AVATAR_CENTER"> Środek awatara </string> + <string name="ATTACH_LHAND_RING1"> + Lewy palec serdeczny + </string> + <string name="ATTACH_RHAND_RING1"> + Prawy palec serdeczny + </string> + <string name="ATTACH_TAIL_BASE"> + Podstawa ogona + </string> + <string name="ATTACH_TAIL_TIP"> + Koniec ogona + </string> + <string name="ATTACH_LWING"> + Lewe skrzydło + </string> + <string name="ATTACH_RWING"> + Prawe skrzydło + </string> + <string name="ATTACH_FACE_JAW"> + Szczęka + </string> + <string name="ATTACH_FACE_LEAR"> + Lewe ucho 2 + </string> + <string name="ATTACH_FACE_REAR"> + Prawe ucho 2 + </string> + <string name="ATTACH_FACE_LEYE"> + Lewe oko 2 + </string> + <string name="ATTACH_FACE_REYE"> + Prawe oko 2 + </string> + <string name="ATTACH_FACE_TONGUE"> + Język + </string> + <string name="ATTACH_GROIN"> + Krocze + </string> + <string name="ATTACH_HIND_LFOOT"> + Lewa tylna stopa + </string> + <string name="ATTACH_HIND_RFOOT"> + Prawa tylna stopa + </string> <string name="CursorPos"> Linia [LINE], Kolumna [COLUMN] </string> @@ -2129,7 +2455,7 @@ Spróbuj zalogować się ponownie za minutę. Brak umowy dla tego majątku. </string> <string name="RegionNoCovenantOtherOwner"> - Brak umowy dla tego majątku. Działka w tym majątku została sprzedana przez właściciela majątku, a nie przez Linden Lab. Skontaktuj się z właścicielem majątku w celu uzyskania szczegółów sprzedaży. + Brak umowy dla tego majątku. Działka w tym majątku została sprzedana przez właściciela majątku. Skontaktuj się z właścicielem majątku w celu uzyskania szczegółów sprzedaży. </string> <string name="covenant_last_modified" value="Ostatnia modyfikacja: "/> <string name="none_text" value=" (brak) "/> @@ -2146,6 +2472,27 @@ Spróbuj zalogować się ponownie za minutę. <string name="RegionSettings"> Ustawienia regionu </string> + <string name="NoEnvironmentSettings"> + Ten region nie obsługuje ustawień otoczenia. + </string> + <string name="EnvironmentSun"> + Słońce + </string> + <string name="EnvironmentMoon"> + Księżyc + </string> + <string name="EnvironmentBloom"> + Blask + </string> + <string name="EnvironmentCloudNoise"> + Szum chmur + </string> + <string name="EnvironmentNormalMap"> + Mapa normalnych + </string> + <string name="EnvironmentTransparent"> + Przezroczyste + </string> <string name="ClassifiedClicksTxt"> Kliknij: [TELEPORT] teleportuj, [MAP] mapa, [PROFILE] profil </string> @@ -2153,11 +2500,23 @@ Spróbuj zalogować się ponownie za minutę. (zostanie zaktualizowane po publikacji) </string> <string name="NoPicksClassifiedsText"> - Nie dodałeś/aś nic do Ulubionych i Reklam. Kliknij na przycisk + poniżej, aby dodać miejsce do Ulubionych lub Reklam. + Nie dodano nic do Miejsc i Reklam. Kliknij na przycisk Nowe, aby utworzyć Miejsce lub Reklamę. + </string> + <string name="NoPicksText"> + Nie dodano żadnych Miejsc. Kliknij na przycisk Nowe, aby utworzyć Miejsce. + </string> + <string name="NoClassifiedsText"> + Nie dodano żadnych reklam. Kliknij na przycisk Nowa, aby utworzyć reklamę. </string> <string name="NoAvatarPicksClassifiedsText"> Brak ulubionych miejsc/reklam </string> + <string name="NoAvatarPicksText"> + Brak ulubionych miejsc + </string> + <string name="NoAvatarClassifiedsText"> + Brak reklam + </string> <string name="PicksClassifiedsLoadingText"> Ładowanie... </string> @@ -2228,14 +2587,11 @@ Spróbuj zalogować się ponownie za minutę. Anuluj </string> <string name="UploadingCosts"> - Załadowanie [NAME] kosztuje [AMOUNT]L$ - </string> - <string name="BuyingCosts"> - Cena zakupu tego wynosi [AMOUNT]L$ + Przesyłanie [NAME] kosztuje [AMOUNT]L$ </string> <string name="UnknownFileExtension"> Nieznane rozszerzenie pliku .%s -Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .bvh +Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .anim </string> <string name="MuteObject2"> Zablokuj @@ -2327,6 +2683,9 @@ Oczekiwane .wav, .tga, .bmp, .jpg, .jpeg, lub .bvh <string name="Linden Location"> Lokalizacja Lindenów </string> + <string name="Adult"> + Dla dorosłych + </string> <string name="Arts&Culture"> Sztuka i Kultura </string> @@ -2383,7 +2742,7 @@ Błąd: <string name="MBUnableToAccessFile"> Aplikacja [APP_NAME] nie odnalazła poszukiwanego pliku. -Może być to spowodowane aktywnością kilku kopii oprogramowania w tej samej chwili lub Twój system błędnie odczytuje proces zakończenia dla uruchomionych aplikacji. +Może być to spowodowane aktywnością kilku kopii oprogramowania w tej samej chwili lub Twój system błędnie uważa, że plik jest otwarty / zablokowany. Jeżeli nadal otrzymujesz ten komunikat, uruchom swój komputer ponownie. Jeżeli problem nadal występuje, proponujemy całkowite odinstalowanie aplikacji [APP_NAME] oraz ponowną jej instalację. </string> @@ -2448,7 +2807,7 @@ Uruchomione w oknie. Ustaw tryb koloru swojego wyświetlacza na 32-bity. </string> <string name="MBAlpha"> - Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ nie jest możliwe dostanie się na kanał 8 bitowy alpha. Najczęściej jest to spowodowane błędami sterowników karty video. + Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ nie może uzyskać dostępu do 8 bitowego kanału alpha. Najczęściej jest to spowodowane błędami sterowników karty video. Upewnij się, że posiadasz najnowsze aktualizacje sterowników karty video. Dodatkowo, sprawdź czy Twój monitor posiada poprawną konfigurację koloru (32-bity) w Panel Sterowania > Ekran > Ustawienia. Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. @@ -2467,7 +2826,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. </string> - <string name="5 O'Clock Shadow"> + <string name="5 O'Clock Shadow"> Cień na godzinie 5 </string> <string name="All White"> @@ -3997,9 +4356,6 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. <string name="IM_to_label"> Do </string> - <string name="IM_moderator_label"> - (Moderator) - </string> <string name="Saved_message"> (Zapisano [LONG_TIMESTAMP]) </string> @@ -4012,6 +4368,12 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. <string name="OfflineStatus"> niedostępny/a </string> + <string name="not_online_msg"> + Ta osoba jest niedostępna - wiadomość zostanie zapisana i dostarczona później. + </string> + <string name="not_online_inventory"> + Ta osoba jest niedostępna - przedmiot został zapisany. + </string> <string name="answered_call"> Twoja rozmowa głosowa została odebrana </string> @@ -4046,20 +4408,14 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Konferencja z [AGENT_NAME] </string> <string name="inventory_item_offered-im"> - Zaoferowano przedmiot + Zaoferowano przedmiot: '[ITEM_NAME]' + </string> + <string name="inventory_folder_offered-im"> + Zaoferowano folder: '[ITEM_NAME]' </string> <string name="share_alert"> Przeciągaj tutaj rzeczy z Szafy </string> - <string name="facebook_post_success"> - Wysłałeś/aś post na Facebooka. - </string> - <string name="flickr_post_success"> - Wysłałeś/aś post na Flickr. - </string> - <string name="twitter_post_success"> - Wysłałeś/aś post na Twittera. - </string> <string name="no_session_message"> (Sesja IM wygasła) </string> @@ -4076,10 +4432,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE]. Zablokowałeś/aś tego Rezydenta. Wysłanie wiadomości odblokuje go automatycznie. </string> <string name="generic"> - Błąd zapytania, proszę spróbować później + Zamknij i ponownie otwórz rozmowę - lub przeloguj się i spróbuj ponownie. </string> <string name="generic_request_error"> - Błąd. Spróbuj ponownie za kilka minut. + Zamknij i ponownie otwórz rozmowę - lub przeloguj się i spróbuj ponownie. </string> <string name="insufficient_perms_error"> Nie masz wystarczających uprawnień. @@ -4131,6 +4487,9 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom <string name="unread_chat_multiple"> [SOURCES] powiedział/a coś nowego </string> + <string name="teleport_preamble_compact_chat"> + Jesteś teraz w + </string> <string name="session_initialization_timed_out_error"> Inicjalizacja sesji wygasła </string> @@ -4140,12 +4499,18 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom <string name="paid_you_ldollars"> [NAME] zapłacił/a Tobie [AMOUNT]L$ [REASON]. </string> + <string name="paid_you_ldollars_gift"> + [NAME] zapłacił/a Tobie [AMOUNT]L$: [REASON] + </string> <string name="paid_you_ldollars_no_reason"> [NAME] zapłacił/a Tobie [AMOUNT]L$. </string> <string name="you_paid_ldollars"> Zapłacono [NAME] [AMOUNT]L$ [REASON]. </string> + <string name="you_paid_ldollars_gift"> + Zapłacono [NAME] [AMOUNT]L$: [REASON] + </string> <string name="you_paid_ldollars_no_info"> Zapłacono [AMOUNT]L$. </string> @@ -4158,6 +4523,9 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom <string name="you_paid_failure_ldollars"> Nie udało się zapłacić [NAME] [AMOUNT]L$ [REASON]. </string> + <string name="you_paid_failure_ldollars_gift"> + Nie udało się zapłacić [NAME] [AMOUNT]L$: [REASON] + </string> <string name="you_paid_failure_ldollars_no_info"> Nie udało się zapłacić [AMOUNT]L$. </string> @@ -4186,25 +4554,25 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom aby dołączyć do grupy </string> <string name="to upload"> - aby załadować + aby przesłać </string> <string name="to publish a classified ad"> publikacja reklamy </string> - <string name="giving"> - Dajesz [AMOUNT]L$ - </string> <string name="uploading_costs"> - Ładowanie kosztuje [AMOUNT]L$ + Przesyłanie kosztuje [AMOUNT]L$ </string> <string name="this_costs"> To kosztuje [AMOUNT]L$ </string> <string name="buying_selected_land"> - Kupno wybranej działki za [AMOUNT]L$ + Działka kosztuje </string> <string name="this_object_costs"> - Ten obiekt kosztuje [AMOUNT]L$ + Obiekt kosztuje + </string> + <string name="giving"> + Chcesz dać </string> <string name="group_role_everyone"> Każdy @@ -4219,7 +4587,7 @@ Jeśli nie pojawi się w ciągu kilku minut może to oznaczać, że została pom Obecnie w SL </string> <string name="uploading_abuse_report"> - Ładowanie... + Przesyłanie... Raport o Nadużyciu </string> @@ -4268,6 +4636,9 @@ Raport o Nadużyciu <string name="New Tattoo"> Nowy tatuaż </string> + <string name="New Universal"> + Nowa warstwa uniwersalna + </string> <string name="New Physics"> Nowa fizyka </string> @@ -4394,6 +4765,15 @@ Raport o Nadużyciu <string name="Female - Wow"> Kobieta - Wow </string> + <string name="New Day"> + Nowy cykl dnia + </string> + <string name="New Water"> + Nowa woda + </string> + <string name="New Sky"> + Nowe niebo + </string> <string name="AvatarBirthDateFormat"> [day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt] </string> @@ -4403,10 +4783,19 @@ Raport o Nadużyciu <string name="texture_load_dimensions_error"> Nie można załadować obrazów większych niż [WIDTH]*[HEIGHT] </string> + <string name="outfit_photo_load_dimensions_error"> + Maks. rozmiar zdjęcia stroju to [WIDTH]*[HEIGHT]. Przeskaluj lub użyj innego. + </string> + <string name="outfit_photo_select_dimensions_error"> + Maks. rozmiar zdjęcia stroju to [WIDTH]*[HEIGHT]. Użyj innej tekstury. + </string> + <string name="outfit_photo_verify_dimensions_error"> + Nie można sprawdzić wymiarów zdjęcia. Poczekaj, aż pojawi się na podglądzie. + </string> <string name="server_is_down"> Pomimo naszych najlepszych starań wystąpił niespodziewany problem. -Proszę sprawdzić czy na stronie status.secondlifegrid.net nie zostały umieszczone informacje o rozpoznanych problemach serwera. +Proszę sprawdzić czy na https://status.secondlifegrid.net nie zostały umieszczone informacje o rozpoznanych problemach serwera. Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia firewall. </string> <string name="dateTimeWeekdaysNames"> @@ -4466,6 +4855,18 @@ Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia <string name="Chat"> Czat </string> + <string name="BaseMembership"> + Podstawowe + </string> + <string name="InternalMembership"> + Wewnętrzne + </string> + <string name="MembershipUpgradeText"> + Zmień plan członkostwa + </string> + <string name="MembershipPremiumText"> + Moje członkostwo Premium + </string> <string name="DeleteItems"> Usunąć zaznaczone obiekty? </string> @@ -4476,7 +4877,7 @@ Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia W tym stroju nie ma elementów </string> <string name="ExternalEditorNotSet"> - Wybierz edytor używając ustawień ExternalEditor. + Wybierz edytor poprzez ustawienie zmiennej środowiska LL_SCRIPT_EDITOR lub ustawienie ExternalEditor. </string> <string name="ExternalEditorNotFound"> Nie odnaleziono zewnętrznego edytora wskazanego przez Ciebie. @@ -4507,6 +4908,24 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="Divide"> Podziel </string> + <string name="LMB"> + LPM + </string> + <string name="MMB"> + ŚPM + </string> + <string name="RMB"> + PPM + </string> + <string name="MB4"> + Mysz4 + </string> + <string name="MB5"> + Mysz5 + </string> + <string name="Double LMB"> + Podwójny LPM + </string> <string name="BeaconParticle"> Emitery cząsteczek (niebieski) </string> @@ -4525,9 +4944,18 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="BeaconMedia"> Emitery mediów (biały) </string> + <string name="BeaconSun"> + Emiter kierunku Słońca (pomarańczowy) + </string> + <string name="BeaconMoon"> + Emiter kierunku Księżyca (purpurowy) + </string> <string name="ParticleHiding"> Ukryj cząsteczki </string> + <string name="Command_360_Capture_Label"> + Zdjęcie 360° + </string> <string name="Command_AboutLand_Label"> O działce </string> @@ -4535,7 +4963,7 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. Wygląd </string> <string name="Command_Avatar_Label"> - Awatar + Biblioteka awatarów </string> <string name="Command_Build_Label"> Buduj @@ -4552,9 +4980,15 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="Command_Destinations_Label"> Cele podróży </string> + <string name="Command_Environments_Label"> + Otoczenia + </string> <string name="Command_Gestures_Label"> Gesty </string> + <string name="Command_Grid_Status_Label"> + Status świata + </string> <string name="Command_HowTo_Label"> Samouczek </string> @@ -4564,18 +4998,12 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="Command_Map_Label"> Mapa </string> - <string name="Command_Marketplace_Label"> - Marketplace - </string> <string name="Command_MiniMap_Label"> Minimapa </string> <string name="Command_Move_Label"> Ruch </string> - <string name="Command_Outbox_Label"> - Skrzynka nadawcza kupca - </string> <string name="Command_People_Label"> Ludzie </string> @@ -4591,6 +5019,9 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="Command_Profile_Label"> Profil </string> + <string name="Command_Report_Abuse_Label"> + Zgłoś nadużycie + </string> <string name="Command_Search_Label"> Szukaj </string> @@ -4606,6 +5037,9 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="Command_Voice_Label"> Pobliski głos </string> + <string name="Command_360_Capture_Tooltip"> + Uchwyć równoprostokątny obraz 360° + </string> <string name="Command_AboutLand_Tooltip"> Informacje o miejscu, które odwiedzasz </string> @@ -4630,15 +5064,15 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="Command_Destinations_Tooltip"> Punkty, jakie mogą być interesujące </string> - <string name="Command_Facebook_Tooltip"> - Wyślij na Facebooka - </string> - <string name="Command_Flickr_Tooltip"> - Wyślij na Flickr + <string name="Command_Environments_Tooltip"> + Otoczenia </string> <string name="Command_Gestures_Tooltip"> Gesty Twojego awatara </string> + <string name="Command_Grid_Status_Tooltip"> + Pokaż obecny status świata + </string> <string name="Command_HowTo_Tooltip"> Jak wykonywać zwyczajne rzeczy </string> @@ -4651,15 +5085,15 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="Command_Marketplace_Tooltip"> Idź na zakupy </string> + <string name="Command_MarketplaceListings_Tooltip"> + Sprzedawaj owoce swojej kreatywności + </string> <string name="Command_MiniMap_Tooltip"> Pokaż ludzi w pobliżu </string> <string name="Command_Move_Tooltip"> Poruszanie Twoim awatarem </string> - <string name="Command_Outbox_Tooltip"> - Przenieś przedmioty na Marketplace, aby je sprzedać - </string> <string name="Command_People_Tooltip"> Znajomi, grupy i ludzie w pobliżu </string> @@ -4675,6 +5109,9 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="Command_Profile_Tooltip"> Edytuj lub zobacz swój profil </string> + <string name="Command_Report_Abuse_Tooltip"> + Zgłoś nadużycie + </string> <string name="Command_Search_Tooltip"> Znajdź miejsca, wydarzenia i ludzi </string> @@ -4756,6 +5193,99 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="UserDictionary"> [Użytkownika] </string> + <string name="experience_tools_experience"> + Przygoda + </string> + <string name="ExperienceNameNull"> + (bez przygody) + </string> + <string name="ExperienceNameUntitled"> + (przygoda bez nazwy) + </string> + <string name="Land-Scope"> + Zakres: Ziemia + </string> + <string name="Grid-Scope"> + Zakres: Cały świat + </string> + <string name="Allowed_Experiences_Tab"> + ZEZWALAM + </string> + <string name="Blocked_Experiences_Tab"> + BLOKUJĘ + </string> + <string name="Contrib_Experiences_Tab"> + TWORZĘ + </string> + <string name="Admin_Experiences_Tab"> + ZARZĄDZAM + </string> + <string name="Recent_Experiences_Tab"> + OSTATNIE + </string> + <string name="Owned_Experiences_Tab"> + MOJE + </string> + <string name="ExperiencesCounter"> + ([EXPERIENCES], maks. [MAXEXPERIENCES]) + </string> + <string name="ExperiencePermission1"> + kontrolować klawisze + </string> + <string name="ExperiencePermission3"> + animować Twojego awatara + </string> + <string name="ExperiencePermission4"> + dołączać do Twojego awatara + </string> + <string name="ExperiencePermission9"> + śledzić Twoją kamerę + </string> + <string name="ExperiencePermission10"> + kontrolować Twoją kamerę + </string> + <string name="ExperiencePermission11"> + teleportować Cię + </string> + <string name="ExperiencePermission12"> + automatycznie akceptować uprawnienia przygody + </string> + <string name="ExperiencePermission16"> + zmuszać Twojego awatara do siadania + </string> + <string name="ExperiencePermission17"> + zmieniać Twoje ustawienia otoczenia + </string> + <string name="ExperiencePermissionShortUnknown"> + wykonać nieznaną operację: [Permission] + </string> + <string name="ExperiencePermissionShort1"> + Kontrola klawiszy + </string> + <string name="ExperiencePermissionShort3"> + Rozpoczynanie animacji + </string> + <string name="ExperiencePermissionShort4"> + Dołączanie + </string> + <string name="ExperiencePermissionShort9"> + Śledzenie kamery + </string> + <string name="ExperiencePermissionShort10"> + Kontrola kamery + </string> + <string name="ExperiencePermissionShort11"> + Teleportacja + </string> + <string name="ExperiencePermissionShort12"> + Uprawnienia + </string> + <string name="ExperiencePermissionShort16"> + Siadanie + </string> + <string name="ExperiencePermissionShort17"> + Otoczenie + </string> <string name="logging_calls_disabled_log_empty"> Rozmowy nie są zapisywane do dziennika. Jeśli chcesz zacząć je logować wybierz "Zapisywanie: tylko dziennik" lub "Zapisywanie: dziennik i logi rozmów" w Preferencje > Czat. </string> @@ -4768,4 +5298,52 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu. <string name="loading_chat_logs"> Wczytywanie... </string> + <string name="na"> + n/d + </string> + <string name="preset_combo_label"> + -Lista jest pusta- + </string> + <string name="Default"> + Domyślne + </string> + <string name="none_paren_cap"> + (Brak) + </string> + <string name="no_limit"> + Bez limitu + </string> + <string name="Mav_Details_MAV_FOUND_DEGENERATE_TRIANGLES"> + Kształt fizyczny zawiera trójkąty, które są zbyt małe. Spróbuj uprościć model fizyczny. + </string> + <string name="Mav_Details_MAV_CONFIRMATION_DATA_MISMATCH"> + Kształt fizyczny zawiera uszkodzone dane. Spróbuj poprawić model fizyczny. + </string> + <string name="Mav_Details_MAV_BLOCK_MISSING"> + Brakujące dane. Upewnij się, że wysoki LOD jest obecny i prawidłowy. Ustaw model fizyczny, jeśli nie jest obecny. + </string> + <string name="Mav_Details_MAV_UNKNOWN_VERSION"> + Kształt fizyczny zawiera niepoprawną wersję. Ustaw poprawną wersję dla modelu fizycznego. + </string> + <string name="couldnt_resolve_host"> + DNS nie mógł znaleźć nazwy hosta ([HOSTNAME]). +Sprawdź, czy możesz połączyć się z www.secondlife.com +Jeśli możesz, ale nadal otrzymujesz ten błąd, to przejdź +do sekcji pomocy technicznej i zgłoś ten problem. + </string> + <string name="ssl_peer_certificate"> + Serwer logowania nie mógł zweryfikować się poprzez SSL. +Jeśli nadal będziesz otrzymywać ten błąd, to przejdź +do sekcji wsparcia witryny SecondLife.com i zgłoś problem. + </string> + <string name="ssl_connect_error"> + Często oznacza to, że zegar komputera jest ustawiony nieprawidłowo. +Przejdź do Panelu Sterowania i upewnij się, że godzina i data +są ustawione prawidłowo. +Sprawdź również, czy twoja sieć i zapora są poprawnie skonfigurowane. +Jeśli nadal będziesz otrzymywać ten błąd, to przejdź +do sekcji wsparcia witryny SecondLife.com i zgłoś problem. + +[https://community.secondlife.com/knowledgebase/english/error-messages-r520/#Section__3 Knowledge Base] + </string> </strings> diff --git a/indra/newview/skins/default/xui/pl/widgets/density_ctrl.xml b/indra/newview/skins/default/xui/pl/widgets/density_ctrl.xml new file mode 100644 index 0000000000..fcd7de9eca --- /dev/null +++ b/indra/newview/skins/default/xui/pl/widgets/density_ctrl.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<densityctrl label="Gęstość" name="density_ctrl"> + <text name="exponential_term_label"> + Okres wykładniczy + </text> + <text name="exponential_scale_factor_label"> + Współczynnik skali wykładn. + </text> + <text name="linear_term_label"> + Okres liniowy + </text> + <text name="constant_term_label"> + Okres stały + </text> + <text name="max_altitude_label"> + Maks. wysokość + </text> + <text name="aniso_factor_label"> + Współczynnik anizotropii + </text> +</densityctrl> diff --git a/indra/newview/skins/default/xui/pl/widgets/person_view.xml b/indra/newview/skins/default/xui/pl/widgets/person_view.xml index 2ebe5974d6..7df1663fe0 100644 --- a/indra/newview/skins/default/xui/pl/widgets/person_view.xml +++ b/indra/newview/skins/default/xui/pl/widgets/person_view.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <person_view> - <facebook_icon name="facebook_icon" tool_tip="Użytkownik Facebooka" /> <permission_edit_theirs_icon name="permission_edit_theirs_icon" tool_tip="Możesz edytować obiekty tego Znajomego" /> <permission_edit_mine_icon name="permission_edit_mine_icon" tool_tip="Ten Znajomy może edytować, kasować lub wziąć Twoje obiekty" /> <permission_map_icon tool_tip="Ten Znajomy może zlokalizować Cię na mapie" name="permission_map_icon" /> diff --git a/indra/newview/skins/default/xui/pl/widgets/texture_picker.xml b/indra/newview/skins/default/xui/pl/widgets/texture_picker.xml deleted file mode 100644 index fc35ac714d..0000000000 --- a/indra/newview/skins/default/xui/pl/widgets/texture_picker.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<texture_picker name="texture picker"> - <caption_text label="Wiele" /> -</texture_picker> diff --git a/indra/newview/skins/default/xui/pt/floater_about.xml b/indra/newview/skins/default/xui/pt/floater_about.xml index 3c0ca332ac..aaed728f84 100644 --- a/indra/newview/skins/default/xui/pt/floater_about.xml +++ b/indra/newview/skins/default/xui/pt/floater_about.xml @@ -29,6 +29,7 @@ com contribuições de código aberto de:</text> 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. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler. O Visualizador do Second Life usa Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (e seus Licenciantes). Todos os direitos reservados. Consulte www.havok.com para obter detalhes. diff --git a/indra/newview/skins/default/xui/pt/floater_chat_bar.xml b/indra/newview/skins/default/xui/pt/floater_chat_bar.xml deleted file mode 100644 index 2eb2c94940..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="BATE-PAPO LOCAL"> - <panel name="bottom_panel"> - <line_editor label="Clique aqui para bater papo." name="chat_box" tool_tip="Tecle Enter para falar, Ctrl+Enter para gritar"/> - <button name="show_nearby_chat" tool_tip="Mostra/oculta o histórico do bate-papo local"/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/pt/floater_edit_day_cycle.xml deleted file mode 100644 index 9e25938986..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="Editar ciclo dos dias"> - <string name="title_new"> - Criar novo ciclo de dias - </string> - <string name="title_edit"> - Editar ciclo dos dias - </string> - <string name="hint_new"> - Dê um nome ao seu ciclo dos dias, ajuste os controles para criá-lo e clique em "Salvar". - </string> - <string name="hint_edit"> - Para editar sua configuração do dia, ajuste os controles e clique em "Salvar". - </string> - <string name="combo_label"> - -Selecione uma pré-configuração- - </string> - <text name="label"> - Nome: - </text> - <text name="note"> - Observação: trocar o nome de uma pré-configuração criará uma nova sem modificar a uma pré-configuração atual. - </text> - <text name="hint_item1"> - - Clique em uma guia para editar as configurações e horário de um céu. - </text> - <text name="hint_item2"> - - Clique e arraste as guias para definir as transições. - </text> - <text name="hint_item3"> - - Use a seta para rever o ciclo dos dias. - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="Adicionar chave" label_selected="Adicionar chave" name="WLAddKey"/> - <button label="Excluir chave" label_selected="Excluir chave" name="WLDeleteKey"/> - <text name="WL12am"> - 24:00 - </text> - <text name="WL3am"> - 03:00 - </text> - <text name="WL6am"> - 06:00 - </text> - <text name="WL9amHash"> - 09:00 - </text> - <text name="WL12pmHash"> - 12:00 - </text> - <text name="WL3pm"> - 15:00 - </text> - <text name="WL6pm"> - 18:00 - </text> - <text name="WL9pm"> - 21:00 - </text> - <text name="WL12am2"> - 24:00 - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - Configuração do céu: - </text> - <combo_box label="Pré-configuração" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - Hora: - </text> - <time name="time" value="06:00"/> - <check_box label="Usar como novo ciclo de dias" name="make_default_cb"/> - <button label="Salvar" name="save"/> - <button label="Cancelar" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/pt/floater_edit_sky_preset.xml deleted file mode 100644 index 6c663e2da8..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="Editar predefinição de céu"> - <string name="title_new"> - Criar uma nova predefinição de céu - </string> - <string name="title_edit"> - Editar predefinição de céu - </string> - <string name="hint_new"> - Nomeie sua predefinição, ajuste os controles para criá-la e clique em “Salvar”. - </string> - <string name="hint_edit"> - Para editar a sua predefinição de céu, ajuste os controles e clique em “Salvar”. - </string> - <string name="combo_label"> - -Selecionar uma prefefinição- - </string> - <text name="hint"> - Para editar a sua predefinição, ajuste os controles e clique em “Salvar”. - </text> - <text name="label"> - Nome predefinido: - </text> - <text name="note"> - Note: se você alterar o nome da sua predefinição, você criará uma nova predefinição e a predefinição existente não será alterada. - </text> - <tab_container name="WindLight Tabs"> - <panel label="ATMOSFERA" name="Atmosphere"> - <text name="BHText"> - Horizonte azul - </text> - <text name="BDensText"> - Horizonte de neblina - </text> - <text name="BDensText2"> - Densidade azul - </text> - <text name="HDText"> - Densidade da neblina - </text> - <text name="DensMultText"> - Múltipla densidade - </text> - <text name="WLDistanceMultText"> - Múltipla distância - </text> - <text name="MaxAltText"> - Altitude máx. - </text> - </panel> - <panel label="ILUMINAÇÃO" name="Lighting"> - <text name="SLCText"> - Cor do sol/lua - </text> - <text name="WLAmbientText"> - Ambiente - </text> - <text name="SunGlowText"> - Brilho do sol - </text> - <slider label="Enfocar" name="WLGlowB"/> - <slider label="Tamanho" name="WLGlowR"/> - <text name="WLStarText"> - Brilho da estrela - </text> - <text name="SceneGammaText"> - Gama da cena - </text> - <text name="TODText"> - Posição do sol/lua - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - 12am - </text> - <text name="WL6am"> - 6am - </text> - <text name="WL12pmHash"> - 12pm - </text> - <text name="WL6pm"> - 6pm - </text> - <text name="WL12am2"> - 12am - </text> - <time name="WLDayTime" value="6:00 AM"/> - <text name="WLEastAngleText"> - Ângulo leste - </text> - </panel> - <panel label="NUVENS" name="Clouds"> - <text name="WLCloudColorText"> - Cor da nuvem - </text> - <text name="WLCloudColorText2"> - Nuvem XY/Densidade - </text> - <slider label="X" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - Cobertura da nuvem - </text> - <text name="WLCloudScaleText"> - Escala da nuvem - </text> - <text name="WLCloudDetailText"> - Detalhe da Nuvem (XY/Densidade) - </text> - <slider label="X" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - Rolagem na nuvem X - </text> - <check_box label="Bloquear" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - Rolagem na nuvem Y - </text> - <check_box label="Bloquear" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="Tornar esta predefinição minha nova configuração de céu" name="make_default_cb"/> - <button label="Salvar" name="save"/> - <button label="Cancelar" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/pt/floater_edit_water_preset.xml deleted file mode 100644 index f94f78c8ae..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="Editar predefinição da água"> - <string name="title_new"> - Criar uma nova predefinição da água - </string> - <string name="title_edit"> - Editar uma predefinição da água - </string> - <string name="hint_new"> - Nomeie sua predefinição, ajuste os controles para criá-la e clique em “Salvar”. - </string> - <string name="hint_edit"> - Para editar a sua predefinição da água, ajuste os controles e clique em “Salvar”. - </string> - <string name="combo_label"> - -Selecionar uma prefefinição- - </string> - <text name="hint"> - Para editar a sua predefinição, ajuste os controles e clique em “Salvar”. - </text> - <text name="label"> - Nome predefinido: - </text> - <text name="note"> - Note: se você alterar o nome da sua predefinição, você criará uma nova predefinição e a predefinição existente não será alterada. - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - Cor da névoa da água - </text> - <text name="water_fog_density_label"> - Exponente de densidade da névoa - </text> - <text name="underwater_fog_modifier_label"> - Modificador da névoa embaixo da água - </text> - <text name="BHText"> - Direção da grande onda - </text> - <slider label="X" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - Escala da reflexão da onda - </text> - <text name="HDText"> - Escala fresnel - </text> - <text name="FresnelOffsetText"> - Offset fresnel - </text> - <text name="BHText2"> - Direção da pequena onda - </text> - <slider label="X" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - Escala de Refratar Acima - </text> - <text name="WaterScaleBelowText"> - Escala de Refratar Abaixo - </text> - <text name="MaxAltText"> - Múltiplo desfoque - </text> - <text name="BHText3"> - Mapa normal - </text> - </panel> - <check_box label="Tornar esta predefinição minha nova configuração da água" name="make_default_cb"/> - <button label="Salvar" name="save"/> - <button label="Cancelar" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_environment_settings.xml b/indra/newview/skins/default/xui/pt/floater_environment_settings.xml deleted file mode 100644 index 40be4dbff4..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="CONFIGURAÇÕES DE AMBIENTE"> - <text name="note"> - Use a opção abaixo para personalizar as configurações de ambiente para o seu visualizador. - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="Use as configurações da região" name="use_region_settings"/> - <radio_item label="Personalizar meu ambiente" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - Nota: suas configurações personalizadas não estarão visíveis para outros usuários. - </text> - <text name="water_settings_title"> - Configurações da água - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-Selecionar uma prefefinição-" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - Céu / Ciclo de dias - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="Céu fixo" name="my_sky_settings"/> - <radio_item label="Ciclos de dias" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-Selecionar uma prefefinição-" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-Selecionar uma prefefinição-" name="item0"/> - </combo_box> - </panel> - <button label="OK" name="ok_btn"/> - <button label="Cancelar" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_facebook.xml b/indra/newview/skins/default/xui/pt/floater_facebook.xml deleted file mode 100644 index af30582237..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="PUBLICAR NO FACEBOOK"> - <tab_container name="tabs"> - <panel label="STATUS" name="panel_facebook_status"/> - <panel label="FOTO" name="panel_facebook_photo"/> - <panel label="FAZER CHECK IN" name="panel_facebook_place"/> - <panel label="AMIGOS" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - Erro - </text> - <text name="connection_loading_text"> - Carregando... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_flickr.xml b/indra/newview/skins/default/xui/pt/floater_flickr.xml deleted file mode 100644 index d048dbb658..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="COMPARTILHAR NO FLICKR"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="FOTO" name="panel_flickr_photo"/> - <panel label="CONTA" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - Erro - </text> - <text name="connection_loading_text"> - Carregando... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml deleted file mode 100644 index 1204fb93e2..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="CONFIGURAÇÃO DO HARDWARE"> - <text name="Filtering:"> - Filtragem: - </text> - <check_box label="Filtragem Anisotrópica (mais lento quando habilitada)" name="ani"/> - <text name="antialiasing label"> - Suavização: - </text> - <combo_box label="Suavização" name="fsaa" width="94"> - <combo_box.item label="Desativado" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (Reinicie para ativar) - </text> - <spinner label="Gama:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (0 = brilho padrão, menor = mais brilho) - </text> - <text name="Enable VBO:"> - Habilitar VBO: - </text> - <check_box initial_value="true" label="Habilitar Objetos com Armazenamento de Vértices" name="vbo" tool_tip="Habilitando-o em máquinas novas, ele oferece um ganho de performance. Contudo, as máquinas antigas tem freqüentemente implementações pobres de VBOs e você pode ter travamentos quando esta opção é habilitada."/> - <text name="tc label"> - Habilitar S3TC: - </text> - <check_box initial_value="true" label="Habilitar compressão de texturas (requer reinício)" name="texture compression" tool_tip="Comprime as texturas na memória de vídeo, permitindo o carregamento de texturas de maior resolução em detrimento da qualidade da cor."/> - <slider label="Memória de texturas (MB):" name="GraphicsCardTextureMemory" tool_tip="Quanto da memória deve ser alocado para texturas. O padrão é definido pela memória da placa de vídeo. Reduzir este valor pode melhorar o desempenho, mas as texturas podem fica fora de foco."/> - <spinner label="Relação de Distância de Nevoeiro:" name="fog"/> - <button label="OK" label_selected="OK" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml b/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml deleted file mode 100644 index 33a0d6a456..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="PERMISSÕES PADRÃO DE UPLOAD"> - <panel label="Permissões" name="permissions"> - <button label="?" label_selected="?" name="help"/> - <check_box label="Compartilhar com o grupo" name="share_with_group"/> - <check_box label="Permitir que qualquer um copie" name="everyone_copy"/> - <text name="NextOwnerLabel"> - O próximo dono pode: - </text> - <check_box label="Modificar" name="next_owner_modify"/> - <check_box label="Copiar" name="next_owner_copy"/> - <check_box label="Revender/Dar" name="next_owner_transfer"/> - </panel> - <button label="OK" label_selected="OK" name="ok"/> - <button label="Cancelar" label_selected="Cancelar" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_twitter.xml b/indra/newview/skins/default/xui/pt/floater_twitter.xml deleted file mode 100644 index 14bee3ffc3..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="TWITTER"> - <tab_container name="tabs"> - <panel label="REDIGIR" name="panel_twitter_photo"/> - <panel label="CONTA" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - Erro - </text> - <text name="connection_loading_text"> - Carregando... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/pt/floater_voice_controls.xml b/indra/newview/skins/default/xui/pt/floater_voice_controls.xml deleted file mode 100644 index 745a7d0e00..0000000000 --- a/indra/newview/skins/default/xui/pt/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="CONTROLES DE VOZ"> - <string name="title_nearby"> - CONFIGURAÇÕES DE VOZ - </string> - <string name="title_group"> - LIGAÇÃO DE GRUPO COM [GROUP] - </string> - <string name="title_adhoc"> - TELECONFERÊNCIA - </string> - <string name="title_peer_2_peer"> - LIGAÇÃO PARA [NAME] - </string> - <string name="no_one_near"> - Ninguém por perto ativou a voz - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="Meu avatar:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="Desligar" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml deleted file mode 100644 index 2b5aa7508b..0000000000 --- a/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Ver perfil" name="view_profile"/> - <menu_item_call label="Adicionar amigo..." name="add_friend"/> - <menu_item_call label="MI" name="im"/> - <menu_item_call label="Ligar" name="call"/> - <menu_item_call label="Teletransportar" name="teleport"/> - <menu_item_call label="Convidar para entrar no grupo" name="invite_to_group"/> - <menu_item_call label="Bloquear" name="block"/> - <menu_item_call label="Desbloquear" name="unblock"/> - <menu_item_call label="Denunciar" name="report"/> - <menu_item_call label="Congelar" name="freeze"/> - <menu_item_call label="Ejetar" name="eject"/> - <menu_item_call label="Chutar" name="kick"/> - <menu_item_call label="CSR" name="csr"/> - <menu_item_call label="Depurar texturas" name="debug"/> - <menu_item_call label="Localizar no mapa" name="find_on_map"/> - <menu_item_call label="Mais zoom" name="zoom_in"/> - <menu_item_call label="Pagar" name="pay"/> - <menu_item_call label="Compartilhar" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml deleted file mode 100644 index e8fafa58a9..0000000000 --- a/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Sentar" name="Sit Down Here"/> - <menu_item_call label="Ficar de pé" name="Stand Up"/> - <context_menu label="Tirar" name="Take Off >"> - <context_menu label="Roupa" name="Clothes >"> - <menu_item_call label="Camisa" name="Shirt"/> - <menu_item_call label="Calças" name="Pants"/> - <menu_item_call label="Saia" name="Skirt"/> - <menu_item_call label="Sapatos" name="Shoes"/> - <menu_item_call label="Meias" name="Socks"/> - <menu_item_call label="Jaqueta" name="Jacket"/> - <menu_item_call label="Luvas" name="Gloves"/> - <menu_item_call label="Camiseta" name="Self Undershirt"/> - <menu_item_call label="Roupa de baixo" name="Self Underpants"/> - <menu_item_call label="Tatuagem" name="Self Tattoo"/> - <menu_item_call label="Alpha" name="Self Alpha"/> - <menu_item_call label="Todas as roupas" name="All Clothes"/> - </context_menu> - <context_menu label="HUD" name="Object Detach HUD"/> - <context_menu label="Separar" name="Object Detach"/> - <menu_item_call label="Separar tudo" name="Detach All"/> - </context_menu> - <menu_item_call label="Trocar de look" name="Chenge Outfit"/> - <menu_item_call label="Editar meu look" name="Edit Outfit"/> - <menu_item_call label="Editar meu corpo" name="Edit My Shape"/> - <menu_item_call label="Meus amigos" name="Friends..."/> - <menu_item_call label="Meus grupos" name="Groups..."/> - <menu_item_call label="Meu perfil" name="Profile..."/> - <menu_item_call label="Depurar texturas" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_name_field.xml b/indra/newview/skins/default/xui/pt/menu_name_field.xml deleted file mode 100644 index 2157de9813..0000000000 --- a/indra/newview/skins/default/xui/pt/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="Exibir Cópia do Nome" name="copy_display"/> - <menu_item_call label="Copiar Nome do Agente" name="copy_name"/> - <menu_item_call label="Copiar Id do Agente" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/pt/menu_people_friends_view_sort.xml deleted file mode 100644 index e7c325010f..0000000000 --- a/indra/newview/skins/default/xui/pt/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Ordenar por nome" name="sort_name"/> - <menu_item_check label="Ordenar por status" name="sort_status"/> - <menu_item_check label="Ver ícones de pessoas" name="view_icons"/> - <menu_item_check label="Autorizações de visualização dadas" name="view_permissions"/> - <menu_item_call label="Ver residentes e objetos bloqueados" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/pt/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/pt/menu_people_groups_view_sort.xml deleted file mode 100644 index 86a9d2263f..0000000000 --- a/indra/newview/skins/default/xui/pt/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Mostrar ícones de grupos" name="Display Group Icons"/> - <menu_item_call label="Sair do grupo selecionado" name="Leave Selected Group"/> -</menu> diff --git a/indra/newview/skins/default/xui/pt/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/pt/menu_people_nearby_view_sort.xml deleted file mode 100644 index 0d32d58de4..0000000000 --- a/indra/newview/skins/default/xui/pt/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Ordenar por conversas mais recentes" name="sort_by_recent_speakers"/> - <menu_item_check label="Ordenar por nome" name="sort_name"/> - <menu_item_check label="Ordenar por distância" name="sort_distance"/> - <menu_item_check label="Ver ícones de pessoas" name="view_icons"/> - <menu_item_check label="Ver Mapa" name="view_map"/> - <menu_item_call label="Ver residentes e objetos bloqueados" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/pt/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/pt/menu_people_recent_view_sort.xml deleted file mode 100644 index f3b89e01cd..0000000000 --- a/indra/newview/skins/default/xui/pt/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="menu_group_plus"> - <menu_item_check label="Ordenar por mais recente" name="sort_most"/> - <menu_item_check label="Ordenar por nome" name="sort_name"/> - <menu_item_check label="Ver ícones de pessoas" name="view_icons"/> - <menu_item_call label="Ver residentes e objetos bloqueados" name="show_blocked_list"/> -</menu> diff --git a/indra/newview/skins/default/xui/pt/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/pt/panel_adhoc_control_panel.xml deleted file mode 100644 index bd50d4953d..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="Ligar" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Desligar" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Controles de voz" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_edit_classified.xml b/indra/newview/skins/default/xui/pt/panel_edit_classified.xml deleted file mode 100644 index 7b27c811f5..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Editar anúncio" name="panel_edit_classified"> - <panel.string name="location_notice"> - (salvar para atualizar) - </panel.string> - <string name="publish_label"> - Publicar - </string> - <string name="save_label"> - Salvar - </string> - <text name="title"> - Editar anúncio - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="Selecione uma imagem"/> - </panel> - <text name="Name:"> - Cargo: - </text> - <text name="description_label"> - Descrição: - </text> - <text name="location_label"> - Localização: - </text> - <text name="classified_location"> - Carregando... - </text> - <button label="Usar configuração local" name="set_to_curr_location_btn"/> - <text name="category_label" value="Categoria:"/> - <text name="content_type_label" value="Tipo de conteúdo:"/> - <icons_combo_box label="Público geral" name="content_type"> - <icons_combo_box.item label="Moderado" name="mature_ci" value="Adulto"/> - <icons_combo_box.item label="Público geral" name="pg_ci" value="Adequado para menores"/> - </icons_combo_box> - <check_box label="Renovação automática semanal" name="auto_renew"/> - <text name="price_for_listing_label" value="Preço do anúncio:"/> - <spinner label="L$" name="price_for_listing" tool_tip="Preço do anúncio" value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="Cancelar" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_edit_pick.xml b/indra/newview/skins/default/xui/pt/panel_edit_pick.xml deleted file mode 100644 index 5eb9987e71..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Editar destaques" name="panel_edit_pick"> - <panel.string name="location_notice"> - (salvar para atualizar) - </panel.string> - <text name="title"> - Editar destaques - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Selecione uma imagem"/> - <text name="Name:"> - Cargo: - </text> - <text name="description_label"> - Descrição: - </text> - <text name="location_label"> - Localização: - </text> - <text name="pick_location"> - Carregando... - </text> - <button label="Usar configuração local" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Salvar destaque" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="Cancelar" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_edit_profile.xml b/indra/newview/skins/default/xui/pt/panel_edit_profile.xml deleted file mode 100644 index 0ba7382845..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_edit_profile.xml +++ /dev/null @@ -1,61 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Editar perfil" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="Residente"/> - <string name="AcctTypeTrial" value="Teste"/> - <string name="AcctTypeCharterMember" value="Estatuto do membro"/> - <string name="AcctTypeEmployee" value="Contratado da Linden Lab"/> - <string name="PaymentInfoUsed" value="Infor. de pagamento utilizadas"/> - <string name="PaymentInfoOnFile" value="Infor. de pagamento no arquivo"/> - <string name="NoPaymentInfoOnFile" value="Sem infor. de pagamento no arquivo"/> - <string name="AgeVerified" value="Idade Verificada"/> - <string name="NotAgeVerified" value="Idade não Verificada"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=pt - </string> - <string name="no_partner_text" value="Nenhum"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Nome de tela:"/> - <text name="solo_username_label" value="Nome de usuário:"/> - <button name="set_name" tool_tip="Definir nome de tela"/> - <text name="user_label" value="Nome de usuário:"/> - <panel name="lifes_images_panel"> - <icon label="" name="2nd_life_edit_icon" tool_tip="Selecione uma imagem"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Mundo real:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="Selecione uma imagem"/> - <text name="title_homepage_text"> - Página web: - </text> - <check_box label="Mostrar nos resultados de busca" name="show_in_search_checkbox"/> - <text name="title_acc_status_text" value="Minha conta:"/> - <text_editor name="acc_status_text" value="Residente. Dados de pagamento: não constam"/> - <text name="my_account_link" value="[[URL] Abrir meu painel]"/> - <text name="title_partner_text" value="Parceiro(a):"/> - <panel name="partner_data_panel"> - <text initial_value="(pesquisando)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] Editar]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Salvar alterações" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Cancelar" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_facebook_account.xml b/indra/newview/skins/default/xui/pt/panel_facebook_account.xml deleted file mode 100644 index b449e7959d..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="Você está conectado ao Facebook como:"/> - <string name="facebook_disconnected" value="Não conectado ao Facebook"/> - <text name="account_caption_label"> - Não conectado ao Facebook. - </text> - <panel name="panel_buttons"> - <button label="Conectar..." name="connect_btn"/> - <button label="Desconectar" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Aprenda a publicar no Facebook] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_facebook_friends.xml b/indra/newview/skins/default/xui/pt/panel_facebook_friends.xml deleted file mode 100644 index 8c5c24d08b..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="No momento, você não tem amigos do Facebook que também são residentes do Second Life. Convide seus amigos do Facebook para ingressar no Second Life hoje mesmo!"/> - <string name="facebook_friends_no_connected" value="No momento, você não está conectado ao Facebook. Vá para a aba Status para se conectar e ativar esse recurso."/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="Amigos do SL"/> - <accordion_tab name="tab_suggested_friends" title="Adicionar essas pessoas como amigos do SL"/> - </accordion> - <text name="facebook_friends_status"> - Não conectado ao Facebook. - </text> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_facebook_photo.xml b/indra/newview/skins/default/xui/pt/panel_facebook_photo.xml deleted file mode 100644 index cdf3222092..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="Resolução da imagem"> - <combo_box.item label="Janela atual" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - <combo_box.item label="1200x630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtros de imagem"> - <combo_box.item label="Sem filtro" name="NoFilter"/> - </combo_box> - <button label="Atualizar" name="new_snapshot_btn" tool_tip="Clique para atualizar"/> - <button label="Visualizar" name="big_preview_btn" tool_tip="Clique para alternar entre visualizações"/> - <text name="caption_label"> - Comentário (opcional): - </text> - <button label="Postar" name="post_photo_btn"/> - <button label="Cancelar" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_facebook_place.xml b/indra/newview/skins/default/xui/pt/panel_facebook_place.xml deleted file mode 100644 index aa8b51d64b..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - Diga algo sobre onde você está: - </text> - <check_box initial_value="false" label="Incluir vista abstrata da localização" name="add_place_view_cb"/> - <button label="Postar" name="post_place_btn"/> - <button label="Cancelar" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_facebook_status.xml b/indra/newview/skins/default/xui/pt/panel_facebook_status.xml deleted file mode 100644 index 0bbaf1086c..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="Você está conectado ao Facebook como:"/> - <string name="facebook_disconnected" value="Não conectado ao Facebook"/> - <text name="account_caption_label"> - Não conectado ao Facebook. - </text> - <panel name="panel_buttons"> - <button label="Conectar..." name="connect_btn"/> - <button label="Desconectar" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Aprenda a publicar no Facebook] - </text> - </panel> - <text name="status_caption_label"> - No que você está pensando? - </text> - <button label="Postar" name="post_status_btn"/> - <button label="Cancelar" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_flickr_account.xml b/indra/newview/skins/default/xui/pt/panel_flickr_account.xml deleted file mode 100644 index ed240b0013..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="Você está conectado ao Flickr como:"/> - <string name="flickr_disconnected" value="Não conectado ao Flickr"/> - <text name="account_caption_label"> - Não conectado ao Flickr. - </text> - <panel name="panel_buttons"> - <button label="Conectar..." name="connect_btn"/> - <button label="Desconectar" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Aprenda a publicar no Flickr] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_flickr_photo.xml b/indra/newview/skins/default/xui/pt/panel_flickr_photo.xml deleted file mode 100644 index 66a4f3ee3e..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="Resolução da imagem"> - <combo_box.item label="Janela atual" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtros de imagem"> - <combo_box.item label="Sem filtro" name="NoFilter"/> - </combo_box> - <button label="Atualizar" name="new_snapshot_btn" tool_tip="Clique para atualizar"/> - <button label="Visualizar" name="big_preview_btn" tool_tip="Clique para alternar entre visualizações"/> - <text name="title_label"> - Título: - </text> - <text name="description_label"> - Descrição: - </text> - <check_box initial_value="true" label="Incluir localização do SL no final da descrição" name="add_location_cb"/> - <text name="tags_label"> - Tags: - </text> - <text name="tags_help_label"> - Separe as tags com espaços -Use "" para tags com várias palavras - </text> - <combo_box name="rating_combobox" tool_tip="Classificação de conteúdo do Flickr"> - <combo_box.item label="Classificação segura do Flickr" name="SafeRating"/> - <combo_box.item label="Classificação moderada do Flickr" name="ModerateRating"/> - <combo_box.item label="Classificação restrita do Flickr" name="RestrictedRating"/> - </combo_box> - <button label="Compartilhar" name="post_photo_btn"/> - <button label="Cancelar" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_group_control_panel.xml b/indra/newview/skins/default/xui/pt/panel_group_control_panel.xml deleted file mode 100644 index 502dae8d67..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="Perfil do grupo" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Ligar para o grupo" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Desligar" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Abrir controles de voz" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml b/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml deleted file mode 100644 index 91b7d1b7cd..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="Perfil" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="Adicionar amigo" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="Teletransportar" name="teleport_btn" tool_tip="Oferecer teletransporte"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="Compartilhar" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="Pagar" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Ligar" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Encerrar ligação" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Controles de voz" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_pick_info.xml b/indra/newview/skins/default/xui/pt/panel_pick_info.xml deleted file mode 100644 index caa140a245..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="Detalhes do destaque"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[NAME]"/> - <text_editor name="pick_location" value="[carregando...]"/> - <text_editor name="pick_desc" value="[descrição]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Teletransportar" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Mapa" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Editar" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_picks.xml b/indra/newview/skins/default/xui/pt/panel_picks.xml deleted file mode 100644 index 2ff1eed624..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Destaques" name="panel_picks"> - <string name="no_picks" value="Sem destaques"/> - <string name="no_classifieds" value="Sem classificados"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Destaques"/> - <accordion_tab name="tab_classifieds" title="Classificados"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="Criar um novo destaque ou classificado na localização atual"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="Info" name="info_btn" tool_tip="Exibir dados do destaque"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Teletransportar" name="teleport_btn" tool_tip="Teletransportar para a área correspondente"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Mapa" name="show_on_map_btn" tool_tip="Exibir a área correspondente no Mapa Mundi"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_profile_interests.xml b/indra/newview/skins/default/xui/pt/panel_profile_interests.xml deleted file mode 100644 index edf74115f2..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Interesses" name="panel_profile_interests"> - <text name="I Want To:"> - Quero: - </text> - <check_box label="Crie" name="chk0"/> - <check_box label="Explore" name="chk1"/> - <check_box label="Encontrar" name="chk2"/> - <check_box label="Seja contratado" name="chk6"/> - <check_box label="Grupo" name="chk3"/> - <check_box label="Comprar" name="chk4"/> - <check_box label="Venda" name="chk5"/> - <check_box label="Contratar" name="chk7"/> - <line_editor name="want_to_edit"> - (carregando...) - </line_editor> - <text name="Skills:"> - Habilidades: - </text> - <check_box label="Texturas" name="schk0"/> - <check_box label="Arquitetura" name="schk1"/> - <check_box label="Modelo" name="schk3"/> - <check_box label="Planejamento de evento" name="schk2"/> - <check_box label="Scripts" name="schk4"/> - <check_box label="Personagens personalizados" name="schk5"/> - <line_editor name="skills_edit"> - (carregando...) - </line_editor> - <text name="Languages:"> - Idiomas: - </text> - <line_editor name="languages_edit"> - (carregando...) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_twitter_account.xml b/indra/newview/skins/default/xui/pt/panel_twitter_account.xml deleted file mode 100644 index 32ab437786..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="Você está conectado ao Twitter como:"/> - <string name="twitter_disconnected" value="Não conectado ao Twitter"/> - <text name="account_caption_label"> - Não conectado ao Twitter. - </text> - <panel name="panel_buttons"> - <button label="Conectar..." name="connect_btn"/> - <button label="Desconectar" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Aprenda a publicar no Twitter] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_twitter_photo.xml b/indra/newview/skins/default/xui/pt/panel_twitter_photo.xml deleted file mode 100644 index 7c4990f71e..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - Próximas etapas? - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="Incluir localização do SL" name="add_location_cb"/> - <check_box initial_value="true" label="Incluir uma foto" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="Resolução da imagem"> - <combo_box.item label="Janela atual" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Filtros de imagem"> - <combo_box.item label="Sem filtro" name="NoFilter"/> - </combo_box> - <button label="Atualizar" name="new_snapshot_btn" tool_tip="Clique para atualizar"/> - <button label="Visualizar" name="big_preview_btn" tool_tip="Clique para alternar entre visualizações"/> - <button label="Enviar tweet" name="post_photo_btn"/> - <button label="Cancelar" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ru/floater_about.xml b/indra/newview/skins/default/xui/ru/floater_about.xml index 44216e0430..a65a979ccd 100644 --- a/indra/newview/skins/default/xui/ru/floater_about.xml +++ b/indra/newview/skins/default/xui/ru/floater_about.xml @@ -29,6 +29,7 @@ SDL (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga SSLeay (C) 1995-1998 Eric Young (eay@cryptsoft.com) xmlrpc-epi (C) 2000 Epinions, Inc. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib (C) 1995-2012 Jean-loup Gailly и Mark Adler. В клиенте Second Life используется технология Havok (TM) Physics. (C) 1999-2010 Havok.com Inc. (и лицензиары компании). Все права защищены. Подробнее см. веб-сайт www.havok.com. diff --git a/indra/newview/skins/default/xui/ru/floater_chat_bar.xml b/indra/newview/skins/default/xui/ru/floater_chat_bar.xml deleted file mode 100644 index f6b2fc81e1..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="ЛОКАЛЬНЫЙ ЧАТ"> - <panel name="bottom_panel"> - <line_editor label="Щелкните здесь для общения." name="chat_box" tool_tip="Нажмите Enter, чтобы сказать, Ctrl+Enter, чтобы прокричать"/> - <button name="show_nearby_chat" tool_tip="Показать/скрыть лог локального чата"/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml deleted file mode 100644 index 61d708c567..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="Изменить суточный цикл"> - <string name="title_new"> - Создать суточный цикл - </string> - <string name="title_edit"> - Изменить суточный цикл - </string> - <string name="hint_new"> - Введите имя суточного цикла, задайте его параметры с помощью элементов управления и нажмите кнопку «Сохранить». - </string> - <string name="hint_edit"> - Чтобы изменить суточный цикл, задайте его параметры с помощью элементов управления ниже и нажмите кнопку «Сохранить». - </string> - <string name="combo_label"> - -Выбор настройки- - </string> - <text name="label"> - Имя настройки: - </text> - <text name="note"> - Примечание. Если изменить имя настройки, будет создана новая настройка, а изменения в существующей не будут сохранены. - </text> - <text name="hint_item1"> - - Для изменения настроек неба и времени выберите соответствующую вкладку. - </text> - <text name="hint_item2"> - - Чтобы задать время переходов, перетаскивайте вкладки. - </text> - <text name="hint_item3"> - - Скребок служит для просмотра суточного цикла. - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="+ отметку" label_selected="+ отметку" name="WLAddKey"/> - <button label="- отметку" label_selected="- отметку" name="WLDeleteKey"/> - <text name="WL12am"> - 12 ночи - </text> - <text name="WL3am"> - 3 ночи - </text> - <text name="WL6am"> - 6 утра - </text> - <text name="WL9amHash"> - 9 утра - </text> - <text name="WL12pmHash"> - 12 дня - </text> - <text name="WL3pm"> - 3 дня - </text> - <text name="WL6pm"> - 6 вечера - </text> - <text name="WL9pm"> - 9 вечера - </text> - <text name="WL12am2"> - 12 ночи - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - Небо: - </text> - <combo_box label="Стандарт" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - Время: - </text> - <time name="time" value="6:00"/> - <check_box label="Установить как новый суточный цикл" name="make_default_cb"/> - <button label="Сохранить" name="save"/> - <button label="Отмена" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml deleted file mode 100644 index 041474f659..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="Изменить настройку неба"> - <string name="title_new"> - Создать настройку неба - </string> - <string name="title_edit"> - Изменить настройку неба - </string> - <string name="hint_new"> - Введите имя настройки, задайте ее параметры с помощью элементов управления и нажмите кнопку «Сохранить». - </string> - <string name="hint_edit"> - Чтобы изменить настройку неба, задайте ее параметры с помощью элементов управления и нажмите кнопку «Сохранить». - </string> - <string name="combo_label"> - -Выбор настройки- - </string> - <text name="hint"> - Чтобы изменить настройку, задайте ее параметры с помощью элементов управления и нажмите кнопку «Сохранить». - </text> - <text name="label"> - Имя настройки: - </text> - <text name="note"> - Примечание: если изменить имя настройки, будет создана новая настройка, а существующая настройка останется без изменения. - </text> - <tab_container name="WindLight Tabs"> - <panel label="АТМОСФЕРА" name="Atmosphere"> - <text name="BHText"> - Голубой горизонт - </text> - <text name="BDensText"> - Дымка на горизонте - </text> - <text name="BDensText2"> - Насыщенность голубого - </text> - <text name="HDText"> - Плотность дымки - </text> - <text name="DensMultText"> - Коэффициент плотности - </text> - <text name="WLDistanceMultText"> - Коэффициент расстояния - </text> - <text name="MaxAltText"> - Максимальная высота - </text> - </panel> - <panel label="ОСВЕЩЕНИЕ" name="Lighting"> - <text name="SLCText"> - Цвет солнца/луны - </text> - <text name="WLAmbientText"> - Окружающая среда - </text> - <text name="SunGlowText"> - Сияние солнца - </text> - <slider label="Фокус" name="WLGlowB"/> - <slider label="Размер" name="WLGlowR"/> - <text name="WLStarText"> - Яркость звезд - </text> - <text name="SceneGammaText"> - Гамма-коррекция сцены - </text> - <text name="TODText"> - Положение солнца/луны - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - 12 часов ночи - </text> - <text name="WL6am"> - 6 часов утра - </text> - <text name="WL12pmHash"> - 12 часов пополудни - </text> - <text name="WL6pm"> - 6 часов вечера - </text> - <text name="WL12am2"> - 12 часов ночи - </text> - <time name="WLDayTime" value="6:00 часов утра"/> - <text name="WLEastAngleText"> - Смещение относительно востока - </text> - </panel> - <panel label="ОБЛАКА" name="Clouds"> - <text name="WLCloudColorText"> - Цвет облака - </text> - <text name="WLCloudColorText2"> - Координаты XY/плотность облака - </text> - <slider label="Х" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - Облачность - </text> - <text name="WLCloudScaleText"> - Шкала облачности - </text> - <text name="WLCloudDetailText"> - Детализация облака (координаты XY/плотность) - </text> - <slider label="Х" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - Перемещение облака по координате X - </text> - <check_box label="Фиксация" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - Перемещение облака по координате Y - </text> - <check_box label="Фиксация" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="Применить эту настройку неба" name="make_default_cb"/> - <button label="Сохранить" name="save"/> - <button label="Отмена" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml deleted file mode 100644 index 2ebbb11fce..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="Изменить настройку воды"> - <string name="title_new"> - Создать новую настройку воды - </string> - <string name="title_edit"> - Изменение настройки воды - </string> - <string name="hint_new"> - Введите имя настройки, задайте ее параметры с помощью элементов управления и нажмите кнопку «Сохранить». - </string> - <string name="hint_edit"> - Чтобы изменить настройку воды, задайте параметры с помощью элементов управления и нажмите кнопку «Сохранить». - </string> - <string name="combo_label"> - -Выбор настройки- - </string> - <text name="hint"> - Чтобы изменить настройку, задайте ее параметры с помощью элементов управления и нажмите кнопку «Сохранить». - </text> - <text name="label"> - Имя настройки: - </text> - <text name="note"> - Примечание: если изменить имя настройки, будет создана новая настройка, а существующая настройка останется без изменения. - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - Цвет водяного тумана - </text> - <text name="water_fog_density_label"> - Показатель плотности тумана - </text> - <text name="underwater_fog_modifier_label"> - Модификатор тумана подземных вод - </text> - <text name="BHText"> - Направление больших волн - </text> - <slider label="Х" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - Масштаб отражённого импульса - </text> - <text name="HDText"> - Френелевский масштаб - </text> - <text name="FresnelOffsetText"> - Угловая зависимость - </text> - <text name="BHText2"> - Направление ряби - </text> - <slider label="Х" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - Преломление (над водой) - </text> - <text name="WaterScaleBelowText"> - Преломление (под водой) - </text> - <text name="MaxAltText"> - Коэффициент размытия - </text> - <text name="BHText3"> - Карта нормалей - </text> - </panel> - <check_box label="Применить эту новую настройку воды" name="make_default_cb"/> - <button label="Сохранить" name="save"/> - <button label="Отмена" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_environment_settings.xml b/indra/newview/skins/default/xui/ru/floater_environment_settings.xml deleted file mode 100644 index 226f07face..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="НАСТРОЙКИ СРЕДЫ"> - <text name="note"> - Приведенные ниже параметры позволяют настроить окружающую среду для средства просмотра. - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="Использовать настройки региона" name="use_region_settings"/> - <radio_item label="Настроить среду" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - Примечание: ваши настройки не будут видны другим пользователям. - </text> - <text name="water_settings_title"> - Настройка воды - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-Выбор настройки-" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - Небо/суточный цикл - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="Зафиксированное небо" name="my_sky_settings"/> - <radio_item label="Суточный цикл" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-Выбор настройки-" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-Выбор настройки-" name="item0"/> - </combo_box> - </panel> - <button label="ОК" name="ok_btn"/> - <button label="Отмена" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_facebook.xml b/indra/newview/skins/default/xui/ru/floater_facebook.xml deleted file mode 100644 index cbf32cb682..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="ОПУБЛИКОВАТЬ В FACEBOOK"> - <tab_container name="tabs"> - <panel label="СТАТУС" name="panel_facebook_status"/> - <panel label="ФОТО" name="panel_facebook_photo"/> - <panel label="ВХОД" name="panel_facebook_place"/> - <panel label="ДРУЗЬЯ" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - Ошибка - </text> - <text name="connection_loading_text"> - Загрузка... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_flickr.xml b/indra/newview/skins/default/xui/ru/floater_flickr.xml deleted file mode 100644 index 67a3bedc6b..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="ПОДЕЛИТЬСЯ В FLICKR"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="ФОТО" name="panel_flickr_photo"/> - <panel label="АККАУНТ" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - Ошибка - </text> - <text name="connection_loading_text"> - Загрузка... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml b/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml deleted file mode 100644 index d7da112a27..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="АППАРАТНЫЕ НАСТРОЙКИ"> - <text name="Filtering:"> - Фильтрация: - </text> - <check_box label="Анизотропная фильтрация (медленнее, если включено)" name="ani"/> - <text name="antialiasing label"> - Сглаживание: - </text> - <combo_box label="Сглаживание" name="fsaa"> - <combo_box.item label="Выключено" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (требуется перезапуск) - </text> - <spinner label="Гамма:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (чем меньше, тем ярче. 0 – яркость по умолчанию) - </text> - <text name="Enable VBO:"> - Включить VBO: - </text> - <check_box initial_value="true" label="Включить объекты вершинных буферов OpenGL" name="vbo" tool_tip="Включение этого параметра на современном оборудовании даст увеличение производительности. Однако на старом оборудовании это может привести к сбою приложения."/> - <text name="tc label"> - Включить S3TC: - </text> - <check_box initial_value="true" label="Разрешить сжатие текстур (требует перезагрузки)" name="texture compression" tool_tip="Сжатие текстур в видеопамяти, что позволяет загружать текстуры большего размера за счет некоторого падения качества цвета."/> - <slider label="Память для текстур (Мб):" name="GraphicsCardTextureMemory" tool_tip="Количество памяти, отводимое для текстур. По умолчанию равно памяти видеокарты. Уменьшение поможет увеличить производительность, но текстуры могут стать размытыми."/> - <spinner label="Дистанция тумана:" name="fog"/> - <button label="OK" label_selected="OK" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml deleted file mode 100644 index 626f3c9321..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_perm_prefs.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="СТАНДАРТНЫЕ РАЗРЕШЕНИЯ НА ПЕРЕДАЧУ"> - <panel label="Разрешения" name="permissions"> - <check_box label="Поделиться с группой" name="share_with_group"/> - <check_box label="Разрешить всем копировать" name="everyone_copy"/> - <text name="NextOwnerLabel"> - Следующий владелец может: - </text> - <check_box label="изменять" name="next_owner_modify"/> - <check_box label="копировать" name="next_owner_copy"/> - <check_box initial_value="true" label="перепродавать/отдавать" name="next_owner_transfer"/> - </panel> - <button label="ОК" label_selected="ОК" name="ok"/> - <button label="Отмена" label_selected="Отмена" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_twitter.xml b/indra/newview/skins/default/xui/ru/floater_twitter.xml deleted file mode 100644 index 3b9493ce98..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="TWITTER"> - <tab_container name="tabs"> - <panel label="НАПИСАТЬ" name="panel_twitter_photo"/> - <panel label="АККАУНТ" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - Ошибка - </text> - <text name="connection_loading_text"> - Загрузка... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml deleted file mode 100644 index 2b23086062..0000000000 --- a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="УПРАВЛЕНИЕ ГОЛОСОМ"> - <string name="title_nearby"> - НАСТРОЙКИ ГОЛОСА - </string> - <string name="title_group"> - ЗВОНОК ГРУППЕ [GROUP] - </string> - <string name="title_adhoc"> - КОНФЕРЕНЦИЯ - </string> - <string name="title_peer_2_peer"> - ЗВОНОК ПОЛЬЗОВАТЕЛЮ [NAME] - </string> - <string name="no_one_near"> - Нет никого с включенным голосом - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="Мой аватар:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="Прервать звонок" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml deleted file mode 100644 index 957609a7a3..0000000000 --- a/indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Смотреть профиль" name="view_profile"/> - <menu_item_call label="В друзья" name="add_friend"/> - <menu_item_call label="IM" name="im"/> - <menu_item_call label="Звонок" name="call"/> - <menu_item_call label="Телепорт" name="teleport"/> - <menu_item_call label="Пригласить в группу" name="invite_to_group"/> - <menu_item_call label="Заблокировать" name="block"/> - <menu_item_call label="Разблокировать" name="unblock"/> - <menu_item_call label="Пожаловаться" name="report"/> - <menu_item_call label="Заморозить" name="freeze"/> - <menu_item_call label="Выкинуть" name="eject"/> - <menu_item_call label="Выкинуть" name="kick"/> - <menu_item_call label="Поддержка" name="csr"/> - <menu_item_call label="Отладка текстур" name="debug"/> - <menu_item_call label="Найти на карте" name="find_on_map"/> - <menu_item_call label="Приблизить" name="zoom_in"/> - <menu_item_call label="Заплатить" name="pay"/> - <menu_item_call label="Поделиться" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml deleted file mode 100644 index 901bb615e0..0000000000 --- a/indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Self Pie"> - <menu_item_call label="Сесть" name="Sit Down Here"/> - <menu_item_call label="Встать" name="Stand Up"/> - <context_menu label="Снять" name="Take Off >"> - <context_menu label="одежду" name="Clothes >"> - <menu_item_call label="рубашку" name="Shirt"/> - <menu_item_call label="брюки" name="Pants"/> - <menu_item_call label="юбку" name="Skirt"/> - <menu_item_call label="обувь" name="Shoes"/> - <menu_item_call label="носки" name="Socks"/> - <menu_item_call label="пиджак" name="Jacket"/> - <menu_item_call label="перчатки" name="Gloves"/> - <menu_item_call label="майку" name="Self Undershirt"/> - <menu_item_call label="трусы" name="Self Underpants"/> - <menu_item_call label="тату" name="Self Tattoo"/> - <menu_item_call label="альфа-маску" name="Self Alpha"/> - <menu_item_call label="всю одежду" name="All Clothes"/> - </context_menu> - <context_menu label="данные в игре" name="Object Detach HUD"/> - <context_menu label="Отсоединить" name="Object Detach"/> - <menu_item_call label="Отсоединить все" name="Detach All"/> - </context_menu> - <menu_item_call label="Сменить костюм" name="Chenge Outfit"/> - <menu_item_call label="Изменить костюм" name="Edit Outfit"/> - <menu_item_call label="Изменить фигуру" name="Edit My Shape"/> - <menu_item_call label="Мои друзья" name="Friends..."/> - <menu_item_call label="Мои группы" name="Groups..."/> - <menu_item_call label="Мой профиль" name="Profile..."/> - <menu_item_call label="Отладка текстур" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_name_field.xml b/indra/newview/skins/default/xui/ru/menu_name_field.xml deleted file mode 100644 index 889f3c37ab..0000000000 --- a/indra/newview/skins/default/xui/ru/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="Копировать отображаемое имя" name="copy_display"/> - <menu_item_call label="Копировать имя агента" name="copy_name"/> - <menu_item_call label="Копировать Id агента" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml deleted file mode 100644 index 0fa252aa99..0000000000 --- a/indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Сортировать по имени" name="sort_name"/> - <menu_item_check label="Сортировать по статусу" name="sort_status"/> - <menu_item_check label="Показывать значки" name="view_icons"/> - <menu_item_check label="Показывать разрешенные действия" name="view_permissions"/> - <menu_item_call label="Показать черный список" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml deleted file mode 100644 index 0358068db9..0000000000 --- a/indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Показывать значки группы" name="Display Group Icons"/> - <menu_item_call label="Покинуть выбранную группу" name="Leave Selected Group"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml deleted file mode 100644 index 4589815f6b..0000000000 --- a/indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Сортировать по недавно говорившим" name="sort_by_recent_speakers"/> - <menu_item_check label="Сортировать по имени" name="sort_name"/> - <menu_item_check label="Сортировать по расстоянию" name="sort_distance"/> - <menu_item_check label="Показывать значки участников" name="view_icons"/> - <menu_item_check label="Смотреть карту" name="view_map"/> - <menu_item_call label="Показать черный список жителей и объектов" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml deleted file mode 100644 index 2ac83ffe52..0000000000 --- a/indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Сортировать по времени" name="sort_most"/> - <menu_item_check label="Сортировать по имени" name="sort_name"/> - <menu_item_check label="Показывать значки людей" name="view_icons"/> - <menu_item_call label="Показать черный список" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml deleted file mode 100644 index ae2240593d..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="Звонок" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Прервать звонок" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Управление голосом" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_edit_classified.xml b/indra/newview/skins/default/xui/ru/panel_edit_classified.xml deleted file mode 100644 index ec457c4565..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Изменить рекламу" name="panel_edit_classified"> - <panel.string name="location_notice"> - (будет обновлено после сохранения) - </panel.string> - <string name="publish_label"> - Опубликовать - </string> - <string name="save_label"> - Сохранить - </string> - <text name="title"> - Изменить рекламу - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="Щелкните для выбора изображения"/> - </panel> - <text name="Name:"> - Название: - </text> - <text name="description_label"> - Описание: - </text> - <text name="location_label"> - Место: - </text> - <text name="classified_location"> - загрузка... - </text> - <button label="Использовать текущее место" name="set_to_curr_location_btn"/> - <text name="category_label" value="Категория:"/> - <text name="content_type_label" value="Тип контента:"/> - <icons_combo_box label="General-контент" name="content_type"> - <icons_combo_box.item label="Moderate-контент" name="mature_ci" value="Mature-контент"/> - <icons_combo_box.item label="General-контент" name="pg_ci" value="PG-контент"/> - </icons_combo_box> - <check_box label="Автоматическая оплата каждую неделю" name="auto_renew"/> - <text name="price_for_listing_label" value="Стоимость размещения:"/> - <spinner label="L$" name="price_for_listing" tool_tip="Стоимость размещения." value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="Отменить" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_edit_pick.xml b/indra/newview/skins/default/xui/ru/panel_edit_pick.xml deleted file mode 100644 index 6be1448ac5..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Изменить подборку" name="panel_edit_pick"> - <panel.string name="location_notice"> - (будет обновлено после сохранения) - </panel.string> - <text name="title"> - Изменить подборку - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Щелкните для выбора изображения"/> - <text name="Name:"> - Название: - </text> - <text name="description_label"> - Описание: - </text> - <text name="location_label"> - Место: - </text> - <text name="pick_location"> - загрузка… - </text> - <button label="Поставить текущее место" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Сохранить подборку" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="Отмена" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_edit_profile.xml b/indra/newview/skins/default/xui/ru/panel_edit_profile.xml deleted file mode 100644 index e9a6a781db..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_edit_profile.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Редактирование профиля" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] -[PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="Житель"/> - <string name="AcctTypeTrial" value="Гость"/> - <string name="AcctTypeCharterMember" value="Учредитель"/> - <string name="AcctTypeEmployee" value="Сотрудник Linden Lab"/> - <string name="PaymentInfoUsed" value="Использована информация о платежах"/> - <string name="PaymentInfoOnFile" value="Зарегистрирована информация о платежах"/> - <string name="NoPaymentInfoOnFile" value="Не зарегистрирована информация о платежах"/> - <string name="AgeVerified" value="Возраст проверен"/> - <string name="NotAgeVerified" value="Возраст не проверен"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=en - </string> - <string name="my_account_link_url"> - http://secondlife.com/my - </string> - <string name="no_partner_text" value="Нет"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Экранное имя:"/> - <text name="solo_username_label" value="Имя пользователя:"/> - <button name="set_name" tool_tip="Задать экранное имя"/> - <text name="user_label" value="Имя пользователя:"/> - <panel name="lifes_images_panel"> - <panel name="second_life_image_panel"> - <text name="second_life_photo_title_text" value="[SECOND_LIFE]:"/> - </panel> - <icon label="" name="2nd_life_edit_icon" tool_tip="Щелкните для выбора изображения"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Реальный мир:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="Щелкните для выбора изображения"/> - <text name="title_homepage_text"> - Домашняя страница: - </text> - <line_editor name="homepage_edit" value="http://"/> - <text name="title_acc_status_text" value="Мой аккаунт:"/> - <text_editor name="acc_status_text" value="Житель. В файле нет информации о платежах."/> - <text name="my_account_link" value="[[URL] Перейти на информационную панель]"/> - <text name="title_partner_text" value="Мой партнер:"/> - <panel name="partner_data_panel"> - <text initial_value="(получение информации)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] Редактировать]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Сохранить изменения" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Отмена" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_facebook_account.xml b/indra/newview/skins/default/xui/ru/panel_facebook_account.xml deleted file mode 100644 index 22b4e46897..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="Вы подключились к Facebook как:"/> - <string name="facebook_disconnected" value="Не подключено к Facebook"/> - <text name="account_caption_label"> - Не подключено к Facebook. - </text> - <panel name="panel_buttons"> - <button label="Подключение..." name="connect_btn"/> - <button label="Отключить" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 О публикации в Facebook] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_facebook_friends.xml b/indra/newview/skins/default/xui/ru/panel_facebook_friends.xml deleted file mode 100644 index 1e4d1346f7..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="Сейчас у вас нет друзей в Facebook, которые являются также жителями Second Life. Предложите своим друзьям в Facebook присоединиться к Second Life!"/> - <string name="facebook_friends_no_connected" value="Сейчас вы не подключены к Facebook. Перейдите на вкладку «Статус», чтобы подключиться и включить эту функцию."/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="Друзья по SL"/> - <accordion_tab name="tab_suggested_friends" title="Добавить этих людей как друзей по SL"/> - </accordion> - <text name="facebook_friends_status"> - Не подключено к Facebook. - </text> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_facebook_photo.xml b/indra/newview/skins/default/xui/ru/panel_facebook_photo.xml deleted file mode 100644 index 50296778ff..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="Разрешение изображения"> - <combo_box.item label="Текущее окно" name="CurrentWindow"/> - <combo_box.item label="640 x 480" name="640x480"/> - <combo_box.item label="800 x 600" name="800x600"/> - <combo_box.item label="1024 x 768" name="1024x768"/> - <combo_box.item label="1200 x 630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Фильтры изображений"> - <combo_box.item label="Без фильтра" name="NoFilter"/> - </combo_box> - <button label="Обновить" name="new_snapshot_btn" tool_tip="Щелкнуть для обновления"/> - <button label="Предпросмотр" name="big_preview_btn" tool_tip="Щелкнуть для смены вида"/> - <text name="caption_label"> - Комментарий (не обязательно): - </text> - <button label="Опубликовать" name="post_photo_btn"/> - <button label="Отменить" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_facebook_place.xml b/indra/newview/skins/default/xui/ru/panel_facebook_place.xml deleted file mode 100644 index a7fadca059..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - Сообщите, где вы находитесь: - </text> - <check_box initial_value="false" label="Включить вид места сверху" name="add_place_view_cb"/> - <button label="Опубликовать" name="post_place_btn"/> - <button label="Отменить" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_facebook_status.xml b/indra/newview/skins/default/xui/ru/panel_facebook_status.xml deleted file mode 100644 index 826ac6a08c..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="Вы подключились к Facebook как:"/> - <string name="facebook_disconnected" value="Нет подключения к Facebook"/> - <text name="account_caption_label"> - Нет подключения к Facebook. - </text> - <panel name="panel_buttons"> - <button label="Соединение..." name="connect_btn"/> - <button label="Разъединить" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Узнать о публикации в Facebook] - </text> - </panel> - <text name="status_caption_label"> - О чем вы думаете? - </text> - <button label="Опубликовать" name="post_status_btn"/> - <button label="Отменить" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_flickr_account.xml b/indra/newview/skins/default/xui/ru/panel_flickr_account.xml deleted file mode 100644 index 9f70bf8042..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="Вы подключились к Flickr как:"/> - <string name="flickr_disconnected" value="Не подключено к Flickr"/> - <text name="account_caption_label"> - Не подключено к Flickr. - </text> - <panel name="panel_buttons"> - <button label="Подключение..." name="connect_btn"/> - <button label="Отключить" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 О публикации в Flickr] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_flickr_photo.xml b/indra/newview/skins/default/xui/ru/panel_flickr_photo.xml deleted file mode 100644 index f4cff55db2..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_flickr_photo.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="Разрешение изображения"> - <combo_box.item label="Текущее окно" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Фильтры изображений"> - <combo_box.item label="Без фильтра" name="NoFilter"/> - </combo_box> - <button label="Обновить" name="new_snapshot_btn" tool_tip="Щелкните для обновления"/> - <button label="Просмотр" name="big_preview_btn" tool_tip="Щелкните для смены вида"/> - <text name="title_label"> - Название: - </text> - <text name="description_label"> - Описание: - </text> - <check_box initial_value="true" label="Добавить в конец описания расположение в SL" name="add_location_cb"/> - <text name="tags_label"> - Теги: - </text> - <text name="tags_help_label"> - Разделяйте теги пробелами. Теги из нескольких слов заключайте в кавычки. - </text> - <combo_box name="rating_combobox" tool_tip="Рейтинг контента Flickr"> - <combo_box.item label="Безопасный рейтинг Flickr" name="SafeRating"/> - <combo_box.item label="Умеренный рейтинг Flickr" name="ModerateRating"/> - <combo_box.item label="Ограниченный рейтинг Flickr" name="RestrictedRating"/> - </combo_box> - <button label="Поделиться" name="post_photo_btn"/> - <button label="Отмена" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_group_control_panel.xml b/indra/newview/skins/default/xui/ru/panel_group_control_panel.xml deleted file mode 100644 index 2e6f3502b6..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="Профиль группы" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Звонок группе" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Прервать звонок" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Открыть голосовое управление" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml b/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml deleted file mode 100644 index 2a23cdb800..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_im_control_panel.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="Профиль" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="Добавить в друзья" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="Телепортация" name="teleport_btn" tool_tip="Предложить телепортацию этому жителю"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="Поделиться" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="Заплатить" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Звонок" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Завершить звонок" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Управление голосом" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_pick_info.xml b/indra/newview/skins/default/xui/ru/panel_pick_info.xml deleted file mode 100644 index 373cf211fb..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="О подборке"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[название]"/> - <text_editor name="pick_location" value="[загрузка...]"/> - <text_editor name="pick_desc" value="[описание]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Телепорт" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Карта" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Изменить" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_picks.xml b/indra/newview/skins/default/xui/ru/panel_picks.xml deleted file mode 100644 index d6770e0eeb..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Подборка" name="panel_picks"> - <string name="no_picks" value="Нет подборки"/> - <string name="no_classifieds" value="Нет рекламы"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Подборка"/> - <accordion_tab name="tab_classifieds" title="Реклама"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="Создать подборку или рекламу на этом месте"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="Данные" name="info_btn" tool_tip="Показать данные о подборке"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Телепортироваться" name="teleport_btn" tool_tip="Телепортация в соответствующую область"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Карта" name="show_on_map_btn" tool_tip="Показать соответствующую область на карте мира"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_profile_interests.xml b/indra/newview/skins/default/xui/ru/panel_profile_interests.xml deleted file mode 100644 index ba1c3d0357..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Круг интересов" name="panel_profile_interests"> - <text name="I Want To:"> - Я собираюсь: - </text> - <check_box label="Построить" name="chk0"/> - <check_box label="Просмотреть" name="chk1"/> - <check_box label="Встретить" name="chk2"/> - <check_box label="Получить работу" name="chk6"/> - <check_box label="Группа" name="chk3"/> - <check_box label="Купить" name="chk4"/> - <check_box label="Продать" name="chk5"/> - <check_box label="Нанять" name="chk7"/> - <line_editor name="want_to_edit"> - (загрузка…) - </line_editor> - <text name="Skills:"> - Навыки: - </text> - <check_box label="Текстуры" name="schk0"/> - <check_box label="Архитектура" name="schk1"/> - <check_box label="Моделирование" name="schk3"/> - <check_box label="Планирование мероприятия" name="schk2"/> - <check_box label="Создавать сценарии" name="schk4"/> - <check_box label="Пользовательские символы" name="schk5"/> - <line_editor name="skills_edit"> - (загрузка…) - </line_editor> - <text name="Languages:"> - Языки: - </text> - <line_editor name="languages_edit"> - (загрузка…) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_twitter_account.xml b/indra/newview/skins/default/xui/ru/panel_twitter_account.xml deleted file mode 100644 index 140554f5c6..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="Вы подключились к Twitter как:"/> - <string name="twitter_disconnected" value="Не подключено к Twitter"/> - <text name="account_caption_label"> - Не подключено к Twitter. - </text> - <panel name="panel_buttons"> - <button label="Подключение..." name="connect_btn"/> - <button label="Отключить" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 О публикации в Twitter] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_twitter_photo.xml b/indra/newview/skins/default/xui/ru/panel_twitter_photo.xml deleted file mode 100644 index 6c9035323a..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - Что случилось? - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="Включить расположение в SL" name="add_location_cb"/> - <check_box initial_value="true" label="Включить фото" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="Разрешение изображения"> - <combo_box.item label="Текущее окно" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Фильтры изображений"> - <combo_box.item label="Без фильтра" name="NoFilter"/> - </combo_box> - <button label="Обновить" name="new_snapshot_btn" tool_tip="Щелкните для обновления"/> - <button label="Просмотр" name="big_preview_btn" tool_tip="Щелкните для смены вида"/> - <button label="Твит" name="post_photo_btn"/> - <button label="Отмена" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/tr/floater_about.xml b/indra/newview/skins/default/xui/tr/floater_about.xml index faa504a996..40ca3707c3 100644 --- a/indra/newview/skins/default/xui/tr/floater_about.xml +++ b/indra/newview/skins/default/xui/tr/floater_about.xml @@ -29,6 +29,7 @@ açık kaynak kod katkısında bulunanlar şunlardır:</text> SDL Telif Hakkı (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga SSLeay Telif Hakkı (C) 1995-1998 Eric Young (eay@cryptsoft.com) xmlrpc-epi Telif Hakkı (C) 2000 Epinions, Inc. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib Telif Hakkı (C) 1995-2012 Jean-loup Gailly ve Mark Adler. Second Life Görüntüleyicisi Havok (TM) Fizik motorunu kullanmaktadır. (c)Telif Hakkı 1999-2010 Havok.com Inc. (ve Lisans Verenleri). Tüm Hakları Saklıdır. Ayrıntılı bilgi için bkz. www.havok.com diff --git a/indra/newview/skins/default/xui/tr/floater_chat_bar.xml b/indra/newview/skins/default/xui/tr/floater_chat_bar.xml deleted file mode 100644 index cd999b4b7a..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="nearby_chat" title="YAKINDAKİ SOHBET"> - <panel name="bottom_panel"> - <line_editor label="Sohbet etmek için buraya tıklayın." name="chat_box" tool_tip="Söylemek için Enter, bağırmak için Ctrl+Enter yapın"/> - <button name="show_nearby_chat" tool_tip="Yakın sohbet günlüğünü gösterir/gizler"/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml deleted file mode 100644 index 4be1068dcc..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="Gün Döngüsünü Düzenle"> - <string name="title_new"> - Yeni Bir Gün Döngüsü Oluştur - </string> - <string name="title_edit"> - Gün Döngüsünü Düzenle - </string> - <string name="hint_new"> - Gün döngünüzü adlandırın, bunu oluşturmak için denetimleri ayarlayın ve "Kaydet" üzerine tıklayın. - </string> - <string name="hint_edit"> - Gün döngünüzü düzenlemek için alttaki denetimleri ayarlayın ve "Kaydet" üzerine tıklayın. - </string> - <string name="combo_label"> - -Bir ön ayar seçin- - </string> - <text name="label"> - Ön Ayar Adı: - </text> - <text name="note"> - Not: Ön ayarınızın adını değiştirirseniz, yeni bir ön ayar oluşturursunuz ve mevcut ön ayar değişmez. - </text> - <text name="hint_item1"> - - Birine tıklayarak gökyüzü ayarlarını/zamanı düzenleyin. - </text> - <text name="hint_item2"> - - Sekmelere tıklayıp sürükleyerek geçiş sürlrn. ayarlayın. - </text> - <text name="hint_item3"> - - Gün döngünüzü önizlemek için fırçayı kullanın. - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="Anahtar Ekle" label_selected="Anahtar Ekle" name="WLAddKey"/> - <button label="Anahtarı Sil" label_selected="Anahtarı Sil" name="WLDeleteKey"/> - <text name="WL12am"> - 12 - </text> - <text name="WL3am"> - 3 - </text> - <text name="WL6am"> - 6 - </text> - <text name="WL9amHash"> - 9 - </text> - <text name="WL12pmHash"> - 24 - </text> - <text name="WL3pm"> - 15 - </text> - <text name="WL6pm"> - 18 - </text> - <text name="WL9pm"> - 21 - </text> - <text name="WL12am2"> - 12 - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - Gökyüzü Ayarı: - </text> - <combo_box label="Ön Ayar" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - Zaman: - </text> - <time name="time" value="6:00"/> - <check_box label="Bunu yeni gün döngüm yap" name="make_default_cb"/> - <button label="Kaydet" name="save"/> - <button label="İptal" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml deleted file mode 100644 index b09115332b..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="Gökyüzü Ön Ayarını Düzenle"> - <string name="title_new"> - Yeni bir Gökyüzü Ön Ayarı Oluştur - </string> - <string name="title_edit"> - Gökyüzü Ön Ayarını Düzenle - </string> - <string name="hint_new"> - Ön ayarınızı adlandırın, bunu oluşturmak için denetimleri ayarlayın ve "Kaydet" düğmesine tıklayın. - </string> - <string name="hint_edit"> - Gökyüzü ön ayarınızı düzenlemek için, denetimleri ayarlayın ve "Kaydet" düğmesine tıklayın. - </string> - <string name="combo_label"> - -Bir ön ayar seçin- - </string> - <text name="hint"> - Ön ayarınızı düzenlemek için, denetimleri ayarlayın, sonra "Kaydet» düğmesine tıklayın. - </text> - <text name="label"> - Ön Ayar Adı: - </text> - <text name="note"> - Not: ön ayarınızın adını değiştirirseniz, yeni bir ön ayar oluşturursunuz ve mevcut ön ayar değişmez. - </text> - <tab_container name="WindLight Tabs"> - <panel label="ATMOSFER" name="Atmosphere"> - <text name="BHText"> - Mavi Ufuk - </text> - <text name="BDensText"> - Puslu Ufuk - </text> - <text name="BDensText2"> - Mavi Yoğunluğu - </text> - <text name="HDText"> - Pus Yoğunluğu - </text> - <text name="DensMultText"> - Yoğunluk Çarpanı - </text> - <text name="WLDistanceMultText"> - Mesafe Çarpanı - </text> - <text name="MaxAltText"> - Maks. İrtifa - </text> - </panel> - <panel label="AYDINLATMA" name="Lighting"> - <text name="SLCText"> - Güneş/Ay Rengi - </text> - <text name="WLAmbientText"> - Ortam - </text> - <text name="SunGlowText"> - Güneş Parıltısı - </text> - <slider label="Odak" name="WLGlowB"/> - <slider label="Büyüklük" name="WLGlowR"/> - <text name="WLStarText"> - Yıldız Parlaklığı - </text> - <text name="SceneGammaText"> - Sahne Gama Ayarı - </text> - <text name="TODText"> - Güneş/Ay Konumu - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - 00:00 - </text> - <text name="WL6am"> - 06:00 - </text> - <text name="WL12pmHash"> - 12:00 - </text> - <text name="WL6pm"> - 18:00 - </text> - <text name="WL12am2"> - 00:00 - </text> - <time name="WLDayTime" value="06:00"/> - <text name="WLEastAngleText"> - Doğu Açısı - </text> - </panel> - <panel label="BULUTLAR" name="Clouds"> - <text name="WLCloudColorText"> - Bulut Rengi - </text> - <text name="WLCloudColorText2"> - Bulut XY/Yoğunluğu - </text> - <slider label="X" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - Bulut Örtüsü - </text> - <text name="WLCloudScaleText"> - Bulut Hacmi - </text> - <text name="WLCloudDetailText"> - Bulut Ayrıntısı (XY/Yoğunluğu) - </text> - <slider label="X" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - Bulut Kaydırma X - </text> - <check_box label="Kilitle" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - Bulut Kaydırma Y - </text> - <check_box label="Kilitle" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="Bu ön ayarı yeni gökyüzü ayarım yap" name="make_default_cb"/> - <button label="Kaydet" name="save"/> - <button label="İptal Et" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml deleted file mode 100644 index f44af3c6e6..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="Su Ön Ayarını Düzenle"> - <string name="title_new"> - Yeni bir Su Ön Ayarı Oluştur - </string> - <string name="title_edit"> - Bir Su Ön Ayarını Düzenle - </string> - <string name="hint_new"> - Ön ayarınızı adlandırın, bunu oluşturmak için denetimleri ayarlayın ve "Kaydet" düğmesine tıklayın. - </string> - <string name="hint_edit"> - Su ön ayarınızı düzenlemek için, denetimleri ayarlayın ve "Kaydet" düğmesine tıklayın. - </string> - <string name="combo_label"> - -Bir ön ayar seçin- - </string> - <text name="hint"> - Ön ayarınızı düzenlemek için, denetimleri ayarlayın, sonra "Kaydet» düğmesine tıklayın. - </text> - <text name="label"> - Ön Ayar Adı: - </text> - <text name="note"> - Not: ön ayarınızın adını değiştirirseniz, yeni bir ön ayar oluşturursunuz ve mevcut ön ayar değişmez. - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - Su Sisi Rengi - </text> - <text name="water_fog_density_label"> - Sis Yoğunluğu Üssü - </text> - <text name="underwater_fog_modifier_label"> - Sualtı Sis Değiştiricisi - </text> - <text name="BHText"> - Büyük Dalga Yönü - </text> - <slider label="X" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - Yansıma Dalgacığı Ölçeği - </text> - <text name="HDText"> - Fresnel Ölçeği - </text> - <text name="FresnelOffsetText"> - Fresnel Dengeleme - </text> - <text name="BHText2"> - Küçük Dalga Yönü - </text> - <slider label="X" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - Yukarıdan Kırılma Ölçeği - </text> - <text name="WaterScaleBelowText"> - Aşağıdan Kırılma Ölçeği - </text> - <text name="MaxAltText"> - Bulanıklaştırma Çarpanı - </text> - <text name="BHText3"> - Normal Harita - </text> - </panel> - <check_box label="Bu ön ayarı yeni su ayarım yap" name="make_default_cb"/> - <button label="Kaydet" name="save"/> - <button label="İptal Et" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_environment_settings.xml b/indra/newview/skins/default/xui/tr/floater_environment_settings.xml deleted file mode 100644 index 0ddd46994b..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="ORTAM AYARLARI"> - <text name="note"> - Görüntüleyicinizin ortam ayarlarını özelleştirmek için aşağıdaki seçenekleri kullanın. - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="Bölge ayarlarını kullan" name="use_region_settings"/> - <radio_item label="Ortamımı özelleştir" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - Not: özel ayarlarınız diğer kullanıcılar tarafından görülmez. - </text> - <text name="water_settings_title"> - Su Ayarı - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-Bir ön ayar seçin-" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - Gökyüzü / Gün Döngüsü - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="Sabit gökyüzü" name="my_sky_settings"/> - <radio_item label="Gün döngüsü" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-Bir ön ayar seçin-" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-Bir ön ayar seçin-" name="item0"/> - </combo_box> - </panel> - <button label="Tamam" name="ok_btn"/> - <button label="İptal Et" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_facebook.xml b/indra/newview/skins/default/xui/tr/floater_facebook.xml deleted file mode 100644 index d8cbd84ed1..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="FACEBOOK'TA YAYINLA"> - <tab_container name="tabs"> - <panel label="DURUM" name="panel_facebook_status"/> - <panel label="FOTOĞRAF" name="panel_facebook_photo"/> - <panel label="GİRİŞ YAP" name="panel_facebook_place"/> - <panel label="ARKADAŞLAR" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - Hata - </text> - <text name="connection_loading_text"> - Yükleniyor... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_flickr.xml b/indra/newview/skins/default/xui/tr/floater_flickr.xml deleted file mode 100644 index f559808f44..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="FLICKR'DA PAYLAŞ"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="FOTOĞRAF" name="panel_flickr_photo"/> - <panel label="HESAP" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - Hata - </text> - <text name="connection_loading_text"> - Yükleniyor... - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_hardware_settings.xml b/indra/newview/skins/default/xui/tr/floater_hardware_settings.xml deleted file mode 100644 index b204389083..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="DONANIM AYARLARI"> - <text name="Filtering:"> - Filtreleme: - </text> - <check_box label="Anisotropik Filtreleme (etkinken daha yavaş)" name="ani"/> - <text name="antialiasing label"> - Düzgünleştirme: - </text> - <combo_box label="Antialiasing" name="fsaa"> - <combo_box.item label="Devre dışı" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (görüntülemeyi eniden başlatma gerekir) - </text> - <spinner label="Gama:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (0 = varsayılan parlaklık, düşük = daha parlak) - </text> - <text name="Enable VBO:"> - VBO Etkinleştir: - </text> - <check_box initial_value="true" label="OpenGL Vertex Tampon Nesnelerini Etkinleştir" name="vbo" tool_tip="Modern donanımlarda bunun etkinleştirilmesi performans artışı sağlar. Ancak, eski donanımlardaki VBO uygulamaları yetersizdir ve etkinleştirildiğinde bilgisayarınız çökebilir."/> - <text name="tc label"> - S3TC'ü Etkinleştir: - </text> - <check_box initial_value="true" label="Doku Sıkıştırmasını Etkinleştir (yeniden başlatma gerektirir)" name="texture compression" tool_tip="Video bellekteki dokuları sıkıştırır, renk kalitesinde bazı kayıplar olmasına karşın daha yüksek çözünürlükte dokuların yüklenmesine imkan tanır."/> - <slider label="Doku Belleği (MB):" name="GraphicsCardTextureMemory" tool_tip="Dokular için tahsis edilecek bellek miktarı. Varsayılan değer video kartı belleğidir. Bu değerin küçültülmesi performansı artırabilir, ama ayrıca dokuları bulanıklaştırabilir."/> - <spinner label="Sis Mesafe Oranı:" name="fog"/> - <button label="Tamam" label_selected="Tamam" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_perm_prefs.xml b/indra/newview/skins/default/xui/tr/floater_perm_prefs.xml deleted file mode 100644 index 669b833c26..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_perm_prefs.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="VARSAYILAN KARŞIYA YÜKLEME İZİNLERİ"> - <panel label="İzinler" name="permissions"> - <check_box label="Grupla paylaş" name="share_with_group"/> - <check_box label="Herkese kopyalama izni ver" name="everyone_copy"/> - <text name="NextOwnerLabel"> - Sonraki sahip şunu yapabilir: - </text> - <check_box label="Değiştir" name="next_owner_modify"/> - <check_box label="Kopyala" name="next_owner_copy"/> - <check_box initial_value="true" label="Tekrar sat/Ver" name="next_owner_transfer"/> - </panel> - <button label="Tamam" label_selected="Tamam" name="ok"/> - <button label="İptal" label_selected="İptal" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_twitter.xml b/indra/newview/skins/default/xui/tr/floater_twitter.xml deleted file mode 100644 index 93c1b0b073..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="TWITTER"> - <tab_container name="tabs"> - <panel label="OLUŞTUR" name="panel_twitter_photo"/> - <panel label="HESAP" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - Hata - </text> - <text name="connection_loading_text"> - Yükleniyor... - </text> -</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_voice_controls.xml b/indra/newview/skins/default/xui/tr/floater_voice_controls.xml deleted file mode 100644 index 5ff0804f17..0000000000 --- a/indra/newview/skins/default/xui/tr/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="SES DENETİMLERİ"> - <string name="title_nearby"> - SES AYARLARI - </string> - <string name="title_group"> - [GROUP] İLE GRUP ARAMASI - </string> - <string name="title_adhoc"> - KONFERANS ARAMASI - </string> - <string name="title_peer_2_peer"> - [NAME] İLE ARAMA - </string> - <string name="no_one_near"> - Yakındaki kimsede ses etkin değil - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="Avatarım:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="Aramadan Ayrıl" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml deleted file mode 100644 index 69432e967b..0000000000 --- a/indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="Profili Göster" name="view_profile"/> - <menu_item_call label="Arkadaş Ekle" name="add_friend"/> - <menu_item_call label="Aİ" name="im"/> - <menu_item_call label="Ara" name="call"/> - <menu_item_call label="Işınla" name="teleport"/> - <menu_item_call label="Gruba Davet Et" name="invite_to_group"/> - <menu_item_call label="Engelle" name="block"/> - <menu_item_call label="Engellemeyi Kaldır" name="unblock"/> - <menu_item_call label="Raporla" name="report"/> - <menu_item_call label="Dondur" name="freeze"/> - <menu_item_call label="Çıkar" name="eject"/> - <menu_item_call label="Çıkar" name="kick"/> - <menu_item_call label="CSR" name="csr"/> - <menu_item_call label="Dokularda Hata Ayıkla" name="debug"/> - <menu_item_call label="Haritada Bul" name="find_on_map"/> - <menu_item_call label="Yakınlaştır" name="zoom_in"/> - <menu_item_call label="Öde" name="pay"/> - <menu_item_call label="Paylaş" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml deleted file mode 100644 index 0655db8196..0000000000 --- a/indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Self Pie"> - <menu_item_call label="Otur" name="Sit Down Here"/> - <menu_item_call label="Kalk" name="Stand Up"/> - <context_menu label="Çıkar" name="Take Off >"> - <context_menu label="Giysiler" name="Clothes >"> - <menu_item_call label="Gömlek" name="Shirt"/> - <menu_item_call label="Pantolon" name="Pants"/> - <menu_item_call label="Etek" name="Skirt"/> - <menu_item_call label="Ayakkabılar" name="Shoes"/> - <menu_item_call label="Çoraplar" name="Socks"/> - <menu_item_call label="Ceket" name="Jacket"/> - <menu_item_call label="Eldivenler" name="Gloves"/> - <menu_item_call label="Fanila" name="Self Undershirt"/> - <menu_item_call label="Külot" name="Self Underpants"/> - <menu_item_call label="Dövme" name="Self Tattoo"/> - <menu_item_call label="Alfa" name="Self Alpha"/> - <menu_item_call label="Tüm Giysiler" name="All Clothes"/> - </context_menu> - <context_menu label="BÜG" name="Object Detach HUD"/> - <context_menu label="Ayır" name="Object Detach"/> - <menu_item_call label="Tümünü Ayır" name="Detach All"/> - </context_menu> - <menu_item_call label="Dış Görünümü Değiştir" name="Chenge Outfit"/> - <menu_item_call label="Dış Görünümümü Düzenle" name="Edit Outfit"/> - <menu_item_call label="Şeklimi Düzenle" name="Edit My Shape"/> - <menu_item_call label="Arkadaşlarım" name="Friends..."/> - <menu_item_call label="Gruplarım" name="Groups..."/> - <menu_item_call label="Profilim" name="Profile..."/> - <menu_item_call label="Dokularda Hata Ayıkla" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_name_field.xml b/indra/newview/skins/default/xui/tr/menu_name_field.xml deleted file mode 100644 index b1afd737c3..0000000000 --- a/indra/newview/skins/default/xui/tr/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="Görünen Adı Kopyala" name="copy_display"/> - <menu_item_call label="Aracı Adını Kopyala" name="copy_name"/> - <menu_item_call label="Aracı Kimliğini Kopyala" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml deleted file mode 100644 index 404fab17e6..0000000000 --- a/indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Ada Göre Sırala" name="sort_name"/> - <menu_item_check label="Duruma Göre Sırala" name="sort_status"/> - <menu_item_check label="Kişi Simgelerini Göster" name="view_icons"/> - <menu_item_check label="Verilen İzinleri Göster" name="view_permissions"/> - <menu_item_call label="Engellenmiş Sakinleri ve Nesneleri Göster" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml deleted file mode 100644 index a1e5ad9a50..0000000000 --- a/indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Grup Simgelerini Göster" name="Display Group Icons"/> - <menu_item_call label="Seçilen Gruptan Ayrıl" name="Leave Selected Group"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml deleted file mode 100644 index 0ff2111e9e..0000000000 --- a/indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="Son Konuşanlara Göre Sırala" name="sort_by_recent_speakers"/> - <menu_item_check label="Ada Göre Sırala" name="sort_name"/> - <menu_item_check label="Mesafeye Göre Sırala" name="sort_distance"/> - <menu_item_check label="Kişi Simgelerini Göster" name="view_icons"/> - <menu_item_check label="Haritayı Göster" name="view_map"/> - <menu_item_call label="Engellenmiş Sakinleri ve Nesneleri Göster" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml deleted file mode 100644 index adfba50138..0000000000 --- a/indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="En Sonunculara Göre Sırala" name="sort_most"/> - <menu_item_check label="Ada Göre Sırala" name="sort_name"/> - <menu_item_check label="Kişi Simgelerini Göster" name="view_icons"/> - <menu_item_call label="Engellenmiş Sakinleri ve Nesneleri Göster" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml deleted file mode 100644 index 602818de94..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="Ara" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Aramadan Ayrıl" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Ses Denetimleri" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_edit_classified.xml b/indra/newview/skins/default/xui/tr/panel_edit_classified.xml deleted file mode 100644 index 78c34a3ac0..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="İlanı Düzenle" name="panel_edit_classified"> - <panel.string name="location_notice"> - (kaydedildikten sonra güncelleştirilir) - </panel.string> - <string name="publish_label"> - Yayınla - </string> - <string name="save_label"> - Kaydet - </string> - <text name="title"> - İlanı Düzenle - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="Bir görüntü seçmek için tıklayın"/> - </panel> - <text name="Name:"> - Başlık: - </text> - <text name="description_label"> - Açıklama: - </text> - <text name="location_label"> - Konum: - </text> - <text name="classified_location"> - yükleniyor... - </text> - <button label="Geçerli Konuma Ayarla" name="set_to_curr_location_btn"/> - <text name="category_label" value="Kategori:"/> - <text name="content_type_label" value="İçerik türü:"/> - <icons_combo_box label="Genel İçerik" name="content_type"> - <icons_combo_box.item label="Orta Seviyede İçerik" name="mature_ci" value="Orta Seviyede"/> - <icons_combo_box.item label="Genel İçerik" name="pg_ci" value="PG"/> - </icons_combo_box> - <check_box label="Her hafta otomatik yenile" name="auto_renew"/> - <text name="price_for_listing_label" value="İlan ücreti:"/> - <spinner label="L$" name="price_for_listing" tool_tip="İlan ücreti." value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="İptal Et" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_edit_pick.xml b/indra/newview/skins/default/xui/tr/panel_edit_pick.xml deleted file mode 100644 index 98b02d27df..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Favori Düzenle" name="panel_edit_pick"> - <panel.string name="location_notice"> - (kaydedildikten sonra güncelleştirilir) - </panel.string> - <text name="title"> - Seçme Düzenle - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="Bir görüntü seçmek için tıklayın"/> - <text name="Name:"> - Başlık: - </text> - <text name="description_label"> - Açıklama: - </text> - <text name="location_label"> - Konum: - </text> - <text name="pick_location"> - yükleniyor... - </text> - <button label="Geçerli Konuma Ayarla" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Seçme Kaydet" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="İptal" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_edit_profile.xml b/indra/newview/skins/default/xui/tr/panel_edit_profile.xml deleted file mode 100644 index 21f4e419bc..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_edit_profile.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Profil Düzenlemesi" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] -[PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="Sakin"/> - <string name="AcctTypeTrial" value="Deneme"/> - <string name="AcctTypeCharterMember" value="Ayrıcalıklı Üye"/> - <string name="AcctTypeEmployee" value="Linden Lab Çalışanı"/> - <string name="PaymentInfoUsed" value="Kullanılan Ödeme Bilgisi"/> - <string name="PaymentInfoOnFile" value="Dosyadaki Ödeme Bilgisi"/> - <string name="NoPaymentInfoOnFile" value="Dosyada Ödeme Bilgisi Yok"/> - <string name="AgeVerified" value="Yaşı Doğrulanmış"/> - <string name="NotAgeVerified" value="Yaşı Doğrulanmamış"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=en - </string> - <string name="my_account_link_url"> - http://secondlife.com/my - </string> - <string name="no_partner_text" value="Hiçbiri"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="Ekran Adı:"/> - <text name="solo_username_label" value="Kullanıcı Adı:"/> - <button name="set_name" tool_tip="Ekran Adını Ayarla"/> - <text name="user_label" value="Kullanıcı Adı:"/> - <panel name="lifes_images_panel"> - <panel name="second_life_image_panel"> - <text name="second_life_photo_title_text" value="[SECOND_LIFE]:"/> - </panel> - <icon label="" name="2nd_life_edit_icon" tool_tip="Bir görüntü seçmek için tıklayın"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="Gerçek Dünya:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="Bir görüntü seçmek için tıklayın"/> - <text name="title_homepage_text"> - Ana sayfa: - </text> - <line_editor name="homepage_edit" value="http://"/> - <text name="title_acc_status_text" value="Hesabım:"/> - <text_editor name="acc_status_text" value="Sakin. Dosyada ödeme bilgisi yok."/> - <text name="my_account_link" value="[[URL] Kontrol Panelime Git]"/> - <text name="title_partner_text" value="Partnerim:"/> - <panel name="partner_data_panel"> - <text initial_value="(alınıyor)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] Düzenle]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="Değişiklikleri Kaydet" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="İptal" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_facebook_account.xml b/indra/newview/skins/default/xui/tr/panel_facebook_account.xml deleted file mode 100644 index e2d2b193a6..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="Facebook'a şu kimlikle bağlandınız:"/> - <string name="facebook_disconnected" value="Facebook'a bağlanılmadı"/> - <text name="account_caption_label"> - Facebook'a bağlanılmadı. - </text> - <panel name="panel_buttons"> - <button label="Bağlan..." name="connect_btn"/> - <button label="Bağlantıyı kes" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Facebook'ta içerik yayınlama hakkında bilgi edinin] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_facebook_friends.xml b/indra/newview/skins/default/xui/tr/panel_facebook_friends.xml deleted file mode 100644 index edbe87d74c..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="Şu anda aynı zamanda bir Second Life sakini olan hiçbir Facebook arkadaşınız yok. Facebook arkadaşlarınızdan bugün Second Life'a katılmalarını isteyin!"/> - <string name="facebook_friends_no_connected" value="Şu anda Facebook'a bağlı değilsiniz. Bağlanmak ve bu özelliği etkinleştirmek için lütfen Durum sekmesine gidin."/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="SL arkadaşları"/> - <accordion_tab name="tab_suggested_friends" title="Bu kişileri SL arkadaşları olarak ekle"/> - </accordion> - <text name="facebook_friends_status"> - Facebook'a bağlanılamadı. - </text> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_facebook_photo.xml b/indra/newview/skins/default/xui/tr/panel_facebook_photo.xml deleted file mode 100644 index e3150f258d..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="Görüntü çözünürlüğü"> - <combo_box.item label="Geçerli Pencere" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - <combo_box.item label="1200x630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Görüntü filtreleri"> - <combo_box.item label="Filtre Yok" name="NoFilter"/> - </combo_box> - <button label="Yenile" name="new_snapshot_btn" tool_tip="Yenilemek için tıklayın"/> - <button label="Önizleme" name="big_preview_btn" tool_tip="Önizlemeye geçmek için tıklayın"/> - <text name="caption_label"> - Yorum (isteğe bağlı): - </text> - <button label="Yayınla" name="post_photo_btn"/> - <button label="İptal Et" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_facebook_place.xml b/indra/newview/skins/default/xui/tr/panel_facebook_place.xml deleted file mode 100644 index 96c34d03d0..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - Bulunduğunuz yer hakkında bir şeyler söyleyin: - </text> - <check_box initial_value="false" label="Konumun üstten görünümünü ekle" name="add_place_view_cb"/> - <button label="Yayınla" name="post_place_btn"/> - <button label="İptal Et" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_facebook_status.xml b/indra/newview/skins/default/xui/tr/panel_facebook_status.xml deleted file mode 100644 index f5dba088de..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="Facebook'a şu kimlikle bağlandınız:"/> - <string name="facebook_disconnected" value="Facebook'a bağlanılamadı"/> - <text name="account_caption_label"> - Facebook'a bağlanılamadı. - </text> - <panel name="panel_buttons"> - <button label="Bağlan..." name="connect_btn"/> - <button label="Bağlantıyı kes" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 Facebook'ta içerik yayınlama hakkında bilgi edinin] - </text> - </panel> - <text name="status_caption_label"> - Aklınızdan ne geçiyor? - </text> - <button label="Yayınla" name="post_status_btn"/> - <button label="İptal Et" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_flickr_account.xml b/indra/newview/skins/default/xui/tr/panel_flickr_account.xml deleted file mode 100644 index 57b940d5f1..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="Flickr'a şu kimlikle bağlandınız:"/> - <string name="flickr_disconnected" value="Flickr'la bağlantı kurulmadı"/> - <text name="account_caption_label"> - Flickr'la bağlantı kurulmadı. - </text> - <panel name="panel_buttons"> - <button label="Bağlan..." name="connect_btn"/> - <button label="Bağlantıyı kes" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Flickr/ta-p/2435609 Flickr'da içerik yayınlama hakkında bilgi edinin] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_flickr_photo.xml b/indra/newview/skins/default/xui/tr/panel_flickr_photo.xml deleted file mode 100644 index c34f608e3c..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="Görüntü çözünürlüğü"> - <combo_box.item label="Mevcut Pencere" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Görüntü filtreleri"> - <combo_box.item label="Filtre Yok" name="NoFilter"/> - </combo_box> - <button label="Yenile" name="new_snapshot_btn" tool_tip="Yenilemek için tıklayın"/> - <button label="Önizleme" name="big_preview_btn" tool_tip="Önizleme ayarları arasında geçiş yapmak için tıklayın"/> - <text name="title_label"> - Başlık: - </text> - <text name="description_label"> - Açıklama: - </text> - <check_box initial_value="true" label="Açıklamanın sonuna SL konumunu ekle" name="add_location_cb"/> - <text name="tags_label"> - Etiketler: - </text> - <text name="tags_help_label"> - Etiketleri boşlukla ayır -Birden çok kelime içeren etiketler için "" kullan - </text> - <combo_box name="rating_combobox" tool_tip="Filckr içerik seviyesi"> - <combo_box.item label="Güvenli Flickr seviyesi" name="SafeRating"/> - <combo_box.item label="Orta Flickr seviyesi" name="ModerateRating"/> - <combo_box.item label="Kısıtlı Flickr seviyesi" name="RestrictedRating"/> - </combo_box> - <button label="Paylaş" name="post_photo_btn"/> - <button label="İptal" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_group_control_panel.xml b/indra/newview/skins/default/xui/tr/panel_group_control_panel.xml deleted file mode 100644 index 58bb68a5c3..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="Grup Profili" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Grubu Ara" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Aramadan Ayrıl" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Ses Denetimlerini Aç" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_im_control_panel.xml b/indra/newview/skins/default/xui/tr/panel_im_control_panel.xml deleted file mode 100644 index aebdc6b48d..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_im_control_panel.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="Profil" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="Arkadaş Ekle" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="Işınla" name="teleport_btn" tool_tip="Bu kişiyi ışınlamayı teklif et"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="Paylaş" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="Öde" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="Ara" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="Aramayı Bitir" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="Ses Denetimleri" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_pick_info.xml b/indra/newview/skins/default/xui/tr/panel_pick_info.xml deleted file mode 100644 index f2bbfac232..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="Seçme Bilgileri"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[ad]"/> - <text_editor name="pick_location" value="[yükleniyor...]"/> - <text_editor name="pick_desc" value="[açıklama]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="Işınla" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Harita" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="Düzenle" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_picks.xml b/indra/newview/skins/default/xui/tr/panel_picks.xml deleted file mode 100644 index 26beac7854..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Favorilerim" name="panel_picks"> - <string name="no_picks" value="Seçme Yok"/> - <string name="no_classifieds" value="İlan Yok"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="Seçmelerim"/> - <accordion_tab name="tab_classifieds" title="İlanlar"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="Mevcut konumda yeni bir seçme veya ilan oluşturun"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="Bilgi" name="info_btn" tool_tip="Seçme bilgilerini göster"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="Işınla" name="teleport_btn" tool_tip="İlişkili alana ışınlanın"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="Harita" name="show_on_map_btn" tool_tip="İlişkili alanı Dünya Haritasında göster"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_profile_interests.xml b/indra/newview/skins/default/xui/tr/panel_profile_interests.xml deleted file mode 100644 index b068aa3dad..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="İlgi alanları" name="panel_profile_interests"> - <text name="I Want To:"> - Şunu Yapmak İstiyorum: - </text> - <check_box label="İnşa Et" name="chk0"/> - <check_box label="Keşfet" name="chk1"/> - <check_box label="Tanış" name="chk2"/> - <check_box label="İşe Gir" name="chk6"/> - <check_box label="Gruplandır" name="chk3"/> - <check_box label="Satın Al" name="chk4"/> - <check_box label="Sat" name="chk5"/> - <check_box label="İşe Al" name="chk7"/> - <line_editor name="want_to_edit"> - (yükleniyor...) - </line_editor> - <text name="Skills:"> - Beceriler: - </text> - <check_box label="Dokular" name="schk0"/> - <check_box label="Mimari" name="schk1"/> - <check_box label="Modelleme" name="schk3"/> - <check_box label="Etkinlik Planlama" name="schk2"/> - <check_box label="Kodlama" name="schk4"/> - <check_box label="Özel Karakterler" name="schk5"/> - <line_editor name="skills_edit"> - (yükleniyor...) - </line_editor> - <text name="Languages:"> - Diller: - </text> - <line_editor name="languages_edit"> - (yükleniyor...) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_twitter_account.xml b/indra/newview/skins/default/xui/tr/panel_twitter_account.xml deleted file mode 100644 index 704027e1ba..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="Twitter'a şu kimlikle bağlandınız:"/> - <string name="twitter_disconnected" value="Twitter'la bağlantı kurulmadı"/> - <text name="account_caption_label"> - Twitter'la bağlantı kurulmadı. - </text> - <panel name="panel_buttons"> - <button label="Bağlan..." name="connect_btn"/> - <button label="Bağlantıyı kes" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Twitter/ta-p/2435453 Tweet atma hakkında bilgi edinin] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_twitter_photo.xml b/indra/newview/skins/default/xui/tr/panel_twitter_photo.xml deleted file mode 100644 index 511ecb690d..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - Neler oluyor? - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="SL konumunu dahil et" name="add_location_cb"/> - <check_box initial_value="true" label="Fotoğraf ekle" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="Görüntü çözünürlüğü"> - <combo_box.item label="Mevcut Pencere" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="Görüntü filtreleri"> - <combo_box.item label="Filtre Yok" name="NoFilter"/> - </combo_box> - <button label="Yenile" name="new_snapshot_btn" tool_tip="Yenilemek için tıklayın"/> - <button label="Önizleme" name="big_preview_btn" tool_tip="Önizleme ayarları arasında geçiş yapmak için tıklayın"/> - <button label="Tweet" name="post_photo_btn"/> - <button label="İptal" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/zh/floater_about.xml b/indra/newview/skins/default/xui/zh/floater_about.xml index d7d2a52750..a56ae753d1 100644 --- a/indra/newview/skins/default/xui/zh/floater_about.xml +++ b/indra/newview/skins/default/xui/zh/floater_about.xml @@ -29,6 +29,7 @@ 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. + xxHash Copyright (C) 2012-2020 Yann Collet. zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler. 第二人生 Viewer 採用 Havok (TM) 物理引擎。 (c)Copyright 1999-2010 Havok.com Inc.(及其放照人)。 保留一切權利。 詳情見 www.havok.com。 diff --git a/indra/newview/skins/default/xui/zh/floater_chat_bar.xml b/indra/newview/skins/default/xui/zh/floater_chat_bar.xml deleted file mode 100644 index f1a69a7688..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_chat_bar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="chat_bar" title="附近的聊天"> - <panel name="bottom_panel"> - <line_editor label="點按此處開始聊天。" name="chat_box" tool_tip="按下 Enter 鍵來說或按下 Ctrl+Enter 來喊叫"/> - <button name="show_nearby_chat" tool_tip="顯示 / 隱藏 附近的聊天紀錄"/> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml deleted file mode 100644 index b84a4027ea..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Day cycle" title="編輯日循環"> - <string name="title_new"> - 新建一個日循環 - </string> - <string name="title_edit"> - 編輯日循環 - </string> - <string name="hint_new"> - 為日循環定名,調整各項控制確定細節,再點按「儲存」。 - </string> - <string name="hint_edit"> - 若要編輯你的日循環,請調整下方各項控制,再點按「儲存」。 - </string> - <string name="combo_label"> - -選擇一個自訂配置- - </string> - <text name="label"> - 自訂配置名稱: - </text> - <text name="note"> - 注意:更改自訂配置的名稱將會新建一個自訂配置,不會改變原有的自訂配置。 - </text> - <text name="hint_item1"> - - 點按一個頁籤,編輯特定的天空設定和時間。 - </text> - <text name="hint_item2"> - - 點按並拖曳各個頁籤,即可設定過渡時間。 - </text> - <text name="hint_item3"> - - 使用 scrubber 預覽你的日循環。 - </text> - <panel name="day_cycle_slider_panel"> - <multi_slider initial_value="0" name="WLTimeSlider"/> - <multi_slider initial_value="0" name="WLDayCycleKeys"/> - <button label="新增鍵" label_selected="新增鍵" name="WLAddKey"/> - <button label="刪除鍵" label_selected="刪除鍵" name="WLDeleteKey"/> - <text name="WL12am"> - 午夜 12 點 - </text> - <text name="WL3am"> - 凌晨 3 點 - </text> - <text name="WL6am"> - 上午 6 點 - </text> - <text name="WL9amHash"> - 上午 9 點 - </text> - <text name="WL12pmHash"> - 中午 12 點 - </text> - <text name="WL3pm"> - 下午 3 點 - </text> - <text name="WL6pm"> - 下午 6 點 - </text> - <text name="WL9pm"> - 下午 9 點 - </text> - <text name="WL12am2"> - 午夜 12 點 - </text> - <text name="WL12amHash"> - | - </text> - <text name="WL3amHash"> - I - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL9amHash2"> - I - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL3pmHash"> - I - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL9pmHash"> - I - </text> - <text name="WL12amHash2"> - | - </text> - </panel> - <text name="WLCurKeyPresetText"> - 天空設定: - </text> - <combo_box label="預設值" name="WLSkyPresets"/> - <text name="WLCurKeyTimeText"> - 時間: - </text> - <time name="time" value="上午 6 點"/> - <check_box label="根據這設定變更我的日循環" name="make_default_cb"/> - <button label="儲存" name="save"/> - <button label="取消" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml deleted file mode 100644 index 18e6cfb9d2..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Sky Preset" title="編輯天空自訂配置"> - <string name="title_new"> - 建立新的天空自訂配置 - </string> - <string name="title_edit"> - 編輯天空自訂配置 - </string> - <string name="hint_new"> - 為自訂配置定名,調整各項控制確定配置細節,完成後點按「儲存」。 - </string> - <string name="hint_edit"> - 若要編輯你的天空自訂配置,請調整各項控制,再點按「儲存」。 - </string> - <string name="combo_label"> - -選擇一個自訂配置- - </string> - <text name="hint"> - 若要編輯你的自訂配置,請調整各項控制,再點按「儲存」。 - </text> - <text name="label"> - 自訂配置名稱: - </text> - <text name="note"> - 注意:更改自訂配置的名稱將會新建一個自訂配置,不會改變原有的自訂配置。 - </text> - <tab_container name="WindLight Tabs"> - <panel label="大氣" name="Atmosphere"> - <text name="BHText"> - 藍天水平線 - </text> - <text name="BDensText"> - 陰霾水平線 - </text> - <text name="BDensText2"> - 藍天密度 - </text> - <text name="HDText"> - 陰霾密度 - </text> - <text name="DensMultText"> - 密度倍增 - </text> - <text name="WLDistanceMultText"> - 距離倍增 - </text> - <text name="MaxAltText"> - 最大高度 - </text> - </panel> - <panel label="照明" name="Lighting"> - <text name="SLCText"> - 日/月 顏色 - </text> - <text name="WLAmbientText"> - 環境光 - </text> - <text name="SunGlowText"> - 太陽光輝 - </text> - <slider label="聚焦" name="WLGlowB"/> - <slider label="尺寸" name="WLGlowR"/> - <text name="WLStarText"> - 星空亮度 - </text> - <text name="SceneGammaText"> - 場景 Gamma 值 - </text> - <text name="TODText"> - 日/月位置 - </text> - <multi_slider initial_value="0" name="WLSunPos"/> - <text name="WL12amHash"> - | - </text> - <text name="WL6amHash"> - | - </text> - <text name="WL12pmHash2"> - | - </text> - <text name="WL6pmHash"> - | - </text> - <text name="WL12amHash2"> - | - </text> - <text name="WL12am"> - 午夜 12 點 - </text> - <text name="WL6am"> - 上午 6 點 - </text> - <text name="WL12pmHash"> - 中午 12 點 - </text> - <text name="WL6pm"> - 下午 6 點 - </text> - <text name="WL12am2"> - 午夜 12 點 - </text> - <time name="WLDayTime" value="上午 6 點"/> - <text name="WLEastAngleText"> - 東升角度 - </text> - </panel> - <panel label="雲彩" name="Clouds"> - <text name="WLCloudColorText"> - 雲彩顏色 - </text> - <text name="WLCloudColorText2"> - 雲彩 XY 軸/密度 - </text> - <slider label="X" name="WLCloudX"/> - <slider label="Y" name="WLCloudY"/> - <slider label="D" name="WLCloudDensity"/> - <text name="WLCloudCoverageText"> - 雲彩覆蓋 - </text> - <text name="WLCloudScaleText"> - 雲彩規模 - </text> - <text name="WLCloudDetailText"> - 雲彩細節(XY 軸/密度) - </text> - <slider label="X" name="WLCloudDetailX"/> - <slider label="Y" name="WLCloudDetailY"/> - <slider label="D" name="WLCloudDetailDensity"/> - <text name="WLCloudScrollXText"> - 雲彩 X 滾軸 - </text> - <check_box label="鎖定" name="WLCloudLockX"/> - <text name="WLCloudScrollYText"> - 雲彩 Y 滾軸 - </text> - <check_box label="鎖定" name="WLCloudLockY"/> - </panel> - </tab_container> - <check_box label="根據這自訂配置變更我的天空設定" name="make_default_cb"/> - <button label="儲存" name="save"/> - <button label="取消" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml b/indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml deleted file mode 100644 index 7943866e72..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Edit Water Preset" title="編輯水的自訂配置"> - <string name="title_new"> - 新建水的自訂配置 - </string> - <string name="title_edit"> - 編輯水的自訂配置 - </string> - <string name="hint_new"> - 為自訂配置定名,調整各項控制確定配置細節,完成後點按「儲存」。 - </string> - <string name="hint_edit"> - 若要編輯水的自訂配置,請調整各項控制,再點按「儲存」。 - </string> - <string name="combo_label"> - -選擇一個自訂配置- - </string> - <text name="hint"> - 若要編輯你的自訂配置,請調整各項控制,再點按「儲存」。 - </text> - <text name="label"> - 自訂配置名稱: - </text> - <text name="note"> - 注意:更改自訂配置的名稱將會新建一個自訂配置,不會改變原有的自訂配置。 - </text> - <panel name="panel_water_preset"> - <text name="water_color_label"> - 水霧顏色 - </text> - <text name="water_fog_density_label"> - 霧密度指數 - </text> - <text name="underwater_fog_modifier_label"> - 水底霧修飾元 - </text> - <text name="BHText"> - 大波浪方向 - </text> - <slider label="X" name="WaterWave1DirX"/> - <slider label="Y" name="WaterWave1DirY"/> - <text name="BDensText"> - 反射子波比例 - </text> - <text name="HDText"> - 菲涅耳比例 - </text> - <text name="FresnelOffsetText"> - 菲涅耳偏距 - </text> - <text name="BHText2"> - 小波浪方向 - </text> - <slider label="X" name="WaterWave2DirX"/> - <slider label="Y" name="WaterWave2DirY"/> - <text name="DensMultText"> - 上折射比例 - </text> - <text name="WaterScaleBelowText"> - 下折射比例 - </text> - <text name="MaxAltText"> - 模糊倍數 - </text> - <text name="BHText3"> - 正常地圖 - </text> - </panel> - <check_box label="根據這自訂配置變更我水的設定" name="make_default_cb"/> - <button label="儲存" name="save"/> - <button label="取消" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_environment_settings.xml b/indra/newview/skins/default/xui/zh/floater_environment_settings.xml deleted file mode 100644 index 862c576dc0..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_environment_settings.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Environment Editor Floater" title="環境設定"> - <text name="note"> - 使用以下的選項自訂你 Viewer 的環境設定。 - </text> - <radio_group name="region_settings_radio_group"> - <radio_item label="使用地區設定" name="use_region_settings"/> - <radio_item label="自訂我的環境" name="use_my_settings"/> - </radio_group> - <panel name="user_environment_settings"> - <text name="note"> - 注意:你的自訂設定不會被其他使用者看見。 - </text> - <text name="water_settings_title"> - 水的設定 - </text> - <combo_box name="water_settings_preset_combo"> - <combo_box.item label="-選擇一個自訂配置-" name="item0"/> - </combo_box> - <text name="sky_dayc_settings_title"> - 天空/日循環 - </text> - <radio_group name="sky_dayc_settings_radio_group"> - <radio_item label="固定天空" name="my_sky_settings"/> - <radio_item label="日循環" name="my_dayc_settings"/> - </radio_group> - <combo_box name="sky_settings_preset_combo"> - <combo_box.item label="-選擇一個自訂配置-" name="item0"/> - </combo_box> - <combo_box name="dayc_settings_preset_combo"> - <combo_box.item label="-選擇一個自訂配置-" name="item0"/> - </combo_box> - </panel> - <button label="確定" name="ok_btn"/> - <button label="取消" name="cancel_btn"/> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_facebook.xml b/indra/newview/skins/default/xui/zh/floater_facebook.xml deleted file mode 100644 index 9a71a26333..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_facebook.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_facebook" title="發佈到臉書"> - <tab_container name="tabs"> - <panel label="狀態" name="panel_facebook_status"/> - <panel label="相片" name="panel_facebook_photo"/> - <panel label="打卡" name="panel_facebook_place"/> - <panel label="朋友" name="panel_facebook_friends"/> - </tab_container> - <text name="connection_error_text"> - 錯誤 - </text> - <text name="connection_loading_text"> - 載入中… - </text> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_flickr.xml b/indra/newview/skins/default/xui/zh/floater_flickr.xml deleted file mode 100644 index c4576baea5..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_flickr.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_flickr" title="分享到FLICKR"> - <panel name="background"> - <tab_container name="tabs"> - <panel label="相片" name="panel_flickr_photo"/> - <panel label="帳號" name="panel_flickr_account"/> - </tab_container> - <panel name="connection_status_panel"> - <text name="connection_error_text"> - 錯誤 - </text> - <text name="connection_loading_text"> - 載入中… - </text> - </panel> - </panel> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml b/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml deleted file mode 100644 index 9e3bb88ac0..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Hardware Settings Floater" title="硬體設定"> - <text name="Filtering:"> - 過濾: - </text> - <check_box label="各向異性過濾(若啟用會變慢)" name="ani"/> - <text name="antialiasing label"> - 消除鋸齒: - </text> - <combo_box label="消除鋸齒" name="fsaa"> - <combo_box.item label="已停用" name="FSAADisabled"/> - <combo_box.item label="2x" name="2x"/> - <combo_box.item label="4x" name="4x"/> - <combo_box.item label="8x" name="8x"/> - <combo_box.item label="16x" name="16x"/> - </combo_box> - <text name="antialiasing restart"> - (須重新啟動瀏覽器) - </text> - <spinner label="伽瑪值:" name="gamma"/> - <text name="(brightness, lower is brighter)"> - (0 = 預設亮度;值越小 = 亮度越高) - </text> - <text name="Enable VBO:"> - 啟用頂點緩衝物件(VBO): - </text> - <check_box initial_value="true" label="啟用 OpenGL 頂點緩衝物件(VBO)" name="vbo" tool_tip="在較新硬體上啟用,可提升效能。 但是,較舊硬體的 VBO 實作不佳,若啟用可能導致當機。"/> - <text name="tc label"> - 啟用 S3TC: - </text> - <check_box initial_value="true" label="啟用材質壓縮(須重新啟動)" name="texture compression" tool_tip="在影片記憶體中壓縮材質,讓高解析度材質可以載入,但色彩品質稍差。"/> - <slider label="材質記憶體(MB):" name="GraphicsCardTextureMemory" tool_tip="配置給材質使用的記憶體量。 預設為顯像卡記憶體。 降低此值可以提升效能,但材質也會變模糊。"/> - <spinner label="霧距離比率:" name="fog"/> - <button label="確定" label_selected="確定" name="OK"/> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_perm_prefs.xml b/indra/newview/skins/default/xui/zh/floater_perm_prefs.xml deleted file mode 100644 index b38db59ff3..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_perm_prefs.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="perm prefs" title="預設上傳權限"> - <panel label="權限" name="permissions"> - <check_box label="與群組分享" name="share_with_group"/> - <check_box label="允許任何人覆製" name="everyone_copy"/> - <text name="NextOwnerLabel"> - 下一個所有人可以: - </text> - <check_box label="修改" name="next_owner_modify"/> - <check_box label="恚庨" name="next_owner_copy"/> - <check_box initial_value="true" label="轉售 / 送人" name="next_owner_transfer"/> - </panel> - <button label="確定" label_selected="確定" name="ok"/> - <button label="取消" label_selected="取消" name="cancel"/> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_twitter.xml b/indra/newview/skins/default/xui/zh/floater_twitter.xml deleted file mode 100644 index ac49b2a967..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_twitter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_twitter" title="推特"> - <tab_container name="tabs"> - <panel label="編撰" name="panel_twitter_photo"/> - <panel label="帳號" name="panel_twitter_account"/> - </tab_container> - <text name="connection_error_text"> - 錯誤 - </text> - <text name="connection_loading_text"> - 載入中… - </text> -</floater> diff --git a/indra/newview/skins/default/xui/zh/floater_voice_controls.xml b/indra/newview/skins/default/xui/zh/floater_voice_controls.xml deleted file mode 100644 index a3a7679957..0000000000 --- a/indra/newview/skins/default/xui/zh/floater_voice_controls.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="語音控制"> - <string name="title_nearby"> - 語音設定 - </string> - <string name="title_group"> - 與 [GROUP] 進行群組通話 - </string> - <string name="title_adhoc"> - 多方通話 - </string> - <string name="title_peer_2_peer"> - 和 [NAME] 通話 - </string> - <string name="no_one_near"> - 附近沒有一人開啟語音 - </string> - <layout_stack name="my_call_stack"> - <layout_panel name="my_panel"> - <text name="user_text" value="我的化身:"/> - </layout_panel> - <layout_panel name="leave_call_panel"> - <layout_stack name="voice_effect_and_leave_call_stack"> - <layout_panel name="leave_call_btn_panel"> - <button label="離開通話" name="leave_call_btn"/> - </layout_panel> - </layout_stack> - </layout_panel> - </layout_stack> -</floater> diff --git a/indra/newview/skins/default/xui/zh/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/zh/menu_inspect_avatar_gear.xml deleted file mode 100644 index f4e886ff67..0000000000 --- a/indra/newview/skins/default/xui/zh/menu_inspect_avatar_gear.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<toggleable_menu name="Gear Menu"> - <menu_item_call label="察看檔案" name="view_profile"/> - <menu_item_call label="加為朋友" name="add_friend"/> - <menu_item_call label="IM" name="im"/> - <menu_item_call label="通話" name="call"/> - <menu_item_call label="瞬間傳送" name="teleport"/> - <menu_item_call label="邀請加入群組" name="invite_to_group"/> - <menu_item_call label="封鎖" name="block"/> - <menu_item_call label="解除封鎖" name="unblock"/> - <menu_item_call label="回報" name="report"/> - <menu_item_call label="凍結" name="freeze"/> - <menu_item_call label="踢出" name="eject"/> - <menu_item_call label="踢出" name="kick"/> - <menu_item_call label="客服" name="csr"/> - <menu_item_call label="材質除錯" name="debug"/> - <menu_item_call label="在地圖上尋找" name="find_on_map"/> - <menu_item_call label="放大" name="zoom_in"/> - <menu_item_call label="支付" name="pay"/> - <menu_item_call label="分享" name="share"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/zh/menu_inspect_self_gear.xml deleted file mode 100644 index c48ee0c9be..0000000000 --- a/indra/newview/skins/default/xui/zh/menu_inspect_self_gear.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="Self Pie"> - <menu_item_call label="坐下" name="Sit Down Here"/> - <menu_item_call label="起立" name="Stand Up"/> - <context_menu label="脫下" name="Take Off >"> - <context_menu label="衣服" name="Clothes >"> - <menu_item_call label="襯衫" name="Shirt"/> - <menu_item_call label="褲子" name="Pants"/> - <menu_item_call label="裙子" name="Skirt"/> - <menu_item_call label="鞋子" name="Shoes"/> - <menu_item_call label="襪子" name="Socks"/> - <menu_item_call label="夾克" name="Jacket"/> - <menu_item_call label="手套" name="Gloves"/> - <menu_item_call label="內衣" name="Self Undershirt"/> - <menu_item_call label="內褲" name="Self Underpants"/> - <menu_item_call label="刺青" name="Self Tattoo"/> - <menu_item_call label="半透明" name="Self Alpha"/> - <menu_item_call label="全部衣服" name="All Clothes"/> - </context_menu> - <context_menu label="擡頭顯示" name="Object Detach HUD"/> - <context_menu label="卸下" name="Object Detach"/> - <menu_item_call label="全部卸下" name="Detach All"/> - </context_menu> - <menu_item_call label="變更裝扮" name="Chenge Outfit"/> - <menu_item_call label="編輯我的裝扮" name="Edit Outfit"/> - <menu_item_call label="編輯我的體形" name="Edit My Shape"/> - <menu_item_call label="我的朋友" name="Friends..."/> - <menu_item_call label="我的群組" name="Groups..."/> - <menu_item_call label="我的個人檔案" name="Profile..."/> - <menu_item_call label="材質除錯" name="Debug..."/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_name_field.xml b/indra/newview/skins/default/xui/zh/menu_name_field.xml deleted file mode 100644 index 5eaf3461cd..0000000000 --- a/indra/newview/skins/default/xui/zh/menu_name_field.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="CopyMenu"> - <menu_item_call label="複製顯示名稱" name="copy_display"/> - <menu_item_call label="複製代理名稱" name="copy_name"/> - <menu_item_call label="複製代理ID" name="copy_id"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/zh/menu_people_friends_view_sort.xml deleted file mode 100644 index 59854faeec..0000000000 --- a/indra/newview/skins/default/xui/zh/menu_people_friends_view_sort.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="依名稱排序" name="sort_name"/> - <menu_item_check label="依狀態排序" name="sort_status"/> - <menu_item_check label="察看人群圖示" name="view_icons"/> - <menu_item_check label="察看許可權限" name="view_permissions"/> - <menu_item_call label="顯示被封鎖的居民與物件" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_people_groups_view_sort.xml b/indra/newview/skins/default/xui/zh/menu_people_groups_view_sort.xml deleted file mode 100644 index 1be5c69b94..0000000000 --- a/indra/newview/skins/default/xui/zh/menu_people_groups_view_sort.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="顯示群組圖示" name="Display Group Icons"/> - <menu_item_call label="脫離所選擇的群組" name="Leave Selected Group"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/zh/menu_people_nearby_view_sort.xml deleted file mode 100644 index 6cb0ac3c89..0000000000 --- a/indra/newview/skins/default/xui/zh/menu_people_nearby_view_sort.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="依最近說話者排序" name="sort_by_recent_speakers"/> - <menu_item_check label="依名稱排序" name="sort_name"/> - <menu_item_check label="依距離排序" name="sort_distance"/> - <menu_item_check label="察看人群圖示" name="view_icons"/> - <menu_item_check label="察看地圖" name="view_map"/> - <menu_item_call label="顯示被封鎖的居民與物件" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/menu_people_recent_view_sort.xml b/indra/newview/skins/default/xui/zh/menu_people_recent_view_sort.xml deleted file mode 100644 index 5b6e7335d6..0000000000 --- a/indra/newview/skins/default/xui/zh/menu_people_recent_view_sort.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<toggleable_menu name="menu_group_plus"> - <menu_item_check label="依最近排序" name="sort_most"/> - <menu_item_check label="依名稱排序" name="sort_name"/> - <menu_item_check label="察看人群圖示" name="view_icons"/> - <menu_item_call label="顯示被封鎖的居民與物件" name="show_blocked_list"/> -</toggleable_menu> diff --git a/indra/newview/skins/default/xui/zh/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/zh/panel_adhoc_control_panel.xml deleted file mode 100644 index 7d16ac4129..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_adhoc_control_panel.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="call_btn_panel"> - <button label="通話" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="離開通話" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="語音控制" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_edit_classified.xml b/indra/newview/skins/default/xui/zh/panel_edit_classified.xml deleted file mode 100644 index 4d3248db46..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_edit_classified.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="編輯個人廣告" name="panel_edit_classified"> - <panel.string name="location_notice"> - (儲存後將會更新) - </panel.string> - <string name="publish_label"> - 發布 - </string> - <string name="save_label"> - 儲存 - </string> - <text name="title"> - 編輯個人廣告 - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="snapshot_panel"> - <icon label="" name="edit_icon" tool_tip="點按以選擇圖像"/> - </panel> - <text name="Name:"> - 標題: - </text> - <text name="description_label"> - 描述: - </text> - <text name="location_label"> - 位置: - </text> - <text name="classified_location"> - 載入中... - </text> - <button label="設定為目前位置" name="set_to_curr_location_btn"/> - <text name="category_label" value="分類:"/> - <text name="content_type_label" value="內容類型:"/> - <icons_combo_box label="一般普級內容" name="content_type"> - <icons_combo_box.item label="適度成人內容" name="mature_ci" value="適度成人"/> - <icons_combo_box.item label="一般普級內容" name="pg_ci" value="一般普級"/> - </icons_combo_box> - <check_box label="每星期自動續訂" name="auto_renew"/> - <text name="price_for_listing_label" value="刊登費:"/> - <spinner label="L$" name="price_for_listing" tool_tip="刊登費。" value="50"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="[LABEL]" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="cancel_btn_lp"> - <button label="取消" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_edit_pick.xml b/indra/newview/skins/default/xui/zh/panel_edit_pick.xml deleted file mode 100644 index faee42fd0e..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_edit_pick.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="編輯精選地點" name="panel_edit_pick"> - <panel.string name="location_notice"> - (儲存後將會更新) - </panel.string> - <text name="title"> - 編輯精選地點 - </text> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <icon label="" name="edit_icon" tool_tip="點按以選擇圖像"/> - <text name="Name:"> - 標題: - </text> - <text name="description_label"> - 描述: - </text> - <text name="location_label"> - 位置: - </text> - <text name="pick_location"> - 載入中... - </text> - <button label="設定為目前位置" name="set_to_curr_location_btn"/> - </panel> - </scroll_container> - <panel label="bottom_panel" name="bottom_panel"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="儲存精選地點" name="save_changes_btn"/> - </layout_panel> - <layout_panel name="layout_panel2"> - <button label="取消" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_edit_profile.xml b/indra/newview/skins/default/xui/zh/panel_edit_profile.xml deleted file mode 100644 index 849b82c71a..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_edit_profile.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="檔案編輯" name="edit_profile_panel"> - <string name="CaptionTextAcctInfo"> - [ACCTTYPE] -[PAYMENTINFO] [AGEVERIFICATION] - </string> - <string name="RegisterDateFormat"> - [REG_DATE] ([AGE]) - </string> - <string name="AcctTypeResident" value="居民"/> - <string name="AcctTypeTrial" value="試用"/> - <string name="AcctTypeCharterMember" value="老牌 Charter 成員"/> - <string name="AcctTypeEmployee" value="林登實驗室員工"/> - <string name="PaymentInfoUsed" value="使用的付款資料"/> - <string name="PaymentInfoOnFile" value="預留付款資料"/> - <string name="NoPaymentInfoOnFile" value="未預留付款資料"/> - <string name="AgeVerified" value="通過年齡驗證"/> - <string name="NotAgeVerified" value="未通過年齡驗證"/> - <string name="partner_edit_link_url"> - http://www.secondlife.com/account/partners.php?lang=en - </string> - <string name="my_account_link_url"> - http://secondlife.com/my - </string> - <string name="no_partner_text" value="無"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="data_panel"> - <text name="display_name_label" value="顯示名稱:"/> - <text name="solo_username_label" value="使用者名稱:"/> - <button name="set_name" tool_tip="設定顯示名稱"/> - <text name="user_label" value="使用者名稱:"/> - <panel name="lifes_images_panel"> - <panel name="second_life_image_panel"> - <text name="second_life_photo_title_text" value="[SECOND_LIFE]:"/> - </panel> - <icon label="" name="2nd_life_edit_icon" tool_tip="點按以選擇圖像"/> - </panel> - <panel name="first_life_image_panel"> - <text name="real_world_photo_title_text" value="真實世界:"/> - </panel> - <icon label="" name="real_world_edit_icon" tool_tip="點按以選擇圖像"/> - <text name="title_homepage_text"> - 首頁: - </text> - <line_editor name="homepage_edit" value="http://"/> - <text name="title_acc_status_text" value="我的帳戶:"/> - <text_editor name="acc_status_text" value="居民。 未預留付款資料。"/> - <text name="my_account_link" value="[[URL] 前往我的塗鴉牆]"/> - <text name="title_partner_text" value="我的配偶:"/> - <panel name="partner_data_panel"> - <text initial_value="(檢索中)" name="partner_text"/> - </panel> - <text name="partner_edit_link" value="[[URL] 編輯]"/> - </panel> - </panel> - </scroll_container> - <panel name="profile_me_buttons_panel"> - <layout_stack name="bottom_panel_ls"> - <layout_panel name="save_changes_btn_lp"> - <button label="儲存變更" name="save_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="取消" name="cancel_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_facebook_account.xml b/indra/newview/skins/default/xui/zh/panel_facebook_account.xml deleted file mode 100644 index e8c31c69c5..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_facebook_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_account"> - <string name="facebook_connected" value="已成功連通臉書,身分為:"/> - <string name="facebook_disconnected" value="未連通臉書"/> - <text name="account_caption_label"> - 未連通臉書。 - </text> - <panel name="panel_buttons"> - <button label="連通…" name="connect_btn"/> - <button label="中斷" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 如何發佈到臉書] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_facebook_friends.xml b/indra/newview/skins/default/xui/zh/panel_facebook_friends.xml deleted file mode 100644 index 2cf3eb0cf5..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_facebook_friends.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_friends"> - <string name="facebook_friends_empty" value="你的臉書朋友中,沒有同時也是第二人生居民的人。 今天就請你的臉書朋友加入第二人生!"/> - <string name="facebook_friends_no_connected" value="你目前尚未連結臉書。 請到「帳戶」頁籤開啟這項功能並進行連結。"/> - <accordion name="friends_accordion"> - <accordion_tab name="tab_second_life_friends" title="第二人生的朋友"/> - <accordion_tab name="tab_suggested_friends" title="把這些人加為第二人生的朋友"/> - </accordion> - <text name="facebook_friends_status"> - 未連通臉書。 - </text> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_facebook_photo.xml b/indra/newview/skins/default/xui/zh/panel_facebook_photo.xml deleted file mode 100644 index 85d2ac36f3..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_facebook_photo.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_photo"> - <combo_box name="resolution_combobox" tool_tip="圖像解析度"> - <combo_box.item label="目前視窗" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - <combo_box.item label="1200x630" name="1200x630"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="圖像濾鏡"> - <combo_box.item label="不用濾鏡" name="NoFilter"/> - </combo_box> - <button label="刷新" name="new_snapshot_btn" tool_tip="點按即可刷新"/> - <button label="預覽" name="big_preview_btn" tool_tip="點按即可切換預覽"/> - <text name="caption_label"> - 說明(可留空): - </text> - <button label="發佈" name="post_photo_btn"/> - <button label="取消" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_facebook_place.xml b/indra/newview/skins/default/xui/zh/panel_facebook_place.xml deleted file mode 100644 index 56d4d687ef..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_facebook_place.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_place"> - <text name="place_caption_label"> - 描述一下你所在的地方: - </text> - <check_box initial_value="false" label="包括地點的俯瞰圖" name="add_place_view_cb"/> - <button label="發佈" name="post_place_btn"/> - <button label="取消" name="cancel_place_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_facebook_status.xml b/indra/newview/skins/default/xui/zh/panel_facebook_status.xml deleted file mode 100644 index 3a7cbd07b0..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_facebook_status.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_facebook_status"> - <string name="facebook_connected" value="已成功連通臉書,身分為:"/> - <string name="facebook_disconnected" value="未連通臉書"/> - <text name="account_caption_label"> - 未連通臉書。 - </text> - <panel name="panel_buttons"> - <button label="連通…" name="connect_btn"/> - <button label="中斷" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share-Facebook/ta-p/2149711 如何發佈到臉書] - </text> - </panel> - <text name="status_caption_label"> - 你在想些什麼? - </text> - <button label="發佈" name="post_status_btn"/> - <button label="取消" name="cancel_status_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_flickr_account.xml b/indra/newview/skins/default/xui/zh/panel_flickr_account.xml deleted file mode 100644 index 63cd547cd0..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_flickr_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_account"> - <string name="flickr_connected" value="你已成功連通 Flickr,身分為:"/> - <string name="flickr_disconnected" value="尚未連通 Flickr"/> - <text name="account_caption_label"> - 尚未連通 Flickr。 - </text> - <panel name="panel_buttons"> - <button label="連通…" name="connect_btn"/> - <button label="中斷" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share/ta-p/2435609 瞭解如何發佈到 Flickr] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_flickr_photo.xml b/indra/newview/skins/default/xui/zh/panel_flickr_photo.xml deleted file mode 100644 index 928fd4c640..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_flickr_photo.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_flickr_photo"> - <combo_box name="resolution_combobox" tool_tip="圖像解析度"> - <combo_box.item label="目前視窗" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="圖像濾鏡"> - <combo_box.item label="不用濾鏡" name="NoFilter"/> - </combo_box> - <button label="刷新" name="new_snapshot_btn" tool_tip="點按即可刷新"/> - <button label="預覽" name="big_preview_btn" tool_tip="點按即可切換預覽"/> - <text name="title_label"> - 標題: - </text> - <text name="description_label"> - 描述: - </text> - <check_box initial_value="true" label="在描述結尾加上第二人生的地點" name="add_location_cb"/> - <text name="tags_label"> - 標籤: - </text> - <text name="tags_help_label"> - 不同標籤之間以半形空格分隔 -標籤若含空格,用 "" 半形符號括住 - </text> - <combo_box name="rating_combobox" tool_tip="Flickr 內容分級"> - <combo_box.item label="安全級 Flickr 內容" name="SafeRating"/> - <combo_box.item label="適中級 Flickr 內容" name="ModerateRating"/> - <combo_box.item label="限制級 Flickr 內容" name="RestrictedRating"/> - </combo_box> - <button label="分享" name="post_photo_btn"/> - <button label="取消" name="cancel_photo_btn"/> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_group_control_panel.xml b/indra/newview/skins/default/xui/zh/panel_group_control_panel.xml deleted file mode 100644 index f468aba514..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_group_control_panel.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="vertical_stack"> - <layout_panel name="group_info_btn_panel"> - <button label="群組檔案" name="group_info_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="群組通話" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="離開通話" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="開啟語音控制" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_im_control_panel.xml b/indra/newview/skins/default/xui/zh/panel_im_control_panel.xml deleted file mode 100644 index e937368a2b..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_im_control_panel.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_im_control_panel"> - <layout_stack name="button_stack"> - <layout_panel name="view_profile_btn_panel"> - <button label="檔案" name="view_profile_btn"/> - </layout_panel> - <layout_panel name="add_friend_btn_panel"> - <button label="加為朋友" name="add_friend_btn"/> - </layout_panel> - <layout_panel name="teleport_btn_panel"> - <button label="瞬間傳送" name="teleport_btn" tool_tip="發出瞬間傳送邀請給此人"/> - </layout_panel> - <layout_panel name="share_btn_panel"> - <button label="分享" name="share_btn"/> - </layout_panel> - <layout_panel name="pay_btn_panel"> - <button label="支付" name="pay_btn"/> - </layout_panel> - <layout_panel name="call_btn_panel"> - <button label="通話" name="call_btn"/> - </layout_panel> - <layout_panel name="end_call_btn_panel"> - <button label="結束通話" name="end_call_btn"/> - </layout_panel> - <layout_panel name="voice_ctrls_btn_panel"> - <button label="語音控制" name="voice_ctrls_btn"/> - </layout_panel> - </layout_stack> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml deleted file mode 100644 index bb52c13a11..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> - <button label="重新產出地區" name="navmesh_btn" tool_tip="點按即可重新產出該地區的導航網面。"/> - <button label="正在請求重新產出" name="navmesh_btn_sending" tool_tip="正向伺服器發送重新產出請求。"/> - <button label="地區正在重新產出" name="navmesh_btn_baking" tool_tip="地區正在重新產出。 完成後,這個按鈕將會消失。"/> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_pick_info.xml b/indra/newview/skins/default/xui/zh/panel_pick_info.xml deleted file mode 100644 index cd4cdbf999..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_pick_info.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_pick_info"> - <text name="title" value="精選地點資訊"/> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <text_editor name="pick_name" value="[name]"/> - <text_editor name="pick_location" value="[loading...]"/> - <text_editor name="pick_desc" value="[description]"/> - </panel> - </scroll_container> - <panel name="buttons"> - <layout_stack name="layout_stack1"> - <layout_panel name="layout_panel1"> - <button label="瞬間傳送" name="teleport_btn"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="地圖" name="show_on_map_btn"/> - </layout_panel> - <layout_panel name="edit_btn_lp"> - <button label="編輯" name="edit_btn"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_picks.xml b/indra/newview/skins/default/xui/zh/panel_picks.xml deleted file mode 100644 index 98d36eaea0..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_picks.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="精選地點" name="panel_picks"> - <string name="no_picks" value="無精選地點"/> - <string name="no_classifieds" value="禁止個人廣告"/> - <accordion name="accordion"> - <accordion_tab name="tab_picks" title="精選地點"/> - <accordion_tab name="tab_classifieds" title="個人廣告"/> - </accordion> - <panel label="bottom_panel" name="edit_panel"> - <layout_stack name="edit_panel_ls"> - <layout_panel name="gear_menu_btn"> - <button name="new_btn" tool_tip="以目前位置建立新的精選地點或個人廣告"/> - </layout_panel> - </layout_stack> - </panel> - <panel name="buttons_cucks"> - <layout_stack name="buttons_cucks_ls"> - <layout_panel name="info_btn_lp"> - <button label="資訊" name="info_btn" tool_tip="顯示精選地點資訊"/> - </layout_panel> - <layout_panel name="teleport_btn_lp"> - <button label="瞬間傳送" name="teleport_btn" tool_tip="瞬間傳送到的區域"/> - </layout_panel> - <layout_panel name="show_on_map_btn_lp"> - <button label="地圖" name="show_on_map_btn" tool_tip="在世界地圖上顯示相對應的區域"/> - </layout_panel> - </layout_stack> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_profile_interests.xml b/indra/newview/skins/default/xui/zh/panel_profile_interests.xml deleted file mode 100644 index 150f3cca4f..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_profile_interests.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="興趣" name="panel_profile_interests"> - <text name="I Want To:"> - 我想要: - </text> - <check_box label="建造" name="chk0"/> - <check_box label="探索" name="chk1"/> - <check_box label="見面" name="chk2"/> - <check_box label="受雇" name="chk6"/> - <check_box label="群組" name="chk3"/> - <check_box label="購買" name="chk4"/> - <check_box label="出售" name="chk5"/> - <check_box label="招人" name="chk7"/> - <line_editor name="want_to_edit"> - (載入中...) - </line_editor> - <text name="Skills:"> - 技能: - </text> - <check_box label="材質" name="schk0"/> - <check_box label="架構" name="schk1"/> - <check_box label="建模" name="schk3"/> - <check_box label="計畫活動" name="schk2"/> - <check_box label="建腳本" name="schk4"/> - <check_box label="定製角色" name="schk5"/> - <line_editor name="skills_edit"> - (載入中...) - </line_editor> - <text name="Languages:"> - 語言: - </text> - <line_editor name="languages_edit"> - (載入中...) - </line_editor> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_twitter_account.xml b/indra/newview/skins/default/xui/zh/panel_twitter_account.xml deleted file mode 100644 index a8b57d7453..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_twitter_account.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_account"> - <string name="twitter_connected" value="你已成功連通推特,身分為:"/> - <string name="twitter_disconnected" value="尚未連通推特。"/> - <text name="account_caption_label"> - 尚未連通推特。 - </text> - <panel name="panel_buttons"> - <button label="連通…" name="connect_btn"/> - <button label="中斷" name="disconnect_btn"/> - <text name="account_learn_more_label"> - [http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Share/ta-p/2435453 瞭解如何發佈到推特] - </text> - </panel> -</panel> diff --git a/indra/newview/skins/default/xui/zh/panel_twitter_photo.xml b/indra/newview/skins/default/xui/zh/panel_twitter_photo.xml deleted file mode 100644 index 19eb23eac7..0000000000 --- a/indra/newview/skins/default/xui/zh/panel_twitter_photo.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<panel name="panel_twitter_photo"> - <text name="status_label"> - 說一說你正在做什麼 - </text> - <text name="status_counter_label"> - 140 - </text> - <check_box initial_value="true" label="加入所在位置" name="add_location_cb"/> - <check_box initial_value="true" label="附上照片" name="add_photo_cb"/> - <combo_box name="resolution_combobox" tool_tip="圖像解析度"> - <combo_box.item label="目前視窗" name="CurrentWindow"/> - <combo_box.item label="640x480" name="640x480"/> - <combo_box.item label="800x600" name="800x600"/> - <combo_box.item label="1024x768" name="1024x768"/> - </combo_box> - <combo_box name="filters_combobox" tool_tip="圖像濾鏡"> - <combo_box.item label="不用濾鏡" name="NoFilter"/> - </combo_box> - <button label="刷新" name="new_snapshot_btn" tool_tip="點按即可刷新"/> - <button label="預覽" name="big_preview_btn" tool_tip="點按即可切換預覽"/> - <button label="發到推特" name="post_photo_btn"/> - <button label="取消" name="cancel_photo_btn"/> -</panel> diff --git a/indra/test/llsdutil_tut.cpp b/indra/test/llsdutil_tut.cpp index 6fce53f335..22efd5439a 100644 --- a/indra/test/llsdutil_tut.cpp +++ b/indra/test/llsdutil_tut.cpp @@ -404,28 +404,28 @@ namespace tut ensure("hash: equivalent values but different types do not match.", boost::hash<LLSD>{}(data_r1) != boost::hash<LLSD>{}(data_i1)); } { - LLSD data_a1 = LLSDArray("A")("B")("C"); - LLSD data_a2 = LLSDArray("A")("B")("C"); + LLSD data_a1 = llsd::array("A", "B", "C"); + LLSD data_a2 = llsd::array("A", "B", "C"); ensure("hash: identical arrays produce identical results", boost::hash<LLSD>{}(data_a1) == boost::hash<LLSD>{}(data_a2)); - data_a2.append(LLSDArray(1)(2)); + data_a2.append(llsd::array(1, 2)); ensure("hash: changing the array changes the hash.", boost::hash<LLSD>{}(data_a1) != boost::hash<LLSD>{}(data_a2)); - data_a1.append(LLSDArray(1)(2)); + data_a1.append(llsd::array(1, 2)); ensure("hash: identical arrays produce identical results with nested arrays", boost::hash<LLSD>{}(data_a1) == boost::hash<LLSD>{}(data_a2)); } { - LLSD data_m1 = LLSDMap("key1", LLSD::Real(3.0))("key2", "value2")("key3", LLSDArray(1)(2)(3)); - LLSD data_m2 = LLSDMap("key1", LLSD::Real(3.0))("key2", "value2")("key3", LLSDArray(1)(2)(3)); + LLSD data_m1 = LLSDMap("key1", LLSD::Real(3.0))("key2", "value2")("key3", llsd::array(1, 2, 3)); + LLSD data_m2 = LLSDMap("key1", LLSD::Real(3.0))("key2", "value2")("key3", llsd::array(1, 2, 3)); ensure("hash: identical maps produce identical results", boost::hash<LLSD>{}(data_m1) == boost::hash<LLSD>{}(data_m2)); - LLSD data_m3 = LLSDMap("key1", LLSD::Real(5.0))("key2", "value2")("key3", LLSDArray(1)(2)(3)); + LLSD data_m3 = LLSDMap("key1", LLSD::Real(5.0))("key2", "value2")("key3", llsd::array(1, 2, 3)); ensure("hash: Different values in the map produce different hashes.", boost::hash<LLSD>{}(data_m1) != boost::hash<LLSD>{}(data_m3)); - LLSD data_m4 = LLSDMap("keyA", LLSD::Real(3.0))("key2", "value2")("key3", LLSDArray(1)(2)(3)); + LLSD data_m4 = LLSDMap("keyA", LLSD::Real(3.0))("key2", "value2")("key3", llsd::array(1, 2, 3)); ensure("hash: Different keys in the map produce different hashes.", boost::hash<LLSD>{}(data_m1) != boost::hash<LLSD>{}(data_m4)); } diff --git a/scripts/template_verifier.py b/scripts/template_verifier.py index 4c6449954b..ee8492db5e 100755 --- a/scripts/template_verifier.py +++ b/scripts/template_verifier.py @@ -232,7 +232,7 @@ http://wiki.secondlife.com/wiki/Template_verifier.py """) parser.add_option( '-u', '--master_url', type='string', dest='master_url', - default='https://bitbucket.org/lindenlab/master-message-template-git/raw/master/message_template.msg', + default='https://github.com/secondlife/master-message-template/raw/master/message_template.msg', help="""The url of the master message template.""") parser.add_option( '-c', '--cache_master', action='store_true', dest='cache_master', |