diff --git a/.hgtags b/.hgtags
index c5b40e9b9a..636671b4c9 100755
--- a/.hgtags
+++ b/.hgtags
@@ -69,6 +69,7 @@ b53a0576eec80614d7767ed72b40ed67aeff27c9 DRTVWR-38_2.5.2-release
4e9eec6a347f89b2b3f295beb72f1cf7837dff66 2.6.0-start
9283d6d1d7eb71dfe4c330e7c9144857e7356bde 2.6.0-beta1
9283d6d1d7eb71dfe4c330e7c9144857e7356bde DRTVWR-40_2.6.0-beta1
+461c8c65b5c799ddfe365422f9be9c0095d91e7d 2.6.0-beta1-tip
9e4641f4a7870c0f565a25a2971368d5a29516a1 2.6.0-beta2
9e4641f4a7870c0f565a25a2971368d5a29516a1 DRTVWR-41_2.6.0-beta2
42f32494bac475d0737799346f6831558ae8bf5d 2.6.0-release
@@ -274,7 +275,6 @@ cbea6356ce9cb0c313b6777f10c5c14783264fcc DRTVWR-174
eb539c65e6ee26eea2bf373af2d0f4b52dc91289 DRTVWR-177
a8057e1b9a1246b434a27405be35e030f7d28b0c 3.3.4-beta3
888768f162d2c0a8de1dcc5fb9a08bd8bd120a6b DRTVWR-175
-4ad8a3afe40e0200309e3ada68932c4295ac2795 DRTVWR-179
4281aa899fb2cedb7a9ca7ce91c5c29d4aa69594 DRTVWR-180
5c08e1d8edd871807153603b690e3ee9dbb548aa DRTVWR-183
6c75f220b103db1420919c8b635fe53e2177f318 3.3.4-beta4
@@ -311,3 +311,60 @@ de3be913f68813a9bac7d1c671fef96d1159bcd6 DRTVWR-202
7b22c612fc756e0ea63b10b163e81d107f85dbf8 DRTVWR-206
8c9085066c78ed5f6c9379dc054c82a6fcdb1851 DRTVWR-207
351eea5f9dc192fc5ddea3b02958de97677a0a12 3.3.4-release3
+af7b28e75bd5a629cd9e0dc46fb3f1757626f493 DRTVWR-212
+015012c2b740ccdec8a8c3d6e5f898449ecfe0b8 DRTVWR-213
+62b07aa81b1957897c3846292bb9412977b0af6c 3.3.4-beta6
+ceed0b65a69f1eac20d523e0203320a32f9a3f3c DRTVWR-215
+733ceac77583874f3626ef7a15c105b83ef0f5bb 3.4.0-beta7
+97977c67245f52db20eb15f1918cc0f24778cabc 3.4.0-release
+5adb2b8f96c3cac88ad7c7d996d707f1b29df336 3.4.1-beta1
+b3f74858a1c8720c82d0978f3877a3fc8ba459ec 3.4.1-beta1a
+b61afe175b829c149d369524a4e974dfda99facf DRTVWR-219
+2b779f233ee6f38c89cb921650c773a96e63da92 DRTVWR-220
+0b9d95f4bfb6867cbf56eaec51633b0da2f1262d DRTVWR-221
+e6e553761829dc0270eaaa712b7cb0622535b076 3.4.1-beta3
+f00068a66a2e2f72acbe3f690b98b323e740b289 DRTVWR-222
+305950187c628a5d6743ee9ea711cc5b9177a18e 3.4.1-beta4
+dd23d4da3bcb2ffda58569e759feb7c119982973 DRTVWR-224
+0bd3744ff060452aa13ff4992eafb381df7b1012 3.4.1-beta5
+29075f8c1abed53dcf195a59f61744e27a91108f DRTVWR-226
+fba99f381b8d4ad1b7b42fa4993b29998d95be18 DRTVWR-179
+49ed253c80bed7410e238eeab35a9f14cb034364 3.4.1-beta6
+468ca3268229011a59df99229b24315844b33d34 DRTVWR-227
+524da902713e8b60322640b9825101add4a7c497 3.4.1-beta7
+173c2809f9873499c4b9d6bc044ec941c954d3fb DRTVWR-228
+1dc94555582f52718834081e7659e973ae4521f7 3.4.1-beta8
+52c164c8023a5e65f3dc1b0bbb7fa1dd0c631b6b DRTVWR-231
+464cf7a63a9a2f95bc4972dc022ca765e93de7d3 DRTVWR-233
+637fe8bbee5e24940448198c221d5ee0fa3247b4 3.4.1-beta9
+4e0d84e92132e9e95a1d52a1e49bad69c278ea05 3.4.1-beta10
+f7cbd60a3f57ff1101157eeb79ea21e8898bedae DRTVWR-235
+baf97f06ae17223614c5e31aa42e71d87cff07fe DRTVWR-236
+18498afcdb835d6fc4d36ed935347d3b65307bad 3.4.1-beta11
+b2f21e3442542283a80e7eaebae9f833e5a927b6 DRTVWR-237
+3f9be82de642d468c5fc272cb9d96b46b5498402 3.4.1-beta12
+e59ffd3fe0838ae6b09b242a6e9df71761b88f41 3.4.1-release
+32896d5e920ca9a29256ff3b747c2e99752aa5ae DRTVWR-217
+704bbae7b182a1f2811a47a054e680522966f54a 3.4.2-beta1
+d799593b53ed733862e9a13871e318e886469377 DRTVWR-208
+e497dcde7a3653e384eb223a8a460030e89c294c DRTVWR-223
+288539fc0408ed4b69a99665de33bbbc2c3c08fe DRTVWR-216
+e664473c16df1d82ffaff382e7b3e023da202d52 3.4.2-beta2
+93ab02d83f51e30a3cabad98aff89601befd9413 DRTVWR-240
+0891d7a773a31397dcad48be3fa66531d567a821 DRTVWR-242
+710785535362b3cb801b6a3dc4703be3373bd0cd 3.4.2-beta3
+2aa72e3372a83dece4df9cf72fb1e7c34f90b5e3 DRTVWR-209
+f7bedce18ad52283e6072814db23318907261487 DRTVWR-238
+7b64c96fbcadf360bd2feaae19d330166b70877c DRTVWR-210
+e9a5886052433d5db9e504ffaca10890f9932979 DRTVWR-243
+73b84b9864dc650fe7c8fc9f52361450f0849004 3.4.2-beta4
+16310aabccf315870f7cc9bf966926c0ad6954fa 3.4.2-release
+5e4e4128b256525bafc07a62e35ae8527aaa9c9d DRTVWR-241
+f1d3b3fcab28ed9ea532bf50db0ba96f5c8cc8e9 DRTVWR-232
+4918b150e75df6b516fb6c2616d32043fa6b4cac DRTVWR-245
+94ab2b49458ab372a95d2d6949fdf574f413068d 3.4.3-beta1
+4c3460cb1fb7c6da9965e09c734d282a8e9c81f0 DRTVWR-229
+f4481df42f9a4a92bf475a80f0c51d1a4bbdfd59 DRTVWR-246
+39c5204b6e800983a41ccac8ad6dc993120197c6 DRTVWR-247
+7c7d57d393e8ae7b61623279de06eb4a62ccae6a DRTVWR-249
+f72b50ef168c159d6e79e97aa2bcafaf8577ab99 DRTVWR-230
diff --git a/BuildParams b/BuildParams
index 4567f72ede..246e1b7573 100644
--- a/BuildParams
+++ b/BuildParams
@@ -3,6 +3,7 @@
# Please refer to:
# https://wiki.secondlife.com/wiki/Automated_Build_System
+
# Global setting for now...
Darwin.symbolfiles = "newview/Release/secondlife-symbols-darwin.tar.bz2"
CYGWIN.symbolfiles = "newview/Release/secondlife-symbols-windows.tar.bz2"
@@ -25,8 +26,13 @@ codeticket_since = 3.3.0-release
Linux.gcc_version = /usr/bin/gcc-4.6
Linux.cxx_version = /usr/bin/g++-4.6
+clean_on_success = false
+run_tests = false
+build_Darwin_Debug = false
+build_Darwin_RelWithDebInfo = false
+
# ========================================
-# Viewer Development
+# Viewer Development --
# ========================================
# Report changes since...
@@ -63,6 +69,7 @@ viewer-release.build_debug_release_separately = true
viewer-release.build_viewer_update_version_manager = true
viewer-release.codeticket_add_context = false
+
# ========================================
# mesh-development
# ========================================
@@ -119,17 +126,6 @@ viewer-mesh.login_channel = "Project Viewer - Mesh"
viewer-mesh.viewer_grid = aditi
viewer-mesh.email = shining@lists.lindenlab.com
-# ========================================
-# viewer-adult-check
-# ========================================
-
-viewer-adult-check.viewer_channel = "Project Viewer - AdultCheck"
-viewer-adult-check.login_channel = "Project Viewer - AdultCheck"
-viewer-adult-check.viewer_grid = agni
-viewer-adult-check.build_debug_release_separately = true
-viewer-adult-check.build_CYGWIN_Debug = false
-viewer-adult-check.build_viewer_update_version_manager = false
-
# ========================================
# viewer-pathfinding
# ========================================
@@ -202,4 +198,5 @@ runway.build_debug_release_separately = true
runway.build_CYGWIN_Debug = false
runway.build_viewer_update_version_manager = false
+
# eof
diff --git a/autobuild.xml b/autobuild.xml
index 41250621b2..ca51186864 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -186,9 +186,9 @@
archive
name
darwin
@@ -198,9 +198,9 @@
archive
name
linux
@@ -210,9 +210,9 @@
archive
name
windows
diff --git a/build.sh b/build.sh
index a85d4af6fc..307dda85eb 100755
--- a/build.sh
+++ b/build.sh
@@ -78,7 +78,7 @@ pre_build()
check_for "After 'autobuild configure'" ${build_dir}/packages/dictionaries
- end_section "Pre$variant"
+ end_section "Pre$variant"
}
package_llphysicsextensions_tpv()
diff --git a/doc/contributions.txt b/doc/contributions.txt
index e20b7b83c5..f18985adcd 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -890,6 +890,8 @@ Nicholaz Beresford
VWR-2682
VWR-2684
Nick Rhodes
+Nicky Dasmijn
+ VWR-29228
Nicky Perian
OPEN-1
STORM-1087
@@ -1122,6 +1124,7 @@ TankMaster Finesmith
STORM-1602
STORM-1868
VWR-26622
+ VWR-29224
Talamasca
Tali Rosca
Tayra Dagostino
@@ -1268,6 +1271,8 @@ Whoops Babii
Winter Ventura
Wilton Lundquist
VWR-7682
+Wolf Loonie
+ STORM-1868
WolfPup Lowenhar
OPEN-1
OPEN-37
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index 12fee2029f..0a54163644 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -44,6 +44,7 @@ add_subdirectory(${LIBS_OPEN_PREFIX}llaudio)
add_subdirectory(${LIBS_OPEN_PREFIX}llappearance)
add_subdirectory(${LIBS_OPEN_PREFIX}llcharacter)
add_subdirectory(${LIBS_OPEN_PREFIX}llcommon)
+add_subdirectory(${LIBS_OPEN_PREFIX}llcorehttp)
add_subdirectory(${LIBS_OPEN_PREFIX}llimage)
add_subdirectory(${LIBS_OPEN_PREFIX}llkdu)
add_subdirectory(${LIBS_OPEN_PREFIX}llimagej2coj)
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index da0920d048..887f814a47 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -183,7 +183,7 @@ if (DARWIN)
add_definitions(-DLL_DARWIN=1 -D_XOPEN_SOURCE)
set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
- set(DARWIN_extra_cstar_flags "-mlong-branch")
+ set(DARWIN_extra_cstar_flags "-mlong-branch -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DARWIN_extra_cstar_flags}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DARWIN_extra_cstar_flags}")
# NOTE: it's critical that the optimization flag is put in front.
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 2135f0584c..1acb2bbbfd 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -12,12 +12,13 @@ if (STANDALONE)
set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
set(BOOST_SYSTEM_LIBRARY boost_system-mt)
set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
+ set(BOOST_THREAD_LIBRARY boost_thread-mt)
else (STANDALONE)
use_prebuilt_binary(boost)
set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+ set(BOOST_VERSION "1.52")
if (WINDOWS)
- set(BOOST_VERSION 1_45)
if(MSVC80)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized libboost_program_options-vc80-mt-${BOOST_VERSION}
@@ -37,22 +38,55 @@ else (STANDALONE)
else(MSVC80)
# MSVC 10.0 config
set(BOOST_PROGRAM_OPTIONS_LIBRARY
- optimized libboost_program_options-vc100-mt-${BOOST_VERSION}
- debug libboost_program_options-vc100-mt-gd-${BOOST_VERSION})
+ optimized libboost_program_options-mt
+ debug libboost_program_options-mt-gd)
set(BOOST_REGEX_LIBRARY
- optimized libboost_regex-vc100-mt-${BOOST_VERSION}
- debug libboost_regex-vc100-mt-gd-${BOOST_VERSION})
+ optimized libboost_regex-mt
+ debug libboost_regex-mt-gd)
set(BOOST_SYSTEM_LIBRARY
- optimized libboost_system-vc100-mt-${BOOST_VERSION}
- debug libboost_system-vc100-mt-gd-${BOOST_VERSION})
+ optimized libboost_system-mt
+ debug libboost_system-mt-gd)
set(BOOST_FILESYSTEM_LIBRARY
- optimized libboost_filesystem-vc100-mt-${BOOST_VERSION}
- debug libboost_filesystem-vc100-mt-gd-${BOOST_VERSION})
+ optimized libboost_filesystem-mt
+ debug libboost_filesystem-mt-gd)
+ set(BOOST_THREAD_LIBRARY
+ optimized libboost_thread-mt
+ debug libboost_thread-mt-gd)
endif (MSVC80)
- elseif (DARWIN OR LINUX)
- set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options)
- set(BOOST_REGEX_LIBRARY boost_regex)
- set(BOOST_SYSTEM_LIBRARY boost_system)
- set(BOOST_FILESYSTEM_LIBRARY boost_filesystem)
+ elseif (LINUX)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized boost_program_options-mt
+ debug boost_program_options-mt-d)
+ set(BOOST_REGEX_LIBRARY
+ optimized boost_regex-mt
+ debug boost_regex-mt-d)
+ set(BOOST_SYSTEM_LIBRARY
+ optimized boost_system-mt
+ debug boost_system-mt-d)
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized boost_filesystem-mt
+ debug boost_filesystem-mt-d)
+ set(BOOST_THREAD_LIBRARY
+ optimized boost_thread-mt
+ debug boost_thread-mt-d)
+ elseif (DARWIN)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized boost_program_options-mt
+ debug boost_program_options-mt-d)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized boost_program_options-mt
+ debug boost_program_options-mt-d)
+ set(BOOST_REGEX_LIBRARY
+ optimized boost_regex-mt
+ debug boost_regex-mt-d)
+ set(BOOST_SYSTEM_LIBRARY
+ optimized boost_system-mt
+ debug boost_system-mt-d)
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized boost_filesystem-mt
+ debug boost_filesystem-mt-d)
+ set(BOOST_THREAD_LIBRARY
+ optimized boost_thread-mt
+ debug boost_thread-mt-d)
endif (WINDOWS)
endif (STANDALONE)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 9f05c4cff2..c32e357da3 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -254,6 +254,12 @@ elseif(LINUX)
libapr-1.so.0
libaprutil-1.so.0
libatk-1.0.so
+ libboost_program_options-mt.so.${BOOST_VERSION}.0
+ libboost_regex-mt.so.${BOOST_VERSION}.0
+ libboost_thread-mt.so.${BOOST_VERSION}.0
+ libboost_filesystem-mt.so.${BOOST_VERSION}.0
+ libboost_signals-mt.so.${BOOST_VERSION}.0
+ libboost_system-mt.so.${BOOST_VERSION}.0
libbreakpad_client.so.0
libcollada14dom.so
libcrypto.so.1.0.0
diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake
index c2ff095f62..f3fd008e49 100644
--- a/indra/cmake/GooglePerfTools.cmake
+++ b/indra/cmake/GooglePerfTools.cmake
@@ -3,7 +3,7 @@ include(Prebuilt)
# If you want to enable or disable TCMALLOC in viewer builds, this is the place.
# set ON or OFF as desired.
-set (USE_TCMALLOC ON)
+set (USE_TCMALLOC OFF)
if (STANDALONE)
include(FindGooglePerfTools)
diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake
index 6daef5eb83..6c9e88ff25 100644
--- a/indra/cmake/LLCommon.cmake
+++ b/indra/cmake/LLCommon.cmake
@@ -26,7 +26,7 @@ endif (LINUX)
add_definitions(${TCMALLOC_FLAG})
-set(LLCOMMON_LINK_SHARED OFF CACHE BOOL "Build the llcommon target as a shared library.")
+set(LLCOMMON_LINK_SHARED OFF CACHE BOOL "Build the llcommon target as a static library.")
if(LLCOMMON_LINK_SHARED)
add_definitions(-DLL_COMMON_LINK_SHARED=1)
endif(LLCOMMON_LINK_SHARED)
diff --git a/indra/cmake/LLCoreHttp.cmake b/indra/cmake/LLCoreHttp.cmake
new file mode 100644
index 0000000000..61e4b23d98
--- /dev/null
+++ b/indra/cmake/LLCoreHttp.cmake
@@ -0,0 +1,16 @@
+# -*- cmake -*-
+
+include(CARes)
+include(CURL)
+include(OpenSSL)
+include(Boost)
+
+set(LLCOREHTTP_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llcorehttp
+ ${CARES_INCLUDE_DIRS}
+ ${CURL_INCLUDE_DIRS}
+ ${OPENSSL_INCLUDE_DIRS}
+ ${BOOST_INCLUDE_DIRS}
+ )
+
+set(LLCOREHTTP_LIBRARIES llcorehttp)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index f15a2c2649..ab39cbb6be 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -15,10 +15,10 @@ if (WINDOWS)
optimized llprimitive
debug libcollada14dom22-d
optimized libcollada14dom22
- debug libboost_filesystem-vc100-mt-gd-1_45
- optimized libboost_filesystem-vc100-mt-1_45
- debug libboost_system-vc100-mt-gd-1_45
- optimized libboost_system-vc100-mt-1_45
+ debug libboost_filesystem-mt-gd
+ optimized libboost_filesystem-mt
+ debug libboost_system-mt-gd
+ optimized libboost_system-mt
)
else (WINDOWS)
set(LLPRIMITIVE_LIBRARIES
diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt
index e69de29bb2..0f6a8b8a1d 100644
--- a/indra/edit-me-to-trigger-new-build.txt
+++ b/indra/edit-me-to-trigger-new-build.txt
@@ -0,0 +1 @@
+Wed Nov 7 00:25:19 UTC 2012
diff --git a/indra/integration_tests/llimage_libtest/llimage_libtest.cpp b/indra/integration_tests/llimage_libtest/llimage_libtest.cpp
index 36c5b67826..034c816742 100644
--- a/indra/integration_tests/llimage_libtest/llimage_libtest.cpp
+++ b/indra/integration_tests/llimage_libtest/llimage_libtest.cpp
@@ -240,7 +240,7 @@ void store_input_file(std::list &input_filenames, const std::string
LLDirIterator iter(dir, name);
while (iter.next(next_name))
{
- std::string file_name = dir + gDirUtilp->getDirDelimiter() + next_name;
+ std::string file_name = gDirUtilp->add(dir, next_name);
input_filenames.push_back(file_name);
}
}
diff --git a/indra/integration_tests/llui_libtest/llui_libtest.cpp b/indra/integration_tests/llui_libtest/llui_libtest.cpp
index 217e26c3ca..38aa1bbeb2 100644
--- a/indra/integration_tests/llui_libtest/llui_libtest.cpp
+++ b/indra/integration_tests/llui_libtest/llui_libtest.cpp
@@ -107,12 +107,6 @@ public:
};
TestImageProvider gTestImageProvider;
-static std::string get_xui_dir()
-{
- std::string delim = gDirUtilp->getDirDelimiter();
- return gDirUtilp->getSkinBaseDir() + delim + "default" + delim + "xui" + delim;
-}
-
void init_llui()
{
// Font lookup needs directory support
@@ -122,13 +116,12 @@ void init_llui()
const char* newview_path = "../../../newview";
#endif
gDirUtilp->initAppDirs("SecondLife", newview_path);
- gDirUtilp->setSkinFolder("default");
+ gDirUtilp->setSkinFolder("default", "en");
// colors are no longer stored in a LLControlGroup file
LLUIColorTable::instance().loadFromSettings();
- std::string config_filename = gDirUtilp->getExpandedFilename(
- LL_PATH_APP_SETTINGS, "settings.xml");
+ std::string config_filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "settings.xml");
gSavedSettings.loadFromFile(config_filename);
// See LLAppViewer::init()
@@ -143,9 +136,7 @@ void init_llui()
const bool no_register_widgets = false;
LLWidgetReg::initClass( no_register_widgets );
-
- // Unclear if this is needed
- LLUI::setupPaths();
+
// Otherwise we get translation warnings when setting up floaters
// (tooltips for buttons)
std::set default_args;
@@ -157,7 +148,6 @@ void init_llui()
// otherwise it crashes.
LLFontGL::initClass(96.f, 1.f, 1.f,
gDirUtilp->getAppRODataDir(),
- LLUI::getXUIPaths(),
false ); // don't create gl textures
LLFloaterView::Params fvparams;
@@ -169,6 +159,14 @@ void init_llui()
gFloaterView = LLUICtrlFactory::create (fvparams);
}
+/*==========================================================================*|
+static std::string get_xui_dir()
+{
+ std::string delim = gDirUtilp->getDirDelimiter();
+ return gDirUtilp->getSkinBaseDir() + delim + "default" + delim + "xui" + delim;
+}
+
+// buildFromFile() no longer supports generate-output-LLXMLNode
void export_test_floaters()
{
// Convert all test floaters to new XML format
@@ -191,7 +189,7 @@ void export_test_floaters()
floater->buildFromFile( filename,
// FALSE, // don't open floater
output_node);
- std::string out_filename = xui_dir + filename;
+ std::string out_filename = gDirUtilp->add(xui_dir, filename);
std::string::size_type extension_pos = out_filename.rfind(".xml");
out_filename.resize(extension_pos);
out_filename += "_new.xml";
@@ -203,6 +201,7 @@ void export_test_floaters()
fclose(floater_file);
}
}
+|*==========================================================================*/
int main(int argc, char** argv)
{
@@ -211,7 +210,7 @@ int main(int argc, char** argv)
init_llui();
- export_test_floaters();
+// export_test_floaters();
return 0;
}
diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py
index bfcb259709..97cc31bba0 100644
--- a/indra/lib/python/indra/util/llmanifest.py
+++ b/indra/lib/python/indra/util/llmanifest.py
@@ -626,6 +626,23 @@ class LLManifest(object):
d = src_re.sub(d_template, s.replace('\\', '/'))
yield os.path.normpath(s), os.path.normpath(d)
+ def path2basename(self, path, file):
+ """
+ It is a common idiom to write:
+ self.path(os.path.join(somedir, somefile), somefile)
+
+ So instead you can write:
+ self.path2basename(somedir, somefile)
+
+ Note that this is NOT the same as:
+ self.path(os.path.join(somedir, somefile))
+
+ which is the same as:
+ temppath = os.path.join(somedir, somefile)
+ self.path(temppath, temppath)
+ """
+ return self.path(os.path.join(path, file), file)
+
def path(self, src, dst=None):
sys.stdout.write("Processing %s => %s ... " % (src, dst))
sys.stdout.flush()
@@ -671,6 +688,10 @@ class LLManifest(object):
print "%d files" % count
+ # Let caller check whether we processed as many files as expected. In
+ # particular, let caller notice 0.
+ return count
+
def do(self, *actions):
self.actions = actions
self.construct()
diff --git a/indra/linux_updater/linux_updater.cpp b/indra/linux_updater/linux_updater.cpp
index e3ee137897..86fa596aef 100644
--- a/indra/linux_updater/linux_updater.cpp
+++ b/indra/linux_updater/linux_updater.cpp
@@ -251,7 +251,7 @@ std::string next_image_filename(std::string& image_path, LLDirIterator& iter)
{
std::string image_filename;
iter.next(image_filename);
- return image_path + "/" + image_filename;
+ return gDirUtilp->add(image_path, image_filename);
}
void on_window_closed(GtkWidget *sender, GdkEvent* event, gpointer data)
diff --git a/indra/llappearance/lldriverparam.cpp b/indra/llappearance/lldriverparam.cpp
old mode 100755
new mode 100644
diff --git a/indra/llappearance/lldriverparam.h b/indra/llappearance/lldriverparam.h
index 30e71daad9..00f43156bb 100644
--- a/indra/llappearance/lldriverparam.h
+++ b/indra/llappearance/lldriverparam.h
@@ -85,6 +85,16 @@ public:
LLDriverParam(LLAvatarAppearance *appearance, LLWearable* wearable = NULL);
~LLDriverParam();
+ void* operator new(size_t size)
+ {
+ return ll_aligned_malloc_16(size);
+ }
+
+ void operator delete(void* ptr)
+ {
+ ll_aligned_free_16(ptr);
+ }
+
// Special: These functions are overridden by child classes
LLDriverParamInfo* getInfo() const { return (LLDriverParamInfo*)mInfo; }
// This sets mInfo and calls initialization functions
diff --git a/indra/llappearance/llpolymorph.cpp b/indra/llappearance/llpolymorph.cpp
index aa680894ff..f7c4a69186 100644
--- a/indra/llappearance/llpolymorph.cpp
+++ b/indra/llappearance/llpolymorph.cpp
@@ -74,9 +74,9 @@ LLPolyMorphData::LLPolyMorphData(const LLPolyMorphData &rhs) :
{
const S32 numVertices = mNumIndices;
- mCoords = new LLVector4a[numVertices];
- mNormals = new LLVector4a[numVertices];
- mBinormals = new LLVector4a[numVertices];
+ mCoords = static_cast(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a)));
+ mNormals = static_cast(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a)));
+ mBinormals = static_cast(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a)));
mTexCoords = new LLVector2[numVertices];
mVertexIndices = new U32[numVertices];
@@ -90,17 +90,12 @@ LLPolyMorphData::LLPolyMorphData(const LLPolyMorphData &rhs) :
}
}
-
//-----------------------------------------------------------------------------
// ~LLPolyMorphData()
//-----------------------------------------------------------------------------
LLPolyMorphData::~LLPolyMorphData()
{
- delete [] mVertexIndices;
- delete [] mCoords;
- delete [] mNormals;
- delete [] mBinormals;
- delete [] mTexCoords;
+ freeData();
}
//-----------------------------------------------------------------------------
@@ -119,12 +114,17 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
return FALSE;
}
+ //-------------------------------------------------------------------------
+ // free any existing data
+ //-------------------------------------------------------------------------
+ freeData();
+
//-------------------------------------------------------------------------
// allocate vertices
//-------------------------------------------------------------------------
- mCoords = new LLVector4a[numVertices];
- mNormals = new LLVector4a[numVertices];
- mBinormals = new LLVector4a[numVertices];
+ mCoords = static_cast(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a)));
+ mNormals = static_cast(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a)));
+ mBinormals = static_cast(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a)));
mTexCoords = new LLVector2[numVertices];
// Actually, we are allocating more space than we need for the skiplist
mVertexIndices = new U32[numVertices];
@@ -207,6 +207,42 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)
return TRUE;
}
+//-----------------------------------------------------------------------------
+// freeData()
+//-----------------------------------------------------------------------------
+void LLPolyMorphData::freeData()
+{
+ if (mCoords != NULL)
+ {
+ ll_aligned_free_16(mCoords);
+ mCoords = NULL;
+ }
+
+ if (mNormals != NULL)
+ {
+ ll_aligned_free_16(mNormals);
+ mNormals = NULL;
+ }
+
+ if (mBinormals != NULL)
+ {
+ ll_aligned_free_16(mBinormals);
+ mBinormals = NULL;
+ }
+
+ if (mTexCoords != NULL)
+ {
+ delete [] mTexCoords;
+ mTexCoords = NULL;
+ }
+
+ if (mVertexIndices != NULL)
+ {
+ delete [] mVertexIndices;
+ mVertexIndices = NULL;
+ }
+}
+
//-----------------------------------------------------------------------------
// LLPolyMorphTargetInfo()
//-----------------------------------------------------------------------------
diff --git a/indra/llappearance/llpolymorph.h b/indra/llappearance/llpolymorph.h
index d6cf9e52ca..ce76ec17ff 100644
--- a/indra/llappearance/llpolymorph.h
+++ b/indra/llappearance/llpolymorph.h
@@ -48,6 +48,16 @@ public:
~LLPolyMorphData();
LLPolyMorphData(const LLPolyMorphData &rhs);
+ void* operator new(size_t size)
+ {
+ return ll_aligned_malloc_16(size);
+ }
+
+ void operator delete(void* ptr)
+ {
+ ll_aligned_free_16(ptr);
+ }
+
BOOL loadBinary(LLFILE* fp, LLPolyMeshSharedData *mesh);
const std::string& getName() { return mName; }
@@ -67,6 +77,9 @@ public:
F32 mMaxDistortion; // maximum single vertex distortion in a given morph
LLVector4a mAvgDistortion; // average vertex distortion, to infer directionality of the morph
LLPolyMeshSharedData* mMesh;
+
+private:
+ void freeData();
};
//-----------------------------------------------------------------------------
diff --git a/indra/llappearance/llpolyskeletaldistortion.h b/indra/llappearance/llpolyskeletaldistortion.h
index 040cf841ea..b9c3c3628d 100644
--- a/indra/llappearance/llpolyskeletaldistortion.h
+++ b/indra/llappearance/llpolyskeletaldistortion.h
@@ -67,6 +67,7 @@ class LLPolySkeletalDistortionInfo : public LLViewerVisualParamInfo
{
friend class LLPolySkeletalDistortion;
public:
+
LLPolySkeletalDistortionInfo();
/*virtual*/ ~LLPolySkeletalDistortionInfo() {};
@@ -84,6 +85,16 @@ protected:
class LLPolySkeletalDistortion : public LLViewerVisualParam
{
public:
+ void* operator new(size_t size)
+ {
+ return ll_aligned_malloc_16(size);
+ }
+
+ void operator delete(void* ptr)
+ {
+ ll_aligned_free_16(ptr);
+ }
+
LLPolySkeletalDistortion(LLAvatarAppearance *avatarp);
~LLPolySkeletalDistortion();
diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp
old mode 100755
new mode 100644
diff --git a/indra/llappearance/lltexlayerparams.h b/indra/llappearance/lltexlayerparams.h
index 1974a4f7ac..ca1497ebf3 100644
--- a/indra/llappearance/lltexlayerparams.h
+++ b/indra/llappearance/lltexlayerparams.h
@@ -69,6 +69,16 @@ public:
/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable = NULL) const;
+ void* operator new(size_t size)
+ {
+ return ll_aligned_malloc_16(size);
+ }
+
+ void operator delete(void* ptr)
+ {
+ ll_aligned_free_16(ptr);
+ }
+
// LLVisualParam Virtual functions
///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
/*virtual*/ void apply( ESex avatar_sex ) {}
@@ -145,6 +155,16 @@ public:
LLTexLayerParamColor( LLAvatarAppearance* appearance );
/* virtual */ ~LLTexLayerParamColor();
+ void* operator new(size_t size)
+ {
+ return ll_aligned_malloc_16(size);
+ }
+
+ void operator delete(void* ptr)
+ {
+ ll_aligned_free_16(ptr);
+ }
+
/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable = NULL) const;
// LLVisualParam Virtual functions
diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp
index 72c0091d17..ef560cd7fc 100644
--- a/indra/llaudio/llaudioengine.cpp
+++ b/indra/llaudio/llaudioengine.cpp
@@ -1792,5 +1792,3 @@ bool LLAudioData::load()
mBufferp->mAudioDatap = this;
return true;
}
-
-
diff --git a/indra/llcharacter/lleditingmotion.cpp b/indra/llcharacter/lleditingmotion.cpp
index 66b3c2bd25..0d0b85ba60 100644
--- a/indra/llcharacter/lleditingmotion.cpp
+++ b/indra/llcharacter/lleditingmotion.cpp
@@ -214,8 +214,10 @@ BOOL LLEditingMotion::onUpdate(F32 time, U8* joint_mask)
target = target * target_dist;
if (!target.isFinite())
{
- llerrs << "Non finite target in editing motion with target distance of " << target_dist <<
+ // Don't error out here, set a fail-safe target vector
+ llwarns << "Non finite target in editing motion with target distance of " << target_dist <<
" and focus point " << focus_pt << llendl;
+ target.setVec(1.f, 1.f, 1.f);
}
mTarget.setPosition( target + mParentJoint.getPosition());
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index 36a8319189..66e2bc9095 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -116,6 +116,7 @@ set(llcommon_HEADER_FILES
bitpack.h
ctype_workaround.h
doublelinkedlist.h
+ fix_macros.h
imageids.h
indra_constants.h
linden_common.h
diff --git a/indra/llcommon/fix_macros.h b/indra/llcommon/fix_macros.h
new file mode 100644
index 0000000000..ef959decff
--- /dev/null
+++ b/indra/llcommon/fix_macros.h
@@ -0,0 +1,25 @@
+/**
+ * @file fix_macros.h
+ * @author Nat Goodspeed
+ * @date 2012-11-16
+ * @brief The Mac system headers seem to #define macros with obnoxiously
+ * generic names, preventing any library from using those names. We've
+ * had to fix these in so many places that it's worth making a header
+ * file to handle it.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Copyright (c) 2012, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+// DON'T use an #include guard: every time we encounter this header, #undef
+// these macros all over again.
+
+// who injects MACROS with such generic names?! Grr.
+#ifdef equivalent
+#undef equivalent
+#endif
+
+#ifdef check
+#undef check
+#endif
diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp
index ed192a9975..ca258900c7 100644
--- a/indra/llcommon/llapp.cpp
+++ b/indra/llcommon/llapp.cpp
@@ -289,6 +289,7 @@ void LLApp::setupErrorHandling()
// occasionally checks to see if the app is in an error state, and sees if it needs to be run.
#if LL_WINDOWS
+#if LL_SEND_CRASH_REPORTS
// This sets a callback to handle w32 signals to the console window.
// The viewer shouldn't be affected, sicne its a windowed app.
SetConsoleCtrlHandler( (PHANDLER_ROUTINE) ConsoleCtrlHandler, TRUE);
@@ -300,7 +301,7 @@ void LLApp::setupErrorHandling()
mExceptionHandler = new google_breakpad::ExceptionHandler(
L"C:\\Temp\\", 0, windows_post_minidump_callback, 0, google_breakpad::ExceptionHandler::HANDLER_ALL);
}
-
+#endif
#else
//
// Start up signal handling.
diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h
index af33ce666f..034546c3f3 100644
--- a/indra/llcommon/llapr.h
+++ b/indra/llcommon/llapr.h
@@ -168,7 +168,7 @@ public:
void operator -=(Type x) { apr_atomic_sub32(&mData, apr_uint32_t(x)); }
void operator +=(Type x) { apr_atomic_add32(&mData, apr_uint32_t(x)); }
Type operator ++(int) { return apr_atomic_inc32(&mData); } // Type++
- Type operator --(int) { return apr_atomic_dec32(&mData); } // Type--
+ Type operator --(int) { return apr_atomic_dec32(&mData); } // approximately --Type (0 if final is 0, non-zero otherwise)
private:
apr_uint32_t mData;
diff --git a/indra/llcommon/llmemory.cpp b/indra/llcommon/llmemory.cpp
index afaf366668..70ad10ad55 100644
--- a/indra/llcommon/llmemory.cpp
+++ b/indra/llcommon/llmemory.cpp
@@ -252,21 +252,6 @@ U32 LLMemory::getAllocatedMemKB()
return sAllocatedMemInKB ;
}
-void* ll_allocate (size_t size)
-{
- if (size == 0)
- {
- llwarns << "Null allocation" << llendl;
- }
- void *p = malloc(size);
- if (p == NULL)
- {
- LLMemory::freeReserve();
- llerrs << "Out of memory Error" << llendl;
- }
- return p;
-}
-
//----------------------------------------------------------------------------
#if defined(LL_WINDOWS)
@@ -1365,7 +1350,7 @@ char* LLPrivateMemoryPool::allocate(U32 size)
//if the asked size larger than MAX_BLOCK_SIZE, fetch from heap directly, the pool does not manage it
if(size >= CHUNK_SIZE)
{
- return (char*)malloc(size) ;
+ return (char*)ll_aligned_malloc_16(size) ;
}
char* p = NULL ;
@@ -1422,7 +1407,7 @@ char* LLPrivateMemoryPool::allocate(U32 size)
to_log = false ;
}
- return (char*)malloc(size) ;
+ return (char*)ll_aligned_malloc_16(size) ;
}
return p ;
@@ -1441,7 +1426,7 @@ void LLPrivateMemoryPool::freeMem(void* addr)
if(!chunk)
{
- free(addr) ; //release from heap
+ ll_aligned_free_16(addr) ; //release from heap
}
else
{
@@ -1565,7 +1550,7 @@ LLPrivateMemoryPool::LLMemoryChunk* LLPrivateMemoryPool::addChunk(S32 chunk_inde
mReservedPoolSize += preferred_size + overhead ;
- char* buffer = (char*)malloc(preferred_size + overhead) ;
+ char* buffer = (char*)ll_aligned_malloc_16(preferred_size + overhead) ;
if(!buffer)
{
return NULL ;
@@ -1633,7 +1618,7 @@ void LLPrivateMemoryPool::removeChunk(LLMemoryChunk* chunk)
mReservedPoolSize -= chunk->getBufferSize() ;
//release memory
- free(chunk->getBuffer()) ;
+ ll_aligned_free_16(chunk->getBuffer()) ;
}
U16 LLPrivateMemoryPool::findHashKey(const char* addr)
@@ -1977,7 +1962,7 @@ char* LLPrivateMemoryPoolManager::allocate(LLPrivateMemoryPool* poolp, U32 size,
if(!poolp)
{
- p = (char*)malloc(size) ;
+ p = (char*)ll_aligned_malloc_16(size) ;
}
else
{
@@ -2006,7 +1991,7 @@ char* LLPrivateMemoryPoolManager::allocate(LLPrivateMemoryPool* poolp, U32 size)
}
else
{
- return (char*)malloc(size) ;
+ return (char*)ll_aligned_malloc_16(size) ;
}
}
#endif
@@ -2031,7 +2016,7 @@ void LLPrivateMemoryPoolManager::freeMem(LLPrivateMemoryPool* poolp, void* addr
{
if(!sPrivatePoolEnabled)
{
- free(addr) ; //private pool is disabled.
+ ll_aligned_free_16(addr) ; //private pool is disabled.
}
else if(!sInstance) //the private memory manager is destroyed, try the dangling list
{
diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h
index 9dd776ff57..10013e0f92 100644
--- a/indra/llcommon/llmemory.h
+++ b/indra/llcommon/llmemory.h
@@ -27,6 +27,13 @@
#define LLMEMORY_H
#include "llmemtype.h"
+
+#if LL_WINDOWS && LL_DEBUG
+#define LL_CHECK_MEMORY llassert(_CrtCheckMemory());
+#else
+#define LL_CHECK_MEMORY
+#endif
+
inline void* ll_aligned_malloc( size_t size, int align )
{
void* mem = malloc( size + (align - 1) + sizeof(void*) );
@@ -58,17 +65,6 @@ inline void* ll_aligned_malloc_16(size_t size) // returned hunk MUST be freed wi
#endif
}
-inline void* ll_aligned_realloc_16(void* ptr, size_t size) // returned hunk MUST be freed with ll_aligned_free_16().
-{
-#if defined(LL_WINDOWS)
- return _aligned_realloc(ptr, size, 16);
-#elif defined(LL_DARWIN)
- return realloc(ptr,size); // default osx malloc is 16 byte aligned.
-#else
- return realloc(ptr,size); // FIXME not guaranteed to be aligned.
-#endif
-}
-
inline void ll_aligned_free_16(void *p)
{
#if defined(LL_WINDOWS)
@@ -79,10 +75,33 @@ inline void ll_aligned_free_16(void *p)
free(p); // posix_memalign() is compatible with heap deallocator
#endif
}
+
+inline void* ll_aligned_realloc_16(void* ptr, size_t size, size_t old_size) // returned hunk MUST be freed with ll_aligned_free_16().
+{
+#if defined(LL_WINDOWS)
+ return _aligned_realloc(ptr, size, 16);
+#elif defined(LL_DARWIN)
+ return realloc(ptr,size); // default osx malloc is 16 byte aligned.
+#else
+ //FIXME: memcpy is SLOW
+ void* ret = ll_aligned_malloc_16(size);
+ if (ptr)
+ {
+ if (ret)
+ {
+ // Only copy the size of the smallest memory block to avoid memory corruption.
+ memcpy(ret, ptr, llmin(old_size, size));
+ }
+ ll_aligned_free_16(ptr);
+ }
+ return ret;
+#endif
+}
+
#else // USE_TCMALLOC
// ll_aligned_foo_16 are not needed with tcmalloc
#define ll_aligned_malloc_16 malloc
-#define ll_aligned_realloc_16 realloc
+#define ll_aligned_realloc_16(a,b,c) realloc(a,b)
#define ll_aligned_free_16 free
#endif // USE_TCMALLOC
diff --git a/indra/llcommon/llqueuedthread.cpp b/indra/llcommon/llqueuedthread.cpp
index 1738c16dea..abf47a0f57 100644
--- a/indra/llcommon/llqueuedthread.cpp
+++ b/indra/llcommon/llqueuedthread.cpp
@@ -134,8 +134,8 @@ S32 LLQueuedThread::updateQueue(F32 max_time_ms)
pending = getPending();
if(pending > 0)
{
- unpause();
- }
+ unpause();
+ }
}
else
{
diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp
index fa0eb9f72c..0c32679744 100644
--- a/indra/llcommon/llstring.cpp
+++ b/indra/llcommon/llstring.cpp
@@ -47,7 +47,8 @@ std::string ll_safe_string(const char* in)
std::string ll_safe_string(const char* in, S32 maxlen)
{
- if(in) return std::string(in, maxlen);
+ if(in && maxlen > 0 ) return std::string(in, maxlen);
+
return std::string();
}
diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp
index 6073bcd0a6..c96f2191f3 100644
--- a/indra/llcommon/llsys.cpp
+++ b/indra/llcommon/llsys.cpp
@@ -944,13 +944,15 @@ LLSD LLMemoryInfo::loadStatsMap()
state.dwLength = sizeof(state);
GlobalMemoryStatusEx(&state);
- stats.add("Percent Memory use", state.dwMemoryLoad);
- stats.add("Total Physical KB", state.ullTotalPhys/1024);
- stats.add("Avail Physical KB", state.ullAvailPhys/1024);
- stats.add("Total page KB", state.ullTotalPageFile/1024);
- stats.add("Avail page KB", state.ullAvailPageFile/1024);
- stats.add("Total Virtual KB", state.ullTotalVirtual/1024);
- stats.add("Avail Virtual KB", state.ullAvailVirtual/1024);
+ DWORDLONG div = 1024;
+
+ stats.add("Percent Memory use", state.dwMemoryLoad/div);
+ stats.add("Total Physical KB", state.ullTotalPhys/div);
+ stats.add("Avail Physical KB", state.ullAvailPhys/div);
+ stats.add("Total page KB", state.ullTotalPageFile/div);
+ stats.add("Avail page KB", state.ullAvailPageFile/div);
+ stats.add("Total Virtual KB", state.ullTotalVirtual/div);
+ stats.add("Avail Virtual KB", state.ullAvailVirtual/div);
PERFORMANCE_INFORMATION perf;
perf.cb = sizeof(perf);
@@ -982,15 +984,15 @@ LLSD LLMemoryInfo::loadStatsMap()
GetProcessMemoryInfo(GetCurrentProcess(), PPROCESS_MEMORY_COUNTERS(&pmem), sizeof(pmem));
stats.add("Page Fault Count", pmem.PageFaultCount);
- stats.add("PeakWorkingSetSize KB", pmem.PeakWorkingSetSize/1024);
- stats.add("WorkingSetSize KB", pmem.WorkingSetSize/1024);
- stats.add("QutaPeakPagedPoolUsage KB", pmem.QuotaPeakPagedPoolUsage/1024);
- stats.add("QuotaPagedPoolUsage KB", pmem.QuotaPagedPoolUsage/1024);
- stats.add("QuotaPeakNonPagedPoolUsage KB", pmem.QuotaPeakNonPagedPoolUsage/1024);
- stats.add("QuotaNonPagedPoolUsage KB", pmem.QuotaNonPagedPoolUsage/1024);
- stats.add("PagefileUsage KB", pmem.PagefileUsage/1024);
- stats.add("PeakPagefileUsage KB", pmem.PeakPagefileUsage/1024);
- stats.add("PrivateUsage KB", pmem.PrivateUsage/1024);
+ stats.add("PeakWorkingSetSize KB", pmem.PeakWorkingSetSize/div);
+ stats.add("WorkingSetSize KB", pmem.WorkingSetSize/div);
+ stats.add("QutaPeakPagedPoolUsage KB", pmem.QuotaPeakPagedPoolUsage/div);
+ stats.add("QuotaPagedPoolUsage KB", pmem.QuotaPagedPoolUsage/div);
+ stats.add("QuotaPeakNonPagedPoolUsage KB", pmem.QuotaPeakNonPagedPoolUsage/div);
+ stats.add("QuotaNonPagedPoolUsage KB", pmem.QuotaNonPagedPoolUsage/div);
+ stats.add("PagefileUsage KB", pmem.PagefileUsage/div);
+ stats.add("PeakPagefileUsage KB", pmem.PeakPagefileUsage/div);
+ stats.add("PrivateUsage KB", pmem.PrivateUsage/div);
#elif LL_DARWIN
diff --git a/indra/llcommon/llthread.cpp b/indra/llcommon/llthread.cpp
index a6ad6b125c..1d56a52c32 100644
--- a/indra/llcommon/llthread.cpp
+++ b/indra/llcommon/llthread.cpp
@@ -71,6 +71,13 @@ LL_COMMON_API void assert_main_thread()
}
}
+void LLThread::registerThreadID()
+{
+#if !LL_DARWIN
+ sThreadID = ++sIDIter;
+#endif
+}
+
//
// Handed to the APR thread creation function
//
@@ -114,7 +121,7 @@ LLThread::LLThread(const std::string& name, apr_pool_t *poolp) :
apr_pool_create(&mAPRPoolp, NULL); // Create a subpool for this thread
}
mRunCondition = new LLCondition(mAPRPoolp);
-
+ mDataLock = new LLMutex(mAPRPoolp);
mLocalAPRFilePoolp = NULL ;
}
@@ -173,7 +180,10 @@ void LLThread::shutdown()
}
delete mRunCondition;
- mRunCondition = 0;
+ mRunCondition = NULL;
+
+ delete mDataLock;
+ mDataLock = NULL;
if (mIsLocalPool && mAPRPoolp)
{
@@ -242,28 +252,30 @@ bool LLThread::runCondition(void)
// Stop thread execution if requested until unpaused.
void LLThread::checkPause()
{
- mRunCondition->lock();
+ mDataLock->lock();
// This is in a while loop because the pthread API allows for spurious wakeups.
while(shouldSleep())
{
+ mDataLock->unlock();
mRunCondition->wait(); // unlocks mRunCondition
+ mDataLock->lock();
// mRunCondition is locked when the thread wakes up
}
- mRunCondition->unlock();
+ mDataLock->unlock();
}
//============================================================================
void LLThread::setQuitting()
{
- mRunCondition->lock();
+ mDataLock->lock();
if (mStatus == RUNNING)
{
mStatus = QUITTING;
}
- mRunCondition->unlock();
+ mDataLock->unlock();
wake();
}
@@ -285,12 +297,12 @@ void LLThread::yield()
void LLThread::wake()
{
- mRunCondition->lock();
+ mDataLock->lock();
if(!shouldSleep())
{
mRunCondition->signal();
}
- mRunCondition->unlock();
+ mDataLock->unlock();
}
void LLThread::wakeLocked()
@@ -481,6 +493,19 @@ LLThreadSafeRefCount::LLThreadSafeRefCount() :
{
}
+LLThreadSafeRefCount::LLThreadSafeRefCount(const LLThreadSafeRefCount& src)
+{
+ if (sMutex)
+ {
+ sMutex->lock();
+ }
+ mRef = 0;
+ if (sMutex)
+ {
+ sMutex->unlock();
+ }
+}
+
LLThreadSafeRefCount::~LLThreadSafeRefCount()
{
if (mRef != 0)
@@ -489,6 +514,7 @@ LLThreadSafeRefCount::~LLThreadSafeRefCount()
}
}
+
//============================================================================
LLResponder::~LLResponder()
diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h
index b52e70ab2e..5c8bbca2ca 100644
--- a/indra/llcommon/llthread.h
+++ b/indra/llcommon/llthread.h
@@ -88,6 +88,11 @@ public:
U32 getID() const { return mID; }
+ // Called by threads *not* created via LLThread to register some
+ // internal state used by LLMutex. You must call this once early
+ // in the running thread to prevent collisions with the main thread.
+ static void registerThreadID();
+
private:
BOOL mPaused;
@@ -97,6 +102,7 @@ private:
protected:
std::string mName;
LLCondition* mRunCondition;
+ LLMutex* mDataLock;
apr_thread_t *mAPRThreadp;
apr_pool_t *mAPRPoolp;
@@ -122,15 +128,15 @@ protected:
inline void unlockData();
// This is the predicate that decides whether the thread should sleep.
- // It should only be called with mRunCondition locked, since the virtual runCondition() function may need to access
+ // It should only be called with mDataLock locked, since the virtual runCondition() function may need to access
// data structures that are thread-unsafe.
bool shouldSleep(void) { return (mStatus == RUNNING) && (isPaused() || (!runCondition())); }
// To avoid spurious signals (and the associated context switches) when the condition may or may not have changed, you can do the following:
- // mRunCondition->lock();
+ // mDataLock->lock();
// if(!shouldSleep())
// mRunCondition->signal();
- // mRunCondition->unlock();
+ // mDataLock->unlock();
};
//============================================================================
@@ -205,12 +211,12 @@ private:
void LLThread::lockData()
{
- mRunCondition->lock();
+ mDataLock->lock();
}
void LLThread::unlockData()
{
- mRunCondition->unlock();
+ mDataLock->unlock();
}
@@ -227,15 +233,27 @@ public:
private:
static LLMutex* sMutex;
-private:
- LLThreadSafeRefCount(const LLThreadSafeRefCount&); // not implemented
- LLThreadSafeRefCount&operator=(const LLThreadSafeRefCount&); // not implemented
-
protected:
virtual ~LLThreadSafeRefCount(); // use unref()
public:
LLThreadSafeRefCount();
+ LLThreadSafeRefCount(const LLThreadSafeRefCount&);
+ LLThreadSafeRefCount& operator=(const LLThreadSafeRefCount& ref)
+ {
+ if (sMutex)
+ {
+ sMutex->lock();
+ }
+ mRef = 0;
+ if (sMutex)
+ {
+ sMutex->unlock();
+ }
+ return *this;
+ }
+
+
void ref()
{
diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp
index b39ea0c6f2..21456a599b 100644
--- a/indra/llcommon/lluri.cpp
+++ b/indra/llcommon/lluri.cpp
@@ -37,6 +37,8 @@
// system includes
#include
+#include
+#include
void encode_character(std::ostream& ostr, std::string::value_type val)
{
@@ -317,7 +319,7 @@ LLURI LLURI::buildHTTP(const std::string& prefix,
const LLSD& path)
{
LLURI result;
-
+
// TODO: deal with '/' '?' '#' in host_port
if (prefix.find("://") != prefix.npos)
{
@@ -342,15 +344,41 @@ LLURI LLURI::buildHTTP(const std::string& prefix,
result.mEscapedPath += "/" + escapePathComponent(it->asString());
}
}
- else if(path.isString())
+ else if (path.isString())
{
- result.mEscapedPath += "/" + escapePathComponent(path.asString());
+ std::string pathstr(path);
+ // Trailing slash is significant in HTTP land. If caller specified,
+ // make a point of preserving.
+ std::string last_slash;
+ std::string::size_type len(pathstr.length());
+ if (len && pathstr[len-1] == '/')
+ {
+ last_slash = "/";
+ }
+
+ // Escape every individual path component, recombining with slashes.
+ for (boost::split_iterator
+ ti(pathstr, boost::first_finder("/")), tend;
+ ti != tend; ++ti)
+ {
+ // Eliminate a leading slash or duplicate slashes anywhere. (Extra
+ // slashes show up here as empty components.) This test also
+ // eliminates a trailing slash, hence last_slash above.
+ if (! ti->empty())
+ {
+ result.mEscapedPath
+ += "/" + escapePathComponent(std::string(ti->begin(), ti->end()));
+ }
+ }
+
+ // Reinstate trailing slash, if any.
+ result.mEscapedPath += last_slash;
}
else if(path.isUndefined())
{
// do nothing
}
- else
+ else
{
llwarns << "Valid path arguments to buildHTTP are array, string, or undef, you passed type"
<< path.type() << llendl;
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index 295fed3c4b..a254fa4467 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -29,7 +29,7 @@
const S32 LL_VERSION_MAJOR = 3;
const S32 LL_VERSION_MINOR = 4;
-const S32 LL_VERSION_PATCH = 1;
+const S32 LL_VERSION_PATCH = 4;
const S32 LL_VERSION_BUILD = 264760;
const char * const LL_CHANNEL = "Second Life Developer";
diff --git a/indra/llcommon/tests/bitpack_test.cpp b/indra/llcommon/tests/bitpack_test.cpp
index afc0c18cd0..49cae16400 100644
--- a/indra/llcommon/tests/bitpack_test.cpp
+++ b/indra/llcommon/tests/bitpack_test.cpp
@@ -94,6 +94,7 @@ namespace tut
ensure("bitPack: individual unpack: 5", unpackbuffer[0] == (U8) str[5]);
bitunpack.bitUnpack(unpackbuffer, 8*4); // Life
ensure_memory_matches("bitPack: 4 bytes unpack:", unpackbuffer, 4, str+6, 4);
+ ensure("keep compiler quiet", unpack_bufsize == unpack_bufsize);
}
// U32 packing
diff --git a/indra/llcommon/tests/lluri_test.cpp b/indra/llcommon/tests/lluri_test.cpp
index f6d4221256..4c64f15ca7 100644
--- a/indra/llcommon/tests/lluri_test.cpp
+++ b/indra/llcommon/tests/lluri_test.cpp
@@ -58,12 +58,12 @@ namespace tut
ensure_equals("escape/unescape escaped", uri_esc_2, uri_esc_1);
}
};
-
+
typedef test_group URITestGroup;
typedef URITestGroup::object URITestObject;
URITestGroup uriTestGroup("LLURI");
-
+
template<> template<>
void URITestObject::test<1>()
{
@@ -89,14 +89,14 @@ namespace tut
template<> template<>
void URITestObject::test<2>()
{
- // empty string
+ set_test_name("empty string");
checkParts(LLURI(""), "", "", "", "");
}
-
+
template<> template<>
void URITestObject::test<3>()
{
- // no scheme
+ set_test_name("no scheme");
checkParts(LLURI("foo"), "", "foo", "", "");
checkParts(LLURI("foo%3A"), "", "foo:", "", "");
}
@@ -104,7 +104,7 @@ namespace tut
template<> template<>
void URITestObject::test<4>()
{
- // scheme w/o paths
+ set_test_name("scheme w/o paths");
checkParts(LLURI("mailto:zero@ll.com"),
"mailto", "zero@ll.com", "", "");
checkParts(LLURI("silly://abc/def?foo"),
@@ -114,16 +114,16 @@ namespace tut
template<> template<>
void URITestObject::test<5>()
{
- // authority section
+ set_test_name("authority section");
checkParts(LLURI("http:///"),
"http", "///", "", "/");
-
+
checkParts(LLURI("http://abc"),
"http", "//abc", "abc", "");
-
+
checkParts(LLURI("http://a%2Fb/cd"),
"http", "//a/b/cd", "a/b", "/cd");
-
+
checkParts(LLURI("http://host?"),
"http", "//host?", "host", "");
}
@@ -131,13 +131,13 @@ namespace tut
template<> template<>
void URITestObject::test<6>()
{
- // path section
+ set_test_name("path section");
checkParts(LLURI("http://host/a/b/"),
"http", "//host/a/b/", "host", "/a/b/");
-
+
checkParts(LLURI("http://host/a%3Fb/"),
"http", "//host/a?b/", "host", "/a?b/");
-
+
checkParts(LLURI("http://host/a:b/"),
"http", "//host/a:b/", "host", "/a:b/");
}
@@ -145,16 +145,16 @@ namespace tut
template<> template<>
void URITestObject::test<7>()
{
- // query string
+ set_test_name("query string");
checkParts(LLURI("http://host/?"),
"http", "//host/?", "host", "/", "");
-
+
checkParts(LLURI("http://host/?x"),
"http", "//host/?x", "host", "/", "x");
-
+
checkParts(LLURI("http://host/??"),
"http", "//host/??", "host", "/", "?");
-
+
checkParts(LLURI("http://host/?%3F"),
"http", "//host/??", "host", "/", "?");
}
@@ -167,19 +167,44 @@ namespace tut
path.append("123");
checkParts(LLURI::buildHTTP("host", path),
"http", "//host/x/123", "host", "/x/123");
-
+
LLSD query;
query["123"] = "12";
query["abcd"] = "abc";
checkParts(LLURI::buildHTTP("host", path, query),
"http", "//host/x/123?123=12&abcd=abc",
"host", "/x/123", "123=12&abcd=abc");
+
+ ensure_equals(LLURI::buildHTTP("host", "").asString(),
+ "http://host");
+ ensure_equals(LLURI::buildHTTP("host", "/").asString(),
+ "http://host/");
+ ensure_equals(LLURI::buildHTTP("host", "//").asString(),
+ "http://host/");
+ ensure_equals(LLURI::buildHTTP("host", "dir name").asString(),
+ "http://host/dir%20name");
+ ensure_equals(LLURI::buildHTTP("host", "dir name/").asString(),
+ "http://host/dir%20name/");
+ ensure_equals(LLURI::buildHTTP("host", "/dir name").asString(),
+ "http://host/dir%20name");
+ ensure_equals(LLURI::buildHTTP("host", "/dir name/").asString(),
+ "http://host/dir%20name/");
+ ensure_equals(LLURI::buildHTTP("host", "dir name/subdir name").asString(),
+ "http://host/dir%20name/subdir%20name");
+ ensure_equals(LLURI::buildHTTP("host", "dir name/subdir name/").asString(),
+ "http://host/dir%20name/subdir%20name/");
+ ensure_equals(LLURI::buildHTTP("host", "/dir name/subdir name").asString(),
+ "http://host/dir%20name/subdir%20name");
+ ensure_equals(LLURI::buildHTTP("host", "/dir name/subdir name/").asString(),
+ "http://host/dir%20name/subdir%20name/");
+ ensure_equals(LLURI::buildHTTP("host", "//dir name//subdir name//").asString(),
+ "http://host/dir%20name/subdir%20name/");
}
template<> template<>
void URITestObject::test<9>()
{
- // test unescaped path components
+ set_test_name("test unescaped path components");
LLSD path;
path.append("x@*//*$&^");
path.append("123");
@@ -190,7 +215,7 @@ namespace tut
template<> template<>
void URITestObject::test<10>()
{
- // test unescaped query components
+ set_test_name("test unescaped query components");
LLSD path;
path.append("x");
path.append("123");
@@ -205,7 +230,7 @@ namespace tut
template<> template<>
void URITestObject::test<11>()
{
- // test unescaped host components
+ set_test_name("test unescaped host components");
LLSD path;
path.append("x");
path.append("123");
@@ -216,16 +241,16 @@ namespace tut
"http", "//hi123*33--}{:portstuffs/x/123?123=12&abcd=abc",
"hi123*33--}{:portstuffs", "/x/123", "123=12&abcd=abc");
}
-
+
template<> template<>
void URITestObject::test<12>()
{
- // test funky host_port values that are actually prefixes
-
+ set_test_name("test funky host_port values that are actually prefixes");
+
checkParts(LLURI::buildHTTP("http://example.com:8080", LLSD()),
"http", "//example.com:8080",
"example.com:8080", "");
-
+
checkParts(LLURI::buildHTTP("http://example.com:8080/", LLSD()),
"http", "//example.com:8080/",
"example.com:8080", "/");
@@ -242,7 +267,7 @@ namespace tut
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
"0123456789"
"-._~";
- // test escape
+ set_test_name("test escape");
ensure_equals("escaping", LLURI::escape("abcdefg", "abcdef"), "abcdef%67");
ensure_equals("escaping", LLURI::escape("|/&\\+-_!@", ""), "%7C%2F%26%5C%2B%2D%5F%21%40");
ensure_equals("escaping as query variable",
@@ -259,13 +284,12 @@ namespace tut
cedilla.push_back( (char)0xA7 );
ensure_equals("escape UTF8", LLURI::escape( cedilla, unreserved), "%C3%A7");
}
-
+
template<> template<>
void URITestObject::test<14>()
{
- // make sure escape and unescape of empty strings return empty
- // strings.
+ set_test_name("make sure escape and unescape of empty strings return empty strings.");
std::string uri_esc(LLURI::escape(""));
ensure("escape string empty", uri_esc.empty());
std::string uri_raw(LLURI::unescape(""));
@@ -275,7 +299,7 @@ namespace tut
template<> template<>
void URITestObject::test<15>()
{
- // do some round-trip tests
+ set_test_name("do some round-trip tests");
escapeRoundTrip("http://secondlife.com");
escapeRoundTrip("http://secondlife.com/url with spaces");
escapeRoundTrip("http://bad[domain]name.com/");
@@ -286,7 +310,7 @@ namespace tut
template<> template<>
void URITestObject::test<16>()
{
- // Test the default escaping
+ set_test_name("Test the default escaping");
// yes -- this mangles the url. This is expected behavior
std::string simple("http://secondlife.com");
ensure_equals(
@@ -302,7 +326,7 @@ namespace tut
template<> template<>
void URITestObject::test<17>()
{
- // do some round-trip tests with very long strings.
+ set_test_name("do some round-trip tests with very long strings.");
escapeRoundTrip("Welcome to Second Life.We hope you'll have a richly rewarding experience, filled with creativity, self expression and fun.The goals of the Community Standards are simple: treat each other with respect and without harassment, adhere to local standards as indicated by simulator ratings, and refrain from any hate activity which slurs a real-world individual or real-world community. Behavioral Guidelines - The Big Six");
escapeRoundTrip(
"'asset_data':b(12100){'task_id':ucc706f2d-0b68-68f8-11a4-f1043ff35ca0}\n{\n\tname\tObject|\n\tpermissions 0\n\t{\n\t\tbase_mask\t7fffffff\n\t\towner_mask\t7fffffff\n\t\tgroup_mask\t00000000\n\t\teveryone_mask\t00000000\n\t\tnext_owner_mask\t7fffffff\n\t\tcreator_id\t13fd9595-a47b-4d64-a5fb-6da645f038e0\n\t\towner_id\t3c115e51-04f4-523c-9fa6-98aff1034730\n\t\tlast_owner_id\t3c115e51-04f4-523c-9fa6-98aff1034730\n\t\tgroup_id\t00000000-0000-0000-0000-000000000000\n\t}\n\tlocal_id\t217444921\n\ttotal_crc\t323\n\ttype\t2\n\ttask_valid\t2\n\ttravel_access\t13\n\tdisplayopts\t2\n\tdisplaytype\tv\n\tpos\t-0.368634403\t0.00781063363\t-0.569040775\n\toldpos\t150.117996\t25.8658009\t8.19664001\n\trotation\t-0.06293071806430816650390625\t-0.6995697021484375\t-0.7002241611480712890625\t0.1277817934751510620117188\n\tchildpos\t-0.00499999989\t-0.0359999985\t0.307999998\n\tchildrot\t-0.515492737293243408203125\t-0.46601200103759765625\t0.529055416584014892578125\t0.4870323240756988525390625\n\tscale"
@@ -322,7 +346,7 @@ namespace tut
"D STRING RW SV 20f36c3a-b44b-9bc7-87f3-018bfdfc8cda\n\tscratchpad\t0\n\t{\n\t\n\t}\n\tsale_info\t0\n\t{\n\t\tsale_type\tnot\n\t\tsale_price\t10\n\t}\n\torig_asset_id\t8747acbc-d391-1e59-69f1-41d06830e6c0\n\torig_item_id\t20f36c3a-b44b-9bc7-87f3-018bfdfc8cda\n\tfrom_task_id\t3c115e51-04f4-523c-9fa6-98aff1034730\n\tcorrect_family_id\t00000000-0000-0000-0000-000000000000\n\thas_rezzed\t0\n\tpre_link_base_mask\t7fffffff\n\tlinked \tlinked\n\tdefault_pay_price\t-2\t1\t5\t10\t20\n}\n");
}
-
+
template<> template<>
void URITestObject::test<18>()
{
@@ -335,7 +359,7 @@ namespace tut
ensure_equals("pathmap", u.pathArray()[1].asString(), "login");
ensure_equals("query", u.query(), "first_name=Testert4&last_name=Tester&web_login_key=test");
ensure_equals("query map element", u.queryMap()["last_name"].asString(), "Tester");
-
+
u = LLURI("secondlife://Da Boom/128/128/128");
// if secondlife is the scheme, LLURI should parse /128/128/128 as path, with Da Boom as authority
ensure_equals("scheme", u.scheme(), "secondlife");
@@ -350,7 +374,7 @@ namespace tut
template<> template<>
void URITestObject::test<19>()
{
- // Parse about: schemes
+ set_test_name("Parse about: schemes");
LLURI u("about:blank?redirect-http-hack=secondlife%3A%2F%2F%2Fapp%2Flogin%3Ffirst_name%3DCallum%26last_name%3DLinden%26location%3Dspecify%26grid%3Dvaak%26region%3D%2FMorris%2F128%2F128%26web_login_key%3Defaa4795-c2aa-4c58-8966-763c27931e78");
ensure_equals("scheme", u.scheme(), "about");
ensure_equals("authority", u.authority(), "");
diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt
new file mode 100644
index 0000000000..82fb3f0d4e
--- /dev/null
+++ b/indra/llcorehttp/CMakeLists.txt
@@ -0,0 +1,186 @@
+# -*- cmake -*-
+
+project(llcorehttp)
+
+include(00-Common)
+include(GoogleMock)
+include(CURL)
+include(CARes)
+include(OpenSSL)
+include(ZLIB)
+include(LLCoreHttp)
+include(LLAddBuildTest)
+include(LLMessage)
+include(LLCommon)
+include(Tut)
+
+include_directories (${CMAKE_CURRENT_SOURCE_DIR})
+
+include_directories(
+ ${LLMESSAGE_INCLUDE_DIRS}
+ ${LLCOMMON_INCLUDE_DIRS}
+ ${LLCOREHTTP_INCLUDE_DIRS}
+ )
+
+set(llcorehttp_SOURCE_FILES
+ bufferarray.cpp
+ bufferstream.cpp
+ httpcommon.cpp
+ httpheaders.cpp
+ httpoptions.cpp
+ httprequest.cpp
+ httpresponse.cpp
+ _httplibcurl.cpp
+ _httpopcancel.cpp
+ _httpoperation.cpp
+ _httpoprequest.cpp
+ _httpopsetget.cpp
+ _httpopsetpriority.cpp
+ _httppolicy.cpp
+ _httppolicyclass.cpp
+ _httppolicyglobal.cpp
+ _httpreplyqueue.cpp
+ _httprequestqueue.cpp
+ _httpservice.cpp
+ _refcounted.cpp
+ )
+
+set(llcorehttp_HEADER_FILES
+ CMakeLists.txt
+
+ bufferarray.h
+ bufferstream.h
+ httpcommon.h
+ httphandler.h
+ httpheaders.h
+ httpoptions.h
+ httprequest.h
+ httpresponse.h
+ _httpinternal.h
+ _httplibcurl.h
+ _httpopcancel.h
+ _httpoperation.h
+ _httpoprequest.h
+ _httpopsetget.h
+ _httpopsetpriority.h
+ _httppolicy.h
+ _httppolicyclass.h
+ _httppolicyglobal.h
+ _httpreadyqueue.h
+ _httpreplyqueue.h
+ _httprequestqueue.h
+ _httpservice.h
+ _mutex.h
+ _refcounted.h
+ _thread.h
+ )
+
+set_source_files_properties(${llcorehttp_HEADER_FILES}
+ PROPERTIES HEADER_FILE_ONLY TRUE)
+if (DARWIN OR LINUX)
+ # Boost headers define unused members in condition_variable so...
+ set_source_files_properties(${llcorehttp_SOURCE_FILES}
+ PROPERTIES COMPILE_FLAGS -Wno-unused-variable)
+endif (DARWIN OR LINUX)
+
+list(APPEND llcorehttp_SOURCE_FILES ${llcorehttp_HEADER_FILES})
+
+add_library (llcorehttp ${llcorehttp_SOURCE_FILES})
+target_link_libraries(
+ llcorehttp
+ ${CURL_LIBRARIES}
+ ${CARES_LIBRARIES}
+ ${OPENSSL_LIBRARIES}
+ ${CRYPTO_LIBRARIES}
+ ${BOOST_THREAD_LIBRARY}
+ )
+
+# tests
+if (LL_TESTS)
+ SET(llcorehttp_TEST_SOURCE_FILES
+ tests/test_allocator.cpp
+ )
+
+ set(llcorehttp_TEST_HEADER_FILS
+ tests/test_httpstatus.hpp
+ tests/test_refcounted.hpp
+ tests/test_httpoperation.hpp
+ tests/test_httprequest.hpp
+ tests/test_httprequestqueue.hpp
+ tests/test_httpheaders.hpp
+ tests/test_bufferarray.hpp
+ tests/test_bufferstream.hpp
+ )
+
+ set_source_files_properties(${llcorehttp_TEST_HEADER_FILES}
+ PROPERTIES HEADER_FILE_ONLY TRUE)
+
+ list(APPEND llcorehttp_TEST_SOURCE_FILES ${llcorehttp_TEST_HEADER_FILES})
+
+ # LL_ADD_PROJECT_UNIT_TESTS(llcorehttp "${llcorehttp_TEST_SOURCE_FILES}")
+
+ # set(TEST_DEBUG on)
+ set(test_libs
+ ${LLCOREHTTP_LIBRARIES}
+ ${WINDOWS_LIBRARIES}
+ ${LLMESSAGE_LIBRARIES}
+ ${LLCOMMON_LIBRARIES}
+ ${GOOGLEMOCK_LIBRARIES}
+ ${CURL_LIBRARIES}
+ ${CARES_LIBRARIES}
+ ${OPENSSL_LIBRARIES}
+ ${CRYPTO_LIBRARIES}
+ ${BOOST_SYSTEM_LIBRARY}
+ ${BOOST_THREAD_LIBRARY}
+ )
+
+ LL_ADD_INTEGRATION_TEST(llcorehttp
+ "${llcorehttp_TEST_SOURCE_FILES}"
+ "${test_libs}"
+ ${PYTHON_EXECUTABLE}
+ "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_llcorehttp_peer.py"
+ )
+
+ #
+ # Example Programs
+ #
+ SET(llcorehttp_EXAMPLE_SOURCE_FILES
+ examples/http_texture_load.cpp
+ )
+
+ set(example_libs
+ ${LLCOREHTTP_LIBRARIES}
+ ${WINDOWS_LIBRARIES}
+ ${LLMESSAGE_LIBRARIES}
+ ${LLCOMMON_LIBRARIES}
+ ${GOOGLEMOCK_LIBRARIES}
+ ${CURL_LIBRARIES}
+ ${CARES_LIBRARIES}
+ ${OPENSSL_LIBRARIES}
+ ${CRYPTO_LIBRARIES}
+ ${BOOST_SYSTEM_LIBRARY}
+ ${BOOST_THREAD_LIBRARY}
+ )
+
+ add_executable(http_texture_load
+ ${llcorehttp_EXAMPLE_SOURCE_FILES}
+ )
+ set_target_properties(http_texture_load
+ PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}"
+ )
+
+ if (WINDOWS)
+ # The following come from LLAddBuildTest.cmake's INTEGRATION_TEST_xxxx target.
+ set_target_properties(http_texture_load
+ PROPERTIES
+ LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS /INCLUDE:__tcmalloc"
+ LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\" /INCREMENTAL:NO"
+ LINK_FLAGS_RELEASE ""
+ )
+ endif (WINDOWS)
+
+ target_link_libraries(http_texture_load ${example_libs})
+
+endif (LL_TESTS)
+
diff --git a/indra/llcorehttp/_httpinternal.h b/indra/llcorehttp/_httpinternal.h
new file mode 100644
index 0000000000..465e2036b3
--- /dev/null
+++ b/indra/llcorehttp/_httpinternal.h
@@ -0,0 +1,146 @@
+/**
+ * @file _httpinternal.h
+ * @brief Implementation constants and magic numbers
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_INTERNAL_H_
+#define _LLCORE_HTTP_INTERNAL_H_
+
+
+// If you find this included in a public interface header,
+// something wrong is probably happening.
+
+
+// --------------------------------------------------------------------
+// General library to-do list
+//
+// - Implement policy classes. Structure is mostly there just didn't
+// need it for the first consumer.
+// - Consider Removing 'priority' from the request interface. Its use
+// in an always active class can lead to starvation of low-priority
+// requests. Requires coodination of priority values across all
+// components that share a class. Changing priority across threads
+// is slightly expensive (relative to gain) and hasn't been completely
+// implemented. And the major user of priority, texture fetches,
+// may not really need it.
+// - Set/get for global policy and policy classes is clumsy. Rework
+// it heading in a direction that allows for more dynamic behavior.
+// - Move HttpOpRequest::prepareRequest() to HttpLibcurl for the
+// pedantic.
+// - Update downloader and other long-duration services are going to
+// need a progress notification. Initial idea is to introduce a
+// 'repeating request' which can piggyback on another request and
+// persist until canceled or carrier completes. Current queue
+// structures allow an HttpOperation object to be enqueued
+// repeatedly, so...
+// - Investigate making c-ares' re-implementation of a resolver library
+// more resilient or more intelligent on Mac. Part of the DNS failure
+// lies in here. The mechanism also looks a little less dynamic
+// than needed in an environments where networking is changing.
+// - Global optimizations: 'borrowing' connections from other classes,
+// HTTP pipelining.
+// - Dynamic/control system stuff: detect problems and self-adjust.
+// This won't help in the face of the router problems we've looked
+// at, however. Detect starvation due to UDP activity and provide
+// feedback to it.
+//
+// Integration to-do list
+// - LLTextureFetch still needs a major refactor. The use of
+// LLQueuedThread makes it hard to inspect workers and do the
+// resource waiting we're now doing. Rebuild along simpler lines
+// some of which are suggested in new commentary at the top of
+// the main source file.
+// - Expand areas of usage eventually leading to the removal of LLCurl.
+// Rough order of expansion:
+// . Mesh fetch
+// . Avatar names
+// . Group membership lists
+// . Caps access in general
+// . 'The rest'
+// - Adapt texture cache, image decode and other image consumers to
+// the BufferArray model to reduce data copying. Alternatively,
+// adapt this library to something else.
+//
+// --------------------------------------------------------------------
+
+
+// If '1', internal ready queues will not order ready
+// requests by priority, instead it's first-come-first-served.
+// Reprioritization requests have the side-effect of then
+// putting the modified request at the back of the ready queue.
+
+#define LLCORE_HTTP_READY_QUEUE_IGNORES_PRIORITY 1
+
+
+namespace LLCore
+{
+
+// Maxium number of policy classes that can be defined.
+// *TODO: Currently limited to the default class, extend.
+const int HTTP_POLICY_CLASS_LIMIT = 1;
+
+// Debug/informational tracing. Used both
+// as a global option and in per-request traces.
+const int HTTP_TRACE_OFF = 0;
+const int HTTP_TRACE_LOW = 1;
+const int HTTP_TRACE_CURL_HEADERS = 2;
+const int HTTP_TRACE_CURL_BODIES = 3;
+
+const int HTTP_TRACE_MIN = HTTP_TRACE_OFF;
+const int HTTP_TRACE_MAX = HTTP_TRACE_CURL_BODIES;
+
+// Request retry limits
+const int HTTP_RETRY_COUNT_DEFAULT = 5;
+const int HTTP_RETRY_COUNT_MIN = 0;
+const int HTTP_RETRY_COUNT_MAX = 100;
+
+const int HTTP_REDIRECTS_DEFAULT = 10;
+
+// Timeout value used for both connect and protocol exchange.
+// Retries and time-on-queue are not included and aren't
+// accounted for.
+const long HTTP_REQUEST_TIMEOUT_DEFAULT = 30L;
+const long HTTP_REQUEST_TIMEOUT_MIN = 0L;
+const long HTTP_REQUEST_TIMEOUT_MAX = 3600L;
+
+// Limits on connection counts
+const int HTTP_CONNECTION_LIMIT_DEFAULT = 8;
+const int HTTP_CONNECTION_LIMIT_MIN = 1;
+const int HTTP_CONNECTION_LIMIT_MAX = 256;
+
+// Tuning parameters
+
+// Time worker thread sleeps after a pass through the
+// request, ready and active queues.
+const int HTTP_SERVICE_LOOP_SLEEP_NORMAL_MS = 2;
+
+// Block allocation size (a tuning parameter) is found
+// in bufferarray.h.
+
+// Compatibility controls
+const bool HTTP_ENABLE_LINKSYS_WRT54G_V5_DNS_FIX = true;
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_INTERNAL_H_
diff --git a/indra/llcorehttp/_httplibcurl.cpp b/indra/llcorehttp/_httplibcurl.cpp
new file mode 100644
index 0000000000..6fe0bfc7d1
--- /dev/null
+++ b/indra/llcorehttp/_httplibcurl.cpp
@@ -0,0 +1,373 @@
+/**
+ * @file _httplibcurl.cpp
+ * @brief Internal definitions of the Http libcurl thread
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httplibcurl.h"
+
+#include "httpheaders.h"
+#include "bufferarray.h"
+#include "_httpoprequest.h"
+#include "_httppolicy.h"
+
+#include "llhttpstatuscodes.h"
+
+
+namespace LLCore
+{
+
+
+HttpLibcurl::HttpLibcurl(HttpService * service)
+ : mService(service),
+ mPolicyCount(0),
+ mMultiHandles(NULL)
+{}
+
+
+HttpLibcurl::~HttpLibcurl()
+{
+ shutdown();
+
+ mService = NULL;
+}
+
+
+void HttpLibcurl::shutdown()
+{
+ while (! mActiveOps.empty())
+ {
+ HttpOpRequest * op(* mActiveOps.begin());
+ mActiveOps.erase(mActiveOps.begin());
+
+ cancelRequest(op);
+ op->release();
+ }
+
+ if (mMultiHandles)
+ {
+ for (int policy_class(0); policy_class < mPolicyCount; ++policy_class)
+ {
+ if (mMultiHandles[policy_class])
+ {
+ curl_multi_cleanup(mMultiHandles[policy_class]);
+ mMultiHandles[policy_class] = 0;
+ }
+ }
+
+ delete [] mMultiHandles;
+ mMultiHandles = NULL;
+ }
+
+ mPolicyCount = 0;
+}
+
+
+void HttpLibcurl::start(int policy_count)
+{
+ llassert_always(policy_count <= HTTP_POLICY_CLASS_LIMIT);
+ llassert_always(! mMultiHandles); // One-time call only
+
+ mPolicyCount = policy_count;
+ mMultiHandles = new CURLM * [mPolicyCount];
+ for (int policy_class(0); policy_class < mPolicyCount; ++policy_class)
+ {
+ mMultiHandles[policy_class] = curl_multi_init();
+ }
+}
+
+
+// Give libcurl some cycles, invoke it's callbacks, process
+// completed requests finalizing or issuing retries as needed.
+//
+// If active list goes empty *and* we didn't queue any
+// requests for retry, we return a request for a hard
+// sleep otherwise ask for a normal polling interval.
+HttpService::ELoopSpeed HttpLibcurl::processTransport()
+{
+ HttpService::ELoopSpeed ret(HttpService::REQUEST_SLEEP);
+
+ // Give libcurl some cycles to do I/O & callbacks
+ for (int policy_class(0); policy_class < mPolicyCount; ++policy_class)
+ {
+ if (! mMultiHandles[policy_class])
+ continue;
+
+ int running(0);
+ CURLMcode status(CURLM_CALL_MULTI_PERFORM);
+ do
+ {
+ running = 0;
+ status = curl_multi_perform(mMultiHandles[policy_class], &running);
+ }
+ while (0 != running && CURLM_CALL_MULTI_PERFORM == status);
+
+ // Run completion on anything done
+ CURLMsg * msg(NULL);
+ int msgs_in_queue(0);
+ while ((msg = curl_multi_info_read(mMultiHandles[policy_class], &msgs_in_queue)))
+ {
+ if (CURLMSG_DONE == msg->msg)
+ {
+ CURL * handle(msg->easy_handle);
+ CURLcode result(msg->data.result);
+
+ if (completeRequest(mMultiHandles[policy_class], handle, result))
+ {
+ // Request is still active, don't get too sleepy
+ ret = HttpService::NORMAL;
+ }
+ handle = NULL; // No longer valid on return
+ }
+ else if (CURLMSG_NONE == msg->msg)
+ {
+ // Ignore this... it shouldn't mean anything.
+ ;
+ }
+ else
+ {
+ LL_WARNS_ONCE("CoreHttp") << "Unexpected message from libcurl. Msg code: "
+ << msg->msg
+ << LL_ENDL;
+ }
+ msgs_in_queue = 0;
+ }
+ }
+
+ if (! mActiveOps.empty())
+ {
+ ret = HttpService::NORMAL;
+ }
+ return ret;
+}
+
+
+// Caller has provided us with a ref count on op.
+void HttpLibcurl::addOp(HttpOpRequest * op)
+{
+ llassert_always(op->mReqPolicy < mPolicyCount);
+ llassert_always(mMultiHandles[op->mReqPolicy] != NULL);
+
+ // Create standard handle
+ if (! op->prepareRequest(mService))
+ {
+ // Couldn't issue request, fail with notification
+ // *TODO: Need failure path
+ return;
+ }
+
+ // Make the request live
+ curl_multi_add_handle(mMultiHandles[op->mReqPolicy], op->mCurlHandle);
+ op->mCurlActive = true;
+
+ if (op->mTracing > HTTP_TRACE_OFF)
+ {
+ HttpPolicy & policy(mService->getPolicy());
+
+ LL_INFOS("CoreHttp") << "TRACE, ToActiveQueue, Handle: "
+ << static_cast(op)
+ << ", Actives: " << mActiveOps.size()
+ << ", Readies: " << policy.getReadyCount(op->mReqPolicy)
+ << LL_ENDL;
+ }
+
+ // On success, make operation active
+ mActiveOps.insert(op);
+}
+
+
+// Implements the transport part of any cancel operation.
+// See if the handle is an active operation and if so,
+// use the more complicated transport-based cancelation
+// method to kill the request.
+bool HttpLibcurl::cancel(HttpHandle handle)
+{
+ HttpOpRequest * op(static_cast(handle));
+ active_set_t::iterator it(mActiveOps.find(op));
+ if (mActiveOps.end() == it)
+ {
+ return false;
+ }
+
+ // Cancel request
+ cancelRequest(op);
+
+ // Drop references
+ mActiveOps.erase(it);
+ op->release();
+
+ return true;
+}
+
+
+// *NOTE: cancelRequest logic parallels completeRequest logic.
+// Keep them synchronized as necessary. Caller is expected to
+// remove the op from the active list and release the op *after*
+// calling this method. It must be called first to deliver the
+// op to the reply queue with refcount intact.
+void HttpLibcurl::cancelRequest(HttpOpRequest * op)
+{
+ // Deactivate request
+ op->mCurlActive = false;
+
+ // Detach from multi and recycle handle
+ curl_multi_remove_handle(mMultiHandles[op->mReqPolicy], op->mCurlHandle);
+ curl_easy_cleanup(op->mCurlHandle);
+ op->mCurlHandle = NULL;
+
+ // Tracing
+ if (op->mTracing > HTTP_TRACE_OFF)
+ {
+ LL_INFOS("CoreHttp") << "TRACE, RequestCanceled, Handle: "
+ << static_cast(op)
+ << ", Status: " << op->mStatus.toHex()
+ << LL_ENDL;
+ }
+
+ // Cancel op and deliver for notification
+ op->cancel();
+}
+
+
+// *NOTE: cancelRequest logic parallels completeRequest logic.
+// Keep them synchronized as necessary.
+bool HttpLibcurl::completeRequest(CURLM * multi_handle, CURL * handle, CURLcode status)
+{
+ HttpOpRequest * op(NULL);
+ curl_easy_getinfo(handle, CURLINFO_PRIVATE, &op);
+
+ if (handle != op->mCurlHandle || ! op->mCurlActive)
+ {
+ LL_WARNS("CoreHttp") << "libcurl handle and HttpOpRequest handle in disagreement or inactive request."
+ << " Handle: " << static_cast(handle)
+ << LL_ENDL;
+ return false;
+ }
+
+ active_set_t::iterator it(mActiveOps.find(op));
+ if (mActiveOps.end() == it)
+ {
+ LL_WARNS("CoreHttp") << "libcurl completion for request not on active list. Continuing."
+ << " Handle: " << static_cast(handle)
+ << LL_ENDL;
+ return false;
+ }
+
+ // Deactivate request
+ mActiveOps.erase(it);
+ op->mCurlActive = false;
+
+ // Set final status of request if it hasn't failed by other mechanisms yet
+ if (op->mStatus)
+ {
+ op->mStatus = HttpStatus(HttpStatus::EXT_CURL_EASY, status);
+ }
+ if (op->mStatus)
+ {
+ int http_status(HTTP_OK);
+
+ curl_easy_getinfo(handle, CURLINFO_RESPONSE_CODE, &http_status);
+ if (http_status >= 100 && http_status <= 999)
+ {
+ char * cont_type(NULL);
+ curl_easy_getinfo(handle, CURLINFO_CONTENT_TYPE, &cont_type);
+ if (cont_type)
+ {
+ op->mReplyConType = cont_type;
+ }
+ op->mStatus = HttpStatus(http_status);
+ }
+ else
+ {
+ LL_WARNS("CoreHttp") << "Invalid HTTP response code ("
+ << http_status << ") received from server."
+ << LL_ENDL;
+ op->mStatus = HttpStatus(HttpStatus::LLCORE, HE_INVALID_HTTP_STATUS);
+ }
+ }
+
+ // Detach from multi and recycle handle
+ curl_multi_remove_handle(multi_handle, handle);
+ curl_easy_cleanup(handle);
+ op->mCurlHandle = NULL;
+
+ // Tracing
+ if (op->mTracing > HTTP_TRACE_OFF)
+ {
+ LL_INFOS("CoreHttp") << "TRACE, RequestComplete, Handle: "
+ << static_cast(op)
+ << ", Status: " << op->mStatus.toHex()
+ << LL_ENDL;
+ }
+
+ // Dispatch to next stage
+ HttpPolicy & policy(mService->getPolicy());
+ bool still_active(policy.stageAfterCompletion(op));
+
+ return still_active;
+}
+
+
+int HttpLibcurl::getActiveCount() const
+{
+ return mActiveOps.size();
+}
+
+
+int HttpLibcurl::getActiveCountInClass(int policy_class) const
+{
+ int count(0);
+
+ for (active_set_t::const_iterator iter(mActiveOps.begin());
+ mActiveOps.end() != iter;
+ ++iter)
+ {
+ if ((*iter)->mReqPolicy == policy_class)
+ {
+ ++count;
+ }
+ }
+
+ return count;
+}
+
+
+// ---------------------------------------
+// Free functions
+// ---------------------------------------
+
+
+struct curl_slist * append_headers_to_slist(const HttpHeaders * headers, struct curl_slist * slist)
+{
+ for (HttpHeaders::container_t::const_iterator it(headers->mHeaders.begin());
+
+ headers->mHeaders.end() != it;
+ ++it)
+ {
+ slist = curl_slist_append(slist, (*it).c_str());
+ }
+ return slist;
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httplibcurl.h b/indra/llcorehttp/_httplibcurl.h
new file mode 100644
index 0000000000..611f029ef5
--- /dev/null
+++ b/indra/llcorehttp/_httplibcurl.h
@@ -0,0 +1,129 @@
+/**
+ * @file _httplibcurl.h
+ * @brief Declarations for internal class providing libcurl transport.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_LIBCURL_H_
+#define _LLCORE_HTTP_LIBCURL_H_
+
+#include "linden_common.h" // Modifies curl/curl.h interfaces
+
+#include
+#include
+
+#include
+
+#include "httprequest.h"
+#include "_httpservice.h"
+#include "_httpinternal.h"
+
+
+namespace LLCore
+{
+
+
+class HttpPolicy;
+class HttpOpRequest;
+class HttpHeaders;
+
+
+/// Implements libcurl-based transport for an HttpService instance.
+///
+/// Threading: Single-threaded. Other than for construction/destruction,
+/// all methods are expected to be invoked in a single thread, typically
+/// a worker thread of some sort.
+
+class HttpLibcurl
+{
+public:
+ HttpLibcurl(HttpService * service);
+ virtual ~HttpLibcurl();
+
+private:
+ HttpLibcurl(const HttpLibcurl &); // Not defined
+ void operator=(const HttpLibcurl &); // Not defined
+
+public:
+ /// Give cycles to libcurl to run active requests. Completed
+ /// operations (successful or failed) will be retried or handed
+ /// over to the reply queue as final responses.
+ ///
+ /// @return Indication of how long this method is
+ /// willing to wait for next service call.
+ HttpService::ELoopSpeed processTransport();
+
+ /// Add request to the active list. Caller is expected to have
+ /// provided us with a reference count on the op to hold the
+ /// request. (No additional references will be added.)
+ void addOp(HttpOpRequest * op);
+
+ /// One-time call to set the number of policy classes to be
+ /// serviced and to create the resources for each. Value
+ /// must agree with HttpPolicy::setPolicies() call.
+ void start(int policy_count);
+
+ /// Synchronously stop libcurl operations. All active requests
+ /// are canceled and removed from libcurl's handling. Easy
+ /// handles are detached from their multi handles and released.
+ /// Multi handles are also released. Canceled requests are
+ /// completed with canceled status and made available on their
+ /// respective reply queues.
+ ///
+ /// Can be restarted with a start() call.
+ void shutdown();
+
+ /// Return global and per-class counts of active requests.
+ int getActiveCount() const;
+ int getActiveCountInClass(int policy_class) const;
+
+ /// Attempt to cancel a request identified by handle.
+ ///
+ /// Interface shadows HttpService's method.
+ ///
+ /// @return True if handle was found and operation canceled.
+ ///
+ bool cancel(HttpHandle handle);
+
+protected:
+ /// Invoked when libcurl has indicated a request has been processed
+ /// to completion and we need to move the request to a new state.
+ bool completeRequest(CURLM * multi_handle, CURL * handle, CURLcode status);
+
+ /// Invoked to cancel an active request, mainly during shutdown
+ /// and destroy.
+ void cancelRequest(HttpOpRequest * op);
+
+protected:
+ typedef std::set active_set_t;
+
+protected:
+ HttpService * mService; // Simple reference, not owner
+ active_set_t mActiveOps;
+ int mPolicyCount;
+ CURLM ** mMultiHandles;
+}; // end class HttpLibcurl
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_LIBCURL_H_
diff --git a/indra/llcorehttp/_httpopcancel.cpp b/indra/llcorehttp/_httpopcancel.cpp
new file mode 100644
index 0000000000..c1912eb3db
--- /dev/null
+++ b/indra/llcorehttp/_httpopcancel.cpp
@@ -0,0 +1,73 @@
+/**
+ * @file _httpopcancel.cpp
+ * @brief Definitions for internal class HttpOpCancel
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httpopcancel.h"
+
+#include "httpcommon.h"
+#include "httphandler.h"
+#include "httpresponse.h"
+
+#include "_httpservice.h"
+
+
+namespace LLCore
+{
+
+
+// ==================================
+// HttpOpCancel
+// ==================================
+
+
+HttpOpCancel::HttpOpCancel(HttpHandle handle)
+ : HttpOperation(),
+ mHandle(handle)
+{}
+
+
+HttpOpCancel::~HttpOpCancel()
+{}
+
+
+// Immediately search for the request on various queues
+// and cancel operations if found. Return the status of
+// the search and cancel as the status of this request.
+// The canceled request will return a canceled status to
+// its handler.
+void HttpOpCancel::stageFromRequest(HttpService * service)
+{
+ if (! service->cancel(mHandle))
+ {
+ mStatus = HttpStatus(HttpStatus::LLCORE, HE_HANDLE_NOT_FOUND);
+ }
+
+ addAsReply();
+}
+
+
+} // end namespace LLCore
+
+
diff --git a/indra/llcorehttp/_httpopcancel.h b/indra/llcorehttp/_httpopcancel.h
new file mode 100644
index 0000000000..336dfdc573
--- /dev/null
+++ b/indra/llcorehttp/_httpopcancel.h
@@ -0,0 +1,78 @@
+/**
+ * @file _httpopcancel.h
+ * @brief Internal declarations for the HttpOpCancel subclass
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_OPCANCEL_H_
+#define _LLCORE_HTTP_OPCANCEL_H_
+
+
+#include "linden_common.h" // Modifies curl/curl.h interfaces
+
+#include "httpcommon.h"
+
+#include
+
+#include "_httpoperation.h"
+#include "_refcounted.h"
+
+
+namespace LLCore
+{
+
+
+/// HttpOpCancel requests that a previously issued request
+/// be canceled, if possible. This includes active requests
+/// that may be in the middle of an HTTP transaction. Any
+/// completed request will not be canceled and will return
+/// its final status unchanged and *this* request will complete
+/// with an HE_HANDLE_NOT_FOUND error status.
+
+class HttpOpCancel : public HttpOperation
+{
+public:
+ /// @param handle Handle of previously-issued request to
+ /// be canceled.
+ HttpOpCancel(HttpHandle handle);
+
+protected:
+ virtual ~HttpOpCancel(); // Use release()
+
+private:
+ HttpOpCancel(const HttpOpCancel &); // Not defined
+ void operator=(const HttpOpCancel &); // Not defined
+
+public:
+ virtual void stageFromRequest(HttpService *);
+
+public:
+ // Request data
+ HttpHandle mHandle;
+}; // end class HttpOpCancel
+
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_OPCANCEL_H_
+
diff --git a/indra/llcorehttp/_httpoperation.cpp b/indra/llcorehttp/_httpoperation.cpp
new file mode 100644
index 0000000000..5cf5bc5930
--- /dev/null
+++ b/indra/llcorehttp/_httpoperation.cpp
@@ -0,0 +1,248 @@
+/**
+ * @file _httpoperation.cpp
+ * @brief Definitions for internal classes based on HttpOperation
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httpoperation.h"
+
+#include "httphandler.h"
+#include "httpresponse.h"
+#include "httprequest.h"
+
+#include "_httprequestqueue.h"
+#include "_httpreplyqueue.h"
+#include "_httpservice.h"
+#include "_httpinternal.h"
+
+#include "lltimer.h"
+
+
+namespace LLCore
+{
+
+
+// ==================================
+// HttpOperation
+// ==================================
+
+
+HttpOperation::HttpOperation()
+ : LLCoreInt::RefCounted(true),
+ mReplyQueue(NULL),
+ mUserHandler(NULL),
+ mReqPolicy(HttpRequest::DEFAULT_POLICY_ID),
+ mReqPriority(0U),
+ mTracing(0)
+{
+ mMetricCreated = totalTime();
+}
+
+
+HttpOperation::~HttpOperation()
+{
+ setReplyPath(NULL, NULL);
+}
+
+
+void HttpOperation::setReplyPath(HttpReplyQueue * reply_queue,
+ HttpHandler * user_handler)
+{
+ if (reply_queue != mReplyQueue)
+ {
+ if (mReplyQueue)
+ {
+ mReplyQueue->release();
+ }
+
+ if (reply_queue)
+ {
+ reply_queue->addRef();
+ }
+
+ mReplyQueue = reply_queue;
+ }
+
+ // Not refcounted
+ mUserHandler = user_handler;
+}
+
+
+
+void HttpOperation::stageFromRequest(HttpService *)
+{
+ // Default implementation should never be called. This
+ // indicates an operation making a transition that isn't
+ // defined.
+ LL_ERRS("HttpCore") << "Default stageFromRequest method may not be called."
+ << LL_ENDL;
+}
+
+
+void HttpOperation::stageFromReady(HttpService *)
+{
+ // Default implementation should never be called. This
+ // indicates an operation making a transition that isn't
+ // defined.
+ LL_ERRS("HttpCore") << "Default stageFromReady method may not be called."
+ << LL_ENDL;
+}
+
+
+void HttpOperation::stageFromActive(HttpService *)
+{
+ // Default implementation should never be called. This
+ // indicates an operation making a transition that isn't
+ // defined.
+ LL_ERRS("HttpCore") << "Default stageFromActive method may not be called."
+ << LL_ENDL;
+}
+
+
+void HttpOperation::visitNotifier(HttpRequest *)
+{
+ if (mUserHandler)
+ {
+ HttpResponse * response = new HttpResponse();
+
+ response->setStatus(mStatus);
+ mUserHandler->onCompleted(static_cast(this), response);
+
+ response->release();
+ }
+}
+
+
+HttpStatus HttpOperation::cancel()
+{
+ HttpStatus status;
+
+ return status;
+}
+
+
+void HttpOperation::addAsReply()
+{
+ if (mTracing > HTTP_TRACE_OFF)
+ {
+ LL_INFOS("CoreHttp") << "TRACE, ToReplyQueue, Handle: "
+ << static_cast(this)
+ << LL_ENDL;
+ }
+
+ if (mReplyQueue)
+ {
+ addRef();
+ mReplyQueue->addOp(this);
+ }
+}
+
+
+// ==================================
+// HttpOpStop
+// ==================================
+
+
+HttpOpStop::HttpOpStop()
+ : HttpOperation()
+{}
+
+
+HttpOpStop::~HttpOpStop()
+{}
+
+
+void HttpOpStop::stageFromRequest(HttpService * service)
+{
+ // Do operations
+ service->stopRequested();
+
+ // Prepare response if needed
+ addAsReply();
+}
+
+
+// ==================================
+// HttpOpNull
+// ==================================
+
+
+HttpOpNull::HttpOpNull()
+ : HttpOperation()
+{}
+
+
+HttpOpNull::~HttpOpNull()
+{}
+
+
+void HttpOpNull::stageFromRequest(HttpService * service)
+{
+ // Perform op
+ // Nothing to perform. This doesn't fall into the libcurl
+ // ready/active queues, it just bounces over to the reply
+ // queue directly.
+
+ // Prepare response if needed
+ addAsReply();
+}
+
+
+// ==================================
+// HttpOpSpin
+// ==================================
+
+
+HttpOpSpin::HttpOpSpin(int mode)
+ : HttpOperation(),
+ mMode(mode)
+{}
+
+
+HttpOpSpin::~HttpOpSpin()
+{}
+
+
+void HttpOpSpin::stageFromRequest(HttpService * service)
+{
+ if (0 == mMode)
+ {
+ // Spin forever
+ while (true)
+ {
+ ms_sleep(100);
+ }
+ }
+ else
+ {
+ ms_sleep(1); // backoff interlock plumbing a bit
+ this->addRef();
+ if (! service->getRequestQueue().addOp(this))
+ {
+ this->release();
+ }
+ }
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httpoperation.h b/indra/llcorehttp/_httpoperation.h
new file mode 100644
index 0000000000..914627fad0
--- /dev/null
+++ b/indra/llcorehttp/_httpoperation.h
@@ -0,0 +1,262 @@
+/**
+ * @file _httpoperation.h
+ * @brief Internal declarations for HttpOperation and sub-classes
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_OPERATION_H_
+#define _LLCORE_HTTP_OPERATION_H_
+
+
+#include "httpcommon.h"
+#include "httprequest.h"
+#include "_refcounted.h"
+
+
+namespace LLCore
+{
+
+class HttpReplyQueue;
+class HttpHandler;
+class HttpService;
+
+/// HttpOperation is the base class for all request/reply
+/// pairs.
+///
+/// Operations are expected to be of two types: immediate
+/// and queued. Immediate requests go to the singleton
+/// request queue and when picked up by the worker thread
+/// are executed immediately and there results placed on
+/// the supplied reply queue. Queued requests (namely for
+/// HTTP operations), go to the request queue, are picked
+/// up and moved to a ready queue where they're ordered by
+/// priority and managed by the policy component, are
+/// then activated issuing HTTP requests and moved to an
+/// active list managed by the transport (libcurl) component
+/// and eventually finalized when a response is available
+/// and status and data return via reply queue.
+///
+/// To manage these transitions, derived classes implement
+/// three methods: stageFromRequest, stageFromReady and
+/// stageFromActive. Immediate requests will only override
+/// stageFromRequest which will perform the operation and
+/// return the result by invoking addAsReply() to put the
+/// request on a reply queue. Queued requests will involve
+/// all three stage methods.
+///
+/// Threading: not thread-safe. Base and derived classes
+/// provide no locking. Instances move across threads
+/// via queue-like interfaces that are thread compatible
+/// and those interfaces establish the access rules.
+
+class HttpOperation : public LLCoreInt::RefCounted
+{
+public:
+ /// Threading: called by a consumer/application thread.
+ HttpOperation();
+
+protected:
+ /// Threading: called by any thread.
+ virtual ~HttpOperation(); // Use release()
+
+private:
+ HttpOperation(const HttpOperation &); // Not defined
+ void operator=(const HttpOperation &); // Not defined
+
+public:
+ /// Register a reply queue and a handler for completion notifications.
+ ///
+ /// Invokers of operations that want to receive notification that an
+ /// operation has been completed do so by binding a reply queue and
+ /// a handler object to the request.
+ ///
+ /// @param reply_queue Pointer to the reply queue where completion
+ /// notifications are to be queued (typically
+ /// by addAsReply()). This will typically be
+ /// the reply queue referenced by the request
+ /// object. This method will increment the
+ /// refcount on the queue holding the queue
+ /// until delivery is complete. Using a reply_queue
+ /// even if the handler is NULL has some benefits
+ /// for memory deallocation by keeping it in the
+ /// originating thread.
+ ///
+ /// @param handler Possibly NULL pointer to a non-refcounted
+ //// handler object to be invoked (onCompleted)
+ /// when the operation is finished. Note that
+ /// the handler object is never dereferenced
+ /// by the worker thread. This is passible data
+ /// until notification is performed.
+ ///
+ /// Threading: called by application thread.
+ ///
+ void setReplyPath(HttpReplyQueue * reply_queue,
+ HttpHandler * handler);
+
+ /// The three possible staging steps in an operation's lifecycle.
+ /// Asynchronous requests like HTTP operations move from the
+ /// request queue to the ready queue via stageFromRequest. Then
+ /// from the ready queue to the active queue by stageFromReady. And
+ /// when complete, to the reply queue via stageFromActive and the
+ /// addAsReply utility.
+ ///
+ /// Immediate mode operations (everything else) move from the
+ /// request queue to the reply queue directly via stageFromRequest
+ /// and addAsReply with no existence on the ready or active queues.
+ ///
+ /// These methods will take out a reference count on the request,
+ /// caller only needs to dispose of its reference when done with
+ /// the request.
+ ///
+ /// Threading: called by worker thread.
+ ///
+ virtual void stageFromRequest(HttpService *);
+ virtual void stageFromReady(HttpService *);
+ virtual void stageFromActive(HttpService *);
+
+ /// Delivers a notification to a handler object on completion.
+ ///
+ /// Once a request is complete and it has been removed from its
+ /// reply queue, a handler notification may be delivered by a
+ /// call to HttpRequest::update(). This method does the necessary
+ /// dispatching.
+ ///
+ /// Threading: called by application thread.
+ ///
+ virtual void visitNotifier(HttpRequest *);
+
+ /// Cancels the operation whether queued or active.
+ /// Final status of the request becomes canceled (an error) and
+ /// that will be delivered to caller via notification scheme.
+ ///
+ /// Threading: called by worker thread.
+ ///
+ virtual HttpStatus cancel();
+
+protected:
+ /// Delivers request to reply queue on completion. After this
+ /// call, worker thread no longer accesses the object and it
+ /// is owned by the reply queue.
+ ///
+ /// Threading: called by worker thread.
+ ///
+ void addAsReply();
+
+protected:
+ HttpReplyQueue * mReplyQueue; // Have refcount
+ HttpHandler * mUserHandler; // Naked pointer
+
+public:
+ // Request Data
+ HttpRequest::policy_t mReqPolicy;
+ HttpRequest::priority_t mReqPriority;
+
+ // Reply Data
+ HttpStatus mStatus;
+
+ // Tracing, debug and metrics
+ HttpTime mMetricCreated;
+ int mTracing;
+}; // end class HttpOperation
+
+
+/// HttpOpStop requests the servicing thread to shutdown
+/// operations, cease pulling requests from the request
+/// queue and release shared resources (particularly
+/// those shared via reference count). The servicing
+/// thread will then exit. The underlying thread object
+/// remains so that another thread can join on the
+/// servicing thread prior to final cleanup. The
+/// request *does* generate a reply on the response
+/// queue, if requested.
+
+class HttpOpStop : public HttpOperation
+{
+public:
+ HttpOpStop();
+
+protected:
+ virtual ~HttpOpStop();
+
+private:
+ HttpOpStop(const HttpOpStop &); // Not defined
+ void operator=(const HttpOpStop &); // Not defined
+
+public:
+ virtual void stageFromRequest(HttpService *);
+
+}; // end class HttpOpStop
+
+
+/// HttpOpNull is a do-nothing operation used for testing via
+/// a basic loopback pattern. It's executed immediately by
+/// the servicing thread which bounces a reply back to the
+/// caller without any further delay.
+
+class HttpOpNull : public HttpOperation
+{
+public:
+ HttpOpNull();
+
+protected:
+ virtual ~HttpOpNull();
+
+private:
+ HttpOpNull(const HttpOpNull &); // Not defined
+ void operator=(const HttpOpNull &); // Not defined
+
+public:
+ virtual void stageFromRequest(HttpService *);
+
+}; // end class HttpOpNull
+
+
+/// HttpOpSpin is a test-only request that puts the worker
+/// thread into a cpu spin. Used for unit tests and cleanup
+/// evaluation. You do not want to use this in production.
+class HttpOpSpin : public HttpOperation
+{
+public:
+ // 0 does a hard spin in the operation
+ // 1 does a soft spin continuously requeuing itself
+ HttpOpSpin(int mode);
+
+protected:
+ virtual ~HttpOpSpin();
+
+private:
+ HttpOpSpin(const HttpOpSpin &); // Not defined
+ void operator=(const HttpOpSpin &); // Not defined
+
+public:
+ virtual void stageFromRequest(HttpService *);
+
+protected:
+ int mMode;
+}; // end class HttpOpSpin
+
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_OPERATION_H_
+
diff --git a/indra/llcorehttp/_httpoprequest.cpp b/indra/llcorehttp/_httpoprequest.cpp
new file mode 100644
index 0000000000..7db19b1841
--- /dev/null
+++ b/indra/llcorehttp/_httpoprequest.cpp
@@ -0,0 +1,906 @@
+/**
+ * @file _httpoprequest.cpp
+ * @brief Definitions for internal class HttpOpRequest
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httpoprequest.h"
+
+#include
+#include
+
+#include "httpcommon.h"
+#include "httphandler.h"
+#include "httpresponse.h"
+#include "bufferarray.h"
+#include "httpheaders.h"
+#include "httpoptions.h"
+
+#include "_httprequestqueue.h"
+#include "_httpreplyqueue.h"
+#include "_httpservice.h"
+#include "_httppolicy.h"
+#include "_httppolicyglobal.h"
+#include "_httplibcurl.h"
+#include "_httpinternal.h"
+
+#include "llhttpstatuscodes.h"
+#include "llproxy.h"
+
+namespace
+{
+
+// Attempts to parse a 'Content-Range:' header. Caller must already
+// have verified that the header tag is present. The 'buffer' argument
+// will be processed by strtok_r calls which will modify the buffer.
+//
+// @return -1 if invalid and response should be dropped, 0 if valid an
+// correct, 1 if couldn't be parsed. If 0, the first, last,
+// and length arguments are also written. 'length' may be
+// 0 if the length wasn't available to the server.
+//
+int parse_content_range_header(char * buffer,
+ unsigned int * first,
+ unsigned int * last,
+ unsigned int * length);
+
+
+// Take data from libcurl's CURLOPT_DEBUGFUNCTION callback and
+// escape and format it for a tracing line in logging. Absolutely
+// anything including NULs can be in the data. If @scrub is true,
+// non-printing or non-ascii characters are replaced with spaces
+// otherwise a %XX form of escaping is used.
+void escape_libcurl_debug_data(char * buffer, size_t len, bool scrub,
+ std::string & safe_line);
+
+
+// OS-neutral string comparisons of various types
+int os_strncasecmp(const char *s1, const char *s2, size_t n);
+int os_strcasecmp(const char *s1, const char *s2);
+char * os_strtok_r(char *str, const char *delim, char **saveptr);
+
+
+static const char * const hdr_whitespace(" \t");
+static const char * const hdr_separator(": \t");
+
+} // end anonymous namespace
+
+
+namespace LLCore
+{
+
+
+HttpOpRequest::HttpOpRequest()
+ : HttpOperation(),
+ mProcFlags(0U),
+ mReqMethod(HOR_GET),
+ mReqBody(NULL),
+ mReqOffset(0),
+ mReqLength(0),
+ mReqHeaders(NULL),
+ mReqOptions(NULL),
+ mCurlActive(false),
+ mCurlHandle(NULL),
+ mCurlService(NULL),
+ mCurlHeaders(NULL),
+ mCurlBodyPos(0),
+ mReplyBody(NULL),
+ mReplyOffset(0),
+ mReplyLength(0),
+ mReplyFullLength(0),
+ mReplyHeaders(NULL),
+ mPolicyRetries(0),
+ mPolicyRetryAt(HttpTime(0)),
+ mPolicyRetryLimit(HTTP_RETRY_COUNT_DEFAULT)
+{
+ // *NOTE: As members are added, retry initialization/cleanup
+ // may need to be extended in @see prepareRequest().
+}
+
+
+
+HttpOpRequest::~HttpOpRequest()
+{
+ if (mReqBody)
+ {
+ mReqBody->release();
+ mReqBody = NULL;
+ }
+
+ if (mReqOptions)
+ {
+ mReqOptions->release();
+ mReqOptions = NULL;
+ }
+
+ if (mReqHeaders)
+ {
+ mReqHeaders->release();
+ mReqHeaders = NULL;
+ }
+
+ if (mCurlHandle)
+ {
+ curl_easy_cleanup(mCurlHandle);
+ mCurlHandle = NULL;
+ }
+
+ mCurlService = NULL;
+
+ if (mCurlHeaders)
+ {
+ curl_slist_free_all(mCurlHeaders);
+ mCurlHeaders = NULL;
+ }
+
+ if (mReplyBody)
+ {
+ mReplyBody->release();
+ mReplyBody = NULL;
+ }
+
+ if (mReplyHeaders)
+ {
+ mReplyHeaders->release();
+ mReplyHeaders = NULL;
+ }
+}
+
+
+void HttpOpRequest::stageFromRequest(HttpService * service)
+{
+ addRef();
+ service->getPolicy().addOp(this); // transfers refcount
+}
+
+
+void HttpOpRequest::stageFromReady(HttpService * service)
+{
+ addRef();
+ service->getTransport().addOp(this); // transfers refcount
+}
+
+
+void HttpOpRequest::stageFromActive(HttpService * service)
+{
+ if (mReplyLength)
+ {
+ // If non-zero, we received and processed a Content-Range
+ // header with the response. Verify that what it says
+ // is consistent with the received data.
+ if (mReplyLength != mReplyBody->size())
+ {
+ // Not as expected, fail the request
+ mStatus = HttpStatus(HttpStatus::LLCORE, HE_INV_CONTENT_RANGE_HDR);
+ }
+ }
+
+ if (mCurlHeaders)
+ {
+ // We take these headers out of the request now as they were
+ // allocated originally in this thread and the notifier doesn't
+ // need them. This eliminates one source of heap moving across
+ // threads.
+
+ curl_slist_free_all(mCurlHeaders);
+ mCurlHeaders = NULL;
+ }
+
+ addAsReply();
+}
+
+
+void HttpOpRequest::visitNotifier(HttpRequest * request)
+{
+ if (mUserHandler)
+ {
+ HttpResponse * response = new HttpResponse();
+ response->setStatus(mStatus);
+ response->setBody(mReplyBody);
+ response->setHeaders(mReplyHeaders);
+ if (mReplyOffset || mReplyLength)
+ {
+ // Got an explicit offset/length in response
+ response->setRange(mReplyOffset, mReplyLength, mReplyFullLength);
+ }
+ response->setContentType(mReplyConType);
+
+ mUserHandler->onCompleted(static_cast(this), response);
+
+ response->release();
+ }
+}
+
+
+HttpStatus HttpOpRequest::cancel()
+{
+ mStatus = HttpStatus(HttpStatus::LLCORE, HE_OP_CANCELED);
+
+ addAsReply();
+
+ return HttpStatus();
+}
+
+
+HttpStatus HttpOpRequest::setupGet(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ HttpOptions * options,
+ HttpHeaders * headers)
+{
+ setupCommon(policy_id, priority, url, NULL, options, headers);
+ mReqMethod = HOR_GET;
+
+ return HttpStatus();
+}
+
+
+HttpStatus HttpOpRequest::setupGetByteRange(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ size_t offset,
+ size_t len,
+ HttpOptions * options,
+ HttpHeaders * headers)
+{
+ setupCommon(policy_id, priority, url, NULL, options, headers);
+ mReqMethod = HOR_GET;
+ mReqOffset = offset;
+ mReqLength = len;
+ if (offset || len)
+ {
+ mProcFlags |= PF_SCAN_RANGE_HEADER;
+ }
+
+ return HttpStatus();
+}
+
+
+HttpStatus HttpOpRequest::setupPost(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ BufferArray * body,
+ HttpOptions * options,
+ HttpHeaders * headers)
+{
+ setupCommon(policy_id, priority, url, body, options, headers);
+ mReqMethod = HOR_POST;
+
+ return HttpStatus();
+}
+
+
+HttpStatus HttpOpRequest::setupPut(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ BufferArray * body,
+ HttpOptions * options,
+ HttpHeaders * headers)
+{
+ setupCommon(policy_id, priority, url, body, options, headers);
+ mReqMethod = HOR_PUT;
+
+ return HttpStatus();
+}
+
+
+void HttpOpRequest::setupCommon(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ BufferArray * body,
+ HttpOptions * options,
+ HttpHeaders * headers)
+{
+ mProcFlags = 0U;
+ mReqPolicy = policy_id;
+ mReqPriority = priority;
+ mReqURL = url;
+ if (body)
+ {
+ body->addRef();
+ mReqBody = body;
+ }
+ if (headers && ! mReqHeaders)
+ {
+ headers->addRef();
+ mReqHeaders = headers;
+ }
+ if (options && ! mReqOptions)
+ {
+ options->addRef();
+ mReqOptions = options;
+ if (options->getWantHeaders())
+ {
+ mProcFlags |= PF_SAVE_HEADERS;
+ }
+ mPolicyRetryLimit = options->getRetries();
+ mPolicyRetryLimit = llclamp(mPolicyRetryLimit, HTTP_RETRY_COUNT_MIN, HTTP_RETRY_COUNT_MAX);
+ mTracing = (std::max)(mTracing, llclamp(options->getTrace(), HTTP_TRACE_MIN, HTTP_TRACE_MAX));
+ }
+}
+
+
+// Sets all libcurl options and data for a request.
+//
+// Used both for initial requests and to 'reload' for
+// a retry, generally with a different CURL handle.
+// Junk may be left around from a failed request and that
+// needs to be cleaned out.
+//
+HttpStatus HttpOpRequest::prepareRequest(HttpService * service)
+{
+ // Scrub transport and result data for retried op case
+ mCurlActive = false;
+ mCurlHandle = NULL;
+ mCurlService = NULL;
+ if (mCurlHeaders)
+ {
+ curl_slist_free_all(mCurlHeaders);
+ mCurlHeaders = NULL;
+ }
+ mCurlBodyPos = 0;
+
+ if (mReplyBody)
+ {
+ mReplyBody->release();
+ mReplyBody = NULL;
+ }
+ mReplyOffset = 0;
+ mReplyLength = 0;
+ mReplyFullLength = 0;
+ if (mReplyHeaders)
+ {
+ mReplyHeaders->release();
+ mReplyHeaders = NULL;
+ }
+ mReplyConType.clear();
+
+ // *FIXME: better error handling later
+ HttpStatus status;
+
+ // Get policy options
+ HttpPolicyGlobal & policy(service->getPolicy().getGlobalOptions());
+
+ mCurlHandle = curl_easy_init();
+ curl_easy_setopt(mCurlHandle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
+ curl_easy_setopt(mCurlHandle, CURLOPT_NOSIGNAL, 1);
+ curl_easy_setopt(mCurlHandle, CURLOPT_NOPROGRESS, 1);
+ curl_easy_setopt(mCurlHandle, CURLOPT_URL, mReqURL.c_str());
+ curl_easy_setopt(mCurlHandle, CURLOPT_PRIVATE, this);
+ curl_easy_setopt(mCurlHandle, CURLOPT_ENCODING, "");
+
+ if (HTTP_ENABLE_LINKSYS_WRT54G_V5_DNS_FIX)
+ {
+ // The Linksys WRT54G V5 router has an issue with frequent
+ // DNS lookups from LAN machines. If they happen too often,
+ // like for every HTTP request, the router gets annoyed after
+ // about 700 or so requests and starts issuing TCP RSTs to
+ // new connections. Reuse the DNS lookups for even a few
+ // seconds and no RSTs.
+ curl_easy_setopt(mCurlHandle, CURLOPT_DNS_CACHE_TIMEOUT, 15);
+ }
+ else
+ {
+ // *TODO: Revisit this old DNS timeout setting - may no longer be valid
+ // I don't think this is valid anymore, the Multi shared DNS
+ // cache is working well. For the case of naked easy handles,
+ // consider using a shared DNS object.
+ curl_easy_setopt(mCurlHandle, CURLOPT_DNS_CACHE_TIMEOUT, 0);
+ }
+ curl_easy_setopt(mCurlHandle, CURLOPT_AUTOREFERER, 1);
+ curl_easy_setopt(mCurlHandle, CURLOPT_FOLLOWLOCATION, 1);
+ curl_easy_setopt(mCurlHandle, CURLOPT_MAXREDIRS, HTTP_REDIRECTS_DEFAULT);
+ curl_easy_setopt(mCurlHandle, CURLOPT_WRITEFUNCTION, writeCallback);
+ curl_easy_setopt(mCurlHandle, CURLOPT_WRITEDATA, this);
+ curl_easy_setopt(mCurlHandle, CURLOPT_READFUNCTION, readCallback);
+ curl_easy_setopt(mCurlHandle, CURLOPT_READDATA, this);
+ curl_easy_setopt(mCurlHandle, CURLOPT_SSL_VERIFYPEER, 1);
+ curl_easy_setopt(mCurlHandle, CURLOPT_SSL_VERIFYHOST, 0);
+
+ const std::string * opt_value(NULL);
+ long opt_long(0L);
+ policy.get(HttpRequest::GP_LLPROXY, &opt_long);
+ if (opt_long)
+ {
+ // Use the viewer-based thread-safe API which has a
+ // fast/safe check for proxy enable. Would like to
+ // encapsulate this someway...
+ LLProxy::getInstance()->applyProxySettings(mCurlHandle);
+ }
+ else if (policy.get(HttpRequest::GP_HTTP_PROXY, &opt_value))
+ {
+ // *TODO: This is fine for now but get fuller socks5/
+ // authentication thing going later....
+ curl_easy_setopt(mCurlHandle, CURLOPT_PROXY, opt_value->c_str());
+ curl_easy_setopt(mCurlHandle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
+ }
+ if (policy.get(HttpRequest::GP_CA_PATH, &opt_value))
+ {
+ curl_easy_setopt(mCurlHandle, CURLOPT_CAPATH, opt_value->c_str());
+ }
+ if (policy.get(HttpRequest::GP_CA_FILE, &opt_value))
+ {
+ curl_easy_setopt(mCurlHandle, CURLOPT_CAINFO, opt_value->c_str());
+ }
+
+ switch (mReqMethod)
+ {
+ case HOR_GET:
+ curl_easy_setopt(mCurlHandle, CURLOPT_HTTPGET, 1);
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Connection: keep-alive");
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Keep-alive: 300");
+ break;
+
+ case HOR_POST:
+ {
+ curl_easy_setopt(mCurlHandle, CURLOPT_POST, 1);
+ curl_easy_setopt(mCurlHandle, CURLOPT_ENCODING, "");
+ long data_size(0);
+ if (mReqBody)
+ {
+ data_size = mReqBody->size();
+ }
+ curl_easy_setopt(mCurlHandle, CURLOPT_POSTFIELDS, static_cast(NULL));
+ curl_easy_setopt(mCurlHandle, CURLOPT_POSTFIELDSIZE, data_size);
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Expect:");
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Connection: keep-alive");
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Keep-alive: 300");
+ }
+ break;
+
+ case HOR_PUT:
+ {
+ curl_easy_setopt(mCurlHandle, CURLOPT_UPLOAD, 1);
+ long data_size(0);
+ if (mReqBody)
+ {
+ data_size = mReqBody->size();
+ }
+ curl_easy_setopt(mCurlHandle, CURLOPT_INFILESIZE, data_size);
+ curl_easy_setopt(mCurlHandle, CURLOPT_POSTFIELDS, (void *) NULL);
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Expect:");
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Connection: keep-alive");
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Keep-alive: 300");
+ }
+ break;
+
+ default:
+ LL_ERRS("CoreHttp") << "Invalid HTTP method in request: "
+ << int(mReqMethod) << ". Can't recover."
+ << LL_ENDL;
+ break;
+ }
+
+ // Tracing
+ if (mTracing >= HTTP_TRACE_CURL_HEADERS)
+ {
+ curl_easy_setopt(mCurlHandle, CURLOPT_VERBOSE, 1);
+ curl_easy_setopt(mCurlHandle, CURLOPT_DEBUGDATA, this);
+ curl_easy_setopt(mCurlHandle, CURLOPT_DEBUGFUNCTION, debugCallback);
+ }
+
+ // There's a CURLOPT for this now...
+ if ((mReqOffset || mReqLength) && HOR_GET == mReqMethod)
+ {
+ static const char * const fmt1("Range: bytes=%lu-%lu");
+ static const char * const fmt2("Range: bytes=%lu-");
+
+ char range_line[64];
+
+#if LL_WINDOWS
+ _snprintf_s(range_line, sizeof(range_line), sizeof(range_line) - 1,
+ (mReqLength ? fmt1 : fmt2),
+ (unsigned long) mReqOffset, (unsigned long) (mReqOffset + mReqLength - 1));
+#else
+ snprintf(range_line, sizeof(range_line),
+ (mReqLength ? fmt1 : fmt2),
+ (unsigned long) mReqOffset, (unsigned long) (mReqOffset + mReqLength - 1));
+#endif // LL_WINDOWS
+ range_line[sizeof(range_line) - 1] = '\0';
+ mCurlHeaders = curl_slist_append(mCurlHeaders, range_line);
+ }
+
+ mCurlHeaders = curl_slist_append(mCurlHeaders, "Pragma:");
+
+ // Request options
+ long timeout(HTTP_REQUEST_TIMEOUT_DEFAULT);
+ if (mReqOptions)
+ {
+ timeout = mReqOptions->getTimeout();
+ timeout = llclamp(timeout, HTTP_REQUEST_TIMEOUT_MIN, HTTP_REQUEST_TIMEOUT_MAX);
+ }
+ curl_easy_setopt(mCurlHandle, CURLOPT_TIMEOUT, timeout);
+ curl_easy_setopt(mCurlHandle, CURLOPT_CONNECTTIMEOUT, timeout);
+
+ // Request headers
+ if (mReqHeaders)
+ {
+ // Caller's headers last to override
+ mCurlHeaders = append_headers_to_slist(mReqHeaders, mCurlHeaders);
+ }
+ curl_easy_setopt(mCurlHandle, CURLOPT_HTTPHEADER, mCurlHeaders);
+
+ if (mProcFlags & (PF_SCAN_RANGE_HEADER | PF_SAVE_HEADERS))
+ {
+ curl_easy_setopt(mCurlHandle, CURLOPT_HEADERFUNCTION, headerCallback);
+ curl_easy_setopt(mCurlHandle, CURLOPT_HEADERDATA, this);
+ }
+
+ if (status)
+ {
+ mCurlService = service;
+ }
+ return status;
+}
+
+
+size_t HttpOpRequest::writeCallback(void * data, size_t size, size_t nmemb, void * userdata)
+{
+ HttpOpRequest * op(static_cast(userdata));
+
+ if (! op->mReplyBody)
+ {
+ op->mReplyBody = new BufferArray();
+ }
+ const size_t req_size(size * nmemb);
+ const size_t write_size(op->mReplyBody->append(static_cast(data), req_size));
+ return write_size;
+}
+
+
+size_t HttpOpRequest::readCallback(void * data, size_t size, size_t nmemb, void * userdata)
+{
+ HttpOpRequest * op(static_cast(userdata));
+
+ if (! op->mReqBody)
+ {
+ return 0;
+ }
+ const size_t req_size(size * nmemb);
+ const size_t body_size(op->mReqBody->size());
+ if (body_size <= op->mCurlBodyPos)
+ {
+ LL_WARNS("HttpCore") << "Request body position beyond body size. Aborting request."
+ << LL_ENDL;
+ return 0;
+ }
+
+ const size_t do_size((std::min)(req_size, body_size - op->mCurlBodyPos));
+ const size_t read_size(op->mReqBody->read(op->mCurlBodyPos, static_cast(data), do_size));
+ op->mCurlBodyPos += read_size;
+ return read_size;
+}
+
+
+size_t HttpOpRequest::headerCallback(void * data, size_t size, size_t nmemb, void * userdata)
+{
+ static const char status_line[] = "HTTP/";
+ static const size_t status_line_len = sizeof(status_line) - 1;
+
+ static const char con_ran_line[] = "content-range:";
+ static const size_t con_ran_line_len = sizeof(con_ran_line) - 1;
+
+ HttpOpRequest * op(static_cast(userdata));
+
+ const size_t hdr_size(size * nmemb);
+ const char * hdr_data(static_cast(data)); // Not null terminated
+
+ if (hdr_size >= status_line_len && ! strncmp(status_line, hdr_data, status_line_len))
+ {
+ // One of possibly several status lines. Reset what we know and start over
+ // taking results from the last header stanza we receive.
+ op->mReplyOffset = 0;
+ op->mReplyLength = 0;
+ op->mReplyFullLength = 0;
+ op->mStatus = HttpStatus();
+ if (op->mReplyHeaders)
+ {
+ op->mReplyHeaders->mHeaders.clear();
+ }
+ }
+
+ // Nothing in here wants a final CR/LF combination. Remove
+ // it as much as possible.
+ size_t wanted_hdr_size(hdr_size);
+ if (wanted_hdr_size && '\n' == hdr_data[wanted_hdr_size - 1])
+ {
+ if (--wanted_hdr_size && '\r' == hdr_data[wanted_hdr_size - 1])
+ {
+ --wanted_hdr_size;
+ }
+ }
+
+ // Save header if caller wants them in the response
+ if (op->mProcFlags & PF_SAVE_HEADERS)
+ {
+ // Save headers in response
+ if (! op->mReplyHeaders)
+ {
+ op->mReplyHeaders = new HttpHeaders;
+ }
+ op->mReplyHeaders->mHeaders.push_back(std::string(hdr_data, wanted_hdr_size));
+ }
+
+ // Detect and parse 'Content-Range' headers
+ if (op->mProcFlags & PF_SCAN_RANGE_HEADER)
+ {
+ char hdr_buffer[128]; // Enough for a reasonable header
+ size_t frag_size((std::min)(wanted_hdr_size, sizeof(hdr_buffer) - 1));
+
+ memcpy(hdr_buffer, hdr_data, frag_size);
+ hdr_buffer[frag_size] = '\0';
+ if (frag_size > con_ran_line_len &&
+ ! os_strncasecmp(hdr_buffer, con_ran_line, con_ran_line_len))
+ {
+ unsigned int first(0), last(0), length(0);
+ int status;
+
+ if (! (status = parse_content_range_header(hdr_buffer, &first, &last, &length)))
+ {
+ // Success, record the fragment position
+ op->mReplyOffset = first;
+ op->mReplyLength = last - first + 1;
+ op->mReplyFullLength = length;
+ }
+ else if (-1 == status)
+ {
+ // Response is badly formed and shouldn't be accepted
+ op->mStatus = HttpStatus(HttpStatus::LLCORE, HE_INV_CONTENT_RANGE_HDR);
+ }
+ else
+ {
+ // Ignore the unparsable.
+ LL_INFOS_ONCE("CoreHttp") << "Problem parsing odd Content-Range header: '"
+ << std::string(hdr_data, frag_size)
+ << "'. Ignoring."
+ << LL_ENDL;
+ }
+ }
+ }
+
+ return hdr_size;
+}
+
+
+int HttpOpRequest::debugCallback(CURL * handle, curl_infotype info, char * buffer, size_t len, void * userdata)
+{
+ HttpOpRequest * op(static_cast(userdata));
+
+ std::string safe_line;
+ std::string tag;
+ bool logit(false);
+ len = (std::min)(len, size_t(256)); // Keep things reasonable in all cases
+
+ switch (info)
+ {
+ case CURLINFO_TEXT:
+ if (op->mTracing >= HTTP_TRACE_CURL_HEADERS)
+ {
+ tag = "TEXT";
+ escape_libcurl_debug_data(buffer, len, true, safe_line);
+ logit = true;
+ }
+ break;
+
+ case CURLINFO_HEADER_IN:
+ if (op->mTracing >= HTTP_TRACE_CURL_HEADERS)
+ {
+ tag = "HEADERIN";
+ escape_libcurl_debug_data(buffer, len, true, safe_line);
+ logit = true;
+ }
+ break;
+
+ case CURLINFO_HEADER_OUT:
+ if (op->mTracing >= HTTP_TRACE_CURL_HEADERS)
+ {
+ tag = "HEADEROUT";
+ escape_libcurl_debug_data(buffer, 2 * len, true, safe_line); // Goes out as one line
+ logit = true;
+ }
+ break;
+
+ case CURLINFO_DATA_IN:
+ if (op->mTracing >= HTTP_TRACE_CURL_HEADERS)
+ {
+ tag = "DATAIN";
+ logit = true;
+ if (op->mTracing >= HTTP_TRACE_CURL_BODIES)
+ {
+ escape_libcurl_debug_data(buffer, len, false, safe_line);
+ }
+ else
+ {
+ std::ostringstream out;
+ out << len << " Bytes";
+ safe_line = out.str();
+ }
+ }
+ break;
+
+ case CURLINFO_DATA_OUT:
+ if (op->mTracing >= HTTP_TRACE_CURL_HEADERS)
+ {
+ tag = "DATAOUT";
+ logit = true;
+ if (op->mTracing >= HTTP_TRACE_CURL_BODIES)
+ {
+ escape_libcurl_debug_data(buffer, len, false, safe_line);
+ }
+ else
+ {
+ std::ostringstream out;
+ out << len << " Bytes";
+ safe_line = out.str();
+ }
+ }
+ break;
+
+ default:
+ logit = false;
+ break;
+ }
+
+ if (logit)
+ {
+ LL_INFOS("CoreHttp") << "TRACE, LibcurlDebug, Handle: "
+ << static_cast(op)
+ << ", Type: " << tag
+ << ", Data: " << safe_line
+ << LL_ENDL;
+ }
+
+ return 0;
+}
+
+
+} // end namespace LLCore
+
+
+// =======================================
+// Anonymous Namespace
+// =======================================
+
+namespace
+{
+
+int parse_content_range_header(char * buffer,
+ unsigned int * first,
+ unsigned int * last,
+ unsigned int * length)
+{
+ char * tok_state(NULL), * tok(NULL);
+ bool match(true);
+
+ if (! os_strtok_r(buffer, hdr_separator, &tok_state))
+ match = false;
+ if (match && (tok = os_strtok_r(NULL, hdr_whitespace, &tok_state)))
+ match = 0 == os_strcasecmp("bytes", tok);
+ if (match && ! (tok = os_strtok_r(NULL, " \t", &tok_state)))
+ match = false;
+ if (match)
+ {
+ unsigned int lcl_first(0), lcl_last(0), lcl_len(0);
+
+#if LL_WINDOWS
+ if (3 == sscanf_s(tok, "%u-%u/%u", &lcl_first, &lcl_last, &lcl_len))
+#else
+ if (3 == sscanf(tok, "%u-%u/%u", &lcl_first, &lcl_last, &lcl_len))
+#endif // LL_WINDOWS
+ {
+ if (lcl_first > lcl_last || lcl_last >= lcl_len)
+ return -1;
+ *first = lcl_first;
+ *last = lcl_last;
+ *length = lcl_len;
+ return 0;
+ }
+#if LL_WINDOWS
+ if (2 == sscanf_s(tok, "%u-%u/*", &lcl_first, &lcl_last))
+#else
+ if (2 == sscanf(tok, "%u-%u/*", &lcl_first, &lcl_last))
+#endif // LL_WINDOWS
+ {
+ if (lcl_first > lcl_last)
+ return -1;
+ *first = lcl_first;
+ *last = lcl_last;
+ *length = 0;
+ return 0;
+ }
+ }
+
+ // Header is there but badly/unexpectedly formed, try to ignore it.
+ return 1;
+}
+
+
+void escape_libcurl_debug_data(char * buffer, size_t len, bool scrub, std::string & safe_line)
+{
+ std::string out;
+ len = (std::min)(len, size_t(200));
+ out.reserve(3 * len);
+ for (int i(0); i < len; ++i)
+ {
+ unsigned char uc(static_cast(buffer[i]));
+
+ if (uc < 32 || uc > 126)
+ {
+ if (scrub)
+ {
+ out.append(1, ' ');
+ }
+ else
+ {
+ static const char hex[] = "0123456789ABCDEF";
+ char convert[4];
+
+ convert[0] = '%';
+ convert[1] = hex[(uc >> 4) % 16];
+ convert[2] = hex[uc % 16];
+ convert[3] = '\0';
+ out.append(convert);
+ }
+ }
+ else
+ {
+ out.append(1, buffer[i]);
+ }
+ }
+ safe_line.swap(out);
+}
+
+
+int os_strncasecmp(const char *s1, const char *s2, size_t n)
+{
+#if LL_WINDOWS
+ return _strnicmp(s1, s2, n);
+#else
+ return strncasecmp(s1, s2, n);
+#endif // LL_WINDOWS
+}
+
+
+int os_strcasecmp(const char *s1, const char *s2)
+{
+#if LL_WINDOWS
+ return _stricmp(s1, s2);
+#else
+ return strcasecmp(s1, s2);
+#endif // LL_WINDOWS
+}
+
+
+char * os_strtok_r(char *str, const char *delim, char ** savestate)
+{
+#if LL_WINDOWS
+ return strtok_s(str, delim, savestate);
+#else
+ return strtok_r(str, delim, savestate);
+#endif
+}
+
+
+} // end anonymous namespace
+
+
diff --git a/indra/llcorehttp/_httpoprequest.h b/indra/llcorehttp/_httpoprequest.h
new file mode 100644
index 0000000000..7b65d17783
--- /dev/null
+++ b/indra/llcorehttp/_httpoprequest.h
@@ -0,0 +1,219 @@
+/**
+ * @file _httpoprequest.h
+ * @brief Internal declarations for the HttpOpRequest subclass
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_OPREQUEST_H_
+#define _LLCORE_HTTP_OPREQUEST_H_
+
+
+#include "linden_common.h" // Modifies curl/curl.h interfaces
+
+#include
+#include
+
+#include "httpcommon.h"
+#include "httprequest.h"
+#include "_httpoperation.h"
+#include "_refcounted.h"
+
+
+namespace LLCore
+{
+
+
+class BufferArray;
+class HttpHeaders;
+class HttpOptions;
+
+
+/// HttpOpRequest requests a supported HTTP method invocation with
+/// option and header overrides.
+///
+/// Essentially an RPC to get an HTTP GET, POST or PUT executed
+/// asynchronously with options to override behaviors and HTTP
+/// headers.
+///
+/// Constructor creates a raw object incapable of useful work.
+/// A subsequent call to one of the setupXXX() methods provides
+/// the information needed to make a working request which can
+/// then be enqueued to a request queue.
+///
+
+class HttpOpRequest : public HttpOperation
+{
+public:
+ HttpOpRequest();
+
+protected:
+ virtual ~HttpOpRequest(); // Use release()
+
+private:
+ HttpOpRequest(const HttpOpRequest &); // Not defined
+ void operator=(const HttpOpRequest &); // Not defined
+
+public:
+ enum EMethod
+ {
+ HOR_GET,
+ HOR_POST,
+ HOR_PUT
+ };
+
+ virtual void stageFromRequest(HttpService *);
+ virtual void stageFromReady(HttpService *);
+ virtual void stageFromActive(HttpService *);
+
+ virtual void visitNotifier(HttpRequest * request);
+
+public:
+ /// Setup Methods
+ ///
+ /// Basically an RPC setup for each type of HTTP method
+ /// invocation with one per method type. These are
+ /// generally invoked right after construction.
+ ///
+ /// Threading: called by application thread
+ ///
+ HttpStatus setupGet(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ HttpOptions * options,
+ HttpHeaders * headers);
+
+ HttpStatus setupGetByteRange(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ size_t offset,
+ size_t len,
+ HttpOptions * options,
+ HttpHeaders * headers);
+
+ HttpStatus setupPost(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ BufferArray * body,
+ HttpOptions * options,
+ HttpHeaders * headers);
+
+ HttpStatus setupPut(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ BufferArray * body,
+ HttpOptions * options,
+ HttpHeaders * headers);
+
+ // Internal method used to setup the libcurl options for a request.
+ // Does all the libcurl handle setup in one place.
+ //
+ // Threading: called by worker thread
+ //
+ HttpStatus prepareRequest(HttpService * service);
+
+ virtual HttpStatus cancel();
+
+protected:
+ // Common setup for all the request methods.
+ //
+ // Threading: called by application thread
+ //
+ void setupCommon(HttpRequest::policy_t policy_id,
+ HttpRequest::priority_t priority,
+ const std::string & url,
+ BufferArray * body,
+ HttpOptions * options,
+ HttpHeaders * headers);
+
+ // libcurl operational callbacks
+ //
+ // Threading: called by worker thread
+ //
+ static size_t writeCallback(void * data, size_t size, size_t nmemb, void * userdata);
+ static size_t readCallback(void * data, size_t size, size_t nmemb, void * userdata);
+ static size_t headerCallback(void * data, size_t size, size_t nmemb, void * userdata);
+ static int debugCallback(CURL *, curl_infotype info, char * buffer, size_t len, void * userdata);
+
+protected:
+ unsigned int mProcFlags;
+ static const unsigned int PF_SCAN_RANGE_HEADER = 0x00000001U;
+ static const unsigned int PF_SAVE_HEADERS = 0x00000002U;
+
+public:
+ // Request data
+ EMethod mReqMethod;
+ std::string mReqURL;
+ BufferArray * mReqBody;
+ off_t mReqOffset;
+ size_t mReqLength;
+ HttpHeaders * mReqHeaders;
+ HttpOptions * mReqOptions;
+
+ // Transport data
+ bool mCurlActive;
+ CURL * mCurlHandle;
+ HttpService * mCurlService;
+ curl_slist * mCurlHeaders;
+ size_t mCurlBodyPos;
+
+ // Result data
+ HttpStatus mStatus;
+ BufferArray * mReplyBody;
+ off_t mReplyOffset;
+ size_t mReplyLength;
+ size_t mReplyFullLength;
+ HttpHeaders * mReplyHeaders;
+ std::string mReplyConType;
+
+ // Policy data
+ int mPolicyRetries;
+ HttpTime mPolicyRetryAt;
+ int mPolicyRetryLimit;
+}; // end class HttpOpRequest
+
+
+/// HttpOpRequestCompare isn't an operation but a uniform comparison
+/// functor for STL containers that order by priority. Mainly
+/// used for the ready queue container but defined here.
+class HttpOpRequestCompare
+{
+public:
+ bool operator()(const HttpOpRequest * lhs, const HttpOpRequest * rhs)
+ {
+ return lhs->mReqPriority > rhs->mReqPriority;
+ }
+}; // end class HttpOpRequestCompare
+
+
+// ---------------------------------------
+// Free functions
+// ---------------------------------------
+
+// Internal function to append the contents of an HttpHeaders
+// instance to a curl_slist object.
+curl_slist * append_headers_to_slist(const HttpHeaders *, curl_slist * slist);
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_OPREQUEST_H_
+
diff --git a/indra/llcorehttp/_httpopsetget.cpp b/indra/llcorehttp/_httpopsetget.cpp
new file mode 100644
index 0000000000..8198528a9b
--- /dev/null
+++ b/indra/llcorehttp/_httpopsetget.cpp
@@ -0,0 +1,97 @@
+/**
+ * @file _httpopsetget.cpp
+ * @brief Definitions for internal class HttpOpSetGet
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httpopsetget.h"
+
+#include "httpcommon.h"
+
+#include "_httpservice.h"
+#include "_httppolicy.h"
+
+
+namespace LLCore
+{
+
+
+// ==================================
+// HttpOpSetget
+// ==================================
+
+
+HttpOpSetGet::HttpOpSetGet()
+ : HttpOperation(),
+ mIsGlobal(false),
+ mDoSet(false),
+ mSetting(-1), // Nothing requested
+ mLongValue(0L)
+{}
+
+
+HttpOpSetGet::~HttpOpSetGet()
+{}
+
+
+void HttpOpSetGet::setupGet(HttpRequest::EGlobalPolicy setting)
+{
+ mIsGlobal = true;
+ mSetting = setting;
+}
+
+
+void HttpOpSetGet::setupSet(HttpRequest::EGlobalPolicy setting, const std::string & value)
+{
+ mIsGlobal = true;
+ mDoSet = true;
+ mSetting = setting;
+ mStrValue = value;
+}
+
+
+void HttpOpSetGet::stageFromRequest(HttpService * service)
+{
+ HttpPolicyGlobal & pol_opt(service->getPolicy().getGlobalOptions());
+ HttpRequest::EGlobalPolicy setting(static_cast(mSetting));
+
+ if (mDoSet)
+ {
+ mStatus = pol_opt.set(setting, mStrValue);
+ }
+ if (mStatus)
+ {
+ const std::string * value(NULL);
+ if ((mStatus = pol_opt.get(setting, &value)))
+ {
+ mStrValue = *value;
+ }
+ }
+
+ addAsReply();
+}
+
+
+} // end namespace LLCore
+
+
diff --git a/indra/llcorehttp/_httpopsetget.h b/indra/llcorehttp/_httpopsetget.h
new file mode 100644
index 0000000000..6966b9d94e
--- /dev/null
+++ b/indra/llcorehttp/_httpopsetget.h
@@ -0,0 +1,83 @@
+/**
+ * @file _httpopsetget.h
+ * @brief Internal declarations for the HttpOpSetGet subclass
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_OPSETGET_H_
+#define _LLCORE_HTTP_OPSETGET_H_
+
+
+#include "linden_common.h" // Modifies curl/curl.h interfaces
+
+#include "httpcommon.h"
+
+#include
+
+#include "_httpoperation.h"
+#include "_refcounted.h"
+
+
+namespace LLCore
+{
+
+
+/// HttpOpSetGet requests dynamic changes to policy and
+/// configuration settings.
+///
+/// *NOTE: Expect this to change. Don't really like it yet.
+
+class HttpOpSetGet : public HttpOperation
+{
+public:
+ HttpOpSetGet();
+
+protected:
+ virtual ~HttpOpSetGet(); // Use release()
+
+private:
+ HttpOpSetGet(const HttpOpSetGet &); // Not defined
+ void operator=(const HttpOpSetGet &); // Not defined
+
+public:
+ /// Threading: called by application thread
+ void setupGet(HttpRequest::EGlobalPolicy setting);
+ void setupSet(HttpRequest::EGlobalPolicy setting, const std::string & value);
+
+ virtual void stageFromRequest(HttpService *);
+
+public:
+ // Request data
+ bool mIsGlobal;
+ bool mDoSet;
+ int mSetting;
+ long mLongValue;
+ std::string mStrValue;
+
+}; // end class HttpOpSetGet
+
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_OPSETGET_H_
+
diff --git a/indra/llcorehttp/_httpopsetpriority.cpp b/indra/llcorehttp/_httpopsetpriority.cpp
new file mode 100644
index 0000000000..d48c7a0b7d
--- /dev/null
+++ b/indra/llcorehttp/_httpopsetpriority.cpp
@@ -0,0 +1,63 @@
+/**
+ * @file _httpopsetpriority.cpp
+ * @brief Definitions for internal classes based on HttpOpSetPriority
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httpopsetpriority.h"
+
+#include "httpresponse.h"
+#include "httphandler.h"
+#include "_httpservice.h"
+
+
+namespace LLCore
+{
+
+
+HttpOpSetPriority::HttpOpSetPriority(HttpHandle handle, HttpRequest::priority_t priority)
+ : HttpOperation(),
+ mHandle(handle),
+ mPriority(priority)
+{}
+
+
+HttpOpSetPriority::~HttpOpSetPriority()
+{}
+
+
+void HttpOpSetPriority::stageFromRequest(HttpService * service)
+{
+ // Do operations
+ if (! service->changePriority(mHandle, mPriority))
+ {
+ // Request not found, fail the final status
+ mStatus = HttpStatus(HttpStatus::LLCORE, HE_HANDLE_NOT_FOUND);
+ }
+
+ // Move directly to response queue
+ addAsReply();
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httpopsetpriority.h b/indra/llcorehttp/_httpopsetpriority.h
new file mode 100644
index 0000000000..31706b737c
--- /dev/null
+++ b/indra/llcorehttp/_httpopsetpriority.h
@@ -0,0 +1,73 @@
+/**
+ * @file _httpsetpriority.h
+ * @brief Internal declarations for HttpSetPriority
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_SETPRIORITY_H_
+#define _LLCORE_HTTP_SETPRIORITY_H_
+
+
+#include "httpcommon.h"
+#include "httprequest.h"
+#include "_httpoperation.h"
+#include "_refcounted.h"
+
+
+namespace LLCore
+{
+
+
+/// HttpOpSetPriority is an immediate request that
+/// searches the various queues looking for a given
+/// request handle and changing it's priority if
+/// found.
+///
+/// *NOTE: This will very likely be removed in the near future
+/// when priority is removed from the library.
+
+class HttpOpSetPriority : public HttpOperation
+{
+public:
+ HttpOpSetPriority(HttpHandle handle, HttpRequest::priority_t priority);
+
+protected:
+ virtual ~HttpOpSetPriority();
+
+private:
+ HttpOpSetPriority(const HttpOpSetPriority &); // Not defined
+ void operator=(const HttpOpSetPriority &); // Not defined
+
+public:
+ virtual void stageFromRequest(HttpService *);
+
+protected:
+ // Request Data
+ HttpHandle mHandle;
+ HttpRequest::priority_t mPriority;
+}; // end class HttpOpSetPriority
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_SETPRIORITY_H_
+
diff --git a/indra/llcorehttp/_httppolicy.cpp b/indra/llcorehttp/_httppolicy.cpp
new file mode 100644
index 0000000000..76c1e22431
--- /dev/null
+++ b/indra/llcorehttp/_httppolicy.cpp
@@ -0,0 +1,387 @@
+/**
+ * @file _httppolicy.cpp
+ * @brief Internal definitions of the Http policy thread
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "linden_common.h"
+
+#include "_httppolicy.h"
+
+#include "_httpoprequest.h"
+#include "_httpservice.h"
+#include "_httplibcurl.h"
+#include "_httppolicyclass.h"
+
+#include "lltimer.h"
+
+
+namespace LLCore
+{
+
+
+// Per-policy-class data for a running system.
+// Collection of queues, parameters, history, metrics, etc.
+// for a single policy class.
+//
+// Threading: accessed only by worker thread
+struct HttpPolicy::State
+{
+public:
+ State()
+ : mConnMax(HTTP_CONNECTION_LIMIT_DEFAULT),
+ mConnAt(HTTP_CONNECTION_LIMIT_DEFAULT),
+ mConnMin(1),
+ mNextSample(0),
+ mErrorCount(0),
+ mErrorFactor(0)
+ {}
+
+ HttpReadyQueue mReadyQueue;
+ HttpRetryQueue mRetryQueue;
+
+ HttpPolicyClass mOptions;
+
+ long mConnMax;
+ long mConnAt;
+ long mConnMin;
+
+ HttpTime mNextSample;
+ unsigned long mErrorCount;
+ unsigned long mErrorFactor;
+};
+
+
+HttpPolicy::HttpPolicy(HttpService * service)
+ : mActiveClasses(0),
+ mState(NULL),
+ mService(service)
+{}
+
+
+HttpPolicy::~HttpPolicy()
+{
+ shutdown();
+
+ mService = NULL;
+}
+
+
+void HttpPolicy::shutdown()
+{
+ for (int policy_class(0); policy_class < mActiveClasses; ++policy_class)
+ {
+ HttpRetryQueue & retryq(mState[policy_class].mRetryQueue);
+ while (! retryq.empty())
+ {
+ HttpOpRequest * op(retryq.top());
+ retryq.pop();
+
+ op->cancel();
+ op->release();
+ }
+
+ HttpReadyQueue & readyq(mState[policy_class].mReadyQueue);
+ while (! readyq.empty())
+ {
+ HttpOpRequest * op(readyq.top());
+ readyq.pop();
+
+ op->cancel();
+ op->release();
+ }
+ }
+ delete [] mState;
+ mState = NULL;
+ mActiveClasses = 0;
+}
+
+
+void HttpPolicy::start(const HttpPolicyGlobal & global,
+ const std::vector & classes)
+{
+ llassert_always(! mState);
+
+ mGlobalOptions = global;
+ mActiveClasses = classes.size();
+ mState = new State [mActiveClasses];
+ for (int i(0); i < mActiveClasses; ++i)
+ {
+ mState[i].mOptions = classes[i];
+ mState[i].mConnMax = classes[i].mConnectionLimit;
+ mState[i].mConnAt = mState[i].mConnMax;
+ mState[i].mConnMin = 2;
+ }
+}
+
+
+void HttpPolicy::addOp(HttpOpRequest * op)
+{
+ const int policy_class(op->mReqPolicy);
+
+ op->mPolicyRetries = 0;
+ mState[policy_class].mReadyQueue.push(op);
+}
+
+
+void HttpPolicy::retryOp(HttpOpRequest * op)
+{
+ static const HttpTime retry_deltas[] =
+ {
+ 250000, // 1st retry in 0.25 S, etc...
+ 500000,
+ 1000000,
+ 2000000,
+ 5000000 // ... to every 5.0 S.
+ };
+ static const int delta_max(int(LL_ARRAY_SIZE(retry_deltas)) - 1);
+
+ const HttpTime now(totalTime());
+ const int policy_class(op->mReqPolicy);
+
+ const HttpTime delta(retry_deltas[llclamp(op->mPolicyRetries, 0, delta_max)]);
+ op->mPolicyRetryAt = now + delta;
+ ++op->mPolicyRetries;
+ LL_WARNS("CoreHttp") << "HTTP request " << static_cast(op)
+ << " retry " << op->mPolicyRetries
+ << " scheduled for +" << (delta / HttpTime(1000))
+ << " mS. Status: " << op->mStatus.toHex()
+ << LL_ENDL;
+ if (op->mTracing > 0)
+ {
+ LL_INFOS("CoreHttp") << "TRACE, ToRetryQueue, Handle: "
+ << static_cast(op)
+ << LL_ENDL;
+ }
+ mState[policy_class].mRetryQueue.push(op);
+}
+
+
+// Attempt to deliver requests to the transport layer.
+//
+// Tries to find HTTP requests for each policy class with
+// available capacity. Starts with the retry queue first
+// looking for requests that have waited long enough then
+// moves on to the ready queue.
+//
+// If all queues are empty, will return an indication that
+// the worker thread may sleep hard otherwise will ask for
+// normal polling frequency.
+//
+HttpService::ELoopSpeed HttpPolicy::processReadyQueue()
+{
+ const HttpTime now(totalTime());
+ HttpService::ELoopSpeed result(HttpService::REQUEST_SLEEP);
+ HttpLibcurl & transport(mService->getTransport());
+
+ for (int policy_class(0); policy_class < mActiveClasses; ++policy_class)
+ {
+ State & state(mState[policy_class]);
+ int active(transport.getActiveCountInClass(policy_class));
+ int needed(state.mConnAt - active); // Expect negatives here
+
+ HttpRetryQueue & retryq(state.mRetryQueue);
+ HttpReadyQueue & readyq(state.mReadyQueue);
+
+ if (needed > 0)
+ {
+ // First see if we have any retries...
+ while (needed > 0 && ! retryq.empty())
+ {
+ HttpOpRequest * op(retryq.top());
+ if (op->mPolicyRetryAt > now)
+ break;
+
+ retryq.pop();
+
+ op->stageFromReady(mService);
+ op->release();
+
+ --needed;
+ }
+
+ // Now go on to the new requests...
+ while (needed > 0 && ! readyq.empty())
+ {
+ HttpOpRequest * op(readyq.top());
+ readyq.pop();
+
+ op->stageFromReady(mService);
+ op->release();
+
+ --needed;
+ }
+ }
+
+ if (! readyq.empty() || ! retryq.empty())
+ {
+ // If anything is ready, continue looping...
+ result = HttpService::NORMAL;
+ }
+ } // end foreach policy_class
+
+ return result;
+}
+
+
+bool HttpPolicy::changePriority(HttpHandle handle, HttpRequest::priority_t priority)
+{
+ for (int policy_class(0); policy_class < mActiveClasses; ++policy_class)
+ {
+ State & state(mState[policy_class]);
+ // We don't scan retry queue because a priority change there
+ // is meaningless. The request will be issued based on retry
+ // intervals not priority value, which is now moot.
+
+ // Scan ready queue for requests that match policy
+ HttpReadyQueue::container_type & c(state.mReadyQueue.get_container());
+ for (HttpReadyQueue::container_type::iterator iter(c.begin()); c.end() != iter;)
+ {
+ HttpReadyQueue::container_type::iterator cur(iter++);
+
+ if (static_cast(*cur) == handle)
+ {
+ HttpOpRequest * op(*cur);
+ c.erase(cur); // All iterators are now invalidated
+ op->mReqPriority = priority;
+ state.mReadyQueue.push(op); // Re-insert using adapter class
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+
+bool HttpPolicy::cancel(HttpHandle handle)
+{
+ for (int policy_class(0); policy_class < mActiveClasses; ++policy_class)
+ {
+ State & state(mState[policy_class]);
+
+ // Scan retry queue
+ HttpRetryQueue::container_type & c1(state.mRetryQueue.get_container());
+ for (HttpRetryQueue::container_type::iterator iter(c1.begin()); c1.end() != iter;)
+ {
+ HttpRetryQueue::container_type::iterator cur(iter++);
+
+ if (static_cast(*cur) == handle)
+ {
+ HttpOpRequest * op(*cur);
+ c1.erase(cur); // All iterators are now invalidated
+ op->cancel();
+ op->release();
+ return true;
+ }
+ }
+
+ // Scan ready queue
+ HttpReadyQueue::container_type & c2(state.mReadyQueue.get_container());
+ for (HttpReadyQueue::container_type::iterator iter(c2.begin()); c2.end() != iter;)
+ {
+ HttpReadyQueue::container_type::iterator cur(iter++);
+
+ if (static_cast(*cur) == handle)
+ {
+ HttpOpRequest * op(*cur);
+ c2.erase(cur); // All iterators are now invalidated
+ op->cancel();
+ op->release();
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+
+bool HttpPolicy::stageAfterCompletion(HttpOpRequest * op)
+{
+ static const HttpStatus cant_connect(HttpStatus::EXT_CURL_EASY, CURLE_COULDNT_CONNECT);
+ static const HttpStatus cant_res_proxy(HttpStatus::EXT_CURL_EASY, CURLE_COULDNT_RESOLVE_PROXY);
+ static const HttpStatus cant_res_host(HttpStatus::EXT_CURL_EASY, CURLE_COULDNT_RESOLVE_HOST);
+ static const HttpStatus send_error(HttpStatus::EXT_CURL_EASY, CURLE_SEND_ERROR);
+ static const HttpStatus recv_error(HttpStatus::EXT_CURL_EASY, CURLE_RECV_ERROR);
+ static const HttpStatus upload_failed(HttpStatus::EXT_CURL_EASY, CURLE_UPLOAD_FAILED);
+ static const HttpStatus op_timedout(HttpStatus::EXT_CURL_EASY, CURLE_OPERATION_TIMEDOUT);
+ static const HttpStatus post_error(HttpStatus::EXT_CURL_EASY, CURLE_HTTP_POST_ERROR);
+
+ // Retry or finalize
+ if (! op->mStatus)
+ {
+ // If this failed, we might want to retry. Have to inspect
+ // the status a little more deeply for those reasons worth retrying...
+ if (op->mPolicyRetries < op->mPolicyRetryLimit &&
+ ((op->mStatus.isHttpStatus() && op->mStatus.mType >= 499 && op->mStatus.mType <= 599) ||
+ cant_connect == op->mStatus ||
+ cant_res_proxy == op->mStatus ||
+ cant_res_host == op->mStatus ||
+ send_error == op->mStatus ||
+ recv_error == op->mStatus ||
+ upload_failed == op->mStatus ||
+ op_timedout == op->mStatus ||
+ post_error == op->mStatus))
+ {
+ // Okay, worth a retry. We include 499 in this test as
+ // it's the old 'who knows?' error from many grid services...
+ retryOp(op);
+ return true; // still active/ready
+ }
+ }
+
+ // This op is done, finalize it delivering it to the reply queue...
+ if (! op->mStatus)
+ {
+ LL_WARNS("CoreHttp") << "HTTP request " << static_cast(op)
+ << " failed after " << op->mPolicyRetries
+ << " retries. Reason: " << op->mStatus.toString()
+ << " (" << op->mStatus.toHex() << ")"
+ << LL_ENDL;
+ }
+ else if (op->mPolicyRetries)
+ {
+ LL_WARNS("CoreHttp") << "HTTP request " << static_cast(op)
+ << " succeeded on retry " << op->mPolicyRetries << "."
+ << LL_ENDL;
+ }
+
+ op->stageFromActive(mService);
+ op->release();
+ return false; // not active
+}
+
+
+int HttpPolicy::getReadyCount(HttpRequest::policy_t policy_class) const
+{
+ if (policy_class < mActiveClasses)
+ {
+ return (mState[policy_class].mReadyQueue.size()
+ + mState[policy_class].mRetryQueue.size());
+ }
+ return 0;
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httppolicy.h b/indra/llcorehttp/_httppolicy.h
new file mode 100644
index 0000000000..03d92c0b8e
--- /dev/null
+++ b/indra/llcorehttp/_httppolicy.h
@@ -0,0 +1,161 @@
+/**
+ * @file _httppolicy.h
+ * @brief Declarations for internal class enforcing policy decisions.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_POLICY_H_
+#define _LLCORE_HTTP_POLICY_H_
+
+
+#include "httprequest.h"
+#include "_httpservice.h"
+#include "_httpreadyqueue.h"
+#include "_httpretryqueue.h"
+#include "_httppolicyglobal.h"
+#include "_httppolicyclass.h"
+#include "_httpinternal.h"
+
+
+namespace LLCore
+{
+
+class HttpReadyQueue;
+class HttpOpRequest;
+
+
+/// Implements class-based queuing policies for an HttpService instance.
+///
+/// Threading: Single-threaded. Other than for construction/destruction,
+/// all methods are expected to be invoked in a single thread, typically
+/// a worker thread of some sort.
+class HttpPolicy
+{
+public:
+ HttpPolicy(HttpService *);
+ virtual ~HttpPolicy();
+
+private:
+ HttpPolicy(const HttpPolicy &); // Not defined
+ void operator=(const HttpPolicy &); // Not defined
+
+public:
+ /// Cancel all ready and retry requests sending them to
+ /// their notification queues. Release state resources
+ /// making further request handling impossible.
+ ///
+ /// Threading: called by worker thread
+ void shutdown();
+
+ /// Deliver policy definitions and enable handling of
+ /// requests. One-time call invoked before starting
+ /// the worker thread.
+ ///
+ /// Threading: called by application thread
+ void start(const HttpPolicyGlobal & global,
+ const std::vector & classes);
+
+ /// Give the policy layer some cycles to scan the ready
+ /// queue promoting higher-priority requests to active
+ /// as permited.
+ ///
+ /// @return Indication of how soon this method
+ /// should be called again.
+ ///
+ /// Threading: called by worker thread
+ HttpService::ELoopSpeed processReadyQueue();
+
+ /// Add request to a ready queue. Caller is expected to have
+ /// provided us with a reference count to hold the request. (No
+ /// additional references will be added.)
+ ///
+ /// OpRequest is owned by the request queue after this call
+ /// and should not be modified by anyone until retrieved
+ /// from queue.
+ ///
+ /// Threading: called by any thread
+ void addOp(HttpOpRequest *);
+
+ /// Similar to addOp, used when a caller wants to retry a
+ /// request that has failed. It's placed on a special retry
+ /// queue but ordered by retry time not priority. Otherwise,
+ /// handling is the same and retried operations are considered
+ /// before new ones but that doesn't guarantee completion
+ /// order.
+ ///
+ /// Threading: called by worker thread
+ void retryOp(HttpOpRequest *);
+
+ /// Attempt to change the priority of an earlier request.
+ /// Request that Shadows HttpService's method
+ ///
+ /// Threading: called by worker thread
+ bool changePriority(HttpHandle handle, HttpRequest::priority_t priority);
+
+ /// Attempt to cancel a previous request.
+ /// Shadows HttpService's method as well
+ ///
+ /// Threading: called by worker thread
+ bool cancel(HttpHandle handle);
+
+ /// When transport is finished with an op and takes it off the
+ /// active queue, it is delivered here for dispatch. Policy
+ /// may send it back to the ready/retry queues if it needs another
+ /// go or we may finalize it and send it on to the reply queue.
+ ///
+ /// @return Returns true of the request is still active
+ /// or ready after staging, false if has been
+ /// sent on to the reply queue.
+ ///
+ /// Threading: called by worker thread
+ bool stageAfterCompletion(HttpOpRequest * op);
+
+ // Get pointer to global policy options. Caller is expected
+ // to do context checks like no setting once running.
+ ///
+ /// Threading: called by any thread *but* the object may
+ /// only be modified by the worker thread once running.
+ ///
+ HttpPolicyGlobal & getGlobalOptions()
+ {
+ return mGlobalOptions;
+ }
+
+ /// Get ready counts for a particular policy class
+ ///
+ /// Threading: called by worker thread
+ int getReadyCount(HttpRequest::policy_t policy_class) const;
+
+protected:
+ struct State;
+
+ int mActiveClasses;
+ State * mState;
+ HttpService * mService; // Naked pointer, not refcounted, not owner
+ HttpPolicyGlobal mGlobalOptions;
+
+}; // end class HttpPolicy
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_POLICY_H_
diff --git a/indra/llcorehttp/_httppolicyclass.cpp b/indra/llcorehttp/_httppolicyclass.cpp
new file mode 100644
index 0000000000..a23b81322c
--- /dev/null
+++ b/indra/llcorehttp/_httppolicyclass.cpp
@@ -0,0 +1,125 @@
+/**
+ * @file _httppolicyclass.cpp
+ * @brief Definitions for internal class defining class policy option.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httppolicyclass.h"
+
+#include "_httpinternal.h"
+
+
+namespace LLCore
+{
+
+
+HttpPolicyClass::HttpPolicyClass()
+ : mSetMask(0UL),
+ mConnectionLimit(HTTP_CONNECTION_LIMIT_DEFAULT),
+ mPerHostConnectionLimit(HTTP_CONNECTION_LIMIT_DEFAULT),
+ mPipelining(0)
+{}
+
+
+HttpPolicyClass::~HttpPolicyClass()
+{}
+
+
+HttpPolicyClass & HttpPolicyClass::operator=(const HttpPolicyClass & other)
+{
+ if (this != &other)
+ {
+ mSetMask = other.mSetMask;
+ mConnectionLimit = other.mConnectionLimit;
+ mPerHostConnectionLimit = other.mPerHostConnectionLimit;
+ mPipelining = other.mPipelining;
+ }
+ return *this;
+}
+
+
+HttpPolicyClass::HttpPolicyClass(const HttpPolicyClass & other)
+ : mSetMask(other.mSetMask),
+ mConnectionLimit(other.mConnectionLimit),
+ mPerHostConnectionLimit(other.mPerHostConnectionLimit),
+ mPipelining(other.mPipelining)
+{}
+
+
+HttpStatus HttpPolicyClass::set(HttpRequest::EClassPolicy opt, long value)
+{
+ switch (opt)
+ {
+ case HttpRequest::CP_CONNECTION_LIMIT:
+ mConnectionLimit = llclamp(value, long(HTTP_CONNECTION_LIMIT_MIN), long(HTTP_CONNECTION_LIMIT_MAX));
+ break;
+
+ case HttpRequest::CP_PER_HOST_CONNECTION_LIMIT:
+ mPerHostConnectionLimit = llclamp(value, long(HTTP_CONNECTION_LIMIT_MIN), mConnectionLimit);
+ break;
+
+ case HttpRequest::CP_ENABLE_PIPELINING:
+ mPipelining = llclamp(value, 0L, 1L);
+ break;
+
+ default:
+ return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+ }
+
+ mSetMask |= 1UL << int(opt);
+ return HttpStatus();
+}
+
+
+HttpStatus HttpPolicyClass::get(HttpRequest::EClassPolicy opt, long * value)
+{
+ static const HttpStatus not_set(HttpStatus::LLCORE, HE_OPT_NOT_SET);
+ long * src(NULL);
+
+ switch (opt)
+ {
+ case HttpRequest::CP_CONNECTION_LIMIT:
+ src = &mConnectionLimit;
+ break;
+
+ case HttpRequest::CP_PER_HOST_CONNECTION_LIMIT:
+ src = &mPerHostConnectionLimit;
+ break;
+
+ case HttpRequest::CP_ENABLE_PIPELINING:
+ src = &mPipelining;
+ break;
+
+ default:
+ return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+ }
+
+ if (! (mSetMask & (1UL << int(opt))))
+ return not_set;
+
+ *value = *src;
+ return HttpStatus();
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httppolicyclass.h b/indra/llcorehttp/_httppolicyclass.h
new file mode 100644
index 0000000000..d175413cbd
--- /dev/null
+++ b/indra/llcorehttp/_httppolicyclass.h
@@ -0,0 +1,59 @@
+/**
+ * @file _httppolicyclass.h
+ * @brief Declarations for internal class defining policy class options.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_POLICY_CLASS_H_
+#define _LLCORE_HTTP_POLICY_CLASS_H_
+
+
+#include "httprequest.h"
+
+
+namespace LLCore
+{
+
+class HttpPolicyClass
+{
+public:
+ HttpPolicyClass();
+ ~HttpPolicyClass();
+
+ HttpPolicyClass & operator=(const HttpPolicyClass &);
+ HttpPolicyClass(const HttpPolicyClass &); // Not defined
+
+public:
+ HttpStatus set(HttpRequest::EClassPolicy opt, long value);
+ HttpStatus get(HttpRequest::EClassPolicy opt, long * value);
+
+public:
+ unsigned long mSetMask;
+ long mConnectionLimit;
+ long mPerHostConnectionLimit;
+ long mPipelining;
+}; // end class HttpPolicyClass
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_POLICY_CLASS_H_
diff --git a/indra/llcorehttp/_httppolicyglobal.cpp b/indra/llcorehttp/_httppolicyglobal.cpp
new file mode 100644
index 0000000000..72f409d3b1
--- /dev/null
+++ b/indra/llcorehttp/_httppolicyglobal.cpp
@@ -0,0 +1,175 @@
+/**
+ * @file _httppolicyglobal.cpp
+ * @brief Definitions for internal class defining global policy option.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httppolicyglobal.h"
+
+#include "_httpinternal.h"
+
+
+namespace LLCore
+{
+
+
+HttpPolicyGlobal::HttpPolicyGlobal()
+ : mSetMask(0UL),
+ mConnectionLimit(HTTP_CONNECTION_LIMIT_DEFAULT),
+ mTrace(HTTP_TRACE_OFF),
+ mUseLLProxy(0)
+{}
+
+
+HttpPolicyGlobal::~HttpPolicyGlobal()
+{}
+
+
+HttpPolicyGlobal & HttpPolicyGlobal::operator=(const HttpPolicyGlobal & other)
+{
+ if (this != &other)
+ {
+ mSetMask = other.mSetMask;
+ mConnectionLimit = other.mConnectionLimit;
+ mCAPath = other.mCAPath;
+ mCAFile = other.mCAFile;
+ mHttpProxy = other.mHttpProxy;
+ mTrace = other.mTrace;
+ mUseLLProxy = other.mUseLLProxy;
+ }
+ return *this;
+}
+
+
+HttpStatus HttpPolicyGlobal::set(HttpRequest::EGlobalPolicy opt, long value)
+{
+ switch (opt)
+ {
+ case HttpRequest::GP_CONNECTION_LIMIT:
+ mConnectionLimit = llclamp(value, long(HTTP_CONNECTION_LIMIT_MIN), long(HTTP_CONNECTION_LIMIT_MAX));
+ break;
+
+ case HttpRequest::GP_TRACE:
+ mTrace = llclamp(value, long(HTTP_TRACE_MIN), long(HTTP_TRACE_MAX));
+ break;
+
+ case HttpRequest::GP_LLPROXY:
+ mUseLLProxy = llclamp(value, 0L, 1L);
+ break;
+
+ default:
+ return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+ }
+
+ mSetMask |= 1UL << int(opt);
+ return HttpStatus();
+}
+
+
+HttpStatus HttpPolicyGlobal::set(HttpRequest::EGlobalPolicy opt, const std::string & value)
+{
+ switch (opt)
+ {
+ case HttpRequest::GP_CA_PATH:
+ mCAPath = value;
+ break;
+
+ case HttpRequest::GP_CA_FILE:
+ mCAFile = value;
+ break;
+
+ case HttpRequest::GP_HTTP_PROXY:
+ mCAFile = value;
+ break;
+
+ default:
+ return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+ }
+
+ mSetMask |= 1UL << int(opt);
+ return HttpStatus();
+}
+
+
+HttpStatus HttpPolicyGlobal::get(HttpRequest::EGlobalPolicy opt, long * value)
+{
+ static const HttpStatus not_set(HttpStatus::LLCORE, HE_OPT_NOT_SET);
+ long * src(NULL);
+
+ switch (opt)
+ {
+ case HttpRequest::GP_CONNECTION_LIMIT:
+ src = &mConnectionLimit;
+ break;
+
+ case HttpRequest::GP_TRACE:
+ src = &mTrace;
+ break;
+
+ case HttpRequest::GP_LLPROXY:
+ src = &mUseLLProxy;
+ break;
+
+ default:
+ return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+ }
+
+ if (! (mSetMask & (1UL << int(opt))))
+ return not_set;
+
+ *value = *src;
+ return HttpStatus();
+}
+
+
+HttpStatus HttpPolicyGlobal::get(HttpRequest::EGlobalPolicy opt, const std::string ** value)
+{
+ static const HttpStatus not_set(HttpStatus::LLCORE, HE_OPT_NOT_SET);
+ const std::string * src(NULL);
+
+ switch (opt)
+ {
+ case HttpRequest::GP_CA_PATH:
+ src = &mCAPath;
+ break;
+
+ case HttpRequest::GP_CA_FILE:
+ src = &mCAFile;
+ break;
+
+ case HttpRequest::GP_HTTP_PROXY:
+ src = &mHttpProxy;
+ break;
+
+ default:
+ return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+ }
+
+ if (! (mSetMask & (1UL << int(opt))))
+ return not_set;
+
+ *value = src;
+ return HttpStatus();
+}
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httppolicyglobal.h b/indra/llcorehttp/_httppolicyglobal.h
new file mode 100644
index 0000000000..a50d0e4188
--- /dev/null
+++ b/indra/llcorehttp/_httppolicyglobal.h
@@ -0,0 +1,66 @@
+/**
+ * @file _httppolicyglobal.h
+ * @brief Declarations for internal class defining global policy option.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_POLICY_GLOBAL_H_
+#define _LLCORE_HTTP_POLICY_GLOBAL_H_
+
+
+#include "httprequest.h"
+
+
+namespace LLCore
+{
+
+class HttpPolicyGlobal
+{
+public:
+ HttpPolicyGlobal();
+ ~HttpPolicyGlobal();
+
+ HttpPolicyGlobal & operator=(const HttpPolicyGlobal &);
+
+private:
+ HttpPolicyGlobal(const HttpPolicyGlobal &); // Not defined
+
+public:
+ HttpStatus set(HttpRequest::EGlobalPolicy opt, long value);
+ HttpStatus set(HttpRequest::EGlobalPolicy opt, const std::string & value);
+ HttpStatus get(HttpRequest::EGlobalPolicy opt, long * value);
+ HttpStatus get(HttpRequest::EGlobalPolicy opt, const std::string ** value);
+
+public:
+ unsigned long mSetMask;
+ long mConnectionLimit;
+ std::string mCAPath;
+ std::string mCAFile;
+ std::string mHttpProxy;
+ long mTrace;
+ long mUseLLProxy;
+}; // end class HttpPolicyGlobal
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_POLICY_GLOBAL_H_
diff --git a/indra/llcorehttp/_httpreadyqueue.h b/indra/llcorehttp/_httpreadyqueue.h
new file mode 100644
index 0000000000..5f19a9c5f9
--- /dev/null
+++ b/indra/llcorehttp/_httpreadyqueue.h
@@ -0,0 +1,124 @@
+/**
+ * @file _httpreadyqueue.h
+ * @brief Internal declaration for the operation ready queue
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_READY_QUEUE_H_
+#define _LLCORE_HTTP_READY_QUEUE_H_
+
+
+#include
+
+#include "_httpinternal.h"
+#include "_httpoprequest.h"
+
+
+namespace LLCore
+{
+
+/// HttpReadyQueue provides a simple priority queue for HttpOpRequest objects.
+///
+/// This uses the priority_queue adaptor class to provide the queue
+/// as well as the ordering scheme while allowing us access to the
+/// raw container if we follow a few simple rules. One of the more
+/// important of those rules is that any iterator becomes invalid
+/// on element erasure. So pay attention.
+///
+/// If LLCORE_HTTP_READY_QUEUE_IGNORES_PRIORITY tests true, the class
+/// implements a std::priority_queue interface but on std::deque
+/// behavior to eliminate sensitivity to priority. In the future,
+/// this will likely become the only behavior or it may become
+/// a run-time election.
+///
+/// Threading: not thread-safe. Expected to be used entirely by
+/// a single thread, typically a worker thread of some sort.
+
+#if LLCORE_HTTP_READY_QUEUE_IGNORES_PRIORITY
+
+typedef std::deque HttpReadyQueueBase;
+
+#else
+
+typedef std::priority_queue,
+ LLCore::HttpOpRequestCompare> HttpReadyQueueBase;
+
+#endif // LLCORE_HTTP_READY_QUEUE_IGNORES_PRIORITY
+
+class HttpReadyQueue : public HttpReadyQueueBase
+{
+public:
+ HttpReadyQueue()
+ : HttpReadyQueueBase()
+ {}
+
+ ~HttpReadyQueue()
+ {}
+
+protected:
+ HttpReadyQueue(const HttpReadyQueue &); // Not defined
+ void operator=(const HttpReadyQueue &); // Not defined
+
+public:
+
+#if LLCORE_HTTP_READY_QUEUE_IGNORES_PRIORITY
+ // Types and methods needed to make a std::deque look
+ // more like a std::priority_queue, at least for our
+ // purposes.
+ typedef HttpReadyQueueBase container_type;
+
+ const_reference top() const
+ {
+ return front();
+ }
+
+ void pop()
+ {
+ pop_front();
+ }
+
+ void push(const value_type & v)
+ {
+ push_back(v);
+ }
+
+#endif // LLCORE_HTTP_READY_QUEUE_IGNORES_PRIORITY
+
+ const container_type & get_container() const
+ {
+ return *this;
+ }
+
+ container_type & get_container()
+ {
+ return *this;
+ }
+
+}; // end class HttpReadyQueue
+
+
+} // end namespace LLCore
+
+
+#endif // _LLCORE_HTTP_READY_QUEUE_H_
diff --git a/indra/llcorehttp/_httpreplyqueue.cpp b/indra/llcorehttp/_httpreplyqueue.cpp
new file mode 100644
index 0000000000..558b7bdee9
--- /dev/null
+++ b/indra/llcorehttp/_httpreplyqueue.cpp
@@ -0,0 +1,107 @@
+/**
+ * @file _httpreplyqueue.cpp
+ * @brief Internal definitions for the operation reply queue
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httpreplyqueue.h"
+
+
+#include "_mutex.h"
+#include "_thread.h"
+#include "_httpoperation.h"
+
+using namespace LLCoreInt;
+
+
+namespace LLCore
+{
+
+
+HttpReplyQueue::HttpReplyQueue()
+ : RefCounted(true)
+{
+}
+
+
+HttpReplyQueue::~HttpReplyQueue()
+{
+ while (! mQueue.empty())
+ {
+ HttpOperation * op = mQueue.back();
+ mQueue.pop_back();
+ op->release();
+ }
+}
+
+
+void HttpReplyQueue::addOp(HttpOperation * op)
+{
+ {
+ HttpScopedLock lock(mQueueMutex);
+
+ mQueue.push_back(op);
+ }
+ mQueueCV.notify_all();
+}
+
+
+HttpOperation * HttpReplyQueue::fetchOp()
+{
+ HttpOperation * result(NULL);
+
+ {
+ HttpScopedLock lock(mQueueMutex);
+
+ if (mQueue.empty())
+ return NULL;
+
+ result = mQueue.front();
+ mQueue.erase(mQueue.begin());
+ }
+
+ // Caller also acquires the reference count
+ return result;
+}
+
+
+void HttpReplyQueue::fetchAll(OpContainer & ops)
+{
+ // Not valid putting something back on the queue...
+ llassert_always(ops.empty());
+
+ {
+ HttpScopedLock lock(mQueueMutex);
+
+ if (! mQueue.empty())
+ {
+ mQueue.swap(ops);
+ }
+ }
+
+ // Caller also acquires the reference counts on each op.
+ return;
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httpreplyqueue.h b/indra/llcorehttp/_httpreplyqueue.h
new file mode 100644
index 0000000000..4220a09a3b
--- /dev/null
+++ b/indra/llcorehttp/_httpreplyqueue.h
@@ -0,0 +1,108 @@
+/**
+ * @file _httpreplyqueue.h
+ * @brief Internal declarations for the operation reply queue.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_REPLY_QUEUE_H_
+#define _LLCORE_HTTP_REPLY_QUEUE_H_
+
+
+#include "_refcounted.h"
+#include "_mutex.h"
+
+
+namespace LLCore
+{
+
+
+class HttpOperation;
+
+
+/// Almost identical to the HttpRequestQueue class but
+/// whereas that class is a singleton and is known to the
+/// HttpService object, this queue is 1:1 with HttpRequest
+/// instances and isn't explicitly referenced by the
+/// service object. Instead, HttpOperation objects that
+/// want to generate replies back to their creators also
+/// keep references to the corresponding HttpReplyQueue.
+/// The HttpService plumbing then simply delivers replies
+/// to the requested reply queue.
+///
+/// One result of that is that the fetch operations do
+/// not have a wait forever option. The service object
+/// doesn't keep handles on everything it would need to
+/// notify so it can't wake up sleepers should it need to
+/// shutdown. So only non-blocking or timed-blocking modes
+/// are anticipated. These are how most application consumers
+/// will be coded anyway so it shouldn't be too much of a
+/// burden.
+
+class HttpReplyQueue : public LLCoreInt::RefCounted
+{
+public:
+ /// Caller acquires a Refcount on construction
+ HttpReplyQueue();
+
+protected:
+ virtual ~HttpReplyQueue(); // Use release()
+
+private:
+ HttpReplyQueue(const HttpReplyQueue &); // Not defined
+ void operator=(const HttpReplyQueue &); // Not defined
+
+public:
+ typedef std::vector OpContainer;
+
+ /// Insert an object at the back of the reply queue.
+ ///
+ /// Library also takes possession of one reference count to pass
+ /// through the queue.
+ ///
+ /// Threading: callable by any thread.
+ void addOp(HttpOperation * op);
+
+ /// Fetch an operation from the head of the queue. Returns
+ /// NULL if none exists.
+ ///
+ /// Caller acquires reference count on returned operation.
+ ///
+ /// Threading: callable by any thread.
+ HttpOperation * fetchOp();
+
+ /// Caller acquires reference count on each returned operation
+ ///
+ /// Threading: callable by any thread.
+ void fetchAll(OpContainer & ops);
+
+protected:
+ OpContainer mQueue;
+ LLCoreInt::HttpMutex mQueueMutex;
+ LLCoreInt::HttpConditionVariable mQueueCV;
+
+}; // end class HttpReplyQueue
+
+} // end namespace LLCore
+
+
+#endif // _LLCORE_HTTP_REPLY_QUEUE_H_
diff --git a/indra/llcorehttp/_httprequestqueue.cpp b/indra/llcorehttp/_httprequestqueue.cpp
new file mode 100644
index 0000000000..c16966d078
--- /dev/null
+++ b/indra/llcorehttp/_httprequestqueue.cpp
@@ -0,0 +1,161 @@
+/**
+ * @file _httprequestqueue.cpp
+ * @brief
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httprequestqueue.h"
+
+#include "_httpoperation.h"
+#include "_mutex.h"
+
+
+using namespace LLCoreInt;
+
+namespace LLCore
+{
+
+HttpRequestQueue * HttpRequestQueue::sInstance(NULL);
+
+
+HttpRequestQueue::HttpRequestQueue()
+ : RefCounted(true),
+ mQueueStopped(false)
+{
+}
+
+
+HttpRequestQueue::~HttpRequestQueue()
+{
+ while (! mQueue.empty())
+ {
+ HttpOperation * op = mQueue.back();
+ mQueue.pop_back();
+ op->release();
+ }
+}
+
+
+void HttpRequestQueue::init()
+{
+ llassert_always(! sInstance);
+ sInstance = new HttpRequestQueue();
+}
+
+
+void HttpRequestQueue::term()
+{
+ if (sInstance)
+ {
+ sInstance->release();
+ sInstance = NULL;
+ }
+}
+
+
+HttpStatus HttpRequestQueue::addOp(HttpOperation * op)
+{
+ bool wake(false);
+ {
+ HttpScopedLock lock(mQueueMutex);
+
+ if (mQueueStopped)
+ {
+ // Return op and error to caller
+ return HttpStatus(HttpStatus::LLCORE, HE_SHUTTING_DOWN);
+ }
+ wake = mQueue.empty();
+ mQueue.push_back(op);
+ }
+ if (wake)
+ {
+ mQueueCV.notify_all();
+ }
+ return HttpStatus();
+}
+
+
+HttpOperation * HttpRequestQueue::fetchOp(bool wait)
+{
+ HttpOperation * result(NULL);
+
+ {
+ HttpScopedLock lock(mQueueMutex);
+
+ while (mQueue.empty())
+ {
+ if (! wait || mQueueStopped)
+ return NULL;
+ mQueueCV.wait(lock);
+ }
+
+ result = mQueue.front();
+ mQueue.erase(mQueue.begin());
+ }
+
+ // Caller also acquires the reference count
+ return result;
+}
+
+
+void HttpRequestQueue::fetchAll(bool wait, OpContainer & ops)
+{
+ // Not valid putting something back on the queue...
+ llassert_always(ops.empty());
+
+ {
+ HttpScopedLock lock(mQueueMutex);
+
+ while (mQueue.empty())
+ {
+ if (! wait || mQueueStopped)
+ return;
+ mQueueCV.wait(lock);
+ }
+
+ mQueue.swap(ops);
+ }
+
+ // Caller also acquires the reference counts on each op.
+ return;
+}
+
+
+void HttpRequestQueue::wakeAll()
+{
+ mQueueCV.notify_all();
+}
+
+
+void HttpRequestQueue::stopQueue()
+{
+ {
+ HttpScopedLock lock(mQueueMutex);
+
+ mQueueStopped = true;
+ wakeAll();
+ }
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httprequestqueue.h b/indra/llcorehttp/_httprequestqueue.h
new file mode 100644
index 0000000000..c9c52b7233
--- /dev/null
+++ b/indra/llcorehttp/_httprequestqueue.h
@@ -0,0 +1,141 @@
+/**
+ * @file _httprequestqueue.h
+ * @brief Internal declaration for the operation request queue
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_REQUEST_QUEUE_H_
+#define _LLCORE_HTTP_REQUEST_QUEUE_H_
+
+
+#include
+
+#include "httpcommon.h"
+#include "_refcounted.h"
+#include "_mutex.h"
+
+
+namespace LLCore
+{
+
+
+class HttpOperation;
+
+
+/// Thread-safe queue of HttpOperation objects. Just
+/// a simple queue that handles the transfer of operation
+/// requests from all HttpRequest instances into the
+/// singleton HttpService instance.
+
+class HttpRequestQueue : public LLCoreInt::RefCounted
+{
+protected:
+ /// Caller acquires a Refcount on construction
+ HttpRequestQueue();
+
+protected:
+ virtual ~HttpRequestQueue(); // Use release()
+
+private:
+ HttpRequestQueue(const HttpRequestQueue &); // Not defined
+ void operator=(const HttpRequestQueue &); // Not defined
+
+public:
+ static void init();
+ static void term();
+
+ /// Threading: callable by any thread once inited.
+ inline static HttpRequestQueue * instanceOf()
+ {
+ return sInstance;
+ }
+
+public:
+ typedef std::vector OpContainer;
+
+ /// Insert an object at the back of the request queue.
+ ///
+ /// Caller must provide one refcount to the queue which takes
+ /// possession of the count on success.
+ ///
+ /// @return Standard status. On failure, caller
+ /// must dispose of the operation with
+ /// an explicit release() call.
+ ///
+ /// Threading: callable by any thread.
+ HttpStatus addOp(HttpOperation * op);
+
+ /// Return the operation on the front of the queue. If
+ /// the queue is empty and @wait is false, call returns
+ /// immediately and a NULL pointer is returned. If true,
+ /// caller will sleep until explicitly woken. Wakeups
+ /// can be spurious and callers must expect NULL pointers
+ /// even if waiting is indicated.
+ ///
+ /// Caller acquires reference count any returned operation
+ ///
+ /// Threading: callable by any thread.
+ HttpOperation * fetchOp(bool wait);
+
+ /// Return all queued requests to caller. The @ops argument
+ /// should be empty when called and will be swap()'d with
+ /// current contents. Handling of the @wait argument is
+ /// identical to @fetchOp.
+ ///
+ /// Caller acquires reference count on each returned operation
+ ///
+ /// Threading: callable by any thread.
+ void fetchAll(bool wait, OpContainer & ops);
+
+ /// Wake any sleeping threads. Normal queuing operations
+ /// won't require this but it may be necessary for termination
+ /// requests.
+ ///
+ /// Threading: callable by any thread.
+ void wakeAll();
+
+ /// Disallow further request queuing. Callers to @addOp will
+ /// get a failure status (LLCORE, HE_SHUTTING_DOWN). Callers
+ /// to @fetchAll or @fetchOp will get requests that are on the
+ /// queue but the calls will no longer wait. Instead they'll
+ /// return immediately. Also wakes up all sleepers to send
+ /// them on their way.
+ ///
+ /// Threading: callable by any thread.
+ void stopQueue();
+
+protected:
+ static HttpRequestQueue * sInstance;
+
+protected:
+ OpContainer mQueue;
+ LLCoreInt::HttpMutex mQueueMutex;
+ LLCoreInt::HttpConditionVariable mQueueCV;
+ bool mQueueStopped;
+
+}; // end class HttpRequestQueue
+
+} // end namespace LLCore
+
+
+#endif // _LLCORE_HTTP_REQUEST_QUEUE_H_
diff --git a/indra/llcorehttp/_httpretryqueue.h b/indra/llcorehttp/_httpretryqueue.h
new file mode 100644
index 0000000000..745adec09d
--- /dev/null
+++ b/indra/llcorehttp/_httpretryqueue.h
@@ -0,0 +1,94 @@
+/**
+ * @file _httpretryqueue.h
+ * @brief Internal declaration for the operation retry queue
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_RETRY_QUEUE_H_
+#define _LLCORE_HTTP_RETRY_QUEUE_H_
+
+
+#include
+
+#include "_httpoprequest.h"
+
+
+namespace LLCore
+{
+
+/// HttpRetryQueue provides a simple priority queue for HttpOpRequest objects.
+///
+/// This uses the priority_queue adaptor class to provide the queue
+/// as well as the ordering scheme while allowing us access to the
+/// raw container if we follow a few simple rules. One of the more
+/// important of those rules is that any iterator becomes invalid
+/// on element erasure. So pay attention.
+///
+/// Threading: not thread-safe. Expected to be used entirely by
+/// a single thread, typically a worker thread of some sort.
+
+struct HttpOpRetryCompare
+{
+ bool operator()(const HttpOpRequest * lhs, const HttpOpRequest * rhs)
+ {
+ return lhs->mPolicyRetryAt < rhs->mPolicyRetryAt;
+ }
+};
+
+
+typedef std::priority_queue,
+ LLCore::HttpOpRetryCompare> HttpRetryQueueBase;
+
+class HttpRetryQueue : public HttpRetryQueueBase
+{
+public:
+ HttpRetryQueue()
+ : HttpRetryQueueBase()
+ {}
+
+ ~HttpRetryQueue()
+ {}
+
+protected:
+ HttpRetryQueue(const HttpRetryQueue &); // Not defined
+ void operator=(const HttpRetryQueue &); // Not defined
+
+public:
+ const container_type & get_container() const
+ {
+ return c;
+ }
+
+ container_type & get_container()
+ {
+ return c;
+ }
+
+}; // end class HttpRetryQueue
+
+
+} // end namespace LLCore
+
+
+#endif // _LLCORE_HTTP_RETRY_QUEUE_H_
diff --git a/indra/llcorehttp/_httpservice.cpp b/indra/llcorehttp/_httpservice.cpp
new file mode 100644
index 0000000000..0825888d0f
--- /dev/null
+++ b/indra/llcorehttp/_httpservice.cpp
@@ -0,0 +1,348 @@
+/**
+ * @file _httpservice.cpp
+ * @brief Internal definitions of the Http service thread
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_httpservice.h"
+
+#include
+#include
+
+#include "_httpoperation.h"
+#include "_httprequestqueue.h"
+#include "_httppolicy.h"
+#include "_httplibcurl.h"
+#include "_thread.h"
+#include "_httpinternal.h"
+
+#include "lltimer.h"
+#include "llthread.h"
+
+
+namespace LLCore
+{
+
+HttpService * HttpService::sInstance(NULL);
+volatile HttpService::EState HttpService::sState(NOT_INITIALIZED);
+
+HttpService::HttpService()
+ : mRequestQueue(NULL),
+ mExitRequested(0U),
+ mThread(NULL),
+ mPolicy(NULL),
+ mTransport(NULL)
+{
+ // Create the default policy class
+ HttpPolicyClass pol_class;
+ pol_class.set(HttpRequest::CP_CONNECTION_LIMIT, HTTP_CONNECTION_LIMIT_DEFAULT);
+ pol_class.set(HttpRequest::CP_PER_HOST_CONNECTION_LIMIT, HTTP_CONNECTION_LIMIT_DEFAULT);
+ pol_class.set(HttpRequest::CP_ENABLE_PIPELINING, 0L);
+ mPolicyClasses.push_back(pol_class);
+}
+
+
+HttpService::~HttpService()
+{
+ mExitRequested = 1U;
+ if (RUNNING == sState)
+ {
+ // Trying to kill the service object with a running thread
+ // is a bit tricky.
+ if (mRequestQueue)
+ {
+ mRequestQueue->stopQueue();
+ }
+
+ if (mThread)
+ {
+ if (! mThread->timedJoin(250))
+ {
+ // Failed to join, expect problems ahead so do a hard termination.
+ mThread->cancel();
+
+ LL_WARNS("CoreHttp") << "Destroying HttpService with running thread. Expect problems."
+ << LL_ENDL;
+ }
+ }
+ }
+
+ if (mRequestQueue)
+ {
+ mRequestQueue->release();
+ mRequestQueue = NULL;
+ }
+
+ delete mTransport;
+ mTransport = NULL;
+
+ delete mPolicy;
+ mPolicy = NULL;
+
+ if (mThread)
+ {
+ mThread->release();
+ mThread = NULL;
+ }
+}
+
+
+void HttpService::init(HttpRequestQueue * queue)
+{
+ llassert_always(! sInstance);
+ llassert_always(NOT_INITIALIZED == sState);
+ sInstance = new HttpService();
+
+ queue->addRef();
+ sInstance->mRequestQueue = queue;
+ sInstance->mPolicy = new HttpPolicy(sInstance);
+ sInstance->mTransport = new HttpLibcurl(sInstance);
+ sState = INITIALIZED;
+}
+
+
+void HttpService::term()
+{
+ if (sInstance)
+ {
+ if (RUNNING == sState && sInstance->mThread)
+ {
+ // Unclean termination. Thread appears to be running. We'll
+ // try to give the worker thread a chance to cancel using the
+ // exit flag...
+ sInstance->mExitRequested = 1U;
+ sInstance->mRequestQueue->stopQueue();
+
+ // And a little sleep
+ for (int i(0); i < 10 && RUNNING == sState; ++i)
+ {
+ ms_sleep(100);
+ }
+ }
+
+ delete sInstance;
+ sInstance = NULL;
+ }
+ sState = NOT_INITIALIZED;
+}
+
+
+HttpRequest::policy_t HttpService::createPolicyClass()
+{
+ const HttpRequest::policy_t policy_class(mPolicyClasses.size());
+ if (policy_class >= HTTP_POLICY_CLASS_LIMIT)
+ {
+ return 0;
+ }
+ mPolicyClasses.push_back(HttpPolicyClass());
+ return policy_class;
+}
+
+
+bool HttpService::isStopped()
+{
+ // What is really wanted here is something like:
+ //
+ // HttpService * service = instanceOf();
+ // return STOPPED == sState && (! service || ! service->mThread || ! service->mThread->joinable());
+ //
+ // But boost::thread is not giving me a consistent story on joinability
+ // of a thread after it returns. Debug and non-debug builds are showing
+ // different behavior on Linux/Etch so we do a weaker test that may
+ // not be globally correct (i.e. thread *is* stopping, may not have
+ // stopped but will very soon):
+
+ return STOPPED == sState;
+}
+
+
+/// Threading: callable by consumer thread *once*.
+void HttpService::startThread()
+{
+ llassert_always(! mThread || STOPPED == sState);
+ llassert_always(INITIALIZED == sState || STOPPED == sState);
+
+ if (mThread)
+ {
+ mThread->release();
+ }
+
+ // Push current policy definitions, enable policy & transport components
+ mPolicy->start(mPolicyGlobal, mPolicyClasses);
+ mTransport->start(mPolicyClasses.size());
+
+ mThread = new LLCoreInt::HttpThread(boost::bind(&HttpService::threadRun, this, _1));
+ sState = RUNNING;
+}
+
+
+/// Threading: callable by worker thread.
+void HttpService::stopRequested()
+{
+ mExitRequested = 1U;
+}
+
+
+/// Threading: callable by worker thread.
+bool HttpService::changePriority(HttpHandle handle, HttpRequest::priority_t priority)
+{
+ bool found(false);
+
+ // Skip the request queue as we currently don't leave earlier
+ // requests sitting there. Start with the ready queue...
+ found = mPolicy->changePriority(handle, priority);
+
+ // If not there, we could try the transport/active queue but priority
+ // doesn't really have much effect there so we don't waste cycles.
+
+ return found;
+}
+
+
+/// Try to find the given request handle on any of the request
+/// queues and cancel the operation.
+///
+/// @return True if the request was canceled.
+///
+/// Threading: callable by worker thread.
+bool HttpService::cancel(HttpHandle handle)
+{
+ bool canceled(false);
+
+ // Request can't be on request queue so skip that.
+
+ // Check the policy component's queues first
+ canceled = mPolicy->cancel(handle);
+
+ if (! canceled)
+ {
+ // If that didn't work, check transport's.
+ canceled = mTransport->cancel(handle);
+ }
+
+ return canceled;
+}
+
+
+/// Threading: callable by worker thread.
+void HttpService::shutdown()
+{
+ // Disallow future enqueue of requests
+ mRequestQueue->stopQueue();
+
+ // Cancel requests already on the request queue
+ HttpRequestQueue::OpContainer ops;
+ mRequestQueue->fetchAll(false, ops);
+ while (! ops.empty())
+ {
+ HttpOperation * op(ops.front());
+ ops.erase(ops.begin());
+
+ op->cancel();
+ op->release();
+ }
+
+ // Shutdown transport canceling requests, freeing resources
+ mTransport->shutdown();
+
+ // And now policy
+ mPolicy->shutdown();
+}
+
+
+// Working thread loop-forever method. Gives time to
+// each of the request queue, policy layer and transport
+// layer pieces and then either sleeps for a small time
+// or waits for a request to come in. Repeats until
+// requested to stop.
+void HttpService::threadRun(LLCoreInt::HttpThread * thread)
+{
+ boost::this_thread::disable_interruption di;
+
+ LLThread::registerThreadID();
+
+ ELoopSpeed loop(REQUEST_SLEEP);
+ while (! mExitRequested)
+ {
+ loop = processRequestQueue(loop);
+
+ // Process ready queue issuing new requests as needed
+ ELoopSpeed new_loop = mPolicy->processReadyQueue();
+ loop = (std::min)(loop, new_loop);
+
+ // Give libcurl some cycles
+ new_loop = mTransport->processTransport();
+ loop = (std::min)(loop, new_loop);
+
+ // Determine whether to spin, sleep briefly or sleep for next request
+ if (REQUEST_SLEEP != loop)
+ {
+ ms_sleep(HTTP_SERVICE_LOOP_SLEEP_NORMAL_MS);
+ }
+ }
+
+ shutdown();
+ sState = STOPPED;
+}
+
+
+HttpService::ELoopSpeed HttpService::processRequestQueue(ELoopSpeed loop)
+{
+ HttpRequestQueue::OpContainer ops;
+ const bool wait_for_req(REQUEST_SLEEP == loop);
+
+ mRequestQueue->fetchAll(wait_for_req, ops);
+ while (! ops.empty())
+ {
+ HttpOperation * op(ops.front());
+ ops.erase(ops.begin());
+
+ // Process operation
+ if (! mExitRequested)
+ {
+ // Setup for subsequent tracing
+ long tracing(HTTP_TRACE_OFF);
+ mPolicy->getGlobalOptions().get(HttpRequest::GP_TRACE, &tracing);
+ op->mTracing = (std::max)(op->mTracing, int(tracing));
+
+ if (op->mTracing > HTTP_TRACE_OFF)
+ {
+ LL_INFOS("CoreHttp") << "TRACE, FromRequestQueue, Handle: "
+ << static_cast(op)
+ << LL_ENDL;
+ }
+
+ // Stage
+ op->stageFromRequest(this);
+ }
+
+ // Done with operation
+ op->release();
+ }
+
+ // Queue emptied, allow polling loop to sleep
+ return REQUEST_SLEEP;
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/_httpservice.h b/indra/llcorehttp/_httpservice.h
new file mode 100644
index 0000000000..ffe0349d4d
--- /dev/null
+++ b/indra/llcorehttp/_httpservice.h
@@ -0,0 +1,224 @@
+/**
+ * @file _httpservice.h
+ * @brief Declarations for internal class providing HTTP service.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_HTTP_SERVICE_H_
+#define _LLCORE_HTTP_SERVICE_H_
+
+
+#include
+
+#include "linden_common.h"
+#include "llapr.h"
+#include "httpcommon.h"
+#include "httprequest.h"
+#include "_httppolicyglobal.h"
+#include "_httppolicyclass.h"
+
+
+namespace LLCoreInt
+{
+
+class HttpThread;
+
+}
+
+
+namespace LLCore
+{
+
+
+class HttpRequestQueue;
+class HttpPolicy;
+class HttpLibcurl;
+
+
+/// The HttpService class does the work behind the request queue. It
+/// oversees the HTTP workflow carrying out a number of tasks:
+/// - Pulling requests from the global request queue
+/// - Executing 'immediate' requests directly
+/// - Prioritizing and re-queuing on internal queues the slower requests
+/// - Providing cpu cycles to the libcurl plumbing
+/// - Overseeing retry operations
+///
+/// Note that the service object doesn't have a pointer to any
+/// reply queue. These are kept by HttpRequest and HttpOperation
+/// only.
+///
+/// Service, Policy and Transport
+///
+/// HttpService could have been a monolithic class combining a request
+/// queue servicer, request policy manager and network transport.
+/// Instead, to prevent monolithic growth and allow for easier
+/// replacement, it was developed as three separate classes: HttpService,
+/// HttpPolicy and HttpLibcurl (transport). These always exist in a
+/// 1:1:1 relationship with HttpService managing instances of the other
+/// two. So, these classes do not use reference counting to refer
+/// to one another, their lifecycles are always managed together.
+
+class HttpService
+{
+protected:
+ HttpService();
+ virtual ~HttpService();
+
+private:
+ HttpService(const HttpService &); // Not defined
+ void operator=(const HttpService &); // Not defined
+
+public:
+ enum EState
+ {
+ NOT_INITIALIZED = -1,
+ INITIALIZED, ///< init() has been called
+ RUNNING, ///< thread created and running
+ STOPPED ///< thread has committed to exiting
+ };
+
+ // Ordered enumeration of idling strategies available to
+ // threadRun's loop. Ordered so that std::min on values
+ // produces the most conservative result of multiple
+ // requests.
+ enum ELoopSpeed
+ {
+ NORMAL, ///< continuous polling of request, ready, active queues
+ REQUEST_SLEEP ///< can sleep indefinitely waiting for request queue write
+ };
+
+ static void init(HttpRequestQueue *);
+ static void term();
+
+ /// Threading: callable by any thread once inited.
+ inline static HttpService * instanceOf()
+ {
+ return sInstance;
+ }
+
+ /// Return the state of the worker thread. Note that the
+ /// transition from RUNNING to STOPPED is performed by the
+ /// worker thread itself. This has two weaknesses:
+ /// - race where the thread hasn't really stopped but will
+ /// - data ordering between threads where a non-worker thread
+ /// may see a stale RUNNING status.
+ ///
+ /// This transition is generally of interest only to unit tests
+ /// and these weaknesses shouldn't be any real burden.
+ ///
+ /// Threading: callable by any thread with above exceptions.
+ static EState getState()
+ {
+ return sState;
+ }
+
+ /// Threading: callable by any thread but uses @see getState() and
+ /// acquires its weaknesses.
+ static bool isStopped();
+
+ /// Threading: callable by consumer thread *once*.
+ void startThread();
+
+ /// Threading: callable by worker thread.
+ void stopRequested();
+
+ /// Threading: callable by worker thread.
+ void shutdown();
+
+ /// Try to find the given request handle on any of the request
+ /// queues and reset the priority (and queue position) of the
+ /// request if found.
+ ///
+ /// @return True if the request was found somewhere.
+ ///
+ /// Threading: callable by worker thread.
+ bool changePriority(HttpHandle handle, HttpRequest::priority_t priority);
+
+ /// Try to find the given request handle on any of the request
+ /// queues and cancel the operation.
+ ///
+ /// @return True if the request was found and canceled.
+ ///
+ /// Threading: callable by worker thread.
+ bool cancel(HttpHandle handle);
+
+ /// Threading: callable by worker thread.
+ HttpPolicy & getPolicy()
+ {
+ return *mPolicy;
+ }
+
+ /// Threading: callable by worker thread.
+ HttpLibcurl & getTransport()
+ {
+ return *mTransport;
+ }
+
+ /// Threading: callable by worker thread.
+ HttpRequestQueue & getRequestQueue()
+ {
+ return *mRequestQueue;
+ }
+
+ /// Threading: callable by consumer thread.
+ HttpPolicyGlobal & getGlobalOptions()
+ {
+ return mPolicyGlobal;
+ }
+
+ /// Threading: callable by consumer thread.
+ HttpRequest::policy_t createPolicyClass();
+
+ /// Threading: callable by consumer thread.
+ HttpPolicyClass & getClassOptions(HttpRequest::policy_t policy_class)
+ {
+ llassert(policy_class >= 0 && policy_class < mPolicyClasses.size());
+ return mPolicyClasses[policy_class];
+ }
+
+protected:
+ void threadRun(LLCoreInt::HttpThread * thread);
+
+ ELoopSpeed processRequestQueue(ELoopSpeed loop);
+
+protected:
+ static HttpService * sInstance;
+
+ // === shared data ===
+ static volatile EState sState;
+ HttpRequestQueue * mRequestQueue; // Refcounted
+ LLAtomicU32 mExitRequested;
+ LLCoreInt::HttpThread * mThread;
+
+ // === consumer-thread-only data ===
+ HttpPolicyGlobal mPolicyGlobal;
+ std::vector mPolicyClasses;
+
+ // === working-thread-only data ===
+ HttpPolicy * mPolicy; // Simple pointer, has ownership
+ HttpLibcurl * mTransport; // Simple pointer, has ownership
+}; // end class HttpService
+
+} // end namespace LLCore
+
+#endif // _LLCORE_HTTP_SERVICE_H_
diff --git a/indra/llcorehttp/_mutex.h b/indra/llcorehttp/_mutex.h
new file mode 100644
index 0000000000..4be4d016d4
--- /dev/null
+++ b/indra/llcorehttp/_mutex.h
@@ -0,0 +1,55 @@
+/**
+ * @file _mutex.hpp
+ * @brief mutex type abstraction
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LLCOREINT_MUTEX_H_
+#define LLCOREINT_MUTEX_H_
+
+
+#include
+
+
+namespace LLCoreInt
+{
+
+// MUTEX TYPES
+
+// unique mutex type
+typedef boost::mutex HttpMutex;
+
+// CONDITION VARIABLES
+
+// standard condition variable
+typedef boost::condition_variable HttpConditionVariable;
+
+// LOCKS AND FENCES
+
+// scoped unique lock
+typedef boost::unique_lock HttpScopedLock;
+
+}
+
+#endif // LLCOREINT_MUTEX_H
+
diff --git a/indra/llcorehttp/_refcounted.cpp b/indra/llcorehttp/_refcounted.cpp
new file mode 100644
index 0000000000..e7d0b72741
--- /dev/null
+++ b/indra/llcorehttp/_refcounted.cpp
@@ -0,0 +1,45 @@
+/**
+ * @file _refcounted.cpp
+ * @brief Atomic, thread-safe ref counting and destruction mixin class
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "_refcounted.h"
+
+
+namespace LLCoreInt
+{
+
+#if ! LL_WINDOWS
+
+const S32 RefCounted::NOT_REF_COUNTED;
+
+#endif // ! LL_WINDOWS
+
+RefCounted::~RefCounted()
+{}
+
+
+} // end namespace LLCoreInt
+
+
diff --git a/indra/llcorehttp/_refcounted.h b/indra/llcorehttp/_refcounted.h
new file mode 100644
index 0000000000..21a916b13b
--- /dev/null
+++ b/indra/llcorehttp/_refcounted.h
@@ -0,0 +1,126 @@
+/**
+ * @file _refcounted.h
+ * @brief Atomic, thread-safe ref counting and destruction mixin class
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LLCOREINT__REFCOUNTED_H_
+#define LLCOREINT__REFCOUNTED_H_
+
+
+#include "linden_common.h"
+
+#include "fix_macros.h"
+#include
+
+#include "llapr.h"
+
+
+namespace LLCoreInt
+{
+
+
+class RefCounted
+{
+private:
+ RefCounted(); // Not defined - may not be default constructed
+ void operator=(const RefCounted &); // Not defined
+
+public:
+ explicit RefCounted(bool const implicit)
+ : mRefCount(implicit)
+ {}
+
+ // ref-count interface
+ void addRef() const;
+ void release() const;
+ bool isLastRef() const;
+ S32 getRefCount() const;
+ void noRef() const;
+
+ static const S32 NOT_REF_COUNTED = -1;
+
+protected:
+ virtual ~RefCounted();
+ virtual void destroySelf();
+
+private:
+ mutable LLAtomicS32 mRefCount;
+
+}; // end class RefCounted
+
+
+inline void RefCounted::addRef() const
+{
+ S32 count(mRefCount++);
+ llassert_always(count >= 0);
+}
+
+
+inline void RefCounted::release() const
+{
+ S32 count(mRefCount);
+ llassert_always(count != NOT_REF_COUNTED);
+ llassert_always(count > 0);
+ count = mRefCount--;
+
+ // clean ourselves up if that was the last reference
+ if (0 == count)
+ {
+ const_cast(this)->destroySelf();
+ }
+}
+
+
+inline bool RefCounted::isLastRef() const
+{
+ const S32 count(mRefCount);
+ llassert_always(count != NOT_REF_COUNTED);
+ llassert_always(count >= 1);
+ return (1 == count);
+}
+
+
+inline S32 RefCounted::getRefCount() const
+{
+ const S32 result(mRefCount);
+ return result;
+}
+
+
+inline void RefCounted::noRef() const
+{
+ llassert_always(mRefCount <= 1);
+ mRefCount = NOT_REF_COUNTED;
+}
+
+
+inline void RefCounted::destroySelf()
+{
+ delete this;
+}
+
+} // end namespace LLCoreInt
+
+#endif // LLCOREINT__REFCOUNTED_H_
+
diff --git a/indra/llcorehttp/_thread.h b/indra/llcorehttp/_thread.h
new file mode 100644
index 0000000000..e058d660e5
--- /dev/null
+++ b/indra/llcorehttp/_thread.h
@@ -0,0 +1,123 @@
+/**
+ * @file _thread.h
+ * @brief thread type abstraction
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LLCOREINT_THREAD_H_
+#define LLCOREINT_THREAD_H_
+
+#include "linden_common.h"
+
+#include
+#include
+#include
+
+#include "_refcounted.h"
+
+namespace LLCoreInt
+{
+
+class HttpThread : public RefCounted
+{
+private:
+ HttpThread(); // Not defined
+ void operator=(const HttpThread &); // Not defined
+
+ void at_exit()
+ {
+ // the thread function has exited so we need to release our reference
+ // to ourself so that we will be automagically cleaned up.
+ release();
+ }
+
+ void run()
+ { // THREAD CONTEXT
+
+ // Take out additional reference for the at_exit handler
+ addRef();
+ boost::this_thread::at_thread_exit(boost::bind(&HttpThread::at_exit, this));
+
+ // run the thread function
+ mThreadFunc(this);
+
+ } // THREAD CONTEXT
+
+protected:
+ virtual ~HttpThread()
+ {
+ delete mThread;
+ }
+
+public:
+ /// Constructs a thread object for concurrent execution but does
+ /// not start running. Caller receives on refcount on the thread
+ /// instance. If the thread is started, another will be taken
+ /// out for the exit handler.
+ explicit HttpThread(boost::function threadFunc)
+ : RefCounted(true), // implicit reference
+ mThreadFunc(threadFunc)
+ {
+ // this creates a boost thread that will call HttpThread::run on this instance
+ // and pass it the threadfunc callable...
+ boost::function f = boost::bind(&HttpThread::run, this);
+
+ mThread = new boost::thread(f);
+ }
+
+ inline void join()
+ {
+ mThread->join();
+ }
+
+ inline bool timedJoin(S32 millis)
+ {
+ return mThread->timed_join(boost::posix_time::milliseconds(millis));
+ }
+
+ inline bool joinable() const
+ {
+ return mThread->joinable();
+ }
+
+ // A very hostile method to force a thread to quit
+ inline void cancel()
+ {
+ boost::thread::native_handle_type thread(mThread->native_handle());
+#if LL_WINDOWS
+ TerminateThread(thread, 0);
+#else
+ pthread_cancel(thread);
+#endif
+ }
+
+private:
+ boost::function mThreadFunc;
+ boost::thread * mThread;
+}; // end class HttpThread
+
+} // end namespace LLCoreInt
+
+#endif // LLCOREINT_THREAD_H_
+
+
diff --git a/indra/llcorehttp/bufferarray.cpp b/indra/llcorehttp/bufferarray.cpp
new file mode 100644
index 0000000000..8eaaeed710
--- /dev/null
+++ b/indra/llcorehttp/bufferarray.cpp
@@ -0,0 +1,352 @@
+/**
+ * @file bufferarray.cpp
+ * @brief Implements the BufferArray scatter/gather buffer
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "bufferarray.h"
+
+
+// BufferArray is a list of chunks, each a BufferArray::Block, of contiguous
+// data presented as a single array. Chunks are at least BufferArray::BLOCK_ALLOC_SIZE
+// in length and can be larger. Any chunk may be partially filled or even
+// empty.
+//
+// The BufferArray itself is sharable as a RefCounted entity. As shared
+// reads don't work with the concept of a current position/seek value,
+// none is kept with the object. Instead, the read and write operations
+// all take position arguments. Single write/shared read isn't supported
+// directly and any such attempts have to be serialized outside of this
+// implementation.
+
+namespace LLCore
+{
+
+
+// ==================================
+// BufferArray::Block Declaration
+// ==================================
+
+class BufferArray::Block
+{
+public:
+ ~Block();
+
+ void operator delete(void *);
+ void operator delete(void *, size_t len);
+
+protected:
+ Block(size_t len);
+
+ Block(const Block &); // Not defined
+ void operator=(const Block &); // Not defined
+
+ // Allocate the block with the additional space for the
+ // buffered data at the end of the object.
+ void * operator new(size_t len, size_t addl_len);
+
+public:
+ // Only public entry to get a block.
+ static Block * alloc(size_t len);
+
+public:
+ size_t mUsed;
+ size_t mAlloced;
+
+ // *NOTE: Must be last member of the object. We'll
+ // overallocate as requested via operator new and index
+ // into the array at will.
+ char mData[1];
+};
+
+
+// ==================================
+// BufferArray Definitions
+// ==================================
+
+
+#if ! LL_WINDOWS
+const size_t BufferArray::BLOCK_ALLOC_SIZE;
+#endif // ! LL_WINDOWS
+
+BufferArray::BufferArray()
+ : LLCoreInt::RefCounted(true),
+ mLen(0)
+{}
+
+
+BufferArray::~BufferArray()
+{
+ for (container_t::iterator it(mBlocks.begin());
+ it != mBlocks.end();
+ ++it)
+ {
+ delete *it;
+ *it = NULL;
+ }
+ mBlocks.clear();
+}
+
+
+size_t BufferArray::append(const void * src, size_t len)
+{
+ const size_t ret(len);
+ const char * c_src(static_cast(src));
+
+ // First, try to copy into the last block
+ if (len && ! mBlocks.empty())
+ {
+ Block & last(*mBlocks.back());
+ if (last.mUsed < last.mAlloced)
+ {
+ // Some will fit...
+ const size_t copy_len((std::min)(len, (last.mAlloced - last.mUsed)));
+
+ memcpy(&last.mData[last.mUsed], c_src, copy_len);
+ last.mUsed += copy_len;
+ llassert_always(last.mUsed <= last.mAlloced);
+ mLen += copy_len;
+ c_src += copy_len;
+ len -= copy_len;
+ }
+ }
+
+ // Then get new blocks as needed
+ while (len)
+ {
+ const size_t copy_len((std::min)(len, BLOCK_ALLOC_SIZE));
+
+ if (mBlocks.size() >= mBlocks.capacity())
+ {
+ mBlocks.reserve(mBlocks.size() + 5);
+ }
+ Block * block = Block::alloc(BLOCK_ALLOC_SIZE);
+ memcpy(block->mData, c_src, copy_len);
+ block->mUsed = copy_len;
+ llassert_always(block->mUsed <= block->mAlloced);
+ mBlocks.push_back(block);
+ mLen += copy_len;
+ c_src += copy_len;
+ len -= copy_len;
+ }
+ return ret;
+}
+
+
+void * BufferArray::appendBufferAlloc(size_t len)
+{
+ // If someone asks for zero-length, we give them a valid pointer.
+ if (mBlocks.size() >= mBlocks.capacity())
+ {
+ mBlocks.reserve(mBlocks.size() + 5);
+ }
+ Block * block = Block::alloc((std::max)(BLOCK_ALLOC_SIZE, len));
+ block->mUsed = len;
+ mBlocks.push_back(block);
+ mLen += len;
+ return block->mData;
+}
+
+
+size_t BufferArray::read(size_t pos, void * dst, size_t len)
+{
+ char * c_dst(static_cast(dst));
+
+ if (pos >= mLen)
+ return 0;
+ size_t len_limit(mLen - pos);
+ len = (std::min)(len, len_limit);
+ if (0 == len)
+ return 0;
+
+ size_t result(0), offset(0);
+ const int block_limit(mBlocks.size());
+ int block_start(findBlock(pos, &offset));
+ if (block_start < 0)
+ return 0;
+
+ do
+ {
+ Block & block(*mBlocks[block_start]);
+ size_t block_limit(block.mUsed - offset);
+ size_t block_len((std::min)(block_limit, len));
+
+ memcpy(c_dst, &block.mData[offset], block_len);
+ result += block_len;
+ len -= block_len;
+ c_dst += block_len;
+ offset = 0;
+ ++block_start;
+ }
+ while (len && block_start < block_limit);
+
+ return result;
+}
+
+
+size_t BufferArray::write(size_t pos, const void * src, size_t len)
+{
+ const char * c_src(static_cast(src));
+
+ if (pos > mLen || 0 == len)
+ return 0;
+
+ size_t result(0), offset(0);
+ const int block_limit(mBlocks.size());
+ int block_start(findBlock(pos, &offset));
+
+ if (block_start >= 0)
+ {
+ // Some or all of the write will be on top of
+ // existing data.
+ do
+ {
+ Block & block(*mBlocks[block_start]);
+ size_t block_limit(block.mUsed - offset);
+ size_t block_len((std::min)(block_limit, len));
+
+ memcpy(&block.mData[offset], c_src, block_len);
+ result += block_len;
+ c_src += block_len;
+ len -= block_len;
+ offset = 0;
+ ++block_start;
+ }
+ while (len && block_start < block_limit);
+ }
+
+ // Something left, see if it will fit in the free
+ // space of the last block.
+ if (len && ! mBlocks.empty())
+ {
+ Block & last(*mBlocks.back());
+ if (last.mUsed < last.mAlloced)
+ {
+ // Some will fit...
+ const size_t copy_len((std::min)(len, (last.mAlloced - last.mUsed)));
+
+ memcpy(&last.mData[last.mUsed], c_src, copy_len);
+ last.mUsed += copy_len;
+ result += copy_len;
+ llassert_always(last.mUsed <= last.mAlloced);
+ mLen += copy_len;
+ c_src += copy_len;
+ len -= copy_len;
+ }
+ }
+
+ if (len)
+ {
+ // Some or all of the remaining write data will
+ // be an append.
+ result += append(c_src, len);
+ }
+
+ return result;
+}
+
+
+int BufferArray::findBlock(size_t pos, size_t * ret_offset)
+{
+ *ret_offset = 0;
+ if (pos >= mLen)
+ return -1; // Doesn't exist
+
+ const int block_limit(mBlocks.size());
+ for (int i(0); i < block_limit; ++i)
+ {
+ if (pos < mBlocks[i]->mUsed)
+ {
+ *ret_offset = pos;
+ return i;
+ }
+ pos -= mBlocks[i]->mUsed;
+ }
+
+ // Shouldn't get here but...
+ return -1;
+}
+
+
+bool BufferArray::getBlockStartEnd(int block, const char ** start, const char ** end)
+{
+ if (block < 0 || block >= mBlocks.size())
+ {
+ return false;
+ }
+
+ const Block & b(*mBlocks[block]);
+ *start = &b.mData[0];
+ *end = &b.mData[b.mUsed];
+ return true;
+}
+
+
+// ==================================
+// BufferArray::Block Definitions
+// ==================================
+
+
+BufferArray::Block::Block(size_t len)
+ : mUsed(0),
+ mAlloced(len)
+{
+ memset(mData, 0, len);
+}
+
+
+BufferArray::Block::~Block()
+{
+ mUsed = 0;
+ mAlloced = 0;
+}
+
+
+void * BufferArray::Block::operator new(size_t len, size_t addl_len)
+{
+ void * mem = new char[len + addl_len + sizeof(void *)];
+ return mem;
+}
+
+
+void BufferArray::Block::operator delete(void * mem)
+{
+ char * cmem = static_cast(mem);
+ delete [] cmem;
+}
+
+
+void BufferArray::Block::operator delete(void * mem, size_t)
+{
+ operator delete(mem);
+}
+
+
+BufferArray::Block * BufferArray::Block::alloc(size_t len)
+{
+ Block * block = new (len) Block(len);
+ return block;
+}
+
+
+} // end namespace LLCore
diff --git a/indra/llcorehttp/bufferarray.h b/indra/llcorehttp/bufferarray.h
new file mode 100644
index 0000000000..1094a435b4
--- /dev/null
+++ b/indra/llcorehttp/bufferarray.h
@@ -0,0 +1,137 @@
+/**
+ * @file bufferarray.h
+ * @brief Public-facing declaration for the BufferArray scatter/gather class
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_BUFFER_ARRAY_H_
+#define _LLCORE_BUFFER_ARRAY_H_
+
+
+#include
+#include
+
+#include "_refcounted.h"
+
+
+namespace LLCore
+{
+
+class BufferArrayStreamBuf;
+
+/// A very simple scatter/gather type map for bulk data. The motivation
+/// for this class is the writedata callback used by libcurl. Response
+/// bodies are delivered to the caller in a sequence of sequential write
+/// operations and this class captures them without having to reallocate
+/// and move data.
+///
+/// The interface looks a little like a unix file descriptor but only
+/// just. There is a notion of a current position, starting from 0,
+/// which is used as the position in the data when performing read and
+/// write operations. The position also moves after various operations:
+/// - seek(...)
+/// - read(...)
+/// - write(...)
+/// - append(...)
+/// - appendBufferAlloc(...)
+/// The object also keeps a total length value which is updated after
+/// write and append operations and beyond which the current position
+/// cannot be set.
+///
+/// Threading: not thread-safe
+///
+/// Allocation: Refcounted, heap only. Caller of the constructor
+/// is given a single refcount.
+///
+class BufferArray : public LLCoreInt::RefCounted
+{
+public:
+ // BufferArrayStreamBuf has intimate knowledge of this
+ // implementation to implement a buffer-free adapter.
+ // Changes here will likely need to be reflected there.
+ friend class BufferArrayStreamBuf;
+
+ BufferArray();
+
+protected:
+ virtual ~BufferArray(); // Use release()
+
+private:
+ BufferArray(const BufferArray &); // Not defined
+ void operator=(const BufferArray &); // Not defined
+
+public:
+ // Internal magic number, may be used by unit tests.
+ static const size_t BLOCK_ALLOC_SIZE = 65540;
+
+ /// Appends the indicated data to the BufferArray
+ /// modifying current position and total size. New
+ /// position is one beyond the final byte of the buffer.
+ ///
+ /// @return Count of bytes copied to BufferArray
+ size_t append(const void * src, size_t len);
+
+ /// Similar to @see append(), this call guarantees a
+ /// contiguous block of memory of requested size placed
+ /// at the current end of the BufferArray. On return,
+ /// the data in the memory is considered valid whether
+ /// the caller writes to it or not.
+ ///
+ /// @return Pointer to contiguous region at end
+ /// of BufferArray of 'len' size.
+ void * appendBufferAlloc(size_t len);
+
+ /// Current count of bytes in BufferArray instance.
+ size_t size() const
+ {
+ return mLen;
+ }
+
+ /// Copies data from the given position in the instance
+ /// to the caller's buffer. Will return a short count of
+ /// bytes copied if the 'len' extends beyond the data.
+ size_t read(size_t pos, void * dst, size_t len);
+
+ /// Copies data from the caller's buffer to the instance
+ /// at the current position. May overwrite existing data,
+ /// append data when current position is equal to the
+ /// size of the instance or do a mix of both.
+ size_t write(size_t pos, const void * src, size_t len);
+
+protected:
+ int findBlock(size_t pos, size_t * ret_offset);
+
+ bool getBlockStartEnd(int block, const char ** start, const char ** end);
+
+protected:
+ class Block;
+ typedef std::vector container_t;
+
+ container_t mBlocks;
+ size_t mLen;
+}; // end class BufferArray
+
+
+} // end namespace LLCore
+
+#endif // _LLCORE_BUFFER_ARRAY_H_
diff --git a/indra/llcorehttp/bufferstream.cpp b/indra/llcorehttp/bufferstream.cpp
new file mode 100644
index 0000000000..6553900eef
--- /dev/null
+++ b/indra/llcorehttp/bufferstream.cpp
@@ -0,0 +1,285 @@
+/**
+ * @file bufferstream.cpp
+ * @brief Implements the BufferStream adapter class
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "bufferstream.h"
+
+#include "bufferarray.h"
+
+
+namespace LLCore
+{
+
+BufferArrayStreamBuf::BufferArrayStreamBuf(BufferArray * array)
+ : mBufferArray(array),
+ mReadCurPos(0),
+ mReadCurBlock(-1),
+ mReadBegin(NULL),
+ mReadCur(NULL),
+ mReadEnd(NULL),
+ mWriteCurPos(0)
+{
+ if (array)
+ {
+ array->addRef();
+ mWriteCurPos = array->mLen;
+ }
+}
+
+
+BufferArrayStreamBuf::~BufferArrayStreamBuf()
+{
+ if (mBufferArray)
+ {
+ mBufferArray->release();
+ mBufferArray = NULL;
+ }
+}
+
+
+BufferArrayStreamBuf::int_type BufferArrayStreamBuf::underflow()
+{
+ if (! mBufferArray)
+ {
+ return traits_type::eof();
+ }
+
+ if (mReadCur == mReadEnd)
+ {
+ // Find the next block with actual data or leave
+ // mCurBlock/mCur/mEnd unchanged if we're at the end
+ // of any block chain.
+ const char * new_begin(NULL), * new_end(NULL);
+ int new_cur_block(mReadCurBlock + 1);
+
+ while (mBufferArray->getBlockStartEnd(new_cur_block, &new_begin, &new_end))
+ {
+ if (new_begin != new_end)
+ {
+ break;
+ }
+ ++new_cur_block;
+ }
+ if (new_begin == new_end)
+ {
+ return traits_type::eof();
+ }
+
+ mReadCurBlock = new_cur_block;
+ mReadBegin = mReadCur = new_begin;
+ mReadEnd = new_end;
+ }
+
+ return traits_type::to_int_type(*mReadCur);
+}
+
+
+BufferArrayStreamBuf::int_type BufferArrayStreamBuf::uflow()
+{
+ const int_type ret(underflow());
+
+ if (traits_type::eof() != ret)
+ {
+ ++mReadCur;
+ ++mReadCurPos;
+ }
+ return ret;
+}
+
+
+BufferArrayStreamBuf::int_type BufferArrayStreamBuf::pbackfail(int_type ch)
+{
+ if (! mBufferArray)
+ {
+ return traits_type::eof();
+ }
+
+ if (mReadCur == mReadBegin)
+ {
+ // Find the previous block with actual data or leave
+ // mCurBlock/mBegin/mCur/mEnd unchanged if we're at the
+ // beginning of any block chain.
+ const char * new_begin(NULL), * new_end(NULL);
+ int new_cur_block(mReadCurBlock - 1);
+
+ while (mBufferArray->getBlockStartEnd(new_cur_block, &new_begin, &new_end))
+ {
+ if (new_begin != new_end)
+ {
+ break;
+ }
+ --new_cur_block;
+ }
+ if (new_begin == new_end)
+ {
+ return traits_type::eof();
+ }
+
+ mReadCurBlock = new_cur_block;
+ mReadBegin = new_begin;
+ mReadEnd = mReadCur = new_end;
+ }
+
+ if (traits_type::eof() != ch && mReadCur[-1] != ch)
+ {
+ return traits_type::eof();
+ }
+ --mReadCurPos;
+ return traits_type::to_int_type(*--mReadCur);
+}
+
+
+std::streamsize BufferArrayStreamBuf::showmanyc()
+{
+ if (! mBufferArray)
+ {
+ return -1;
+ }
+ return mBufferArray->mLen - mReadCurPos;
+}
+
+
+BufferArrayStreamBuf::int_type BufferArrayStreamBuf::overflow(int c)
+{
+ if (! mBufferArray || mWriteCurPos > mBufferArray->mLen)
+ {
+ return traits_type::eof();
+ }
+ const size_t wrote(mBufferArray->write(mWriteCurPos, &c, 1));
+ mWriteCurPos += wrote;
+ return wrote ? c : traits_type::eof();
+}
+
+
+std::streamsize BufferArrayStreamBuf::xsputn(const char * src, std::streamsize count)
+{
+ if (! mBufferArray || mWriteCurPos > mBufferArray->mLen)
+ {
+ return 0;
+ }
+ const size_t wrote(mBufferArray->write(mWriteCurPos, src, count));
+ mWriteCurPos += wrote;
+ return wrote;
+}
+
+
+std::streampos BufferArrayStreamBuf::seekoff(std::streamoff off,
+ std::ios_base::seekdir way,
+ std::ios_base::openmode which)
+{
+ std::streampos ret(-1);
+
+ if (! mBufferArray)
+ {
+ return ret;
+ }
+
+ if (std::ios_base::in == which)
+ {
+ size_t pos(0);
+
+ switch (way)
+ {
+ case std::ios_base::beg:
+ pos = off;
+ break;
+
+ case std::ios_base::cur:
+ pos = mReadCurPos += off;
+ break;
+
+ case std::ios_base::end:
+ pos = mBufferArray->mLen - off;
+ break;
+
+ default:
+ return ret;
+ }
+
+ if (pos >= mBufferArray->size())
+ {
+ pos = (std::max)(size_t(0), mBufferArray->size() - 1);
+ }
+ size_t ba_offset(0);
+ int block(mBufferArray->findBlock(pos, &ba_offset));
+ if (block < 0)
+ return ret;
+ const char * start(NULL), * end(NULL);
+ if (! mBufferArray->getBlockStartEnd(block, &start, &end))
+ return ret;
+ mReadCurBlock = block;
+ mReadBegin = start;
+ mReadCur = start + ba_offset;
+ mReadEnd = end;
+ ret = mReadCurPos = pos;
+ }
+ else if (std::ios_base::out == which)
+ {
+ size_t pos(0);
+
+ switch (way)
+ {
+ case std::ios_base::beg:
+ pos = off;
+ break;
+
+ case std::ios_base::cur:
+ pos = mWriteCurPos += off;
+ break;
+
+ case std::ios_base::end:
+ pos = mBufferArray->mLen - off;
+ break;
+
+ default:
+ return ret;
+ }
+
+ if (pos < 0)
+ return ret;
+ if (pos > mBufferArray->size())
+ {
+ pos = mBufferArray->size();
+ }
+ ret = mWriteCurPos = pos;
+ }
+
+ return ret;
+}
+
+
+BufferArrayStream::BufferArrayStream(BufferArray * ba)
+ : std::iostream(&mStreamBuf),
+ mStreamBuf(ba)
+{}
+
+
+BufferArrayStream::~BufferArrayStream()
+{}
+
+
+} // end namespace LLCore
+
+
diff --git a/indra/llcorehttp/bufferstream.h b/indra/llcorehttp/bufferstream.h
new file mode 100644
index 0000000000..9327a798aa
--- /dev/null
+++ b/indra/llcorehttp/bufferstream.h
@@ -0,0 +1,153 @@
+/**
+ * @file bufferstream.h
+ * @brief Public-facing declaration for the BufferStream adapter class
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef _LLCORE_BUFFER_STREAM_H_
+#define _LLCORE_BUFFER_STREAM_H_
+
+
+#include
+#include
+
+#include "bufferarray.h"
+
+
+/// @file bufferstream.h
+///
+/// std::streambuf and std::iostream adapters for BufferArray
+/// objects.
+///
+/// BufferArrayStreamBuf inherits std::streambuf and implements
+/// an unbuffered interface for streambuf. This may or may not
+/// be the most time efficient implementation and it is a little
+/// challenging.
+///
+/// BufferArrayStream inherits std::iostream and will be the
+/// adapter object most callers will be interested in (though
+/// it uses BufferArrayStreamBuf internally). Instances allow
+/// for the usual streaming operators ('<<', '>>') and serialization
+/// methods.
+///
+/// Example of LLSD serialization to a BufferArray:
+///
+/// BufferArray * ba = new BufferArray;
+/// BufferArrayStream bas(ba);
+/// LLSDSerialize::toXML(llsd, bas);
+/// operationOnBufferArray(ba);
+/// ba->release();
+/// ba = NULL;
+/// // operationOnBufferArray and bas are each holding
+/// // references to the ba instance at this point.
+///
+
+namespace LLCore
+{
+
+
+// =====================================================
+// BufferArrayStreamBuf
+// =====================================================
+
+/// Adapter class to put a std::streambuf interface on a BufferArray
+///
+/// Application developers will rarely be interested in anything
+/// other than the constructor and even that will rarely be used
+/// except indirectly via the @BufferArrayStream class. The
+/// choice of interfaces implemented yields a bufferless adapter
+/// that doesn't used either the input or output pointer triplets
+/// of the more common buffered implementations. This may or may
+/// not be faster and that question could stand to be looked at
+/// sometime.
+///
+
+class BufferArrayStreamBuf : public std::streambuf
+{
+public:
+ /// Constructor increments the reference count on the
+ /// BufferArray argument and calls release() on destruction.
+ BufferArrayStreamBuf(BufferArray * array);
+ virtual ~BufferArrayStreamBuf();
+
+private:
+ BufferArrayStreamBuf(const BufferArrayStreamBuf &); // Not defined
+ void operator=(const BufferArrayStreamBuf &); // Not defined
+
+public:
+ // Input interfaces from std::streambuf
+ int_type underflow();
+ int_type uflow();
+ int_type pbackfail(int_type ch);
+ std::streamsize showmanyc();
+
+ // Output interfaces from std::streambuf
+ int_type overflow(int c);
+ std::streamsize xsputn(const char * src, std::streamsize count);
+
+ // Common/misc interfaces from std::streambuf
+ std::streampos seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which);
+
+protected:
+ BufferArray * mBufferArray; // Ref counted
+ size_t mReadCurPos;
+ int mReadCurBlock;
+ const char * mReadBegin;
+ const char * mReadCur;
+ const char * mReadEnd;
+ size_t mWriteCurPos;
+
+}; // end class BufferArrayStreamBuf
+
+
+// =====================================================
+// BufferArrayStream
+// =====================================================
+
+/// Adapter class that supplies streaming operators to BufferArray
+///
+/// Provides a streaming adapter to an existing BufferArray
+/// instance so that the convenient '<<' and '>>' conversions
+/// can be applied to a BufferArray. Very convenient for LLSD
+/// serialization and parsing as well.
+
+class BufferArrayStream : public std::iostream
+{
+public:
+ /// Constructor increments the reference count on the
+ /// BufferArray argument and calls release() on destruction.
+ BufferArrayStream(BufferArray * ba);
+ ~BufferArrayStream();
+
+protected:
+ BufferArrayStream(const BufferArrayStream &);
+ void operator=(const BufferArrayStream &);
+
+protected:
+ BufferArrayStreamBuf mStreamBuf;
+}; // end class BufferArrayStream
+
+
+} // end namespace LLCore
+
+#endif // _LLCORE_BUFFER_STREAM_H_
diff --git a/indra/llcorehttp/examples/http_texture_load.cpp b/indra/llcorehttp/examples/http_texture_load.cpp
new file mode 100644
index 0000000000..998dc9240b
--- /dev/null
+++ b/indra/llcorehttp/examples/http_texture_load.cpp
@@ -0,0 +1,943 @@
+/**
+ * @file http_texture_load.cpp
+ * @brief Texture download example for core-http library
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include
+#include
+#include
+#include
+#include
- HelpUseLocal
-
HelpURLFormat
MemoryPrivatePoolSize
+ TextureFetchConcurrency
+
TextureFetchDebuggerEnabled
+ sourceid
+
SpeakerParticipantDefaultOrder
- http://join.secondlife.com/index.php?lang=de-DE
+ http://join.secondlife.com/index.php?lang=de-DE&sourceid=[sourceid]
Mit dem von Ihnen verwendeten Viewer ist der Zugriff auf Second Life nicht mehr möglich. Laden Sie von den folgenden Seite einen neuen Viewer herunter:
@@ -1414,6 +1414,12 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
Meine Favoriten
+
+ Meine Favoriten
+
+
+ Meine Favoriten
+
Aktuelles Outfit
@@ -1429,6 +1435,12 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
Netze
+
+ Erhaltene Artikel
+
+
+ Händler-Outbox
+
Freunde
diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml
index 9bc5c7d5a4..4a457fb929 100644
--- a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml
@@ -6,7 +6,7 @@
height="395"
width="1075"
min_height="395"
- min_width="1075"
+ min_width="990"
layout="topleft"
name="floater_pathfinding_linksets"
help_topic="floater_pathfinding_linksets"
@@ -524,7 +524,7 @@
tool_tip="Walkability for characters of type D. Example character type is other."
width="45" />
-
+ function="Tools.TakeCopy"/>
diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml
index 52b9524b11..f6004621a6 100644
--- a/indra/newview/skins/default/xui/en/menu_object.xml
+++ b/indra/newview/skins/default/xui/en/menu_object.xml
@@ -29,26 +29,6 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ tear_off="true">
@@ -984,6 +984,14 @@
+
+
+
+
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index f0a126724b..9dae77a304 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -6074,26 +6074,6 @@ This area has building disabled. You can't build or rez objects here.
Dynamic pathfinding is not enabled on this region. Scripted objects using pathfinding LSL calls may not operate as expected on this region.
-
-
- Changing certain objects in this region could cause other moving objects to behave incorrectly. To make moving objects behave correctly, click the “Rebake region” button. Choose “Help” for more information.
-
- http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
-
-
-
-
-We cannot display a preview of this texture because it is no-copy and/or no-transfer.
-
-
-
-
-
We cannot display a preview of this texture because it is no-copy and/or no-transfer.
Username:
+
Password:
+
@@ -223,7 +232,7 @@
follows="right|bottom"
name="links"
width="210"
- min_width="210"
+ min_width="100"
height="80">
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
index e9a787cef0..e69a17e037 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
@@ -1,36 +1,36 @@
-
- Deed
-
-
- Deed
-
-
- You can modify this object
-
-
- You can modify these objects
-
-
- You can't modify this object
-
-
- You can't modify these objects
-
-
+
+ Deed
+
+
+ Deed
+
+
+ You can modify this object
+
+
+ You can modify these objects
+
+
+ You can't modify this object
+
+
+ You can't modify these objects
+
+
You can't modify this object across a region boundary
@@ -39,399 +39,399 @@
You can't modify these objects across a region boundary
- This object has linked parts
-
-
- Price: L$
-
-
- Total Price: L$
-
-
- Price Per: L$
-
-
- Mixed Price
-
-
- Mixed Sale
-
-
-
-
-
-
- Name:
-
-
-
- Description:
-
-
-
- Creator:
-
-
- TestString PleaseIgnore
-
-
- Owner:
-
-
- TestString PleaseIgnore
-
-
- Group:
-
+ name="text modify warning">
+ This object has linked parts
+
+
+ Price: L$
+
+
+ Total Price: L$
+
+
+ Price Per: L$
+
+
+ Mixed Price
+
+
+ Mixed Sale
+
-
-
-
- Click to:
-
-
-
+
+
+
+
+ Name:
+
+
+
+ Description:
+
+
+
+ Creator:
+
+
+ TestString PleaseIgnore
+
+
+ Owner:
+
+
+ TestString PleaseIgnore
+
+
+ Group:
+
+
+
+
+
+ Click to:
+
+
+
-
-
-
-
-
-
-
+
+
+
- You can modify this object
-
-
- Anyone:
-
-
-
-
- Group:
-
-
-
- Next owner:
-
-
-
-
-
-
-
-
-
-
-
-
+ You can modify this object
+
+
+ Anyone:
+
+
+
+
+ Group:
+
+
+
+ Next owner:
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
- B:
-
-
- O:
-
-
- G:
-
-
- E:
-
-
- N:
-
-
- F:
-
-
-
-
-
-
-
+ follows="left|top"
+ layout="topleft"
+ left="10"
+ name="B:"
+ height="10"
+ width="50">
+ B:
+
+
+ O:
+
+
+ G:
+
+
+ E:
+
+
+ N:
+
+
+ F:
+
+
+
+
+
+
+
-
+
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 15eb46c348..2157a05bbf 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -59,7 +59,7 @@
Network error: Could not establish connection, please check your network connection.
Login failed.
Quit
- http://join.secondlife.com/
+ http://join.secondlife.com/?sourceid=[sourceid]
The viewer you are using can no longer access Second Life. Please visit the following page to download a new viewer:
diff --git a/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml
index 266e8138c9..e6f864eef5 100644
--- a/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/es/floater_pathfinding_linksets.xml
@@ -30,6 +30,9 @@
--
+
+ --
+
--
@@ -45,6 +48,15 @@
[grupo]
+
+ Sí
+
+
+ No
+
+
+ Desconocido
+
Objeto transitable
@@ -94,6 +106,7 @@
+
diff --git a/indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml
index 29fd2ab2a3..59aaf7f74a 100644
--- a/indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/es/floater_texture_fetch_debugger.xml
@@ -45,10 +45,23 @@
15, Volviendo a obtener visibles de la caché, Tiempo: [TIME] segundos, Obtenidos: [SIZE] KB, [PIXEL] MPíxeles
-
- 16, Volviendo a obtener visibles de HTTP, Tiempo: [TIME] segundos, Obtenidos: [SIZE] KB, [PIXEL] MPíxeles
+
+ 16, Volviendo a obtener todas las texturas de caché, Tiempo: [TIME] segundos, Obtenidos: [SIZE] KB, [PIXEL] MPíxeles
-
+
+ 17, Volviendo a obtener visibles de HTTP, Tiempo: [TIME] segundos, Obtenidos: [SIZE] KB, [PIXEL] MPíxeles
+
+
+ 18, Volviendo a obtener todas las texturas de HTTP, Tiempo: [TIME] segundos, Obtenidos: [SIZE] KB, [PIXEL] MPíxeles
+
+
+
+ 20, Fuente de texturas:
+
+
+
+
+
@@ -58,5 +71,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml
index 4a8f37dee4..803d3f1331 100644
--- a/indra/newview/skins/default/xui/es/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory.xml
@@ -67,6 +67,7 @@
+
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index 991a079be5..7dfb27717d 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -1211,7 +1211,7 @@ a '[THIS_GPU]'
Se te ha llevado a una región cercana.
- En estos momentos no está disponible tu última posición.
+ En estos momentos no está disponible la posición solicitada.
Se te ha llevado a una región cercana.
@@ -1229,8 +1229,8 @@ Puedes usar [SECOND_LIFE] de forma normal; los demás residentes te verán corre
Se ha completado la instalación de [SECOND_LIFE].
-Si es la primera vez que usas [SECOND_LIFE], debes crear una cuenta antes de poder iniciar una sesión.
-
+Si es la primera vez que usas [SECOND_LIFE], debes crear una cuenta para poder iniciar una sesión.
+
Tenemos problemas de conexión. Puede deberse a un problema de tu conexión a Internet o de [SECOND_LIFE_GRID].
@@ -3231,19 +3231,58 @@ Al ocultar el botón Hablar se desactiva la función de voz.
Esta acción ocultará todos los botones y elementos de menú. Para restaurarlos, pulsa otra vez en [SHORTCUT].
-
- Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' debido a restricciones de los permisos del linkset. Estos linksets se configurarán como '[RESTRICTED_TYPE]'.
+
+ El indicador de inmaterial de algunos linksets seleccionados se conmutará.
+
+¿Quieres continuar?
+
+
+
+ Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' debido a restricciones de los permisos del linkset. Estos linksets se configurarán como '[RESTRICTED_TYPE]'.
+
+¿Quieres continuar?
-
+
Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' porque su forma no es convexa.
+
+¿Quieres continuar?
-
- Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' debido a restricciones de los permisos del linkset. Estos linksets se configurarán como '[RESTRICTED_TYPE]'.
- Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' porque su forma no es convexa. Los tipos de utilización de estos linksets no cambiarán.
+
+ El indicador de inmaterial de algunos linksets seleccionados se conmutará.
+
+Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' debido a restricciones de los permisos del linkset. Estos linksets se configurarán como '[RESTRICTED_TYPE]'.
+
+¿Quieres continuar?
+
+
+
+ El indicador de inmaterial de algunos linksets seleccionados se conmutará.
+
+Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' porque su forma no es convexa.
+
+¿Quieres continuar?
+
+
+
+ Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' debido a restricciones de los permisos del linkset. Estos linksets se configurarán como '[RESTRICTED_TYPE]'.
+
+Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' porque su forma no es convexa. Los tipos de utilización de estos linksets no cambiarán.
+
+¿Quieres continuar?
+
+ El indicador de inmaterial de algunos linksets seleccionados se conmutará.
+
+Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' debido a restricciones de los permisos del linkset. Estos linksets se configurarán como '[RESTRICTED_TYPE]'.
+
+Algunos de los linksets seleccionados no pueden configurarse como '[REQUESTED_TYPE]' porque su forma no es convexa. Los tipos de utilización de estos linksets no cambiarán.
+
+¿Quieres continuar?
+
+
El objeto que has seleccionado afecta al navmesh. Al cambiarlo a una Ruta flexible se eliminará del navmesh.
diff --git a/indra/newview/skins/default/xui/es/panel_login.xml b/indra/newview/skins/default/xui/es/panel_login.xml
index 683e0a096a..1d7f077fe7 100644
--- a/indra/newview/skins/default/xui/es/panel_login.xml
+++ b/indra/newview/skins/default/xui/es/panel_login.xml
@@ -23,7 +23,7 @@
-
+
@@ -38,9 +38,9 @@
- CREATE YǾUR ACCǾUNT
+ CREA TU CUENTA
-
+
diff --git a/indra/newview/skins/default/xui/es/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/es/panel_navmesh_rebake.xml
deleted file mode 100644
index 96df844512..0000000000
--- a/indra/newview/skins/default/xui/es/panel_navmesh_rebake.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/es/panel_region_debug.xml b/indra/newview/skins/default/xui/es/panel_region_debug.xml
index f07f3d3951..71bdba1a25 100644
--- a/indra/newview/skins/default/xui/es/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_debug.xml
@@ -36,5 +36,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/es/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/es/panel_volume_pulldown.xml
index 9193da6cde..426783aa8e 100644
--- a/indra/newview/skins/default/xui/es/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/es/panel_volume_pulldown.xml
@@ -1,14 +1,14 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index d4698b8cb3..52bcab54e5 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -128,7 +128,7 @@
Salir
- http://join.secondlife.com/index.php?lang=es-ES
+ http://join.secondlife.com/index.php?lang=es-ES&sourceid=[sourceid]
Ya no puedes acceder a Second Life con el visor que estás utilizando. Visita la siguiente página para descargar un nuevo visor:
@@ -1390,6 +1390,12 @@ Intenta iniciar sesión de nuevo en unos instantes.
Mis Favoritos
+
+ Mis Favoritos
+
+
+ Mis Favoritos
+
Vestuario actual
@@ -1405,6 +1411,12 @@ Intenta iniciar sesión de nuevo en unos instantes.
Redes
+
+ Objetos recibidos
+
+
+ Buzón de salida de comerciante
+
Amigos
diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml
index 26844d9849..25c49b97b5 100644
--- a/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml
@@ -339,7 +339,7 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche.
-
+
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
index de1ba220a0..5ec68458e1 100644
--- a/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/fr/floater_edit_day_cycle.xml
@@ -22,13 +22,13 @@
Remarque : si vous changez votre préréglage de nom, un nouveau préréglage sera créé et celui existant restera tel quel.
- - Modifier un réglage de ciel et d'heure : clic sur le repère
+ - Modifier un réglage de ciel/heure : clic sur le repère
- - Définir les heures de transition : clic et glissement des repères
+ - Heures de transition : clic-glissement des repères
- - Afficher un aperçu du cycle du jour : déplacer le triangle
+ - Aperçu du cycle du jour : déplacement du triangle
diff --git a/indra/newview/skins/default/xui/fr/floater_model_preview.xml b/indra/newview/skins/default/xui/fr/floater_model_preview.xml
index 0f717cb2cd..bd3dae6599 100644
--- a/indra/newview/skins/default/xui/fr/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_model_preview.xml
@@ -201,7 +201,7 @@
Passes :
- Échelle de détail :
+ Échelle détail :
Retenue :
@@ -227,7 +227,7 @@
- Echelle (1 = pas d'échelle) :
+ Échelle (1 = aucune) :
@@ -238,12 +238,12 @@
- Pour les modèles d'avatar uniquement :
+ Modèles d'avatar uniquement :
-
-
+
+
- Décalage Z (élever ou abaisser l'avatar) :
+ Décalage Z (élever/abaisser l'avatar) :
@@ -252,7 +252,7 @@
-
+
Frais de chargement : [FEE] L$
diff --git a/indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml
index 6d85f8035d..02d969dc08 100644
--- a/indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pathfinding_console.xml
@@ -1,5 +1,5 @@
-
+
Implémentation de la bibliothèque de recherche de chemin introuvable
@@ -93,10 +93,10 @@
- Ctrl-clic : sélection du point de départ
+ Ctrl-clic : sélection point de départ
- Maj-clic : sélection du point d'arrivée
+ Maj-clic : sélection point d'arrivée
Largeur du personnage
@@ -115,7 +115,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml
index 3abddd54ce..894ec6dd9c 100644
--- a/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pathfinding_linksets.xml
@@ -30,6 +30,9 @@
--
+
+ --
+
--
@@ -45,6 +48,15 @@
[Groupe]
+
+ Oui
+
+
+ Non
+
+
+ Inconnu
+
Marche possible
@@ -94,6 +106,7 @@
+
diff --git a/indra/newview/skins/default/xui/fr/floater_spellcheck.xml b/indra/newview/skins/default/xui/fr/floater_spellcheck.xml
index 077ce25828..635db52ffa 100644
--- a/indra/newview/skins/default/xui/fr/floater_spellcheck.xml
+++ b/indra/newview/skins/default/xui/fr/floater_spellcheck.xml
@@ -2,7 +2,7 @@
- Dictionnaire principal :
+ Diction. principal :
Dictionnaires supplémentaires :
diff --git a/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
index 43397c2acd..f86c1a4217 100644
--- a/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
@@ -20,7 +20,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml
index f0cc95319d..caae15ea17 100644
--- a/indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/fr/floater_texture_fetch_debugger.xml
@@ -45,10 +45,23 @@
15, nouvelle récupération des données visibles du cache, Durée : [TIME] secondes, Récupéré : [SIZE] Ko, [PIXEL] Mpixels
-
- 16, nouvelle récupération des données visibles de la requête HTTP, Durée : [TIME] secondes, Récupéré : [SIZE] Ko, [PIXEL] Mpixels
+
+ 16, nouvelle récupération de toutes les textures du cache, Durée : [TIME] secondes, Récupéré : [SIZE] Ko, [PIXEL] Mpixels
-
+
+ 17, nouvelle récupération des données visibles de la requête HTTP, Durée : [TIME] secondes, Récupéré : [SIZE] Ko, [PIXEL] Mpixels
+
+
+ 18, nouvelle récupération de toutes les textures de la requête HTTP, Durée : [TIME] secondes, Récupéré : [SIZE] Ko, [PIXEL] Mpixels
+
+
+
+ 20, source des textures :
+
+
+
+
+
@@ -58,5 +71,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/fr/floater_top_objects.xml b/indra/newview/skins/default/xui/fr/floater_top_objects.xml
index aeeb462ac6..eb084d9184 100644
--- a/indra/newview/skins/default/xui/fr/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/fr/floater_top_objects.xml
@@ -1,5 +1,5 @@
-
+
Scripts les plus consommateurs
@@ -45,7 +45,7 @@
Propriétaire :
-
+
Parcelle :
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml
index 59dcff9075..627d3068c3 100644
--- a/indra/newview/skins/default/xui/fr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml
@@ -68,6 +68,7 @@
+
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 3982a6159f..85020afe25 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -8,7 +8,7 @@
-
+
-
-
+
+
-
+
([QLVL])
diff --git a/indra/newview/skins/default/xui/fr/panel_region_debug.xml b/indra/newview/skins/default/xui/fr/panel_region_debug.xml
index b15af0d1f2..98ae250215 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_debug.xml
@@ -36,5 +36,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml
index f40bcec908..472c4a5e8f 100644
--- a/indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_snapshot_inventory.xml
@@ -4,7 +4,7 @@
Enregistrer dans l'inventaire
- L'enregistrement d'une image dans votre inventaire coûte [UPLOAD_COST] L$. Pour enregistrer votre image sous forme de texture, sélectionnez l'un des formats carrés.
+ L'enregistrement d'une image dans l'inventaire coûte [UPLOAD_COST] L$. Pour enregistrer votre image sous forme de texture, sélectionnez un format carré.
diff --git a/indra/newview/skins/default/xui/fr/panel_snapshot_local.xml b/indra/newview/skins/default/xui/fr/panel_snapshot_local.xml
index 48ccacb374..97dc3e7e2b 100644
--- a/indra/newview/skins/default/xui/fr/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/fr/panel_snapshot_local.xml
@@ -25,7 +25,7 @@
-
+
([QLVL])
diff --git a/indra/newview/skins/default/xui/fr/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/fr/panel_volume_pulldown.xml
new file mode 100644
index 0000000000..e05c93a4ac
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_volume_pulldown.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index 6dc1439593..6a2a3f559a 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -137,7 +137,7 @@
Quitter
- http://join.secondlife.com/index.php?lang=fr-FR
+ http://join.secondlife.com/index.php?lang=fr-FR&sourceid=[sourceid]
Le client que vous utilisez ne permet plus d'accéder à Second Life. Téléchargez un nouveau client à la page suivante :
@@ -1414,6 +1414,12 @@ Veuillez réessayer de vous connecter dans une minute.
Mes Favoris
+
+ Mes favoris
+
+
+ Mes favoris
+
Tenue actuelle
@@ -1429,6 +1435,12 @@ Veuillez réessayer de vous connecter dans une minute.
Maillages
+
+ Articles reçus
+
+
+ Boîte d'envoi vendeur
+
Amis
@@ -4902,7 +4914,7 @@ Essayez avec le chemin d'accès à l'éditeur entre guillemets doubles
Parler
- Paramètres de la caméra
+ Caméra
Paramètres vocaux
diff --git a/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml
index 2c6d620b0a..7edac3ff46 100644
--- a/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/it/floater_pathfinding_linksets.xml
@@ -30,6 +30,9 @@
--
+
+ --
+
--
@@ -45,6 +48,15 @@
[gruppo]
+
+ Sì
+
+
+ No
+
+
+ Sconosciuto
+
Camminabile
@@ -94,6 +106,7 @@
+
diff --git a/indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml
index 57e65c3456..49b6453319 100644
--- a/indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/it/floater_texture_fetch_debugger.xml
@@ -45,10 +45,23 @@
15, Nuovo fetching elementi visibili dalla cache, Tempo: [TIME] secondi, fetching: [SIZE] KB, [PIXEL] MPixels
-
- 16, Nuovo fetching elementi visibili da HTTP, Tempo: [TIME] secondi, fetching: [SIZE] KB, [PIXEL] MPixels
+
+ 16, Nuovo fetching di tutte le texture dalla cache, Tempo: [TIME] secondi, fetching: [SIZE] KB, [PIXEL] MPixels
-
+
+ 17, Nuovo fetching elementi visibili da HTTP, Tempo: [TIME] secondi, fetching: [SIZE] KB, [PIXEL] MPixels
+
+
+ 18, Nuovo fetching di tutte le texture da HTTP, Tempo: [TIME] secondi, fetching: [SIZE] KB, [PIXEL] MPixels
+
+
+
+ 20, Fonte texture:
+
+
+
+
+
@@ -58,5 +71,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml
index 4bf6be82fd..b31e35771d 100644
--- a/indra/newview/skins/default/xui/it/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory.xml
@@ -68,6 +68,7 @@
+
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index 9bdce2e2f6..d5fdde4e7d 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -1207,7 +1207,7 @@ a '[THIS_GPU]'
Sei stato trasferito in una regione vicina.
- La tua ultima posizione non è al momento disponibile.
+ La posizione richiesta non è al momento disponibile.
Sei stato trasferito in una regione vicina.
@@ -1226,7 +1226,7 @@ Puoi comunque usare [SECOND_LIFE] normalmente e gli altri residenti ti vedranno
L'installazione di [APP_NAME] è terminata.
Se questa è la prima volta che usi [SECOND_LIFE], devi creare un account prima che tu possa effettuare l'accesso.
-
+
Ci sono problemi di connessione. È possibile che ci siano problemi con la tua connessione Internet oppure sulla [SECOND_LIFE_GRID].
@@ -3238,19 +3238,58 @@ Clicca e trascina dovunque nel mondo per ruotare la visuale
Questa azione cancellerà tutte le voci di menu e i pulsanti. Per visualizzarli nuovamente cliccare ancora [SHORTCUT].
-
+
+ L'indicatore oggetto fantasma di alcuni set collegati verrà commutato.
+
+Vuoi continuare?
+
+
+
Alcuni set collegati selezionati non possono essere impostati su '[REQUESTED_TYPE]' a causa di limitazioni nelle autorizzazioni per i set collegati. Questi set collegati verranno invece impostati su '[RESTRICTED_TYPE]'.
+
+Vuoi continuare?
-
+
Alcuni set collegati selezionati non possono essere impostati a '[REQUESTED_TYPE]' perché la forma è non-convessa.
+
+Vuoi continuare?
-
+
+ L'indicatore oggetto fantasma di alcuni set collegati verrà commutato.
+
+Alcuni set collegati selezionati non possono essere impostati su '[REQUESTED_TYPE]' a causa di limitazioni nelle autorizzazioni per i set collegati. Questi set collegati verranno invece impostati su '[RESTRICTED_TYPE]'.
+
+Vuoi continuare?
+
+
+
+ L'indicatore oggetto fantasma di alcuni set collegati verrà commutato.
+
+Alcuni set collegati selezionati non possono essere impostati a '[REQUESTED_TYPE]' perché la forma è non-convessa.
+
+Vuoi continuare?
+
+
+
Alcuni set collegati selezionati non possono essere impostati su '[REQUESTED_TYPE]' a causa di limitazioni nelle autorizzazioni per i set collegati. Questi set collegati verranno invece impostati su '[RESTRICTED_TYPE]'.
- Alcuni set collegati selezionati non possono essere impostati a '[REQUESTED_TYPE]' perché la forma è non-convessa. Il tipo di utilizzo di questi set collegati non cambierà.
+
+Alcuni set collegati selezionati non possono essere impostati a '[REQUESTED_TYPE]' perché la forma è non-convessa. Il tipo di utilizzo di questi set collegati non cambierà.
+
+Vuoi continuare?
+
+ L'indicatore oggetto fantasma di alcuni set collegati verrà commutato.
+
+Alcuni set collegati selezionati non possono essere impostati su '[REQUESTED_TYPE]' a causa di limitazioni nelle autorizzazioni per i set collegati. Questi set collegati verranno invece impostati su '[RESTRICTED_TYPE]'.
+
+Alcuni set collegati selezionati non possono essere impostati a '[REQUESTED_TYPE]' perché la forma è non-convessa. Il tipo di utilizzo di questi set collegati non cambierà.
+
+Vuoi continuare?
+
+
L'oggetto selezionato influenza il navmesh. Se lo si trasforma in un percorso flessibile verrà rimosso dal navmesh.
diff --git a/indra/newview/skins/default/xui/it/panel_login.xml b/indra/newview/skins/default/xui/it/panel_login.xml
index 02a3f8271c..2afde40940 100644
--- a/indra/newview/skins/default/xui/it/panel_login.xml
+++ b/indra/newview/skins/default/xui/it/panel_login.xml
@@ -38,9 +38,9 @@
- CREATE YǾUR ACCǾUNT
+ CREA IL TUO ACCOUNT
-
+
diff --git a/indra/newview/skins/default/xui/it/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/it/panel_navmesh_rebake.xml
deleted file mode 100644
index 432754076a..0000000000
--- a/indra/newview/skins/default/xui/it/panel_navmesh_rebake.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/it/panel_region_debug.xml b/indra/newview/skins/default/xui/it/panel_region_debug.xml
index 789dade097..aba60d03aa 100644
--- a/indra/newview/skins/default/xui/it/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_debug.xml
@@ -36,5 +36,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/it/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/it/panel_volume_pulldown.xml
index 1792b09413..bc17fc0c89 100644
--- a/indra/newview/skins/default/xui/it/panel_volume_pulldown.xml
+++ b/indra/newview/skins/default/xui/it/panel_volume_pulldown.xml
@@ -1,15 +1,15 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index f2afcafbea..fb1e387468 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -134,7 +134,7 @@
Esci
- http://join.secondlife.com/index.php?lang=it-IT
+ http://join.secondlife.com/index.php?lang=it-IT&sourceid=[sourceid]
Il viewer utilizzato non è più in grado di accedere a Second Life. Visita la parina seguente per scaricare un nuovo viewer:
@@ -1399,6 +1399,12 @@ Prova ad accedere nuovamente tra un minuto.
I miei preferiti
+
+ I miei preferiti
+
+
+ I miei preferiti
+
Abbigliamento attuale
@@ -1414,6 +1420,12 @@ Prova ad accedere nuovamente tra un minuto.
Reticoli
+
+ Oggetti ricevuti
+
+
+ Casella venditore in uscita
+
Amici
diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
index d05a74fe09..4441d5e738 100644
--- a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
@@ -30,6 +30,9 @@
--
+
+ --
+
--
@@ -45,6 +48,15 @@
[group]
+
+ はい
+
+
+ いいえ
+
+
+ 不明
+
歩行可能
@@ -94,6 +106,7 @@
+
diff --git a/indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml
index 4efdf7d40d..adc35137b5 100644
--- a/indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/ja/floater_texture_fetch_debugger.xml
@@ -45,10 +45,23 @@
15, キャッシュから表示テクスチャを再取得、時間:[TIME] 秒、取得:[SIZE]KB、[PIXEL]メガピクセル
-
- 16, HTTP から表示テクスチャを再取得、時間:[TIME] 秒、取得:[SIZE]KB、[PIXEL]メガピクセル
+
+ 16、キャッシュからすべてのテクスチャを再フェッチ中、時間: [TIME] 秒、フェッチ済み: [SIZE]KB、[PIXEL]メガピクセル
-
+
+ 17、HTTP から可視ファイルを再フェッチ中、時間: [TIME] 秒、フェッチ済み: [SIZE]KB、[PIXEL]メガピクセル
+
+
+ 18、HTTP からすべてのテクスチャを再フェッチ中、時間: [TIME] 秒、フェッチ済み: [SIZE]KB、[PIXEL]メガピクセル
+
+
+
+ 20、テクスチャ ソース:
+
+
+
+
+
@@ -58,5 +71,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index d1893a0fc8..106b09453a 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -68,6 +68,7 @@
+
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index 9453e9ba3b..d5cff18a24 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -1240,7 +1240,7 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries を参照してく
近くのリージョンに移動しました。
- 前回いた場所は現在ご利用いただけません。
+ リクエストされた場所は現在ご利用いただけません。
近くのリージョンに移動しました。
@@ -1259,7 +1259,7 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries を参照してく
[APP_NAME] のインストールが完了しました。
[SECOND_LIFE] を使ったことがない場合は、ログインする前にアカウントの作成を行ってください。
-
+
接続がなかなかできません。 お使いのインターネット接続か、[SECOND_LIFE_GRID] の問題と考えられます。
@@ -3278,19 +3278,58 @@ M キーを押して変更します。
この操作により、全てのメニュー項目とボタンが非表示になります。再び表示するには [SHORTCUT] をもう一度クリックしてください。
-
+
+ 選択された一部のリンクセットはファントムフラグが切り替えられます。
+
+続けますか?
+
+
+
一部の選択されたリンクセットは、リンクセットへの権限が制限されているため、'[REQUESTED_TYPE]' に設定できません。これらのリンクセットは代わりに '[RESTRICTED_TYPE]' に設定されます。
+
+続けますか?
-
+
選択された一部のリンクセットは、形状が凸状でないため、'[REQUESTED_TYPE]' に設定できません。
+
+続けますか?
-
+
+ 選択された一部のリンクセットはファントムフラグが切り替えられます。
+
+一部の選択されたリンクセットは、リンクセットへの権限が制限されているため、'[REQUESTED_TYPE]' に設定できません。これらのリンクセットは代わりに '[RESTRICTED_TYPE]' に設定されます。
+
+続けますか?
+
+
+
+ 選択された一部のリンクセットはファントムフラグが切り替えられます。
+
+選択された一部のリンクセットは、形状が凸状でないため、'[REQUESTED_TYPE]' に設定できません。
+
+続けますか?
+
+
+
一部の選択されたリンクセットは、リンクセットへの権限が制限されているため、'[REQUESTED_TYPE]' に設定できません。これらのリンクセットは代わりに '[RESTRICTED_TYPE]' に設定されます。
+
選択された一部のリンクセットは、形状が凸状でないため、'[REQUESTED_TYPE]' に設定できません。これらのリンクセットの用途タイプは変わりません。
+
+続けますか?
+
+ 選択された一部のリンクセットはファントムフラグが切り替えられます。
+
+一部の選択されたリンクセットは、リンクセットへの権限が制限されているため、'[REQUESTED_TYPE]' に設定できません。これらのリンクセットは代わりに '[RESTRICTED_TYPE]' に設定されます。
+
+選択された一部のリンクセットは、形状が凸状でないため、'[REQUESTED_TYPE]' に設定できません。これらのリンクセットの用途タイプは変わりません。
+
+続けますか?
+
+
選択されたオブジェクトはナビメッシュに影響を与えます。オブジェクトをフレキシブルパスに変更すると、ナビメッシュから削除されます。
diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml
index 780f7aa1ae..396d9e65b1 100644
--- a/indra/newview/skins/default/xui/ja/panel_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_login.xml
@@ -38,9 +38,9 @@
- CREATE YǾUR ACCǾUNT
+ アカウントを作成してください
-
+
diff --git a/indra/newview/skins/default/xui/ja/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/ja/panel_navmesh_rebake.xml
deleted file mode 100644
index ea3ec32424..0000000000
--- a/indra/newview/skins/default/xui/ja/panel_navmesh_rebake.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/ja/panel_region_debug.xml b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
index 7d1d837b73..169da27ce5 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
@@ -36,5 +36,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/ja/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/ja/panel_volume_pulldown.xml
new file mode 100644
index 0000000000..967dedf061
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_volume_pulldown.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 7c3f9489da..50697e5500 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -137,7 +137,7 @@
終了
- http://join.secondlife.com/index.php?lang=ja-JP
+ http://join.secondlife.com/index.php?lang=ja-JP&sourceid=[sourceid]
お使いの古いビューワでは Second Life にアクセスできません。以下のページから新しいビューワをダウンロードしてください:
@@ -1414,6 +1414,12 @@ support@secondlife.com にお問い合わせください。
お気に入り
+
+ お気に入り
+
+
+ お気に入り
+
着用中のアウトフィット
@@ -1429,6 +1435,12 @@ support@secondlife.com にお問い合わせください。
メッシュ
+
+ 受け取った商品
+
+
+ マーチャントのアウトボックス
+
フレンド
diff --git a/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml
index 8dc14a79a5..e0c60679dd 100644
--- a/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pathfinding_linksets.xml
@@ -30,6 +30,9 @@
--
+
+ --
+
--
@@ -45,6 +48,15 @@
[grupo]
+
+ Sim
+
+
+ Não
+
+
+ Desconhecido
+
Caminhável
@@ -94,6 +106,7 @@
+
diff --git a/indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml
index f20d50362e..0e897aea09 100644
--- a/indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/pt/floater_texture_fetch_debugger.xml
@@ -45,10 +45,23 @@
15, Obtendo novamente visíveis do cache, Tempo: [TIME] segundos, Obtidos: [SIZE]KB, [PIXEL]MPixels
-
- 16, Obtendo novamente visíveis do HTTP, Tempo: [TIME] segundos, Obtidos: [SIZE]KB, [PIXEL]MPixels
+
+ 16, Obtendo novamente todas as texturas do cache, Tempo: [TIME] segundos, Obtidos: [SIZE]KB, [PIXEL]MPixels
-
+
+ 17, Obtendo novamente visíveis do HTTP, Tempo: [TIME] segundos, Obtidos: [SIZE]KB, [PIXEL]MPixels
+
+
+ 18, Obtendo novamente todas as texturas do HTTP, Tempo: [TIME] segundos, Obtidos: [SIZE]KB, [PIXEL]MPixels
+
+
+
+ 20, Origem da textura:
+
+
+
+
+
@@ -58,5 +71,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml
index 09e1fbf72e..a3a648eb34 100644
--- a/indra/newview/skins/default/xui/pt/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml
@@ -68,6 +68,7 @@
+
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index 11d987d73a..ff7382bf80 100644
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -1196,7 +1196,7 @@ para '[THIS_GPU]'
Você chegou a uma região próxima.
- Esse destino não está disponível no momento.
+ O destino solicitado não está disponível no momento.
Você chegou a uma região próxima.
@@ -1212,10 +1212,10 @@ Enquando isso, use o [SECOND_LIFE] normalmente. Seu visual será exibido correta
- A instalação do [APP_NAME] está pronta.
+ A instalação do [APP_NAME] está pronta.
Se você ainda não conhece o [SECOND_LIFE], basta criar uma conta para começar.
-
+
Estamos detectando um problema de conexão. Pode haver um problema com a sua conexão à internet ou com o [SECOND_LIFE_GRID].
@@ -3210,18 +3210,57 @@ Se o botão Falar for ocultado, o recurso de voz será desabilitado.
Essa ação irá ocultar todos os itens de menu e botões. Para trazê-los de volta, clique em [SHORTCUT] novamente.
-
- Alguns linksets selecionados não podem ser definidos como '[REQUESTED_TYPE]' devido às restrições de permissão no linkset. Ao invés disso, estes linksets serão definidos como '[RESTRICTED_TYPE]'.
+
+ Alguns linksets selecionados terão suas sinalizações fantasmas alternadas.
+
+Deseja continuar?
+
+
+
+ Algumas sinalizações fantasmas dos linksets selecionados não podem ser definidas como '[REQUESTED_TYPE]' devido às restrições de permissão no linkset. Ao invés disso, estes linksets serão definidos como '[RESTRICTED_TYPE]'.
+
+Deseja continuar?
-
+
Alguns linksets selecionados não podem ser definidos como '[REQUESTED_TYPE]', pois a forma não é convexa.
+
+Deseja continuar?
-
- Alguns linksets selecionados não podem ser definidos como '[REQUESTED_TYPE]' devido às restrições de permissão no linkset. Ao invés disso, estes linksets serão definidos como '[RESTRICTED_TYPE]'.
- Alguns linksets selecionados não podem ser definidos como '[REQUESTED_TYPE]', pois a forma não é convexa. Estes tipos de uso de linksets não mudarão.
-
+
+ Alguns linksets selecionados terão suas sinalizações fantasmas alternadas.
+
+Algumas sinalizações fantasmas dos linksets selecionados não podem ser definidas como '[REQUESTED_TYPE]' devido às restrições de permissão no linkset. Ao invés disso, estes linksets serão definidos como '[RESTRICTED_TYPE]'.
+
+Deseja continuar?
+
+
+
+ Alguns linksets selecionados terão suas sinalizações fantasmas alternadas.
+
+Alguns linksets selecionados não podem ser definidos como '[REQUESTED_TYPE]', pois a forma não é convexa.
+
+Deseja continuar?
+
+
+
+ Algumas sinalizações fantasmas dos linksets selecionados não podem ser definidas como '[REQUESTED_TYPE]' devido às restrições de permissão no linkset. Ao invés disso, estes linksets serão definidos como '[RESTRICTED_TYPE]'.
+
+Alguns linksets selecionados não podem ser definidos como '[REQUESTED_TYPE]', pois a forma não é convexa. Estes tipos de uso de linksets não mudarão.
+
+Deseja continuar?
+
+
+
+ Alguns linksets selecionados terão suas sinalizações fantasmas alternadas.
+
+Algumas sinalizações fantasmas dos linksets selecionados não podem ser definidas como '[REQUESTED_TYPE]' devido às restrições de permissão no linkset. Ao invés disso, estes linksets serão definidos como '[RESTRICTED_TYPE]'.
+
+Alguns linksets selecionados não podem ser definidos como '[REQUESTED_TYPE]', pois a forma não é convexa. Estes tipos de uso de linksets não mudarão.
+
+Deseja continuar?
+
O objeto selecionado afeta o navmesh. Alterá-lo para um Caminho Flexível irá removê-lo do navmesh.
diff --git a/indra/newview/skins/default/xui/pt/panel_login.xml b/indra/newview/skins/default/xui/pt/panel_login.xml
index 25a2c9fda0..d7e9fa76ea 100644
--- a/indra/newview/skins/default/xui/pt/panel_login.xml
+++ b/indra/newview/skins/default/xui/pt/panel_login.xml
@@ -6,7 +6,7 @@
- CONECTAR
+ LOGIN
Nome de usuário:
@@ -22,24 +22,25 @@
-
+
+
- Precisa de ajuda ao conectar?
+ Precisa de ajuda com o login?
Esqueceu seu nome ou senha?
-
+
- CREATE YǾUR ACCǾUNT
+ CRIE SUA CONTA
-
+
diff --git a/indra/newview/skins/default/xui/pt/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/pt/panel_navmesh_rebake.xml
deleted file mode 100644
index aa885ae031..0000000000
--- a/indra/newview/skins/default/xui/pt/panel_navmesh_rebake.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/pt/panel_region_debug.xml b/indra/newview/skins/default/xui/pt/panel_region_debug.xml
index 72e348e48c..be15d40d74 100644
--- a/indra/newview/skins/default/xui/pt/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_debug.xml
@@ -36,5 +36,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/pt/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/pt/panel_volume_pulldown.xml
new file mode 100644
index 0000000000..1dfd2a69ca
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_volume_pulldown.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index a7234bdc14..bc72b86020 100644
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -128,7 +128,7 @@
Sair
- http://join.secondlife.com/index.php?lang=pt-BR
+ http://join.secondlife.com/index.php?lang=pt-BR&sourceid=[sourceid]
O visualizador utilizado já não é compatível com o Second Life. Visite a página abaixo para baixar uma versão atual: http://secondlife.com/download
@@ -1354,6 +1354,12 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
Meus favoritos
+
+ Meus favoritos
+
+
+ Meus favoritos
+
Look atual
@@ -1369,6 +1375,12 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
Meshes:
+
+ Itens recebidos
+
+
+ Caixa de saída do lojista
+
Amigos
diff --git a/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml
index f1b8e23a2c..db100fa415 100644
--- a/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/ru/floater_pathfinding_linksets.xml
@@ -30,6 +30,9 @@
--
+
+ --
+
--
@@ -45,6 +48,15 @@
[группа]
+
+ Да
+
+
+ Нет
+
+
+ Неизвестно
+
Проходимое место
@@ -94,6 +106,7 @@
+
diff --git a/indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml
index 034106f24c..628e6c5c87 100644
--- a/indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/ru/floater_texture_fetch_debugger.xml
@@ -45,10 +45,23 @@
15, Повторное извлечение из кэша, время: [TIME] с, извлечено: [SIZE] КБ, [PIXEL] Мпикселов
-
- 16, Повторное извлечение из HTTP, время: [TIME] с, извлечено: [SIZE] КБ, [PIXEL] Мпикселов
+
+ 16, Повторное извлечение всех текстур из кэша, время: [TIME] с, извлечено: [SIZE] КБ, [PIXEL] Мпикселов
-
+
+ 17, Повторное извлечение из HTTP, время: [TIME] с, извлечено: [SIZE] КБ, [PIXEL] Мпикселов
+
+
+ 18, Повторное извлечение всех текстур из HTTP, время: [TIME] с, извлечено: [SIZE] КБ, [PIXEL] Мпикселов
+
+
+
+ 20, Истояник текстур:
+
+
+
+
+
@@ -58,5 +71,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/ru/menu_inventory.xml b/indra/newview/skins/default/xui/ru/menu_inventory.xml
index 49f7281b4e..37ee19fc1d 100644
--- a/indra/newview/skins/default/xui/ru/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inventory.xml
@@ -68,6 +68,7 @@
+
diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml
index 9dad569ddd..85b7074253 100644
--- a/indra/newview/skins/default/xui/ru/notifications.xml
+++ b/indra/newview/skins/default/xui/ru/notifications.xml
@@ -1207,7 +1207,7 @@
Вы перемещены в соседний регион.
- Ваше последнее местоположение сейчас недоступно.
+ Требуемое вами местоположение сейчас недоступно.
Вы перемещены в соседний регион.
@@ -3233,19 +3233,58 @@ http://secondlife.com/download.
Это действие приведет к скрытию всех меню и кнопок. Чтобы вернуть их, щелкните [SHORTCUT] снова.
-
+
+ Признак фантомности некоторых выбранных наборов связей будет изменен.
+
+Продолжить?
+
+
+
Для некоторых выбранных наборов связей нельзя задать тип «[REQUESTED_TYPE]» из-за ограничений этих наборов. Эти наборы связей будут иметь тип «[RESTRICTED_TYPE]».
+
+Продолжить?
-
+
Для некоторых выбранных наборов связей невозможно задать тип «[REQUESTED_TYPE]», так как фигура не выпуклая.
+
+Продолжить?
-
+
+ Признак фантомности некоторых выбранных наборов связей будет изменен.
+
+Для некоторых выбранных наборов связей нельзя задать тип «[REQUESTED_TYPE]» из-за ограничений этих наборов. Эти наборы связей будут иметь тип «[RESTRICTED_TYPE]».
+
+Продолжить?
+
+
+
+ Признак фантомности некоторых выбранных наборов связей будет изменен.
+
+Для некоторых выбранных наборов связей невозможно задать тип «[REQUESTED_TYPE]», так как фигура не выпуклая.
+
+Продолжить?
+
+
+
Для некоторых выбранных наборов связей нельзя задать тип «[REQUESTED_TYPE]» из-за ограничений этих наборов. Эти наборы связей будут иметь тип «[RESTRICTED_TYPE]».
- Для некоторых выбранных наборов связей невозможно задать тип «[REQUESTED_TYPE]», так как фигура не выпуклая. Тип использования этих наборов связей не изменится.
+
+Для некоторых выбранных наборов связей невозможно задать тип «[REQUESTED_TYPE]», так как фигура не выпуклая. Тип использования этих наборов связей не изменится.
+
+Продолжить?
+
+ Признак фантомности некоторых выбранных наборов связей будет изменен.
+
+Для некоторых выбранных наборов связей нельзя задать тип «[REQUESTED_TYPE]» из-за ограничений этих наборов. Эти наборы связей будут иметь тип «[RESTRICTED_TYPE]».
+
+Для некоторых выбранных наборов связей невозможно задать тип «[REQUESTED_TYPE]», так как фигура не выпуклая. Тип использования этих наборов связей не изменится.
+
+Продолжить?
+
+
Выбранный объект влияет на навигационную сетку. Если заменить его на гибкий путь, он будет удален из навигационной сетки.
diff --git a/indra/newview/skins/default/xui/ru/panel_login.xml b/indra/newview/skins/default/xui/ru/panel_login.xml
index 7ead924c1f..f0877731c6 100644
--- a/indra/newview/skins/default/xui/ru/panel_login.xml
+++ b/indra/newview/skins/default/xui/ru/panel_login.xml
@@ -38,9 +38,9 @@
- CREATE YǾUR ACCǾUNT
+ СОЗДАЙТЕ СВОЙ АККАУНТ
-
+
diff --git a/indra/newview/skins/default/xui/ru/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/ru/panel_navmesh_rebake.xml
deleted file mode 100644
index fdc374a024..0000000000
--- a/indra/newview/skins/default/xui/ru/panel_navmesh_rebake.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/ru/panel_region_debug.xml b/indra/newview/skins/default/xui/ru/panel_region_debug.xml
index 7bef927507..4be1e781fa 100644
--- a/indra/newview/skins/default/xui/ru/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_debug.xml
@@ -30,5 +30,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/ru/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/ru/panel_volume_pulldown.xml
new file mode 100644
index 0000000000..fe044cd083
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/panel_volume_pulldown.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml
index 3745aff8fd..f9ded799bf 100644
--- a/indra/newview/skins/default/xui/ru/strings.xml
+++ b/indra/newview/skins/default/xui/ru/strings.xml
@@ -137,7 +137,7 @@
Выйти
- http://join.secondlife.com/index.php?lang=ru-RU
+ http://join.secondlife.com/index.php?lang=ru-RU&sourceid=[sourceid]
У клиента, которым вы пользуетесь, больше нет доступа к игре Second Life. Загрузить новую версию клиента можно по адресу
@@ -1411,6 +1411,12 @@ support@secondlife.com.
Мое избранное
+
+ Мое избранное
+
+
+ Мое избранное
+
Текущий костюм
@@ -1426,6 +1432,12 @@ support@secondlife.com.
Меши
+
+ Полученные вещи
+
+
+ Торговые исходящие
+
Друзья
diff --git a/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml
index 3aee66a860..2e416c9311 100644
--- a/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/tr/floater_pathfinding_linksets.xml
@@ -30,6 +30,9 @@
--
+
+ --
+
--
@@ -45,6 +48,15 @@
[grup]
+
+ Evet
+
+
+ Hayır
+
+
+ Bilinmiyor
+
Yürüyebilir
@@ -94,6 +106,7 @@
+
diff --git a/indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml
index a592479b6c..42426225c7 100644
--- a/indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml
+++ b/indra/newview/skins/default/xui/tr/floater_texture_fetch_debugger.xml
@@ -45,10 +45,23 @@
15, Görünür dokuların önbellekten tekrar alınması, Süre: [TIME] saniye, Alınan: [SIZE]KB, [PIXEL]MPiksel
-
- 16, Görünür dokuların HTTP'den tekrar alınması, Süre: [TIME] saniye, Alınan: [SIZE]KB, [PIXEL]MPiksel
+
+ 16, Tüm dokuların önbellekten tekrar alınması, Süre: [TIME] saniye, Alınan: [SIZE]KB, [PIXEL]MPiksel
-
+
+ 17, Görünür dokuların HTTP'den tekrar alınması, Süre: [TIME] saniye, Alınan: [SIZE]KB, [PIXEL]MPiksel
+
+
+ 18, Tüm dokuların HTTP'den tekrar alınması, Süre: [TIME] saniye, Alınan: [SIZE]KB, [PIXEL]MPiksel
+
+
+
+ 20, Doku Kaynağı:
+
+
+
+
+
@@ -58,5 +71,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/tr/menu_inventory.xml b/indra/newview/skins/default/xui/tr/menu_inventory.xml
index 170cdebd24..51049427af 100644
--- a/indra/newview/skins/default/xui/tr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inventory.xml
@@ -68,6 +68,7 @@
+
diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml
index 708e05062f..488702f9ca 100644
--- a/indra/newview/skins/default/xui/tr/notifications.xml
+++ b/indra/newview/skins/default/xui/tr/notifications.xml
@@ -1207,7 +1207,7 @@ sonraki: '[THIS_GPU]'
Yakınındaki başka bir bölgeye taşındınız.
- Son konumunuz şu anda kullanılamıyor.
+ Talep ettiğiniz konum şu anda kullanılamıyor.
Yakınındaki başka bir bölgeye taşındınız.
@@ -1223,10 +1223,10 @@ Yeni bir ana konum ayarlamak isteyebilirsiniz.
- [APP_NAME] kurulumu tamamlandı.
+ [APP_NAME] yüklemesi tamamlandı.
[SECOND_LIFE]'ı ilk kez kullanıyorsanız, oturum açmadan önce bir hesap oluşturmalısınız.
-
+
Bağlantıda sorun yaşıyoruz. İnternet bağlantınızda ya da [SECOND_LIFE_GRID] uygulamasında bir problem olabilir.
@@ -3233,19 +3233,58 @@ Görünümünüzü döndürmek için dünya üzerindeki herhangi bir yeri tıkla
Bu eylem tüm menü öğelerini ve düğmelerini gizler. Bunları geri almak için [SHORTCUT] üzerine tekrar tıklayın.
-
+
+ Bazı seçili bağlantı kümelerinin Fantom bayrağı dönüştürülecek.
+
+Devam etmek istiyor musunuz?
+
+
+
Seçilen bazı bağlantı kümeleri, bağlantı kümesi için izin kısıtlamaları nedeniyle '[REQUESTED_TYPE]' olarak ayarlanamıyor. Bunun yerine bu bağlantı kümeleri '[RESTRICTED_TYPE]' olarak ayarlanacak.
+
+Devam etmek istiyor musunuz?
-
+
Seçilen bazı bağlantı kümeleri '[REQUESTED_TYPE]' olarak ayarlanamaz, çünkü şekil konveks değil.
+
+Devam etmek istiyor musunuz?
-
+
+ Bazı seçili bağlantı kümelerinin Fantom bayrağı dönüştürülecek.
+
+Seçilen bazı bağlantı kümeleri, bağlantı kümesi için izin kısıtlamaları nedeniyle '[REQUESTED_TYPE]' olarak ayarlanamıyor. Bunun yerine bu bağlantı kümeleri '[RESTRICTED_TYPE]' olarak ayarlanacak.
+
+Devam etmek istiyor musunuz?
+
+
+
+ Bazı seçili bağlantı kümelerinin Fantom bayrağı dönüştürülecek.
+
+Seçilen bazı bağlantı kümeleri '[REQUESTED_TYPE]' olarak ayarlanamaz, çünkü şekil konveks değil.
+
+Devam etmek istiyor musunuz?
+
+
+
Seçilen bazı bağlantı kümeleri, bağlantı kümesi için izin kısıtlamaları nedeniyle '[REQUESTED_TYPE]' olarak ayarlanamıyor. Bunun yerine bu bağlantı kümeleri '[RESTRICTED_TYPE]' olarak ayarlanacak.
- Seçilen bazı bağlantı kümeleri '[REQUESTED_TYPE]' olarak ayarlanamaz, çünkü şekil konveks değil. Bu bağlantı kümelerinin kullanım tipleri değişmez.
+
+Seçilen bazı bağlantı kümeleri '[REQUESTED_TYPE]' olarak ayarlanamaz, çünkü şekil konveks değil. Bu bağlantı kümelerinin kullanım tipleri değişmez.
+
+Devam etmek istiyor musunuz?
+
+ Bazı seçili bağlantı kümelerinin Fantom bayrağı dönüştürülecek.
+
+Seçilen bazı bağlantı kümeleri, bağlantı kümesi için izin kısıtlamaları nedeniyle '[REQUESTED_TYPE]' olarak ayarlanamıyor. Bunun yerine bu bağlantı kümeleri '[RESTRICTED_TYPE]' olarak ayarlanacak.
+
+Seçilen bazı bağlantı kümeleri '[REQUESTED_TYPE]' olarak ayarlanamaz, çünkü şekil konveks değil. Bu bağlantı kümelerinin kullanım tipleri değişmez.
+
+Devam etmek istiyor musunuz?
+
+
Seçilen nesne navigasyon örgüsünü etkiliyor. Bunu bir Esnek Yol olarak değiştirirseniz, navigasyon örgüsünden çıkartmış olursunuz.
diff --git a/indra/newview/skins/default/xui/tr/panel_login.xml b/indra/newview/skins/default/xui/tr/panel_login.xml
index 15684ba402..28d316e46b 100644
--- a/indra/newview/skins/default/xui/tr/panel_login.xml
+++ b/indra/newview/skins/default/xui/tr/panel_login.xml
@@ -38,9 +38,9 @@
- CREATE YǾUR ACCǾUNT
+ HESABINIZI OLUŞTURUN
-
+
diff --git a/indra/newview/skins/default/xui/tr/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/tr/panel_navmesh_rebake.xml
deleted file mode 100644
index 78cb8bcc02..0000000000
--- a/indra/newview/skins/default/xui/tr/panel_navmesh_rebake.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/tr/panel_region_debug.xml b/indra/newview/skins/default/xui/tr/panel_region_debug.xml
index 3f101a1824..834ece563f 100644
--- a/indra/newview/skins/default/xui/tr/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_debug.xml
@@ -30,5 +30,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/tr/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/tr/panel_volume_pulldown.xml
new file mode 100644
index 0000000000..0c8c7b68b5
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/panel_volume_pulldown.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml
index eed65f8c75..1be8f5974c 100644
--- a/indra/newview/skins/default/xui/tr/strings.xml
+++ b/indra/newview/skins/default/xui/tr/strings.xml
@@ -137,7 +137,7 @@
Çık
- http://join.secondlife.com/index.php?lang=tr-TR
+ http://join.secondlife.com/index.php?lang=tr-TR&sourceid=[sourceid]
Kullandığınız görüntüleyici ile artık Second Life'a erişemezsiniz. Yeni bir görüntüleyiciyi karşıdan yüklemek için lütfen şu sayfayı ziyaret edin:
@@ -1411,6 +1411,12 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
Favorilerim
+
+ Sık Kullanılanlarım
+
+
+ Sık Kullanılanlarım
+
Mevcut Dış Görünüm
@@ -1426,6 +1432,12 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
Örgüler
+
+ Alınan Öğeler
+
+
+ Satıcı Giden Kutusu
+
Arkadaşlar
diff --git a/indra/newview/skins/default/xui/zh/floater_about.xml b/indra/newview/skins/default/xui/zh/floater_about.xml
index 48a417ba46..643881e416 100644
--- a/indra/newview/skins/default/xui/zh/floater_about.xml
+++ b/indra/newview/skins/default/xui/zh/floater_about.xml
@@ -10,7 +10,7 @@
你的方位是 [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1],地區名:[REGION],主機:<nolink>[HOSTNAME]</nolink> ([HOSTIP])
[SERVER_VERSION]
-[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]]
+[SERVER_RELEASE_NOTES_URL]
CPU:[CPU]
@@ -37,51 +37,60 @@ Qt Webkit 版本: [QT_WEBKIT_VERSION]
封包損失:[PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+
+ 擷取伺服器版本說明 URL 時出錯。
+
-
- 「第二人生」由……等多人協力開發。
-
-感謝下列居民相助,我們得以推出如此完美的版本:……。要感謝的人還很多,族繁不及備載。
-
-
-
-
-「任務永續,目標常在,希望長存,夢想萬古不朽。」——愛德華・甘迺迪
+
+ 「第二人生」由以下的 Linden 家族帶給你:
+
+
+ 這些人士做了開放源碼的貢獻:
+
+
+ 執行時期被取代的假名稱
+
+
+ 以下人士提供翻譯:
+
+
+ 執行時期被取代的假名稱
- 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
-APR Copyright (C) 2000-2004 The Apache Software Foundation
-Collada DOM Copyright 2005 Sony Computer Entertainment Inc.
-cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
-DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
-expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
-FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
-GL Copyright (C) 1999-2004 Brian Paul.
-GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia.
-google-perftools Copyright (c) 2005, Google Inc.
-Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
-jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
-jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
-ogg/vorbis Copyright (C) 2001, Xiphophorus
-OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
-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.
-zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
-google-perftools Copyright (c) 2005, Google Inc.
+ 3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion
+ APR Copyright (C) 2011 The Apache Software Foundation
+ Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
+ cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
+ DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
+ expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
+ FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
+ GL Copyright (C) 1999-2004 Brian Paul.
+ GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia.
+ google-perftools Copyright (c) 2005, Google Inc.
+ Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
+ jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
+ jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ ogg/vorbis Copyright (C) 2002, Xiphophorus
+ OpenSSL Copyright (C) 1998-2008 The OpenSSL Project.
+ 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.
+ zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler.
-第二人生 Viewer 採用 Havok (TM) 物理引擎。 (c)Copyright 1999-2010 Havok.com Inc.(及其放照人)。 保留一切權利。 詳情見 www.havok.com。
+ 第二人生 Viewer 採用 Havok (TM) 物理引擎。 (c)Copyright 1999-2010 Havok.com Inc.(及其放照人)。 保留一切權利。 詳情見 www.havok.com。
-保留一切權利。 詳情見 licenses.txt。
+ 本軟體含有 NVIDIA Corporation 提供的源程式碼。
-語音聊天音頻技術:Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
+ 保留一切權利。 詳情見 licenses.txt。
+
+ 語音聊天音頻技術:Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
diff --git a/indra/newview/skins/default/xui/zh/floater_about_land.xml b/indra/newview/skins/default/xui/zh/floater_about_land.xml
index 9dbc7dbdd7..76db621951 100644
--- a/indra/newview/skins/default/xui/zh/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/zh/floater_about_land.xml
@@ -129,15 +129,15 @@
流量:
- 0
+ 載入中...
+
-
@@ -212,19 +212,19 @@
地區物件負荷倍數:[BONUS]
- 幾何元件使用:
+ 地區容納量:
使用 [MAX] 中的 [COUNT] (剩餘 [AVAILABLE] 可用)
- 地段所提供的幾何元件數:
+ 地段土地容納量:
[COUNT]
- 地段上的幾何元件數:
+ 地段土地衝擊量:
[COUNT]
@@ -309,8 +309,10 @@
允許其他居民去:
-
-
+
+ 飛行:
+
+
建造:
@@ -326,9 +328,6 @@
-
- 土地選項:
-
@@ -368,6 +367,10 @@
快照:
+
+ 其他地段的化身可以看見本地段裡的化身,並與之交談
+
+
登陸點:[LANDING]
@@ -424,6 +427,11 @@
聲音:
+
+ 化身聲音:
+
+
+
語音:
@@ -435,20 +443,15 @@
(由領地定義)
-
- 允許公開出入([MATURITY])(注意:若未勾選,將設立禁越線)
-
至少一個選項在領地的層級設定
-
- 此地段出入權
-
+
- 僅允許經過如下驗證的居民出入:
+ 僅允許符合以下條件的居民進入:
-
-
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_animation_anim_preview.xml b/indra/newview/skins/default/xui/zh/floater_animation_anim_preview.xml
new file mode 100644
index 0000000000..76cb9079c4
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_animation_anim_preview.xml
@@ -0,0 +1,11 @@
+
+
+
+ 名稱:
+
+
+ 描述:
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_animation_bvh_preview.xml b/indra/newview/skins/default/xui/zh/floater_animation_bvh_preview.xml
new file mode 100644
index 0000000000..ffb0de8a68
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_animation_bvh_preview.xml
@@ -0,0 +1,186 @@
+
+
+
+ 動作初始化失敗
+
+
+ 動作檔長度為 [LENGTH] 秒。
+
+動作檔長度最多可為 [MAX_LENGTH] 秒。
+
+
+ 無法讀取動作檔。
+
+[STATUS]
+
+
+ 確定
+
+
+ 檔案結尾不正常。
+
+
+ 無法讀取約束定義。
+
+
+ 無法開啟 BVH 檔案。
+
+
+ HIERARCHY 檔頭無效。
+
+
+ 找不到 ROOT 或 JOINT。
+
+
+ 無法取得 JOINT 名稱。
+
+
+ 無法尋找位移。
+
+
+ 找不到頻道。
+
+
+ 無法取得旋轉序。
+
+
+ 無法取得旋轉軸。
+
+
+ 找不到動作。
+
+
+ 無法取得幀數。
+
+
+ 無法取得幀時間。
+
+
+ 無法取得位置值。
+
+
+ 無法取得旋轉值。
+
+
+ 無法開啟平移檔案。
+
+
+ 無法讀取平移檔頭。
+
+
+ 無法讀取平移名稱。
+
+
+ 無法讀取平移忽略值。
+
+
+ 無法讀取平移相對值。
+
+
+ 無法讀取平移輸出名稱。
+
+
+ 無法讀取平移矩陣。
+
+
+ 無法取得 mergechild 名稱。
+
+
+ 無法取得 mergeparent 名稱。
+
+
+ 無法取得優先值。
+
+
+ 無法取得迴圈值。
+
+
+ 無法取得 easeIn 值。
+
+
+ 無法取得 easeOut 值。
+
+
+ 無法取得 hand morph 值。
+
+
+ 無法讀取表情符號名稱。
+
+
+ root joint 名稱不正確,使用 "hip"。
+
+
+ 名稱:
+
+
+ 描述:
+
+
+
+
+
+
+ 手部姿勢
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 表情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 預覽…
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 無法讀取動作檔。
+
+我們建議採用由 Poser 4 匯出的 BVH 檔案格式。
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_autoreplace.xml b/indra/newview/skins/default/xui/zh/floater_autoreplace.xml
new file mode 100644
index 0000000000..4ee07e6295
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_autoreplace.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_avatar.xml b/indra/newview/skins/default/xui/zh/floater_avatar.xml
new file mode 100644
index 0000000000..55b1a95a41
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_avatar.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_build_options.xml b/indra/newview/skins/default/xui/zh/floater_build_options.xml
index b37cbdaa33..29f36b461c 100644
--- a/indra/newview/skins/default/xui/zh/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/zh/floater_build_options.xml
@@ -1,7 +1,30 @@
-
-
+
+ 螢幕
+
+
+ 本地
+
+
+ 世界
+
+
+ 參考
+
+
+ 附件
+
+
+ 模式
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_buy_currency.xml b/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
index c2cfe5c880..fcf2800728 100644
--- a/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
@@ -46,7 +46,7 @@
L$ [AMT]
- [http://www.secondlife.com/my/account/payment_method_management.php 付費方法] | [http://www.secondlife.com/my/account/currency.php 幣種] | [http://www.secondlife.com/my/account/exchange_rates.php 匯率]
+ [http://www.secondlife.com/my/account/payment_method_management.php 付費方式] | [http://www.secondlife.com/my/account/currency.php 幣種]
重新輸入金額即可察看最新的匯率。
diff --git a/indra/newview/skins/default/xui/zh/floater_camera.xml b/indra/newview/skins/default/xui/zh/floater_camera.xml
index 4319d96e89..becb7b9546 100644
--- a/indra/newview/skins/default/xui/zh/floater_camera.xml
+++ b/indra/newview/skins/default/xui/zh/floater_camera.xml
@@ -1,5 +1,5 @@
-
+
繞著焦點轉動攝影機
diff --git a/indra/newview/skins/default/xui/zh/floater_chat_bar.xml b/indra/newview/skins/default/xui/zh/floater_chat_bar.xml
new file mode 100644
index 0000000000..f1a69a7688
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_chat_bar.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_delete_env_preset.xml b/indra/newview/skins/default/xui/zh/floater_delete_env_preset.xml
new file mode 100644
index 0000000000..4aafb31952
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_delete_env_preset.xml
@@ -0,0 +1,35 @@
+
+
+
+ 刪除水的自訂配置
+
+
+ 刪除天空自訂配置
+
+
+ 刪除日循環
+
+
+ 自訂配置:
+
+
+ 自訂配置:
+
+
+ 日循環:
+
+
+ 確定要刪除所選自訂配置?
+
+
+ 無法刪除日循環有所指涉的自訂配置。
+
+
+ -選擇一個自訂配置-
+
+
+ 自訂配置:
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_destinations.xml b/indra/newview/skins/default/xui/zh/floater_destinations.xml
new file mode 100644
index 0000000000..f50a6a631a
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_destinations.xml
@@ -0,0 +1,2 @@
+
+
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
new file mode 100644
index 0000000000..b84a4027ea
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_edit_day_cycle.xml
@@ -0,0 +1,104 @@
+
+
+
+ 新建一個日循環
+
+
+ 編輯日循環
+
+
+ 為日循環定名,調整各項控制確定細節,再點按「儲存」。
+
+
+ 若要編輯你的日循環,請調整下方各項控制,再點按「儲存」。
+
+
+ -選擇一個自訂配置-
+
+
+ 自訂配置名稱:
+
+
+ 注意:更改自訂配置的名稱將會新建一個自訂配置,不會改變原有的自訂配置。
+
+
+ - 點按一個頁籤,編輯特定的天空設定和時間。
+
+
+ - 點按並拖曳各個頁籤,即可設定過渡時間。
+
+
+ - 使用 scrubber 預覽你的日循環。
+
+
+
+
+
+
+
+ 午夜 12 點
+
+
+ 凌晨 3 點
+
+
+ 上午 6 點
+
+
+ 上午 9 點
+
+
+ 中午 12 點
+
+
+ 下午 3 點
+
+
+ 下午 6 點
+
+
+ 下午 9 點
+
+
+ 午夜 12 點
+
+
+ |
+
+
+ I
+
+
+ |
+
+
+ I
+
+
+ |
+
+
+ I
+
+
+ |
+
+
+ I
+
+
+ |
+
+
+
+ 天空設定:
+
+
+
+ 時間:
+
+
+
+
+
+
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
new file mode 100644
index 0000000000..1ff832cdc4
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_edit_sky_preset.xml
@@ -0,0 +1,143 @@
+
+
+
+ 建立新的天空自訂配置
+
+
+ 編輯天空自訂配置
+
+
+ 為自訂配置定名,調整各項控制確定配置細節,完成後點按「儲存」。
+
+
+ 若要編輯你的天空自訂配置,請調整各項控制,再點按「儲存」。
+
+
+ -選擇一個自訂配置-
+
+
+ 若要編輯你的自訂配置,請調整各項控制,再點按「儲存」。
+
+
+ 自訂配置名稱:
+
+
+ 注意:更改自訂配置的名稱將會新建一個自訂配置,不會改變原有的自訂配置。
+
+
+
+
+ 藍天水平線
+
+
+ 陰霾水平線
+
+
+ 藍天密度
+
+
+ 陰霾密度
+
+
+ 密度倍增
+
+
+ 距離倍增
+
+
+ 最大高度
+
+
+
+
+ 日/月 顏色
+
+
+ 環境
+
+
+ 太陽光輝
+
+
+
+
+ 星空亮度
+
+
+ 場景 Gamma 值
+
+
+ 日/月 位置
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ 午夜 12 點
+
+
+ 上午 6 點
+
+
+ 中午 12 點
+
+
+ 下午 6 點
+
+
+ 午夜 12 點
+
+
+
+ 東升角度
+
+
+
+
+ 雲彩顏色
+
+
+ 雲彩 XY 軸 / 密度
+
+
+
+
+
+ 雲彩覆蓋
+
+
+ 雲彩規模
+
+
+ 雲彩細節(XY 軸 / 密度)
+
+
+
+
+
+ 雲彩 X 滾軸
+
+
+
+ 雲彩 Y 滾軸
+
+
+
+
+
+
+
+
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
new file mode 100644
index 0000000000..7943866e72
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_edit_water_preset.xml
@@ -0,0 +1,72 @@
+
+
+
+ 新建水的自訂配置
+
+
+ 編輯水的自訂配置
+
+
+ 為自訂配置定名,調整各項控制確定配置細節,完成後點按「儲存」。
+
+
+ 若要編輯水的自訂配置,請調整各項控制,再點按「儲存」。
+
+
+ -選擇一個自訂配置-
+
+
+ 若要編輯你的自訂配置,請調整各項控制,再點按「儲存」。
+
+
+ 自訂配置名稱:
+
+
+ 注意:更改自訂配置的名稱將會新建一個自訂配置,不會改變原有的自訂配置。
+
+
+
+ 水霧顏色
+
+
+ 霧密度指數
+
+
+ 水底霧修飾元
+
+
+ 大波浪方向
+
+
+
+
+ 反射子波比例
+
+
+ 菲涅耳比例
+
+
+ 菲涅耳偏距
+
+
+ 小波浪方向
+
+
+
+
+ 上折射比例
+
+
+ 下折射比例
+
+
+ 模糊倍數
+
+
+ 正常地圖
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_environment_settings.xml b/indra/newview/skins/default/xui/zh/floater_environment_settings.xml
new file mode 100644
index 0000000000..1c6f2f936d
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_environment_settings.xml
@@ -0,0 +1,36 @@
+
+
+
+ 使用以下的選項自訂你 Viewer 的環境設定。
+
+
+
+
+
+
+
+ 注意:你的自訂設定不會被其他使用者看見。
+
+
+ 水的設定
+
+
+
+
+
+ 天空 / 日循環
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_fast_timers.xml b/indra/newview/skins/default/xui/zh/floater_fast_timers.xml
new file mode 100644
index 0000000000..871849305c
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_fast_timers.xml
@@ -0,0 +1,10 @@
+
+
+
+ 暫停
+
+
+ 跑步
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml b/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml
index 00d7590b9b..9e3bb88ac0 100644
--- a/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml
@@ -4,7 +4,7 @@
過濾:
-
+
消除鋸齒:
@@ -25,6 +25,10 @@
啟用頂點緩衝物件(VBO):
+
+ 啟用 S3TC:
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_how_to.xml b/indra/newview/skins/default/xui/zh/floater_how_to.xml
new file mode 100644
index 0000000000..e033327165
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_how_to.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_map.xml b/indra/newview/skins/default/xui/zh/floater_map.xml
index de39fc635d..8a030b3b3f 100644
--- a/indra/newview/skins/default/xui/zh/floater_map.xml
+++ b/indra/newview/skins/default/xui/zh/floater_map.xml
@@ -1,5 +1,5 @@
-
+
[REGION](雙擊以開啟地圖,按下 shift 鍵拖曳來平移)
diff --git a/indra/newview/skins/default/xui/zh/floater_merchant_outbox.xml b/indra/newview/skins/default/xui/zh/floater_merchant_outbox.xml
new file mode 100644
index 0000000000..6b6126c8e0
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_merchant_outbox.xml
@@ -0,0 +1,27 @@
+
+
+
+ 1 個資料夾
+
+
+ [NUM] 個資料夾
+
+
+ 正在傳送資料夾…
+
+
+ 正在初始化…
+
+
+
+
+
+ 載入中...
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_model_preview.xml b/indra/newview/skins/default/xui/zh/floater_model_preview.xml
index 970e9e6f4f..22b3d3b065 100644
--- a/indra/newview/skins/default/xui/zh/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_model_preview.xml
@@ -1,7 +1,11 @@
-
- 閒置中
+
+
+ 錯誤:剖析 dae 時出錯,詳見記錄檔。
+
+
+ 錯誤:模型材料並非參考模型的子集合。
載入中...
@@ -12,6 +16,9 @@
錯誤:頂點數目超過 65534,程序已中止!
+
+ 錯誤:無效的元件
+
高
@@ -45,6 +52,9 @@
缺乏需要的細節層次。
+
+ 細節層次材料並非參考模型的子集合。
+
全部
@@ -54,178 +64,249 @@
簡化中…
-
- 名稱:
-
+
+ (未定)
+
+
+
+
+ 模型名稱:
+
+
+ 這模型代表…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 步驟 1:細節層次
+
+
+
+ 選擇一項…
+
+
+ 高
+
+
+ 中
+
+
+ 低
+
+
+ 最低
+
+
+ 來自檔案
+
+
+
+
+
+
+ 步驟 2:分析
+
+
+ 方法:
+
+
+ 品質:
+
+
+ 平滑:
+
+
+
+
+
+
+
+ 步驟 3:簡化
+
+
+ 方法:
+
+
+ 階段數:
+
+
+ 細節比例:
+
+
+ 保留:
+
+
+
+
+
+
+
+ 結果:
+
+
+ 三角形:[TRIANGLES],
+
+
+ 頂點:[POINTS],
+
+
+ 殼面:[HULLS]
+
+
+
+
+
+ 比例(1 = 原比例):
+
+
+
+ 規格:
+
+
+ [X] X [Y] X [Z]
+
+
+
+ 僅限化身模型:
+
+
+
+
+ Z 偏距(升高或降低化身):
+
+
+
+
+
+
+
+
+
+
+ 上傳費用:L$ [FEE]
+
+
+ 土地衝擊量:[EQ]
+
+
+ 下載:[ST]
+
+
+ 物理:[PH]
+
+
+ 伺服器:[SIM]
+
+
+ 附註:
+
+
+ 你無權上傳網面模型。 [[VURL] 瞭解如何]通過認證。
+
+
+ [STATUS]
+
+
+
預覽:
-
-
- 細節層次:高度
-
-
- 細節層次:中度
-
-
- 細節層次:低度
-
-
- 細節層次:最低
-
-
-
-
- 資源花費:[COST]
+
+
+
+ 高
+
+
+ 中
+
+
+ 低
+
+
+ 最低
+
+
+
+ 顯示…
-
- 物理花費:[COST]
-
-
- 上傳費:無
+
+
+
+
+
+
+ 預覽伸展:
-
- [STATUS]
-
-
-
-
-
-
-
- 選擇細節層次:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 細節層次:[DETAIL]
-
-
-
-
-
-
-
-
-
- 三角形上限
-
-
- 錯誤門檻
-
-
-
- 建製操作元:
-
-
- 佇列模式:
-
-
-
- 側邊摺疊
-
-
- 半側邊摺疊
-
-
-
-
- 儘量最大
-
-
- 儘量最小
-
-
- 獨立
-
-
-
- 邊界模式:
-
-
- 分享容忍:
-
-
-
- 解鎖
-
-
- 鎖定
-
-
-
- 皺褶角度:
-
-
-
-
-
-
-
-
-
-
-
- 最低
-
-
- 低
-
-
- 中
-
-
- 高
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 三角形:[TRIANGLES]
-
-
- 頂點:[POINTS]
-
-
- 殼面:[HULLS]
-
-
-
-
-
-
- [X] x [Y] x [Z] 公尺
-
-
-
-
-
-
-
diff --git a/indra/newview/skins/default/xui/zh/floater_moveview.xml b/indra/newview/skins/default/xui/zh/floater_moveview.xml
index 18ef63d00e..0b267e8fae 100644
--- a/indra/newview/skins/default/xui/zh/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/zh/floater_moveview.xml
@@ -1,5 +1,5 @@
-
+
向前走(按下向上箭頭或 W 鍵)
diff --git a/indra/newview/skins/default/xui/zh/floater_my_appearance.xml b/indra/newview/skins/default/xui/zh/floater_my_appearance.xml
new file mode 100644
index 0000000000..217ea5d1f9
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_my_appearance.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_my_inventory.xml b/indra/newview/skins/default/xui/zh/floater_my_inventory.xml
new file mode 100644
index 0000000000..187597f4eb
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_my_inventory.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_object_weights.xml b/indra/newview/skins/default/xui/zh/floater_object_weights.xml
new file mode 100644
index 0000000000..d2875b24b4
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_object_weights.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/zh/floater_pathfinding_characters.xml
new file mode 100644
index 0000000000..e6971d111f
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_pathfinding_characters.xml
@@ -0,0 +1,57 @@
+
+
+
+ 尋徑角色查詢中…
+
+
+ 查詢尋徑角色時出錯。
+
+
+ 沒有尋徑角色。
+
+
+ 從 [NUM_TOTAL] 個角色中選取了 [NUM_SELECTED] 個。
+
+
+ 這地區並未啟用尋徑。
+
+
+ [CPU_TIME] 微秒
+
+
+ [Loading]
+
+
+ [Unknown]
+
+
+ [group]
+
+
+
+
+
+
+
+
+
+
+ 角色:
+
+
+
+
+
+
+
+ 所選角色所採動作:
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/zh/floater_pathfinding_console.xml
new file mode 100644
index 0000000000..be009b54d8
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_pathfinding_console.xml
@@ -0,0 +1,121 @@
+
+
+
+ 找不到尋徑函式庫實作。
+
+
+ 這地區並未啟用尋徑。
+
+
+ 等待地區完成載入。
+
+
+ 正在檢查導航網面狀態。
+
+
+ 正在下載導航網面。
+
+
+ 伺服器上的導航網面已變更。 正在下載最新的導航網面。
+
+
+ 最新的導航網面下載完成。
+
+
+ 無法完成導航網面下載。
+
+
+ 導航網面有變更待存。
+
+
+ 正在建構導航網面。
+
+
+ 某些導航網面地區有變更待存。
+
+
+ 正在建構某些導航網面地區。
+
+
+ 某些導航網面地區有變更待存,其他的正在建構中。
+
+
+ 導航網面已全面更新。
+
+
+ 找不到尋徑函式庫實作。
+
+
+ 這地區並未啟用尋徑。
+
+
+ 請選擇起點和終點。
+
+
+ 請選擇起點。
+
+
+ 請選擇終點。
+
+
+ 路徑以橘色顯示。
+
+
+ 在所選的點之間找不到路徑。
+
+
+ 產生路徑時出錯。
+
+
+
+
+ 顯示:
+
+
+
+
+
+ 顯示可行走地圖:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 按住 Ctrl 並點按即可選擇起點。
+
+
+ 按住 Shift 並點按即可選擇終點。
+
+
+ 角色寬度
+
+
+
+ 公尺
+
+
+ 角色類型
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml
new file mode 100644
index 0000000000..22e5d2e846
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_pathfinding_linksets.xml
@@ -0,0 +1,167 @@
+
+
+
+ 尋徑聯結集查詢中…
+
+
+ 查詢尋徑聯結集時出錯。
+
+
+ 正在修改所選尋徑聯結集…
+
+
+ 修改所選尋徑聯結集時出錯。
+
+
+ 沒有尋徑聯結集。
+
+
+ 從 [NUM_TOTAL] 個聯結集中選取了 [NUM_SELECTED] 個。
+
+
+ 這地區並未啟用尋徑。
+
+
+ [Terrain]
+
+
+ --
+
+
+ --
+
+
+ --
+
+
+ --
+
+
+ --
+
+
+ [Loading]
+
+
+ [Unknown]
+
+
+ [group]
+
+
+ 是
+
+
+ 否
+
+
+ 未知
+
+
+ 可行走的
+
+
+ 靜態障礙
+
+
+ 可移動障礙
+
+
+ 實質體積
+
+
+ 排除體積
+
+
+ 可移動幻影
+
+
+ [unmodifiable]
+
+
+ [restricted]
+
+
+ [concave]
+
+
+ [restricted,concave]
+
+
+ 選擇聯結集的使用…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 聯結集:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 可行走性:
+
+
+ A
+
+
+
+ B
+
+
+
+ C
+
+
+
+ D
+
+
+
+
+ (類人類)
+
+
+ (獸類)
+
+
+ (機械類)
+
+
+ (其他)
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_people.xml b/indra/newview/skins/default/xui/zh/floater_people.xml
new file mode 100644
index 0000000000..f629f2f184
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_people.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_picks.xml b/indra/newview/skins/default/xui/zh/floater_picks.xml
new file mode 100644
index 0000000000..a8bfcd99e3
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_picks.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_places.xml b/indra/newview/skins/default/xui/zh/floater_places.xml
new file mode 100644
index 0000000000..f6ef1e2141
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_places.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_preferences_proxy.xml b/indra/newview/skins/default/xui/zh/floater_preferences_proxy.xml
new file mode 100644
index 0000000000..f91d5c5cdb
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_preferences_proxy.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ HTTP 代理伺服器:
+
+
+
+
+
+ SOCKS 5 代理伺服器:
+
+
+
+
+ SOCKS 鑒認:
+
+
+
+
+
+
+ 使用者名稱:
+
+
+ 密碼:
+
+
+
+
+ 其他 HTTP 資料流代理伺服器:
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_preview_animation.xml b/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
index 3be6f7a35e..b94d67b7ef 100644
--- a/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
@@ -6,6 +6,6 @@
描述:
-
-
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_search.xml b/indra/newview/skins/default/xui/zh/floater_search.xml
index d5abf37b86..3e85a529ae 100644
--- a/indra/newview/skins/default/xui/zh/floater_search.xml
+++ b/indra/newview/skins/default/xui/zh/floater_search.xml
@@ -1,5 +1,5 @@
-
+
載入中...
diff --git a/indra/newview/skins/default/xui/zh/floater_snapshot.xml b/indra/newview/skins/default/xui/zh/floater_snapshot.xml
index cfdaeeedb0..e86e20829f 100644
--- a/indra/newview/skins/default/xui/zh/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/zh/floater_snapshot.xml
@@ -3,72 +3,63 @@
未知
-
-
-
-
-
+
+ 正在發送電郵
+
+
+ 發佈
+
+
+ 儲存到收納區
+
+
+ 正在存到電腦
+
+
+ 圖像已上傳
+
+
+ 電郵發送成功!
+
+
+ 成功存入收納區!
+
+
+ 成功存入電腦!
+
+
+ 上傳圖像到你的檔案訊息發佈時出錯。
+
+
+ 電郵傳送失敗。
+
+
+ 無法存入收納區。
+
+
+ 無法儲入電腦。
+
+
+
+ [WIDTH] x [HEIGHT] 像素
+
[SIZE] KB
-
-
-
-
-
-
-
-
-
-
- 尺寸
-
-
- 格式
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 擷取快照:
-
-
-
-
-
-
-
-
-
-
+
+
+ 進階選項
+
+
+ 擷取快照:
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_spellcheck.xml b/indra/newview/skins/default/xui/zh/floater_spellcheck.xml
new file mode 100644
index 0000000000..f5a6665844
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_spellcheck.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ 主要字典:
+
+
+ 附加字典:
+
+
+ 可用的
+
+
+ 可用
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_spellcheck_import.xml b/indra/newview/skins/default/xui/zh/floater_spellcheck_import.xml
new file mode 100644
index 0000000000..6094a3bbce
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_spellcheck_import.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_stats.xml b/indra/newview/skins/default/xui/zh/floater_stats.xml
index 74a6fd1d9f..4af5684ec1 100644
--- a/indra/newview/skins/default/xui/zh/floater_stats.xml
+++ b/indra/newview/skins/default/xui/zh/floater_stats.xml
@@ -10,12 +10,15 @@
-
-
+
+
+
+
+
@@ -50,7 +53,13 @@
+
+
+
+
+
+
@@ -64,6 +73,14 @@
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_test_layout_stacks.xml b/indra/newview/skins/default/xui/zh/floater_test_layout_stacks.xml
new file mode 100644
index 0000000000..68fcf3f7f7
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_test_layout_stacks.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_test_text_vertical_aligment.xml b/indra/newview/skins/default/xui/zh/floater_test_text_vertical_aligment.xml
new file mode 100644
index 0000000000..83b6df6fe5
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_test_text_vertical_aligment.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
index 16b3409a82..e909a67e2c 100644
--- a/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
@@ -9,15 +9,27 @@
多重材質
+
+
+
+
尺寸:[DIMENSIONS]
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_texture_fetch_debugger.xml b/indra/newview/skins/default/xui/zh/floater_texture_fetch_debugger.xml
new file mode 100644
index 0000000000..0dcac17a75
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_texture_fetch_debugger.xml
@@ -0,0 +1,77 @@
+
+
+
+ 1. 已擷取材質總數:[NUM]
+
+
+ 2. 總擷取請求數:[NUM]
+
+
+ 3. 快取總讀取數:[NUM]
+
+
+ 4. 可見材質總數:[NUM]
+
+
+ 5. 可見材質擷取總請求數:[NUM]
+
+
+ 6. 總擷取資料量:[SIZE1] KB,解碼資料量:[SIZE2] KB,[PIXEL] 百萬像素
+
+
+ 7. 可見資料總量:[SIZE1] KB,解碼資料量:[SIZE2] KB
+
+
+ 8. 總呈像資料量:[SIZE1] KB,解碼資料量:[SIZE2] KB,[PIXEL] 百萬像素
+
+
+ 9. 快取讀取總時間:[TIME] 秒
+
+
+ 10. 快取寫入總時間:[TIME] 秒
+
+
+ 11. 解碼總時間:[TIME] 秒
+
+
+ 12. 建立 gl 材質總時間:[TIME] 秒
+
+
+ 13. HTTP 擷取總時間:[TIME] 秒
+
+
+ 14. 所有擷取動作總時間:[TIME] 秒
+
+
+ 15. 自快取重新擷取可見材質,時間:[TIME] 秒,擷取量:[SIZE] KB,[PIXEL] 百萬像素
+
+
+ 16. 從快取重新擷取所有材質,時間:[TIME] 秒,擷取量:[SIZE] KB,[PIXEL] 百萬像素
+
+
+ 17. 自 HTTP 重新擷取可見材質,時間:[TIME] 秒,擷取量:[SIZE] KB,[PIXEL] 百萬像素
+
+
+ 18. 自 HTTP 重新擷取所有材質,時間:[TIME] 秒,擷取量:[SIZE] KB,[PIXEL] 百萬像素
+
+
+
+ 20. 材質來源:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_tools.xml b/indra/newview/skins/default/xui/zh/floater_tools.xml
index 62d1b6a820..33c9ebeaf0 100644
--- a/indra/newview/skins/default/xui/zh/floater_tools.xml
+++ b/indra/newview/skins/default/xui/zh/floater_tools.xml
@@ -1,5 +1,20 @@
+
+ 螢幕
+
+
+ 本地
+
+
+ 世界
+
+
+ 參考
+
+
+ 附件
+
拖曳色條可以旋轉物件
@@ -24,20 +39,11 @@
按住並拖曳,可以選取土地
-
- 螢幕
+
+ 選取了 [OBJ_COUNT] 個物件,土地衝擊量 [LAND_IMPACT]
-
- 本地
-
-
- 世界
-
-
- 參考
-
-
- 附件
+
+ 剩餘容納量 [LAND_CAPACITY]。
@@ -67,20 +73,17 @@
-
- þ:[COUNT]
-
同時伸展兩側
-
+
-
-
-
+
+
+
-
+
@@ -121,23 +124,11 @@
-
- 物件: [COUNT]
+
+ 未做任何選擇。
-
- 幾何元件: [COUNT]
-
-
- 聯結集合:[COUNT]
-
-
- 費用:[COST] / [PHYSICS]
-
-
- 物件: [COUNT]
-
-
- 費用:[COST] / [PHYSICS]
+
+ [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights 詳情]
@@ -159,6 +150,12 @@
你不能修改這些物件
+
+ 無法跨地區修改這個物件
+
+
+ 無法跨地區修改這些物件
+
你必須選取整個物件以設定權限
@@ -208,12 +205,12 @@
+
-
@@ -249,6 +246,11 @@
F:
+
+
+ 尋徑屬性:
+
+
@@ -350,12 +352,10 @@
縫合類型
-
-
@@ -407,7 +407,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/zh/floater_top_objects.xml b/indra/newview/skins/default/xui/zh/floater_top_objects.xml
index ad12ae6720..6f50be0855 100644
--- a/indra/newview/skins/default/xui/zh/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/zh/floater_top_objects.xml
@@ -9,9 +9,6 @@
時間
-
- Mono 時間
-
最常碰撞物項
@@ -32,9 +29,10 @@
+
-
+
物件 ID:
@@ -48,6 +46,10 @@
所有人:
+
+ 地段:
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_toybox.xml b/indra/newview/skins/default/xui/zh/floater_toybox.xml
new file mode 100644
index 0000000000..fc6b6ea611
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_toybox.xml
@@ -0,0 +1,11 @@
+
+
+
+ 將按鈕拖入或拖離工具列,即可新增或移除該按鈕。
+
+
+ 按鈕將根據每一個工具列的設定,僅顯示圖示或一併顯示文字標籤。
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_translation_settings.xml b/indra/newview/skins/default/xui/zh/floater_translation_settings.xml
new file mode 100644
index 0000000000..fe84872557
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_translation_settings.xml
@@ -0,0 +1,58 @@
+
+
+
+ Bing AppID 未通過驗證。 請再試一次。
+
+
+ Google API 鍵值未通過驗證。 請再試一次。
+
+
+ Bing AppID 驗證成功。
+
+
+ Google API 鍵值驗證成功。
+
+
+
+ 將聊天內容翻譯成:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 選擇翻譯服務:
+
+
+
+
+
+
+ Bing [http://www.bing.com/developers/createapp.aspx AppID]:
+
+
+
+ Google [http://code.google.com/apis/language/translate/v2/getting_started.html#auth API 鍵值]:
+
+
+
+ [http://code.google.com/apis/language/translate/v2/pricing.html 價格表] | [https://code.google.com/apis/console 統計]
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_voice_controls.xml b/indra/newview/skins/default/xui/zh/floater_voice_controls.xml
index fa724a4736..a3a7679957 100644
--- a/indra/newview/skins/default/xui/zh/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/zh/floater_voice_controls.xml
@@ -1,7 +1,7 @@
- 附近的語音
+ 語音設定
與 [GROUP] 進行群組通話
@@ -10,7 +10,7 @@
多方通話
- 與 [NAME] 進行通話
+ 和 [NAME] 通話
附近沒有一人開啟語音
diff --git a/indra/newview/skins/default/xui/zh/floater_voice_effect.xml b/indra/newview/skins/default/xui/zh/floater_voice_effect.xml
index 184ee6edd5..81e0204262 100644
--- a/indra/newview/skins/default/xui/zh/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/zh/floater_voice_effect.xml
@@ -12,6 +12,135 @@
(新的!)
+
+ 競技場
+
+
+ 野獸
+
+
+ Buff
+
+
+ Buzz
+
+
+ 卡蜜兒
+
+
+ 怪異
+
+
+ 怪異機器人
+
+
+ 科幻
+
+
+ 深沉機器人
+
+
+ 魔鬼
+
+
+ 女性 - 小精靈
+
+
+ 調情
+
+
+ 香豔
+
+
+ 2010萬聖節加贈
+
+
+ 氦氣
+
+
+ 沙啞
+
+
+ 沙啞耳語
+
+
+ 對講機
+
+
+ 茱莉亞
+
+
+ 輕微抑揚頓挫
+
+
+ 陽剛
+
+
+ Micro
+
+
+ 迷你
+
+
+ 模型
+
+
+ Nano
+
+
+ 惡夢
+
+
+ PopBot
+
+
+ 瑞秋
+
+
+ 收音機
+
+
+ 機器人
+
+
+ 蘿姍
+
+
+ 低沉隆隆聲
+
+
+ 薩賓娜
+
+
+ 姍曼莎
+
+
+ 性感
+
+
+ 矮個兒
+
+
+ 較小
+
+
+ 鬼祟
+
+
+ 種馬
+
+
+ 勾魂
+
+
+ 雷聲
+
+
+ 潑婦
+
+
+ 哭鬧機器人
+
預覽
diff --git a/indra/newview/skins/default/xui/zh/floater_window_size.xml b/indra/newview/skins/default/xui/zh/floater_window_size.xml
index 54b72afccc..3942f72d76 100644
--- a/indra/newview/skins/default/xui/zh/floater_window_size.xml
+++ b/indra/newview/skins/default/xui/zh/floater_window_size.xml
@@ -7,10 +7,17 @@
設定視窗尺寸大小:
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/menu_hide_navbar.xml b/indra/newview/skins/default/xui/zh/menu_hide_navbar.xml
index dbb8ececaa..3f6820cb32 100644
--- a/indra/newview/skins/default/xui/zh/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/zh/menu_hide_navbar.xml
@@ -1,6 +1,6 @@
diff --git a/indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml
index cedc781fa2..abff0f64ac 100644
--- a/indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inspect_object_gear.xml
@@ -12,6 +12,7 @@
+
diff --git a/indra/newview/skins/default/xui/zh/menu_inventory.xml b/indra/newview/skins/default/xui/zh/menu_inventory.xml
index 63ec001e4a..7f745ffaa7 100644
--- a/indra/newview/skins/default/xui/zh/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inventory.xml
@@ -59,6 +59,7 @@
+
@@ -67,6 +68,7 @@
+
@@ -83,5 +85,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/menu_login.xml b/indra/newview/skins/default/xui/zh/menu_login.xml
index f7b2cd7b8b..c327b132a1 100644
--- a/indra/newview/skins/default/xui/zh/menu_login.xml
+++ b/indra/newview/skins/default/xui/zh/menu_login.xml
@@ -1,7 +1,7 @@
diff --git a/indra/newview/skins/default/xui/zh/menu_media_ctrl.xml b/indra/newview/skins/default/xui/zh/menu_media_ctrl.xml
index bab1bbb8f9..d222d7f658 100644
--- a/indra/newview/skins/default/xui/zh/menu_media_ctrl.xml
+++ b/indra/newview/skins/default/xui/zh/menu_media_ctrl.xml
@@ -3,4 +3,5 @@
+
diff --git a/indra/newview/skins/default/xui/zh/menu_object.xml b/indra/newview/skins/default/xui/zh/menu_object.xml
index 94172eb531..4282c1e131 100644
--- a/indra/newview/skins/default/xui/zh/menu_object.xml
+++ b/indra/newview/skins/default/xui/zh/menu_object.xml
@@ -3,6 +3,8 @@
+
+
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
index 8716a4b894..6cb0ac3c89 100644
--- 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
@@ -4,5 +4,6 @@
+
diff --git a/indra/newview/skins/default/xui/zh/menu_text_editor.xml b/indra/newview/skins/default/xui/zh/menu_text_editor.xml
index be48a2ce49..febc0b8b67 100644
--- a/indra/newview/skins/default/xui/zh/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/zh/menu_text_editor.xml
@@ -1,5 +1,12 @@
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/menu_toolbars.xml b/indra/newview/skins/default/xui/zh/menu_toolbars.xml
new file mode 100644
index 0000000000..d318992dd5
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/menu_toolbars.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/menu_viewer.xml b/indra/newview/skins/default/xui/zh/menu_viewer.xml
index 262cc2440c..ac0e9e7e35 100644
--- a/indra/newview/skins/default/xui/zh/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/zh/menu_viewer.xml
@@ -1,51 +1,60 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -54,15 +63,30 @@
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,6 +124,11 @@
+
+
+
+
+
@@ -119,7 +148,6 @@
-
@@ -127,8 +155,8 @@
+
-
@@ -141,37 +169,35 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -183,11 +209,8 @@
+
-
-
-
-
@@ -196,13 +219,6 @@
-
-
-
-
-
-
-
@@ -215,11 +231,10 @@
-
-
+
@@ -236,6 +251,7 @@
+
@@ -272,7 +288,16 @@
+
+
+
+
+
+
+
+
+
@@ -283,7 +308,6 @@
-
@@ -291,7 +315,6 @@
-
@@ -314,9 +337,8 @@
-
+
-
@@ -348,18 +370,17 @@
-
-
-
-
-
+
+
+
+
+
-
@@ -380,15 +401,23 @@
+
+
+
+
+
+
+
+
-
-
+
+
@@ -424,7 +453,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/zh/menu_wearing_gear.xml b/indra/newview/skins/default/xui/zh/menu_wearing_gear.xml
index d9f4acb27b..6184f956d1 100644
--- a/indra/newview/skins/default/xui/zh/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/zh/menu_wearing_gear.xml
@@ -2,4 +2,5 @@
+
diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml
index 97a1bd6c84..9fecf2c104 100644
--- a/indra/newview/skins/default/xui/zh/notifications.xml
+++ b/indra/newview/skins/default/xui/zh/notifications.xml
@@ -37,6 +37,12 @@
+
+
+
+
+ 新清單名稱:
+
+
+
+ 「[DUPNAME]」名稱已有人使用。
+ 輸入另一個獨特的名稱:
+
+
+
+ 關鍵字必須是一個字,取代字不得空白。
+
+
+ 該取代清單無效。
+
+
+ 你必須指定一個檔案、一個名稱和一種語言。
+
+
+ [DIC_NAME] 字典似乎沒有 "aff" 檔案,這表示該字典是「次級」字典。
+它可用做附加字典,但不得作為主要字典。
+
+參見 https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries
+
+
+ 無法複製 [FROM_NAME]
+
+ 到 [TO_NAME]
+
儲存我正在穿的為新裝扮:
- 你確定要從朋友名單中移除 [NAME] 嗎?
+ 確定要從朋友名單中移除 <nolink>[NAME]</nolink>?
@@ -1091,8 +1183,13 @@
因為你指定了 -safe 選項,已將顯示設為安全等級。
-
- 根據你的系統設置,已將顯示設定為推薦採用的等級。
+
+ 由於你的顯像卡有所變更,已將顯示狀態設為推薦採用的等級。
+原顯像卡:[LAST_GPU]
+新顯像卡:[THIS_GPU]
+
+
+ 由於呈像子系統有所變更,已將顯示狀態設為推薦的設定。
[ERROR_MESSAGE]
@@ -1103,7 +1200,7 @@
你已被移往一個鄰近地區。
- 你的上一個地點目前無法前往。
+ 你所請求的地點目前無法前往。
你已被移往一個鄰近地區。
@@ -1122,8 +1219,7 @@
[APP_NAME] 安裝完成。
如果你是第一次使用 [SECOND_LIFE],你將需要建立新帳號才可登入。
-返回 [http://join.secondlife.com secondlife.com] 建立新帳號?
-
+
連線出現問題。 問題可能出在你的網路連線或 [SECOND_LIFE_GRID]。
@@ -1409,7 +1505,7 @@ SHA1 指紋:[MD5_DIGEST]
- 你目前是 [GROUP] 群組的成員。
+ 你目前是 <nolink>[GROUP]</nolink> 群組的成員。
是否要離開群組?
@@ -1544,6 +1640,11 @@ SHA1 指紋:[MD5_DIGEST]
+
+ 你試圖送出 [OFFERS] 個瞬間傳送邀請。
+超過了 [LIMIT] 個的上限。
+
+
用神的權力把居民召到你的位置?
- 由於你的內容分級,你不能到該地區。 原因可能是我們沒有足夠資訊驗證你的年齡。
-
-請確定你已安裝最新版的 Viewer,並前往知識庫瞭解如何出入這種內容分級的區域。
+ 你所欲前往的地區含有超過你目前偏好的分級的內容。 你可以到「我自己 > 偏好設定 > 一般設定」變更你的偏好設定。
-
- 由於你的內容分級,你不能到該地區。
-
-前往知識庫進一步瞭解內容分級?
+
+ 你所欲前往的地區含有 [REGIONMATURITY] 的分級內容,僅限成人。
http://wiki.secondlife.com/wiki/Linden_Lab_Official:Maturity_ratings:_an_overview
-
+
- 由於你的內容分級,你不能到該地區。
+ 你所欲前往的地區包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。
+
+
+ 你所欲前往的地區含有 [REGIONMATURITY] 的分級內容,僅限成人。
- 根據你所設定的內容分級,你不能到該地區。
-
-要進入該地區,請更改你的內容分級偏好。 這將允許你搜尋並接觸 [REGIONMATURITY] 內容。 要還原任何變更,請到「我自己 > 偏好設定 > 一般設定」。
+ 你所欲前往的地區包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。 你可以變更你的偏好設定,或取消前往。 你的偏好設定變更後,你可以試圖再進入該地區。
+
+ 發生技術問題,你的偏好設定和伺服器上的不一致。
+
+
+
+ 你所欲前往的地區含有超過你目前偏好的分級的內容。 你可以到「我自己 > 偏好設定 > 一般設定」變更你的偏好設定。
+
+
+
+ 你所欲前往的地區含有 [REGIONMATURITY] 的分級內容,僅限成人。
+
+ http://wiki.secondlife.com/wiki/Linden_Lab_Official:Maturity_ratings:_an_overview
+
+
+
+
+ 你所欲前往的地區包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。
+
+
+ 你所欲前往的地區含有 [REGIONMATURITY] 的分級內容,僅限成人。
+
+
+ 你所欲前往的地區包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。 我們可以變更你的偏好設定好讓你繼續瞬間傳送,你也可取消這動作。
+
+
+
+ 你所欲前往的地區包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。 我們可以變更你的偏好設定,你也可取消瞬間傳送。 你的偏好設定變更後,你可以再嘗試瞬間傳送。
+
+
+
+ 發生技術問題,你的偏好設定和伺服器上的不一致。
+
+
- 你的內容分級偏好現在設為 [RATING]。
+ 你將不再收到通知,告知你即將進入一個 [RATING] 內容分級的地區。 你可以到選單列底下的「我自己 > 偏好設定 > 一般設定」變更你的內容偏好。
+
+
+
+ 我們此時無法變更你的偏好設定,讓你觀看 [PREFERRED_MATURITY] 分級的內容。 你的偏好設定已經重設,可觀看 [ACTUAL_MATURITY] 的分級內容。 你可以到選單列的「我自己 > 偏好設定 > 一般設定」再次變更你的偏好。
+
- 由於你的內容分級,你無法收取這塊土地。 原因可能是我們沒有足夠資訊驗證你的年齡。
-
-請確定你已安裝最新版的 Viewer,並前往知識庫瞭解如何出入這種內容分級的區域。
+ 你所欲收取的土地含有超過你目前偏好的分級內容。 你可以到「我自己 > 偏好設定 > 一般設定」變更你的偏好設定。
-
- 由於你的內容分級,你無法收取這塊土地。
-
-前往知識庫進一步瞭解內容分級?
+
+ 只有成人才能收取這土地。
http://wiki.secondlife.com/wiki/Linden_Lab_Official:Maturity_ratings:_an_overview
-
+
- 由於你的內容分級,你無法收取這塊土地。
+ 你所欲收取的土地包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。
+
+
+ 你所欲收取的土地包含 [REGIONMATURITY] 的分級內容,僅限成人。
- 礙於你所設的內容分級偏好,你無法收取這塊土地。
-
-你可以現在點按「更改偏好設定」提升內容分級,即可進入。 從現在起,你可以搜尋並接觸 [REGIONMATURITY] 內容。 往後如果你要還原這項變更,請到「我自己 > 偏好設定 > 一般設定」。
-
+ 你所欲收取的土地包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。 我們可以變更你的偏好,讓你再試圖收取土地。
+
- 由於你的內容分級,你無法購買這塊土地。 原因可能是我們沒有足夠資訊驗證你的年齡。
-
-請確定你已安裝最新版的 Viewer,並前往知識庫瞭解如何出入這種內容分級的區域。
+ 你所欲購買的土地的內容分級超過你目前所設偏好。 你可以到「我自己 > 偏好設定 > 一般設定」變更你的偏好設定。
-
- 由於你的內容分級,你無法購買這塊土地。
-
-前往知識庫進一步瞭解內容分級?
+
+ 只有成人才能購買這土地。
http://wiki.secondlife.com/wiki/Linden_Lab_Official:Maturity_ratings:_an_overview
-
+
- 由於你的內容分級,你無法購買這塊土地。
+ 你所欲購買的土地包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。
+
+
+ 你所欲購買的土地含有 [REGIONMATURITY] 分級的內容,僅限成人。
- 礙於你所設的內容分級,你無法購買這塊土地。
-
-你可以現在點按「更改偏好設定」提升內容分級,即可進入。 從現在起,你可以搜尋並接觸 [REGIONMATURITY] 內容。 往後如果你要還原這項變更,請到「我自己 > 偏好設定 > 一般設定」。
-
+ 你所欲購買的土地包含 [REGIONMATURITY] 分級的內容,可是你目前的偏好設定排除了 [REGIONMATURITY] 分級的內容。 我們可以變更你的偏好,讓你再試圖購買土地。
+
選擇了太多項的幾何元件。 請至多選擇 [MAX_PRIM_COUNT] 項幾何元件,再試一次。
@@ -1763,10 +1909,9 @@ SHA1 指紋:[MD5_DIGEST]
- 地區的內容分級已經更新。
+ 此地區的內容分級已經變更。
可能需要稍候一段時間,地圖才會反映這個變更。
-
-居民若要進入完全成人分級的地區,帳號必須先通過年齡驗證或付款驗證。
+
這版本的 [APP_NAME] 和本地區的語音聊天功能不相容。 想要語音聊天正常運作,你必須更新 [APP_NAME]。
@@ -1883,6 +2028,18 @@ SHA1 指紋:[MD5_DIGEST]
你確定你要結束退出?
+
+ 這動作將會恢復你預設的按鈕和工具列。
+
+你不能取消這動作。
+
+
+
+ 這動作將把所有按鈕收入工具箱,你的工具列將會清空。
+
+你不能取消這動作。
+
+
[QUESTION]
@@ -1963,6 +2120,10 @@ SHA1 指紋:[MD5_DIGEST]
你確定要刪除你的旅行、網頁及搜尋歷史紀錄嗎?
+
+ 確定要清除你 Viewer 的快取?
+
+
你確定要清除你的 cookies 嗎?
@@ -1988,49 +2149,31 @@ SHA1 指紋:[MD5_DIGEST]
你要覆寫已儲存的預設配置嗎?
-
- 你要刪除 [SKY]?
-
-
你不能編輯或刪除預設的設定。
這個「一日循環」檔案參考了一個不存在的天空檔案:[SKY]。
+
+ 抱歉,設定無法套用到地區。 離開地區再返回也許可以解決這個問題。 所得的原因為:[FAIL_REASON]
+
+
+ 無法刪除此日循環的最後一組設定,日循環不得為空白。 你應該修改最後一組資料,不要試圖刪除,然後再建立新的。
+
+
+
+ 你無法新增更多的 keyframe 到這個日循環。 [SCOPE] 範圍的日循環最多允許 [MAX] 個 keyframe。
+
+
+
+ 你至多只能每 [WAIT] 秒更新一次地區的環境設定。 請等到這段時間過去了再試一次。
+
+
PostProcess 效果已經存在。 你是否仍要把它覆寫掉?
-
- 請為新的天空定一個名稱
-
-
-
- 預設值已經存在!
-
-
- 請為水的新預設值定一個名稱
-
-
-
- 預設值已經存在!
-
-
- 你不能編輯或刪除預設的設定。
-
無法開始一個與 [RECIPIENT] 他的新聊天會話。
[REASON]
@@ -2058,13 +2201,11 @@ SHA1 指紋:[MD5_DIGEST]
- 你必須通過年齡驗證才能進入這區域。 你是否要前往 [SECOND_LIFE] 網站進行年齡驗證?
-
-[_URL]
-
- https://secondlife.com/account/verification.php
-
-
+ 你所欲前往的地點設限給年滿 18 歲的居民進入。
+
+
+
+ 此地點限制為年滿 18 歲。
你必須提供付款資料才能進入這區域。 你是否要前往 [SECOND_LIFE] 網站設定付款資料?
@@ -2100,10 +2241,10 @@ SHA1 指紋:[MD5_DIGEST]
主旨:[SUBJECT],訊息:[MESSAGE]
- [NAME] 上線
+ <nolink>[NAME]</nolink> 目前在線上
- [NAME] 離線
+ <nolink>[NAME]</nolink> 目前離線
雖然你人很好,你還是不能把自己加為朋友。
@@ -2125,7 +2266,7 @@ SHA1 指紋:[MD5_DIGEST]
地形 .raw 檔已下載
- 呃… 姿勢 [NAME] 在資料庫中遺失。
+ 姿勢 [NAME] 在資料庫中遺失。
無法載入姿勢 [NAME]。
@@ -2217,14 +2358,15 @@ SHA1 指紋:[MD5_DIGEST]
你的名片已被拒絕。
- 若想瞬間傳送到「[NAME]」等等地點,你可以開啟螢幕右方的「地點」側邊欄,再選擇「地標」頁籤。
-用點按方式選擇任何地標,再按側邊欄底下的「瞬間傳送」。
-(你還可以直接按兩下那個地標,或按滑鼠右鍵,選擇「瞬間傳送」。)
+ 要瞬間傳送到「[NAME]」等地點,請點按「地點」按鈕,
+ 然後在開啟的視窗裡,選擇「地標」頁籤。 點按任何
+ 地標加以選擇,再點按視窗底下的「瞬間傳送」按鈕。
+ (你還可以直接按兩下那個地標,或按滑鼠右鍵,選擇「瞬間傳送」。)
- 若想聯絡「[NAME]」等等居民,你可以開啟螢幕右方的「人群」側邊欄。
-從清單選擇一位居民,再按側邊欄底下的「IM」。
-(你還可以從清單直接按兩下名字,或按滑鼠右鍵,選擇「IM」。)
+ 要聯絡如「[NAME]」的任何一位居民,請點按「人群」按鈕,從打開的視窗中選擇一位居民,再點按視窗底下的「IM」。
+
+ (你還可以從清單直接按兩下名字,或按滑鼠右鍵,選擇「IM」。)
無法選擇超出伺服器邊界的土地。
@@ -2245,6 +2387,9 @@ SHA1 指紋:[MD5_DIGEST]
[MESSAGE]
+
+ [MESSAGE]
+
活動通知:
@@ -2321,6 +2466,26 @@ SHA1 指紋:[MD5_DIGEST]
這區域禁止建造物件。 你不能在此建造或產生物件。
+
+ 這地區的尋徑功能有所變更,待儲存。 如果你有建製權,你可以點按「重新產出地區」按鈕重新產出地區。
+
+
+ 這地區並未啟用動態尋徑。 使用尋徑 LSL 呼叫的帶腳本物件,在此地區可能無法正常運作。
+
+
+ 更改本地區的某些物件將導致其他移動物件的運作發生問題。 要使移動物件正常運作,請點按「重新產出地區」按鈕。 欲獲知詳情請選擇「幫助」。
+
+ http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
+
+
+
+
+ 發生錯誤。 問題可能出在網路或伺服器,也可能因為你無權建製物件。 有時,只要登出再登入即能解決這類問題。
+
+
+
+ 本地段隱藏其內的化身和聊天文字,其他地段看不到。 你看不見地段外的居民,他們也看不見你。 頻道 0 的聊天文字也被封鎖。
+
某管理員已暫時停止區域裡的腳本。
@@ -2336,9 +2501,7 @@ SHA1 指紋:[MD5_DIGEST]
你只能在你所處的區域收取公共土地。
- 由於你的內容分級,你不能到該地區。 你可能需要通過年齡驗證,且/或安裝最新版的 Viewer。
-
-請前往知識庫瞭解如何出入這種內容分級的區域。
+ 你所欲前往的地區含有超過你目前偏好的分級的內容。 你可以到「我自己 > 偏好設定 > 一般設定」變更你的偏好設定。
這個區域禁止你進入。
@@ -2349,11 +2512,11 @@ SHA1 指紋:[MD5_DIGEST]
你沒有適當的付款狀態,不能進入這區域。
-
- 你必須通過年齡驗證才能進入這地區。
+
+ 你必須年滿 18 歲才可進入這地區。
- 你必須通過年齡驗證以進入這地段。
+ 你必須年滿 18 歲才可進入這地段。
找不到目的地地區。
@@ -2415,11 +2578,19 @@ SHA1 指紋:[MD5_DIGEST]
名為 <nolink>[OBJECTFROMNAME]</nolink>、由 [NAME_SLURL] 擁有的物件給了你這個 [OBJECTTYPE]:
-[ITEM_SLURL]
+<nolink>[ITEM_SLURL]</nolink>
+
+
+
+ 你名為 <nolink>[OBJECTFROMNAME]</nolink> 的物件給了你這個 [OBJECTTYPE]:
+<nolink>[ITEM_SLURL]</nolink>
@@ -2447,12 +2618,33 @@ SHA1 指紋:[MD5_DIGEST]
[NAME_SLURL] 想要瞬間傳送你到他的地點:
-[MESSAGE] - [MATURITY_STR] <icon>[MATURITY_ICON]</icon>
+“[MESSAGE]”
+<icon>[MATURITY_ICON]</icon> - [MATURITY_STR]
+
+ [NAME_SLURL] 想要瞬間傳送你到他的地點:
+
+“[MESSAGE]”
+<icon>[MATURITY_ICON]</icon> - [MATURITY_STR]
+
+此地區包含 [REGION_CONTENT_MATURITY] 的分級內容,可是你目前的偏好設定排除了 [REGION_CONTENT_MATURITY] 的分級內容。 我們可以變更你的偏好設定好讓你繼續瞬間傳送,你也可取消這動作。
+
+
+
+ [NAME_SLURL] 想要瞬間傳送你到他的地點:
+
+“[MESSAGE]”
+<icon>[MATURITY_ICON]</icon> - [MATURITY_STR]
+
+可是,此地區含有僅限成人的內容。
+
已向 [TO_NAME] 發出瞬間傳送邀請
@@ -2488,10 +2680,10 @@ SHA1 指紋:[MD5_DIGEST]
- [NAME] 接受了你的交友邀請。
+ <nolink>[NAME]</nolink> 接受了你的交友邀請。
- [NAME] 謝絕你的交友邀請。
+ <nolink>[NAME]</nolink> 婉拒了你的交友邀請。
交友邀請被接受。
@@ -2547,30 +2739,28 @@ SHA1 指紋:[MD5_DIGEST]
- 一個名為 '<nolink>[OBJECTNAME]</nolink>'、由 '[NAME]' 擁有的物件想要:
-
-[QUESTIONS]
-如果你不信任這物件或它的創造人,你應該拒絕這個要求。
-
-同意這個請求?
+ 警告:物件 '<nolink>[OBJECTNAME]</nolink>' 要求全權存取你的林登幣帳戶。 你如果允許存取帳戶,它將可在任何時候從你帳戶取走資金,或完全加以清空,或定期取走部分資金,且不會發出警告。
+
+這很可能是種不當的要求。 如果你不完全瞭解它為何要求存取你的帳戶,請勿允准。
[NAME] 的 '<nolink>[TITLE]</nolink>'
[MESSAGE]
[GROUPNAME] 的 '<nolink>[TITLE]</nolink>'
[MESSAGE]
@@ -2748,7 +2938,15 @@ SHA1 指紋:[MD5_DIGEST]
選取要分享的居民。
- [LABEL] 上傳失敗:[MESSAGE] [IDENTIFIER] [INVALIDITY_IDENTIFIER]
+ [LABEL] 上傳失敗:[MESSAGE] [IDENTIFIER]
+
+詳見記錄檔。
+
+
+ 請求網面上傳權限時出錯。
+
+
+ 無法取得地區能力 '[CAPABILITY]'。
請確定你要和居民分享這些物項:
@@ -2757,6 +2955,18 @@ SHA1 指紋:[MD5_DIGEST]
居民:
+[RESIDENTS]
+
+
+
+ 一次只能分享一個資料夾。
+
+請確定你要和居民分享這些物項:
+
+<nolink>[ITEMS]</nolink>
+
+居民:
+
[RESIDENTS]
@@ -2838,6 +3048,10 @@ SHA1 指紋:[MD5_DIGEST]
(存續 [EXISTENCE] 秒鐘)
你在 [TIME] 秒鐘後在本地為 '[BODYREGION]' 更新了一個 [RESOLUTION] 的定貌材質。
+
+ 我們無法顯示這個材質的預覽,因為它設為「禁止複製」且 / 或「禁止轉移」。
+
+
你確定要離開這段通話?
@@ -2891,6 +3105,12 @@ SHA1 指紋:[MD5_DIGEST]
這裡顯示你目前的 L$ 餘額。 點按「購買 L$」可添購林登幣。
+
+ 你的可用記憶體很小。 第二人生部分功能將停用,以免當機。 請關閉其他應用程式。 這狀況若持續,請重啟第二人生。
+
+
+ 記憶體不足,第二人生將於 30 秒後關閉離開。
+
一個突顯式視窗開啟時被阻擋。
+
+ SOCKS 5 代理伺服器 "[HOST]:[PORT]" 拒絕連通,規則集不允許。
+
+
+
+ SOCKS 5 代理伺服器 "[HOST]:[PORT]" 拒絕連通,無法打開 TCP 頻道。
+
+
+
+ SOCKS 5 代理伺服器 "[HOST]:[PORT]" 拒絕所選的鑒認方法。
+
+
+
+ SOCKS 5 代理伺服器 "[HOST]:[PORT]" 回報:你的鑒認資料無效。
+
+
+
+ SOCKS 5 代理伺服器 "[HOST]:[PORT]" 拒絕 UDP 聯結請求。
+
+
+
+ 無法連通 SOCKS 5 代理伺服器 "[HOST]:[PORT]"。
+
+
+
+ 伺服器 "[HOST]:[PORT]" 發生不明的代理伺服器錯誤。
+
+
+
+ 無效的 SOCKS 代理伺服器位址或埠號 "[HOST]:[PORT]"。
+
+
+
+ 無效的 SOCKS 5 使用者名稱或密碼。
+
+
+
+ 無效的 HTTP 代理伺服器位址或埠號 "[HOST]:[PORT]"。
+
+
+
+ 無效的 SOCKS 代理伺服器位址或埠號 "[HOST]:[PORT]"。
+
+
+
+ 重新啟動 [APP_NAME] 後將採用新的代理伺服器設定。
+
+
'[REALM]' 領域的 '<nolink>[HOST_NAME]</nolink>' 站點需要使用者名稱和密碼。
-
- 改變劉覽器模式要求你必須結束退出並重新啟動。
-
-
只有進階模式才能新建或編輯個人廣告。 你是否想要結束離開,以便變更模式? 你可在登入畫面選擇想要的模式。
@@ -2955,6 +3219,66 @@ SHA1 指紋:[MD5_DIGEST]
只有進階模式才能搜尋。 你是否要登出並且變更模式?
+
+ 這將會隱藏所有選單內容和按鈕。 要恢復原狀,再點按 [SHORTCUT] 一次。
+
+
+
+ 所選的一些聯結集的幻影旗標將被切換。
+
+你確定要繼續嗎?
+
+
+
+ 所選某些聯結集因權限問題,無法設定為 '[REQUESTED_TYPE]'。 這些聯結集將被設為 '[RESTRICTED_TYPE]'。
+
+你確定要繼續嗎?
+
+
+
+ 所選某些聯結集無法設為 '[REQUESTED_TYPE]',因為形狀屬於非凸面。
+
+你確定要繼續嗎?
+
+
+
+ 所選的一些聯結集的幻影旗標將被切換。
+
+所選某些聯結集因權限問題,無法設定為 '[REQUESTED_TYPE]'。 這些聯結集將被設為 '[RESTRICTED_TYPE]'。
+
+你確定要繼續嗎?
+
+
+
+ 所選的一些聯結集的幻影旗標將被切換。
+
+所選某些聯結集無法設為 '[REQUESTED_TYPE]',因為形狀屬於非凸面。
+
+你確定要繼續嗎?
+
+
+
+ 所選某些聯結集因權限問題,無法設定為 '[REQUESTED_TYPE]'。 這些聯結集將被設為 '[RESTRICTED_TYPE]'。
+
+所選某些聯結集無法設為 '[REQUESTED_TYPE]',因為形狀屬於非凸面。 這些聯結集的使用類型將維持不變。
+
+你確定要繼續嗎?
+
+
+
+ 所選的一些聯結集的幻影旗標將被切換。
+
+所選某些聯結集因權限問題,無法設定為 '[REQUESTED_TYPE]'。 這些聯結集將被設為 '[RESTRICTED_TYPE]'。
+
+所選某些聯結集無法設為 '[REQUESTED_TYPE]',因為形狀屬於非凸面。 這些聯結集的使用類型將維持不變。
+
+你確定要繼續嗎?
+
+
+
+ 所選的物件會影響導航網面。 將它改為彈性路徑,將使它從導航網面中被移除。
+
+
你的硬體設備似乎不符 [APP_NAME] 的要求。 [APP_NAME] 需要可以支援多材質的 OpenGL 顯像卡。 在這狀況下,請確定你的顯像卡安裝了最新的驅動程式,作業系統也安裝了最新的服務包和嵌補程式。
@@ -2979,4 +3303,24 @@ SHA1 指紋:[MD5_DIGEST]
你已經死亡並且被瞬間傳送回你的家的位置。
+
+ [FNAME] 無法更新,找不到該檔案。
+未來將不再更新該檔案。
+
+
+ [FNAME] 無法開啟或解碼,已嘗試 [NRETRIES] 次,該檔案已被認定為毀壞。
+未來將不再更新該檔案。
+
+
+ 試圖新增一個無效或無法讀取的圖像檔 [FNAME],該檔無法開啟或解碼。
+已取消這一嘗試。
+
+
+ 你正退回 [NUM_ITEMS] 個物項。 你確定你要繼續?
+
+
+
+ 你正在刪除 [NUM_ITEMS] 個物項。 你確定你要繼續?
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/zh/panel_chiclet_bar.xml
new file mode 100644
index 0000000000..69340349bc
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_chiclet_bar.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_pick.xml b/indra/newview/skins/default/xui/zh/panel_edit_pick.xml
index 006c050dc1..faee42fd0e 100644
--- a/indra/newview/skins/default/xui/zh/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_pick.xml
@@ -29,7 +29,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/zh/panel_edit_skin.xml b/indra/newview/skins/default/xui/zh/panel_edit_skin.xml
index 9f4c02427d..d8552f52f0 100644
--- a/indra/newview/skins/default/xui/zh/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/zh/panel_edit_skin.xml
@@ -1,9 +1,9 @@
-
-
-
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_group_invite.xml b/indra/newview/skins/default/xui/zh/panel_group_invite.xml
index 728311cf51..8921978b20 100644
--- a/indra/newview/skins/default/xui/zh/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_invite.xml
@@ -9,6 +9,9 @@
你所選的居民有些已經在群組裡,所以不會再對他們發送邀請。
+
+ 未送出群組邀請:所選的居民人數太多。 群組邀請每次以 100 人為上限。
+
你可以選擇邀請多位居民到你的群組來。 點按「開啟居民選擇工具」開始選擇。
diff --git a/indra/newview/skins/default/xui/zh/panel_login.xml b/indra/newview/skins/default/xui/zh/panel_login.xml
index 49c57a4315..672d9bb1a2 100644
--- a/indra/newview/skins/default/xui/zh/panel_login.xml
+++ b/indra/newview/skins/default/xui/zh/panel_login.xml
@@ -1,13 +1,13 @@
-
- http://join.secondlife.com/
-
http://secondlife.com/account/request.php
+
+ 登入
+
使用者名稱:
@@ -15,15 +15,8 @@
密碼:
-
-
-
- 模式:
-
-
-
-
-
+
+
開始地點:
@@ -33,16 +26,21 @@
-
-
- 註冊
+
+
+ 登入時需要幫助?
忘記你的使用者名稱或密碼?
-
- 登入時需要幫助?
+
+
+
+
+
+ 建立你的帳號
+
diff --git a/indra/newview/skins/default/xui/zh/panel_me.xml b/indra/newview/skins/default/xui/zh/panel_me.xml
index 3c452b8fa8..aad1348e46 100644
--- a/indra/newview/skins/default/xui/zh/panel_me.xml
+++ b/indra/newview/skins/default/xui/zh/panel_me.xml
@@ -1,7 +1,4 @@
-
-
-
-
+
diff --git a/indra/newview/skins/default/xui/zh/panel_navigation_bar.xml b/indra/newview/skins/default/xui/zh/panel_navigation_bar.xml
index 2f98dd718e..7a11aa961b 100644
--- a/indra/newview/skins/default/xui/zh/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_navigation_bar.xml
@@ -1,18 +1,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 詳情 ▼
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml
new file mode 100644
index 0000000000..bb52c13a11
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_navmesh_rebake.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_nearby_chat.xml b/indra/newview/skins/default/xui/zh/panel_nearby_chat.xml
new file mode 100644
index 0000000000..fc52168bb7
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_nearby_chat.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_outbox_inventory.xml b/indra/newview/skins/default/xui/zh/panel_outbox_inventory.xml
new file mode 100644
index 0000000000..8de0bb0e4d
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_outbox_inventory.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_outfits_list.xml b/indra/newview/skins/default/xui/zh/panel_outfits_list.xml
index a4b041469b..cfb0180f9c 100644
--- a/indra/newview/skins/default/xui/zh/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/zh/panel_outfits_list.xml
@@ -1,5 +1,9 @@
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_people.xml b/indra/newview/skins/default/xui/zh/panel_people.xml
index dbb439afec..59ea7b70e2 100644
--- a/indra/newview/skins/default/xui/zh/panel_people.xml
+++ b/indra/newview/skins/default/xui/zh/panel_people.xml
@@ -66,16 +66,16 @@
-
+
-
+
-
+
-
+
diff --git a/indra/newview/skins/default/xui/zh/panel_place_profile.xml b/indra/newview/skins/default/xui/zh/panel_place_profile.xml
index a32c1c17d3..a364f732d8 100644
--- a/indra/newview/skins/default/xui/zh/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/zh/panel_place_profile.xml
@@ -68,6 +68,8 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_places.xml b/indra/newview/skins/default/xui/zh/panel_places.xml
index ac69b48a81..08cae610f6 100644
--- a/indra/newview/skins/default/xui/zh/panel_places.xml
+++ b/indra/newview/skins/default/xui/zh/panel_places.xml
@@ -24,7 +24,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/zh/panel_postcard_message.xml b/indra/newview/skins/default/xui/zh/panel_postcard_message.xml
new file mode 100644
index 0000000000..563c4fca3c
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_postcard_message.xml
@@ -0,0 +1,21 @@
+
+
+
+ 收件人:
+
+
+ 發件人:
+
+
+ 主旨:
+
+
+
+ 訊息:
+
+
+ 在此輸入你的訊息。
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_postcard_settings.xml b/indra/newview/skins/default/xui/zh/panel_postcard_settings.xml
new file mode 100644
index 0000000000..900ab3a54e
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_postcard_settings.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([QLVL])
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml
index c5dce10d63..3a7d79e04b 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml
@@ -3,6 +3,19 @@
[NUM]:[DEN]
+
+ 快取:
+
+
+
+ MB
+
+
+
+ 快取位置:
+
+
+
使用者界面尺寸:
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml b/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
index 82d2c64aaa..cf2f81d313 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
@@ -29,29 +29,7 @@
-
- 聊天時使用機器自動進行翻譯(由 Google 所提供)
-
-
- 將聊天內容翻譯成:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
index 854b1cf828..7e67a0d02d 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
@@ -11,10 +11,12 @@
-
+
+
+
(須重新啟動)
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_move.xml b/indra/newview/skins/default/xui/zh/panel_preferences_move.xml
index ce176b1e3c..3a27477885 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_move.xml
@@ -7,18 +7,33 @@
-
+
+ 鍵盤:
+
+
+
+
+ 滑鼠:
+
第一人稱視角滑鼠敏感度:
-
-
-
-
-
-
-
+
+ 在土地上點按一下:
+
+
+
+
+
+
+ 在土地上點按兩下:
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
index 85f8154b99..a607a7c33b 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
@@ -11,17 +11,6 @@
-
- 快取尺寸
-
-
- MB
-
-
- 快取位置:
-
-
-
網頁:
@@ -33,12 +22,6 @@
-
-
- 代理伺服器位置:
-
-
-
軟體更新:
@@ -46,4 +29,8 @@
+
+ 代理伺服器設定:
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_sound.xml b/indra/newview/skins/default/xui/zh/panel_preferences_sound.xml
index 09dd4f6b0b..e57f08fd74 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_sound.xml
@@ -19,6 +19,7 @@
+
語音聊天設定
@@ -35,28 +36,5 @@
-
-
- 預設
-
-
- 預設系統設備
-
-
- 無設備
-
-
- 輸入
-
-
- 我的音量:
-
-
-
- 請稍候
-
-
- 輸出
-
-
+
diff --git a/indra/newview/skins/default/xui/zh/panel_region_debug.xml b/indra/newview/skins/default/xui/zh/panel_region_debug.xml
index 8639f36410..e5d5e6eaf7 100644
--- a/indra/newview/skins/default/xui/zh/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_debug.xml
@@ -30,5 +30,5 @@
-
+
diff --git a/indra/newview/skins/default/xui/zh/panel_region_environment.xml b/indra/newview/skins/default/xui/zh/panel_region_environment.xml
new file mode 100644
index 0000000000..8f466af39e
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_region_environment.xml
@@ -0,0 +1,33 @@
+
+
+
+ 選擇你希望到你地區的訪客所能看到的水和天空 / 日循環設定。 詳情
+
+
+
+
+
+
+
+ 水的設定
+
+
+
+
+
+ 天空 / 日循環
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_region_estate.xml b/indra/newview/skins/default/xui/zh/panel_region_estate.xml
index 2d5dcfa9bb..f3c1c85379 100644
--- a/indra/newview/skins/default/xui/zh/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_estate.xml
@@ -20,10 +20,10 @@
- 僅允許帳號通過如下驗證的人進出:
+ 僅允許符合以下條件的居民進入:
-
-
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_region_terrain.xml b/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
index 30d12dfeb5..85e759e445 100644
--- a/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
@@ -9,11 +9,52 @@
-
-
-
-
+
+ 地形材質(須 512x512,24 位元 .tga 檔格式)
+
+
+ 1(低)
+
+
+ 2
+
+
+ 3
+
+
+ 4(高)
+
+
+ 材質海拔範圍
+
+
+ 這些值代表以上材質的混合範圍。
+
+
+ 以公尺為單位,低值是材質 #1 的最大高度,高值是材質 #4 的最小高度。
+
+
+ 西北
+
+
+ 東北
+
+
+
+
+
+
+ 西南
+
+
+ 東南
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_script_ed.xml b/indra/newview/skins/default/xui/zh/panel_script_ed.xml
index e59307fcfc..29e9a35869 100644
--- a/indra/newview/skins/default/xui/zh/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/zh/panel_script_ed.xml
@@ -22,6 +22,8 @@
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_script_question_toast.xml b/indra/newview/skins/default/xui/zh/panel_script_question_toast.xml
new file mode 100644
index 0000000000..a2d0237da0
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_script_question_toast.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_inventory.xml
new file mode 100644
index 0000000000..20fb9b494a
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_inventory.xml
@@ -0,0 +1,21 @@
+
+
+
+ 儲存到我的收納區
+
+
+ 將圖像儲存到收納區的費用為 L$[UPLOAD_COST]。 若要將圖像存為材質,請選擇一個正方格式。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml
new file mode 100644
index 0000000000..a929c9a3fb
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml
@@ -0,0 +1,39 @@
+
+
+
+ 儲存到電腦上
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([QLVL])
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_options.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_options.xml
new file mode 100644
index 0000000000..82c2b10d8d
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_options.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_postcard.xml
new file mode 100644
index 0000000000..853a856104
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_postcard.xml
@@ -0,0 +1,17 @@
+
+
+
+ 來自 [SECOND_LIFE] 的明信片。
+
+
+ 快來看看這個!
+
+
+ 傳送中...
+
+
+ 電郵
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_profile.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_profile.xml
new file mode 100644
index 0000000000..6f64a4e83c
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_profile.xml
@@ -0,0 +1,28 @@
+
+
+
+ 送至我的檔案訊息發佈
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 內容敘述:
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_sound_devices.xml b/indra/newview/skins/default/xui/zh/panel_sound_devices.xml
index 96b00c3235..fa4e24a605 100644
--- a/indra/newview/skins/default/xui/zh/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/zh/panel_sound_devices.xml
@@ -3,9 +3,18 @@
預設
+
+ 無設備
+
+
+ 預設系統設備
+
輸入
+
+ 輸出
+
我的音量:
@@ -13,7 +22,4 @@
請稍候
-
- 輸出
-
diff --git a/indra/newview/skins/default/xui/zh/panel_status_bar.xml b/indra/newview/skins/default/xui/zh/panel_status_bar.xml
index ceebe943de..b4cdff9d6b 100644
--- a/indra/newview/skins/default/xui/zh/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/zh/panel_status_bar.xml
@@ -18,6 +18,7 @@
+
24:00 AM PST
diff --git a/indra/newview/skins/default/xui/zh/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/zh/panel_volume_pulldown.xml
new file mode 100644
index 0000000000..70ec028176
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/panel_volume_pulldown.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml b/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
index 08d441a2f2..c8aae15011 100644
--- a/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
@@ -1,6 +1,27 @@
+
+
+
+
+ 收到的物項 ([NUM])
+
+
+ 收到的物項
+
+
+
+ [NUM] 項新的
+
+
+
+ 從第二人生購物市集購得物項將送到這裡。
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml b/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml
index 949288a015..1b093e0ecd 100644
--- a/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml
@@ -3,6 +3,9 @@
(未知)
+
+ (未知 / 多項)
+
(公開)
diff --git a/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml b/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml
index 692dd81890..982dde4010 100644
--- a/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/zh/sidepanel_task_info.xml
@@ -18,6 +18,12 @@
你不能修改這些物件
+
+ 無法跨地區修改這個物件
+
+
+ 無法跨地區修改這些物件
+
這個物件含有聯結的部分
@@ -95,6 +101,9 @@
+
+ 尋徑屬性:
+
B:
diff --git a/indra/newview/skins/default/xui/zh/strings.xml b/indra/newview/skins/default/xui/zh/strings.xml
index 9114cc079d..3f17324006 100644
--- a/indra/newview/skins/default/xui/zh/strings.xml
+++ b/indra/newview/skins/default/xui/zh/strings.xml
@@ -29,11 +29,14 @@
快取清除中...
- 材質快取初始化中...
+ 正在初始化材質快取...
VFS 初始化中...
+
+ 顯像初始化失敗。 請更新你的顯像卡驅動程式!
+
回存中...
@@ -74,10 +77,10 @@
驗證快取檔案(約需 60-90 秒左右)...
- 回應處理中...
+ 正在處理回應...
- 世界初始化中...
+ 正在初始化虛擬世界…
圖像解碼中...
@@ -91,6 +94,12 @@
QuickTime 已成功初始化。
+
+ 詢問地區負荷力…
+
+
+ 詢問地區負荷力,第 [NUMBER] 次嘗試…
+
地區交握等待中...
@@ -119,7 +128,7 @@
無法檢驗通過網格伺服器傳回的憑證簽名。 請聯絡網格管理員。
- 網路出錯:無法建立連線,請檢查網路連線是否正常。
+ 網路錯誤:無法建立連線,請檢查網路連線是否正常。
登入失敗。
@@ -128,7 +137,7 @@
結束退出
- http://join.secondlife.com/
+ http://join.secondlife.com/?sourceid=[sourceid]
你目前所用的 Viewer 已經無法再進入第二人生。 請到這個頁面下載最新 Viewer:
@@ -172,7 +181,7 @@ http://secondlife.com/viewer-access-faq
第二人生此時暫時限制登入,以確保不影響效能,讓目前虛擬世界裡的用戶享受最佳的體驗。
-
+
免費帳戶的用戶此時暫時無法進入第二人生,因為我們必須優先容納付費用戶。
@@ -325,6 +334,36 @@ http://secondlife.com/viewer-access-faq
只有一個物品可以被拖曳到此處
+
+ 商家發件匣內的物項無法產生到虛擬世界
+
+
+ 至少一個物件無法出售或轉移。
+
+
+ 你的商家發件匣只能接受直接來自收納區的物項。
+
+
+ 你穿著中的物項無法放入商家發件匣。
+
+
+ 名片不得放入商家發件匣
+
+
+ 巢狀資料夾深度超過 3
+
+
+ 頂層資料夾的子資料夾數目超過 20
+
+
+ 頂層資料夾物項數目超過 200
+
+
+ 資料夾不得移到其子資料夾底下
+
+
+ 資料夾移動的目標不得為它本身
+
點按以察看這個網頁
@@ -788,6 +827,9 @@ http://secondlife.com/viewer-access-faq
是
+
+ 多個
+
載入中...
@@ -836,6 +878,9 @@ http://secondlife.com/viewer-access-faq
物件「[OBJECTNAME]'」(所有人「[OWNERNAME]」,位於「[REGIONNAME]」,方位「[REGIONPOS]」)已被撤除下列權限:[PERMISSIONS]。
+
+ 你如果打開帳戶權限,也將一併允許該物件:
+
由你身上拿走林登幣(L$)
@@ -869,6 +914,9 @@ http://secondlife.com/viewer-access-faq
控制你的攝影機
+
+ 瞬間傳送你本人
+
未聯接
@@ -947,6 +995,12 @@ http://secondlife.com/viewer-access-faq
選擇目錄
+
+ 腳本
+
+
+ 字典
+
非離開
@@ -1184,6 +1238,65 @@ http://secondlife.com/viewer-access-faq
你的收納區裡沒有這個材質的副本
+
+ 你從第二人生購物市集購買的物品將出現在這裡。 你可以把它們拖曳到你的收納區,開始使用。
+
+
+ https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
+
+
+ http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
+
+
+ https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
+
+
+ https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
+
+
+ https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
+
+
+ 任何人都可在第二人生購物市集出售物品。
+
+
+
+ 如果你想成為商家,你需要在第二人生購物市集[[MARKETPLACE_CREATE_STORE_URL]開設一間商店]。
+
+
+ 你的發件匣目前是空的。
+
+
+
+ 將資料夾拖曳到這個區域,再點按「送往第二人生購物市集」,即可在[[MARKETPLACE_DASHBOARD_URL]第二人生購物市集]登列出售。
+
+
+ 零錯誤
+
+
+ 發生錯誤:將物項送往第二人生購物市集之前,你必須取得商家的身份(免費)。
+
+
+ 錯誤:此資料夾沒有內容。
+
+
+ 錯誤:此物項上傳失敗,因為你的商家帳戶有太多和產品無關聯的物項。 要解決這個問題,請登入第二人生購物市集網站,減低你的無關聯物項數目。
+
+
+ 錯誤:此物項包含太多物件。 要解決這錯誤,請將物件裝箱,使總物件數目不超過 200。
+
+
+ 錯誤:此物項含有太多層的巢狀資料夾。 請加以重新整理,至多允許 3 層的巢狀資料夾。
+
+
+ 錯誤:此物項無法在第二人生購物市集出售。
+
+
+ 錯誤:這個物項有問題。 請稍候再試一次。
+
+
+ 開啟地標
+
@@ -1230,9 +1343,6 @@ http://secondlife.com/viewer-access-faq
我的收納區
-
- 我的最愛
-
資源庫
@@ -1296,6 +1406,12 @@ http://secondlife.com/viewer-access-faq
我的最愛
+
+ 我的最愛
+
+
+ 我的最愛
+
目前裝扮
@@ -1311,12 +1427,24 @@ http://secondlife.com/viewer-access-faq
網面
+
+ 收到的物項
+
+
+ 商家發件匣
+
朋友
全部
+
+ 未穿著任何附件
+
+
+ 附件(尚可容納 [COUNT] 件)
+
購買
@@ -1443,6 +1571,12 @@ http://secondlife.com/viewer-access-faq
右胸肌
+
+ 頸部
+
+
+ 化身中心
+
無效的附接點
@@ -1626,6 +1760,9 @@ http://secondlife.com/viewer-access-faq
+
+ [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]
+
@@ -1652,6 +1789,9 @@ http://secondlife.com/viewer-access-faq
青少年
+
+ 任何人
+
錯誤
@@ -1874,6 +2014,12 @@ http://secondlife.com/viewer-access-faq
公開
+
+ 本地設定
+
+
+ 地區設定
+
點按:[TELEPORT] 瞬間傳送,[MAP] 地圖,[PROFILE] 檔案
@@ -1946,6 +2092,9 @@ http://secondlife.com/viewer-access-faq
借記
+
+ [weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
+
內容
@@ -3719,6 +3868,15 @@ http://secondlife.com/viewer-access-faq
一般普級地區
+
+ 可看到本地段外的化身,並與之交談
+
+
+ 地區重新產出之前,可移動物件可能無法正常運作。
+
+
+ 這地區並未啟用動態尋徑。
+
[APP_NAME] 更新
@@ -3785,6 +3943,9 @@ http://secondlife.com/viewer-access-faq
(於 [LONG_TIMESTAMP] 儲存)
+
+ 要察看這訊息,你必須到「偏好設定 / 隱私」,取消勾選「只有我的朋友和群組可以 IM 或與我通話」。
+
你的通話已經接通
@@ -3917,6 +4078,18 @@ http://secondlife.com/viewer-access-faq
你支付了 L$[AMOUNT]([REASON])。
+
+ 你支付 L$[AMOUNT] 給 [NAME] 時出錯:[REASON]。
+
+
+ 你支付 L$[AMOUNT] 時出錯。
+
+
+ 你支付 L$[AMOUNT] 給 [NAME] 時出錯。
+
+
+ 你支付 L$[AMOUNT] 時出錯:[REASON]。
+
購買 [ITEM]
@@ -3970,7 +4143,7 @@ http://secondlife.com/viewer-access-faq
上傳中...
-
+
違規舉報
@@ -4144,6 +4317,87 @@ http://secondlife.com/viewer-access-faq
女性 - 哇塞
+
+ /彎腰點頭
+
+
+ /拍手
+
+
+ /計數
+
+
+ /熄菸
+
+
+ /給我一個吻
+
+
+ /肌肉
+
+
+ /不
+
+
+ /不!
+
+
+ /布
+
+
+ /指自己
+
+
+ /指向你
+
+
+ /石頭
+
+
+ /剪刀
+
+
+ /抽菸
+
+
+ /伸展
+
+
+ /吹口哨
+
+
+ /是
+
+
+ /是!
+
+
+ 暫時離開
+
+
+ 跳舞1
+
+
+ 跳舞2
+
+
+ 跳舞3
+
+
+ 跳舞4
+
+
+ 跳舞5
+
+
+ 跳舞6
+
+
+ 跳舞7
+
+
+ 跳舞8
+
[mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
@@ -4157,7 +4411,7 @@ http://secondlife.com/viewer-access-faq
儘管我們努力避免,還是發生意料外的錯誤。
- 請察訪 status.secondlifegrid.net 看是否發生了已知狀況。
+ 請察訪 status.secondlifegrid.net 看是否發生了已知狀況。
如果文體繼續發生,請檢查你的網路和防火牆設定。
@@ -4246,6 +4500,12 @@ http://secondlife.com/viewer-access-faq
執行外部編輯器失敗。
+
+ 無法翻譯:[REASON]
+
+
+ 無法剖析平移回應。
+
Esc 鍵
@@ -4588,4 +4848,223 @@ http://secondlife.com/viewer-access-faq
隱藏粒子效果
+
+ 土地資料
+
+
+ 編輯外觀
+
+
+ 化身
+
+
+ 建造
+
+
+ 聊天
+
+
+ 羅盤
+
+
+ 目的地
+
+
+ 姿勢
+
+
+ 簡易教學
+
+
+ 收納區
+
+
+ 地圖
+
+
+ 第二人生購物市集
+
+
+ 迷你地圖
+
+
+ 行走 / 跑步 / 飛行
+
+
+ 商家發件匣
+
+
+ 人群
+
+
+ 精選地點
+
+
+ 地點
+
+
+ 偏好設定
+
+
+ 檔案
+
+
+ 搜尋
+
+
+ 快照
+
+
+ 說話
+
+
+ 攝影機控制
+
+
+ 語音設定
+
+
+ 有關你所處土地的資訊
+
+
+ 改變化身
+
+
+ 選擇一個完整的化身
+
+
+ 建製物件和重塑地形
+
+
+ 透過文字和附近人們聊天
+
+
+ 指南針
+
+
+ 你可能感興趣的目的地
+
+
+ 你化身可用的姿勢
+
+
+ 如何完成常用的動作
+
+
+ 察看並使用你擁有的物件
+
+
+ 世界地圖
+
+
+ 前往購物
+
+
+ 顯示附近的人
+
+
+ 移動化身
+
+
+ 將物項轉移到第二人生購物市集待售
+
+
+ 朋友、群組和附近的人
+
+
+ 顯示在你的小檔案中的最愛地點
+
+
+ 你儲存的地點
+
+
+ 偏好設定
+
+
+ 編輯或察看你的小檔案
+
+
+ 尋找地點、活動、其他人
+
+
+ 拍一張照片
+
+
+ 用麥克風和附近人們交談
+
+
+ 調整攝影機角度
+
+
+ 在虛擬世界裡通話和附近人群的音量控制
+
+
+ 目前位在你的底部工具列
+
+
+ 目前位在你的左工具列
+
+
+ 目前位在你的右工具列
+
+
+ 保留%
+
+
+ 細節
+
+
+ 更多細節
+
+
+ 表面
+
+
+ 固體
+
+
+ Wrap
+
+
+ 預覽
+
+
+ 正常
+
+
+ http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
+
+
+ 無
+
+
+ 影響導航網面
+
+
+ 角色
+
+
+ (多項)
+
+
+ 很低
+
+
+ 低
+
+
+ 中
+
+
+ 高
+
+
+ 很高
+
+
+ 此居民不得進入此地區。
+
+
+ [User]
+
diff --git a/indra/newview/skins/default/xui/zh/teleport_strings.xml b/indra/newview/skins/default/xui/zh/teleport_strings.xml
index b43497bbe6..37080a8d0c 100644
--- a/indra/newview/skins/default/xui/zh/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/zh/teleport_strings.xml
@@ -21,8 +21,8 @@
請稍後再試。
- 您不能瞬间转移回“援助岛”。
-去“公共援助岛”重复您的教程。
+ 你無法瞬間傳送回「新手導引島」。
+請到「大眾新手導引島」重新參加導引教學。
抱歉,你並沒有權限進入要瞬間傳送的目的地。
@@ -45,6 +45,9 @@
收納區功能目前無法使用。
+
+ 你必須年滿 18 歲才可進入這地區。
+
@@ -80,5 +83,8 @@
瞬間傳送要求中...
+
+ 等待瞬間傳送…
+
diff --git a/indra/newview/skins/paths.xml b/indra/newview/skins/paths.xml
deleted file mode 100644
index 3c0da041c7..0000000000
--- a/indra/newview/skins/paths.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- xui
- en
-
-
- xui
- [LANGUAGE]
-
-
\ No newline at end of file
diff --git a/indra/newview/skins/steam/xui/da/strings.xml b/indra/newview/skins/steam/xui/da/strings.xml
deleted file mode 100644
index 11d100eeff..0000000000
--- a/indra/newview/skins/steam/xui/da/strings.xml
+++ /dev/null
@@ -1,4483 +0,0 @@
-
-
-
-
- SECOND LIFE
-
-
- Second Life Support Portal
-
-
- Detekterer hardware...
-
-
- Henter [APP_NAME]...
-
-
- Tømmer cache...
-
-
- Initialiserer tekstur cache...
-
-
- Initialiserer VFS...
-
-
- Gendanner...
-
-
- Ændrer opløsning...
-
-
- Logger p. [APP_NAME] kan virke laast. Vent venligst.
-
-
- Logger på...
-
-
- Validerer adgang
-
-
- Udfører konto vedligeholdelse...
-
-
- Tidligere forsø på login fejlede. Logger på, forsøg [NUMBER]
-
-
- verden...
-
-
- Klargør indbyggede web browser...
-
-
- Klargør multimedia...
-
-
- Indlæser skriftstyper...
-
-
- Checker cache filer (kan tage 60-90 sekunder)...
-
-
- Behandler svar ...
-
-
- Initialiserer verden...
-
-
- Behandler billeder...
-
-
- Initialiserer QuickTime...
-
-
- QuickTime ikke fundet- kunne derfor ikke initialisere.
-
-
- QuickTime initialiseret.
-
-
- Venter på svar fra region...
-
-
- Tilslutter til region...
-
-
- Henter tøj...
-
-
- Serveren returnerede et ugyldigt eller ødelagt certifikat. Kontakt venligst administrator af dette net.
-
-
- Et ugyldig hostnavn blev brugt for at få adgang til serveren. Check venligst din SLURL eller navnet på hosten.
-
-
- Det certifikat der blev returneret ser ud til at være udløbet. Check venligst din systemtid på computeren.
-
-
- Det certifikat der blev returneret af serveren kan ikke benyttes til SSL. Kontakt venligst administrator af dette net.
-
-
- For mange certifikater i serverens certifikat streng. Kontakt venligst administrator af dette net.
-
-
- Signaturen på certifkat der blev returneret af Second Life serveren kunne ikke bekræftes.
-
-
- Netværksfejl: Kunne ikke etablere forbindelse, check venligst din netværksforbindelse.
-
-
- Login fejlede.
-
-
- Afslut
-
-
- Den klient du benytter kan ikke længere få adgang til Second Life. Besøg venligst denne side for at hente en ny klient:
-http://secondlife.com/download
-
-For mere information, se denne FAQ:
-http://secondlife.com/viewer-access-faq
-
-
- Valgfri klient opdatering tilgængelig: [VERSION]
-
-
- Påkrævet opdatering a klient: [VERSION]
-
-
- Din avatar er allerede logget på.
-
-
- Beklager! vi kunne ikke logge dig på.
-Undersøg venligst at du har indtastet det rette
-Please check to make sure you entered the right
- * Brugernavn (like bobsmith12 or steller.sunshine)
- * Password
-Check også at Caps Lock ikke er aktiveret.
-
-
- Som en sikkerhedsforanstaltning er dit password blevet ændret.
-Går venligst til din konto-side på http://secondlife.com/password
-og besvar sikkerhedsspørgsmål for at nulstille dit password.
-Vi undskylder besværet.
-
-
- vi har lavet nogle ændringer i vores system og det er nødvendigt at nulstille dit password.
-Går venligst til din konto-side på http://secondlife.com/password
-og besvar sikkerhedsspørgsmål for at nulstille dit password.
-Vi undskylder besværet.
-
-
- Second Life er midlertidig lukket ned for vedligeholdelse.
-Kun medarbejdere kan logge på for øjeblikket.
-Check www.secondlife.com/status for opdateringer.
-
-
- Second Life har midlertidig begrænset muligheden for log-in for at sikre, at brugere på systemet ikke får dårlige svartider.
-
- Brugere med gratis-konti vil ikke kunne logge på Second Life på dette tidspunkt.
-
-
- Second Life kan ikke tilgås fra dennecomputer.
-Hvis du mener dette er en fejl, kontakt venligst support@secondlife.com.
-
-
- Din konto vil ikke være tilgængelig før
-[TIME] Pacific Time.
-
-
- Vi kan desværre ikke behandle forespøgsel lige nu.
-Kontakt venligst Second Life supper for assitance via http://secondlife.com/support.
-Hvis du ikke kan ændre dit password ring venligst +1 (866) 476-9763.
-
-
- Data inkonsistens registret ved login.
-Kontakt venligst support@secondlife.com.
-
-
- Der foretages vedligehold på din konto lige nu.
-Din konto vil ikke være tilgængelig før
-[TIME] Pacific Time.
-Hvis du mener dette er en fejl, kontakt venligst support@secondlife.com.
-
-
- Forespøgsel på logout blev besvaret med en fejl fra simulatoren.
-
-
- Systemet er i gang med at logge dig ud netop nu.
-Din konto vil ikke være tilgængelig før
-[TIME] Pacific Time.
-
-
- Ikke muligt at oprette gyldig session.
-
-
- Ikke muligt at koble til en simulator.
-
-
- Din konto kan kun tilgå Second Life
-mellem [START] [END] Pacific Time.
-Kom venligst tilbage i dette tidsrum.
-
-Hvis du mener dette er en fejl, kontakt venligst support@secondlife.com.
-
-
- Ugyldig parametre.
-Hvis du mener dette er en fejl, kontakt venligst support@secondlife.com.
-
-
- Fornavn parameter skal være alfanumerisk
-Hvis du mener dette er en fejl, kontakt venligst support@secondlife.com.
-
-
- Efternavn parameter skal være alfanumerisk
-Hvis du mener dette er en fejl, kontakt venligst support@secondlife.com.
-
-
- Regionen er lukket ned.
-Prøv at logge på om lidt igen.
-
-
- Avatar ikke i en region.
-Prøv venligst om lidt igen.
-
-
- The region was logging in another session.
-Please try logging in again in a minute.
-
-
- Region har lukket sidste session ned.
-Prøv venligst om lidt igen.
-
-
- Regionen er stadig ved at lukke forrige session ud.
-Prøv venligst om lidt igen.
-
-
- Region har lukket sidste session ned.
-Prøv venligst om lidt igen.
-
-
- Region er i gang med at logge ud.
-Prøv venligst om lidt igen.
-
-
- Region er i gang med at lukket sidste session ned.
-Prøv venligst om lidt igen.
-
-
- Denne region kan have problemer. Tjek venligst din forbindelse til internettet.
-
-
- Gemmer indstillinger...
-
-
- Logger ud...
-
-
- Lukker ned...
-
-
- Du er blevet frakoblet den region du var i.
-
-
- Du blev sendt til en ugyldig region.
-
-
- Tester frakobling af klient
-
-
- Person
-
-
- (intet navn)
-
-
- Ejer:
-
-
- Offentlig
-
-
- (Gruppe)
-
-
- Til salg: L$[AMOUNT]
-
-
- Gruppe byg
-
-
- Må ikke bygge
-
-
- Gruppe byg
-
-
- Ikke sikker område
-
-
- Ingen flyvning
-
-
- Gruppe scripts
-
-
- Ingen Scripts
-
-
- Land:
-
-
- Kun et enkelt element kan trækkes ind her
-
-
-
- Klik for at se denne hjemmeside
-
-
- Klik for at se information om denne lokation
-
-
- Klik for at se beboers profil
-
-
- Lær mere om denne beboer
-
-
- Klik for at slukke for denne beboer
-
-
- Klik for at fjern slukning for denne beboer
-
-
- Klik for at sende IM til denne beboer
-
-
- Klik for at betale denne beboer
-
-
- Klik for at tilbyde teleport til denne beboer
-
-
- Klik for at sende venneforespørgsel
-
-
- Klik for at se denne gruppes beskrivelse
-
-
- Klik for at se beskrivelse af denne event
-
-
- Klik for at se denne annonce
-
-
- Klik for at se beskrivelse for denne parcel
-
-
- Klik for at teleportere til denne lokation
-
-
- Klik for at se beskrivelse for dette objekt
-
-
- Klik for at se denne lokation på kortet
-
-
- Klik for at starte secondlife:// kommando
-
-
-
- Teleportér til
-
-
- Vis kort for
-
-
- Sluk
-
-
- Fjern sluk
-
-
- IM
-
-
- Betal
-
-
- Tilbyd teleport til
-
-
- Venneforespørgsel
-
-
- Luk (⌘W)
-
-
- Luk (Ctrl+W)
-
-
- Luk
-
-
- Gendan
-
-
- Minimér
-
-
- Løsriv
-
-
- Fastgør
-
-
- Vis hjælp
-
-
- Søger...
-
-
- Intet fundet.
-
-
- Henter...
-
-
- Noter om version
-
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- Henter...
-
-
- (ingen)
-
-
- (venter)
-
-
- (ingen)
-
-
- Avaline opkalder [ORDER]
-
-
- Ingen fejl
-
-
- Element forespørgsel: fejlede
-
-
- Element forespørgsel: fil findes ikke
-
-
- Element forespørgsel: element ikke fundet i database
-
-
- Slutning af fil
-
-
- Kan ikke åbne fil
-
-
- Fil ikke fundet
-
-
- Tidsgrænse overskredet ved filhentning
-
-
- Forbindelsen mistet
-
-
- [APP_NAME] klient og server er uenige om prisen
-
-
- Ukendt status
-
-
- tekstur
-
-
- lyd
-
-
- visitkort
-
-
- landemærke
-
-
- ældre script
-
-
- tøj
-
-
- objekt
-
-
- note
-
-
- mappe
-
-
- rod
-
-
- LSL2 script
-
-
- LSL bytecode
-
-
- tga texture
-
-
- kropsdel
-
-
- foto
-
-
- Fundne genstande
-
-
- targa billede
-
-
- Papirkurv
-
-
- jpeg billede
-
-
- animation
-
-
- bevægelse
-
-
- simstate
-
-
- favorit
-
-
- link
-
-
- link til mappe
-
-
- mesh
-
-
- (Redigering Udseende)
-
-
- Væk
-
-
- Optaget
-
-
- Blokeret
-
-
- Bange
-
-
- Vred
-
-
- Væk
-
-
- Baglæns salto
-
-
- Hjertelig latter
-
-
- Stort smil
-
-
- Sende kys
-
-
- Keder sig
-
-
- Buk
-
-
- Klap
-
-
- Højtideligt buk
-
-
- Græd
-
-
- Dans 1
-
-
- Dans 2
-
-
- Dans 3
-
-
- Dans 4
-
-
- Dans 5
-
-
- Dans 6
-
-
- Dans 7
-
-
- Dans 8
-
-
- Foragt
-
-
- Drik
-
-
- Flov
-
-
- Løftet finger
-
-
- Knytnæve
-
-
- Svævende yoga
-
-
- Mistroisk
-
-
- Utålmodig
-
-
- Glædeshop
-
-
- Kys min r..
-
-
- Kys
-
-
- Grin
-
-
- Bodybuilder
-
-
- Nej (sur)
-
-
- Nej
-
-
- Æv-bæv
-
-
- Et-to slag
-
-
- Åben mund
-
-
- Peace
-
-
- Peg på andre
-
-
- Peg på dig selv
-
-
- Slå venstre
-
-
- Slå højre
-
-
- SSP - Tæl
-
-
- SSP - Papir
-
-
- SSP - Sten
-
-
- SSP - Saks
-
-
- Misfornøjet
-
-
- Karatepark
-
-
- Ked af det
-
-
- Honnør
-
-
- Råb
-
-
- Skuldertræk
-
-
- Smil
-
-
- Ryg
-
-
- Indhalér
-
-
- Smid cigaret
-
-
- Overrasket
-
-
- Sværdslag
-
-
- Ekstatisk
-
-
- Tunge ud
-
-
- Vink
-
-
- Knib øje i
-
-
- Pift
-
-
- Blink
-
-
- Blink (Hollywood)
-
-
- Bekymret
-
-
- Ja (glad)
-
-
- Ja
-
-
- Indlæser...
-
-
- Offline
-
-
- [AREA] m² L$[PRICE]
-
-
- Ingen fundet.
-
-
- OK
-
-
- Fil slutter for tidligt
-
-
- Kan ikke funde ROOT eller JOINT.
-
-
- hvisker:
-
-
- råber:
-
-
- Forbinder til stemmechat...
-
-
- Forbundet
-
-
- Stemmechat er ikke tilladt hvor du befinder dig
-
-
- Stemme chat er afbrudt
-
-
- Du vil nu blive dirigeret til lokal stemme chat
-
-
- '[OBJECTNAME]', en genstand, ejet af '[OWNERNAME]', lokaliseret i [REGIONNAME] på [REGIONPOS], har fået tilladelse til: [PERMISSIONS].
-
-
- '[OBJECTNAME]', en genstand, ejet af '[OWNERNAME]', lokaliseret i [REGIONNAME] på [REGIONPOS], er afvist tilladelse til: [PERMISSIONS].
-
-
- Tag Linden dollars (L$) fra dig
-
-
- Reagér på dine kontrol-taster
-
-
- Ændre dine kontrol-taster
-
-
- Animér din avatar
-
-
- Sæt på din avatar
-
-
- Fjern ejerskabet og sæt til offentlig
-
-
- Sammenkæd og adskil andre genstande
-
-
- Tilføj og fjern sammenkødninger med andre genstande
-
-
- Ændre dens tilladelser
-
-
- Spor dit kamera
-
-
- Kontrollér dit kamera
-
-
- PG
-
-
- Mature
-
-
- Adult
-
-
- logget af
-
-
- Ukendt
-
-
- (ukendt)
-
-
- Estate / Hel region
-
-
- Estate / Homestead
-
-
- Mainland / Homestead
-
-
- Mainland / Hel region
-
-
- Alle filer
-
-
- Lyde
-
-
- Animationer
-
-
- Billeder
-
-
- Gem
-
-
- Hent
-
-
- Targa billeder
-
-
- Bitmap billeder
-
-
- AVI film fil
-
-
- XAF Anim Fil
-
-
- XML Fil
-
-
- RAW fil
-
-
- Komprimerede billeder
-
-
- Hent filer
-
-
- Vælg bibliotek
-
-
- Sæt "til stede"
-
-
- Sæt "væk"
-
-
- Sæt "ledig"
-
-
- Sæt "optaget"
-
-
- Form
-
-
- Hud
-
-
- Hår
-
-
- Øjne
-
-
- Trøje
-
-
- Bukser
-
-
- Sko
-
-
- Strømper
-
-
- Jakke
-
-
- Handsker
-
-
- Undertrøje
-
-
- Underbukser
-
-
- Nederdel
-
-
- Alpha
-
-
- Tatovering
-
-
- Fysik
-
-
- ugyldig
-
-
- ingen
-
-
- Trøje - ikke på
-
-
- Bukser - ikke på
-
-
- Sko - ikke på
-
-
- Strømper - ikke på
-
-
- Jakke - ikke på
-
-
- Handsker - ikke på
-
-
- Undertrøje - ikke på
-
-
- Underbukser - ikke på
-
-
- Nederdel - ikke på
-
-
- Alpha ikke benyttet
-
-
- Tatovering ikke benyttet
-
-
- Ikke noget fysisk båret
-
-
- ugyldig
-
-
- Opret ny figur
-
-
- Opret nyt hud
-
-
- Opret nyt hår
-
-
- Opret nye øjne
-
-
- Opret ny trøje
-
-
- Opret nye bukser
-
-
- Opret nye sko
-
-
- Opret nye strømper
-
-
- Opret ny jakke
-
-
- Opret nye handsker
-
-
- Opret ny undertrøje
-
-
- Opret nye underbukser
-
-
- Opret ny nederdel
-
-
- Opret ny alpha
-
-
- Opret ny tatovering
-
-
- Opret ny fysik
-
-
- ugyldig
-
-
- Ny [WEARABLE_ITEM]
-
-
- Næste
-
-
- OK
-
-
- Gruppe besked
-
-
- Gruppe besked
-
-
- Sendt af
-
-
- Vedhæftet:
-
-
- Se tidligere beskeder eller slå modtagelse af beskeder fra her.
-
-
- Åben vedhæng
-
-
- Gem vedhæng
-
-
- Teleport tilbud
-
-
- Nye beskeder modtaget mens du var væk......
-
-
- Du har %d mere besked(er)
-
-
- Højre arm
-
-
- Hoved
-
-
- Venstre arm
-
-
- Venstre ben
-
-
- Overkrop
-
-
- Højre ben
-
-
- Lav
-
-
- Middel
-
-
- Høj
-
-
- Tryk ESC for at skift til normalt udsyn
-
-
- Fandt du ikke hvad du søgte? Prøv [secondlife:///app/search/all/[SEARCH_TERM] Search].
-
-
- Fandt du ikke hvad du søgte? Prøv [secondlife:///app/search/places/[SEARCH_TERM] Search].
-
-
- Træk et landemærke hertil for at tilføje den som favorit.
-
-
- Du har ikke en kopi af denne tekstur i din beholdning
-
-
-
-
-
-
-
-
- Henter indhold...
-
-
- Intet indhold
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Min beholdning
-
-
- Bibliotek
-
-
- Teksturer
-
-
- Lyde
-
-
- Visitkort
-
-
- Landemærker
-
-
- Scripts
-
-
- Tøj
-
-
- Objekter
-
-
- Noter
-
-
- Ny mappe
-
-
- Beholdning
-
-
- Ukomprimerede billeder
-
-
- Kropsdele
-
-
- Papirkurv
-
-
- Fotoalbum
-
-
- Fundne genstande
-
-
- Ukomprimerede lyde
-
-
- Animationer
-
-
- Bevægelser
-
-
- Mine favoritter
-
-
- Mine favoritter
-
-
- Nuværende sæt
-
-
- Start sæt
-
-
- Mine sæt
-
-
- Tilbehør
-
-
- Meshes
-
-
- Venner
-
-
- Alle
-
-
- Køb
-
-
- Køb for L$
-
-
- Sten
-
-
- Metal
-
-
- Glas
-
-
- Træ
-
-
- Kød
-
-
- Plastik
-
-
- Gummi
-
-
- Lys
-
-
- Shift
-
-
- Ctrl
-
-
- Bryst
-
-
- Hovedskal
-
-
- Venstre skulder
-
-
- Højre skulder
-
-
- Venstre hånd
-
-
- Højre hånd
-
-
- Venstre fod
-
-
- Højre fod
-
-
- Rygsøjle
-
-
- Bækken
-
-
- Mund
-
-
- Hage
-
-
- Venstre øre
-
-
- Højre øre
-
-
- Venstre øje
-
-
- Højre øje
-
-
- Næse
-
-
- H overarm
-
-
- H underarm
-
-
- V overarm
-
-
- V underarm
-
-
- Højre hofte
-
-
- Højre lår
-
-
- H underben
-
-
- Venstre hofte
-
-
- Venstre lår
-
-
- V underben
-
-
- Mave
-
-
- Venstre bryst
-
-
- Højre bryst
-
-
- Ugyldig vedhæftningspunktt
-
-
- [AGEYEARS] [AGEMONTHS] gammel
-
-
- [AGEYEARS] gammel
-
-
- [AGEMONTHS] gammel
-
-
- [AGEWEEKS] gammel
-
-
- [AGEDAYS] gammel
-
-
- Med fra i dag
-
-
- [COUNT] år
-
-
- [COUNT] år
-
-
- [COUNT] år
-
-
- [COUNT] måned
-
-
- [COUNT] måneder
-
-
- [COUNT] måneder
-
-
- [COUNT] uge
-
-
- [COUNT] uger
-
-
- [COUNT] uger
-
-
- [COUNT] dag
-
-
- [COUNT] dage
-
-
- [COUNT] dage
-
-
- [COUNT] medlem
-
-
- [COUNT] medlemmer
-
-
- [COUNT] medlemmer
-
-
- Beboer
-
-
- På prøve
-
-
- Æresmedlemmer
-
-
- Linden Lab medarbejder
-
-
- Betalende medlem
-
-
- Betalingsinfo registreret
-
-
- Ingen betalingsinfo
-
-
- Alders-checket
-
-
- Ikke alders-checket
-
-
- Center 2
-
-
- Øverst højre
-
-
- Top
-
-
- Øverst venstre
-
-
- Centrum
-
-
- Nederst venstre
-
-
- Nederst midt
-
-
- nederst højre
-
-
- Hentet, kompilerer nu
-
-
- Script ikke fundet på server.
-
-
- Problem ved download
-
-
- Ikke rettigheder til at downloade script.
-
-
- Ikke nok rettigheder til at
-
-
- Ukendt fejl ved download
-
-
- Rekompilering fremskridt
-
-
- Rekompilér
-
-
- Nulstil fremskridt
-
-
- nulstil
-
-
- Sæt "running" fremskridt
-
-
- sæt til "running"
-
-
- Sæt "Not Running" fremskridt
-
-
- sæt til "not running"
-
-
- Kompleret uden fejl!
-
-
- Kompileret uden fejl, gemmer...
-
-
- Gemt.
-
-
- Script ("object out of range")
-
-
- Objekt [OBJECT] ejet af [OWNER]
-
-
- ingen
-
-
-
- (ukendt)
-
-
-
-
-
-
- Balance
-
-
- Kredit
-
-
- Debet
-
-
- Total
-
-
- Ingen gruppedata fundet for gruppe
-
-
- overordnet estate
-
-
- mainland
-
-
- teen
-
-
- fejl
-
-
- alle estates ejet af [OWNER]
-
-
- alle estates du ejer
-
-
- alle estates du administrerer for [OWNER]
-
-
- Godkendte beboere: ([ALLOWEDAGENTS], maks. [MAXACCESS])
-
-
- Godkendte grupper: ([ALLOWEDGROUPS], max. [MAXACCESS])
-
-
- Parcel script memory
-
-
- Parceller listet: [PARCELS]
-
-
- Memory brugt: [COUNT] kb ud af [MAX] kb; [AVAILABLE] kb tilgængeligt
-
-
- Memory brugt: [COUNT] kb
-
-
- Parcel Script URL'er
-
-
- URL'er brugt: [COUNT] ud af [MAX]; [AVAILABLE] tilgængelige
-
-
- URL'er brugt: [COUNT]
-
-
- Fejl ved anmodning om information
-
-
- Ingen parcel valgt
-
-
- Fejl: script information er kun tilgængelig i den nuværende region
-
-
- Henter information...
-
-
- Du har ikke rettigheder til at undersøge denne parcel
-
-
- Sidder på
-
-
- Bryst
-
-
- Hoved
-
-
- Venstre skulder
-
-
- Højre skulder
-
-
- Venstre hånd
-
-
- Højre hånd
-
-
- Venstre fod
-
-
- Højre fod
-
-
- Ryg
-
-
- Bækken
-
-
- Mund
-
-
- Hage
-
-
- Venstre øre
-
-
- Højre øre
-
-
- Venstre øje
-
-
- Højre øje
-
-
- Næse
-
-
- Højre overarm
-
-
- Højre underarm
-
-
- Venstre overarm
-
-
- Venstre underarm
-
-
- Højre hofte
-
-
- Højre lår
-
-
- Højre underben
-
-
- Venstre hofte
-
-
- Venste lår
-
-
- Venstre underben
-
-
- Mave
-
-
- Højre bryst
-
-
- Venstre bryst
-
-
- HUD Center 2
-
-
- HUD Øverst til højre
-
-
- HUD Foroven midtpå
-
-
- HUD Øverst til venstre
-
-
- HUD Center 1
-
-
- HUD Nederst til venstre
-
-
- HUD For neden
-
-
- HUD Nederst til højre
-
-
- Linie [LINE], Kolonne [COLUMN]
-
-
- [COUNT] fundet
-
-
- Indhold i objekt
-
-
- Nyt script
-
-
- Beboeren du sendte en besked er 'optaget', hvilket betyder at han/hun ikke vil forstyrres. Din besked vil blive vis i hans/hendes IM panel til senere visning.
-
-
- (Efter navn)
-
-
- (beboer)
-
-
- (Objekt)
-
-
- (Gruppe)
-
-
- (Ekstern)
-
-
- Der er ingen regler for dette estate.
-
-
- Der er ingen regler for dette estate. Land på dette estate sælges af estate ejeren, ikke af Linden Lab. Kontakt venligst estate ejeren for detaljer om salg.
-
-
-
-
-
- Gruppe ejet
-
-
- Offentlig
-
-
- Klik: [TELEPORT] teleport, [MAP] kort, [PROFILE] profil
-
-
- (vil blive opdateret efter offentliggørelse)
-
-
- Du har ikke oprettet nogen favoritter eller annoncer. Klik på plus knappen nedenfor for at oprette en favorit eller en annonce.
-
-
- Bruger har ingen favoritter eller annoncer
-
-
- Henter...
-
-
- Vis først
-
-
- Egenskaber
-
-
- Et objekt med navnet
-
-
- ejet af gruppen
-
-
- ejet af en ukendt gruppe
-
-
- ejet af
-
-
- ejet af en ukendt bruger
-
-
- gav dig
-
-
- Du afslår [DESC] fra <nolink>[NAME]</nolink>.
-
-
- Total
-
-
- købt
-
-
- betalte dig
-
-
- betalt til
-
-
- købte adgang til
-
-
- betalte gebyr for event
-
-
- betalte prisen for event
-
-
- Balance
-
-
- Kredit
-
-
- Debet
-
-
- Indhold
-
-
- Anskaffede genstande
-
-
- Annullér
-
-
- Uploader [NAME] pris L$ [AMOUNT]
-
-
- At købe dette koster L$ [AMOUNT]
-
-
- Ukendt fil efternavn [.%s]
-Forventet .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
-
-
- Blokér
-
-
- Tilføj landemærke...
-
-
- Redigér landemærke...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Shift+
-
-
- Fil gemt
-
-
- Modtager
-
-
- AM
-
-
- PM
-
-
- PST
-
-
- PDT
-
-
- Fremad
-
-
- Venstre
-
-
- Højre
-
-
- Bagud
-
-
- Nord
-
-
- Syd
-
-
- Vest
-
-
- Øst
-
-
- Op
-
-
- Ned
-
-
- Enhver kategori
-
-
- Shopping
-
-
- Land til leje
-
-
- Grunde til leje
-
-
- Speciel attraktion
-
-
- Nye produkter
-
-
- Jobs
-
-
- Søges
-
-
- Service
-
-
- Personlig
-
-
- Ingen
-
-
- Linden sted
-
-
- Adult
-
-
- Kunst & kultur
-
-
- Business
-
-
- Uddannelse
-
-
- Spil
-
-
- Afslapning
-
-
- Nybegynder venligt
-
-
- Parker & natur
-
-
- Beboelse
-
-
- Fase
-
-
- Andet
-
-
- Leje
-
-
- Enhver
-
-
- Du
-
-
- Flere medietyper
-
-
- Afspil/Pause medie
-
-
- Der opstod en fejl ved afvikling af kommandolinie.
-Se venligst: http://wiki.secondlife.com/wiki/Client_parameters
-Fejl:
-
-
- [APP_NAME] Kommando linie brug:
-
-
- [APP_NAME] kan ikke få adgang til fil den/det skal bruge.
-
-Dette kan skyldes at du har flere kopier kørende eller operativsystemet tror at filen allerede er åben.
-Hvis fejlen bliver ved, genstart computer og prøv igen.
-Hvis fejlen stadig bliver ved, kan det være nødvendigt at afinstallere [APP_NAME] og installere igen.
-
-
- Fatal fejl
-
-
- [APP_NAME] kræver en processor med AltiVec (G4 eller nyere).
-
-
- [APP_NAME] kører allerede.
-Undersøg din "task bar" for at se efter minimeret version af programmet.
-Hvis fejlen fortsætter, prøv at genstarte din computer.
-
-
- [APP_NAME] ser ud til at være "frosset" eller gået ned tidligere.
-Ønsker du at sende en fejlrapport?
-
-
- Besked
-
-
- [APP_NAME] kan ikke detektere DirectX 9.0b eller nyere.
-[APP_NAME] benytte DirectX til at detektere hardware og/eller forældede drivere der kan give problemer med stabilitet, dårlig hastighed eller nedbrud. Selvom du kan køre [APP_NAME] uden det, anbefaler vi meget at køre med DirectX 9.0b.
-
-Ønsker du at fortsætte?
-
-
- Advarsel
-
-
- Automatisk opdatering er endnu ikke implementeret på Linux.
-Hent venligst den nyeste version på www.secondlife.com.
-
-
- RegisterClass fejlede
-
-
- Fejl
-
-
- Ikke muligt at køre i fuldskærm med [WIDTH] x [HEIGHT].
-Afvikler i vindue.
-
-
- Nedlukningsfejl ved lukning af vindue (DestroyWindow() fejlede)
-
-
- Fejl ved nedlukning
-
-
- Kan ikke oprette "GL device context"
-
-
- Kan ikke finde passende "pixel format"
-
-
- Kan ikke finde "pixel format" beskrivelse
-
-
- [APP_NAME] kræver "True Color (32-bit)" for at kunne køre.
-Gå venligst til din computers skærmopsætning og sæt "color mode" til 32-bit.
-
-
- [APP_NAME] kan ikke køre, da den ikke kan finde en "8 bit alpha channel". Normalt skyldes dette et problem med en video driver.
-Venligst undersøg om du har de nyeste drivere til dit videokort installeret.
-Din skærm skal også være sat op til at køre "True Color (32-bit)" i din displayopsætning.
-Hvis du bliver ved med at modtage denne besked, kontakt [SUPPORT_SITE].
-
-
- Kan ikke sætte "pixel format"
-
-
- Kan ikke oprette "GL rendering context"
-
-
- Kan ikke aktivere "GL rendering context"
-
-
- [APP_NAME] kan ikke afvikles da driverne til dit videokort ikke blev installeret korrekt, er forældede, eller du benytter hardware der ikke er supporteret. Undersøg venligst om du har installeret de nyeste drivere til dit grafikkort, og selv om du har de nyeste, prøv at geninstallere dem.
-
-Hvis du bliver ved med at modtage denne besked, kontakt venligst [SUPPORT_SITE].
-
-
- Skægstubbe
-
-
- Helt hvidt
-
-
- Store øjne
-
-
- Spidst
-
-
- Armængde
-
-
- Vedhæftet
-
-
- Vedhæftede øreflipper
-
-
- Nakkehår
-
-
- Posede
-
-
- Pandehår
-
-
- Stikkende øjne
-
-
- Mave størrelse
-
-
- Stor
-
-
- Stor bagdel
-
-
- Stort hår: Bag
-
-
- Stort hår: Foran
-
-
- Stort hår: Top
-
-
- Stort hovede
-
-
- Store brystmuskler
-
-
- Store spikes
-
-
- Sort
-
-
- Blond
-
-
- Blondt hår
-
-
- Rødmen
-
-
- Rødme farve
-
-
- Rødme gennemsigtighed
-
-
- Kropskontur
-
-
- Kropsfedt
-
-
- Fregner på kroppen
-
-
- Tyk krop
-
-
- Kropstykkelse
-
-
- Tynd krop
-
-
- Hjulbenet
-
-
- Bryst tyngdepåvirkning
-
-
- Kavalergang
-
-
- Bryststørrelse
-
-
- Bredde næseryg
-
-
- Bred
-
-
- Størrelse øjenbryn
-
-
- Udstående øjne
-
-
- Udstående øjne
-
-
- Kartoffelnæse
-
-
- Kartoffelnæse
-
-
- Bryst fylde
-
-
- Brystudjævning
-
-
- Bryst tyngde
-
-
- Bryst inerti
-
-
- Maks. effekt
-
-
- Fjeder
-
-
- Øg
-
-
- Dæmpning
-
-
- Maks. effekt
-
-
- Fjeder
-
-
- Øg
-
-
- Dæmpning
-
-
- Maks. effekt
-
-
- Fjeder
-
-
- Øg
-
-
- Dæmpning
-
-
- Mave omfang
-
-
- maveudjævning
-
-
- Mave tyngde
-
-
- Mave inerti
-
-
- Maks. effekt
-
-
- Fjeder
-
-
- Øg
-
-
- Dæmpning
-
-
- Bagdel omfang
-
-
- Bagdelsudjævning
-
-
- Bagdel tyngde
-
-
- Bagdel modstand
-
-
- Maks. effekt
-
-
- Fjeder
-
-
- Øg
-
-
- Dæmpning
-
-
- Maks. effekt
-
-
- Fjeder
-
-
- Øg
-
-
- Dæmpning
-
-
- Buskede øjenbryn
-
-
- Busket hår
-
-
- Størrelse bagdel
-
-
- Bagdel tyngde
-
-
- Tournure
-
-
- Ingen tournure
-
-
- Mere tournure
-
-
- Chaplin
-
-
- Kindben
-
-
- Bryst størrelse
-
-
- Hage form
-
-
- Hagekløft
-
-
- Hageskæg
-
-
- Hage dybde
-
-
- Stort forneden
-
-
- Vigende hage
-
-
- Hage frem
-
-
- Hals under hage
-
-
- Slet
-
-
- Kløft
-
-
- Tætsiddende øjne
-
-
- Lukket
-
-
- Lukket bagtil
-
-
- Lukket foran
-
-
- Lukket til venstre
-
-
- Lukket til højre
-
-
- Lille
-
-
- Krave bagtil
-
-
- Krave foran
-
-
- Nedadvendt
-
-
- Opadvendt
-
-
- Rynket
-
-
- Skæv næse
-
-
- Svaj
-
-
- Mørk
-
-
- Mørkegrøn
-
-
- Mørkere
-
-
- Dyb
-
-
- Standard hæle
-
-
- Tæt
-
-
- Dobbelthage
-
-
- Peger nedad
-
-
- Stort
-
-
- Øre vinkel
-
-
- Øre størrelse
-
-
- Ørespidser
-
-
- Ovalt hovede
-
-
- Poser under øjne
-
-
- Øjenfarve
-
-
- Øjendybde
-
-
- Øjennuance
-
-
- Øjenåbning
-
-
- Øjensymmetri
-
-
- Øjenstørrelse
-
-
- Øjenafstand
-
-
- Bue på øjenbryn
-
-
- Tæthed øjenbryn
-
-
- Højde på øjenbryn
-
-
- Løftede øjenbryn
-
-
- Størrelse øjenbryn
-
-
- Længde øjenvipper
-
-
- Eyeliner
-
-
- Eyeliner farve
-
-
- Udstående øjne
-
-
- Ansigts symmetri
-
-
- Ansigtskonturer
-
-
- Stor afstand mellem øjne
-
-
- Tykke læber
-
-
- Kvinde
-
-
- Fingerløse
-
-
- Fingre
-
-
- Stor vidde
-
-
- Flad
-
-
- Flad bagdel
-
-
- Fladt hovede
-
-
- Flad snude
-
-
- Størrelse fod
-
-
- Pande vinkel
-
-
- Stort foroven
-
-
- Fregner
-
-
- Frynser foran
-
-
- Langt ud bagtil
-
-
- Meget eyeliner
-
-
- Langt frem fortil
-
-
- Hår i siderne
-
-
- Meget hår
-
-
- Skinnende
-
-
- Fingre i handsker
-
-
- Handskelængde
-
-
- Hår
-
-
- Hår: Bagtil
-
-
- Hår: Foran
-
-
- Hår: Siderne
-
-
- Strøget hår
-
-
- Hår tykkelse
-
-
- Hår tykkelse
-
-
- Hældning
-
-
- mest hår venstre
-
-
- Mest hår højre
-
-
- Hår: Volumen
-
-
- Størrelse hånd
-
-
- Cykelstyr
-
-
- Længde på hovede
-
-
- Hovedform
-
-
- Hovedstørrelse
-
-
- Hovedhøjde
-
-
- Hælhøjde
-
-
- Hælform
-
-
- Højde
-
-
- Høj
-
-
- Hæje hæle
-
-
- Høj kæbe
-
-
- Høje såle
-
-
- Høj og tæt
-
-
- Højere
-
-
- Hoftelængde
-
-
- Hoftebredde
-
-
- Inde
-
-
- Indre skygge farve
-
-
- Indre skygge gennemsigtighed
-
-
- Inderste del af øje
-
-
- Inderste øjenskygge
-
-
- Indre skygge
-
-
- Jakkelængde
-
-
- Jakkerynker
-
-
- Kæbevinkel
-
-
- Kæbefremspring
-
-
- Kæbeform
-
-
- Saml
-
-
- Kindehud
-
-
- Knævinkel
-
-
- Kalveknæet
-
-
- Stor
-
-
- Store hænder
-
-
- Venstre side
-
-
- Benlængde
-
-
- Benmuskler
-
-
- Mindre
-
-
- Mindre kropsfedt
-
-
- Mindre
-
-
- Færre fregner
-
-
- Mindre
-
-
- Mindre
-
-
- Mindre bildæk
-
-
- Færre muskler
-
-
- Mindre muskuløs
-
-
- Mindre rosa
-
-
- Mindre rund
-
-
- Mindre
-
-
- Mindre
-
-
- Mindre
-
-
- Mindre
-
-
- Lettere
-
-
- Læbekløft
-
-
- Dybde læbekløft
-
-
- Fyldige læber
-
-
- Lyserøde læber
-
-
- Læbeproportioner
-
-
- Læbetykkelse
-
-
- Læbebredde
-
-
- Lipgloss
-
-
- Læbestift
-
-
- Læbestift farve
-
-
- Lang
-
-
- Langt hovede
-
-
- Lange hofter
-
-
- Bange ben
-
-
- Lang hals
-
-
- Lange rottehaler
-
-
- Lang hestehale
-
-
- Lang overkrop
-
-
- Lange arme
-
-
- Løse bukser
-
-
- Løs trøje
-
-
- Løse ærmer
-
-
- Bildæk
-
-
- Lav
-
-
- Flade hæle
-
-
- Lav kæbe
-
-
- Flade såler
-
-
- Lav og løs
-
-
- Nedre
-
-
- Nedre næseryg
-
-
- Nedre kinder
-
-
- Mand
-
-
- Midterste del
-
-
- Mere
-
-
- Mere rødmen
-
-
- Mere kropsfedt
-
-
- Mere
-
-
- Mere øjenskygge
-
-
- Flere fregner
-
-
- Mere
-
-
- Mere
-
-
- Mere læbestift
-
-
- Mere bildæk
-
-
- Mere underlæbe
-
-
- Flere muskler
-
-
- Mere muskuløs
-
-
- Mere rosa
-
-
- Mere rund
-
-
- Mere
-
-
- Mere skrå
-
-
- Mere firkantet
-
-
- Mere overlæbe
-
-
- Mere lodret
-
-
- Mere
-
-
- Mere
-
-
- Overskæg
-
-
- Mundvige
-
-
- Position mund
-
-
- Intet hår
-
-
- Muskuløs
-
-
- Lange
-
-
- Neglelak
-
-
- Neglelak farve
-
-
- Smal
-
-
- Smal bagtil
-
-
- Smal fortil
-
-
- Smalle læber
-
-
- Naturlig
-
-
- Halslængde
-
-
- Halstykkelse
-
-
- Ingen rødmen
-
-
- Ingen eyeliner
-
-
- Ingen øjenskygge
-
-
- Ingen lipgloss
-
-
- Ingen læbestift
-
-
- Ingen dele
-
-
- Ingen lak
-
-
- Ingen rød
-
-
- Ingen spikes
-
-
- Ingen hvid
-
-
- Ingen rynker
-
-
- Normal nedre
-
-
- Normal øvre
-
-
- Højre
-
-
- Venstre
-
-
- Næse størrelse
-
-
- Næse tykkelse
-
-
- Næsetip vinkel
-
-
- Næsetip form
-
-
- Næse bredde
-
-
- Næsebor adskillelse
-
-
- Næsebor bredde
-
-
- Uigennemsigtig
-
-
- Åben
-
-
- Åben bagtil
-
-
- Åben foran
-
-
- Åben til venstre
-
-
- Åben til højre
-
-
- Orange
-
-
- Ud
-
-
- Ydre skygge farve
-
-
- Ydre skygge uigennemsigtighed
-
-
- Yderste del af øje
-
-
- Ydre øjenskygge
-
-
- Ydre skygge
-
-
- Overbid
-
-
- Skridt
-
-
- Malede negle
-
-
- Bleg
-
-
- Bukser skridt
-
-
- Pasform bukser
-
-
- Bukser - længde
-
-
- Bukser - vidde
-
-
- Bukser - rynker
-
-
- Skilning
-
-
- Skilning
-
-
- Brystmuskler
-
-
- Pigmentering
-
-
- Rottehaler
-
-
- Pink
-
-
- Mere pink
-
-
- Højde sål
-
-
- Bredde sål
-
-
- Spids
-
-
- Spidse hæle
-
-
- Hestehale
-
-
- Strutskørt
-
-
- Forstør venstre øje
-
-
- Forstør højre øje
-
-
- Posede
-
-
- Posede øjenlåg
-
-
- Regnbue farver
-
-
- Rødt hår
-
-
- Almindelig
-
-
- Højre skildning
-
-
- Rosa teint
-
-
- Rund
-
-
- Rødmossethed
-
-
- Rødmosset
-
-
- Krøllet hår
-
-
- Ridebukselår
-
-
- Magert ben
-
-
- Separat
-
-
- Lille
-
-
- Afklippet bagi
-
-
- Skævt ansigt
-
-
- "Måne"
-
-
- Venstre op
-
-
- Højre op
-
-
- Afklippet bagtil
-
-
- Måne
-
-
- Mod venstre
-
-
- Flyt mund
-
-
- Mod højre
-
-
- Trøje - bund
-
-
- Trøje - pasform
-
-
- Trøje - rynker
-
-
- Sko højde
-
-
- Kort
-
-
- Korte arme
-
-
- Korte ben
-
-
- Kort hals
-
-
- Korte rottehaler
-
-
- Kort hestehale
-
-
- Korte
-
-
- Kort overkrop
-
-
- Korte hofter
-
-
- Skuldre
-
-
- Side frynser
-
-
- Bakkenbarter
-
-
- Sidehår
-
-
- Ned
-
-
- Op
-
-
- Tynd hals
-
-
- Omfang
-
-
- Længde nederdel
-
-
- Skrånende pande
-
-
- Ærmelængde
-
-
- Ærmer - stramhed
-
-
- Slids: Bag
-
-
- Slids: Foran
-
-
- Slids: Venstre
-
-
- Slids: Højre
-
-
- Lille
-
-
- Små hænder
-
-
- Lille hovede
-
-
- Glat
-
-
- Glat hår
-
-
- Strømper - længde
-
-
- Soulpatch
-
-
- Sparsomt
-
-
- Hår med "spikes"
-
-
- Firkantet
-
-
- Firkantet snude
-
-
- Bredt hovede
-
-
- Stræk hovede
-
-
- Indsunket
-
-
- Indsunket bryst
-
-
- Dybtliggende øjne
-
-
- Stryge tilbage
-
-
- Stryge fremad
-
-
- Høj
-
-
- Indsnævring bag
-
-
- Indsnævring foran
-
-
- Brede hæle
-
-
- Bred nakke
-
-
- Bred snude
-
-
- Tynd
-
-
- Tynde øjenbryn
-
-
- Tynde læber
-
-
- Tynd næse
-
-
- Stram hage
-
-
- Smalle bukseben
-
-
- Stramme bukser
-
-
- Stram trøje
-
-
- Stram nederdel
-
-
- Stramme ærmer
-
-
- Sko form
-
-
- Tykkelse af snud
-
-
- Overkrop - længde
-
-
- Overkrop - muskler
-
-
- Overkrop - mager
-
-
- Ikke vedhæftet
-
-
- Glat
-
-
- Underbid
-
-
- Unaturlig
-
-
- Øverste næseryg
-
-
- Øvre kinder
-
-
- Øvre hagekløft
-
-
- Øvre øjenlåg
-
-
- Opadvendt
-
-
- Meget rød
-
-
- Talje højde
-
-
- Velnæret
-
-
- Hvidt hår
-
-
- Bred
-
-
- Bredt
-
-
- Bredt
-
-
- Brede læber
-
-
- Vildt
-
-
- Rynker
-
-
- Tilføj til mine landemærker
-
-
- Rediger mit landemærke
-
-
- Se yderligere information om nuværende lokation
-
-
- Min lokationshistorik
-
-
- Adult region
-
-
- Moderate region
-
-
- Generel region
-
-
- [APP_NAME] Opdatér
-
-
- Opdaterer nu [APP_NAME]...
-
-
- Installerer [APP_NAME]...
-
-
- Din [APP_NAME] klient bliver opdateret til nyeste version. Dette kan tage noget tid, så venligst vær tålmodig.
-
-
- Download færdig...
-
-
- Downloader opdatering
-
-
- Download af opdatering fejlede
-
-
- Der opstod en fejl ved opdatering af [APP_NAME]. Hent venligst den nyeste version fra www.secondlife.com.
-
-
- Installation af opdatering fejlede
-
-
- Opstart af klient fejlede
-
-
- [APP_NAME]: Genstande modtages for hurtigt fra [FROM_NAME], automatisk visning er slået fra i [TIME] sekunder
-
-
- [APP_NAME]: Genstande modtages for hurtigt, automatisk visning er slået fra i [TIME] sekunder
-
-
- -- Logning af IM aktiveret --
-
-
- [NAME] skriver...
-
-
- (Uden navn)
-
-
- (Modereret: Stemmer deaktiveret)
-
-
- Tekst chat er ikke tilgængelig i denne samtale.
-
-
- Din tekst chat er blevet deaktiveret af en gruppe moderator.
-
-
- Klik her for privat besked (IM).
-
-
- Til
-
-
- (Moderator)
-
-
- (Gemt [LONG_TIMESTAMP])
-
-
- Dit opkald er blevet besvaret
-
-
- Du startede dette stemme kald
-
-
- Du er nu med i stemme opkald
-
-
- [NAME] startede et stemmekald
-
-
- Tilslutter stemme opkald...
-
-
- Forbundet, klik på Forlad for at lægge på
-
-
- Forladt stemme opkald
-
-
- Konference med [AGENT_NAME]
-
-
- (IM session eksisterer ikke)
-
-
- Du er den eneste deltager i denne samtale
-
-
- [NAME] er logget af.
-
-
- Tryk på [BUTTON NAME] knappen for at acceptére/tilslutte til denne stemme chat.
-
-
- Du har blokeret denne beboer. Sendes en besked, vil beboeren fjernes fra blokeringslisten.
-
-
- Fejl ved anmodning, prøv venligst igen senere
-
-
- Kunne ikke etablere forbindelse, prøv igen senere
-
-
- Du har ikke de fornødne rettigheder.
-
-
- Denne samtale er lukket ned
-
-
- Du har ikke den mulighed.
-
-
- Du har ikke den mulighed.
-
-
- Du er ikke moderator for denne samtale.
-
-
- En gruppe moderator har deaktiveret din tekst chat.
-
-
- Du er blevet "blokeret".
-
-
- Ikke muligt at tilføge brugere til samtale med [RECIPIENT].
-
-
- Kunne ikke sende din besked til session med [RECIPIENT].
-
-
- Ikke muligt at sende din besked til samtalen med [RECIPIENT].
-
-
- Fejl under moderation.
-
-
- Du er blevet fjernet fra denne gruppe.
-
-
- Du er blevet fjernet fra gruppen.
-
-
- Du har ikke længere mulighed for at deltage i samtalen
-
-
- [SOURCES] har sagt noget nyt
-
-
- [SOURCES] har sagt noget nyt
-
-
- Initialisering af session er "timed out"
-
-
- Hjemmeposition sat.
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] betalte dig L$[AMOUNT] [REASON].
-
-
- [NAME] betalte dig L$[AMOUNT].
-
-
- Du betalte [NAME] L$[AMOUNT] [REASON].
-
-
- Du betalte L$[AMOUNT].
-
-
- Du betalte [NAME] L$[AMOUNT].
-
-
- Du betalte L$[AMOUNT] [REASON].
-
-
- til [ITEM]
-
-
- for en parcel land
-
-
- for en billet til land
-
-
- for dedikering af land
-
-
- for at oprette gruppe
-
-
- for at blive medlem i gruppe
-
-
- for at uploade
-
-
- til offentliggørelse af annonce
-
-
- Giver L$ [AMOUNT]
-
-
- Pris for upload er L$ [AMOUNT]
-
-
- Prisen er L$ [AMOUNT]
-
-
- Køber valgte land L$ [AMOUNT]
-
-
- Dette objekt koster L$ [AMOUNT]
-
-
- Enhver
-
-
- Administratorer
-
-
- Ejere
-
-
- Online
-
-
- Uploader...
-
-Krænkelsesanmeldelse
-
-
- Ny kropsbygning
-
-
- Ny hud
-
-
- Nyt hår
-
-
- Nye øjne
-
-
- Ny trøje
-
-
- Nye bukser
-
-
- Nye sko
-
-
- Nye strømper
-
-
- Ny jakke
-
-
- Nye handsker
-
-
- Ny undertrøje
-
-
- Nye underbukser
-
-
- Ny nederdel
-
-
- Ny alpha
-
-
- Ny tatovering
-
-
- Ny fysik
-
-
- Kan ikke tages på
-
-
- Ny bevægelse
-
-
- Nyt script
-
-
- Ny note
-
-
- Ny folder
-
-
- Indhold
-
-
- Bevægelse
-
-
- Mandlige bevægelser
-
-
- Kvindelige bevægelser
-
-
- Andre bevægelser
-
-
- Tale bevægelser
-
-
- Almindelige bevægelser
-
-
- Mand - Undskyld mig
-
-
- Mand - Skrid!
-
-
- Mand - Pust et kys
-
-
- Mand - Boo
-
-
- Mand - Keder sig
-
-
- Mand - Hey
-
-
- Mand - Latter
-
-
- Mand - Frastødt
-
-
- Mand - Skuldertræk
-
-
- Mand - Stik tunge ud
-
-
- Mand - Wow
-
-
- Kvinde - Kluklatter
-
-
- Kvinde - gråd
-
-
- Kvinde - Flov
-
-
- Kvinde - Undskyld mig
-
-
- Kvinde - Skrid!
-
-
- Kvinde - Pust et kys
-
-
- Kvinde - Boo
-
-
- Kvinde - Keder sig
-
-
- Kvinde - Hey
-
-
- Kvinde - Hey baby
-
-
- Kvinde - Latter
-
-
- Kvinde - "Ser godt ud"
-
-
- Kvinde - Herovre
-
-
- Kvinde - Be´ om
-
-
- Kvinde - Frastødt
-
-
- Kvinde - Skuldertræk
-
-
- Kvinde - Stik tungen ud
-
-
- Kvinde - Wow
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
-
-
- ingen/ingen
-
-
- Kan ikke hente billeder større end [WIDTH]*[HEIGHT]
-
-
-
- Desværre er noget gået galt.
-
- Check venligst status.secondlifegrid.net for at se om der skulle være driftsproblemer.
- Hvis du bliver ved med at have problemer, check venligst din firewall- og netværksopsætning.
-
-
- Søndag:Mandag:Tirsdag:Onsdag:Torsdag:Fredag:Lørdag
-
-
- Søn:Man:Tir:Ons:Tor:Fre:Lør
-
-
- Januar:Februar:Marts:April:Maj:Juni:Juli:August:September:Oktober:November:December
-
-
- Jan:Feb:Mar:Apr:Maj:Jun:Jul:Aug:Sep:Okt:Nov:Dec
-
-
- [MDAY]
-
-
- AM
-
-
- PM
-
-
- US$ [AMOUNT]
-
-
- Medlemsskab
-
-
- Roller
-
-
- Gruppe identitet
-
-
- Parcel håndtering
-
-
- Parcel identitet
-
-
- Parcel opsætning
-
-
- Parcel beføjelser
-
-
- Parcel adgang
-
-
- Parcel indhold
-
-
- Objekt håndtering
-
-
- Regnskab
-
-
- Beskeder
-
-
- Chat
-
-
- Slet valgte genstande?
-
-
- Slet valgte genstand?
-
-
- Der er ingen genstande i dette sæt
-
-
- Vælg en editor via opsætningen for Ekstern editor.
-
-
- Kan ikke benytte deb eksterne editor der er angivet.
-Prøv at omkrandse stien til editor med anførselstegn.
-(f.eks. "/stil til min editor" "%s")
-
-
- Fejl ved håndtering af kommando til ekstern editor.
-
-
- Den eksterne editor kunne ikke startes.
-
-
- Esc
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Hjem
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Tilføj
-
-
- Træk fra
-
-
- Multiplicer
-
-
- Divider
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Viser pejlelys for for partikler (blå)
-
-
- Viser pejlelys for fysiske objekter (grøn)
-
-
- Viser pejlelys for "scriptede" objekter (rød)
-
-
- Viser pejlelys for "scriptede" objekter med berøringsfunktion (rød)
-
-
- Viser pejlelys for lyd (gul)
-
-
- Viser pejlelys for media (hvid)
-
-
- Skjuler partikler
-
-
diff --git a/indra/newview/skins/steam/xui/de/strings.xml b/indra/newview/skins/steam/xui/de/strings.xml
deleted file mode 100644
index b15cecb146..0000000000
--- a/indra/newview/skins/steam/xui/de/strings.xml
+++ /dev/null
@@ -1,5018 +0,0 @@
-
-
-
-
- Second Life
-
-
- Second Life
-
-
- SECOND LIFE
-
-
- Second Life-Grid:
-
-
- Second Life Support-Portal
-
-
- Hardware wird erfasst...
-
-
- [APP_NAME] wird geladen...
-
-
- Cache wird gelöscht...
-
-
- Textur-Cache wird initialisiert...
-
-
- VFS wird initialisiert...
-
-
- Grafikinitialisierung fehlgeschlagen. Bitte aktualisieren Sie Ihren Grafiktreiber.
-
-
- Wird wiederhergestellt...
-
-
- Auflösung wird geändert...
-
-
- Fullbright (Legacy)
-
-
- Anmeldevorgang gestartet. [APP_NAME] reagiert möglicherweise nicht. Bitte warten.
-
-
- Anmeldung erfolgt...
-
-
- Authentifizierung
-
-
- Account wird aktualisiert...
-
-
- Ein früherer Anmeldeversuch ist fehlgeschlagen. Anmeldung, Versuch [NUMBER]
-
-
- Welt wird geladen...
-
-
- Integrierter Webbrowser wird initialisiert...
-
-
- Multimedia wird initialisiert...
-
-
- Schriftarten werden geladen...
-
-
- Cache-Dateien werden überprüft (dauert 60-90 Sekunden)...
-
-
- Antwort wird verarbeitet...
-
-
- Welt wird initialisiert...
-
-
- Bilder werden entpackt...
-
-
- QuickTime wird initialisiert...
-
-
- QuickTime nicht gefunden - Initialisierung nicht möglich.
-
-
- QuickTime wurde initialisiert.
-
-
- Regionsfähigkeiten anfordern...
-
-
- Regionsfähigkeiten anfordern. Versuch [NUMBER]...
-
-
- Region-Handshake...
-
-
- Region-Verbindung...
-
-
- Kleidung wird geladen...
-
-
- Der Server hat ein ungültiges oder korruptes Zertifikate zurückgegeben. Bitte kontaktieren Sie den Grid-Administrator.
-
-
- Ein ungültiger Hostname wurde verwendet, um auf den Server zuzugreifen. Bitte überprüfen Sie Ihre SLURL oder den Grid-Hostnamen.
-
-
- Das vom Grid ausgegebene Zertifikate ist abgelaufen. Bitte überprüfen Sie Ihre Systemuhr oder kontaktieren Sie Ihren Grid-Administrator.
-
-
- Das vom Server ausgegebene Zertifikat konnte nicht für SSL verwendet werden. Bitte kontaktieren Sie Ihren Grid-Administrator.
-
-
- In der Zertifikatskette des Servers befanden sich zu viele Zertifikate. Bitte kontaktieren Sie Ihren Grid-Administrator.
-
-
- Die Zertifikatsunterschrift des Gridservers konnte nicht bestätigt werden. Bitte kontaktieren Sie Ihren Grid-Administrator.
-
-
- Netzwerkfehler: Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie Ihre Netzwerkverbindung.
-
-
- Anmeldung fehlgeschlagen
-
-
- Beenden
-
-
- http://join.secondlife.com/index.php?sourceid=1206_steam&lang=de-DE
-
-
- Mit dem von Ihnen verwendeten Viewer ist der Zugriff auf Second Life nicht mehr möglich. Laden Sie von den folgenden Seite einen neuen Viewer herunter:
-http://secondlife.com/download
-
-Weitere Informationen finden Sie auf der folgenden FAQ-Seite:
-http://secondlife.com/viewer-access-faq
-
-
- Optionales Viewer-Update verfügbar: [VERSION]
-
-
- Erforderliches Viewer-Update: [VERSION]
-
-
- Dieser Agent ist bereits angemeldet.
-
-
- Wir bitten um Entschuldigung! Wir konnten Sie nicht anmelden.
-Stellen Sie sicher, dass Sie die richtigen Informationen eingegeben haben:
- * Benutzername (wie robertschmidt12 oder warme.sonne)
- * Kennwort
-Stellen Sie außerdem sicher, dass die Umschaltsperre deaktiviert ist.
-
-
- Ihr Kennwort wurde aus Sicherheitsgründen geändert.
-Gehen Sie zur Seite „Mein Account“ unter http://secondlife.com/password
-und beantworten Sie die Sicherheitsfrage, um Ihr Kennwort zurückzusetzen.
-Wir entschuldigen uns für eventuell enstandene Unannehmlichkeiten.
-
-
- Aufgrund von Systemänderungen müssen Sie Ihr Kennwort zurücksetzen.
-Gehen Sie zur Seite „Mein Account“ unter http://secondlife.com/password
-und beantworten Sie die Sicherheitsfrage, um Ihr Kennwort zurückzusetzen.
-Wir entschuldigen uns für eventuell enstandene Unannehmlichkeiten.
-
-
- Second Life ist vorübergehend wegen Wartung geschlossen.
-Nur Mitarbeiter können sich anmelden.
-Aktuelle Informationen finden Sie unter www.secondlife.com/status.
-
-
- Die Anmeldung bei Second Life ist vorübergehend eingeschränkt, um sicherzustellen, dass Einwohner, die sich bereits inworld aufhalten, das bestmögliche Erlebnis haben.
-
-Benutzer mit kostenlosen Konten können sich während dieses Zeitraums nicht bei Second Life anmelden, damit die Kapazität Benutzern zur Verfügung steht, die ein gebührenpflichtiges Premium-Konto besitzen.
-
-
- Der Zugriff auf Second Life ist von diesem Computer aus nicht möglich.
-Wenn Sie der Ansicht sind, dass Sie diese Meldung fälschlicherweise erhalten haben, wenden Sie sich an
-support@secondlife.com.
-
-
- Ihr Konto ist erst ab
-[TIME] Pacific Time wieder verfügbar.
-
-
- Ihre Anfrage kann derzeit nicht bearbeitet werden.
-Wenden Sie sich unter http://secondlife.com/support an den Second Life-Support.
-Wenn Sie Ihr Kennwort nicht ändern können, rufen Sie die US-Nummer (866) 476-9763 an.
-
-
- Nicht übereinstimmende Daten bei der Anmeldung festgestellt.
-Wenden Sie sich an support@secondlife.com.
-
-
- An Ihrem Konto werden gerade kleinere Wartungsarbeiten durchgeführt.
-Ihr Konto ist erst ab
-[TIME] Pacific Time wieder verfügbar.
-Wenn Sie der Ansicht sind, dass Sie diese Meldung fälschlicherweise erhalten haben, wenden Sie sich an support@secondlife.com.
-
-
- Abmeldeanforderung führte zu einem Simulatorfehler.
-
-
- Das System meldet Sie gerade ab.
-Ihr Konto ist erst ab
-[TIME] Pacific Time wieder verfügbar.
-
-
- Es kann keine gültige Sitzung erstellt werden.
-
-
- Es kann keine Simulatorverbindung hergestellt werden.
-
-
- Mit Ihrem Konto ist der Zugriff auf Second Life
-nur zwischen [START] und [END] Pacific Time möglich.
-Schauen Sie während dieses Zeitraums vorbei.
-Wenn Sie der Ansicht sind, dass Sie diese Meldung fälschlicherweise erhalten haben, wenden Sie sich an support@secondlife.com.
-
-
- Falsche Parameter.
-Wenn Sie der Ansicht sind, dass Sie diese Meldung fälschlicherweise erhalten haben, wenden Sie sich an support@secondlife.com.
-
-
- Vorname muss alphanumerisch sein.
-Wenn Sie der Ansicht sind, dass Sie diese Meldung fälschlicherweise erhalten haben, wenden Sie sich an support@secondlife.com.
-
-
- Nachname muss alphanumerisch sein.
-Wenn Sie der Ansicht sind, dass Sie diese Meldung fälschlicherweise erhalten haben, wenden Sie sich an support@secondlife.com.
-
-
- Die Region wird gerade offline geschaltet.
-Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
-
-
- Agent nicht in Region.
-Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
-
-
- Die Region war gerade dabei, eine andere Sitzung anzumelden.
-Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
-
-
- Die Region war gerade dabei, die vorherige Sitzung abzumelden.
-Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
-
-
- Die Region ist noch immer dabei, die vorherige Sitzung abzumelden.
-Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
-
-
- Die Region hat soeben die letzte Sitzung abgemeldet.
-Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
-
-
- Die Region hat den Abmeldevorgang gestartet.
-Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
-
-
- Das System hat begonnen, Ihre letzte Sitzung abzumelden.
-Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
-
-
- In dieser Region kann es zu Problemen kommen. Bitte überprüfen Sie Ihre Internetverbindung.
-
-
- Ihr Einstellungen werden gespeichert...
-
-
- Abmeldung erfolgt...
-
-
- Programm wird beendet...
-
-
- Die Verbindung zu der Region ist abgebrochen.
-
-
- Sie wurden in eine ungültige Region geschickt.
-
-
- Verbindungsabbruch wird getestet
-
-
- Person
-
-
- (namenlos)
-
-
- Eigentümer:
-
-
- Öffentlich
-
-
- (Gruppe)
-
-
- Zum Verkauf: [AMOUNT] L$
-
-
- Gruppenbau
-
-
- Bauen aus
-
-
- Gruppenbau
-
-
- Unsicher
-
-
- Fliegen aus
-
-
- Gruppenskripte
-
-
- Skripte aus
-
-
- Land:
-
-
- Sie können nur ein einzelnes Objekt hierher ziehen
-
-
-
- Sie können Artikel nicht in Ihrer Händler-Outbox rezzen
-
-
- Einer oder mehrere dieser Artikel können nicht verkauft oder übertragen werden.
-
-
- Nur Artikel direkt aus Ihrem Inventar können in Ihre Händler-Outbox gelegt werden
-
-
- Artikel, die Sie tragen, können nicht in Ihre Händler-Outbox gelegt werden.
-
-
- Sie können keine Visitenkarten in Ihre Händler-Outbox legen
-
-
- Tiefe der verschachtelten Ordner überschreitet 3
-
-
- Anzahl von Unterordnern im obersten Ordner überschreitet 20
-
-
- Anzahl von Artikeln im obersten Ordner überschreitet 200
-
-
- Sie können einen Ordner nicht in einen seiner untergeordneten Ordner verschieben
-
-
- Sie können einen Ordner nicht in sich selbst verschieben
-
-
- Anklicken, um Webseite anzuzeigen
-
-
- Anklicken, um Informationen zu diesem Standort anzuzeigen
-
-
- Anklicken, um das Profil dieses Einwohners anzuzeigen
-
-
- Mehr über diesen Einwohner
-
-
- Klicken, um diesen Einwohner stummzuschalten
-
-
- Klicken, um diesen Einwohner freizuschalten
-
-
- Klicken, um diesem Einwohner eine IM zu schicken.
-
-
- Klicken, um diesen Einwohner zu bezahlen
-
-
- Klicken, um diesem Einwohner einen Teleport anzubieten.
-
-
- Klicken, um diesem Einwohner ein Freundschaftsangebot zu schicken.
-
-
- Anklicken, um Beschreibung der Gruppe anzuzeigen
-
-
- Anklicken, um Beschreibung der Veranstaltung anzuzeigen
-
-
- Anklicken, um diese Anzeige anzuzeigen
-
-
- Anklicken, um Beschreibung der Parzelle anzuzeigen
-
-
- Anklicken, um zu diesem Standort zu teleportieren
-
-
- Anklicken, um Beschreibung des Objekts anzuzeigen
-
-
- Klicken, um diese Position auf der Karte anzuzeigen
-
-
- Anklicken, um Befehl secondlife:// auszuführen
-
-
-
- Teleportieren nach
-
-
- Karte anzeigen für
-
-
- Stummschalten
-
-
- Stummschaltung aufheben
-
-
- IM
-
-
- Bezahlen
-
-
- Teleportangebot an
-
-
- Freundschaftsangebot
-
-
- Schließen (⌘W)
-
-
- Schließen (Strg+W)
-
-
- Schließen
-
-
- Wiederherstellen
-
-
- Minimieren
-
-
- Abnehmen
-
-
- Andocken
-
-
- Hilfe anzeigen
-
-
- Suchen...
-
-
- Nicht gefunden.
-
-
- Laden...
-
-
- Versionshinweise
-
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- Wird geladen...
-
-
- (niemand)
-
-
- (wartet)
-
-
- (mehrere)
-
-
- (keiner)
-
-
- Avaline-Anfrufer [ORDER]
-
-
- Kein Fehler
-
-
- Asset-Anforderung: fehlgeschlagen
-
-
- Asset-Anforderung: Datei existiert nicht
-
-
- Asset-Anforderung: Asset in Datenbank nicht gefunden
-
-
- Ende der Datei
-
-
- Datei kann nicht geöffnet werden
-
-
- Datei nicht gefunden
-
-
- Zeitüberschreitung bei Dateiübertragung
-
-
- Verbindung verloren
-
-
- Viewer und Server sind sich nicht über Preis einig
-
-
- Status unbekannt
-
-
- Textur
-
-
- Sound
-
-
- Visitenkarte
-
-
- Landmarke
-
-
- Skript (veraltet)
-
-
- Kleidung
-
-
- Objekt
-
-
- Notizkarte
-
-
- Ordner
-
-
- Hauptverzeichnis
-
-
- LSL2 Skript
-
-
- LSL Bytecode
-
-
- tga-Textur
-
-
- Körperteil
-
-
- Foto
-
-
- Fundbüro
-
-
- targa-Bild
-
-
- Papierkorb
-
-
- jpeg-Bild
-
-
- Animation
-
-
- Geste
-
-
- simstate
-
-
- Favoriten
-
-
- Link
-
-
- Link zu Ordner
-
-
- mesh
-
-
- (Aussehen wird bearbeitet)
-
-
- Abwesend
-
-
- Beschäftigt
-
-
- Ignoriert
-
-
- Ängstlich
-
-
- Verärgert
-
-
- Abwesend
-
-
- Rückwärtssalto
-
-
- Lachkrampf
-
-
- Grinsen
-
-
- Kusshand
-
-
- Gelangweilt
-
-
- Verbeugen
-
-
- Klatschen
-
-
- Diener
-
-
- Weinen
-
-
- Tanz 1
-
-
- Tanz 2
-
-
- Tanz 3
-
-
- Tanz 4
-
-
- Tanz 5
-
-
- Tanz 6
-
-
- Tanz 7
-
-
- Tanz 8
-
-
- Verachten
-
-
- Trinken
-
-
- Verlegen
-
-
- Drohen
-
-
- Faust pumpen
-
-
- Yogaflieger
-
-
- Stirnrunzeln
-
-
- Ungeduldig
-
-
- Freudensprung
-
-
- LMA
-
-
- Küssen
-
-
- Lachen
-
-
- Posen
-
-
- Nein (Bedauernd)
-
-
- Nein
-
-
- Ällabätsch
-
-
- Eins-Zwei-Punch
-
-
- Mund offen
-
-
- Friede
-
-
- Auf anderen zeigen
-
-
- Auf mich zeigen
-
-
- Linker Haken
-
-
- Rechter Haken
-
-
- SSP zählen
-
-
- SSP Papier
-
-
- SSP Stein
-
-
- SSP Schere
-
-
- Angewidert
-
-
- Rundkick
-
-
- Traurig
-
-
- Salutieren
-
-
- Rufen
-
-
- Schulterzucken
-
-
- Lächeln
-
-
- Zigarette halten
-
-
- Rauchen
-
-
- Zigarette wegwerfen
-
-
- Überraschung
-
-
- Schwerthieb
-
-
- Wutanfall
-
-
- Zunge rausstrecken
-
-
- Winken
-
-
- Flüstern
-
-
- Pfeifen
-
-
- Zwinkern
-
-
- Zwinkern (Hollywood)
-
-
- Sorgenvoll
-
-
- Ja (Erfreut)
-
-
- Ja
-
-
- Mehrfach
-
-
- Wird geladen...
-
-
- Offline
-
-
- [PRICE] L$ für [AREA] m²
-
-
- Nicht gefunden.
-
-
- OK
-
-
- Unvollständige Datei
-
-
- HAUPTVERZEICHNIS oder VERBINDUNG nicht gefunden.
-
-
- flüstert:
-
-
- ruft:
-
-
- Verbindung mit In-Welt-Voice-Chat...
-
-
- Verbunden
-
-
- Der aktuelle Standort unterstützt keine Voice-Kommunikation
-
-
- Verbindung mit In-Welt-Voice-Chat getrennt
-
-
- Sie werden nun wieder mit dem Chat in Ihrer Nähe verbunden
-
-
- Dem Objekt „[OBJECTNAME]“, ein Objekt von „[OWNERNAME]“, in [REGIONNAME] [REGIONPOS], wurde folgende Berechtigung erteilt: [PERMISSIONS].
-
-
- Dem Objekt „[OBJECTNAME]“, ein Objekt von „[OWNERNAME]“, in [REGIONNAME] [REGIONPOS], wurde folgende Berechtigung verweigert: [PERMISSIONS].
-
-
- Linden-Dollar (L$) von Ihnen nehmen
-
-
- Steuerung festlegen
-
-
- Steuerung neu zuweisen
-
-
- Avatar animieren
-
-
- An Avatar anhängen
-
-
- Eigentum aufgeben und öffentlich machen
-
-
- Mit Objekten verknüpfen und davon trennen
-
-
- Verbindungen zu anderen Objekten hinzufügen und entfernen
-
-
- Berechtigungen ändern
-
-
- Kameraverfolgung
-
-
- Kamerasteuerung
-
-
- Nicht verbunden
-
-
- Generell
-
-
- Moderat
-
-
- Adult
-
-
- Offline
-
-
- Unbekannt
-
-
- (unbekannt)
-
-
- Grundstück / Vollständige Region
-
-
- Grundbesitz/Homestead
-
-
- Mainland/Homestead
-
-
- Mainland / Vollständige Region
-
-
- Alle Dateien
-
-
- Sounds
-
-
- Animationen
-
-
- Bilder
-
-
- Speichern
-
-
- Laden
-
-
- Targa-Bilder
-
-
- Bitmap-Bilder
-
-
- AVI-Filmdatei
-
-
- XAF Anim-Datei
-
-
- XML-Datei
-
-
- RAW-Datei
-
-
- Komprimierte Bilder
-
-
- Dateien laden
-
-
- Verzeichnis auswählen
-
-
- Skripts
-
-
- Nicht abwesend
-
-
- Abwesend
-
-
- Nicht beschäftigt
-
-
- Beschäftigt
-
-
- Form
-
-
- Haut
-
-
- Haare
-
-
- Augen
-
-
- Hemd
-
-
- Hose
-
-
- Schuhe
-
-
- Socken
-
-
- Jacke
-
-
- Handschuhe
-
-
- Unterhemd
-
-
- Unterhose
-
-
- Rock
-
-
- Alpha
-
-
- Tätowierung
-
-
- Physik
-
-
- ungültig
-
-
- keine
-
-
- Hemd nicht getragen
-
-
- Hosen nicht getragen
-
-
- Schuhe nicht getragen
-
-
- Socken nicht getragen
-
-
- Jacke nicht getragen
-
-
- Handschuhe nicht getragen
-
-
- Unterhemd nicht getragen
-
-
- Unterhose nicht getragen
-
-
- Rock nicht getragen
-
-
- Alpha nicht getragen
-
-
- Tätowierung nicht getragen
-
-
- Physik nicht getragen
-
-
- ungültig
-
-
- Neue Form/Gestalt erstellen
-
-
- Neue Haut erstellen
-
-
- Neue Haare erstellen
-
-
- Neue Augen erstellen
-
-
- Neues Hemd erstellen
-
-
- Neue Hose erstellen
-
-
- Neue Schuhe erstellen
-
-
- Neue Socken erstellen
-
-
- Neue Jacke erstellen
-
-
- Neue Handschuhe erstellen
-
-
- Neues Unterhemd erstellen
-
-
- Neue Unterhose erstellen
-
-
- Neuer Rock erstellen
-
-
- Neue Alpha erstellen
-
-
- Neue Tätowierung erstellen
-
-
- Neue Physik erstellen
-
-
- ungültig
-
-
- Neue/r/s [WEARABLE_ITEM]
-
-
- Weiter
-
-
- OK
-
-
- Gruppenmitteilung
-
-
- Gruppenmitteilungen
-
-
- Gesendet von
-
-
- Im Anhang:
-
-
- Alte Mitteilungen anzeigen oder hier Auswahl treffen, um keine Mitteilungen mehr zu erhalten.
-
-
- Anlage öffnen
-
-
- Siehe Anhang
-
-
- Teleport-Angebot
-
-
- Sie haben neue Benachrichtigungen erhalten, während Sie abwesend waren.
-
-
- Sie haben noch %d weitere Benachrichtigungen
-
-
- Rechter Arm
-
-
- Kopf
-
-
- Linker Arm
-
-
- Linkes Bein
-
-
- Oberkörper
-
-
- Rechtes Bein
-
-
- Niedrig
-
-
- Mittel
-
-
- Hoch
-
-
- ESC drücken, um zur Normalansicht zurückzukehren
-
-
- Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all/[SEARCH_TERM] Suche].
-
-
- Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/places/[SEARCH_TERM] Suche].
-
-
- Landmarke hier hin ziehen, um diese hinzuzufügen.
-
-
- Sie haben keine Kopie dieser Textur in Ihrem Inventar.
-
-
- Einkäufe aus dem Marktplatz erscheinen hier. Sie können diese dann zur Verwendung in Ihr Inventar ziehen.
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
-
-
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
-
-
- Jeder kann Artikel im Marktplatz verkaufen.
-
-
-
- Wenn Sie als Händler aktiv werden möchten, müssen Sie einen [[MARKETPLACE_CREATE_STORE_URL] Laden im Marktplatz erstellen].
-
-
- Ihre Outbox ist leer.
-
-
-
- Ziehen Sie Ordner in dien Bereich und klicken Sie auf „In Marktplatz übertragen“, um sie im [[MARKETPLACE_DASHBOARD_URL] Marktplatz] zum Verkauf anzubieten.
-
-
- Keine Fehler
-
-
- Fehler: Bevor Sie Artikel in den Marktplatz übertragen können, müssen Sie sich als Händler registrieren (kostenlos).
-
-
- Fehler: Dieser Ordner ist leer.
-
-
- Fehler: Dieser Artikel konnte nicht hochgeladen werden, da in Ihrem Händlerkonto zu viele Artikel nicht mit Produkten verknüpft sind. Um diesen Fehler zu beheben, melden Sie sich auf der Marktplatz-Website an und reduzieren Sie die Anzahl von Artikeln, die nicht mit Produkten verknüpft sind.
-
-
- Fehler: Dieser Artikel enthält zu viele Objekte. Beheben Sie diesen Fehler, indem Sie Objekte zusammen in Behältern verpacken, um die Objektanzahl auf unter 200 zu verringern.
-
-
- Fehler: Dieser Artikel enthält zu viele verschachtelte Ordnerebenen. Organisieren Sie ihn neu, sodass maximal drei verschachtelte Ordnerebenen vorhanden sind.
-
-
- Fehler: Dieser Artikel kann nicht im Marktplatz verkauft werden.
-
-
- Fehler: Bei diesem Artikel ist ein Problem aufgetreten. Versuchen Sie es später erneut.
-
-
- Landmarken öffnen
-
-
-
-
-
-
-
-
- Inhalte werden geladen...
-
-
- Keine Inhalte
-
-
-
-
- Ja
-
-
- Nein
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Mein Inventar
-
-
- Bibliothek
-
-
- Texturen
-
-
- Sounds
-
-
- Visitenkarten
-
-
- Landmarken
-
-
- Skripts
-
-
- Kleidung
-
-
- Objekte
-
-
- Notizkarten
-
-
- Neuer Ordner
-
-
- Inventar
-
-
- Nicht-Komprimierte Bilder
-
-
- Körperteile
-
-
- Papierkorb
-
-
- Fotoalbum
-
-
- Fundbüro
-
-
- Nicht-Komprimierte Sounds
-
-
- Animationen
-
-
- Gesten
-
-
- Meine Favoriten
-
-
- Meine Favoriten
-
-
- Aktuelles Outfit
-
-
- Ursprüngliche Outfits
-
-
- Meine Outfits
-
-
- Zubehör
-
-
- Netze
-
-
- Freunde
-
-
- Alle
-
-
- Keine Anhänge getragen
-
-
- Anhänge (noch [COUNT] Positionen frei)
-
-
- Kaufen
-
-
- Kaufen für L$
-
-
- Stein
-
-
- Metall
-
-
- Glas
-
-
- Holz
-
-
- Fleisch
-
-
- Plastik
-
-
- Gummi
-
-
- Hell
-
-
- Umschalt-Taste
-
-
- Strg
-
-
- Brust
-
-
- Schädel
-
-
- Linke Schulter
-
-
- Rechte Schulter
-
-
- Linke Hand
-
-
- Rechte Hand
-
-
- Linker Fuß
-
-
- Rechter Fuß
-
-
- Wirbelsäule
-
-
- Becken
-
-
- Mund
-
-
- Kinn
-
-
- Linkes Ohr
-
-
- Rechtes Ohr
-
-
- Linker Augapfel
-
-
- Rechter Augapfel
-
-
- Nase
-
-
- R Oberarm
-
-
- R Unterarm
-
-
- L Oberarm
-
-
- L Unterarm
-
-
- Rechte Hüfte
-
-
- R Oberschenkel
-
-
- R Unterschenkel
-
-
- Linke Hüfte
-
-
- L Oberschenkel
-
-
- L Unterschenkel
-
-
- Bauch
-
-
- Linke Brust
-
-
- Rechts
-
-
- Hals
-
-
- Avatar-Mitte
-
-
- Ungültige Stelle für Anhang
-
-
- [AGEYEARS] [AGEMONTHS] alt
-
-
- [AGEYEARS] alt
-
-
- [AGEMONTHS] alt
-
-
- [AGEWEEKS] alt
-
-
- [AGEDAYS] alt
-
-
- Seit heute Mitglied
-
-
- [COUNT] Jahr
-
-
- [COUNT] Jahre
-
-
- [COUNT] Jahre
-
-
- [COUNT] Monat
-
-
- [COUNT] Monate
-
-
- [COUNT] Monate
-
-
- [COUNT] Woche
-
-
- [COUNT] Wochen
-
-
- [COUNT] Wochen
-
-
- [COUNT] Tag
-
-
- [COUNT] Tage
-
-
- [COUNT] Tage
-
-
- [COUNT] Mitglied
-
-
- [COUNT] Mitglieder
-
-
- [COUNT] Mitglieder
-
-
- Einwohner
-
-
- Test
-
-
- Charta-Mitglied
-
-
- Linden Lab-Mitarbeiter
-
-
- Zahlungsinfo verwendet
-
-
- Zahlungsinfo archiviert
-
-
- Keine Zahlungsinfo archiviert
-
-
- Altersgeprüft
-
-
- Nicht altersgeprüft
-
-
- Mitte 2
-
-
- Oben rechts
-
-
- Oben
-
-
- Oben links
-
-
- Mitte
-
-
- Unten links
-
-
- Unten
-
-
- Unten rechts
-
-
- Heruntergeladen, wird kompiliert
-
-
- Skript wurde auf Server nicht gefunden.
-
-
- Beim Herunterladen ist ein Problem aufgetreten
-
-
- Unzureichende Rechte zum Herunterladen eines Skripts.
-
-
- Unzureichende Berechtigungen für
-
-
- Unbekannter Fehler beim Herunterladen
-
-
- Rekompilierung
-
-
- rekompilieren
-
-
- Zurücksetzen
-
-
- Zurücksetzen
-
-
- Skript ausführen
-
-
- Skript ausführen
-
-
- Skript anhalten
-
-
- Skript anhalten
-
-
- Kompilieren erfolgreich abgeschlossen!
-
-
- Kompilieren erfolgreich abgeschlossen, speichern...
-
-
- Speichervorgang abgeschlossen.
-
-
- Skript (Objekt außerhalb des Bereichs)
-
-
- Objekt [OBJECT], Besitzer [OWNER]
-
-
- keine
-
-
-
- (unbekannt)
-
-
-
-
- [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]
-
-
-
-
- Kontostand
-
-
- Danksagung
-
-
- Soll
-
-
- Gesamtbetrag
-
-
- Für Gruppe wurden keine Gruppendaten gefunden
-
-
- parent estate
-
-
- Mainland
-
-
- Teen
-
-
- jeder
-
-
- Fehler
-
-
- alle Grundbesitze gehören [OWNER]
-
-
- alle Grundbesitze, die Sie besitzen
-
-
- alle Grundbesitze, die Sie für [OWNER] verwalten
-
-
- Zulässige Einwohner: ([ALLOWEDAGENTS], max [MAXACCESS])
-
-
- Zulässige Gruppen: ([ALLOWEDGROUPS], max [MAXACCESS])
-
-
- Parzellenskript-Speicher
-
-
- Aufgeführte Parzellen: [PARCELS]
-
-
- Verwendeter Speicher: [COUNT] KB von [MAX] KB; [AVAILABLE] KB verfügbar
-
-
- Verwendeter Speicher: [COUNT] KB
-
-
- Parzelleskript-URLs
-
-
- Verwendete URLs: [COUNT] von [MAX]; [AVAILABLE] verfügbar
-
-
- Verwendete URLs: [COUNT]
-
-
- Fehler bei Informationsabruf
-
-
- Keine Parzellen wurden ausgewählt
-
-
- Fehler: Skriptinformationen sind nur für Ihre aktuelle Region verfügbar
-
-
- Informationen werden abgerufen...
-
-
- Sie sind nicht berechtigt, diese Parzelle zu untersuchen.
-
-
- sitzt auf
-
-
- Brust
-
-
- Kopf
-
-
- Linke Schulter
-
-
- Rechte Schulter
-
-
- Linke Hand
-
-
- Rechte Hand
-
-
- Linker Fuß
-
-
- Rechter Fuß
-
-
- Hinten
-
-
- Becken
-
-
- Mund
-
-
- Kinn
-
-
- Linkes Ohr
-
-
- Rechtes Ohr
-
-
- Linkes Auge
-
-
- Rechtes Auge
-
-
- Nase
-
-
- Rechter Oberarm
-
-
- Rechter Unterarm
-
-
- Linker Oberarm
-
-
- Linker Unterarm
-
-
- Rechte Hüfte
-
-
- Rechter Oberschenkel
-
-
- Rechter Unterschenkel
-
-
- Linke Hüfte
-
-
- Linker Oberschenkel
-
-
- Linker Unterschenkel
-
-
- Bauch
-
-
- Rechts
-
-
- Linke Brust
-
-
- HUD Mitte 2
-
-
- HUD oben rechts
-
-
- HUD oben Mitte
-
-
- HUD oben links
-
-
- HUD Mitte 1
-
-
- HUD unten links
-
-
- HUD unten
-
-
- HUD unten rechts
-
-
- Zeile [LINE], Spalte [COLUMN]
-
-
- [COUNT] gefunden
-
-
- [hour12,datetime,slt]:[min,datetime,slt] [ampm,datetime,slt]
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]
-
-
- Objektinhalt
-
-
- Neues Skript
-
-
- Der Einwohner/Die Einwohnerin ist „beschäftigt”, d.h. er/sie möchte im Moment nicht gestört werden. Ihre Nachricht wird dem Einwohner/der Einwohnerin als IM angezeigt, und kann später beantwortet werden.
-
-
- (Nach Namen)
-
-
- (Einwohner)
-
-
- (Objekt)
-
-
- (Gruppe)
-
-
- (Extern)
-
-
- Für diesen Grundbesitz liegt kein Vertrag vor.
-
-
- Für diesen Grundbesitz liegt kein Vertrag vor. Das Land auf diesem Grundbesitz wird vom Grundbesitzer und nicht von Linden Lab verkauft. Für Informationen zum Verkauf setzen Sie sich bitte mit dem Grundbesitzer in Verbindung.
-
-
-
-
-
- In Gruppenbesitz
-
-
- Öffentlich
-
-
- Lokale Einstellungen
-
-
- Regionseinstellungen
-
-
- Klicks: [TELEPORT] teleportieren, [MAP] Karte, [PROFILE] Profil
-
-
- (wird nach Veröffentlichung aktualisiert)
-
-
- Sie haben keine Auswahl oder Anzeigen erstelllt. Klicken Sie auf die „Plus"-Schaltfläche, um eine Auswahl oder Anzeige zu erstellen.
-
-
- Der Einwohner hat keine Auswahl oder Anzeigen
-
-
- Wird geladen...
-
-
- Vorschau
-
-
- Eigenschaften
-
-
- Ein Objekt namens
-
-
- im Besitz der Gruppe
-
-
- im Besitz einer unbekannten Gruppe
-
-
- im Besitz von
-
-
- im Besitz eines unbekannten Einwohners
-
-
- hat Ihnen folgendes übergeben
-
-
- Sie lehnen [DESC] von <nolink>[NAME]</nolink> ab.
-
-
- Gesamtbetrag
-
-
- gekauft
-
-
- bezahlte Ihnen
-
-
- bezahlte an
-
-
- kaufte Pass für
-
-
- bezahlte Gebühr für Event
-
-
- bezahlte Preis für Event
-
-
- Kontostand
-
-
- Danksagung
-
-
- Soll
-
-
- [weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
-
-
- Inhalte
-
-
- Erworbene Artikel
-
-
- Abbrechen
-
-
- Das Hochladen von [NAME] kostet [AMOUNT] L$
-
-
- Die Kosten betragen: [AMOUNT] L$
-
-
- Unbekanntes Dateiformat .%s
-Gültige Formate: .wav, .tga, .bmp, .jpg, .jpeg oder .bvh
-
-
- Ignorieren
-
-
- Ignorieren
-
-
- Freischalten
-
-
- Freischalten
-
-
- Zu meinen Landmarken hinzufügen...
-
-
- Meine Landmarken bearbeiten...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Strg+
-
-
- Alt+
-
-
- Umschalt+
-
-
- Datei wurde gespeichert
-
-
- Daten werden empfangen
-
-
- Uhr
-
-
- Uhr
-
-
- PST
-
-
- PDT
-
-
- Vorwärts
-
-
- Links
-
-
- Rechts
-
-
- Zurück
-
-
- Norden
-
-
- Süden
-
-
- Westen
-
-
- Osten
-
-
- Nach oben
-
-
- Nach unten
-
-
- Alle Kategorien
-
-
- Shopping
-
-
- Land mieten
-
-
- Immobilie mieten
-
-
- Attraktionen
-
-
- Neue Produkte
-
-
- Stellenangebote
-
-
- Gesucht
-
-
- Dienstleistungen
-
-
- Sonstiges
-
-
- Keiner
-
-
- Lindenort
-
-
- Adult
-
-
- Kunst & Kultur
-
-
- Firmen
-
-
- Bildung
-
-
- Spielen
-
-
- Treffpunkt
-
-
- Anfängergerecht
-
-
- Parks und Natur
-
-
- Wohngebiet
-
-
- Phase
-
-
- Sonstige
-
-
- Vermietung
-
-
- Alle
-
-
- Sie
-
-
- :
-
-
- ,
-
-
- ...
-
-
- ***
-
-
- (
-
-
- )
-
-
- .
-
-
- '
-
-
- ---
-
-
- Mehrere Medien
-
-
- Medien Abspielen/Pausieren
-
-
- Beim Parsen der Befehlszeile wurde ein Fehler festgestellt.
-Weitere Informationen: http://wiki.secondlife.com/wiki/Client_parameters (EN)
-Fehler:
-
-
- [APP_NAME] Verwendung in Befehlszeile:
-
-
- [APP_NAME] kann auf die erforderliche Datei nicht zugreifen.
-
-Grund hierfür ist, dass Sie entweder mehrere Instanzen gleichzeitig ausführen oder dass Ihr System denkt, eine Datei sei geöffnet.
-Falls diese Nachricht erneut angezeigt wird, starten Sie bitte Ihren Computer neu und probieren Sie es noch einmal.
-Falls der Fehler dann weiterhin auftritt, müssen Sie [APP_NAME] von Ihrem System de-installieren und erneut installieren.
-
-
- Unbehebbarer Fehler
-
-
- [APP_NAME] erfordert einen Prozessor mit AltiVec (G4 oder später).
-
-
- [APP_NAME] läuft bereits.
-Bitte sehen Sie in Ihrer Menüleiste nach, dort sollte ein Symbol für das Programm angezeigt werden.
-Falls diese Nachricht erneut angezeigt wird, starten Sie Ihren Computer bitte neu.
-
-
- [APP_NAME] scheint eingefroren zu sein oder ist abgestürzt.
-Möchten Sie einen Absturz-Bericht einschicken?
-
-
- Benachrichtigung
-
-
- [APP_NAME] kann DirectX 9.0b oder höher nicht feststellen.
-[APP_NAME] verwendet DirectX, um nach Hardware und/oder veralteten Treibern zu suchen, die zu Problemen mit der Stabilität, Leistung und Abstürzen führen können. Sie können [APP_NAME] auch so ausführen, wir empfehlen jedoch, dass DirectX 9.0b vorhanden ist und ausgeführt wird.
-
-Möchten Sie fortfahren?
-
-
- Hinweis
-
-
- Für Linux ist zur Zeit noch kein automatisches Aktualisieren möglich.
-Bitte laden Sie die aktuellste Version von www.secondlife.com herunter.
-
-
- RegisterClass fehlgeschlagen
-
-
- Fehler
-
-
- Vollbildschirm mit [WIDTH] x [HEIGHT] kann nicht ausgeführt werden.
-Ausführung erfolgt in Fenster.
-
-
- Fehler beim Herunterfahren während Fenster geschlossen wurde (DestroyWindow() fehlgeschlagen)
-
-
- Fehler beim Herunterfahren
-
-
- Kann keinen Kontext für GL-Gerät erstellen
-
-
- Passendes Pixelformat wurde nicht gefunden
-
-
- Beschreibung für Pixelformat nicht verfügbar
-
-
- Um [APP_NAME] auszuführen, ist True Color (32-bit) erforderlich.
-Klicken Sie öffnen Sie auf Ihrem Computer die Einstellungen für die Anzeige und stellen Sie den Bildschirm auf 32-bit Farbe ein.
-
-
- [APP_NAME] kann nicht ausgeführt werden, da kein 8-Bit-Alpha-Kanal verfügbar ist. Dies geschieht normalerweise bei Problemen mit dem Treiber der Video-Karte.
-Bitte vergewissern Sie sich, dass Sie die aktuellsten Treiber für Ihre Videokarte installiert haben.
-Vergewissern Sie sich außerdem, dass Ihr Bildschirm auf True Color (32-Bit) eingestellt ist (Systemsteuerung > Anzeige > Einstellungen).
-Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_SITE].
-
-
- Pixel-Format kann nicht eingestellt werden.
-
-
- Kann keinen Kontext für GL-Gerät erstellen
-
-
- Kann keinen Kontext für GL-Gerät aktivieren
-
-
- [APP_NAME] kann nicht ausgeführt werden, da die Treiber Ihrer Videokarte entweder nicht richtig installiert oder veraltet sind, oder die entsprechende Hardware nicht unterstützt wird. Bitte vergewissern Sie sich, dass Sie die aktuellsten Treiber für die Videokarte installiert haben. Falls Sie die aktuellsten Treiber bereits installiert haben, installieren Sie diese bitte erneut.
-
-Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_SITE].
-
-
- Bartschatten
-
-
- Ganz weiß
-
-
- Anime-Augen
-
-
- Gewölbt
-
-
- Armlänge
-
-
- Angewachsen
-
-
- Angewachsene Ohrläppchen
-
-
- Nackenfransen
-
-
- Tränensäcke
-
-
- Pony
-
-
- Knopfaugen
-
-
- Bauchgröße
-
-
- Groß
-
-
- Großer Hintern
-
-
- Volumen: Hinten
-
-
- Volumen: Vorne
-
-
- Volumen: Oben
-
-
- Groß
-
-
- Große Brustmuskeln
-
-
- Große Stacheln
-
-
- Schwarz
-
-
- Blond
-
-
- Blondes Haar
-
-
- Rouge
-
-
- Rougefarbe
-
-
- Rouge Deckkraft
-
-
- Körperkonturen
-
-
- Körperfett
-
-
- Sommersprossen
-
-
- breit
-
-
- Körperbreite
-
-
- schmal
-
-
- o-beinig
-
-
- Brust, Straffheit
-
-
- Dekolleté
-
-
- Brustgröße
-
-
- Rückenbreite
-
-
- Breit
-
-
- Brauengröße
-
-
- Glubschaugen
-
-
- Hervortretend
-
-
- Knollennase
-
-
- Knollennase
-
-
- Brust – Masse
-
-
- Brust – Glättung
-
-
- Brust – Schwerkraft
-
-
- Brust – Luftwiderstand
-
-
- Max. Effekt
-
-
- Federn
-
-
- Verstärkung
-
-
- Dämpfung
-
-
- Max. Effekt
-
-
- Federn
-
-
- Verstärkung
-
-
- Dämpfung
-
-
- Max. Effekt
-
-
- Federn
-
-
- Verstärkung
-
-
- Dämpfung
-
-
- Bauch – Masse
-
-
- Bauch – Glättung
-
-
- Bauch – Schwerkraft
-
-
- Bauch – Luftwiderstand
-
-
- Max. Effekt
-
-
- Federn
-
-
- Verstärkung
-
-
- Dämpfung
-
-
- Po – Masse
-
-
- Po – Glättung
-
-
- Po – Schwerkraft
-
-
- Po – Luftwiderstand
-
-
- Max. Effekt
-
-
- Federn
-
-
- Verstärkung
-
-
- Dämpfung
-
-
- Max. Effekt
-
-
- Federn
-
-
- Verstärkung
-
-
- Dämpfung
-
-
- Buschige Augenbrauen
-
-
- Buschiges Haar
-
-
- Hintern, Größe
-
-
- Po – Schwerkraft
-
-
- Tournürenrock
-
-
- Ohne
-
-
- Mit
-
-
- Chaplin
-
-
- Wangenknochen
-
-
- Brustgröße
-
-
- Kinnwinkel
-
-
- Kinnspalte
-
-
- Schifferfräse
-
-
- Kinnlänge
-
-
- Kinn ausgeprägt
-
-
- Kinn zurück
-
-
- Kinn nach vorne
-
-
- Kinn-Hals
-
-
- Transparent
-
-
- Spalte
-
-
- Eng stehende Augen
-
-
- Geschlossen
-
-
- Hinten geschlossen
-
-
- Vorne geschlossen
-
-
- Links geschlossen
-
-
- Rechts geschlossen
-
-
- Klein
-
-
- Kragen hinten
-
-
- Kragen vorne
-
-
- Nach unten
-
-
- Nach oben
-
-
- Schlupflid
-
-
- Krumme Nase
-
-
- Hosenaufschlag
-
-
- Dunkel
-
-
- Dunkelgrün
-
-
- Dunkler
-
-
- Tief
-
-
- Standardabsätze
-
-
- Dicht
-
-
- Doppelkinn
-
-
- Nach unten
-
-
- Groß
-
-
- Ohrenwinkel
-
-
- Ohrengröße
-
-
- Ohrenspitzen
-
-
- Eierkopf
-
-
- Augenränder
-
-
- Augenfarbe
-
-
- Augentiefe
-
-
- Helligkeit
-
-
- Öffnung
-
-
- Symmetrie
-
-
- Augengröße
-
-
- Augenstand
-
-
- Brauenbogen
-
-
- Brauendichte
-
-
- Brauenhöhe
-
-
- Brauenenden
-
-
- Brauengröße
-
-
- Wimpernlänge
-
-
- Eyeliner
-
-
- Farbe des Eyeliners
-
-
- Glubschaugen
-
-
- Gesichtsverzerrung
-
-
- Gesichtskonturen
-
-
- Weit auseinander
-
-
- Volle Lippen
-
-
- weiblich
-
-
- Ohne Finger
-
-
- Finger
-
-
- Ausgestellt
-
-
- Flach
-
-
- Flacher Hintern
-
-
- Flacher Kopf
-
-
- Flache Spitze
-
-
- Fußgröße
-
-
- Stirnwinkel
-
-
- Stirn ausgeprägt
-
-
- Sommersprossen
-
-
- Fransen, vorne
-
-
- Hinten volles Haar
-
-
- Starker Eyeliner
-
-
- Vorne volles Haar
-
-
- Seitlich volles Haar
-
-
- Volle Seiten
-
-
- Glänzend
-
-
- Handschuhfinger
-
-
- Handschuhlänge
-
-
- Haare
-
-
- Haare: Hinten
-
-
- Haare: Vorne
-
-
- Haare: Seiten
-
-
- Haartolle
-
-
- Haardicke
-
-
- Haardicke
-
-
- Haarneigung
-
-
- Nach links
-
-
- Nach rechts
-
-
- Haare: Volumen
-
-
- Handgröße
-
-
- Zwirbelbart
-
-
- Kopflänge
-
-
- Kopfform
-
-
- Kopfgröße
-
-
- Kopfstreckung
-
-
- Absatzhöhe
-
-
- Absatzform
-
-
- Größe
-
-
- Hoch
-
-
- Hohe Absätze
-
-
- Hoch
-
-
- Hohe Plattformsohlen
-
-
- Hoch und eng
-
-
- Höhere
-
-
- Länge der Hüfte
-
-
- Breite der Hüfte
-
-
- In
-
-
- Farbe Innenseite
-
-
- Deckkraft: innen
-
-
- Ecke: Nasenseite
-
-
- Innenlid
-
-
- Innenlid
-
-
- Jackenlänge
-
-
- Jackenfalten
-
-
- Kinnansatz
-
-
- Kinnposition
-
-
- Kinnform
-
-
- Zusammen
-
-
- Hängebacken
-
-
- Kniewinkel
-
-
- X-beinig
-
-
- Groß
-
-
- Große Hände
-
-
- Linksscheitel
-
-
- Beinlänge
-
-
- Beinmuskeln
-
-
- Weniger
-
-
- Weniger Speck
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Weniger
-
-
- Heller
-
-
- Amorbogen
-
-
- Tiefe: Amorbogen
-
-
- Fülle
-
-
- Pinkton
-
-
- Lippenproportionen
-
-
- Lippendicke
-
-
- Mundbreite
-
-
- Lipgloss
-
-
- Lippenstift
-
-
- Farbe
-
-
- Lang
-
-
- Langer Kopf
-
-
- Lange Hüften
-
-
- Lange Beine
-
-
- Langer Hals
-
-
- Lange Zöpfe
-
-
- Langer Pferdeschwanz
-
-
- Langer Oberkörper
-
-
- Lange Arme
-
-
- Weite Hosen
-
-
- Weites Hemd
-
-
- Weite Ärmel
-
-
- Fettpölsterchen
-
-
- Niedrig
-
-
- Niedrig
-
-
- Niedrig
-
-
- Niedrig
-
-
- Weit
-
-
- Absenken
-
-
- Brücke, Unterer Teil
-
-
- Wangen, unterer Bereich
-
-
- Männlich
-
-
- Mittelscheitel
-
-
- Mehr
-
-
- Mehr
-
-
- Mehr Speck
-
-
- Mehr
-
-
- Mehr
-
-
- Mehr
-
-
- Voller
-
-
- Mehr
-
-
- Mehr
-
-
- Mehr
-
-
- Größer
-
-
- Mehr
-
-
- Mehr
-
-
- Mehr
-
-
- Runder
-
-
- Mehr
-
-
- Flach
-
-
- Eckiger
-
-
- Mehr
-
-
- Steil
-
-
- Mehr
-
-
- Mehr
-
-
- Schnauzer
-
-
- Mundwinkel
-
-
- Mundposition
-
-
- Irokese
-
-
- Muskulös
-
-
- Koteletten
-
-
- Nagellack
-
-
- Farbe
-
-
- Schmal
-
-
- Wenig
-
-
- Wenig
-
-
- Schmale Lippen
-
-
- Natürlich
-
-
- Halslänge
-
-
- Halsdicke
-
-
- Kein Rouge
-
-
- Kein Eyeliner
-
-
- Kein Lidschatten
-
-
- Kein Lipgloss
-
-
- Kein Lippenstift
-
-
- Kein Scheitel
-
-
- Kein Nagellack
-
-
- Nicht rot
-
-
- Keine Stachel
-
-
- Kein Weiß
-
-
- Keine Falten
-
-
- Normal unten
-
-
- Normal oben
-
-
- Links
-
-
- Rechts
-
-
- Größe
-
-
- Dicke
-
-
- Nasenspitze
-
-
- Nasenspitze
-
-
- Nasenbreite
-
-
- Teilung
-
-
- Größe
-
-
- Deckend
-
-
- Öffnen
-
-
- Hinten offen
-
-
- Vorne offen
-
-
- Links offen
-
-
- Rechts offen
-
-
- Orange
-
-
- Aus
-
-
- Farbe: Oben
-
-
- Deckkraft: Oben
-
-
- Äußerer Augenwinkel
-
-
- Lidschatten: Oben
-
-
- Lidschatten: Oben
-
-
- Überbiss
-
-
- Ausbeulung
-
-
- Lackierte Nägel
-
-
- Blass
-
-
- Schritt
-
-
- Passform
-
-
- Hosenlänge
-
-
- Hüfte
-
-
- Falten
-
-
- Scheitel
-
-
- Pony scheiteln
-
-
- Brustmuskel
-
-
- Pigmentierung
-
-
- Zöpfe
-
-
- Pink
-
-
- Mehr Pink
-
-
- Höhe
-
-
- Breite
-
-
- Spitz
-
-
- Pfennigabsätze
-
-
- Pferdeschwanz
-
-
- Weit ausgestellt
-
-
- Linkes Auge größer
-
-
- Rechtes Auge größer
-
-
- Geschwollen
-
-
- Geschwollene Lider
-
-
- Regenbogenfarben
-
-
- Rote Haare
-
-
- Normal
-
-
- Scheitel rechts
-
-
- Rosiger Teint
-
-
- Rund
-
-
- Röte
-
-
- Rötlich
-
-
- Zerzauste Haare
-
-
- Hüftspeck
-
-
- Dürres Bein
-
-
- Auseinander
-
-
- Flach
-
-
- Hinterkopf rasiert
-
-
- Gesicht verzerren
-
-
- Vorne rasiert
-
-
- Links
-
-
- Rechts
-
-
- Hinterkopf rasiert
-
-
- Vorne rasiert
-
-
- Nach links
-
-
- Mund verschieben
-
-
- Nach rechts
-
-
- Hemdlänge
-
-
- Passform
-
-
- Falten
-
-
- Schuhart
-
-
- Klein
-
-
- Kurze Arme
-
-
- Kurze Beine
-
-
- Kurzer Hals
-
-
- Kurze Zöpfe
-
-
- Kurzer Pferdeschwanz
-
-
- Kurze Koteletten
-
-
- Kurzer Oberkörper
-
-
- Kurze Hüften
-
-
- Schultern
-
-
- Seitliche Fransen
-
-
- Koteletten
-
-
- Seitliches Haar
-
-
- Lang
-
-
- Kurz
-
-
- Dünner Hals
-
-
- Passform
-
-
- Rocklänge
-
-
- Fliehende Stirn
-
-
- Ärmellänge
-
-
- Passform Ärmel
-
-
- Schlitz: Hinten
-
-
- Schlitz: Vorne
-
-
- Schlitz: Links
-
-
- Schlitz: Rechts
-
-
- Klein
-
-
- Kleine Hände
-
-
- Klein
-
-
- Glätten
-
-
- Glattes Haar
-
-
- Strumpflänge
-
-
- Unterlippenbart
-
-
- Wenig
-
-
- Stachelhaare
-
-
- Rechteck
-
-
- Eckig
-
-
- Gestaucht
-
-
- Gestreckt
-
-
- Eingefallen
-
-
- Trichterbrust
-
-
- Eingesunkene Augen
-
-
- Nach hinten
-
-
- Nach vorne
-
-
- Groß
-
-
- Ansatzbreite hinten
-
-
- Ansatzbreite vorne
-
-
- Dicke Absätze
-
-
- Dicker Hals
-
-
- Dick
-
-
- Dünn
-
-
- Dünne Augenbrauen
-
-
- Dünne Lippen
-
-
- Dünne Nase
-
-
- Straffes Kinn
-
-
- Eng
-
-
- Enge Hosen
-
-
- Enges Hemd
-
-
- Enger Rock
-
-
- Enge Ärmel
-
-
- Spitze
-
-
- Dicke
-
-
- Länge des Oberkörpers
-
-
- Muskeln
-
-
- Dürr
-
-
- Frei
-
-
- Straffes Lid
-
-
- Unterbiss
-
-
- Unnatürlich
-
-
- Brücke, oberer Teil
-
-
- Obere Wangen
-
-
- Obere Kinnspalte
-
-
- Obere Lidfalte
-
-
- Stupsnase
-
-
- Sehr rot
-
-
- Bund
-
-
- Gut genährt
-
-
- Weiße Haare
-
-
- Breit
-
-
- Breit
-
-
- Breit
-
-
- Breit
-
-
- Wild
-
-
- Falten
-
-
- Zu meinen Landmarken hinzufügen
-
-
- Meine Landmarken bearbeiten
-
-
- Weitere Informationen über die aktuelle Position
-
-
- Mein Reiseverlauf
-
-
- Dieses Land kaufen
-
-
- Voice hier nicht möglich
-
-
- Fliegen ist unzulässig
-
-
- Kein Stoßen
-
-
- Bauen/Fallen lassen von Objekten ist verboten
-
-
- Skripte sind unzulässig
-
-
- Gesundheit
-
-
- Adult-Region
-
-
- Moderate Region
-
-
- Generelle Region
-
-
- Avatare sichtbar; Chat außerhalb dieser Parzelle gestattet
-
-
- [APP_NAME] Aktualisierung
-
-
- [APP_NAME] wird aktualisiert...
-
-
- [APP_NAME] wird installiert...
-
-
- Ihr [APP_NAME]-Viewer wird aktualisiert. Dies kann einen Moment dauern. Wir bitten um Ihr Verständnis.
-
-
- Aktualisierung wird heruntergeladen...
-
-
- Aktualisierung wird heruntergeladen
-
-
- Herunterladen ist fehlgeschlagen
-
-
- Beim Aktualisieren von [APP_NAME] ist ein Fehler aufgetreten. Bitte laden Sie die aktuellste Version von www.secondlife.com herunter.
-
-
- Aktualisierung konnte nicht installiert werden
-
-
- Viewer konnte nicht gestartet werden
-
-
- [APP_NAME]: Zuviele Objekte auf einmal von [FROM_NAME]. Automaitsche Vorschau ist für [TIME] Sekunden nicht verfügbar.
-
-
- [APP_NAME]: Zuviele Objekte auf einmal. Automaitsche Vorschau ist für [TIME] Sekunden nicht verfügbar.
-
-
- -- Instant-Message-Protokoll aktiviert --
-
-
- [NAME] tippt...
-
-
- (Nicht benannt)
-
-
- (Moderiert: Stimmen in der Standardeinstellung stummgeschaltet)
-
-
- Für diese Verbindung ist kein Text-Chat verfügbar.
-
-
- Ihr Text-Chat wurde von einem Gruppenmoderator deaktiviert.
-
-
- Für Instant Message hier klicken.
-
-
- An
-
-
- (Moderator)
-
-
- (Gespeichert am [LONG_TIMESTAMP])
-
-
- Wenn Sie diese Meldung sehen, müssen Sie unter „Einstellungen“ > „Privatsphäre“ die Option „Nur IMs und Anrufe von Freunden oder Gruppen durchstellen“ deaktivieren.
-
-
- Ihr Anruf wurde entgegengenommen
-
-
- Sie haben einen Voice-Anruf begonnen
-
-
- Sie sind dem Gespräch beigetreten
-
-
- [NAME] hat einen Voice-Anruf begonnen
-
-
- Verbindung wird hergestellt...
-
-
- Verbunden. Klicken Sie auf Anruf beenden, um die Verbindung zu trennen
-
-
- Anruf wurde beendet
-
-
- Wird verbunden...
-
-
- Ad-hoc-Konferenz
-
-
- Konferenz mit [AGENT_NAME]
-
-
- Inventarobjekt angeboten
-
-
- Objekte aus dem Inventar hier her ziehen
-
-
- (IM-Session nicht vorhanden)
-
-
- Sie sind der einzige Benutzer in dieser Sitzung.
-
-
- [NAME] ist offline.
-
-
- Klicken Sie auf [BUTTON NAME], um eine Verbindung zu diesem Voice-Chat herzustellen.
-
-
- Sie haben diesen Einwohner ignoriert. Wenn Sie eine Nachricht senden, wird dieser freigeschaltet.
-
-
- Fehler bei Anfrage, bitte versuchen Sie es später.
-
-
- Fehler bei Anfrage, bitte versuchen Sie es später.
-
-
- Sie sind dazu nicht berechtigt.
-
-
- Die Sitzung ist abgelaufen
-
-
- Sie besitzen diese Fähigkeit nicht.
-
-
- Sie besitzen diese Fähigkeit nicht.
-
-
- Sie sind kein Sitzungsmoderator.
-
-
- Ein Gruppenmoderator hat Ihren Text-Chat deaktiviert.
-
-
- Ein Gruppenmoderator hat Ihren Text-Chat deaktiviert.
-
-
- Es konnten keine Benutzer zur Chat-Sitzung mit [RECIPIENT] hinzugefügt werden.
-
-
- Ihre Nachricht konnte nicht an die Chat-Sitzung mit [RECIPIENT] gesendet werden.
-
-
- Ihre Nachricht konnte nicht an die Chat-Sitzung mit [RECIPIENT] gesendet werden.
-
-
- Fehler während Moderation.
-
-
- Sie wurden von der Gruppe ausgeschlossen.
-
-
- Sie wurden von der Gruppe ausgeschlossen.
-
-
- Sie haben nicht mehr die Berechtigung an der Chat-Sitzung teilzunehmen.
-
-
- [SOURCES] hat etwas Neues gesagt
-
-
- [SOURCES] haben etwas Neues gesagt
-
-
- Die Initialisierung der Sitzung ist fehlgeschlagen
-
-
- Position für Zuhause festgelegt.
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] hat Ihnen [REASON] [AMOUNT] L$ bezahlt.
-
-
- [NAME] hat Ihnen [AMOUNT] L$ bezahlt.
-
-
- Sie haben [REASON] [AMOUNT] L$ an [NAME] bezahlt.
-
-
- Sie haben [AMOUNT] L$ bezahlt.
-
-
- Sie haben [AMOUNT] L$ an [NAME] bezahlt.
-
-
- Sie haben [REASON] [AMOUNT] L$ bezahlt.
-
-
- Sie haben [NAME] [AMOUNT] L$ [REASON] nicht bezahlt.
-
-
- Sie haben [AMOUNT] L$ nicht bezahlt.
-
-
- Sie haben [NAME] [AMOUNT] L$ nicht bezahlt.
-
-
- Sie haben [AMOUNT] L$ [REASON] nicht bezahlt.
-
-
- für [ITEM]
-
-
- für eine Landparzelle
-
-
- für einen Pass
-
-
- für die Landübertragung
-
-
- für die Gründung einer Gruppe
-
-
- für den Beitritt zur Gruppe
-
-
- fürs Hochladen
-
-
- um eine Anzeige aufzugeben
-
-
- [AMOUNT] L$ werden bezahlt
-
-
- Kosten für Hochladen [AMOUNT] L$
-
-
- Kosten: [AMOUNT] L$
-
-
- Ausgewähltes Land wird für [AMOUNT] L$ gekauft.
-
-
- Dieses Objekt kostet [AMOUNT] L$
-
-
- Jeder
-
-
- Offiziere
-
-
- Eigentümer
-
-
- Online
-
-
- Hochladen...
-
-Missbrauchsbericht
-
-
- Neue Form/Gestalt
-
-
- Neue Haut
-
-
- Neues Haar
-
-
- Neue Augen
-
-
- Neues Hemd
-
-
- Neue Hose
-
-
- Neue Schuhe
-
-
- Neue Socken
-
-
- Neue Jacke
-
-
- Neue Handschuhe
-
-
- Neues Unterhemd
-
-
- Neue Unterhose
-
-
- Neuer Rock
-
-
- Neues Alpha
-
-
- Neue Tätowierung
-
-
- Neue Physik
-
-
- Ungültiges Objekt
-
-
- Neue Geste
-
-
- Neues Skript
-
-
- Neue Notiz
-
-
- Neuer Ordner
-
-
- Inhalt
-
-
- Gesten
-
-
- Männliche Gesten
-
-
- Weibliche Gesten
-
-
- Andere Gesten
-
-
- Sprachgesten
-
-
- Häufig verwendete Gesten
-
-
- Männlich - Excuse me
-
-
- Männlich - Get lost
-
-
- Männlich - Kusshand
-
-
- Männlich - Buh
-
-
- Männlich - Gelangweilt
-
-
- Männlich - Hey
-
-
- Männlich - Lachen
-
-
- Männlich - Angewidert
-
-
- Männlich - Achselzucken
-
-
- Männlich - Zunge herausstrecken
-
-
- Männlich - Wow
-
-
- Weiblich - Kichern
-
-
- Weiblich - Weinen
-
-
- Weiblich - Verlegen
-
-
- Weiblich - Räuspern
-
-
- Weiblich - Get lost
-
-
- Weiblich - Kusshand
-
-
- Weiblich - Buh
-
-
- Weiblich - Gelangweilt
-
-
- Weiblich - Hey
-
-
- Weiblich - Hey Süße(r)
-
-
- Weiblich - Lachen
-
-
- Weiblich - Looking good
-
-
- Weiblich - Over here
-
-
- Weiblich - Please
-
-
- Weiblich - Angewidert
-
-
- Weiblich - Achselzucken
-
-
- Weiblich - Zunge herausstrecken
-
-
- Weiblich - Wow
-
-
- /verbeugen
-
-
- /klatschen
-
-
- /zählen
-
-
- /löschen
-
-
- /lmaa
-
-
- /Muskel
-
-
- /nein
-
-
- /nein!
-
-
- /Papier
-
-
- /auf mich zeigen
-
-
- /auf dich zeigen
-
-
- /Stein
-
-
- /Schere
-
-
- /rauchen
-
-
- /dehnen
-
-
- /pfeifen
-
-
- /ja
-
-
- /ja!
-
-
- afk
-
-
- Tanzen1
-
-
- Tanzen2
-
-
- Tanzen3
-
-
- Tanzen4
-
-
- Tanzen5
-
-
- Tanzen6
-
-
- Tanzen7
-
-
- Tanzen8
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
-
-
- Keine/Keiner
-
-
- Bilder, die größer sind als [WIDTH]*[HEIGHT] können nicht geladen werden
-
-
-
- Trotz all unserer Bemühungen ist ein unerwarteter Fehler aufgetreten.
-
- Bitte überprüfen Sie status.secondlifegrid.net, um herauszufinden, ob ein Problem besteht.
- Falls Sie weiterhin Problem haben, überprüfen Sie bitte Ihre Netzwerk- und Firewalleinstellungen.
-
-
- Sonntag:Montag:Dienstag:Mittwoch:Donnerstag:Freitag:Samstag
-
-
- So:Mo:Di:Mi:Do:Fr:Sa
-
-
- Januar:Februar:März:April:Mai:Juni:Juli:August:September:Oktober:November:Dezember
-
-
- Jan:Feb:Mär:Apr:Mai:Jun:Jul:Aug:Sep:Okt:Nov:Dez
-
-
- [MDAY]
-
-
- Uhr
-
-
- Uhr
-
-
- [AMOUNT] US$
-
-
- Mitgliedschaft
-
-
- Rollen
-
-
- Gruppenidentität
-
-
- Parzellenverwaltung
-
-
- Parzellenidentität
-
-
- Parzelleneinstellungen
-
-
- Parzellenfähigkeiten
-
-
- Parzellenzugang
-
-
- Parzelleninhalt
-
-
- Objektmanagement
-
-
- Kontoführung
-
-
- Mitteilungen
-
-
- Chat
-
-
- Ausgewählte Objekte löschen?
-
-
- Ausgewähltes Objekt löschen?
-
-
- Keine Objekte in diesem Outfit
-
-
- Wählen Sie über die Einstellung „ExternalEditor“ einen Editor aus
-
-
- Angegebener externer Editor nicht gefunden.
-Setzen Sie den Editorpfad in Anführungszeichen
-(z. B. "/pfad/editor" "%s").
-
-
- Fehler beim Parsen des externen Editorbefehls.
-
-
- Externer Editor konnte nicht ausgeführt werden.
-
-
- Übersetzung fehlgeschlagen: [REASON]
-
-
- Fehler beim Parsen der Übersetzungsantwort.
-
-
- Esc
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Zuhause
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Addieren
-
-
- Subtrahieren
-
-
- Multiplizieren
-
-
- Dividieren
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Partikel-Beacons werden angezeigt (blau)
-
-
- Beacons für physische Objekte werden angezeigt (grün)
-
-
- Beacons für Skriptobjekte werden angezeigt (rot)
-
-
- Beacons für Skriptobjekte mit Berührungsfunktion werden angezeigt (rot)
-
-
- Sound-Beacons werden angezeigt (gelb)
-
-
- Medien-Beacons werden angezeigt (weiß)
-
-
- Partikel werden ausgeblendet
-
-
- Landinformationen
-
-
- Aussehen
-
-
- Avatar
-
-
- Bauen
-
-
- Chat
-
-
- Kompass
-
-
- Ziele
-
-
- Gesten
-
-
- Infos
-
-
- Inventar
-
-
- Karte
-
-
- Marktplatz
-
-
- Minikarte
-
-
- Gehen / Rennen / Fliegen
-
-
- Händler-Outbox
-
-
- Leute
-
-
- Auswahlen
-
-
- Orte
-
-
- Einstellungen
-
-
- Profil
-
-
- Suchen
-
-
- Foto
-
-
- Sprechen
-
-
- Kamerasteuerungen
-
-
- Voice-Einstellungen
-
-
- Informationen zu dem von Ihnen besuchten Land
-
-
- Avatar ändern
-
-
- Kompletten Avatar auswählen
-
-
- Objekte bauen und Terrain umformen
-
-
- Mit Leuten in der Nähe chatten
-
-
- Kompass
-
-
- Ziele von Interesse
-
-
- Gesten für Ihren Avatar
-
-
- Wie führe ich gängige Aufgaben aus?
-
-
- Ihr Eigentum anzeigen und benutzen
-
-
- Weltkarte
-
-
- Einkaufen gehen
-
-
- Leute in der Nähe anzeigen
-
-
- Ihren Avatar bewegen
-
-
- Artikel zum Verkauf in den Marktplatz übertragen
-
-
- Freunde, Gruppen und Leute in der Nähe
-
-
- Orte, die in Ihrem Profil als Favoriten angezeigt werden sollen
-
-
- Von Ihnen gespeicherte Orte
-
-
- Einstellungen
-
-
- Ihr Profil bearbeiten oder anzeigen
-
-
- Orte, Veranstaltungen, Leute finden
-
-
- Foto aufnehmen
-
-
- Über Ihr Mikrofon mit Leuten in der Nähe sprechen
-
-
- Kamerawinkel ändern
-
-
- Lautstärkeregler für Anrufe und Leute in Ihrer Nähe in SL
-
-
- gegenwärtig in der unteren Symbolleiste
-
-
- gegenwärtig in der linken Symbolleiste
-
-
- gegenwärtig in der rechten Symbolleiste
-
-
- % zurückbehalten
-
-
- Details
-
-
- Bessere Details
-
-
- Oberfläche
-
-
- Fest
-
-
- Wickeln
-
-
- Vorschau
-
-
- Normal
-
-
- Sehr niedrig
-
-
- Niedrig
-
-
- Mittel
-
-
- Hoch
-
-
- Sehr hoch
-
-
diff --git a/indra/newview/skins/steam/xui/en/strings.xml b/indra/newview/skins/steam/xui/en/strings.xml
deleted file mode 100644
index c29b80e21c..0000000000
--- a/indra/newview/skins/steam/xui/en/strings.xml
+++ /dev/null
@@ -1,3761 +0,0 @@
-
-
-
-
-
- Second Life
- Second Life
- SECOND LIFE
- Second Life Grid
- Second Life Support Portal
-
-
- Detecting hardware...
- Loading [APP_NAME]...
- Clearing cache...
- Initializing texture cache...
- Initializing VFS...
- Graphics initialization failed. Please update your graphics driver!
-
-
- Restoring...
- Changing resolution...
-
-
- Fullbright (legacy)
-
-
- Logging in. [APP_NAME] may appear frozen. Please wait.
- Logging in...
- Authenticating
- Performing account maintenance...
- Previous login attempt failed. Logging in, attempt [NUMBER]
- Loading world...
- Initializing embedded web browser...
- Initializing multimedia...
- Loading fonts...
- Verifying cache files (can take 60-90 seconds)...
- Processing response...
- Initializing world...
- Decoding images...
- Initializing QuickTime...
- QuickTime not found - unable to initialize.
- QuickTime initialized successfully.
- Requesting region capabilities...
- Requesting region capabilities, attempt [NUMBER]...
- Waiting for region handshake...
- Connecting to region...
- Downloading clothing...
- The server returned an invalid or corrupt certificate. Please contact the Grid administrator.
- An invalid hostname was used to access the server, please check your SLURL or Grid hostname.
- The certificate returned by the Grid appears to be expired. Please check your system clock, or contact your Grid administrator.
- The certificate returned by the server could not be used for SSL. Please contact your Grid administrator.
- Too many certificates were in the servers Certificate chain. Please contact your Grid administrator.
- The certificate signature returned by the Grid server could not be verified. Please contact your Grid administrator.
-
- Network error: Could not establish connection, please check your network connection.
- Login failed.
- Quit
- http://join.secondlife.com/?sourceid=1206_steam
-
-
-The viewer you are using can no longer access Second Life. Please visit the following page to download a new viewer:
-http://secondlife.com/download
-
-For more information, see our FAQ below:
-http://secondlife.com/viewer-access-faq
- Optional viewer update available: [VERSION]
- Required viewer update: [VERSION]
- This agent is already logged in.
-
- Sorry! We couldn't log you in.
-Please check to make sure you entered the right
- * Username (like bobsmith12 or steller.sunshine)
- * Password
-Also, please make sure your Caps Lock key is off.
- As a security precaution your password has been changed.
-Please go to your account page at http://secondlife.com/password
-and answer the security question to reset your password.
-We are very sorry for the inconvenience.
- We made some changes to our system and you will need to reset your password.
-Please go to your account page at http://secondlife.com/password
-and answer the security question to reset your password.
-We are very sorry for the inconvenience.
- Second Life is temporarily closed for maintenance.
-Logins are currently restricted to employees only.
-Check www.secondlife.com/status for updates.
- Second Life logins are temporarily restricted in order to make sure that those in-world have the best possible experience.
-
-People with free accounts will not be able to access Second Life during this time, to make room for those who have paid for Second Life.
- Second Life cannot be accessed from this computer.
-If you feel this is an error, please contact
-support@secondlife.com.
- Your account is not accessible until
-[TIME] Pacific Time.
- We are unable to complete your request at this time.
-Please contact Second Life support for assistance at http://secondlife.com/support.
-If you are unable to change your password, please call (866) 476-9763.
- Data inconsistency found during login.
-Please contact support@secondlife.com.
- Your account is undergoing minor maintenance.
-Your account is not accessible until
-[TIME] Pacific Time.
-If you feel this is an error, please contact support@secondlife.com.
- Request for logout responded with a fault from simulator.
- The system is logging you out right now.
-Your Account will not be available until
-[TIME] Pacific Time.
- Unable to create valid session.
- Unable to connect to a simulator.
- Your account can only access Second Life
-between [START] and [END] Pacific Time.
-Please come back during those hours.
-If you feel this is an error, please contact support@secondlife.com.
- Incorrect parameters.
-If you feel this is an error, please contact support@secondlife.com.
- First name parameter must be alphanumeric.
-If you feel this is an error, please contact support@secondlife.com.
- Last name parameter must be alphanumeric.
-If you feel this is an error, please contact support@secondlife.com.
- Region is going offline.
-Please try logging in again in a minute.
- Agent not in region.
-Please try logging in again in a minute.
- The region was logging in another session.
-Please try logging in again in a minute.
- The region was logging out the previous session.
-Please try logging in again in a minute.
- The region is still logging out the previous session.
-Please try logging in again in a minute.
- Region has logged out last session.
-Please try logging in again in a minute.
- Region has begun the logout process.
-Please try logging in again in a minute.
- The system has begun logging out your last session.
-Please try logging in again in a minute.
-
-
-
- This region may be experiencing trouble. Please check your connection to the Internet.
- Saving your settings...
- Logging out...
- Shutting down...
- You have been disconnected from the region you were in.
- You were sent to an invalid region.
- Testing viewer disconnect
-
-
- Person
- (no name)
- Owner:
- Public
- (Group)
- For Sale: L$[AMOUNT]
- Group Build
- No Build
- Group Build
- Not Safe
- No Fly
- Group Scripts
- No Scripts
- Land:
- Only a single item can be dragged here
-
-
- You can not rez items in your merchant outbox
- One or more of these objects cannot be sold or transferred.
- Your merchant outbox can only accept items directly from your inventory
- You can not put items you are wearing into your merchant outbox
- You can not put calling cards into your merchant outbox
- Depth of nested folders exceeds 3
- Subfolder count in top-level folder exceeds 20
- Item count in top-level folder exceeds 200
-
- You can't move a folder into its child
- You can't move a folder into itself
-
-
- Click to view this web page
- Click to view this location's information
- Click to view this Resident's profile
- Learn more about this Resident
- Click to mute this Resident
- Click to unmute this Resident
- Click to IM this Resident
- Click to Pay this Resident
- Click to offer a teleport request to this Resident
- Click to send a friend request to this Resident
- Click to view this group's description
- Click to view this event's description
- Click to view this classified
- Click to view this parcel's description
- Click to teleport to this location
- Click to view this object's description
- Click to view this location on a map
- Click to run the secondlife:// command
-
-
-
- Teleport to
- Show Map for
-
-
- Mute
- Unmute
- IM
- Pay
- Offer Teleport to
- Friend Request
-
-
- Close (⌘W)
- Close (Ctrl+W)
- Close
- Restore
- Minimize
- Tear Off
- Dock
- Show Help
-
-
- Searching...
- None found.
-
-
- Retrieving...
-
- Release Notes
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- Loading...
-
-
-
-
- (nobody)
-
-
- (waiting)
-
-
- (multiple)
-
-
- (none)
-
- Avaline Caller [ORDER]
-
-
- No error
- Asset request: failed
- Asset request: non-existent file
- Asset request: asset not found in database
- End of file
- Cannot open file
- File not found
- File transfer timeout
- Circuit gone
- Viewer and server do not agree on price
- Unknown status
-
-
-
- texture
- sound
- calling card
- landmark
- legacy script
- clothing
- object
- notecard
- folder
- root
- LSL2 script
- LSL bytecode
- tga texture
- body part
- snapshot
- Lost and Found
- targa image
- Trash
- jpeg image
- animation
- gesture
- simstate
- favorite
- link
- folder link
- mesh
-
-
- (Editing Appearance)
- Away
- Busy
- Blocked
-
-
- Afraid
- Angry
- Away
- Backflip
- Belly Laugh
- BigSmile
- Blow Kiss
- Bored
- Bow
- Clap
- Court Bow
- Cry
- Dance 1
- Dance 2
- Dance 3
- Dance 4
- Dance 5
- Dance 6
- Dance 7
- Dance 8
- Disdain
- Drink
- Embarrassed
- Finger Wag
- Fist Pump
- Floating Yoga
- Frown
- Impatient
- Jump For Joy
- Kiss My Butt
- Kiss
- Laugh
- Muscle Beach
- No (Unhappy)
- No
- Nya-nya-nya
- One-Two Punch
- Open Mouth
- Peace
- Point at Other
- Point at Self
- Punch Left
- Punch Right
- RPS count
- RPS paper
- RPS rock
- RPS scissors
- Repulsed
- Roundhouse Kick
- Sad
- Salute
- Shout
- Shrug
- Smile
- Smoke Idle
- Smoke Inhale
- Smoke Throw Down
- Surprise
- Sword Strike
- Tantrum
- TongueOut
- Wave
- Whisper
- Whistle
- Wink
- Wink (Hollywood)
- Worry
- Yes (Happy)
- Yes
-
-
- Multiple
-
-
- Loading...
- Offline
- [AREA] m² L$[PRICE]
- None found.
-
-
- OK
- Premature end of file
- Can't find ROOT or JOINT.
-
-
- whispers:
- shouts:
- Connecting to in-world Voice Chat...
- Connected
- Voice not available at your current location
- Disconnected from in-world Voice Chat
- You will now be reconnected to Nearby Voice Chat
- '[OBJECTNAME]', an object owned by '[OWNERNAME]', located in [REGIONNAME] at [REGIONPOS], has been granted permission to: [PERMISSIONS].
- '[OBJECTNAME]', an object owned by '[OWNERNAME]', located in [REGIONNAME] at [REGIONPOS], has been denied permission to: [PERMISSIONS].
- If you allow access to your account, you will also be allowing the object to:
- Take Linden dollars (L$) from you
- Act on your control inputs
- Remap your control inputs
- Animate your avatar
- Attach to your avatar
- Release ownership and become public
- Link and delink from other objects
- Add and remove joints with other objects
- Change its permissions
- Track your camera
- Control your camera
- Teleport you
- Not Connected
-
-
- General
- Moderate
- Adult
- Offline
- Unknown
-
-
- (unknown)
-
-
- Estate / Full Region
- Estate / Homestead
- Mainland / Homestead
- Mainland / Full Region
-
-
- All Files
- Sounds
- Animations
- Images
- Save
- Load
- Targa Images
- Bitmap Images
- AVI Movie File
- XAF Anim File
- XML File
- RAW File
- Compressed Images
- Load Files
- Choose Directory
- Scripts
-
-
-
-
-Sleeps script for [SLEEP_TIME] seconds.
-
-
-
-float llSin(float theta)
-Returns the sine of theta (theta in radians)
-
-
-float llCos(float theta)
-Returns the cosine of theta (theta in radians)
-
-
-float llTan(float theta)
-Returns the tangent of theta (theta in radians)
-
-
-float llAtan2(float y, float x)
-Returns the arctangent2 of y, x
-
-
-float llSqrt(float val)
-Returns the square root of val, or returns 0 and triggers a Math Error for imaginary results
-
-
-float llPow(float base, float exponent)
-Returns the base raised to the power exponent, or returns 0 and triggers Math Error for imaginary results
-
-
-integer llAbs(integer val)
-Returns the positive version of val
-
-
-float llFabs(float val)
-Returns the positive version of val
-
-
-float llFrand(float mag)
-Returns a pseudo random number in the range [0,mag) or (mag,0]
-
-
-integer llFloor(float val)
-Returns largest integer value <= val
-
-
-integer llCeil(float val)
-Returns smallest integer value >= val
-
-
-integer llRound(float val)
-Returns val rounded to the nearest integer
-
-
-float llVecMag(vector v)
-Returns the magnitude of v
-
-
-vector llVecNorm(vector v)
-Returns the v normalized
-
-
-float llVecDist(vector v1, vector v2)
-Returns the 3D distance between v1 and v2
-
-
-vector llRot2Euler(rotation q)
-Returns the Euler representation (roll, pitch, yaw) of q
-
-
-rotation llEuler2Rot(vector v)
-Returns the rotation representation of Euler Angles v
-
-
-rotation llAxes2Rot(vector fwd, vector left, vector up)
-Returns the rotation defined by the coordinate axes
-
-
-vector llRot2Fwd(rotation q)
-Returns the forward vector defined by q
-
-
-vector llRot2Left(rotation q)
-Returns the left vector defined by q
-
-
-vector llRot2Up(rotation q)
-Returns the up vector defined by q
-
-
-rotation llRotBetween(vector v1, vector v2)
-Returns the rotation to rotate v1 to v2
-
-
-llWhisper(integer channel, string msg)
-Whispers the text of msg on channel
-
-
-llSay(integer channel, string msg)
-Says the text of msg on channel
-
-
-llShout(integer channel, string msg)
-Shouts the text of msg on channel
-
-
-integer llListen(integer channel, string name, key id, string msg)
-Sets a callback for msg on channel from name and id (name, id, and/or msg can be empty) and returns an identifier that can be used to deactivate or remove the listen
-
-
-llListenControl(integer number, integer active)
-Makes a listen event callback active or inactive
-
-
-llListenRemove(integer number)
-Removes listen event callback number
-
-
-llSensor(string name, key id, integer type, float range, float arc)
-Performs a single scan for name and id with type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within range meters and arc radians of forward vector (name, id, and/or keytype can be empty or 0)
-
-
-llSensorRepeat(string name, key id, integer type, float range, float arc, float rate)
-Sets a callback for name and id with type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within range meters and arc radians of forward vector (name, id, and/or keytype can be empty or 0) and repeats every rate seconds
-
-
-llSensorRemove()
-Removes the sensor setup by llSensorRepeat
-
-
-string llDetectedName(integer number)
-Returns the name of detected object number (returns empty string if number is not a valid sensed object)
-
-
-key llDetectedKey(integer number)
-Returns the key of detected object number (returns empty key if number is not a valid sensed object)
-
-
-key llDetectedOwner(integer number)
-Returns the key of detected object's owner (returns empty key if number is not a valid sensed object)
-
-
-integer llDetectedType(integer number)
-Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object (returns 0 if number is not a valid sensed object)
-
-
-vector llDetectedPos(integer number)
-Returns the position of detected object number (returns <0,0,0> if number is not a valid sensed object)
-
-
-vector llDetectedVel(integer number)
-Returns the velocity of detected object number (returns <0,0,0> if number is not a valid sensed object)
-
-
-vector llDetectedGrab(integer number)
-Returns the grab offset of the user touching object (returns <0,0,0> if number is not a valid sensed object)
-
-
-rotation llDetectedRot(integer number)
-Returns the rotation of detected object number (returns <0,0,0,1> if number is not a valid sensed object)
-
-
-integer llDetectedGroup(integer number)
-Returns TRUE if detected object is part of same group as owner
-
-
-integer llDetectedLinkNumber(integer number)
-Returns the link position of the triggered event for touches and collisions only
-
-
-llDie()
-Deletes the object
-
-
-float llGround(vector offset)
-Returns the ground height below the object position + offset
-
-
-float llCloud(vector offset)
-Returns the cloud density at the object position + offset
-
-
-vector llWind(vector offset)
-Returns the wind velocity at the object position + offset
-
-
-llSetStatus(integer status, integer value)
-Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value
-
-
-integer llGetStatus(integer status)
-Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z)
-
-
-llSetScale(vector scale)
-Sets the scale of the prim
-
-
-vector llGetScale()
-Returns the scale of the prim
-
-
-llSetColor(vector color, integer face)
-Sets the color on face of the prim
-
-
-float llGetAlpha(integer face)
-Returns the alpha of face
-
-
-llSetAlpha(float alpha, integer face)
-Sets the alpha on face
-
-
-vector llGetColor(integer face)
-Returns the color on face
-
-
-llSetTexture(string texture, integer face)
-Sets the texture of face or ALL_SIDES
-
-
-llScaleTexture(float u, float v, integer face)
-Sets the texture u & v scales for the chosen face or ALL_SIDES
-
-
-llOffsetTexture(float u, float v, integer face)
-Sets the texture u & v offsets for the chosen face or ALL_SIDES
-
-
-llRotateTexture(float rotation, integer face)
-Sets the texture rotation for the chosen face
-
-
-string llGetTexture(integer face)
-Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key)
-
-
-llSetPos(vector pos)
-Moves the object or prim towards pos without using physics (if the script isn't physical)
-
-
-vector llGetPos()
-Returns the position of the task in region coordinates
-
-
-vector llGetLocalPos()
-Returns the position relative to the root
-
-
-llSetRot(rotation rot)
-Sets the rotation
-
-
-rotation llGetRot()
-Returns the rotation relative to the region's axes
-
-
-rotation llGetLocalRot()
-Returns the rotation local to the root
-
-
-llSetForce(vector force, integer local)
-Applies force to the object (if the script is physical), in local coords if local == TRUE
-
-
-vector llGetForce()
-Returns the force (if the script is physical)
-
-
-integer llTarget(vector position, float range)
-Sets positions within range of position as a target and return an ID for the target
-
-
-llTargetRemove(integer number)
-Removes positional target number registered with llTarget
-
-
-integer llRotTarget(rotation rot, float error)
-Set rotations with error of rot as a rotational target and return an ID for the rotational target
-
-
-llRotTargetRemove(integer number)
-Removes rotational target number registered with llRotTarget
-
-
-llMoveToTarget(vector target, float tau)
-Critically damps to target in tau seconds (if the script is physical)
-
-
-llStopMoveToTarget()
-Stops critically damped motion
-
-
-llApplyImpulse(vector force, integer local)
-Applies impulse to object (if the script is physical), in local coords if local == TRUE
-
-
-llApplyRotationalImpulse(vector force, integer local)
-Applies rotational impulse to object (if the script is physical), in local coords if local == TRUE
-
-
-llSetTorque(vector torque, integer local)
-Sets the torque of object (if the script is physical), in local coords if local == TRUE
-
-
-vector llGetTorque()
-Returns the torque (if the script is physical)
-
-
-llSetForceAndTorque(vector force, vector torque, integer local)
-Sets the force and torque of object (if the script is physical), in local coords if local == TRUE
-
-
-vector llGetVel()
-Returns the velocity of the object
-
-
-vector llGetAccel()
-Returns the acceleration of the object relative to the region's axes
-
-
-vector llGetOmega()
-Returns the rotation velocity in radians per second
-
-
-float llGetTimeOfDay()
-Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller
-
-
-float llGetWallclock()
-Returns the time in seconds since midnight California Pacific time (PST/PDT)
-
-
-float llGetTime()
-Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime
-
-
-llResetTime()
-Sets the script timer to zero
-
-
-float llGetAndResetTime()
-Returns the script time in seconds and then resets the script timer to zero
-
-
-llSound(string sound, float volume, integer queue, integer loop)
-Plays sound at volume and whether it should loop or not
-
-
-llPlaySound(string sound, float volume)
-Plays attached sound once at volume (0.0 - 1.0)
-
-
-llLoopSound(string sound, float volume)
-Plays attached sound looping indefinitely at volume (0.0 - 1.0)
-
-
-llLoopSoundMaster(string sound, float volume)
-Plays attached sound looping at volume (0.0 - 1.0), declares it a sync master
-
-
-llLoopSoundSlave(string sound, float volume)
-Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master
-
-
-llPlaySoundSlave(string sound, float volume)
-Plays attached sound once at volume (0.0 - 1.0), synced to next loop of most audible sync master
-
-
-llTriggerSound(string sound, float volume)
-Plays sound at volume (0.0 - 1.0), centered at but not attached to object
-
-
-llStopSound()
-Stops currently attached sound
-
-
-llPreloadSound(string sound)
-Preloads a sound on viewers within range
-
-
-string llGetSubString(string src, integer start, integer end)
-Returns the indicated substring
-
-
-string llDeleteSubString(string src, integer start, integer end)
-Removes the indicated substring and returns the result
-
-
-string llInsertString(string dst, integer position, string src)
-Returns a destination string dst with the string src inserted starting at position pos
-
-
-string llToUpper(string src)
-Returns a string that is src with all upper-case characters
-
-
-string llToLower(string src)
-Returns a string that is src with all lower-case characters
-
-
-llGiveMoney(key destination, integer amount)
-Transfers amount of L$ from script owner to destination
-
-
-llMakeExplosion(integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset)
-Makes a round explosion of particles
-
-
-llMakeFountain(integer particles, float scale, float vel, float lifetime, float arc, integer bounce, string texture, vector offset, float bounce_offset)
-Makes a fountain of particles
-
-
-llMakeSmoke(integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset)
-Makes smoke like particles
-
-
-llMakeFire(integer particles, float scale, float vel, float lifetime, float arc, string texture, vector offset)
-Makes fire like particles
-
-
-llRezObject(string inventory, vector pos, vector vel, rotation rot, integer param)
-Instantiates owner's inventory object at pos with velocity vel and rotation rot with start parameter param
-
-
-llLookAt(vector target, float strength, float damping)
-Causes object to point its up axis (positive z) towards target, while keeping its forward axis (positive x) below the horizon
-
-
-llStopLookAt()
-Stops causing object to point at a target
-
-
-llSetTimerEvent(float sec)
-Causes the timer event to be triggered a maximum of once every sec seconds
-
-
-llSleep(float sec)
-Puts the script to sleep for sec seconds
-
-
-float llGetMass()
-Returns the mass of object that the script is attached to
-
-
-llCollisionFilter(string name, key id, integer accept)
-Sets the collision filter, exclusively or inclusively. If accept == TRUE, only accept collisions with objects name and id (either is optional), otherwise with objects not name or id
-
-
-llTakeControls(integer controls, integer accept, integer pass_on)
-Allows for intercepting keyboard and mouse clicks from the agent the script has permissions for
-
-
-llReleaseControls()
-Stops taking inputs that were taken with llTakeControls
-
-
-llAttachToAvatar(integer attach_point)
-Attaches the object to the avatar who has granted permission to the script
-
-
-llDetachFromAvatar()
-Detaches object from avatar
-
-
-llTakeCamera(key avatar)
-Moves avatar's viewpoint to task
-
-
-llReleaseCamera(key avatar)
-Returns camera to agent avatar
-
-
-key llGetOwner()
-Returns the object owner's UUID
-
-
-llInstantMessage(key user, string message)
-Sends the specified string as an Instant Message to the user
-
-
-llEmail(string address, string subject, string message)
-Sends an email to address with the subject and message
-
-
-llGetNextEmail(string address, string subject)
-Gets the next waiting email that comes from address, with specified subject
-
-
-key llGetKey()
-Returns the key of the prim the script is attached to
-
-
-llSetBuoyancy(float buoyancy)
-Sets the buoyancy of the task or object (0 is disabled, < 1.0 sinks, 1.0 floats, > 1.0 rises)
-
-
-llSetHoverHeight(float height, integer water, float tau)
-Critically damps to a height above the ground (or water) in tau seconds
-
-
-llStopHover()
-Stops hovering to a height
-
-
-llMinEventDelay(float delay)
-Sets the minimum time between events being handled
-
-
-llSoundPreload(string sound)
-Preloads a sound on viewers within range
-
-
-llRotLookAt(rotation target, float strength, float damping)
-Causes object to point its forward axis towards target
-
-
-integer llStringLength(string str)
-Returns the length of string
-
-
-llStartAnimation(string anim)
-Starts animation anim for agent that granted PERMISSION_TRIGGER_ANIMATION if the permission has not been revoked
-
-
-llStopAnimation(string anim)
-Stops animation anim for agent that granted permission
-
-
-llPointAt(vector pos)
-Makes agent that owns object point at pos
-
-
-llStopPointAt()
-Stops pointing agent that owns object
-
-
-llTargetOmega(vector axis, float spinrate, float gain)
-Rotates the object around axis at spinrate with strength gain
-
-
-integer llGetStartParameter()
-Returns an integer that is the script start/rez parameter
-
-
-llGodLikeRezObject(key inventory, vector pos)
-Rezzes directly off of UUID if owner is in God Mode
-
-
-llRequestPermissions(key agent, integer perm)
-Asks the agent for permission to run certain classes of functions
-
-
-key llGetPermissionsKey()
-Returns the key of the avatar that last granted permissions to the script
-
-
-integer llGetPermissions()
-Returns an integer bitfield with the permissions that have been granted
-
-
-integer llGetLinkNumber()
-Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc)
-
-
-llSetLinkColor(integer linknumber, vector color, integer face)
-Sets face to color if a task exists in the link chain at linknumber
-
-
-llCreateLink(key target, integer parent)
-Attempts to link the script's object with the target (requires that PERMISSION_CHANGE_LINKS be granted). If parent == TRUE, then the script's object becomes the root
-
-
-llBreakLink(integer linknum)
-Delinks the prim with the given link number in a linked object set (requires that PERMISSION_CHANGE_LINKS be granted)
-
-
-llBreakAllLinks()
-Delinks all prims in the link set (requires that PERMISSION_CHANGE_LINKS be granted)
-
-
-key llGetLinkKey(integer linknumber)
-Returns the key of the linked prim linknumber
-
-
-string llGetLinkName(integer linknumber)
-Returns the name of linknumber in a link set
-
-
-integer llGetInventoryNumber(integer type)
-Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory
-
-
-string llGetInventoryName(integer type, integer number)
-Returns the name of the inventory item number of a given type
-
-
-llSetScriptState(string name, integer run)
-Sets the running state of the specified script
-
-
-float llGetEnergy()
-Returns how much energy is in the object as a percentage of maximum
-
-
-llGiveInventory(key destination, string inventory)
-Gives inventory to destination
-
-
-llRemoveInventory(string item)
-Removes the named inventory item
-
-
-llSetText(string text, vector color, float alpha)
-Displays text that hovers over the prim with specific color and translucency specified with alpha
-
-
-float llWater(vector offset)
-Returns the water height below the object position + offset
-
-
-llPassTouches(integer pass)
-If pass == TRUE, touches are passed from children on to parents
-
-
-key llRequestAgentData(key id, integer data)
-Requests data about agent id. When data is available the dataserver event will be raised.
-
-
-key llRequestInventoryData(string name)
-Requests data from object's inventory object. When data is available the dataserver event will be raised.
-
-
-llSetDamage(float damage)
-Sets the amount of damage that will be done when this object hits an avatar.
-
-
-llTeleportAgentHome(key id)
-Teleports avatar on the owner's land to their home location without any warning
-
-
-llModifyLand(integer action, integer brush)
-Modifies land using the specified action on the specified brush size of land
-
-
-llCollisionSound(string impact_sound, float impact_volume)
-Suppresses default collision sounds, replaces default impact sounds with impact_sound at the volume impact_volume
-
-
-llCollisionSprite(string impact_sprite)
-Suppresses default collision sprites, replaces default impact sprite with impact_sprite (use an empty string to just suppress)
-
-
-string llGetAnimation(key id)
-Returns the name of the currently playing locomotion animation for avatar id
-
-
-llResetScript()
-Resets the script
-
-
-llMessageLinked(integer linknum, integer num, string str, key id)
-Allows scripts in the same object to communicate. Triggers a link_message event with the same parameters num, str, and id in all scripts in the prim(s) described by linknum.
-
-
-llPushObject(key id, vector impulse, vector ang_impulse, integer local)
-Applies impulse and ang_impulse to object id
-
-
-llPassCollisions(integer pass)
-If pass == TRUE, collisions are passed from children on to parents (default is FALSE)
-
-
-string llGetScriptName()
-Returns the name of the script that this function is used in
-
-
-integer llGetNumberOfSides()
-Returns the number of faces (or sides) of the prim
-
-
-rotation llAxisAngle2Rot(vector axis, float angle)
-Returns the rotation that is a generated angle about axis
-
-
-vector llRot2Axis(rotation rot)
-Returns the rotation axis represented by rot
-
-
-float llRot2Angle(rotation rot)
-Returns the rotation angle represented by rot
-
-
-float llAcos(float val)
-Returns the arccosine in radians of val
-
-
-float llAsin(float val)
-Returns the arcsine in radians of val
-
-
-float llAngleBetween(rotation a, rotation b)
-Returns angle between rotation a and b
-
-
-key llGetInventoryKey(string name)
-Returns the key that is the UUID of the inventory name
-
-
-llAllowInventoryDrop(integer add)
-If add == TRUE, users without modify permissions can still drop inventory items onto a prim
-
-
-vector llGetSunDirection()
-Returns a normalized vector of the direction of the sun in the region
-
-
-vector llGetTextureOffset(integer face)
-Returns the texture offset of face in the x and y components of a vector
-
-
-vector llGetTextureScale(integer side)
-Returns the texture scale of side in the x and y components of a vector
-
-
-float llGetTextureRot(integer side)
-Returns the texture rotation of side
-
-
-integer llSubStringIndex(string source, string pattern)
-Returns an integer that is the index in source where pattern first appears.
-(Returns -1 if not found)
-
-
-key llGetOwnerKey(key id)
-Returns the owner of object id
-
-
-vector llGetCenterOfMass()
-Returns the prim's center of mass (unless called from the root prim, where it returns the object's center of mass)
-
-
-list llListSort(list src, integer stride, integer ascending)
-Sorts the list into blocks of stride, in ascending order if ascending == TRUE.
-The sort order is affected by type.
-
-
-integer llGetListLength(list src)
-Returns the number of elements in the list
-
-
-integer llList2Integer(list src, integer index)
-Copies the integer at index in the list
-
-
-float llList2Float(list src, integer index)
-Copies the float at index in the list
-
-
-string llList2String(list src, integer index)
-Copies the string at index in the list
-
-
-key llList2Key(list src, integer index)
-Copies the key at index in the list
-
-
-vector llList2Vector(list src, integer index)
-Copies the vector at index in the list
-
-
-rotation llList2Rot(list src, integer index)
-Copies the rotation at index in the list
-
-
-list llList2List(list src, integer start, integer end)
-Copies the slice of the list from start to end
-
-
-list llDeleteSubList(list src, integer start, integer end)
-Removes the slice from start to end and returns the remainder of the list
-
-
-integer llGetListEntryType(list src, integer index)
-Returns the type of the index entry in the list
-(TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list)
-
-
-string llList2CSV(list src)
-Creates a string of comma separated values from list
-
-
-list llCSV2List(string src)
-Creates a list from a string of comma separated values
-
-
-list llListRandomize(list src, integer stride)
-Returns a randomized list of blocks of size stride
-
-
-list llList2ListStrided(list src, integer start, integer end, integer stride)
-Copies the strided slice of the list from start to end
-
-
-vector llGetRegionCorner()
-Returns a vector in meters that is the global location of the south-west corner of the region which the object is in
-
-
-list llListInsertList(list dest, list src, integer start)
-Returns a list that contains all the elements from dest but with the elements from src inserted at position start
-
-
-integer llListFindList(list src, list test)
-Returns the index of the first instance of test in src.
-(Returns -1 if not found)
-
-
-string llGetObjectName()
-Returns the name of the prim which the script is attached to
-
-
-llSetObjectName(string name)
-Sets the prim's name to the name parameter
-
-
-string llGetDate()
-Returns the current date in the UTC time zone in the format YYYY-MM-DD
-
-
-integer llEdgeOfWorld(vector pos, vector dir)
-Checks to see whether the border hit by dir from pos is the edge of the world (has no neighboring region)
-
-
-integer llGetAgentInfo(key id)
-Returns an integer bitfield containing the agent information about id.
-Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.
-
-
-llAdjustSoundVolume(float volume)
-Adjusts volume of attached sound (0.0 - 1.0)
-
-
-llSetSoundQueueing(integer queue)
-Sets whether attached sounds wait for the current sound to finish (If queue == TRUE then queuing is enabled, if FALSE queuing is disabled [default])
-
-
-llSetSoundRadius(float radius)
-Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered)
-
-
-string llKey2Name(key id)
-Returns the name of the prim or avatar specified by id.
-(The id must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.)
-
-
-llSetTextureAnim(integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate)
-Animates the texture on the specified face/faces
-
-
-llTriggerSoundLimited(string sound, float volume, vector top_north_east, vector bottom_south_west)
-Plays sound at volume (0.0 - 1.0), centered at but not attached to object, limited to the box defined by vectors top_north_east and bottom_south_west
-
-
-llEjectFromLand(key avatar)
-Ejects avatar from the parcel
-
-
-list llParseString2List(string src, list separators, list spacers)
-Breaks src into a list, discarding separators, keeping spacers
-(separators and spacers must be lists of strings, maximum of 8 each)
-
-
-integer llOverMyLand(key id)
-Returns TRUE if id is over land owned by the script owner, otherwise FALSE
-
-
-key llGetLandOwnerAt(vector pos)
-Returns the key of the land owner, returns NULL_KEY if public
-
-
-key llGetNotecardLine(string name, integer line)
-Returns line line of notecard name via the dataserver event
-
-
-vector llGetAgentSize(key id)
-If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR
-
-
-integer llSameGroup(key id)
-Returns TRUE if avatar id is in the same region and has the same active group, otherwise FALSE
-
-
-key llUnSit(key id)
-If avatar identified by id is sitting on the object the script is attached to or is over land owned by the object's owner, the avatar is forced to stand up
-
-
-vector llGroundSlope(vector offset)
-Returns the ground slope below the object position + offset
-
-
-vector llGroundNormal(vector offset)
-Returns the ground normal below the object position + offset
-
-
-vector llGroundCountour(vector offset)
-Returns the ground contour direction below the object position + offset
-
-
-integer llGetAttached()
-Returns the object's attachment point, or 0 if not attached
-
-
-integer llGetFreeMemory()
-Returns the number of free bytes of memory the script can use
-
-
-string llGetRegionName()
-Returns the current region name
-
-
-float llGetRegionTimeDilation()
-Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation)
-
-
-float llGetRegionFPS()
-Returns the mean region frames per second
-
-
-llParticleSystem(list rules)
-Creates a particle system based on rules. An empty list removes the particle system.
-List format is [ rule1, data1, rule2, data2 . . . rulen, datan ]
-
-
-llGroundRepel(float height, integer water, float tau)
-Critically damps to height if within height*0.5 of level (either above ground level, or above the higher of land and water if water == TRUE)
-
-
-llGiveInventoryList(key target, string folder, list inventory)
-Gives inventory items to target, creating a new folder to put them in
-
-
-llSetVehicleType(integer type)
-Sets the vehicle to one of the default types
-
-
-llSetVehicleFloatParam(integer param, float value)
-Sets the specified vehicle float parameter
-
-
-llSetVehicleVectorParam(integer param, vector vec)
-Sets the specified vehicle vector parameter
-
-
-llSetVehicleVectorParam(integer param, rotation rot)
-Sets the specified vehicle rotation parameter
-
-
-llSetVehicleFlags(integer flags)
-Sets the enabled bits in 'flags'
-
-
-llRemoveVehicleFlags(integer flags)
-Removes the enabled bits in 'flags'
-
-
-llSitTarget(vector offset, rotation rot)
-Sets the sit location for the prim. If offset == <0,0,0> then the sit target is removed.
-
-
-key llAvatarOnSitTarget()
-If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY
-
-
-llAddToLandPassList(key avatar, float hours)
-Adds avatar to the land pass list for hours, or indefinitely if hours is 0
-
-
-llSetTouchText(string text)
-Displays text rather than the default 'Touch' in the pie menu
-
-
-llSetSitText(string text)
-Displays text rather than the default 'Sit Here' in the pie menu
-
-
-llSetCameraEyeOffset(vector offset)
-Sets the camera eye offset for avatars that sit on the object
-
-
-llSetCameraAtOffset(vector offset)
-Sets the point the camera is looking at to offset for avatars that sit on the object
-
-
-string llDumpList2String(list src, string separator)
-Returns the list in a single string, using separator between the entries
-
-
-integer llScriptDanger(vector pos)
-Returns TRUE if pos is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts
-
-
-llDialog(key avatar, string message, list buttons, integer chat_channel
-Shows a dialog box on the avatar's screen with a message and up to 12 buttons.
-If a button is pressed, the avatar says the text of the button label on chat_channel.
-
-
-llVolumeDetect(integer detect)
-If detect = TRUE, object works much like Phantom, but triggers collision_start and collision_end events when other objects start and stop interpenetrating.
-Must be applied to the root prim.
-
-
-llResetOtherScript(string name)
-Resets script name
-
-
-integer llGetScriptState(string name)
-Returns TRUE if the script name is running
-
-
-DEPRECATED! Please use llRemoteLoadScriptPin instead.
-
-
-llSetRemoteScriptAccessPin(integer pin)
-If pin is set to a non-zero number, allows a prim to have scripts remotely loaded via llRemoteLoadScriptPin when it passes in the correct pin. Otherwise, llRemoteLoadScriptPin is ignored.
-
-
-llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer start_param)
-Copies script name onto target, if the owner of this scripted object can modify target and is in the same region, and the matching pin is used.
-If running == TRUE, starts the script with start_param
-
-
-llOpenRemoteDataChannel()
-Creates a channel to listen for XML-RPC calls, and will trigger a remote_data event with channel id once it is available
-
-
-key llSendRemoteData(key channel, string dest, integer idata, string sdata)
-Sends an XML-RPC request to dest through channel with payload of channel (in a string), integer idata and string sdata.
-Returns a key that is the message_id for the resulting remote_data events.
-
-
-llRemoteDataReply(key channel, key message_id, string sdata, integer idata)
-Sends an XML-RPC reply to message_id on channel with payload of string sdata and integer idata
-
-
-llCloseRemoteDataChannel(key channel)
-Closes XML-RPC channel
-
-
-string llMD5String(string src, integer nonce)
-Returns a string of 32 hex characters that is a RSA Data Security, Inc. MD5 Message-Digest Algorithm of src with nonce
-
-
-llSetPrimitiveParams(list rules)
-Sets the prim's parameters according to rules
-
-
-string llStringToBase64(string str)
-Converts a string to the Base64 representation of the string
-
-
-string llBase64ToString(string str)
-Converts a Base64 string to a conventional string.
-If the conversion creates any unprintable characters, they are converted to spaces.
-
-
-string llXorBase64Strings(string s1, string s2)
-DEPRECATED! Please use llXorBase64StringsCorrect instead.
-Incorrectly performs an exclusive or on two Base64 strings and returns a Base64 string. s2 repeats if it is shorter than s1. Retained for backwards compatability.
-
-
-llRemoteDataSetRegion()
-DEPRECATED! Please use llOpenRemoteDataChannel instead.
-If an object using remote data channels changes regions, you must call this function to reregister the remote data channels. This call is not needed if the prim does not change regions.
-
-
-float llLog10(float val)
-Returns the base 10 logarithm of val. Returns zero if val <= 0.
-
-
-float llLog(float val)
-Returns the natural logarithm of val. Returns zero if val <= 0.
-
-
-list llGetAnimationList(key id)
-Returns a list of keys of playing animations for avatar described by id
-
-
-llSetParcelMusicURL(string url)
-Sets the streaming audio URL for the parcel which the object is on
-
-
-vector llGetRootPosition()
-Returns the position (in region coordinates) of the root prim of the object which the script is attached to
-
-
-rotation llGetRootRotation()
-Returns the rotation (relative to the region) of the root prim of the object which the script is attached to
-
-
-string llGetObjectDesc()
-Returns the description of the prim the script is attached to
-
-
-llSetObjectDesc(string name)
-Sets the prim's description
-
-
-key llGetCreator()
-Returns a key for the creator of the prim
-
-
-string llGetTimestamp()
-Returns the timestamp in the UTC time zone in the format: YYYY-MM-DDThh:mm:ss.ff..fZ
-
-
-llSetLinkAlpha(integer linknumber, float alpha, integer face)
-If a prim exists in the link chain at linknumber, sets face to alpha
-
-
-integer llGetNumberOfPrims()
-Returns the number of prims in a link set the script is attached to
-
-
-key llGetNumberOfNotecardLines(string name)
-Returns number of lines in notecard name via the dataserver event (cast return value to integer)
-
-
-list llGetBoundingBox(key object)
-Returns the bounding box around the object (including any linked prims) relative to its root prim, in a list in the format [ (vector) min_corner, (vector) max_corner ]
-
-
-vector llGetGeometricCenter()
-Returns the geometric center of the linked set the script is attached to.
-
-
-list llGetPrimitiveParams(list params)
-Returns the primitive parameters specified in the params list.
-
-
-string llIntegerToBase64(integer number)
-Returns a string that is a Base64 big endian encode of number
-
-
-integer llBase64ToInteger(string str)
-Returns an integer that is the str Base64 decoded as a big endian integer
-
-
-float llGetGMTclock()
-Returns the time in seconds since midnight GMT
-
-
-string llGetSimulatorHostname()
-Returns the hostname of the machine which the script is running on (same as string in viewer Help dialog)
-
-
-llSetLocalRot(rotation rot)
-Sets the rotation of a child prim relative to the root prim
-
-
-list llParseStringKeepNulls(string src, list separators, list spacers)
-Breaks src into a list, discarding separators, keeping spacers, keeping any null values generated.
-(separators and spacers must be lists of strings, maximum of 8 each)
-
-
-llRezAtRoot(string inventory, vector pos, vector vel, rotation rot, integer param)
-Instantiates owner's inventory object rotated to rot with its root at pos, moving at vel, using param as the start parameter
-
-
-integer llGetObjectPermMask(integer mask)
-Returns the requested permission mask for the root object the task is attached to
-
-
-llSetObjectPermMask(integer mask, integer value)
-Sets the given permission mask to the new value on the root object the task is attached to (requires God Mode)
-
-
-integer llGetInventoryPermMask(string item, integer mask)
-Returns the requested permission mask for the inventory item
-
-
-llSetInventoryPermMask(string item, integer mask, integer value)
-Sets the given permission mask to the new value on the inventory item (requires God Mode)
-
-
-key llGetInventoryCreator(string item)
-Returns a key for the creator of the inventory item
-
-
-llOwnerSay(string msg)
-Says msg to owner only. (Owner must be in the same region.)
-
-
-key llRequestSimulatorData(string simulator, integer data)
-Requests data about simulator. When data is available the dataserver event will be raised.
-
-
-llForceMouselook(integer mouselook)
-If mouselook is TRUE, any avatar that sits upon the prim will be forced into mouselook mode
-
-
-float llGetObjectMass(key id)
-Returns the mass of the avatar or object in the region
-
-
-list llListReplaceList(list dest, list src, integer start, integer end)
-Returns a list that is dest with start through end removed and src inserted at start
-
-
-llLoadURL(key avatar, string message, string url)
-Shows a dialog to avatar offering to load the web page at url with a message.
-If user clicks yes, launches the page in their web browser.
-
-
-llParcelMediaCommandList(list command)
-Sends a list of commands, some with arguments, to a parcel to control the playback of movies and other media
-
-
-list llParcelMediaQuery(list query)
-Returns a list containing results of the sent query
-
-
-integer llModPow(integer a, integer b, integer c)
-Returns a raised to the b power, mod c. ( (a**b)%c )
-b is capped at 0xFFFF (16 bits).
-
-
-integer llGetInventoryType(string name)
-Returns the type of the inventory item name
-
-
-llSetPayPrice(integer price, list quick_pay_buttons)
-Sets the default amount on the dialog that appears when someone chooses to pay this prim
-
-
-vector llGetCameraPos()
-Returns the current camera position for the agent the task has permissions for
-
-
-rotation llGetCameraRot()
-Returns the current camera orientation for the agent the task has permissions for
-
-
-llSetPrimURL(string url)
-Updates the URL for the web page shown on the sides of the object
-
-
-llRefreshPrimURL()
-Reloads the web page shown on the sides of the object
-
-
-string llEscapeURL(string url)
-Returns an escaped/encoded version of url, replacing spaces with %20 etc.
-
-
-string llUnescapeURL(string url)
-Returns an unescaped/ unencoded version of url, replacing %20 with spaces etc.
-
-
-llMapDestination(string simname, vector pos, vector look_at)
-Opens the World Map centered on the region simname with pos highlighted. (NOTE: look_at currently does nothing.)
-Only works for scripts attached to avatar, or during touch events.
-
-
-llAddToLandBanList(key avatar, float hours)
-Adds avatar to the land ban list for hours, or indefinitely if hours is 0
-
-
-llRemoveFromLandPassList(key avatar)
-Removes avatar from the land pass list
-
-
-llRemoveFromLandBanList(key avatar)
-Removes avatar from the land ban list
-
-
-llSetCameraParams(list rules)
-Sets multiple camera parameters at once.
-List format is [ rule1, data1, rule2, data2 . . . rulen, datan ]
-
-
-llClearCameraParams()
-Resets all camera parameters to default values and turns off scripted camera control
-
-
-float llListStatistics(integer operation, list src)
-Performs statistical aggregate functions on list src using LIST_STAT_* operations
-
-
-integer llGetUnixTime()
-Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock
-
-
-integer llGetParcelFlags(vector pos)
-Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point pos
-
-
-integer llGetRegionFlags()
-Returns the region flags (REGION_FLAG_*) for the region the object is in
-
-
-string llXorBase64StringsCorrect(string s1, string s2)
-Correctly performs an exclusive or on two Base64 strings and returns a Base64 string.
-s2 repeats if it is shorter than s1.
-
-
-llHTTPRequest(string url, list parameters, string body)
-Sends an HTTP request to the specified url with the body of the request and parameters
-
-
-llResetLandBanList()
-Removes all Residents from the land ban list
-
-
-llResetLandPassList()
-Removes all Residents from the land access/pass list
-
-
-integer llGetObjectPrimCount(key object_id)
-Returns the total number of prims for an object in the region
-
-
-list llGetParcelPrimOwners(vector pos)
-Returns a list of all Residents who own objects on the parcel at pos and with individual prim counts.
-Requires owner-like permissions for the parcel.
-
-
-integer llGetParcelPrimCount(vector pos, integer category, integer sim_wide)
-Returns the number of prims on the parcel at pos of the given category.
-Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP
-
-
-integer llGetParcelMaxPrims(vector pos, integer sim_wide)
-Returns the maximum number of prims allowed on the parcel at pos
-
-
- list llGetParcelDetails(vector pos, list params)
- Returns the parcel details specified in params for the parcel at pos.
- Params is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS
-
-
-llSetLinkPrimitiveParams(integer linknumber, list rules)
-Sets primitive parameters for linknumber based on rules
-
-
-llSetLinkTexture(integer linknumber, string texture, integer face)
-Sets the texture of face for a task that exists in the link chain at linknumber
-
-
-string llStringTrim(string src, integer trim_type)
-Trims the leading and/or trailing white spaces from a string.
-trim_type can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.
-
-
-llRegionSay(integer channel, string msg)
-Broadcasts msg on channel (not 0) that can be heard anywhere in the region by a script listening on channel
-
-
-list llGetObjectDetails(key id, list params)
-Returns the object details specified in params for the object with key id.
-Params are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR
-
-
-llSetClickAction(integer action)
-Sets the action performed when a prim is clicked upon
-
-
-integer llGetRegionAgentCount()
-Returns the number of avatars in the region
-
-
-llTextBox(key avatar, string message, integer chat_channel)
-Shows a window on the avatar's screen with the message.
-It contains a text box for input, and if entered that text is chatted on chat_channel.
-
-
-string llGetAgentLanguage(key avatar)
-Returns the language code of the preferred interface language of the avatar
-
-
-vector llDetectedTouchUV(integer index)
-Returns the u and v coordinates in the first two components of a vector, for the texture coordinates where the prim was touched in a triggered touch event
-
-
-integer llDetectedTouchFace(integer index)
-Returns the index of the face where the avatar clicked in a triggered touch event
-
-
-vector llDetectedTouchPos(integer index)
-Returns the position where the object was touched in a triggered touch event
-
-
-vector llDetectedTouchNormal(integer index)
-Returns the surface normal for a triggered touch event
-
-
-vector llDetectedTouchBinormal(integer index)
-Returns the surface binormal for a triggered touch event
-
-
-vector llDetectedTouchST(integer index)
-Returns the s and t coordinates in the first two components of a vector, for the surface coordinates where the prim was touched in a triggered touch event
-
-
-string llSHA1String(string src)
-Returns a string of 40 hex characters that is the SHA1 security Hash of src
-
-
-integer llGetFreeURLs()
-Returns the number of available URLs for the current script
-
-
-key llRequestURL()
-Requests one HTTP:// url for use by this object.
-An http_request event is triggered with the results.
-
-
-key llRequestSecureURL()
-Requests one HTTPS:// (SSL) url for use by this object.
-An http_request event is triggered with the results.
-
-
-llReleaseURL(string url)
-Releases the specified URL, it will no longer be usable
-
-
-llHTTPResponse(key request_id, integer status, string body)
-Responds to request_id with status and body
-
-
-string llGetHTTPHeader(key request_id, string header)
-Returns the value for header for request_id
-
-
-llSetPrimMediaParams(integer face, list params)
-Sets the media params for a particular face on an object. If media is not already on this object, add it.
-List is a set of name/value pairs in no particular order. Params not specified are unchanged, or if new media is added then set to the default specified.
-The possible names are below, along with the types of values and what they mean.
-
-
-list llGetPrimMediaParams(integer face, list params)
-Returns the media params for a particular face on an object, given the desired list of names, in the order requested.
-(Returns an empty list if no media exists on the face.)
-
-
-llClearPrimMedia(integer face)
-Clears (deletes) the media and all params from the given face.
-
-
-llSetLinkPrimitiveParamsFast(integer linknumber,list rules)
-Set primitive parameters for linknumber based on rules.
-
-
-llGetLinkPrimitiveParams(integer linknumber,list rules)
-Get primitive parameters for linknumber based on rules.
-
-
-llLinkParticleSystem(integer linknumber,list rules)
-Creates a particle system based on rules. Empty list removes particle system from object.
-List format is [ rule1, data1, rule2, data2 . . . rulen, datan ].
-
-
-llSetLinkTextureAnim(integer link, integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate)
-Animate the texture on the specified prim's face/faces.
-
-
-integer llGetLinkNumberOfSides(integer link)
-Returns the number of sides of the specified linked prim.
-
-
-string llGetUsername(key id)
-Returns the single-word username of an avatar, iff the avatar is in the current region, otherwise the empty string.
-
-
-key llRequestUsername(key id)
-Requests single-word username of an avatar. When data is available the dataserver event will be raised.
-
-
- string llGetDisplayName(key id)
- Returns the name of an avatar, iff the avatar is in the current simulator, and the name has been cached, otherwise the same as llGetUsername. Use llRequestDisplayName if you absolutely must have the display name.
-
-
-key llRequestDisplayName(key id)
-Requests name of an avatar. When data is available the dataserver event will be raised.
-
-
-llRegionSayTo(key target, integer channel, string msg)
-Sends msg on channel (not DEBUG_CHANNEL) directly to prim or avatar target anywhere within the region
-
-
-llGetEnv(string name)
-Returns a string with the requested data about the region
-
-
-
-
- Not Away
- Away
- Not Busy
- Busy
-
-
- Shape
- Skin
- Hair
- Eyes
- Shirt
- Pants
- Shoes
- Socks
- Jacket
- Gloves
- Undershirt
- Underpants
- Skirt
- Alpha
- Tattoo
- Physics
- invalid
- none
-
-
- Shirt not worn
- Pants not worn
- Shoes not worn
- Socks not worn
- Jacket not worn
- Gloves not worn
- Undershirt not worn
- Underpants not worn
- Skirt not worn
- Alpha not worn
- Tattoo not worn
- Physics not worn
- invalid
-
-
- Create new shape
- Create new skin
- Create new hair
- Create new eyes
- Create new shirt
- Create new pants
- Create new shoes
- Create new socks
- Create new jacket
- Create new gloves
- Create new undershirt
- Create new underpants
- Create new skirt
- Create new alpha
- Create new tattoo
- Create new physics
- invalid
-
-
- New [WEARABLE_ITEM]
-
-
-
- Next
- OK
- Group Notice
- Group Notices
- Sent by
- Attached:
- View past notices or opt-out of receiving these messages here.
- Open Attachment
- Save Attachment
-
- Teleport offering
-
- New notifications arrived while you were away.
-
- You have %d more notification
-
-
-
- Right Arm
- Head
- Left Arm
- Left Leg
- Torso
- Right Leg
-
-
- Low
- Mid
- High
-
-
- Press ESC to return to World View
-
-
- Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search].
- Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search].
- Drag a landmark here to add it to your favorites.
- You do not have a copy of this texture in your inventory
- Your Marketplace purchases will appear here. You may then drag them into your inventory to use them.
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
- Anyone can sell items on the Marketplace.
-
-
-If you'd like to become a merchant, you'll need to [[MARKETPLACE_CREATE_STORE_URL] create a Marketplace store].
-
- Your outbox is empty.
-
-
-Drag folders to this area and click "Send to Marketplace" to list them for sale on the [[MARKETPLACE_DASHBOARD_URL] Marketplace].
-
-
- No errors
- Error: Before sending items to the Marketplace you will need to set yourself up as a merchant (free of charge).
- Error: This folder has no contents.
- Error: This item failed to upload because your merchant account has too many items unassociated with products. To fix this error, log in to the marketplace website and reduce your unassociated item count.
-
- Error: This item contains too many objects. Fix this error by placing objects together in boxes to reduce the total count to less than 200.
- Error: This item contains too many levels of nested folders. Reorganize it to a maximum of 3 levels of nested folders.
- Error: This item can not be sold on the marketplace.
- Error: There was a problem with this item. Try again later.
-
- Open landmarks
-
-
-
-
-
-
-
-
- Loading contents...
- No contents
-
-
-
- Yes
- No
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- My Inventory
- Library
- Textures
- Sounds
- Calling Cards
- Landmarks
- Scripts
- Clothing
- Objects
- Notecards
- New Folder
- Inventory
- Uncompressed Images
- Body Parts
- Trash
- Photo Album
- Lost And Found
- Uncompressed Sounds
- Animations
- Gestures
- My Favorites
-
- My Favorites
- Current Outfit
- Initial Outfits
- My Outfits
- Accessories
- Meshes
-
-
- Friends
- All
-
- No attachments worn
- Attachments ([COUNT] slots remain)
-
-
-
- Buy
- Buy for L$
-
- Stone
- Metal
- Glass
- Wood
- Flesh
- Plastic
- Rubber
- Light
-
-
- Shift
- Ctrl
-
-
- Chest
- Skull
- Left Shoulder
- Right Shoulder
- Left Hand
- Right Hand
- Left Foot
- Right Foot
- Spine
- Pelvis
- Mouth
- Chin
- Left Ear
- Right Ear
- Left Eyeball
- Right Eyeball
- Nose
- R Upper Arm
- R Forearm
- L Upper Arm
- L Forearm
- Right Hip
- R Upper Leg
- R Lower Leg
- Left Hip
- L Upper Leg
- L Lower Leg
- Stomach
- Left Pec
- Right Pec
- Neck
- Avatar Center
- Invalid Attachment Point
-
-
- [AGEYEARS] [AGEMONTHS] old
- [AGEYEARS] old
- [AGEMONTHS] old
- [AGEWEEKS] old
- [AGEDAYS] old
- Joined today
-
-
- [COUNT] year
- [COUNT] years
- [COUNT] years
- [COUNT] month
- [COUNT] months
- [COUNT] months
- [COUNT] week
- [COUNT] weeks
- [COUNT] weeks
- [COUNT] day
- [COUNT] days
- [COUNT] days
-
- [COUNT] member
- [COUNT] members
- [COUNT] members
-
-
- Resident
- Trial
- Charter Member
- Linden Lab Employee
- Payment Info Used
- Payment Info On File
- No Payment Info On File
- Age-verified
- Not Age-verified
-
-
- Center 2
- Top Right
- Top
- Top Left
- Center
- Bottom Left
- Bottom
- Bottom Right
-
-
- Downloaded, now compiling
- Script not found on server.
- Problem downloading
- Insufficient permissions to download a script.
- Insufficient permissions for
- Unknown failure to download
- Recompilation Progress
- recompile
- Reset Progress
- reset
- Set Running Progress
- set running
- Set Not Running Progress
- set not running
-
-
- Compile successful!
- Compile successful, saving...
- Save complete.
- Script (object out of range)
-
-
- Object [OBJECT] owned by [OWNER]
-
-
- none
-
- (Unknown)
-
-
- [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]
-
-
- Balance
- Credits
- Debits
- Total
- No group data found for group
-
-
- parent estate
- mainland
- teen
-
-
- anyone
-
-
-
- error
-
- all estates owned by [OWNER]
-
- all estates that you own
-
- all estates that you manage for [OWNER]
-
- Allowed Residents: ([ALLOWEDAGENTS], max [MAXACCESS])
- Allowed groups: ([ALLOWEDGROUPS], max [MAXACCESS])
-
-
- Parcel Script Memory
- Parcels Listed: [PARCELS]
- Memory used: [COUNT] kb out of [MAX] kb; [AVAILABLE] kb available
- Memory used: [COUNT] kb
- Parcel Script URLs
- URLs used: [COUNT] out of [MAX]; [AVAILABLE] available
- URLs used: [COUNT]
- Error requesting information
- No Parcel Selected
- Error: script information is only available in your current region
- Retrieving information...
- You do not have permission to examine this parcel
-
- Sitting On
- Chest
- Head
- Left Shoulder
- Right Shoulder
- Left Hand
- Right Hand
- Left Foot
- Right Foot
- Back
- Pelvis
- Mouth
- Chin
- Left Ear
- Right Ear
- Left Eye
- Right Eye
- Nose
- Right Upper Arm
- Right Lower Arm
- Left Upper Arm
- Left Lower Arm
- Right Hip
- Right Upper Leg
- Right Lower Leg
- Left Hip
- Left Upper Leg
- Left Lower Leg
- Belly
- Right Pec
- Left Pec
- HUD Center 2
- HUD Top Right
- HUD Top Center
- HUD Top Left
- HUD Center 1
- HUD Bottom Left
- HUD Bottom
- HUD Bottom Right
-
-
- Line [LINE], Column [COLUMN]
-
-
- [COUNT] found
- [hour12,datetime,slt]:[min,datetime,slt] [ampm,datetime,slt]
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]
-
-
- Content of object
- New Script
-
-
- The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.
-
-
- (By name)
- (Resident)
- (Object)
- (Group)
- (External)
-
-
- There is no Covenant provided for this Estate.
- There is no Covenant provided for this Estate. The land on this estate is being sold by the Estate owner, not Linden Lab. Please contact the Estate Owner for sales details.
-
-
-
-
-
- Group Owned
- Public
-
-
- Local Settings
- Region Settings
-
-
- Clicks: [TELEPORT] teleport, [MAP] map, [PROFILE] profile
- (will update after publish)
-
-
- You haven't created any Picks or Classifieds. Click the Plus button below to create a Pick or Classified.
- User has no picks or classifieds
- Loading...
-
-
- Preview
- Properties
-
-
- An object named
- owned by the group
- owned by an unknown group
- owned by
- owned by an unknown user
- gave you
- You decline [DESC] from <nolink>[NAME]</nolink>.
-
-
- Total
- bought
- paid you
- paid into
- bought pass to
- paid fee for event
- paid prize for event
- Balance
- Credits
- Debits
- [weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
-
-
- Contents
-
-
- Acquired Items
- Cancel
- Uploading [NAME] costs L$ [AMOUNT]
- Buying this costs L$ [AMOUNT]
-
- Unknown file extension .%s
-Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
-
- Block
- Block
- Unblock
- Unblock
- Add to My Landmarks...
- Edit my Landmark...
-
-
- ⌃
- ⌘
- ⌥
- ⇧
- Ctrl+
- Alt+
- Shift+
-
-
- File Saved
- Receiving
-
-
- AM
- PM
- PST
- PDT
-
-
- Forward
- Left
- Right
- Back
- North
- South
- West
- East
- Up
- Down
-
-
- Any Category
- Shopping
- Land Rental
- Property Rental
- Special Attraction
- New Products
- Employment
- Wanted
- Service
- Personal
-
-
- None
- Linden Location
- Adult
- Arts & Culture
- Business
- Educational
- Gaming
- Hangout
- Newcomer Friendly
- Parks & Nature
- Residential
-
- Stage
- Other
- Rental
- Any
- You
-
-
- :
- ,
- ...
- ***
- (
- )
- .
- '
- ---
-
-
- Multiple Media
- Play/Pause Media
-
-
-
- An error was found parsing the command line.
-Please see: http://wiki.secondlife.com/wiki/Client_parameters
-Error:
-
- [APP_NAME] Command line usage:
-
- [APP_NAME] is unable to access a file that it needs.
-
-This can be because you somehow have multiple copies running, or your system incorrectly thinks a file is open.
-If this message persists, restart your computer and try again.
-If it continues to persist, you may need to completely uninstall [APP_NAME] and reinstall it.
-
- Fatal Error
- [APP_NAME] requires a processor with AltiVec (G4 or later).
-
- [APP_NAME] is already running.
-Check your task bar for a minimized copy of the program.
-If this message persists, restart your computer.
-
-
- [APP_NAME] appears to have frozen or crashed on the previous run.
-Would you like to send a crash report?
-
- Notification
-
- [APP_NAME] is unable to detect DirectX 9.0b or greater.
-[APP_NAME] uses DirectX to detect hardware and/or outdated drivers that can cause stability problems, poor performance and crashes. While you can run [APP_NAME] without it, we highly recommend running with DirectX 9.0b.
-
-Do you wish to continue?
-
- Warning
-
- Automatic updating is not yet implemented for Linux.
-Please download the latest version from www.secondlife.com.
-
- RegisterClass failed
- Error
-
- Unable to run fullscreen at [WIDTH] x [HEIGHT].
-Running in window.
-
- Shutdown Error while destroying window (DestroyWindow() failed)
- Shutdown Error
- Can't make GL device context
- Can't find suitable pixel format
- Can't get pixel format description
-
- [APP_NAME] requires True Color (32-bit) to run.
-Please go to your computer's display settings and set the color mode to 32-bit.
-
-
- [APP_NAME] is unable to run because it can't get an 8 bit alpha channel. Usually this is due to video card driver issues.
-Please make sure you have the latest video card drivers installed.
-Also be sure your monitor is set to True Color (32-bit) in Control Panels > Display > Settings.
-If you continue to receive this message, contact the [SUPPORT_SITE].
-
- Can't set pixel format
- Can't create GL rendering context
- Can't activate GL rendering context
-
- [APP_NAME] is unable to run because your video card drivers did not install properly, are out of date, or are for unsupported hardware. Please make sure you have the latest video card drivers and even if you do have the latest, try reinstalling them.
-
-If you continue to receive this message, contact the [SUPPORT_SITE].
-
-
-
-5 O'Clock Shadow
-
-All White
-Anime Eyes
-Arced
-Arm Length
-Attached
-Attached Earlobes
-
-
-Back Fringe
-
-Baggy
-Bangs
-
-Beady Eyes
-Belly Size
-Big
-Big Butt
-
-Big Hair: Back
-Big Hair: Front
-Big Hair: Top
-Big Head
-Big Pectorals
-Big Spikes
-Black
-Blonde
-Blonde Hair
-Blush
-Blush Color
-Blush Opacity
-Body Definition
-Body Fat
-Body Freckles
-Body Thick
-Body Thickness
-Body Thin
-
-Bow Legged
-Breast Buoyancy
-Breast Cleavage
-Breast Size
-Bridge Width
-Broad
-Brow Size
-Bug Eyes
-Bugged Eyes
-Bulbous
-Bulbous Nose
-
-Breast Mass
-Breast Smoothing
-Breast Gravity
-Breast Drag
-
-Max Effect
-Spring
-Gain
-Damping
-
-Max Effect
-Spring
-Gain
-Damping
-
-Max Effect
-Spring
-Gain
-Damping
-
-Belly Mass
-Belly Smoothing
-Belly Gravity
-Belly Drag
-
-Max Effect
-Spring
-Gain
-Damping
-
-Butt Mass
-Butt Smoothing
-Butt Gravity
-Butt Drag
-
-Max Effect
-Spring
-Gain
-Damping
-
-Max Effect
-Spring
-Gain
-Damping
-
-Bushy Eyebrows
-Bushy Hair
-Butt Size
-Butt Gravity
-Bustle Skirt
-No Bustle
-More Bustle
-
-Chaplin
-Cheek Bones
-Chest Size
-Chin Angle
-Chin Cleft
-Chin Curtains
-
-Chin Depth
-Chin Heavy
-Chin In
-Chin Out
-Chin-Neck
-Clear
-Cleft
-Close Set Eyes
-Closed
-Closed Back
-Closed Front
-Closed Left
-Closed Right
-Coin Purse
-Collar Back
-
-
-
-Collar Front
-
-
-
-Corner Down
-
-Corner Up
-Creased
-Crooked Nose
-
-Cuff Flare
-Dark
-Dark Green
-Darker
-Deep
-Default Heels
-
-Dense
-
-Double Chin
-Downturned
-Duffle Bag
-Ear Angle
-Ear Size
-Ear Tips
-Egg Head
-Eye Bags
-Eye Color
-Eye Depth
-Eye Lightness
-Eye Opening
-Eye Pop
-Eye Size
-Eye Spacing
-
-Eyebrow Arc
-Eyebrow Density
-
-Eyebrow Height
-Eyebrow Points
-Eyebrow Size
-
-Eyelash Length
-Eyeliner
-Eyeliner Color
-
-Eyes Bugged
-
-
-
-
-
-
-
-
-Face Shear
-Facial Definition
-Far Set Eyes
-
-Fat Lips
-
-Female
-Fingerless
-Fingers
-Flared Cuffs
-Flat
-Flat Butt
-Flat Head
-Flat Toe
-Foot Size
-Forehead Angle
-Forehead Heavy
-Freckles
-
-Front Fringe
-
-Full Back
-Full Eyeliner
-Full Front
-Full Hair Sides
-Full Sides
-Glossy
-Glove Fingers
-
-Glove Length
-
-
-Hair
-Hair: Back
-Hair: Front
-Hair: Sides
-Hair Sweep
-Hair Thickness
-Hair Thickness
-Hair Tilt
-Hair Tilted Left
-Hair Tilted Right
-Hair: Volume
-Hand Size
-Handlebars
-Head Length
-Head Shape
-Head Size
-Head Stretch
-Heel Height
-Heel Shape
-Height
-High
-High Heels
-High Jaw
-High Platforms
-High and Tight
-Higher
-Hip Length
-Hip Width
-In
-Inner Shadow Color
-Inner Shadow Opacity
-Inner Eye Corner
-Inner Eye Shadow
-Inner Shadow
-
-
-Jacket Length
-
-Jacket Wrinkles
-Jaw Angle
-Jaw Jut
-Jaw Shape
-Join
-Jowls
-Knee Angle
-Knock Kneed
-
-Large
-Large Hands
-Left Part
-Leg Length
-Leg Muscles
-Less
-Less Body Fat
-Less Curtains
-Less Freckles
-Less Full
-Less Gravity
-Less Love
-Less Muscles
-Less Muscular
-Less Rosy
-Less Round
-Less Saddle
-Less Square
-Less Volume
-Less soul
-Lighter
-Lip Cleft
-Lip Cleft Depth
-Lip Fullness
-Lip Pinkness
-Lip Ratio
-Lip Thickness
-Lip Width
-Lipgloss
-Lipstick
-Lipstick Color
-Long
-Long Head
-Long Hips
-Long Legs
-Long Neck
-Long Pigtails
-Long Ponytail
-Long Torso
-Long arms
-
-
-Loose Pants
-Loose Shirt
-Loose Sleeves
-
-Love Handles
-Low
-Low Heels
-Low Jaw
-Low Platforms
-Low and Loose
-Lower
-Lower Bridge
-Lower Cheeks
-
-Male
-Middle Part
-More
-More Blush
-More Body Fat
-More Curtains
-More Eyeshadow
-More Freckles
-More Full
-More Gravity
-More Lipstick
-More Love
-More Lower Lip
-More Muscles
-More Muscular
-More Rosy
-More Round
-More Saddle
-More Sloped
-More Square
-More Upper Lip
-More Vertical
-More Volume
-More soul
-Moustache
-
-Mouth Corner
-Mouth Position
-Mowhawk
-Muscular
-Mutton Chops
-
-Nail Polish
-Nail Polish Color
-Narrow
-Narrow Back
-Narrow Front
-Narrow Lips
-Natural
-Neck Length
-Neck Thickness
-No Blush
-No Eyeliner
-No Eyeshadow
-
-No Lipgloss
-No Lipstick
-No Part
-No Polish
-No Red
-No Spikes
-No White
-No Wrinkles
-Normal Lower
-Normal Upper
-Nose Left
-Nose Right
-Nose Size
-Nose Thickness
-Nose Tip Angle
-Nose Tip Shape
-Nose Width
-Nostril Division
-Nostril Width
-
-
-Opaque
-Open
-Open Back
-Open Front
-Open Left
-Open Right
-Orange
-Out
-Outer Shadow Color
-Outer Shadow Opacity
-Outer Eye Corner
-Outer Eye Shadow
-Outer Shadow
-Overbite
-
-Package
-Painted Nails
-Pale
-Pants Crotch
-Pants Fit
-Pants Length
-
-
-Pants Waist
-Pants Wrinkles
-Part
-Part Bangs
-Pectorals
-Pigment
-Pigtails
-Pink
-Pinker
-Platform Height
-Platform Width
-Pointy
-Pointy Heels
-
-Ponytail
-Poofy Skirt
-Pop Left Eye
-Pop Right Eye
-Puffy
-Puffy Eyelids
-Rainbow Color
-Red Hair
-
-Regular
-
-Right Part
-Rosy Complexion
-Round
-
-Ruddiness
-Ruddy
-Rumpled Hair
-Saddle Bags
-
-
-Scrawny Leg
-Separate
-
-
-Shallow
-Shear Back
-Shear Face
-Shear Front
-
-Shear Left Up
-
-Shear Right Up
-Sheared Back
-Sheared Front
-Shift Left
-Shift Mouth
-Shift Right
-Shirt Bottom
-
-Shirt Fit
-
-Shirt Wrinkles
-Shoe Height
-
-Short
-Short Arms
-Short Legs
-Short Neck
-Short Pigtails
-Short Ponytail
-Short Sideburns
-Short Torso
-Short hips
-Shoulders
-
-Side Fringe
-Sideburns
-
-Sides Hair
-Sides Hair Down
-Sides Hair Up
-
-Skinny Neck
-Skirt Fit
-Skirt Length
-Slanted Forehead
-Sleeve Length
-
-
-
-Sleeve Looseness
-Slit: Back
-Slit: Front
-Slit: Left
-Slit: Right
-Small
-Small Hands
-Small Head
-Smooth
-Smooth Hair
-Socks Length
-
-
-Soulpatch
-
-Sparse
-Spiked Hair
-Square
-Square Toe
-Squash Head
-
-Stretch Head
-Sunken
-Sunken Chest
-Sunken Eyes
-Sweep Back
-Sweep Forward
-
-Tall
-Taper Back
-Taper Front
-Thick Heels
-Thick Neck
-Thick Toe
-
-Thin
-Thin Eyebrows
-Thin Lips
-Thin Nose
-Tight Chin
-Tight Cuffs
-Tight Pants
-Tight Shirt
-Tight Skirt
-Tight Sleeves
-
-Toe Shape
-Toe Thickness
-Torso Length
-Torso Muscles
-Torso Scrawny
-Unattached
-Uncreased
-Underbite
-Unnatural
-Upper Bridge
-Upper Cheeks
-Upper Chin Cleft
-
-Upper Eyelid Fold
-Upturned
-Very Red
-Waist Height
-
-
-Well-Fed
-White Hair
-Wide
-Wide Back
-Wide Front
-Wide Lips
-Wild
-Wrinkles
-
-
- Add to My Landmarks
- Edit my Landmark
- See more info about the current location
- My location history
- Buy this land
- Voice not available here
- Flying not allowed
- No pushing
- Building/dropping objects not allowed
- Scripts not allowed
- Health
- Adult Region
- Moderate Region
- General Region
- Avatars visible and chat allowed outside of this parcel
-
-
-
- [APP_NAME] Update
-
-
- Now updating [APP_NAME]...
-
-
- Installing [APP_NAME]...
-
-
- Your [APP_NAME] Viewer is being updated to the latest release. This may take some time, so please be patient.
-
-
- Downloading update...
-
-
- Downloading update
-
-
- Failed to download update
-
-
- An error occurred while updating [APP_NAME]. Please download the latest version from www.secondlife.com.
-
-
- Failed to install update
-
-
- Failed to start viewer
-
-
-
- [APP_NAME]: Items coming in too fast from [FROM_NAME], automatic preview disabled for [TIME] seconds
- [APP_NAME]: Items coming in too fast, automatic preview disabled for [TIME] seconds
-
-
- -- Instant message logging enabled --
- [NAME] is typing...
- (Unnamed)
- (Moderated: Voices off by default)
- Text chat is not available for this call.
- Your text chat has been disabled by a Group Moderator.
- Click here to instant message.
- To
- (Moderator)
- (Saved [LONG_TIMESTAMP])
- To see this message, you must uncheck 'Only friends and groups can call or IM me' in Preferences/Privacy.
-
-
- Your call has been answered
- You started a voice call
- You joined the voice call
- [NAME] started a voice call
-
-
- Joining voice call...
-
-
- Connected, click Leave Call to hang up
-
-
- Left voice call
-
-
- Connecting...
-
-
- Ad-hoc Conference
-
-
- Conference with [AGENT_NAME]
-
-
- Inventory item offered
-
-
- Drag items from inventory here
-
-
-
-
- (IM Session Doesn't Exist)
-
-
- You are the only user in this session.
-
-
- [NAME] is offline.
-
-
- Click the [BUTTON NAME] button to accept/connect to this voice chat.
-
-
- You have blocked this Resident. Sending a message will automatically unblock them.
-
-
-
- Error making request, please try again later.
-
-
- Error making request, please try again later.
-
-
- You do not have sufficient permissions.
-
-
- The session no longer exists
-
-
- You do not have that ability.
-
-
- You do not have that ability.
-
-
- You are not a session moderator.
-
-
-
- A group moderator disabled your text chat.
-
-
- A group moderator disabled your text chat.
-
-
- Unable to add users to chat session with [RECIPIENT].
-
-
-
- Unable to send your message to the chat session with [RECIPIENT].
-
-
- Unable to send your message to the chat session with [RECIPIENT].
-
-
- Error while moderating.
-
-
-
- You have been removed from the group.
-
-
- You have been removed from the group.
-
-
- You no longer have the ability to be in the chat session.
-
-
- [SOURCES] has said something new
-
-
- [SOURCES] have said something new
-
-
- The session initialization is timed out
-
-
- Home position set.
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] paid you L$[AMOUNT] [REASON].
- [NAME] paid you L$[AMOUNT].
- You paid [NAME] L$[AMOUNT] [REASON].
- You paid L$[AMOUNT].
- You paid [NAME] L$[AMOUNT].
- You paid L$[AMOUNT] [REASON].
- You failed to pay [NAME] L$[AMOUNT] [REASON].
- You failed to pay L$[AMOUNT].
- You failed to pay [NAME] L$[AMOUNT].
- You failed to pay L$[AMOUNT] [REASON].
- for [ITEM]
- for a parcel of land
- for a land access pass
- for deeding land
- to create a group
- to join a group
- to upload
- to publish a classified ad
-
- Giving L$ [AMOUNT]
- Uploading costs L$ [AMOUNT]
- This costs L$ [AMOUNT]
- Buying selected land for L$ [AMOUNT]
- This object costs L$ [AMOUNT]
-
- Everyone
- Officers
- Owners
- Online
-
- Uploading...
-
-Abuse Report
-
-
- New Shape
- New Skin
- New Hair
- New Eyes
- New Shirt
- New Pants
- New Shoes
- New Socks
- New Jacket
- New Gloves
- New Undershirt
- New Underpants
- New Skirt
- New Alpha
- New Tattoo
- New Physics
- Invalid Wearable
- New Gesture
- New Script
- New Note
- New Folder
- Contents
- Gesture
- Male Gestures
- Female Gestures
- Other Gestures
- Speech Gestures
- Common Gestures
-
- Male - Excuse me
- Male - Get lost
- Male - Blow kiss
- Male - Boo
- Male - Bored
- Male - Hey
- Male - Laugh
- Male - Repulsed
- Male - Shrug
- Male - Stick tougue out
- Male - Wow
-
- Female - Chuckle
- Female - Cry
- Female - Embarrassed
- Female - Excuse me
- Female - Get lost
- Female - Blow kiss
- Female - Boo
- Female - Bored
- Female - Hey
- Female - Hey baby
- Female - Laugh
- Female - Looking good
- Female - Over here
- Female - Please
- Female - Repulsed
- Female - Shrug
- Female - Stick tougue out
- Female - Wow
-
- /bow
- /clap
- /count
- /extinguish
- /kmb
- /muscle
- /no
- /no!
- /paper
- /pointme
- /pointyou
- /rock
- /scissor
- /smoke
- /stretch
- /whistle
- /yes
- /yes!
- afk
- dance1
- dance2
- dance3
- dance4
- dance5
- dance6
- dance7
- dance8
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
-
- none/none
- Can't load images larger than [WIDTH]*[HEIGHT]
-
-
-
-
-
-
- Despite our best efforts, something unexpected has gone wrong.
-
- Please check status.secondlifegrid.net to see if there is a known problem with the service.
- If you continue to experience problems, please check your network and firewall setup.
-
-
-
- Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday
- Sun:Mon:Tue:Wed:Thu:Fri:Sat
- January:February:March:April:May:June:July:August:September:October:November:December
- Jan:Feb:Mar:Apr:May:Jun:Jul:Aug:Sep:Oct:Nov:Dec
- [MDAY]
- AM
- PM
-
-
- US$ [AMOUNT]
-
-
- Membership
- Roles
- Group Identity
- Parcel Management
- Parcel Identity
- Parcel Settings
- Parcel Powers
- Parcel Access
- Parcel Content
- Object Management
- Accounting
- Notices
- Chat
-
-
- Delete selected items?
- Delete selected item?
-
- There are no items in this outfit
-
-
- Select an editor using the ExternalEditor setting.
- Cannot find the external editor you specified.
-Try enclosing path to the editor with double quotes.
-(e.g. "/path to my/editor" "%s")
- Error parsing the external editor command.
- External editor failed to run.
-
-
- Translation failed: [REASON]
- Error parsing translation response.
-
-
- Esc
- Space
- Enter
- Tab
- Ins
- Del
- Backsp
- Shift
- Ctrl
- Alt
- CapsLock
- Left
- Right
- Up
- Down
- Home
- End
- PgUp
- PgDn
-
- F1
- F2
- F3
- F4
- F5
- F6
- F7
- F8
- F9
- F10
- F11
- F12
-
- Add
- Subtract
- Multiply
- Divide
- PAD_DIVIDE
- PAD_LEFT
- PAD_RIGHT
- PAD_DOWN
- PAD_UP
- PAD_HOME
- PAD_END
- PAD_PGUP
- PAD_PGDN
- PAD_CENTER
- PAD_INS
- PAD_DEL
- PAD_Enter
- PAD_BUTTON0
- PAD_BUTTON1
- PAD_BUTTON2
- PAD_BUTTON3
- PAD_BUTTON4
- PAD_BUTTON5
- PAD_BUTTON6
- PAD_BUTTON7
- PAD_BUTTON8
- PAD_BUTTON9
- PAD_BUTTON10
- PAD_BUTTON11
- PAD_BUTTON12
- PAD_BUTTON13
- PAD_BUTTON14
- PAD_BUTTON15
-
- -
- =
- `
- ;
- [
- ]
- \
-
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L
- M
- N
- O
- P
- Q
- R
- S
- T
- U
- V
- W
- X
- Y
- Z
-
-
-
- Viewing particle beacons (blue)
- Viewing physical object beacons (green)
- Viewing scripted object beacons (red)
- Viewing scripted object with touch function beacons (red)
- Viewing sound beacons (yellow)
- Viewing media beacons (white)
- Hiding Particles
-
-
-
- About land
- Appearance
- Avatar
- Build
- Chat
- Compass
- Destinations
- Gestures
- How to
- Inventory
- Map
- Marketplace
- Mini-map
- Walk / run / fly
- Merchant outbox
- People
- Picks
- Places
- Preferences
- Profile
- Search
- Snapshot
- Speak
- Camera controls
- Voice settings
-
- Information about the land you're visiting
- Change your avatar
- Choose a complete avatar
- Building objects and reshaping terrain
- Chat with people nearby using text
- Compass
- Destinations of interest
- Gestures for your avatar
- How to do common tasks
- View and use your belongings
- Map of the world
- Go shopping
- Show nearby people
- Moving your avatar
- Transfer items to your marketplace for sale
- Friends, groups, and nearby people
- Places to show as favorites in your profile
- Places you've saved
- Preferences
- Edit or view your profile
- Find places, events, people
- Take a picture
- Speak with people nearby using your microphone
- Changing camera angle
- Volume controls for calls and people near you in world
-
- currently in your bottom toolbar
- currently in your left toolbar
- currently in your right toolbar
-
-
- Retain%
- Detail
- Better Detail
- Surface
- Solid
- Wrap
- Preview
- Normal
-
-
- Very Low
- Low
- Medium
- High
- Very High
-
-
diff --git a/indra/newview/skins/steam/xui/es/strings.xml b/indra/newview/skins/steam/xui/es/strings.xml
deleted file mode 100644
index 2b36c39e7e..0000000000
--- a/indra/newview/skins/steam/xui/es/strings.xml
+++ /dev/null
@@ -1,4925 +0,0 @@
-
-
-
-
- SECOND LIFE
-
-
- Portal de Soporte de Second Life
-
-
- Identificando el hardware...
-
-
- Instalando [APP_NAME]...
-
-
- Limpiando la caché...
-
-
- Iniciando la caché de las texturas...
-
-
- Iniciando VFS...
-
-
- Error de inicialización de gráficos. Actualiza tu controlador de gráficos.
-
-
- Restaurando...
-
-
- Cambiando la resolución...
-
-
- Brillo al máximo (antiguo)
-
-
- Iniciando la sesión. [APP_NAME] debe de aparecer congelado. Por favor, espere.
-
-
- Iniciando la sesión...
-
-
- Autenticando
-
-
- Realizando el mantenimiento de la cuenta...
-
-
- Ha fallado el intento previo de iniciar sesión. Iniciando sesión, intento [NUMBER]
-
-
- Cargando el mundo...
-
-
- Iniciando el navegador web incorporado...
-
-
- Iniciando multimedia...
-
-
- Cargando las fuentes...
-
-
- Comprobando los archivos de la caché (puede tardar entre 60 y 90 segundos)...
-
-
- Procesando la respuesta...
-
-
- Iniciando el mundo...
-
-
- Decodificando las imágenes...
-
-
- Iniciando QuickTime...
-
-
- No se ha encontrado QuickTime. Imposible iniciarlo.
-
-
- QuickTime se ha iniciado adecuadamente.
-
-
- Solicitando capacidades de la región...
-
-
- Solicitando capacidades de la región, intento [NUMBER]...
-
-
- Esperando la conexión con la región...
-
-
- Conectando con la región...
-
-
- Descargando la ropa...
-
-
- El servidor devolvió un certificado no válido o dañado. Ponte en contacto con el administrador de la cuadrícula.
-
-
- El nombre de host utilizado para acceder al servidor no es válido. Comprueba tu SLURL o el nombre de host de la cuadrícula.
-
-
- Parece que el certificado que devolvió la cuadrícula está caducado. Comprueba el reloj del sistema o consulta al administrador de la cuadrícula.
-
-
- El certificado que devolvió el servidor no puede utilizarse para SSL. Ponte en contacto con el administrador de la cuadrícula.
-
-
- La cadena de certificado del servidor contenía demasiados certificados. Ponte en contacto con el administrador de la cuadrícula.
-
-
- No se pudo verificar la firma del certificado devuelta por el servidor de la cuadrícula. Ponte en contacto con el administrador de la cuadrícula.
-
-
- Error de red: no se ha podido conectar; por favor, revisa tu conexión a internet.
-
-
- Error en el inicio de sesión.
-
-
- Salir
-
-
- http://join.secondlife.com/index.php?sourceid=1206_steam&lang=es-ES
-
-
- Ya no puedes acceder a Second Life con el visor que estás utilizando. Visita la siguiente página para descargar un nuevo visor:
-http://secondlife.com/download.
-
-Si deseas obtener más información, consulta las preguntas frecuentes que aparecen a continuación:
-http://secondlife.com/viewer-access-faq
-
-
- Actualización opcional del visor disponible: [VERSIÓN]
-
-
- Actualización necesaria del visor: [VERSIÓN]
-
-
- El agente ya ha iniciado sesión.
-
-
- Lo sentimos. No ha sido posible iniciar sesión.
-Comprueba si has introducido correctamente
- * El nombre de usuario (como juangarcia12 o estrella.polar)
- * Contraseña
-Asimismo, asegúrate de que la tecla Mayús esté desactivada.
-
-
- Como precaución de seguridad, se ha modificado tu contraseña.
-Dirígete a la página de tu cuenta en http://secondlife.com/password
-y responde a la pregunta de seguridad para restablecer la contraseña.
-Lamentamos las molestias.
-
-
- Hemos realizado unos cambios en nuestro sistema, por lo que deberás restablecer la contraseña.
-Dirígete a la página de tu cuenta en http://secondlife.com/password
-y responde a la pregunta de seguridad para restablecer la contraseña.
-Lamentamos las molestias.
-
-
- Second Life no está disponible temporalmente debido a tareas de mantenimiento.
-Actualmente, solo se permite iniciar sesión a los empleados.
-Consulta www.secondlife.com/status si deseas obtener actualizaciones.
-
-
- Las conexiones a Second Life se han restringido provisionalmente para garantizar que los usuarios que ya están conectados tengan la mejor experiencia posible.
-
-Durante este tiempo, las personas con cuentas gratuitas no podrán acceder a Second Life, ya que tienen prioridad los usuarios con una cuenta de pago.
-
-
- No se puede acceder a Second Life desde este ordenador.
-Si crees que se trata de un error, ponte en contacto con
-support@secondlife.com.
-
-
- No se podrá acceder a tu cuenta hasta las
-[HORA] (horario de la costa del Pacífico).
-
-
- En este momento no podemos completar la solicitud.
-Si deseas obtener asistencia, ponte en contacto con el departamento de soporte de Second Life a través de la página http://secondlife.com/support.
-Si no puedes cambiar la contraseña, llama al número (866) 476-9763.
-
-
- Se han detectado datos incorrectos en el inicio de sesión.
-Ponte en contacto con support@secondlife.com.
-
-
- Se están realizando tareas rutinarias de mantenimiento en tu cuenta.
-No se podrá acceder a tu cuenta hasta las
-[HORA] (horario de la costa del Pacífico).
-Si crees que se trata de un error, ponte en contacto con support@secondlife.com.
-
-
- La solicitud de cierre de sesión ha obtenido como resultado un error del simulador.
-
-
- El sistema está cerrando tu sesión en estos momentos.
-Tu cuenta no estará disponible hasta las
-[HORA] (horario de la costa del Pacífico).
-
-
- No se ha podido crear una sesión válida.
-
-
- No se ha podido establecer la conexión con un simulador.
-
-
- Tu cuenta solo puede acceder a Second Life
-entre las [INICIO] y las [FIN] (horario de la costa del Pacífico).
-Inténtalo de nuevo durante ese horario.
-Si crees que se trata de un error, ponte en contacto con support@secondlife.com.
-
-
- Parámetros incorrectos.
-Si crees que se trata de un error, ponte en contacto con support@secondlife.com.
-
-
- El parámetro correspondiente al nombre debe contener caracteres alfanuméricos.
-Si crees que se trata de un error, ponte en contacto con support@secondlife.com.
-
-
- El parámetro correspondiente al apellido debe contener caracteres alfanuméricos.
-Si crees que se trata de un error, ponte en contacto con support@secondlife.com.
-
-
- La región se está desconectando.
-Intenta iniciar sesión de nuevo en unos instantes.
-
-
- El agente no se encuentra en la región.
-Intenta iniciar sesión de nuevo en unos instantes.
-
-
- A esta región ya se ha accedido en otra sesión.
-Intenta iniciar sesión de nuevo en unos instantes.
-
-
- Se ha salido de la región en la sesión anterior.
-Intenta iniciar sesión de nuevo en unos instantes.
-
-
- La región aún está cerrando la sesión anterior.
-Intenta iniciar sesión de nuevo en unos instantes.
-
-
- Se ha salido de la región en la última sesión.
-Intenta iniciar sesión de nuevo en unos instantes.
-
-
- La región ha comenzado el proceso de cierre de sesión.
-Intenta iniciar sesión de nuevo en unos instantes.
-
-
- El sistema ha comenzado a cerrar la última sesión.
-Intenta iniciar sesión de nuevo en unos instantes.
-
-
- Esta región puede estar teniendo problemas. Por favor, comprueba tu conexión a Internet.
-
-
- Guardando tus configuraciones...
-
-
- Cerrando sesión...
-
-
- Cerrando...
-
-
- Has sido desconectado de la región en la que estabas.
-
-
- Has sido enviado a una región no válida.
-
-
- Probando la desconexión del visor
-
-
- Persona
-
-
- (sin nombre)
-
-
- Propietario:
-
-
- Público
-
-
- (Grupo)
-
-
- En venta: [AMOUNT] L$
-
-
- Construir el grupo
-
-
- No construir
-
-
- Construir el grupo
-
-
- No seguro
-
-
- No volar
-
-
- Scripts el grupo
-
-
- No scripts
-
-
- Terreno:
-
-
- Aquí se puede arrastrar sólo un ítem
-
-
-
- No puedes colocar objetos en tu buzón de salida de comerciante
-
-
- Uno o varios de estos objetos no se pueden vender o transferir.
-
-
- Tu buzón de salida de comerciante sólo puede aceptar objetos procedentes directamente de tu inventario
-
-
- No puedes poner artículos que llevas puestos en el buzón de salida de comerciante
-
-
- No puedes poner tarjetas de visita en tu buzón de salida de comerciante
-
-
- La profundidad de carpetas anidadas excede de 3
-
-
- El número de subcarpetas de la carpeta de nivel superior excede de 20
-
-
- El número de elementos de la carpeta de nivel superior excede de 200
-
-
- No puedes mover una carpeta a su carpeta secundaria
-
-
- No puedes mover una carpeta dentro de sí misma
-
-
- Pulsa para ver esta página web
-
-
- Pulsa para ver la información de este lugar
-
-
- Pulsa para ver el perfil del Residente
-
-
- Obtén más información acerca de este residente.
-
-
- Pulsa para silenciar a este Residente
-
-
- Pulsa para quitar el silencio a este Residente
-
-
- Pulsa para enviar un MI a este Residente
-
-
- Pulsa para pagar a este Residente
-
-
- Pulsa para enviar una petición de teleporte a este Residente
-
-
- Pulsa para enviar una petición de amistad a este Residente
-
-
- Pulsa para ver la descripción de este grupo
-
-
- Pulsa para ver la descripción de este evento
-
-
- Pulsa para ver este clasificado
-
-
- Pulsa para ver la descripción de esta parcela
-
-
- Pulsa para teleportarte a esta posición
-
-
- Pulsa para ver la descripción de este objeto
-
-
- Pulsa para ver en el mapa esta localización
-
-
- Pulsa para ejecutar el comando secondlife://
-
-
-
- Teleportarse a
-
-
- Mostrarla en el mapa
-
-
- Silenciar
-
-
- Quitar el silencio
-
-
- MI
-
-
- Pagar
-
-
- Ofrecer teleporte a
-
-
- Petición de amistad
-
-
- Cerrar (⌘W)
-
-
- Cerrar (Ctrl+W)
-
-
- Cerrar
-
-
- Maximizar
-
-
- Minimizar
-
-
- Separar la ventana
-
-
- Fijar
-
-
- Ver la Ayuda
-
-
- Buscando...
-
-
- No se ha encontrado.
-
-
- Reintentando...
-
-
- Notas de la versión
-
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- Cargando...
-
-
- (nadie)
-
-
- (esperando)
-
-
- (ninguno)
-
-
- Avaline: [ORDER]
-
-
- No hay ningún error
-
-
- Petición de asset: fallida
-
-
- Petición de asset: el archivo no existe
-
-
- Petición de asset: no se encontró el asset en la base de datos
-
-
- Fin del archivo
-
-
- No puede abrirse el archivo
-
-
- No se ha encontrado el archivo
-
-
- Tiempo de transferencia del archivo
-
-
- Circuito desconectado
-
-
- No concuerda el precio en el visor y en el servidor
-
-
- Estado desconocido
-
-
- la textura
-
-
- el sonido
-
-
- la tarjeta de visita
-
-
- el hito
-
-
- el script antiguo
-
-
- esa ropa
-
-
- el objeto
-
-
- la nota
-
-
- la carpeta
-
-
- la ruta
-
-
- ese script de LSL2
-
-
- el código intermedio de LSL
-
-
- esa textura tga
-
-
- esa parte del cuerpo
-
-
- la foto
-
-
- Objetos Perdidos
-
-
- esa imagen targa
-
-
- la Papelera
-
-
- esa imagen jpeg
-
-
- la animación
-
-
- el gesto
-
-
- simstate
-
-
- ese favorito
-
-
- el enlace
-
-
- enlace de la carpeta
-
-
- red
-
-
- (Edición de Apariencia)
-
-
- Ausente
-
-
- Ocupado
-
-
- Ignorado
-
-
- Susto
-
-
- Enfado
-
-
- Ausente
-
-
- Salto mortal atrás
-
-
- Carcajada
-
-
- Gran sonrisa
-
-
- Mandar un beso
-
-
- Aburrimiento
-
-
- Reverencia
-
-
- Aplauso
-
-
- Reverencia floreada
-
-
- Llanto
-
-
- Baile 1
-
-
- Baile 2
-
-
- Baile 3
-
-
- Baile 4
-
-
- Baile 5
-
-
- Baile 6
-
-
- Baile 7
-
-
- Baile 8
-
-
- Desdén
-
-
- Beber
-
-
- Azorarse
-
-
- Negar con el dedo
-
-
- Éxito con el puño
-
-
- Yoga flotando
-
-
- Fruncir el ceño
-
-
- Impaciente
-
-
- Salto de alegría
-
-
- Bésame el culo
-
-
- Besar
-
-
- Reír
-
-
- Sacar músculo
-
-
- No (con enfado)
-
-
- No
-
-
- Ña-Ña-Ña
-
-
- Puñetazo uno-dos
-
-
- Abrir la boca
-
-
- 'V' con los dedos
-
-
- Señalar a otro/a
-
-
- Señalarse
-
-
- Puñetazo izquierdo
-
-
- Puñetazo derecho
-
-
- PPT cuenta
-
-
- PPT papel
-
-
- PPT piedra
-
-
- PPT tijera
-
-
- Repulsa
-
-
- Patada circular
-
-
- Triste
-
-
- Saludo militar
-
-
- Gritar
-
-
- Encogerse de hombros
-
-
- Sonreír
-
-
- Fumar: en la mano
-
-
- Fumar
-
-
- Fumar: tirar el cigarro
-
-
- Sorpresa
-
-
- Estocadas
-
-
- Berrinche
-
-
- Sacar la lengua
-
-
- Agitar la mano
-
-
- Cuchichear
-
-
- Pitar
-
-
- Guiño
-
-
- Guiño (Hollywood)
-
-
- Preocuparse
-
-
- Sí (contento)
-
-
- Sí
-
-
- Cargando...
-
-
- Sin conexión
-
-
- [PRICE] L$ por [AREA] m²
-
-
- No se ha encontrado.
-
-
- OK
-
-
- Fin prematuro del archivo
-
-
- No se puede encontrar ROOT o JOINT.
-
-
- susurra:
-
-
- grita:
-
-
- Conectando al chat de voz...
-
-
- Conectado
-
-
- La voz no está disponible en su localización actual
-
-
- Desconectado del chat de voz
-
-
- Vas a ser reconectado al chat de voz con los cercanos
-
-
- '[OBJECTNAME]', un objeto propiedad de '[OWNERNAME]', localizado en [REGIONNAME] con la posición [REGIONPOS], ha recibido permiso para: [PERMISSIONS].
-
-
- A '[OBJECTNAME]', un objeto propiedad de '[OWNERNAME]', localizado en [REGIONNAME] con la posición [REGIONPOS], se le ha denegado el permiso para: [PERMISSIONS].
-
-
- Cogerle a usted dólares Linden (L$)
-
-
- Actuar en sus controles de entrada
-
-
- Reconfigurar sus controles de entrada
-
-
- Ejecutar animaciones en su avatar
-
-
- Anexarse a su avatar
-
-
- Anular la propiedad y que pase a ser público
-
-
- Enlazar y desenlazar de otros objetos
-
-
- Añadir y quitar uniones con otros objetos
-
-
- Cambiar sus permisos
-
-
- Seguir su cámara
-
-
- Controlar su cámara
-
-
- General
-
-
- Moderado
-
-
- Adulto
-
-
- Desconectado
-
-
- Desconocido
-
-
- (desconocido)
-
-
- Estado /Región completa
-
-
- Estado / Homestead
-
-
- Continente / Homestead
-
-
- Continente / Región completa
-
-
- Todos los archivos
-
-
- Sonidos
-
-
- Animaciones
-
-
- Imágenes
-
-
- Guardar
-
-
- Cargar
-
-
- Imágenes Targa
-
-
- Imágenes de mapa de bits
-
-
- Archivo de película AVI
-
-
- Archivo de anim. XAF
-
-
- Archivo XML
-
-
- Archivo RAW
-
-
- Imágenes comprimidas
-
-
- Cargar archivos
-
-
- Elegir directorio
-
-
- Scripts
-
-
- Salir del estado ausente
-
-
- Pasar al estado ausente
-
-
- Salir del estado ocupado
-
-
- Pasar al estado ocupado
-
-
- Forma
-
-
- Piel
-
-
- Pelo
-
-
- Ojos
-
-
- Camisa
-
-
- Pantalón
-
-
- Zapatos
-
-
- Calcetines
-
-
- Chaqueta
-
-
- Guantes
-
-
- Camiseta
-
-
- Ropa interior
-
-
- Falda
-
-
- Alfa
-
-
- Tatuaje
-
-
- Física
-
-
- inválido/a
-
-
- ninguno
-
-
- Camisa no puesta
-
-
- Pantalones no puestos
-
-
- Zapatos no puestos
-
-
- Calcetines no puestos
-
-
- Chaqueta no puesta
-
-
- Guantes no puestos
-
-
- Camiseta no puesta
-
-
- Ropa interior no puesta
-
-
- Falda no puesta
-
-
- Alfa no puesta
-
-
- Tatuaje no puesto
-
-
- Física no puesta
-
-
- no válido/a
-
-
- Crear una anatomía nueva
-
-
- Crear una piel nueva
-
-
- Crear pelo nuevo
-
-
- Crear ojos nuevos
-
-
- Crear una camisa nueva
-
-
- Crear unos pantalones nuevos
-
-
- Crear unos zapatos nuevos
-
-
- Crear unos calcetines nuevos
-
-
- Crear una chaqueta nueva
-
-
- Crear unos guantes nuevos
-
-
- Crear una camiseta nueva
-
-
- Crear ropa interior nueva
-
-
- Crear una falda nueva
-
-
- Crear una capa alfa nueva
-
-
- Crear un tatuaje nuevo
-
-
- Crear nueva física
-
-
- no válido/a
-
-
- Nuevo [WEARABLE_ITEM]
-
-
- Siguiente
-
-
- OK
-
-
- Aviso de grupo
-
-
- Avisos del grupo
-
-
- Enviado por
-
-
- Adjunto:
-
-
- Ver los avisos pasados u optar por dejar de recibir aquí estos mensajes.
-
-
- Abrir el adjunto
-
-
- Guardar el adjunto
-
-
- Ofrecimiento de teleporte
-
-
- Llegaron avisos nuevos mientras estabas ausente...
-
-
- Tienes [%d] aviso/s más
-
-
- Brazo der.
-
-
- Cabeza
-
-
- Brazo izq.
-
-
- Pierna izq.
-
-
- Torso
-
-
- Pierna der.
-
-
- Bajo
-
-
- Medio
-
-
- Alto
-
-
- Pulsa ESC para salir de la vista subjetiva
-
-
- ¿No encuentras lo que buscas? Prueba con [secondlife:///app/search/all/[SEARCH_TERM] Buscar].
-
-
- ¿No encuentras lo que buscas? Prueba con [secondlife:///app/search/places/[SEARCH_TERM] Buscar].
-
-
- Arrastra aquí un hito para tenerlo en tus favoritos.
-
-
- No tienes en tu inventario una copia de esta textura
-
-
- Aquí aparecerán algunos de los objetos que recibas, como los regalos Premium. Después puedes arrastrarlos a tu inventario.
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
-
-
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
-
-
- Cualquier usuario puede vender objetos en el mercado.
-
-
-
- Para hacerte comerciante debes [[MARKETPLACE_CREATE_STORE_URL] crear una tienda del Mercado].
-
-
- El buzón de salida está vacío.
-
-
-
- Arrastra carpetas a esta sección y pulsa en "Enviar al Mercado" para incluirlas en la lista de venta del [[MARKETPLACE_DASHBOARD_URL] Mercado].
-
-
- Sin errores
-
-
- Error: Para poder enviar objetos al mercado, debes registrarte como comerciante (es gratis).
-
-
- Error: Esta carpeta está vacía.
-
-
- Error: Este objeto no se pudo subir porque tu cuenta de comerciante tiene demasiados objetos que no están asociados a productos. Para corregirlo, inicia sesión en la página web del mercado y asocia más objetos.
-
-
- Error: Este elemento contiene demasiados objetos. Para corregir el error, guarda objetos en cajas de forma que el total de objetos sea menor que 200.
-
-
- Error: Este objeto contiene demasiados niveles de carpetas anidadas. Reorganízalo de forma que tenga como máximo 3 niveles de carpetas anidadas.
-
-
- Error: Este objeto no se puede vender en el mercado.
-
-
- Error: Este objeto tiene un problema. Vuelve a intentarlo más tarde.
-
-
- Abrir hitos
-
-
-
-
-
-
-
-
- Cargando el contenido...
-
-
- No hay contenido
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Mi Inventario
-
-
- Biblioteca
-
-
- Texturas
-
-
- Sonidos
-
-
- Tarjetas de visita
-
-
- Hitos
-
-
- Scripts
-
-
- Ropa
-
-
- Objetos
-
-
- Notas
-
-
- Carpeta nueva
-
-
- Inventario
-
-
- Imágenes sin comprimir
-
-
- Partes del cuerpo
-
-
- Papelera
-
-
- Álbum de fotos
-
-
- Objetos Perdidos
-
-
- Sonidos sin comprimir
-
-
- Animaciones
-
-
- Gestos
-
-
- Mis Favoritos
-
-
- Mis Favoritos
-
-
- Vestuario actual
-
-
- Vestuario inicial
-
-
- Mis vestuarios
-
-
- Accesorios
-
-
- Redes
-
-
- Amigos
-
-
- Todas
-
-
- No tienes puestos anexos
-
-
- Anexos (quedan [COUNT] ranuras)
-
-
- Comprar
-
-
- Comprar por L$
-
-
- Piedra
-
-
- Metal
-
-
- Cristal
-
-
- Madera
-
-
- Carne
-
-
- Plástico
-
-
- Goma
-
-
- Claridad
-
-
- Mayúsculas
-
-
- Ctrl
-
-
- Tórax
-
-
- Cráneo
-
-
- Hombro izquierdo
-
-
- Hombro derecho
-
-
- Mano izq.
-
-
- Mano der.
-
-
- Pie izq.
-
-
- Pie der.
-
-
- Columna
-
-
- Pelvis
-
-
- Boca
-
-
- Barbilla
-
-
- Oreja izq.
-
-
- Oreja der.
-
-
- Ojo izq.
-
-
- Ojo der.
-
-
- Nariz
-
-
- Brazo der.
-
-
- Antebrazo der.
-
-
- Brazo izq.
-
-
- Antebrazo izq.
-
-
- Cadera der.
-
-
- Muslo der.
-
-
- Pantorrilla der.
-
-
- Cadera izq.
-
-
- Muslo izq.
-
-
- Pantorrilla izq.
-
-
- Abdomen
-
-
- Pecho izquierdo
-
-
- Pecho derecho
-
-
- Cuello
-
-
- Centro del avatar
-
-
- Punto de colocación no válido
-
-
- [AGEYEARS] [AGEMONTHS] de edad
-
-
- [AGEYEARS] de edad
-
-
- [AGEMONTHS] de edad
-
-
- [AGEWEEKS] de edad
-
-
- [AGEDAYS] de edad
-
-
- Registrado hoy
-
-
- [COUNT] año
-
-
- [COUNT] años
-
-
- [COUNT] años
-
-
- [COUNT] mes
-
-
- [COUNT] meses
-
-
- [COUNT] meses
-
-
- [COUNT] semana
-
-
- [COUNT] semanas
-
-
- [COUNT] semanas
-
-
- [COUNT] día
-
-
- [COUNT] días
-
-
- [COUNT] días
-
-
- [COUNT] miembro
-
-
- [COUNT] miembros
-
-
- [COUNT] miembros
-
-
- Residente
-
-
- Prueba
-
-
- Miembro fundador
-
-
- Empleado de Linden Lab
-
-
- Ha usado información sobre la forma de pago
-
-
- Hay información archivada sobre la forma de pago
-
-
- No hay información archivada sobre la forma de pago
-
-
- Edad verificada
-
-
- Edad no verificada
-
-
- Centro 2
-
-
- Arriba der.
-
-
- Arriba
-
-
- Arriba izq.
-
-
- Centro
-
-
- Abajo izq.
-
-
- Abajo
-
-
- Abajo der.
-
-
- Descargado, compilándolo
-
-
- No se encuentra el script en el servidor.
-
-
- Problema al descargar
-
-
- Permisos insuficientes para descargar un script.
-
-
- Permisos insuficientes para
-
-
- Fallo desconocido en la descarga
-
-
- Recompilando
-
-
- recompilar
-
-
- Progreso del reinicio
-
-
- restaurar
-
-
- Configurar según se ejecuta
-
-
- Configurando según se ejecuta
-
-
- Configurar sin ejecutar
-
-
- Configurando sin ejecutarlo
-
-
- ¡Compilación correcta!
-
-
- Compilación correcta, guardando...
-
-
- Guardado.
-
-
- Script (objeto fuera de rango)
-
-
- El objeto [OBJECT] es propiedad de [OWNER]
-
-
- ninguno
-
-
-
- (Desconocido)
-
-
-
-
- [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]
-
-
-
-
- Saldo
-
-
- Créditos
-
-
- Débitos
-
-
- Total
-
-
- No se encontraron datos del grupo
-
-
- parent estate
-
-
- continente
-
-
- teen
-
-
- cualquiera
-
-
- error
-
-
- todos los estados propiedad de [OWNER]
-
-
- todos los estados que posees
-
-
- todos los estados que administras para [OWNER]
-
-
- Resientes autorizados: ([ALLOWEDAGENTS], de un máx. de [MAXACCESS])
-
-
- Grupos autorizados: ([ALLOWEDGROUPS], de un máx. de [MAXACCESS])
-
-
- Memoria de los scripts de la parcela
-
-
- Parcelas listadas: [PARCELS]
-
-
- Memoria usada: [COUNT] kb de un máx de [MAX] kb; [AVAILABLE] kb disponibles
-
-
- Memoria usada: [COUNT] kb
-
-
- URLs de los scripts de la parcela
-
-
- URLs usadas: [COUNT] de un máx. de [MAX]; [AVAILABLE] disponibles
-
-
- URLs usadas: [COUNT]
-
-
- Error al obtener la información
-
-
- No hay una parcela seleccionada
-
-
- Error: la información del script sólo está disponible en tu región actual
-
-
- Obteniendo la información...
-
-
- No tienes permiso para examinar esta parcela
-
-
- Sentado en
-
-
- Tórax
-
-
- Cabeza
-
-
- Hombro izquierdo
-
-
- Hombro derecho
-
-
- Mano izq.
-
-
- Mano der.
-
-
- Pie izq.
-
-
- Pie der.
-
-
- Anterior
-
-
- Pelvis
-
-
- Boca
-
-
- Barbilla
-
-
- Oreja izq.
-
-
- Oreja der.
-
-
- Ojo izq.
-
-
- Ojo der.
-
-
- Nariz
-
-
- Brazo der.
-
-
- Antebrazo der.
-
-
- Brazo izq.
-
-
- Antebrazo izq.
-
-
- Cadera der.
-
-
- Muslo der.
-
-
- Pantorrilla der.
-
-
- Cadera izq.
-
-
- Muslo izq.
-
-
- Pantorrilla izq.
-
-
- Vientre
-
-
- Pecho derecho
-
-
- Pecho izquierdo
-
-
- HUD: Centro 2
-
-
- HUD: arriba der.
-
-
- HUD: arriba centro
-
-
- HUD: arriba izq.
-
-
- HUD: Centro 1
-
-
- HUD: abajo izq.
-
-
- HUD: abajo
-
-
- HUD: abajo der.
-
-
- Línea [LINE], Columna [COLUMN]
-
-
- [COUNT] resultados
-
-
- Contenido del objeto
-
-
- Script nuevo
-
-
- El Residente al que has enviado un mensaje ha solicitado que no se le moleste porque está en modo ocupado. Podrá ver tu mensaje más adelante, ya que éste aparecerá en su panel de MI.
-
-
- (Por el nombre)
-
-
- (Residente)
-
-
- (Objeto)
-
-
- (Grupo)
-
-
- (Externo)
-
-
- No se ha aportado un contrato para este estado.
-
-
- No se ha aportado un contrato para este estado. El terreno de este estado lo vende el propietario del estado, no Linden Lab. Por favor, contacta con ese propietario para informarte sobre la venta.
-
-
-
-
-
- Propiedad del grupo
-
-
- Público
-
-
- Configuración local
-
-
- Configuración de la región
-
-
- Clics: [TELEPORT] teleportes, [MAP] mapa, [PROFILE] perfil
-
-
- (se actualizará tras la publicación)
-
-
- No has creado destacados ni clasificados. Pulsa el botón Más para crear uno.
-
-
- El usuario no tiene clasificados ni destacados
-
-
- Cargando...
-
-
- Vista previa
-
-
- Propiedades
-
-
- Un objeto de nombre
-
-
- propiedad del grupo
-
-
- propiedad de un grupo desconocido
-
-
- propiedad de
-
-
- propiedad de un usuario desconocido
-
-
- te ha dado
-
-
- Rechazas [DESC] de <nolink>[NAME]</nolink>.
-
-
- Total
-
-
- comprado
-
-
- pagado a ti
-
-
- pagado en
-
-
- pase comprado a
-
-
- cuotas pagadas para el evento
-
-
- precio pagado por el evento
-
-
- Saldo
-
-
- Créditos
-
-
- Débitos
-
-
- [weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
-
-
- Contenidos
-
-
- Artículos adquiridos
-
-
- Cancelar
-
-
- Subir [NAME] cuesta [AMOUNT] L$
-
-
- Comprar esto cuesta [AMOUNT] L$
-
-
- Extensión de archivo desconocida [.%s]
-Se esperaba .wav, .tga, .bmp, .jpg, .jpeg, o .bvh
-
-
- Ignorar
-
-
- Guardarme este hito...
-
-
- Editar este hito...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Mayús+
-
-
- Archivo guardado
-
-
- Recibiendo
-
-
- AM
-
-
- PM
-
-
- PST
-
-
- PDT
-
-
- Adelante
-
-
- Izquierda
-
-
- Derecha
-
-
- Atrás
-
-
- Norte
-
-
- Sur
-
-
- Oeste
-
-
- Este
-
-
- Arriba
-
-
- Abajo
-
-
- Cualquier categoría
-
-
- Compras
-
-
- Terreno en alquiler
-
-
- Propiedad en alquiler
-
-
- Atracción especial
-
-
- Nuevos productos
-
-
- Empleo
-
-
- Se busca
-
-
- Servicios
-
-
- Personal
-
-
- Ninguno
-
-
- Localización Linden
-
-
- Adulto
-
-
- Arte y Cultura
-
-
- Negocios
-
-
- Educativo
-
-
- Juegos de azar
-
-
- Entretenimiento
-
-
- Para recién llegados
-
-
- Parques y Naturaleza
-
-
- Residencial
-
-
- Artes escénicas
-
-
- Otra
-
-
- Terreno en alquiler
-
-
- Cualquiera
-
-
- Tú
-
-
- Múltiples medias
-
-
- Play/Pausa los media
-
-
- Ha habido un error analizando la línea de comando.
-Por favor, consulta: http://wiki.secondlife.com/wiki/Client_parameters
-Error:
-
-
- [APP_NAME] Uso de línea de comando:
-
-
- [APP_NAME] no puede acceder a un archivo que necesita.
-
-Puede ser porque estés ejecutando varias copias, o porque tu sistema crea -equivocadamente- que el archivo está abierto.
-Si este mensaje persiste, reinicia tu ordenador y vuelve a intentarlo.
-Si aun así sigue apareciendo el mensaje, debes desinstalar completamente [APP_NAME] y reinstalarlo.
-
-
- Error fatal
-
-
- [APP_NAME] requiere un procesador con AltiVec (G4 o posterior).
-
-
- [APP_NAME] ya se está ejecutando.
-Revisa tu barra de tareas para encontrar una copia minimizada del programa.
-Si este mensaje persiste, reinicia tu ordenador.
-
-
- En su anterior ejecución, [APP_NAME] se congeló o se cayó.
-¿Quieres enviar un informe de caída?
-
-
- Alerta
-
-
- [APP_NAME] no encuentra DirectX 9.0b o superior.
-[APP_NAME] usa DirectX para detectar el hardware o los drivers no actualizados que pueden provocar problemas de estabilidad, ejecución pobre y caídas. Aunque puedes ejecutar [APP_NAME] sin él, recomendamos encarecidamente hacerlo con DirectX 9.0b.
-
-¿Quieres continuar?
-
-
- ¡Atención!
-
-
- Las actualizaciones automáticas no están todavía implementadas para Linux.
-Por favor, descarga la última versión desde www.secondlife.com.
-
-
- Fallo en RegisterClass
-
-
- Error
-
-
- No puede ejecutarse a pantalla completa de [WIDTH] x [HEIGHT].
-Ejecutándose en una ventana.
-
-
- Error Shutdown destruyendo la ventana (DestroyWindow() failed)
-
-
- Error Shutdown
-
-
- No se puede construir el 'GL device context'
-
-
- No se puede encontrar un formato adecuado de píxel
-
-
- No se puede conseguir la descripción del formato de píxel
-
-
- Para ejecutarse, [APP_NAME] necesita True Color (32-bit).
-Por favor, en las configuraciones de tu ordenador ajusta el modo de color a 32-bit.
-
-
- [APP_NAME] no puede ejecutarse porque no puede obtener un canal alpha de 8 bit. Generalmente, se debe a alguna cuestión de los drivers de la tarjeta de vídeo.
-Por favor, comprueba que tienes instalados los últimos drivers para tu tarjeta de vídeo.
-Comprueba también que tu monitor esta configurado para True Color (32-bit) en Panel de Control > Apariencia y temas > Pantalla.
-Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
-
-
- No se puede configurar el formato de píxel
-
-
- No se puede crear el 'GL rendering context'
-
-
- No se puede activar el 'GL rendering context'
-
-
- [APP_NAME] no puede ejecutarse porque los drivers de tu tarjeta de vídeo o no están bien instalados, o no están actualizados, o son para hardware no admitido. Por favor, comprueba que tienes los drivers más actuales para tu tarjeta de vídeo, y, aunque los tengas, intenta reinstalarlos.
-
-Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
-
-
- Barba del día
-
-
- Blanco del todo
-
-
- Ojos de cómic
-
-
- Arqueadas
-
-
- Brazos: longitud
-
-
- Cortos
-
-
- Lóbulos
-
-
- Nuca: largo
-
-
- Marcadas
-
-
- Bangs
-
-
- Ojos pequeños
-
-
- Barriga: tamaño
-
-
- Grande
-
-
- Culo grande
-
-
- Pelo: moño
-
-
- Pelo: tupé
-
-
- Pelo: melena alta
-
-
- Cabeza grande
-
-
- Grandes pectorales
-
-
- Crestas grandes
-
-
- Negro
-
-
- Rubio
-
-
- Pelo rubio
-
-
- Colorete
-
-
- Color del colorete
-
-
- Opacidad del colorete
-
-
- Definición del cuerpo
-
-
- Cuerpo: gordura
-
-
- Pecas del cuerpo
-
-
- Cuerpo grueso
-
-
- Cuerpo: grosor
-
-
- Cuerpo delgado
-
-
- Abiertas
-
-
- Busto: firmeza
-
-
- Busto: canalillo
-
-
- Busto: tamaño
-
-
- Puente: ancho
-
-
- Aumentar
-
-
- Arco ciliar
-
-
- Bug Eyes
-
-
- Ojos saltones
-
-
- Bulbosa
-
-
- Nariz de porra
-
-
- Masa del busto
-
-
- Suavizado del busto
-
-
- Gravedad del busto
-
-
- Aerodinámica del busto
-
-
- Efecto máx.
-
-
- Elasticidad
-
-
- Ganancia
-
-
- Amortiguación
-
-
- Efecto máx.
-
-
- Elasticidad
-
-
- Ganancia
-
-
- Amortiguación
-
-
- Efecto máx.
-
-
- Elasticidad
-
-
- Ganancia
-
-
- Amortiguación
-
-
- Masa de la barriga
-
-
- Suavizado de la barriga
-
-
- Gravedad de la barriga
-
-
- Aerodinámica de la barriga
-
-
- Efecto máx.
-
-
- Elasticidad
-
-
- Ganancia
-
-
- Amortiguación
-
-
- Masa del culo
-
-
- Suavizado del culo
-
-
- Gravedad del culo
-
-
- Aerodinámica del culo
-
-
- Efecto máx.
-
-
- Elasticidad
-
-
- Ganancia
-
-
- Amortiguación
-
-
- Efecto máx.
-
-
- Elasticidad
-
-
- Ganancia
-
-
- Amortiguación
-
-
- Cejijuntas
-
-
- Pelo tupido
-
-
- Culo: tamaño
-
-
- Gravedad del culo
-
-
- Polisón
-
-
- Sin polisón
-
-
- Con polisón
-
-
- Cortito
-
-
- Pómulos
-
-
- Tórax: tamaño
-
-
- Barbilla: ángulo
-
-
- Barbilla: contorno
-
-
- Barba en collar
-
-
- Barbilla: largo
-
-
- Hacia la barbilla
-
-
- Barbilla retraída
-
-
- Barbilla prominente
-
-
- Papada
-
-
- Transparente
-
-
- Remarcar
-
-
- Ojos juntos
-
-
- Cerrar
-
-
- Trasera cerrada
-
-
- Frontal cerrado
-
-
- Cerrada
-
-
- Cerrada
-
-
- Poco abultada
-
-
- Espalda
-
-
- Escote
-
-
- Hacia abajo
-
-
- Hacia arriba
-
-
- Caídos
-
-
- Nariz torcida
-
-
- Acampanado
-
-
- Oscuridad
-
-
- Verde oscuro
-
-
- Más oscuros
-
-
- Remarcar
-
-
- Tacones por defecto
-
-
- Densas
-
-
- Mucha papada
-
-
- Poco
-
-
- Muy abultada
-
-
- Orejas: ángulo
-
-
- Orejas: tamaño
-
-
- Orejas: forma
-
-
- Cabeza: ahuevada
-
-
- Ojos: bolsas
-
-
- Ojos: color
-
-
- Ojos: profundidad
-
-
- Ojos: brillo
-
-
- Ojos: apertura
-
-
- Ojos: simetría
-
-
- Ojos: tamaño
-
-
- Ojos: separación
-
-
- Cejas: arco
-
-
- Cejas: densidad
-
-
- Cejas: altura
-
-
- Cejas: en V
-
-
- Cejas: tamaño
-
-
- Pestañas: longitud
-
-
- Contorno de ojos
-
-
- Contorno de ojos: color
-
-
- Eyes Bugged
-
-
- Cara: simetría
-
-
- Rasgos marcados
-
-
- Ojos separados
-
-
- Prominentes
-
-
- Mujer
-
-
- Sin dedos
-
-
- Con dedos
-
-
- Campana
-
-
- Redondeadas
-
-
- Culo plano
-
-
- Cabeza plana
-
-
- Empeine bajo
-
-
- Pie: tamaño
-
-
- Frente: ángulo
-
-
- Hacia la frente
-
-
- Pecas
-
-
- Flequillo
-
-
- Sin cortar
-
-
- Contorno completo
-
-
- Sin cortar
-
-
- Pelo: volumen a los lados
-
-
- Volumen total
-
-
- Con brillo
-
-
- Guantes: dedos
-
-
- Guantes: largo
-
-
- Pelo
-
-
- Pelo: nuca
-
-
- Pelo: delante
-
-
- Pelo: lados
-
-
- Peinado: dirección
-
-
- Pelo: espesor
-
-
- Pelo: espesor
-
-
- Pelo: inclinación
-
-
- A la izq.
-
-
- A la der.
-
-
- Pelo: volumen
-
-
- Manos: tamaño
-
-
- Muy largo
-
-
- Cabeza: longitud
-
-
- Cabeza: forma
-
-
- Cabeza: tamaño
-
-
- Cabeza: estiramiento
-
-
- Tacón: altura
-
-
- Tacón: forma
-
-
- Altura
-
-
- Subir
-
-
- Tacones altos
-
-
- Mandíbula alta
-
-
- Suela gorda
-
-
- Pegada
-
-
- Arrriba
-
-
- Cadera: altura
-
-
- Cadera: ancho
-
-
- Pegadas
-
-
- Línea de ojos: color
-
-
- Línea de ojos: opacidad
-
-
- Ojos: lagrimal
-
-
- Inner Eye Shadow
-
-
- Línea de ojos
-
-
- Chaqueta: largo
-
-
- Chaqueta: arrugas
-
-
- Mandíbula: ángulo
-
-
- Maxilar inferior
-
-
- Mandíbula: forma
-
-
- Más junto
-
-
- Mofletes
-
-
- Rodillas: ángulo
-
-
- Zambas
-
-
- Aumentar
-
-
- Manos grandes
-
-
- Raya: izq.
-
-
- Piernas: longitud
-
-
- Piernas: musculatura
-
-
- Menos
-
-
- Menos gordura
-
-
- Menos tupida
-
-
- Menos pecas
-
-
- Menos grosor
-
-
- Más levantado
-
-
- Menos michelines
-
-
- Pocos músculos
-
-
- Poca musculatura
-
-
- Menos sonrosada
-
-
- Menos redondeada
-
-
- Menos cartucheras
-
-
- Menos cuadrada
-
-
- Menos volumen
-
-
- Pequeña
-
-
- Más luminosos
-
-
- Labio: hoyuelo
-
-
- Hoyuelo marcado
-
-
- Labios: grosor
-
-
- Labios sonrosados
-
-
- Labios: ratio
-
-
- Labios: prominencia
-
-
- Labios: ancho
-
-
- Brillo de labios
-
-
- Barra de labios
-
-
- Barra de labios: color
-
-
- Más
-
-
- Cabeza alargada
-
-
- Cadera larga
-
-
- Piernas largas
-
-
- Cuello largo
-
-
- Coletas largas
-
-
- Cola de caballo larga
-
-
- Torso largo
-
-
- Brazos largos
-
-
- Pantalón suelto
-
-
- Camiseta suelta
-
-
- Puños anchos
-
-
- Michelines
-
-
- Bajar
-
-
- Tacones bajos
-
-
- Mandíbula baja
-
-
- Suela fina
-
-
- Suelta
-
-
- Abajo
-
-
- Puente: abajo
-
-
- Mejillas: abajo
-
-
- Varón
-
-
- Raya: en medio
-
-
- Más
-
-
- Más colorete
-
-
- Más gordura
-
-
- Más tupida
-
-
- Más
-
-
- Más pecas
-
-
- Más grosor
-
-
- Menos levantado
-
-
- Más barra de labios
-
-
- Más michelines
-
-
- Más el inferior
-
-
- Más músculos
-
-
- Más musculatura
-
-
- Más sonrosada
-
-
- Más redondeada
-
-
- Más cartucheras
-
-
- Más inclinada
-
-
- Más cuadrada
-
-
- Más el superior
-
-
- Más recta
-
-
- Más volumen
-
-
- Grande
-
-
- Bigote
-
-
- Comisuras
-
-
- Boca: posición
-
-
- Rapado
-
-
- Muscular
-
-
- Patillas largas
-
-
- Uñas pintadas
-
-
- Uñas pintadas: color
-
-
- Disminuir
-
-
- Rapada
-
-
- Entradas
-
-
- Labios estrechos
-
-
- Natural
-
-
- Cuello: longitud
-
-
- Cuello: grosor
-
-
- Sin colorete
-
-
- Sin contorno
-
-
- Menos
-
-
- Sin brillo
-
-
- Sin barra de labios
-
-
- Sin raya
-
-
- Sin pintar
-
-
- Nada
-
-
- Sin crestas
-
-
- Sin blanco
-
-
- Sin arrugas
-
-
- Normal Lower
-
-
- Normal Upper
-
-
- Nariz a la izq.
-
-
- Nariz a la der.
-
-
- Nariz: tamaño
-
-
- Nariz: grosor
-
-
- Nariz: respingona
-
-
- Nariz: punta
-
-
- Nariz: ancho
-
-
- Ventana: altura
-
-
- Ventana: ancho
-
-
- Opaco
-
-
- Abrir
-
-
- Apertura trasera
-
-
- Apertura frontal
-
-
- Abierta
-
-
- Abierta
-
-
- Anaranjado
-
-
- De soplillo
-
-
- Sombra de ojos: color
-
-
- Sombra de ojos: opacidad
-
-
- Ojos: comisura
-
-
- Outer Eye Shadow
-
-
- Sombra de ojos
-
-
- Retraído
-
-
- Pubis
-
-
- Pintadas
-
-
- Pálida
-
-
- Pantalón: cruz
-
-
- Ceñido
-
-
- Pernera: largo
-
-
- Caja
-
-
- Pantalón: arrugas
-
-
- Raya
-
-
- Flequillo partido
-
-
- Pectorales
-
-
- Tono
-
-
- Coletas
-
-
- Rosa
-
-
- Más sonrosados
-
-
- Suela: altura
-
-
- Suela: ancho
-
-
- En punta
-
-
- De aguja
-
-
- Cola de caballo
-
-
- Con vuelo
-
-
- Izquierdo más grande
-
-
- Derecho más grande
-
-
- Hinchadas
-
-
- Ojeras
-
-
- Irisación
-
-
- Pelirrojo
-
-
- Regular
-
-
- Raya: der.
-
-
- Tez sonrosada
-
-
- Redondear
-
-
- Rubicundez
-
-
- Rojiza
-
-
- Pelo encrespado
-
-
- Cartucheras
-
-
- Piernas flacas
-
-
- Más ancho
-
-
- Sin marcar
-
-
- Nuca: corte
-
-
- Shear Face
-
-
- Shear Front
-
-
- Arriba - izq.
-
-
- Arriba - der.
-
-
- Rapada
-
-
- Rapada
-
-
- A la izq.
-
-
- Boca: ladeada
-
-
- A la der.
-
-
- Alto de cintura
-
-
- Ceñido
-
-
- Camisa: arrugas
-
-
- Caña: altura
-
-
- Menos
-
-
- Brazos cortos
-
-
- Piernas cortas
-
-
- Cuello corto
-
-
- Coletas cortas
-
-
- Cola de caballo corta
-
-
- Patillas cortas
-
-
- Torso corto
-
-
- Cadera corta
-
-
- Hombros
-
-
- Lados: franja
-
-
- Patillas
-
-
- Pelo: lados
-
-
- Bajar lados del pelo
-
-
- Subir lados del pelo
-
-
- Cuello estrecho
-
-
- Falda: vuelo
-
-
- Falda: largo
-
-
- Slanted Forehead
-
-
- Largo de manga
-
-
- Ancho de puños
-
-
- Raja trasera
-
-
- Raja frontal
-
-
- Raja a la izq.
-
-
- Raja a la der.
-
-
- Disminuir
-
-
- Manos pequeñas
-
-
- Cabeza pequeña
-
-
- Leves
-
-
- Pelo liso
-
-
- Calcetines: largo
-
-
- Perilla
-
-
- Depiladas
-
-
- Crestas
-
-
- Cuadrada
-
-
- Punta cuadrada
-
-
- Cabeza aplastada
-
-
- Cabeza estirada
-
-
- Chupadas
-
-
- Estrecho de pecho
-
-
- Ojos hundidos
-
-
- Sweep Back
-
-
- Sweep Forward
-
-
- Más
-
-
- Cubierta trasera
-
-
- Cubierta frontal
-
-
- Tacones grandes
-
-
- Cuello ancho
-
-
- Empeine alto
-
-
- Delgadas
-
-
- Cejas finas
-
-
- Hacia dentro
-
-
- Nariz fina
-
-
- Poca papada
-
-
- Sin campana
-
-
- Pantalón ceñido
-
-
- Camisa ceñida
-
-
- Falda ceñida
-
-
- Puños ceñidos
-
-
- Punta: forma
-
-
- Empeine
-
-
- Torso: longitud
-
-
- Torso: musculatura
-
-
- Torso flacucho
-
-
- Largos
-
-
- Abiertos
-
-
- Prognatismo
-
-
- No natural
-
-
- Puente: arriba
-
-
- Mejillas: arriba
-
-
- Barbilla: prominencia
-
-
- Párpados
-
-
- Mucho
-
-
- Del todo
-
-
- Cintura
-
-
- Mofletes
-
-
- Pelo blanco
-
-
- Aumentar
-
-
- Completa
-
-
- Completa
-
-
- Labios anchos
-
-
- Total
-
-
- Arrugas
-
-
- Añadir a mis hitos
-
-
- Editar mis hitos
-
-
- Ver más información de esta localización
-
-
- Historial de mis localizaciones
-
-
- Comprar este terreno
-
-
- Región Adulta
-
-
- Región Moderada
-
-
- Región General
-
-
- Los avatares están visibles y está permitido el chat fuera de esta parcela
-
-
- Actualizar [APP_NAME]
-
-
- Actualizando [APP_NAME]...
-
-
- Instalando [APP_NAME]...
-
-
- Tu visor [APP_NAME] se está actualizando a la última versión. Llevará algún tiempo, paciencia.
-
-
- Descargando la actualización...
-
-
- Descargando la actualización
-
-
- Fallo en la descarga de la actualización
-
-
- Ha habido un error actualizando [APP_NAME]. Por favor, descarga la última versión desde www.secondlife.com.
-
-
- Fallo al instalar la actualización
-
-
- Fallo al iniciar el visor
-
-
- [APP_NAME]: Los ítems se reciben muy rápido de [FROM_NAME]; desactivada la vista previa automática durante [TIME] sgs.
-
-
- [APP_NAME]: Los ítems se reciben muy rápido; desactivada la vista previa automática durante [TIME] sgs.
-
-
- -- Activado el registro de los mensajes instantáneos --
-
-
- [NAME] está escribiendo...
-
-
- (sin nombre)
-
-
- (Moderado: por defecto, desactivada la voz)
-
-
- Para esta llamada no está disponible el chat de texto.
-
-
- Un moderador del grupo ha desactivado tu chat de texto.
-
-
- Pulsa aquí para enviar un mensaje instantáneo.
-
-
- A
-
-
- (Moderador)
-
-
- (Guardado [LONG_TIMESTAMP])
-
-
- Han respondido a tu llamada
-
-
- Has iniciado una llamada de voz
-
-
- Has entrado en la llamada de voz
-
-
- [NAME] inició una llamada de voz
-
-
- Haciendo la llamada de voz...
-
-
- Conectado, pulsa Colgar para salir
-
-
- Se colgó la llamada de voz
-
-
- Conferencia con [AGENT_NAME]
-
-
- Ofrecido el item del inventario
-
-
- Arrastra los ítems desde el invenbtario hasta aquí
-
-
- (La sesión de MI no existe)
-
-
- Usted es el único usuario en esta sesión.
-
-
- [NAME] está desconectado.
-
-
- Pulse el botón [BUTTON NAME] para aceptar/conectar este chat de voz.
-
-
- Has ignorado a este residente. Enviándole un mensaje, automáticamente dejarás de ignorarle.
-
-
- Error en lo solicitado, por favor, inténtalo más tarde.
-
-
- Error al hacer lo solicitado; por favor, inténtelo más tarde.
-
-
- Usted no tiene permisos suficientes.
-
-
- La sesión ya acabó
-
-
- Usted no tiene esa capacidad.
-
-
- Usted no tiene esa capacidad.
-
-
- Usted no es un moderador de la sesión.
-
-
- Un moderador del grupo ha desactivado tu chat de texto.
-
-
- Un moderador del grupo le ha desactivado el chat de texto.
-
-
- No se ha podido añadir usuarios a la sesión de chat con [RECIPIENT].
-
-
- No se ha podido enviar tu mensaje a la sesión de chat con [RECIPIENT].
-
-
- No se ha podido enviar su mensaje a la sesión de chat con [RECIPIENT].
-
-
- Error moderando.
-
-
- Se te ha sacado del grupo.
-
-
- Ha sido eliminado del grupo.
-
-
- Usted ya no tendrá más la capacidad de estar en la sesión de chat.
-
-
- [SOURCES] ha dicho algo nuevo
-
-
- [SOURCES] ha dicho algo nuevo
-
-
- Se ha agotado el tiempo del inicio de sesión
-
-
- Posición inicial establecida.
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] te ha pagado [AMOUNT] L$ [REASON].
-
-
- [NAME] te ha pagado [AMOUNT] L$.
-
-
- Has pagado [AMOUNT] L$ a [NAME] por [REASON].
-
-
- Has pagado[AMOUNT] L$
-
-
- Has pagado [AMOUNT] L$ a [NAME].
-
-
- Has pagado [AMOUNT] L$ por [REASON].
-
-
- No has pagado a [NAME] [AMOUNT] L$ [REASON].
-
-
- No has pagado [AMOUNT] L$.
-
-
- No has pagado a [NAME] [AMOUNT] L$.
-
-
- No has pagado [AMOUNT] L$ [REASON].
-
-
- para [ITEM]
-
-
- para una parcela de terreno
-
-
- para un pase de acceso a terrenos
-
-
- for deeding land
-
-
- para crear un grupo
-
-
- para entrar a un grupo
-
-
- to upload
-
-
- para publicar un anuncio clasificado
-
-
- Dando [AMOUNT] L$
-
-
- Subir esto cuesta [AMOUNT] L$
-
-
- Esto cuesta [AMOUNT] L$
-
-
- Compra del terreno seleccionado por [AMOUNT] L$
-
-
- Este objeto cuesta [AMOUNT] L$
-
-
- Todos
-
-
- Oficiales
-
-
- Propietarios
-
-
- Conectado/a
-
-
- Subiendo...
-
-Denuncia de infracción
-
-
- Anatomía nueva
-
-
- Piel nueva
-
-
- Pelo nuevo
-
-
- Ojos nuevos
-
-
- Camisa nueva
-
-
- Pantalón nuevo
-
-
- Zapatos nuevos
-
-
- Calcetines nuevos
-
-
- Chaqueta nueva
-
-
- Guantes nuevos
-
-
- Camiseta nueva
-
-
- Ropa interior nueva
-
-
- Falda nueva
-
-
- Nueva Alfa
-
-
- Tatuaje nuevo
-
-
- Nueva física
-
-
- No se puede poner
-
-
- Gesto nuevo
-
-
- Script nuevo
-
-
- Nota nueva
-
-
- Carpeta nueva
-
-
- Contenidos
-
-
- Gestos
-
-
- Gestos de hombre
-
-
- Gestos de mujer
-
-
- Otros gestos
-
-
- Gestos al hablar
-
-
- Gestos corrientes
-
-
- Varón - Disculpa
-
-
- Varón – Déjame en paz
-
-
- Varón - Lanzar un beso
-
-
- Varón - Abucheo
-
-
- Varón - Aburrido
-
-
- Varón – ¡Eh!
-
-
- Varón - Risa
-
-
- Varón - Rechazo
-
-
- Varón - Encogimiento de hombros
-
-
- Varón - Sacando la lengua
-
-
- Varón - Admiración
-
-
- Mujer - Risa suave
-
-
- Mujer - Llorar
-
-
- Mujer - Ruborizada
-
-
- Mujer - Disculpa
-
-
- Mujer – Déjame en paz
-
-
- Mujer - Lanzar un beso
-
-
- Mujer - Abucheo
-
-
- Mujer - Aburrida
-
-
- Mujer - ¡Eh!
-
-
- Mujer - ¡Eh, encanto!
-
-
- Mujer - Risa
-
-
- Mujer - Buen aspecto
-
-
- Mujer - Por aquí
-
-
- Mujer - Por favor
-
-
- Mujer - Rechazo
-
-
- Mujer - Encogimiento de hombros
-
-
- Mujer - Sacando la lengua
-
-
- Mujer - Admiración
-
-
- /reverencia
-
-
- /aplaudir
-
-
- /contar
-
-
- /apagar
-
-
- /bmc
-
-
- /músculo
-
-
- /no
-
-
- /¡no!
-
-
- /papel
-
-
- /señalarme
-
-
- /señalarte
-
-
- /piedra
-
-
- /tijera
-
-
- /fumar
-
-
- /estirar
-
-
- /silbar
-
-
- /sí
-
-
- /¡sí!
-
-
- ausente
-
-
- baile1
-
-
- baile2
-
-
- baile3
-
-
- baile4
-
-
- baile5
-
-
- baile6
-
-
- baile7
-
-
- baile8
-
-
- [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
-
-
- ninguno/ninguno
-
-
- No se puede subir imágenes mayores de [WIDTH]*[HEIGHT]
-
-
-
- Parece que hay algún problema que ha escapado a nuestros controles.
-
- Visita status.secondlifegrid.net para ver si hay alguna incidencia conocida que esté afectando al servicio.
- Si sigues teniendo problemas, comprueba la configuración de la red y del servidor de seguridad.
-
-
- Domingo:Lunes:Martes:Miércoles:Jueves:Viernes:Sábado
-
-
- Dom:Lun:Mar:Mié:Jue:Vie:Sáb
-
-
- Enero:Febrero:Marzo:Abril:Mayo:Junio:Julio:Agosto:Septiembre:Octubre:Noviembre:Diciembre
-
-
- Ene:Feb:Mar:Abr:May:Jun:Jul:Ago:Sep:Oct:Nov:Dic
-
-
- [MDAY]
-
-
- AM
-
-
- PM
-
-
- [AMOUNT] US$
-
-
- Membresía
-
-
- Roles
-
-
- Indentidad de grupo
-
-
- Gestión de la parcela
-
-
- Identidad de la parcela
-
-
- Configuración de la parcela
-
-
- Poder de la parcela
-
-
- Acceso a la parcela
-
-
- Contenido de la parcela
-
-
- Manejo de objetos
-
-
- Contabilidad
-
-
- Avisos
-
-
- Chat
-
-
- ¿Deseas eliminar los elementos seleccionados?
-
-
- ¿Deseas eliminar el elemento seleccionado?
-
-
- No hay elementos en este vestuario
-
-
- Selecciona un editor mediante la configuración de ExternalEditor.
-
-
- No se encuentra el editor externo especificado.
-Inténtalo incluyendo la ruta de acceso al editor entre comillas
-(por ejemplo, "/ruta a mi/editor" "%s").
-
-
- Error al analizar el comando de editor externo.
-
-
- Error al ejecutar el editor externo.
-
-
- Error al traducir: [REASON]
-
-
- Error al analizar la respuesta de la traducción.
-
-
- Esc
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Base
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Añadir
-
-
- Restar
-
-
- Multiplicar
-
-
- Dividir
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Viendo balizas de partículas (azules)
-
-
- Viendo balizas de objetos materiales (verdes)
-
-
- Viendo balizas de objetos con script (rojas)
-
-
- Viendo el objeto con script con balizas de función táctil (rojas)
-
-
- Viendo balizas de sonido (amarillas)
-
-
- Viendo balizas de medios (blancas)
-
-
- Ocultando las partículas
-
-
- Acerca del terreno
-
-
- Apariencia
-
-
- Avatar
-
-
- Construir
-
-
- Chat
-
-
- Brújula
-
-
- Destinos
-
-
- Gestos
-
-
- Cómo
-
-
- Inventario
-
-
- Mapa
-
-
- Mercado
-
-
- Minimapa
-
-
- Caminar / Correr / Volar
-
-
- Buzón de salida de comerciante
-
-
- Gente
-
-
- Destacados
-
-
- Lugares
-
-
- Preferencias
-
-
- Perfil
-
-
- Buscar
-
-
- Foto
-
-
- Hablar
-
-
- Controles de la cámara
-
-
- Configuración de voz
-
-
- Información sobre el terreno que vas a visitar
-
-
- Cambiar tu avatar
-
-
- Elegir un avatar completo
-
-
- Construir objetos y modificar la forma del terreno
-
-
- Habla por chat de texto con las personas próximas
-
-
- Brújula
-
-
- Destinos de interés
-
-
- Gestos para tu avatar
-
-
- Cómo hacer las tareas habituales
-
-
- Ver y usar tus pertenencias
-
-
- Mapa del mundo
-
-
- Ir de compras
-
-
- Mostrar la gente que está cerca
-
-
- Desplazando el avatar
-
-
- Transfiere objetos a tu mercado para venderlos
-
-
- Amigos, grupos y personas próximas
-
-
- Lugares que se mostrarán como favoritos en tu perfil
-
-
- Lugares que has guardado
-
-
- Preferencias
-
-
- Consulta o edita tu perfil
-
-
- Buscar lugares, eventos y personas
-
-
- Tomar una fotografía
-
-
- Utiliza el micrófono para hablar con las personas próximas
-
-
- Cambiando el ángulo de la cámara
-
-
- Controles de volumen para las llamadas y la gente que se encuentre cerca de ti en el mundo virtual
-
-
- actualmente en tu barra de herramientas inferior
-
-
- actualmente en tu barra de herramientas izquierda
-
-
- actualmente en tu barra de herramientas derecha
-
-
- % retención
-
-
- Detalle
-
-
- Mejor detalle
-
-
- Superficie
-
-
- Sólido
-
-
- Envoltura
-
-
- Vista previa
-
-
- Normal
-
-
- Muy bajo
-
-
- Bajo
-
-
- Medio
-
-
- Alto
-
-
- Muy alto
-
-
diff --git a/indra/newview/skins/steam/xui/fr/strings.xml b/indra/newview/skins/steam/xui/fr/strings.xml
deleted file mode 100644
index ac34dd67c8..0000000000
--- a/indra/newview/skins/steam/xui/fr/strings.xml
+++ /dev/null
@@ -1,5018 +0,0 @@
-
-
-
-
- Second Life
-
-
- Second Life
-
-
- SECOND LIFE
-
-
- Grille de Second Life
-
-
- Portail Assistance Second Life
-
-
- Détection du matériel...
-
-
- Chargement de [APP_NAME]...
-
-
- Vidage du cache...
-
-
- Initialisation du cache des textures...
-
-
- Initialisation VFS...
-
-
- Échec d'initialisation des graphiques. Veuillez mettre votre pilote graphique à jour.
-
-
- Restauration...
-
-
- Changement de la résolution...
-
-
- Fullbright (Legacy)
-
-
- La connexion à [APP_NAME] apparaît peut-être comme étant gelée. Veuillez patienter.
-
-
- Connexion...
-
-
- Authentification en cours
-
-
- Maintenance du compte en cours…
-
-
- La tentative de connexion précédente a échoué. Connexion, esssai [NUMBER]
-
-
- Monde en cours de chargement…
-
-
- Navigateur Web incorporé en cours d'initialisation…
-
-
- Multimédia en cours d'initialisation…
-
-
- Chargement des polices en cours...
-
-
- Fichiers du cache en cours de vérification (peut prendre 60-90 s)...
-
-
- Réponse en cours de traitement…
-
-
- Monde en cours d'initialisation…
-
-
- Décodage des images en cours...
-
-
- Quicktime en cours d'initialisation
-
-
- Quicktime introuvable, impossible de procéder à l'initialisation.
-
-
- Initialisation de Quicktime réussie.
-
-
- Capacités de la région demandées...
-
-
- Capacités de la région demandées... Tentative n° [NUMBER].
-
-
- Liaison avec la région en cours de création...
-
-
- Connexion avec la région en cours...
-
-
- Habits en cours de téléchargement...
-
-
- Certificat non valide ou corrompu renvoyé par le serveur. Contactez l'administrateur de la grille.
-
-
- Nom d'hôte non valide utilisé pour accéder au serveur. Vérifiez votre nom d'hôte de grille ou SLURL.
-
-
- Il semble que le certificat renvoyé par la grille ait expiré. Vérifiez votre horloge système ou contactez l'administrateur de la grille.
-
-
- Impossible d'utiliser le certificat renvoyé par le serveur pour SSL. Contactez l'administrateur de la grille.
-
-
- Certificats trop nombreux dans la chaîne des certificats du serveur. Contactez l'administrateur de la grille.
-
-
- Impossible de vérifier la signature de certificat renvoyée par le serveur de la grille. Contactez l'administrateur de la grille.
-
-
- Erreur réseau : impossible d'établir la connexion. Veuillez vérifier votre connexion réseau.
-
-
- Échec de la connexion.
-
-
- Quitter
-
-
- http://join.secondlife.com/index.php?sourceid=1206_steam&lang=fr-FR
-
-
- Le client que vous utilisez ne permet plus d'accéder à Second Life. Téléchargez un nouveau client à la page suivante :
-http://secondlife.com/download
-
-Pour plus d'informations, consultez la page FAQ ci-dessous :
-http://secondlife.com/viewer-access-faq
-
-
- Mise à jour facultative du client disponible : [VERSION]
-
-
- Mise à jour du client requise : [VERSION]
-
-
- L'agent est déjà connecté.
-
-
- Désolé ! La connexion a échoué.
-Veuillez vérifier que les éléments ci-dessous ont été correctement saisis :
- * Nom d'utilisateur (par exemple, bobsmith12 ou steller.sunshine)
- * Mot de passe
-Assurez-vous également que la touche Verr. maj n'est pas activée.
-
-
- Votre mot de passe a été modifié pour des raisons de sécurité.
-Veuillez accéder à votre compte à la page http://secondlife.com/password
-et répondre à la question de sécurité afin de réinitialiser votre mot de passe.
-Nous vous prions de nous excuser pour la gêne occasionnée.
-
-
- Vous allez devoir réinitialiser votre mot de passe suite à quelques changements effectués sur notre système.
-Pour cela, accédez à votre compte à la page http://secondlife.com/password
-et répondez à la question de sécurité. Votre mot de passe sera réinitialisé.
-Nous vous prions de nous excuser pour la gêne occasionnée.
-
-
- Second Life est temporairement fermé pour des raisons de maintenance.
-Seuls les employés peuvent actuellement y accéder.
-Consultez la page www.secondlife.com/status pour plus d'informations.
-
-
- Les connexions à Second Life sont temporairement limitées afin de s'assurer que l'expérience des utilisateurs présents dans le monde virtuel soit optimale.
-
-Les personnes disposant de comptes gratuits ne pourront pas accéder à Second Life pendant ce temps afin de permettre à celles qui ont payé pour pouvoir utiliser Second Life de le faire.
-
-
- Impossible d'accéder à Second Life depuis cet ordinateur.
-Si vous pensez qu'il s'agit d'une erreur, contactez
-l'Assistance à l'adresse suivante : support@secondlife.com.
-
-
- Votre compte est inaccessible jusqu'à
-[TIME], heure du Pacifique.
-
-
- Nous n'avons pas réussi à traiter votre demande.
-Pour obtenir de l'aide, veuillez contacter l'Assistance Second Life à la page suivante : http://secondlife.com/support.
-Si vous ne parvenez pas à changer de mot de passe, veuillez appeler le (866) 476-9763.
-
-
- Incohérence des données lors de la connexion.
-Veuillez contacter support@secondlife.com.
-
-
- Des opérations de maintenance mineures sont actuellement effectuées sur votre compte.
-Votre compte est inaccessible jusqu'à
-[TIME], heure du Pacifique.
-Si vous pensez qu'il s'agit d'une erreur, contactez l'Assistance à l'adresse suivante : support@secondlife.com
-
-
- Le simulateur a renvoyé une erreur en réponse à la demande de déconnexion.
-
-
- Le système est en train de vous déconnecter.
-Votre compte sera indisponible jusqu'à
-[TIME], heure du Pacifique.
-
-
- Impossible de créer de session valide.
-
-
- Impossible de se connecter à un simulateur.
-
-
- Votre compte permet uniquement d'accéder à Second Life
-entre [START] et [END], heure du Pacifique.
-Veuillez réessayer au cours de la période indiquée.
-Si vous pensez qu'il s'agit d'une erreur, contactez l'Assistance à l'adresse suivante : support@secondlife.com
-
-
- Paramètres incorrects.
-Si vous pensez qu'il s'agit d'une erreur, contactez l'Assistance à l'adresse suivante : support@secondlife.com
-
-
- Le paramètre Prénom doit être alphanumérique.
-Si vous pensez qu'il s'agit d'une erreur, contactez l'Assistance à l'adresse suivante : support@secondlife.com
-
-
- Le paramètre Nom doit être alphanumérique.
-Si vous pensez qu'il s'agit d'une erreur, contactez l'Assistance à l'adresse suivante : support@secondlife.com
-
-
- La région est en train d'être mise hors ligne.
-Veuillez réessayer de vous connecter dans une minute.
-
-
- Agent absent de la région.
-Veuillez réessayer de vous connecter dans une minute.
-
-
- Une autre session était en cours d'ouverture au sein de la région.
-Veuillez réessayer de vous connecter dans une minute.
-
-
- La session précédente était en cours de fermeture au sein de la région.
-Veuillez réessayer de vous connecter dans une minute.
-
-
- Fermeture de la session précédente toujours en cours pour la région.
-Veuillez réessayer de vous connecter dans une minute.
-
-
- Dernière session fermée au sein de la région.
-Veuillez réessayer de vous connecter dans une minute.
-
-
- Processus de déconnexion commencé pour la région.
-Veuillez réessayer de vous connecter dans une minute.
-
-
- Le système a commencé à fermer votre dernière session.
-Veuillez réessayer de vous connecter dans une minute.
-
-
- Il y a peut-être des problèmes techniques dans cette région. Veuillez vérifier votre connexion Internet.
-
-
- Enregistrement des paramètres...
-
-
- Déconnexion...
-
-
- Arrêt en cours...
-
-
- Vous avez été déconnecté de la région où vous étiez.
-
-
- Vous avez été transféré vers une région non valide.
-
-
- Test de déconnexion du client
-
-
- Personne
-
-
- (pas de nom)
-
-
- Propriétaire :
-
-
- Public
-
-
- (Groupe)
-
-
- À vendre : [AMOUNT] L$
-
-
- Contruction de groupe
-
-
- Pas de construction
-
-
- Contruction de groupe
-
-
- Non sécurisé
-
-
- Interdiction de voler
-
-
- Scripts de groupe
-
-
- Pas de scripts
-
-
- Terrain :
-
-
- Impossible de faire glisser plus d'un objet ici
-
-
-
- Impossible de rezzer des articles dans la boîte d'envoi vendeur
-
-
- Impossible de vendre ou de transférer un ou plusieurs de ces objets.
-
-
- La boîte d'envoi vendeur n'accepte que les articles directement issus de votre inventaire.
-
-
- Impossible de placer des articles que vous portez dans votre boîte d'envoi vendeur
-
-
- Impossible de placer des cartes de visite dans votre boîte d'envoi vendeur
-
-
- Il existe plus de 3 niveaux de dossiers imbriqués.
-
-
- Le dossier de niveau supérieur contient plus de 20 sous-dossiers.
-
-
- Le dossier de niveau supérieur contient plus de 200 articles.
-
-
- Impossible de déplacer un dossier vers son enfant
-
-
- Impossible de déplacer un dossier vers lui-même
-
-
- Cliquez pour afficher cette page web
-
-
- Cliquez pour en savoir plus sur cet endroit
-
-
- Cliquez pour afficher le profil de ce résident
-
-
- En savoir plus sur ce résident
-
-
- Cliquer pour ignorer ce résident
-
-
- Cliquer pour ne plus ignorer ce résident
-
-
- Cliquer pour envoyer un IM à ce résident
-
-
- Cliquer pour payer ce résident
-
-
- Cliquer pour proposer une téléportation à ce résident
-
-
- Cliquer pour demander à ce résident d'être votre ami
-
-
- Cliquez pour afficher la description de ce groupe
-
-
- Cliquez pour afficher la description de cet événement
-
-
- Cliquez pour afficher cette petite annonce
-
-
- Cliquez pour afficher la description de cette parcelle
-
-
- Cliquez pour vous téléporter à cet endroit
-
-
- Cliquez pour afficher la description de cet objet
-
-
- Cliquez pour voir cet emplacement sur la carte
-
-
- Cliquez pour exécuter la commande secondlife://
-
-
-
- Me téléporter vers
-
-
- Afficher la carte pour
-
-
- Ignorer
-
-
- Ne plus ignorer
-
-
- IM
-
-
- Payer
-
-
- Proposer une téléportation à
-
-
- Demande d'amitié
-
-
- Fermer (⌘W)
-
-
- Fermer (Ctrl+W)
-
-
- Fermer
-
-
- Restaurer
-
-
- Minimiser
-
-
- Réduire
-
-
- Attacher
-
-
- Afficher l'aide
-
-
- Recherche...
-
-
- Aucun résultat.
-
-
- En cours d'extraction...
-
-
- Notes de version
-
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- Chargement...
-
-
- (personne)
-
-
- (en attente)
-
-
- (multiple)
-
-
- (aucun)
-
-
- Appelant Avaline [ORDER]
-
-
- Aucune erreur
-
-
- Requête de l'actif : échec
-
-
- Requête de l'actif : fichier inexistant
-
-
- Requête de l'actif : actif introuvable dans la base de données
-
-
- Fin du ficher
-
-
- Impossible d'ouvrir le fichier
-
-
- Fichier introuvable
-
-
- Délai d'attente du transfert du fichier dépassé
-
-
- Disparition du circuit
-
-
- Il y a une différence de prix entre le client et le serveur
-
-
- Statut inconnu
-
-
- texture
-
-
- son
-
-
- carte de visite
-
-
- repère
-
-
- script (ancienne version)
-
-
- habits
-
-
- objet
-
-
- note
-
-
- dossier
-
-
- racine
-
-
- script LSL2
-
-
- bytecode LSL
-
-
- texture tga
-
-
- partie du corps
-
-
- photo
-
-
- Objets trouvés
-
-
- image targa
-
-
- Corbeille
-
-
- image jpeg
-
-
- animation
-
-
- geste
-
-
- simstate
-
-
- favori
-
-
- lien
-
-
- lien du dossier
-
-
- maillage
-
-
- (Apparence en cours de modification)
-
-
- Absent
-
-
- Occupé
-
-
- Bloqué(e)
-
-
- Effrayé
-
-
- En colère
-
-
- Absent
-
-
- Salto arrière
-
-
- Rire en se tenant le ventre
-
-
- Grand sourire
-
-
- Envoyer un baiser
-
-
- Bailler d'ennui
-
-
- S'incliner
-
-
- Applaudir
-
-
- Révérence de cour
-
-
- Pleurer
-
-
- Danse 1
-
-
- Danse 2
-
-
- Danse 3
-
-
- Danse 4
-
-
- Danse 5
-
-
- Danse 6
-
-
- Danse 7
-
-
- Danse 8
-
-
- Mépris
-
-
- Boire
-
-
- Gêne
-
-
- Désapprobation
-
-
- Victoire
-
-
- Yoga
-
-
- Froncer les sourcils
-
-
- Impatient
-
-
- Sauter de joie
-
-
- Va te faire voir !
-
-
- Envoyer un baiser
-
-
- Rire
-
-
- Montrer ses muscles
-
-
- Non (mécontent)
-
-
- Non
-
-
- Na na na na nère
-
-
- Gauche-droite
-
-
- Bouche ouverte
-
-
- Paix
-
-
- Montrer quelqu'un du doigt
-
-
- Se montrer du doigt
-
-
- Gauche
-
-
- Droite
-
-
- Compter (pierre-papier-ciseaux)
-
-
- Papier (pierre-papier-ciseaux)
-
-
- Pierre (pierre-papier-ciseaux)
-
-
- Ciseaux (pierre-papier-ciseaux)
-
-
- Dégoût
-
-
- Coup de pied circulaire
-
-
- Triste
-
-
- Salut
-
-
- Crier
-
-
- Hausser les épaules
-
-
- Sourire
-
-
- Fumer, immobile
-
-
- Fumer, prendre une bouffée
-
-
- Fumer, jeter son mégot
-
-
- Surprise
-
-
- Coup d'épée
-
-
- Caprice
-
-
- Tirer la langue
-
-
- Faire signe
-
-
- Chuchoter
-
-
- Siffler
-
-
- Clin d'œil
-
-
- Clin d'œil (Hollywood)
-
-
- Soucis
-
-
- Oui (Joie)
-
-
- Oui
-
-
- Multiples
-
-
- Chargement...
-
-
- Hors ligne
-
-
- [AREA] m² [PRICE] L$
-
-
- Aucun résultat.
-
-
- OK
-
-
- Fichier incomplet
-
-
- Impossible de trouver ROOT ou JOINT.
-
-
- chuchote :
-
-
- crie :
-
-
- Connexion au chat vocal du Monde en cours…
-
-
- Connecté(e)
-
-
- Voix non disponible à l'endroit où vous êtes
-
-
- Déconnecté du chat vocal
-
-
- Vous allez maintenant être reconnecté(e) au chat vocal près de vous.
-
-
- '[OBJECTNAME]', un objet appartenant à [OWNERNAME], situé dans [REGIONNAME] à [REGIONPOS], a reçu le droit de : [PERMISSIONS].
-
-
- '[OBJECTNAME]', un objet appartenant à [OWNERNAME], situé dans [REGIONNAME] à [REGIONPOS], n'a pas reçu le droit de : [PERMISSIONS].
-
-
- Débiter vos Linden dollars (L$)
-
-
- Utiliser vos touches de commandes
-
-
- Reconfigurer vos touches de commandes
-
-
- Animer votre avatar
-
-
- Attacher à votre avatar
-
-
- Passer l'objet dans le domaine public (sans propriétaire)
-
-
- Lier et délier d'autres objets
-
-
- Créer et supprimer des liens avec d'autres objets
-
-
- Modifier ses droits
-
-
- Suivre votre caméra
-
-
- Contrôler votre caméra
-
-
- Pas connecté(e)
-
-
- Général
-
-
- Modéré
-
-
- Adulte
-
-
- Hors ligne
-
-
- Inconnu
-
-
- (inconnu)
-
-
- Domaine / Région entière
-
-
- Domaine / Homestead
-
-
- Continent / Homestead
-
-
- Continent / Région entière
-
-
- Tous fichiers
-
-
- Sons
-
-
- Animations
-
-
- Images
-
-
- Enregistrer
-
-
- Charger
-
-
- Images Targa
-
-
- Images Bitmap
-
-
- Fichier de film AVI
-
-
- Fichier d'animation XAF
-
-
- Fichier XML
-
-
- Fichier RAW
-
-
- Images compressées
-
-
- Charger des fichiers
-
-
- Choisir le répertoire
-
-
- Scripts
-
-
- Présent
-
-
- Absent
-
-
- Pas occupé
-
-
- Occupé
-
-
- Silhouette
-
-
- Peau
-
-
- Cheveux
-
-
- Yeux
-
-
- Chemise
-
-
- Pantalon
-
-
- Chaussures
-
-
- Chaussettes
-
-
- Veste
-
-
- Gants
-
-
- Débardeur
-
-
- Caleçon
-
-
- Jupe
-
-
- Alpha
-
-
- Tatouage
-
-
- Propriétés physiques
-
-
- non valide
-
-
- aucun
-
-
- Chemise non portée
-
-
- Pantalon non porté
-
-
- Chaussures non portées
-
-
- Chaussettes non portées
-
-
- Veste non portée
-
-
- Gants non portés
-
-
- Débardeur non porté
-
-
- Caleçon non porté
-
-
- Jupe non portée
-
-
- Alpha non porté
-
-
- Tatouage non porté
-
-
- Propriétés physiques non portées
-
-
- non valide
-
-
- Créer une nouvelle silhouette
-
-
- Créer une nouvelle peau
-
-
- Créer de nouveaux cheveux
-
-
- Créer de nouveaux yeux
-
-
- Créer une nouvelle chemise
-
-
- Créer un nouveau pantalon
-
-
- Créer de nouvelles chaussures
-
-
- Créer de nouvelles chaussettes
-
-
- Créer une nouvelle veste
-
-
- Créer de nouveaux gants
-
-
- Créer un nouveau débardeur
-
-
- Créer un nouveau caleçon
-
-
- Créer une nouvelle jupe
-
-
- Créer un nouvel alpha
-
-
- Créer un nouveau tatouage
-
-
- Créer de nouvelles propriétés physiques
-
-
- non valide
-
-
- Nouv. [WEARABLE_ITEM]
-
-
- Suivant
-
-
- OK
-
-
- Note au groupe
-
-
- Notices au groupe
-
-
- Envoyée par
-
-
- Pièce(s) jointe(s) :
-
-
- Consultez les notices précédentes ou choisissez de ne plus recevoir ces messages ici.
-
-
- Ouvrir pièce jointe
-
-
- Enregistrer la pièce jointe
-
-
- Offre de téléportation
-
-
- De nouvelles notifications sont arrivées en votre absence.
-
-
- Vous avez %d notification(s) supplémentaire(s)
-
-
- Bras droit
-
-
- Tête
-
-
- Bras gauche
-
-
- Jambe gauche
-
-
- Torse
-
-
- Jambe droite
-
-
- Faible
-
-
- Moyen
-
-
- Élevé
-
-
- Appuyez sur ESC pour quitter la vue subjective
-
-
- Vous n'avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/all/[SEARCH_TERM] Rechercher].
-
-
- Vous n'avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/places/[SEARCH_TERM] Rechercher].
-
-
- Faites glisser un repère ici pour l'ajouter à vos Favoris.
-
-
- Vous n'avez pas de copie de cette texture dans votre inventaire
-
-
- Les achats que vous avez effectués sur la Place du marché s'affichent ici. Vous pouvez alors les faire glisser vers votre inventaire afin de les utiliser.
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
-
-
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
-
-
- Tout le monde peut vendre des articles sur la Place du marché.
-
-
-
- Pour devenir vendeur, vous devez [[MARKETPLACE_CREATE_STORE_URL] créer une boutique sur la Place du marché].
-
-
- Votre boîte d'envoi est vide.
-
-
-
- Pour mettre des dossiers en vente sur la [[MARKETPLACE_DASHBOARD_URL] Place du marché], faites-les glisser vers cette zone et cliquez sur "Envoyer vers la Place du marché".
-
-
- Aucune erreur
-
-
- Erreur : avant d'envoyer des articles vers la Place du marché, vous devez vous configurer comme vendeur (gratuit).
-
-
- Erreur : ce dossier est vide.
-
-
- Erreur : le chargement de cet article a échoué en raison d'un nombre trop important d'articles non associés à des produits au niveau de votre compte de vendeur. Pour résoudre ce problème, connectez-vous au site Web de la Place du marché et réduisez le nombre d'articles non associés.
-
-
- Erreur : cet article contient trop d'objets. Pour résoudre le problème, regroupez des objets dans des paquets afin de réduire le nombre total à moins de 200.
-
-
- Erreur : trop de niveaux de dossiers imbriqués concernant cet article. Réorganisez le tout afin qu'un maximum de 3 niveaux soit utilisé.
-
-
- Erreur : cet article ne peut pas être vendu sur la Place du marché.
-
-
- Erreur : un problème est survenu concernant cet article. Veuillez réessayer ultérieurement.
-
-
- Ouvrir les repères
-
-
-
-
-
-
-
-
- chargement des contenus en cours...
-
-
- Aucun contenu
-
-
-
-
- Oui
-
-
- Non
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Mon inventaire
-
-
- Bibliothèque
-
-
- Textures
-
-
- Sons
-
-
- Cartes de visite
-
-
- Repères
-
-
- Scripts
-
-
- Habits
-
-
- Objets
-
-
- Notes
-
-
- Nouveau dossier
-
-
- Inventaire
-
-
- Images non compressées
-
-
- Parties du corps
-
-
- Corbeille
-
-
- Albums photo
-
-
- Objets trouvés
-
-
- Sons non compressés
-
-
- Animations
-
-
- Gestes
-
-
- Mes Favoris
-
-
- Mes Favoris
-
-
- Tenue actuelle
-
-
- Tenues initiales
-
-
- Mes tenues
-
-
- Accessoires
-
-
- Maillages
-
-
- Amis
-
-
- Tout
-
-
- Aucun élément attaché porté
-
-
- Éléments attachés ([COUNT] emplacements restants)
-
-
- Acheter
-
-
- Acheter des L$
-
-
- Pierre
-
-
- Métal
-
-
- Verre
-
-
- Bois
-
-
- Chair
-
-
- Plastique
-
-
- Caoutchouc
-
-
- Léger
-
-
- Maj-
-
-
- Ctrl
-
-
- Poitrine
-
-
- Crâne
-
-
- Épaule gauche
-
-
- Épaule droite
-
-
- Main gauche
-
-
- Main droite
-
-
- Pied gauche
-
-
- Pied droit
-
-
- Colonne
-
-
- Bassin
-
-
- Bouche
-
-
- Menton
-
-
- Oreille gauche
-
-
- Oreille droite
-
-
- Globe oculaire gauche
-
-
- Globe oculaire droit
-
-
- Nez
-
-
- Bras D
-
-
- Avant-bras D
-
-
- Bras G
-
-
- Avant-bras G
-
-
- Hanche droite
-
-
- Cuisse D
-
-
- Jambe D
-
-
- Hanche gauche
-
-
- Cuisse G
-
-
- Jambe G
-
-
- Estomac
-
-
- Pectoral gauche
-
-
- Pectoral droit
-
-
- Cou
-
-
- Centre de l'avatar
-
-
- Point d'attache non valide
-
-
- [AGEYEARS] [AGEMONTHS]
-
-
- [AGEYEARS]
-
-
- [AGEMONTHS]
-
-
- [AGEWEEKS]
-
-
- [AGEDAYS]
-
-
- Inscrit aujourd'hui
-
-
- [COUNT] an
-
-
- [COUNT] ans
-
-
- [COUNT] ans
-
-
- [COUNT] mois
-
-
- [COUNT] mois
-
-
- [COUNT] mois
-
-
- [COUNT] semaine
-
-
- [COUNT] semaines
-
-
- [COUNT] semaines
-
-
- [COUNT] jour
-
-
- [COUNT] jours
-
-
- [COUNT] jours
-
-
- [COUNT] membre
-
-
- [COUNT] membres
-
-
- [COUNT] membres
-
-
- Résident
-
-
- Essai
-
-
- Membre originaire
-
-
- Employé(e) de Linden Lab
-
-
- Infos de paiement utilisées
-
-
- Infos de paiement enregistrées
-
-
- Aucune info de paiement enregistrée
-
-
- Personne dont l'âge a été vérifié
-
-
- Personne dont l'âge n'a pas été vérifié
-
-
- Centre 2
-
-
- En haut à droite
-
-
- En haut
-
-
- En haut à gauche
-
-
- Centre
-
-
- En bas à gauche
-
-
- Bas
-
-
- En bas à droite
-
-
- Téléchargé, compilation en cours
-
-
- Script introuvable sur le serveur.
-
-
- Problème lors du téléchargement
-
-
- Droits insuffisants pour télécharger un script.
-
-
- Droits insuffisants pour
-
-
- Échec du téléchargement, erreur inconnue
-
-
- Recompilation - progrès
-
-
- recompiler
-
-
- Réinitialiser les progrès
-
-
- réinitialiser
-
-
- Lancer
-
-
- lancer
-
-
- Arrêter
-
-
- arrêter
-
-
- Compilation réussie !
-
-
- Compilation réussie, enregistrement en cours...
-
-
- Enregistrement terminé.
-
-
- Script (objet hors de portée)
-
-
- Objet [OBJECT] appartenant à [OWNER]
-
-
- aucun
-
-
-
- (Inconnu)
-
-
-
-
- [day,datetime,utc]/[mthnum,datetime,utc]/[year,datetime,utc]
-
-
-
-
- Solde
-
-
- Crédits
-
-
- Débits
-
-
- Total
-
-
- Aucune donnée trouvée pour le groupe
-
-
- domaine parent
-
-
- continent
-
-
- teen
-
-
- n'importe qui
-
-
- erreur
-
-
- tous les domaines appartenant à [OWNER]
-
-
- tous les domaines vous appartenant
-
-
- tous les domaines que vous gérez pour [OWNER]
-
-
- Résidents autorisés : ([ALLOWEDAGENTS], max. [MAXACCESS])
-
-
- Groupes autorisés : ([ALLOWEDGROUPS], max. [MAXACCESS])
-
-
- Mémoire des scripts de parcelles
-
-
- Parcelles répertoriées : [PARCELS]
-
-
- Mémoire utilisée : [COUNT] Ko sur [MAX] ; [AVAILABLE] Ko disponibles
-
-
- Mémoire utilisée : [COUNT] Ko
-
-
- URL des scripts de parcelles
-
-
- URL utilisées : [COUNT] sur [MAX] ; [AVAILABLE] disponible(s)
-
-
- URL utilisées : [COUNT]
-
-
- Une erreur est survenue pendant la requête d'informations.
-
-
- Aucune parcelle sélectionnée
-
-
- Erreur : les informations de script ne sont disponibles que dans votre région actuelle.
-
-
- Extraction des informations en cours...
-
-
- Vous n'avez pas le droit d'examiner cette parcelle.
-
-
- Assis(e) dessus
-
-
- Poitrine
-
-
- Tête
-
-
- Épaule gauche
-
-
- Épaule droite
-
-
- Main gauche
-
-
- Main droite
-
-
- Pied gauche
-
-
- Pied droit
-
-
- Précédent
-
-
- Bassin
-
-
- Bouche
-
-
- Menton
-
-
- Oreille gauche
-
-
- Oreille droite
-
-
- Œil gauche
-
-
- Œil droit
-
-
- Nez
-
-
- Bras droit
-
-
- Avant-bras droit
-
-
- Bras gauche
-
-
- Avant-bras gauche
-
-
- Hanche droite
-
-
- Cuisse droite
-
-
- Jambe droite
-
-
- Hanche gauche
-
-
- Cuisse gauche
-
-
- Jambe gauche
-
-
- Ventre
-
-
- Pectoral droit
-
-
- Pectoral gauche
-
-
- HUD centre 2
-
-
- HUD en haut à droite
-
-
- HUD en haut au centre
-
-
- HUD en haut à gauche
-
-
- HUD centre 1
-
-
- HUD en bas à gauche
-
-
- HUD en bas
-
-
- HUD en bas à droite
-
-
- Ligne [LINE], colonne [COLUMN]
-
-
- [COUNT] trouvé(s)
-
-
- [hour12,datetime,slt]:[min,datetime,slt] [ampm,datetime,slt]
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]
-
-
- Contenu de l'objet
-
-
- Nouveau script
-
-
- Le résident auquel vous avez envoyé un message est en mode Occupé, ce qui signifie qu'il a demandé à ne pas être dérangé. Votre message restera affiché dans son panneau IM afin qu'il puisse le lire ultérieurement.
-
-
- (par nom)
-
-
- (résident)
-
-
- (objet)
-
-
- (groupe)
-
-
- (externe)
-
-
- Il n'y a aucun règlement pour ce domaine.
-
-
- Il n'y a aucun règlement pour ce domaine. Le terrain sur ce domaine est vendu par le propriétaire, non par Linden Lab. Pour en savoir plus, veuillez contacter le propriétaire.
-
-
-
-
-
- Propriété du groupe
-
-
- Public
-
-
- Réglages locaux
-
-
- Réglages de la région
-
-
- Clics : [TELEPORT] téléportation, [MAP] carte, [PROFILE] profil
-
-
- (mise à jour après la publication)
-
-
- Vous n'avez pas créé de favoris ni de petites annonces Cliquez sur le bouton Plus pour créer un favori ou une petite annonce.
-
-
- L'utilisateur n'a ni favoris ni petites annonces.
-
-
- Chargement...
-
-
- Prévisualiser
-
-
- Propriétés
-
-
- Un objet appelé
-
-
- possédé par le groupe
-
-
- possédé par un groupe inconnu
-
-
- possédé par
-
-
- possédé par un résident inconnu
-
-
- vous a donné
-
-
- Vous refusez l'offre [DESC] de <nolink>[NAME]</nolink>.
-
-
- Total
-
-
- acheté
-
-
- vous a payé
-
-
- payé
-
-
- a acheté un pass à
-
-
- a payé des frais pour un événement
-
-
- a payé un prix pour un événement
-
-
- Solde
-
-
- Crédits
-
-
- Débits
-
-
- [weekday,datetime,utc] [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc]
-
-
- Contenus
-
-
- Objets acquis
-
-
- Annuler
-
-
- Le chargement de [NAME] coûte [AMOUNT] L$
-
-
- Cet achat coûte [AMOUNT] L$
-
-
- Extension de fichier inconnue .%s
-.wav, .tga, .bmp, .jpg, .jpeg, ou .bvh acceptés
-
-
- Ignorer
-
-
- Ignorer
-
-
- Ne plus ignorer
-
-
- Ne plus ignorer
-
-
- Ajouter à mes repères...
-
-
- Modifier mon repère...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Maj+
-
-
- Fichier enregistré
-
-
- Réception
-
-
- Matin
-
-
- Après-midi
-
-
- PST
-
-
- PDT
-
-
- Avant
-
-
- Gauche
-
-
- Droite
-
-
- Arrière
-
-
- Nord
-
-
- Sud
-
-
- Ouest
-
-
- Est
-
-
- Haut
-
-
- Bas
-
-
- Toutes catégories
-
-
- Shopping
-
-
- Terrains à louer
-
-
- Propriétés à louer
-
-
- Divertissements
-
-
- Nouveaux produits
-
-
- Emplois
-
-
- Offres
-
-
- Services
-
-
- Divers
-
-
- Aucun
-
-
- Appartenant aux Lindens
-
-
- Adulte
-
-
- Arts et culture
-
-
- Business
-
-
- Éducation
-
-
- Jeux
-
-
- Favoris
-
-
- Accueil pour les nouveaux
-
-
- Parcs et nature
-
-
- Résidentiel
-
-
- Phase
-
-
- Autre
-
-
- Location
-
-
- Aucun
-
-
- Vous
-
-
- :
-
-
- ,
-
-
- ...
-
-
- ***
-
-
- (
-
-
- )
-
-
- .
-
-
- '
-
-
- ---
-
-
- Médias multiples
-
-
- Lire/pauser le média
-
-
- Une erreur est survenue lors de la lecture de la ligne de commande.
-Merci de consulter : http://wiki.secondlife.com/wiki/Client_parameters
-Erreur :
-
-
- [APP_NAME] - Utilisation de la ligne de commande :
-
-
- [APP_NAME] ne peut accéder à un fichier requis.
-
-Cela vient du fait que quelqu'un a ouvert plusieurs copies ou que votre système pense qu'un fichier est ouvert.
-Si ce message persiste, veuillez redémarrer votre ordinateur.
-Si le problème persiste, vous devrez peut-être complètement désinstaller puis réinstaller [APP_NAME].
-
-
- Erreur fatale
-
-
- [APP_NAME] nécessite un microprocesseur AltiVec (version G4 ou antérieure).
-
-
- [APP_NAME] est déjà en cours d'exécution.
-Vérifiez si une version minimisée du programme apparaît dans votre barre de tâches.
-Si ce message persiste, redémarrez votre ordinateur.
-
-
- [APP_NAME] semble avoir crashé lors de l'utilisation précédente.
-Voulez-vous envoyer un rapport de crash ?
-
-
- Notification
-
-
- [APP_NAME] ne peut détecter DirectX 9.0b ou une version supérieure.
-[APP_NAME] utilise DirectX pour détecter les matériels et/ou les pilotes qui ne sont pas à jour et peuvent causer des problèmes de stabilité, de performance ou des plantages. Bien que vous puissiez utiliser [APP_NAME] sans DirectX, nous vous recommandons de l'utiliser avec DirectX 9.0b.
-
-Voulez-vous continuer ?
-
-
- Avertissement
-
-
- Les mises à jour automatiques n'existent pas encore pour Linux.
-Veuillez télécharger la dernière version sur www.secondlife.com.
-
-
- RegisterClass a échoué
-
-
- Erreur
-
-
- Impossible d'ouvrir le mode plein écran à [WIDTH] x [HEIGHT].
-Utilisation du mode fenêtré.
-
-
- Erreur de fermeture lors de la destruction de la fenêtre (DestroyWindow() a échoué)
-
-
- Erreur de fermeture
-
-
- Impossible de créer le contexte GL
-
-
- Impossible de trouver le format pixel approprié
-
-
- Impossible de trouver la description du format pixel
-
-
- [APP_NAME] nécessite True Color (32 bits) pour s'exécuter.
-Accédez aux paramètres d'affichage de votre ordinateur et réglez le mode couleur sur 32 bits.
-
-
- [APP_NAME] ne peut pas s'exécuter, car il n'y pas de canal alpha 8 bits accessible. En général, ceci vient de problèmes avec le pilote de la carte vidéo.
-Assurez-vous d'avoir installé le pilote de carte vidéo le plus récent possible.
-Assurez-vous aussi que votre écran est réglé sur True Color (32 bits) sous Panneau de configuration > Affichage > Paramètres.
-Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
-
-
- Impossible de trouver le format pixel approprié
-
-
- Impossible de créer le contexte de rendu GL
-
-
- Impossible d'activer le contexte de rendu GL
-
-
- [APP_NAME] ne peut pas s'exécuter car les pilotes de votre carte vidéo n'ont pas été installés correctement, ne sont pas à jour, ou sont pour du matériel non pris en charge. Assurez-vous d'avoir des pilotes de cartes vidéos récents, et même si vous avez les plus récents, réinstallez-les.
-
-Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
-
-
- Peu
-
-
- Tout blancs
-
-
- Grand yeux
-
-
- Arqués
-
-
- Longueur des bras
-
-
- Attachés
-
-
- Lobes
-
-
- Mèches de derrière
-
-
- Plus
-
-
- Frange
-
-
- Yeux perçants
-
-
- Taille du ventre
-
-
- Plus
-
-
- Grosses fesses
-
-
- Volume : Derrière
-
-
- Volume : Devant
-
-
- Volume : Haut
-
-
- Plus
-
-
- Gros pectoraux
-
-
- Spikes
-
-
- Noir
-
-
- Blond
-
-
- Cheveux blonds
-
-
- Blush
-
-
- Couleur du blush
-
-
- Opacité du blush
-
-
- Contour du corps
-
-
- Graisse
-
-
- Grains de beauté
-
-
- Plus
-
-
- Épaisseur du corps
-
-
- Moins
-
-
- Jambes arquées
-
-
- Hauteur des seins
-
-
- Clivage
-
-
- Taille des seins
-
-
- Arête du nez
-
-
- Large
-
-
- Taille du front
-
-
- Yeux globuleux
-
-
- Yeux globuleux
-
-
- En bulbe
-
-
- Nez en bulbe
-
-
- Masse des seins
-
-
- Lissage des seins
-
-
- Gravité des seins
-
-
- Résistance de l'air sur les seins
-
-
- Effet max.
-
-
- Élasticité
-
-
- Amplification
-
-
- Amortissement
-
-
- Effet max.
-
-
- Élasticité
-
-
- Amplification
-
-
- Amortissement
-
-
- Effet max.
-
-
- Élasticité
-
-
- Amplification
-
-
- Amortissement
-
-
- Masse du ventre
-
-
- Lissage du ventre
-
-
- Gravité du ventre
-
-
- Résistance de l'air sur le ventre
-
-
- Effet max.
-
-
- Élasticité
-
-
- Amplification
-
-
- Amortissement
-
-
- Masse des fesses
-
-
- Lissage des fesses
-
-
- Gravité des fesses
-
-
- Résistance de l'air sur les fesses
-
-
- Effet max.
-
-
- Élasticité
-
-
- Amplification
-
-
- Amortissement
-
-
- Effet max.
-
-
- Élasticité
-
-
- Amplification
-
-
- Amortissement
-
-
- Sourcils touffus
-
-
- Beaucoup
-
-
- Taille des fesses
-
-
- Gravité des fesses
-
-
- Jupe gonflante
-
-
- Pas gonflante
-
-
- Plus gonflante
-
-
- Moins
-
-
- Pommettes
-
-
- Taille de la poitrine
-
-
- Angle du menton
-
-
- Fente du menton
-
-
- Favoris
-
-
- Profondeur
-
-
- Menton lourd
-
-
- Menton rentré
-
-
- Menton sorti
-
-
- Menton-cou
-
-
- Clair
-
-
- Fendu
-
-
- Yeux rapprochés
-
-
- Fermé(s)
-
-
- Fermé à l'arrière
-
-
- Fermé devant
-
-
- Fermé à gauche
-
-
- Fermé à droite
-
-
- Mini
-
-
- Col arrière
-
-
- Col devant
-
-
- Coin vers le bas
-
-
- Coin vers le haut
-
-
- Fripée
-
-
- Déviation du nez
-
-
- Jambes
-
-
- Sombre
-
-
- Vert foncé
-
-
- Plus foncé
-
-
- Profonde
-
-
- Talons par défaut
-
-
- Dense
-
-
- Double menton
-
-
- Pointant vers le bas
-
-
- Maxi
-
-
- Angle de l'oreille
-
-
- Taille
-
-
- Extrémités
-
-
- Proéminence
-
-
- Cernes
-
-
- Couleur des yeux
-
-
- Profondeur
-
-
- Clarté
-
-
- Ouverture
-
-
- Œil proéminent
-
-
- Taille de l'œil
-
-
- Espacement
-
-
- Arc
-
-
- Épaisseur sourcils
-
-
- Hauteur
-
-
- Direction
-
-
- Taille
-
-
- Longueur des cils
-
-
- Eyeliner
-
-
- Couleur de l'eyeliner
-
-
- Yeux globuleux
-
-
- Visage
-
-
- Définition
-
-
- Yeux écartés
-
-
- Lèvres épaisses
-
-
- Femme
-
-
- Sans doigts
-
-
- Doigts
-
-
- Jambes larges
-
-
- Moins
-
-
- Fesses plates
-
-
- Tête plate
-
-
- Orteil plat
-
-
- Pointure
-
-
- Angle du front
-
-
- Front lourd
-
-
- Tâches de rousseur
-
-
- Mèches de devant
-
-
- Arrière touffu
-
-
- Eyeliner marqué
-
-
- Devant touffu
-
-
- Côtés touffus
-
-
- Côtés touffus
-
-
- Brillant
-
-
- Gants avec doigts
-
-
- Longueur
-
-
- Cheveux
-
-
- Cheveux : Derrière
-
-
- Cheveux : Devant
-
-
- Cheveux : Côtés
-
-
- Sens de la coiffure
-
-
- Épaisseur cheveux
-
-
- Épaisseur cheveux
-
-
- Inclinaison
-
-
- Vers la gauche
-
-
- Vers la droite
-
-
- Cheveux : Volume
-
-
- Taille de la main
-
-
- Plus
-
-
- Longueur
-
-
- Forme
-
-
- Taille
-
-
- Allongement
-
-
- Talons
-
-
- Forme des talons
-
-
- Taille
-
-
- Haut
-
-
- Talons hauts
-
-
- Haut
-
-
- Haute
-
-
- Haut et serré
-
-
- Plus élevé
-
-
- Longueur hanche
-
-
- Largeur hanche
-
-
- Rentré
-
-
- Couleur ombre interne
-
-
- Opacité ombre interne
-
-
- Coin interne
-
-
- Ombre de l'œil interne
-
-
- Ombre interne
-
-
- Longueur de la veste
-
-
- Plis de la veste
-
-
- Angle mâchoire
-
-
- Saillie mâchoire
-
-
- Mâchoire
-
-
- Rapprochés
-
-
- Bajoues
-
-
- Angle du genou
-
-
- Genoux rapprochés
-
-
- Plus
-
-
- Grandes mains
-
-
- Raie à gauche
-
-
- Longueur
-
-
- Muscles
-
-
- Moins
-
-
- Moins
-
-
- Moins
-
-
- Moins
-
-
- Moins
-
-
- Moins
-
-
- Moins
-
-
- Moins
-
-
- Moins
-
-
- Moins
-
-
- Moins ronde
-
-
- Moins
-
-
- Moins carrée
-
-
- Moins
-
-
- Moins
-
-
- Plus léger
-
-
- Fente labiale
-
-
- Prof. fente labiale
-
-
- Volume des lèvres
-
-
- Rougeur des lèvres
-
-
- Proportion des lèvres
-
-
- Épaisseur
-
-
- Largeur
-
-
- Brillant à lèvres
-
-
- Rouge à lèvres
-
-
- Couleur du rouge à lèvres
-
-
- Plus
-
-
- Tête longue
-
-
- Hanches longues
-
-
- Jambes longues
-
-
- Long cou
-
-
- Longues couettes
-
-
- Longue queue de cheval
-
-
- Torse long
-
-
- Bras longs
-
-
- Pantalons amples
-
-
- Chemise ample
-
-
- Manches amples
-
-
- Poignées d'amour
-
-
- Bas
-
-
- Talons bas
-
-
- Bas
-
-
- Basse
-
-
- Bas et ample
-
-
- Abaisser
-
-
- Arête inférieure
-
-
- Joue inférieure
-
-
- Homme
-
-
- Raie au milieu
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Inférieure plus grosse
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Supérieure plus grosse
-
-
- Plus
-
-
- Plus
-
-
- Plus
-
-
- Moustache
-
-
- Coin de la bouche
-
-
- Position
-
-
- Mowhawk
-
-
- Musclé
-
-
- Longs
-
-
- Vernis à ongles
-
-
- Couleur du vernis
-
-
- Moins
-
-
- Arrière étroit
-
-
- Devant étroit
-
-
- Lèvres étroites
-
-
- Naturel
-
-
- Longueur du cou
-
-
- Épaisseur du cou
-
-
- Pas de blush
-
-
- Pas d'eyeliner
-
-
- Pas d'ombre à paupières
-
-
- Pas de brillant à lèvres
-
-
- Pas de rouge à lèvres
-
-
- Pas de raie
-
-
- Pas de vernis
-
-
- Pas de rouge
-
-
- Pas de spikes
-
-
- Pas de blanc
-
-
- Pas de rides
-
-
- Normal plus bas
-
-
- Normal plus haut
-
-
- Nez à gauche
-
-
- Nez à droite
-
-
- Taille du nez
-
-
- Épaisseur du nez
-
-
- Angle bout du nez
-
-
- Forme bout du nez
-
-
- Largeur du nez
-
-
- Division narines
-
-
- Largeur narines
-
-
- Opaque
-
-
- Ouvert
-
-
- Derrière ouvert
-
-
- Devant ouvert
-
-
- Ouvert à gauche
-
-
- Ouvert à droite
-
-
- Orange
-
-
- Sorti
-
-
- Couleur de l'ombre externe
-
-
- Opacité de l'ombre externe
-
-
- Coin externe
-
-
- Ombre de l'œil externe
-
-
- Ombre externe
-
-
- Rentrée
-
-
- Parties
-
-
- Ongles vernis
-
-
- Pâle
-
-
- Entrejambe
-
-
- Taille
-
-
- Longueur
-
-
- Taille
-
-
- Plis
-
-
- Raie
-
-
- Séparation frange
-
-
- Pectoraux
-
-
- Pigmentation
-
-
- Couettes
-
-
- Rose
-
-
- Plus rose
-
-
- Platef. (hauteur)
-
-
- Platef. (largeur)
-
-
- Pointue
-
-
- Talons pointus
-
-
- Queue de cheval
-
-
- Jupe bouffante
-
-
- Œil gauche saillant
-
-
- Œil droit saillant
-
-
- Plus
-
-
- Paup. gonflées
-
-
- Couleur arc en ciel
-
-
- Cheveux roux
-
-
- Standard
-
-
- Raie à droite
-
-
- Teint rosé
-
-
- Rond
-
-
- Rougeur
-
-
- Rouge
-
-
- Texture
-
-
- Culotte de cheval
-
-
- Jambes maigres
-
-
- Séparés
-
-
- Creux
-
-
- Coupe derrière
-
-
- Visage
-
-
- Front
-
-
- Haut gauche décalé
-
-
- Haut droit décalé
-
-
- Dégagé derrière
-
-
- Dégagé devant
-
-
- Vers la gauche
-
-
- Déplacement
-
-
- Vers la droite
-
-
- Chemise
-
-
- Taille
-
-
- Plis
-
-
- Hauteur
-
-
- Moins
-
-
- Bras courts
-
-
- Jambes courtes
-
-
- Petit cou
-
-
- Couettes courtes
-
-
- Queue de cheval courte
-
-
- Court
-
-
- Torse court
-
-
- Hanches courtes
-
-
- Épaules
-
-
- Mèches sur le côté
-
-
- Favoris
-
-
- Cheveux sur le côté
-
-
- Cheveux sur le côté en bas
-
-
- Cheveux sur le côté en haut
-
-
- Cou maigre
-
-
- Taille jupe
-
-
- Longueur jupe
-
-
- Front incliné
-
-
- Longueur manche
-
-
- Ampleur manche
-
-
- Fente : Derrière
-
-
- Fente : Devant
-
-
- Fente : Gauche
-
-
- Fente : Droite
-
-
- Moins
-
-
- Petites mains
-
-
- Moins
-
-
- Moins
-
-
- Cheveux lisses
-
-
- Longueur
-
-
- Barbichette
-
-
- Rares
-
-
- Mèches en pointe
-
-
- Carrée
-
-
- Orteil carré
-
-
- Écraser la tête
-
-
- Allonger la tête
-
-
- Saillante
-
-
- Poitrine enfoncée
-
-
- Yeux enfoncés
-
-
- En arrière
-
-
- Vers l'avant
-
-
- Plus
-
-
- Arrière
-
-
- Avant
-
-
- Talons épais
-
-
- Cou épais
-
-
- Orteil épais
-
-
- Mince
-
-
- Sourcils fins
-
-
- Lèvres fines
-
-
- Nez fin
-
-
- Menton fin
-
-
- Jambes serrées
-
-
- Pantalons serrés
-
-
- Chemise serrée
-
-
- Jupe serrée
-
-
- Manches serrées
-
-
- Forme de l'orteil
-
-
- Épaisseur orteil
-
-
- Longueur du torse
-
-
- Muscles du torse
-
-
- Torse maigre
-
-
- Séparés
-
-
- Lisse
-
-
- Sortie
-
-
- Artificiel
-
-
- Arête supérieure
-
-
- Joue supérieure
-
-
- Menton supérieur
-
-
- Paupière sup.
-
-
- En trompette
-
-
- Très rouge
-
-
- Hauteur taille
-
-
- Ronde
-
-
- Cheveux blancs
-
-
- Plus
-
-
- Derrière large
-
-
- Devant large
-
-
- Lèvres larges
-
-
- Artificiel
-
-
- Rides
-
-
- Ajouter à mes repères
-
-
- Modifier mon repère
-
-
- En savoir plus sur l'emplacement actuel
-
-
- Historique de mes emplacements
-
-
- Acheter ce terrain
-
-
- Chat vocal indisponible ici
-
-
- Vol interdit
-
-
- Pas de bousculades
-
-
- Construction/placement d'objets interdit
-
-
- Scripts interdits
-
-
- Santé
-
-
- Région de type Adulte
-
-
- Région de type Modéré
-
-
- Région de type Général
-
-
- Avatars visibles et chat autorisé en dehors de cette parcelle
-
-
- [APP_NAME] - Mise à jour
-
-
- Mise à jour de [APP_NAME]...
-
-
- Installation de [APP_NAME]...
-
-
- Le client [APP_NAME] est en train d'être mis à jour. Cela peut prendre un certain temps, merci de votre patience.
-
-
- Mise à jour en cours...
-
-
- Mise à jour en cours
-
-
- Le téléchargement de la mise à jour a échoué
-
-
- Une erreur est survenue lors de la mise à jour de [APP_NAME]. Veuillez télécharger la dernière version sur www.secondlife.com.
-
-
- L'installation de la mise à jour a échoué
-
-
- Impossible de lancer le client
-
-
- [APP_NAME] : transfert trop rapide des articles de [FROM_NAME] ; aperçu automatique désactivé pendant [TIME] secondes
-
-
- [APP_NAME] : transfert trop rapide des articles ; aperçu automatique désactivé pendant [TIME] secondes
-
-
- -- Archivage des IM activé --
-
-
- [NAME] est en train d'écrire...
-
-
- (sans nom)
-
-
- (Modéré : Voix désactivées par défaut)
-
-
- Le chat écrit n'est pas disponible pour cet appel.
-
-
- Votre chat écrit a été désactivé par un modérateur de groupe.
-
-
- Cliquez ici pour envoyer un message instantané.
-
-
- À
-
-
- (Modérateur)
-
-
- (Enregistrement : [LONG_TIMESTAMP])
-
-
- Pour afficher ce message, vous devez désactiver la case Seuls mes amis et groupes peuvent m'appeler ou m'envoyer un IM, sous Préférences/Confidentialité.
-
-
- Votre appel a fait l'objet d'une réponse
-
-
- Vous appelez.
-
-
- Vous avez rejoint l'appel
-
-
- [NAME] appelle.
-
-
- En train de rejoindre l'appel...
-
-
- Connecté(e), cliquez sur Quitter l'appel pour raccrocher
-
-
- A quitté l'appel
-
-
- Connexion en cours...
-
-
- Conférence ad-hoc
-
-
- Conférence avec [AGENT_NAME]
-
-
- Objet de l'inventaire offert
-
-
- Faire glisser les objets de l'inventaire ici
-
-
- (Session IM inexistante)
-
-
- Vous êtes le seul participant à cette session.
-
-
- [NAME] est hors ligne.
-
-
- Pour accepter ce chat vocal/vous connecter, cliquez sur le bouton [BUTTON NAME].
-
-
- Vous ignorez ce résident. Si vous lui envoyez un message, il ne sera plus ignoré.
-
-
- Erreur lors de la requête, veuillez réessayer ultérieurement.
-
-
- Erreur lors de la requête, veuillez réessayer ultérieurement.
-
-
- Vous n'avez pas les droits requis.
-
-
- La session a expiré
-
-
- Vous n'avez pas ce pouvoir.
-
-
- Vous n'avez pas ce pouvoir.
-
-
- Vous n'êtes pas modérateur de session.
-
-
- Un modérateur de groupe a désactivé votre chat écrit.
-
-
- Un modérateur de groupe a désactivé votre chat écrit.
-
-
- Impossible d'ajouter des participants à la session de chat avec [RECIPIENT].
-
-
- Impossible d'envoyer votre message à la session de chat avec [RECIPIENT].
-
-
- Impossible d'envoyer votre message à la session de chat avec [RECIPIENT].
-
-
- Erreur lors de la modération.
-
-
- Vous avez été supprimé du groupe.
-
-
- Vous avez été supprimé du groupe.
-
-
- Vous ne pouvez plus participer à la session de chat.
-
-
- [SOURCES] a dit quelque chose de nouveau
-
-
- [SOURCES] ont dit quelque chose de nouveau
-
-
- Expiration du délai d'initialisation de la session
-
-
- Emplacement du domicile défini.
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] vous a payé [AMOUNT] L$ [REASON].
-
-
- [NAME] vous a payé [AMOUNT] L$.
-
-
- Vous avez payé à [AMOUNT] L$ [REASON].
-
-
- Vous avez payé [AMOUNT] L$.
-
-
- Vous avez payé à [NAME] [AMOUNT] L$.
-
-
- Vous avez payé à [AMOUNT] L$ [REASON].
-
-
- Votre paiement de [AMOUNT] L$ à [NAME] [REASON] a échoué.
-
-
- Votre paiement de [AMOUNT] L$ a échoué.
-
-
- Votre paiement de [AMOUNT] L$ à [NAME] a échoué.
-
-
- Votre paiement de [AMOUNT] L$ [REASON] a échoué.
-
-
- pour l'article suivant : [ITEM]
-
-
- pour une parcelle de terrain
-
-
- pour un pass d'accès au terrain
-
-
- pour une cession de terrain
-
-
- pour créer un groupe
-
-
- pour rejoindre un groupe
-
-
- pour charger
-
-
- pour publier une petite annonce
-
-
- Donner [AMOUNT] L$
-
-
- Le chargement coûte [AMOUNT] L$
-
-
- Cela coûte [AMOUNT] L$
-
-
- Achat du terrain sélectionné pour [AMOUNT] L$
-
-
- Cet objet coûte [AMOUNT] L$
-
-
- Tous
-
-
- Officiers
-
-
- Propriétaires
-
-
- En ligne
-
-
- Chargement...
-
-du rapport d'infraction
-
-
- Nouvelle silhouette
-
-
- Nouvelle peau
-
-
- Nouveaux cheveux
-
-
- Nouveaux yeux
-
-
- Nouvelle chemise
-
-
- Nouveau pantalon
-
-
- Nouvelles chaussures
-
-
- Nouvelles chaussettes
-
-
- Nouvelle veste
-
-
- Nouveaux gants
-
-
- Nouveau débardeur
-
-
- Nouveau caleçon
-
-
- Nouvelle jupe
-
-
- Nouvel alpha
-
-
- Nouveau tatouage
-
-
- Nouvelles propriétés physiques
-
-
- Objet à porter non valide
-
-
- Nouveau geste
-
-
- Nouveau script
-
-
- Nouvelle note
-
-
- Nouveau dossier
-
-
- Contenus
-
-
- Geste
-
-
- Gestes masculins
-
-
- Gestes féminins
-
-
- Autres gestes
-
-
- Gestes liés à la parole
-
-
- Gestes communs
-
-
- Homme - Demander pardon
-
-
- Homme - Get lost
-
-
- Homme - Envoyer un baiser
-
-
- Homme - Hou !
-
-
- Homme - Ennui
-
-
- Homme - Hé !
-
-
- Homme - Rire
-
-
- Homme - Dégoût
-
-
- Homme - Hausser les épaules
-
-
- Homme - Tirer la langue
-
-
- Homme - Ouah !
-
-
- Femme - Glousser
-
-
- Femme - Pleurer
-
-
- Femme - Gêne
-
-
- Femme - Demander pardon
-
-
- Femme - Get lost
-
-
- Femme - Envoyer un baiser
-
-
- Femme - Hou !
-
-
- Femme - Ennui
-
-
- Femme - Hé !
-
-
- Femme - Hey baby
-
-
- Femme - Rire
-
-
- Femme - Looking good
-
-
- Femme - Over here
-
-
- Femme - Please
-
-
- Femme - Dégoût
-
-
- Femme - Hausser les épaules
-
-
- Femme - Tirer la langue
-
-
- Femme - Ouah !
-
-
- /s'incliner
-
-
- /applaudir
-
-
- /compter
-
-
- /éteindre
-
-
- /vatefairevoir
-
-
- /montrersesmuscles
-
-
- /non
-
-
- /non !
-
-
- /papier
-
-
- /memontrerdudoigt
-
-
- /montrerl'autredudoigt
-
-
- /pierre
-
-
- /ciseaux
-
-
- /fumer
-
-
- /bailler
-
-
- /siffler
-
-
- /oui
-
-
- /oui !
-
-
- absent
-
-
- danse1
-
-
- danse2
-
-
- danse3
-
-
- danse4
-
-
- danse5
-
-
- danse6
-
-
- danse7
-
-
- danse8
-
-
- [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
-
-
- aucun/aucun
-
-
- Impossible de charger des images de taille supérieure à [WIDTH]*[HEIGHT]
-
-
-
- Malgré nos efforts, une erreur inattendue s'est produite.
-
- Veuillez vous reporter à status.secondlifegrid.net afin de déterminer si un problème connu existe avec ce service.
- Si le problème persiste, vérifiez la configuration de votre réseau et de votre pare-feu.
-
-
- Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday
-
-
- Sun:Mon:Tue:Wed:Thu:Fri:Sat
-
-
- January:February:March:April:May:June:July:August:September:October:November:December
-
-
- Jan:Feb:Mar:Apr:May:Jun:Jul:Aug:Sep:Oct:Nov:Dec
-
-
- [MDAY]
-
-
- AM
-
-
- PM
-
-
- [AMOUNT] US$
-
-
- Inscription
-
-
- Rôles
-
-
- Identité du groupe
-
-
- Gestion des parcelles
-
-
- Identité des parcelles
-
-
- Paramètres des parcelles
-
-
- Pouvoirs sur les parcelles
-
-
- Accès aux parcelles
-
-
- Contenu des parcelles
-
-
- Gestion des objets
-
-
- Comptabilité
-
-
- Notices
-
-
- Chat
-
-
- Supprimer les articles sélectionnés ?
-
-
- Supprimer l'article sélectionné ?
-
-
- Cette tenue ne contient aucun article.
-
-
- Sélectionnez un éditeur à l'aide du paramètre ExternalEditor.
-
-
- Éditeur externe spécifié introuvable.
-Essayez avec le chemin d'accès à l'éditeur entre guillemets doubles
-(par ex. : "/chemin_accès/editor" "%s").
-
-
- Erreur lors de l'analyse de la commande d'éditeur externe.
-
-
- Échec d'exécution de l'éditeur externe.
-
-
- Échec de traduction : [REASON]
-
-
- Erreur lors de l'analyse de la réponse relative à la traduction.
-
-
- Échap
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Maj
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Début
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Ajouter
-
-
- Soustraire
-
-
- Multiplier
-
-
- Diviser
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Affichage des balises de particule (bleu)
-
-
- Affichage des balises d'objet physique (vert)
-
-
- Affichage des balises d'objet scripté (rouge)
-
-
- Affichage des balises d'objet scripté avec fonction de toucher (rouge)
-
-
- Affichage des balises de son (jaune)
-
-
- Affichage des balises de média (blanc)
-
-
- Masquage des particules
-
-
- À propos du terrain
-
-
- Apparence
-
-
- Avatar
-
-
- Construire
-
-
- Chat
-
-
- Boussole
-
-
- Destinations
-
-
- Gestes
-
-
- Aide rapide
-
-
- Inventaire
-
-
- Carte
-
-
- Place du marché
-
-
- Mini-carte
-
-
- Marcher / Courir / Voler
-
-
- Boîte d'envoi vendeur
-
-
- Personnes
-
-
- Favoris
-
-
- Lieux
-
-
- Préférences
-
-
- Profil
-
-
- Recherche
-
-
- Photo
-
-
- Parler
-
-
- Paramètres de la caméra
-
-
- Paramètres vocaux
-
-
- Information sur le terrain que vous visitez
-
-
- Modifier votre avatar
-
-
- Choisir un avatar complet
-
-
- Construction d'objets et remodelage du terrain
-
-
- Parler aux personnes près de vous par chat écrit
-
-
- Boussole
-
-
- Destinations intéressantes
-
-
- Gestes de votre avatar
-
-
- Comment effectuer les opérations courantes
-
-
- Afficher et utiliser vos possessions
-
-
- Carte du monde
-
-
- Faire du shopping
-
-
- Afficher les personnes près de vous
-
-
- Faire bouger votre avatar
-
-
- Transférer des articles vers votre place de marché afin de les vendre.
-
-
- Amis, groupes et personnes près de vous
-
-
- Lieux à afficher comme favoris dans votre profil
-
-
- Lieux enregistrés
-
-
- Préférences
-
-
- Modifier ou afficher votre profil
-
-
- Trouver des lieux, personnes, événements
-
-
- Prendre une photo
-
-
- Parler aux personnes près de vous en utilisant votre micro
-
-
- Changer l'angle de la caméra
-
-
- Commandes de réglage du volume des appels et des personnes près de vous dans Second Life.
-
-
- actuellement dans la barre d'outils du bas
-
-
- actuellement dans la barre d'outils de gauche
-
-
- actuellement dans la barre d'outils de droite
-
-
- Garder%
-
-
- Détail
-
-
- Meilleur détail
-
-
- Surface
-
-
- Solide
-
-
- Wrap
-
-
- Aperçu
-
-
- Normal
-
-
- Très faible
-
-
- Faible
-
-
- Moyenne
-
-
- Élevée
-
-
- Très élevée
-
-
diff --git a/indra/newview/skins/steam/xui/it/strings.xml b/indra/newview/skins/steam/xui/it/strings.xml
deleted file mode 100644
index 0fcc4e0820..0000000000
--- a/indra/newview/skins/steam/xui/it/strings.xml
+++ /dev/null
@@ -1,4928 +0,0 @@
-
-
-
-
- Second Life
-
-
- Second Life
-
-
- SECOND LIFE
-
-
- Portale di supporto di Second Life
-
-
- Ricerca hardware...
-
-
- Caricamento di [APP_NAME]...
-
-
- Pulizia della cache...
-
-
- Inizializzazione della cache texture...
-
-
- Inizializzazione VFS...
-
-
- Inizializzazione grafica non riuscita. Aggiorna il driver della scheda grafica!
-
-
- Ripristino in corso...
-
-
- Modifica della risoluzione...
-
-
- Luminosità massima (vers. precedente)
-
-
- In connessione. [APP_NAME] può sembrare rallentata. Attendi.
-
-
- Accesso in corso...
-
-
- In autenticazione
-
-
- Aggiornamento account in corso...
-
-
- Un precedente tentativo di login è fallito. Tentativo di connessione [NUMBER]
-
-
- Sto caricando [SECOND_LIFE]...
-
-
- Inizializzazione del browser web incorporato...
-
-
- Inizializzazione dati multimediali...
-
-
- Caricamento caratteri...
-
-
- Verifica file della cache (tempo previsto 60-90 secondi)...
-
-
- Elaborazione risposta...
-
-
- Inizializzazione mondo...
-
-
- Decodifica immagini...
-
-
- Inizializzazione QuickTime...
-
-
- QuickTime non trovato - impossibile inizializzare.
-
-
- QuickTime configurato con successo.
-
-
- Richiesta capacità regione...
-
-
- Richiesta capacità regione, tentativo [NUMBER]...
-
-
- In attesa della risposta della regione...
-
-
- Connessione alla regione...
-
-
- Sto caricando i vestiti...
-
-
- Il server ha inviato un certificato non valido o errato. Rivolgiti all'amministratore della griglia.
-
-
- Per accedere al server è stato utilizzato un nome host non valido; controlla lo SLURL o il nome host della griglia.
-
-
- Il certificato inviato dalla griglia sembra essere scaduto. Controlla l'orologio del sistema o rivolgiti all'amministratore della griglia.
-
-
- Impossibile utilizzare per SSl il certificato inviato dal server. Rivolgiti all'amministratore della griglia.
-
-
- Nella catena dei certificati del server erano presenti troppi certificati. Rivolgiti all'amministratore della griglia.
-
-
- Impossibile verificare la firma del certificato inviato dal server della griglia. Rivolgiti all'amministratore della griglia.
-
-
- Errore di rete: Non è stato possibile stabilire un collegamento, controlla la tua connessione.
-
-
- Accesso non riuscito.
-
-
- Esci
-
-
- http://join.secondlife.com/index.php?sourceid=1206_steam&lang=it-IT
-
-
- Il viewer utilizzato non è più in grado di accedere a Second Life. Visita la parina seguente per scaricare un nuovo viewer:
-http://secondlife.com/download.
-
-Per maggiori informazioni, consulta le domande frequenti alla pagina seguente:
-http://secondlife.com/viewer-access-faq
-
-
- Disponibile aggiornamento facoltativo viewer: [VERSION]
-
-
- Aggernamento viewer richiesto: [VERSION]
-
-
- Questo agente ha già eseguito il login.
-
-
- Siamo spiacenti. Il tentativo di accesso non è riuscito.
-Verifica di avere inserito correttamente
- * Nome utente (come robby12 o Stella Soleggiato)
- * Password
-Verifica anche che il blocco delle maiuscole non sia attivato.
-
-
- Come misura precauzionale, la tua password è stata cambiata.
-Visita la pagina del tuo account a http://secondlife.com/password
-e rispondi alla domanda di sicurezza per reimpostare la password.
-Ci scusiamo per l'inconveniente.
-
-
- Abbiamo effettuato delle modifiche al sistema che richiedono di reimpostare la password.
-Visita la pagina del tuo account a http://secondlife.com/password
-e rispondi alla domanda di sicurezza per reimpostare la password.
-Ci scusiamo per l'inconveniente.
-
-
- Second Life è chiuso temporaneamente per manutenzione.
-Al momento, solo i dipendenti possono eseguire l'accesso.
-Visita www.secondlife.com/status per aggiornamenti.
-
-
- L'accesso a Second Life è temporaneamente limitato per garantire che chi è nel mondo virtuale abbia la migliore esperienza possibile.
-
-Le persone con account gratuiti non potranno accedere a Second Life durante questo periodo, per lasciare spazio alle persone che hanno pagato per Second Life.
-
-
- Non si può accedere a Second Life da questo computer.
-Se ritieni che si tratta di un errore, contatta
-support@secondlife.com.
-
-
- Il tuo account non è accessibile fino alle
-[TIME] fuso orario del Pacifico.
-
-
- Non siamo attualmente in grado di completare la tua richiesta.
-Contatta l'assistenza Second Life alla pagina http://secondlife.com/support.
-Se non sei in grado di cambiare la password, chiama (866) 476-9763.
-
-
- Dati incompatibili rilevati durante l'accesso.
-Contattare support@secondlife.com.
-
-
- Il tuo account è in fase di leggera manutenzione.
-Il tuo account non è accessibile fino alle
-[TIME] fuso orario del Pacifico.
-Se ritieni che si tratta di un errore, contatta support@secondlife.com.
-
-
- Errore del simulatore in seguito alla richiesta di logout.
-
-
- Il sistema sta eseguendo il logout in questo momento.
-Il tuo account non sarà disponibile fino alle
-[TIME] fuso orario del Pacifico.
-
-
- Non è possibile creare una sessione valida.
-
-
- Non è possibile collegarsi a un simulatore.
-
-
- Il tuo account può accedere a Second Life solo
-tra le [START] e le [END] fuso orario del Pacifico.
-Torna durante quell'orario.
-Se ritieni che si tratta di un errore, contatta support@secondlife.com.
-
-
- Parametri errati.
-Se ritieni che si tratta di un errore, contatta support@secondlife.com.
-
-
- Il parametro Nome deve includere solo caratteri alfanumerici.
-Se ritieni che si tratta di un errore, contatta support@secondlife.com.
-
-
- Il parametro Cognome deve includere solo caratteri alfanumerici.
-Se ritieni che si tratta di un errore, contatta support@secondlife.com.
-
-
- La regione sta passando allo stato non in linea.
-Prova ad accedere nuovamente tra un minuto.
-
-
- L'agente non è nella regione.
-Prova ad accedere nuovamente tra un minuto.
-
-
- La regione ha eseguito l'accesso in un'altre sessione.
-Prova ad accedere nuovamente tra un minuto.
-
-
- La regione stava eseguendo il logout della sessione precedente.
-Prova ad accedere nuovamente tra un minuto.
-
-
- La regione sta ancora eseguendo il logout della sessione precedente.
-Prova ad accedere nuovamente tra un minuto.
-
-
- La regione ha eseguito il logout dell'ultima sessione.
-Prova ad accedere nuovamente tra un minuto.
-
-
- La regione ha iniziato la procedura di logout.
-Prova ad accedere nuovamente tra un minuto.
-
-
- Il sistema ha iniziato il logout dell'ultima sessione.
-Prova ad accedere nuovamente tra un minuto.
-
-
- Questa regione sta avendo problemi. Verifica la tua connessione a Internet.
-
-
- Salvataggio delle impostazioni...
-
-
- Uscita...
-
-
- Chiusura...
-
-
- Sei scollegato dalla regione in cui ti trovavi.
-
-
- Sei stato indirizzato in una regione non valida.
-
-
- Verifica scollegamento viewer
-
-
- Persona
-
-
- (nessun nome)
-
-
- Proprietario:
-
-
- Pubblico
-
-
- (Gruppo)
-
-
- In Vendita: [AMOUNT]L$
-
-
- Costruzione solo con gruppo
-
-
- Divieto di Costruire
-
-
- Costruzione solo con gruppo
-
-
- Non Sicuro
-
-
- Divieto di Volare
-
-
- Script solo con gruppo
-
-
- Script vietati
-
-
- Terreno:
-
-
- Solo un singolo oggetto può essere creato qui
-
-
-
- Non puoi rezzare elementi nella tua casella in uscita del rivenditore
-
-
- Almeno uno di questi oggetti non può essere venduto o trasferito.
-
-
- La tua casella in uscita del rivenditore può accettare solo elementi provenienti dal tuo inventario
-
-
- Non puoi mettere gli elementi che indossi nella casella in uscita del rivenditore
-
-
- Non puoi inserire il tuo biglietto da visita nella tua casella in uscita del rivenditore
-
-
- La profondità delle caselle nidificate è maggiore di 3
-
-
- Il numero di sottocartelle nella cartella al livello più alto è maggiore di 20
-
-
- Il numero di elementi nella cartella al livello più alto è maggiore di 200
-
-
- Non puoi spostare una cartella nella relativa cartella secondaria
-
-
- Non puoi spostare una cartella in se stessa
-
-
- Clicca per visitare questa pagina web
-
-
- Clicca per avere maggiori informazioni sul luogo
-
-
- Clicca per vedere il profilo di questo residente
-
-
- Ulteriori informazioni su questo Residente
-
-
- Clicca per disattivare l'audio di questo residente
-
-
- Clicca per attivare l'audio del residente
-
-
- Clicca per inviare un IM a questo residente
-
-
- Clicca per pagare il residente
-
-
- Fai clic per inviare un'offerta di teleport al residente
-
-
- Fai clic per inviare una richiesta di amicizia al residente
-
-
- Clicca per vedere la descrizione del gruppo
-
-
- Clicca per vedere la descrizione dell'evento
-
-
- Clicca per vedere questa inserzione
-
-
- Clicca per vedere la descrizione del lotto
-
-
- Clicca per effettuare il teleport a questa destinazione
-
-
- Clicca per vedere la descrizione dell'oggetto
-
-
- Clicca per vedere questo posto sulla mappa
-
-
- Clicca per avviare il comando secondlife://
-
-
-
- Teleportati a
-
-
- Mostra la mappa per
-
-
- Disattiva audio
-
-
- Riattiva audio
-
-
- IM
-
-
- Paga
-
-
- Offri teleport a
-
-
- Richiesta di amicizia
-
-
- Chiudi (⌘W)
-
-
- Chiudi (Ctrl+W)
-
-
- Chiudi
-
-
- Ripristina
-
-
- Minimizza
-
-
- Distacca
-
-
- Àncora
-
-
- Mostra Aiuto
-
-
- Ricerca in corso...
-
-
- Nessun risultato.
-
-
- Recupero dati in corso...
-
-
- Note sulla versione
-
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- In caricamento...
-
-
- (nessuno)
-
-
- (in attesa)
-
-
- (nessuno)
-
-
- Chiamante Avaline [ORDER]
-
-
- Nessun errore
-
-
- Richiesta risorsa: fallita
-
-
- Richiesta risorsa: file non esistente
-
-
- Richiesta risorsa: risorsa non trovata nel database
-
-
- Fine del file
-
-
- Apertura del file non possibile
-
-
- File non trovato
-
-
- Tempo esaurito per il trasferimento file
-
-
- Circuito perso
-
-
- Il programma e il server non combaciano nel prezzo
-
-
- Stato sconosciuto
-
-
- texture
-
-
- suono
-
-
- biglietto da visita
-
-
- punto di riferimento
-
-
- script (vecchia versione)
-
-
- vestiario
-
-
- oggetto
-
-
- biglietto
-
-
- cartella
-
-
- cartella principale
-
-
- script LSL2
-
-
- bytecode LSL
-
-
- tga texture
-
-
- parte del corpo
-
-
- fotografia
-
-
- oggetti smarriti
-
-
- immagine targa
-
-
- Cestino
-
-
- immagine jpeg
-
-
- animazione
-
-
- gesture
-
-
- simstate
-
-
- preferiti
-
-
- link
-
-
- link alla cartella
-
-
- reticolo
-
-
- (Modifica Aspetto)
-
-
- Assente
-
-
- Occupato
-
-
- Mutato
-
-
- Dispiaciuto
-
-
- Arrabbiato
-
-
- Assente
-
-
- Salto all'indietro
-
-
- Ridere a crepapelle
-
-
- Gran sorriso
-
-
- Lancia un bacio
-
-
- Noia
-
-
- Inchino
-
-
- Applauso
-
-
- Inchino a corte
-
-
- Pianto
-
-
- Ballo 1
-
-
- Ballo 2
-
-
- Ballo 3
-
-
- Ballo 4
-
-
- Ballo 5
-
-
- Ballo 6
-
-
- Ballo 7
-
-
- Dance 8
-
-
- Sdegno
-
-
- Bere
-
-
- Imbarazzo
-
-
- Negare col dito
-
-
- Esultare con pugno
-
-
- Yoga fluttuante
-
-
- Acciglio
-
-
- Impazienza
-
-
- Salto di gioia
-
-
- Baciami il sedere
-
-
- Bacio
-
-
- Risata
-
-
- Muscoli da spiaggia
-
-
- No (Scontento)
-
-
- No
-
-
- Na-na-na
-
-
- Uno-due pugno
-
-
- Bocca aperta
-
-
- Pace
-
-
- Indicare altri
-
-
- Indicare te stesso
-
-
- Pugno a sinistra
-
-
- Pugno a destra
-
-
- Contare nella morra cinese
-
-
- Carta nella morra cinese
-
-
- Sasso nella morra cinese
-
-
- Forbici nella morra cinese
-
-
- Repulsione
-
-
- Calcio con rotazione
-
-
- Triste
-
-
- Saluto
-
-
- Urlo
-
-
- Spallucce
-
-
- Sorriso
-
-
- Fumare
-
-
- Fumare inspirazione
-
-
- Fumare mandando giù
-
-
- Sorpresa
-
-
- Colpo di spada
-
-
- Collera
-
-
- Linguaccia
-
-
- Saluto con mano
-
-
- Sussurro
-
-
- Fischio
-
-
- Ammicca
-
-
- Ammicca (Hollywood)
-
-
- Preoccupato
-
-
- Si (Felice)
-
-
- Si
-
-
- Multiple
-
-
- Caricamento in corso...
-
-
- Offline
-
-
- L$ [PRICE] - [AREA] m²
-
-
- Nessun risultato.
-
-
- OK
-
-
- Fine prematura del file
-
-
- Impossibile trovare ROOT o JOINT.
-
-
- sussurra:
-
-
- grida:
-
-
- In connessione alla Voice Chat in-world...
-
-
- Connesso
-
-
- Il voice non è disponibile nel posto dove ti trovi ora
-
-
- Disconnesso dalla Voice Chat in-world
-
-
- Sarai riconnesso alla chat vocale nei dintorni
-
-
- A '[OBJECTNAME]', un oggetto di proprietà di '[OWNERNAME]', situato in [REGIONNAME] [REGIONPOS], è stato concesso il permesso di: [PERMISSIONS].
-
-
- A '[OBJECTNAME]', un oggetto di proprietà di '[OWNERNAME]', situato in [REGIONNAME] [REGIONPOS], è stato negato il permesso di: [PERMISSIONS].
-
-
- Prendere dollari Linden (L$) da te
-
-
- Agire sul tuo controllo degli input
-
-
- Rimappare il tuo controllo degli input
-
-
- Animare il tuo avatar
-
-
- Far indossare al tuo avatar
-
-
- Rilasciare la propietà è far diventare pubblico.
-
-
- Collegare e scollegare dagli altri oggetti
-
-
- Aggiungere e rimuovere le giunzioni insieme con gli altri oggetti
-
-
- Cambiare i permessi
-
-
- Tracciare la fotocamera
-
-
- Controllare la tua fotocamera
-
-
- Generale
-
-
- Moderato
-
-
- Adulti
-
-
- Offline
-
-
- Sconosciuto
-
-
- (sconosciuto)
-
-
- Proprietà immobiliare / Regione completa
-
-
- Proprietà immobiliare / Homestead
-
-
- Continente / Homestead
-
-
- Continente / Regione completa
-
-
- Tutti i file
-
-
- Suoni
-
-
- Animazioni
-
-
- Immagini
-
-
- Salva
-
-
- Carica
-
-
- Immagini Targa
-
-
- Immagini Bitmap
-
-
- File video AVI
-
-
- File animazione XAF
-
-
- File XML
-
-
- File RAW
-
-
- Immagini compresse
-
-
- Carica i file
-
-
- Scegli la cartella
-
-
- Script
-
-
- Imposta come non assente
-
-
- Imposta come assente
-
-
- Imposta come non occupato
-
-
- Imposta come occupato
-
-
- Figura corporea
-
-
- Pelle
-
-
- Capigliature
-
-
- Occhi
-
-
- Camicia
-
-
- Pantaloni
-
-
- Scarpe
-
-
- Calzini
-
-
- Giacca
-
-
- Guanti
-
-
- Maglietta intima
-
-
- Slip
-
-
- Gonna
-
-
- Alfa (Trasparenza)
-
-
- Tatuaggio
-
-
- Fisica
-
-
- non valido
-
-
- nessuno
-
-
- Camicia non indossata
-
-
- Pantaloni non indossati
-
-
- Scarpe non indossate
-
-
- Calzini non indossati
-
-
- Giacca non indossata
-
-
- Guanti non indossati
-
-
- Maglietta intima non indossata
-
-
- Slip non indossati
-
-
- Gonna non indossata
-
-
- Alpha non portato
-
-
- Tatuaggio non portato
-
-
- Fisica non indossata
-
-
- non valido
-
-
- Crea nuova figura corporea
-
-
- Crea nuova pelle
-
-
- Crea nuovi capelli
-
-
- Crea nuovi occhi
-
-
- Crea nuova camicia
-
-
- Crea nuovi pantaloni
-
-
- Crea nuove scarpe
-
-
- Crea nuove calze
-
-
- Crea nuova giacca
-
-
- Crea nuovi guanti
-
-
- Crea nuova maglietta intima
-
-
- Crea nuovi slip
-
-
- Crea nuova gonna
-
-
- Crea nuovo Alpha
-
-
- Crea un nuovo tatuaggio
-
-
- Crea nuova fisica
-
-
- non valido
-
-
- Nuovo [WEARABLE_ITEM]
-
-
- Avanti
-
-
- OK
-
-
- Avviso di gruppo
-
-
- Avvisi di gruppo
-
-
- Inviato da
-
-
- Allegato:
-
-
- Visualizza gli avvisi precedenti o scegli qui di non riceverne.
-
-
- Apri l'allegato
-
-
- Salva l'allegato
-
-
- Offerta di Teleport
-
-
- Mentre eri assente sono arrivate nuove notifiche...
-
-
- Hai ancora [%d] notifiche
-
-
- Braccio destro
-
-
- Testa
-
-
- Braccio sinistro
-
-
- Gamba sinistra
-
-
- Torace
-
-
- Gamba destra
-
-
- Basso
-
-
- Medio
-
-
- Alto
-
-
- Premi ESC per tornare in visualizzazione normale
-
-
- Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/all/[SEARCH_TERM] Cerca].
-
-
- Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/places/[SEARCH_TERM] Cerca].
-
-
- Trascina qui un punto di riferimento per aggiungerlo ai Preferiti.
-
-
- Non hai una copia di questa texture nel tuo inventario
-
-
- Gli acquissti dal mercato verranno mostrati qui. Potrai quindi trascinarli nel tuo inventario per usarli.
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
-
-
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
-
-
- Chiunque può vendere oggetti nel Marketplace.
-
-
-
- Per diventare un venditore, devi [[MARKETPLACE_CREATE_STORE_URL] creare un negozio nel Marketplace].
-
-
- La tua casella in uscita è vuota.
-
-
-
- Trascina le cartelle in questa area e clicca su "Invia a Marketplace" per metterle in vendita su [[MARKETPLACE_DASHBOARD_URL] Marketplace].
-
-
- Nessun errore
-
-
- Errore: Prima di inviare elementi al Marketplace devi essere impostato come rivenditore (gratis).
-
-
- Errore: questa cartella non include alcun contenuto.
-
-
- Errore: Oggetto non caricato perché il tuo account venditore ha troppi oggetti che non sono associati con dei prodotti. Per risolvere questo errore, esegui l'accesso al sito di Marketplace e riduci il numero di oggetti non associati.
-
-
- Errore: questo elemento contiene troppi oggetti. Per risolvere questo problema, inserisci più oggetti insieme in una scatola per ridurre a meno di 200 il numero totale di oggetti.
-
-
- Errore: questo elemento contiene troppi livelli di cartelle nidificate. Riorganizzalo per ottenere un massimo di 3 livelli di cartelle nidificate.
-
-
- Errore: Questo elemento non può essere venduto nel Marketplace.
-
-
- Errore: problema con questo elemento. Riprova più tardi.
-
-
- Apri luoghi di riferimento
-
-
-
-
-
-
-
-
- Caricamento del contenuto...
-
-
- Nessun contenuto
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Il mio inventario
-
-
- Libreria
-
-
- Texture
-
-
- Suoni
-
-
- Biglietti da visita
-
-
- Punti di riferimento
-
-
- Script
-
-
- Vestiario
-
-
- Oggetti
-
-
- Biglietti
-
-
- Nuova cartella
-
-
- Inventario
-
-
- Immagini non compresse
-
-
- Parti del corpo
-
-
- Cestino
-
-
- Album fotografico
-
-
- Oggetti smarriti
-
-
- Suoni non compressi
-
-
- Animazioni
-
-
- Gesture
-
-
- I miei preferiti
-
-
- I miei preferiti
-
-
- Abbigliamento attuale
-
-
- Vestiario iniziale
-
-
- Il mio vestiario
-
-
- Accessori
-
-
- Reticoli
-
-
- Amici
-
-
- Tutto
-
-
- Nessun allegato indossato
-
-
- Allegati ([COUNT] spazi restanti)
-
-
- Acquista
-
-
- Acquista per L$
-
-
- Pietra
-
-
- Metallo
-
-
- Vetro
-
-
- Legno
-
-
- Carne
-
-
- Plastica
-
-
- Gomma
-
-
- Luce
-
-
- Maiusc
-
-
- Ctrl
-
-
- Petto
-
-
- Cranio
-
-
- Spalla sinistra
-
-
- Spalla destra
-
-
- Mano sinistra
-
-
- Mano destra
-
-
- Piede sinisto
-
-
- Piede destro
-
-
- Spina dorsale
-
-
- Pelvi
-
-
- Bocca
-
-
- Mento
-
-
- Orecchio sinistro
-
-
- Orecchio destro
-
-
- Bulbo sinistro
-
-
- Bulbo destro
-
-
- Naso
-
-
- Avambraccio destro
-
-
- Braccio destro
-
-
- Avambraccio sinistro
-
-
- Braccio sinistro
-
-
- Anca destra
-
-
- Coscia destra
-
-
- Gamba destra
-
-
- Anca sinista
-
-
- Coscia sinistra
-
-
- Gamba sinistra
-
-
- Stomaco
-
-
- Petto sinistro
-
-
- Petto destro
-
-
- Collo
-
-
- Centro avatar
-
-
- Punto di collegamento non valido
-
-
- Nato da [AGEYEARS] [AGEMONTHS]
-
-
- Nato da [AGEYEARS]
-
-
- Nato da [AGEMONTHS]
-
-
- Nato da [AGEWEEKS]
-
-
- Nato da [AGEDAYS]
-
-
- Iscritto oggi
-
-
- [COUNT] anno
-
-
- [COUNT] anni
-
-
- [COUNT] anni
-
-
- [COUNT] mese
-
-
- [COUNT] mesi
-
-
- [COUNT] mesi
-
-
- [COUNT] settimana
-
-
- [COUNT] settimane
-
-
- [COUNT] settimane
-
-
- [COUNT] giorno
-
-
- [COUNT] giorni
-
-
- [COUNT] giorni
-
-
- [COUNT] iscritto
-
-
- [COUNT] iscritti
-
-
- [COUNT] iscritti
-
-
- Residente
-
-
- In prova
-
-
- Socio onorario
-
-
- Dipendente Linden Lab
-
-
- Informazioni di pagamento usate
-
-
- Informazioni di pagamento registrate
-
-
- Nessuna informazione di pagamento disponibile
-
-
- Età verificata
-
-
- Età non verificata
-
-
- Centro 2
-
-
- In alto a destra
-
-
- in alto
-
-
- In alto a sinistra
-
-
- Al centro
-
-
- In basso a sinistra
-
-
- In basso
-
-
- In basso a destra
-
-
- Scaricato, in compilazione
-
-
- Script non trovato sul server.
-
-
- Problema nel download
-
-
- Permessi insufficenti per scaricare lo script.
-
-
- Permessi insufficenti per
-
-
- Errore di dowload sconosciuto
-
-
- Avanzamento ricompilazione
-
-
- ricompila
-
-
- Azzera avanzamento
-
-
- azzera
-
-
- Attiva avanzamento
-
-
- attiva
-
-
- Disattiva avanzamento
-
-
- disattiva
-
-
- Compilazione riuscita!
-
-
- Compilazione riuscita, in salvataggio...
-
-
- Salvataggio completato.
-
-
- Script (oggetto fuori portata)
-
-
- Oggetto [OBJECT] di proprietà di [OWNER]
-
-
- nessuno
-
-
-
- (Sconosciuto)
-
-
-
-
- [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]
-
-
-
-
- Saldo
-
-
- Ringraziamenti
-
-
- Debiti
-
-
- Totale
-
-
- Nessun dato trovato per questo gruppo
-
-
- Proprietà principale
-
-
- continente
-
-
- teen
-
-
- chiunque
-
-
- errore
-
-
- tutte le proprietà immobiliari di [OWNER]
-
-
- tutte le tue proprietà immobiliari
-
-
- tutte le proprietà immobiliari che gestisci per conto di [OWNER]
-
-
- Residenti consentiti: ([ALLOWEDAGENTS], massimo [MAXACCESS])
-
-
- Gruppi ammessi: ([ALLOWEDGROUPS], massimo [MAXACCESS])
-
-
- Memoria dello script del lotto
-
-
- Lotti in elenco: [PARCELS]
-
-
- Memoria utilizzata: [COUNT] kb di [MAX] kb; [AVAILABLE] kb disponibili
-
-
- Memoria utilizzata: [COUNT] kb
-
-
- URL degli script lotti
-
-
- URL utilizzati: [COUNT] di [MAX]; [AVAILABLE] disponibili
-
-
- URL utilizzati: [COUNT]
-
-
- Errore nella richiesta di informazioni
-
-
- Nessun lotto selezionato
-
-
- Errore: le informazioni sullo script sono disponibili solo nella tua regione attuale
-
-
- Recupero informazioni in corso...
-
-
- Non hai il permesso di visionare questo lotto
-
-
- Seduto su
-
-
- Petto
-
-
- Testa
-
-
- Spalla sinistra
-
-
- Spalla destra
-
-
- Mano sinistra
-
-
- Mano destra
-
-
- Piede sinisto
-
-
- Piede destro
-
-
- Indietro
-
-
- Pelvi
-
-
- Bocca
-
-
- Mento
-
-
- Orecchio sinistro
-
-
- Orecchio destro
-
-
- Occhio sinistro
-
-
- Occhio destro
-
-
- Naso
-
-
- Braccio destro
-
-
- Avambraccio destro
-
-
- Braccio sinistro
-
-
- Avambraccio sinistro
-
-
- Anca destra
-
-
- Coscia destra
-
-
- Coscia destra
-
-
- Anca sinista
-
-
- Coscia sinistra
-
-
- Polpaccio sinistro
-
-
- Addome
-
-
- Petto destro
-
-
- Petto sinistro
-
-
- HUD in centro 2
-
-
- HUD alto a destra
-
-
- HUD alto in centro
-
-
- HUD alto a sinistra
-
-
- HUD in centro 1
-
-
- HUD basso a sinistra
-
-
- HUD basso
-
-
- HUD basso a destra
-
-
- Riga [LINE], Colonna [COLUMN]
-
-
- [COUNT] trovato/i
-
-
- Contenuto dell'oggetto
-
-
- Nuovo script
-
-
- Il residente al quale hai inviato un messaggio è in modalità 'occupato', ovvero ha chiesto di non essere disturbato. Il tuo messaggio comparirà nel suo pannello IM, dove potrà essere letto in un secondo momento.
-
-
- (In base al nome)
-
-
- (Residente)
-
-
- (Oggetto)
-
-
- (Gruppo)
-
-
- (esterno)
-
-
- Non esiste alcun regolamento per questa proprietà.
-
-
- Non esiste alcun regolamento per questa proprietà. Il terreno di questa proprietà è messo in vendita dal proprietario, non dalla Linden Lab. Contatta il proprietario del terreno per i dettagli della vendita.
-
-
-
-
-
- Di proprietà di un gruppo
-
-
- Pubblica
-
-
- Impostazioni locali
-
-
- Impostazioni regione
-
-
- Clicca: [TELEPORT] teleport, [MAP] mappa, [PROFILE] profilo
-
-
- (si aggiornerà dopo la pubblicazione)
-
-
- Non hai creato luoghi preferiti né inserzioni. Clicca il pulsante + qui sotto per creare un luogo preferito o un'inserzione.
-
-
- L'utente non ha luoghi preferiti né inserzioni
-
-
- Caricamento in corso...
-
-
- Anteprima
-
-
- Beni immobiliari
-
-
- Un oggetto denominato
-
-
- di proprietà del gruppo
-
-
- di proprietà di un gruppo sconosciuto
-
-
- di proprietà di
-
-
- di proprietà di un utente sconosciuto
-
-
- Ti ha offerto
-
-
- Non hai accettato [DESC] da <nolink>[NAME]</nolink>.
-
-
- Totale
-
-
- comprato
-
-
- ti ha pagato
-
-
- ha pagato
-
-
- ha comprato il pass
-
-
- pagato la tassa per l'evento
-
-
- pagato il premio per l'evento
-
-
- Saldo
-
-
- Ringraziamenti
-
-
- Debiti
-
-
- [weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
-
-
- Contenuto
-
-
- Oggetti acquisiti
-
-
- Annulla
-
-
- Il caricamento di [NAME] costa L$ [AMOUNT]
-
-
- L'acquisto di [NAME] costa L$ [AMOUNT]
-
-
- Estensione del file sconosciuta [.%s]
-Tipi conosciuti .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
-
-
- Blocca
-
-
- Aggiungi punto di riferimento...
-
-
- Modifica punto di riferimento...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Shift+
-
-
- File salvato
-
-
- In ricezione
-
-
- antemeridiane
-
-
- pomeridiane
-
-
- Ora Pacifico
-
-
- Ora legale Pacifico
-
-
- Avanti
-
-
- Sinistra
-
-
- Destra
-
-
- Indietro
-
-
- Nord
-
-
- Sud
-
-
- Ovest
-
-
- Est
-
-
- Su
-
-
- Giù
-
-
- Qualsiasi categoria
-
-
- Acquisti
-
-
- Affitto terreno
-
-
- Affitto proprietà
-
-
- Attrazioni speciali
-
-
- Nuovi prodotti
-
-
- Lavoro
-
-
- Cercasi
-
-
- Servizio
-
-
- Personale
-
-
- Nessuno
-
-
- Luogo dei Linden
-
-
- Adult
-
-
- Arte & Cultura
-
-
- Affari
-
-
- Educazione
-
-
- Gioco
-
-
- Divertimento
-
-
- Accoglienza nuovi residenti
-
-
- Parchi & Natura
-
-
- Residenziale
-
-
- Fase
-
-
- Altro
-
-
- Affitto
-
-
- Tutti
-
-
- Tu
-
-
- Più supporti
-
-
- Riproduci/Pausa supporto
-
-
- Un errore è stato riscontrato analizzando la linea di comando.
-Per informazioni: http://wiki.secondlife.com/wiki/Client_parameters
-Errore:
-
-
- Uso linea di comando del programma [APP_NAME] :
-
-
- Il programma [APP_NAME] non è in grado di accedere ad un file necessario.
-
-Potrebbe darsi che tu abbia copie multiple attivate o che il tuo sistema reputi erroneamente che il file sia già aperto.
-Se il problema persiste, riavvia il computer e riprova.
-Se il problema continua ancora, dovresti completamente disinstallare l'applicazione [APP_NAME] e reinstallarla.
-
-
- Errore critico
-
-
- Il programma [APP_NAME] richiede un processore con AltiVec (G4 o superiore).
-
-
- Il programma [APP_NAME] è già attivo.
-Controlla che il programma non sia minimizzato nella tua barra degli strumenti.
-Se il messaggio persiste, riavvia il computer.
-
-
- Sembra che [APP_NAME] si sia bloccata o interrotta nella sessione precedente.
-Vuoi mandare un crash report?
-
-
- Avviso
-
-
- Il programmma [APP_NAME] non riesce a trovare una DirectX 9.0b o superiore.
-[APP_NAME] usa DirectX per rilevare hardware e/o i driver non aggiornati che possono causare problemi di stabilità, scarsa performance e interruzioni. Benché tu possa avviare il programma [APP_NAME] senza di esse, consigliamo caldamente l'esecuzione con DirectX 9.0b.
-
-Vuoi continuare?
-
-
- Attenzione
-
-
- L'aggiornamento automatico non è stato ancora realizzato per Linux.
-Consigliamo di scaricare l'ultima versione direttamente da www.secondlife.com.
-
-
- RegisterClass non riuscito
-
-
- Errore
-
-
- Impossibile visualizzare a schermo intero con risoluzione [WIDTH] x [HEIGHT].
-Visualizzazione corrente in modalità finestra.
-
-
- Errore di arresto durante il tentativo di chiusura della finestra (DestroyWindow() non riuscito)
-
-
- Errore di arresto
-
-
- Impossibile caricare i driver GL
-
-
- Impossibile trovare un formato pixel adatto
-
-
- Impossibile ottenere una descrizione del formato pixel
-
-
- [APP_NAME] richiede True Color (32 bit) per funzionare.
-Vai alle impostazioni dello schermo del tuo computer e imposta il colore in modalità 32 bit.
-
-
- [APP_NAME] non funziona poichè è impossibile trovare un canale alpha a 8 bit. Questo problema normalmente deriva dai driver della scheda video.
-Assicurati di avere installato i driver della scheda video più recenti.
-Assicurati anche che il monitor sia impostato a True Color (32 bit) nel Pannello di controllo > Schermo > Impostazioni.
-Se il messaggio persiste, contatta [SUPPORT_SITE].
-
-
- Impossibile impostare il formato pixel
-
-
- Impossibile creare il GL rendering
-
-
- Impossibile attivare il GL rendering
-
-
- [APP_NAME] Non riesce ad avviarsi perchè i driver della tua scheda video non sono stati installati correttamente, non sono aggiornati, o sono per un hardware non supportato. Assicurati di avere i driver della scheda video più recenti e anche se li hai installati, prova a installarli di nuovo.
-
-Se il messaggio persiste, contatta [SUPPORT_SITE].
-
-
- Barba leggera
-
-
- Tutti bianchi
-
-
- Occhi grandi
-
-
- Arcuato
-
-
- Lunghezza braccia
-
-
- Attaccato
-
-
- Lobi attaccati
-
-
- Frangetta all'indietro
-
-
- Larghi
-
-
- Frange
-
-
- Occhi piccoli
-
-
- Punto vita
-
-
- Grande
-
-
- Sedere grande
-
-
- Capigliatura grande: Indietro
-
-
- Capigliatura grande: anteriore
-
-
- Capigliatura grande: in alto
-
-
- Grande testa
-
-
- Grandi pettorali
-
-
- Capelli con punte
-
-
- Nero
-
-
- Biondo
-
-
- Capelli biondi
-
-
- Fard
-
-
- Colore fard
-
-
- Opacità fard
-
-
- Definizione muscolare
-
-
- Grasso corporeo
-
-
- Lentiggini e nei
-
-
- Corpo più robusto
-
-
- Robustezza del corpo
-
-
- Corpo più magro
-
-
- Gambe arcuate
-
-
- Altezza del seno
-
-
- Décolleté
-
-
- Grandezza del seno
-
-
- Larghezza setto
-
-
- Largo
-
-
- Grandezza delle sopracciglia
-
-
- Occhi sporgenti
-
-
- Occhi sporgenti
-
-
- Bulboso
-
-
- Naso bulboso
-
-
- Massa seno
-
-
- Lisciatura seno
-
-
- Gravità seno
-
-
- Resistenza seno
-
-
- Massimo effetto
-
-
- Elasticità
-
-
- Guadagno
-
-
- Attenuazione
-
-
- Massimo effetto
-
-
- Elasticità
-
-
- Guadagno
-
-
- Attenuazione
-
-
- Massimo effetto
-
-
- Elasticità
-
-
- Guadagno
-
-
- Attenuazione
-
-
- Massa pancia
-
-
- Lisciatura pancia
-
-
- Gravità pancia
-
-
- Resistenza pancia
-
-
- Massimo effetto
-
-
- Elasticità
-
-
- Guadagno
-
-
- Attenuazione
-
-
- Massa natiche
-
-
- Lisciatura natiche
-
-
- Gravità natiche
-
-
- Resistenza natiche
-
-
- Massimo effetto
-
-
- Elasticità
-
-
- Guadagno
-
-
- Attenuazione
-
-
- Massimo effetto
-
-
- Elasticità
-
-
- Guadagno
-
-
- Attenuazione
-
-
- Sopracciglia cespugliose
-
-
- Capelli a cespuglio
-
-
- Grandezza del sedere
-
-
- Gravità natiche
-
-
- Crinolina
-
-
- Nessuna crinolina
-
-
- Più crinolina
-
-
- Baffetti
-
-
- Zigomi
-
-
- Ampiezza del torace
-
-
- Angolo del mento
-
-
- Fossetta sul mento
-
-
- Barba sottomento
-
-
- Profondità mento
-
-
- Mento forte
-
-
- Mento in dentro
-
-
- Mento sporgente
-
-
- Mento-collo
-
-
- Trasparente
-
-
- Fossetta
-
-
- Occhi ravvicinati
-
-
- Chiusa
-
-
- Chiuso dietro
-
-
- Chiuso davanti
-
-
- Chiuso sinistra
-
-
- Chiuso destra
-
-
- Meno pronunciati
-
-
- Colletto posteriore
-
-
- Colletto anteriore
-
-
- Angolo all'ingiù
-
-
- Angolo all'insù
-
-
- Piega
-
-
- Naso storto
-
-
- Svasato con risvolto
-
-
- Scuro
-
-
- Verde scuro
-
-
- Più scuro
-
-
- Profondo
-
-
- Tacchi standard
-
-
- Folti
-
-
- Doppio mento
-
-
- All'ingiù
-
-
- Più pronunciati
-
-
- Angolo orecchie
-
-
- Grandezza orecchie
-
-
- Estremità orecchie
-
-
- Ovalizzazione testa
-
-
- Occhiaie
-
-
- Colore degli occhi
-
-
- Profondità degli occhi
-
-
- Luminosità degli occhi
-
-
- Apertura degli occhi
-
-
- Prominenza degli occhi
-
-
- Grandezza occhi
-
-
- Distanza occhi
-
-
- Arco delle sopracciglia
-
-
- Densità delle sopracciglia
-
-
- Altezza delle sopracciglia
-
-
- Sopracciglia appuntite
-
-
- Grandezza sopracciglia
-
-
- Lunghezza delle ciglia
-
-
- Eyeliner
-
-
- Colore dell'eyeliner
-
-
- Occhi sporgenti
-
-
- Taglio del viso
-
-
- Definizione del viso
-
-
- Occhi distanti
-
-
- Labbra carnose
-
-
- Femmina
-
-
- Senza dita
-
-
- Dita
-
-
- Risvolti svasati
-
-
- Piatto
-
-
- Sedere piatto
-
-
- Testa piatta
-
-
- Punta piatta
-
-
- Misura piede
-
-
- Angolo della fronte
-
-
- Fronte sporgente
-
-
- Lentiggini
-
-
- Frangetta
-
-
- Dietro gonfi
-
-
- Eyeliner marcato
-
-
- Anteriore gonfio
-
-
- Lati capelli gonfi
-
-
- Lati gonfi
-
-
- Lucido
-
-
- Dita con guanti
-
-
- Lunghezza guanti
-
-
- Capigliature
-
-
- Capelli: Indietro
-
-
- Capelli: anteriore
-
-
- Capelli: lati
-
-
- Direzione capigliatura
-
-
- Foltezza
-
-
- Foltezza
-
-
- Inclinazione
-
-
- Verso sinistra
-
-
- Verso destra
-
-
- Capelli: Volume
-
-
- Grandezza mani
-
-
- Baffi a manubrio
-
-
- Lunghezza testa
-
-
- Forma della testa
-
-
- Grandezza della testa
-
-
- Allungamento testa
-
-
- Altezza tacchi
-
-
- Forma tacchi
-
-
- Altezza
-
-
- Alto
-
-
- Tacchi alti
-
-
- Mandibola alta
-
-
- Alta
-
-
- Alto e stretto
-
-
- Più alto
-
-
- Altezza bacino
-
-
- Larghezza bacino
-
-
- Dentro
-
-
- Colore ombretto interno
-
-
- Opacità ombretto interno
-
-
- Angolo interno
-
-
- Ombretto interno
-
-
- Ombretto interno
-
-
- Lunghezza giacca
-
-
- Grinze della giacca
-
-
- Angolo mandibola
-
-
- Prognatismo mento
-
-
- Forma del mento
-
-
- Iscriviti
-
-
- Guance
-
-
- Angolo ginocchia
-
-
- Gambe ad X
-
-
- Grande
-
-
- Mani grandi
-
-
- Riga a sinistra
-
-
- Lunghezza gambe
-
-
- Muscoli gambe
-
-
- Meno
-
-
- Meno grasso corporeo
-
-
- Meno
-
-
- Meno lentiggini
-
-
- Meno piene
-
-
- Più alto
-
-
- Meno maniglie
-
-
- Meno muscoli
-
-
- Meno muscolari
-
-
- Meno rosato
-
-
- Meno rotondo
-
-
- Meno a sella
-
-
- Meno quadrato
-
-
- Meno volume
-
-
- Meno
-
-
- Più leggero
-
-
- Distanza fossetta labbro
-
-
- Prof. fossetta labbro
-
-
- Volume labbra
-
-
- Tonalità rosa labbra
-
-
- Proporzione labbra
-
-
- Carnosità labbra
-
-
- Larghezza labbra
-
-
- Lipgloss
-
-
- Rossetto
-
-
- Colore rossetto
-
-
- Lungo
-
-
- Testa lunga
-
-
- Bacino alto
-
-
- Gambe lunghe
-
-
- Collo lungo
-
-
- Codini lunghi
-
-
- Codino lungo
-
-
- Torace lungo
-
-
- Braccia lunghe
-
-
- Pantaloni ampi
-
-
- Camicia ampia
-
-
- Maniche non attillate
-
-
- Maniglie dell'amore
-
-
- Basso
-
-
- Tacchi bassi
-
-
- Mandibola bassa
-
-
- Bassa
-
-
- Basso e ampio
-
-
- Più basso
-
-
- Parte bassa del setto
-
-
- Guance inferiori
-
-
- Maschio
-
-
- Riga nel mezzo
-
-
- Altro
-
-
- Più fard
-
-
- Più grasso corporeo
-
-
- Più
-
-
- Più ombretto
-
-
- Più lentiggini
-
-
- Più piene
-
-
- Più calato
-
-
- Più rossetto
-
-
- Più maniglie
-
-
- Labbro inf. pronunciato
-
-
- Più muscoli
-
-
- Più muscolatura
-
-
- Più rosato
-
-
- Più rotondo
-
-
- Più a sella
-
-
- Più orizzontale
-
-
- Più quadrato
-
-
- Labbro sup. pronunciato
-
-
- Più verticale
-
-
- Più volume
-
-
- Più
-
-
- Baffi
-
-
- Angolo della bocca
-
-
- Posizione della bocca
-
-
- Moicana
-
-
- Muscolatura
-
-
- Basette lunghe
-
-
- Smalto
-
-
- Colore smalto
-
-
- Socchiusi
-
-
- Laterali post. vicini
-
-
- Laterali ant. vicini
-
-
- Labbra strette
-
-
- Naturale
-
-
- Lunghezza del collo
-
-
- Grandezza del collo
-
-
- Senza fard
-
-
- Senza eyeliner
-
-
- Senza ombretto
-
-
- Senza lipgloss
-
-
- Senza rossetto
-
-
- Senza riga
-
-
- Senza smalto
-
-
- Senza rosso
-
-
- Senza punte
-
-
- Senza bianco
-
-
- Senza pieghe
-
-
- Inferiore normale
-
-
- Superiore normale
-
-
- Naso a sinistra
-
-
- Naso a destra
-
-
- Grandezza naso
-
-
- Spessore naso
-
-
- Angolo punta naso
-
-
- Forma punta naso
-
-
- Larghezza naso
-
-
- Divisione narici
-
-
- Larghezza narici
-
-
- Opaco
-
-
- Apri
-
-
- Retro aperto
-
-
- Davanti aperto
-
-
- Lato sin. aperto
-
-
- Lato des. aperto
-
-
- Arancio
-
-
- Fuori
-
-
- Colore ombretto esterno
-
-
- Opacità ombretto esterno
-
-
- Angolo esterno occhio
-
-
- Ombretto esterno
-
-
- Ombreggiatura esterna
-
-
- Denti sup. in fuori
-
-
- Genitali
-
-
- Unghie smaltate
-
-
- Pallido
-
-
- Cavallo
-
-
- Vestibilità pantaloni
-
-
- Lunghezza pantaloni
-
-
- Taglia pantalone
-
-
- Pantaloni con le grinze
-
-
- Con riga
-
-
- Frangetta divisa
-
-
- Pettorali
-
-
- Pigmento
-
-
- Codini
-
-
- Rosa
-
-
- Più rosato
-
-
- Altezza pianta
-
-
- Larghezza pianta
-
-
- Appuntito
-
-
- Tacchi a spillo
-
-
- Codino
-
-
- Gonna gonfia
-
-
- Sinistro più aperto
-
-
- Destro più aperto
-
-
- Paffute
-
-
- Palpebre gonfie
-
-
- Tonalità
-
-
- Presenza di rosso nei capelli
-
-
- Normale
-
-
- Riga a destra
-
-
- Incarnato
-
-
- Rotondo
-
-
- Rossore
-
-
- Rosse
-
-
- Capelli mossi
-
-
- Rotondità fianchi
-
-
- Gambe magre
-
-
- Separati
-
-
- Meno pronunciato
-
-
- Taglio posteriore
-
-
- Taglio del viso
-
-
- Taglio anteriore
-
-
- Distorto a sinistra
-
-
- Distorto a destra
-
-
- Taglio verso dietro
-
-
- Taglio verso davanti
-
-
- A sinistra
-
-
- Spostamento bocca
-
-
- A destra
-
-
- Parte inferiore camicia
-
-
- Vestibilità camicia
-
-
- Camicia con le grinze
-
-
- Altezza scarpe
-
-
- Basso
-
-
- Braccia corte
-
-
- Gambe corte
-
-
- Collo corto
-
-
- Codini corti
-
-
- Codino corto
-
-
- Basette corte
-
-
- Torace corto
-
-
- Bacino corto
-
-
- Spalle
-
-
- Ciuffi laterali
-
-
- Basette
-
-
- Capigliatura di lato
-
-
- Capigliatura di lato sciolta
-
-
- Capigliatura di lato raccolta
-
-
- Collo fino
-
-
- Vestibilità gonna
-
-
- Lunghezza gonna
-
-
- Fronte inclinata
-
-
- Lunghezza maniche
-
-
- Morbidezza maniche
-
-
- Spacco: Indietro
-
-
- Spacco: anteriore
-
-
- Spacco: Sinistra
-
-
- Spacco: Destra
-
-
- Piccola
-
-
- Mani piccole
-
-
- Testa piccola
-
-
- Liscio
-
-
- Capelli lisci
-
-
- Lunghezza calze
-
-
- Pizzetto labbro inferiore
-
-
- Piu rade
-
-
- Capelli a punta
-
-
- Quadrato
-
-
- Punta quadrata
-
-
- Testa schiacciata
-
-
- Testa allungata
-
-
- Scarne
-
-
- Senza pettorali
-
-
- Occhi infossati
-
-
- Indietro
-
-
- Avanti
-
-
- Alto
-
-
- Ravv. lat. posteriore
-
-
- Ravv. lat. frontale
-
-
- Tacchi spessi
-
-
- Collo grosso
-
-
- Punta spessa
-
-
- Sottili
-
-
- Sopracciglia sottili
-
-
- Labbra sottili
-
-
- Naso sottile
-
-
- Mento stretto
-
-
- Fondo stretto
-
-
- Pantaloni attillati
-
-
- Camicia attillata
-
-
- Gonna attillata
-
-
- Maniche strette
-
-
- Forma della punta
-
-
- Spessore della punta
-
-
- Lunghezza del torace
-
-
- Muscoli del torace
-
-
- Torso Scrawny
-
-
- Distaccato
-
-
- Senza piega
-
-
- Denti inf. in fuori
-
-
- Innaturale
-
-
- Parte alta del setto
-
-
- Parte alta degli zigomi
-
-
- Fossetta sup. del mento
-
-
- Piega palpebra sup.
-
-
- All'insù
-
-
- Molto rossi
-
-
- Vita alta
-
-
- Pienotte
-
-
- Capelli bianchi
-
-
- Largo
-
-
- Dietro largo
-
-
- Davanti largo
-
-
- Labbra larghe
-
-
- Colorati
-
-
- Grinze
-
-
- Aggiungi ai miei punti di riferimento
-
-
- Modifica i miei punti di riferimento
-
-
- Maggiori informazioni sulla posizione attuale
-
-
- La cronologia delle mie posizioni
-
-
- Regione con categoria adulti
-
-
- Regione con categoria moderata
-
-
- Regione generale
-
-
- Avatar visibili e chat consentita fuori di questo lotto
-
-
- Aggiornamento [APP_NAME]
-
-
- Aggiornamento di [APP_NAME]...
-
-
- Installazione di [APP_NAME]...
-
-
- Il Viewer del programma [APP_NAME] si sta aggiornando all'ultima versione. Potrebbe volerci del tempo, attendi.
-
-
- Download dell'aggiornamento...
-
-
- Download dell'aggiornamento
-
-
- Download dell'aggiornamento non riuscito
-
-
- Il programma [APP_NAME] ha riscontrato un'errore durante il tentativo di aggiornamento. Consigliamo di scaricare l'ultima versione direttamente da www.secondlife.com.
-
-
- Installazione dell'aggiornamento non riuscita
-
-
- Errore nell'avvio del viewer
-
-
- [APP_NAME]: Oggetti in arrivo troppo velocemente da [FROM_NAME], anteprima automatica disattivata per [TIME] secondi
-
-
- [APP_NAME]: Oggetti in arrivo troppo velocemente, anteprima automatica disattivata per [TIME] secondi
-
-
- -- Registrazione messaggi instantanei abilitata --
-
-
- [NAME] sta scrivendo...
-
-
- (anonimo)
-
-
- (Moderato: Voci disattivate di default)
-
-
- La chat di testo non è disponibile per questa chiamata.
-
-
- La chat di testo è stata disabilitata da un moderatore di gruppo.
-
-
- Clicca qui per inviare un messaggio instantaneo.
-
-
- A
-
-
- (Moderatore)
-
-
- (Salvato [LONG_TIMESTAMP])
-
-
- Per vedere questo messaggio, devi deselezionare 'Solo amici e gruppi possono chiamarmi o mandarmi IM' in Preferenze/Privacy.
-
-
- Risposto alla chiamata
-
-
- Hai iniziato una chiamata vocale
-
-
- Ti sei collegato alla chiamata in voce
-
-
- [NAME] ha iniziato una chiamata vocale
-
-
- Collegamento alla chiamata vocale...
-
-
- Collegato, clicca Chiudi chiamata per agganciare
-
-
- Chiusa la chiamata
-
-
- Chiamata in conferenza con [AGENT_NAME]
-
-
- (La sessione IM non esiste)
-
-
- Sei l'unico utente di questa sessione.
-
-
- [NAME] è offline
-
-
- Clicca il tasto [BUTTON NAME] per accettare/connetterti a questa voice chat.
-
-
- Hai bloccato questo residente. Quando gli invii un messaggio, verrà automaticamente sbloccato.
-
-
- Errore nella richiesta, riprova più tardi.
-
-
- Errore durante la richiesta, riprova più tardi.
-
-
- Non hai sufficienti permessi.
-
-
- Questa sessione non esiste più
-
-
- Non hai questa abilitazione.
-
-
- Non hai questa abilitazione.
-
-
- Non sei un moderatore.
-
-
- Il moderatore del gruppo ha disattivato la tua chat di testo.
-
-
- Un moderatore di gruppo ti ha disabilitato dalla chat di testo.
-
-
- Impossibile aggiungere utenti alla chat con [RECIPIENT].
-
-
- Impossibile spedire il tuo messaggio nella sessione chat con [RECIPIENT].
-
-
- Impossibile inviare il messaggio nella chat con [RECIPIENT].
-
-
- Errore durante la moderazione.
-
-
- Sei stato rimosso dal gruppo.
-
-
- Sei stato espulso dal gruppo.
-
-
- Non hai più le abilitazioni per rimanere nella sessione chat.
-
-
- [SOURCES] ha detto qualcosa di nuovo
-
-
- [SOURCES] ha detto qualcosa di nuovo
-
-
- Sessione di inizializzazione scaduta
-
-
- Posizione di base impostata.
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] ti ha inviato un pagamento di L$[AMOUNT] [REASON].
-
-
- [NAME] ti ha inviato un pagamento di L$[AMOUNT].
-
-
- Hai inviato un pagamento di L$[AMOUNT] a [NAME] [REASON].
-
-
- Hai pagato L$ [AMOUNT].
-
-
- Hai inviato un pagamento di L$[AMOUNT] a [NAME].
-
-
- Hai pagato L$ [AMOUNT] [REASON].
-
-
- Non hai pagato [NAME] L$[AMOUNT] [REASON].
-
-
- Non hai pagato L$ [AMOUNT].
-
-
- Non hai pagato [NAME] L$[AMOUNT].
-
-
- Non hai pagato L$ [AMOUNT] [REASON].
-
-
- per [ITEM]
-
-
- per un lotto di terreno
-
-
- per un permesso di accesso al terreno
-
-
- per la cessione di terreno
-
-
- per creare un gruppo
-
-
- per aderire a un gruppo
-
-
- per caricare
-
-
- per pubblicare un annuncio
-
-
- Contributo di L$ [AMOUNT]
-
-
- Il costo per il caricamento è di L$ [AMOUNT]
-
-
- Il costo è L$ [AMOUNT]
-
-
- L'acquisto del terreno prescelto costa L$ [AMOUNT]
-
-
- Il costo dell'oggetto è L$ [AMOUNT]
-
-
- Tutti
-
-
- Funzionari
-
-
- Proprietari
-
-
- Online
-
-
- Caricamento in corso...
-
-Segnala abuso
-
-
- Nuova figura corporea
-
-
- Nuova pelle
-
-
- Nuovi capelli
-
-
- Nuovi occhi
-
-
- Nuova camicia
-
-
- Nuovi pantaloni
-
-
- Nuove scarpe
-
-
- Nuove calze
-
-
- Nuova giacca
-
-
- Nuovi guanti
-
-
- Nuova maglietta intima
-
-
- Nuovi slip
-
-
- Nuova gonna
-
-
- Nuovo Alpha (trasparenza)
-
-
- Nuovo tatuaggio
-
-
- Nuova fisica
-
-
- Capo da indossare non valido
-
-
- Nuova gesture
-
-
- Nuovo script
-
-
- Nuovo appunto
-
-
- Nuova cartella
-
-
- Contenuto
-
-
- Gesture
-
-
- Gesture maschili
-
-
- Gesture femminili
-
-
- Altre gesture
-
-
- Gesture del parlato
-
-
- Gesture comuni
-
-
- Maschio - Chiedere scusa
-
-
- Maschio - Levati dai piedi!
-
-
- Maschio - Butta un bacio
-
-
- Maschio - Bu
-
-
- Maschio - Annoiato
-
-
- Maschio - Ehi
-
-
- Maschio - Ridere
-
-
- Maschio - Disgustato
-
-
- Maschio - Spallucce
-
-
- Maschio - Tira fuori la lingua
-
-
- Maschio - Accipicchia
-
-
- Femmina - Risatina
-
-
- Femmina - Pianto
-
-
- Femmina - Imbarazzata
-
-
- Femmina - Chiedere scusa
-
-
- Femmina - Levati dai piedi!
-
-
- Femmina - Butta un bacio
-
-
- Femmina - Bu
-
-
- Femmina - Annoiata
-
-
- Femmina - Ehi
-
-
- Femmina - Ehi tu
-
-
- Femmina - Ridere
-
-
- Femmina - Sei in forma
-
-
- Femmina - Per di qua
-
-
- Femmina - Per cortesia
-
-
- Femmina - Disgustata
-
-
- Femmina - Spallucce
-
-
- Femmina - Tira fuori la lingua
-
-
- Femmina - Accipicchia
-
-
- /inchino
-
-
- /applausi
-
-
- /numero
-
-
- /estingui
-
-
- /chissene
-
-
- /muscolo
-
-
- /no
-
-
- /no!
-
-
- /carta
-
-
- /indicome
-
-
- /indicotu
-
-
- /sasso
-
-
- /forbici
-
-
- /fumo
-
-
- /stiracchiata
-
-
- /fischietto
-
-
- /si
-
-
- /si!
-
-
- non alla tastiera
-
-
- danza1
-
-
- danza2
-
-
- danza3
-
-
- danza4
-
-
- danza5
-
-
- danza6
-
-
- danza7
-
-
- danza8
-
-
- [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
-
-
- nessuna/nessuna
-
-
- Impossibile caricare immagini di dimensioni superiori a [WIDTH]*[HEIGHT]
-
-
-
- Nonostante i nostri tentativi, si è verificato un errore imprevisto.
-
- Consulta la pagina status.secondlifegrid.net per determinare se si sia verificato un problema noto con il servizio.
- Se il problema continua, ti consigliamo di controllare le tue impostazioni di rete e della firewall.
-
-
- lunedì:martedì:mercoledì:giovedì:venerdì:sabato:domenica
-
-
- lun:mar:mer:gio:ven:sab:dom
-
-
- gennaio:febbraio:marzo:aprile:maggio:giugno:luglio:agosto:settembre:ottobre:novembre:dicembre
-
-
- gen:feb:mar:apr:mag:giu:lug:ago:sett:ott:nov:dic
-
-
- [MDAY]
-
-
- antemeridiane
-
-
- pomeridiane
-
-
- US$ [AMOUNT]
-
-
- Abbonamento
-
-
- Ruoli
-
-
- Identità gruppo
-
-
- Gestione lotto
-
-
- Identità lotto
-
-
- Impostazioni lotto
-
-
- Poteri lotto
-
-
- Accesso al lotto
-
-
- Contenuto lotto
-
-
- Gestione oggetti
-
-
- Contabilità
-
-
- Avvisi
-
-
- Chat
-
-
- Cancellare gli elementi selezionati?
-
-
- Cancellare l’elemento selezionato?
-
-
- Questo vestiario non contiene alcun elemento
-
-
- Seleziona un editor usando le impostazioni ExternalEditor.
-
-
- L'editor esterno specificato non è stato trovato.
-Prova a racchiudere il percorso dell'editor in doppie virgolette.
-(per es. "/percorso per il mio/editor" "%s")
-
-
- Errore nell'elaborazione del comando dell'editor esterno.
-
-
- L'editor esterno non è stato avviato.
-
-
- Traduzione non riuscita: [REASON]
-
-
- Errore di elaborazione della risposta della traduzione.
-
-
- Esc
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Home
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Aggiungi
-
-
- Sottrai
-
-
- Moltiplica
-
-
- Dividi
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Visualizzazione marcatori particelle (blu)
-
-
- Visualizzazione marcatori oggetti fisici (verde)
-
-
- Visualizzazione marcatori oggetti scriptati (rosso)
-
-
- Visualizzazione marcatori oggetti scriptati con funzione tocco (rosso)
-
-
- Visualizzazione marcatori suoni (giallo)
-
-
- Visualizzazione marcatori multimedia (bianco)
-
-
- Particelle nascoste
-
-
- Informazioni sul terreno
-
-
- Aspetto fisico
-
-
- Avatar
-
-
- Costruisci
-
-
- Chat
-
-
- Bussola
-
-
- Destinazioni
-
-
- Gesture
-
-
- Istruzioni
-
-
- Inventario
-
-
- Mappa
-
-
- Mercato
-
-
- Mini mappa
-
-
- Cammina / corri / vola
-
-
- Casella in uscita del rivenditore
-
-
- Persone
-
-
- Preferiti
-
-
- Luoghi
-
-
- Preferenze
-
-
- Profilo
-
-
- Ricerca
-
-
- Istantanea
-
-
- Parla
-
-
- Controlli fotocamera
-
-
- Impostazioni voce
-
-
- Informazioni sul terreno che visiti
-
-
- Cambia l'avatar
-
-
- Seleziona un avatar completo
-
-
- Costruzione oggetti e modifica terreno
-
-
- Chatta con persone vicine usando il testo
-
-
- Bussola
-
-
- Destinazioni interessanti
-
-
- Gesti per il tuo avatar
-
-
- Come eseguire le attività più comuni
-
-
- Visualizza e usa le tue cose
-
-
- Mappa del mondo
-
-
- Vai allo shopping
-
-
- Mostra le persone vicine
-
-
- Movimento avatar
-
-
- Trasferisci elementi al tuo mercato per la vendita
-
-
- Amici, gruppi e persone vicine
-
-
- Luoghi da mostrare come preferiti nel profilo
-
-
- Luoghi salvati
-
-
- Preferenze
-
-
- Modifica o visualizza il tuo profilo
-
-
- Trova luoghi, eventi, persone
-
-
- Scatta una foto
-
-
- Parla con persone vicine usando il microfono
-
-
- Modifica angolo fotocamera
-
-
- I controlli per il volume per le chiamate e per le persone nelle vicinanze nel mondo virtuale
-
-
- attualmente nella barra degli strumenti in basso
-
-
- attualmente nella barra degli strumenti a sinistra
-
-
- attualmente nella barra degli strumenti a destra
-
-
- Mantieni%
-
-
- Dettagli
-
-
- Migliori dettagli
-
-
- Superficie
-
-
- Solido
-
-
- Involucro
-
-
- Anteprima
-
-
- Normale
-
-
- Molto basso
-
-
- Basso
-
-
- Medio
-
-
- Alto
-
-
- Molto alto
-
-
diff --git a/indra/newview/skins/steam/xui/ja/strings.xml b/indra/newview/skins/steam/xui/ja/strings.xml
deleted file mode 100644
index 29ef13109c..0000000000
--- a/indra/newview/skins/steam/xui/ja/strings.xml
+++ /dev/null
@@ -1,5018 +0,0 @@
-
-
-
-
- Second Life
-
-
- Second Life
-
-
- SECOND LIFE
-
-
- Second Life Grid
-
-
- Second Life サポートポータル
-
-
- ハードウェアの検出中です...
-
-
- [APP_NAME] をインストール中です...
-
-
- キャッシュをクリア中です...
-
-
- テクスチャキャッシュを初期化中です...
-
-
- VFS を初期化中です...
-
-
- グラフィックを初期化できませんでした。グラフィックドライバを更新してください。
-
-
- 復元中です...
-
-
- 解像度を変更中です...
-
-
- 明るさ全開(レガシー)
-
-
- ログイン中です。[APP_NAME]の表示がフリーズする場合があります。 しばらくお待ちください。
-
-
- ログイン中です...
-
-
- 認証しています...
-
-
- アカウントのメンテナンスを実行しています...
-
-
- 前回のログインに失敗しました。 ログイン中です([NUMBER] 回目)
-
-
- ワールドを読み込んでいます...
-
-
- 内蔵 Web ブラウザを初期化しています...
-
-
- マルチメディアを初期化しています...
-
-
- フォントをローディング中...
-
-
- キャッシュファイルを検証しています(所要時間は 60 ~ 90 秒)...
-
-
- 対応を処理中です...
-
-
- ワールドを初期化中です...
-
-
- 画像をデコードしています...
-
-
- QuickTime を初期化しています...
-
-
- QuickTime が見つかりません。初期化に失敗しました。
-
-
- QuickTime が正常に初期化されました。
-
-
- リージョンの機能をリクエストしています...
-
-
- リージョンの機能をリクエスト、試行 [NUMBER] 回....
-
-
- リージョンのハンドシェイクを待っています...
-
-
- リージョンに接続しています...
-
-
- 衣類をダウンロードしています...
-
-
- 証明書が無効または壊れています。 グリッド管理者にご連絡ください。
-
-
- 無効なホストネームがサーバーにアクセスしていました。SLURL かグリッドのホストネームをご確認ください。
-
-
- グリッドが返した証明書は有効期限が終了していると考えられます。お使いのシステムクロックを確認するか、グリッドの管理者にお問い合わせください。
-
-
- SSL 証明書のエラーが発生しました。 グリッド管理者にご連絡ください。
-
-
- サーバーの証明書チェーンに証明書が多すぎます。 グリッド管理者にご連絡ください。
-
-
- グリッドサーバーが返した証明書の署名を認証できませんでした。グリッドの管理者にお問い合わせください。
-
-
- ネットワークエラー:接続を確立できませんでした。お使いのネットワーク接続をご確認ください。
-
-
- ログインに失敗しました。
-
-
- 終了
-
-
- http://join.secondlife.com/index.php?sourceid=1206_steam&lang=ja-JP
-
-
- お使いの古いビューワでは Second Life にアクセスできません。以下のページから新しいビューワをダウンロードしてください:
-http://secondlife.com/download
-
-詳細については、FAQ を参照してください:
-http://secondlife.com/viewer-access-faq
-
-
- ビューワアップデート(オプション)があります: [VERSION]
-
-
- ビューワアップデート(必須): [VERSION]
-
-
- このエージェントは既にログインされています。
-
-
- 申し訳ありませんが、ログインできませんでした。
-以下の情報が正しく入力されたことを確認してください:
-* ユーザー名(bobsmith12 または steller.sunshine など)
-* パスワード
-また、Caps Lock キーが有効になっていないこともお確かめください。
-
-
- セキュリティ上の理由により、あなたのパスワードは変更されました。
-アカウントページ(http://secondlife.com/password)に移動し、
-秘密の質問に答えて、パスワードをリセットしてください。
-ご迷惑をおかけして申し訳ございません。
-
-
- 弊社はシステムを若干変更しました。お手数ですが、パスワードのリセットをお願いします。
-アカウントページ(http://secondlife.com/password)に移動し、
-秘密の質問に答えて、パスワードをリセットしてください。
-ご迷惑をおかけして申し訳ございません。
-
-
- Second Life はメンテナンスのため、一時的にご利用いただけません。
-従業員以外にはログインをご遠慮いただいています。
-最新の状況については www.secondlife.com/status でお確かめください。
-
-
- 既にログインしているユーザーに最上のインワールド体験を提供するため、Second Life へのログインは一時的に制限されています。
-
-申し訳ございませんが、有料アカウントのユーザーを優先するため、現在のところ無料アカウントのユーザーには Second Life へのアクセスをご遠慮いただいています。
-
-
- このパソコンからは Second Life にアクセスできません。
-システムのエラーだと思われる場合は、
-support@secondlife.com にお問い合わせください。
-
-
- あなたのアカウントは
-太平洋時間の [TIME] までご利用いただけません。
-
-
- 現在リクエストを完了することができません。
-Second Life のサポート(http://secondlife.com/support)にお問い合わせください。
-パスワードを変更できない場合には、(866) 476-9763 に電話でお問い合わせください。
-
-
- ログイン時にデータの不一致が見つかりました。
-support@secondlife.com にお問い合わせください。
-
-
- 現在アカウントのメインテナンスが行われています。
-あなたのアカウントは
-太平洋時間の [TIME] までご利用いただけません。
-システムのエラーだと思われる場合は、support@secondlife.com にお問い合わせください。
-
-
- ログアウトをリスクエストしたら、シミュレーターから「fault」が返されました。
-
-
- システムによるログアウトが実行されました。
-あなたのアカウントは
-太平洋時間の [TIME] までご利用いただけません。
-
-
- 有効なセッションを生成できません。
-
-
- シミュレーターに接続できませんでした。
-
-
- あなたの Second Life アカウントにアクセスできるのは、
-太平洋時間の [START] ~ [END] の間に限られます。
-有効な時間帯に再度お試しください。
-システムのエラーだと思われる場合は、support@secondlife.com にお問い合わせください。
-
-
- パラメーターが正しくありません。
-システムのエラーだと思われる場合は、support@secondlife.com にお問い合わせください。
-
-
- ファーストネームのパラメーターは英数字です。
-システムのエラーだと思われる場合は、support@secondlife.com にお問い合わせください。
-
-
- ラストネームのパラメーターは英数字です。
-システムのエラーだと思われる場合は、support@secondlife.com にお問い合わせください。
-
-
- リージョンはオフライン中です。
-しばらくしてから再度お試しください。
-
-
- エージェントがリージョンに不在です。
-しばらくしてから再度お試しください。
-
-
- このリージョンでは別のセッションがログインされていました。
-しばらくしてから再度お試しください。
-
-
- このリージョンでは前のセッションがログアウトされました。
-しばらくしてから再度お試しください。
-
-
- このリージョンでは現在も前のセッションのログアウトが処理されています。
-しばらくしてから再度お試しください。
-
-
- リージョンでは前のセッションがログアウトされました。
-しばらくしてから再度お試しください。
-
-
- リージョンではログアウトプロセスが開始されました。
-しばらくしてから再度お試しください。
-
-
- あなたの前のセッションはシステムによってログアウトされています。
-しばらくしてから再度お試しください。
-
-
- このリージョンに不都合が発生している可能性があります。 ご使用のインターネット接続をご確認ください。
-
-
- 設定を保存中です...
-
-
- ログアウト中です...
-
-
- シャットダウン中です...
-
-
- あなたがいたリージョンへの接続が切れました。
-
-
- 無効なリージョンにテレポートされました。
-
-
- ビューワの接続を切るテスト中
-
-
- 人
-
-
- (名前なし)
-
-
- 所有者:
-
-
- 公共
-
-
- (グループ)
-
-
- 売り出し中:L$ [AMOUNT]
-
-
- グループ作成
-
-
- 作成禁止
-
-
- グループ作成
-
-
- 危険
-
-
- 飛行禁止
-
-
- グループスクリプト
-
-
- スクリプトなし
-
-
- 土地:
-
-
- アイテムは 1 つだけここにドラッグできます
-
-
-
- マーチャントボックス内のアイテムを Rez することはできません
-
-
- これらオブジェクトの 1 つまたは複数は売り渡したり譲渡したりできないものです。
-
-
- マーチャントアウトボックスでは、ご自分のインベントリからのアイテムしか受け入れることができません
-
-
- 着用しているアイテムをマーチャントアウトボックスに入れることはできません
-
-
- コーリングカードをマーチャントアウトボックスに入れることはできません
-
-
- ネスト入りフォルダの深さが 3 を超えています
-
-
- 最上位フォルダ内のサブフォルダ数が 20 を超えています
-
-
- 最上位フォルダ内のアイテム数が 200 を超えています
-
-
- フォルダをその子フォルダに移動することはできません
-
-
- フォルダをそのフォルダ自身に移動することはできません
-
-
- クリックしてこの Web ページを見ます
-
-
- クリックしてこの場所の情報を見ます
-
-
- クリックしてこの住人のプロフィールを見ます
-
-
- この住人の詳細を参照
-
-
- クリックしてこの住人に対して無視設定をします
-
-
- クリックしてこの住人に対する無視設定を解除します
-
-
- クリックしてこの住人に IM を送ります
-
-
- クリックしてこの住人に支払います
-
-
- クリックしてこの住人にテレポートのリクエストを送ります
-
-
- クリックしてこの住人にフレンド登録リクエストを送ります
-
-
- クリックしてこのグループの説明文を見ます
-
-
- クリックしてこのグループの説明文を見ます
-
-
- クリックしてこのクラシファイド広告を見ます
-
-
- クリックしてこの区画の説明文を見ます
-
-
- クリックしてこの場所にテレポートします
-
-
- クリックしてこのオブジェクトの説明文を見ます
-
-
- クリックしてこの場所を地図に表示します
-
-
- クリックして secondlife:// コマンドを出します
-
-
-
- テレポート
-
-
- 地図に表示
-
-
- 無視
-
-
- ミュート解除
-
-
- IM
-
-
- 支払う
-
-
- 次の場所にテレポートを送ります:
-
-
- フレンド登録リクエスト
-
-
- 閉じる (⌘W)
-
-
- 閉じる (Ctrl+W)
-
-
- 閉じる
-
-
- 復元
-
-
- 元に戻す(縮小)
-
-
- 別ウィンドウで開く
-
-
- ドッキング
-
-
- ヘルプを表示
-
-
- 検索中...
-
-
- 見つかりませんでした。
-
-
- 取得中...
-
-
- リリースノート
-
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- ローディング...
-
-
- (なし)
-
-
- (待機中)
-
-
- (複数)
-
-
- (なし)
-
-
- Avaline コール [ORDER]
-
-
- エラーなし
-
-
- アセットリクエスト: 失敗
-
-
- アセットリクエスト: 存在しないファイル
-
-
- アセットリクエスト: データベースに見つかりませんでした
-
-
- 終了
-
-
- ファイルを開けません
-
-
- ファイルが見つかりません
-
-
- ファイルの転送タイムアウト
-
-
- サーキットエラー
-
-
- ビューワとサーバーの価格が一致していません
-
-
- 不明のステータス
-
-
- テクスチャ
-
-
- サウンド
-
-
- コーリングカード
-
-
- ランドマーク
-
-
- レガシースクリプト
-
-
- 衣類
-
-
- オブジェクト
-
-
- ノートカード
-
-
- フォルダ
-
-
- ルート
-
-
- LSL2 スクリプト
-
-
- LSL バイトコード
-
-
- tga テクスチャ
-
-
- 身体部位
-
-
- スナップショット
-
-
- 紛失物
-
-
- targa 画像
-
-
- ごみ箱
-
-
- jpeg 画像
-
-
- アニメーション
-
-
- ジェスチャー
-
-
- 統計
-
-
- お気に入り
-
-
- リンク
-
-
- フォルダのリンク
-
-
- メッシュ
-
-
- (容姿の編集中)
-
-
- 一時退席中
-
-
- 取り込み中
-
-
- ブロック中
-
-
- 怖れ
-
-
- 怒り
-
-
- 退席中
-
-
- 後ろ宙返り
-
-
- 大笑い
-
-
- 満面の笑顔
-
-
- 投げキッス
-
-
- 退屈
-
-
- おじぎ
-
-
- 拍手
-
-
- 深いおじぎ
-
-
- 泣く
-
-
- ダンス 1
-
-
- ダンス 2
-
-
- ダンス 3
-
-
- ダンス 4
-
-
- ダンス 5
-
-
- ダンス 6
-
-
- ダンス 7
-
-
- ダンス 8
-
-
- 侮蔑
-
-
- 酔っぱらう
-
-
- 困惑
-
-
- 指を振る
-
-
- ガッツポーズ
-
-
- ヨガ浮遊
-
-
- しかめっ面
-
-
- いらいらする
-
-
- 飛び上がって喜ぶ
-
-
- 挑発ポーズ
-
-
- キス
-
-
- 笑う
-
-
- 力こぶを見せる
-
-
- 不満げに否定する
-
-
- 否定する
-
-
- 冷やかす
-
-
- ワンツー・パンチ
-
-
- 口を開けて驚く
-
-
- ピース・サイン
-
-
- 他人を指差す
-
-
- 自分を指差す
-
-
- 左パンチ
-
-
- 右パンチ
-
-
- じゃんけんポーズ
-
-
- パー
-
-
- グー
-
-
- チョキ
-
-
- 嫌悪感
-
-
- まわし蹴り
-
-
- 悲しむ
-
-
- 敬礼する
-
-
- 叫ぶ
-
-
- 肩をすくめる
-
-
- 微笑む
-
-
- たばこをくゆらす
-
-
- たばこを吸う
-
-
- たばこを捨てる
-
-
- 驚く
-
-
- 剣で斬りつける
-
-
- じだんだを踏む
-
-
- 舌を出す
-
-
- 手を振る
-
-
- 小声で話す
-
-
- 口笛を吹く
-
-
- ウィンク
-
-
- ウィンク(ハリウッド)
-
-
- 心配する
-
-
- 笑顔で頷く
-
-
- 頷く
-
-
- 複数
-
-
- ローディング...
-
-
- オフライン
-
-
- [AREA] 平方メートル L$[PRICE]
-
-
- 見つかりませんでした。
-
-
- OK
-
-
- 不完全なファイル
-
-
- ROOT または JOINT が見つかりません
-
-
- のささやき:
-
-
- の叫び:
-
-
- インワールドボイスチャットに接続中...
-
-
- 接続しました
-
-
- 現在地では、ボイスを利用できません。
-
-
- インワールドボイスチャットの通話が切断されました
-
-
- 「近くのボイスチャット」に再接続されます
-
-
- [REGIONNAME] の [REGIONPOS] という場所にある、「 [OWNERNAME] 」が所有する「 [OBJECTNAME] 」というオブジェクトは、次の権限を許可しました: [PERMISSIONS]
-
-
- [REGIONNAME] の [REGIONPOS] という場所にある、「 [OWNERNAME] 」が所有する「 [OBJECTNAME] 」というオブジェクトは、次の権限を拒否しました: [PERMISSIONS]
-
-
- リンデンドル(L$)を支払う
-
-
- 制御入力に基づいて行動
-
-
- 制御入力のリマップ
-
-
- アバターへのアニメーション動作
-
-
- アバターに装着
-
-
- 所有権を解放し公のものとする
-
-
- 他のオブジェクトのリンクとリンク解除
-
-
- 他のオブジェクトとのジョイントの追加と削除
-
-
- 権限の変更
-
-
- カメラ追従
-
-
- カメラのコントロール
-
-
- 接続されていません
-
-
- General
-
-
- Moderate
-
-
- Adult
-
-
- オフライン
-
-
- 不明
-
-
- (不明)
-
-
- 不動産 / フルリージョン
-
-
- エステート/ホームステッド
-
-
- メインランド/ホームステッド
-
-
- メインランド / フルリージョン
-
-
- 全てのファイル
-
-
- サウンド
-
-
- アニメーション
-
-
- 画像
-
-
- 保存
-
-
- ロード
-
-
- Targa 画像
-
-
- ビットマップ画像
-
-
- AVI ムービーファイル
-
-
- XAF アニメーションファイル
-
-
- XML ファイル
-
-
- RAW ファイル
-
-
- 圧縮画像
-
-
- ファイルのロード
-
-
- 参照
-
-
- スクリプト
-
-
- 一時退席中解除
-
-
- 一時退席中
-
-
- 取り込み中解除
-
-
- 取り込み中
-
-
- シェイプ
-
-
- スキン
-
-
- 髪
-
-
- 目
-
-
- シャツ
-
-
- パンツ
-
-
- 靴
-
-
- 靴下
-
-
- ジャケット
-
-
- 手袋
-
-
- 下着シャツ
-
-
- 下着パンツ
-
-
- スカート
-
-
- アルファ
-
-
- タトゥ
-
-
- 物理作用
-
-
- 無効
-
-
- なし
-
-
- シャツ未着用
-
-
- パンツ未着用
-
-
- 靴未着用
-
-
- 靴下未着用
-
-
- ジャケット未着用
-
-
- 手袋未着用
-
-
- 下着(上)未着用
-
-
- 下着(下)未着用
-
-
- スカート未着用
-
-
- アルファ未着用
-
-
- タトゥー未着用
-
-
- 物理作用なし
-
-
- 無効
-
-
- 新しいシェイプを作成
-
-
- 新しいスキンを作成
-
-
- 新しい髪を作成
-
-
- 新しい目を作成
-
-
- 新しいシャツを作成
-
-
- 新しいパンツを作成
-
-
- 新しい靴を作成
-
-
- 新しい靴下を作成
-
-
- 新しい上着を作成
-
-
- 新しい手袋を作成
-
-
- 新しい下着シャツを作成
-
-
- 新しい下着パンツを作成
-
-
- 新しいスカートを作成
-
-
- 新しいアルファを作成
-
-
- 新しいタトゥを作成
-
-
- 新しい物理作用を作成
-
-
- 無効
-
-
- 新しい [WEARABLE_ITEM]
-
-
- 次へ
-
-
- OK
-
-
- グループ通知
-
-
- グループ通知
-
-
- 送信者
-
-
- 添付:
-
-
- ここで過去の通知を表示するか、メッセージを受け取らない設定をします。
-
-
- 添付アイテムを開く
-
-
- 添付アイテムを保存
-
-
- テレポートを送る
-
-
- 不在中に新しい通知が届きました。
-
-
- あなたにはさらに %d 通の通知があります
-
-
- 右腕
-
-
- 頭
-
-
- 左腕
-
-
- 左脚
-
-
- 上半身
-
-
- 右脚
-
-
- 低
-
-
- 中
-
-
- 高
-
-
- ESC キーを押してワールドビューに戻ります
-
-
- お探しのものは見つかりましたか? [secondlife:///app/search/all/[SEARCH_TERM] 検索] をお試しください。
-
-
- お探しのものは見つかりましたか? [secondlife:///app/search/places/[SEARCH_TERM] 検索] をお試しください。
-
-
- ここにランドマークをドラッグしてお気に入りに追加します。
-
-
- インベントリ内にこのテクスチャのコピーがありません
-
-
- マーケットプレイスで購入した商品はここに表示されます。その後、アイテムをインベントリにドラッグすれば、それらのアイテムを使用できます。
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
-
-
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
-
-
- マーケットプレイスでは誰でもアイテムを売ることができます。
-
-
-
- マーチャントになりたい方は、[[MARKETPLACE_CREATE_STORE_URL] マーケットプレイスストアを作成]する必要があります。
-
-
- アウトボックスは空です。
-
-
-
- [[MARKETPLACE_DASHBOARD_URL] マーケットプレイス]に販売するアイテムを一覧するには、フォルダをこのエリアにドラッグし、「マーケットプレイスに送信」をクリックします。
-
-
- エラーなし
-
-
- エラー:マーケットプレイスにアイテムを送る前に、あなた自身をマーチャント登録する必要があります(登録は無料です)。
-
-
- エラー:このフォルダは空です。
-
-
- エラー:あなたのマーチャントアカウントには、商品に関連付けられていないアイテムが多すぎるため、このアイテムをアップロードできませんでした。このエラーを解消するには、マーケットプレイスの Web サイトにログインし、関連付けられていないアイテムの数を減らしてください。
-
-
- エラー:このアイテムに含まれるオブジェクトが多すぎます。オブジェクトをいくつかボックスにまとめ、オブジェクト数を200以下に減らしてください。
-
-
- エラー:このアイテムはネスト入りフォルダの階層が多すぎます。ネスト入りフォルダを 3 階層以内にまとめ直してください。
-
-
- エラー:このアイテムをマーケットプレイスで販売することはできません。
-
-
- エラー:このアイテムに関して問題が発生しました。しばらくしてからお試しください。
-
-
- ランドマークを開く
-
-
-
-
-
-
-
-
- コンテンツをロード中です...
-
-
- コンテンツなし
-
-
-
-
- はい
-
-
- いいえ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- インベントリ
-
-
- ライブラリ
-
-
- テクスチャ
-
-
- サウンド
-
-
- コーリングカード
-
-
- ランドマーク
-
-
- スクリプト
-
-
- 衣類
-
-
- オブジェクト
-
-
- ノートカード
-
-
- 新規フォルダ
-
-
- インベントリ
-
-
- 圧縮されていない画像
-
-
- 身体部位
-
-
- ごみ箱
-
-
- フォトアルバム
-
-
- 紛失物
-
-
- 圧縮されていないサウンド
-
-
- アニメーション
-
-
- ジェスチャー
-
-
- お気に入り
-
-
- お気に入り
-
-
- 着用中のアウトフィット
-
-
- 最初のアウトフィット
-
-
- マイ アウトフィット
-
-
- アクセサリ
-
-
- メッシュ
-
-
- フレンド
-
-
- 全員
-
-
- 着用しているアタッチメントはありません
-
-
- アタッチメント(残りのスロット数:[COUNT])
-
-
- 買う
-
-
- L$ で購入
-
-
- 石
-
-
- 金属
-
-
- ガラス
-
-
- 木
-
-
- 肌
-
-
- プラスチック
-
-
- ゴム
-
-
- ライト
-
-
- Shift
-
-
- Ctrl
-
-
- 胸部
-
-
- 頭蓋
-
-
- 左肩
-
-
- 右肩
-
-
- 左手
-
-
- 右手
-
-
- 左足
-
-
- 右足
-
-
- 背骨
-
-
- 骨盤
-
-
- 口
-
-
- あご
-
-
- 左耳
-
-
- 右耳
-
-
- 左目眼球
-
-
- 右目眼球
-
-
- 鼻
-
-
- 右上腕
-
-
- 右前腕
-
-
- 左上腕
-
-
- 左前腕
-
-
- 右腰
-
-
- 右上脚
-
-
- 右下脚
-
-
- 左腰
-
-
- 左上脚
-
-
- 左下脚
-
-
- 腹
-
-
- 左胸筋
-
-
- 右胸筋
-
-
- 首
-
-
- アバターの中央
-
-
- 装着先が正しくありません
-
-
- [AGEYEARS] [AGEMONTHS]
-
-
- [AGEYEARS]
-
-
- [AGEMONTHS]
-
-
- [AGEWEEKS]
-
-
- [AGEDAYS]
-
-
- 今日参加
-
-
- [COUNT] 年
-
-
- [COUNT] 年
-
-
- [COUNT] 年
-
-
- [COUNT] ヶ月
-
-
- [COUNT] ヶ月
-
-
- [COUNT] ヶ月
-
-
- [COUNT] 週間
-
-
- [COUNT] 週間
-
-
- [COUNT] 週間
-
-
- [COUNT] 日間
-
-
- [COUNT] 日間
-
-
- [COUNT] 日間
-
-
- [COUNT] 人
-
-
- [COUNT] 人
-
-
- [COUNT] 人
-
-
- 住人
-
-
- トライアル
-
-
- 創立メンバー
-
-
- Linden Lab 従業員
-
-
- 支払情報使用履歴あり
-
-
- 支払情報登録済
-
-
- 支払情報未登録
-
-
- 年齢確認済
-
-
- 年齢未確認
-
-
- 中心 2
-
-
- 右上
-
-
- 上部
-
-
- 左上
-
-
- 中心
-
-
- 左下
-
-
- 下部
-
-
- 右下
-
-
- ダウンロード完了、コンパイル中
-
-
- サーバー上にスクリプトが見つかりません。
-
-
- ダウンロードに問題があります
-
-
- 権限不足のためスクリプトをダウンロードできません。
-
-
- 権限不足:
-
-
- 原因不明の失敗によりダウンロードができません
-
-
- リコンパイル進行
-
-
- リコンパイル
-
-
- 進行をリセット
-
-
- リセット
-
-
- 実行を続けるよう設定
-
-
- 実行中に設定
-
-
- 実行を停止するよう設定
-
-
- 実行停止に設定
-
-
- コンパイルが完了しました!
-
-
- コンパイル完了、保存中です...
-
-
- 保存完了。
-
-
- スクリプト(オブジェクトが範囲外にあります)
-
-
- [OWNER] 所有のオブジェクト「[OBJECT]」
-
-
- なし
-
-
-
- (不明)
-
-
-
-
- [year,datetime,utc]/[mthnum,datetime,utc]/[day,datetime,utc]
-
-
-
-
- 残高
-
-
- 収入
-
-
- 支出
-
-
- 合計
-
-
- グループのデータが見つかりませんでした
-
-
- parent estate
-
-
- メインランド
-
-
- ティーン
-
-
- 全員
-
-
- エラー
-
-
- [OWNER] が所有するすべての不動産
-
-
- あなたが所有するすべての不動産
-
-
- あなたが [OWNER] のために管理するすべての不動産
-
-
- 許可された住人: ([ALLOWEDAGENTS] 人、最大 [MAXACCESS] 人)
-
-
- 許可されたグループ: ([ALLOWEDGROUPS]、最大 [MAXACCESS] )
-
-
- 区画スクリプトメモリ
-
-
- 区画一覧: [PARCELS]
-
-
- 使用されたメモリ: [MAX] kb 中 [COUNT] kb:[AVAILABLE] kb 利用可
-
-
- 使用されたメモリ: [COUNT] kb
-
-
- 区画のスクリプトURL
-
-
- 使用された URL: [MAX] 中 [COUNT] :[AVAILABLE] 利用可
-
-
- 使用された URL: [COUNT]
-
-
- 情報のリクエスト中にエラーが発生しました
-
-
- 区画が選択されていません。
-
-
- エラー: スクリプト情報は現在地のみ取得できます
-
-
- 情報を取得中...
-
-
- この区画を調査する権限がありません。
-
-
- 着席中
-
-
- 胸部
-
-
- 頭
-
-
- 左肩
-
-
- 右肩
-
-
- 左手
-
-
- 右手
-
-
- 左足
-
-
- 右足
-
-
- 背中
-
-
- 骨盤
-
-
- 口
-
-
- あご
-
-
- 左耳
-
-
- 右耳
-
-
- 左目
-
-
- 右目
-
-
- 鼻
-
-
- 右腕(上)
-
-
- 右腕(下)
-
-
- 左腕(上)
-
-
- 左腕(下)
-
-
- 右腰
-
-
- 右脚(上)
-
-
- 右脚(下)
-
-
- 左腰
-
-
- 左脚(上)
-
-
- 左脚(下)
-
-
- お腹
-
-
- 右胸筋
-
-
- 左胸筋
-
-
- HUD(中央 2)
-
-
- HUD(右上)
-
-
- HUD(上・中央)
-
-
- HUD(左上)
-
-
- HUD(中央 1)
-
-
- HUD(左下)
-
-
- HUD(下)
-
-
- HUD(右下)
-
-
- [LINE] 行目、[COLUMN] 列目
-
-
- [COUNT] 件見つかりました
-
-
- [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]
-
-
- オブジェクトの中身
-
-
- 新規スクリプト
-
-
- メッセージを送った住人は、誰にも邪魔をされたくないため現在「取り込み中」モードです。 あなたのメッセージは、あとで確認できるように IM パネルに表示されます。
-
-
- (名称別)
-
-
- (住人)
-
-
- (オブジェクト)
-
-
- (グループ)
-
-
- (外部)
-
-
- この不動産には約款がありません。
-
-
- この不動産には約款がありません。 この不動産上の土地は不動産所有者により販売され、Linden Lab は販売しません。 販売に関するお問い合わせは、不動産所有者までお願い致します。
-
-
-
-
-
- グループ所有
-
-
- パブリック
-
-
- ローカル設定
-
-
- リージョン(地域)の設定
-
-
- クリック数: [TELEPORT] テレポート、 [MAP] 地図、 [PROFILE] プロフィール
-
-
- (掲載後更新)
-
-
- ピックやクラシファイド広告を作成していません。 作成するには、下にある「プラス」ボタンをクリックします。
-
-
- ピック、またはクラシファイド広告がありません
-
-
- ローディング...
-
-
- プレビュー
-
-
- プロパティ
-
-
- オブジェクト名
-
-
- 所有グループ
-
-
- 不明なグループ所有
-
-
- 所有者
-
-
- 不明なユーザー所有
-
-
- が渡しました
-
-
- <nolink>[NAME]</nolink> からの [DESC] を拒否しました。
-
-
- 合計
-
-
- 購入:
-
-
- あなたに支払い:
-
-
- paid into
-
-
- 入場許可を購入:
-
-
- がイベント用の費用を支払いました
-
-
- がイベント用の賞金を支払いました
-
-
- 残高
-
-
- 収入
-
-
- 支出
-
-
- [year,datetime,utc]年[mth,datetime,utc]月[day,datetime,utc]日[weekday,datetime,utc]
-
-
- 内容
-
-
- 取得アイテム
-
-
- キャンセル
-
-
- [NAME] のアップロード料金は L$[AMOUNT] です
-
-
- これを L$[AMOUNT] で購入します
-
-
- 不明の拡張子: %s
-使用可能な拡張子: .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
-
-
- ブロック
-
-
- ブロック
-
-
- ブロック解除
-
-
- ブロック解除
-
-
- マイ ランドマークに追加...
-
-
- マイ ランドマークを編集...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Shift+
-
-
- ファイルが保存されました
-
-
- 取得中
-
-
- AM
-
-
- PM
-
-
- 太平洋標準時
-
-
- 太平洋夏時間
-
-
- 前
-
-
- 左
-
-
- 右
-
-
- 戻る
-
-
- 北
-
-
- 南
-
-
- 西
-
-
- 東
-
-
- 上
-
-
- 下
-
-
- 全カテゴリ
-
-
- ショッピング
-
-
- 土地のレンタル
-
-
- プロパティのレンタル
-
-
- 特別アトラクション
-
-
- 新製品
-
-
- 雇用
-
-
- 求む
-
-
- サービス
-
-
- パーソナル
-
-
- なし
-
-
- Linden 所在地
-
-
- Adult
-
-
- アートとカルチャー
-
-
- ビジネス
-
-
- 教育的
-
-
- ゲーム
-
-
- たまり場
-
-
- 新住人に優しい
-
-
- 公園と自然
-
-
- 住宅用
-
-
- ステージ
-
-
- その他
-
-
- レンタル
-
-
- 全員
-
-
- あなた
-
-
- :
-
-
- ,
-
-
- ...
-
-
- ***
-
-
- (
-
-
- )
-
-
- .
-
-
- '
-
-
- ---
-
-
- 複数のメディア
-
-
- メディアを再生/一時停止
-
-
- コマンドラインにエラーが見つかりました。
-リンク先を参照してください: http://wiki.secondlife.com/wiki/Client_parameters
-エラー:
-
-
- [APP_NAME] コマンドライン使用:
-
-
- [APP_NAME] は必要なファイルにアクセスできません。
-
-複数のコピーを実行中か、ファイルが既に開いているとあなたのシステムが誤認識している可能性があります。
-このメッセージが何度も出る場合は、コンピューターを再起動してもう一度お試しください。
-それでも問題が続く場合、[APP_NAME] を完全にアンインストールして、再インストールをしてください。
-
-
- 致命的なエラー
-
-
- [APP_NAME] は、AltiVec搭載のプロセッサが必要です。(G4 以降)
-
-
- [APP_NAME] はすでに実行中です。
-最小化されたプログラムのコピーをタスクバーで確認してください。
-このメッセージが何度も出る場合はコンピューターを再起動してください。
-
-
- [APP_NAME] は前回の実行時にフリーズしています。
-クラッシュ報告を送信しますか?
-
-
- 通知
-
-
- [APP_NAME] は DirectX 9.0b 及びそれ以降のバージョンを検出することができませんでした。
-[APP_NAME] は DirectX を使用して安定性の問題、低パフォーマンス、クラッシュ等悪影響を与えるハードウェアや古いドライバを検出します。 DirectX 9.0b がなくても [APP_NAME] を実行できますが、DirectX 9.0bとのご使用を強く推奨します。
-
-続けますか?
-
-
- 警告
-
-
- 自動更新は現在 Linux には対応していません。
-www.secondlife.com から最新バージョンをダウンロードしてください。
-
-
- RegisterClass 失敗
-
-
- エラー
-
-
- [WIDTH] x [HEIGHT] では全画面で実行することができません。
-ウィンドウモードで実行中です。
-
-
- シャットダウンエラー(DestroyWindow() 失敗)
-
-
- シャットダウンエラー
-
-
- GL ディバイスコンテキストが作れません
-
-
- 適切なピクセル形式が見つかりません
-
-
- ピクセル形式情報が見つかりません
-
-
- [APP_NAME] を実行するには、True Color (32ビット)が必要です。
-お使いのコンピューターの「コントロールパネル」>「画面」>「設定」に行き、「最高 (32 ビット)」に設定してください。
-
-
- [APP_NAME] は 8 ビットのアルファチャンネルを取得できないため実行できません。 通常ビデオカードのドライバの問題で起こります。
-お使いのコンピューターに最新のビデオカードドライバがインストールされているかご確認ください。
-また、「コントロールパネル」>「画面」>「設定」内で、モニターが「最高 (32 ビット)」に設定されていることもご確認ください。
-このメッセージが何度も出る場合は、[SUPPORT_SITE] へご連絡ください。
-
-
- ピクセル形式が設定できません
-
-
- GL レンダーコンテキストが作れません
-
-
- GL レンダーコンテキストをアクティベートできません
-
-
- お使いのコンピューターのビデオカードドライバが正常にインストールできなかった、または古いかサポート対象外のため、[APP_NAME] は実行できません。 最新のビデオカードドライバがインストールされているのを確認し、されている場合は再インストールをお試しください。
-
-このメッセージが何度も出る場合は、[SUPPORT_SITE] へご連絡ください。
-
-
- うっすらとしたヒゲ
-
-
- 真っ白
-
-
- アニメ風の目
-
-
- アーチ
-
-
- 腕の長さ
-
-
- 小
-
-
- 耳たぶ
-
-
- 後ろ髪の毛先
-
-
- たるんだ下まぶた
-
-
- 前髪
-
-
- ビーズのような目
-
-
- お腹の大きさ
-
-
- 大
-
-
- 大
-
-
- 髪の大部分: 後ろ
-
-
- 髪の大部分: 前
-
-
- 髪の大部分: 上部
-
-
- 大
-
-
- 大
-
-
- とげあり
-
-
- 黒
-
-
- ブロンド
-
-
- ブロンドの髪
-
-
- チーク
-
-
- チークカラー
-
-
- チークの濃さ
-
-
- 体の精細度
-
-
- 体脂肪
-
-
- 体のしみ・そばかす
-
-
- 骨太
-
-
- 体の厚み
-
-
- 細め
-
-
- 外股
-
-
- 胸の重力
-
-
- 胸の谷間
-
-
- 胸の大きさ
-
-
- 両目の間の幅
-
-
- 広
-
-
- 眉毛上の隆起
-
-
- Bug Eyes
-
-
- 突き出た目
-
-
- だんご
-
-
- だんご鼻
-
-
- 胸の豊かさ
-
-
- 胸の平滑化
-
-
- 胸の垂れ具合
-
-
- 胸の空気抵抗
-
-
- 最大エフェクト数
-
-
- 振動速度
-
-
- 増加率
-
-
- 減衰
-
-
- 最大エフェクト数
-
-
- 振動速度
-
-
- 増加率
-
-
- 減衰
-
-
- 最大エフェクト数
-
-
- 振動速度
-
-
- 増加率
-
-
- 減衰
-
-
- お腹の豊かさ
-
-
- お腹の平滑化
-
-
- お腹の垂れ具合
-
-
- お腹の空気抵抗
-
-
- 最大エフェクト数
-
-
- 振動速度
-
-
- 増加率
-
-
- 減衰
-
-
- お尻の豊かさ
-
-
- お尻の平滑化
-
-
- お尻の垂れ具合
-
-
- お尻の空気抵抗
-
-
- 最大エフェクト数
-
-
- 振動速度
-
-
- 増加率
-
-
- 減衰
-
-
- 最大エフェクト数
-
-
- 振動速度
-
-
- 増加率
-
-
- 減衰
-
-
- 太
-
-
- ぼさぼさヘア
-
-
- お尻の大きさ
-
-
- お尻の垂れ具合
-
-
- 後ろの膨らみ
-
-
- 膨らみなし
-
-
- 膨らみ大
-
-
- チャップリン
-
-
- ほお骨
-
-
- 胸部の大きさ
-
-
- あごの角度
-
-
- あごの先の割れ
-
-
- あごに沿ったひげ
-
-
- あごの長さ
-
-
- あごを強調
-
-
- ひいたあご
-
-
- 突き出たあご
-
-
- あごと首
-
-
- クリア
-
-
- 割れた
-
-
- 顔の中心寄りの目
-
-
- クローズ
-
-
- 後ろとじ
-
-
- 前とじ
-
-
- 左とじ
-
-
- 右とじ
-
-
- コイン入れ
-
-
- 後ろえり
-
-
- 前えり
-
-
- ダウン
-
-
- アップ
-
-
- 重いまぶた
-
-
- 曲がった鼻
-
-
- 袖口のフレア
-
-
- ダーク
-
-
- ダークグリーン
-
-
- ダーク
-
-
- 尖った
-
-
- デフォルトのかかと
-
-
- 濃
-
-
- 二重あご
-
-
- 下向き
-
-
- ダッフルバッグ
-
-
- 耳の角度
-
-
- 耳の大きさ
-
-
- 耳の先
-
-
- たまご頭
-
-
- 下まぶた
-
-
- 瞳の色
-
-
- 目のくぼみ
-
-
- 瞳の明るさ
-
-
- 見開き具合
-
-
- 両目の大きさの対称
-
-
- 目の大きさ
-
-
- 目と目のあいだの幅
-
-
- 眉毛のアーチ
-
-
- 眉毛の密集度
-
-
- 眉毛の高さ
-
-
- 眉毛の角
-
-
- 眉毛の大きさ
-
-
- まつげの長さ
-
-
- アイライナー
-
-
- アイライナーの色
-
-
- 下まぶたがたるんだ目
-
-
- 顔のゆがみ
-
-
- 顔の精細度
-
-
- 離れた目
-
-
- 大
-
-
- 女性
-
-
- 指なし
-
-
- 指あり
-
-
- 広がった袖口
-
-
- 平ら
-
-
- 小
-
-
- 絶壁頭
-
-
- フラット
-
-
- 足の大きさ
-
-
- ひたいの角度
-
-
- ひたいを強調
-
-
- しみ・そばかす
-
-
- 前髪の毛先
-
-
- 刈られていない髪
-
-
- あり
-
-
- 刈られていない髪
-
-
- サイドの髪
-
-
- 生え揃ったサイド
-
-
- あり
-
-
- 手袋の指
-
-
- 手袋の長さ
-
-
- 髪
-
-
- 髪: 後ろ
-
-
- 髪: 前
-
-
- 髪: サイド
-
-
- 流す
-
-
- 髪の量
-
-
- 髪の量
-
-
- 髪の向き
-
-
- 左向き
-
-
- 右向き
-
-
- 髪: ボリューム
-
-
- 手の大きさ
-
-
- ハンドルバー
-
-
- 頭の長さ
-
-
- 頭の形
-
-
- 頭の大きさ
-
-
- 縦横の長さ
-
-
- ヒールの高さ
-
-
- ヒールの形
-
-
- 身長
-
-
- 高
-
-
- ハイヒール
-
-
- 高
-
-
- 厚底
-
-
- 高めでタイト
-
-
- 高
-
-
- 腰の長さ
-
-
- 腰の幅
-
-
- 内向き
-
-
- 内側のシャドウカラー
-
-
- 内側のシャドウの濃さ
-
-
- 目頭
-
-
- 内側のアイシャドウ
-
-
- 内側のシャドウ
-
-
- ジャケット丈
-
-
- ジャケットのしわ
-
-
- あごの角度
-
-
- あごの突出
-
-
- あごの形
-
-
- 寄せた胸
-
-
- えら
-
-
- 膝の角度
-
-
- 内股
-
-
- 大
-
-
- 大
-
-
- 左分け
-
-
- 脚の長さ
-
-
- 脚の筋肉
-
-
- 小
-
-
- 少なめ
-
-
- 少なめ
-
-
- 少なめ
-
-
- 薄い
-
-
- 少
-
-
- 少
-
-
- 少なめ
-
-
- 少なめ
-
-
- 少な目
-
-
- 丸み少な目
-
-
- 小
-
-
- 小
-
-
- ボリューム少な目
-
-
- 小
-
-
- ライト
-
-
- 唇の山
-
-
- 唇の山の高さ
-
-
- 唇の厚み
-
-
- 唇の赤み
-
-
- 上下唇の大きさ
-
-
- 唇の前後幅
-
-
- 口の大きさ
-
-
- リップグロス
-
-
- 口紅
-
-
- 口紅の色
-
-
- ロング
-
-
- 前後幅が広い頭
-
-
- 長
-
-
- 長
-
-
- 長
-
-
- 長
-
-
- 長
-
-
- 長
-
-
- 長
-
-
- ゆったり
-
-
- ゆるめ
-
-
- ゆるめ
-
-
- ウエスト周り
-
-
- 低
-
-
- ローヒール
-
-
- 低
-
-
- 低め
-
-
- 低めでゆったり
-
-
- 低
-
-
- 鼻筋
-
-
- ほおの下部
-
-
- 男性
-
-
- 真ん中分け
-
-
- 大
-
-
- きつめ
-
-
- 多め
-
-
- 多め
-
-
- あり
-
-
- 多め
-
-
- 厚い
-
-
- 大
-
-
- あり
-
-
- 大
-
-
- 大
-
-
- 多め
-
-
- 筋骨隆々
-
-
- 多め
-
-
- まる
-
-
- 大
-
-
- なだらか
-
-
- 四角
-
-
- 大
-
-
- 垂直
-
-
- 大
-
-
- 大
-
-
- 口ひげ
-
-
- 口角
-
-
- 口の位置
-
-
- モヒカン
-
-
- 筋骨たくましい
-
-
- マトンチョップス
-
-
- マニキュア
-
-
- マニキュアの色
-
-
- 狭
-
-
- 狭
-
-
- 狭
-
-
- おちょぼ口
-
-
- ナチュラル
-
-
- 首の長さ
-
-
- 首の太さ
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- なし
-
-
- 下
-
-
- 上
-
-
- 左曲がり
-
-
- 右曲がり
-
-
- 鼻の大きさ
-
-
- 鼻の厚み
-
-
- 鼻先の角度
-
-
- 鼻先の形
-
-
- 鼻の幅
-
-
- 鼻の穴の高さ
-
-
- 鼻の穴の幅
-
-
- 濃いめ
-
-
- オープン
-
-
- 後ろあき
-
-
- 前あき
-
-
- 左あき
-
-
- 右あき
-
-
- オレンジ
-
-
- 外向き
-
-
- 外側のシャドウカラー
-
-
- 外側のシャドウの濃さ
-
-
- 目尻
-
-
- 外側のアイシャドウ
-
-
- 外側のシャドウ
-
-
- 出っ歯
-
-
- パッケージ
-
-
- あり
-
-
- 悪い
-
-
- パンツの股
-
-
- パンツのフィット感
-
-
- パンツ丈
-
-
- ウエスト
-
-
- パンツのしわ
-
-
- あり
-
-
- 分けた前髪
-
-
- 胸筋
-
-
- 色素
-
-
- 下げ髪
-
-
- ピンク
-
-
- ピンク
-
-
- 靴底の高さ
-
-
- 靴底の幅
-
-
- 尖った
-
-
- 幅狭
-
-
- ポニーテール
-
-
- ふんわり
-
-
- 左目を大きく
-
-
- 右目を大きく
-
-
- ふっくら
-
-
- 目の周りの膨らみ
-
-
- 虹色
-
-
- 赤毛
-
-
- 均整のとれた
-
-
- 右分け
-
-
- ほおの赤らみ
-
-
- まるっこい
-
-
- 血色
-
-
- 良い
-
-
- くしゃくしゃヘア
-
-
- 腰回りの肉付き
-
-
- 骨張った脚
-
-
- 離れた胸
-
-
- なだらか
-
-
- 後方を刈る
-
-
- 顔のゆがみ
-
-
- 前方を刈る
-
-
- 左半分を上に
-
-
- 右半分を上に
-
-
- 後ろを刈られた髪
-
-
- 前を刈られた髪
-
-
- 左向き
-
-
- 口の向き
-
-
- 右向き
-
-
- シャツの裾
-
-
- シャツのフィット感
-
-
- シャツのしわ
-
-
- 靴の長さ
-
-
- ショート
-
-
- 短
-
-
- 短
-
-
- 短
-
-
- 短
-
-
- 短
-
-
- 短め
-
-
- 短
-
-
- 短
-
-
- 肩
-
-
- サイドの毛先
-
-
- もみあげ
-
-
- サイドの髪
-
-
- ダウン
-
-
- アップ
-
-
- 細
-
-
- スカートのフィット感
-
-
- スカート丈
-
-
- 傾斜した額
-
-
- 袖丈
-
-
- 袖のフィット感
-
-
- スリット: 後ろ
-
-
- スリット: 前
-
-
- スリット: 左
-
-
- スリット: 右
-
-
- 小
-
-
- 小
-
-
- 小
-
-
- 滑らか
-
-
- スムーズ
-
-
- 靴下丈
-
-
- ソウルパッチ
-
-
- 薄
-
-
- とげとげヘア
-
-
- 角張った
-
-
- スクエアトゥ
-
-
- カボチャ型
-
-
- 縦長
-
-
- こけたほお
-
-
- 小
-
-
- くぼんだ目
-
-
- 後ろへ
-
-
- 前へ
-
-
- トール
-
-
- 後ろに先細
-
-
- 前に先細
-
-
- 幅広
-
-
- 太
-
-
- 厚め
-
-
- 薄い
-
-
- 細
-
-
- 小
-
-
- 細い鼻
-
-
- ひきしまったあご
-
-
- タイト
-
-
- タイト
-
-
- タイト
-
-
- タイト
-
-
- タイト
-
-
- つま先の形
-
-
- つま先の厚み
-
-
- 上半身の長さ
-
-
- 上半身の筋肉
-
-
- 上半身の骨張り
-
-
- 大
-
-
- 軽いまぶた
-
-
- 受け口
-
-
- ユニーク
-
-
- 両目のあいだ
-
-
- ほおの上部
-
-
- あご上部の割れ
-
-
- 二重の幅
-
-
- 上向き
-
-
- 真っ赤
-
-
- ウエストの高さ
-
-
- つまったほお
-
-
- 白髪
-
-
- 広
-
-
- 広
-
-
- 広
-
-
- 大きい口
-
-
- ワイルド
-
-
- しわ
-
-
- マイ ランドマークに追加
-
-
- マイ ランドマークを編集
-
-
- 現在地の詳細を見る
-
-
- マイ ロケーション履歴
-
-
- この土地を購入
-
-
- ここではボイスの利用ができません
-
-
- 飛行は禁止されています
-
-
- プッシュ禁止
-
-
- オブジェクトの制作・ドロップは禁止されています
-
-
- スクリプト不可
-
-
- 体力
-
-
- Adult リージョン
-
-
- Moderate リージョン
-
-
- General リージョン
-
-
- この区画外にアバターを見えるようにして、チャットも許可
-
-
- [APP_NAME] アップデート
-
-
- 只今 [APP_NAME] をアップデート中です...
-
-
- [APP_NAME] をインストール中です...
-
-
- お使いの [APP_NAME] ビューワが最新バージョンにアップデートされています。 数分かかることがありますのでしばらくお待ちください。
-
-
- アップデートをダウンロード中です...
-
-
- アップデートをダウンロード中
-
-
- アップデートのダウンロードに失敗しました
-
-
- [APP_NAME] をアップデート中にエラーが発生しました。 www.secondlife.com から最新バージョンをダウンロードしてください。
-
-
- アップデートのインストールに失敗しました
-
-
- ビューワの起動に失敗しました
-
-
- [APP_NAME] : アイテムが [FROM_NAME] から同時にたくさん読み込まれているため、自動プレビューが [TIME] 秒間無効となります。
-
-
- [APP_NAME] : アイテムが同時にたくさん読み込まれているため、自動プレビューが [TIME] 秒間無効となります。
-
-
- -- インスタントメッセージの保存開始 --
-
-
- [NAME] は入力中です...
-
-
- (名前なし)
-
-
- (モデレート: デフォルトでボイスはオフ)
-
-
- このコールでは文字チャットが利用できません。
-
-
- グループのモデレータが、あなたの文字チャットを使用禁止にしました。
-
-
- ここをクリックしてインスタントメッセージを開始。
-
-
- 宛先
-
-
- (モデレータ)
-
-
- (保存日時:[LONG_TIMESTAMP])
-
-
- このメッセージを表示するには、「環境設定」の「プライバシー」で「フレンドとグループ以外からはコールと IM を受信しない」チェックボックスをオフにします。
-
-
- 相手がコールを受けました
-
-
- ボイスコールを開始します
-
-
- ボイスコールに参加しました
-
-
- [NAME] はボイスコールを開始します
-
-
- ボイスコールに参加...
-
-
- 接続しました。コール終了をクリックして切ります
-
-
- ボイスコールから退席しました
-
-
- 接続中...
-
-
- アドホックコンファレンス
-
-
- [AGENT_NAME] とコンファレンスする
-
-
- インベントリアイテムを送りました
-
-
- インベントリからここにアイテムをドラッグします
-
-
- (IM セッションが存在しません)
-
-
- このセッションにいるユーザーはあなただけです。
-
-
- [NAME] はオフライン中です。
-
-
- このボイスチャットに応答・接続する場合は、[BUTTON NAME] をクリックしてください。
-
-
- この住人をブロックしています。 メッセージを送ると、ブロックが自動的に解除されます。
-
-
- リクエスト中にエラーが発生しました。あとでもう一度お試しください。
-
-
- 要求中にエラーが発生しました。後でもう一度試してください。
-
-
- あなたには充分な権限がありません。
-
-
- このセッションは既に切断されています。
-
-
- あなたにはその能力がありません。
-
-
- あなたにはその能力がありません。
-
-
- あなたはセッションモデレータではありません。
-
-
- グループのモデレーターが、あなたのテキストチャットを禁止しました。
-
-
- グループモデレータがあなたのテキストチャットを無効化しました
-
-
- [RECIPIENT] とのチャットセッションにユーザーを追加することができません
-
-
- [RECIPIENT] とのチャットセッションに、メッセージを送信することができません。
-
-
- [RECIPIENT] とのチャットセッションにメッセージを送ることができません
-
-
- モデレート中にエラーが発生しました。
-
-
- グループから脱退しました。
-
-
- あなたはグループから削除されました。
-
-
- このチャットセッションを継続することはできません
-
-
- [SOURCES] は何か新しいことを言いました。
-
-
- [SOURCES] は何か新しいことを言いました。
-
-
- セッションの初期化がタイムアウトしました
-
-
- 家の配置の設定。
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] は [REASON] のために L$[AMOUNT] を支払いました。
-
-
- [NAME] は L$[AMOUNT] を支払いました。
-
-
- [NAME] に L$ [AMOUNT] を支払いました:[REASON]
-
-
- L$ [AMOUNT] を支払いました。
-
-
- [NAME] に L$ [AMOUNT] を支払いました。
-
-
- L$ [AMOUNT] を支払いました:[REASON]
-
-
- [NAME] に [REASON] の代金 L$ [AMOUNT] を支払えませんでした。
-
-
- L$ [AMOUNT] を支払えませんでした。
-
-
- [NAME] に L$ [AMOUNT] を支払えませんでした。
-
-
- [REASON] の 代金 L$ [AMOUNT] を支払えませんでした。
-
-
- [ITEM] 向け
-
-
- 土地区画のため
-
-
- 土地の入場許可を得るため
-
-
- 土地を譲渡するため
-
-
- グループを作成するため
-
-
- グループに参加するため
-
-
- アップロードするため
-
-
- クラシファイド広告を掲載する
-
-
- L$[AMOUNT] を渡します
-
-
- アップロード料金は L$[AMOUNT] です
-
-
- 料金は L$[AMOUNT] です
-
-
- 選択した土地を L$ [AMOUNT] で購入します
-
-
- このオブジェクトは L$[AMOUNT] です
-
-
- 全員
-
-
- オフィサー
-
-
- オーナー
-
-
- オンライン
-
-
- アップロード中...
-
-嫌がらせの報告
-
-
- 新しいシェイプ
-
-
- 新しいスキン
-
-
- 新しい髪
-
-
- 新しい目
-
-
- 新しいシャツ
-
-
- 新しいパンツ
-
-
- 新しい靴
-
-
- 新しい靴下
-
-
- 新しいジャケット
-
-
- 新しい手袋
-
-
- 新しい下着(上)
-
-
- 新しい下着(下)
-
-
- 新しいスカート
-
-
- 新しいアルファ
-
-
- 新しいタトゥ
-
-
- 新規の物理作用
-
-
- 無効な着用物
-
-
- ジェスチャー
-
-
- 新規スクリプト
-
-
- ノート
-
-
- 新規フォルダ
-
-
- コンテンツ
-
-
- ジェスチャー
-
-
- 男性用ジェスチャー
-
-
- 女性用ジェスチャー
-
-
- その他のジェスチャー
-
-
- 会話ジェスチャー
-
-
- 一般的ジェスチャー
-
-
- 男性 - すみません
-
-
- 男性 - Get lost
-
-
- 男性 - 投げキッス
-
-
- 男性 - Boo
-
-
- 男性 - 退屈
-
-
- 男性 - Hey
-
-
- 男性 - 笑う
-
-
- 男性 - 拒絶
-
-
- 男性 - 肩をすくめる
-
-
- 男性 - 舌を出す
-
-
- 男性 - Wow
-
-
- 女性 – クスクス
-
-
- 女性 – 泣く
-
-
- 女性 – 恥ずかしい
-
-
- 女性 – すみません
-
-
- 女性 – あっち行ってよ
-
-
- 女性 - 投げキッス
-
-
- 女性 – ワッ!
-
-
- 女性 - 退屈
-
-
- 女性 - Hey
-
-
- 女性 – ヘイ、ベィビー!
-
-
- 女性 - 笑う
-
-
- 女性 – いい感じ
-
-
- 女性 – こっちよ
-
-
- 女性 – プリーズ
-
-
- 女性 - 拒絶
-
-
- 女性 - 肩をすくめる
-
-
- 女性 - 舌を出す
-
-
- 女性 - Wow
-
-
- /おじぎする
-
-
- /拍手
-
-
- /数える
-
-
- /消す
-
-
- /くそくらえ
-
-
- /筋肉もりもり
-
-
- /いいえ
-
-
- /だめ!
-
-
- /パー
-
-
- /自分を指差す
-
-
- /相手を指差す
-
-
- /グー
-
-
- /チョキ
-
-
- /タバコを吸う
-
-
- /伸びをする
-
-
- /口笛を吹く
-
-
- /はい
-
-
- /イエス!
-
-
- 一時退席中
-
-
- ダンス1
-
-
- ダンス2
-
-
- ダンス3
-
-
- ダンス4
-
-
- ダンス5
-
-
- ダンス6
-
-
- ダンス7
-
-
- ダンス8
-
-
- [year,datetime,slt]/[mthnum,datetime,slt]/[day,datetime,slt]
-
-
- なし/なし
-
-
- [WIDTH]*[HEIGHT] 以上の画像は読み込めません
-
-
-
- 大変申し訳ございませんが、予期しない問題が発生しました。
-
- サービスに関する既知の問題については、status.secondlifegrid.net をご覧ください。
-問題が引き続き発生する場合は、お使いのネットワークやファイアウォールの設定を調べてください。
-
-
- 日曜日:月曜日:火曜日:水曜日:木曜日:金曜日:土曜日
-
-
- 日:月:火:水:木:金:土
-
-
- 1月:2月:3月:4月:5月:6月:7月:8月:9月:10月:11月:12月
-
-
- 1月:2月:3月:4月:5月:6月:7月:8月:9月:10月:11月:12月
-
-
- [MDAY]
-
-
- AM
-
-
- PM
-
-
- US$ [AMOUNT]
-
-
- 会員
-
-
- 役割
-
-
- グループの識別情報
-
-
- 区画の管理
-
-
- 区画の識別情報
-
-
- 区画の設定
-
-
- 区画の権限
-
-
- 区画へのアクセス
-
-
- 区画のコンテンツ
-
-
- オブジェクトの管理
-
-
- 会計
-
-
- 通知
-
-
- チャット
-
-
- 選択したアイテムを削除しますか
-
-
- 選択したアイテムを削除しますか
-
-
- このアウトフィットにはアイテムがありません
-
-
- ExternalEditor 設定を使ってエディターを選択します。
-
-
- 指定された外部エディターが見つかりません。
-エディターへのパスを二重引用符で囲んでみてください。
-(例:"/path to my/editor" "%s")
-
-
- 外部エディターのコマンドの解析中にエラーが見つかりました。
-
-
- 外部エディターを実行できませんでした。
-
-
- 翻訳できませんでした:[REASON]
-
-
- 翻訳の応答にエラーが発生しました。
-
-
- Esc
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- ホーム
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- 追加
-
-
- 減算
-
-
- 乗算
-
-
- 除算
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- パーティクル源ビーコン(青)を表示中
-
-
- 物理的オブジェクトのビーコン(緑)を表示中
-
-
- スクリプトのオブジェクトのビーコン(赤)を表示中
-
-
- タッチ機能のビーコンが付いたスクリプトのオブジェクト(赤)を表示中
-
-
- サウンドビーコン(黄)を表示中
-
-
- メディアビーコン(白)を表示中
-
-
- パーティクルを非表示
-
-
- 土地情報
-
-
- 容姿
-
-
- アバター
-
-
- 制作
-
-
- チャット
-
-
- コンパス
-
-
- 行き先
-
-
- ジェスチャー
-
-
- ハウツー
-
-
- インベントリ
-
-
- 地図
-
-
- マーケットプレイス
-
-
- ミニマップ
-
-
- 歩行 / 走行 / 飛行
-
-
- マーチャントアウトボックス
-
-
- 人
-
-
- ピック
-
-
- 場所
-
-
- 環境設定
-
-
- プロフィール
-
-
- 検索
-
-
- スナップショット
-
-
- 話す
-
-
- カメラコントロール
-
-
- ボイス設定
-
-
- 訪問先に関する情報
-
-
- アバターを変更
-
-
- アバター一式を選択
-
-
- オブジェクトの制作と地形の変形
-
-
- 近くの人と文字チャットする
-
-
- コンパス
-
-
- 行ってみたい場所
-
-
- アバターのジェスチャー
-
-
- 一般的タスクの実行方法
-
-
- インベントリを表示・使用
-
-
- 世界地図
-
-
- ショッピングに出掛ける
-
-
- 近くの人を表示する
-
-
- アバターの移動
-
-
- 販売用にアイテムをマーケットプレイスに転送
-
-
- フレンド、グループ、近くの人
-
-
- プロフィールで紹介するお気に入りの場所
-
-
- 保存済みの場所
-
-
- 環境設定
-
-
- プロフィールを編集・表示
-
-
- 場所、イベント、人を検索
-
-
- ピクチャを撮る
-
-
- マイクを使って近くの人と話す
-
-
- カメラの角度を変更
-
-
- インワールドでのコールや近くにいる人の音量調整
-
-
- 現在、下のツールバーにあります
-
-
- 現在、左のツールバーにあります
-
-
- 現在、右のツールバーにあります
-
-
- 維持率
-
-
- 詳細
-
-
- もっと詳しく
-
-
- 表面
-
-
- ソリッド
-
-
- ラップ
-
-
- プレビュー
-
-
- 普通
-
-
- 非常に低い
-
-
- 低
-
-
- 中
-
-
- 高
-
-
- 非常に高い
-
-
diff --git a/indra/newview/skins/steam/xui/pl/strings.xml b/indra/newview/skins/steam/xui/pl/strings.xml
deleted file mode 100644
index f6dec8536b..0000000000
--- a/indra/newview/skins/steam/xui/pl/strings.xml
+++ /dev/null
@@ -1,4340 +0,0 @@
-
-
-
-
- SECOND LIFE
-
-
- Portal Pomocy Second Life
-
-
- Wykrywanie dysku twardego...
-
-
- Ładowanie [APP_NAME]...
-
-
- Czyszczenie bufora danych...
-
-
- Inicjowanie bufora danych tekstur...
-
-
- Inicjowanie VFS...
-
-
- Przywracanie...
-
-
- Zmiana rozdzielczości...
-
-
- Trwa logowanie. [APP_NAME] Proszę czekać.
-
-
- Logowanie...
-
-
- Autoryzacja
-
-
- W trakcie obslugi konta...
-
-
- Poprzednie logowanie nie udalo się. Logowanie, próba numer [NUMBER]
-
-
- Ładowanie świata...
-
-
- Inicjalizacja przeglądarki internetowej...
-
-
- Inicjalizacja multimediów...
-
-
- Ładowanie czcionek...
-
-
- Weryfikacja bufora danych na dysku (może trwać od 60 do 90 sekund)...
-
-
- Przetwarzanie odpowiedzi...
-
-
- Inicjacja świata...
-
-
- Przetwarzanie obrazów...
-
-
- Inicjacja QuickTime...
-
-
- QuickTime nie został znaleziony - inicjacja przerwana.
-
-
- QuickTime zainicjowany.
-
-
- Oczekiwanie na połączenie z regionem...
-
-
- Łączenie z regionem...
-
-
- Ładowanie ubrania...
-
-
- Serwer zwrócił nieważny lub zniekształcony certyfikat. Proszę skontaktuj się z administratorem Grida.
-
-
- Nazwa hosta jest nieważna, proszę sprawdź SLURL lub nazwę hosta Grida.
-
-
- Termin ważności certyfikatu zwróconego przez Grid minął. Proszę sprawdzić swój zegar systemowy lub skontaktować się z administratorem Grida.
-
-
- Certyfikat zwrócony przez serwer nie może być użyty dla SSL. Proszę skontaktuj się z administratorem Grida.
-
-
- Zbyt wiele certyfikatów w łańcuchu certyfikatów serwera. Proszę skontaktować się z administratorem Grida.
-
-
- Podpis certyfikatu zwrócony przez Grid nie mógł zostać zweryfikowany. Proszę skontaktować się z administratorem Grida.
-
-
- Błąd sieci: Brak połączenia z siecią, sprawdź status swojego połączenia internetowego.
-
-
- Logowanie nie powiodło się.
-
-
- Wyłącz program
-
-
- Ten region może mieć problemy. Sprawdź podłączenie do Internetu.
-
-
- Zachowanie ustawień...
-
-
- Trwa wylogowanie...
-
-
- Zamykanie...
-
-
- Nastąpiło rozłączenie z regionem.
-
-
- Region jest niedostępny.
-
-
- Nastąpiło rozłączenie testowania klienta
-
-
- Osoba
-
-
- (brak nazwy)
-
-
- Właściciel:
-
-
- Publiczny
-
-
- (Grupa)
-
-
- Na sprzedaż: L$[AMOUNT]
-
-
- Budowanie grupowe
-
-
- Budowanie zabronione
-
-
- Edycja zabroniona
-
-
- Niebezpieczny obszar
-
-
- Latanie zabronione
-
-
- Skrypty grupowe
-
-
- Skrypty zabronione
-
-
- Posiadłość:
-
-
- Tylko pojedynczy obiekt może być tutaj przeciągnięty
-
-
-
- Kliknij aby zobaczyć zawartość tej strony internetowej
-
-
- Kliknij aby zobaczyć szczegóły tego miejsca
-
-
- Kliknij aby zobaczyc profil Rezydenta
-
-
- Dowiedz się więcej o tym Rezydencie
-
-
- Kliknij aby wyciszyc tego Rezydenta
-
-
- Kliknij aby cofnąć zablokowanie tego Rezydenta
-
-
- Kliknij aby wysłać wiadomość IM do tego Rezydenta
-
-
- Kliknij aby zapłacić temu Rezydentowi
-
-
- Kliknij aby oferować teleport temu Rezydentowi
-
-
- Kliknij aby wysłać temu Rezydentowi zaproszenie do Znajomych
-
-
- Kliknij aby zobaczyć opis tej grupy
-
-
- Klinij aby zobaczyć szczegóły tego wydarzenia
-
-
- Kliknij aby zobaczyć tę reklamę
-
-
- Kliknij aby zobaczyć opis tej posiadłości
-
-
- Kliknij aby teleportować się do tego miejsca
-
-
- Kliknij aby zobaczyć opis tego obiektu
-
-
- Kliknij aby zobaczyć to miejsce na mapie
-
-
- Kliknij aby uruchomić secondlife:// command
-
-
-
- Teleportuj do
-
-
- Pokaż na mapie
-
-
- Zablokuj
-
-
- Cofnij zablokowanie
-
-
- IM
-
-
- Zapłać
-
-
- Teleportuj do
-
-
- Oferta znajomości
-
-
- Zamknij (⌘W)
-
-
- Zamknij (Ctrl+W)
-
-
- Zamknij
-
-
- Odzyskaj
-
-
- Minimalizuj
-
-
- Oderwij
-
-
- Przyłącz
-
-
- Pokaż Pomoc
-
-
- Wyszukiwanie...
-
-
- Nie odnaleziono.
-
-
- Odzyskiwanie danych...
-
-
- O tej wersji
-
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- Ładowanie danych...
-
-
- (brak danych)
-
-
- (ładowanie)
-
-
- (brak danych)
-
-
- Avaline [ORDER]
-
-
- OK
-
-
- Pobieranie danych: błąd
-
-
- Pobieranie danych: brak pliku
-
-
- Pobieranie danych: dane nie zostały znalezione w bazie danych
-
-
- Koniec pliku
-
-
- Nie można otworzyć pliku
-
-
- Brak pliku
-
-
- Transfer pliku - przekroczony limit czasu
-
-
- Połączenie przerwane
-
-
- Brak zgodności pomiędzy serwerem i klientem na realizację podanej ceny.
-
-
- Status nieznany
-
-
- tekstury
-
-
- dźwięku
-
-
- wizytówki
-
-
- ulubionego miejsca
-
-
- skryptu
-
-
- ubrania
-
-
- obiek
-
-
- notatki
-
-
- folder
-
-
- podstawy
-
-
- skrypt LSL2
-
-
- kod LSL
-
-
- tekstury typu tga
-
-
- części ciała
-
-
- zdjęcia
-
-
- Zgubione i odnalezione
-
-
- obraz typu targa
-
-
- Kosz
-
-
- obraz typu jpg
-
-
- animacja
-
-
- gesturka
-
-
- simstate
-
-
- ulubione
-
-
- link
-
-
- link folderu
-
-
- (Edycja Wygląd)
-
-
- Śpi
-
-
- Pracuje
-
-
- Wyciszony
-
-
- Strach
-
-
- Złość
-
-
- Sen
-
-
- Salto
-
-
- Śmiech do rozpuku
-
-
- Wielki uśmiech
-
-
- Całusek
-
-
- Ale nudy!
-
-
- Ukłon
-
-
- Oklaski
-
-
- Dworski ukłon
-
-
- Płacz
-
-
- Taniec 1
-
-
- Taniec 2
-
-
- Taniec 3
-
-
- Taniec 4
-
-
- Taniec 5
-
-
- Taniec 6
-
-
- Taniec 7
-
-
- Taniec 8
-
-
- Pogarda
-
-
- Picie
-
-
- Zakłopotanie
-
-
- Grożenie paluszkiem
-
-
- Udało się!
-
-
- Yoga
-
-
- Grymas
-
-
- Niecierpliwość
-
-
- Radocha
-
-
- Pocałuj mnie gdzieś
-
-
- Pocałunek
-
-
- Śmiech
-
-
- Szpan
-
-
- Nie (Smutno)
-
-
- Nie
-
-
- Nie-nie-nie
-
-
- Za ciosem cios
-
-
- Szczęka opada
-
-
- Pokój
-
-
- Wskazuj na innych
-
-
- Wskazuj na siebie
-
-
- Uderz z lewej
-
-
- Uderz z prawej
-
-
- KPN licz
-
-
- KPN papier
-
-
- KPN kamień
-
-
- KPN nożyce
-
-
- Odrzuca mnie
-
-
- Kopniak
-
-
- Smutek
-
-
- Pozdrów
-
-
- Krzycz
-
-
- Wzrusz ramionami
-
-
- Uśmiechaj się
-
-
- Pal
-
-
- Pal i zaciągaj się
-
-
- Rzuć papierosa
-
-
- Zaskoczenie
-
-
- Uderz mieczem
-
-
- Wściekłość
-
-
- Pokaż język
-
-
- Pomachaj
-
-
- Zaszeptaj
-
-
- Zagwiżdż
-
-
- Puść oko
-
-
- Puść oko (Hollywood)
-
-
- Zmartwienie
-
-
- Tak (Szczęście)
-
-
- Tak
-
-
- Ładowanie...
-
-
- Mapa Świata jest niedostępna
-
-
- [AREA] m² L$[PRICE]
-
-
- Miejsce nieodnalezione.
-
-
- OK
-
-
- Przedwczesna końcówka pliku
-
-
- PODSTAWA lub ŁĄCZNIK nieodnaleziona/y
-
-
- szepcze:
-
-
- krzyczy:
-
-
- Łączenie z rozmowami głosem w Świecie...
-
-
- Połączenie uzyskane.
-
-
- Niestety, rozmowy głosem są niedozwolone w tym miejscu.
-
-
- Połączenie rozmowy utracone.
-
-
- Przełączanie do pobliskich rozmów głosowych
-
-
- '[OBJECTNAME]', właściciel: '[OWNERNAME]', położenie: [REGIONNAME] [REGIONPOS], pozwala Ci na: [PERMISSIONS].
-
-
- '[OBJECTNAME]', właściciel: '[OWNERNAME]', położenie: [REGIONNAME] [REGIONPOS], nie pozwala Ci na: [PERMISSIONS].
-
-
- Zabiera Lindeny (L$) od Ciebie
-
-
- Używaj klawiszy sterowania
-
-
- Zmień klawisze sterowania
-
-
- Animuj Awatara
-
-
- Dołącz do Awatara
-
-
- Usuń prawo własności (zmień na publiczne)
-
-
- Łącz / rozłącz z innymi obiektami
-
-
- Dodaj / usuń połączenia z innymi obiektami
-
-
- Ustaw zezwolenia
-
-
- Chodź za kamerą
-
-
- Kontroluj kamerę
-
-
- 'General'
-
-
- 'Moderate'
-
-
- 'Adult'
-
-
- Niedostępny
-
-
- Nieznany
-
-
- (nieznane)
-
-
- Majątek / Region
-
-
- Estate / Homestead
-
-
- Mainland / Homestead
-
-
- Mainland / Region
-
-
- Wszystkie pliki
-
-
- Dźwięki
-
-
- Animacje
-
-
- Obrazy
-
-
- Zapisz
-
-
- Załaduj
-
-
- Obrazy targa
-
-
- Obrazy bitmap
-
-
- Pliki filmowe AVI
-
-
- Plik animacji XAF
-
-
- Plik XML
-
-
- Plik RAW
-
-
- Obrazy skomprensowane
-
-
- Załaduj pliki
-
-
- Wybierz katalog
-
-
- Ustaw Nie Śpij
-
-
- Śpij
-
-
- Ustawiaj Nie Pracuj
-
-
- Pracuj
-
-
- Kształt
-
-
- Skórka
-
-
- Włosy
-
-
- Oczy
-
-
- Koszulka
-
-
- Spodnie
-
-
- Buty
-
-
- Skarpetki
-
-
- Kurtka
-
-
- Rękawiczki
-
-
- Podkoszulka
-
-
- Bielizna
-
-
- Spódnica
-
-
- Ubranie Alpha
-
-
- Tatuaż
-
-
- Fizyka
-
-
- niewłaściwa funkcja
-
-
- żadne
-
-
- Koszula nie jest założona
-
-
- Spodnie nie są założone
-
-
- Buty nie są założone
-
-
- Skarpetki nie są założone
-
-
- Kurtka nie jest założona
-
-
- Rękawiczki nie są założone
-
-
- Podkoszulek nie jest założony
-
-
- Bielizna nie jest założona
-
-
- Spódnica nie jest założona
-
-
- Alpha nie jest założone
-
-
- Tatuaż nie jest założony
-
-
- Fizyka niezałożona
-
-
- nieważny
-
-
- Nowy kształt
-
-
- Nowa skórka
-
-
- Nowe włosy
-
-
- Nowe oczy
-
-
- Nowa koszula
-
-
- Nowe spodnie
-
-
- Nowe buty
-
-
- Nowe skarpetki
-
-
- Nowa kurtka
-
-
- Nowe rękawiczki
-
-
- Nowy podkoszulek
-
-
- Nowa bielizna
-
-
- Nowa spódnica
-
-
- Nowe alpha
-
-
- Nowy tatuaż
-
-
- Stwórz nową fizykę
-
-
- nieważny
-
-
- Nowa [WEARABLE_ITEM]
-
-
- Następne
-
-
- OK
-
-
- Ogłoszenie grupowe
-
-
- Ogłoszenia grupowe
-
-
- Wysłane przez
-
-
- Załączone:
-
-
- Zobacz poprzednie zawiadomienia lub otrzymane wiadomości tutaj.
-
-
- Otwórz załącznik
-
-
- Zapisz załącznik
-
-
- Oferta teleportacji
-
-
- Nowe zawiadomienia zostały wysłane kiedy byłeś/byłaś w trybie oddalenia...
-
-
- Masz jeszcze [%d] powiadomień
-
-
- Prawe ramię
-
-
- Głowa
-
-
- Lewe ramię
-
-
- Lewa noga
-
-
- Tułów
-
-
- Prawa noga
-
-
- Niska
-
-
- Średnia
-
-
- Wysoka
-
-
- Wybierz ESC aby powrócić do trybu widoku normalnego
-
-
- Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Szukaj].
-
-
- Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/places/[SEARCH_TERM] Szukaj].
-
-
- Przeciągnij landmark tutaj aby dodać go do swoich ulubionych.
-
-
- Nie posiadasz kopii tej tekstury w Twojej Szafie.
-
-
-
-
-
-
-
-
- Ładowanie zawartości...
-
-
- Brak zawartości
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Moja Szafa
-
-
- Biblioteka
-
-
- Tekstury
-
-
- Dźwięki
-
-
- Wizytówki
-
-
- Landmarki
-
-
- Skrypty
-
-
- Ubrania
-
-
- Obiekty
-
-
- Noty
-
-
- Nowy folder
-
-
- Szafa
-
-
- Nieskompresowane obrazy
-
-
- Części ciała
-
-
- Kosz
-
-
- Album ze zdjęciami
-
-
- Zagubione i odnalezione
-
-
- Nieskompresowane dźwięki
-
-
- Animacje
-
-
- Gesturki
-
-
- Moje ulubione
-
-
- Moje ulubione
-
-
- Obecny strój
-
-
- Początkowe stroje
-
-
- Moje stroje
-
-
- Akcesoria
-
-
- Znajomi
-
-
- Wszystkie
-
-
- Kup
-
-
- Kup za L$
-
-
- Kamień
-
-
- Metal
-
-
- Szkło
-
-
- Drewno
-
-
- Tkanka
-
-
- Plastik
-
-
- Guma
-
-
- Lekkie
-
-
- Shift
-
-
- Ctrl
-
-
- Klatka piersiowa
-
-
- Czaszka
-
-
- Lewe ramię
-
-
- Prawe ramię
-
-
- Lewa dłoń
-
-
- Prawa dłoń
-
-
- Lewa stopa
-
-
- Prawa stopa
-
-
- Kręgosłup
-
-
- Miednica
-
-
- Usta
-
-
- Szczęka
-
-
- Lewe ucho
-
-
- Prawe ucho
-
-
- Lewe oko
-
-
- Prawe oko
-
-
- Nos
-
-
- P Ramię
-
-
- P przedramię
-
-
- L ramię
-
-
- L przedramię
-
-
- Prawe biodro
-
-
- P udo
-
-
- P dolna noga
-
-
- Lewe biodro
-
-
- L udo
-
-
- L dolna noga
-
-
- Brzuch
-
-
- Lewy Pec
-
-
- Prawy Pec
-
-
- Nieważny punkt załącznika
-
-
- [AGEYEARS] [AGEMONTHS]
-
-
- [AGEYEARS]
-
-
- [AGEMONTHS]
-
-
- [AGEWEEKS]
-
-
- [AGEDAYS]
-
-
- Dołączył dzisiaj
-
-
- [COUNT] rok
-
-
- [COUNT] lat
-
-
- [COUNT] lat
-
-
- [COUNT] miesiąc
-
-
- [COUNT] miesięcy
-
-
- [COUNT] miesięcy
-
-
- [COUNT] tydzień
-
-
- [COUNT] tygodni
-
-
- [COUNT] tygodni
-
-
- [COUNT] dzień
-
-
- [COUNT] dni
-
-
- [COUNT] dni
-
-
- [COUNT] członek
-
-
- [COUNT] członków
-
-
- [COUNT] członków
-
-
- Rezydent
-
-
- Proces
-
-
- Wyróżniony członek
-
-
- Pracownik Linden Lab
-
-
- Dane konta używane
-
-
- Dane płatnicze na koncie
-
-
- Brak danych na koncie
-
-
- Weryfikacja wieku przeprowadzona
-
-
- Brak weryfikacji wieku
-
-
- Środek 2
-
-
- Prawa góra
-
-
- Góra
-
-
- Lewa góra
-
-
- Środek
-
-
- Lewy dół
-
-
- Dół
-
-
- Prawy dół
-
-
- Pobieranie zakończone, rozpoczęcie kompilacji
-
-
- Skrypt nie został odnaleziony na serwerze.
-
-
- Problem z pobieraniem
-
-
- Brak odpowiedniej zgody do pobrania skryptu.
-
-
- Brak odpowiedniej zgody dla
-
-
- Nieznany błąd podczas próby pobierania
-
-
- Postęp rekompilacji
-
-
- rekompiluj
-
-
- Zresetuj
-
-
- zresetuj
-
-
- Ustaw uruchomiaj progres
-
-
- ustaw uruchom
-
-
- Ustaw nie uruchamiaj progres
-
-
- ustaw nie uruchamiaj
-
-
- Kompliacja zakończona pomyślnie!
-
-
- Komplilacja zakończona pomyślnie, zapisywanie...
-
-
- Zapisywanie zakończone.
-
-
- Skrypt (obiekt poza zasięgiem)
-
-
- Obiekt [OBJECT] należący do [OWNER]
-
-
- żadne
-
-
-
- (nieznane)
-
-
-
-
-
-
- Stan
-
-
- Kredyty
-
-
- Debet
-
-
- Suma
-
-
- Brak informacji na temat podanej grupy
-
-
- parent estate
-
-
- główny
-
-
- dla niepełnoletnich
-
-
- błąd
-
-
- wszystkie majątki, które są własnością [OWNER]
-
-
- wszystkie majątki, które posiadasz
-
-
- wszystkie majątki, które nadzorujesz dla [OWNER]
-
-
- Dozwoleni Rezydenci: ([ALLOWEDAGENTS], maks. [MAXACCESS])
-
-
- Grupy mające dostęp: ([ALLOWEDGROUPS], max [MAXACCESS])
-
-
- Pamięć skryptów Posiadłości
-
-
- Posiadłości: [PARCELS]
-
-
- Pamięć wykorzystana: [COUNT] kb z [MAX] kb; [AVAILABLE] kb pozostało
-
-
- Pamięć wykorzystana: [COUNT] kb
-
-
- Skrypty URL Posiadłości
-
-
- URL: [COUNT] z [MAX]; [AVAILABLE] dostępne
-
-
- URL: [COUNT]
-
-
- Błąd wyszukiwania informacji
-
-
- Posiadłość nie została wybrana
-
-
- Błąd: informacja o skrypcie jest dostępna tylko w obecnym regionie.
-
-
- Wyszukiwanie informacji...
-
-
- Nie masz pozwolenia na sprawdzenie pasiadłości.
-
-
- Usiądź na
-
-
- Klatka piersiowa
-
-
- Głowa
-
-
- Lewe ramię
-
-
- Prawe ramię
-
-
- Lewa ręka
-
-
- Prawa ręka
-
-
- Lewa stopa
-
-
- Prawa stopa
-
-
- Plecy
-
-
- Miednica
-
-
- Usta
-
-
- Podbródek
-
-
- Ucho lewe
-
-
- Prawe ucho
-
-
- Lewe oko
-
-
- Prawe oko
-
-
- Nos
-
-
- Prawe górne ramię
-
-
- Prawe dolne ramię
-
-
- Ramię L Górne
-
-
- Lewe dolne ramię
-
-
- Biodro prawe
-
-
- Prawa górna noga
-
-
- Prawa dolna noga
-
-
- Biodro lewe
-
-
- Lewa gorna noga
-
-
- Lewa dolna noga
-
-
- Brzuch
-
-
- Prawa klatka
-
-
- Lewa klatka
-
-
- HUD środek 2
-
-
- HUD prawy górny
-
-
- HUD środek górny
-
-
- HUD lewa gora
-
-
- HUD środek 1
-
-
- HUD lewa dolna strona
-
-
- HUD dolny
-
-
- HUD prawa dolna strona
-
-
- Linia [LINE], Kolumna [COLUMN]
-
-
- [COUNT] odnalezionych
-
-
- Zawartość obiektu
-
-
- Nowy skrypt
-
-
- Rezydent, do którego wysłałeś wiadomość prywatną znajduje się w trybie pracy. Oznacza to, iż Twoja wiadomość zostanie zapisana do przejrzenia poźniej.
-
-
- (Nazwa)
-
-
- (Rezydent)
-
-
- (Obiekt)
-
-
- (Grupę)
-
-
- (Zewnętrzne)
-
-
- Brak umowy dla tego majątku.
-
-
- Brak umowy dla tego majątku. Każda posiadłość w tym majątku została sprzedana przez właściciela majątku nie Linden Lab. Skontaktuj się z właścicielem majątku w celu uzuskania szczegółów sprzedaży.
-
-
-
-
-
- Własność grupy
-
-
- Publiczny
-
-
- Kliknij: [TELEPORT] teleportuj, [MAP] mapa, [PROFILE] profil
-
-
- (zostanie zaktualizowane po publikacji)
-
-
- Nie dodałeś nic do Ulubionych i Reklam. Kliknij na poniższy przycisk Dodaj aby dodać miejsce do Ulubionych lub Reklamy.
-
-
- Brak ulubionych miejsc/reklam
-
-
- Ładowanie...
-
-
- Podgląd
-
-
- Właściwości
-
-
- Obiekt o nazwie
-
-
- należacy do grupy
-
-
- należący do nieznanej grupy
-
-
- należy do
-
-
- należący do nieznanego właściciela
-
-
- oddany Tobie
-
-
- Odrzucono [DESC] od <nolink>[NAME]</nolink>.
-
-
- Suma
-
-
- zakupione
-
-
- zapłać sobie
-
-
- zapłać do
-
-
- kup dostęp do
-
-
- zapłać opłatę za wydarzenie
-
-
- zapłać za wydarzenia
-
-
- Stan
-
-
- Kredyty
-
-
- Debet
-
-
- Zawartość
-
-
- Zdobyte obiekty
-
-
- Anuluj
-
-
- Załadowanie [NAME] kosztuje [AMOUNT]L$
-
-
- Cena zakupu tego wynosi L$ [AMOUNT]
-
-
- Nieznane rozszerzenie dla pliku [.%s]
-Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
-
-
- Zablokuj
-
-
- Dodaj Ulubione Miejsce...
-
-
- Edytuj Ulubione Miejce...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Shift+
-
-
- Zapisane pliki
-
-
- Otrzymane
-
-
- AM
-
-
- PM
-
-
- PST
-
-
- PDT
-
-
- Do przodu
-
-
- Lewo
-
-
- Prawo
-
-
- Wstecz
-
-
- Północ
-
-
- Południe
-
-
- Zachód
-
-
- Wschód
-
-
- W górę
-
-
- W dół
-
-
- Każda Kategoria
-
-
- Zakupy
-
-
- Wynajem ziemi
-
-
- Wynajem Posiadłości
-
-
- Specjalne Oferty
-
-
- Nowe produkty
-
-
- Praca
-
-
- Poszukiwane
-
-
- Serwis
-
-
- Personalne
-
-
- Żadne
-
-
- Linden Lokalizacja
-
-
- 'Adult'
-
-
- Sztuka i Kultura
-
-
- Biznes
-
-
- Edukacyjna
-
-
- Gra
-
-
- Poznawanie ludzi
-
-
- Przyjazne dla nowych
-
-
- Parki i Natura
-
-
- Mieszkalna
-
-
- Scena
-
-
- Inna
-
-
- Wynajem
-
-
- Jakiekolwiek
-
-
- Ty
-
-
- Multimedia
-
-
- Uruchom/Zatrzymaj media
-
-
- Podczas realizacji podanej komendy, wystąpił błąd.
-Prosimy odwiedzić stronę internetową: http://wiki.secondlife.com/wiki/Client_parameters
-Błąd:
-
-
- [APP_NAME] zastosowana komenda:
-
-
- 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 uruchomionuch aplikacji.
-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ę.
-
-
- Błąd krytyczny
-
-
- Aplikacja [APP_NAME] wymaga procesora z AltiVec (wersja G4 lub starsza).
-
-
- Aplikacja [APP_NAME] została już uruchomiona.
-Sprawdź czy Twój pasek aplikacji nie ma zminimalizowanych okien programu.
-Jeżeli nadal otrzymujesz ten komunikat, uruchom swój komputer ponownie.
-
-
- Aplikacja [APP_NAME] znajduje się w trybie zatrzymania lub zawieszenia po poprzedniej próbie uruchomienia.
-Czy chcesz wysłać raport na temat zawieszenia?
-
-
- Powiadomienie
-
-
- Aplikacja [APP_NAME] nie wykryła oprogramowania DirectX 9.0b lub wersji nowszej.
-[APP_NAME] używa oprogramowaniau DirectX w celu wykrycia dysku twardego i/lub nieaktualizowanych dysków twardych, które mogą przyczynić się do obniżenia stabilności, wydajności systemowej oraz zawieszeń. Jeżeli chcesz uruchomić aplikację [APP_NAME] bez problemów, doradzamy korzystanie z uruchomionym oprogramowaniem min. DirectX 9.0b.
-
-Czy chcesz kontynuować?
-
-
- Ostrzeżenie
-
-
- Automatyczna aktualizacja nie została jeszcze zaimplementowana dla platformy Linux.
-Prosimy o pobranie najnowszej wersji ze strony internetowej: www.secondlife.com.
-
-
- błąd rejestru
-
-
- Błąd
-
-
- Nie można uruchomić trybu pełnoekranowego w proporcji [WIDTH] x [HEIGHT].
-Uruchomione w oknie.
-
-
- Błąd w próbie wyłączenia podczas zamykania okna (DestroyWindow() failed)
-
-
- Błąd w próbie wyłączenia
-
-
- Brak możliwości stworzenia zawartości GL dla sterownika
-
-
- Brak odnalezienia właściwego formatu pikselowego
-
-
- Brak otrzymania formatu pikselowego opisu
-
-
- Aplikacja [APP_NAME] wymaga ustawienia koloru na (32-bit) do uruchomienia.
-Sprawdź swoje ustawienia dla wyświetlacza i ustaw tryb koloru na 32-bity.
-
-
- Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ nie jest możliwe dostanie się na kanał 8 bitowy alpha. Najcześ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 Panelu Kontroli > Display > Ustawienia.
-Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
-
-
- Brak ustawienie formatu pikselowego
-
-
- Brak możliwości stworzenia renderowania zawartości GL
-
-
- Brak aktywacji renderowania zawartości GL
-
-
- Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ Twoja karta video jest niepoprawnie zainstalowana, nieaktualizowana lub przeznaczona jest dla innego rodzaju dysków twardych. Upewnij się, że Twoja karta video została zaktualizowana poprawnie lub spróbuj zainstalować ponownie.
-
-Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
-
-
- Cień o godzinie 5
-
-
- Wszystko białe
-
-
- Animuj oczy
-
-
- Obrócony
-
-
- Długość ramienia
-
-
- Dołączone
-
-
- Płatki uszu dołączone
-
-
- Tylnia grzywka
-
-
- Wypchane
-
-
- Pasemka
-
-
- Oczy załzawione
-
-
- Rozmiar brzucha
-
-
- Duży
-
-
- Duży pośladek
-
-
- Duże włosy: z tyłu
-
-
- Duże włosy: z przodu
-
-
- Duże włosy: z góry
-
-
- Duża głowa
-
-
- Duże mięśnie piersiowe
-
-
- Duże kolce
-
-
- Czarne
-
-
- Blond
-
-
- Włosy blond
-
-
- Rumieniec
-
-
- Kolor rumieńca
-
-
- Intensywność rumieńca
-
-
- Detale ciała
-
-
- Zawartość tkanki tłuszczowej
-
-
- Piegi
-
-
- Zagęszczenie ciała
-
-
- Grubość ciała
-
-
- Szczupłość
-
-
- Bow Legged
-
-
- Jędrność piersi
-
-
- Odstęp między piersiami
-
-
- Rozmiar piersi
-
-
- Szerokość
-
-
- Szerokie
-
-
- Rozmiar czoła
-
-
- Wytrzeszcz oczu
-
-
- Wytrzeszczone oczy
-
-
- Bulwiasty
-
-
- Bulwiasty nos
-
-
- Masa piersi
-
-
- Wygładzanie piersi
-
-
- Grawitacja piersi
-
-
- Ściśnięcie piersi
-
-
- Efekt max
-
-
- Sprężystość
-
-
- Wzmocnienie
-
-
- Tłumienie
-
-
- Efekt max
-
-
- Sprężystość
-
-
- Wzmocnienie
-
-
- Tłumienie
-
-
- Efekt max
-
-
- Sprężystość
-
-
- Wzmocnienie
-
-
- Tłumienie
-
-
- Masa brzucha
-
-
- Wygładzanie brzucha
-
-
- Grawitacja brzucha
-
-
- Ściśnięcie brzucha
-
-
- Efekt max
-
-
- Sprężystość
-
-
- Wzmocnienie
-
-
- Tłumienie
-
-
- Masa pośladków
-
-
- Wygładzanie pośladków
-
-
- Grawitacja pośladków
-
-
- Ściśnięcie pośladków
-
-
- Efekt max
-
-
- Sprężystość
-
-
- Wzmocnienie
-
-
- Tłumienie
-
-
- Efekt max
-
-
- Sprężystość
-
-
- Wzmocnienie
-
-
- Tłumienie
-
-
- Bujne brwi
-
-
- Bujne włosy
-
-
- Rozmiar pośladków
-
-
- Grawitacja pośladków
-
-
- Bustle Skirt
-
-
- No Bustle
-
-
- More Bustle
-
-
- Chaplin
-
-
- Kości policzkowe
-
-
- Rozmiar klatki piersiowej
-
-
- Kąt podbródka
-
-
- Dołek w podbródku
-
-
- Zasłonięcie podbródka
-
-
- Długość podbródka
-
-
- Ciężar podbródka
-
-
- Podbródek wewnątrz
-
-
- Podbródek zewnętrzny
-
-
- Podwójny podbródek
-
-
- Wyczyść
-
-
- Rozszczepienie
-
-
- Oczy blisko ustawione
-
-
- Zamknięte
-
-
- Zamknięte z tyłu
-
-
- Zamknięte z przodu
-
-
- Lewe oko zamknięte
-
-
- Prawe oko zamknięte
-
-
- Coin Purse
-
-
- Kołnierz z tyłu
-
-
- Kołnierz z przodu
-
-
- Kącik w dół
-
-
- Kącik w górę
-
-
- Pognieciony
-
-
- Skrzywienie nosa
-
-
- Szeroki rękaw
-
-
- Ciemne
-
-
- Ciemne zielone
-
-
- Ciemniejsze
-
-
- Glębokie
-
-
- Domyślne buty na obcasie
-
-
- Gęstość
-
-
- Podwójny podbródek
-
-
- Downturned
-
-
- Duffle Bag
-
-
- Odstawanie uszu
-
-
- Rozmiar uszu
-
-
- Wierzchołki uszu
-
-
- Jajowata głowa
-
-
- Woreczek łzowy
-
-
- Kolor oczu
-
-
- Głębokość osadzenia oczu
-
-
- Ustawienie jasności oczu
-
-
- Oczy otwarte
-
-
- Różnica w wielkości oczu
-
-
- Rozmiar oczu
-
-
- Rozstaw oczu
-
-
- Łuk brwiowy
-
-
- Gęstość brwi
-
-
- Wysokość brwi
-
-
- Kształt brwi
-
-
- Rozmiar brwi
-
-
- Długość rzęs
-
-
- Kredka do oczu
-
-
- Kolor kredki do oczu'a
-
-
- Wytrzeszczone oczy
-
-
- Usunięcie twarzy
-
-
- Detale twarzy
-
-
- Oczy szeroko rozstawione
-
-
- Grube usta
-
-
- Kobieta
-
-
- Bez palców
-
-
- Palce
-
-
- Rozszerzane rękawy
-
-
- Płaskość
-
-
- Płaskie pośladki
-
-
- Płaska głowa
-
-
- Płaski palec
-
-
- Rozmiar stopy
-
-
- Kształt czoła
-
-
- Ciężar czoła
-
-
- Piegi
-
-
- Przednia grzywka
-
-
- Gęstość włosów po bokach
-
-
- Gęsta kredka do oczu
-
-
- Gęsty przód
-
-
- Gęste włosy po bokach
-
-
- Gęste boki
-
-
- Błyszczące
-
-
- Rękawiczki
-
-
- Długość rękawiczek
-
-
- Włosy
-
-
- Włosy: z tyłu
-
-
- Włosy: z przodu
-
-
- Włosy: boki
-
-
- Kierunek zaczesania
-
-
- Grubość włosów
-
-
- Grubość włosów
-
-
- Przes. fryzury
-
-
- Przes. fryzury L
-
-
- Przes. fryzury P
-
-
- Włosy: objętość
-
-
- Rozmiar dłoni
-
-
- Handlebars
-
-
- Długość głowy
-
-
- Kształt głowy
-
-
- Rozmiar głowy
-
-
- Rozciągnięcie głowy
-
-
- Wysokość obcasa
-
-
- Ksztalt obcasa
-
-
- Wysokość
-
-
- Wysoka
-
-
- Wysokie obcasy
-
-
- Wysoka szczęka
-
-
- Wysokie obcasy
-
-
- Wysokie i wąskie
-
-
- Wyżej
-
-
- Długość bioder
-
-
- Szerokość bioder
-
-
- W
-
-
- Wewnętrzny kolor cienia
-
-
- Wewnętrzna intensywność cienia
-
-
- Wewnętrzny bok oka
-
-
- Wewnętrzny cień oka
-
-
- Wewnętrzny cień
-
-
- Długość kurtki
-
-
- Zmarszczki na kurtce
-
-
- Kąt szczęki
-
-
- Wystająca szczęka
-
-
- Kształt szczęki
-
-
- Złącz
-
-
- Dolna część policzka
-
-
- Kąt kolana
-
-
- Iksowate nogi
-
-
- Duże
-
-
- Duże dłonie
-
-
- Lewa część
-
-
- Długość nogi
-
-
- Umięśnione nogi
-
-
- Mniej
-
-
- Mniejsza zawartości tkanki tłuszczowej
-
-
- Less Curtains
-
-
- Mniej piegów
-
-
- Mniej pełne
-
-
- Mniej ciężaru
-
-
- Less Love
-
-
- Mniej mięśni
-
-
- Mniej umięśnienia
-
-
- Mniej zaróżowione
-
-
- Mniej zaaokrąglone
-
-
- Less Saddle
-
-
- Mniej kwadratowe
-
-
- Mniej objętości
-
-
- Less soul
-
-
- Lżejsze
-
-
- Szerokość rozszczepienia górnej wargi
-
-
- Głębokość rozszczepienia górnej wargi
-
-
- Pełne usta
-
-
- Róż ust
-
-
- Proporcje ust
-
-
- Grubość ust
-
-
- Szerokość ust
-
-
- Połysk
-
-
- Szminka
-
-
- Kolor szminki
-
-
- Dlugość
-
-
- Długa głowa
-
-
- Długie biodra
-
-
- Długie nogi
-
-
- Długi kark
-
-
- Długi warkocz
-
-
- Długi kucyk
-
-
- Długi tułów
-
-
- Dlugie ramiona
-
-
- Luźne spodnie
-
-
- Luźna koszulka
-
-
- Luźne rękawy
-
-
- Love Handles
-
-
- Nisko
-
-
- Niskie obcasy
-
-
- Niska szczęka
-
-
- Niskie obcasy
-
-
- Niskie i luźne
-
-
- Niżej
-
-
- Dolny mostek
-
-
- Niższe policzki
-
-
- Mężczyzna
-
-
- Część środkowa
-
-
- Więcej
-
-
- Bardziej zarumienione
-
-
- Więcej zawartości tkanki tłuszczowej
-
-
- More Curtains
-
-
- Ciemniejszy cień oczu
-
-
- Więcej piegów
-
-
- Bardziej pełne
-
-
- Więcej ciężaru
-
-
- Więcej szminki
-
-
- More Love
-
-
- Więcej dolnej wargi
-
-
- Więcej mięśni
-
-
- Więcej umięśnienia
-
-
- Bardziej zaróżowione
-
-
- Więcej zaokrąglenia
-
-
- More Saddle
-
-
- Bardziej spadziste
-
-
- Więcej kwadratowy
-
-
- Więcej górnej wargi
-
-
- Bardziej pionowe
-
-
- Więcej objętości
-
-
- More soul
-
-
- Wąsy
-
-
- Kąciki ust
-
-
- Pozycja ust
-
-
- Mowhawk
-
-
- Umięśnienie
-
-
- Mutton Chops
-
-
- Lakier na paznokciach
-
-
- Kolor lakieru na paznokciach
-
-
- Wąskie
-
-
- Wąski tył
-
-
- Wąski przód
-
-
- Wąskie usta
-
-
- Naturalne
-
-
- Długość karku
-
-
- Grubość karku
-
-
- Brak rumieńca
-
-
- Brak kredki do oczu's
-
-
- Brak cienia pod powieką
-
-
- Brak połysku
-
-
- Brak szminki
-
-
- No Part
-
-
- Brak lakieru
-
-
- Brak czerwieni
-
-
- Brak szpiców
-
-
- Brak białego
-
-
- Brak zmarszczek
-
-
- Dół normalny
-
-
- Góra normalna
-
-
- Nos w stronę lewą
-
-
- Nos w stronę prawą
-
-
- Rozmiar nosa
-
-
- Grubość nosa
-
-
- Kąt czubka nosa
-
-
- Kształt czubka nosa
-
-
- Szerokość nosa
-
-
- Przegroda nosa
-
-
- Wielkość dziurek w nosie
-
-
- Intensywność
-
-
- Otwarte
-
-
- Otwarte z tyłu
-
-
- Otwarte z przodu
-
-
- Otwarte z lewej
-
-
- Otwarte z prawej
-
-
- Pomarańczowe
-
-
- Zewnętrznie
-
-
- Zewnętrzny kolor cienia
-
-
- Zewnętrzna grubość cienia
-
-
- Zewnętrzny bok oka
-
-
- Zewnętrzny cień oka
-
-
- Zewnętrzny cień
-
-
- Przodozgryz górny
-
-
- Package
-
-
- Pomalowane paznokcie
-
-
- Blady
-
-
- Krocze spodni
-
-
- Dopasowanie spodni
-
-
- Długość spodni
-
-
- Talia spodni
-
-
- Zmarszczki spodni
-
-
- Część
-
-
- Część grzywki
-
-
- Mięśnie klatki piersiowej
-
-
- Pigment
-
-
- Warkocz
-
-
- Różowe
-
-
- Róż
-
-
- Wysokie obcasy
-
-
- Szerokie obcasy
-
-
- Pointy
-
-
- Obcasy pointy
-
-
- Kucyk
-
-
- Poofy Skirt
-
-
- Wybałuszone lewe oko
-
-
- Wybałuszone prawe oko
-
-
- Opuchnięty
-
-
- Spuchnięte powieki
-
-
- Kolor tęczy
-
-
- Czerwone włosy
-
-
- Regularne
-
-
- Prawa część
-
-
- Kompleksowość różu
-
-
- Zaokrąglenie
-
-
- Rudowatość
-
-
- Rudy
-
-
- Włosy w nieładzie
-
-
- Saddle Bags
-
-
- Koścista noga
-
-
- Odzielne
-
-
- Płytkie
-
-
- Tylne usunięcie włosów
-
-
- Usunięcie twarzy
-
-
- Przednie usunięcie włosów
-
-
- Usunięcie od lewej strony do góry
-
-
- Usunięcie od prawej strony do góry
-
-
- Tylnie usunięcie włosów
-
-
- Przednie usunięcie włosów
-
-
- Przesuń w lewo
-
-
- Przesuń usta
-
-
- Przesuń w prawo
-
-
- Dolna część koszuli
-
-
- Dopasowanie koszuli
-
-
- Zmarszczki na koszuli
-
-
- Wysokość buta
-
-
- Krótkie
-
-
- Krótkie ramiona
-
-
- Krótkie nogi
-
-
- Krótki kark
-
-
- Krótkie warkoczyki
-
-
- Krótki kucyk
-
-
- Krótkie baczki
-
-
- Krótki tułów
-
-
- Krótkie biodra
-
-
- Ramiona
-
-
- Boczna grzywka
-
-
- Baczki
-
-
- Boczne włosy
-
-
- Boczne włosy w dół
-
-
- Boczne włosy do góry
-
-
- Smukły kark
-
-
- Dopasowanie spódnicy
-
-
- Długość spódnicy
-
-
- Ukośne czoło
-
-
- Długość rękawów
-
-
- Luźne rękawy
-
-
- Rozcięcie: tył
-
-
- Rozcięcie: przód
-
-
- Rozcięcie: po prawej
-
-
- Rozcięcie: po lewej
-
-
- Małe
-
-
- Małe dłonie
-
-
- Mała głowa
-
-
- Gładkie
-
-
- Gładkie włosy
-
-
- Długość skarpetek
-
-
- Zarost na dolnej wardze
-
-
- Rzadki
-
-
- Kolczaste włosy
-
-
- Kwadratowe
-
-
- Kwadratowy palec
-
-
- Ściśnięta głowa
-
-
- Rozciągnięta głowa
-
-
- Zapadnięte
-
-
- Zapadnięta klatka piersiowa
-
-
- Zapadnięte oczy
-
-
- Sweep Back
-
-
- Sweep Forward
-
-
- Wysokość
-
-
- Zwężenie do przodu
-
-
- Zwężenie do tyłu
-
-
- Grube obcasy
-
-
- Gruby kark
-
-
- Gruby palec
-
-
- Wąski
-
-
- Wąskie brwi
-
-
- Wąskie usta
-
-
- Wąski nos
-
-
- Obcisły podbródek
-
-
- Obcisłe rękawy
-
-
- Obciesłe spodnie
-
-
- Obcisły podkoszulek
-
-
- Wąska spódnica
-
-
- Obcisłe rękawy
-
-
- Kształt palca
-
-
- Grubość palca
-
-
- Długość tułowia
-
-
- Mięśnie tułowia
-
-
- Wychudzony tułów
-
-
- Nieprzyłączone
-
-
- Uncreased
-
-
- Przodozgryz
-
-
- Nienaturalne
-
-
- Górny mostek
-
-
- Górne policzki
-
-
- Roszczepienie górnego podbródka
-
-
- Górna powieka
-
-
- Zadarta
-
-
- Bardzo czerwona
-
-
- Wysokość talii
-
-
- Dobrze odżywiony
-
-
- Białe włosy
-
-
- Szerokie
-
-
- Szeroki tył
-
-
- Szeroki przód
-
-
- Szerokie usta
-
-
- Dzikość
-
-
- Zmarszczki
-
-
- Dodaj do landmarków
-
-
- Edytuj Landmarki
-
-
- Zobacz więcej szczegółów na temat obecnej lokalizacji
-
-
- Historia odwiedzonych miejsc
-
-
- Region Adult
-
-
- Region Moderate
-
-
- Region
-
-
- [APP_NAME] Aktualizacja
-
-
- Pobieranie [APP_NAME]...
-
-
- Instalizacja [APP_NAME]...
-
-
- Twoja [APP_NAME] wersja klienta jest aktualizowana do najnowszej wersji. Prosimy o cierpliwość.
-
-
- Pobieranie aktualizacji...
-
-
- Pobieranie aktualizacji
-
-
- Pobieranie aktualizacji nie powiodło się
-
-
- Podczas aktualizacji [APP_NAME] wystąpił błąd. Prosimy o pobranie najnowszej wersji klienta ze strony internetowej: www.secondlife.com.
-
-
- Instalacja aktualizacji nie powiodła się
-
-
- Uruchomienie klienta nie powiodło się
-
-
- [APP_NAME]: Obiekty ładują się zbyt szybko od [FROM_NAME], automatyczny podgląd jest wyłączony na [TIME] sekund
-
-
- [APP_NAME]: Obiekty ładują się zbyt szybko, automatyczny podgląd jest wyłączony na [TIME] sekund
-
-
- -- Zapisywanie logów rozmowy aktywowane --
-
-
- [NAME] pisze...
-
-
- (Brak nazwy)
-
-
- (Moderacja: Komunikacja głosowa wyłączona domyślnie)
-
-
- Czat tekstowy jest nieaktywny dla tej rozmowy.
-
-
- Twój tekst w czacie grupowym został wyłączony przez Moderatora Grupy.
-
-
- Klknij tutaj by wysłać wiadomość prywatną (IM).
-
-
- Do
-
-
- (Moderator)
-
-
- (Zapisano [LONG_TIMESTAMP])
-
-
- Twoja rozmowa głosowa została odebrana
-
-
- Rozmowa głosowa została rozpoczęta
-
-
- Dołączyłeś/Dołączyłaś do rozmowy głosowej
-
-
- [NAME] zaczyna rozmowę głosową
-
-
- Rozmowa głosowa...
-
-
- Połączono, kliknij Zakończ rozmowę aby się rozłączyć
-
-
- Rozmowa głosowa zakończona
-
-
- Konferencja z [AGENT_NAME]
-
-
- (Sesja IM wygasła)
-
-
- Jesteś jedyną osobą w tej konferencji.
-
-
- [NAME] opuszcza Second Life.
-
-
- Kliknij na [BUTTON NAME] przycisk by zaakceptować/dołączyć do tej rozmowy.
-
-
- Zablokowałeś tego Rezydenta. Wysłanie wiadomości automatycznie odblokuje go.
-
-
- Błąd zapytania, proszę spróbować później
-
-
- Błąd. Spróbuj ponownie za kilka minut.
-
-
- Nie posiadasz praw do kontynuacji.
-
-
- Ta konferencja jest już zakończona.
-
-
- Nie posiadesz tego przywileju.
-
-
- Nie posiadesz tego przywileju.
-
-
- Nie jesteś moderatorem konferencji.
-
-
- Moderator grupy wyłączył czat.
-
-
- Moderator wyciszył Cię.
-
-
- Nie można dodać nikogo do czatu z [RECIPIENT].
-
-
- Nie można wysłać Twojej wiadomości do sesji czatu z [RECIPIENT].
-
-
- Nie można wysłać Twojej wiadomości do sesji czatu z [RECIPIENT].
-
-
- Błąd poczas moderacji.
-
-
- Zostałeś usunięty z grupy
-
-
- Usunięto Cię z grupy.
-
-
- Nie posiadasz praw by uczestniczyć w tej konferencji.
-
-
- [SOURCES] powiedział/a coś nowego
-
-
- [SOURCES] powiedział/a coś nowego
-
-
- Inicjacja sesji wygasła
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] zapłaciła/zapłacił Tobie [AMOUNT]L$ [REASON].
-
-
- [NAME] zapłacił/zapłaciła Tobie L$[AMOUNT].
-
-
- Zapłacono [NAME] [AMOUNT]L$ [REASON].
-
-
- Zapłacono L$[AMOUNT].
-
-
- Zapłacono [NAME] [AMOUNT]L$.
-
-
- Zapłacono [AMOUNT]L$ [REASON].
-
-
- dla [ITEM]
-
-
- za Posiadłość
-
-
- za przepustkę na Posiadłość
-
-
- dla przypisania Posiadłości
-
-
- aby stworzyć grupę
-
-
- aby dołączyć do grupy
-
-
- aby pobrać
-
-
- publikacja reklamy
-
-
- Dajesz L$ [AMOUNT]
-
-
- Ładowanie kosztuje [AMOUNT]L$
-
-
- To kosztuje [AMOUNT]L$
-
-
- Kupno wybranej Posiadłości [AMOUNT]L$
-
-
- Ten obiekt kosztuje [AMOUNT]L$
-
-
- Każdy
-
-
- Oficerowie
-
-
- Właściciele
-
-
- Obecnie w SL
-
-
- Pobieranie...
-
-Raport o Nadużyciu
-
-
- Nowy ksztalt
-
-
- Nowa skórka
-
-
- Nowe włosy
-
-
- Nowe oczy
-
-
- Nowa koszula
-
-
- Nowe spodnie
-
-
- Nowe buty
-
-
- Nowe skarpetki
-
-
- Nowa kurtka
-
-
- Nowe rękawiczki
-
-
- Nowy podkoszulek
-
-
- Nowa bielizna
-
-
- Nowa spódnica
-
-
- Nowa alpha
-
-
- Nowy tatuaż
-
-
- Nowa fizyka
-
-
- Nieaktualne ubranie/część ciała
-
-
- Nowa gesturka
-
-
- Nowy skrypt
-
-
- Stwórz nowe ogłoszenie
-
-
- Nowy folder
-
-
- Zawartość
-
-
- Gesturki
-
-
- Gesturki dla mężczyzn
-
-
- Gesturki dla kobiet
-
-
- Inne gesturki
-
-
- Gesturki przemówienia
-
-
- Gesturki
-
-
- Mężczyzna - Excuse me
-
-
- Mężczyzna - Get lost
-
-
- Mężczyzna - Całusek
-
-
- Mężczyzna - Boo
-
-
- Mężczyzna - Znudzony
-
-
- Mężczyzna - Hey
-
-
- Mężczyzna - Śmiech
-
-
- Mężczyzna - Odrzucenie
-
-
- Mężczyzna - Wzruszenie ramionami
-
-
- Mężczyzna - Pokaż język
-
-
- Mężczyzna - Wow
-
-
- Kobieta - Chichot
-
-
- Kobieta - Płacze
-
-
- Kobieta - Zakłopotana
-
-
- Kobieta - Excuse me
-
-
- Kobieta - Get lost
-
-
- Kobieta - Całusek
-
-
- Kobieta - Boo
-
-
- Kobieta - Znudzona
-
-
- Kobieta - Hey
-
-
- Kobieta - Hey baby
-
-
- Kobieta - Śmiech
-
-
- Kobieta - Looking good
-
-
- Kobieta - Over here
-
-
- Kobieta - Please
-
-
- Kobieta - Odrzucenie
-
-
- Kobieta - Wzruszenie ramionami
-
-
- Kobieta - Pokaż język
-
-
- Kobieta - Wow
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
-
-
- żadne/żadne
-
-
- Nie można załadować zdjęcia większego niż [WIDTH]*[HEIGHT]
-
-
-
- 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.
- Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia firewall.
-
-
- Niedziela:Poniedziałek:Wtorek:Środa:Czwartek:Piątek:Sobota
-
-
- Niedz.:Pon.:Wt.:Śr.:Czw.:Pt.:Sob.
-
-
- Styczeń:Luty:Marzec:Kwiecień:Maj:Czerwiec:Lipiec:Sierpień:Wrzesień:Październik:Listopad:Grudzień
-
-
- St.:Lt.:Mrz.:Kw.:Maj:Cz.:Lp.:Sie.:Wrz.:Li.:Paź.:Gru.
-
-
- [MDAY]
-
-
- AM
-
-
- PM
-
-
- US$ [AMOUNT]
-
-
- Członkostwo
-
-
- Funkcje
-
-
- Status grupy
-
-
- Parcel Management
-
-
- Parcel Identity
-
-
- Parcel Settings
-
-
- Parcel Powers
-
-
- Dostęp do posiadłości
-
-
- Parcel Content
-
-
- Object Management
-
-
- Accounting
-
-
- Ogłoszenia
-
-
- Czat
-
-
- Usuń wybrane obiekty?
-
-
- Usuń wybrane obiekty?
-
-
- W tym stroju nie ma elementów
-
-
- Wybierz edytor używając ustawień ExternalEditor.
-
-
- Nie odnaleziono zewnętrzego edytora wskazanego przez Ciebie.
-Spróbuj załączyć ścieżkę do edytora w cytowaniu.
-(np. "/ścieżka do mojego/edytora" "%s")
-
-
- Błąd w składni komendy zewnętrznego edytora.
-
-
- Uruchomienie zewnętrznego edytora nie powiodło się.
-
-
- Esc
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Miejsce Startu
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Dodaj
-
-
- Odejmij
-
-
- Mnożenie
-
-
- Podziel
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Podgląd lokalizatorów cząsteczek (niebieski)
-
-
- Podgląd lokalizatorów fizycznych obiektów (zielony)
-
-
- Podgląd lokalizatorów obiektów skryptowanych (czerwony)
-
-
- Podgląd lokalizatorów obiektów skryptowanych z opcją dotyku (czerwony)
-
-
- Podgląd lokalizatorów dźwięków (żółty)
-
-
- Podgląd lokalizatorów mediów (biały)
-
-
- Ukryj cząsteczki
-
-
diff --git a/indra/newview/skins/steam/xui/pt/strings.xml b/indra/newview/skins/steam/xui/pt/strings.xml
deleted file mode 100644
index 07fd95c907..0000000000
--- a/indra/newview/skins/steam/xui/pt/strings.xml
+++ /dev/null
@@ -1,4885 +0,0 @@
-
-
-
-
- SECOND LIFE
-
-
- Portal de Supporte Second Life
-
-
- Detectando hardware...
-
-
- Carregando [APP_NAME]...
-
-
- Limpando o cache...
-
-
- Iniciando cache de texturas...
-
-
- Iniciando VFS...
-
-
- Falha na inicialização dos gráficos. Atualize seu driver gráfico!
-
-
- Restaurando...
-
-
- Alterando a resolução...
-
-
- Fullbright (antigo)
-
-
- Fazendo login. [APP_NAME] pode parecer congelado. Por favor, aguarde.
-
-
- Logando...
-
-
- Autenticando
-
-
- Executando manutenção da conta...
-
-
- Falha na tentativa anterior de login. Login, tentativa [NUMBER]
-
-
- Carregando mundo...
-
-
- Inicializando navegador embutido...
-
-
- Inicializando multimídia...
-
-
- Carregando fontes...
-
-
- Verificando arquivos cache (pode levar de 60-90 segundos)...
-
-
- Processando resposta...
-
-
- Inicializando mundo...
-
-
- Decodificando imagens...
-
-
- Inicializando o QuickTime...
-
-
- O QuickTime não foi encontrado - falha ao iniciar.
-
-
- O QuickTime foi inicializado com sucesso.
-
-
- Solicitando recursos da região...
-
-
- Solicitando recursos da região, tentativa [NUMBER]...
-
-
- Aguardando handshake com a região...
-
-
- Conectando à região...
-
-
- Baixando roupas...
-
-
- O servidor respondeu com um certificado inválido ou corrompido. Por favor contate o administrador do Grid.
-
-
- Um hostname inválido foi usado para acessar o servidor. Verifique o SLURL ou hostname do Grid.
-
-
- O certificado dado pelo Grid parece estar vencido. Verifique o relógio do sistema ou contate o administrador do Grid.
-
-
- O certificado dado pelo servidor não pôde ser usado para SSL. Por favor contate o administrador do Grid.
-
-
- A cadeia de certificados do servidor tinha certificados demais. Por favor contate o administrador do Grid.
-
-
- A assinatura do certificado dado pelo servidor do Grid não pôde ser verificada. Contate o administrador do seu Grid.
-
-
- Erro de rede: Falha de conexão: verifique sua conexão à internet.
-
-
- Falha do login.
-
-
- Sair
-
-
- http://join.secondlife.com/index.php?sourceid=1206_steam&lang=pt-BR
-
-
- O visualizador utilizado já não é compatível com o Second Life. Visite a página abaixo para baixar uma versão atual: http://secondlife.com/download
-
-Para saber mais, visite as perguntas frequentes abaixo: http://secondlife.com/viewer-access-faq
-
-
- Existe uma versão atualizada do seu visualizador: [VERSION]
-
-
- Atualização de visualizador obrigatória: [VERSION]
-
-
- Este agente já fez login.
-
-
- Desculpe! Não foi possível fazer seu login. Verifique se digitou o nome de usuário correto* (como kiki45 ou astro.física) * e senha. Verifique também que a tecla Maiúscula está desativada.
-
-
- Como medida de precaução, sua senha foi alterada. Visite sua conta em http://secondlife.com/password e responda a pergunta de segurança para mudar sua senha. Lamentamos qualquer inconveniente.
-
-
- Fizemos algumas alterações a seu sistema. Você precisa selecionar outra senha. Visite sua conta em http://secondlife.com/password e responda a pergunta de segurança para mudar sua senha. Lamentamos qualquer inconveniente.
-
-
- O Second Life está fechado para manutenção no momento. Somente funcionários podem acessá-lo. Consulte www.secondlife.com/status para as últimas atualizações.
-
-
- Logons do Second Life estão temporariamente restritos para garantir a melhor experiência possível para os usuários no mundo virtual.
-
-Pessoas com contas gratuitas não poderão acessar o Second Life no momento para dar espaço para aquelas que pagaram pelo Second Life.
-
-
- O Second Life não pode ser acessado deste computador. Se você acredita que houve algum equívoco, contate support@secondlife.com.
-
-
- Sua conta não está disponível para acesso até [TIME], horário do Pacífico nos EUA (GMT-08).
-
-
- Não é possível concluir a solicitação neste momento. Para obter mais ajuda, conte o suporte em http://secondlife.com/support. Caso você não possa mudar sua senha, ligue para (866) 476-9763.
-
-
- Dados discrepantes detectados durante o login. Contate support@secondlife.com.
-
-
- Sua conta está passando por um breve período de manutenção. Sua conta não está disponível para acesso até [TIME], horário do Pacífico nos EUA (GMT-08). Se você acredita que houve algum equívoco, contate support@secondlife.com.
-
-
- Reação à solicitação de saída foi uma falha do simulador.
-
-
- O sistema está passando para o modo offline. Sua conta não está disponível para acesso até [TIME], horário do Pacífico nos EUA (GMT-08).
-
-
- Impossível criar sessão válida.
-
-
- Não foi possível conectar o simulador.
-
-
- Sua conta possui acesso ao Second Life das [START] às [END], horário da costa leste dos EUA. Volte novamente durante seu horário de acesso. Se você acredita que houve algum equívoco, contate support@secondlife.com.
-
-
- Parâmetros incorretos. Se você acredita que houve algum equívoco, contate support@secondlife.com.
-
-
- O parâmetro de primeiro nome deve ser alfanumérico. Se você acredita que houve algum equívoco, contate support@secondlife.com.
-
-
- O parâmetro de sobrenome deve ser alfanumérico. Se você acredita que houve algum equívoco, contate support@secondlife.com.
-
-
- Região passando para modo offline. Tente novamente dentro de alguns instantes.
-
-
- Não há agente na região. Tente novamente dentro de alguns instantes.
-
-
- A região estava acessada por outra sessão. Tente novamente dentro de alguns instantes.
-
-
- A região estava passando para o modo offline na sessão anterior. Tente novamente dentro de alguns instantes.
-
-
- A região estava passando para o modo offline na sessão anterior. Tente novamente dentro de alguns instantes.
-
-
- A região passou para o modo offline na última sessão. Tente novamente dentro de alguns instantes.
-
-
- A região inicou o modo offline. Tente novamente dentro de alguns instantes.
-
-
- O sistema iniciou o modo offline em sua sessão anterior. Tente novamente dentro de alguns instantes.
-
-
- Esta região pode estar passando por problemas. Por favor, verifique sua conexão com a internet.
-
-
- Salvando configurações...
-
-
- Saindo...
-
-
- Fechando...
-
-
- Você foi desconectado da região onde estava.
-
-
- Você foi enviado para uma região inválida.
-
-
- Teste de desconexão
-
-
- Pessoa
-
-
- (sem nome)
-
-
- Proprietário:
-
-
- Público
-
-
- (Grupo)
-
-
- À venda: L$[AMOUNT]
-
-
- Construído por Grupo
-
-
- Não é permitido construir
-
-
- Construído por Grupo
-
-
- Não é seguro
-
-
- Não é permitido voar
-
-
- Scripts de Grupo
-
-
- Não são permitidos scripts
-
-
- Terreno:
-
-
- Apenas um item único pode ser arrastado para este local
-
-
-
- Não é possível fazer rez do itens em sua caixa de saída do lojista
-
-
- Um ou mais destes objetos não podem ser vendidos ou transferidos.
-
-
- Sua caixa de saída do lojista aceita apenas itens direto do seu inventário
-
-
- Você não pode colocar os itens que está vestindo na sua caixa de saída do lojista
-
-
- Não é possível colocar cartões de visita em sua caixa de saída do lojista
-
-
- A profundidade das pastas aninhadas excede 3
-
-
- A contagem de subpastas na pasta de nível superior excede 20
-
-
- A contagem de itens na pasta de nível superior excede 200
-
-
- Não é possível mover uma pasta para seu filho
-
-
- Não é possível mover uma pasta para dentro dela mesma
-
-
- Clique para ver a página web
-
-
- Clique para ver os dados desta localização
-
-
- Clique para ver o perfil deste residente
-
-
- Saiba mais sobre este residente
-
-
- Clique para silenciar este residente
-
-
- Clique para desfazer silenciar neste residente
-
-
- Clique para enviar uma MI para este residente
-
-
- Clique para pagar este residente
-
-
- Clique para enviar um pedido de amizade a este residente
-
-
- Clique para enviar um pedido de amizade a este residente
-
-
- Clique para ver a descrição deste Grupo
-
-
- Clique para ver a descrição deste evento
-
-
- Clique para ver este anúncio
-
-
- Clique para ver a descrição desta parcela
-
-
- Clique para teletransportar para esta localização
-
-
- Clique para ver a descrição deste objeto
-
-
- Clique para ver esta localização no mapa
-
-
- Clique para ativar no secondlife:// comando
-
-
-
- Teletransportar para
-
-
- Mostrar no mapa para
-
-
- Silenciar
-
-
- Desfazer silenciar
-
-
- MI
-
-
- Pagar
-
-
- Oferecer teletransporte para
-
-
- Pedido de amizade
-
-
- Fechar (⌘W)
-
-
- Fechar (Ctrl+W)
-
-
- Fechar
-
-
- Restaurar
-
-
- Minimizar
-
-
- Separar-se da janela
-
-
- conectar-se à barra
-
-
- Mostrar ajuda
-
-
- Buscando...
-
-
- Não encontrado.
-
-
- Buscando...
-
-
- Notas de versão
-
-
- http://wiki.secondlife.com/wiki/Release_Notes/
-
-
- Carregando...
-
-
- (ninguém)
-
-
- (aguardando)
-
-
- (nenhum)
-
-
- Interlocutor Avaline [ORDER]
-
-
- Nenhum erro
-
-
- Item pedido falhou
-
-
- Item pedido: arquivo inexistente
-
-
- Item pedido: item não encontrado na base de dados.
-
-
- Fim do arquivo
-
-
- Não é possível abrir arquivo
-
-
- Arquivo não encontrado
-
-
- Tempo de transferência de arquivo expirado
-
-
- Circuito caiu
-
-
- Visualizador e servidor não concordam no preço
-
-
- Status desconhecido
-
-
- textura
-
-
- som
-
-
- cartão de visitas
-
-
- landmark
-
-
- script obsoleto
-
-
- roupas
-
-
- objeto
-
-
- anotação
-
-
- pasta
-
-
- raiz
-
-
- script LSL2
-
-
- bytecode LSL
-
-
- textura tga
-
-
- parte do corpo
-
-
- fotografia
-
-
- Achados e Perdidos
-
-
- imagem targa
-
-
- Lixo
-
-
- imagem jpeg
-
-
- animação
-
-
- gesto
-
-
- simstate
-
-
- favorito
-
-
- link
-
-
- link da pasta
-
-
- mesh
-
-
- (Edição Aparência)
-
-
- Distante
-
-
- Ocupado
-
-
- Mudo
-
-
- Temeroso
-
-
- Bravo
-
-
- Distante
-
-
- Virar para trás
-
-
- Rir segurando a barriga
-
-
- Sorriso largo
-
-
- Mandar beijo
-
-
- Entediado
-
-
- Reverência
-
-
- Aplaudir
-
-
- Saudação formal
-
-
- Chorar
-
-
- Dança 1
-
-
- Dança 2
-
-
- Dança 3
-
-
- Dança 4
-
-
- Dança 5
-
-
- Dança 6
-
-
- Dança 7
-
-
- Dança 8
-
-
- Desdém
-
-
- Beber
-
-
- Envergonhado
-
-
- Negar com o dedo.
-
-
- Vibrar provocando
-
-
- Levitar Yoga
-
-
- Careta
-
-
- Impaciente
-
-
- Pular de alegria
-
-
- Beije meu bumbum
-
-
- Beijar
-
-
- Rir
-
-
- Exibir músculos
-
-
- Não (descontente)
-
-
- Não
-
-
- Nya-nya-nya
-
-
- Soco um-dois
-
-
- Abrir a boca
-
-
- Paz
-
-
- Apontar para o outro
-
-
- Apontar para si
-
-
- Soco esquerdo
-
-
- Soco direito
-
-
- RPS contar
-
-
- RPS papel
-
-
- RPS pedra
-
-
- RPS tesoura
-
-
- Repulsa
-
-
- Chute giratório
-
-
- Triste
-
-
- Saúde
-
-
- Gritar
-
-
- Encolher ombros
-
-
- Sorrir
-
-
- Fumar à toa
-
-
- Inalar fumaça
-
-
- Expelir fumaça
-
-
- Surpresa
-
-
- Golpe de espada
-
-
- Enraivecer
-
-
- Mostrar a língua
-
-
- Onda
-
-
- Sussurrar
-
-
- Assobiar
-
-
- Piscar
-
-
- Piscar (Hollywood)
-
-
- Preocupar-se
-
-
- Sim (Feliz)
-
-
- Sim
-
-
- Múltiplo
-
-
- Carregando...
-
-
- Offline
-
-
- L$[PRICE] por [AREA] m²
-
-
- Nenhum encontrado.
-
-
- OK
-
-
- término prematuro do arquivo
-
-
- Não é possível encontrar a raiz (ROOT) ou junção (JOINT).
-
-
- sussurra:
-
-
- grita:
-
-
- Conectando à conversa de voz no mundo
-
-
- Conectado
-
-
- Voz não disponível na sua localização atual
-
-
- Desconectado da conversa de Voz no mundo
-
-
- Agora você será reconectado ao bate-papo local.
-
-
- '[OBJECTNAME]', um objeto de '[OWNERNAME]', localizado em [REGIONNAME] a [REGIONPOS], obteve permissão para: [PERMISSIONS].
-
-
- '[OBJECTNAME]', um objeto de '[OWNERNAME]', localizado em [REGIONNAME] a [REGIONPOS], teve permissão negada para: [PERMISSIONS].
-
-
- Tomar linden dólares (L$) de você
-
-
- Atue nas suas entradas de controle
-
-
- Remapeie suas entradas de controle
-
-
- Faça uma animação para o seu avatar
-
-
- Anexe ao seu avatar
-
-
- Libere a propriedade e torne-a pública
-
-
- Una e desuna de outros objetos
-
-
- Adicione e remova junções com outros objetos
-
-
- Modifique as permissões
-
-
- Acompanhe sua câmera
-
-
- Controle sua camera
-
-
- Público geral
-
-
- Moderado
-
-
- Adulto
-
-
- Desconectado
-
-
- Desconhecido
-
-
- (desconhecido)
-
-
- Propriedadade / Região inteira:
-
-
- Imóvel / Homestead
-
-
- Continente / Homestead
-
-
- Continente / Região inteira:
-
-
- Todos os arquivos
-
-
- Sons
-
-
- Animações
-
-
- Imagens
-
-
- Salvar
-
-
- Carregar
-
-
- Imagens Targa
-
-
- Imagens Bitmap
-
-
- Arquivo de vídeo AVI
-
-
- Arquivo de animação XAF
-
-
- Arquivo XML
-
-
- Arquivo RAW
-
-
- Imagens compactadas
-
-
- Carregar arquivos
-
-
- Selecionar pasta
-
-
- Scripts
-
-
- deixar como ausente
-
-
- deixar como ausente
-
-
- deixar como não ocupado
-
-
- Deixar como ocupado
-
-
- Silhueta
-
-
- Pele
-
-
- Cabelo
-
-
- Olhos
-
-
- Camisa
-
-
- Calças
-
-
- Sapatos
-
-
- Meias
-
-
- Blusa
-
-
- Luvas
-
-
- Camiseta
-
-
- Roupa de baixo
-
-
- Saia
-
-
- Alpha
-
-
- Tatuagem
-
-
- Físico
-
-
- Inválido
-
-
- nenhum
-
-
- Camisa não vestida
-
-
- Calças não vestidas
-
-
- Sapatos não calçados
-
-
- Meias não calçadas
-
-
- Jaqueta não vestida
-
-
- Luvas não calçadas
-
-
- Camiseta não vestida
-
-
- Roupa de baixo não vestida
-
-
- Saia não vestida
-
-
- Alpha não vestido
-
-
- Tatuagem não usada
-
-
- Físico não usado
-
-
- inválido
-
-
- Criar novo físico
-
-
- Criar pele nova
-
-
- Criar cabelo novo
-
-
- Criar olhos novos
-
-
- Criar camisa nova
-
-
- Criar calças novas
-
-
- Criar sapatos novos
-
-
- Criar meias novas
-
-
- Criar jaqueta nova
-
-
- Criar luvas novas
-
-
- Criar camiseta nova
-
-
- Criar roupa de baixo nova
-
-
- Criar saia nova
-
-
- Criar Alpha novo
-
-
- Criar nova tatuagem
-
-
- Criar novo físico
-
-
- inválido
-
-
- Novo [WEARABLE_ITEM]
-
-
- Próximo
-
-
- OK
-
-
- Anúncio de grupo
-
-
- Anúncios do grupo
-
-
- Enviado por
-
-
- Anexo:
-
-
- Ver últimos anúncios ou optar por não receber essas mensagens aqui.
-
-
- Abrir anexo
-
-
- Salvar anexo
-
-
- Oferta de teletransporte
-
-
- Novas notificações chegaram enquanto você estava fora...
-
-
- Você tem mais [%d] notificações
-
-
- Braço direito
-
-
- Cabeça
-
-
- Braço esquerdo
-
-
- Perna esquerda
-
-
- Tronco
-
-
- Perna direita
-
-
- Baixo
-
-
- Meio
-
-
- Alto
-
-
- Pressione ESC para retornar para visão do mundo
-
-
- Não encontrou o que procura? Tente buscar no [secondlife:///app/search/people/[SEARCH_TERM] Search].
-
-
- Não encontrou o que procura? Tente buscar no [secondlife:///app/search/groups/[SEARCH_TERM] Search].
-
-
- Arraste um marco para adicioná-lo aos seus favoritos.
-
-
- Você não possui uma cópia desta textura no seu inventário
-
-
- Suas compras do Marketplace aparecerão aqui. Depois, você poderá arrastá-las para seu inventário para usá-las.
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
-
-
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
-
-
- Qualquer um pode vender itens no Mercado.
-
-
-
- Se você deseja se tornar um lojista, precisará [[MARKETPLACE_CREATE_STORE_URL] criar uma loja no Mercado].
-
-
- Sua caixa de saída está vazia
-
-
-
- Arraste as pastas para estas áreas e então clique em "Enviar para Mercado" para listar os itens para venda no [[MARKETPLACE_DASHBOARD_URL] Mercado].
-
-
- Sem erros
-
-
- Erro: antes de enviar os itens para o Mercado, é necessário que você se defina como um lojista (sem custos).
-
-
- Erro: esta pasta está vazia.
-
-
- Erro: ocorreu uma falha ao enviar este item, pois sua conta de lojista tem muitos itens não associados a produtos. Para corrigir esse erro, faça o login no site do mercado e reduza a contagem de itens não associados.
-
-
- Erro: este item contém muitos objetos. Corrija esse erro unindo os objetos em caixa para reduzir a contagem total a menos de 200.
-
-
- Erro: este item contém muitos níveis de pastas aninhadas. Reorganize-o em até 3 níveis de pastas aninhadas, no máximo.
-
-
- Erro: este item não pode ser vendido no mercado.
-
-
- Erro: ocorreu um problema com este item. Tente novamente mais tarde.
-
-
- Marcos abertos
-
-
-
-
-
-
-
-
- Carregando conteúdo...
-
-
- Nenhum conteúdo
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Meu inventário
-
-
- Biblioteca
-
-
- Texturas
-
-
- Sons
-
-
- Cartões de visitas
-
-
- Marcos
-
-
- Scripts
-
-
- Vestuário
-
-
- Objetos
-
-
- Anotações
-
-
- Nova pasta
-
-
- Inventário
-
-
- Imagens descompactadas
-
-
- Corpo
-
-
- Lixo
-
-
- Álbum de fotografias
-
-
- Achados e Perdidos
-
-
- Sons descompactados
-
-
- Animações
-
-
- Gestos
-
-
- Meus favoritos
-
-
- Meus favoritos
-
-
- Look atual
-
-
- Looks iniciais
-
-
- Meus looks
-
-
- Acessórios
-
-
- Meshes:
-
-
- Amigos
-
-
- Tudo
-
-
- Nenhum anexo vestido
-
-
- Anexos ([COUNT] slots permanecem)
-
-
- Comprar
-
-
- Comprar por L$
-
-
- Pedra
-
-
- Metal
-
-
- Vidro
-
-
- Madeira
-
-
- Carne
-
-
- Plástico
-
-
- Borrracha
-
-
- Luz
-
-
- Shift
-
-
- Ctrl
-
-
- Peito
-
-
- Crânio
-
-
- Ombro esquerdo
-
-
- Ombro direito
-
-
- Mão esquerda
-
-
- Mão direita
-
-
- Pé esquerdo
-
-
- Pé direito
-
-
- Espinha
-
-
- Pélvis
-
-
- Boca
-
-
- Queixo
-
-
- Orelha esquerda
-
-
- Orelha direita
-
-
- Globo ocular esquerdo
-
-
- Globo ocular direito
-
-
- Nariz
-
-
- Braço superior D
-
-
- Antebraço D
-
-
- Braço superior E
-
-
- Antebraço E
-
-
- Quadril direito
-
-
- Coxa D
-
-
- Perna inferior D
-
-
- Quadril esquerdo
-
-
- Coxa E
-
-
- Perna inferior E
-
-
- Estômago
-
-
- Peitoral E
-
-
- Peitoral D
-
-
- Pescoço
-
-
- Centro do avatar
-
-
- Ponto de encaixe inválido
-
-
- [AGEYEARS] [AGEMONTHS] de idade
-
-
- [AGEYEARS] de idade
-
-
- [AGEMONTHS] de idade
-
-
- [AGEWEEKS] de idade
-
-
- [AGEDAYS] de idade
-
-
- Cadastrado hoje
-
-
- [COUNT] ano
-
-
- [COUNT] anos
-
-
- [COUNT] anos
-
-
- [COUNT] mês
-
-
- [COUNT] meses
-
-
- [COUNT] meses
-
-
- [COUNT] semana
-
-
- [COUNT] semanas
-
-
- [COUNT] semanas
-
-
- [COUNT] dia
-
-
- [COUNT] dias
-
-
- [COUNT] dias
-
-
- [COUNT] membro
-
-
- [COUNT] membros
-
-
- [COUNT] membros
-
-
- Residente
-
-
- Prova
-
-
- Lista de membros
-
-
- Empregado da Linden Lab
-
-
- Dados de pagamento usados
-
-
- Dados de pagamento fornecidos
-
-
- Nenhum dado de pagamento
-
-
- Idade comprovada
-
-
- Idade não comprovada
-
-
- Centro 2
-
-
- Topo direita
-
-
- Topo
-
-
- Topo esquerda
-
-
- Centro
-
-
- Inferior esquerdo
-
-
- Inferior
-
-
- Inferior direito
-
-
- Baixado, agora compilando
-
-
- Script não encontrado no servidor.
-
-
- Problema no download
-
-
- Permissões insuficientes para fazer o download do script.
-
-
- Permissões insuficientes para
-
-
- Falha desconhecida para download
-
-
- Progresso do recompilamento
-
-
- recompilar
-
-
- Reset Progresso
-
-
- Zerar
-
-
- Definir funcionamento do progresso
-
-
- deixar funcionando
-
-
- Definir progresso não funcionando
-
-
- não deixar funcionando
-
-
- Compilação bem sucedida
-
-
- Compilação bem sucedida, salvando...
-
-
- Salvo.
-
-
- Script (objeto fora de alcance)
-
-
- Objeto [OBJECT] de propriedade de [OWNER]
-
-
- nenhum
-
-
-
- (Desconhecido)
-
-
-
-
- [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]
-
-
-
-
- Balanço
-
-
- Créditos
-
-
- Débitos
-
-
- Total
-
-
- Não há dados de grupo
-
-
- Propriedade-pai
-
-
- continente
-
-
- adolescente
-
-
- qualquer um
-
-
- erro
-
-
- todas as propriedades pertencem a [OWNER]
-
-
- todas as propriedades que você possui
-
-
- todas as propriedades que você gerencia para [OWNER]
-
-
- Residentes autorizados: ([ALLOWEDAGENTS], max [MAXACCESS])
-
-
- Grupos permitidos: ([ALLOWEDGROUPS], max [MAXACCESS])
-
-
- Memória de scripts no lote
-
-
- Lotes listados: [PARCELS]
-
-
- Memória usada: [COUNT] kb de [MAX] kb; [AVAILABLE] kb disponíveis
-
-
- Memória usada: [COUNT] kb
-
-
- URL dos scripts do lote
-
-
- URLs usados: [COUNT] de [MAX]; [AVAILABLE] disponíveis
-
-
- URLs usados: [COUNT]
-
-
- Erro ao solicitar dados
-
-
- Nenhum lote foi selecionado
-
-
- Erro: dados de script só disponíveis na região da posição atual
-
-
- Obtendo dados...
-
-
- Você não está autorizado a examinar este lote.
-
-
- Sentado em
-
-
- Peito
-
-
- Cabeça
-
-
- Ombro esquerdo
-
-
- Ombro direito
-
-
- Mão esquerda
-
-
- Mão direita
-
-
- Pé esquerdo
-
-
- Pé direito
-
-
- Atrás
-
-
- Pélvis
-
-
- Boca
-
-
- Queixo
-
-
- Orelha esquerda
-
-
- Orelha direita
-
-
- Olho esquerdo
-
-
- Olho direito
-
-
- Nariz
-
-
- Braço direito
-
-
- Antebraço direito
-
-
- Braço esquerdo
-
-
- Antebraço esquerdo
-
-
- Quadril direito
-
-
- Coxa direita
-
-
- Perna direita
-
-
- Quadril esquerdo
-
-
- Coxa esquerda
-
-
- Perna esquerda
-
-
- Barriga
-
-
- Peitorais D
-
-
- Peitorais E
-
-
- HUD Central 2
-
-
- HUD superior direito
-
-
- HUD centro superior
-
-
- HUD superior esquerdo
-
-
- HUD Central 1
-
-
- HUD esquerda inferior
-
-
- HUD inferior
-
-
- HUD direito inferior
-
-
- Linha [LINE], Coluna [COLUMN]
-
-
- [COUNT] encontrado
-
-
- Conteúdo do objeto
-
-
- Novo Script
-
-
- O residente para o qual escreveu está no modo 'ocupado', ou seja, ele prefere não receber nada no momento. Sua mensagem será exibida como uma MI mais tarde.
-
-
- (por nome)
-
-
- (residente)
-
-
- (objeto)
-
-
- (grupo)
-
-
- (Externo)
-
-
- Não foi definido um contrato para essa região.
-
-
- Não foi definido um contrato para essa Região. O terreno nesta região está sendo vendido pelo Proprietário, não pela Linden Lab. Favor contatar o Proprietário da região para detalhes de venda.
-
-
-
-
-
- Propriedade do Grupo
-
-
- Público
-
-
- Configurações locais
-
-
- Configurações da região
-
-
- Cliques: [TELEPORT] teletransporte, [MAP] mapa, [PROFILE] perfil
-
-
- (vai atualizar depois de publicado)
-
-
- Você não criou nenhum Destaque ou Anúncio. Clique no botão "+" para criar um Destaque ou Anúncio.
-
-
- O usuário não tem nenhum destaque ou anúncio
-
-
- Carregando...
-
-
- Preview
-
-
- Propriedades
-
-
- um objeto chamado
-
-
- possuído pelo grupo
-
-
- de um grupo desconhecido
-
-
- de
-
-
- de usuário desconhecido
-
-
- deu a você
-
-
- Você recusou um(a) [DESC] de <nolink>[NAME]</nolink>.
-
-
- Total
-
-
- comprou
-
-
- pagou a você
-
-
- depositado
-
-
- comprou passe para
-
-
- pagou taxa para o evento
-
-
- pagou prêmio para o evento
-
-
- Saldo
-
-
- Créditos
-
-
- Débitos
-
-
- [weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
-
-
- Conteúdo
-
-
- Itens adquiridos
-
-
- Cancelar
-
-
- Carregar [NAME] custa L$ [AMOUNT]
-
-
- Isso custa L$ [AMOUNT]
-
-
- Extensão de arquivo desconhecida [.%s]
-Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
-
-
- Bloquear
-
-
- Adicionar marco...
-
-
- Editar marco...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Shift+
-
-
- Arquivo salvo
-
-
- Recebendo
-
-
- AM
-
-
- PM
-
-
- PST
-
-
- PDT
-
-
- Frente
-
-
- Esquerda
-
-
- Direita
-
-
- Atrás
-
-
- Norte
-
-
- Sul
-
-
- Oeste
-
-
- Leste
-
-
- P/ cima
-
-
- P/ baixo
-
-
- Qualquer categoria
-
-
- Compras
-
-
- Aluguel de terrenos
-
-
- Aluguel de propriedade
-
-
- Atração especial
-
-
- Novos Produtos
-
-
- Emprego
-
-
- Desejado
-
-
- Serviço
-
-
- Pessoal
-
-
- Nenhum
-
-
- Locação Linden
-
-
- Adulto
-
-
- Artes e Cultura
-
-
- Negócios
-
-
- Educacional
-
-
- Games
-
-
- Moradia
-
-
- Para recém-chegados
-
-
- Parques & Natureza
-
-
- Residencial
-
-
- Estágio
-
-
- Outros
-
-
- Aluguel
-
-
- Qualquer
-
-
- Você
-
-
- Mídia múltipla
-
-
- Tocar/Pausar mídia
-
-
- Um erro foi encontrado analisando a linha de comando.
-Consulte: http://wiki.secondlife.com/wiki/Client_parameters
-Erro:
-
-
- [APP_NAME] Uso de linha de comando:
-
-
- [APP_NAME] não é capaz de acessar um arquivo que ele precisa.
-
-Isto pode ocorrer porque você de alguma maneira tem várias cópias em execução, ou o seu sistema acredita de maneira incorreta que um arquivo está aberto.
-Se a mensagem persistir, reinicie o computador e tente novamente.
-Se o error persistir, pode ser necessário desinstalar completamente [APP_NAME] e reinstalá-lo.
-
-
- Erro fatal
-
-
- [APP_NAME] exige processador com AltiVec (G4 ou superior).
-
-
- [APP_NAME] já está em execução.
-Verifique a sua barra de tarefas para obter uma cópia do programa minimizado.
-Se a mensagem persistir, reinicie o computador.
-
-
- [APP_NAME] parece ter congelado ou falhado na execução anterior. Enviar relatório de falha?
-
-
- Alerta
-
-
- [APP_NAME] é incapaz de detectar o DirectX 9.0b ou superior.
-[APP_NAME] usa o DirectX para a detecção de hardware e / ou controladores desatualizados que podem causar problemas de estabilidade, desempenho ruim e falhas. Embora você possa executar [APP_NAME] sem ele, nós recomendamos fortemente que utilize o DirectX 9.0b.
-
-Deseja continuar?
-
-
- Aviso
-
-
- Atualização automática ainda não está implementada para o Linux.
-Faça o download da versão mais recente do www.secondlife.com.
-
-
- RegisterClass falhou
-
-
- Erro
-
-
- Incapaz de funcionar com tela cheia de [WIDTH] x [HEIGHT].
-Executando em janela.
-
-
- Erro de desligamento ao destruir janela (DestroyWindow() failed)
-
-
- Erro de desligamento
-
-
- Não é possível fazer contexto do dispositivo GL
-
-
- Não é possível encontrar um formato de pixel adequado
-
-
- Não é possível encontrar descrição de formato de pixel
-
-
- [APP_NAME] requer True Color (32-bit) para ser executado.
-Por favor, vá para as configurações de vídeo do computador e defina o modo de cores para 32-bit.
-
-
- [APP_NAME] é incapaz de executar porque ele não consegue obter um canal alpha de 8 bits. Geralmente isso ocorre devido a problemas de drivers da placa de vídeo.
-Por favor, certifique-se que os últimos drivers da placa de vídeo estão instalados.
-Também não se esqueça de definir seu monitor para True Color (32-bit), em painéis de controle Configurações> Display>.
-Se você continuar a receber esta mensagem, contate o [SUPPORT_SITE].
-
-
- Não é possível definir o formato de pixel
-
-
- Não é possível criar o contexto de renderização GL
-
-
- Não é possível ativar o contexto de renderização GL
-
-
- [APP_NAME] é incapaz de funcionar por causa do seu driver de video não ter sido instalado corretamente, estão desatualizados, ou não são suportados pelo hardware. Por favor certifique-se que você possui os drivers de placa de vídeo mais recente e mesmo assim, tente reinstalá-los.
-
-If you continue to receive this message, contact the [SUPPORT_SITE].
-
-
- Barba por fazer
-
-
- Todo branco
-
-
- Olhos de Anime
-
-
- Arqueados
-
-
- Comprimento do braço
-
-
- Anexado
-
-
- Lóbulos da orelha anexados
-
-
- corte traseiro
-
-
- folgado
-
-
- Franja
-
-
- Olhos pequenos
-
-
- Tamanho da barriga
-
-
- Grande
-
-
- Bunda grande
-
-
- Cabelo volumoso: Trás
-
-
- Cabelo volumoso: Frente
-
-
- Cabelo volumoso: Topo
-
-
- cabeça grande
-
-
- Peitorais grandes
-
-
- Pontas grandes
-
-
- Negro
-
-
- Loiro
-
-
- Cabelo loiro
-
-
- Blush
-
-
- Cor do blush
-
-
- Opacidade do blush
-
-
- Definição do corpo
-
-
- Gordura
-
-
- Sardas
-
-
- Corpo cheio
-
-
- Ossatura
-
-
- Corpo magro
-
-
- Pernas arqueadas
-
-
- Caimento dos seios
-
-
- Separação dos seios
-
-
- Tamanho dos seios
-
-
- Largura do nariz
-
-
- Largo
-
-
- Tamanho da sobrancelha
-
-
- Olhos saltados
-
-
- Olhos esbugalhados
-
-
- Bulbos
-
-
- Nariz em bulbo
-
-
- Seios - massa
-
-
- Seios - suavização
-
-
- Seios - gravidade
-
-
- Seios - resistência do ar
-
-
- Efeito máximo
-
-
- Vibração
-
-
- Ganho
-
-
- Duração
-
-
- Efeito máximo
-
-
- Vibração
-
-
- Ganho
-
-
- Duração
-
-
- Efeito máximo
-
-
- Vibração
-
-
- Ganho
-
-
- Duração
-
-
- Barriga - massa
-
-
- Barriga - suavização
-
-
- Barriga - gravidade
-
-
- Barriga - resistência do ar
-
-
- Efeito máximo
-
-
- Vibração
-
-
- Ganho
-
-
- Duração
-
-
- Nádegas - massa
-
-
- Nádegas - suavização
-
-
- Nádegas - gravidade
-
-
- Nádegas - resistência do ar
-
-
- Efeito máximo
-
-
- Vibração
-
-
- Ganho
-
-
- Duração
-
-
- Efeito máximo
-
-
- Vibração
-
-
- Ganho
-
-
- Duração
-
-
- Sobrancelhas grossas
-
-
- Cabelo grosso
-
-
- Tamanho do traseiro
-
-
- Nádegas - gravidade
-
-
- Saia armada
-
-
- Saia reta
-
-
- Mais
-
-
- Chaplin
-
-
- Maçãs do rosto
-
-
- Tamanho do peito
-
-
- Ângulo do queixo
-
-
- Fissura do queixo
-
-
- Barba de contorno
-
-
- Profundidade do queixo
-
-
- Queixo pronunciado
-
-
- Queixo para dentro
-
-
- Queixo para fora
-
-
- Queixo-pescoço
-
-
- Limpar
-
-
- Fenda
-
-
- Fechar conjunto de olhos
-
-
- Fechado
-
-
- Trás fechada
-
-
- Frente fechada
-
-
- Esquerda fechada
-
-
- Direita fechada
-
-
- Pouco volume
-
-
- Colarinho posterior
-
-
- Colarinho anterior
-
-
- Canto para baixo
-
-
- Canto para cima
-
-
- Vincado
-
-
- Nariz torto
-
-
- Bainha larga
-
-
- Escuro
-
-
- Verde escuro
-
-
- Mais escuro
-
-
- Profundidade
-
-
- Salto padrão
-
-
- Densidade
-
-
- Queixo duplo
-
-
- Curvado para baixo
-
-
- Mais volume
-
-
- Ângulo da orelha
-
-
- Tamanho da orelha
-
-
- Pontas das orelhas
-
-
- Cabeça oval
-
-
- Olheiras
-
-
- Cor dos olhos
-
-
- Profundidade dos olhos
-
-
- Luminosidade dos olhos
-
-
- Abertura dos olhos
-
-
- Olho saltado
-
-
- Tamanho dos olhos
-
-
- Espaçamento dos olhos
-
-
- Arco da sobrancelha
-
-
- Densidade da sobrancelha
-
-
- Altura da sobrancelha
-
-
- Pontas da sobrancelha
-
-
- Tamanho da sobrancelha
-
-
- Comprimento das pestanas
-
-
- Delineador
-
-
- Cor do delineador
-
-
- Olhos esbugalhados
-
-
- Face raspada
-
-
- Definição facial
-
-
- Distância entre os olhos
-
-
- Lábios carnudos
-
-
- Feminino
-
-
- Dedos
-
-
- Dedos
-
-
- Punhos largos
-
-
- Chato
-
-
- Traseiro chato
-
-
- Cabeça chata
-
-
- Dedos dos pés chatos
-
-
- Tamanho dos pés
-
-
- Ângulo da testa
-
-
- Testa pronunciada
-
-
- Sardas
-
-
- Franja
-
-
- Trás cheia
-
-
- Delienador cheio
-
-
- Frente cheia
-
-
- Cabelos laterais cheios
-
-
- Lados cheios
-
-
- Brilhante
-
-
- Dedos da luva
-
-
- Comprimento das luvas
-
-
- Cabelo
-
-
- Cabelo: Trás
-
-
- Cabelo: Frente
-
-
- Cabelos: Lateral
-
-
- Cabelo penteado
-
-
- Espessura do cabelo
-
-
- Espessura do cabelo
-
-
- Divisão do cabelo
-
-
- Divistão do cabelo esquerda
-
-
- Divisão do cabelo direita
-
-
- Cabelo: Volume
-
-
- Tamanho das mãos
-
-
- Bigode
-
-
- Comprimento da cabeça
-
-
- Formato da cabeça
-
-
- Tamanho da cabeça
-
-
- Extensão da cabeça
-
-
- Altura do salto
-
-
- Formato do salto
-
-
- Altura
-
-
- Alto
-
-
- Salto alto
-
-
- Maxilar alto
-
-
- Plataformas altas
-
-
- Alto e justo
-
-
- Mais alto
-
-
- Comprimento do quadril
-
-
- Largura do quadril
-
-
- Dentro
-
-
- Cor da sombra interna
-
-
- Opacidade da sombra interna
-
-
- Canto interno dos olhos
-
-
- Sombra interna dos olhos
-
-
- Sombra interna
-
-
- Comprimento da blusa
-
-
- Dobras da jaqueta
-
-
- Ângulo da mandíbula
-
-
- Posição do maxilar
-
-
- Formato do maxilar
-
-
- Juntar
-
-
- Papo
-
-
- Ângulo do joelho
-
-
- Joelhos para dentro
-
-
- Grande
-
-
- Mãos grandes
-
-
- Parte esquerda
-
-
- Comprimento da perna
-
-
- Musculatura da perna
-
-
- Menos
-
-
- Menos gordura
-
-
- Menos barba
-
-
- Menos sardas
-
-
- Menos
-
-
- Menos gravidade
-
-
- Menos excesso
-
-
- Menos músculos
-
-
- Menos musculoso
-
-
- Menos rosado
-
-
- Menos arredondado
-
-
- Menos ancas
-
-
- Menos quadrado
-
-
- Menos volume
-
-
- Menos alma
-
-
- Lighter
-
-
- Fenda dos lábios
-
-
- Profundidade da fenda dos lábios
-
-
- Volume dos lábios
-
-
- Rosado dos lábios
-
-
- Proporção dos lábios
-
-
- Espessura dos lábios
-
-
- Largura dos lábios
-
-
- Brilho dos lábios
-
-
- Batom
-
-
- Cor do batom
-
-
- Longo
-
-
- Cabeça alongada
-
-
- Lábios longos
-
-
- Pernas longas
-
-
- Pescoço longo
-
-
- Chiquinhas longas
-
-
- Rabo de cavalo longo
-
-
- Torso longo
-
-
- Braços longos
-
-
- Pantalonas
-
-
- Camisa folgada
-
-
- Mangas folgadas
-
-
- Pneu
-
-
- Baixo
-
-
- Salto baixo
-
-
- Maxilar baixo
-
-
- Plataformas baixas
-
-
- Baixo e solto
-
-
- Mais baixo
-
-
- Mais baixa
-
-
- Bochechas abaixadas
-
-
- Masculino
-
-
- Parte do meio
-
-
- Mais
-
-
- Mais blush
-
-
- Mais gordura
-
-
- Mais barba
-
-
- Mais sombra dos olhos
-
-
- Mais sardas
-
-
- Mais volume
-
-
- Mais gravidade
-
-
- Mais batom
-
-
- Mais cintura
-
-
- Mais lábio inferior
-
-
- Mais músculos
-
-
- Mais musculoso
-
-
- Mais rosado
-
-
- Mais arredondado
-
-
- Mais ancas
-
-
- Mais inclinado
-
-
- Mais quadrado
-
-
- Mais lábios superiores
-
-
- Mais vertical
-
-
- Mais volume
-
-
- Mais alma
-
-
- Bigode
-
-
- Canto da boca
-
-
- Posição da boca
-
-
- Moicano
-
-
- Muscular
-
-
- Costeletas
-
-
- Esmate das unhas
-
-
- Cor do esmalte das unhas
-
-
- Estreito
-
-
- Costas estreitas
-
-
- Frente estreita
-
-
- Lábios estreitos
-
-
- Natural
-
-
- Comprimento do pescoço
-
-
- Espessura do pescoço
-
-
- Sem blush
-
-
- Sem delineador
-
-
- Sem sombra
-
-
- Sem brilho
-
-
- Sem batom
-
-
- Sem parte
-
-
- Sem esmalte
-
-
- Sem vermelho
-
-
- Sem pontas
-
-
- Sem branco
-
-
- Sem dobras
-
-
- Normal inferior
-
-
- Normal superior
-
-
- Nariz para esquerda
-
-
- Nariz para direita
-
-
- Tamanho do nariz
-
-
- Espessura do nariz
-
-
- Ângulo da ponta do nariz
-
-
- Formato da ponta do nariz
-
-
- Largura do nariz
-
-
- Divisão das narinas
-
-
- Largura das narinas
-
-
- Opaco
-
-
- Abrir
-
-
- Aberto atrás
-
-
- Aberto na frente
-
-
- Aberto esquerdo
-
-
- Aberto direito
-
-
- Laranja
-
-
- Fora
-
-
- Cor da sombra externa
-
-
- Opacidade da sombra externa
-
-
- Canto externo do olho
-
-
- Sombra externa do olho
-
-
- Sombra externa
-
-
- Má oclusão
-
-
- Púbis
-
-
- Unhas pintadas
-
-
- Pálido
-
-
- Cavalo da calça
-
-
- Caimento das calças
-
-
- Comprimento das calças
-
-
- Cintura da calça
-
-
- Dobras das calças
-
-
- Parte
-
-
- Divisão da franja
-
-
- Peitorais
-
-
- Pigmento
-
-
- Chiquinhas
-
-
- Rosa
-
-
- Mais rosado
-
-
- Altura da plataforma
-
-
- Largura da plataforma
-
-
- Pontudo
-
-
- Salto agulha
-
-
- Rabo de cavalo
-
-
- Saia bufante
-
-
- Olho saltado esquerdo
-
-
- Olho saltado direito
-
-
- Inchado
-
-
- Pálpebras inchadas
-
-
- Cor do arco íris
-
-
- Cabelo ruivo
-
-
- Normal
-
-
- Parte direita
-
-
- Rosado da face
-
-
- Arredondado
-
-
- Rubor
-
-
- Corado
-
-
- Cabelo desalinhado
-
-
- Culote
-
-
- Pernas magricelas
-
-
- Separar
-
-
- Raso
-
-
- Trás rente
-
-
- Face raspada
-
-
- Frente rente
-
-
- Esquerda rente para cima
-
-
- Trás rente para cima
-
-
- Rente atrás
-
-
- Rente frente
-
-
- Deslocar p/ esquerda
-
-
- Deslocar boca
-
-
- Deslocar p/ direita
-
-
- Barra da camisa
-
-
- Ajuste da camisa
-
-
- +/- amassada
-
-
- Altura do sapato
-
-
- Curto
-
-
- Braços curtos
-
-
- Pernas curtas
-
-
- Pescoço curto
-
-
- Chiquinhas curtas
-
-
- Rabo de cavalo curto
-
-
- Costeletas curtas
-
-
- Tronco curto
-
-
- Quadril curto
-
-
- Ombros
-
-
- pontas laterais
-
-
- Costeletas
-
-
- Cabelo lateral
-
-
- Cabelo lateral long
-
-
- Cabelo lateral superior
-
-
- Pescoço fino
-
-
- Ajuste de saia
-
-
- Comprimento da saia
-
-
- Testa inclinada
-
-
- Comprimento da manga
-
-
- Folga da manga
-
-
- Abertura : Atrás
-
-
- Abertura: Frente
-
-
- Abertura: Esquerda
-
-
- Abertura: Direita
-
-
- Pequeno
-
-
- Mãos pequenas
-
-
- Cabeça pequena
-
-
- Suavizar
-
-
- Suavizar cabelo
-
-
- Comprimento das meias
-
-
- Cavanhaque
-
-
- Disperso
-
-
- Cabelo espetado
-
-
- Quadrado
-
-
- Dedo quadrado
-
-
- Cabeça de Pera
-
-
- Cabeça esticada
-
-
- Afundar
-
-
- Peito afundado
-
-
- Olhos afundados
-
-
- Pentear para trás
-
-
- Pentear para frente
-
-
- Alto
-
-
- Afinar atrás
-
-
- Afinar a frente
-
-
- Salto grosso
-
-
- Pescoço grosso
-
-
- Dedo grosso
-
-
- Fino
-
-
- Sobrancelhas finas
-
-
- Lábios finos
-
-
- Nariz fino
-
-
- Queixo apertado
-
-
- Punho justo
-
-
- Calça justa
-
-
- Camisa justa
-
-
- Saia justa
-
-
- Tight Sleeves
-
-
- Formato dos dedos
-
-
- Espessura dos dos dedos
-
-
- Comprimento do tronco
-
-
- Músculos do tronco
-
-
- Tronco magricela
-
-
- Desanexado
-
-
- Uncreased
-
-
- Underbite
-
-
- Não natural
-
-
- Parte alta do nariz
-
-
- Bochechas altas
-
-
- fenda do queixo alta
-
-
- Curvatura dos cílios supériores
-
-
- Voltado para cima
-
-
- Bem vermelho
-
-
- Altura da cintura
-
-
- Corpulento
-
-
- Grisalho
-
-
- Amplo
-
-
- Costas largas
-
-
- Testa larga
-
-
- Lábios amplos
-
-
- Selvagem
-
-
- Rugas
-
-
- Adicionar às minhas Landmarks
-
-
- Editar minhas Landmarks
-
-
- Ver mais informações sobre a localização atual
-
-
- Histórico de localizações
-
-
- Região Adulta
-
-
- Região Moderada
-
-
- Região em geral
-
-
- Avatar visíveis e bate-papo permitido fora deste terreno
-
-
- [APP_NAME] Atualização
-
-
- Atualizando agora o [APP_NAME]...
-
-
- Instalando [APP_NAME]...
-
-
- Seu visualizador [APP_NAME] está sendo atualizado para a versão mais recente. Isso pode levar algum tempo, então por favor seja paciente.
-
-
- Fazendo o download da atualização...
-
-
- Fazendo o download da atualização
-
-
- Falha no download da atualização
-
-
- Um erro ocorreu ao atualizar [APP_NAME]. Por favor, faça o download da versão mais recente em www.secondlife.com.
-
-
- Falha ao instalar a atualização
-
-
- Falha ao iniciar o visualizador
-
-
- [APP_NAME]: Entrada de itens rápida demais de [FROM_NAME], visualização automática suspensa por [TIME] segundos
-
-
- [APP_NAME]: Entrada de itens rápida demais, visualização automática suspensa por [TIME] segundos
-
-
- -- Log de mensagem instantânea habilitado --
-
-
- [NAME] está digitando...
-
-
- (Anônimo)
-
-
- (Moderado: Voz desativado por padrão)
-
-
- Bate-papo de texto não está disponível para esta chamada.
-
-
- Seu bate- papo de texto foi desabilitado por um Moderador do Grupo.
-
-
- Clique aqui para menagem instantânea.
-
-
- Para
-
-
- (Moderador)
-
-
- (Salvo em [LONG_TIMESTAMP])
-
-
- Para visualizar esta mensagem, você deve desmarcar "Apenas amigos e grupos podem me ligar ou enviar MIs" em Preferências/Privacidade.
-
-
- Ligação atendida
-
-
- Você iniciou uma ligação de voz
-
-
- Você entrou na ligação
-
-
- [NAME] iniciou uma ligação de voz
-
-
- Entrando em ligação de voz...
-
-
- Conectado. Para sair, clique em Desligar
-
-
- Saiu da ligação de voz
-
-
- Conversa com [AGENT_NAME]
-
-
- Oferta de item de inventário
-
-
- (Sessão de MI inexistente)
-
-
- Você é o único usuário desta sessão.
-
-
- [NAME] está offline.
-
-
- Clique no botão [BUTTON NAME] para aceitar/ conectar a este bate-papo em voz.
-
-
- Você bloqueou este residente. Se quiser retirar o bloqueio, basta enviar uma mensagem.
-
-
- Erro de solicitação, tente novamente mais tarde.
-
-
- Erro na requisição, por favor, tente novamente.
-
-
- Você não tem permissões suficientes.
-
-
- A sessão deixou de existir
-
-
- Você não possui esta habilidade.
-
-
- Você não possui esta habilidade.
-
-
- Você não é um moderador de sessão.
-
-
- Bate-papo de texto desativado por um moderador.
-
-
- Um moderador do grupo desabilitou seu bate-papo em texto.
-
-
- Não foi possível adicionar usuários na sessão de bate-papo com [RECIPIENT].
-
-
- Não foi possível enviar sua mensagem para o bate-papo com [RECIPIENT].
-
-
- Não foi possível enviar sua mensagem na sessão de bate- papo com [RECIPIENT].
-
-
- Erro durante a moderação.
-
-
- Você foi tirado do grupo.
-
-
- Você foi removido do grupo.
-
-
- Você não possui mais a habilidade de estar na sessão de bate-papo.
-
-
- [SOURCES] disse alguma coisa
-
-
- [SOURCES] disseram alguma coisa
-
-
- A inicialização da sessão expirou
-
-
- Posição inicial definida.
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] lhe pagou L$ [AMOUNT] [REASON].
-
-
- [NAME] lhe pagou L$ [AMOUNT]
-
-
- Você pagou L$[AMOUNT] por [REASON] a [NAME].
-
-
- Você acaba de pagar L$[AMOUNT].
-
-
- Você pagou L$[AMOUNT] a [NAME].
-
-
- Você pagou L$[AMOUNT] por [REASON].
-
-
- Você não pagou L$[AMOUNT] a [NAME] referentes a [REASON].
-
-
- Você não pagou L$[AMOUNT].
-
-
- Você não pagou L$[AMOUNT] a [NAME].
-
-
- Você não pagou L$[AMOUNT] referentes a [REASON].
-
-
- por [ITEM]
-
-
- por uma parcela
-
-
- por um passe de acesso
-
-
- para doar um terreno
-
-
- para criar um grupo
-
-
- para entrar em um grupo
-
-
- para carregar
-
-
- para publicar um anúncio
-
-
- Dando L$ [AMOUNT]
-
-
- O upload custa L$ [AMOUNT]
-
-
- Isso custa L$ [AMOUNT]
-
-
- Comprando terreno selecionado L$ [AMOUNT]
-
-
- Esse objeto custa L$ [AMOUNT]
-
-
- Todos
-
-
- Oficiais
-
-
- Proprietários
-
-
- Conectado
-
-
- Carregando...
-
-Denunciar abuso
-
-
- Nova forma
-
-
- Nova pele
-
-
- Novo cabelo
-
-
- Novos olhos
-
-
- Nova camisa
-
-
- Novas calças
-
-
- Novos sapatos
-
-
- Novas meias
-
-
- Nova blusa
-
-
- Novas luvas
-
-
- Nova camiseta
-
-
- Novas roupa de baixo
-
-
- Nova saia
-
-
- Novo alpha
-
-
- Nova tatuagem
-
-
- Novo físico
-
-
- Item inválido
-
-
- Novo gesto
-
-
- Novo script
-
-
- Nova nota
-
-
- Nova pasta
-
-
- Conteúdo
-
-
- Gesto
-
-
- Gestos masculinos
-
-
- Gestos femininos
-
-
- Outros gestos
-
-
- Gestos da fala
-
-
- Gestos comuns
-
-
- Perdão - masculino
-
-
- Deixe-me em paz - masculino
-
-
- Mandar beijo - masculino
-
-
- Vaia - masculino
-
-
- Maçante - masculino
-
-
- Ôpa! - masculino
-
-
- Risada - masculino
-
-
- Quero distância! - masculino
-
-
- Encolher de ombros - masculino
-
-
- Mostrar a língua - masculino
-
-
- Wow - masculino
-
-
- Engraçado - Feminino
-
-
- Chorar - Feminino
-
-
- Com vergonha - Feminino
-
-
- Perdão - fem
-
-
- Deixe-me em paz - feminino
-
-
- Mandar beijo - fem
-
-
- Vaia - fem
-
-
- Maçante - feminino
-
-
- Ôpa - feminino
-
-
- E aí, beliza? - Feminino
-
-
- Risada - feminina
-
-
- Que chique - Feminino
-
-
- Acenar - Feminino
-
-
- Por favor - Feminino
-
-
- Quero distância! - feminino
-
-
- Encolher ombros - feminino
-
-
- Mostrar a língua - feminino
-
-
- Wow - feminino
-
-
- /reverência
-
-
- /palmas
-
-
- /contar
-
-
- /apagar
-
-
- /dane_se
-
-
- /músculos
-
-
- /não
-
-
- /não!
-
-
- /papel
-
-
- /apontar_eu
-
-
- /apontar_você
-
-
- /pedra
-
-
- /tesoura
-
-
- /fumar
-
-
- /alongar
-
-
- /assobiar
-
-
- /sim
-
-
- /sim!
-
-
- ldt
-
-
- dança1
-
-
- dança2
-
-
- dança3
-
-
- dança4
-
-
- dança5
-
-
- dança6
-
-
- dança7
-
-
- dança8
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
-
-
- nenhum/nehum
-
-
- A imagem excede o limite [WIDTH]*[HEIGHT]
-
-
-
- Aconteceu algo inesperado, apesar de termos tentado impedir isso.
-
- Cheque secondlifegrid.net para saber se foi detectado um problema com o serviço.
- Se o problema persistir, cheque a configuração da sua rede e firewall.
-
-
- Domingo:Segunda:Terça:Quarta:Quinta:Sexta:Sábado
-
-
- Dom:Seg:Ter:Qua:Qui:Sex:Sab
-
-
- Janeiro:Fevereiro:Março:Abril:Maio:Junho:Julho:Agosto:Setembro:Outubro:Novembro:Dezembro
-
-
- Jan:Fev:Mar:Abr:Maio:Jun:Jul:Ago:Set:Out:Nov:Dez
-
-
- [MDAY]
-
-
- AM
-
-
- PM
-
-
- US$ [AMOUNT]
-
-
- Plano
-
-
- Cargos
-
-
- Identidade do lote
-
-
- Gestão do lote
-
-
- ID do lote
-
-
- Configurações do lote
-
-
- Poderes do lote
-
-
- Acesso ao lote
-
-
- Conteúdo do lote
-
-
- Gestão de objetos
-
-
- Contabilidade
-
-
- Avisos
-
-
- Bate-papo
-
-
- Excluir itens selecionados?
-
-
- Excluir item selecionado?
-
-
- Este look não possui nenhuma peça
-
-
- Selecione um editor utilizando a configuração ExternalEditor.
-
-
- O editor externo especificado não foi localizado.
-Tente colocar o caminho do editor entre aspas.
-(ex. "/caminho para/editor" "%s")
-
-
- Error ao analisar o comando do editor externo.
-
-
- Falha de execução do editor externo.
-
-
- Falha na tradução: [REASON]
-
-
- Erro ao analisar resposta de tradução.
-
-
- Esc
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Início
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Adicionar
-
-
- Subtrair
-
-
- Multiplicar
-
-
- Dividir
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Vendo balizas de partículas (azul)
-
-
- Vendo balizas de objetos físicos (verde)
-
-
- Vendo balizas de objetos com script (vermelho)
-
-
- Vendo objeto com script com balizas com funcionalidade de toque (vermelho)
-
-
- Vendo balizas de som (amarelo)
-
-
- Vendo balizas de mídia (branco)
-
-
- Ocultar partículas
-
-
- Sobre terrenos
-
-
- Aparência
-
-
- Avatar
-
-
- Construir
-
-
- Bate-papo
-
-
- Bússola
-
-
- Destinos
-
-
- Gestos
-
-
- Como
-
-
- Inventário
-
-
- Mapa
-
-
- Mercado
-
-
- Mini Mapa
-
-
- Andar/correr/voar
-
-
- Caixa de saída do lojista
-
-
- Pessoas
-
-
- Destaques
-
-
- Lugares
-
-
- Preferências
-
-
- Perfil
-
-
- Buscar
-
-
- Foto
-
-
- Falar
-
-
- Controles da câmera
-
-
- Configurações de voz
-
-
- Informações sobre o terreno que você está visitando
-
-
- Mudar seu avatar
-
-
- Escolha um avatar completo
-
-
- Construindo objetos e redimensionando terreno
-
-
- Bater papo com pessoas próximas usando texto
-
-
- Bússola
-
-
- Destinos de interesse
-
-
- Gestos para seu avatar
-
-
- Como executar tarefas comuns
-
-
- Exibir e usar seus pertences
-
-
- Mapa-múndi
-
-
- Faça compras
-
-
- Mostrar quem está aqui
-
-
- Movendo seu avatar
-
-
- Transferir itens para o seu mercado para venda
-
-
- Amigos, grupos e pessoas próximas
-
-
- Lugares mostrados como favoritos em seu perfil
-
-
- Lugares salvos
-
-
- Preferências
-
-
- Edite ou visualize seu perfil
-
-
- Encontre lugares, eventos, pessoas
-
-
- Tirar uma foto
-
-
- Fale com pessoas próximas usando seu microfone
-
-
- Alterar o ângulo da câmera
-
-
- Controles de volume das chamadas e pessoas próximas a você no mundo virtual
-
-
- atualmente na sua barra de ferramentas inferior
-
-
- atualmente na sua barra de ferramentas esquerda
-
-
- atualmente na sua barra de ferramentas direita
-
-
- Reter%
-
-
- Detalhe
-
-
- Detalhamento maior
-
-
- Superfície
-
-
- Sólido
-
-
- Conclusão
-
-
- Visualizar
-
-
- Normal
-
-
- Muito baixo
-
-
- Baixo
-
-
- Médio
-
-
- Alto
-
-
- Muito alto
-
-
diff --git a/indra/newview/skins/steam/xui/ru/strings.xml b/indra/newview/skins/steam/xui/ru/strings.xml
deleted file mode 100644
index 2b4c6e6f48..0000000000
--- a/indra/newview/skins/steam/xui/ru/strings.xml
+++ /dev/null
@@ -1,5024 +0,0 @@
-
-
-
-
- Second Life
-
-
- Second Life
-
-
- SECOND LIFE
-
-
- Сетка Second Life
-
-
- Портал поддержки Second Life
-
-
- Проверка оборудования...
-
-
- Загружается [APP_NAME]...
-
-
- Очистка кэша...
-
-
- Инициализация кэша текстур...
-
-
- Инициализация виртуальной файловой системы...
-
-
- Ошибка инициализации графики. Обновите графический драйвер!
-
-
- Восстановление...
-
-
- Изменение разрешения...
-
-
- Собственная яркость (устаревший параметр)
-
-
- Вход... Может показаться, что программа [APP_NAME] зависла. Ожидайте.
-
-
- Вход...
-
-
- Аутентификация
-
-
- Идет обслуживание аккаунта...
-
-
- Предыдущая попытка входа была неудачной. Вход: попытка № [NUMBER]
-
-
- Загрузка мира...
-
-
- Инициализация встроенного веб-браузера...
-
-
- Инициализация мультимедиа...
-
-
- Загрузка шрифтов...
-
-
- Проверка файлов кэша (может занять 60-90 с)...
-
-
- Обработка ответа...
-
-
- Инициализация мира...
-
-
- Декодирование изображений...
-
-
- Инициализация QuickTime...
-
-
- QuickTime не найден – ошибка инициализации.
-
-
- Успешная инициализация QuickTime.
-
-
- Запрос возможностей региона...
-
-
- Запрос возможностей региона, попытка [NUMBER]...
-
-
- Устанавливается связь с регионом...
-
-
- Подключение к региону...
-
-
- Загрузка одежды...
-
-
- Сервер возвратил недействительный или поврежденный сертификат. Обратитесь к администратору сетки.
-
-
- Для доступа к серверу использовалось недействительное имя узла. Проверьте URL-адрес SL или имя узла в сетке.
-
-
- Судя по всему, истек срок действия сертификата, возвращенного сеткой. Проверьте время, установленное в системе, или обратитесь к администратору сетки.
-
-
- Не удалось использовать в протоколе SSL сертификат, возвращенный сервером. Обратитесь к администратору сетки.
-
-
- В цепочке сертификатов серверов слишком много сертификатов. Обратитесь к администратору сетки.
-
-
- Не удалось проверить подпись сертификата, возвращенного сервером сетки. Обратитесь к администратору сетки.
-
-
- Ошибка сети: не удалось установить соединение. Проверьте подключение к сети.
-
-
- Ошибка входа.
-
-
- Выйти
-
-
- http://join.secondlife.com/index.php?sourceid=1206_steam&lang=ru-RU
-
-
- У клиента, которым вы пользуетесь, больше нет доступа к игре Second Life. Загрузить новую версию клиента можно по адресу
-http://secondlife.com/download
-
-Дополнительные сведения см. в разделе вопросов и ответов по адресу
-http://secondlife.com/viewer-access-faq
-
-
- Доступно необязательное обновление клиента: [VERSION]
-
-
- Необходимо обновить клиент: [VERSION]
-
-
- С этого клиента уже выполнен вход.
-
-
- Извините! Не удается обеспечить ваш вход.
-Убедитесь, что вы правильно ввели:
- * имя пользователя (например, bobsmith12 или steller.sunshine)
- * пароль
-Кроме того, убедитесь, что режим Caps Lock отключен.
-
-
- В качестве меры предосторожности ваш пароль изменен.
-Перейдите на страницу своего аккаунта по адресу http://secondlife.com/password
-и ответьте на контрольный вопрос, чтобы восстановить свой пароль
-Приносим извинения за неудобство.
-
-
- В нашу систему внесены изменения, поэтому вам следует восстановить свой пароль.
-Перейдите на страницу своего аккаунта по адресу http://secondlife.com/password
-и ответьте на контрольный вопрос, чтобы восстановить свой пароль
-Приносим извинения за неудобство.
-
-
- Сайт Second Life временно закрыт на техническое обслуживание.
-В данное время входить могут только сотрудники.
-Обновление состояния см. на веб-странице www.secondlife.com/status.
-
-
- Вход в Second Life временно ограничен, чтобы сохранить наивысшее качество игрового мира для текущих пользователей.
-
-В это время у пользователей с бесплатными аккаунтами не будет доступа к Second Life, чтобы у тех, кто заплатил, было больше места.
-
-
- Нельзя входить в игру Second Life на этом компьютере.
-Если вы считаете, что это ошибка, отправьте сообщение по адресу
-support@secondlife.com.
-
-
- Ваш аккаунт не будет доступен до
-[TIME] по тихоокеанскому времени.
-
-
- В данное время нам не удается выполнить ваш запрос.
-Обратитесь за помощью в службу поддержки Second Life по адресу http://secondlife.com/support.
-Если вам не удается изменить свой пароль, позвоните по телефону (866) 476-9763.
-
-
- При входе обнаружена несогласованность данных.
-Напишите сообщения по адресу support@secondlife.com.
-
-
- Выполняется небольшое обслуживание вашего аккаунта.
-Ваш аккаунт не будет доступен до
-[TIME] по тихоокеанскому времени.
-Если вы считаете, что это ошибка, отправьте сообщение по адресу support@secondlife.com.
-
-
- В ответ на запрос выхода симулятор возвратил сообщение о сбое.
-
-
- В системе выполняется выход для вашего аккаунта.
-Она будет недоступна до
-[TIME] по тихоокеанскому времени.
-
-
- Не удается создать допустимый сеанс.
-
-
- Не удается подключиться к симулятору.
-
-
- Вы можете входить в Second Life только
-от [START] до [END] по тихоокеанскому времени.
-Заходите в это время.
-Если вы считаете, что это ошибка, отправьте сообщение по адресу support@secondlife.com.
-
-
- Неправильные параметры.
-Если вы считаете, что это ошибка, отправьте сообщение по адресу support@secondlife.com.
-
-
- Имя должно состоять только из букв и цифр.
-Если вы считаете, что это ошибка, отправьте сообщение по адресу support@secondlife.com.
-
-
- Фамилия должна состоять только из букв и цифр.
-Если вы считаете, что это ошибка, отправьте сообщение по адресу support@secondlife.com.
-
-
- Регион переходит в автономный режим.
-Попробуйте повторно войти через минуту.
-
-
- Агент отсутствует в регионе.
-Попробуйте повторно войти через минуту.
-
-
- Вход в регион выполнен в другом сеансе.
-Попробуйте повторно войти через минуту.
-
-
- Для региона выполнен выход в предыдущем сеансе.
-Попробуйте повторно войти через минуту.
-
-
- Для региона все еще выполняется выход в предыдущем сеансе.
-Попробуйте повторно войти через минуту.
-
-
- В последнем сеансе для региона выполнен выход.
-Попробуйте повторно войти через минуту.
-
-
- Для региона начат процесс выхода.
-Попробуйте повторно войти через минуту.
-
-
- Во время вашего последнего сеанса система начала процедуру выхода.
-Попробуйте повторно войти через минуту.
-
-
- Возможно, в этом регионе возникли проблемы. Проверьте подключение к Интернету.
-
-
- Сохранение настроек...
-
-
- Выполняется выход...
-
-
- Игра закрывается...
-
-
- Произошло отключение от региона, в котором вы находились.
-
-
- Вы отправлены в недействительный регион.
-
-
- Тестирование отключения клиента
-
-
- Человек
-
-
- (нет имени)
-
-
- Владелец:
-
-
- Общедоступно
-
-
- (группа)
-
-
- Продается: L$[AMOUNT]
-
-
- Стройка в составе группы
-
-
- Стройка запрещена
-
-
- Стройка в составе группы
-
-
- Небезопасно
-
-
- Полеты запрещены
-
-
- Скрипты для группы
-
-
- Скрипты запрещены
-
-
- Земля:
-
-
- Сюда можно перетащить только одну вещь
-
-
-
- Нельзя выложить предметы из папке «Торговые исходящие»
-
-
- Часть этих объектов нельзя продать или передать.
-
-
- Ваша папка «Торговые исходящие» может получать вещи только непосредственно из вашего инвентаря
-
-
- Носимые предметы нельзя поместить в папку «Торговые исходящие»
-
-
- Визитки нельзя поместить в папку «Торговые исходящие»
-
-
- Глубина вложения папок превышает 3
-
-
- В папке верхнего уровня более 20 подпапок
-
-
- В папке верхнего уровня более 200 предметов
-
-
- Папку нельзя переместить в ее подпапку
-
-
- Папку нельзя переместить саму в себя
-
-
- Щелкните, чтобы просмотреть эту веб-страницу
-
-
- Щелкните, чтобы просмотреть информацию об этом месте
-
-
- Щелкните, чтобы просмотреть профиль этого жителя
-
-
- Узнать больше об этом жителе
-
-
- Щелкните, чтобы не слышать этого жителя
-
-
- Щелкните, чтобы слышать этого жителя
-
-
- Щелкните, чтобы открыть личный чат с этим жителем
-
-
- Щелкните, чтобы заплатить жителю
-
-
- Щелкните, чтобы предложить этому жителю телепортацию
-
-
- Щелкните, чтобы предложить этому жителю дружбу
-
-
- Щелкните, чтобы просмотреть описание группы
-
-
- Щелкните, чтобы просмотреть описание события
-
-
- Щелкните, чтобы просмотреть эту рекламу
-
-
- Щелкните, чтобы посмотреть описание участка
-
-
- Щелкните, чтобы телепортироваться в это место
-
-
- Щелкните, открыть описание этого объекта
-
-
- Щелкните, чтобы посмотреть это место на карте
-
-
- Щелкните, чтобы выполнить команду secondlife://
-
-
-
- Телепортироваться в
-
-
- Показать карту для
-
-
- Откл. звук
-
-
- Вкл. звук
-
-
- IM
-
-
- Заплатить
-
-
- Предложить телепортацию в
-
-
- Предложить дружбу
-
-
- Закрыть (⌘W)
-
-
- Закрыть (Ctrl+W)
-
-
- Закрыть
-
-
- Развернуть
-
-
- Свернуть
-
-
- Отделить
-
-
- Присоединить
-
-
- Показать справку
-
-
- Поиск...
-
-
- Ничего не найдено.
-
-
- Получение...
-
-
- Заметки о выпуске
-
-
- Загрузка...
-
-
- (без имени)
-
-
- (ожидание)
-
-
- (несколько)
-
-
- (нет)
-
-
- [ORDER] абонента Avaline
-
-
- Ошибок нет
-
-
- Запрос актива: сбой
-
-
- Запрос актива: файл не существует
-
-
- Запрос актива: актив не найден в базе данных
-
-
- Конец файла
-
-
- Не удается открыть файл
-
-
- Файл не найден
-
-
- Вышло время передачи файла
-
-
- Обрыв в канале
-
-
- Не достигнута договоренность по цене между клиентом и сервером
-
-
- Неизвестный статус
-
-
- текстуру
-
-
- звук
-
-
- визитку
-
-
- закладку
-
-
- старый скрипт
-
-
- одежду
-
-
- объект
-
-
- заметку
-
-
- папку
-
-
- корневой каталог
-
-
- скрипт LSL2
-
-
- байт-код LSL
-
-
- текстуру TGA
-
-
- часть тела
-
-
- снимок
-
-
- найденные вещи
-
-
- изображение TGA
-
-
- содержимое корзины
-
-
- изображение JPEG
-
-
- анимацию
-
-
- жест
-
-
- состояние симуляции
-
-
- избранное
-
-
- ссылку
-
-
- ссылку на папку
-
-
- сетка
-
-
- (внешний вид редактируется)
-
-
- Нет на месте
-
-
- Не беспокоить
-
-
- В черном списке
-
-
- Страх
-
-
- Гнев
-
-
- Нет на месте
-
-
- Сальто назад
-
-
- Хохот
-
-
- Широкая улыбка
-
-
- Воздушный поцелуй
-
-
- Скука
-
-
- Поклон
-
-
- Хлопок
-
-
- Учтивый поклон
-
-
- Плач
-
-
- Танец 1
-
-
- Танец 2
-
-
- Танец 3
-
-
- Танец 4
-
-
- Танец 5
-
-
- Танец 6
-
-
- Танец 7
-
-
- Танец 8
-
-
- Презрение
-
-
- Питьё
-
-
- Смущение
-
-
- Погрозить пальцем
-
-
- Поднимание кулака
-
-
- Парящий Будда
-
-
- Хмурость
-
-
- Нетерпение
-
-
- Прыжок радости
-
-
- Поцелуй в зад
-
-
- Поцелуй
-
-
- Смех
-
-
- Демонстрация мускулов
-
-
- Грустный отказ
-
-
- Отказ
-
-
- Ня-ня-ня
-
-
- Двойка руками
-
-
- Открывание рта
-
-
- Дружелюбие
-
-
- Указывание на кого-то
-
-
- Указывание на себя
-
-
- Удар левой рукой
-
-
- Удар правой рукой
-
-
- Счет в КНБ
-
-
- КНБ – бумага
-
-
- КНБ – камень
-
-
- КНБ – ножницы
-
-
- Отказ
-
-
- «Вертушка»
-
-
- Грусть
-
-
- Приветствие
-
-
- Крик
-
-
- Пожимание плечами
-
-
- Улыбка
-
-
- Курение не в затяжку
-
-
- Курение в затяжку
-
-
- Бросить сигарету
-
-
- Удивление
-
-
- Удар мечом
-
-
- Вспышка гнева
-
-
- Показ языка
-
-
- Приветствие рукой
-
-
- Шепот
-
-
- Свист
-
-
- Подмигивание
-
-
- Подмигивание по-голливудски
-
-
- Беспокойство
-
-
- Радостное согласие
-
-
- Согласие
-
-
- Несколько
-
-
- Загрузка...
-
-
- Не в сети
-
-
- [AREA] м² L$[PRICE]
-
-
- Ничего не найдено.
-
-
- ОК
-
-
- Преждевременный конец файла
-
-
- Не удается найти объект ROOT или JOINT.
-
-
- шепчет:
-
-
- кричит:
-
-
- Подключение к голосовому чату...
-
-
- Подключение установлено
-
-
- В этом месте голосовая связь недоступна
-
-
- Отключение от общего голосового чата
-
-
- Будет установлено подключение к локальному голосовому чату
-
-
- Объекту «[OBJECTNAME]», который принадлежит пользователю «[OWNERNAME]» и находится в [REGIONPOS] в регионе «[REGIONNAME]», предоставлено разрешение: [PERMISSIONS].
-
-
- Объекту «[OBJECTNAME]», который принадлежит пользователю «[OWNERNAME]» и находится в [REGIONPOS] в регионе «[REGIONNAME]», отказано в разрешении: [PERMISSIONS].
-
-
- У вас берут Linden-деньги
-
-
- Действия при активации элементов управления
-
-
- Новое сопоставление элементов управления
-
-
- Анимировать ваш аватар
-
-
- Прикрепить к аватару
-
-
- Отказаться от владения, сделать всеобщим
-
-
- Связать или отменить связь с другими объектами
-
-
- Добавление и удаление связей с другими объектами
-
-
- Изменить разрешения
-
-
- Следить за камерой
-
-
- Управлять камерой
-
-
- Нет подключения
-
-
- Общий
-
-
- Умеренный
-
-
- Для взрослых
-
-
- Не в сети
-
-
- Неизвестно
-
-
- (неизвестно)
-
-
- Землевладение/весь регион
-
-
- Землевладение/поместье
-
-
- Материк/поместье
-
-
- Материк/весь регион
-
-
- Все файлы
-
-
- Звуки
-
-
- Анимация
-
-
- Изображения
-
-
- Сохранить
-
-
- Загрузить
-
-
- Изображения TGA
-
-
- Изображения BMP
-
-
- Видео AVI
-
-
- Анимация XAF
-
-
- XML-файл
-
-
- RAW-файл
-
-
- Несжатые изображения
-
-
- Загрузить файлы
-
-
- Выбрать каталог
-
-
- Скрипты
-
-
- На месте
-
-
- Нет на месте
-
-
- Не занят(а)
-
-
- Не беспокоить
-
-
- Фигура
-
-
- Кожа
-
-
- Волосы
-
-
- Глаза
-
-
- Рубашка
-
-
- Брюки
-
-
- Обувь
-
-
- Носки
-
-
- Пиджак
-
-
- Перчатки
-
-
- Майка
-
-
- Трусы
-
-
- Юбка
-
-
- Альфа-маска
-
-
- Тату
-
-
- Физические данные
-
-
- ошибка
-
-
- нет
-
-
- Рубашка не надета
-
-
- Брюки не надеты
-
-
- Обувь не надета
-
-
- Носки не надеты
-
-
- Пиджак не надет
-
-
- Перчатки не надеты
-
-
- Майка не надета
-
-
- Трусы не надеты
-
-
- Юбка не надета
-
-
- Альфа-маска не надета
-
-
- Тату не надето
-
-
- Физика не учитывается
-
-
- ошибка
-
-
- Создать фигуру
-
-
- Создать кожу
-
-
- Создать волосы
-
-
- Создать глаза
-
-
- Создать рубашку
-
-
- Создать брюки
-
-
- Создать обувь
-
-
- Создать носки
-
-
- Создать пиджак
-
-
- Создать перчатки
-
-
- Создать майку
-
-
- Создать трусы
-
-
- Создать юбку
-
-
- Создать альфа-маску
-
-
- Создать тату
-
-
- Создать физику
-
-
- ошибка
-
-
- Создать [WEARABLE_ITEM]
-
-
- Далее
-
-
- ОК
-
-
- Групповое уведомление
-
-
- Групповые уведомления
-
-
- Отправитель
-
-
- Вложение:
-
-
- Здесь можно просмотреть последние уведомления или отказаться от их получения.
-
-
- Открыть вложение
-
-
- Сохранить вложение
-
-
- Предложена телепортация
-
-
- Пока вы отсутствовали, пришли новые уведомления.
-
-
- Других уведомлений: %d
-
-
- Правая рука
-
-
- Голова
-
-
- Левая рука
-
-
- Левая нога
-
-
- Торс
-
-
- Правая нога
-
-
- низкая
-
-
- средняя
-
-
- высокая
-
-
- Нажмите ESC, чтобы вернуться к обычному обзору
-
-
- Не нашли того, что вам нужно? Воспользуйтесь [secondlife:///app/search/all/[SEARCH_TERM] поиском].
-
-
- Не нашли того, что вам нужно? Воспользуйтесь [secondlife:///app/search/places/[SEARCH_TERM] поиском].
-
-
- Перетащите сюда закладку, чтобы добавить ее в список избранного.
-
-
- В вашем инвентаре нет копии этой текстуры
-
-
- Здесь будут показаны ваши покупки из торгового центра. Их можно будет перетащить в ваш инвентарь для использования.
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
-
-
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
-
-
- Продавать вещи в торговом центре может кто угодно.
-
-
-
- Если вы хотите стать торговцем, [[MARKETPLACE_CREATE_STORE_URL] создайте магазин].
-
-
- Ваша папка «Исходящие» пуста.
-
-
-
- Перетащите папки в эту область и щелкните «Отправить в торговый центр», чтобы выставить их на продажу в [[MARKETPLACE_DASHBOARD_URL] Торговом центре].
-
-
- Ошибок нет
-
-
- Ошибка. Прежде чем отправлять вещи в магазин, необходимо зарегистрироваться как торговец (бесплатно).
-
-
- Ошибка. В этой папке нет контента.
-
-
- Ошибка. Не удается передать эту вещь, поскольку в вашем торговом аккаунте слишком много вещей, не связанных с продуктами. Чтобы исправить эту ошибку, войдите на веб-сайт торгового центра и уменьшите число своих вещей, которые ни с чем не связаны.
-
-
- Ошибка. Эта вещь содержит слишком много объектов. Исправьте эту ошибку, сложив объекты в коробки и уменьшив их общее число (должно быть меньше 200).
-
-
- Ошибка. Эта вещь содержит слишком много уровней вложенных папок. Измените структуру так, чтобы уровней вложенных папок было не более 3.
-
-
- Ошибка. Эту вещь нельзя продать в магазине.
-
-
- Ошибка. Эта вещь создает проблему. Повторите попытку позже.
-
-
- Открыть закладки
-
-
-
-
-
-
-
-
- Загрузка содержимого...
-
-
- Нет контента
-
-
-
-
- Да
-
-
- Нет
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Мой инвентарь
-
-
- Библиотека
-
-
- Текстуры
-
-
- Звуки
-
-
- Визитки
-
-
- Закладки
-
-
- Скрипты
-
-
- Одежда
-
-
- Объекты
-
-
- Заметки
-
-
- Новая папка
-
-
- Инвентарь
-
-
- Несжатые изображения
-
-
- Части тела
-
-
- Корзина
-
-
- Фотоальбом
-
-
- Бюро находок
-
-
- Несжатые звуки
-
-
- Анимация
-
-
- Жесты
-
-
- Мое избранное
-
-
- Мое избранное
-
-
- Текущий костюм
-
-
- Начальные костюмы
-
-
- Мои костюмы
-
-
- Аксессуары
-
-
- Меши
-
-
- Друзья
-
-
- Все
-
-
- Нет прикрепленных объектов
-
-
- Присоединения (осталось гнезд: [COUNT])
-
-
- Купить
-
-
- Купить за L$
-
-
- Камень
-
-
- Металл
-
-
- Стекло
-
-
- Дерево
-
-
- Плоть
-
-
- Пластик
-
-
- Резина
-
-
- Светлый
-
-
- SHIFT
-
-
- CTRL
-
-
- Грудь
-
-
- Череп
-
-
- Левое плечо
-
-
- Правое плечо
-
-
- Левая кисть
-
-
- Правая кисть
-
-
- Левая ступня
-
-
- Правая ступня
-
-
- Позвоночник
-
-
- Таз
-
-
- Рот
-
-
- Подбородок
-
-
- Левое ухо
-
-
- Правое ухо
-
-
- Левый глаз
-
-
- Правый глаз
-
-
- Нос
-
-
- Правое плечо
-
-
- Правое предплечье
-
-
- Левое плечо
-
-
- Левое предплечье
-
-
- Правое бедро
-
-
- Правое колено
-
-
- Правая голень
-
-
- Левое бедро
-
-
- Левое колено
-
-
- Левая голень
-
-
- Живот
-
-
- Левая грудь
-
-
- Правая грудь
-
-
- Шея
-
-
- Центр аватара
-
-
- Неверная точка присоединения
-
-
- [AGEYEARS] [AGEMONTHS]
-
-
- [AGEYEARS]
-
-
- [AGEMONTHS]
-
-
- [AGEWEEKS]
-
-
- [AGEDAYS]
-
-
- Сегодня
-
-
- [COUNT] год
-
-
- [COUNT] года
-
-
- [COUNT] лет
-
-
- [COUNT] месяц
-
-
- [COUNT] месяца
-
-
- [COUNT] месяцев
-
-
- [COUNT] неделя
-
-
- [COUNT] недели
-
-
- [COUNT] недель
-
-
- [COUNT] день
-
-
- [COUNT] дня
-
-
- [COUNT] дней
-
-
- [COUNT] участник
-
-
- [COUNT] участника
-
-
- [COUNT] участников
-
-
- Житель
-
-
- Гость
-
-
- Учредитель
-
-
- Сотрудник Linden Lab
-
-
- Есть информация о платежах
-
-
- Есть зарегистрир. информация о платежах
-
-
- Нет информации о платежах
-
-
- Возраст проверен
-
-
- Возраст не проверен
-
-
- В центре 2
-
-
- Вверху справа
-
-
- Вверху
-
-
- Вверху слева
-
-
- В центре
-
-
- Внизу слева
-
-
- Внизу
-
-
- Внизу справа
-
-
- Загружено, компилируется
-
-
- Скрипт не найден на сервере.
-
-
- Проблема при загрузке
-
-
- Недостаточно разрешений для загрузки скрипта.
-
-
- Недостаточно разрешений для
-
-
- Неизвестный сбой загрузки
-
-
- Ход повторной компиляции
-
-
- скомпилировать повторно
-
-
- Ход сброса
-
-
- сброс
-
-
- Ход запуска
-
-
- запустить
-
-
- Ход остановки выполнения
-
-
- прекратить выполнение
-
-
- Компиляция успешно выполнена!
-
-
- Компиляция успешно выполнена, сохраняется...
-
-
- Сохранение завершено.
-
-
- Скрипт (объект вне области)
-
-
- Объект [OBJECT] пользователя [OWNER]
-
-
- нет
-
-
-
- (Неизвестно)
-
-
-
-
- [day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc]
-
-
-
-
- Баланс
-
-
- Расход
-
-
- Приход
-
-
- Итого
-
-
- Не найдены данные для группы
-
-
- родовое землевладение
-
-
- материк
-
-
- подростковый
-
-
- все
-
-
- ошибка
-
-
- все землевладения пользователя [OWNER]
-
-
- все ваши землевладения
-
-
- все землевладения пользователя [OWNER], которыми вы управляете
-
-
- Допущенные жители: ([ALLOWEDAGENTS], не более [MAXACCESS])
-
-
- Допущенные группы: ([ALLOWEDGROUPS], не более [MAXACCESS])
-
-
- Память под скрипты на участке
-
-
- Участков в списке: [PARCELS]
-
-
- Используется памяти: [COUNT] КБ из [MAX] КБ; доступно: [AVAILABLE] КБ
-
-
- Используется памяти: [COUNT] КБ
-
-
- URL-адреса скрипта участков
-
-
- Используется URL-адресов: [COUNT] из [MAX] (доступно: [AVAILABLE])
-
-
- Используется URL-адресов: [COUNT]
-
-
- Ошибка при запросе данных
-
-
- Участок не выбран
-
-
- Ошибка. Сведения о скрипте доступны только в текущем регионе
-
-
- Получение данных...
-
-
- У вас нет прав для исследования этого участка
-
-
- Сидит на
-
-
- Грудь
-
-
- Голова
-
-
- Левое плечо
-
-
- Правое плечо
-
-
- Левая кисть
-
-
- Правая кисть
-
-
- Левая ступня
-
-
- Правая ступня
-
-
- Спина
-
-
- Таз
-
-
- Рот
-
-
- Подбородок
-
-
- Левое ухо
-
-
- Правое ухо
-
-
- Левый глаз
-
-
- Правый глаз
-
-
- Нос
-
-
- Правое плечо
-
-
- Правое предплечье
-
-
- Левое плечо
-
-
- Левое предплечье
-
-
- Правое бедро
-
-
- Правое колено
-
-
- Правая голень
-
-
- Левое бедро
-
-
- Левое колено
-
-
- Левая голень
-
-
- Живот
-
-
- Правая грудь
-
-
- Левая грудь
-
-
- Данные в игре в центре 2
-
-
- Данные в игре вверху справа
-
-
- Данные в игре вверху в центре
-
-
- Данные в игре вверху слева
-
-
- Данные в игре в центре 1
-
-
- Данные в игре внизу слева
-
-
- Данные в игре внизу
-
-
- Данные в игре внизу справа
-
-
- Строка [LINE], столбец [COLUMN]
-
-
- Найдено: [COUNT]
-
-
- [hour,datetime,slt]:[min,datetime,slt]
-
-
- [day,datetime,slt].[mthnum,datetime,slt]
-
-
- Подключение к объекту
-
-
- Новый скрипт
-
-
- У адресата вашего сообщения задан статус «Не беспокоить». Ваше сообщение все равно будет отображено на панели IM для просмотра позже.
-
-
- (по имени)
-
-
- (для жителя)
-
-
- (для объекта)
-
-
- (для группы)
-
-
- (внешний)
-
-
- Нет соглашения для этого землевладения.
-
-
- Нет соглашения для этого землевладения. Земля в этом землевладении продается его владельцем, а не компанией Linden Lab. Чтобы узнать подробности о продаже, обратитесь к землевладельцу.
-
-
-
-
-
- Собственность группы
-
-
- Общая собственность
-
-
- Локальные настройки
-
-
- Региональные настройки
-
-
- Щелчки: телепорт [TELEPORT], карта [MAP], профиль [PROFILE]
-
-
- (будет обновлено после публикации)
-
-
- Вы не создали подборки или рекламы. Нажмите кнопку со знаком «плюс» ниже, чтобы создать подборку или рекламу
-
-
- У жителя нет подборки или рекламы
-
-
- Загрузка...
-
-
- Предварительный просмотр
-
-
- Свойства
-
-
- Объект с именем
-
-
- принадлежит группе
-
-
- принадлежит известной группе
-
-
- принадлежит
-
-
- принадлежит неизвестному пользователю
-
-
- дал(а) вам
-
-
- Вы не приняли [DESC] от жителя <nolink>[NAME]</nolink>.
-
-
- Итого
-
-
- куплено
-
-
- уплачено вам
-
-
- уплачено в
-
-
- куплен пропуск в
-
-
- уплачено за событие
-
-
- выплачено призовых за событие
-
-
- Баланс
-
-
- Расход
-
-
- Приход
-
-
- [weekday,datetime,utc], [day,datetime,utc] [mth,datetime,utc] [year,datetime,utc]
-
-
- Контент
-
-
- Купленные вещи
-
-
- Отмена
-
-
- Передача [NAME] стоит L$[AMOUNT]
-
-
- Стоимость покупки: L$[AMOUNT]
-
-
- Неизвестное расширение файла .%s
-Ожидаются расширения: WAV, TGA, BMP, JPG, JPEG или BVH
-
-
- Заблокировать
-
-
- Заблокировать
-
-
- Разблокировать
-
-
- Разблокировать
-
-
- Добавить в мои закладки...
-
-
- Изменить мою закладку...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- CTRL+
-
-
- ALT+
-
-
- SHIFT+
-
-
- Файл сохранен
-
-
- Получение
-
-
- до полудня
-
-
- после полудня
-
-
- Тихоокеанское время
-
-
- Летнее тихоокеанское время
-
-
- Вперед
-
-
- Влево
-
-
- Вправо
-
-
- Назад
-
-
- Север
-
-
- Юг
-
-
- Запад
-
-
- Восток
-
-
- Вверх
-
-
- Вниз
-
-
- Все категории
-
-
- Покупки
-
-
- Земельная рента
-
-
- Аренда имущества
-
-
- Особое событие
-
-
- Новые продукты
-
-
- Род занятий
-
-
- Хочу найти
-
-
- Услуги
-
-
- Личное сообщение
-
-
- Нет
-
-
- Место Linden
-
-
- Для взрослых
-
-
- Искусство и культура
-
-
- Бизнес
-
-
- Образование
-
-
- Игры
-
-
- Места встреч
-
-
- Для новичков
-
-
- Парки и природа
-
-
- Проживание
-
-
- Стадия
-
-
- Другое
-
-
- Аренда
-
-
- Все
-
-
- Вы
-
-
- :
-
-
- ,
-
-
- ...
-
-
- ***
-
-
- (
-
-
- )
-
-
- .
-
-
- '
-
-
- ---
-
-
- Несколько источников мультимедиа
-
-
- Мультимедиа – воспроизведение/пауза
-
-
- Ошибка при анализе командной строки.
-См.: http://wiki.secondlife.com/wiki/Client_parameters
-Ошибка:
-
-
- Использование командной строки [APP_NAME]:
-
-
- Приложению [APP_NAME] не удается получить доступ к нужному файлу.
-Возможно, выполняется несколько копий или в системе неправильно открыт файл.
-Если это сообщение по-прежнему будет отображаться, перезагрузите компьютер и повторите попытку.
-Если и это не поможет, возможно, придется повторно установить приложение [APP_NAME].
-
-
- Неустранимая ошибка
-
-
- Для работы [APP_NAME] необходим процессор с поддержкой AltiVec (версии G4 или более поздней).
-
-
- [APP_NAME] уже выполняется.
-Поищите значок программы на панели задач.
-Если это сообщение по-прежнему будет отображаться, перезагрузите компьютер.
-
-
- По-видимому, при предыдущем запуске приложения [APP_NAME] оно зависло или в нем возник сбой.
-Отправить отчет о сбое?
-
-
- Уведомление
-
-
- Приложению [APP_NAME] не удается обнаружить DirectX 9.0b или более поздних версий.
-В приложении [APP_NAME] используется DirectX для проверки оборудования и выявления устаревших драйверов, из-за которых может снизиться стабильность работы и быстродействие, а также возникнуть сбои. Настоятельно рекомендуется установить DirectX 9.0b, хотя приложение [APP_NAME] работает и без этого компонента.
-Продолжить?
-
-
- Внимание!
-
-
- В ОС Linux автоматическое обновление еще не реализовано.
-Загрузите новую версию на сайте www.secondlife.com.
-
-
- Ошибка RegisterClass
-
-
- Ошибка
-
-
- Невозможна работа в полноэкранном режиме на экране [WIDTH] x [HEIGHT].
-Запущено в окне.
-
-
- Ошибка завершения работы при удалении окна (сбой функции DestroyWindow())
-
-
- Ошибка завершения работы
-
-
- Не удается создать контекст устройства GL
-
-
- Не удается найти подходящий формат пикселей
-
-
- Не удается получить описание формата пикселей
-
-
- Для работы [APP_NAME] необходим режим True Color (32 бита).
-Задайте в настройках дисплея 32-битный режим цвета.
-
-
- Не удается запустить [APP_NAME] из-за отсутствия доступа к 8-битному альфа-каналу. Обычно эта проблема возникает из-за неполадок с драйвером видеокарты.
-Установите новые драйверы видеокарты.
-Также задайте для монитора 32-битный режим True Color (Панель управления > Экран > Параметры).
-Если это сообщение продолжает отображаться, обратитесь на сайт [SUPPORT_SITE].
-
-
- Не удается задать формат пикселей
-
-
- Не удается создать контекст визуализации GL
-
-
- Не удается активировать контекст визуализации GL
-
-
- Не удается запустить приложение [APP_NAME], поскольку драйверы видеокарты неправильно установлены, устарели или предназначены для оборудования, которое не поддерживается. Установите или переустановите последние драйверы видеокарты.
-Если это сообщение продолжает отображаться, обратитесь на сайт [SUPPORT_SITE].
-
-
- Жидкие
-
-
- Полностью белые
-
-
- Глаза как в аниме
-
-
- Дугой
-
-
- Длина рук
-
-
- Прикреплено
-
-
- Приросшие мочки
-
-
- Затылок
-
-
- С мешками
-
-
- Челки
-
-
- Бусинки
-
-
- Размер живота
-
-
- Большой
-
-
- Большой зад
-
-
- Пышные волосы: сзади
-
-
- Пышные волосы: спереди
-
-
- Пышные волосы: сверху
-
-
- Большая голова
-
-
- Выпуклая грудь
-
-
- Большие «шипы»
-
-
- Черный
-
-
- Светлый
-
-
- Светлые волосы
-
-
- Румяна
-
-
- Цвет румян
-
-
- Прозрачность румян
-
-
- Тип тела
-
-
- Жировая прослойка
-
-
- Веснушки
-
-
- Полное тело
-
-
- Полнота
-
-
- Худое тело
-
-
- Ноги колесом
-
-
- Высота груди
-
-
- Ложбинка между грудей
-
-
- Размер груди
-
-
- Ширина переносицы
-
-
- Широкая
-
-
- Размер надбровных дуг
-
-
- Выпученные глаза
-
-
- Выпученные глаза
-
-
- Картошкой
-
-
- Нос картошкой
-
-
- Масса груди
-
-
- Гладкость груди
-
-
- Обвислость груди
-
-
- Аэродинамика груди
-
-
- Верхняя граница
-
-
- Упругость
-
-
- Отклик
-
-
- Затухание
-
-
- Верхняя граница
-
-
- Упругость
-
-
- Отклик
-
-
- Затухание
-
-
- Верхняя граница
-
-
- Упругость
-
-
- Отклик
-
-
- Затухание
-
-
- Масса живота
-
-
- Гладкость живота
-
-
- Обвислость живота
-
-
- Инертность живота
-
-
- Верхняя граница
-
-
- Упругость
-
-
- Отклик
-
-
- Затухание
-
-
- Масса зада
-
-
- Гладкость зада
-
-
- Обвислость зада
-
-
- Инертность зада
-
-
- Верхняя граница
-
-
- Упругость
-
-
- Отклик
-
-
- Затухание
-
-
- Верхняя граница
-
-
- Упругость
-
-
- Отклик
-
-
- Затухание
-
-
- Кустистые брови
-
-
- Пышные
-
-
- Размер зада
-
-
- Обвислость зада
-
-
- Турнюр
-
-
- Без турнюра
-
-
- Большой турнюр
-
-
- «Чарли Чаплин»
-
-
- Скулы
-
-
- Размер грудной клетки
-
-
- Угол подбородка
-
-
- Ямка на подбородке
-
-
- Шкиперская бородка
-
-
- Толщина подбородка
-
-
- Мощный подбородок
-
-
- Подбородок внутрь
-
-
- Подбородок наружу
-
-
- Переход от подбородка к шее
-
-
- Чистый
-
-
- Ямка
-
-
- Близко посаженные
-
-
- Закрыто
-
-
- Закрыто сзади
-
-
- Закрыто спереди
-
-
- Закрыто слева
-
-
- Закрыто справа
-
-
- Кошелек для мелочи
-
-
- Вырез сзади
-
-
- Вырез спереди
-
-
- Уголки опущены
-
-
- Уголки подняты
-
-
- Измятый
-
-
- Искривленный нос
-
-
- Манжеты
-
-
- Темный
-
-
- Темно-зеленый
-
-
- Темнее
-
-
- Глубоко
-
-
- Стандартные каблуки
-
-
- Густые
-
-
- Двойной подбородок
-
-
- Вниз
-
-
- Больше
-
-
- Оттопыренность ушей
-
-
- Размер ушей
-
-
- Кончики ушей
-
-
- Яйцеголовость
-
-
- Мешки под глазами
-
-
- Цвет глаз
-
-
- Глубина глаз
-
-
- Светлость глаз
-
-
- Открытость глаз
-
-
- Вытаращить глаз
-
-
- Размер глаз
-
-
- Расстояние между глазами
-
-
- Линия бровей
-
-
- Густота бровей
-
-
- Высота бровей
-
-
- Кончики бровей
-
-
- Размер бровей
-
-
- Длина ресниц
-
-
- Подводка
-
-
- Цвет подводки
-
-
- Выпученные глаза
-
-
- Перекос лица
-
-
- Черты лица
-
-
- Широко расставленные глаза
-
-
- Толстые губы
-
-
- Женщина
-
-
- Без пальцев
-
-
- С пальцами
-
-
- С манжетами
-
-
- Плоские
-
-
- Плоский зад
-
-
- Плоская голова
-
-
- Плоский носок
-
-
- Размер ступни
-
-
- Наклон лба
-
-
- Мощный лоб
-
-
- Веснушки
-
-
- Челка спереди
-
-
- Полностью назад
-
-
- Подводка полностью
-
-
- Полностью наперед
-
-
- Волосы по бокам
-
-
- По бокам
-
-
- Блестящие
-
-
- Пальцы перчаток
-
-
- Длина перчаток
-
-
- Волосы
-
-
- Волосы: сзади
-
-
- Волосы: спереди
-
-
- Волосы: по бокам
-
-
- Волосы на глаза
-
-
- Толщина волос
-
-
- Толщина волос
-
-
- Зачес
-
-
- Зачес назад
-
-
- Зачес вправо
-
-
- Волосы: объем
-
-
- Размер кисти
-
-
- Длинные усы
-
-
- Длина головы
-
-
- Форма головы
-
-
- Размер головы
-
-
- Вытянутость головы
-
-
- Высота каблука
-
-
- Форма каблука
-
-
- Рост
-
-
- Высокие
-
-
- Высокий каблук
-
-
- Челюсть высоко
-
-
- Высокая платформа
-
-
- Высокий и плотный
-
-
- Выше
-
-
- Длина бедер
-
-
- Ширина бедер
-
-
- Внутрь
-
-
- Цвет внутренних теней
-
-
- Прозрачность внутр. теней
-
-
- Внутренние уголки глаз
-
-
- Тени на внутренних уголках
-
-
- Внутренние тени
-
-
- Длина пиджака
-
-
- Смятый пиджак
-
-
- Угол челюсти
-
-
- Выступание челюсти
-
-
- Форма челюсти
-
-
- Прикрепить
-
-
- Щеки
-
-
- Угол колен
-
-
- Колченогие
-
-
- Больше
-
-
- Большие кисти
-
-
- Левый пробор
-
-
- Длина ног
-
-
- Мышцы на ногах
-
-
- Меньше
-
-
- Меньше жира
-
-
- Меньше борода
-
-
- Меньше веснушек
-
-
- Менее полное
-
-
- Меньше притяжения
-
-
- Меньше
-
-
- Меньше мышц
-
-
- Меньше мышц
-
-
- Меньше румян
-
-
- Меньше округлости
-
-
- Меньше
-
-
- Меньше угловатости
-
-
- Меньше объема
-
-
- Меньше
-
-
- Светлее
-
-
- Ямка между губ
-
-
- Глубина ямки
-
-
- Полнота губ
-
-
- Розоватость губ
-
-
- Пропорция губ
-
-
- Толщина губ
-
-
- Ширина губ
-
-
- Блеск губ
-
-
- Губная помада
-
-
- Цвет помады
-
-
- Длиннее
-
-
- Длинная голова
-
-
- Длинные бедра
-
-
- Длинные ноги
-
-
- Длинная шея
-
-
- Длинные хвосты по бокам
-
-
- Длинный хвост сзади
-
-
- Длинный торс
-
-
- Длинные руки
-
-
- Свободные брюки
-
-
- Свободная рубашка
-
-
- Свободные рукава
-
-
- Отложения на талии
-
-
- Низкие
-
-
- Низкий каблук
-
-
- Челюсть низко
-
-
- Низкая платформа
-
-
- Низкий и свободный
-
-
- Ниже
-
-
- Спинка носа
-
-
- Щеки ниже
-
-
- Мужчина
-
-
- Пробор по центру
-
-
- Больше
-
-
- Больше румян
-
-
- Больше жира
-
-
- Больше борода
-
-
- Больше теней
-
-
- Больше веснушек
-
-
- Более полное
-
-
- Большее притяжение
-
-
- Больше помады
-
-
- Больше
-
-
- Больше нижняя губа
-
-
- Больше мышц
-
-
- Больше мышц
-
-
- Больше румянца
-
-
- Больше округлости
-
-
- Больше
-
-
- Более наклонный
-
-
- Более квадратная
-
-
- Больше верхняя губа
-
-
- Более вертикальный
-
-
- Больше объема
-
-
- Больше
-
-
- Усы
-
-
- Угол рта
-
-
- Положение рта
-
-
- Ирокез
-
-
- Мускулистое
-
-
- Бакенбарды
-
-
- Лак для ногтей
-
-
- Цвет лака
-
-
- Узко
-
-
- Узко сзади
-
-
- Узкий перед
-
-
- Узкие губы
-
-
- Естественный
-
-
- Длина шеи
-
-
- Толщина шеи
-
-
- Без румян
-
-
- Без подводки
-
-
- Без теней
-
-
- Без блеска
-
-
- Без помады
-
-
- Без пробора
-
-
- Без лака
-
-
- Не красные
-
-
- Без «шипов»
-
-
- Нет белого
-
-
- Без морщин
-
-
- Ниже обычного
-
-
- Выше обычного
-
-
- Нос влево
-
-
- Нос вправо
-
-
- Размер носа
-
-
- Толщина носа
-
-
- Загнутость кончика носа
-
-
- Форма кончика носа
-
-
- Ширина носа
-
-
- Перегородка
-
-
- Ширина ноздрей
-
-
- Непрозрачный
-
-
- Открыто
-
-
- Открыто сзади
-
-
- Открыто спереди
-
-
- Открыто слева
-
-
- Открыто справа
-
-
- Оранжевый
-
-
- Наружу
-
-
- Цвет внешних теней
-
-
- Прозрачность внеш. теней
-
-
- Внешние уголки глаз
-
-
- Тени во внешних уголках
-
-
- Внешние тени
-
-
- Глубокий прикус
-
-
- Гульфик
-
-
- Покрашенные
-
-
- Бледный
-
-
- Шаг
-
-
- Облегающие брюки
-
-
- Длина
-
-
- Талия брюк
-
-
- Смятость брюк
-
-
- Пробор
-
-
- Челка с пробором
-
-
- Грудные мышцы
-
-
- Пигментация
-
-
- Хвосты по бокам
-
-
- Розовый
-
-
- Розовее
-
-
- Высота платформы
-
-
- Ширина платформы
-
-
- Острые
-
-
- Острый каблук
-
-
- Хвост сзади
-
-
- Пышная юбка
-
-
- Левый глаз
-
-
- Правый глаз
-
-
- Пухлые
-
-
- Припухлость век
-
-
- Цвета радуги
-
-
- Рыжие волосы
-
-
- Обычное
-
-
- Правый пробор
-
-
- Розовое лицо
-
-
- Круглое
-
-
- Румянец
-
-
- Румяный
-
-
- Взъерошенные
-
-
- Галифе
-
-
- Сухопарая нога
-
-
- Разделить
-
-
- Мелко
-
-
- Скос сзади
-
-
- Перекос лица
-
-
- Скос спереди
-
-
- Скос влево вверх
-
-
- Скос вправо вверх
-
-
- Уменьшено сзади
-
-
- Уменьшено спереди
-
-
- Сдвинуть влево
-
-
- Сдвинуть рот
-
-
- Сдвинуть вправо
-
-
- Низ рубашки
-
-
- Облегание рубашки
-
-
- Помятость рубашки
-
-
- Высота обуви
-
-
- Ниже
-
-
- Короткие руки
-
-
- Короткие ноги
-
-
- Короткая шея
-
-
- Короткие хвосты по бокам
-
-
- Короткий хвост сзади
-
-
- Короткие баки
-
-
- Короткий торс
-
-
- Короткие бедра
-
-
- Плечи
-
-
- Челка набок
-
-
- Бакенбарды
-
-
- Волосы по бокам
-
-
- Волосы по бокам внизу
-
-
- Волосы по бокам вверху
-
-
- Худая шея
-
-
- Облегающая юбка
-
-
- Длина юбки
-
-
- Наклонный лоб
-
-
- Длина рукавов
-
-
- Ширина рукавов
-
-
- Разрез: сзади
-
-
- Разрез: спереди
-
-
- Разрез: слева
-
-
- Разрез: справа
-
-
- Меньше
-
-
- Маленькие кисти
-
-
- Маленькая голова
-
-
- Гладко
-
-
- Приглаженные
-
-
- Длина носков
-
-
- Эспаньолка
-
-
- Жидкие
-
-
- Прическа «шипами»
-
-
- Квадратный
-
-
- Квадратный носок
-
-
- Голова-тыква
-
-
- Вытянутость головы
-
-
- Впалые
-
-
- Впалая грудь
-
-
- Впалые глаза
-
-
- Зачесанные назад
-
-
- Зачесанные вперед
-
-
- Выше
-
-
- Конус сзади
-
-
- Конус спереди
-
-
- Широкий каблук
-
-
- Толстая шея
-
-
- Толстый носок
-
-
- Тонкий
-
-
- Тонкие брови
-
-
- Тонкие губы
-
-
- Тонкий нос
-
-
- Тонкий подбородок
-
-
- Манжеты на резинке
-
-
- Облегающие брюки
-
-
- Облегающая рубашка
-
-
- Облегающая юбка
-
-
- Облегающие рукава
-
-
- Форма носка
-
-
- Толщина носка
-
-
- Длина торса
-
-
- Мускулистость торса
-
-
- Сухопарость торса
-
-
- Не прикреплено
-
-
- Без складок
-
-
- Мезиальный прикус
-
-
- Неестественный
-
-
- Переносица
-
-
- Щеки выше
-
-
- Ямка на подбородке выше
-
-
- Складка верхнего века
-
-
- Вверх
-
-
- Очень красные
-
-
- Высота талии
-
-
- Упитанные
-
-
- Белые волосы
-
-
- Широко
-
-
- Широко сзади
-
-
- Широкий перед
-
-
- Широкие губы
-
-
- Безумный
-
-
- Складки
-
-
- Добавить в закладки
-
-
- Изменить закладку
-
-
- Посмотреть подробную информацию о текущем месте
-
-
- Моя история посещений
-
-
- Купить эту землю
-
-
- Голосовое общение здесь недоступно
-
-
- Полеты запрещены
-
-
- Нельзя толкаться
-
-
- Строительство/выкладывание объектов не разрешено
-
-
- Запускать скрипты запрещено
-
-
- Здоровье
-
-
- Область для взрослых
-
-
- Область умеренной дозволенности
-
-
- Область общей дозволенности
-
-
- Все жители с других участков могут видеть аватары и общаться в чате
-
-
- Обновление [APP_NAME]
-
-
- Обновляется [APP_NAME]...
-
-
- Устанавливается [APP_NAME]...
-
-
- Клиент [APP_NAME] обновляется до последнего выпуска. Это может занять какое-то время. Проявите терпение.
-
-
- Загрузка обновления...
-
-
- Загружается обновление
-
-
- Не удалось загрузить обновление
-
-
- При обновлении приложения [APP_NAME] возникла ошибка. Загрузите новую версию на сайте www.secondlife.com.
-
-
- Не удалось установить обновление
-
-
- Не удалось запустить клиент
-
-
- [APP_NAME]: Из-за слишком быстрого поступления элементов с [FROM_NAME] автоматический просмотр отключен на [TIME] с
-
-
- [APP_NAME]: из-за слишком быстрого поступления элементов автоматический просмотр отключен на [TIME] с
-
-
- -- Включена регистрация сообщений IM --
-
-
- [NAME] вводит текст...
-
-
- (Без имени)
-
-
- (Модерируется: голоса по умолчанию отключены)
-
-
- Во время этого звонка текстовый чат недоступен.
-
-
- Ваш текстовый чат отключен модератором группы.
-
-
- Щелкните здесь, чтобы создать IM-сообщение.
-
-
- Кому
-
-
- (Модератор)
-
-
- (Сохранено [LONG_TIMESTAMP])
-
-
- Для просмотра этого сообщения снимите флажок «Только друзья и группы могут звонить мне и отправлять IM» в окне «Настройки/Приватность».
-
-
- На ваш звонок ответили
-
-
- Вы начали голосовую беседу
-
-
- Вы присоединились к голосовой беседе
-
-
- Житель [NAME] начал голосовую беседу
-
-
- Присоединение к голосовой беседе...
-
-
- Соединение установлено. Выберите команду «Прервать звонок», чтобы повесить трубку
-
-
- Голосовой звонок прерван
-
-
- Соединяется...
-
-
- Спонтанная конференция
-
-
- Конференция с жителем [AGENT_NAME]
-
-
- Предложено пополнить инвентарь
-
-
- Перетаскивайте вещи из инвентаря сюда
-
-
- (Сеанс IM не существует)
-
-
- Вы – единственный пользователь в этом сеансе.
-
-
- [NAME] не в сети.
-
-
- Нажмите кнопку [BUTTON NAME], чтобы участвовать в этом голосовом чате.
-
-
- Вы заблокировали этого жителя. Если отправить ему сообщение, блок автоматически снимется.
-
-
- Ошибка при запросе. Повторите попытку.
-
-
- Ошибка при запросе. Повторите попытку.
-
-
- У вас недостаточно разрешений.
-
-
- Сеанс больше не существует
-
-
- У вас нет этой способности.
-
-
- У вас нет этой способности.
-
-
- Вы – не модератор сеанса.
-
-
- Модератор группы отключил для вас текстовый чат.
-
-
- Модератор группы отключил для вас текстовый чат.
-
-
- Не удается добавить пользователей в сеанс чата с жителем [RECIPIENT].
-
-
- Не удается отправить ваше сообщение в сеанс чата с жителем [RECIPIENT].
-
-
- Не удается отправить ваше сообщение в сеанс чата с жителем [RECIPIENT].
-
-
- Ошибка при модерировании.
-
-
- Вы исключены из группы.
-
-
- Вы исключены из группы.
-
-
- У вас больше нет возможности участвовать в сеансе чата.
-
-
- [SOURCES] сказал что-то новое
-
-
- [SOURCES] сказал что-то новое
-
-
- Истекло время ожидания инициализации сеанса
-
-
- Задано положение дома.
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- Житель [NAME] заплатил вам L$[AMOUNT] за [REASON].
-
-
- Житель [NAME] заплатил вам L$[AMOUNT].
-
-
- Вы заплатили жителю [NAME] L$[AMOUNT] за [REASON].
-
-
- Вы заплатили L$[AMOUNT].
-
-
- Вы заплатили жителю [NAME] L$[AMOUNT].
-
-
- Вы заплатили L$[AMOUNT] за [REASON].
-
-
- Вы не смогли заплатить пользователю [NAME] L$[AMOUNT]: [REASON].
-
-
- Вы не смогли заплатить L$[AMOUNT]
-
-
- Вы не смогли заплатить пользователю [NAME] L$[AMOUNT]
-
-
- Вы не смогли заплатить L$[AMOUNT]: [REASON].
-
-
- за [ITEM]
-
-
- за земельный участок
-
-
- за пропуск на землю
-
-
- за передачу земли
-
-
- за создание группы
-
-
- за вступление в группу
-
-
- за передачу по сети
-
-
- за публикацию рекламы
-
-
- Уплата L$[AMOUNT]
-
-
- Передача стоит L$[AMOUNT]
-
-
- Это стоит L$[AMOUNT]
-
-
- Покупка выбранной земли за L$[AMOUNT]
-
-
- Этот объект стоит L$[AMOUNT]
-
-
- Все
-
-
- Должностные лица
-
-
- Владельцы
-
-
- В сети
-
-
- Загружается...
-
-Жалоба
-
-
- Новая фигура
-
-
- Новая кожа
-
-
- Новые волосы
-
-
- Новые глаза
-
-
- Новая рубашка
-
-
- Новые брюки
-
-
- Новая обувь
-
-
- Новые носки
-
-
- Новый пиджак
-
-
- Новые перчатки
-
-
- Новая майка
-
-
- Новые трусы
-
-
- Новая юбка
-
-
- Новая альфа-маска
-
-
- Новое тату
-
-
- Новая физика
-
-
- Нельзя носить
-
-
- Новый жест
-
-
- Новый скрипт
-
-
- Новая заметка
-
-
- Новая папка
-
-
- Контент
-
-
- Жест
-
-
- Мужские жесты
-
-
- Женские жесты
-
-
- Прочие жесты
-
-
- Жесты в разговорах
-
-
- Стандартные жесты
-
-
- Мужчина – извинение
-
-
- Мужчина – скройтесь
-
-
- Мужчина – воздушный поцелуй
-
-
- Мужчина – фу!
-
-
- Мужчина – скука
-
-
- Мужчина – эй!
-
-
- Мужчина – смех
-
-
- Мужчина – неприятие
-
-
- Мужчина – пожимает плечами
-
-
- Мужчина – показывает язык
-
-
- Мужчина – ух ты!
-
-
- Женщина – смешок
-
-
- Женщина – плач
-
-
- Женщина – смущение
-
-
- Женщина – извинение
-
-
- Женщина – скройтесь
-
-
- Женщина – воздушный поцелуй
-
-
- Женщина – фу!
-
-
- Женщина – скука
-
-
- Женщина – эй!
-
-
- Женщина – эй, бейби!
-
-
- Женщина – смех
-
-
- Женщина – хорошо выглядишь
-
-
- Женщина – сюда!
-
-
- Женщина – просьба
-
-
- Женщина – неприятие
-
-
- Женщина – пожимает плечами
-
-
- Женщина – показывает язык
-
-
- Женщина – ух ты!
-
-
- /поклониться
-
-
- /хлопнуть
-
-
- /счет
-
-
- /затушить
-
-
- /поцелуй меня в зад
-
-
- /силач
-
-
- /нет
-
-
- /нет!
-
-
- /бумага
-
-
- /показать на себя
-
-
- /показать на другого
-
-
- /камень
-
-
- /ножницы
-
-
- /курить
-
-
- /потянуться
-
-
- /свистнуть
-
-
- /да
-
-
- /о да!
-
-
- отошел
-
-
- танец1
-
-
- танец2
-
-
- танец3
-
-
- танец4
-
-
- танец5
-
-
- танец6
-
-
- танец7
-
-
- танец8
-
-
- [day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt]
-
-
- нет/нет
-
-
- Нельзя загружать изображения, размер которых превышает [WIDTH]*[HEIGHT]
-
-
-
- Несмотря на наши усилия, что-то неожиданно пошло не так.
-
- Ознакомьтесь с описанием известных проблем в работе этой службы на сайте status.secondlifegrid.net.
- Если проблемы продолжаются, то проверьте подключение к сети и настройки брандмауэра.
-
-
- Воскресенье:Понедельник:Вторник:Среда:Четверг:Пятница:Суббота
-
-
- Вс:Пн:Вт:Ср:Чт:Пт:Сб
-
-
- Январь:Февраль:Март:Апрель:Май:Июнь:Июль:Август:Сентябрь:Октябрь:Ноябрь:Декабрь
-
-
- Янв:Фев:Мар:Апр:Май:Июн:Июл:Авг:Сен:Окт:Ноя:Дек
-
-
- [MDAY]
-
-
- до полудня
-
-
- после полудня
-
-
- [AMOUNT] US$
-
-
- Членство
-
-
- Роли
-
-
- Удостоверение группы
-
-
- Управление участком
-
-
- Удостоверение участка
-
-
- Параметры участка
-
-
- Способности для участка
-
-
- Доступ к участку
-
-
- Содержимое на участке
-
-
- Управление объектами
-
-
- Бухгалтерия
-
-
- Уведомления
-
-
- Чат
-
-
- Удалить выбранные объекты?
-
-
- Удалить выбранный объект?
-
-
- Для этого костюма нет вещей
-
-
- Выберите редактор, используя параметр ExternalEditor.
-
-
- Не удается найти указанный внешний редактор.
-Попробуйте взять путь к редактору в двойные кавычки
-(например "/path to my/editor" "%s")
-
-
- Ошибка анализа командной строки для внешнего редактора.
-
-
- Не удалось запустить внешний редактор.
-
-
- Ошибка телепортации: [REASON]
-
-
- Ошибка при анализе ответа переводчика.
-
-
- ESC
-
-
- ПРОБЕЛ
-
-
- ВВОД
-
-
- TAB
-
-
- INS
-
-
- DEL
-
-
- BACKSP
-
-
- SHIFT
-
-
- CTRL
-
-
- ALT
-
-
- CAPSLOCK
-
-
- Стрелка влево
-
-
- Стрелка вправо
-
-
- Стрелка вверх
-
-
- Стрелка вниз
-
-
- HOME
-
-
- END
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- +
-
-
- -
-
-
- *
-
-
- /
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Просмотр меток участков (синие)
-
-
- Просмотр меток физических объектов (зеленые)
-
-
- Просмотр меток объектов со скриптами (красные)
-
-
- Просмотр меток объектов со скриптами и функцией касания (красные)
-
-
- Просмотр звуковых меток (желтые)
-
-
- Просмотр медийных меток (белые)
-
-
- Частицы скрыты
-
-
- О земле
-
-
- Внешность
-
-
- Аватар
-
-
- Строительство
-
-
- Чат
-
-
- Компас
-
-
- Пункты
-
-
- Жесты
-
-
- Инструкции
-
-
- Инвентарь
-
-
- Карта
-
-
- Торговый центр
-
-
- Миникарта
-
-
- Ходьба / бег / полет
-
-
- Торговые исходящие
-
-
- Люди
-
-
- Подборка
-
-
- Места
-
-
- Настройки
-
-
- Профиль
-
-
- Поиск
-
-
- Снимок
-
-
- Говорить
-
-
- Управление камерой
-
-
- Настройки голоса
-
-
- Информация о посещаемой вами земле
-
-
- Изменить аватар
-
-
- Выбор аватара
-
-
- Построение объектов и формирование ландшафта
-
-
- Обменивайтесь текстовыми репликами с людьми вокруг вас
-
-
- Компас
-
-
- Интересные места
-
-
- Жесты для аватара
-
-
- Выполнение типичных задач
-
-
- Просмотр и использование вашего имущества
-
-
- Карта мира
-
-
- Покупки
-
-
- Показать людей поблизости
-
-
- Перемещение аватара
-
-
- Перенести предметы в торговый центр для продажи
-
-
- Друзья, группы и люди поблизости
-
-
- Места, которые будут показаны в вашем профиле как избранное
-
-
- Сохраненные вами места
-
-
- Настройки
-
-
- Редактирование или просмотр вашего профиля
-
-
- Поиск мест, событий, людей
-
-
- Сделать снимок
-
-
- Говорите с людьми вокруг вас с помощью микрофона
-
-
- Изменение угла камеры
-
-
- Регулировка громкости вызовов и разговоров с людьми около вас
-
-
- сейчас на нижней панели инструментов
-
-
- сейчас на левой панели инструментов
-
-
- сейчас на правой панели инструментов
-
-
- Остаток%
-
-
- Детализация
-
-
- Более детально
-
-
- Поверхность
-
-
- Сплошной
-
-
- Оболочка
-
-
- Предварительный просмотр
-
-
- Нормальный
-
-
- Очень низкий
-
-
- Низкий
-
-
- Средний
-
-
- Высокий
-
-
- Очень высокий
-
-
diff --git a/indra/newview/skins/steam/xui/tr/strings.xml b/indra/newview/skins/steam/xui/tr/strings.xml
deleted file mode 100644
index 74bb33a5c5..0000000000
--- a/indra/newview/skins/steam/xui/tr/strings.xml
+++ /dev/null
@@ -1,5025 +0,0 @@
-
-
-
-
- Second Life
-
-
- Second Life
-
-
- SECOND LIFE
-
-
- Second Life Ağı
-
-
- Second Life Destek Portalı
-
-
- Donanım saptanıyor...
-
-
- [APP_NAME] yükleniyor...
-
-
- Önbellek temizleniyor...
-
-
- Doku önbelleği başlatılıyor...
-
-
- VFS Başlatılıyor...
-
-
- Grafik başlatma başarılamadı. Lütfen grafik sürücünüzü güncelleştirin!
-
-
- Geri yükleniyor...
-
-
- Çözünürlük değiştiriliyor...
-
-
- Tam parlak (eski)
-
-
- Oturum açılıyor. [APP_NAME] kilitlenmiş görünebilir. Lütfen bekleyin.
-
-
- Oturum açılıyor...
-
-
- Kimlik doğrulaması yapılıyor
-
-
- Hesap bakımı yapılıyor...
-
-
- Önceki oturum açma girişimi başarılamadı. Oturum açılıyor, [NUMBER]. girişim.
-
-
- Dünya yükleniyor...
-
-
- Katıştırılmış web tarayıcısı başlatılıyor...
-
-
- Multimedya başlatılıyor...
-
-
- Fontlar yükleniyor...
-
-
- Önbellek dosyaları doğrulanıyor (60-90 saniye zaman alabilir)...
-
-
- Yanıt işleniyor...
-
-
- Dünya başlatılıyor...
-
-
- Görüntülerin kodu çözülüyor...
-
-
- QuickTime Başlatılıyor...
-
-
- QuickTime bulunamadı - başlatılamadı.
-
-
- QuickTime başarıyla başlatıldı.
-
-
- Bölge özellikleri talep ediliyor...
-
-
- Bölge özellikleri talep ediliyor: [NUMBER]. girişim...
-
-
- Bölge el sıkışması bekleniyor...
-
-
- Bölgeye bağlanılıyor...
-
-
- Giysiler karşıdan yükleniyor...
-
-
- Sunucu geçersiz veya bozuk bir sertifika döndürdü. Lütfen Ağ yöneticisine başvurun.
-
-
- Sunucuya erişmek için geçersiz bir ana bilgisayar adı kullanıldı, lütfen SLURL veya Ağ ana bilgisayar adınızı kontrol edin.
-
-
- Ağ tarafından döndürülen sertifikanın süresi sona ermiş görünüyor. Lütfen sistem saatinizi kontrol edin veya Ağ yöneticinize başvurun.
-
-
- Sunucu tarafından döndürülen sertifika SSL için kullanılamadı. Lütfen Ağ yöneticinize başvurun.
-
-
- Sunucunun Sertifika zincirinde çok fazla sertifika vardı. Lütfen Ağ yöneticinize başvurun.
-
-
- Ağ sunucusu tarafından döndürülen sertifika imzası doğrulanamadı. Lütfen Ağ yöneticinize başvurun.
-
-
- Ağ hatası: Bağlantı kurulamadı, lütfen ağ bağlantınızı kontrol edin.
-
-
- Oturum açılamadı.
-
-
- Çık
-
-
- http://join.secondlife.com/index.php?sourceid=1206_steam&lang=tr-TR
-
-
- Kullandığınız görüntüleyici ile artık Second Life'a erişemezsiniz. Yeni bir görüntüleyiciyi karşıdan yüklemek için lütfen şu sayfayı ziyaret edin:
-http://secondlife.com/download
-
-Daha fazla bilgi edinmek için asağıdaki SSS sayfamızı ziyaret edin:
-http://secondlife.com/viewer-access-faq
-
-
- Opsiyonel görüntüleyici güncelleştirmesi mevcut: [VERSION]
-
-
- Gerekli görüntüleyici güncelleştirmesi: [VERSION]
-
-
- Bu aracı zaten oturum açmış durumda.
-
-
- Üzgünüz! Oturumunuzu açamadık.
-Lütfen şunları doğru girdiğinizi kontrol edin:
- * Kullanıcı adı (mustafayalcin12 veya faruk.gungoren gibi)
- * Parola:
-Ayrıca lütfen Caps Lock tuşuna basmadığınıza emin olun.
-
-
- Güvenlik önlemi olarak parolanız değiştirildi.
-Lütfen hesap sayfanıza gidin: http://secondlife.com/password
-ve parolanızı sıfırlamak için güvenlik sorusunu yanıtlayın.
-Bu sorun için özür dileriz.
-
-
- Sistemimizde bazı değişiklikler yaptık, parolanızı sıfırlamanız gerekecek.
-Lütfen hesap sayfanıza gidin: http://secondlife.com/password
-ve parolanızı sıfırlamak için güvenlik sorusunu yanıtlayın.
-Bu sorun için özür dileriz.
-
-
- Second Life bakım amacıyla geçici olarak kapatıldı.
-Şu anda sadece çalışanlar oturum açabilir.
-Güncelleştirmeler için www.secondlife.com/status adresini kontrol edin.
-
-
- Second Life üzerindeki aktif kullanıcıların olası en iyi deneyimi yaşamasını sağlamak için, oturum açılması geçici olarak kısıtlanmıştır.
-
-Second Life için ödeme yapmış olan kişilere öncelik tanımak amacıyla, ücretsiz hesaplara sahip kişiler bu süre içerisinde Second Life'a erişemeyecekler.
-
-
- Second Life'a bu bilgisayardan erişemezsiniz.
-Bunun bir hata olduğunu düşünüyorsanız, lütfen şu adrese başvurun:
-support@secondlife.com.
-
-
- Hesabınıza şu zamana kadar erişemeyeceksiniz:
-Pasifik Saati ile [TIME].
-
-
- Talebinizi şu anda tamamlayamıyoruz.
-Lütfen yardım almak için Second Life destek bölümüne başvurun: http://secondlife.com/support
-Eğer parolanızı değiştiremiyorsanız, lütfen şu numarayı arayın: (866) 476-9763.
-
-
- Oturum açılması sırasında veri tutarsızlığı saptandı.
-Lütfen şu adrese başvurun: support@secondlife.com
-
-
- Hesabınızda küçük çaplı bir bakım işlemi sürüyor.
-Hesabınıza şu zamana kadar erişemeyeceksiniz:
-Pasifik Saati ile [TIME].
-Bunun bir hata olduğunu düşünüyorsanız, lütfen şu adrese başvurun: support@secondlife.com
-
-
- Oturum kapatma talebi simülatörden bir hata yanıtı gelmesine neden oldu.
-
-
- Sistem şu anda oturumunuzu sonlandırıyor.
-Hesabınıza şu zamana kadar erişemeyeceksiniz:
-Pasifik Saati ile [TIME].
-
-
- Geçerli bir oturum oluşturulamadı.
-
-
- Bir simülatöre bağlanılamadı.
-
-
- Hesabınız Second Life'a sadece
-Pasifik Saati ile [START] ve [END] arasında erişebilir.
-Lütfen bu saatler arasında tekrar uğrayın.
-Bunun bir hata olduğunu düşünüyorsanız, lütfen şu adrese başvurun: support@secondlife.com
-
-
- Yanlış parametreler.
-Bunun bir hata olduğunu düşünüyorsanız, lütfen şu adrese başvurun: support@secondlife.com
-
-
- Ad parametresi alfasayısal olmalıdır.
-Bunun bir hata olduğunu düşünüyorsanız, lütfen şu adrese başvurun: support@secondlife.com
-
-
- Soyadı parametresi alfasayısal olmalıdır.
-Bunun bir hata olduğunu düşünüyorsanız, lütfen şu adrese başvurun: support@secondlife.com
-
-
- Bölge şu anda çevrimdışı oluyor.
-Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
-
-
- Aracı bölgede değil.
-Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
-
-
- Bu bölge başka bir oturum açmaktaydı.
-Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
-
-
- Bu bölge önceki oturumu sonlandırmaktaydı.
-Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
-
-
- Bu bölge hala bir önceki oturumu sonlandırma işlemini sürdürüyor.
-Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
-
-
- Bu bölge son oturumu sonlandırdı.
-Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
-
-
- Bölge oturumu sonlandırma işlemini başlattı.
-Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
-
-
- Sistem son oturumunuzu sonlandırma işlemini başlattı.
-Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
-
-
- Bu bölgede sorun yaşanıyor olabilir. Lütfen İnternet bağlantınızı kontrol edin.
-
-
- Ayarlarınız kaydediliyor...
-
-
- Oturum kapatılıyor...
-
-
- Kapatılıyor...
-
-
- Bulunduğunuz bölgeyle bağlantınız kesildi.
-
-
- Geçersiz bir bölgeye gönderildiniz.
-
-
- Görüntüleyici bağlantısının kesilmesi test ediliyor
-
-
- Kişi
-
-
- (adsız)
-
-
- Sahip:
-
-
- Kamuya Açık
-
-
- (Grup)
-
-
- Satılık: L$[AMOUNT]
-
-
- Grup İnşası
-
-
- İnşa Edilemez
-
-
- Grup İnşası
-
-
- Güvenli Değil
-
-
- Uçamaz
-
-
- Grup Komut Dosyaları
-
-
- Komut Dosyası Yok
-
-
- Arazi:
-
-
- Buraya sadece bir öğe sürüklenebilir.
-
-
-
- Satıcı giden kutunuzda öğeler oluşturamazsınız
-
-
- Bu nesnelerden bir veya daha fazlası satılamaz veya aktarılamaz.
-
-
- Satıcı giden kutunuza sadece doğrudan kendi envanterinizden öğeler koyabilirsiniz
-
-
- Giymekte olduğunuz öğeleri Satıcı giden kutunuza koyamazsınız.
-
-
- Satıcı giden kutunuza arama kartları koyamazsınız
-
-
- İç içe geçmiş klasörlerin derinliği üçü geçiyor
-
-
- Üst seviyedeki klasördeki alt klasör sayısı 20'yi geçiyor
-
-
- Üst seviyedeki klasördeki öğe sayısı 200'ü geçiyor
-
-
- Bir klasörü alt klasörüne taşıyamazsınız
-
-
- Bir klasörü kendi içine taşıyamazsınız
-
-
- Bu web sayfasını görmek için tıklayın
-
-
- Bu konumun bilgisini görmek için tıklayın
-
-
- Bu Sakinin profilini görmek için tıklayın
-
-
- Bu Sakin hakkında daha fazla bilgi öğrenin
-
-
- Bu Sakini engellemek için tıklayın
-
-
- Bu Sakinin engellemesini kaldırmak için tıklayın
-
-
- Bu Sakine Aİ göndermek için tıklayın
-
-
- Bu Sakine ödeme yapmak için tıklayın
-
-
- Bu Sakine bir ışınlama talebi teklif etmek için tıklayın
-
-
- Bu Sakine bir arkadaşlık talebi teklif etmek için tıklayın
-
-
- Bu grubun açıklamasını görmek için tıklayın
-
-
- Bu etkinliğin açıklamasını görmek için tıklayın
-
-
- Bu ilanı görmek için tıklayın
-
-
- Bu parselin açıklamasını görmek için tıklayın
-
-
- Bu konuma ışınlama yapmak için tıklayın
-
-
- Bu nesnenin açıklamasını görmek için tıklayın
-
-
- Bu konumu bir haritada görmek için tıklayın
-
-
- secondlife:// komutunu çalıştırmak için tıklayın
-
-
-
- Şuraya ışınla:
-
-
- Şunun için Harita göster:
-
-
- Engelle
-
-
- Engellemeyi kaldır
-
-
- Aİ
-
-
- Öde
-
-
- Şuraya Işınlama Teklif Et:
-
-
- Arkadaşlık Talebi
-
-
- Kapat (⌘W)
-
-
- Kapat (Ctrl+W)
-
-
- Kapat
-
-
- Geri Yükle
-
-
- Simge Durumuna Küçült
-
-
- Böl
-
-
- Yerleştir
-
-
- Yardımı Göster
-
-
- Arıyor...
-
-
- Hiçbiri bulunamadı.
-
-
- Alınıyor...
-
-
- Sürüm Notları
-
-
- Yükleniyor...
-
-
- (hiçbiri)
-
-
- (bekliyor)
-
-
- (birden çok)
-
-
- (hiçbiri)
-
-
- Avaline Arayanı [ORDER]
-
-
- Hata yok
-
-
- Varlık talebi: başarısız oldu
-
-
- Varlık talebi: var olmayan dosya
-
-
- Varlık talebi: veri tabanında varlık bulunamadı
-
-
- Dosya sonu
-
-
- Dosya açılamadı
-
-
- Dosya bulunamadı
-
-
- Dosya aktarımı zaman aşımı
-
-
- Devre yok
-
-
- Görüntüleyici ile sunucu fiyatta anlaşmadı
-
-
- Bilinmeyen durum
-
-
- doku
-
-
- ses
-
-
- arama kartı
-
-
- yer imi
-
-
- eski komut dosyası
-
-
- giysi
-
-
- nesne
-
-
- not kartı
-
-
- klasör
-
-
- kök
-
-
- LSL2 komut dosyası
-
-
- LSL bayt kodu
-
-
- tga dokusu
-
-
- vücut bölümü
-
-
- anlık görüntü
-
-
- Kaybedip Bulduklarım
-
-
- targa görüntüsü
-
-
- Çöp
-
-
- jpeg görüntüsü
-
-
- animasyon
-
-
- mimik
-
-
- sim durumu
-
-
- favori
-
-
- bağlantı
-
-
- klasör bağlantısı
-
-
- örgü
-
-
- (Görünümü Düzenliyor)
-
-
- Uzakta
-
-
- Meşgul
-
-
- Engellenmiş
-
-
- Korkmuş
-
-
- Kızgın
-
-
- Uzakta
-
-
- Geriye salto
-
-
- İçten Kahkaha
-
-
- Büyük Gülümseme
-
-
- Öpücük Atma
-
-
- Canı Sıkılmış
-
-
- Selamlama
-
-
- Alkış
-
-
- Reverans
-
-
- Ağlama
-
-
- Dans 1
-
-
- Dans 2
-
-
- Dans 3
-
-
- Dans 4
-
-
- Dans 5
-
-
- Dans 6
-
-
- Dans 7
-
-
- Dans 8
-
-
- Dudak Bükme
-
-
- İçme
-
-
- Utanmış
-
-
- İşaret Etme
-
-
- Yumruk Sallama
-
-
- Uçan Yoga
-
-
- Kaş Çatma
-
-
- Sabırsız
-
-
- Sevinçten Zıplama
-
-
- Kıçımı Öp
-
-
- Öpücük
-
-
- Gülme
-
-
- Muscle Beach
-
-
- Hayır (Mutsuz)
-
-
- Hayır
-
-
- Ha-ha-ha
-
-
- Peşpeşe İki Yumruk
-
-
- Ağız Açık
-
-
- Barış
-
-
- Diğerini Göster
-
-
- Kendini Göster
-
-
- Sola Yumruk At
-
-
- Sağa Yumruk At
-
-
- RPS sayımı
-
-
- RPS kağıdı
-
-
- RPS kayası
-
-
- RPS makası
-
-
- Tiksinmiş
-
-
- Döner Tekme
-
-
- Üzgün
-
-
- Selam
-
-
- Bağırma
-
-
- Omuz Silkme
-
-
- Gülümseme
-
-
- Duman Tüttürme
-
-
- Duman Çekme
-
-
- Yere İzmarit Atma
-
-
- Sürpriz
-
-
- Kılıç Darbesi
-
-
- Öfke Nöbeti
-
-
- Dil Çıkarma
-
-
- El Sallama
-
-
- Fısıldama
-
-
- Islık Çalma
-
-
- Göz Kırpma
-
-
- Göz Kırpma (Hollywood)
-
-
- Endişelenme
-
-
- Evet (Mutlu)
-
-
- Evet
-
-
- Birden Çok
-
-
- Yükleniyor...
-
-
- Çevrimdışı
-
-
- [AREA] m² L$[PRICE]
-
-
- Hiçbiri bulunamadı.
-
-
- Tamam
-
-
- Dosyanın zamanından önce sonu
-
-
- KÖK veya EKLEM bulunamıyor.
-
-
- fısıldar:
-
-
- bağırır:
-
-
- SL dünyası içindeki Sesli Sohbete bağlanılıyor...
-
-
- Bağlı
-
-
- Geçerli konumunuzda ses mevcut değil
-
-
- SL dünyası içindeki Sesli Sohbet ile bağlantı kesildi
-
-
- Şimdi Yakındaki bir Sesli Sohbete yeniden bağlanılacaksınız.
-
-
- '[OWNERNAME]' adlı kişiye ait, [REGIONPOS] üzerinde [REGIONNAME] içerisinde bulunan '[OBJECTNAME]' nesnesine şunu yapma izni verildi: [PERMISSIONS].
-
-
- '[OWNERNAME]' adlı kişiye ait, [REGIONPOS] üzerinde [REGIONNAME] içerisinde bulunan '[OBJECTNAME]' nesnesine şunu yapma izni verilmedi: [PERMISSIONS].
-
-
- Sizden Linden dolar (L$) almak
-
-
- Denetim girişlerinizle ilgili eylem gerçekleştirmek
-
-
- Denetim girişleriniz için yeniden eşleme yapmak
-
-
- Avatarınızı canlandırmak
-
-
- Avatarınıza eklemek
-
-
- Mülkiyeti bırakmak ve kamuya açık hale gelmek
-
-
- Başka nesnelerle bağlantı kurmak veya koparmak
-
-
- Başka nesnelerle eklem eklemek ve kaldırmak
-
-
- İzinlerini değiştirmek
-
-
- Kameranızı takip etmek
-
-
- Kameranızı kontrol etmek
-
-
- Bağlı Değil
-
-
- Genel
-
-
- Orta
-
-
- Yetişkin
-
-
- Çevrimdışı
-
-
- Bilinmiyor
-
-
- (bilinmiyor)
-
-
- Gayrimenkul / Tam Bölge
-
-
- Gayrimenkul / Banliyö
-
-
- Anakara / Banliyö
-
-
- Anakara / Tam Bölge
-
-
- Tüm Dosyalar
-
-
- Sesler
-
-
- Animasyonlar
-
-
- Görüntüler
-
-
- Kaydet
-
-
- Yükle
-
-
- Targa Görüntüleri
-
-
- Bitmap Görüntüler
-
-
- AVI Film Dosyası
-
-
- XAF Animasyon Dosyası
-
-
- XML Dosyası
-
-
- Ham Dosya
-
-
- Sıkıştırılmış Görüntüler
-
-
- Dosyalar Yükle
-
-
- Dizin Seç
-
-
- Komut Dosyaları
-
-
- Uzakta Değil
-
-
- Uzakta
-
-
- Meşgul Değil
-
-
- Meşgul
-
-
- Şekil
-
-
- Dış Katman
-
-
- Saç
-
-
- Gözler
-
-
- Gömlek
-
-
- Pantolon
-
-
- Ayakkabılar
-
-
- Çoraplar
-
-
- Ceket
-
-
- Eldivenler
-
-
- Fanila
-
-
- Külot
-
-
- Etek
-
-
- Alfa
-
-
- Dövme
-
-
- Fizik
-
-
- geçersiz
-
-
- hiçbiri
-
-
- Giyilmemiş gömlek
-
-
- Giyilmemiş pantolon
-
-
- Giyilmemiş ayakkabılar
-
-
- Giyilmemiş çoraplar
-
-
- Giyilmemiş ceket
-
-
- Giyilmemiş eldivenler
-
-
- Giyilmemiş fanila
-
-
- Giyilmemiş külot
-
-
- Giyilmemiş etek
-
-
- Giyilmemiş alfa
-
-
- Giyilmemiş dövme
-
-
- Giyilmemiş fizik
-
-
- geçersiz
-
-
- Yeni şekil oluştur
-
-
- Yeni dış katman oluştur
-
-
- Yeni saç oluştur
-
-
- Yeni gözler oluştur
-
-
- Yeni gömlek oluştur
-
-
- Yeni pantolon oluştur
-
-
- Yeni ayakkabılar oluştur
-
-
- Yeni çoraplar oluştur
-
-
- Yeni ceket oluştur
-
-
- Yeni eldivenler oluştur
-
-
- Yeni fanila oluştur
-
-
- Yeni külot oluştur
-
-
- Yeni etek oluştur
-
-
- Yeni alfa oluştur
-
-
- Yeni dövme oluştur
-
-
- Yeni fizik oluştur
-
-
- geçersiz
-
-
- Yeni [WEARABLE_ITEM]
-
-
- Sonraki
-
-
- Tamam
-
-
- Grup Bildirimi
-
-
- Grup Bildirimleri
-
-
- Gönderen:
-
-
- Eklenmiş:
-
-
- Burada eski bildirimleri görüntüleyin veya bu iletilerin alınmasını iptal edin.
-
-
- Aksesuarı Aç
-
-
- Aksesuarı Kaydet
-
-
- Işınlama teklifi
-
-
- Siz yokken yeni bildirimler geldi.
-
-
- %d ilave bildiriminiz var
-
-
- Sağ Kol
-
-
- Baş
-
-
- Sol Kol
-
-
- Sol Bacak
-
-
- Gövde
-
-
- Sağ Bacak
-
-
- Düşük
-
-
- Orta
-
-
- Yüksek
-
-
- Dünya Görünümüne dönmek için ESC'e basın
-
-
- Aradığınızı bulamadınız mı? [secondlife:///app/search/all/[SEARCH_TERM] Arama] ile bulmayı deneyin.
-
-
- Aradığınızı bulamadınız mı? [secondlife:///app/search/places/[SEARCH_TERM] Arama] ile bulmayı deneyin.
-
-
- Bir yer imini favorilerinize eklemek için buraya sürükleyin.
-
-
- Envanterinizde bu dokunun kopyası yok
-
-
- Pazaryerinda satın aldıklarınız burada görünecektir. Bunları kullanmak için envanterinize sürükleyebilirsiniz.
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
-
-
- http://community.secondlife.com/t5/English-Knowledge-Base/Selling-in-the-Marketplace/ta-p/700193#Section_.4
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/dashboard
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/merchants/store/imports
-
-
- https://marketplace.[MARKETPLACE_DOMAIN_NAME]/learn_more
-
-
- Pazaryerinde herkes öğe satabilir.
-
-
-
- Eğer bir satıcı olmak istiyorsanız, [Pazaryerinde [MARKETPLACE_CREATE_STORE_URL] bir mağaza açmanız gerekir].
-
-
- Giden kutunuz boş.
-
-
-
- Bu alana klasörleri sürükleyin ve bunları [[MARKETPLACE_DASHBOARD_URL] Pazaryerinde] satılık olarak duyurmak için "Pazaryerine Gönder" üzerine tıklayın.
-
-
- Hata yok
-
-
- Hata: Öğeleri Pazaryerine göndermeden önce kendinizi bir satıcı olarak belirlemelisiniz (ücretsizdir).
-
-
- Hata: Bu klasörün içeriği boş.
-
-
- Hata: Bu öğe karşıya yüklenemedi çünkü satıcı hesabınızda ürünlerle ilişkisiz çok fazla öğe mevcut. Bu hatayı düzeltmek için Pazaryeri web sitesine oturum açın ve ilişkisiz öğe sayınızı azaltın.
-
-
- Hata: Bu öğe çok fazla nesne içeriyor. Bu hatayı düzeltmek için nesneleri birlikte kutulara yerleştirerek, toplam nesne sayısını 200'ün altına düşürün.
-
-
- Hata: Bu öğede çok fazla iç içe geçmiş klasör seviyesi var. Bunu tekrar düzenleyerek maksimum 3 iç içe geçmiş klasör seviyesine indirin.
-
-
- Hata: Bu öğe Pazaryerinde satılamaz.
-
-
- Hata: Bu öğede bir sorun var. Daha sonra tekrar deneyin.
-
-
- Açık yer imleri
-
-
-
-
-
-
-
-
- İçerik yükleniyor...
-
-
- İçerik yok
-
-
-
-
- Evet
-
-
- Hayır
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Envanterim
-
-
- Kütüphane
-
-
- Dokular
-
-
- Sesler
-
-
- Arama Kartları
-
-
- Yer İmleri
-
-
- Komut Dosyaları
-
-
- Giysiler
-
-
- Nesneler
-
-
- Not Kartları
-
-
- Yeni Klasör
-
-
- Envanter
-
-
- Sıkıştırılmamış Görüntüler
-
-
- Vücut Bölümleri
-
-
- Çöp
-
-
- Fotoğraf Albümü
-
-
- Kaybedip Bulduklarım
-
-
- Sıkıştırılmamış Sesler
-
-
- Animasyonlar
-
-
- Mimikler
-
-
- Favorilerim
-
-
- Favorilerim
-
-
- Mevcut Dış Görünüm
-
-
- Başlangıçtakı Dış Görünümler
-
-
- Benim Dış Görünümlerim
-
-
- Aksesuarlar
-
-
- Örgüler
-
-
- Arkadaşlar
-
-
- Tümü
-
-
- Giyilen aksesuar yok
-
-
- Aksesuarlar ([COUNT] yuva mevcut)
-
-
- Satın Al
-
-
- L$'a Satın Al
-
-
- Taş
-
-
- Metal
-
-
- Cam
-
-
- Ahşap
-
-
- Et
-
-
- Plastik
-
-
- Lastik
-
-
- Işık
-
-
- Shift
-
-
- Ctrl
-
-
- Göğüs
-
-
- Kafatası
-
-
- Sol Omuz
-
-
- Sağ Omuz
-
-
- Sol El
-
-
- Sağ El
-
-
- Sol Ayak
-
-
- Sağ Ayak
-
-
- Omurga
-
-
- Leğen Kemiği
-
-
- Ağız
-
-
- Çene
-
-
- Sol Kulak
-
-
- Sağ Kulak
-
-
- Sol Göz Küresi
-
-
- Sağ Göz Küresi
-
-
- Burun
-
-
- Sağ Üst Kol
-
-
- Sağ Ön Kol
-
-
- Sol Üst Kol
-
-
- Sol Ön Kol
-
-
- Sağ Kalça
-
-
- Sağ Üst Bacak
-
-
- Sağ Alt Bacak
-
-
- Sol Kalça
-
-
- Sol Üst Bacak
-
-
- Sol Alt Bacak
-
-
- Karın
-
-
- Sol Göğüs
-
-
- Sağ Göğüs
-
-
- Boyun
-
-
- Avatar Merkezi
-
-
- Geçersiz Aksesuar Noktası
-
-
- [AGEYEARS] [AGEMONTHS]'lık
-
-
- [AGEYEARS] yaşında
-
-
- [AGEMONTHS]'lık
-
-
- [AGEWEEKS]'lık
-
-
- [AGEDAYS]'lük
-
-
- Bugün katıldı
-
-
- [COUNT] yıl
-
-
- [COUNT] yıl
-
-
- [COUNT] yıl
-
-
- [COUNT] ay
-
-
- [COUNT] ay
-
-
- [COUNT] ay
-
-
- [COUNT] hafta
-
-
- [COUNT] hafta
-
-
- [COUNT] hafta
-
-
- [COUNT] gün
-
-
- [COUNT] gün
-
-
- [COUNT] gün
-
-
- [COUNT] üye
-
-
- [COUNT] üye
-
-
- [COUNT] üye
-
-
- Sakin
-
-
- Deneme
-
-
- Ayrıcalıklı Üye
-
-
- Linden Lab Çalışanı
-
-
- Kullanılan Ödeme Bilgisi
-
-
- Dosyadaki Ödeme Bilgisi
-
-
- Dosyada Ödeme Bilgisi Yok
-
-
- Yaşı Doğrulanmış
-
-
- Yaşı Doğrulanmamış
-
-
- 2. Merkez
-
-
- Sağ Üst
-
-
- Üst
-
-
- Sol Üst
-
-
- Merkez
-
-
- Sol Alt
-
-
- Alt
-
-
- Sağ Alt
-
-
- Karşıdan yüklendi, şimdi derleniyor
-
-
- Komut dosyası sunucuda bulunamadı.
-
-
- Karşıdan yüklenirken sorun oluştu
-
-
- Komut dosyasını karşıdan yüklemek için yeterli izin yok.
-
-
- Şunun için yeterli izin yok:
-
-
- Karşıdan yüklerken bilinmeyen hata
-
-
- Tekrar Derleme İlerlemesi
-
-
- tekrar derle
-
-
- Sıfırlama İlerlemesi
-
-
- sıfırla
-
-
- Çalışan Süreçlerin İlerlemesini Ayarla
-
-
- çalıştırmayı ayarla
-
-
- Çalışmayan Süreçlerin İlerlemesini Ayarla
-
-
- çalıştırmamayı ayarla
-
-
- Derleme başarılı oldu!
-
-
- Derleme başarılı, kaydediliyor...
-
-
- Kaydetme tamamlandı.
-
-
- Komut dosyası (nesne kapsam dışı)
-
-
- [OWNER] mülkiyetindeki [OBJECT] nesnesi
-
-
- hiçbiri
-
-
-
- (Bilinmiyor)
-
-
-
-
- [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]
-
-
-
-
- Bakiye
-
-
- Katkıda Bulunanlar
-
-
- Borçlar
-
-
- Toplam
-
-
- Bu grup için grup verisi bulunamadı
-
-
- ana gayrimenkul
-
-
- anakara
-
-
- on sekiz yaş altı
-
-
- herkes
-
-
- hata
-
-
- [OWNER] mülkiyetindeki tüm gayrimenkuller
-
-
- sahip olduğunuz tüm gayrimenkuller
-
-
- [OWNER] adına yönettiğiniz tüm gayrimenkuller
-
-
- İzin verilen Sakinler: ([ALLOWEDAGENTS], maks [MAXACCESS])
-
-
- İzin verilen gruplar: ([ALLOWEDGROUPS], maks [MAXACCESS])
-
-
- Parsel Komut Dosyası Belleği
-
-
- Listelenen Parseller: [PARCELS]
-
-
- Kullanılan bellek: [COUNT] kb / [MAX] kb içerisinden; [AVAILABLE] kb serbest
-
-
- Kullanılan bellek: [COUNT] kb
-
-
- Parsel Komut Dosyası URL'leri
-
-
- Kullanılan URL'ler: [COUNT] / [MAX] içerisinden; [AVAILABLE] serbest
-
-
- Kullanılan URL'ler: [COUNT]
-
-
- Bilgi talep edilirken hata oluştu
-
-
- Seçili Parsel Yok
-
-
- Hata: Komut dosyası bilgisi sadece mevcut bölgenizde geçerli
-
-
- Bilgiler alınıyor...
-
-
- Bu parseli inceleme izniniz yok
-
-
- Üzerinde Oturuyor
-
-
- Göğüs
-
-
- Baş
-
-
- Sol Omuz
-
-
- Sağ Omuz
-
-
- Sol El
-
-
- Sağ El
-
-
- Sol Ayak
-
-
- Sağ Ayak
-
-
- Geri
-
-
- Leğen Kemiği
-
-
- Ağız
-
-
- Çene
-
-
- Sol Kulak
-
-
- Sağ Kulak
-
-
- Sol Göz
-
-
- Sağ Göz
-
-
- Burun
-
-
- Sol Üst Kol
-
-
- Sağ Alt Kol
-
-
- Sol Üst Kol
-
-
- Sol Alt Kol
-
-
- Sağ Kalça
-
-
- Sağ Üst Bacak
-
-
- Sağ Alt Bacak
-
-
- Sol Kalça
-
-
- Sol Üst Bacak
-
-
- Sol Alt Bacak
-
-
- Göbek
-
-
- Sağ Göğüs
-
-
- Sol Göğüs
-
-
- BÜG 2. Merkez
-
-
- BÜG Sağ Üst
-
-
- BÜG Merkez Üst
-
-
- BÜG Sol Üst
-
-
- BÜG 1. Merkez
-
-
- BÜG Sol Alt
-
-
- BÜG Alt
-
-
- BÜG Sağ Alt
-
-
- Satır [LINE], Sütun [COLUMN]
-
-
- [COUNT] bulundu
-
-
- [hour,datetime,slt]:[min,datetime,slt]
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]
-
-
- Nesnenin içeriği
-
-
- Yeni Komut Dosyası
-
-
- İleti gönderdiğiniz Sakin 'meşgul modu'nda, bu da rahatsız edilmek istemediği anlamına geliyor. İletiniz daha sonra incelenmesi için kendisine ait Aİ panelinde gösterilecektir.
-
-
- (Adına göre)
-
-
- (Sakin)
-
-
- (Nesne)
-
-
- (Grup)
-
-
- (Harici)
-
-
- Bu Gayrimenkul için Sözleşmesi yok.
-
-
- Bu Gayrimenkul için Sözleşmesi yok. Bu gayrimenkul üzerindeki arazi Linden Lab. değil, Gayrimenkul sahibi tarafından satılmaktadır. Satış ayrıntılarını öğrenmek için lütfen Gayrimenkul Sahibiyle bağlantıya geçin.
-
-
-
-
-
- Sahibi Olunan Grup
-
-
- Kamuya Açık
-
-
- Yerel Ayarlar
-
-
- Bölge Ayarları
-
-
- Tıklamalar: [TELEPORT] ışınlama, [MAP] harita, [PROFILE] profil
-
-
- (yayınlandıktan sonra güncelleştirilir)
-
-
- Herhangi bir Seçme veya İlan oluşturmadınız. Bir Seçme veya İlan oluşturmak için aşağıdaki Artı düğmesine tıklayın.
-
-
- Kullanıcının herhangi bir seçmesi veya ilanı yok
-
-
- Yükleniyor...
-
-
- Önizleme
-
-
- Özellikler
-
-
- Şu ada sahip bir nesne:
-
-
- grubun sahip olduğu:
-
-
- bilinmeyen grubun sahip olduğu:
-
-
- sahibi:
-
-
- bilinmeyen bir kullanıcının sahip olduğu:
-
-
- size verdi:
-
-
- <nolink>[NAME]</nolink> tarafından gönderilen [DESC]'i reddettiniz.
-
-
- Toplam
-
-
- alınan:
-
-
- size ödenen:
-
-
- şuraya ödenen:
-
-
- şuraya geçiş hakkı alınan:
-
-
- etkinlik için ödenen ücret:
-
-
- etkinlik için verilen ödül:
-
-
- Bakiye
-
-
- Katkıda Bulunanlar
-
-
- Borçlar
-
-
- [weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]
-
-
- İçerik
-
-
- Alınan Öğeler
-
-
- İptal
-
-
- [NAME] için karşıya yükleme maliyeti: L$ [AMOUNT]
-
-
- Bunu satın almanın maliyeti: L$ [AMOUNT]
-
-
- Bilinmeyen dosya uzantısı .%s
-.wav, .tga, .bmp, .jpg, .jpeg veya .bvh bekleniyordu
-
-
- Engelle
-
-
- Engelle
-
-
- Engellemeyi Kaldır
-
-
- Engellemeyi Kaldır
-
-
- Yer İmlerime Ekle...
-
-
- Yer İmimi Düzenle...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Shift+
-
-
- Dosya Kaydedildi
-
-
- Alınıyor
-
-
- ÖÖ
-
-
- ÖS
-
-
- PST
-
-
- PDT
-
-
- İleri
-
-
- Sol
-
-
- Sağ
-
-
- Geri
-
-
- Kuzey
-
-
- Güney
-
-
- Batı
-
-
- Doğu
-
-
- Yukarı
-
-
- Aşağı
-
-
- Herh. Bir Kategori
-
-
- Alışveriş
-
-
- Arazi Kiralama
-
-
- Mülk Kiralama
-
-
- Özel Atraksiyon
-
-
- Yeni Ürünler
-
-
- İstihdam
-
-
- Arananlar
-
-
- Hizmet
-
-
- Kişisel
-
-
- Renksiz
-
-
- Linden Konumu
-
-
- Yetişkin
-
-
- Sanat ve Kültür
-
-
- İş
-
-
- Eğitim
-
-
- Oyun
-
-
- Uğrak Mekan
-
-
- Yeni Gelenlere Yardım Sunan
-
-
- Park ve Doğa
-
-
- Yerleşim
-
-
- Sahne
-
-
- Diğer
-
-
- Kiralık
-
-
- Herhangi
-
-
- Siz
-
-
- :
-
-
- ,
-
-
- ...
-
-
- ***
-
-
- (
-
-
- )
-
-
- .
-
-
- '
-
-
- ---
-
-
- Birden Çok Ortam
-
-
- Ortamı Oynat/Durdur
-
-
- Komut satırı ayrıştırılırken bir hata oluştu.
-Lütfen bakınız: http://wiki.secondlife.com/wiki/Client_parameters
-Hata:
-
-
- [APP_NAME] Komut satırı kullanımı:
-
-
- [APP_NAME] ihtiyaç duyduğu bir dosyaya erişemiyor.
-
-Bunun nedeni bir şekilde birden fazla kopyanın çalışıyor olması veya sisteminizin, bir dosyanın açık olduğunu sanması olabilir.
-Bu iletiyi görmeye devam ederseniz, bilgisayarınızı yeniden başlatın ve tekrar deneyin.
-Sorun devam ederse [APP_NAME] uygulamasını tümüyle kaldırmanız ve tekrar yüklemeniz gerekebilir.
-
-
- Önemli Hata
-
-
- [APP_NAME], AltiVec (G4 veya üzeri) bir işlemciye ihtiyaç duyuyor.
-
-
- [APP_NAME] zaten çalışıyor.
-Programın simge durumuna küçültülmüş bir kopyası için görev çubuğunuza bakın.
-Bu iletiyi görmeye devam ederseniz, bilgisayarınızı tekrar başlatın.
-
-
- [APP_NAME] uygulaması bir önceki çalıştırmada kilitlenmiş görünüyor.
-Bir kilitlenme raporu göndermek ister misiniz?
-
-
- Bildirim
-
-
- [APP_NAME], DirectX 9.0b veya üzerini saptayamıyor.
-[APP_NAME], kararlılık problemleri, kötü performans ve çökmelere neden olabilecek donanım ve/veya süresi geçmiş sürücüleri saptamak için DirectX kullanır. [APP_NAME] uygulamasını bu olmadan da çalıştırmanız mümkündür, ancak DirectX 9.0b ile çalıştırmanızı kuvvetle tavsiye ederiz.
-
-Devam etmek istiyor musunuz?
-
-
- Uyarı
-
-
- Linux için henüz otomatik güncelleştirme uygulanmamıştır.
-Lütfen www.secondlife.com adresinden son sürümü karşıdan yükleyin.
-
-
- RegisterClass başarısız oldu
-
-
- Hata
-
-
- [WIDTH] x [HEIGHT] çözünürlüğünde tam ekran çalıştırma yapılamıyor.
-Pencerede çalışıyor.
-
-
- Pencere yok edilirken Kapatma Hatası oluştu (DestroyWindow() başarısız oldu)
-
-
- Kapatma Hatası
-
-
- GL cihazı içeriği oluşturulamıyor
-
-
- Uygun piksel formatı bulunamadı
-
-
- Piksel formatı açıklaması alınamıyor
-
-
- [APP_NAME] uygulamasının çalışması için Gerçek Renk (32 bit) gerekiyor.
-Lütfen bilgisayarınızın ekran ayarlarına gidin ve renk modunu 32 bit olarak ayarlayın.
-
-
- [APP_NAME] çalışamıyor çünkü 8 bit bir alfa kanalı alamıyor. Bunun nedeni genellikle video kartı sürücü sorunlarıdır.
-Lütfen en yeni video sürücülerinin yüklü olduğuna emin olun.
-Ayrıca Denetim Masaları > Ekran > Ayarlar içerisinde ekranınız için Gerçek Renk (32 bit) ayarı yapıldığına emin olun.
-Bu iletiyi almaya devam ederseniz, lütfen [SUPPORT_SITE] bölümüne başvurun.
-
-
- Piksel formatı ayarlanamıyor
-
-
- GL işlemi bağlamı oluşturulamıyor
-
-
- GL işlemi bağlamı etkinleştirilemiyor
-
-
- [APP_NAME] çalışamıyor çünkü video kartı sürücüleriniz düzgün yüklenemedi, süresi geçmiş durumda veya desteklenmeyen donanımlar için geliştirilmiş. Lütfen en yeni video kartı sürücülerine sahip olduğunuza emin olun; en yeni sürücüler mevcutsa da bunları tekrar yüklemeyi deneyin.
-
-Bu iletiyi almaya devam ederseniz, lütfen [SUPPORT_SITE] bölümüne başvurun.
-
-
- Bir Günlük Sakal
-
-
- Tümü Beyaz
-
-
- Anime Gözler
-
-
- Yay Şeklinde
-
-
- Kol Uzunluğu
-
-
- Bitişik
-
-
- Kafaya Bitişik Kulak Memeleri
-
-
- Arka Perçem
-
-
- Torbalı
-
-
- Kahküller
-
-
- Boncuk Gözler
-
-
- Göbek Büyüklüğü
-
-
- Büyük
-
-
- Büyük Kıç
-
-
- Kabarık Saç: Arkada
-
-
- Kabarık Saç: Önde
-
-
- Kabarık Saç: Tepede
-
-
- Büyük Kafa
-
-
- Büyük Göğüs Kasları
-
-
- Büyük Dik Kısımlar
-
-
- Siyah
-
-
- Sarışın
-
-
- Sarı Saç
-
-
- Allık
-
-
- Allık Rengi
-
-
- Allık Geçirgenliği
-
-
- Vücut Tanımı
-
-
- Vücut Yağı
-
-
- Vücut Çilleri
-
-
- Kalın Vücut
-
-
- Vücut Kalınlığı
-
-
- İnce Vücut
-
-
- Çarpık Bacaklı
-
-
- Göğüs Kalkıklığı
-
-
- Göğüs Çatalı
-
-
- Göğüs Büyüklüğü
-
-
- Burun Kemiği Genişliği
-
-
- Geniş
-
-
- Alın Genişliği
-
-
- Patlak Gözlü
-
-
- Patlak Gözlü
-
-
- Patates Burunlu
-
-
- Patates Burunlu
-
-
- Göğüs Kütlesi
-
-
- Göğüs Düzleştirme
-
-
- Göğüs Yerçekimi
-
-
- Göğüs Direnci
-
-
- Maks Etki
-
-
- Yaylanma
-
-
- Kazanç
-
-
- Sönüm
-
-
- Maks Etki
-
-
- Yaylanma
-
-
- Kazanç
-
-
- Sönüm
-
-
- Maks Etki
-
-
- Yaylanma
-
-
- Kazanç
-
-
- Sönüm
-
-
- Göbek Kütlesi
-
-
- Göbek Düzleştirme
-
-
- Göbek Yerçekimi
-
-
- Göbek Direnci
-
-
- Maks Etki
-
-
- Yaylanma
-
-
- Kazanç
-
-
- Sönüm
-
-
- Kıç Kütlesi
-
-
- Kıç Düzleştirme
-
-
- Kıç Yerçekimi
-
-
- Kıç Direnci
-
-
- Maks Etki
-
-
- Yaylanma
-
-
- Kazanç
-
-
- Sönüm
-
-
- Maks Etki
-
-
- Yaylanma
-
-
- Kazanç
-
-
- Sönüm
-
-
- Gür Kaşlar
-
-
- Gür Saç
-
-
- Kıç Büyüklüğü
-
-
- Kıç Yerçekimi
-
-
- Tarlatanlı Etek
-
-
- Tarlatansız
-
-
- Çok Tarlatanlı
-
-
- Chaplin pantalon
-
-
- Elmacık Kemikleri
-
-
- Göğüs Büyüklüğü
-
-
- Çene Açısı
-
-
- Çene Çukuru
-
-
- Lincoln Sakal
-
-
- Çene Derinliği
-
-
- Geniş Çene
-
-
- Çene İçeri
-
-
- Çene Dışarı
-
-
- Çene-Boyun
-
-
- Temizle
-
-
- Çukur
-
-
- Yakın Gözler
-
-
- Kapalı
-
-
- Arkası Kapalı
-
-
- Önü Kapalı
-
-
- Solu Kapalı
-
-
- Sağı Kapalı
-
-
- Para Cüzdanı
-
-
- Yaka Arkası
-
-
- Yaka Önü
-
-
- Köşesi Aşağıda
-
-
- Köşesi Yukarıda
-
-
- Kırışık
-
-
- Yamuk Burun
-
-
- Geniş Paça
-
-
- Karanlık
-
-
- Koyu Yeşil
-
-
- Daha Koyu
-
-
- Derin
-
-
- Varsayılan Topuklar
-
-
- Yoğun
-
-
- Çift Çene
-
-
- Aşağı Dönük
-
-
- Spor Çanta
-
-
- Kulak Açısı
-
-
- Kulak Büyüklüğü
-
-
- Kulak Uçları
-
-
- Yumurta Kafa
-
-
- Göz Altı Torbaları
-
-
- Göz Rengi
-
-
- Gözün İçeri Çöküklüğü
-
-
- Göz Parlaklığı
-
-
- Göz Açıklığı
-
-
- Gözlerin Dışarı Çıkıklığı
-
-
- Göz Büyüklüğü
-
-
- Gözlerin Aralığı
-
-
- Kaş Kavisi
-
-
- Kaş Kalınlığı
-
-
- Kaş Yüksekliği
-
-
- Kaş Yapısı
-
-
- Kaş Büyüklüğü
-
-
- Kirpik Uzunluğu
-
-
- Göz Kalemi
-
-
- Göz Kalemi Rengi
-
-
- Patlak Gözler
-
-
- Dikey Yüz Kaydırma
-
-
- Yüz İfadesi
-
-
- Ayrık Gözler
-
-
- Kalın Dudaklar
-
-
- Kadın
-
-
- Parmaksız
-
-
- Parmaklar
-
-
- Geniş Paçalar
-
-
- Düz
-
-
- Düz Kıç
-
-
- Düz Kafa
-
-
- Düz Ayak Ucu
-
-
- Ayak Büyüklüğü
-
-
- Alın Açısı
-
-
- Belirgin Alın
-
-
- Çiller
-
-
- Ön Perçem
-
-
- Arkası Düz
-
-
- Çift Taraflı Göz Kalemi
-
-
- Önü Düz
-
-
- Saçlar Yanda
-
-
- Saçlar Yanda
-
-
- Parlak
-
-
- Eldiven Parmakları
-
-
- Eldiven Uzunluğu
-
-
- Saç
-
-
- Saç: Arka
-
-
- Saç: Ön
-
-
- Saç: Yanlar
-
-
- Saçı Yana Tarama
-
-
- Saç Kalınlığı
-
-
- Saç Kalınlığı
-
-
- Saç Eğimi
-
-
- Sola Eğimli Saç
-
-
- Sağa Eğimli Saç
-
-
- Saç: Hacim
-
-
- El Büyüklüğü
-
-
- Gidon tipi
-
-
- Kafa Uzunluğu
-
-
- Kafa Şekli
-
-
- Kafa Büyüklüğü
-
-
- Kafayı Uzatma
-
-
- Topuk Yüksekliği
-
-
- Topuk Şekli
-
-
- Yükseklik
-
-
- Yüksek
-
-
- Yüksek Topuklar
-
-
- Ayrık
-
-
- Yüksek Topuklu
-
-
- Düşük
-
-
- Daha Yüksek
-
-
- Kalça Uzunluğu
-
-
- Kalça Genişliği
-
-
- İçeri
-
-
- İç Gölge Rengi
-
-
- İç Gölge Opaklığı
-
-
- Gözün İç Köşesi
-
-
- İç Göz Gölgesi
-
-
- İç Gölge
-
-
- Ceket Uzunluğu
-
-
- Ceket Kırışıklıkları
-
-
- Çenenin Boyuna Uzaklığı
-
-
- Alt Çene Uzunluğu
-
-
- Çene Kemiği Genişliği
-
-
- Birleşik
-
-
- Avurtlar
-
-
- Diz Açısı
-
-
- Çarpık Bacaklı
-
-
- Büyük
-
-
- Büyük Eller
-
-
- Sola Ayırma
-
-
- Bacak Uzunluğu
-
-
- Bacak Kasları
-
-
- Daha Az
-
-
- Daha Az Vücut Yağı
-
-
- Daha Az Lincoln Sakal
-
-
- Daha Az Çil
-
-
- Daha Az Dolgun
-
-
- Dik Göğüs
-
-
- Daha İnce Bel
-
-
- Daha Az Kas
-
-
- Daha Az Kaslı
-
-
- Daha Az Pembe
-
-
- Daha Az Yuvarlak
-
-
- Basensiz
-
-
- Daha Az Küt
-
-
- Daha Az Hacim
-
-
- Daha az ruh
-
-
- Daha Hafif
-
-
- Dudak Çukuru
-
-
- Dudak Çukuru Derinliği
-
-
- Dudak Dolgunluğu
-
-
- Dudak Pembeliği
-
-
- Dudak Oranı
-
-
- Dudak Kalınlığı
-
-
- Dudak Genişliği
-
-
- Dudak Parlatıcısı
-
-
- Ruj
-
-
- Ruj Rengi
-
-
- Uzun
-
-
- Uzun Kafa
-
-
- Yüksek kalça
-
-
- Uzun Bacaklar
-
-
- Uzun Boyun
-
-
- Yandan Uzun Kuyruk
-
-
- Uzun Atkuyruğu
-
-
- Uzun Gövde
-
-
- Uzun kollar
-
-
- Bol Pantolon
-
-
- Bol Gömlek
-
-
- Bol Kollu
-
-
- Bel Kalınlığı
-
-
- Düşük
-
-
- Alçak Topuklar
-
-
- Bitişik
-
-
- Alçak Topuklu
-
-
- Yüksek
-
-
- Daha Alçak
-
-
- Alt Burun Kemiği
-
-
- Daha Alçak Yanaklar
-
-
- Erkek
-
-
- Ortadan Ayırma
-
-
- Daha Fazla
-
-
- Daha Fazla Allık
-
-
- Daha Fazla Vücut Yağı
-
-
- Daha Çok Lincoln Sakal
-
-
- Daha Fazla Göz Farı
-
-
- Daha Çok Çil
-
-
- Daha Dolgun
-
-
- Sarkık Göğüs
-
-
- Daha Çok Ruj
-
-
- Daha Kalın Bel
-
-
- Daha Dolgun Alt Dudak
-
-
- Daha Çok Kas
-
-
- Daha Kaslı
-
-
- Daha Pembe
-
-
- Daha Yuvarlak
-
-
- Basenli
-
-
- Daha Eğimli
-
-
- Daha Küt
-
-
- Daha Dolgun Üst Dudak
-
-
- Daha Dikey
-
-
- Daha Hacimli
-
-
- Daha çok ruh
-
-
- Bıyık
-
-
- Ağız Köşesi
-
-
- Ağzın Konumu
-
-
- Mowhawk Saçı
-
-
- Kaslı
-
-
- Geniş Favori
-
-
- Tırnak Cilası
-
-
- Tırnak Cilası Rengi
-
-
- Dar
-
-
- Arkası Dar
-
-
- Önü Dar
-
-
- Küçük Dudaklar
-
-
- Doğal
-
-
- Boyun Uzunluğu
-
-
- Boyun Kalınlığı
-
-
- Allık Yok
-
-
- Göz Kalemi Yok
-
-
- Göz Farı Yok
-
-
- Dudak Parlatıcısı Yok
-
-
- Ruj Yok
-
-
- Ayırma Yok
-
-
- Cila Yok
-
-
- Kırmızı Yok
-
-
- Dikleştirme Yok
-
-
- Beyaz Yok
-
-
- Kırışıklık Yok
-
-
- Normal Alt
-
-
- Normal Üst
-
-
- Sola Eğimli Burun
-
-
- Sağa Eğimli Burun
-
-
- Burun Büyüklüğü
-
-
- Burun Kalınlığı
-
-
- Burun Ucu Açısı
-
-
- Burun Ucu Şekli
-
-
- Burun Genişliği
-
-
- Burun Deliği Ayrımı
-
-
- Burun Deliği Genişliği
-
-
- Opak
-
-
- Aç
-
-
- Arkayı Aç
-
-
- Önü Aç
-
-
- Solu Aç
-
-
- Sağı Aç
-
-
- Turuncu
-
-
- Dışarı
-
-
- Dış Gölge Rengi
-
-
- Dış Gölge Opaklığı
-
-
- Gözün Dış Köşesi
-
-
- Dış Göz Gölgesi
-
-
- Dış Gölge
-
-
- Öne Doğru
-
-
- Apış Arası Şişkinliği
-
-
- Ojeli Tırnaklar
-
-
- Soluk
-
-
- Pantolon Ağı
-
-
- Pantolon Oturması
-
-
- Pantolon Uzunluğu
-
-
- Pantolon Bel Ölçüsü
-
-
- Pantolon Kırışıklıkları
-
-
- Ayırma
-
-
- Ayrılmış Kahküller
-
-
- Göğüs Kasları
-
-
- Pigment
-
-
- Yan Kuyruklar
-
-
- Pembe
-
-
- Daha Pembe
-
-
- Topuk Yüksekliği
-
-
- Topuk Genişliği
-
-
- Dar
-
-
- Sivri Topuklar
-
-
- Atkuyruğu
-
-
- Kabarık Etek
-
-
- Sol Gözü Dışarı Çıkar
-
-
- Sağ Gözü Dışarı Çıkar
-
-
- Şişkin
-
-
- Şişkin Göz Kapakları
-
-
- Gökkuşağı Rengi
-
-
- Kırmızı Saç
-
-
- Normal
-
-
- Sağa Ayırma
-
-
- Kırmızı Yanaklı
-
-
- Yuvarlak
-
-
- Kırmızılık
-
-
- Kırmızı
-
-
- Dağınık Saç
-
-
- Basen Genişliği
-
-
- Sıska Bacak
-
-
- Ayrık
-
-
- Sığ
-
-
- Arka Dolgunluğu
-
-
- Yüzü Dikey Kaydır
-
-
- Ön Dolgunluğu
-
-
- Solu Yukarı Kaydır
-
-
- Sağı Yukarı Kaydır
-
-
- Arkası Dolgun
-
-
- Önü Dolgun
-
-
- Sola Kaydır
-
-
- Ağzı Kaydırma
-
-
- Sağa Kaydır
-
-
- Gömlek Eteği
-
-
- Gömlek Boyu
-
-
- Gömlek Kırışıklıkları
-
-
- Ayakkabı Yüksekliği
-
-
- Kısa
-
-
- Kısa Kollar
-
-
- Kısa Bacaklar
-
-
- Kısa Boyun
-
-
- Yandan Kısa Kuyruk
-
-
- Kısa Atkuyruğu
-
-
- Kısa Favoriler
-
-
- Kısa Gövde
-
-
- Düşük kalça
-
-
- Omuzlar
-
-
- Yan Perçem
-
-
- Favoriler
-
-
- Yan Saçlar
-
-
- Aşağı Doğru Yan Saç
-
-
- Yukarı Doğru Yan Saç
-
-
- İnce Boyun
-
-
- Etek Boyu
-
-
- Etek Uzunluğu
-
-
- Eğimli Alın
-
-
- Kol Uzunluğu
-
-
- Kol Bolluğu
-
-
- Yırtmaç: Geri
-
-
- Yırtmaç: Ön
-
-
- Yırtmaç: Sol
-
-
- Yırtmaç: Sağ
-
-
- Küçük
-
-
- Küçük Eller
-
-
- Küçük Kafa
-
-
- Düz
-
-
- Düz Saç
-
-
- Çorap Uzunluğu
-
-
- Dudak Altı Sakal
-
-
- Seyrek
-
-
- Dikleştirilmiş Saç
-
-
- Geniş
-
-
- Küt Burunlu
-
-
- Kafayı Bastır
-
-
- Kafayı Uzat
-
-
- Çökük
-
-
- Çökük Göğüs
-
-
- Çökük Gözler
-
-
- Arkaya Tarama
-
-
- Öne Tarama
-
-
- Uzun
-
-
- Arkası Kısa
-
-
- Önü Kısa
-
-
- Kalın Topuklar
-
-
- Kalın Boyun
-
-
- Kalın Ayak Ucu
-
-
- İnce
-
-
- İnce Kaşlar
-
-
- İnce Dudaklar
-
-
- İnce Burun
-
-
- Çift Çene
-
-
- Dar Paçalar
-
-
- Dar Pantolon
-
-
- Dar Gömlek
-
-
- Dar Etek
-
-
- Dar Kollu
-
-
- Ayakkabu Burnu Şekli
-
-
- Ayakkabu Burnu Kalınlığı
-
-
- Gövde Uzunluğu
-
-
- Gövde Kasları
-
-
- Sıska Gövde
-
-
- Ayrık
-
-
- Buruşuk olmayan
-
-
- Geriye Doğru
-
-
- Doğal Olmayan
-
-
- Üst Burun Kemiği
-
-
- Üst Yanaklar
-
-
- Üst Çene Çukuru
-
-
- Üst Göz Kapağı Kıvrımı
-
-
- Yukarı dönük
-
-
- Çok Kırmızı
-
-
- Bel Yüksekliği
-
-
- Dolgun
-
-
- Beyaz Saç
-
-
- Geniş
-
-
- Geniş Arka
-
-
- Geniş Ön
-
-
- Geniş Dudaklar
-
-
- Çılgın
-
-
- Kırışıklıklar
-
-
- Yer İmlerime Ekle
-
-
- Yer İmimi Düzenle
-
-
- Geçerli konum hakkında daha fazla bilgi gör
-
-
- Konum geçmişim
-
-
- Bu araziyi satın al
-
-
- Ses burada kullanılamaz
-
-
- Uçmaya izin verilmiyor
-
-
- İtme yok
-
-
- Nesne inşa etmeye/düşürmeye izin verilmiyor
-
-
- Komut dosyalarına izin verilmiyor
-
-
- Sağlık
-
-
- Yetişkin Bölgesi
-
-
- Orta Bölge
-
-
- Genel Bölge
-
-
- Bu parselin dışında avatarlar görünür durumda ve sohbete izin veriliyor
-
-
- [APP_NAME] Güncelleştirme
-
-
- [APP_NAME] güncelleştiriliyor...
-
-
- [APP_NAME] yükleniyor...
-
-
- [APP_NAME] Görüntüleyiciniz en son sürüme güncelleştiriliyor. Bu biraz zaman alabilir, bu nedenle sabırlı olun.
-
-
- Güncelleştirme karşıdan yükleniyor...
-
-
- Güncelleştirme karşıdan yükleniyor
-
-
- Güncelleştirmenin karşıdan yüklenmesi başarılamadı
-
-
- [APP_NAME] güncellenirken bir hata oluştu. Lütfen www.secondlife.com adresinden son sürümü karşıdan yükleyin.
-
-
- Güncelleştirmenin yüklenmesi başarılamadı
-
-
- Görüntüleyici başlatılamadı
-
-
- [APP_NAME]: [FROM_NAME]'den öğeler çok hızlı geliyor, [TIME] saniye boyunca otomatik ön izleme devre dışı bırakıldı
-
-
- [APP_NAME]: Öğeler çok hızlı geliyor, [TIME] saniye boyunca otomatik ön izleme devre dışı bırakıldı
-
-
- -- Anlık ileti günlük tutulması etkin --
-
-
- [NAME] yazıyor...
-
-
- (İsimsiz)
-
-
- (Yönetilen: Varsayılan durumda sesler kapalı)
-
-
- Bu aramada metin sohbeti kullanılamaz.
-
-
- Bir Grup Moderatörü tarafından metin sohbetiniz devre dışı bırakıldı.
-
-
- Anlık ileti göndermek için buraya tıklayın.
-
-
- Kime
-
-
- (Moderatör)
-
-
- (Kaydedildi [LONG_TIMESTAMP])
-
-
- Bu mesajı görmek için Tercihler/Gizlilik'de 'Sadece arkadaşlar ve gruplar beni arasın veya Aİ göndersin' seçeneğinin işaretini kaldırmalısınız.
-
-
- Aramanız yanıtlandı
-
-
- Bir sesli arama başlattınız
-
-
- Sesli aramaya katıldınız
-
-
- [NAME] bir sesli arama başlattı
-
-
- Sesli aramaya katılınılıyor...
-
-
- Bağlandı, kapatmak için Aramadan Çık üzerine tıklayın
-
-
- Sesli aramadan çıkıldı
-
-
- Bağlanıyor...
-
-
- Özel Konferans
-
-
- [AGENT_NAME] ile konferans
-
-
- Teklif edilen envanter öğesi:
-
-
- Envanterinizden buraya öğeler sürükleyin
-
-
- (Aİ Oturumu Mevcut Değil)
-
-
- Bu oturumdaki tek kullanıcısınız.
-
-
- [NAME] çevrim dışı.
-
-
- Bu sesli sohbeti kabul etmek/bağlanmak için [BUTTON NAME] düğmesine tıklayın.
-
-
- Bu Sakini engellediniz. Bir ileti gönderdiğinizde engelleme otomatik olarak kaldırılır.
-
-
- Talep gönderilirken hata oluştu, lütfen daha sonra tekrar deneyin.
-
-
- Talep gönderilirken hata oluştu, lütfen daha sonra tekrar deneyin.
-
-
- Yeterli izne sahip değilsiniz.
-
-
- Bu oturum artık mevcut değil.
-
-
- Bu yeteneğe sahip değilsiniz.
-
-
- Bu yeteneğe sahip değilsiniz.
-
-
- Bir oturum moderatörü değilsiniz.
-
-
- Bir grup moderatörü metin sohbetinizi devre dışı bıraktı.
-
-
- Bir grup moderatörü metin sohbetinizi devre dışı bıraktı.
-
-
- [RECIPIENT] ile sohbet oturumuna kullanıcı eklenemiyor.
-
-
- İletiniz [RECIPIENT] ile sohbet oturumuna gönderilemedi.
-
-
- İletiniz [RECIPIENT] ile sohbet oturumuna gönderilemedi.
-
-
- Yönetme sırasında hata oluştu.
-
-
- Gruptan çıkarıldınız.
-
-
- Gruptan çıkarıldınız.
-
-
- Sohbet oturumunda bulunma yeteneğine artık sahip değilsiniz.
-
-
- [SOURCES] yeni bir şey söyledi
-
-
- [SOURCES] yeni bir şey söyledi
-
-
- Oturum başlatılması zaman aşımına uğradı.
-
-
- Ana konum ayarlandı.
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] size [REASON] L$[AMOUNT] ödedi.
-
-
- [NAME] size L$[AMOUNT] ödedi.
-
-
- [NAME]'e [REASON] L$[AMOUNT] ödediniz.
-
-
- L$[AMOUNT] ödediniz.
-
-
- [NAME]'e L$[AMOUNT] ödediniz.
-
-
- [REASON] L$[AMOUNT] ödediniz.
-
-
- [REASON] [NAME]'e L$[AMOUNT] ödeyemediniz.
-
-
- L$[AMOUNT] ödeyemediniz.
-
-
- [NAME]'e L$[AMOUNT] ödeyemediniz.
-
-
- [REASON] L$[AMOUNT] ödeyemediniz.
-
-
- [ITEM] için.
-
-
- bir arazi parseli için.
-
-
- bir arazi erişim hakkı için
-
-
- arazi devretmek için
-
-
- bir grup oluşturmak için
-
-
- bir grupa katılmak için
-
-
- karşıya yüklemek için
-
-
- bir ilan yayınlamak için
-
-
- L$ [AMOUNT] veriliyor
-
-
- Karşıya yüklemenin maliyeti: L$ [AMOUNT]
-
-
- Bunun maliyeti: L$ [AMOUNT]
-
-
- L$ [AMOUNT] karşılığında seçilen arazi satın alınıyor
-
-
- Bu nesnenin maliyeti: L$ [AMOUNT]
-
-
- Herkes
-
-
- Yetkililer
-
-
- Sahipler
-
-
- Çevrimiçi
-
-
- Kötüye Kullanım Bildirimi Karşıya Yükleniyor...
-
-
- Yeni Şekil
-
-
- Yeni Dış Katman
-
-
- Yeni Saç
-
-
- Yeni Gözler
-
-
- Yeni Gömlek
-
-
- Yeni Pantolon
-
-
- Yeni Ayakkabılar
-
-
- Yeni Çoraplar
-
-
- Yeni Ceket
-
-
- Yeni Eldivenler
-
-
- Yeni Fanila
-
-
- Yeni Külot
-
-
- Yeni Etek
-
-
- Yeni Alfa
-
-
- Yeni Dövme
-
-
- Yeni Fizik
-
-
- Geçersiz Giyilebilir
-
-
- Yeni Mimik
-
-
- Yeni Komut Dosyası
-
-
- Yeni Not
-
-
- Yeni Klasör
-
-
- İçerik
-
-
- Mimik
-
-
- Erkek Mimikleri
-
-
- Kadın Mimikleri
-
-
- Diğer Mimikler
-
-
- Konuşma Mimikleri
-
-
- Favori Mimikler
-
-
- Erkek - Afedersiniz
-
-
- Erkek - İşine bak
-
-
- Erkek - Öpücük gönderme
-
-
- Erkek - Yuh çekme
-
-
- Erkek - Canı sıkılmış
-
-
- Erkek - Hey
-
-
- Erkek - Gülme
-
-
- Erkek - Tiksinmiş
-
-
- Erkek - Omuz Silkme
-
-
- Erkek - Dil çıkarma
-
-
- Erkek - Vay be
-
-
- Kadın - Kıkırdama
-
-
- Kadın - Ağlama
-
-
- Kadın - Utanmış
-
-
- Kadın - Afedersiniz
-
-
- Kadın - İşine bak
-
-
- Kadın - Öpücük gönderme
-
-
- Kadın - Yuh çekme
-
-
- Kadın - Canı sıkılmış
-
-
- Kadın - Hey
-
-
- Kadın - Hey bebek
-
-
- Kadın - Gülme
-
-
- Kadın - Yakışıklı
-
-
- Kadın - Buraya baksana
-
-
- Kadın - Lütfen
-
-
- Kadın - Tiksinmiş
-
-
- Kadın - Omuz Silkme
-
-
- Kadın - Dil çıkarma
-
-
- Kadın - Vay be
-
-
- /selamlama
-
-
- /alkış
-
-
- /sayım
-
-
- /söndürme
-
-
- /hib
-
-
- /kas
-
-
- /hayır
-
-
- /hayır!
-
-
- /kağıt
-
-
- /beni göster
-
-
- /seni göster
-
-
- /kaya
-
-
- /makas
-
-
- /duman
-
-
- /uzatma
-
-
- /ıslık
-
-
- /evet
-
-
- /evet!
-
-
- kbd
-
-
- dans1
-
-
- dans2
-
-
- dans3
-
-
- dans4
-
-
- dans5
-
-
- dans6
-
-
- dans7
-
-
- dans8
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
-
-
- hiçbiri/hiçbiri
-
-
- [WIDTH]*[HEIGHT] çözünürlüğünden büyük görüntüler yüklenemez
-
-
-
- Tüm çabalarımıza rağmen beklenmeyen bir hata meydana geldi.
-
- Hizmetle ilişkili bilinen bir sorun olup olmadığını görmek için lütfen status.secondlifegrid.net adresine bakın.
- Sorun yaşamaya devam ederseniz lütfen ağınızın ve güvenlik duvarınızın ayarlarına bakın.
-
-
- Pazar:Pazartesi:Salı:Çarşamba:Perşembe:Cuma:Cumartesi
-
-
- Paz:Pzt:Sal:Çar:Per:Cum:Cmt
-
-
- Ocak:Şubat:Mart:Nisan:Mayıs:Haziran:Temmuz:Ağustos:Eylül:Ekim:Kasım:Aralık
-
-
- Oca:Şub:Mar:Nis:May:Haz:Tem:Ağu:Eyl:Eki:Kas:Ara
-
-
- [MDAY]
-
-
- ÖÖ
-
-
- ÖS
-
-
- US$ [AMOUNT]
-
-
- Üyelik
-
-
- Roller
-
-
- Grup Kimliği
-
-
- Parsel Yönetimi
-
-
- Parsel Kimliği
-
-
- Parsel Ayarları
-
-
- Parsel Güçleri
-
-
- Parsel Erişimi
-
-
- Parsel İçeriği
-
-
- Nesne Yönetimi
-
-
- Muhasebe
-
-
- Bildirimler
-
-
- Sohbet
-
-
- Seçili öğeler silinsin mi?
-
-
- Seçili öğe silinsin mi?
-
-
- Bu dış görünümde herhangi bir öğe yok
-
-
- ExternalEditor ayarını kullanarak bir düzenleyici seçin.
-
-
- Belirttiğiniz harici düzenleyici bulunamadı.
-Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin.
-(örn. "/yolum/duzenleyici" "%s")
-
-
- Harici düzenleyici komutu ayrıştırılırken hata oluştu.
-
-
- Harici düzenleyici çalışmadı.
-
-
- Çeviri başarılamadı: [REASON]
-
-
- Çeviri yanıtı ayrıştırılırken hata meydana geldi.
-
-
- Esc
-
-
- Boşluk
-
-
- Enter
-
-
- Sekme
-
-
- Ins
-
-
- Del
-
-
- Geri tuşu
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Sol
-
-
- Sağ
-
-
- Yukarı
-
-
- Aşağı
-
-
- Home
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Ekle
-
-
- Çıkar
-
-
- Çarp
-
-
- Böl
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Parçacık işaretleri gösteriliyor (mavi)
-
-
- Fiziksel nesne işaretleri gösteriliyor (yeşil)
-
-
- Komut dosyalı nesne işaretleri gösteriliyor (kırmızı)
-
-
- Dokunma işlevli komut dosyalı nesne işaretleri gösteriliyor (kırmızı)
-
-
- Ses işaretleri gösteriliyor (sarı)
-
-
- Ortam işaretleri gösteriliyor (beyaz)
-
-
- Parçacıklar Gizleniyor
-
-
- Arazi hakkında
-
-
- Görünüm
-
-
- Avatar
-
-
- İnşa Et
-
-
- Sohbet
-
-
- Pusula
-
-
- Hedef Konum
-
-
- Mimikler
-
-
- Nasıl yapılır
-
-
- Envanter
-
-
- Harita
-
-
- Pazaryeri
-
-
- Mini-harita
-
-
- Yürü / koş / uç
-
-
- Satıcı giden kutusu
-
-
- Kişiler
-
-
- Seçmeler
-
-
- Yerler
-
-
- Tercihler
-
-
- Profil
-
-
- Ara
-
-
- Anlık görüntü
-
-
- Konuş
-
-
- Kamera denetimleri
-
-
- Ses ayarları
-
-
- Ziyaret ettiğiniz araziyle ilgili bilgi
-
-
- Avatarınızı değiştirin
-
-
- Eksiksiz bir avatar seçin
-
-
- Nesneler oluşturma ve yüzeyi şekillendirme
-
-
- Metin kullanarak yakındaki kişilerle sohbet etmek
-
-
- Pusula
-
-
- İlgilendiğiniz hedef konumlar
-
-
- Avatarınız için mimikler
-
-
- Genel görevleri nasıl yapacağınız
-
-
- Eşyalarınızı görüntüleyin ve kullanın
-
-
- Dünya haritası
-
-
- Alışveriş yap
-
-
- Yakındaki kişileri göster
-
-
- Avatarınızı hareket ettirmek
-
-
- Satmak amacıyla Pazaryerinize öğeler taşıyın
-
-
- Arkadaşlar, gruplar ve yakındaki kişiler
-
-
- Profilinizde favori olarak gösterilecek yerler
-
-
- Kaydettiğiniz yerler
-
-
- Tercihler
-
-
- Profilinizi düzenleyin veya görüntüleyin
-
-
- Yerler, etkinlikler ve kişiler bulmak
-
-
- Resim çekin
-
-
- Mikrofonunuzu kullanarak yakındaki kişilerle konuşun
-
-
- Kamera açısını değiştirmek
-
-
- Aramalar ve SL dünyası içinde size yakın kişiler için ses denetimleri
-
-
- şu anda alt araç çubuğunuzda
-
-
- şu anda sol araç çubuğunuzda
-
-
- şu anda sağ araç çubuğunuzda
-
-
- Koru %
-
-
- Ayrıntı
-
-
- Daha İyi Ayrıntı
-
-
- Yüzey
-
-
- Katı
-
-
- Sar
-
-
- Önizleme
-
-
- Normal
-
-
- Çok Düşük
-
-
- Düşük
-
-
- Orta
-
-
- Yüksek
-
-
- Çok Yüksek
-
-
diff --git a/indra/newview/skins/steam/xui/zh/strings.xml b/indra/newview/skins/steam/xui/zh/strings.xml
deleted file mode 100644
index 882b617289..0000000000
--- a/indra/newview/skins/steam/xui/zh/strings.xml
+++ /dev/null
@@ -1,4454 +0,0 @@
-
-
-
-
- 第二人生
-
-
- 第二人生
-
-
- 第二人生
-
-
- 第二人生網格
-
-
- 第二人生支援入口
-
-
- 硬體偵測中...
-
-
- [APP_NAME] 載入中...
-
-
- 快取清除中...
-
-
- 材質快取初始化中...
-
-
- VFS 初始化中...
-
-
- 回存中...
-
-
- 變更解析度...
-
-
- 全亮(舊版)
-
-
- 登入中。[APP_NAME] 可能出現凍結狀態。請耐心稍等。
-
-
- 登入中...
-
-
- 身份驗證中
-
-
- 進行帳戶維護...
-
-
- 先前企圖嘗試登入失敗。現登入中,嘗試 [NUMBER]
-
-
- 世界載入中...
-
-
- 內嵌式網頁瀏覽器初始化中...
-
-
- 多媒體初始化中...
-
-
- 字型載入中...
-
-
- 驗證快取檔案(約需 60-90 秒左右)...
-
-
- 回應處理中...
-
-
- 世界初始化中...
-
-
- 圖像解碼中...
-
-
- QuickTime 初始化中...
-
-
- QuickTime 未發現 - 無法進行初始化。
-
-
- QuickTime 已成功初始化。
-
-
- 地區交握等待中...
-
-
- 地區聯結中...
-
-
- 服裝下載中...
-
-
- 伺服器回傳一個無效果損壞的憑證。請連繫網格管理者。
-
-
- An invalid hostname was used to access the server, please check your SLURL or Grid hostname.
-
-
- The certificate returned by the Grid appears to be expired. Please check your system clock, or contact your Grid administrator.
-
-
- The certificate returned by the server could not be used for SSL. Please contact your Grid administrator.
-
-
- Too many certificates were in the servers Certificate chain. Please contact your Grid administrator.
-
-
- The certificate signature returned by the Grid server could not be verified. Please contact your Grid administrator.
-
-
- Network Error: Could not establish connection, please check your network connection.
-
-
- 登入失敗。
-
-
- 結束退出
-
-
- http://join.secondlife.com/?sourceid=1206_steam
-
-
- 這個地區可能遭遇問題,請檢查你的網路連線。
-
-
- 你的設定儲存中...
-
-
- 登出中...
-
-
- 關閉中...
-
-
- 你已經被所在的地區中斷聯結。
-
-
- 你被傳送到一個無效的地區。
-
-
- 測試瀏覽器斷線
-
-
- 人
-
-
- (無名稱)
-
-
- 擁有者:
-
-
- 公開
-
-
- (群組)
-
-
- 出售: L$[AMOUNT]
-
-
- 群組建造
-
-
- 禁止建造
-
-
- 群組建造
-
-
- 非安全
-
-
- 禁止飛行
-
-
- 群組腳本
-
-
- 禁止腳本
-
-
- 土地:
-
-
- 只有一個物品可以被拖曳到此處
-
-
-
- 點擊以察看這個網頁
-
-
- 點擊以察看這個位置資訊
-
-
- 點擊以察看這個居民檔案
-
-
- 瞭解更多有關這個居民
-
-
- 點擊以封鎖這位居民
-
-
- 點擊以解除封鎖這位居民
-
-
- 點擊開始 IM 這位居民
-
-
- 點擊以支付這位居民
-
-
- 點擊以送出瞬間傳送邀請給這位居民
-
-
- 點擊以送出交友邀請給這位居民
-
-
- 點擊以察看這個群組的描述
-
-
- 點擊以察看這個活動的描述
-
-
- Click to view this classified
-
-
- 點擊以察看這個地段的描述
-
-
- 點擊以傳送到這個位置
-
-
- 點擊以察看這個物件的描述
-
-
- 點擊以察看此處在地圖上的位置
-
-
- 點擊以執行 secondlife:// 指令
-
-
-
- 瞬間傳送到
-
-
- 顯示地圖為了
-
-
- 封鎖
-
-
- 解除封鎖
-
-
- IM
-
-
- 支付
-
-
- 發給瞬間傳送請求到
-
-
- 交友要求
-
-
- 關閉(⌘W)
-
-
- 關閉(Ctrl+W)
-
-
- 關閉
-
-
- 還原
-
-
- 最小化
-
-
- 脫下
-
-
- 停泊固定
-
-
- 顯示幫助
-
-
- 搜尋中...
-
-
- 未發現。
-
-
- 檢索...
-
-
- 釋出版本說明
-
-
- 載入中...
-
-
- (沒有人)
-
-
- (等待中)
-
-
- (多個)
-
-
- (無)
-
-
- Avaline Caller [ORDER]
-
-
- 無錯誤
-
-
- 資產請求:失敗
-
-
- 資產要求:非已存在檔案
-
-
- 資產要求:資產並未發現於資料庫中
-
-
- 檔案結尾
-
-
- 無法開啟檔案
-
-
- 檔案未發現
-
-
- 檔案傳輸逾時
-
-
- Circuit gone
-
-
- Viewer and server do not agree on price
-
-
- 未知狀態
-
-
- 材質
-
-
- 聲音
-
-
- 名片
-
-
- 地標
-
-
- 舊版腳本
-
-
- 服裝
-
-
- 物件
-
-
- 記事卡
-
-
- 資料夾
-
-
- root
-
-
- LSL2 script
-
-
- LSL bytecode
-
-
- tga 材質
-
-
- 身體部位
-
-
- 快照
-
-
- Lost and Found
-
-
- targa 圖像
-
-
- 垃圾桶
-
-
- jpeg 圖像
-
-
- 動作
-
-
- 姿勢
-
-
- 模擬器狀態
-
-
- 我的最愛
-
-
- 聯結
-
-
- 資料夾聯結
-
-
- (外觀編輯中)
-
-
- 離開
-
-
- 忙碌
-
-
- 封鎖的
-
-
- 害怕
-
-
- 生氣
-
-
- Away
-
-
- Backflip
-
-
- Belly Laugh
-
-
- BigSmile
-
-
- Blow Kiss
-
-
- 無聊
-
-
- Bow
-
-
- 拍手
-
-
- Court Bow
-
-
- 哭泣
-
-
- Dance 1
-
-
- Dance 2
-
-
- Dance 3
-
-
- Dance 4
-
-
- Dance 5
-
-
- Dance 6
-
-
- Dance 7
-
-
- Dance 8
-
-
- Disdain
-
-
- Drink
-
-
- Embarrassed
-
-
- Finger Wag
-
-
- Fist Pump
-
-
- Floating Yoga
-
-
- Frown
-
-
- Impatient
-
-
- Jump For Joy
-
-
- Kiss My Butt
-
-
- 親吻
-
-
- 笑
-
-
- Muscle Beach
-
-
- 不(不快樂)
-
-
- 不
-
-
- Nya-nya-nya
-
-
- One-Two Punch
-
-
- Open Mouth
-
-
- Peace
-
-
- Point at Other
-
-
- Point at Self
-
-
- Punch Left
-
-
- Punch Right
-
-
- RPS count
-
-
- RPS paper
-
-
- RPS rock
-
-
- RPS scissors
-
-
- Repulsed
-
-
- Roundhouse Kick
-
-
- 傷心
-
-
- 敬禮
-
-
- Shout
-
-
- Shrug
-
-
- 微笑
-
-
- Smoke Idle
-
-
- Smoke Inhale
-
-
- Smoke Throw Down
-
-
- 驚喜
-
-
- Sword Strike
-
-
- Tantrum
-
-
- TongueOut
-
-
- Wave
-
-
- 耳語
-
-
- 吹口哨
-
-
- 眨眼
-
-
- 眨眼(好萊塢)
-
-
- 擔心
-
-
- 是(快樂)
-
-
- 是
-
-
- 載入中...
-
-
- 離線
-
-
- [AREA] m² L$[PRICE]
-
-
- 沒有發現。
-
-
- 確定
-
-
- Premature end of file
-
-
- Can't find ROOT or JOINT.
-
-
- 低語:
-
-
- 吶喊:
-
-
- 聯接到虛擬世界的語音功能中...
-
-
- 已聯接
-
-
- 語音聊天功能於你目前所在的位置無法使用
-
-
- 虛擬世界中的語音聊天中斷
-
-
- 現在你將重新聯接到附近的語音聊天
-
-
- '[OBJECTNAME]', an object owned by '[OWNERNAME]', located in [REGIONNAME] at [REGIONPOS], has been granted permission to: [PERMISSIONS].
-
-
- '[OBJECTNAME]', an object owned by '[OWNERNAME]', located in [REGIONNAME] at [REGIONPOS], has been denied permission to: [PERMISSIONS].
-
-
- 由你身上拿走林登幣(L$)
-
-
- Act on your control inputs
-
-
- Remap your control inputs
-
-
- Animate your avatar
-
-
- Attach to your avatar
-
-
- Release ownership and become public
-
-
- Link and delink from other objects
-
-
- Add and remove joints with other objects
-
-
- 變更它的權限
-
-
- 追蹤你的攝影機
-
-
- 控制你的攝影機
-
-
- 未聯接
-
-
- 一般普級
-
-
- 適度成人
-
-
- 完全成人
-
-
- 離線
-
-
- 未知
-
-
- (未知)
-
-
- 領地 / 完整地區
-
-
- 領地 / 家園
-
-
- 大陸 / 家園
-
-
- 大陸 / 完整地區
-
-
- 全部檔案
-
-
- 聲音
-
-
- 動作
-
-
- 圖像
-
-
- 儲存
-
-
- 載入
-
-
- Targa 圖像
-
-
- Bitmap 圖像
-
-
- AVI 視頻檔案
-
-
- XAF Anim File
-
-
- XML 檔案
-
-
- RAW 檔案
-
-
- 壓縮的圖像
-
-
- 載入檔案
-
-
- 選擇目錄
-
-
- 非離開
-
-
- 離開
-
-
- 非忙碌
-
-
- 忙碌
-
-
- 體形
-
-
- 皮膚
-
-
- 頭髮
-
-
- 眼睛
-
-
- 襯衫
-
-
- 褲子
-
-
- 鞋子
-
-
- 襪子
-
-
- 夾克
-
-
- 手套
-
-
- 內衣
-
-
- 內褲
-
-
- 裙子
-
-
- 半透明
-
-
- 刺青
-
-
- 身體物理
-
-
- 無效
-
-
- 無
-
-
- 襯衫未穿
-
-
- 褲子未穿
-
-
- 鞋子未穿
-
-
- 襪子未穿
-
-
- 夾克未穿
-
-
- 手套未穿
-
-
- 內衣未穿
-
-
- 內褲未穿
-
-
- 裙子未穿
-
-
- 半透明未穿
-
-
- 刺青未穿
-
-
- 身體物理未穿
-
-
- 無效
-
-
- 創造新體形
-
-
- 創造新皮膚
-
-
- 創造新頭髮
-
-
- 創造新眼睛
-
-
- 創造新襯衫
-
-
- 創造新褲子
-
-
- 創造新鞋子
-
-
- 創造新襪子
-
-
- 創造新夾克
-
-
- 創造新手套
-
-
- 創造新內衣
-
-
- 創造新內褲
-
-
- 創造新裙子
-
-
- 創造新半透明
-
-
- 創造新刺青
-
-
- 創造新身體物理
-
-
- 無效
-
-
- 新 [WEARABLE_ITEM]
-
-
- 下一個
-
-
- 確定
-
-
- 群組通知
-
-
- 群組通知
-
-
- 送出由
-
-
- Attached:
-
-
- View past notices or opt-out of receiving these messages here.
-
-
- Open Attachment
-
-
- Save Attachment
-
-
- Teleport offering
-
-
- 當你離開時有新的通知送達。
-
-
- 你有約 %d 通知
-
-
- 右臂
-
-
- 頭部
-
-
- 左臂
-
-
- 左腿
-
-
- 軀幹
-
-
- 右腿
-
-
- 低
-
-
- 中
-
-
- 高
-
-
- 按下 ESC 鍵回復到世界的視角
-
-
- 沒有發現你想要找的嗎?試試 [secondlife:///app/search/all/[SEARCH_TERM] 搜尋]。
-
-
- 沒有發現你想要找的嗎?試試 [secondlife:///app/search/places/[SEARCH_TERM] 搜尋]。
-
-
- Drag a landmark here to add it to your favorites.
-
-
- You do not have a copy of this texture in your inventory
-
-
-
-
-
-
-
-
- 內容載入中...
-
-
- 無內容
-
-
-
-
- 是
-
-
- 否
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 我的收納區
-
-
- 我的最愛
-
-
- 資源庫
-
-
- 材質
-
-
- 聲音
-
-
- 名片
-
-
- 地標
-
-
- 腳本
-
-
- 服裝
-
-
- 物件
-
-
- 記事卡
-
-
- 新資料夾
-
-
- 收納區
-
-
- Uncompressed Images
-
-
- 身體部位
-
-
- 垃圾桶
-
-
- 相簿
-
-
- Lost And Found
-
-
- 無壓縮聲音
-
-
- 動作
-
-
- 姿勢
-
-
- 我的最愛
-
-
- 我的最愛
-
-
- 目前裝扮
-
-
- 初始裝扮
-
-
- 我的裝扮
-
-
- 配件
-
-
- 朋友
-
-
- 全部
-
-
- 購買
-
-
- Buy for L$
-
-
- 石頭
-
-
- 金屬
-
-
- 玻璃
-
-
- 木頭
-
-
- 肌肉
-
-
- 塑膠
-
-
- 橡膠
-
-
- Light
-
-
- Shift
-
-
- Ctrl
-
-
- 胸部
-
-
- 頭顱
-
-
- 左肩
-
-
- 右肩
-
-
- 左手
-
-
- 右手
-
-
- 左腳
-
-
- 右腳
-
-
- 脊椎
-
-
- 骨盆
-
-
- 嘴
-
-
- 下巴
-
-
- 左耳
-
-
- 右耳
-
-
- 左眼球
-
-
- 右眼球
-
-
- 鼻子
-
-
- 右上臂
-
-
- 右前臂
-
-
- 左上臂
-
-
- 左前臂
-
-
- 右臀
-
-
- 右大腿
-
-
- 右小腿
-
-
- 左臀
-
-
- 左大腿
-
-
- 左小腿
-
-
- 腹肌
-
-
- 左胸肌
-
-
- 右胸肌
-
-
- 無效的附件聯接點
-
-
- [AGEYEARS] [AGEMONTHS] old
-
-
- [AGEYEARS] old
-
-
- [AGEMONTHS] old
-
-
- [AGEWEEKS] old
-
-
- [AGEDAYS] old
-
-
- 今日剛加入
-
-
- [COUNT] 年
-
-
- [COUNT] 年
-
-
- [COUNT] 年
-
-
- [COUNT] 月
-
-
- [COUNT] 月
-
-
- [COUNT] 月
-
-
- [COUNT] 週
-
-
- [COUNT] 週
-
-
- [COUNT] 週
-
-
- [COUNT] 天
-
-
- [COUNT] 天
-
-
- [COUNT] 天
-
-
- [COUNT] 成員
-
-
- [COUNT] 成員
-
-
- [COUNT] 成員
-
-
- 居民
-
-
- Trial
-
-
- Charter Member
-
-
- 林登實驗室員工
-
-
- Payment Info Used
-
-
- Payment Info On File
-
-
- No Payment Info On File
-
-
- 已年齡驗證
-
-
- 未年齡驗證
-
-
- 中央 2
-
-
- 右上
-
-
- 上方
-
-
- 左上
-
-
- 中央
-
-
- 左下
-
-
- 下方
-
-
- 右下
-
-
- 已下載,現在進行編譯中
-
-
- 伺服器上未發現腳本。
-
-
- 問題下載中
-
-
- Insufficient permissions to download a script.
-
-
- Insufficient permissions for
-
-
- Unknown failure to download
-
-
- 重新編譯進度
-
-
- 重新編譯
-
-
- 重設進度
-
-
- 重設
-
-
- 設定執行中程序
-
-
- 設為執行中
-
-
- 設定非執行中程序
-
-
- 設為非執行中
-
-
- 編譯成功!!
-
-
- 編譯成功,儲存中...
-
-
- 儲存完畢。
-
-
- 腳本(物件超出範圍)
-
-
- 物件 [OBJECT] 為 [OWNER] 所擁有
-
-
- 無
-
-
-
- (未知)
-
-
-
-
-
-
- Balance
-
-
- Credits
-
-
- Debits
-
-
- Total
-
-
- 無群組資料發現
-
-
- parent estate
-
-
- mainland
-
-
- teen
-
-
- error
-
-
- [OWNER] 所擁有的的全部領地
-
-
- 你所擁有的全部領地
-
-
- all estates that you manage for [OWNER]
-
-
- Allowed Residents: ([ALLOWEDAGENTS], max [MAXACCESS])
-
-
- 允許的群群組:([ALLOWEDGROUPS],最大 [MAXACCESS])
-
-
- 地段腳本記憶體
-
-
- 地段清單:[PARCELS]
-
-
- 計憶體用量:使用 [MAX] kb 中的 [COUNT] kb ;剩餘 [AVAILABLE] kb 可用
-
-
- 記憶體用量:[COUNT] kb
-
-
- 地段腳本 URLs
-
-
- URLs used: [COUNT] out of [MAX]; [AVAILABLE] available
-
-
- URLs used: [COUNT]
-
-
- Error requesting information
-
-
- 無地段被選擇
-
-
- Error: script information is only available in your current region
-
-
- Retrieving information...
-
-
- You do not have permission to examine this parcel
-
-
- 坐在
-
-
- 胸部
-
-
- 頭部
-
-
- 左肩
-
-
- 右肩
-
-
- 左手
-
-
- 右手
-
-
- 左腳
-
-
- 右腳
-
-
- 背部
-
-
- 骨盆
-
-
- 嘴巴
-
-
- 下巴
-
-
- 左耳
-
-
- 右耳
-
-
- 左眼
-
-
- 右眼
-
-
- 鼻子
-
-
- 右上臂
-
-
- 右前臂
-
-
- 左上臂
-
-
- 左前臂
-
-
- 右臀
-
-
- 右大腿
-
-
- 右小腿
-
-
- 左臀
-
-
- 左大腿
-
-
- 左小腿
-
-
- 腹部
-
-
- 右胸肌
-
-
- 左胸肌
-
-
- HUD Center 2
-
-
- HUD Top Right
-
-
- HUD Top Center
-
-
- HUD Top Left
-
-
- HUD Center 1
-
-
- HUD Bottom Left
-
-
- HUD Bottom
-
-
- HUD Bottom Right
-
-
- Line [LINE], Column [COLUMN]
-
-
- [COUNT] found
-
-
- [hour12,datetime,slt]:[min,datetime,slt] [ampm,datetime,slt]
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]
-
-
- 物件的內容
-
-
- 新腳本
-
-
- 你傳送訊息的居民目前處於忙碌模式中,這意味著他要求不被打擾。你所傳的訊息仍將會留存並顯示於 IM 面板上供他稍後時查閱。
-
-
- (由名稱)
-
-
- (居民)
-
-
- (物件)
-
-
- (群組)
-
-
- (外部)
-
-
- 此領地未提供任何契約要求。
-
-
- There is no Covenant provided for this Estate. The land on this estate is being sold by the Estate owner, not Linden Lab. Please contact the Estate Owner for sales details.
-
-
-
-
-
- 群組所擁有
-
-
- 公開
-
-
- Clicks: [TELEPORT] teleport, [MAP] map, [PROFILE] profile
-
-
- (將於發布後自動更新)
-
-
- You haven't created any Picks or Classifieds. Click the Plus button below to create a Pick or Classified.
-
-
- 使用者無精選地點或個人廣告
-
-
- 載入中...
-
-
- 預覽
-
-
- 屬性
-
-
- An object named
-
-
- 群組所擁有
-
-
- 由一個未知的群組所擁有
-
-
- owned by
-
-
- owned by an unknown user
-
-
- gave you
-
-
- You decline [DESC] from <nolink>[NAME]</nolink>.
-
-
- Total
-
-
- bought
-
-
- paid you
-
-
- paid into
-
-
- bought pass to
-
-
- paid fee for event
-
-
- paid prize for event
-
-
- Balance
-
-
- Credits
-
-
- Debits
-
-
- Contents
-
-
- Acquired Items
-
-
- 取消
-
-
- 花費 L$ [AMOUNT] 上傳 [NAME]
-
-
- 花費 L$ [AMOUNT] 購買這個
-
-
- 未知的副檔名 .%s
-預期為 .wav, .tga, .bmp, .jpg, .jpeg, or .bvh 類型
-
-
- Block
-
-
- Block
-
-
- Unblock
-
-
- Unblock
-
-
- 添加到我的地標...
-
-
- 編輯我的地標...
-
-
- ⌃
-
-
- ⌘
-
-
- ⌥
-
-
- ⇧
-
-
- Ctrl+
-
-
- Alt+
-
-
- Shift+
-
-
- 檔案已儲存
-
-
- 接收中
-
-
- AM
-
-
- PM
-
-
- PST
-
-
- PDT
-
-
- 向前
-
-
- 向左
-
-
- 向右
-
-
- 向後
-
-
- 北
-
-
- 南
-
-
- 西
-
-
- 東
-
-
- 向上
-
-
- 向下
-
-
- 任何類別
-
-
- 採購
-
-
- Land Rental
-
-
- Property Rental
-
-
- Special Attraction
-
-
- New Products
-
-
- Employment
-
-
- Wanted
-
-
- Service
-
-
- Personal
-
-
- 無
-
-
- Linden Location
-
-
- 完全成人
-
-
- 藝術與文化
-
-
- 商業
-
-
- 教育
-
-
- 遊戲
-
-
- 聚會所
-
-
- 新手友善
-
-
- 公園與自然
-
-
- 住宅
-
-
- Stage
-
-
- Other
-
-
- Rental
-
-
- Any
-
-
- 你
-
-
- :
-
-
- ,
-
-
- ...
-
-
- ***
-
-
- (
-
-
- )
-
-
- .
-
-
- '
-
-
- ---
-
-
- 多媒體
-
-
- 播放/暫停 媒體
-
-
- 解析命令列時發現錯誤。
-請參閱: http://wiki.secondlife.com/wiki/Client_parameters
-錯誤:
-
-
- [APP_NAME] 命令列用法:
-
-
- [APP_NAME] 無法存取它所需要的檔案。
-
-This can be because you somehow have multiple copies running, or your system incorrectly thinks a file is open.
-If this message persists, restart your computer and try again.
-If it continues to persist, you may need to completely uninstall [APP_NAME] and reinstall it.
-
-
- 致命錯誤
-
-
- [APP_NAME] requires a processor with AltiVec (G4 or later).
-
-
- [APP_NAME] 已經在執行中。
-請檢查你的工作列裡是否有其他最小化的相同程式。
-如果這個訊息持續出現,請重新啟動你的電腦。
-
-
- [APP_NAME] appears to have frozen or crashed on the previous run.
-Would you like to send a crash report?
-
-
- 通知
-
-
- [APP_NAME] is unable to detect DirectX 9.0b or greater.
-[APP_NAME] uses DirectX to detect hardware and/or outdated drivers that can cause stability problems, poor performance and crashes. While you can run [APP_NAME] without it, we highly recommend running with DirectX 9.0b.
-
-Do you wish to continue?
-
-
- 警告
-
-
- Automatic updating is not yet implemented for Linux.
-Please download the latest version from www.secondlife.com.
-
-
- RegisterClass failed
-
-
- 錯誤
-
-
- 無法執行全螢幕於 [WIDTH] x [HEIGHT].
-執行於視窗中。
-
-
- Shutdown Error while destroying window (DestroyWindow() failed)
-
-
- Shutdown Error
-
-
- Can't make GL device context
-
-
- Can't find suitable pixel format
-
-
- Can't get pixel format description
-
-
- [APP_NAME] requires True Color (32-bit) to run.
-Please go to your computer's display settings and set the color mode to 32-bit.
-
-
- [APP_NAME] is unable to run because it can't get an 8 bit alpha channel. Usually this is due to video card driver issues.
-Please make sure you have the latest video card drivers installed.
-Also be sure your monitor is set to True Color (32-bit) in Control Panels > Display > Settings.
-If you continue to receive this message, contact the [SUPPORT_SITE].
-
-
- 無法設定像素格式
-
-
- Can't create GL rendering context
-
-
- Can't activate GL rendering context
-
-
- [APP_NAME] is unable to run because your video card drivers did not install properly, are out of date, or are for unsupported hardware. Please make sure you have the latest video card drivers and even if you do have the latest, try reinstalling them.
-
-If you continue to receive this message, contact the [SUPPORT_SITE].
-
-
- 5 O'Clock Shadow
-
-
- 全白
-
-
- Anime Eyes
-
-
- Arced
-
-
- Arm Length
-
-
- Attached
-
-
- Attached Earlobes
-
-
- Back Fringe
-
-
- Baggy
-
-
- Bangs
-
-
- Beady Eyes
-
-
- Belly Size
-
-
- Big
-
-
- Big Butt
-
-
- Big Hair: Back
-
-
- Big Hair: Front
-
-
- Big Hair: Top
-
-
- Big Head
-
-
- Big Pectorals
-
-
- Big Spikes
-
-
- Black
-
-
- Blonde
-
-
- Blonde Hair
-
-
- Blush
-
-
- Blush Color
-
-
- Blush Opacity
-
-
- Body Definition
-
-
- Body Fat
-
-
- Body Freckles
-
-
- Body Thick
-
-
- Body Thickness
-
-
- Body Thin
-
-
- Bow Legged
-
-
- Breast Buoyancy
-
-
- Breast Cleavage
-
-
- Breast Size
-
-
- Bridge Width
-
-
- Broad
-
-
- Brow Size
-
-
- Bug Eyes
-
-
- Bugged Eyes
-
-
- Bulbous
-
-
- Bulbous Nose
-
-
- Breast Mass
-
-
- Breast Smoothing
-
-
- Breast Gravity
-
-
- Breast Drag
-
-
- Max Effect
-
-
- Spring
-
-
- Gain
-
-
- Damping
-
-
- Max Effect
-
-
- Spring
-
-
- Gain
-
-
- Damping
-
-
- Max Effect
-
-
- Spring
-
-
- Gain
-
-
- Damping
-
-
- Belly Mass
-
-
- Belly Smoothing
-
-
- Belly Gravity
-
-
- Belly Drag
-
-
- Max Effect
-
-
- Spring
-
-
- Gain
-
-
- Damping
-
-
- Butt Mass
-
-
- Butt Smoothing
-
-
- Butt Gravity
-
-
- Butt Drag
-
-
- Max Effect
-
-
- Spring
-
-
- Gain
-
-
- Damping
-
-
- Max Effect
-
-
- Spring
-
-
- Gain
-
-
- Damping
-
-
- Bushy Eyebrows
-
-
- Bushy Hair
-
-
- Butt Size
-
-
- Butt Gravity
-
-
- Bustle Skirt
-
-
- No Bustle
-
-
- More Bustle
-
-
- Chaplin
-
-
- Cheek Bones
-
-
- Chest Size
-
-
- 下巴角度
-
-
- Chin Cleft
-
-
- Chin Curtains
-
-
- Chin Depth
-
-
- Chin Heavy
-
-
- Chin In
-
-
- Chin Out
-
-
- Chin-Neck
-
-
- 清除
-
-
- Cleft
-
-
- Close Set Eyes
-
-
- Closed
-
-
- Closed Back
-
-
- Closed Front
-
-
- Closed Left
-
-
- Closed Right
-
-
- Coin Purse
-
-
- Collar Back
-
-
- Collar Front
-
-
- Corner Down
-
-
- Corner Up
-
-
- Creased
-
-
- Crooked Nose
-
-
- Cuff Flare
-
-
- Dark
-
-
- Dark Green
-
-
- Darker
-
-
- Deep
-
-
- Default Heels
-
-
- Dense
-
-
- Double Chin
-
-
- Downturned
-
-
- Duffle Bag
-
-
- Ear Angle
-
-
- Ear Size
-
-
- Ear Tips
-
-
- Egg Head
-
-
- Eye Bags
-
-
- Eye Color
-
-
- Eye Depth
-
-
- Eye Lightness
-
-
- Eye Opening
-
-
- Eye Pop
-
-
- Eye Size
-
-
- Eye Spacing
-
-
- Eyebrow Arc
-
-
- Eyebrow Density
-
-
- Eyebrow Height
-
-
- Eyebrow Points
-
-
- Eyebrow Size
-
-
- Eyelash Length
-
-
- Eyeliner
-
-
- Eyeliner Color
-
-
- Eyes Bugged
-
-
- Face Shear
-
-
- Facial Definition
-
-
- Far Set Eyes
-
-
- Fat Lips
-
-
- Female
-
-
- Fingerless
-
-
- Fingers
-
-
- Flared Cuffs
-
-
- Flat
-
-
- Flat Butt
-
-
- Flat Head
-
-
- Flat Toe
-
-
- Foot Size
-
-
- Forehead Angle
-
-
- Forehead Heavy
-
-
- Freckles
-
-
- Front Fringe
-
-
- Full Back
-
-
- Full Eyeliner
-
-
- Full Front
-
-
- Full Hair Sides
-
-
- Full Sides
-
-
- Glossy
-
-
- Glove Fingers
-
-
- Glove Length
-
-
- 頭髮
-
-
- Hair: Back
-
-
- Hair: Front
-
-
- Hair: Sides
-
-
- Hair Sweep
-
-
- Hair Thickness
-
-
- Hair Thickness
-
-
- Hair Tilt
-
-
- Hair Tilted Left
-
-
- Hair Tilted Right
-
-
- Hair: Volume
-
-
- Hand Size
-
-
- Handlebars
-
-
- Head Length
-
-
- Head Shape
-
-
- Head Size
-
-
- Head Stretch
-
-
- Heel Height
-
-
- Heel Shape
-
-
- Height
-
-
- High
-
-
- High Heels
-
-
- High Jaw
-
-
- High Platforms
-
-
- High and Tight
-
-
- Higher
-
-
- Hip Length
-
-
- Hip Width
-
-
- In
-
-
- Inner Shadow Color
-
-
- Inner Shadow Opacity
-
-
- Inner Eye Corner
-
-
- Inner Eye Shadow
-
-
- Inner Shadow
-
-
- Jacket Length
-
-
- Jacket Wrinkles
-
-
- Jaw Angle
-
-
- Jaw Jut
-
-
- Jaw Shape
-
-
- Join
-
-
- Jowls
-
-
- Knee Angle
-
-
- Knock Kneed
-
-
- Large
-
-
- Large Hands
-
-
- Left Part
-
-
- Leg Length
-
-
- Leg Muscles
-
-
- Less
-
-
- Less Body Fat
-
-
- Less Curtains
-
-
- Less Freckles
-
-
- Less Full
-
-
- Less Gravity
-
-
- Less Love
-
-
- Less Muscles
-
-
- Less Muscular
-
-
- Less Rosy
-
-
- Less Round
-
-
- Less Saddle
-
-
- Less Square
-
-
- Less Volume
-
-
- Less soul
-
-
- Lighter
-
-
- Lip Cleft
-
-
- Lip Cleft Depth
-
-
- Lip Fullness
-
-
- Lip Pinkness
-
-
- Lip Ratio
-
-
- Lip Thickness
-
-
- Lip Width
-
-
- Lipgloss
-
-
- Lipstick
-
-
- Lipstick Color
-
-
- Long
-
-
- Long Head
-
-
- Long Hips
-
-
- Long Legs
-
-
- Long Neck
-
-
- Long Pigtails
-
-
- Long Ponytail
-
-
- Long Torso
-
-
- Long arms
-
-
- Loose Pants
-
-
- Loose Shirt
-
-
- Loose Sleeves
-
-
- Love Handles
-
-
- Low
-
-
- Low Heels
-
-
- Low Jaw
-
-
- Low Platforms
-
-
- Low and Loose
-
-
- Lower
-
-
- Lower Bridge
-
-
- Lower Cheeks
-
-
- 男性
-
-
- Middle Part
-
-
- 更多
-
-
- More Blush
-
-
- More Body Fat
-
-
- More Curtains
-
-
- More Eyeshadow
-
-
- More Freckles
-
-
- More Full
-
-
- More Gravity
-
-
- More Lipstick
-
-
- More Love
-
-
- More Lower Lip
-
-
- More Muscles
-
-
- More Muscular
-
-
- More Rosy
-
-
- More Round
-
-
- More Saddle
-
-
- More Sloped
-
-
- More Square
-
-
- More Upper Lip
-
-
- More Vertical
-
-
- More Volume
-
-
- More soul
-
-
- Moustache
-
-
- Mouth Corner
-
-
- Mouth Position
-
-
- Mowhawk
-
-
- Muscular
-
-
- Mutton Chops
-
-
- Nail Polish
-
-
- Nail Polish Color
-
-
- Narrow
-
-
- Narrow Back
-
-
- Narrow Front
-
-
- Narrow Lips
-
-
- Natural
-
-
- Neck Length
-
-
- Neck Thickness
-
-
- No Blush
-
-
- No Eyeliner
-
-
- No Eyeshadow
-
-
- No Lipgloss
-
-
- No Lipstick
-
-
- No Part
-
-
- No Polish
-
-
- No Red
-
-
- No Spikes
-
-
- No White
-
-
- No Wrinkles
-
-
- Normal Lower
-
-
- Normal Upper
-
-
- Nose Left
-
-
- Nose Right
-
-
- Nose Size
-
-
- Nose Thickness
-
-
- Nose Tip Angle
-
-
- Nose Tip Shape
-
-
- Nose Width
-
-
- Nostril Division
-
-
- Nostril Width
-
-
- Opaque
-
-
- Open
-
-
- Open Back
-
-
- Open Front
-
-
- Open Left
-
-
- Open Right
-
-
- Orange
-
-
- Out
-
-
- Outer Shadow Color
-
-
- Outer Shadow Opacity
-
-
- Outer Eye Corner
-
-
- Outer Eye Shadow
-
-
- Outer Shadow
-
-
- Overbite
-
-
- Package
-
-
- Painted Nails
-
-
- Pale
-
-
- Pants Crotch
-
-
- Pants Fit
-
-
- Pants Length
-
-
- Pants Waist
-
-
- Pants Wrinkles
-
-
- Part
-
-
- Part Bangs
-
-
- Pectorals
-
-
- Pigment
-
-
- Pigtails
-
-
- Pink
-
-
- Pinker
-
-
- Platform Height
-
-
- Platform Width
-
-
- Pointy
-
-
- Pointy Heels
-
-
- Ponytail
-
-
- Poofy Skirt
-
-
- Pop Left Eye
-
-
- Pop Right Eye
-
-
- Puffy
-
-
- Puffy Eyelids
-
-
- Rainbow Color
-
-
- Red Hair
-
-
- Regular
-
-
- Right Part
-
-
- Rosy Complexion
-
-
- Round
-
-
- Ruddiness
-
-
- Ruddy
-
-
- Rumpled Hair
-
-
- Saddle Bags
-
-
- Scrawny Leg
-
-
- Separate
-
-
- Shallow
-
-
- Shear Back
-
-
- Shear Face
-
-
- Shear Front
-
-
- Shear Left Up
-
-
- Shear Right Up
-
-
- Sheared Back
-
-
- Sheared Front
-
-
- Shift Left
-
-
- Shift Mouth
-
-
- Shift Right
-
-
- Shirt Bottom
-
-
- Shirt Fit
-
-
- Shirt Wrinkles
-
-
- Shoe Height
-
-
- Short
-
-
- Short Arms
-
-
- Short Legs
-
-
- Short Neck
-
-
- Short Pigtails
-
-
- Short Ponytail
-
-
- Short Sideburns
-
-
- Short Torso
-
-
- Short hips
-
-
- Shoulders
-
-
- Side Fringe
-
-
- Sideburns
-
-
- Sides Hair
-
-
- Sides Hair Down
-
-
- Sides Hair Up
-
-
- Skinny Neck
-
-
- Skirt Fit
-
-
- Skirt Length
-
-
- Slanted Forehead
-
-
- Sleeve Length
-
-
- Sleeve Looseness
-
-
- Slit: Back
-
-
- Slit: Front
-
-
- Slit: Left
-
-
- Slit: Right
-
-
- Small
-
-
- Small Hands
-
-
- Small Head
-
-
- Smooth
-
-
- Smooth Hair
-
-
- Socks Length
-
-
- Soulpatch
-
-
- Sparse
-
-
- Spiked Hair
-
-
- Square
-
-
- Square Toe
-
-
- Squash Head
-
-
- Stretch Head
-
-
- Sunken
-
-
- Sunken Chest
-
-
- Sunken Eyes
-
-
- Sweep Back
-
-
- Sweep Forward
-
-
- Tall
-
-
- Taper Back
-
-
- Taper Front
-
-
- Thick Heels
-
-
- Thick Neck
-
-
- Thick Toe
-
-
- Thin
-
-
- Thin Eyebrows
-
-
- Thin Lips
-
-
- Thin Nose
-
-
- Tight Chin
-
-
- Tight Cuffs
-
-
- Tight Pants
-
-
- Tight Shirt
-
-
- Tight Skirt
-
-
- Tight Sleeves
-
-
- Toe Shape
-
-
- Toe Thickness
-
-
- Torso Length
-
-
- Torso Muscles
-
-
- Torso Scrawny
-
-
- Unattached
-
-
- Uncreased
-
-
- Underbite
-
-
- Unnatural
-
-
- Upper Bridge
-
-
- Upper Cheeks
-
-
- Upper Chin Cleft
-
-
- Upper Eyelid Fold
-
-
- Upturned
-
-
- Very Red
-
-
- Waist Height
-
-
- Well-Fed
-
-
- White Hair
-
-
- Wide
-
-
- Wide Back
-
-
- Wide Front
-
-
- Wide Lips
-
-
- Wild
-
-
- Wrinkles
-
-
- 添加到我的地標
-
-
- 編輯我的地標
-
-
- 察看更多關於目前位置的資訊
-
-
- 我的位置歷史紀錄
-
-
- 購買這塊土地
-
-
- 此地並不允許語音
-
-
- 不允許飛行
-
-
- 禁止推撞
-
-
- 建造/丟棄 物件不被允許
-
-
- 腳本不被允許
-
-
- 健康
-
-
- 完全成人地區
-
-
- 適度成人地區
-
-
- 一般普級地區
-
-
- [APP_NAME] 更新
-
-
- [APP_NAME] 現更新中...
-
-
- [APP_NAME] 安裝中...
-
-
- Your [APP_NAME] Viewer is being updated to the latest release. This may take some time, so please be patient.
-
-
- 更新下載中...
-
-
- 更新下載
-
-
- 夏載更新失敗
-
-
- An error occurred while updating [APP_NAME]. Please download the latest version from www.secondlife.com.
-
-
- 安裝更新失敗
-
-
- 啟動瀏覽器失敗
-
-
- [APP_NAME]: Items coming in too fast from [FROM_NAME], automatic preview disabled for [TIME] seconds
-
-
- [APP_NAME]: Items coming in too fast, automatic preview disabled for [TIME] seconds
-
-
- -- Instant message logging enabled --
-
-
- [NAME] 正在輸入...
-
-
- (未命名)
-
-
- (Moderated: Voices off by default)
-
-
- Text chat is not available for this call.
-
-
- Your text chat has been disabled by a Group Moderator.
-
-
- 點擊此處以傳送即時訊息。
-
-
- 至
-
-
- (Moderator)
-
-
- (Saved [LONG_TIMESTAMP])
-
-
- Your call has been answered
-
-
- You started a voice call
-
-
- You joined the voice call
-
-
- [NAME] started a voice call
-
-
- 加入語音通話...
-
-
- Connected, click Leave Call to hang up
-
-
- 離開語音通話
-
-
- 聯接中...
-
-
- Ad-hoc Conference
-
-
- Conference with [AGENT_NAME]
-
-
- Inventory item offered
-
-
- Drag items from inventory here
-
-
- (IM 會話不存在)
-
-
- You are the only user in this session.
-
-
- [NAME] 離線。
-
-
- Click the [BUTTON NAME] button to accept/connect to this voice chat.
-
-
- You have blocked this Resident. Sending a message will automatically unblock them.
-
-
- Error making request, please try again later.
-
-
- Error making request, please try again later.
-
-
- You do not have sufficient permissions.
-
-
- 此會話不再存在
-
-
- 你並不具有這個能力。
-
-
- 你並不具有這個能力。
-
-
- You are not a session moderator.
-
-
- A group moderator disabled your text chat.
-
-
- A group moderator disabled your text chat.
-
-
- Unable to add users to chat session with [RECIPIENT].
-
-
- Unable to send your message to the chat session with [RECIPIENT].
-
-
- Unable to send your message to the chat session with [RECIPIENT].
-
-
- Error while moderating.
-
-
- 你已經由群組中被移除。
-
-
- 你已經由群組中被移除。
-
-
- You no longer have the ability to be in the chat session.
-
-
- [SOURCES] has said something new
-
-
- [SOURCES] have said something new
-
-
- The session initialization is timed out
-
-
- http://secondlife.com/landing/voicemorphing
-
-
- [NAME] paid you L$[AMOUNT] [REASON].
-
-
- [NAME] paid you L$[AMOUNT].
-
-
- You paid [NAME] L$[AMOUNT] [REASON].
-
-
- You paid L$[AMOUNT].
-
-
- You paid [NAME] L$[AMOUNT].
-
-
- You paid L$[AMOUNT] [REASON].
-
-
- for [ITEM]
-
-
- for a parcel of land
-
-
- for a land access pass
-
-
- for deeding land
-
-
- 以創造群組
-
-
- 以加入群組
-
-
- 以上傳
-
-
- to publish a classified ad
-
-
- Giving L$ [AMOUNT]
-
-
- 上傳花費 L$ [AMOUNT]
-
-
- This costs L$ [AMOUNT]
-
-
- Buying selected land for L$ [AMOUNT]
-
-
- This object costs L$ [AMOUNT]
-
-
- 任何人
-
-
- Officers
-
-
- 擁有者
-
-
- 上線
-
-
- 上傳中...
-
-舉報濫用
-
-
- 新體形
-
-
- 新皮膚
-
-
- 新頭髮
-
-
- 新眼睛
-
-
- 新襯衫
-
-
- 新褲子
-
-
- 新鞋子
-
-
- 新襪子
-
-
- 新夾克
-
-
- 新手套
-
-
- 新內衣
-
-
- 新內褲
-
-
- 新裙子
-
-
- 新半透明
-
-
- 新刺青
-
-
- 新身體物理
-
-
- 無效的可穿裝扮
-
-
- 新姿勢
-
-
- 新腳本
-
-
- 新記事卡
-
-
- 新資料夾
-
-
- 內容
-
-
- 姿勢
-
-
- 男性姿勢
-
-
- 女性姿勢
-
-
- 其他姿勢
-
-
- 演說姿勢
-
-
- 一般姿勢
-
-
- Male - Excuse me
-
-
- Male - Get lost
-
-
- Male - Blow kiss
-
-
- Male - Boo
-
-
- Male - Bored
-
-
- Male - Hey
-
-
- Male - Laugh
-
-
- Male - Repulsed
-
-
- Male - Shrug
-
-
- Male - Stick tougue out
-
-
- Male - Wow
-
-
- Female - Chuckle
-
-
- Female - Cry
-
-
- Female - Embarrassed
-
-
- Female - Excuse me
-
-
- Female - Get lost
-
-
- Female - Blow kiss
-
-
- Female - Boo
-
-
- Female - Bored
-
-
- Female - Hey
-
-
- Female - Hey baby
-
-
- Female - Laugh
-
-
- Female - Looking good
-
-
- Female - Over here
-
-
- Female - Please
-
-
- Female - Repulsed
-
-
- Female - Shrug
-
-
- Female - Stick tougue out
-
-
- Female - Wow
-
-
- [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
-
-
- 無/無
-
-
- 無法載入圖像大於 [WIDTH]*[HEIGHT]
-
-
-
- Despite our best efforts, something unexpected has gone wrong.
-
- Please check status.secondlifegrid.net to see if there is a known problem with the service.
- If you continue to experience problems, please check your network and firewall setup.
-
-
- Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday
-
-
- Sun:Mon:Tue:Wed:Thu:Fri:Sat
-
-
- January:February:March:April:May:June:July:August:September:October:November:December
-
-
- Jan:Feb:Mar:Apr:May:Jun:Jul:Aug:Sep:Oct:Nov:Dec
-
-
- [MDAY]
-
-
- AM
-
-
- PM
-
-
- US$ [AMOUNT]
-
-
- 成員資格
-
-
- 角色
-
-
- Group Identity
-
-
- 地段管理
-
-
- Parcel Identity
-
-
- 地段設定
-
-
- Parcel Powers
-
-
- Parcel Access
-
-
- Parcel Content
-
-
- 物件管理
-
-
- 會計
-
-
- 通知
-
-
- 聊天
-
-
- 刪除所選取的物品?
-
-
- 刪除所選取的物品?
-
-
- 沒有任何物品在這個裝扮內
-
-
- 選擇一個編輯器使用 ExternalEditor 設定。
-
-
- Cannot find the external editor you specified.
-Try enclosing path to the editor with double quotes.
-(e.g. "/path to my/editor" "%s")
-
-
- Error parsing the external editor command.
-
-
- 執行外部編輯器失敗。
-
-
- Esc
-
-
- Space
-
-
- Enter
-
-
- Tab
-
-
- Ins
-
-
- Del
-
-
- Backsp
-
-
- Shift
-
-
- Ctrl
-
-
- Alt
-
-
- CapsLock
-
-
- Left
-
-
- Right
-
-
- Up
-
-
- Down
-
-
- Home
-
-
- End
-
-
- PgUp
-
-
- PgDn
-
-
- F1
-
-
- F2
-
-
- F3
-
-
- F4
-
-
- F5
-
-
- F6
-
-
- F7
-
-
- F8
-
-
- F9
-
-
- F10
-
-
- F11
-
-
- F12
-
-
- Add
-
-
- Subtract
-
-
- Multiply
-
-
- Divide
-
-
- PAD_DIVIDE
-
-
- PAD_LEFT
-
-
- PAD_RIGHT
-
-
- PAD_DOWN
-
-
- PAD_UP
-
-
- PAD_HOME
-
-
- PAD_END
-
-
- PAD_PGUP
-
-
- PAD_PGDN
-
-
- PAD_CENTER
-
-
- PAD_INS
-
-
- PAD_DEL
-
-
- PAD_Enter
-
-
- PAD_BUTTON0
-
-
- PAD_BUTTON1
-
-
- PAD_BUTTON2
-
-
- PAD_BUTTON3
-
-
- PAD_BUTTON4
-
-
- PAD_BUTTON5
-
-
- PAD_BUTTON6
-
-
- PAD_BUTTON7
-
-
- PAD_BUTTON8
-
-
- PAD_BUTTON9
-
-
- PAD_BUTTON10
-
-
- PAD_BUTTON11
-
-
- PAD_BUTTON12
-
-
- PAD_BUTTON13
-
-
- PAD_BUTTON14
-
-
- PAD_BUTTON15
-
-
- -
-
-
- =
-
-
- `
-
-
- ;
-
-
- [
-
-
- ]
-
-
- \
-
-
- 0
-
-
- 1
-
-
- 2
-
-
- 3
-
-
- 4
-
-
- 5
-
-
- 6
-
-
- 7
-
-
- 8
-
-
- 9
-
-
- A
-
-
- B
-
-
- C
-
-
- D
-
-
- E
-
-
- F
-
-
- G
-
-
- H
-
-
- I
-
-
- J
-
-
- K
-
-
- L
-
-
- M
-
-
- N
-
-
- O
-
-
- P
-
-
- Q
-
-
- R
-
-
- S
-
-
- T
-
-
- U
-
-
- V
-
-
- W
-
-
- X
-
-
- Y
-
-
- Z
-
-
- Viewing particle beacons (blue)
-
-
- Viewing physical object beacons (green)
-
-
- Viewing scripted object beacons (red)
-
-
- Viewing scripted object with touch function beacons (red)
-
-
- Viewing sound beacons (yellow)
-
-
- Viewing media beacons (white)
-
-
- Hiding Particles
-
-
diff --git a/indra/newview/tests/lldir_stub.cpp b/indra/newview/tests/lldir_stub.cpp
index 18cf4e7419..3c0a4377d8 100644
--- a/indra/newview/tests/lldir_stub.cpp
+++ b/indra/newview/tests/lldir_stub.cpp
@@ -32,7 +32,7 @@ BOOL LLDir::deleteFilesInDir(const std::string &dirname, const std::string &mask
void LLDir::setChatLogsDir(const std::string &path) {}
void LLDir::setPerAccountChatLogsDir(const std::string &first, const std::string &last) {}
void LLDir::setLindenUserDir(const std::string &first, const std::string &last) {}
-void LLDir::setSkinFolder(const std::string &skin_folder) {}
+void LLDir::setSkinFolder(const std::string &skin_folder, const std::string& language) {}
bool LLDir::setCacheDir(const std::string &path) { return true; }
void LLDir::dumpCurrentDirectories() {}
diff --git a/indra/newview/tests/lltranslate_test.cpp b/indra/newview/tests/lltranslate_test.cpp
index 10e37fae97..fd9527d631 100644
--- a/indra/newview/tests/lltranslate_test.cpp
+++ b/indra/newview/tests/lltranslate_test.cpp
@@ -299,11 +299,6 @@ LLControlGroup::LLControlGroup(const std::string& name) : LLInstanceTracker, const LLSD&, const F32) {}
+void LLHTTPClient::get(const std::string&, LLPointer, const LLSD&, const F32) {}
LLBufferStream::LLBufferStream(const LLChannelDescriptors& channels, LLBufferArray* buffer)
: std::iostream(&mStreamBuf), mStreamBuf(channels, buffer) {}
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 3c3aba23f8..ea75d4f4f6 100644
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -28,6 +28,7 @@ $/LicenseInfo$
"""
import sys
import os.path
+import errno
import re
import tarfile
import time
@@ -74,20 +75,20 @@ class ViewerManifest(LLManifest):
# include the list of Lindens (if any)
# see https://wiki.lindenlab.com/wiki/Generated_Linden_Credits
linden_names_path = os.getenv("LINDEN_CREDITS")
- if linden_names_path :
+ if not linden_names_path :
+ print "No 'LINDEN_CREDITS' specified in environment, using built-in list"
+ else:
try:
linden_file = open(linden_names_path,'r')
+ except IOError:
+ print "No Linden names found at '%s', using built-in list" % linden_names_path
+ else:
# all names should be one line, but the join below also converts to a string
linden_names = ', '.join(linden_file.readlines())
self.put_in_file(linden_names, "lindens.txt")
linden_file.close()
print "Linden names extracted from '%s'" % linden_names_path
self.file_list.append([linden_names_path,self.dst_path_of("lindens.txt")])
- except IOError:
- print "No Linden names found at '%s', using built-in list" % linden_names_path
- pass
- else :
- print "No 'LINDEN_CREDITS' specified in environment, using built-in list"
# ... and the entire windlight directory
self.path("windlight")
@@ -114,7 +115,6 @@ class ViewerManifest(LLManifest):
# skins
if self.prefix(src="skins"):
- self.path("paths.xml")
# include the entire textures directory recursively
if self.prefix(src="*/textures"):
self.path("*/*.tga")
@@ -132,11 +132,18 @@ class ViewerManifest(LLManifest):
self.path("*/*.xml")
# Local HTML files (e.g. loading screen)
- if self.prefix(src="*/html"):
+ # The claim is that we never use local html files any
+ # longer. But rather than commenting out this block, let's
+ # rename every html subdirectory as html.old. That way, if
+ # we're wrong, a user actually does have the relevant
+ # files; s/he just needs to rename every html.old
+ # directory back to html to recover them.
+ if self.prefix(src="*/html", dst="*/html.old"):
self.path("*.png")
self.path("*/*/*.html")
self.path("*/*/*.gif")
self.end_prefix("*/html")
+
self.end_prefix("skins")
# local_assets dir (for pre-cached textures)
@@ -149,14 +156,9 @@ class ViewerManifest(LLManifest):
self.path("gpu_table.txt")
# The summary.json file gets left in the base checkout dir by
- # build.sh. It's only created for a build.sh build, therefore we
- # have to check whether it exists. :-P
- summary_json = "summary.json"
- summary_json_path = os.path.join(os.pardir, os.pardir, summary_json)
- if os.path.exists(os.path.join(self.get_src_prefix(), summary_json_path)):
- self.path(summary_json_path, summary_json)
- else:
- print "No %s" % os.path.join(self.get_src_prefix(), summary_json_path)
+ # build.sh. It's only created for a build.sh build.
+ if not self.path2basename(os.path.join(os.pardir, os.pardir), "summary.json"):
+ print "No summary.json file"
def login_channel(self):
"""Channel reported for login and upgrade purposes ONLY;
@@ -327,13 +329,13 @@ class WindowsManifest(ViewerManifest):
self.path(src='%s/secondlife-bin.exe' % self.args['configuration'], dst=self.final_exe())
# Plugin host application
- self.path(os.path.join(os.pardir,
- 'llplugin', 'slplugin', self.args['configuration'], "slplugin.exe"),
- "slplugin.exe")
+ self.path2basename(os.path.join(os.pardir,
+ 'llplugin', 'slplugin', self.args['configuration']),
+ "slplugin.exe")
#self.disable_manifest_check()
- self.path(src="../viewer_components/updater/scripts/windows/update_install.bat", dst="update_install.bat")
+ self.path2basename("../viewer_components/updater/scripts/windows", "update_install.bat")
# Get shared libs from the shared libs staging directory
if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']),
dst=""):
@@ -367,9 +369,7 @@ class WindowsManifest(ViewerManifest):
# Get fmod dll, continue if missing
- try:
- self.path("fmod.dll")
- except:
+ if not self.path("fmod.dll"):
print "Skipping fmod.dll"
# For textures
@@ -537,6 +537,7 @@ class WindowsManifest(ViewerManifest):
result += 'File ' + pkg_file + '\n'
else:
result += 'Delete ' + wpath(os.path.join('$INSTDIR', rel_file)) + '\n'
+
# at the end of a delete, just rmdir all the directories
if not install:
deleted_file_dirs = [os.path.dirname(pair[1].replace(self.get_dst_prefix()+os.path.sep,'')) for pair in self.file_list]
@@ -710,85 +711,82 @@ class DarwinManifest(ViewerManifest):
self.path("uk.lproj")
self.path("zh-Hans.lproj")
+ def path_optional(src, dst):
+ """
+ For a number of our self.path() calls, not only do we want
+ to deal with the absence of src, we also want to remember
+ which were present. Return either an empty list (absent)
+ or a list containing dst (present). Concatenate these
+ return values to get a list of all libs that are present.
+ """
+ if self.path(src, dst):
+ return [dst]
+ print "Skipping %s" % dst
+ return []
+
libdir = "../packages/lib/release"
- dylibs = {}
+ # dylibs is a list of all the .dylib files we expect to need
+ # in our bundled sub-apps. For each of these we'll create a
+ # symlink from sub-app/Contents/Resources to the real .dylib.
+ # Need to get the llcommon dll from any of the build directories as well.
+ libfile = "libllcommon.dylib"
+ dylibs = path_optional(self.find_existing_file(os.path.join(os.pardir,
+ "llcommon",
+ self.args['configuration'],
+ libfile),
+ os.path.join(libdir, libfile)),
+ dst=libfile)
- # Need to get the llcommon dll from any of the build directories as well
- lib = "llcommon"
- libfile = "lib%s.dylib" % lib
- try:
- self.path(self.find_existing_file(os.path.join(os.pardir,
- lib,
- self.args['configuration'],
- libfile),
- os.path.join(libdir, libfile)),
- dst=libfile)
- except RuntimeError:
- print "Skipping %s" % libfile
- dylibs[lib] = False
- else:
- dylibs[lib] = True
+ for libfile in (
+ "libapr-1.0.dylib",
+ "libaprutil-1.0.dylib",
+ "libcollada14dom.dylib",
+ "libexpat.1.5.2.dylib",
+ "libexception_handler.dylib",
+ "libGLOD.dylib",
+ ):
+ dylibs += path_optional(os.path.join(libdir, libfile), libfile)
- if dylibs["llcommon"]:
- for libfile in ("libapr-1.0.dylib",
- "libaprutil-1.0.dylib",
- "libexpat.1.5.2.dylib",
- "libexception_handler.dylib",
- "libGLOD.dylib",
- "libcollada14dom.dylib"
- ):
- self.path(os.path.join(libdir, libfile), libfile)
-
- # SLVoice and vivox lols
- for libfile in ('libsndfile.dylib', 'libvivoxoal.dylib', 'libortp.dylib', \
- 'libvivoxsdk.dylib', 'libvivoxplatform.dylib', 'SLVoice') :
- self.path(os.path.join(libdir, libfile), libfile)
+ # SLVoice and vivox lols, no symlinks needed
+ for libfile in (
+ 'libortp.dylib',
+ 'libsndfile.dylib',
+ 'libvivoxoal.dylib',
+ 'libvivoxsdk.dylib',
+ 'libvivoxplatform.dylib',
+ 'SLVoice',
+ ):
+ self.path2basename(libdir, libfile)
- try:
- # FMOD for sound
- self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib")
- except:
- print "Skipping FMOD - not found"
+ # FMOD for sound
+ libfile = "libfmodwrapper.dylib"
+ path_optional(os.path.join(self.args['configuration'], libfile), libfile)
# our apps
- self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app")
- self.path("../mac_updater/" + self.args['configuration'] + "/mac-updater.app", "mac-updater.app")
+ for app_bld_dir, app in (("mac_crash_logger", "mac-crash-logger.app"),
+ ("mac_updater", "mac-updater.app"),
+ # plugin launcher
+ (os.path.join("llplugin", "slplugin"), "SLPlugin.app"),
+ ):
+ self.path2basename(os.path.join(os.pardir,
+ app_bld_dir, self.args['configuration']),
+ app)
- # plugin launcher
- self.path("../llplugin/slplugin/" + self.args['configuration'] + "/SLPlugin.app", "SLPlugin.app")
-
- # our apps dependencies on shared libs
- if dylibs["llcommon"]:
- mac_crash_logger_res_path = self.dst_path_of("mac-crash-logger.app/Contents/Resources")
- mac_updater_res_path = self.dst_path_of("mac-updater.app/Contents/Resources")
- slplugin_res_path = self.dst_path_of("SLPlugin.app/Contents/Resources")
- for libfile in ("libllcommon.dylib",
- "libapr-1.0.dylib",
- "libaprutil-1.0.dylib",
- "libexpat.1.5.2.dylib",
- "libexception_handler.dylib",
- "libGLOD.dylib",
- "libcollada14dom.dylib"
- ):
- target_lib = os.path.join('../../..', libfile)
- self.run_command("ln -sf %(target)r %(link)r" %
- {'target': target_lib,
- 'link' : os.path.join(mac_crash_logger_res_path, libfile)}
- )
- self.run_command("ln -sf %(target)r %(link)r" %
- {'target': target_lib,
- 'link' : os.path.join(mac_updater_res_path, libfile)}
- )
- self.run_command("ln -sf %(target)r %(link)r" %
- {'target': target_lib,
- 'link' : os.path.join(slplugin_res_path, libfile)}
- )
+ # our apps dependencies on shared libs
+ # for each app, for each dylib we collected in dylibs,
+ # create a symlink to the real copy of the dylib.
+ resource_path = self.dst_path_of(os.path.join(app, "Contents", "Resources"))
+ for libfile in dylibs:
+ symlinkf(os.path.join(os.pardir, os.pardir, os.pardir, libfile),
+ os.path.join(resource_path, libfile))
# plugins
if self.prefix(src="", dst="llplugin"):
- self.path("../media_plugins/quicktime/" + self.args['configuration'] + "/media_plugin_quicktime.dylib", "media_plugin_quicktime.dylib")
- self.path("../media_plugins/webkit/" + self.args['configuration'] + "/media_plugin_webkit.dylib", "media_plugin_webkit.dylib")
- self.path("../packages/lib/release/libllqtwebkit.dylib", "libllqtwebkit.dylib")
+ self.path2basename("../media_plugins/quicktime/" + self.args['configuration'],
+ "media_plugin_quicktime.dylib")
+ self.path2basename("../media_plugins/webkit/" + self.args['configuration'],
+ "media_plugin_webkit.dylib")
+ self.path2basename("../packages/lib/release", "libllqtwebkit.dylib")
self.end_prefix("llplugin")
@@ -955,20 +953,25 @@ class LinuxManifest(ViewerManifest):
self.path("client-readme-voice.txt","README-linux-voice.txt")
self.path("client-readme-joystick.txt","README-linux-joystick.txt")
self.path("wrapper.sh","secondlife")
- self.path("handle_secondlifeprotocol.sh", "etc/handle_secondlifeprotocol.sh")
- self.path("register_secondlifeprotocol.sh", "etc/register_secondlifeprotocol.sh")
- self.path("refresh_desktop_app_entry.sh", "etc/refresh_desktop_app_entry.sh")
- self.path("launch_url.sh","etc/launch_url.sh")
+ if self.prefix(src="", dst="etc"):
+ self.path("handle_secondlifeprotocol.sh")
+ self.path("register_secondlifeprotocol.sh")
+ self.path("refresh_desktop_app_entry.sh")
+ self.path("launch_url.sh")
+ self.end_prefix("etc")
self.path("install.sh")
self.end_prefix("linux_tools")
# Create an appropriate gridargs.dat for this package, denoting required grid.
self.put_in_file(self.flags_list(), 'etc/gridargs.dat')
- self.path("secondlife-bin","bin/do-not-directly-run-secondlife-bin")
- self.path("../linux_crash_logger/linux-crash-logger","bin/linux-crash-logger.bin")
- self.path("../linux_updater/linux-updater", "bin/linux-updater.bin")
- self.path("../llplugin/slplugin/SLPlugin", "bin/SLPlugin")
+ if self.prefix(src="", dst="bin"):
+ self.path("secondlife-bin","do-not-directly-run-secondlife-bin")
+ self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin")
+ self.path("../linux_updater/linux-updater", "linux-updater.bin")
+ self.path2basename("../llplugin/slplugin", "SLPlugin")
+ self.path2basename("../viewer_components/updater/scripts/linux", "update_install")
+ self.end_prefix("bin")
if self.prefix("res-sdl"):
self.path("*")
@@ -984,17 +987,13 @@ class LinuxManifest(ViewerManifest):
self.end_prefix("res-sdl")
self.end_prefix(icon_path)
- self.path("../viewer_components/updater/scripts/linux/update_install", "bin/update_install")
-
# plugins
if self.prefix(src="", dst="bin/llplugin"):
- self.path("../media_plugins/webkit/libmedia_plugin_webkit.so", "libmedia_plugin_webkit.so")
+ self.path2basename("../media_plugins/webkit", "libmedia_plugin_webkit.so")
self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so")
self.end_prefix("bin/llplugin")
- try:
- self.path("../llcommon/libllcommon.so", "lib/libllcommon.so")
- except:
+ if not self.path("../llcommon/libllcommon.so", "lib/libllcommon.so"):
print "Skipping llcommon.so (assuming llcommon was linked statically)"
self.path("featuretable_linux.txt")
@@ -1060,9 +1059,21 @@ class Linux_i686Manifest(LinuxManifest):
super(Linux_i686Manifest, self).construct()
if self.prefix("../packages/lib/release", dst="lib"):
- self.path("libapr-1.so*")
- self.path("libaprutil-1.so*")
- self.path("libbreakpad_client.so*")
+ self.path("libapr-1.so")
+ self.path("libapr-1.so.0")
+ self.path("libapr-1.so.0.4.5")
+ self.path("libaprutil-1.so")
+ self.path("libaprutil-1.so.0")
+ self.path("libaprutil-1.so.0.4.1")
+ self.path("libboost_program_options-mt.so.*")
+ self.path("libboost_regex-mt.so.*")
+ self.path("libboost_thread-mt.so.*")
+ self.path("libboost_filesystem-mt.so.*")
+ self.path("libboost_signals-mt.so.*")
+ self.path("libboost_system-mt.so.*")
+ self.path("libbreakpad_client.so.0.0.0")
+ self.path("libbreakpad_client.so.0")
+ self.path("libbreakpad_client.so")
self.path("libcollada14dom.so")
self.path("libdb*.so")
self.path("libcrypto.so.*")
@@ -1078,15 +1089,11 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libopenjpeg.so*")
self.path("libdirectfb-1.4.so.5")
self.path("libfusion-1.4.so.5")
- self.path("libdirect-1.4.so.5.0.4")
- self.path("libdirect-1.4.so.5")
- self.path("libhunspell-1.3.so")
- self.path("libhunspell-1.3.so.0")
- self.path("libhunspell-1.3.so.0.0.0")
+ self.path("libdirect-1.4.so.5*")
+ self.path("libhunspell-1.3.so*")
self.path("libalut.so")
self.path("libopenal.so", "libopenal.so.1")
self.path("libopenal.so", "libvivoxoal.so.1") # vivox's sdk expects this soname
-
# KLUDGE: As of 2012-04-11, the 'fontconfig' package installs
# libfontconfig.so.1.4.4, along with symlinks libfontconfig.so.1
# and libfontconfig.so. Before we added support for library-file
@@ -1105,7 +1112,13 @@ class Linux_i686Manifest(LinuxManifest):
# previous call did, without having to explicitly state the
# version number.
self.path("libfontconfig.so.*.*")
- self.path("libtcmalloc.so*") #formerly called google perf tools
+ try:
+ self.path("libtcmalloc.so*") #formerly called google perf tools
+ pass
+ except:
+ print "tcmalloc files not found, skipping"
+ pass
+
try:
self.path("libfmod-3.75.so")
pass
@@ -1140,5 +1153,25 @@ class Linux_x86_64Manifest(LinuxManifest):
################################################################
+def symlinkf(src, dst):
+ """
+ Like ln -sf, but uses os.symlink() instead of running ln.
+ """
+ try:
+ os.symlink(src, dst)
+ except OSError, err:
+ if err.errno != errno.EEXIST:
+ raise
+ # We could just blithely attempt to remove and recreate the target
+ # file, but that strategy doesn't work so well if we don't have
+ # permissions to remove it. Check to see if it's already the
+ # symlink we want, which is the usual reason for EEXIST.
+ if not (os.path.islink(dst) and os.readlink(dst) == src):
+ # Here either dst isn't a symlink or it's the wrong symlink.
+ # Remove and recreate. Caller will just have to deal with any
+ # exceptions at this stage.
+ os.remove(dst)
+ os.symlink(src, dst)
+
if __name__ == "__main__":
main()
diff --git a/indra/test/lluuidhashmap_tut.cpp b/indra/test/lluuidhashmap_tut.cpp
index 0544e832ce..408bc3faf1 100644
--- a/indra/test/lluuidhashmap_tut.cpp
+++ b/indra/test/lluuidhashmap_tut.cpp
@@ -30,6 +30,10 @@
#include "linden_common.h"
#include "lluuidhashmap.h"
#include "llsdserialize.h"
+#include "lldir.h"
+#include "stringize.h"
+#include
+#include
namespace tut
{
@@ -79,40 +83,133 @@ namespace tut
template<> template<>
void hash_index_object_t::test<1>()
{
- LLUUIDHashMap hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
+ set_test_name("stress test");
+ // As of 2012-10-10, I (nat) have observed sporadic failures of this
+ // test: "set/get did not work." The trouble is that since test data
+ // are randomly generated with every run, it is impossible to debug a
+ // test failure. One is left with the uneasy suspicion that
+ // LLUUID::generate() can sometimes produce duplicates even within the
+ // moderately small number requested here. Since rerunning the test
+ // generally allows it to pass, it's too easy to shrug and forget it.
+ // The following code is intended to support reproducing such test
+ // failures. The idea is that, on test failure, we save the generated
+ // data to a canonical filename in a temp directory. Then on every
+ // subsequent run, we check for that filename. If it exists, we reload
+ // that specific data rather than generating fresh data -- which
+ // should presumably reproduce the same test failure. But we inform
+ // the user that to resume normal (random) test runs, s/he need only
+ // delete that file. And since it's in a temp directory, sooner or
+ // later the system will clean it up anyway.
+ const char* tempvar = "TEMP";
+ const char* tempdir = getenv(tempvar); // Windows convention
+ if (! tempdir)
+ {
+ tempvar = "TMPDIR";
+ tempdir = getenv(tempvar); // Mac convention
+ }
+ if (! tempdir)
+ {
+ // reset tempvar to the first var we check; it's just a
+ // recommendation
+ tempvar = "TEMP";
+ tempdir = "/tmp"; // Posix in general
+ }
+ std::string savefile(gDirUtilp->add(tempdir, "lluuidhashmap_tut.save.txt"));
const int numElementsToCheck = 32*256*32;
- std::vector idList(numElementsToCheck);
- int i;
-
- for (i = 0; i < numElementsToCheck; i++)
+ std::vector idList;
+ if (gDirUtilp->fileExists(savefile))
{
- LLUUID id;
- id.generate();
- UUIDTableEntry entry(id, i);
- hashTable.set(id, entry);
- idList[i] = id;
- }
-
- for (i = 0; i < numElementsToCheck; i++)
- {
- LLUUID idToCheck = idList[i];
- UUIDTableEntry entryToCheck = hashTable.get(idToCheck);
- ensure("set/get did not work", entryToCheck.getID() == idToCheck && entryToCheck.getValue() == (size_t)i);
- }
-
- for (i = 0; i < numElementsToCheck; i++)
- {
- LLUUID idToCheck = idList[i];
- if (i % 2 != 0)
+ // We have saved data from a previous failed run. Reload that data.
+ std::ifstream inf(savefile.c_str());
+ if (! inf.is_open())
{
- hashTable.remove(idToCheck);
+ fail(STRINGIZE("Although save file '" << savefile << "' exists, it cannot be opened"));
+ }
+ std::string item;
+ while (std::getline(inf, item))
+ {
+ idList.push_back(LLUUID(item));
+ }
+ std::cout << "Reloaded " << idList.size() << " items from '" << savefile << "'";
+ if (idList.size() != numElementsToCheck)
+ {
+ std::cout << " (expected " << numElementsToCheck << ")";
+ }
+ std::cout << " -- delete this file to generate new data" << std::endl;
+ }
+ else
+ {
+ // savefile does not exist (normal case): regenerate idList from
+ // scratch.
+ for (int i = 0; i < numElementsToCheck; ++i)
+ {
+ LLUUID id;
+ id.generate();
+ idList.push_back(id);
}
}
- for (i = 0; i < numElementsToCheck; i++)
+ LLUUIDHashMap hashTable(UUIDTableEntry::uuidEq, UUIDTableEntry());
+ int i;
+
+ for (i = 0; i < idList.size(); ++i)
{
- LLUUID idToCheck = idList[i];
- ensure("remove or check did not work", (i % 2 == 0 && hashTable.check(idToCheck)) || (i % 2 != 0 && !hashTable.check(idToCheck)));
+ UUIDTableEntry entry(idList[i], i);
+ hashTable.set(idList[i], entry);
+ }
+
+ try
+ {
+ for (i = 0; i < idList.size(); i++)
+ {
+ LLUUID idToCheck = idList[i];
+ UUIDTableEntry entryToCheck = hashTable.get(idToCheck);
+ ensure_equals(STRINGIZE("set/get ID (entry " << i << ")").c_str(),
+ entryToCheck.getID(), idToCheck);
+ ensure_equals(STRINGIZE("set/get value (ID " << idToCheck << ")").c_str(),
+ entryToCheck.getValue(), (size_t)i);
+ }
+
+ for (i = 0; i < idList.size(); i++)
+ {
+ LLUUID idToCheck = idList[i];
+ if (i % 2 != 0)
+ {
+ hashTable.remove(idToCheck);
+ }
+ }
+
+ for (i = 0; i < idList.size(); i++)
+ {
+ LLUUID idToCheck = idList[i];
+ ensure("remove or check did not work", (i % 2 == 0 && hashTable.check(idToCheck)) || (i % 2 != 0 && !hashTable.check(idToCheck)));
+ }
+ }
+ catch (const failure&)
+ {
+ // One of the above tests failed. Try to save idList to repro with
+ // a later run.
+ std::ofstream outf(savefile.c_str());
+ if (! outf.is_open())
+ {
+ // Sigh, don't use fail() here because we want to preserve
+ // the original test failure.
+ std::cout << "Cannot open file '" << savefile
+ << "' to save data -- check and fix " << tempvar << std::endl;
+ }
+ else
+ {
+ // outf.is_open()
+ for (int i = 0; i < idList.size(); ++i)
+ {
+ outf << idList[i] << std::endl;
+ }
+ std::cout << "Saved " << idList.size() << " entries to '" << savefile
+ << "' -- rerun test to debug with these" << std::endl;
+ }
+ // re-raise the same exception -- we WANT this test failure to
+ // be reported! We just needed to save the data on the way out.
+ throw;
}
}
diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp
index d480b63094..bdcb068200 100644
--- a/indra/viewer_components/login/lllogin.cpp
+++ b/indra/viewer_components/login/lllogin.cpp
@@ -271,6 +271,16 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para
}
return; // Done!
}
+
+ /* Sometimes we end with "Started" here. Slightly slow server?
+ * Seems to be ok to just skip it. Otherwise we'd error out and crash in the if below.
+ */
+ if( status == "Started")
+ {
+ LL_DEBUGS("LLLogin") << mAuthResponse << LL_ENDL;
+ continue;
+ }
+
// If we don't recognize status at all, trouble
if (! (status == "CURLError"
|| status == "XMLRPCError"
diff --git a/indra/viewer_components/updater/llupdatechecker.cpp b/indra/viewer_components/updater/llupdatechecker.cpp
index 4da774a5f6..5edbbf9914 100644
--- a/indra/viewer_components/updater/llupdatechecker.cpp
+++ b/indra/viewer_components/updater/llupdatechecker.cpp
@@ -51,37 +51,6 @@ public:
};
-class LLUpdateChecker::Implementation:
- public LLHTTPClient::Responder
-{
-public:
- Implementation(Client & client);
- ~Implementation();
- void checkVersion(std::string const & protocolVersion, std::string const & hostUrl,
- std::string const & servicePath, std::string channel, std::string version);
-
- // Responder:
- virtual void completed(U32 status,
- const std::string & reason,
- const LLSD& content);
- virtual void error(U32 status, const std::string & reason);
-
-private:
- static const char * sProtocolVersion;
-
- Client & mClient;
- LLHTTPClient mHttpClient;
- bool mInProgress;
- std::string mVersion;
-
- std::string buildUrl(std::string const & protocolVersion, std::string const & hostUrl,
- std::string const & servicePath, std::string channel, std::string version);
-
- LOG_CLASS(LLUpdateChecker::Implementation);
-};
-
-
-
// LLUpdateChecker
//-----------------------------------------------------------------------------
@@ -134,13 +103,7 @@ void LLUpdateChecker::Implementation::checkVersion(std::string const & protocolV
std::string checkUrl = buildUrl(protocolVersion, hostUrl, servicePath, channel, version);
LL_INFOS("UpdateCheck") << "checking for updates at " << checkUrl << llendl;
- // The HTTP client will wrap a raw pointer in a boost::intrusive_ptr causing the
- // passed object to be silently and automatically deleted. We pass a self-
- // referential intrusive pointer to which we add a reference to keep the
- // client from deleting the update checker implementation instance.
- LLHTTPClient::ResponderPtr temporaryPtr(this);
- boost::intrusive_ptr_add_ref(temporaryPtr.get());
- mHttpClient.get(checkUrl, temporaryPtr);
+ mHttpClient.get(checkUrl, this);
}
void LLUpdateChecker::Implementation::completed(U32 status,
diff --git a/indra/viewer_components/updater/llupdatechecker.h b/indra/viewer_components/updater/llupdatechecker.h
index d882169068..23f62a7c5e 100644
--- a/indra/viewer_components/updater/llupdatechecker.h
+++ b/indra/viewer_components/updater/llupdatechecker.h
@@ -29,6 +29,7 @@
#include
+#include "llhttpclient.h"
//
// Implements asynchronous checking for updates.
@@ -36,7 +37,36 @@
class LLUpdateChecker {
public:
class Client;
- class Implementation;
+ class Implementation:
+
+ public LLHTTPClient::Responder
+ {
+ public:
+ Implementation(Client & client);
+ ~Implementation();
+ void checkVersion(std::string const & protocolVersion, std::string const & hostUrl,
+ std::string const & servicePath, std::string channel, std::string version);
+
+ // Responder:
+ virtual void completed(U32 status,
+ const std::string & reason,
+ const LLSD& content);
+ virtual void error(U32 status, const std::string & reason);
+
+ private:
+ static const char * sProtocolVersion;
+
+ Client & mClient;
+ LLHTTPClient mHttpClient;
+ bool mInProgress;
+ std::string mVersion;
+
+ std::string buildUrl(std::string const & protocolVersion, std::string const & hostUrl,
+ std::string const & servicePath, std::string channel, std::string version);
+
+ LOG_CLASS(LLUpdateChecker::Implementation);
+ };
+
// An exception that may be raised on check errors.
class CheckError;
@@ -48,7 +78,7 @@ public:
std::string const & servicePath, std::string channel, std::string version);
private:
- boost::shared_ptr mImplementation;
+ LLPointer mImplementation;
};
diff --git a/indra/viewer_components/updater/tests/llupdaterservice_test.cpp b/indra/viewer_components/updater/tests/llupdaterservice_test.cpp
index 7c016fecf9..db52e6c55f 100644
--- a/indra/viewer_components/updater/tests/llupdaterservice_test.cpp
+++ b/indra/viewer_components/updater/tests/llupdaterservice_test.cpp
@@ -78,7 +78,9 @@ S32 LLDir::deleteFilesInDir(const std::string &dirname,
void LLDir::setChatLogsDir(const std::string &path){}
void LLDir::setPerAccountChatLogsDir(const std::string &username){}
void LLDir::setLindenUserDir(const std::string &username){}
-void LLDir::setSkinFolder(const std::string &skin_folder){}
+void LLDir::setSkinFolder(const std::string &skin_folder, const std::string& language){}
+std::string LLDir::getSkinFolder() const { return "default"; }
+std::string LLDir::getLanguage() const { return "en"; }
bool LLDir::setCacheDir(const std::string &path){ return true; }
void LLDir::dumpCurrentDirectories() {}