diff options
author | David Seikel | 2011-06-04 00:17:28 +1000 |
---|---|---|
committer | David Seikel | 2011-06-04 00:17:28 +1000 |
commit | 492eaaf4eec82327116f2605e3d8becf94bec1b3 (patch) | |
tree | dcddd674cb4861445c3ec5aaa59325b99a437614 /linden | |
parent | Set the real bare minimum prim size to 0.00001, as 0 sized objects cause bugs. (diff) | |
parent | Fixing the menu to actually use its color options reveals how broken the whol... (diff) | |
download | meta-impy-492eaaf4eec82327116f2605e3d8becf94bec1b3.zip meta-impy-492eaaf4eec82327116f2605e3d8becf94bec1b3.tar.gz meta-impy-492eaaf4eec82327116f2605e3d8becf94bec1b3.tar.bz2 meta-impy-492eaaf4eec82327116f2605e3d8becf94bec1b3.tar.xz |
Merge branch 'next' of git://github.com/jacek/imprudence into next
Conflicts (manually merged):
linden/indra/llcommon/llversionviewer.h
linden/indra/llvfs/lldir.cpp
linden/indra/llvfs/lldir_mac.cpp
linden/indra/newview/CMakeLists.txt
linden/indra/newview/English.lproj/InfoPlist.strings
linden/indra/newview/Info-Imprudence.plist
linden/indra/newview/Info-meta-impy.plist
linden/indra/newview/llappviewer.cpp
linden/indra/newview/llpanellogin.cpp
linden/indra/newview/packaging/mac/Info.plist.in
linden/indra/newview/res/viewerRes.rc
linden/indra/newview/skins/default/xui/en-us/floater_about.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml
linden/indra/newview/skins/default/xui/zh/menu_viewer.xml
linden/indra/newview/skins/default/xui/zh/panel_group_general.xml
linden/indra/newview/viewer_manifest.py
linden/indra/newview/viewerversion.cpp
linden/indra/newview/viewerversion.h
linden/install.xml
Also some post merge tweaks.
Diffstat (limited to 'linden')
280 files changed, 10804 insertions, 4102 deletions
diff --git a/linden/indra/cmake/00-Common.cmake b/linden/indra/cmake/00-Common.cmake index 583e15e..9ff5906 100644 --- a/linden/indra/cmake/00-Common.cmake +++ b/linden/indra/cmake/00-Common.cmake | |||
@@ -14,10 +14,13 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO | |||
14 | "-DLL_RELEASE=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1") | 14 | "-DLL_RELEASE=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1") |
15 | 15 | ||
16 | 16 | ||
17 | # Don't bother with a MinSizeRel build. | 17 | # Available build types / configurations. |
18 | # Add our current build type first, to coax Xcode into selecting it by default. | ||
18 | 19 | ||
19 | set(CMAKE_CONFIGURATION_TYPES "RelWithDebInfo;Release;Debug" CACHE STRING | 20 | set(TYPES ${CMAKE_BUILD_TYPE} RelWithDebInfo Release Debug) |
20 | "Supported build types." FORCE) | 21 | list(REMOVE_DUPLICATES TYPES) |
22 | set(CMAKE_CONFIGURATION_TYPES ${TYPES} CACHE STRING "Supported build types." FORCE) | ||
23 | unset(TYPES) | ||
21 | 24 | ||
22 | 25 | ||
23 | # Determine the number of bits of this processor | 26 | # Determine the number of bits of this processor |
diff --git a/linden/indra/cmake/AddPackageTarget.cmake b/linden/indra/cmake/AddPackageTarget.cmake new file mode 100644 index 0000000..66adf3e --- /dev/null +++ b/linden/indra/cmake/AddPackageTarget.cmake | |||
@@ -0,0 +1,32 @@ | |||
1 | # This function adds a custom target named 'package', which runs | ||
2 | # scripts/package.py to create an installer package. | ||
3 | # | ||
4 | # By default, you must manually build the 'package' target when you | ||
5 | # are ready to create the installer package. But if the global | ||
6 | # AUTOPACKAGE variable is ON ("cmake -D AUTOPACKAGE:BOOL=ON"), the | ||
7 | # 'package' target will be added to the default build target. | ||
8 | |||
9 | |||
10 | set(AUTOPACKAGE OFF CACHE BOOL | ||
11 | "Automatically build an installer package after compiling.") | ||
12 | |||
13 | |||
14 | function( add_package_target ) | ||
15 | |||
16 | if (AUTOPACKAGE) | ||
17 | add_custom_target(package ALL) | ||
18 | else (AUTOPACKAGE) | ||
19 | add_custom_target(package) | ||
20 | endif (AUTOPACKAGE) | ||
21 | |||
22 | add_custom_command( | ||
23 | TARGET package POST_BUILD | ||
24 | COMMAND | ||
25 | ${PYTHON_EXECUTABLE} | ||
26 | ${SCRIPTS_DIR}/package.py | ||
27 | --build-dir=${CMAKE_BINARY_DIR} | ||
28 | --build-type=${CMAKE_BUILD_TYPE} | ||
29 | --source-dir=${CMAKE_SOURCE_DIR} | ||
30 | ) | ||
31 | |||
32 | endfunction( add_package_target ) | ||
diff --git a/linden/indra/cmake/Audio.cmake b/linden/indra/cmake/Audio.cmake index d23bc2f..10d11bb 100644 --- a/linden/indra/cmake/Audio.cmake +++ b/linden/indra/cmake/Audio.cmake | |||
@@ -32,6 +32,12 @@ else (STANDALONE) | |||
32 | set(VORBISENC_LIBRARIES vorbisenc) | 32 | set(VORBISENC_LIBRARIES vorbisenc) |
33 | set(VORBISFILE_LIBRARIES vorbisfile) | 33 | set(VORBISFILE_LIBRARIES vorbisfile) |
34 | endif (WINDOWS) | 34 | endif (WINDOWS) |
35 | if(LINUX AND ${ARCH} STREQUAL "x86_64") | ||
36 | set(VORBIS_LIBRARY_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib) | ||
37 | set(VORBISENC_LIBRARY_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib) | ||
38 | set(VORBISFILE_LIBRARY_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib) | ||
39 | set(OGG_LIBRARY_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib) | ||
40 | endif(LINUX AND ${ARCH} STREQUAL "x86_64") | ||
35 | endif (STANDALONE) | 41 | endif (STANDALONE) |
36 | 42 | ||
37 | link_directories( | 43 | link_directories( |
@@ -40,3 +46,13 @@ link_directories( | |||
40 | ${VORBISFILE_LIBRARY_DIRS} | 46 | ${VORBISFILE_LIBRARY_DIRS} |
41 | ${OGG_LIBRARY_DIRS} | 47 | ${OGG_LIBRARY_DIRS} |
42 | ) | 48 | ) |
49 | |||
50 | if(NOT vorbis_link_msg) | ||
51 | set(vorbis_link_msg ON CACHE BOOL "ogg vorbis linked from:\n") | ||
52 | message("ogg vorbis linked from:\n" | ||
53 | ${VORBIS_LIBRARY_DIRS} "\n" | ||
54 | ${VORBISENC_LIBRARY_DIRS} "\n" | ||
55 | ${VORBISFILE_LIBRARY_DIRS} "\n" | ||
56 | ${OGG_LIBRARY_DIRS} "\n" | ||
57 | ) | ||
58 | endif(NOT vorbis_link_msg) | ||
diff --git a/linden/indra/cmake/BuildVersion.cmake b/linden/indra/cmake/BuildVersion.cmake index 59b36ff..f86e9e5 100644 --- a/linden/indra/cmake/BuildVersion.cmake +++ b/linden/indra/cmake/BuildVersion.cmake | |||
@@ -2,17 +2,32 @@ | |||
2 | 2 | ||
3 | include(Python) | 3 | include(Python) |
4 | 4 | ||
5 | if (NOT SCRIPTS_DIR) | ||
6 | set( SCRIPTS_DIR "${CMAKE_SOURCE_DIR}/../scripts" ) | ||
7 | endif (NOT SCRIPTS_DIR) | ||
8 | |||
5 | macro (build_version _target) | 9 | macro (build_version _target) |
6 | execute_process( | 10 | execute_process( |
7 | COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/build_version.py | 11 | COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/viewer_info.py --version |
8 | viewerversion.xml ${CMAKE_CURRENT_SOURCE_DIR}/app_settings/ | ||
9 | OUTPUT_VARIABLE ${_target}_VERSION | 12 | OUTPUT_VARIABLE ${_target}_VERSION |
10 | OUTPUT_STRIP_TRAILING_WHITESPACE | 13 | OUTPUT_STRIP_TRAILING_WHITESPACE |
11 | ) | 14 | ) |
12 | 15 | ||
13 | if (${_target}_VERSION) | 16 | execute_process( |
14 | message(STATUS "Version of ${_target} is ${${_target}_VERSION}") | 17 | COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/viewer_info.py --name |
18 | OUTPUT_VARIABLE ${_target}_NAME | ||
19 | OUTPUT_STRIP_TRAILING_WHITESPACE | ||
20 | ) | ||
21 | |||
22 | execute_process( | ||
23 | COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/viewer_info.py --bundle-id | ||
24 | OUTPUT_VARIABLE ${_target}_BUNDLE_ID | ||
25 | OUTPUT_STRIP_TRAILING_WHITESPACE | ||
26 | ) | ||
27 | |||
28 | if ("${_target}_VERSION" AND "${_target}_NAME") | ||
29 | message(STATUS "Version of ${_target} is ${${_target}_NAME} ${${_target}_VERSION}") | ||
15 | else (${_target}_VERSION) | 30 | else (${_target}_VERSION) |
16 | message(SEND_ERROR "Could not determine ${_target} version") | 31 | message(SEND_ERROR "Could not determine ${_target} version") |
17 | endif (${_target}_VERSION) | 32 | endif ("${_target}_VERSION" AND "${_target}_NAME") |
18 | endmacro (build_version) | 33 | endmacro (build_version) |
diff --git a/linden/indra/cmake/DirectX.cmake b/linden/indra/cmake/DirectX.cmake index d406f37..e455755 100644 --- a/linden/indra/cmake/DirectX.cmake +++ b/linden/indra/cmake/DirectX.cmake | |||
@@ -3,6 +3,8 @@ | |||
3 | if (VIEWER AND WINDOWS) | 3 | if (VIEWER AND WINDOWS) |
4 | find_path(DIRECTX_INCLUDE_DIR dxdiag.h | 4 | find_path(DIRECTX_INCLUDE_DIR dxdiag.h |
5 | "$ENV{DXSDK_DIR}/Include" | 5 | "$ENV{DXSDK_DIR}/Include" |
6 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Include" | ||
7 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Include" | ||
6 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include" | 8 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include" |
7 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include" | 9 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include" |
8 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Include" | 10 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Include" |
@@ -23,6 +25,8 @@ if (VIEWER AND WINDOWS) | |||
23 | 25 | ||
24 | find_path(DIRECTX_LIBRARY_DIR dxguid.lib | 26 | find_path(DIRECTX_LIBRARY_DIR dxguid.lib |
25 | "$ENV{DXSDK_DIR}/Lib/x86" | 27 | "$ENV{DXSDK_DIR}/Lib/x86" |
28 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Lib/x86" | ||
29 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Lib/x86" | ||
26 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86" | 30 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86" |
27 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86" | 31 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86" |
28 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Lib/x86" | 32 | "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Lib/x86" |
diff --git a/linden/indra/cmake/LLWindow.cmake b/linden/indra/cmake/LLWindow.cmake index 1023693..345359a 100644 --- a/linden/indra/cmake/LLWindow.cmake +++ b/linden/indra/cmake/LLWindow.cmake | |||
@@ -45,4 +45,7 @@ else (SERVER AND LINUX) | |||
45 | comdlg32 | 45 | comdlg32 |
46 | ) | 46 | ) |
47 | endif (WINDOWS) | 47 | endif (WINDOWS) |
48 | if (LINUX) | ||
49 | list(APPEND LLWINDOW_LIBRARIES fontconfig) | ||
50 | endif (LINUX) | ||
48 | endif (SERVER AND LINUX) | 51 | endif (SERVER AND LINUX) |
diff --git a/linden/indra/develop.py b/linden/indra/develop.py index a705719..9f7c4f2 100755 --- a/linden/indra/develop.py +++ b/linden/indra/develop.py | |||
@@ -121,7 +121,7 @@ class PlatformSetup(object): | |||
121 | opts=quote(opts), | 121 | opts=quote(opts), |
122 | standalone=self.standalone, | 122 | standalone=self.standalone, |
123 | unattended=self.unattended, | 123 | unattended=self.unattended, |
124 | type=self.build_type.upper(), | 124 | type=self.build_type, |
125 | ) | 125 | ) |
126 | #if simple: | 126 | #if simple: |
127 | # return 'cmake %(opts)s %(dir)r' % args | 127 | # return 'cmake %(opts)s %(dir)r' % args |
@@ -287,7 +287,7 @@ class LinuxSetup(UnixSetup): | |||
287 | opts=quote(opts), | 287 | opts=quote(opts), |
288 | standalone=self.standalone, | 288 | standalone=self.standalone, |
289 | unattended=self.unattended, | 289 | unattended=self.unattended, |
290 | type=self.build_type.upper(), | 290 | type=self.build_type, |
291 | project_name=self.project_name | 291 | project_name=self.project_name |
292 | ) | 292 | ) |
293 | if not self.is_internal_tree(): | 293 | if not self.is_internal_tree(): |
@@ -427,7 +427,7 @@ class DarwinSetup(UnixSetup): | |||
427 | unattended=self.unattended, | 427 | unattended=self.unattended, |
428 | project_name=self.project_name, | 428 | project_name=self.project_name, |
429 | universal=self.universal, | 429 | universal=self.universal, |
430 | type=self.build_type.upper() | 430 | type=self.build_type |
431 | ) | 431 | ) |
432 | if self.universal == 'ON': | 432 | if self.universal == 'ON': |
433 | args['universal'] = '-DCMAKE_OSX_ARCHITECTURES:STRING=\'i386\'' | 433 | args['universal'] = '-DCMAKE_OSX_ARCHITECTURES:STRING=\'i386\'' |
diff --git a/linden/indra/llcommon/CMakeLists.txt b/linden/indra/llcommon/CMakeLists.txt index ed04ca6..b6015a8 100644 --- a/linden/indra/llcommon/CMakeLists.txt +++ b/linden/indra/llcommon/CMakeLists.txt | |||
@@ -200,7 +200,7 @@ set_source_files_properties(${llcommon_HEADER_FILES} | |||
200 | list(APPEND llcommon_SOURCE_FILES ${llcommon_HEADER_FILES}) | 200 | list(APPEND llcommon_SOURCE_FILES ${llcommon_HEADER_FILES}) |
201 | 201 | ||
202 | add_library (llcommon SHARED ${llcommon_SOURCE_FILES}) | 202 | add_library (llcommon SHARED ${llcommon_SOURCE_FILES}) |
203 | target_link_libraries( | 203 | set (llcommon_link_LIBRARIES |
204 | llcommon | 204 | llcommon |
205 | ${APRUTIL_LIBRARIES} | 205 | ${APRUTIL_LIBRARIES} |
206 | ${APR_LIBRARIES} | 206 | ${APR_LIBRARIES} |
@@ -218,3 +218,11 @@ if (DARWIN) | |||
218 | INSTALL_NAME_DIR "@executable_path/../Resources" | 218 | INSTALL_NAME_DIR "@executable_path/../Resources" |
219 | ) | 219 | ) |
220 | endif (DARWIN) | 220 | endif (DARWIN) |
221 | |||
222 | if (LINUX) | ||
223 | list(APPEND llcommon_link_LIBRARIES rt) | ||
224 | endif (LINUX) | ||
225 | |||
226 | target_link_libraries( | ||
227 | ${llcommon_link_LIBRARIES} | ||
228 | ) | ||
diff --git a/linden/indra/llcommon/llsdserialize.cpp b/linden/indra/llcommon/llsdserialize.cpp index 9f4ce64..e2be922 100644 --- a/linden/indra/llcommon/llsdserialize.cpp +++ b/linden/indra/llcommon/llsdserialize.cpp | |||
@@ -441,7 +441,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
441 | } | 441 | } |
442 | if(istr.fail()) | 442 | if(istr.fail()) |
443 | { | 443 | { |
444 | llinfos << "STREAM FAILURE reading map." << llendl; | 444 | llwarns << "STREAM FAILURE reading map." << llendl; |
445 | parse_count = PARSE_FAILURE; | 445 | parse_count = PARSE_FAILURE; |
446 | } | 446 | } |
447 | break; | 447 | break; |
@@ -460,7 +460,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
460 | } | 460 | } |
461 | if(istr.fail()) | 461 | if(istr.fail()) |
462 | { | 462 | { |
463 | llinfos << "STREAM FAILURE reading array." << llendl; | 463 | llwarns << "STREAM FAILURE reading array." << llendl; |
464 | parse_count = PARSE_FAILURE; | 464 | parse_count = PARSE_FAILURE; |
465 | } | 465 | } |
466 | break; | 466 | break; |
@@ -496,7 +496,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
496 | } | 496 | } |
497 | if(istr.fail()) | 497 | if(istr.fail()) |
498 | { | 498 | { |
499 | llinfos << "STREAM FAILURE reading boolean." << llendl; | 499 | llwarns << "STREAM FAILURE reading boolean." << llendl; |
500 | parse_count = PARSE_FAILURE; | 500 | parse_count = PARSE_FAILURE; |
501 | } | 501 | } |
502 | break; | 502 | break; |
@@ -522,7 +522,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
522 | } | 522 | } |
523 | if(istr.fail()) | 523 | if(istr.fail()) |
524 | { | 524 | { |
525 | llinfos << "STREAM FAILURE reading boolean." << llendl; | 525 | llwarns << "STREAM FAILURE reading boolean." << llendl; |
526 | parse_count = PARSE_FAILURE; | 526 | parse_count = PARSE_FAILURE; |
527 | } | 527 | } |
528 | break; | 528 | break; |
@@ -535,7 +535,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
535 | data = integer; | 535 | data = integer; |
536 | if(istr.fail()) | 536 | if(istr.fail()) |
537 | { | 537 | { |
538 | llinfos << "STREAM FAILURE reading integer." << llendl; | 538 | llwarns << "STREAM FAILURE reading integer." << llendl; |
539 | parse_count = PARSE_FAILURE; | 539 | parse_count = PARSE_FAILURE; |
540 | } | 540 | } |
541 | break; | 541 | break; |
@@ -549,7 +549,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
549 | data = real; | 549 | data = real; |
550 | if(istr.fail()) | 550 | if(istr.fail()) |
551 | { | 551 | { |
552 | llinfos << "STREAM FAILURE reading real." << llendl; | 552 | llwarns << "STREAM FAILURE reading real." << llendl; |
553 | parse_count = PARSE_FAILURE; | 553 | parse_count = PARSE_FAILURE; |
554 | } | 554 | } |
555 | break; | 555 | break; |
@@ -563,7 +563,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
563 | data = id; | 563 | data = id; |
564 | if(istr.fail()) | 564 | if(istr.fail()) |
565 | { | 565 | { |
566 | llinfos << "STREAM FAILURE reading uuid." << llendl; | 566 | llwarns << "STREAM FAILURE reading uuid." << llendl; |
567 | parse_count = PARSE_FAILURE; | 567 | parse_count = PARSE_FAILURE; |
568 | } | 568 | } |
569 | break; | 569 | break; |
@@ -578,7 +578,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
578 | } | 578 | } |
579 | if(istr.fail()) | 579 | if(istr.fail()) |
580 | { | 580 | { |
581 | llinfos << "STREAM FAILURE reading string." << llendl; | 581 | llwarns << "STREAM FAILURE reading string." << llendl; |
582 | parse_count = PARSE_FAILURE; | 582 | parse_count = PARSE_FAILURE; |
583 | } | 583 | } |
584 | break; | 584 | break; |
@@ -600,7 +600,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
600 | } | 600 | } |
601 | if(istr.fail()) | 601 | if(istr.fail()) |
602 | { | 602 | { |
603 | llinfos << "STREAM FAILURE reading link." << llendl; | 603 | llwarns << "STREAM FAILURE reading link." << llendl; |
604 | parse_count = PARSE_FAILURE; | 604 | parse_count = PARSE_FAILURE; |
605 | } | 605 | } |
606 | break; | 606 | break; |
@@ -623,7 +623,7 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
623 | } | 623 | } |
624 | if(istr.fail()) | 624 | if(istr.fail()) |
625 | { | 625 | { |
626 | llinfos << "STREAM FAILURE reading date." << llendl; | 626 | llwarns << "STREAM FAILURE reading date." << llendl; |
627 | parse_count = PARSE_FAILURE; | 627 | parse_count = PARSE_FAILURE; |
628 | } | 628 | } |
629 | break; | 629 | break; |
@@ -636,14 +636,14 @@ S32 LLSDNotationParser::doParse(std::istream& istr, LLSD& data) const | |||
636 | } | 636 | } |
637 | if(istr.fail()) | 637 | if(istr.fail()) |
638 | { | 638 | { |
639 | llinfos << "STREAM FAILURE reading data." << llendl; | 639 | llwarns << "STREAM FAILURE reading data." << llendl; |
640 | parse_count = PARSE_FAILURE; | 640 | parse_count = PARSE_FAILURE; |
641 | } | 641 | } |
642 | break; | 642 | break; |
643 | 643 | ||
644 | default: | 644 | default: |
645 | parse_count = PARSE_FAILURE; | 645 | parse_count = PARSE_FAILURE; |
646 | llinfos << "Unrecognized character while parsing: int(" << (int)c | 646 | llwarns << "Unrecognized character while parsing: int(" << (int)c |
647 | << ")" << llendl; | 647 | << ")" << llendl; |
648 | break; | 648 | break; |
649 | } | 649 | } |
@@ -905,7 +905,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
905 | } | 905 | } |
906 | if(istr.fail()) | 906 | if(istr.fail()) |
907 | { | 907 | { |
908 | llinfos << "STREAM FAILURE reading binary map." << llendl; | 908 | llwarns << "STREAM FAILURE reading binary map." << llendl; |
909 | parse_count = PARSE_FAILURE; | 909 | parse_count = PARSE_FAILURE; |
910 | } | 910 | } |
911 | break; | 911 | break; |
@@ -924,7 +924,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
924 | } | 924 | } |
925 | if(istr.fail()) | 925 | if(istr.fail()) |
926 | { | 926 | { |
927 | llinfos << "STREAM FAILURE reading binary array." << llendl; | 927 | llwarns << "STREAM FAILURE reading binary array." << llendl; |
928 | parse_count = PARSE_FAILURE; | 928 | parse_count = PARSE_FAILURE; |
929 | } | 929 | } |
930 | break; | 930 | break; |
@@ -949,7 +949,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
949 | data = (S32)ntohl(value_nbo); | 949 | data = (S32)ntohl(value_nbo); |
950 | if(istr.fail()) | 950 | if(istr.fail()) |
951 | { | 951 | { |
952 | llinfos << "STREAM FAILURE reading binary integer." << llendl; | 952 | llwarns << "STREAM FAILURE reading binary integer." << llendl; |
953 | } | 953 | } |
954 | break; | 954 | break; |
955 | } | 955 | } |
@@ -961,7 +961,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
961 | data = ll_ntohd(real_nbo); | 961 | data = ll_ntohd(real_nbo); |
962 | if(istr.fail()) | 962 | if(istr.fail()) |
963 | { | 963 | { |
964 | llinfos << "STREAM FAILURE reading binary real." << llendl; | 964 | llwarns << "STREAM FAILURE reading binary real." << llendl; |
965 | } | 965 | } |
966 | break; | 966 | break; |
967 | } | 967 | } |
@@ -973,7 +973,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
973 | data = id; | 973 | data = id; |
974 | if(istr.fail()) | 974 | if(istr.fail()) |
975 | { | 975 | { |
976 | llinfos << "STREAM FAILURE reading binary uuid." << llendl; | 976 | llwarns << "STREAM FAILURE reading binary uuid." << llendl; |
977 | } | 977 | } |
978 | break; | 978 | break; |
979 | } | 979 | } |
@@ -994,7 +994,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
994 | } | 994 | } |
995 | if(istr.fail()) | 995 | if(istr.fail()) |
996 | { | 996 | { |
997 | llinfos << "STREAM FAILURE reading binary (notation-style) string." | 997 | llwarns << "STREAM FAILURE reading binary (notation-style) string." |
998 | << llendl; | 998 | << llendl; |
999 | parse_count = PARSE_FAILURE; | 999 | parse_count = PARSE_FAILURE; |
1000 | } | 1000 | } |
@@ -1014,7 +1014,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1014 | } | 1014 | } |
1015 | if(istr.fail()) | 1015 | if(istr.fail()) |
1016 | { | 1016 | { |
1017 | llinfos << "STREAM FAILURE reading binary string." << llendl; | 1017 | llwarns << "STREAM FAILURE reading binary string." << llendl; |
1018 | parse_count = PARSE_FAILURE; | 1018 | parse_count = PARSE_FAILURE; |
1019 | } | 1019 | } |
1020 | break; | 1020 | break; |
@@ -1033,7 +1033,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1033 | } | 1033 | } |
1034 | if(istr.fail()) | 1034 | if(istr.fail()) |
1035 | { | 1035 | { |
1036 | llinfos << "STREAM FAILURE reading binary link." << llendl; | 1036 | llwarns << "STREAM FAILURE reading binary link." << llendl; |
1037 | parse_count = PARSE_FAILURE; | 1037 | parse_count = PARSE_FAILURE; |
1038 | } | 1038 | } |
1039 | break; | 1039 | break; |
@@ -1046,7 +1046,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1046 | data = LLDate(real); | 1046 | data = LLDate(real); |
1047 | if(istr.fail()) | 1047 | if(istr.fail()) |
1048 | { | 1048 | { |
1049 | llinfos << "STREAM FAILURE reading binary date." << llendl; | 1049 | llwarns << "STREAM FAILURE reading binary date." << llendl; |
1050 | parse_count = PARSE_FAILURE; | 1050 | parse_count = PARSE_FAILURE; |
1051 | } | 1051 | } |
1052 | break; | 1052 | break; |
@@ -1075,7 +1075,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1075 | } | 1075 | } |
1076 | if(istr.fail()) | 1076 | if(istr.fail()) |
1077 | { | 1077 | { |
1078 | llinfos << "STREAM FAILURE reading binary." << llendl; | 1078 | llwarns << "STREAM FAILURE reading binary." << llendl; |
1079 | parse_count = PARSE_FAILURE; | 1079 | parse_count = PARSE_FAILURE; |
1080 | } | 1080 | } |
1081 | break; | 1081 | break; |
@@ -1083,7 +1083,7 @@ S32 LLSDBinaryParser::doParse(std::istream& istr, LLSD& data) const | |||
1083 | 1083 | ||
1084 | default: | 1084 | default: |
1085 | parse_count = PARSE_FAILURE; | 1085 | parse_count = PARSE_FAILURE; |
1086 | llinfos << "Unrecognized character while parsing: int(" << (int)c | 1086 | llwarns << "Unrecognized character while parsing: int(" << (int)c |
1087 | << ")" << llendl; | 1087 | << ")" << llendl; |
1088 | break; | 1088 | break; |
1089 | } | 1089 | } |
diff --git a/linden/indra/llcommon/llsdserialize_xml.cpp b/linden/indra/llcommon/llsdserialize_xml.cpp index 33206b4..dab6c1d 100644 --- a/linden/indra/llcommon/llsdserialize_xml.cpp +++ b/linden/indra/llcommon/llsdserialize_xml.cpp | |||
@@ -391,6 +391,14 @@ S32 LLSDXMLParser::Impl::parse(std::istream& input, LLSD& data) | |||
391 | 391 | ||
392 | if (status == XML_STATUS_ERROR) | 392 | if (status == XML_STATUS_ERROR) |
393 | { | 393 | { |
394 | std::string error_string( XML_ErrorString(XML_GetErrorCode( mParser ))); | ||
395 | if ("parsing aborted" != error_string )//end of input | ||
396 | { | ||
397 | S32 line_number = XML_GetCurrentLineNumber( mParser ); | ||
398 | llwarns << "LLXmlTree parse failed. Line " << line_number << ": " | ||
399 | << error_string << llendl; | ||
400 | } | ||
401 | |||
394 | break; | 402 | break; |
395 | } | 403 | } |
396 | } | 404 | } |
@@ -408,7 +416,8 @@ S32 LLSDXMLParser::Impl::parse(std::istream& input, LLSD& data) | |||
408 | { | 416 | { |
409 | ((char*) buffer)[count ? count - 1 : 0] = '\0'; | 417 | ((char*) buffer)[count ? count - 1 : 0] = '\0'; |
410 | } | 418 | } |
411 | llinfos << "LLSDXMLParser::Impl::parse: XML_STATUS_ERROR parsing:" << (char*) buffer << llendl; | 419 | |
420 | |||
412 | data = LLSD(); | 421 | data = LLSD(); |
413 | return LLSDParser::PARSE_FAILURE; | 422 | return LLSDParser::PARSE_FAILURE; |
414 | } | 423 | } |
@@ -486,7 +495,13 @@ S32 LLSDXMLParser::Impl::parseLines(std::istream& input, LLSD& data) | |||
486 | if (status == XML_STATUS_ERROR | 495 | if (status == XML_STATUS_ERROR |
487 | && !mGracefullStop) | 496 | && !mGracefullStop) |
488 | { | 497 | { |
489 | llinfos << "LLSDXMLParser::Impl::parseLines: XML_STATUS_ERROR" << llendl; | 498 | std::string error_string( XML_ErrorString(XML_GetErrorCode( mParser ))); |
499 | if ("parsing aborted" != error_string )//end of input | ||
500 | { | ||
501 | S32 line_number = XML_GetCurrentLineNumber( mParser ); | ||
502 | llwarns << "LLXmlTree parse failed. Line " << line_number << ": " | ||
503 | << error_string << llendl; | ||
504 | } | ||
490 | return LLSDParser::PARSE_FAILURE; | 505 | return LLSDParser::PARSE_FAILURE; |
491 | } | 506 | } |
492 | 507 | ||
@@ -552,7 +567,9 @@ void LLSDXMLParser::Impl::parsePart(const char* buf, int len) | |||
552 | XML_Status status = XML_Parse(mParser, buf, len, false); | 567 | XML_Status status = XML_Parse(mParser, buf, len, false); |
553 | if (status == XML_STATUS_ERROR) | 568 | if (status == XML_STATUS_ERROR) |
554 | { | 569 | { |
555 | llinfos << "Unexpected XML parsing error at start" << llendl; | 570 | std::string error_string( XML_ErrorString(XML_GetErrorCode( mParser )) ); |
571 | |||
572 | llwarns << "Unexpected XML parsing error at start: " << error_string << llendl; | ||
556 | } | 573 | } |
557 | } | 574 | } |
558 | } | 575 | } |
diff --git a/linden/indra/llcommon/llversionviewer.h b/linden/indra/llcommon/llversionviewer.h index a571b95..e7d5134 100644 --- a/linden/indra/llcommon/llversionviewer.h +++ b/linden/indra/llcommon/llversionviewer.h | |||
@@ -33,8 +33,6 @@ | |||
33 | #ifndef LL_LLVERSIONVIEWER_H | 33 | #ifndef LL_LLVERSIONVIEWER_H |
34 | #define LL_LLVERSIONVIEWER_H | 34 | #define LL_LLVERSIONVIEWER_H |
35 | 35 | ||
36 | // Version info should be accessed using newview\viewerversion.h -- MC | ||
37 | |||
38 | const S32 LL_VERSION_MAJOR = 1; | 36 | const S32 LL_VERSION_MAJOR = 1; |
39 | const S32 LL_VERSION_MINOR = 23; | 37 | const S32 LL_VERSION_MINOR = 23; |
40 | const S32 LL_VERSION_PATCH = 5; | 38 | const S32 LL_VERSION_PATCH = 5; |
@@ -42,17 +40,13 @@ const S32 LL_VERSION_BUILD = 136262; | |||
42 | 40 | ||
43 | const char * const LL_VIEWER_NAME = "meta-impy"; | 41 | const char * const LL_VIEWER_NAME = "meta-impy"; |
44 | 42 | ||
45 | // These aren't used anymore. | 43 | // These aren't used anymore. See newview/viewerinfo.cpp instead. |
46 | // The channel is ViewerChannelName in settings.xml | 44 | // |
47 | // The meta-impy version is set in app_settings\viewerversion.xml -- MC | 45 | // const char * const LL_CHANNEL = "meta-impy"; |
48 | 46 | // const char * const IMP_VIEWER_NAME = "meta-impy"; | |
49 | /*const char * const LL_CHANNEL = "meta-impy"; | 47 | // const S32 IMP_VERSION_MAJOR = 0; |
50 | 48 | // const S32 IMP_VERSION_MINOR = 0; | |
51 | const char * const IMP_VIEWER_NAME = "meta-impy"; | 49 | // const S32 IMP_VERSION_PATCH = 0; |
52 | 50 | // const char * const IMP_VERSION_TEST = ""; | |
53 | const S32 IMP_VERSION_MAJOR = 1; | ||
54 | const S32 IMP_VERSION_MINOR = 3; | ||
55 | const S32 IMP_VERSION_PATCH = 0; | ||
56 | const char * const IMP_VERSION_TEST = "beta 4";*/ | ||
57 | 51 | ||
58 | #endif | 52 | #endif |
diff --git a/linden/indra/llmessage/CMakeLists.txt b/linden/indra/llmessage/CMakeLists.txt index b3f2b4c..61b6418 100644 --- a/linden/indra/llmessage/CMakeLists.txt +++ b/linden/indra/llmessage/CMakeLists.txt | |||
@@ -208,13 +208,21 @@ set_source_files_properties(${llmessage_HEADER_FILES} | |||
208 | list(APPEND llmessage_SOURCE_FILES ${llmessage_HEADER_FILES}) | 208 | list(APPEND llmessage_SOURCE_FILES ${llmessage_HEADER_FILES}) |
209 | 209 | ||
210 | add_library (llmessage ${llmessage_SOURCE_FILES}) | 210 | add_library (llmessage ${llmessage_SOURCE_FILES}) |
211 | target_link_libraries( | 211 | set (llmessage_link_LIBRARIES |
212 | llmessage | 212 | llmessage |
213 | ${CURL_LIBRARIES} | 213 | ${CURL_LIBRARIES} |
214 | ${CARES_LIBRARIES} | 214 | ${CARES_LIBRARIES} |
215 | ${OPENSSL_LIBRARIES} | 215 | ${OPENSSL_LIBRARIES} |
216 | ${CRYPTO_LIBRARIES} | 216 | ${CRYPTO_LIBRARIES} |
217 | ${XMLRPCEPI_LIBRARIES} | 217 | ${XMLRPCEPI_LIBRARIES} |
218 | ) | ||
219 | if (LINUX) | ||
220 | list(APPEND llmessage_link_LIBRARIES pthread) | ||
221 | endif (LINUX) | ||
222 | |||
223 | target_link_libraries( | ||
224 | ${llmessage_link_LIBRARIES} | ||
225 | |||
218 | ) | 226 | ) |
219 | 227 | ||
220 | IF (NOT LINUX AND VIEWER) | 228 | IF (NOT LINUX AND VIEWER) |
diff --git a/linden/indra/llplugin/llpluginclassmedia.cpp b/linden/indra/llplugin/llpluginclassmedia.cpp index f0a44f7..31a9d1d 100755 --- a/linden/indra/llplugin/llpluginclassmedia.cpp +++ b/linden/indra/llplugin/llpluginclassmedia.cpp | |||
@@ -1143,6 +1143,15 @@ void LLPluginClassMedia::setBrowserUserAgent(const std::string& user_agent) | |||
1143 | sendMessage(message); | 1143 | sendMessage(message); |
1144 | } | 1144 | } |
1145 | 1145 | ||
1146 | #if LL_WINDOWS | ||
1147 | void LLPluginClassMedia::showConsole() | ||
1148 | { | ||
1149 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "show_console"); | ||
1150 | |||
1151 | sendMessage(message); | ||
1152 | } | ||
1153 | #endif | ||
1154 | |||
1146 | void LLPluginClassMedia::crashPlugin() | 1155 | void LLPluginClassMedia::crashPlugin() |
1147 | { | 1156 | { |
1148 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "crash"); | 1157 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_INTERNAL, "crash"); |
diff --git a/linden/indra/llplugin/llpluginclassmedia.h b/linden/indra/llplugin/llpluginclassmedia.h index 0004971..098312d 100755 --- a/linden/indra/llplugin/llpluginclassmedia.h +++ b/linden/indra/llplugin/llpluginclassmedia.h | |||
@@ -229,6 +229,11 @@ public: | |||
229 | std::string getMediaName() const { return mMediaName; }; | 229 | std::string getMediaName() const { return mMediaName; }; |
230 | std::string getMediaDescription() const { return mMediaDescription; }; | 230 | std::string getMediaDescription() const { return mMediaDescription; }; |
231 | 231 | ||
232 | #if LL_WINDOWS | ||
233 | //Open a debug console for this plugin. | ||
234 | void showConsole(); | ||
235 | #endif | ||
236 | |||
232 | // Crash the plugin. If you use this outside of a testbed, you will be punished. | 237 | // Crash the plugin. If you use this outside of a testbed, you will be punished. |
233 | void crashPlugin(); | 238 | void crashPlugin(); |
234 | 239 | ||
diff --git a/linden/indra/llplugin/llpluginmessage.cpp b/linden/indra/llplugin/llpluginmessage.cpp index 0810a04..9c4940a 100755 --- a/linden/indra/llplugin/llpluginmessage.cpp +++ b/linden/indra/llplugin/llpluginmessage.cpp | |||
@@ -368,7 +368,8 @@ std::string LLPluginMessage::generate(void) const | |||
368 | 368 | ||
369 | // Pretty XML may be slightly easier to deal with while debugging... | 369 | // Pretty XML may be slightly easier to deal with while debugging... |
370 | // LLSDSerialize::toXML(mMessage, result); | 370 | // LLSDSerialize::toXML(mMessage, result); |
371 | LLSDSerialize::toPrettyXML(mMessage, result); | 371 | // LLSDSerialize::toPrettyXML(mMessage, result); |
372 | result << mMessage; | ||
372 | 373 | ||
373 | return result.str(); | 374 | return result.str(); |
374 | } | 375 | } |
@@ -383,10 +384,12 @@ int LLPluginMessage::parse(const std::string &message) | |||
383 | // clear any previous state | 384 | // clear any previous state |
384 | clear(); | 385 | clear(); |
385 | 386 | ||
386 | std::istringstream input(message); | 387 | std::istringstream input(message); |
387 | 388 | ||
388 | S32 parse_result = LLSDSerialize::fromXML(mMessage, input); | 389 | |
389 | 390 | // S32 parse_result = LLSDSerialize::fromXML(test, input); | |
391 | S32 parse_result = LLSDSerialize::fromNotation( mMessage, input, LLSDSerialize::SIZE_UNLIMITED) ; | ||
392 | |||
390 | return (int)parse_result; | 393 | return (int)parse_result; |
391 | } | 394 | } |
392 | 395 | ||
diff --git a/linden/indra/llplugin/llpluginprocesschild.cpp b/linden/indra/llplugin/llpluginprocesschild.cpp index 0d95cac..168236e 100755 --- a/linden/indra/llplugin/llpluginprocesschild.cpp +++ b/linden/indra/llplugin/llpluginprocesschild.cpp | |||
@@ -42,6 +42,14 @@ | |||
42 | #include "llpluginmessagepipe.h" | 42 | #include "llpluginmessagepipe.h" |
43 | #include "llpluginmessageclasses.h" | 43 | #include "llpluginmessageclasses.h" |
44 | 44 | ||
45 | #if LL_WINDOWS | ||
46 | #include <windows.h> | ||
47 | #include <fcntl.h> | ||
48 | #include <io.h> | ||
49 | #include <iostream> | ||
50 | #include <fstream> | ||
51 | #endif | ||
52 | |||
45 | static const F32 HEARTBEAT_SECONDS = 1.0f; | 53 | static const F32 HEARTBEAT_SECONDS = 1.0f; |
46 | static const F32 PLUGIN_IDLE_SECONDS = 1.0f / 100.0f; // Each call to idle will give the plugin this much time. | 54 | static const F32 PLUGIN_IDLE_SECONDS = 1.0f / 100.0f; // Each call to idle will give the plugin this much time. |
47 | 55 | ||
@@ -420,6 +428,12 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message) | |||
420 | { | 428 | { |
421 | mSleepTime = parsed.getValueReal("time"); | 429 | mSleepTime = parsed.getValueReal("time"); |
422 | } | 430 | } |
431 | #if LL_WINDOWS | ||
432 | else if(message_name == "show_console") | ||
433 | { | ||
434 | createConsole(); | ||
435 | } | ||
436 | #endif | ||
423 | else if(message_name == "crash") | 437 | else if(message_name == "crash") |
424 | { | 438 | { |
425 | // Crash the plugin | 439 | // Crash the plugin |
@@ -569,3 +583,46 @@ void LLPluginProcessChild::deliverQueuedMessages() | |||
569 | } | 583 | } |
570 | } | 584 | } |
571 | } | 585 | } |
586 | |||
587 | #if LL_WINDOWS | ||
588 | void LLPluginProcessChild::createConsole() | ||
589 | { | ||
590 | const S32 MAX_CONSOLE_LINES = 500; | ||
591 | |||
592 | int h_con_handle; | ||
593 | long l_std_handle; | ||
594 | |||
595 | CONSOLE_SCREEN_BUFFER_INFO coninfo; | ||
596 | FILE *fp; | ||
597 | |||
598 | // allocate a console for this app | ||
599 | AllocConsole(); | ||
600 | |||
601 | // set the screen buffer to be big enough to let us scroll text | ||
602 | GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); | ||
603 | coninfo.dwSize.Y = MAX_CONSOLE_LINES; | ||
604 | SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); | ||
605 | |||
606 | // redirect unbuffered STDOUT to the console | ||
607 | l_std_handle = (long)GetStdHandle(STD_OUTPUT_HANDLE); | ||
608 | h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); | ||
609 | fp = _fdopen( h_con_handle, "w" ); | ||
610 | *stdout = *fp; | ||
611 | setvbuf( stdout, NULL, _IONBF, 0 ); | ||
612 | |||
613 | // redirect unbuffered STDIN to the console | ||
614 | l_std_handle = (long)GetStdHandle(STD_INPUT_HANDLE); | ||
615 | h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); | ||
616 | fp = _fdopen( h_con_handle, "r" ); | ||
617 | *stdin = *fp; | ||
618 | setvbuf( stdin, NULL, _IONBF, 0 ); | ||
619 | |||
620 | // redirect unbuffered STDERR to the console | ||
621 | l_std_handle = (long)GetStdHandle(STD_ERROR_HANDLE); | ||
622 | h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); | ||
623 | fp = _fdopen( h_con_handle, "w" ); | ||
624 | *stderr = *fp; | ||
625 | setvbuf( stderr, NULL, _IOFBF, 1024 ); //Assigning a buffer improves speed a LOT, esp on vista/win7 | ||
626 | //_IOLBF is borked. | ||
627 | } | ||
628 | #endif \ No newline at end of file | ||
diff --git a/linden/indra/llplugin/llpluginprocesschild.h b/linden/indra/llplugin/llpluginprocesschild.h index 5d643d7..6d864bb 100755 --- a/linden/indra/llplugin/llpluginprocesschild.h +++ b/linden/indra/llplugin/llpluginprocesschild.h | |||
@@ -76,7 +76,11 @@ public: | |||
76 | 76 | ||
77 | // Inherited from LLPluginInstanceMessageListener | 77 | // Inherited from LLPluginInstanceMessageListener |
78 | /* virtual */ void receivePluginMessage(const std::string &message); | 78 | /* virtual */ void receivePluginMessage(const std::string &message); |
79 | 79 | ||
80 | #if LL_WINDOWS | ||
81 | void createConsole(); | ||
82 | #endif | ||
83 | |||
80 | private: | 84 | private: |
81 | 85 | ||
82 | enum EState | 86 | enum EState |
diff --git a/linden/indra/llrender/llglslshader.cpp b/linden/indra/llrender/llglslshader.cpp index 08d6548..429cf6f 100644 --- a/linden/indra/llrender/llglslshader.cpp +++ b/linden/indra/llrender/llglslshader.cpp | |||
@@ -160,7 +160,9 @@ BOOL LLGLSLShader::createShader(vector<string> * attributes, | |||
160 | 160 | ||
161 | BOOL LLGLSLShader::attachObject(std::string object) | 161 | BOOL LLGLSLShader::attachObject(std::string object) |
162 | { | 162 | { |
163 | if (LLShaderMgr::instance()->mShaderObjects.count(object) > 0) | 163 | //if (LLShaderMgr::instance()->mShaderObjects.count(object) > 0) |
164 | std::map<std::string, GLhandleARB> &ShaderObjects = LLShaderMgr::instance()->mShaderObjects; | ||
165 | if (ShaderObjects.find(object) != ShaderObjects.end()) | ||
164 | { | 166 | { |
165 | stop_glerror(); | 167 | stop_glerror(); |
166 | glAttachObjectARB(mProgramObject, LLShaderMgr::instance()->mShaderObjects[object]); | 168 | glAttachObjectARB(mProgramObject, LLShaderMgr::instance()->mShaderObjects[object]); |
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp index 453bb50..5f16853 100644 --- a/linden/indra/llui/lllineeditor.cpp +++ b/linden/indra/llui/lllineeditor.cpp | |||
@@ -223,18 +223,15 @@ LLLineEditor::LLLineEditor(const std::string& name, const LLRect& rect, | |||
223 | } | 223 | } |
224 | mImage = sImage; | 224 | mImage = sImage; |
225 | 225 | ||
226 | |||
227 | LLMenuGL* menu = LLUICtrlFactory::getInstance()->buildMenu("menu_rightclick_text.xml",this); | 226 | LLMenuGL* menu = LLUICtrlFactory::getInstance()->buildMenu("menu_rightclick_text.xml",this); |
228 | if (!menu) | 227 | if (!menu) |
229 | { | 228 | { |
230 | menu = new LLMenuGL(LLStringUtil::null); | 229 | menu = new LLMenuGL(LLStringUtil::null); |
231 | } | 230 | } |
232 | 231 | ||
233 | defineMenuCallbacks(menu); | 232 | defineMenuCallbacks(menu); |
234 | mPopupMenuHandle = menu->getHandle(); | 233 | mPopupMenuHandle = menu->getHandle(); |
235 | menu->setBorderColor(gColors.getColor("MenuItemDisabledColor")); | ||
236 | menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor")); | 234 | menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor")); |
237 | |||
238 | } | 235 | } |
239 | 236 | ||
240 | 237 | ||
@@ -1344,7 +1341,7 @@ void LLLineEditor::defineMenuCallbacks(LLMenuGL* menu) { | |||
1344 | "Select All Text", | 1341 | "Select All Text", |
1345 | this, | 1342 | this, |
1346 | (void*)context_enable_selectall); | 1343 | (void*)context_enable_selectall); |
1347 | menu->setCtrlResponse(1+LLCallbackInformation::LL_MENU_ITEM_CALL_GL_ON_CLICK, | 1344 | menu->setCtrlResponse(LLCallbackInformation::LL_MENU_ITEM_CALL_GL_ON_CLICK, |
1348 | "Select All Text", | 1345 | "Select All Text", |
1349 | this, | 1346 | this, |
1350 | (void*)context_selectall); | 1347 | (void*)context_selectall); |
diff --git a/linden/indra/llui/llmenugl.cpp b/linden/indra/llui/llmenugl.cpp index d5e1186..2d4a2f1 100644 --- a/linden/indra/llui/llmenugl.cpp +++ b/linden/indra/llui/llmenugl.cpp | |||
@@ -3099,8 +3099,7 @@ void LLMenuGL::draw( void ) | |||
3099 | 3099 | ||
3100 | if( mBgVisible ) | 3100 | if( mBgVisible ) |
3101 | { | 3101 | { |
3102 | gl_rect_2d( -1, getRect().getHeight()+2, getRect().getWidth()+2, -2, mBorderColor,FALSE); | 3102 | gl_rect_2d( 0, getRect().getHeight(), getRect().getWidth(), 0, mBackgroundColor ); |
3103 | gl_rect_2d( 0, getRect().getHeight(), getRect().getWidth(), 0, mBackgroundColor ); | ||
3104 | } | 3103 | } |
3105 | LLView::draw(); | 3104 | LLView::draw(); |
3106 | } | 3105 | } |
@@ -3157,37 +3156,18 @@ LLMenuGL* LLMenuGL::getChildMenuByName(const std::string& name, BOOL recurse) co | |||
3157 | } | 3156 | } |
3158 | 3157 | ||
3159 | 3158 | ||
3160 | void LLMenuGL::setBackgroundColor( const LLColor4& color ) { | 3159 | void LLMenuGL::setBackgroundColor( const LLColor4& color ) |
3161 | 3160 | { | |
3162 | mBackgroundColor = color; | 3161 | mBackgroundColor = color; |
3163 | item_list_t::iterator item_iter; | 3162 | item_list_t::iterator item_iter; |
3164 | for (item_iter = mItems.begin(); item_iter != mItems.end(); ++item_iter) | 3163 | for (item_iter = mItems.begin(); item_iter != mItems.end(); ++item_iter) |
3165 | { | ||
3166 | if((*item_iter)->getType()=="menu") | ||
3167 | { | ||
3168 | LLMenuItemBranchGL *menuBranchItem = (LLMenuItemBranchGL*)(*item_iter); | ||
3169 | menuBranchItem->getBranch()->setBackgroundColor(color); | ||
3170 | } | ||
3171 | } | ||
3172 | |||
3173 | |||
3174 | } | ||
3175 | |||
3176 | |||
3177 | void LLMenuGL::setBorderColor( const LLColor4& color ) { | ||
3178 | |||
3179 | mBorderColor = color; | ||
3180 | item_list_t::iterator item_iter; | ||
3181 | for (item_iter = mItems.begin(); item_iter != mItems.end(); ++item_iter) | ||
3182 | { | 3164 | { |
3183 | if((*item_iter)->getType()=="menu") | 3165 | if((*item_iter)->getType()=="menu") |
3184 | { | 3166 | { |
3185 | LLMenuItemBranchGL *menuBranchItem = (LLMenuItemBranchGL*)(*item_iter); | 3167 | LLMenuItemBranchGL *menuBranchItem = (LLMenuItemBranchGL*)(*item_iter); |
3186 | menuBranchItem->getBranch()->setBorderColor(color); | 3168 | menuBranchItem->getBranch()->setBackgroundColor(color); |
3187 | } | 3169 | } |
3188 | } | 3170 | } |
3189 | |||
3190 | |||
3191 | } | 3171 | } |
3192 | 3172 | ||
3193 | 3173 | ||
diff --git a/linden/indra/llui/llmenugl.h b/linden/indra/llui/llmenugl.h index 9a9d1b0..3b57a32 100644 --- a/linden/indra/llui/llmenugl.h +++ b/linden/indra/llui/llmenugl.h | |||
@@ -514,10 +514,8 @@ public: | |||
514 | 514 | ||
515 | // background colors | 515 | // background colors |
516 | static void setDefaultBackgroundColor( const LLColor4& color ) { sDefaultBackgroundColor = color; } | 516 | static void setDefaultBackgroundColor( const LLColor4& color ) { sDefaultBackgroundColor = color; } |
517 | void setBackgroundColor( const LLColor4& color ); | 517 | void setBackgroundColor( const LLColor4& color ); |
518 | void setBorderColor( const LLColor4& color ); | ||
519 | const LLColor4& getBackgroundColor() const { return mBackgroundColor; } | 518 | const LLColor4& getBackgroundColor() const { return mBackgroundColor; } |
520 | const LLColor4& getBorderColor() const { return mBorderColor; } | ||
521 | void setBackgroundVisible( BOOL b ) { mBgVisible = b; } | 519 | void setBackgroundVisible( BOOL b ) { mBgVisible = b; } |
522 | void setCanTearOff(BOOL tear_off, LLHandle<LLFloater> parent_floater_handle = LLHandle<LLFloater>()); | 520 | void setCanTearOff(BOOL tear_off, LLHandle<LLFloater> parent_floater_handle = LLHandle<LLFloater>()); |
523 | 521 | ||
@@ -631,7 +629,6 @@ private: | |||
631 | static BOOL sKeyboardMode; | 629 | static BOOL sKeyboardMode; |
632 | 630 | ||
633 | LLColor4 mBackgroundColor; | 631 | LLColor4 mBackgroundColor; |
634 | LLColor4 mBorderColor; | ||
635 | BOOL mBgVisible; | 632 | BOOL mBgVisible; |
636 | LLMenuItemGL* mParentMenuItem; | 633 | LLMenuItemGL* mParentMenuItem; |
637 | LLUIString mLabel; | 634 | LLUIString mLabel; |
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp index 28859b1..8612427 100644 --- a/linden/indra/llui/lltexteditor.cpp +++ b/linden/indra/llui/lltexteditor.cpp | |||
@@ -389,14 +389,12 @@ LLTextEditor::LLTextEditor( | |||
389 | LLMenuGL* menu = LLUICtrlFactory::getInstance()->buildMenu("menu_rightclick_text.xml",this); | 389 | LLMenuGL* menu = LLUICtrlFactory::getInstance()->buildMenu("menu_rightclick_text.xml",this); |
390 | if (!menu) | 390 | if (!menu) |
391 | { | 391 | { |
392 | menu = new LLMenuGL(LLStringUtil::null); | 392 | menu = new LLMenuGL(LLStringUtil::null); |
393 | } | 393 | } |
394 | 394 | ||
395 | defineMenuCallbacks(menu); | 395 | defineMenuCallbacks(menu); |
396 | mPopupMenuHandle = menu->getHandle(); | 396 | mPopupMenuHandle = menu->getHandle(); |
397 | menu->setBorderColor(gColors.getColor("MenuItemDisabledColor")); | ||
398 | menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor")); | 397 | menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor")); |
399 | |||
400 | } | 398 | } |
401 | 399 | ||
402 | LLTextEditor::~LLTextEditor() | 400 | LLTextEditor::~LLTextEditor() |
@@ -636,7 +634,7 @@ void LLTextEditor::defineMenuCallbacks(LLMenuGL* menu) { | |||
636 | "Select All Text", | 634 | "Select All Text", |
637 | this, | 635 | this, |
638 | (void*)context_enable_selectall); | 636 | (void*)context_enable_selectall); |
639 | menu->setCtrlResponse(1+LLCallbackInformation::LL_MENU_ITEM_CALL_GL_ON_CLICK, | 637 | menu->setCtrlResponse(LLCallbackInformation::LL_MENU_ITEM_CALL_GL_ON_CLICK, |
640 | "Select All Text", | 638 | "Select All Text", |
641 | this, | 639 | this, |
642 | (void*)context_selectall); | 640 | (void*)context_selectall); |
@@ -3869,6 +3867,12 @@ void LLTextEditor::onTabInto() | |||
3869 | // virtual | 3867 | // virtual |
3870 | void LLTextEditor::clear() | 3868 | void LLTextEditor::clear() |
3871 | { | 3869 | { |
3870 | // Also clear any styling we might have added -- MC | ||
3871 | mParseHTML = FALSE; | ||
3872 | mParseHighlights = FALSE; | ||
3873 | |||
3874 | mSegments.clear(); | ||
3875 | |||
3872 | setText(LLStringUtil::null); | 3876 | setText(LLStringUtil::null); |
3873 | std::for_each(mSegments.begin(), mSegments.end(), DeletePointer()); | 3877 | std::for_each(mSegments.begin(), mSegments.end(), DeletePointer()); |
3874 | mSegments.clear(); | 3878 | mSegments.clear(); |
diff --git a/linden/indra/llvfs/lldir.cpp b/linden/indra/llvfs/lldir.cpp index 8bd68f4..4f108b9 100644 --- a/linden/indra/llvfs/lldir.cpp +++ b/linden/indra/llvfs/lldir.cpp | |||
@@ -249,7 +249,7 @@ std::string LLDir::buildSLOSCacheDir() const | |||
249 | } | 249 | } |
250 | else | 250 | else |
251 | { | 251 | { |
252 | res = getOSCacheDir() + mDirDelimiter + "meta-impyExperimental"; | 252 | res = getOSCacheDir() + mDirDelimiter + "meta-impy"; |
253 | } | 253 | } |
254 | return res; | 254 | return res; |
255 | } | 255 | } |
diff --git a/linden/indra/llvfs/lldir_mac.cpp b/linden/indra/llvfs/lldir_mac.cpp index 7fb235b..cb5c748 100644 --- a/linden/indra/llvfs/lldir_mac.cpp +++ b/linden/indra/llvfs/lldir_mac.cpp | |||
@@ -173,7 +173,7 @@ LLDir_Mac::LLDir_Mac() | |||
173 | if (error == noErr) | 173 | if (error == noErr) |
174 | { | 174 | { |
175 | FSRefToLLString(&cacheDirRef, mOSCacheDir); | 175 | FSRefToLLString(&cacheDirRef, mOSCacheDir); |
176 | (void)CFCreateDirectory(&cacheDirRef, CFSTR("meta-impyExperimental"),NULL); | 176 | (void)CFCreateDirectory(&cacheDirRef, CFSTR("meta-impy"),NULL); |
177 | } | 177 | } |
178 | 178 | ||
179 | // mOSUserAppDir | 179 | // mOSUserAppDir |
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt index f11ee12..83ad646 100644 --- a/linden/indra/newview/CMakeLists.txt +++ b/linden/indra/newview/CMakeLists.txt | |||
@@ -3,6 +3,7 @@ | |||
3 | project(viewer) | 3 | project(viewer) |
4 | 4 | ||
5 | include(00-Common) | 5 | include(00-Common) |
6 | include(AddPackageTarget) | ||
6 | include(Boost) | 7 | include(Boost) |
7 | include(BuildVersion) | 8 | include(BuildVersion) |
8 | include(DBusGlib) | 9 | include(DBusGlib) |
@@ -361,7 +362,6 @@ set(viewer_SOURCE_FILES | |||
361 | llpanelplace.cpp | 362 | llpanelplace.cpp |
362 | llpanelskins.cpp | 363 | llpanelskins.cpp |
363 | llpanelvolume.cpp | 364 | llpanelvolume.cpp |
364 | llpanelweb.cpp | ||
365 | llparcelselection.cpp | 365 | llparcelselection.cpp |
366 | llpatchvertexarray.cpp | 366 | llpatchvertexarray.cpp |
367 | llpolymesh.cpp | 367 | llpolymesh.cpp |
@@ -532,8 +532,8 @@ set(viewer_SOURCE_FILES | |||
532 | rlvextensions.cpp | 532 | rlvextensions.cpp |
533 | rlvfloaterbehaviour.cpp | 533 | rlvfloaterbehaviour.cpp |
534 | slfloatermediafilter.cpp | 534 | slfloatermediafilter.cpp |
535 | viewerinfo.cpp | ||
535 | viewertime.cpp | 536 | viewertime.cpp |
536 | viewerversion.cpp | ||
537 | windlightsettingsupdate.cpp | 537 | windlightsettingsupdate.cpp |
538 | wlfloatermanager.cpp | 538 | wlfloatermanager.cpp |
539 | wlfloaterwindlightsend.cpp | 539 | wlfloaterwindlightsend.cpp |
@@ -830,7 +830,6 @@ set(viewer_HEADER_FILES | |||
830 | llpanelplace.h | 830 | llpanelplace.h |
831 | llpanelskins.h | 831 | llpanelskins.h |
832 | llpanelvolume.h | 832 | llpanelvolume.h |
833 | llpanelweb.h | ||
834 | llparcelselection.h | 833 | llparcelselection.h |
835 | llpatchvertexarray.h | 834 | llpatchvertexarray.h |
836 | llpolymesh.h | 835 | llpolymesh.h |
@@ -1011,8 +1010,8 @@ set(viewer_HEADER_FILES | |||
1011 | slfloatermediafilter.h | 1010 | slfloatermediafilter.h |
1012 | VertexCache.h | 1011 | VertexCache.h |
1013 | VorbisFramework.h | 1012 | VorbisFramework.h |
1013 | viewerinfo.h | ||
1014 | viewertime.h | 1014 | viewertime.h |
1015 | viewerversion.h | ||
1016 | wlfloatermanager.h | 1015 | wlfloatermanager.h |
1017 | wlfloaterwindlightsend.h | 1016 | wlfloaterwindlightsend.h |
1018 | wlretrievesettings.h | 1017 | wlretrievesettings.h |
@@ -1047,14 +1046,14 @@ if (DARWIN) | |||
1047 | viewer.icns | 1046 | viewer.icns |
1048 | macview.r | 1047 | macview.r |
1049 | gpu_table.txt | 1048 | gpu_table.txt |
1050 | Info-meta-impy.plist | 1049 | packaging/mac/Info.plist.in |
1051 | meta-impy.nib/ | 1050 | packaging/mac/viewer.nib/ |
1052 | # CMake doesn't seem to support Xcode language variants well just yet | 1051 | # CMake doesn't seem to support Xcode language variants well just yet |
1053 | English.lproj/InfoPlist.strings | 1052 | packaging/mac/English.lproj/InfoPlist.strings |
1054 | English.lproj/language.txt | 1053 | packaging/mac/English.lproj/language.txt |
1055 | German.lproj/language.txt | 1054 | packaging/mac/German.lproj/language.txt |
1056 | Japanese.lproj/language.txt | 1055 | packaging/mac/Japanese.lproj/language.txt |
1057 | Korean.lproj/language.txt | 1056 | packaging/mac/Korean.lproj/language.txt |
1058 | ) | 1057 | ) |
1059 | set_source_files_properties( | 1058 | set_source_files_properties( |
1060 | ${viewer_RESOURCE_FILES} | 1059 | ${viewer_RESOURCE_FILES} |
@@ -1265,7 +1264,6 @@ set(viewer_APPSETTINGS_FILES | |||
1265 | app_settings/trees.xml | 1264 | app_settings/trees.xml |
1266 | app_settings/ultra_graphics.xml | 1265 | app_settings/ultra_graphics.xml |
1267 | app_settings/viewerart.xml | 1266 | app_settings/viewerart.xml |
1268 | app_settings/viewerversion.xml | ||
1269 | ${CMAKE_SOURCE_DIR}/../etc/message.xml | 1267 | ${CMAKE_SOURCE_DIR}/../etc/message.xml |
1270 | ${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg | 1268 | ${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg |
1271 | ) | 1269 | ) |
@@ -1343,6 +1341,10 @@ add_executable(${VIEWER_BINARY_NAME} | |||
1343 | ) | 1341 | ) |
1344 | #check_message_template(${VIEWER_BINARY_NAME}) | 1342 | #check_message_template(${VIEWER_BINARY_NAME}) |
1345 | 1343 | ||
1344 | |||
1345 | # NOTE: This variable is DEPRECATED, and should not be used anymore. | ||
1346 | # The package target should always be added. The variable AUTOPACKAGE | ||
1347 | # (in AddPackageTarget.cmake) controls whether package is auto-built. | ||
1346 | set(PACKAGE OFF CACHE BOOL | 1348 | set(PACKAGE OFF CACHE BOOL |
1347 | "Add a package target that builds an installer package.") | 1349 | "Add a package target that builds an installer package.") |
1348 | 1350 | ||
@@ -1502,121 +1504,102 @@ set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH | |||
1502 | 1504 | ||
1503 | 1505 | ||
1504 | if (LINUX) | 1506 | if (LINUX) |
1505 | add_custom_command( | 1507 | string(REPLACE "-bin" "-stripped" |
1506 | OUTPUT meta-impy-stripped | 1508 | VIEWER_STRIPPED_NAME ${VIEWER_BINARY_NAME}) |
1507 | COMMAND strip | ||
1508 | ARGS --strip-debug -o meta-impy-stripped ${VIEWER_BINARY_NAME} | ||
1509 | DEPENDS meta-impy-bin | ||
1510 | ) | ||
1511 | 1509 | ||
1512 | set(product meta-impy-${ARCH}-${viewer_VERSION}) | 1510 | add_dependencies(${VIEWER_BINARY_NAME} |
1511 | SLPlugin | ||
1512 | media_plugin_gstreamer010 | ||
1513 | media_plugin_webkit) | ||
1513 | 1514 | ||
1514 | add_custom_command( | 1515 | add_custom_command( |
1515 | OUTPUT ${product}.tar.bz2 | 1516 | OUTPUT ${VIEWER_STRIPPED_NAME} |
1516 | COMMAND ${PYTHON_EXECUTABLE} | 1517 | COMMAND strip |
1517 | ARGS | 1518 | ARGS --strip-debug -o ${VIEWER_STRIPPED_NAME} ${VIEWER_BINARY_NAME} |
1518 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | 1519 | DEPENDS ${VIEWER_BINARY_NAME} |
1519 | --standalone=${STANDALONE} | 1520 | ) |
1520 | --buildtype=${CMAKE_BUILD_TYPE} | 1521 | |
1521 | --grid=${GRID} | 1522 | add_custom_target( |
1522 | --channel=${VIEWER_CHANNEL} | 1523 | viewer-manifest-target |
1523 | --login_channel=${VIEWER_LOGIN_CHANNEL} | 1524 | ALL |
1524 | --installer_name=${product} | 1525 | COMMAND |
1525 | --arch=${ARCH} | 1526 | ${PYTHON_EXECUTABLE} |
1526 | --source=${CMAKE_CURRENT_SOURCE_DIR} | 1527 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py |
1527 | --artwork=${ARTWORK_DIR} | 1528 | --standalone=${STANDALONE} |
1528 | --build=${CMAKE_CURRENT_BINARY_DIR} | 1529 | --buildtype=${CMAKE_BUILD_TYPE} |
1529 | --dest=${CMAKE_CURRENT_BINARY_DIR}/packaged | 1530 | --grid=${GRID} |
1530 | --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched | 1531 | --channel=${VIEWER_CHANNEL} |
1531 | DEPENDS meta-impy-stripped ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | 1532 | --login_channel=${VIEWER_LOGIN_CHANNEL} |
1532 | ) | 1533 | --arch=${ARCH} |
1533 | 1534 | --source=${CMAKE_CURRENT_SOURCE_DIR} | |
1534 | add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer010 media_plugin_webkit) | 1535 | --artwork=${ARTWORK_DIR} |
1536 | --build=${CMAKE_CURRENT_BINARY_DIR} | ||
1537 | --dest=${CMAKE_CURRENT_BINARY_DIR}/packaged | ||
1538 | DEPENDS | ||
1539 | ${VIEWER_STRIPPED_NAME} | ||
1540 | linux-crash-logger | ||
1541 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | ||
1542 | ) | ||
1543 | |||
1544 | add_package_target() | ||
1545 | add_dependencies(package viewer-manifest-target) | ||
1535 | 1546 | ||
1536 | if (NOT INSTALL) | ||
1537 | add_custom_target(package ALL DEPENDS ${product}.tar.bz2) | ||
1538 | add_dependencies(package linux-crash-logger-strip-target) | ||
1539 | endif (NOT INSTALL) | ||
1540 | endif (LINUX) | 1547 | endif (LINUX) |
1541 | 1548 | ||
1549 | |||
1542 | if (DARWIN) | 1550 | if (DARWIN) |
1543 | set(product "meta-impy") | 1551 | set(product "${viewer_NAME}") |
1552 | |||
1544 | set_target_properties( | 1553 | set_target_properties( |
1545 | ${VIEWER_BINARY_NAME} | 1554 | ${VIEWER_BINARY_NAME} |
1546 | PROPERTIES | 1555 | PROPERTIES |
1547 | OUTPUT_NAME "${product}" | 1556 | OUTPUT_NAME "${product}" |
1548 | MACOSX_BUNDLE_INFO_STRING "info string - localize me" | ||
1549 | MACOSX_BUNDLE_ICON_FILE "viewer.icns" | ||
1550 | MACOSX_BUNDLE_GUI_IDENTIFIER "meta-impy" | ||
1551 | MACOSX_BUNDLE_LONG_VERSION_STRING "ververver" | ||
1552 | MACOSX_BUNDLE_BUNDLE_NAME "meta-impy" | ||
1553 | MACOSX_BUNDLE_SHORT_VERSION_STRING "asdf" | ||
1554 | MACOSX_BUNDLE_BUNDLE_VERSION "asdf" | ||
1555 | MACOSX_BUNDLE_COPYRIGHT "copyright linden lab 2007 - localize me and run me through a legal wringer" | ||
1556 | ) | 1557 | ) |
1558 | |||
1559 | # Generate Info.plist from the template. | ||
1560 | add_custom_target( | ||
1561 | GenerateInfoPlist | ||
1562 | ALL | ||
1563 | COMMENT "Generating Info.plist..." | ||
1564 | VERBATIM | ||
1565 | DEPENDS | ||
1566 | ${CMAKE_CURRENT_SOURCE_DIR}/packaging/mac/GenerateInfoPlist.cmake | ||
1567 | ${CMAKE_CURRENT_SOURCE_DIR}/packaging/mac/Info.plist.in | ||
1568 | ${CMAKE_CURRENT_SOURCE_DIR}/viewerinfo.cpp | ||
1569 | COMMAND | ||
1570 | ${CMAKE_COMMAND} | ||
1571 | -DSOURCE_DIR=${CMAKE_SOURCE_DIR} | ||
1572 | -DBINARY_DIR=${CMAKE_BINARY_DIR} | ||
1573 | -P ${CMAKE_CURRENT_SOURCE_DIR}/packaging/mac/GenerateInfoPlist.cmake | ||
1574 | ) | ||
1575 | |||
1576 | # Ensure that it's generated before the binary is built, so | ||
1577 | # that it will definitely be ready when viewer_manifest.py runs. | ||
1578 | add_dependencies(${VIEWER_BINARY_NAME} GenerateInfoPlist) | ||
1579 | |||
1557 | 1580 | ||
1558 | add_custom_command( | 1581 | add_custom_command( |
1559 | TARGET ${VIEWER_BINARY_NAME} POST_BUILD | 1582 | TARGET ${VIEWER_BINARY_NAME} POST_BUILD |
1560 | COMMAND ${PYTHON_EXECUTABLE} | 1583 | COMMAND ${PYTHON_EXECUTABLE} |
1561 | ARGS | 1584 | ARGS |
1562 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | 1585 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py |
1563 | --grid=${GRID} | ||
1564 | --actions=copy | 1586 | --actions=copy |
1565 | --configuration=${CMAKE_CFG_INTDIR} | ||
1566 | --source=${CMAKE_CURRENT_SOURCE_DIR} | ||
1567 | --artwork=${ARTWORK_DIR} | 1587 | --artwork=${ARTWORK_DIR} |
1568 | --build=${CMAKE_CURRENT_BINARY_DIR} | 1588 | --build=${CMAKE_CURRENT_BINARY_DIR} |
1589 | --buildtype=${CMAKE_BUILD_TYPE} | ||
1590 | --configuration=${CMAKE_CFG_INTDIR} | ||
1569 | --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app | 1591 | --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app |
1592 | --grid=${GRID} | ||
1593 | --source=${CMAKE_CURRENT_SOURCE_DIR} | ||
1594 | --standalone=${STANDALONE} | ||
1570 | DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | 1595 | DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py |
1571 | ) | 1596 | ) |
1572 | |||
1573 | add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit media_plugin_gstreamer010) | ||
1574 | |||
1575 | if (PACKAGE) | ||
1576 | add_custom_target(package ALL DEPENDS ${VIEWER_BINARY_NAME}) | ||
1577 | add_dependencies(package mac-updater mac-crash-logger) | ||
1578 | |||
1579 | add_custom_command( | ||
1580 | TARGET package POST_BUILD | ||
1581 | COMMAND ${PYTHON_EXECUTABLE} | ||
1582 | ARGS | ||
1583 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | ||
1584 | --standalone=${STANDALONE} | ||
1585 | --buildtype=${CMAKE_BUILD_TYPE} | ||
1586 | --grid=${GRID} | ||
1587 | --configuration=${CMAKE_CFG_INTDIR} | ||
1588 | --channel=${VIEWER_CHANNEL} | ||
1589 | --login_channel=${VIEWER_LOGIN_CHANNEL} | ||
1590 | --source=${CMAKE_CURRENT_SOURCE_DIR} | ||
1591 | --artwork=${ARTWORK_DIR} | ||
1592 | --build=${CMAKE_CURRENT_BINARY_DIR} | ||
1593 | --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app | ||
1594 | --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched | ||
1595 | 1597 | ||
1596 | DEPENDS | 1598 | add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit media_plugin_gstreamer010 mac-updater mac-crash-logger) |
1597 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | ||
1598 | ) | ||
1599 | 1599 | ||
1600 | add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit media_plugin_gstreamer010) | 1600 | add_package_target() |
1601 | add_custom_command( | 1601 | add_dependencies(package ${VIEWER_BINARY_NAME}) |
1602 | TARGET package POST_BUILD | ||
1603 | COMMAND ${PYTHON_EXECUTABLE} | ||
1604 | ARGS | ||
1605 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | ||
1606 | --grid=${GRID} | ||
1607 | --configuration=${CMAKE_CFG_INTDIR} | ||
1608 | --channel=${VIEWER_CHANNEL} | ||
1609 | --login_channel=${VIEWER_LOGIN_CHANNEL} | ||
1610 | --source=${CMAKE_CURRENT_SOURCE_DIR} | ||
1611 | --artwork=${ARTWORK_DIR} | ||
1612 | --build=${CMAKE_CURRENT_BINARY_DIR} | ||
1613 | --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app | ||
1614 | --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched | ||
1615 | DEPENDS | ||
1616 | ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py | ||
1617 | ) | ||
1618 | 1602 | ||
1619 | endif (PACKAGE) | ||
1620 | endif (DARWIN) | 1603 | endif (DARWIN) |
1621 | 1604 | ||
1622 | if (INSTALL) | 1605 | if (INSTALL) |
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings deleted file mode 100644 index 3027772..0000000 --- a/linden/indra/newview/English.lproj/InfoPlist.strings +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | /* Localized versions of Info.plist keys */ | ||
2 | |||
3 | CFBundleName = "meta-impy"; | ||
4 | CFBundleShortVersionString = "meta-impy Experimental 2011.04.02"; | ||
5 | CFBundleGetInfoString = "meta-impy Experimental 2011.04.02"; | ||
6 | |||
diff --git a/linden/indra/newview/app_settings/logcontrol.xml b/linden/indra/newview/app_settings/logcontrol.xml index 027afaf..a94bc1b 100644 --- a/linden/indra/newview/app_settings/logcontrol.xml +++ b/linden/indra/newview/app_settings/logcontrol.xml | |||
@@ -90,7 +90,12 @@ | |||
90 | <!--<string>TextureCache</string>--> | 90 | <!--<string>TextureCache</string>--> |
91 | <!--<string>Throttle</string>--> | 91 | <!--<string>Throttle</string>--> |
92 | <!--<string>Voice</string>--> | 92 | <!--<string>Voice</string>--> |
93 | <!--<string>VoiceCaps</string>--> | ||
94 | <!--<string>VoiceSession</string>--> | ||
95 | <!--<string>VoiceDaemon</string>--> | ||
96 | <!--<string>VoiceDevice</string>--> | ||
93 | <!--<string>VivoxProtocolParser</string>--> | 97 | <!--<string>VivoxProtocolParser</string>--> |
98 | <!--<string>VivoxProtocolParserTag</string>--> | ||
94 | <!--<string>Wearable</string>--> | 99 | <!--<string>Wearable</string>--> |
95 | <!--<string>WindLight</string>--> | 100 | <!--<string>WindLight</string>--> |
96 | 101 | ||
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 97c4c5c..cb026ef 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -39,16 +39,27 @@ | |||
39 | <key>Value</key> | 39 | <key>Value</key> |
40 | <integer>0</integer> | 40 | <integer>0</integer> |
41 | </map> | 41 | </map> |
42 | <key>VoiceModule</key> | 42 | <key>VoiceModuleMumble</key> |
43 | <map> | 43 | <map> |
44 | <key>Comment</key> | 44 | <key>Comment</key> |
45 | <string>Executable file that runs voice. Platform specific parts (like .exe on windows) are added automatically.</string> | 45 | <string>Executable file that runs mumble voice . Platform specific parts (like .exe on windows) are added automatically, paths are stripped off if present. Defaults to mumble if empty</string> |
46 | <key>Persist</key> | 46 | <key>Persist</key> |
47 | <integer>1</integer> | 47 | <integer>1</integer> |
48 | <key>Type</key> | 48 | <key>Type</key> |
49 | <string>String</string> | 49 | <string>String</string> |
50 | <key>Value</key> | 50 | <key>Value</key> |
51 | <string>SLVoice</string> | 51 | <string /> |
52 | </map> | ||
53 | <key>VoiceModuleVivox</key> | ||
54 | <map> | ||
55 | <key>Comment</key> | ||
56 | <string>Executable file that runs vivox voice. Platform specific parts (like .exe on windows) are added automatically, paths are stripped off if present. Defaults to SLVoice if empty.</string> | ||
57 | <key>Persist</key> | ||
58 | <integer>1</integer> | ||
59 | <key>Type</key> | ||
60 | <string>String</string> | ||
61 | <key>Value</key> | ||
62 | <string /> | ||
52 | </map> | 63 | </map> |
53 | 64 | ||
54 | <!-- end Aurora-specific settings --> | 65 | <!-- end Aurora-specific settings --> |
@@ -204,7 +215,7 @@ | |||
204 | <key>AutoCloseOOC</key> | 215 | <key>AutoCloseOOC</key> |
205 | <map> | 216 | <map> |
206 | <key>Comment</key> | 217 | <key>Comment</key> |
207 | <string>Auto-close OOC chat (i.e. add \"))\" if not found and \"((\" was used)</string> | 218 | <string>Auto-close OOC chat (i.e. add '"))'" if not found and '"(('" was used)</string> |
208 | <key>Persist</key> | 219 | <key>Persist</key> |
209 | <integer>1</integer> | 220 | <integer>1</integer> |
210 | <key>Type</key> | 221 | <key>Type</key> |
@@ -499,7 +510,7 @@ | |||
499 | <key>OmitResidentAsLastName</key> | 510 | <key>OmitResidentAsLastName</key> |
500 | <map> | 511 | <map> |
501 | <key>Comment</key> | 512 | <key>Comment</key> |
502 | <string>Do not display "Resident" as the last name for new residents in their legacy name</string> | 513 | <string>Do not display "Resident" as the last name for new residents in their legacy name</string> |
503 | <key>Persist</key> | 514 | <key>Persist</key> |
504 | <integer>1</integer> | 515 | <integer>1</integer> |
505 | <key>Type</key> | 516 | <key>Type</key> |
@@ -679,7 +690,7 @@ | |||
679 | <key>GoAction</key> | 690 | <key>GoAction</key> |
680 | <map> | 691 | <map> |
681 | <key>Comment</key> | 692 | <key>Comment</key> |
682 | <string>How to move for "Go Here" or double-click move. Either "Autopilot" or "Teleport".</string> | 693 | <string>How to move for "Go Here" or double-click move. Either "Autopilot" or "Teleport".</string> |
683 | <key>Persist</key> | 694 | <key>Persist</key> |
684 | <integer>1</integer> | 695 | <integer>1</integer> |
685 | <key>Type</key> | 696 | <key>Type</key> |
@@ -1033,6 +1044,17 @@ | |||
1033 | <key>Value</key> | 1044 | <key>Value</key> |
1034 | <integer>1</integer> | 1045 | <integer>1</integer> |
1035 | </map> | 1046 | </map> |
1047 | <key>ShowTimestamps</key> | ||
1048 | <map> | ||
1049 | <key>Comment</key> | ||
1050 | <string>Show timestamps in chat and IMs</string> | ||
1051 | <key>Persist</key> | ||
1052 | <integer>1</integer> | ||
1053 | <key>Type</key> | ||
1054 | <string>Boolean</string> | ||
1055 | <key>Value</key> | ||
1056 | <integer>1</integer> | ||
1057 | </map> | ||
1036 | <key>SpeedRez</key> | 1058 | <key>SpeedRez</key> |
1037 | <map> | 1059 | <map> |
1038 | <key>Comment</key> | 1060 | <key>Comment</key> |
@@ -1067,7 +1089,7 @@ | |||
1067 | <integer>1</integer> | 1089 | <integer>1</integer> |
1068 | </map> | 1090 | </map> |
1069 | <key>RenderWaterVoidCulling</key> | 1091 | <key>RenderWaterVoidCulling</key> |
1070 | <map> | 1092 | <map> |
1071 | <key>Comment</key> | 1093 | <key>Comment</key> |
1072 | <string>Cull void water objects when off-screen.</string> | 1094 | <string>Cull void water objects when off-screen.</string> |
1073 | <key>Persist</key> | 1095 | <key>Persist</key> |
@@ -1089,16 +1111,16 @@ | |||
1089 | <integer>0</integer> | 1111 | <integer>0</integer> |
1090 | </map> | 1112 | </map> |
1091 | <key>ResetFocusOnSelfClick</key> | 1113 | <key>ResetFocusOnSelfClick</key> |
1092 | <map> | 1114 | <map> |
1093 | <key>Comment</key> | 1115 | <key>Comment</key> |
1094 | <string>Setting this to TRUE resets your camera when you left-click your avatar</string> | 1116 | <string>Setting this to TRUE resets your camera when you left-click your avatar</string> |
1095 | <key>Persist</key> | 1117 | <key>Persist</key> |
1096 | <integer>1</integer> | 1118 | <integer>1</integer> |
1097 | <key>Type</key> | 1119 | <key>Type</key> |
1098 | <string>Boolean</string> | 1120 | <string>Boolean</string> |
1099 | <key>Value</key> | 1121 | <key>Value</key> |
1100 | <integer>1</integer> | 1122 | <integer>1</integer> |
1101 | </map> | 1123 | </map> |
1102 | <key>RezWithLandGroup</key> | 1124 | <key>RezWithLandGroup</key> |
1103 | <map> | 1125 | <map> |
1104 | <key>Comment</key> | 1126 | <key>Comment</key> |
@@ -1542,7 +1564,7 @@ | |||
1542 | </map> | 1564 | </map> |
1543 | 1565 | ||
1544 | <!-- Begin: OpenRegionInfo --> | 1566 | <!-- Begin: OpenRegionInfo --> |
1545 | 1567 | ||
1546 | <key>ToggleTeenMode</key> | 1568 | <key>ToggleTeenMode</key> |
1547 | <map> | 1569 | <map> |
1548 | <key>Comment</key> | 1570 | <key>Comment</key> |
@@ -1554,7 +1576,7 @@ | |||
1554 | <key>Value</key> | 1576 | <key>Value</key> |
1555 | <integer>1</integer> | 1577 | <integer>1</integer> |
1556 | </map> | 1578 | </map> |
1557 | 1579 | ||
1558 | <!-- Begin: AO--> | 1580 | <!-- Begin: AO--> |
1559 | 1581 | ||
1560 | <key>AOEnabled</key> | 1582 | <key>AOEnabled</key> |
@@ -1805,7 +1827,7 @@ | |||
1805 | <key>Value</key> | 1827 | <key>Value</key> |
1806 | <integer>1</integer> | 1828 | <integer>1</integer> |
1807 | </map> | 1829 | </map> |
1808 | 1830 | ||
1809 | <key>DownloadClientTags</key> | 1831 | <key>DownloadClientTags</key> |
1810 | <map> | 1832 | <map> |
1811 | <key>Comment</key> | 1833 | <key>Comment</key> |
@@ -2160,9 +2182,9 @@ | |||
2160 | <key>Value</key> | 2182 | <key>Value</key> |
2161 | <string>English (United States of America)</string> | 2183 | <string>English (United States of America)</string> |
2162 | </map> | 2184 | </map> |
2163 | 2185 | ||
2164 | <!-- End: Spellcheck & Translation --> | 2186 | <!-- End: Spellcheck & Translation --> |
2165 | 2187 | ||
2166 | <!-- Begin: RLVa --> | 2188 | <!-- Begin: RLVa --> |
2167 | 2189 | ||
2168 | <key>RestrainedLove</key> | 2190 | <key>RestrainedLove</key> |
@@ -2234,7 +2256,7 @@ | |||
2234 | <key>RLVaEnableWear</key> | 2256 | <key>RLVaEnableWear</key> |
2235 | <map> | 2257 | <map> |
2236 | <key>Comment</key> | 2258 | <key>Comment</key> |
2237 | <string>Enables the "Wear" option on the inventory item context menu for attachments</string> | 2259 | <string>Enables the "Wear" option on the inventory item context menu for attachments</string> |
2238 | <key>Persist</key> | 2260 | <key>Persist</key> |
2239 | <integer>1</integer> | 2261 | <integer>1</integer> |
2240 | <key>Type</key> | 2262 | <key>Type</key> |
@@ -2256,7 +2278,7 @@ | |||
2256 | <key>RLVaHideLockedLayers</key> | 2278 | <key>RLVaHideLockedLayers</key> |
2257 | <map> | 2279 | <map> |
2258 | <key>Comment</key> | 2280 | <key>Comment</key> |
2259 | <string>Hides "remove outfit" restricted worn clothing layers from @getoufit</string> | 2281 | <string>Hides "remove outfit" restricted worn clothing layers from @getoufit</string> |
2260 | <key>Persist</key> | 2282 | <key>Persist</key> |
2261 | <integer>1</integer> | 2283 | <integer>1</integer> |
2262 | <key>Type</key> | 2284 | <key>Type</key> |
@@ -2289,7 +2311,7 @@ | |||
2289 | <key>RLVaShowNameTags</key> | 2311 | <key>RLVaShowNameTags</key> |
2290 | <map> | 2312 | <map> |
2291 | <key>Comment</key> | 2313 | <key>Comment</key> |
2292 | <string>Display of names above avatars is subject to the general "Show Names" setting when @shownames=n restricted</string> | 2314 | <string>Display of names above avatars is subject to the general "Show Names" setting when @shownames=n restricted</string> |
2293 | <key>Persist</key> | 2315 | <key>Persist</key> |
2294 | <integer>1</integer> | 2316 | <integer>1</integer> |
2295 | <key>Type</key> | 2317 | <key>Type</key> |
@@ -2343,7 +2365,7 @@ | |||
2343 | </map> | 2365 | </map> |
2344 | 2366 | ||
2345 | <!-- End: RLVa --> | 2367 | <!-- End: RLVa --> |
2346 | 2368 | ||
2347 | <!-- Begin: socks5 --> | 2369 | <!-- Begin: socks5 --> |
2348 | 2370 | ||
2349 | <key>Socks5ProxyEnabled</key> | 2371 | <key>Socks5ProxyEnabled</key> |
@@ -2554,11 +2576,11 @@ | |||
2554 | <key>Value</key> | 2576 | <key>Value</key> |
2555 | <integer>-8888888</integer> | 2577 | <integer>-8888888</integer> |
2556 | </map> | 2578 | </map> |
2557 | 2579 | ||
2558 | <!-- End: full radar (Advanced menu) --> | 2580 | <!-- End: full radar (Advanced menu) --> |
2559 | 2581 | ||
2560 | <!-- END IMPRUDENCE-SPECIFIC SETTINGS --> | 2582 | <!-- END IMPRUDENCE-SPECIFIC SETTINGS --> |
2561 | 2583 | ||
2562 | <key>AFKTimeout</key> | 2584 | <key>AFKTimeout</key> |
2563 | <map> | 2585 | <map> |
2564 | <key>Comment</key> | 2586 | <key>Comment</key> |
@@ -3014,7 +3036,7 @@ | |||
3014 | <key>AutomaticFly</key> | 3036 | <key>AutomaticFly</key> |
3015 | <map> | 3037 | <map> |
3016 | <key>Comment</key> | 3038 | <key>Comment</key> |
3017 | <string>Fly by holding jump key or using "Fly" command (FALSE = fly by using "Fly" command only)</string> | 3039 | <string>Fly by holding jump key or using "Fly" command (FALSE = fly by using "Fly" command only)</string> |
3018 | <key>Persist</key> | 3040 | <key>Persist</key> |
3019 | <integer>1</integer> | 3041 | <integer>1</integer> |
3020 | <key>Type</key> | 3042 | <key>Type</key> |
@@ -3973,17 +3995,6 @@ | |||
3973 | <key>Value</key> | 3995 | <key>Value</key> |
3974 | <real>20.0</real> | 3996 | <real>20.0</real> |
3975 | </map> | 3997 | </map> |
3976 | <key>ChatShowTimestamps</key> | ||
3977 | <map> | ||
3978 | <key>Comment</key> | ||
3979 | <string>Show timestamps in chat</string> | ||
3980 | <key>Persist</key> | ||
3981 | <integer>1</integer> | ||
3982 | <key>Type</key> | ||
3983 | <string>Boolean</string> | ||
3984 | <key>Value</key> | ||
3985 | <integer>1</integer> | ||
3986 | </map> | ||
3987 | <key>ChatVisible</key> | 3998 | <key>ChatVisible</key> |
3988 | <map> | 3999 | <map> |
3989 | <key>Comment</key> | 4000 | <key>Comment</key> |
@@ -5655,7 +5666,7 @@ | |||
5655 | <key>DoubleClickAction</key> | 5666 | <key>DoubleClickAction</key> |
5656 | <map> | 5667 | <map> |
5657 | <key>Comment</key> | 5668 | <key>Comment</key> |
5658 | <string>What to do when you double-click. Either "None" or "Go".</string> | 5669 | <string>What to do when you double-click. Either "None" or "Go".</string> |
5659 | <key>Persist</key> | 5670 | <key>Persist</key> |
5660 | <integer>1</integer> | 5671 | <integer>1</integer> |
5661 | <key>Type</key> | 5672 | <key>Type</key> |
@@ -5891,7 +5902,7 @@ | |||
5891 | <key>FindLandType</key> | 5902 | <key>FindLandType</key> |
5892 | <map> | 5903 | <map> |
5893 | <key>Comment</key> | 5904 | <key>Comment</key> |
5894 | <string>Controls which type of land you are searching for in Find Land interface ("All", "Auction", "For Sale")</string> | 5905 | <string>Controls which type of land you are searching for in Find Land interface ("All", "Auction", "For Sale")</string> |
5895 | <key>Persist</key> | 5906 | <key>Persist</key> |
5896 | <integer>1</integer> | 5907 | <integer>1</integer> |
5897 | <key>Type</key> | 5908 | <key>Type</key> |
@@ -7476,17 +7487,6 @@ | |||
7476 | <key>Value</key> | 7487 | <key>Value</key> |
7477 | <integer>0</integer> | 7488 | <integer>0</integer> |
7478 | </map> | 7489 | </map> |
7479 | <key>IMShowTimestamps</key> | ||
7480 | <map> | ||
7481 | <key>Comment</key> | ||
7482 | <string>Show timestamps in IM</string> | ||
7483 | <key>Persist</key> | ||
7484 | <integer>1</integer> | ||
7485 | <key>Type</key> | ||
7486 | <string>Boolean</string> | ||
7487 | <key>Value</key> | ||
7488 | <integer>1</integer> | ||
7489 | </map> | ||
7490 | <key>IgnorePixelDepth</key> | 7490 | <key>IgnorePixelDepth</key> |
7491 | <map> | 7491 | <map> |
7492 | <key>Comment</key> | 7492 | <key>Comment</key> |
@@ -7858,7 +7858,7 @@ | |||
7858 | <key>LastFindPanel</key> | 7858 | <key>LastFindPanel</key> |
7859 | <map> | 7859 | <map> |
7860 | <key>Comment</key> | 7860 | <key>Comment</key> |
7861 | <string>Controls which find operation appears by default when clicking "Find" button </string> | 7861 | <string>Controls which find operation appears by default when clicking "Find" button </string> |
7862 | <key>Persist</key> | 7862 | <key>Persist</key> |
7863 | <integer>1</integer> | 7863 | <integer>1</integer> |
7864 | <key>Type</key> | 7864 | <key>Type</key> |
@@ -8380,7 +8380,7 @@ | |||
8380 | <key>MediaOnAPrimUI</key> | 8380 | <key>MediaOnAPrimUI</key> |
8381 | <map> | 8381 | <map> |
8382 | <key>Comment</key> | 8382 | <key>Comment</key> |
8383 | <string>Whether or not to show the "link sharing" UI</string> | 8383 | <string>Whether or not to show the "link sharing" UI</string> |
8384 | <key>Persist</key> | 8384 | <key>Persist</key> |
8385 | <integer>1</integer> | 8385 | <integer>1</integer> |
8386 | <key>Type</key> | 8386 | <key>Type</key> |
@@ -8977,7 +8977,7 @@ | |||
8977 | <key>OverlayTitle</key> | 8977 | <key>OverlayTitle</key> |
8978 | <map> | 8978 | <map> |
8979 | <key>Comment</key> | 8979 | <key>Comment</key> |
8980 | <string>Controls watermark text message displayed on screen when "ShowOverlayTitle" is enabled (one word, underscores become spaces)</string> | 8980 | <string>Controls watermark text message displayed on screen when "ShowOverlayTitle" is enabled (one word, underscores become spaces)</string> |
8981 | <key>Persist</key> | 8981 | <key>Persist</key> |
8982 | <integer>1</integer> | 8982 | <integer>1</integer> |
8983 | <key>Type</key> | 8983 | <key>Type</key> |
@@ -13331,7 +13331,7 @@ | |||
13331 | <key>UISndHealthReductionThreshold</key> | 13331 | <key>UISndHealthReductionThreshold</key> |
13332 | <map> | 13332 | <map> |
13333 | <key>Comment</key> | 13333 | <key>Comment</key> |
13334 | <string>Amount of health reduction required to trigger "pain" sound</string> | 13334 | <string>Amount of health reduction required to trigger "pain" sound</string> |
13335 | <key>Persist</key> | 13335 | <key>Persist</key> |
13336 | <integer>1</integer> | 13336 | <integer>1</integer> |
13337 | <key>Type</key> | 13337 | <key>Type</key> |
@@ -13364,7 +13364,7 @@ | |||
13364 | <key>UISndMoneyChangeThreshold</key> | 13364 | <key>UISndMoneyChangeThreshold</key> |
13365 | <map> | 13365 | <map> |
13366 | <key>Comment</key> | 13366 | <key>Comment</key> |
13367 | <string>Amount of change in L$ balance required to trigger "money" sound</string> | 13367 | <string>Amount of change in L$ balance required to trigger "money" sound</string> |
13368 | <key>Persist</key> | 13368 | <key>Persist</key> |
13369 | <integer>1</integer> | 13369 | <integer>1</integer> |
13370 | <key>Type</key> | 13370 | <key>Type</key> |
@@ -13661,7 +13661,7 @@ | |||
13661 | <key>UseDebugMenus</key> | 13661 | <key>UseDebugMenus</key> |
13662 | <map> | 13662 | <map> |
13663 | <key>Comment</key> | 13663 | <key>Comment</key> |
13664 | <string>Turns on "Debug" menu</string> | 13664 | <string>Turns on "Debug" menu</string> |
13665 | <key>Persist</key> | 13665 | <key>Persist</key> |
13666 | <integer>1</integer> | 13666 | <integer>1</integer> |
13667 | <key>Type</key> | 13667 | <key>Type</key> |
diff --git a/linden/indra/newview/app_settings/viewerversion.xml b/linden/indra/newview/app_settings/viewerversion.xml deleted file mode 100644 index 051f2a3..0000000 --- a/linden/indra/newview/app_settings/viewerversion.xml +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | <!-- | ||
2 | Set the version for Imprudence here! | ||
3 | |||
4 | NOTE: llcommon/llviewerversion.h still | ||
5 | contains the version for the LL viewer. | ||
6 | |||
7 | OS-specific version resources still | ||
8 | need to be changed manually - MC | ||
9 | --> | ||
10 | |||
11 | <viewer_version> | ||
12 | |||
13 | <!--int--> | ||
14 | <viewer version_major="1" /> | ||
15 | |||
16 | <!--int--> | ||
17 | <viewer version_minor="4" /> | ||
18 | |||
19 | <!--int--> | ||
20 | <viewer version_patch="0" /> | ||
21 | |||
22 | <!--string--> | ||
23 | <viewer version_test="Experimental 2011.04.19" /> | ||
24 | |||
25 | </viewer_version> | ||
diff --git a/linden/indra/newview/floaterlocalassetbrowse.cpp b/linden/indra/newview/floaterlocalassetbrowse.cpp index 8ea13cc..8633ac4 100644 --- a/linden/indra/newview/floaterlocalassetbrowse.cpp +++ b/linden/indra/newview/floaterlocalassetbrowse.cpp | |||
@@ -943,7 +943,7 @@ void FloaterLocalAssetBrowser::UpdateRightSide() | |||
943 | sLFInstance->mLinkTxt->setText( unit->getLinkStatus() ); | 943 | sLFInstance->mLinkTxt->setText( unit->getLinkStatus() ); |
944 | sLFInstance->mTypeComboBox->selectNthItem( unit->getType() ); | 944 | sLFInstance->mTypeComboBox->selectNthItem( unit->getType() ); |
945 | 945 | ||
946 | sLFInstance->mTextureView->setEnabled(true); | 946 | sLFInstance->mTextureView->setEnabled(false); |
947 | sLFInstance->mUpdateChkBox->setEnabled(true); | 947 | sLFInstance->mUpdateChkBox->setEnabled(true); |
948 | sLFInstance->mTypeComboBox->setEnabled(true); | 948 | sLFInstance->mTypeComboBox->setEnabled(true); |
949 | } | 949 | } |
diff --git a/linden/indra/newview/hippogridmanager.cpp b/linden/indra/newview/hippogridmanager.cpp index 78539f8..4c46d3e 100644 --- a/linden/indra/newview/hippogridmanager.cpp +++ b/linden/indra/newview/hippogridmanager.cpp | |||
@@ -89,7 +89,7 @@ HippoGridInfo::HippoGridInfo(const std::string& gridNick) : | |||
89 | mPasswordAvatar(LLStringUtil::null), | 89 | mPasswordAvatar(LLStringUtil::null), |
90 | mXmlState(XML_VOID), | 90 | mXmlState(XML_VOID), |
91 | mVoiceConnector("SLVoice"), | 91 | mVoiceConnector("SLVoice"), |
92 | mRenderCompat(true), | 92 | mRenderCompat(false), |
93 | mMaxAgentGroups(-1), | 93 | mMaxAgentGroups(-1), |
94 | mCurrencySymbol("OS$"), | 94 | mCurrencySymbol("OS$"), |
95 | mRealCurrencySymbol("US$"), | 95 | mRealCurrencySymbol("US$"), |
diff --git a/linden/indra/newview/impprefsfonts.cpp b/linden/indra/newview/impprefsfonts.cpp index a4dcd34..505761b 100644 --- a/linden/indra/newview/impprefsfonts.cpp +++ b/linden/indra/newview/impprefsfonts.cpp | |||
@@ -51,6 +51,10 @@ ImpPrefsFonts::~ImpPrefsFonts() | |||
51 | 51 | ||
52 | BOOL ImpPrefsFonts::postBuild() | 52 | BOOL ImpPrefsFonts::postBuild() |
53 | { | 53 | { |
54 | childSetValue("ui_scale_slider", gSavedSettings.getF32("UIScaleFactor")); | ||
55 | childSetValue("ui_auto_scale", gSavedSettings.getBOOL("UIAutoScale")); | ||
56 | childSetAction("reset_ui_size", onClickResetUISize, this); | ||
57 | |||
54 | refresh(); | 58 | refresh(); |
55 | return true; | 59 | return true; |
56 | } | 60 | } |
@@ -79,6 +83,9 @@ void ImpPrefsFonts::refresh() | |||
79 | 83 | ||
80 | void ImpPrefsFonts::apply() | 84 | void ImpPrefsFonts::apply() |
81 | { | 85 | { |
86 | gSavedSettings.setF32("UIScaleFactor", childGetValue("ui_scale_slider").asReal()); | ||
87 | gSavedSettings.setBOOL("UIAutoScale", childGetValue("ui_auto_scale")); | ||
88 | |||
82 | bool changed = false; | 89 | bool changed = false; |
83 | 90 | ||
84 | LLRadioGroup* fonts = getChild<LLRadioGroup>("fonts"); | 91 | LLRadioGroup* fonts = getChild<LLRadioGroup>("fonts"); |
@@ -126,3 +133,11 @@ void ImpPrefsFonts::apply() | |||
126 | void ImpPrefsFonts::cancel() | 133 | void ImpPrefsFonts::cancel() |
127 | { | 134 | { |
128 | } | 135 | } |
136 | |||
137 | // static | ||
138 | void ImpPrefsFonts::onClickResetUISize(void* user_data) | ||
139 | { | ||
140 | ImpPrefsFonts* self = (ImpPrefsFonts*)user_data; | ||
141 | F32 def = gSavedSettings.getControl("UIScaleFactor")->getDefault().asReal(); | ||
142 | self->childSetValue("ui_scale_slider", def); | ||
143 | } | ||
diff --git a/linden/indra/newview/impprefsfonts.h b/linden/indra/newview/impprefsfonts.h index 12aa0bb..0319261 100644 --- a/linden/indra/newview/impprefsfonts.h +++ b/linden/indra/newview/impprefsfonts.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /** | 1 | /** |
2 | * @file impprefsfonts.h | 2 | * @file impprefsfonts.h |
3 | * @brief Font preferences panel | 3 | * @brief UI and font preferences panel |
4 | * | 4 | * |
5 | * Copyright (c) 2010, Jacek Antonelli | 5 | * Copyright (c) 2010, Jacek Antonelli |
6 | * | 6 | * |
@@ -40,6 +40,9 @@ public: | |||
40 | void refresh(); | 40 | void refresh(); |
41 | void apply(); | 41 | void apply(); |
42 | void cancel(); | 42 | void cancel(); |
43 | |||
44 | private: | ||
45 | static void onClickResetUISize(void*); | ||
43 | }; | 46 | }; |
44 | 47 | ||
45 | #endif // IMP_PREFSFONTS_H | 48 | #endif // IMP_PREFSFONTS_H |
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss index 398c26d..aa31c3b 100644 --- a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss +++ b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss | |||
@@ -9,11 +9,11 @@ | |||
9 | ; These will change | 9 | ; These will change |
10 | AppId={{1B3E68BC-13EB-4277-9439-CB5FF9259460} | 10 | AppId={{1B3E68BC-13EB-4277-9439-CB5FF9259460} |
11 | AppName=Imprudence Viewer Experimental | 11 | AppName=Imprudence Viewer Experimental |
12 | AppVerName=Imprudence Viewer 1.4.0 Experimental 2011.03.20 | 12 | AppVerName=Imprudence Viewer 1.4.0 Experimental 2011.04.19 |
13 | DefaultDirName={pf}\ImprudenceExperimental | 13 | DefaultDirName={pf}\ImprudenceExperimental |
14 | DefaultGroupName=Imprudence Viewer Experimental | 14 | DefaultGroupName=Imprudence Viewer Experimental |
15 | VersionInfoProductName=Imprudence Viewer Experimental | 15 | VersionInfoProductName=Imprudence Viewer Experimental |
16 | OutputBaseFilename=Imprudence-1.4.0-Experimental-2011.03.20-Setup | 16 | OutputBaseFilename=Imprudence-1.4.0-Experimental-2011.04.19-Setup |
17 | VersionInfoVersion=1.4.0 | 17 | VersionInfoVersion=1.4.0 |
18 | VersionInfoTextVersion=1.4.0 | 18 | VersionInfoTextVersion=1.4.0 |
19 | VersionInfoProductVersion=1.4.0 | 19 | VersionInfoProductVersion=1.4.0 |
diff --git a/linden/indra/newview/kowopenregionsettings.cpp b/linden/indra/newview/kowopenregionsettings.cpp index 0c4bb38..6257147 100644 --- a/linden/indra/newview/kowopenregionsettings.cpp +++ b/linden/indra/newview/kowopenregionsettings.cpp | |||
@@ -36,7 +36,6 @@ | |||
36 | #include "llviewerobject.h" | 36 | #include "llviewerobject.h" |
37 | #include "llfloaterregioninfo.h" | 37 | #include "llfloaterregioninfo.h" |
38 | #include "llfloaterworldmap.h" | 38 | #include "llfloaterworldmap.h" |
39 | #include "llvoiceclient.h" | ||
40 | #include "viewertime.h" | 39 | #include "viewertime.h" |
41 | 40 | ||
42 | //DEBUG includes | 41 | //DEBUG includes |
@@ -205,12 +204,7 @@ class OpenRegionInfoUpdate : public LLHTTPNode | |||
205 | { | 204 | { |
206 | gHippoLimits->mAllowParcelWindLight = body["AllowParcelWindLight"].asInteger() == 1; | 205 | gHippoLimits->mAllowParcelWindLight = body["AllowParcelWindLight"].asInteger() == 1; |
207 | } | 206 | } |
208 | if ( body.has("Voice") ) | 207 | |
209 | { | ||
210 | gSavedSettings.setString("VoiceModule", body["Voice"].asString()); | ||
211 | //gVoiceClient->close(); | ||
212 | //gVoiceClient->start(); | ||
213 | } | ||
214 | 208 | ||
215 | if (limitschanged) | 209 | if (limitschanged) |
216 | gFloaterTools->updateToolsSizeLimits(); | 210 | gFloaterTools->updateToolsSizeLimits(); |
diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh index 08ae537..d4eaf33 100755 --- a/linden/indra/newview/linux_tools/wrapper.sh +++ b/linden/indra/newview/linux_tools/wrapper.sh | |||
@@ -138,16 +138,16 @@ if [ -n "$LL_RUN_ERR" ]; then | |||
138 | fi | 138 | fi |
139 | fi | 139 | fi |
140 | 140 | ||
141 | LOGS_PATH="${HOME}/.imprudence/logs" | 141 | LOGS_PATH="${HOME}/.meta-impy/logs" |
142 | if [ -f "${LOGS_PATH}/stack_trace.log" ]; then | 142 | if [ -f "${LOGS_PATH}/stack_trace.log" ]; then |
143 | LOG_PACKAGE_NAME="MAIL-THIS-CRASHLOG-PLEASE.$(date +%y%m%d%H%M).tar.bz2" | 143 | LOG_PACKAGE_NAME="MAIL-THIS-CRASHLOG-PLEASE.$(date +%y%m%d%H%M).tar.bz2" |
144 | cp "${LOGS_PATH}/stack_trace.log" stack_trace.log | 144 | cp "${LOGS_PATH}/stack_trace.log" stack_trace.log |
145 | cp "${LOGS_PATH}/Imprudence.log" Imprudence.log | 145 | cp "${LOGS_PATH}/meta-impy.log" meta-impy.log |
146 | tar --numeric-owner -cjf ${LOG_PACKAGE_NAME} \ | 146 | tar --numeric-owner -cjf ${LOG_PACKAGE_NAME} \ |
147 | stack_trace.log \ | 147 | stack_trace.log \ |
148 | Imprudence.log | 148 | meta-impy.log |
149 | rm stack_trace.log | 149 | rm stack_trace.log |
150 | rm Imprudence.log | 150 | rm meta-impy.log |
151 | echo "You find a crash log package to mail to Imprudence here:" | 151 | echo "You find a crash log package to mail to Imprudence here:" |
152 | echo "${RUN_PATH}/${LOG_PACKAGE_NAME}" | 152 | echo "${RUN_PATH}/${LOG_PACKAGE_NAME}" |
153 | echo "See where to send: http://wiki.kokuaviewer.org/wiki/Imprudence:Debug_Logs#Where_to_Send_Them" | 153 | echo "See where to send: http://wiki.kokuaviewer.org/wiki/Imprudence:Debug_Logs#Where_to_Send_Them" |
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp index 09b4eda..a026391 100644 --- a/linden/indra/newview/llappviewer.cpp +++ b/linden/indra/newview/llappviewer.cpp | |||
@@ -154,7 +154,7 @@ | |||
154 | #include "llflexibleobject.h" | 154 | #include "llflexibleobject.h" |
155 | #include "llvosurfacepatch.h" | 155 | #include "llvosurfacepatch.h" |
156 | #include "llslider.h" | 156 | #include "llslider.h" |
157 | #include "viewerversion.h" | 157 | #include "viewerinfo.h" |
158 | 158 | ||
159 | // includes for idle() idleShutdown() | 159 | // includes for idle() idleShutdown() |
160 | #include "floaterao.h" | 160 | #include "floaterao.h" |
@@ -602,7 +602,7 @@ bool LLAppViewer::init() | |||
602 | 602 | ||
603 | // Need to do this initialization before we do anything else, since anything | 603 | // Need to do this initialization before we do anything else, since anything |
604 | // that touches files should really go through the lldir API | 604 | // that touches files should really go through the lldir API |
605 | gDirUtilp->initAppDirs(ViewerVersion::getImpViewerName()); | 605 | gDirUtilp->initAppDirs(ViewerInfo::viewerName()); |
606 | // set skin search path to default, will be overridden later | 606 | // set skin search path to default, will be overridden later |
607 | // this allows simple skinned file lookups to work | 607 | // this allows simple skinned file lookups to work |
608 | gDirUtilp->setSkinFolder("default"); | 608 | gDirUtilp->setSkinFolder("default"); |
@@ -624,15 +624,8 @@ bool LLAppViewer::init() | |||
624 | writeSystemInfo(); | 624 | writeSystemInfo(); |
625 | 625 | ||
626 | 626 | ||
627 | // Build a string representing the current version number. | 627 | // String representing the current version name/number. |
628 | gCurrentVersion = llformat( | 628 | gCurrentVersion = ViewerInfo::terseInfo(); |
629 | "%s %d.%d.%d.%d", | ||
630 | gSavedSettings.getString("VersionChannelName").c_str(), | ||
631 | ViewerVersion::getImpMajorVersion(), | ||
632 | ViewerVersion::getImpMinorVersion(), | ||
633 | ViewerVersion::getImpPatchVersion(), | ||
634 | 0 // our 'build number' | ||
635 | ); | ||
636 | 629 | ||
637 | ////////////////////////////////////////////////////////////////////////////// | 630 | ////////////////////////////////////////////////////////////////////////////// |
638 | ////////////////////////////////////////////////////////////////////////////// | 631 | ////////////////////////////////////////////////////////////////////////////// |
@@ -1800,9 +1793,6 @@ std::string LLAppViewer::getSettingsFilename(const std::string& location_key, | |||
1800 | 1793 | ||
1801 | bool LLAppViewer::initConfiguration() | 1794 | bool LLAppViewer::initConfiguration() |
1802 | { | 1795 | { |
1803 | // init Imprudence version - MC | ||
1804 | ViewerVersion::initViewerVersion(); | ||
1805 | |||
1806 | //Set up internal pointers | 1796 | //Set up internal pointers |
1807 | gSettings[sGlobalSettingsName] = &gSavedSettings; | 1797 | gSettings[sGlobalSettingsName] = &gSavedSettings; |
1808 | gSettings[sPerAccountSettingsName] = &gSavedPerAccountSettings; | 1798 | gSettings[sPerAccountSettingsName] = &gSavedPerAccountSettings; |
@@ -1848,9 +1838,9 @@ bool LLAppViewer::initConfiguration() | |||
1848 | // - set procedural settings | 1838 | // - set procedural settings |
1849 | gSavedSettings.setString("ClientSettingsFile", | 1839 | gSavedSettings.setString("ClientSettingsFile", |
1850 | // gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("Default", "Global"))); | 1840 | // gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("Default", "Global"))); |
1851 | gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_meta-impy_experimental.xml")); | 1841 | gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_meta-impy.xml")); |
1852 | 1842 | ||
1853 | gSavedSettings.setString("VersionChannelName", ViewerVersion::getImpViewerName()); | 1843 | gSavedSettings.setString("VersionChannelName", ViewerInfo::nameWithVariant()); |
1854 | 1844 | ||
1855 | //*FIX:Mani - Set default to disabling watchdog mainloop | 1845 | //*FIX:Mani - Set default to disabling watchdog mainloop |
1856 | // timeout for mac and linux. There is no call stack info | 1846 | // timeout for mac and linux. There is no call stack info |
@@ -2096,7 +2086,7 @@ bool LLAppViewer::initConfiguration() | |||
2096 | mYieldTime = gSavedSettings.getS32("YieldTime"); | 2086 | mYieldTime = gSavedSettings.getS32("YieldTime"); |
2097 | 2087 | ||
2098 | // XUI:translate | 2088 | // XUI:translate |
2099 | gSecondLife = ViewerVersion::getImpViewerName(); | 2089 | gSecondLife = ViewerInfo::viewerName(); |
2100 | 2090 | ||
2101 | // Read skin/branding settings if specified. | 2091 | // Read skin/branding settings if specified. |
2102 | //if (! gDirUtilp->getSkinDir().empty() ) | 2092 | //if (! gDirUtilp->getSkinDir().empty() ) |
@@ -2468,11 +2458,12 @@ void LLAppViewer::writeSystemInfo() | |||
2468 | { | 2458 | { |
2469 | gDebugInfo["SLLog"] = LLError::logFileName(); | 2459 | gDebugInfo["SLLog"] = LLError::logFileName(); |
2470 | 2460 | ||
2471 | gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName"); | 2461 | gDebugInfo["ClientInfo"]["Name"] = ViewerInfo::viewerName(); |
2472 | gDebugInfo["ClientInfo"]["MajorVersion"] = ViewerVersion::getImpMajorVersion(); | 2462 | gDebugInfo["ClientInfo"]["MajorVersion"] = ViewerInfo::versionMajor(); |
2473 | gDebugInfo["ClientInfo"]["MinorVersion"] = ViewerVersion::getImpMinorVersion(); | 2463 | gDebugInfo["ClientInfo"]["MinorVersion"] = ViewerInfo::versionMinor(); |
2474 | gDebugInfo["ClientInfo"]["PatchVersion"] = ViewerVersion::getImpPatchVersion(); | 2464 | gDebugInfo["ClientInfo"]["PatchVersion"] = ViewerInfo::versionPatch(); |
2475 | gDebugInfo["ClientInfo"]["BuildVersion"] = 0; | 2465 | gDebugInfo["ClientInfo"]["ReleaseVersion"] = ViewerInfo::versionRelease(); |
2466 | gDebugInfo["ClientInfo"]["ExtraVersion"] = ViewerInfo::versionExtra(); | ||
2476 | 2467 | ||
2477 | gDebugInfo["CAFilename"] = gDirUtilp->getCAFile(); | 2468 | gDebugInfo["CAFilename"] = gDirUtilp->getCAFile(); |
2478 | 2469 | ||
@@ -2557,11 +2548,12 @@ void LLAppViewer::handleViewerCrash() | |||
2557 | 2548 | ||
2558 | //We already do this in writeSystemInfo(), but we do it again here to make /sure/ we have a version | 2549 | //We already do this in writeSystemInfo(), but we do it again here to make /sure/ we have a version |
2559 | //to check against no matter what | 2550 | //to check against no matter what |
2560 | gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName"); | 2551 | gDebugInfo["ClientInfo"]["Name"] = ViewerInfo::viewerName(); |
2561 | gDebugInfo["ClientInfo"]["MajorVersion"] = ViewerVersion::getImpMajorVersion(); | 2552 | gDebugInfo["ClientInfo"]["MajorVersion"] = ViewerInfo::versionMajor(); |
2562 | gDebugInfo["ClientInfo"]["MinorVersion"] = ViewerVersion::getImpMinorVersion(); | 2553 | gDebugInfo["ClientInfo"]["MinorVersion"] = ViewerInfo::versionMinor(); |
2563 | gDebugInfo["ClientInfo"]["PatchVersion"] = ViewerVersion::getImpPatchVersion(); | 2554 | gDebugInfo["ClientInfo"]["PatchVersion"] = ViewerInfo::versionPatch(); |
2564 | gDebugInfo["ClientInfo"]["BuildVersion"] = 0; | 2555 | gDebugInfo["ClientInfo"]["ReleaseVersion"] = ViewerInfo::versionRelease(); |
2556 | gDebugInfo["ClientInfo"]["ExtraVersion"] = ViewerInfo::versionExtra(); | ||
2565 | 2557 | ||
2566 | LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | 2558 | LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); |
2567 | if ( parcel && parcel->getMusicURL()[0]) | 2559 | if ( parcel && parcel->getMusicURL()[0]) |
@@ -4341,11 +4333,12 @@ void LLAppViewer::handleLoginComplete() | |||
4341 | initMainloopTimeout("Mainloop Init"); | 4333 | initMainloopTimeout("Mainloop Init"); |
4342 | 4334 | ||
4343 | // Store some data to DebugInfo in case of a freeze. | 4335 | // Store some data to DebugInfo in case of a freeze. |
4344 | gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName"); | 4336 | gDebugInfo["ClientInfo"]["Name"] = ViewerInfo::viewerName(); |
4345 | gDebugInfo["ClientInfo"]["MajorVersion"] = ViewerVersion::getImpMajorVersion(); | 4337 | gDebugInfo["ClientInfo"]["MajorVersion"] = ViewerInfo::versionMajor(); |
4346 | gDebugInfo["ClientInfo"]["MinorVersion"] = ViewerVersion::getImpMinorVersion(); | 4338 | gDebugInfo["ClientInfo"]["MinorVersion"] = ViewerInfo::versionMinor(); |
4347 | gDebugInfo["ClientInfo"]["PatchVersion"] = ViewerVersion::getImpPatchVersion(); | 4339 | gDebugInfo["ClientInfo"]["PatchVersion"] = ViewerInfo::versionPatch(); |
4348 | gDebugInfo["ClientInfo"]["BuildVersion"] = 0; | 4340 | gDebugInfo["ClientInfo"]["ReleaseVersion"] = ViewerInfo::versionRelease(); |
4341 | gDebugInfo["ClientInfo"]["ExtraVersion"] = ViewerInfo::versionExtra(); | ||
4349 | 4342 | ||
4350 | gDebugInfo["SettingsFilename"] = gSavedSettings.getString("ClientSettingsFile"); | 4343 | gDebugInfo["SettingsFilename"] = gSavedSettings.getString("ClientSettingsFile"); |
4351 | gDebugInfo["CAFilename"] = gDirUtilp->getCAFile(); | 4344 | gDebugInfo["CAFilename"] = gDirUtilp->getCAFile(); |
diff --git a/linden/indra/newview/llappviewerlinux.cpp b/linden/indra/newview/llappviewerlinux.cpp index eb713b8..1f84a11 100644 --- a/linden/indra/newview/llappviewerlinux.cpp +++ b/linden/indra/newview/llappviewerlinux.cpp | |||
@@ -472,7 +472,7 @@ gboolean viewer_app_api_HotplugJoystick(ViewerAppAPI *obj, gchar *dummy, gboolea | |||
472 | return TRUE; // the invokation succeeded, even if the actual dispatch didn't. | 472 | return TRUE; // the invokation succeeded, even if the actual dispatch didn't. |
473 | 473 | ||
474 | // TODO: fire this by the spacenavi udev rule. | 474 | // TODO: fire this by the spacenavi udev rule. |
475 | // for testing plug in joystick while Imprudence is running and type in a | 475 | // for testing plug in joystick while viewer is running and type in a |
476 | // console: dbus-send --type=method_call --dest=com.secondlife.ViewerAppAPIService /com/secondlife/ViewerAppAPI com.secondlife.ViewerAppAPI.HotplugJoystick string:'dummy' | 476 | // console: dbus-send --type=method_call --dest=com.secondlife.ViewerAppAPIService /com/secondlife/ViewerAppAPI com.secondlife.ViewerAppAPI.HotplugJoystick string:'dummy' |
477 | } | 477 | } |
478 | 478 | ||
diff --git a/linden/indra/newview/lldrawpoolwlsky.cpp b/linden/indra/newview/lldrawpoolwlsky.cpp index 451d08e..46de496 100644 --- a/linden/indra/newview/lldrawpoolwlsky.cpp +++ b/linden/indra/newview/lldrawpoolwlsky.cpp | |||
@@ -276,18 +276,17 @@ void LLDrawPoolWLSky::render(S32 pass) | |||
276 | LLVector3 const & origin = LLViewerCamera::getInstance()->getOrigin(); | 276 | LLVector3 const & origin = LLViewerCamera::getInstance()->getOrigin(); |
277 | glPushMatrix(); | 277 | glPushMatrix(); |
278 | 278 | ||
279 | glTranslatef(origin.mV[0], origin.mV[1], origin.mV[2]); | 279 | glTranslatef(origin.mV[0], origin.mV[1], origin.mV[2]); |
280 | 280 | ||
281 | // *NOTE: have to bind a texture here since register combiners blending in | 281 | // *NOTE: have to bind a texture here since register combiners blending in |
282 | // renderStars() requires something to be bound and we might as well only | 282 | // renderStars() requires something to be bound and we might as well only |
283 | // bind the moon's texture once. | 283 | // bind the moon's texture once. |
284 | LLImageGL * tex = gSky.mVOSkyp->mFace[LLVOSky::FACE_MOON]->getTexture(); | 284 | LLImageGL * tex = gSky.mVOSkyp->mFace[LLVOSky::FACE_MOON]->getTexture(); |
285 | gGL.getTexUnit(0)->bind(tex); | 285 | gGL.getTexUnit(0)->bind(tex); |
286 | 286 | ||
287 | renderHeavenlyBodies(); | 287 | renderStars(); |
288 | 288 | ||
289 | renderStars(); | 289 | renderHeavenlyBodies(); |
290 | |||
291 | 290 | ||
292 | glPopMatrix(); | 291 | glPopMatrix(); |
293 | 292 | ||
diff --git a/linden/indra/newview/llface.cpp b/linden/indra/newview/llface.cpp index aa8cd15..cf681fa 100644 --- a/linden/indra/newview/llface.cpp +++ b/linden/indra/newview/llface.cpp | |||
@@ -159,6 +159,7 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp) | |||
159 | mIndicesIndex = 0; | 159 | mIndicesIndex = 0; |
160 | mTexture = NULL; | 160 | mTexture = NULL; |
161 | mTEOffset = -1; | 161 | mTEOffset = -1; |
162 | mIndexInTex = 0; | ||
162 | 163 | ||
163 | setDrawable(drawablep); | 164 | setDrawable(drawablep); |
164 | mVObjp = objp; | 165 | mVObjp = objp; |
diff --git a/linden/indra/newview/llface.h b/linden/indra/newview/llface.h index e31b93f..f870370 100644 --- a/linden/indra/newview/llface.h +++ b/linden/indra/newview/llface.h | |||
@@ -228,7 +228,7 @@ private: | |||
228 | U16 mGeomIndex; // index into draw pool | 228 | U16 mGeomIndex; // index into draw pool |
229 | U32 mIndicesCount; | 229 | U32 mIndicesCount; |
230 | U32 mIndicesIndex; // index into draw pool for indices (yeah, I know!) | 230 | U32 mIndicesIndex; // index into draw pool for indices (yeah, I know!) |
231 | S32 mIndexInTex ; | 231 | S32 mIndexInTex ; // index of this face in the texture's face list |
232 | 232 | ||
233 | //previous rebuild's geometry info | 233 | //previous rebuild's geometry info |
234 | U16 mLastGeomCount; | 234 | U16 mLastGeomCount; |
diff --git a/linden/indra/newview/llfloaterabout.cpp b/linden/indra/newview/llfloaterabout.cpp index a5d2c98..8878de5 100644 --- a/linden/indra/newview/llfloaterabout.cpp +++ b/linden/indra/newview/llfloaterabout.cpp | |||
@@ -59,7 +59,7 @@ | |||
59 | #include "llglheaders.h" | 59 | #include "llglheaders.h" |
60 | #include "llviewerwindow.h" | 60 | #include "llviewerwindow.h" |
61 | #include "llwindow.h" | 61 | #include "llwindow.h" |
62 | #include "viewerversion.h" | 62 | #include "viewerinfo.h" |
63 | 63 | ||
64 | // [RLVa:KB] | 64 | // [RLVa:KB] |
65 | #include "rlvhandler.h" | 65 | #include "rlvhandler.h" |
@@ -120,11 +120,7 @@ LLFloaterAbout::LLFloaterAbout() | |||
120 | viewer_link_style->setColor(gSavedSettings.getColor4("HTMLLinkColor")); | 120 | viewer_link_style->setColor(gSavedSettings.getColor4("HTMLLinkColor")); |
121 | 121 | ||
122 | // Version string | 122 | // Version string |
123 | std::string version = llformat( | 123 | std::string version = llformat("%s (%s %s)\n", ViewerInfo::prettyInfo().c_str(), __DATE__, __TIME__); |
124 | "%s %d.%d.%d %s (%s %s)\n", | ||
125 | ViewerVersion::getImpViewerName().c_str(), | ||
126 | ViewerVersion::getImpMajorVersion(), ViewerVersion::getImpMinorVersion(), ViewerVersion::getImpPatchVersion(), ViewerVersion::getImpTestVersion().c_str(), | ||
127 | __DATE__, __TIME__); | ||
128 | 124 | ||
129 | support_widget->appendColoredText(version, FALSE, FALSE, gColors.getColor("TextFgReadOnlyColor")); | 125 | support_widget->appendColoredText(version, FALSE, FALSE, gColors.getColor("TextFgReadOnlyColor")); |
130 | support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), false, false, viewer_link_style); | 126 | support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), false, false, viewer_link_style); |
@@ -318,13 +314,13 @@ void LLFloaterAbout::onClickCopy(void* user_data) | |||
318 | static std::string get_viewer_release_notes_url() | 314 | static std::string get_viewer_release_notes_url() |
319 | { | 315 | { |
320 | std::ostringstream version; | 316 | std::ostringstream version; |
321 | version << ViewerVersion::getImpMajorVersion() << "." | 317 | version << ViewerInfo::versionMajor() << "." |
322 | << ViewerVersion::getImpMinorVersion() << "." | 318 | << ViewerInfo::versionMinor() << "." |
323 | << ViewerVersion::getImpPatchVersion(); | 319 | << ViewerInfo::versionPatch(); |
324 | 320 | ||
325 | // Append the test version if it's not empty | 321 | // Append the test version if it's not empty |
326 | if( !(ViewerVersion::getImpTestVersion().empty()) ) | 322 | if( !(ViewerInfo::versionExtra().empty()) ) |
327 | version << "-" << ViewerVersion::getImpTestVersion(); | 323 | version << "-" << ViewerInfo::versionExtra(); |
328 | 324 | ||
329 | std::ostringstream url; | 325 | std::ostringstream url; |
330 | url << RELEASE_NOTES_BASE_URL << version.str(); | 326 | url << RELEASE_NOTES_BASE_URL << version.str(); |
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index 4de7918..681cbb2 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp | |||
@@ -216,7 +216,7 @@ void add_timestamped_line(LLViewerTextEditor* edit, LLChat chat, const LLColor4& | |||
216 | { | 216 | { |
217 | std::string line = chat.mText; | 217 | std::string line = chat.mText; |
218 | bool prepend_newline = true; | 218 | bool prepend_newline = true; |
219 | if (gSavedSettings.getBOOL("ChatShowTimestamps")) | 219 | if (gSavedSettings.getBOOL("ShowTimestamps")) |
220 | { | 220 | { |
221 | edit->appendTime(prepend_newline); | 221 | edit->appendTime(prepend_newline); |
222 | prepend_newline = false; | 222 | prepend_newline = false; |
diff --git a/linden/indra/newview/llfloatermediabrowser.cpp b/linden/indra/newview/llfloatermediabrowser.cpp index a78c9d1..54ffc0f 100644 --- a/linden/indra/newview/llfloatermediabrowser.cpp +++ b/linden/indra/newview/llfloatermediabrowser.cpp | |||
@@ -119,7 +119,6 @@ BOOL LLFloaterMediaBrowser::postBuild() | |||
119 | childSetAction("pause", onClickPlay, this); | 119 | childSetAction("pause", onClickPlay, this); |
120 | childSetAction("seek", onClickSeek, this); | 120 | childSetAction("seek", onClickSeek, this); |
121 | childSetAction("go", onClickGo, this); | 121 | childSetAction("go", onClickGo, this); |
122 | childSetAction("close", onClickClose, this); | ||
123 | childSetAction("open_browser", onClickOpenWebBrowser, this); | 122 | childSetAction("open_browser", onClickOpenWebBrowser, this); |
124 | childSetAction("assign", onClickAssign, this); | 123 | childSetAction("assign", onClickAssign, this); |
125 | childSetAction("home", onClickHome, this); | 124 | childSetAction("home", onClickHome, this); |
@@ -248,14 +247,6 @@ void LLFloaterMediaBrowser::onClickGo(void* user_data) | |||
248 | } | 247 | } |
249 | 248 | ||
250 | //static | 249 | //static |
251 | void LLFloaterMediaBrowser::onClickClose(void* user_data) | ||
252 | { | ||
253 | LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; | ||
254 | |||
255 | self->close(); | ||
256 | } | ||
257 | |||
258 | //static | ||
259 | void LLFloaterMediaBrowser::onClickOpenWebBrowser(void* user_data) | 250 | void LLFloaterMediaBrowser::onClickOpenWebBrowser(void* user_data) |
260 | { | 251 | { |
261 | LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; | 252 | LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; |
diff --git a/linden/indra/newview/llfloatermediabrowser.h b/linden/indra/newview/llfloatermediabrowser.h index 7de1900..f2597f5 100644 --- a/linden/indra/newview/llfloatermediabrowser.h +++ b/linden/indra/newview/llfloatermediabrowser.h | |||
@@ -82,7 +82,6 @@ public: | |||
82 | static void onClickBack(void* user_data); | 82 | static void onClickBack(void* user_data); |
83 | static void onClickForward(void* user_data); | 83 | static void onClickForward(void* user_data); |
84 | static void onClickGo(void* user_data); | 84 | static void onClickGo(void* user_data); |
85 | static void onClickClose(void* user_data); | ||
86 | static void onClickOpenWebBrowser(void* user_data); | 85 | static void onClickOpenWebBrowser(void* user_data); |
87 | static void onClickAssign(void* user_data); | 86 | static void onClickAssign(void* user_data); |
88 | static void onClickHome(void* user_data); | 87 | static void onClickHome(void* user_data); |
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp index 7d0ef93..94eb2de 100644 --- a/linden/indra/newview/llfloaterpreference.cpp +++ b/linden/indra/newview/llfloaterpreference.cpp | |||
@@ -60,7 +60,6 @@ | |||
60 | #include "llpanellogin.h" | 60 | #include "llpanellogin.h" |
61 | #include "llpanelLCD.h" | 61 | #include "llpanelLCD.h" |
62 | #include "llpanelmsgs.h" | 62 | #include "llpanelmsgs.h" |
63 | #include "llpanelweb.h" | ||
64 | #include "llpanelskins.h" | 63 | #include "llpanelskins.h" |
65 | #include "llprefsadvanced.h" | 64 | #include "llprefsadvanced.h" |
66 | #include "llprefschat.h" | 65 | #include "llprefschat.h" |
@@ -155,10 +154,6 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def | |||
155 | mTabContainer->addTabPanel(mNetworkPanel, mNetworkPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 154 | mTabContainer->addTabPanel(mNetworkPanel, mNetworkPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
156 | mNetworkPanel->setDefaultBtn(default_btn); | 155 | mNetworkPanel->setDefaultBtn(default_btn); |
157 | 156 | ||
158 | mWebPanel = new LLPanelWeb(); | ||
159 | mTabContainer->addTabPanel(mWebPanel, mWebPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | ||
160 | mWebPanel->setDefaultBtn(default_btn); | ||
161 | |||
162 | mDisplayPanel = new LLPanelDisplay(); | 157 | mDisplayPanel = new LLPanelDisplay(); |
163 | mTabContainer->addTabPanel(mDisplayPanel, mDisplayPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 158 | mTabContainer->addTabPanel(mDisplayPanel, mDisplayPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
164 | mDisplayPanel->setDefaultBtn(default_btn); | 159 | mDisplayPanel->setDefaultBtn(default_btn); |
@@ -171,10 +166,6 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def | |||
171 | mTabContainer->addTabPanel(mPrefsChat->getPanel(), mPrefsChat->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); | 166 | mTabContainer->addTabPanel(mPrefsChat->getPanel(), mPrefsChat->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); |
172 | mPrefsChat->getPanel()->setDefaultBtn(default_btn); | 167 | mPrefsChat->getPanel()->setDefaultBtn(default_btn); |
173 | 168 | ||
174 | mPrefsColors = new LLPrefsColors(); | ||
175 | mTabContainer->addTabPanel(mPrefsColors, mPrefsColors->getLabel(), FALSE, onTabChanged, mTabContainer); | ||
176 | mPrefsColors->setDefaultBtn(default_btn); | ||
177 | |||
178 | mPrefsIM = new LLPrefsIM(); | 169 | mPrefsIM = new LLPrefsIM(); |
179 | mTabContainer->addTabPanel(mPrefsIM->getPanel(), mPrefsIM->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); | 170 | mTabContainer->addTabPanel(mPrefsIM->getPanel(), mPrefsIM->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); |
180 | mPrefsIM->getPanel()->setDefaultBtn(default_btn); | 171 | mPrefsIM->getPanel()->setDefaultBtn(default_btn); |
@@ -201,6 +192,10 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * def | |||
201 | mMsgPanel = new LLPanelMsgs(); | 192 | mMsgPanel = new LLPanelMsgs(); |
202 | mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 193 | mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
203 | mMsgPanel->setDefaultBtn(default_btn); | 194 | mMsgPanel->setDefaultBtn(default_btn); |
195 | |||
196 | mPrefsColors = new LLPrefsColors(); | ||
197 | mTabContainer->addTabPanel(mPrefsColors, mPrefsColors->getLabel(), FALSE, onTabChanged, mTabContainer); | ||
198 | mPrefsColors->setDefaultBtn(default_btn); | ||
204 | 199 | ||
205 | mSkinsPanel = new LLPanelSkins(); | 200 | mSkinsPanel = new LLPanelSkins(); |
206 | mTabContainer->addTabPanel(mSkinsPanel, mSkinsPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 201 | mTabContainer->addTabPanel(mSkinsPanel, mSkinsPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
@@ -263,11 +258,6 @@ LLPreferenceCore::~LLPreferenceCore() | |||
263 | delete mMsgPanel; | 258 | delete mMsgPanel; |
264 | mMsgPanel = NULL; | 259 | mMsgPanel = NULL; |
265 | } | 260 | } |
266 | if (mWebPanel) | ||
267 | { | ||
268 | delete mWebPanel; | ||
269 | mWebPanel = NULL; | ||
270 | } | ||
271 | if (mSkinsPanel) | 261 | if (mSkinsPanel) |
272 | { | 262 | { |
273 | delete mSkinsPanel; | 263 | delete mSkinsPanel; |
@@ -310,7 +300,6 @@ void LLPreferenceCore::apply() | |||
310 | // hardware menu apply | 300 | // hardware menu apply |
311 | LLFloaterHardwareSettings::instance()->apply(); | 301 | LLFloaterHardwareSettings::instance()->apply(); |
312 | 302 | ||
313 | mWebPanel->apply(); | ||
314 | #if LL_LCD_COMPILE | 303 | #if LL_LCD_COMPILE |
315 | // only add this option if we actually have a logitech keyboard / speaker set | 304 | // only add this option if we actually have a logitech keyboard / speaker set |
316 | if (gLcdScreen->Enabled()) | 305 | if (gLcdScreen->Enabled()) |
@@ -318,7 +307,6 @@ void LLPreferenceCore::apply() | |||
318 | mLCDPanel->apply(); | 307 | mLCDPanel->apply(); |
319 | } | 308 | } |
320 | #endif | 309 | #endif |
321 | // mWebPanel->apply(); | ||
322 | } | 310 | } |
323 | 311 | ||
324 | 312 | ||
@@ -341,7 +329,6 @@ void LLPreferenceCore::cancel() | |||
341 | // cancel hardware menu | 329 | // cancel hardware menu |
342 | LLFloaterHardwareSettings::instance()->cancel(); | 330 | LLFloaterHardwareSettings::instance()->cancel(); |
343 | 331 | ||
344 | mWebPanel->cancel(); | ||
345 | #if LL_LCD_COMPILE | 332 | #if LL_LCD_COMPILE |
346 | // only add this option if we actually have a logitech keyboard / speaker set | 333 | // only add this option if we actually have a logitech keyboard / speaker set |
347 | if (gLcdScreen->Enabled()) | 334 | if (gLcdScreen->Enabled()) |
@@ -349,7 +336,6 @@ void LLPreferenceCore::cancel() | |||
349 | mLCDPanel->cancel(); | 336 | mLCDPanel->cancel(); |
350 | } | 337 | } |
351 | #endif | 338 | #endif |
352 | // mWebPanel->cancel(); | ||
353 | } | 339 | } |
354 | 340 | ||
355 | // static | 341 | // static |
@@ -363,7 +349,8 @@ void LLPreferenceCore::onTabChanged(void* user_data, bool from_click) | |||
363 | 349 | ||
364 | void LLPreferenceCore::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) | 350 | void LLPreferenceCore::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) |
365 | { | 351 | { |
366 | mPrefsIM->setPersonalInfo(visibility, im_via_email, email); | 352 | mPrefsIM->setPersonalInfo(visibility); |
353 | mPrefsChat->setPersonalInfo(im_via_email, email); | ||
367 | } | 354 | } |
368 | 355 | ||
369 | void LLPreferenceCore::updateIsLoggedIn(bool enable) | 356 | void LLPreferenceCore::updateIsLoggedIn(bool enable) |
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h index d5eccbc..ae4f4d9 100644 --- a/linden/indra/newview/llfloaterpreference.h +++ b/linden/indra/newview/llfloaterpreference.h | |||
@@ -48,7 +48,6 @@ class LLPanelDisplay; | |||
48 | class LLPanelAudioPrefs; | 48 | class LLPanelAudioPrefs; |
49 | class LLPanelDebug; | 49 | class LLPanelDebug; |
50 | class LLPanelNetwork; | 50 | class LLPanelNetwork; |
51 | class LLPanelWeb; | ||
52 | class LLMessageSystem; | 51 | class LLMessageSystem; |
53 | class LLPrefsChat; | 52 | class LLPrefsChat; |
54 | class LLPrefsVoice; | 53 | class LLPrefsVoice; |
@@ -92,7 +91,6 @@ private: | |||
92 | LLPrefsChat *mPrefsChat; | 91 | LLPrefsChat *mPrefsChat; |
93 | LLPrefsVoice *mPrefsVoice; | 92 | LLPrefsVoice *mPrefsVoice; |
94 | LLPrefsIM *mPrefsIM; | 93 | LLPrefsIM *mPrefsIM; |
95 | LLPanelWeb *mWebPanel; | ||
96 | LLPanelMsgs *mMsgPanel; | 94 | LLPanelMsgs *mMsgPanel; |
97 | LLPanelLCD *mLCDPanel; | 95 | LLPanelLCD *mLCDPanel; |
98 | LLPrefsAdvanced *mPrefsAdvanced; | 96 | LLPrefsAdvanced *mPrefsAdvanced; |
diff --git a/linden/indra/newview/llfloaterreporter.cpp b/linden/indra/newview/llfloaterreporter.cpp index 7f6386b..1911e4e 100644 --- a/linden/indra/newview/llfloaterreporter.cpp +++ b/linden/indra/newview/llfloaterreporter.cpp | |||
@@ -80,7 +80,7 @@ | |||
80 | #include "llselectmgr.h" | 80 | #include "llselectmgr.h" |
81 | #include "lluictrlfactory.h" | 81 | #include "lluictrlfactory.h" |
82 | #include "llviewernetwork.h" | 82 | #include "llviewernetwork.h" |
83 | #include "viewerversion.h" | 83 | #include "viewerinfo.h" |
84 | 84 | ||
85 | #include "llassetuploadresponders.h" | 85 | #include "llassetuploadresponders.h" |
86 | 86 | ||
@@ -742,13 +742,11 @@ LLSD LLFloaterReporter::gatherReport() | |||
742 | 742 | ||
743 | if ( mReportType == BUG_REPORT) | 743 | if ( mReportType == BUG_REPORT) |
744 | { | 744 | { |
745 | summary << short_platform << " V" << ViewerVersion::getLLMajorVersion() << "." | 745 | summary << short_platform << " " |
746 | << ViewerVersion::getLLMinorVersion() << "." | 746 | << ViewerInfo::terseInfo() |
747 | << ViewerVersion::getLLPatchVersion() << "." | 747 | << " (" << regionp->getName() << ")" |
748 | << ViewerVersion::getLLBuildVersion() | 748 | << "[" << category_name << "] " |
749 | << " (" << regionp->getName() << ")" | 749 | << "\"" << childGetValue("summary_edit").asString() << "\""; |
750 | << "[" << category_name << "] " | ||
751 | << "\"" << childGetValue("summary_edit").asString() << "\""; | ||
752 | } | 750 | } |
753 | else | 751 | else |
754 | { | 752 | { |
@@ -763,10 +761,7 @@ LLSD LLFloaterReporter::gatherReport() | |||
763 | std::ostringstream details; | 761 | std::ostringstream details; |
764 | if (mReportType != BUG_REPORT) | 762 | if (mReportType != BUG_REPORT) |
765 | { | 763 | { |
766 | details << "V" << ViewerVersion::getLLMajorVersion() << "." // client version moved to body of email for abuse reports | 764 | details << ViewerInfo::terseInfo() << std::endl << std::endl; |
767 | << ViewerVersion::getLLMinorVersion() << "." | ||
768 | << ViewerVersion::getLLPatchVersion() << "." | ||
769 | << ViewerVersion::getLLBuildVersion() << std::endl << std::endl; | ||
770 | } | 765 | } |
771 | std::string object_name = childGetText("object_name"); | 766 | std::string object_name = childGetText("object_name"); |
772 | std::string owner_name = childGetText("owner_name"); | 767 | std::string owner_name = childGetText("owner_name"); |
@@ -786,10 +781,8 @@ LLSD LLFloaterReporter::gatherReport() | |||
786 | 781 | ||
787 | std::string version_string; | 782 | std::string version_string; |
788 | version_string = llformat( | 783 | version_string = llformat( |
789 | "%d.%d.%d %s %s %s %s", | 784 | "%s %s %s %s %s", |
790 | ViewerVersion::getLLMajorVersion(), | 785 | ViewerInfo::terseInfo().c_str(), |
791 | ViewerVersion::getLLMinorVersion(), | ||
792 | ViewerVersion::getLLPatchVersion(), | ||
793 | platform, | 786 | platform, |
794 | gSysCPU.getFamily().c_str(), | 787 | gSysCPU.getFamily().c_str(), |
795 | gGLManager.mGLRenderer.c_str(), | 788 | gGLManager.mGLRenderer.c_str(), |
diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp index ccd723f..333bd13 100644 --- a/linden/indra/newview/llhudeffectlookat.cpp +++ b/linden/indra/newview/llhudeffectlookat.cpp | |||
@@ -702,6 +702,11 @@ bool LLHUDEffectLookAt::calcTargetPosition() | |||
702 | 702 | ||
703 | LLVOAvatar* source_avatar = (LLVOAvatar*)(LLViewerObject*)mSourceObject; | 703 | LLVOAvatar* source_avatar = (LLVOAvatar*)(LLViewerObject*)mSourceObject; |
704 | 704 | ||
705 | if (!source_avatar->isBuilt()) | ||
706 | { | ||
707 | return false; | ||
708 | } | ||
709 | |||
705 | if (target_obj && target_obj->mDrawable.notNull()) | 710 | if (target_obj && target_obj->mDrawable.notNull()) |
706 | { | 711 | { |
707 | LLQuaternion target_rot; | 712 | LLQuaternion target_rot; |
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp index 7ccf49c..752ebb4 100644 --- a/linden/indra/newview/llimpanel.cpp +++ b/linden/indra/newview/llimpanel.cpp | |||
@@ -1660,7 +1660,7 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4 | |||
1660 | // Actually add the line | 1660 | // Actually add the line |
1661 | std::string timestring; | 1661 | std::string timestring; |
1662 | bool prepend_newline = true; | 1662 | bool prepend_newline = true; |
1663 | if (gSavedSettings.getBOOL("IMShowTimestamps")) | 1663 | if (gSavedSettings.getBOOL("ShowTimestamps")) |
1664 | { | 1664 | { |
1665 | timestring = mHistoryEditor->appendTime(prepend_newline); | 1665 | timestring = mHistoryEditor->appendTime(prepend_newline); |
1666 | prepend_newline = false; | 1666 | prepend_newline = false; |
diff --git a/linden/indra/newview/llpanelavatar.cpp b/linden/indra/newview/llpanelavatar.cpp index 6a3a0bd..e3fe141 100644 --- a/linden/indra/newview/llpanelavatar.cpp +++ b/linden/indra/newview/llpanelavatar.cpp | |||
@@ -1990,6 +1990,7 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**) | |||
1990 | LLTextEditor* about_field = self->mPanelSecondLife->getChild<LLTextEditor>("about"); | 1990 | LLTextEditor* about_field = self->mPanelSecondLife->getChild<LLTextEditor>("about"); |
1991 | if (about_field) | 1991 | if (about_field) |
1992 | { | 1992 | { |
1993 | about_field->clear(); | ||
1993 | if (self->mAllowEdit && (self->mAvatarID == agent_id)) | 1994 | if (self->mAllowEdit && (self->mAvatarID == agent_id)) |
1994 | { | 1995 | { |
1995 | about_field->setText(about_text); | 1996 | about_field->setText(about_text); |
@@ -2009,8 +2010,10 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**) | |||
2009 | about_field = self->mPanelFirstLife->getChild<LLTextEditor>("about"); | 2010 | about_field = self->mPanelFirstLife->getChild<LLTextEditor>("about"); |
2010 | if (about_field) | 2011 | if (about_field) |
2011 | { | 2012 | { |
2013 | about_field->clear(); | ||
2012 | if (self->mAllowEdit && (self->mAvatarID == agent_id)) | 2014 | if (self->mAllowEdit && (self->mAvatarID == agent_id)) |
2013 | { | 2015 | { |
2016 | about_field->setText(fl_about_text); | ||
2014 | } | 2017 | } |
2015 | else | 2018 | else |
2016 | { | 2019 | { |
diff --git a/linden/indra/newview/llpaneldisplay.cpp b/linden/indra/newview/llpaneldisplay.cpp index e8c67e8..00dc2cd 100644 --- a/linden/indra/newview/llpaneldisplay.cpp +++ b/linden/indra/newview/llpaneldisplay.cpp | |||
@@ -120,7 +120,6 @@ BOOL LLPanelDisplay::postBuild() | |||
120 | mCtrlWindowed->setCallbackUserData(this); | 120 | mCtrlWindowed->setCallbackUserData(this); |
121 | 121 | ||
122 | mAspectRatioLabel1 = getChild<LLTextBox>("AspectRatioLabel1"); | 122 | mAspectRatioLabel1 = getChild<LLTextBox>("AspectRatioLabel1"); |
123 | mFullScreenInfo = getChild<LLTextEditor>("FullScreenInfo"); | ||
124 | mDisplayResLabel = getChild<LLTextBox>("DisplayResLabel"); | 123 | mDisplayResLabel = getChild<LLTextBox>("DisplayResLabel"); |
125 | 124 | ||
126 | S32 num_resolutions = 0; | 125 | S32 num_resolutions = 0; |
@@ -229,7 +228,7 @@ BOOL LLPanelDisplay::postBuild() | |||
229 | mCtrlReflections = getChild<LLCheckBoxCtrl>("Reflections"); | 228 | mCtrlReflections = getChild<LLCheckBoxCtrl>("Reflections"); |
230 | mCtrlReflections->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable); | 229 | mCtrlReflections->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable); |
231 | mCtrlReflections->setCallbackUserData(this); | 230 | mCtrlReflections->setCallbackUserData(this); |
232 | mRadioReflectionDetail = getChild<LLRadioGroup>("ReflectionDetailRadio"); | 231 | mComboReflectionDetail = getChild<LLComboBox>("ReflectionDetailCombo"); |
233 | 232 | ||
234 | // WindLight | 233 | // WindLight |
235 | mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders"); | 234 | mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders"); |
@@ -251,11 +250,11 @@ BOOL LLPanelDisplay::postBuild() | |||
251 | 250 | ||
252 | //---------------------------------------------------------------------------- | 251 | //---------------------------------------------------------------------------- |
253 | // radio set for lighting detail | 252 | // radio set for lighting detail |
254 | mRadioLightingDetail2 = getChild<LLRadioGroup>("LightingDetailRadio"); | 253 | mComboLightingDetail = getChild<LLComboBox>("LightingDetailCombo"); |
255 | 254 | ||
256 | //---------------------------------------------------------------------------- | 255 | //---------------------------------------------------------------------------- |
257 | // radio set for terrain detail mode | 256 | // radio set for terrain detail mode |
258 | mRadioTerrainDetail = getChild<LLRadioGroup>("TerrainDetailRadio"); | 257 | mComboTerrainDetail = getChild<LLComboBox>("TerrainDetailCombo"); |
259 | 258 | ||
260 | //---------------------------------------------------------------------------- | 259 | //---------------------------------------------------------------------------- |
261 | // Global Shader Enable | 260 | // Global Shader Enable |
@@ -316,7 +315,6 @@ BOOL LLPanelDisplay::postBuild() | |||
316 | 315 | ||
317 | // Avatar imposter count | 316 | // Avatar imposter count |
318 | mCtrlAvatarMaxVisible = getChild<LLSliderCtrl>("AvatarMaxVisible"); | 317 | mCtrlAvatarMaxVisible = getChild<LLSliderCtrl>("AvatarMaxVisible"); |
319 | mAvatarCountText = getChild<LLTextBox>("AvatarCountText"); | ||
320 | 318 | ||
321 | // Text boxes (for enabling/disabling) | 319 | // Text boxes (for enabling/disabling) |
322 | mShaderText = getChild<LLTextBox>("ShadersText"); | 320 | mShaderText = getChild<LLTextBox>("ShadersText"); |
@@ -325,10 +323,7 @@ BOOL LLPanelDisplay::postBuild() | |||
325 | mTerrainText = getChild<LLTextBox>("TerrainDetailText"); | 323 | mTerrainText = getChild<LLTextBox>("TerrainDetailText"); |
326 | mLightingText = getChild<LLTextBox>("LightingDetailText"); | 324 | mLightingText = getChild<LLTextBox>("LightingDetailText"); |
327 | mMeshDetailText = getChild<LLTextBox>("MeshDetailText"); | 325 | mMeshDetailText = getChild<LLTextBox>("MeshDetailText"); |
328 | 326 | mLimitsText = getChild<LLTextBox>("LimitsText"); | |
329 | static BOOL* sEnableWindlightRemote = rebind_llcontrol<BOOL>("EnableWindlightRemote", &gSavedSettings, true); | ||
330 | childSetValue("toggle_windlight_control", (*sEnableWindlightRemote)); | ||
331 | mWLControl = (*sEnableWindlightRemote); | ||
332 | 327 | ||
333 | refresh(); | 328 | refresh(); |
334 | 329 | ||
@@ -420,10 +415,6 @@ void LLPanelDisplay::refresh() | |||
420 | mLightingDetail = gSavedSettings.getS32("RenderLightingDetail"); | 415 | mLightingDetail = gSavedSettings.getS32("RenderLightingDetail"); |
421 | mTerrainDetail = gSavedSettings.getS32("RenderTerrainDetail"); | 416 | mTerrainDetail = gSavedSettings.getS32("RenderTerrainDetail"); |
422 | 417 | ||
423 | // windlight remote | ||
424 | static BOOL* sEnableWindlightRemote = rebind_llcontrol<BOOL>("EnableWindlightRemote", &gSavedSettings, true); | ||
425 | mWLControl = (*sEnableWindlightRemote); | ||
426 | |||
427 | // max avatar count | 418 | // max avatar count |
428 | mAvatarMaxVisible = gSavedSettings.getS32("RenderAvatarMaxVisible"); | 419 | mAvatarMaxVisible = gSavedSettings.getS32("RenderAvatarMaxVisible"); |
429 | 420 | ||
@@ -449,7 +440,6 @@ void LLPanelDisplay::refreshEnabledState() | |||
449 | mCtrlAspectRatio->setVisible(isFullScreen); | 440 | mCtrlAspectRatio->setVisible(isFullScreen); |
450 | mAspectRatioLabel1->setVisible(isFullScreen); | 441 | mAspectRatioLabel1->setVisible(isFullScreen); |
451 | mCtrlAutoDetectAspect->setVisible(isFullScreen); | 442 | mCtrlAutoDetectAspect->setVisible(isFullScreen); |
452 | mFullScreenInfo->setVisible(!isFullScreen); | ||
453 | mWindowSizeLabel->setVisible(!isFullScreen); | 443 | mWindowSizeLabel->setVisible(!isFullScreen); |
454 | 444 | ||
455 | // disable graphics settings and exit if it's not set to custom | 445 | // disable graphics settings and exit if it's not set to custom |
@@ -475,10 +465,7 @@ void LLPanelDisplay::refreshEnabledState() | |||
475 | bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump"); | 465 | bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump"); |
476 | mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE); | 466 | mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE); |
477 | 467 | ||
478 | for (S32 i = 0; i < mRadioReflectionDetail->getItemCount(); ++i) | 468 | mComboReflectionDetail->setEnabled(mCtrlReflections->get() && reflections); |
479 | { | ||
480 | mRadioReflectionDetail->setIndexEnabled(i, mCtrlReflections->get() && reflections); | ||
481 | } | ||
482 | 469 | ||
483 | // Avatar Mode | 470 | // Avatar Mode |
484 | S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel; | 471 | S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel; |
@@ -505,12 +492,12 @@ void LLPanelDisplay::refreshEnabledState() | |||
505 | BOOL shaders = mCtrlShaderEnable->get(); | 492 | BOOL shaders = mCtrlShaderEnable->get(); |
506 | if (shaders) | 493 | if (shaders) |
507 | { | 494 | { |
508 | mRadioTerrainDetail->setValue(1); | 495 | mComboTerrainDetail->setValue(1); |
509 | mRadioTerrainDetail->setEnabled(FALSE); | 496 | mComboTerrainDetail->setEnabled(FALSE); |
510 | } | 497 | } |
511 | else | 498 | else |
512 | { | 499 | { |
513 | mRadioTerrainDetail->setEnabled(TRUE); | 500 | mComboTerrainDetail->setEnabled(TRUE); |
514 | } | 501 | } |
515 | 502 | ||
516 | // *HACK just checks to see if we can use shaders... | 503 | // *HACK just checks to see if we can use shaders... |
@@ -588,7 +575,6 @@ void LLPanelDisplay::disableUnavailableSettings() | |||
588 | } | 575 | } |
589 | 576 | ||
590 | mCtrlAvatarMaxVisible->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean()); | 577 | mCtrlAvatarMaxVisible->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean()); |
591 | mAvatarCountText->setEnabled(mCtrlAvatarImpostors->getValue().asBoolean()); | ||
592 | } | 578 | } |
593 | 579 | ||
594 | void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | 580 | void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) |
@@ -622,10 +608,10 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | |||
622 | llassert(mCtrlShaderEnable != NULL); | 608 | llassert(mCtrlShaderEnable != NULL); |
623 | llassert(mCtrlAvatarImpostors != NULL); | 609 | llassert(mCtrlAvatarImpostors != NULL); |
624 | llassert(mCtrlAvatarCloth != NULL); | 610 | llassert(mCtrlAvatarCloth != NULL); |
625 | llassert(mRadioLightingDetail2 != NULL); | 611 | llassert(mComboLightingDetail != NULL); |
626 | 612 | ||
627 | llassert(mRadioTerrainDetail != NULL); | 613 | llassert(mComboTerrainDetail != NULL); |
628 | llassert(mRadioReflectionDetail != NULL); | 614 | llassert(mComboReflectionDetail != NULL); |
629 | 615 | ||
630 | llassert(mMeshDetailText != NULL); | 616 | llassert(mMeshDetailText != NULL); |
631 | llassert(mShaderText != NULL); | 617 | llassert(mShaderText != NULL); |
@@ -633,7 +619,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | |||
633 | llassert(mAvatarText != NULL); | 619 | llassert(mAvatarText != NULL); |
634 | llassert(mLightingText != NULL); | 620 | llassert(mLightingText != NULL); |
635 | llassert(mTerrainText != NULL); | 621 | llassert(mTerrainText != NULL); |
636 | llassert(mAvatarCountText != NULL); | 622 | llassert(mLimitsText != NULL); |
637 | 623 | ||
638 | // enable/disable the states | 624 | // enable/disable the states |
639 | mGraphicsBorder->setVisible(!isHidden); | 625 | mGraphicsBorder->setVisible(!isHidden); |
@@ -668,10 +654,10 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | |||
668 | mCtrlShaderEnable->setVisible(!isHidden); | 654 | mCtrlShaderEnable->setVisible(!isHidden); |
669 | mCtrlAvatarImpostors->setVisible(!isHidden); | 655 | mCtrlAvatarImpostors->setVisible(!isHidden); |
670 | mCtrlAvatarCloth->setVisible(!isHidden); | 656 | mCtrlAvatarCloth->setVisible(!isHidden); |
671 | mRadioLightingDetail2->setVisible(!isHidden); | 657 | mComboLightingDetail->setVisible(!isHidden); |
672 | 658 | ||
673 | mRadioTerrainDetail->setVisible(!isHidden); | 659 | mComboTerrainDetail->setVisible(!isHidden); |
674 | mRadioReflectionDetail->setVisible(!isHidden); | 660 | mComboReflectionDetail->setVisible(!isHidden); |
675 | 661 | ||
676 | // text boxes | 662 | // text boxes |
677 | mShaderText->setVisible(!isHidden); | 663 | mShaderText->setVisible(!isHidden); |
@@ -679,8 +665,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden) | |||
679 | mAvatarText->setVisible(!isHidden); | 665 | mAvatarText->setVisible(!isHidden); |
680 | mLightingText->setVisible(!isHidden); | 666 | mLightingText->setVisible(!isHidden); |
681 | mTerrainText->setVisible(!isHidden); | 667 | mTerrainText->setVisible(!isHidden); |
682 | mAvatarCountText->setVisible(!isHidden); | 668 | mLimitsText->setVisible(!isHidden); |
683 | |||
684 | mMeshDetailText->setVisible(!isHidden); | 669 | mMeshDetailText->setVisible(!isHidden); |
685 | 670 | ||
686 | mCtrlAvatarMaxVisible->setVisible(!isHidden); | 671 | mCtrlAvatarMaxVisible->setVisible(!isHidden); |
@@ -719,8 +704,6 @@ void LLPanelDisplay::cancel() | |||
719 | gSavedSettings.setS32("RenderMaxPartCount", mParticleCount); | 704 | gSavedSettings.setS32("RenderMaxPartCount", mParticleCount); |
720 | gSavedSettings.setS32("RenderGlowResolutionPow", mPostProcess); | 705 | gSavedSettings.setS32("RenderGlowResolutionPow", mPostProcess); |
721 | 706 | ||
722 | gSavedSettings.setBOOL("EnableWindlightRemote", mWLControl); | ||
723 | |||
724 | gSavedSettings.setS32("RenderAvatarMaxVisible", mAvatarMaxVisible); | 707 | gSavedSettings.setS32("RenderAvatarMaxVisible", mAvatarMaxVisible); |
725 | } | 708 | } |
726 | 709 | ||
@@ -992,5 +975,4 @@ void LLPanelDisplay::onImpostorsEnable(LLUICtrl* ctrl, void* user_data) | |||
992 | LLCheckBoxCtrl* checkbox = (LLCheckBoxCtrl*)ctrl; | 975 | LLCheckBoxCtrl* checkbox = (LLCheckBoxCtrl*)ctrl; |
993 | 976 | ||
994 | self->mCtrlAvatarMaxVisible->setEnabled(checkbox->getValue().asBoolean()); | 977 | self->mCtrlAvatarMaxVisible->setEnabled(checkbox->getValue().asBoolean()); |
995 | self->mAvatarCountText->setEnabled(checkbox->getValue().asBoolean()); | ||
996 | } | 978 | } |
diff --git a/linden/indra/newview/llpaneldisplay.h b/linden/indra/newview/llpaneldisplay.h index d7727e7..e64e9ba 100644 --- a/linden/indra/newview/llpaneldisplay.h +++ b/linden/indra/newview/llpaneldisplay.h | |||
@@ -113,14 +113,13 @@ protected: | |||
113 | LLCheckBoxCtrl *mCtrlShaderEnable; | 113 | LLCheckBoxCtrl *mCtrlShaderEnable; |
114 | LLCheckBoxCtrl *mCtrlAvatarImpostors; | 114 | LLCheckBoxCtrl *mCtrlAvatarImpostors; |
115 | LLCheckBoxCtrl *mCtrlAvatarCloth; | 115 | LLCheckBoxCtrl *mCtrlAvatarCloth; |
116 | LLRadioGroup *mRadioLightingDetail2; | 116 | LLComboBox *mComboLightingDetail; |
117 | 117 | ||
118 | LLRadioGroup *mRadioTerrainDetail; | 118 | LLComboBox *mComboTerrainDetail; |
119 | LLRadioGroup *mRadioReflectionDetail; | 119 | LLComboBox *mComboReflectionDetail; |
120 | 120 | ||
121 | LLTextBox *mAspectRatioLabel1; | 121 | LLTextBox *mAspectRatioLabel1; |
122 | LLTextBox *mDisplayResLabel; | 122 | LLTextBox *mDisplayResLabel; |
123 | LLTextEditor *mFullScreenInfo; | ||
124 | LLTextBox *mWindowSizeLabel; | 123 | LLTextBox *mWindowSizeLabel; |
125 | 124 | ||
126 | LLTextBox *mShaderText; | 125 | LLTextBox *mShaderText; |
@@ -137,7 +136,7 @@ protected: | |||
137 | LLTextBox *mTerrainFactorText; | 136 | LLTextBox *mTerrainFactorText; |
138 | LLTextBox *mSkyFactorText; | 137 | LLTextBox *mSkyFactorText; |
139 | LLTextBox *mPostProcessText; | 138 | LLTextBox *mPostProcessText; |
140 | LLTextBox *mAvatarCountText; | 139 | LLTextBox *mLimitsText; |
141 | 140 | ||
142 | BOOL mFSAutoDetectAspect; | 141 | BOOL mFSAutoDetectAspect; |
143 | F32 mAspectRatio; | 142 | F32 mAspectRatio; |
@@ -173,8 +172,6 @@ protected: | |||
173 | 172 | ||
174 | S32 mAvatarMaxVisible; | 173 | S32 mAvatarMaxVisible; |
175 | 174 | ||
176 | BOOL mWLControl; | ||
177 | |||
178 | static void setGraphicsSettings(LLControlGroup& group); | 175 | static void setGraphicsSettings(LLControlGroup& group); |
179 | static void createGroup(); | 176 | static void createGroup(); |
180 | 177 | ||
diff --git a/linden/indra/newview/llpanelgeneral.cpp b/linden/indra/newview/llpanelgeneral.cpp index 70146ce..ac957ed 100644 --- a/linden/indra/newview/llpanelgeneral.cpp +++ b/linden/indra/newview/llpanelgeneral.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "llpanelgeneral.h" | 36 | #include "llpanelgeneral.h" |
37 | 37 | ||
38 | // project includes | 38 | // project includes |
39 | #include "llcolorswatch.h" | 39 | #include "llcheckboxctrl.h" |
40 | #include "llcombobox.h" | 40 | #include "llcombobox.h" |
41 | #include "lluictrlfactory.h" | 41 | #include "lluictrlfactory.h" |
42 | #include "llurlsimstring.h" | 42 | #include "llurlsimstring.h" |
@@ -90,28 +90,25 @@ BOOL LLPanelGeneral::postBuild() | |||
90 | childSetValue("show_location_checkbox", gSavedSettings.getBOOL("ShowStartLocation")); | 90 | childSetValue("show_location_checkbox", gSavedSettings.getBOOL("ShowStartLocation")); |
91 | childSetValue("show_all_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitleAll")); | 91 | childSetValue("show_all_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitleAll")); |
92 | childSetValue("show_my_name_checkbox", gSavedSettings.getBOOL("RenderNameHideSelf")); | 92 | childSetValue("show_my_name_checkbox", gSavedSettings.getBOOL("RenderNameHideSelf")); |
93 | childSetValue("small_avatar_names_checkbox", gSavedSettings.getBOOL("SmallAvatarNames")); | 93 | childSetValue("large_avatar_names_checkbox", !gSavedSettings.getBOOL("SmallAvatarNames")); |
94 | childSetValue("highlight_friends_checkbox", gSavedSettings.getBOOL("HighlightFriends")); | 94 | childSetValue("highlight_friends_checkbox", gSavedSettings.getBOOL("HighlightFriends")); |
95 | childSetValue("show_my_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitle")); | 95 | //childSetValue("show_my_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitle")); -- MC |
96 | childSetValue("afk_timeout_spinner", gSavedSettings.getF32("AFKTimeout")); | 96 | |
97 | childSetEnabled("afk_timeout_spinner", gSavedSettings.getBOOL("AllowIdleAFK")); | ||
98 | childSetValue("afk_timeout_spinner", llround(gSavedSettings.getF32("AFKTimeout") / 60)); // User enters minutes, we store as seconds -- MC | ||
97 | childSetValue("afk_timeout_checkbox", gSavedSettings.getBOOL("AllowIdleAFK")); | 99 | childSetValue("afk_timeout_checkbox", gSavedSettings.getBOOL("AllowIdleAFK")); |
100 | childSetCommitCallback("afk_timeout_checkbox", onCommitAFKCheckbox, this); | ||
101 | |||
98 | childSetValue("mini_map_notify_chat", gSavedSettings.getBOOL("MiniMapNotifyChatRange")); | 102 | childSetValue("mini_map_notify_chat", gSavedSettings.getBOOL("MiniMapNotifyChatRange")); |
99 | childSetValue("mini_map_notify_sim", gSavedSettings.getBOOL("MiniMapNotifySimRange")); | 103 | childSetValue("mini_map_notify_sim", gSavedSettings.getBOOL("MiniMapNotifySimRange")); |
100 | 104 | ||
101 | // mDisplayNamesUsage = gSavedSettings.getU32("DisplayNamesUsage"); | 105 | // mDisplayNamesUsage = gSavedSettings.getU32("DisplayNamesUsage"); |
102 | // mLegacyNamesForFriends = gSavedSettings.getBOOL("LegacyNamesForFriends"); | 106 | // mLegacyNamesForFriends = gSavedSettings.getBOOL("LegacyNamesForFriends"); |
103 | 107 | ||
104 | getChild<LLColorSwatchCtrl>("effect_color_swatch")->set(gSavedSettings.getColor4("EffectColor")); | ||
105 | |||
106 | childSetValue("ui_scale_slider", gSavedSettings.getF32("UIScaleFactor")); | ||
107 | childSetValue("ui_auto_scale", gSavedSettings.getBOOL("UIAutoScale")); | ||
108 | |||
109 | LLComboBox* time_combobox = getChild<LLComboBox>("time_combobox"); | 108 | LLComboBox* time_combobox = getChild<LLComboBox>("time_combobox"); |
110 | time_combobox->setCurrentByIndex(gSavedSettings.getU32("TimeFormat")); | 109 | time_combobox->setCurrentByIndex(gSavedSettings.getU32("TimeFormat")); |
111 | 110 | ||
112 | childSetValue("language_combobox", gSavedSettings.getString("Language")); | 111 | childSetValue("language_combobox", gSavedSettings.getString("Language")); |
113 | |||
114 | childSetAction("reset_ui_size", onClickResetUISize, this); | ||
115 | 112 | ||
116 | // if we have no agent, we can't let them choose anything | 113 | // if we have no agent, we can't let them choose anything |
117 | // if we have an agent, then we only let them choose if they have a choice | 114 | // if we have an agent, then we only let them choose if they have a choice |
@@ -166,16 +163,13 @@ void LLPanelGeneral::apply() | |||
166 | gSavedSettings.setBOOL("ShowStartLocation", childGetValue("show_location_checkbox")); | 163 | gSavedSettings.setBOOL("ShowStartLocation", childGetValue("show_location_checkbox")); |
167 | gSavedSettings.setBOOL("RenderHideGroupTitleAll", childGetValue("show_all_title_checkbox")); | 164 | gSavedSettings.setBOOL("RenderHideGroupTitleAll", childGetValue("show_all_title_checkbox")); |
168 | gSavedSettings.setBOOL("RenderNameHideSelf", childGetValue("show_my_name_checkbox")); | 165 | gSavedSettings.setBOOL("RenderNameHideSelf", childGetValue("show_my_name_checkbox")); |
169 | gSavedSettings.setBOOL("SmallAvatarNames", childGetValue("small_avatar_names_checkbox")); | 166 | gSavedSettings.setBOOL("SmallAvatarNames", !childGetValue("large_avatar_names_checkbox")); |
170 | gSavedSettings.setBOOL("HighlightFriends", childGetValue("highlight_friends_checkbox")); | 167 | gSavedSettings.setBOOL("HighlightFriends", childGetValue("highlight_friends_checkbox")); |
171 | gSavedSettings.setBOOL("RenderHideGroupTitle", childGetValue("show_my_title_checkbox")); | 168 | //gSavedSettings.setBOOL("RenderHideGroupTitle", childGetValue("show_my_title_checkbox")); -- MC |
172 | gSavedSettings.setF32("AFKTimeout", childGetValue("afk_timeout_spinner").asReal()); | 169 | gSavedSettings.setF32("AFKTimeout", 60 * childGetValue("afk_timeout_spinner").asReal()); // User enters minutes, we store as seconds -- MC |
173 | gSavedSettings.setBOOL("AllowIdleAFK", childGetValue("afk_timeout_checkbox")); | 170 | gSavedSettings.setBOOL("AllowIdleAFK", childGetValue("afk_timeout_checkbox")); |
174 | gSavedSettings.setBOOL("MiniMapNotifyChatRange", childGetValue("mini_map_notify_chat")); | 171 | gSavedSettings.setBOOL("MiniMapNotifyChatRange", childGetValue("mini_map_notify_chat")); |
175 | gSavedSettings.setBOOL("MiniMapNotifySimRange", childGetValue("mini_map_notify_sim")); | 172 | gSavedSettings.setBOOL("MiniMapNotifySimRange", childGetValue("mini_map_notify_sim")); |
176 | gSavedSettings.setColor4("EffectColor", childGetValue("effect_color_swatch")); | ||
177 | gSavedSettings.setF32("UIScaleFactor", childGetValue("ui_scale_slider").asReal()); | ||
178 | gSavedSettings.setBOOL("UIAutoScale", childGetValue("ui_auto_scale")); | ||
179 | gSavedSettings.setString("Language", childGetValue("language_combobox")); | 173 | gSavedSettings.setString("Language", childGetValue("language_combobox")); |
180 | 174 | ||
181 | /* | 175 | /* |
@@ -218,14 +212,6 @@ void LLPanelGeneral::cancel() | |||
218 | } | 212 | } |
219 | 213 | ||
220 | // static | 214 | // static |
221 | void LLPanelGeneral::onClickResetUISize(void* user_data) | ||
222 | { | ||
223 | LLPanelGeneral* self = (LLPanelGeneral*)user_data; | ||
224 | F32 def = gSavedSettings.getControl("UIScaleFactor")->getDefault().asReal(); | ||
225 | self->childSetValue("ui_scale_slider", def); | ||
226 | } | ||
227 | |||
228 | // static | ||
229 | void LLPanelGeneral::onClickGrid(void *) | 215 | void LLPanelGeneral::onClickGrid(void *) |
230 | { | 216 | { |
231 | FloaterGridManager::getInstance()->open(); | 217 | FloaterGridManager::getInstance()->open(); |
@@ -241,3 +227,14 @@ void LLPanelGeneral::onLocationChanged(LLUICtrl* ctrl, void* data) | |||
241 | self->getChild<LLComboBox>("default_location_combo")->setTextEntry(LLURLSimString::sInstance.mSimString); | 227 | self->getChild<LLComboBox>("default_location_combo")->setTextEntry(LLURLSimString::sInstance.mSimString); |
242 | } | 228 | } |
243 | } | 229 | } |
230 | |||
231 | // static | ||
232 | void LLPanelGeneral::onCommitAFKCheckbox(LLUICtrl* ctrl, void* data) | ||
233 | { | ||
234 | LLPanelGeneral* self = (LLPanelGeneral*)data; | ||
235 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
236 | |||
237 | if (!self || !check) return; | ||
238 | self->childSetEnabled("afk_timeout_spinner", check->get()); | ||
239 | self->childSetEnabled("minutes_textbox", check->get()); | ||
240 | } | ||
diff --git a/linden/indra/newview/llpanelgeneral.h b/linden/indra/newview/llpanelgeneral.h index 56cc3de..4080079 100644 --- a/linden/indra/newview/llpanelgeneral.h +++ b/linden/indra/newview/llpanelgeneral.h | |||
@@ -48,9 +48,9 @@ public: | |||
48 | void cancel(); | 48 | void cancel(); |
49 | 49 | ||
50 | private: | 50 | private: |
51 | static void onClickResetUISize(void*); | ||
52 | static void onClickGrid(void*); | 51 | static void onClickGrid(void*); |
53 | static void onLocationChanged(LLUICtrl* ctrl, void* data); | 52 | static void onLocationChanged(LLUICtrl* ctrl, void* data); |
53 | static void onCommitAFKCheckbox(LLUICtrl* ctrl, void* data); | ||
54 | 54 | ||
55 | U32 mDisplayNamesUsage; | 55 | U32 mDisplayNamesUsage; |
56 | bool mLegacyNamesForFriends; | 56 | bool mLegacyNamesForFriends; |
diff --git a/linden/indra/newview/llpanelgroupgeneral.cpp b/linden/indra/newview/llpanelgroupgeneral.cpp index 8e61c60..8c522cc 100644 --- a/linden/indra/newview/llpanelgroupgeneral.cpp +++ b/linden/indra/newview/llpanelgroupgeneral.cpp | |||
@@ -814,6 +814,7 @@ void LLPanelGroupGeneral::update(LLGroupChange gc) | |||
814 | 814 | ||
815 | if (mEditCharter) | 815 | if (mEditCharter) |
816 | { | 816 | { |
817 | mEditCharter->clear(); | ||
817 | if (mAllowEdit && can_change_ident) | 818 | if (mAllowEdit && can_change_ident) |
818 | { | 819 | { |
819 | mEditCharter->setText(gdatap->mCharter); | 820 | mEditCharter->setText(gdatap->mCharter); |
diff --git a/linden/indra/newview/llpanelgroupnotices.cpp b/linden/indra/newview/llpanelgroupnotices.cpp index 3d5cd3e..8135306 100644 --- a/linden/indra/newview/llpanelgroupnotices.cpp +++ b/linden/indra/newview/llpanelgroupnotices.cpp | |||
@@ -52,6 +52,7 @@ | |||
52 | #include "lltextbox.h" | 52 | #include "lltextbox.h" |
53 | 53 | ||
54 | #include "roles_constants.h" | 54 | #include "roles_constants.h" |
55 | #include "llviewercontrol.h" | ||
55 | #include "llviewerwindow.h" | 56 | #include "llviewerwindow.h" |
56 | #include "llviewermessage.h" | 57 | #include "llviewermessage.h" |
57 | #include "llnotifications.h" | 58 | #include "llnotifications.h" |
@@ -533,7 +534,12 @@ void LLPanelGroupNotices::showNotice(const std::string& subject, | |||
533 | arrangeNoticeView(VIEW_PAST_NOTICE); | 534 | arrangeNoticeView(VIEW_PAST_NOTICE); |
534 | 535 | ||
535 | if(mViewSubject) mViewSubject->setText(subject); | 536 | if(mViewSubject) mViewSubject->setText(subject); |
536 | if(mViewMessage) mViewMessage->setText(message); | 537 | if(mViewMessage) |
538 | { | ||
539 | mViewMessage->clear(); | ||
540 | mViewMessage->setParseHTML(TRUE); | ||
541 | mViewMessage->appendColoredText(message, false, false, gColors.getColor("TextFgReadOnlyColor")); | ||
542 | } | ||
537 | 543 | ||
538 | if (mInventoryOffer) | 544 | if (mInventoryOffer) |
539 | { | 545 | { |
diff --git a/linden/indra/newview/llpanelinput.cpp b/linden/indra/newview/llpanelinput.cpp index 32c4af3..9664b6f 100644 --- a/linden/indra/newview/llpanelinput.cpp +++ b/linden/indra/newview/llpanelinput.cpp | |||
@@ -31,7 +31,10 @@ | |||
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include "llviewerprecompiledheaders.h" | 33 | #include "llviewerprecompiledheaders.h" |
34 | |||
34 | #include "llpanelinput.h" | 35 | #include "llpanelinput.h" |
36 | |||
37 | #include "llcombobox.h" | ||
35 | #include "lluictrlfactory.h" | 38 | #include "lluictrlfactory.h" |
36 | #include "llviewercamera.h" | 39 | #include "llviewercamera.h" |
37 | #include "llviewercontrol.h" | 40 | #include "llviewercontrol.h" |
@@ -60,7 +63,6 @@ BOOL LLPanelInput::postBuild() | |||
60 | mPreAdjustCameraOffsetScale = gSavedSettings.getF32("CameraOffsetScale"); | 63 | mPreAdjustCameraOffsetScale = gSavedSettings.getF32("CameraOffsetScale"); |
61 | 64 | ||
62 | childSetValue("mouse_sensitivity", gSavedSettings.getF32("MouseSensitivity")); | 65 | childSetValue("mouse_sensitivity", gSavedSettings.getF32("MouseSensitivity")); |
63 | childSetValue("automatic_fly", gSavedSettings.getBOOL("AutomaticFly")); | ||
64 | childSetValue("invert_mouse", gSavedSettings.getBOOL("InvertMouse")); | 66 | childSetValue("invert_mouse", gSavedSettings.getBOOL("InvertMouse")); |
65 | childSetValue("edit_camera_movement", gSavedSettings.getBOOL("EditCameraMovement")); | 67 | childSetValue("edit_camera_movement", gSavedSettings.getBOOL("EditCameraMovement")); |
66 | childSetValue("appearance_camera_movement", gSavedSettings.getBOOL("AppearanceCameraMovement")); | 68 | childSetValue("appearance_camera_movement", gSavedSettings.getBOOL("AppearanceCameraMovement")); |
@@ -75,6 +77,7 @@ BOOL LLPanelInput::postBuild() | |||
75 | fov_slider->setValue(LLViewerCamera::getInstance()->getView()); | 77 | fov_slider->setValue(LLViewerCamera::getInstance()->getView()); |
76 | 78 | ||
77 | childSetValue("double_click_action", gSavedSettings.getString("DoubleClickAction")); | 79 | childSetValue("double_click_action", gSavedSettings.getString("DoubleClickAction")); |
80 | childSetCommitCallback("double_click_action", onCommitAction, this); | ||
78 | childSetValue("go_action", gSavedSettings.getString("GoAction")); | 81 | childSetValue("go_action", gSavedSettings.getString("GoAction")); |
79 | 82 | ||
80 | childSetValue("Disable camera constraints", gSavedSettings.getBOOL("DisableCameraConstraints")); | 83 | childSetValue("Disable camera constraints", gSavedSettings.getBOOL("DisableCameraConstraints")); |
@@ -95,7 +98,6 @@ void LLPanelInput::apply() | |||
95 | mPreAdjustCameraOffsetScale = childGetValue("camera_offset_scale").asReal(); | 98 | mPreAdjustCameraOffsetScale = childGetValue("camera_offset_scale").asReal(); |
96 | 99 | ||
97 | gSavedSettings.setF32("MouseSensitivity", childGetValue("mouse_sensitivity").asReal()); | 100 | gSavedSettings.setF32("MouseSensitivity", childGetValue("mouse_sensitivity").asReal()); |
98 | gSavedSettings.setBOOL("AutomaticFly", childGetValue("automatic_fly")); | ||
99 | gSavedSettings.setBOOL("InvertMouse", childGetValue("invert_mouse")); | 101 | gSavedSettings.setBOOL("InvertMouse", childGetValue("invert_mouse")); |
100 | gSavedSettings.setBOOL("EditCameraMovement", childGetValue("edit_camera_movement")); | 102 | gSavedSettings.setBOOL("EditCameraMovement", childGetValue("edit_camera_movement")); |
101 | gSavedSettings.setBOOL("AppearanceCameraMovement", childGetValue("appearance_camera_movement")); | 103 | gSavedSettings.setBOOL("AppearanceCameraMovement", childGetValue("appearance_camera_movement")); |
@@ -130,3 +132,14 @@ void LLPanelInput::onClickJoystickSetup(void* user_data) | |||
130 | } | 132 | } |
131 | } | 133 | } |
132 | 134 | ||
135 | // static | ||
136 | void LLPanelInput::onCommitAction(LLUICtrl* ctrl, void* user_data) | ||
137 | { | ||
138 | LLPanelInput* self = (LLPanelInput*)user_data; | ||
139 | LLComboBox* combo = (LLComboBox*)ctrl; | ||
140 | if (self && combo) | ||
141 | { | ||
142 | self->childSetEnabled("go_action_label", combo->getSimple() == "Go"); | ||
143 | self->childSetEnabled("go_action", combo->getSimple() == "Go"); | ||
144 | } | ||
145 | } | ||
diff --git a/linden/indra/newview/llpanelinput.h b/linden/indra/newview/llpanelinput.h index 9a2bebe..29bc04e 100644 --- a/linden/indra/newview/llpanelinput.h +++ b/linden/indra/newview/llpanelinput.h | |||
@@ -47,6 +47,8 @@ public: | |||
47 | 47 | ||
48 | private: | 48 | private: |
49 | static void onClickJoystickSetup(void* user_data); | 49 | static void onClickJoystickSetup(void* user_data); |
50 | static void onCommitAction(LLUICtrl* ctrl, void* user_data); | ||
51 | |||
50 | F32 mPreAdjustFOV; | 52 | F32 mPreAdjustFOV; |
51 | F32 mPreAdjustCameraOffsetScale; | 53 | F32 mPreAdjustCameraOffsetScale; |
52 | }; | 54 | }; |
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp index 39df8b6..c709015 100644 --- a/linden/indra/newview/llpanellogin.cpp +++ b/linden/indra/newview/llpanellogin.cpp | |||
@@ -73,7 +73,7 @@ | |||
73 | #include "lluictrlfactory.h" | 73 | #include "lluictrlfactory.h" |
74 | #include "llhttpclient.h" | 74 | #include "llhttpclient.h" |
75 | #include "llweb.h" | 75 | #include "llweb.h" |
76 | #include "viewerversion.h" | 76 | #include "viewerinfo.h" |
77 | #include "llmediactrl.h" | 77 | #include "llmediactrl.h" |
78 | 78 | ||
79 | #include "llfloatermediabrowser.h" | 79 | #include "llfloatermediabrowser.h" |
@@ -264,25 +264,10 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, | |||
264 | 264 | ||
265 | // childSetAction("quit_btn", onClickQuit, this); | 265 | // childSetAction("quit_btn", onClickQuit, this); |
266 | 266 | ||
267 | std::string imp_channel = gSavedSettings.getString("VersionChannelName"); | 267 | std::string imp_version = ViewerInfo::prettyInfo(); |
268 | std::string imp_version = llformat("%d.%d.%d %s", | ||
269 | ViewerVersion::getImpMajorVersion(), | ||
270 | ViewerVersion::getImpMinorVersion(), | ||
271 | ViewerVersion::getImpPatchVersion(), | ||
272 | ViewerVersion::getImpTestVersion().c_str() ); | ||
273 | |||
274 | std::string ll_channel = ViewerVersion::getLLViewerName(); | ||
275 | std::string ll_version = llformat("%d.%d.%d (%d)", | ||
276 | ViewerVersion::getLLMajorVersion(), | ||
277 | ViewerVersion::getLLMinorVersion(), | ||
278 | ViewerVersion::getLLPatchVersion(), | ||
279 | ViewerVersion::getLLBuildVersion() ); | ||
280 | 268 | ||
281 | LLTextBox* channel_text = getChild<LLTextBox>("channel_text"); | 269 | LLTextBox* channel_text = getChild<LLTextBox>("channel_text"); |
282 | channel_text->setTextArg("[CHANNEL]", imp_channel); | ||
283 | channel_text->setTextArg("[VERSION]", imp_version); | 270 | channel_text->setTextArg("[VERSION]", imp_version); |
284 | channel_text->setTextArg("[ALT_CHANNEL]", ll_channel); | ||
285 | channel_text->setTextArg("[ALT_VERSION]", ll_version); | ||
286 | channel_text->setClickedCallback(onClickVersion); | 271 | channel_text->setClickedCallback(onClickVersion); |
287 | channel_text->setCallbackUserData(this); | 272 | channel_text->setCallbackUserData(this); |
288 | 273 | ||
@@ -931,12 +916,8 @@ void LLPanelLogin::loadLoginPage() | |||
931 | } | 916 | } |
932 | 917 | ||
933 | // Channel and Version | 918 | // Channel and Version |
934 | std::string version = llformat("%d.%d.%d %s", | 919 | char* curl_channel = curl_escape(ViewerInfo::nameWithVariant().c_str(), 0); |
935 | ViewerVersion::getImpMajorVersion(), ViewerVersion::getImpMinorVersion(), | 920 | char* curl_version = curl_escape(ViewerInfo::versionNumbers4().c_str(), 0); |
936 | ViewerVersion::getImpPatchVersion(), ViewerVersion::getImpTestVersion().c_str() ); | ||
937 | |||
938 | char* curl_channel = curl_escape(gSavedSettings.getString("VersionChannelName").c_str(), 0); | ||
939 | char* curl_version = curl_escape(version.c_str(), 0); | ||
940 | 921 | ||
941 | oStr << "&channel=" << curl_channel; | 922 | oStr << "&channel=" << curl_channel; |
942 | oStr << "&version=" << curl_version; | 923 | oStr << "&version=" << curl_version; |
diff --git a/linden/indra/newview/llpanelmsgs.cpp b/linden/indra/newview/llpanelmsgs.cpp index 9e04070..572bcc3 100644 --- a/linden/indra/newview/llpanelmsgs.cpp +++ b/linden/indra/newview/llpanelmsgs.cpp | |||
@@ -70,6 +70,8 @@ BOOL LLPanelMsgs::postBuild() | |||
70 | childSetValue("notify_money_change_checkbox", gSavedSettings.getBOOL("NotifyMoneyChange")); | 70 | childSetValue("notify_money_change_checkbox", gSavedSettings.getBOOL("NotifyMoneyChange")); |
71 | childSetLabelArg("notify_money_change_checkbox", "[CURRENCY]", gHippoGridManager->getConnectedGrid()->getCurrencySymbol()); | 71 | childSetLabelArg("notify_money_change_checkbox", "[CURRENCY]", gHippoGridManager->getConnectedGrid()->getCurrencySymbol()); |
72 | 72 | ||
73 | childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification")); | ||
74 | |||
73 | return TRUE; | 75 | return TRUE; |
74 | } | 76 | } |
75 | 77 | ||
@@ -166,6 +168,8 @@ void LLPanelMsgs::apply() | |||
166 | gSavedSettings.setBOOL("ShowNewInventory", childGetValue("show_new_inventory")); | 168 | gSavedSettings.setBOOL("ShowNewInventory", childGetValue("show_new_inventory")); |
167 | gSavedSettings.setBOOL("ShowInInventory", childGetValue("show_in_inventory")); | 169 | gSavedSettings.setBOOL("ShowInInventory", childGetValue("show_in_inventory")); |
168 | gSavedSettings.setBOOL("NotifyMoneyChange", childGetValue("notify_money_change_checkbox")); | 170 | gSavedSettings.setBOOL("NotifyMoneyChange", childGetValue("notify_money_change_checkbox")); |
171 | |||
172 | gSavedSettings.setBOOL("ChatOnlineNotification", childGetValue("friends_online_notify_checkbox").asBoolean()); | ||
169 | } | 173 | } |
170 | 174 | ||
171 | void LLPanelMsgs::cancel() | 175 | void LLPanelMsgs::cancel() |
diff --git a/linden/indra/newview/llpanelnetwork.cpp b/linden/indra/newview/llpanelnetwork.cpp index 8dc6601..a867a9c 100644 --- a/linden/indra/newview/llpanelnetwork.cpp +++ b/linden/indra/newview/llpanelnetwork.cpp | |||
@@ -44,6 +44,30 @@ | |||
44 | #include "llviewercontrol.h" | 44 | #include "llviewercontrol.h" |
45 | #include "llviewerwindow.h" | 45 | #include "llviewerwindow.h" |
46 | 46 | ||
47 | // project includes | ||
48 | #include "llcheckboxctrl.h" | ||
49 | #include "hippogridmanager.h" | ||
50 | #include "lluictrlfactory.h" | ||
51 | #include "llviewercontrol.h" | ||
52 | #include "llviewermedia.h" | ||
53 | #include "llviewerwindow.h" | ||
54 | #include "llpluginclassmedia.h" | ||
55 | |||
56 | #include "hippogridmanager.h" | ||
57 | #include "llpluginclassmedia.h" | ||
58 | #include "llviewermedia.h" | ||
59 | |||
60 | // helper functions for getting/freeing the web browser media | ||
61 | // if creating/destroying these is too slow, we'll need to create | ||
62 | // a static member and update all our static callbacks | ||
63 | viewer_media_t get_web_media() | ||
64 | { | ||
65 | |||
66 | viewer_media_t media_source = LLViewerMedia::newMediaImpl("", LLUUID::null, 0, 0, 0, 0, "text/html"); | ||
67 | |||
68 | return media_source; | ||
69 | } | ||
70 | |||
47 | bool LLPanelNetwork::sSocksSettingsChanged; | 71 | bool LLPanelNetwork::sSocksSettingsChanged; |
48 | 72 | ||
49 | LLPanelNetwork::LLPanelNetwork() | 73 | LLPanelNetwork::LLPanelNetwork() |
@@ -54,16 +78,16 @@ LLPanelNetwork::LLPanelNetwork() | |||
54 | BOOL LLPanelNetwork::postBuild() | 78 | BOOL LLPanelNetwork::postBuild() |
55 | { | 79 | { |
56 | std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, ""); | 80 | std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, ""); |
57 | childSetText("cache_location", cache_location); | 81 | childSetText("disk_cache_location", cache_location); |
58 | 82 | ||
59 | childSetAction("clear_cache", onClickClearCache, this); | 83 | childSetAction("clear_disk_cache", onClickClearDiskCache, this); |
60 | childSetAction("set_cache", onClickSetCache, this); | 84 | childSetAction("set_disk_cache", onClickSetDiskCache, this); |
61 | childSetAction("reset_cache", onClickResetCache, this); | 85 | childSetAction("reset_disk_cache", onClickResetDiskCache, this); |
62 | 86 | ||
63 | childSetEnabled("connection_port", gSavedSettings.getBOOL("ConnectionPortEnabled")); | 87 | childSetEnabled("connection_port", gSavedSettings.getBOOL("ConnectionPortEnabled")); |
64 | childSetCommitCallback("connection_port_enabled", onCommitPort, this); | 88 | childSetCommitCallback("connection_port_enabled", onCommitPort, this); |
65 | 89 | ||
66 | childSetValue("cache_size", (F32)gSavedSettings.getU32("CacheSize")); | 90 | childSetValue("disk_cache_size", (F32)gSavedSettings.getU32("CacheSize")); |
67 | childSetValue("max_bandwidth", gSavedSettings.getF32("ThrottleBandwidthKBPS")); | 91 | childSetValue("max_bandwidth", gSavedSettings.getF32("ThrottleBandwidthKBPS")); |
68 | childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled")); | 92 | childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled")); |
69 | childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort")); | 93 | childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort")); |
@@ -99,8 +123,48 @@ BOOL LLPanelNetwork::postBuild() | |||
99 | // Socks 5 settings, Set all controls and labels enabled state | 123 | // Socks 5 settings, Set all controls and labels enabled state |
100 | updateProxyEnabled(this, gSavedSettings.getBOOL("Socks5ProxyEnabled"), gSavedSettings.getString("Socks5AuthType")); | 124 | updateProxyEnabled(this, gSavedSettings.getBOOL("Socks5ProxyEnabled"), gSavedSettings.getString("Socks5AuthType")); |
101 | 125 | ||
126 | childSetEnabled("xmlrpc_proxy_editor", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
127 | childSetEnabled("xmlrpc_proxy_port", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
128 | childSetEnabled("xmlrpc_proxy_text_label", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
129 | |||
130 | childSetValue("http_texture_check", gSavedSettings.getBOOL("ImagePipelineUseHTTP")); | ||
131 | childSetValue("speed_rez_check", gSavedSettings.getBOOL("SpeedRez")); | ||
132 | childSetValue("speed_rez_interval_spinner", (F32)gSavedSettings.getU32("SpeedRezInterval")); | ||
133 | childSetCommitCallback("speed_rez_check", onCommitSpeedRezCheckBox, this); | ||
134 | |||
102 | sSocksSettingsChanged = false; | 135 | sSocksSettingsChanged = false; |
103 | 136 | ||
137 | // formerly the Web panel -- MC | ||
138 | childSetAction("clear_web_cache", onClickClearWebCache, this); | ||
139 | childSetCommitCallback("web_proxy_enabled", onCommitWebProxyEnabled, this); | ||
140 | |||
141 | std::string value = gSavedSettings.getBOOL("UseExternalBrowser") ? "external" : "internal"; | ||
142 | childSetValue("use_external_browser", value); | ||
143 | |||
144 | childSetValue("cookies_enabled", gSavedSettings.getBOOL("BrowserCookiesEnabled")); | ||
145 | childSetAction("clear_cookies", onClickClearCookies,this); | ||
146 | |||
147 | childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
148 | childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress")); | ||
149 | childSetValue("web_proxy_port", gSavedSettings.getS32("BrowserProxyPort")); | ||
150 | |||
151 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
152 | { | ||
153 | childSetValue("world_search_editor", gSavedSettings.getString("SearchURLQuery")) ; | ||
154 | } | ||
155 | else | ||
156 | { | ||
157 | childSetValue("world_search_editor", gSavedSettings.getString("SearchURLQueryOpenSim")) ; | ||
158 | } | ||
159 | childSetAction("world_search_reset_default", onClickSearchDefault, this); | ||
160 | childSetAction("world_search_clear", onClickSearchClear, this); | ||
161 | |||
162 | childSetEnabled("proxy_text_label", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
163 | childSetEnabled("web_proxy_editor", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
164 | childSetEnabled("web_proxy_port", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
165 | |||
166 | refresh(); | ||
167 | |||
104 | return TRUE; | 168 | return TRUE; |
105 | } | 169 | } |
106 | 170 | ||
@@ -112,7 +176,7 @@ LLPanelNetwork::~LLPanelNetwork() | |||
112 | 176 | ||
113 | void LLPanelNetwork::apply() | 177 | void LLPanelNetwork::apply() |
114 | { | 178 | { |
115 | gSavedSettings.setU32("CacheSize", childGetValue("cache_size").asInteger()); | 179 | gSavedSettings.setU32("CacheSize", childGetValue("disk_cache_size").asInteger()); |
116 | gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal()); | 180 | gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal()); |
117 | gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled")); | 181 | gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled")); |
118 | gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger()); | 182 | gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger()); |
@@ -130,6 +194,10 @@ void LLPanelNetwork::apply() | |||
130 | gSavedSettings.setString("Socks5Username", childGetValue("socks5_proxy_username")); | 194 | gSavedSettings.setString("Socks5Username", childGetValue("socks5_proxy_username")); |
131 | gSavedSettings.setString("Socks5Password", childGetValue("socks5_proxy_password")); | 195 | gSavedSettings.setString("Socks5Password", childGetValue("socks5_proxy_password")); |
132 | 196 | ||
197 | gSavedSettings.setBOOL("ImagePipelineUseHTTP", childGetValue("http_texture_check")); | ||
198 | gSavedSettings.setBOOL("SpeedRez", childGetValue("speed_rez_check")); | ||
199 | gSavedSettings.setU32("SpeedRezInterval", childGetValue("speed_rez_interval_spinner").asReal()); | ||
200 | |||
133 | if (sSocksSettingsChanged) | 201 | if (sSocksSettingsChanged) |
134 | { | 202 | { |
135 | if (LLStartUp::getStartupState() != STATE_LOGIN_WAIT) | 203 | if (LLStartUp::getStartupState() != STATE_LOGIN_WAIT) |
@@ -142,14 +210,62 @@ void LLPanelNetwork::apply() | |||
142 | LLSocks::getInstance()->updated(); | 210 | LLSocks::getInstance()->updated(); |
143 | } | 211 | } |
144 | } | 212 | } |
213 | |||
214 | // formerly the Web panel -- MC | ||
215 | gSavedSettings.setBOOL("BrowserCookiesEnabled", childGetValue("cookies_enabled")); | ||
216 | |||
217 | bool proxy_enable = childGetValue("web_proxy_enabled"); | ||
218 | std::string proxy_address = childGetValue("web_proxy_editor"); | ||
219 | int proxy_port = childGetValue("web_proxy_port"); | ||
220 | gSavedSettings.setBOOL("BrowserProxyEnabled", proxy_enable); | ||
221 | gSavedSettings.setString("BrowserProxyAddress", proxy_address); | ||
222 | gSavedSettings.setS32("BrowserProxyPort", proxy_port); | ||
223 | LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port); | ||
224 | |||
225 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
226 | { | ||
227 | gSavedSettings.setString("SearchURLQuery", childGetValue("world_search_editor")); | ||
228 | } | ||
229 | else | ||
230 | { | ||
231 | gSavedSettings.setString("SearchURLQueryOpenSim", childGetValue("world_search_editor")); | ||
232 | } | ||
233 | |||
234 | bool value = childGetValue("use_external_browser").asString() == "external" ? true : false; | ||
235 | gSavedSettings.setBOOL("UseExternalBrowser", value); | ||
236 | |||
237 | viewer_media_t media_source = get_web_media(); | ||
238 | if (media_source && media_source->hasMedia()) | ||
239 | { | ||
240 | media_source->getMediaPlugin()->enable_cookies(childGetValue("cookies_enabled")); | ||
241 | |||
242 | bool proxy_enable = childGetValue("web_proxy_enabled"); | ||
243 | std::string proxy_address = childGetValue("web_proxy_editor"); | ||
244 | int proxy_port = childGetValue("web_proxy_port"); | ||
245 | media_source->getMediaPlugin()->proxy_setup(proxy_enable, proxy_address, proxy_port); | ||
246 | } | ||
145 | } | 247 | } |
146 | 248 | ||
147 | void LLPanelNetwork::cancel() | 249 | void LLPanelNetwork::cancel() |
148 | { | 250 | { |
149 | } | 251 | } |
150 | 252 | ||
253 | void LLPanelNetwork::refresh() | ||
254 | { | ||
255 | if (childGetValue("speed_rez_check").asBoolean()) | ||
256 | { | ||
257 | childEnable("speed_rez_interval_spinner"); | ||
258 | childEnable("speed_rez_seconds_text"); | ||
259 | } | ||
260 | else | ||
261 | { | ||
262 | childDisable("speed_rez_interval_spinner"); | ||
263 | childDisable("speed_rez_seconds_text"); | ||
264 | } | ||
265 | } | ||
266 | |||
151 | // static | 267 | // static |
152 | void LLPanelNetwork::onClickClearCache(void*) | 268 | void LLPanelNetwork::onClickClearDiskCache(void*) |
153 | { | 269 | { |
154 | // flag client cache for clearing next time the client runs | 270 | // flag client cache for clearing next time the client runs |
155 | gSavedSettings.setBOOL("PurgeCacheOnNextStartup", TRUE); | 271 | gSavedSettings.setBOOL("PurgeCacheOnNextStartup", TRUE); |
@@ -157,7 +273,7 @@ void LLPanelNetwork::onClickClearCache(void*) | |||
157 | } | 273 | } |
158 | 274 | ||
159 | // static | 275 | // static |
160 | void LLPanelNetwork::onClickSetCache(void* user_data) | 276 | void LLPanelNetwork::onClickSetDiskCache(void* user_data) |
161 | { | 277 | { |
162 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | 278 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; |
163 | 279 | ||
@@ -173,19 +289,19 @@ void LLPanelNetwork::onClickSetCache(void* user_data) | |||
173 | std::string dir_name = picker.getDirName(); | 289 | std::string dir_name = picker.getDirName(); |
174 | if (!dir_name.empty() && dir_name != cur_name) | 290 | if (!dir_name.empty() && dir_name != cur_name) |
175 | { | 291 | { |
176 | self->childSetText("cache_location", dir_name); | 292 | self->childSetText("disk_cache_location", dir_name); |
177 | LLNotifications::instance().add("CacheWillBeMoved"); | 293 | LLNotifications::instance().add("CacheWillBeMoved"); |
178 | gSavedSettings.setString("NewCacheLocation", dir_name); | 294 | gSavedSettings.setString("NewCacheLocation", dir_name); |
179 | } | 295 | } |
180 | else | 296 | else |
181 | { | 297 | { |
182 | std::string cache_location = gDirUtilp->getCacheDir(); | 298 | std::string cache_location = gDirUtilp->getCacheDir(); |
183 | self->childSetText("cache_location", cache_location); | 299 | self->childSetText("disk_cache_location", cache_location); |
184 | } | 300 | } |
185 | } | 301 | } |
186 | 302 | ||
187 | // static | 303 | // static |
188 | void LLPanelNetwork::onClickResetCache(void* user_data) | 304 | void LLPanelNetwork::onClickResetDiskCache(void* user_data) |
189 | { | 305 | { |
190 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | 306 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; |
191 | if (!gSavedSettings.getString("CacheLocation").empty()) | 307 | if (!gSavedSettings.getString("CacheLocation").empty()) |
@@ -194,7 +310,7 @@ void LLPanelNetwork::onClickResetCache(void* user_data) | |||
194 | LLNotifications::instance().add("CacheWillBeMoved"); | 310 | LLNotifications::instance().add("CacheWillBeMoved"); |
195 | } | 311 | } |
196 | std::string cache_location = gDirUtilp->getCacheDir(true); | 312 | std::string cache_location = gDirUtilp->getCacheDir(true); |
197 | self->childSetText("cache_location", cache_location); | 313 | self->childSetText("disk_cache_location", cache_location); |
198 | } | 314 | } |
199 | 315 | ||
200 | // static | 316 | // static |
@@ -300,3 +416,104 @@ void LLPanelNetwork::updateProxyEnabled(LLPanelNetwork * self, bool enabled, std | |||
300 | self->childSetEnabled("xmlrpc_proxy_port", !enabled); | 416 | self->childSetEnabled("xmlrpc_proxy_port", !enabled); |
301 | self->childSetEnabled("xmlrpc_proxy_text_label", !enabled); | 417 | self->childSetEnabled("xmlrpc_proxy_text_label", !enabled); |
302 | } | 418 | } |
419 | |||
420 | // static | ||
421 | void LLPanelNetwork::onClickClearWebCache(void*) | ||
422 | { | ||
423 | LLNotifications::instance().add("ConfirmClearBrowserCache", LLSD(), LLSD(), callback_clear_browser_cache); | ||
424 | } | ||
425 | |||
426 | //static | ||
427 | bool LLPanelNetwork::callback_clear_browser_cache(const LLSD& notification, const LLSD& response) | ||
428 | { | ||
429 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
430 | if ( option == 0 ) // YES | ||
431 | { | ||
432 | viewer_media_t media_source = get_web_media(); | ||
433 | if (media_source && media_source->hasMedia()) | ||
434 | media_source->getMediaPlugin()->clear_cache(); | ||
435 | } | ||
436 | return false; | ||
437 | } | ||
438 | |||
439 | // static | ||
440 | void LLPanelNetwork::onClickClearCookies(void*) | ||
441 | { | ||
442 | LLNotifications::instance().add("ConfirmClearCookies", LLSD(), LLSD(), callback_clear_cookies); | ||
443 | } | ||
444 | |||
445 | //static | ||
446 | bool LLPanelNetwork::callback_clear_cookies(const LLSD& notification, const LLSD& response) | ||
447 | { | ||
448 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
449 | if ( option == 0 ) // YES | ||
450 | { | ||
451 | viewer_media_t media_source = get_web_media(); | ||
452 | if (media_source && media_source->hasMedia()) | ||
453 | media_source->getMediaPlugin()->clear_cookies(); | ||
454 | } | ||
455 | return false; | ||
456 | } | ||
457 | |||
458 | // static | ||
459 | void LLPanelNetwork::onCommitCookies(LLUICtrl* ctrl, void* data) | ||
460 | { | ||
461 | LLPanelNetwork* self = (LLPanelNetwork*)data; | ||
462 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
463 | |||
464 | if (!self || !check) return; | ||
465 | |||
466 | viewer_media_t media_source = get_web_media(); | ||
467 | if (media_source && media_source->hasMedia()) | ||
468 | media_source->getMediaPlugin()->enable_cookies(check->get()); | ||
469 | } | ||
470 | |||
471 | // static | ||
472 | void LLPanelNetwork::onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data) | ||
473 | { | ||
474 | LLPanelNetwork* self = (LLPanelNetwork*)data; | ||
475 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
476 | |||
477 | if (!self || !check) return; | ||
478 | self->childSetEnabled("web_proxy_editor", check->get()); | ||
479 | self->childSetEnabled("web_proxy_port", check->get()); | ||
480 | self->childSetEnabled("proxy_text_label", check->get()); | ||
481 | } | ||
482 | |||
483 | // static | ||
484 | void LLPanelNetwork::onClickSearchDefault(void* user_data) | ||
485 | { | ||
486 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | ||
487 | LLControlVariable* controlp = | ||
488 | (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
489 | ? | ||
490 | gSavedSettings.getControl("SearchURLQuery") | ||
491 | : | ||
492 | gSavedSettings.getControl("SearchURLQueryOpenSim"); | ||
493 | |||
494 | if (controlp) | ||
495 | { | ||
496 | self->childSetValue("world_search_editor",controlp->getDefault().asString()) ; | ||
497 | } | ||
498 | else | ||
499 | { | ||
500 | llwarns << "SearchURLQuery or SearchURLQueryOpenSim missing from settings.xml - thats bad!" << llendl; | ||
501 | } | ||
502 | } | ||
503 | |||
504 | // static | ||
505 | void LLPanelNetwork::onClickSearchClear(void* user_data) | ||
506 | { | ||
507 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | ||
508 | self->childSetValue("world_search_editor","") ; | ||
509 | } | ||
510 | |||
511 | //static | ||
512 | void LLPanelNetwork::onCommitSpeedRezCheckBox(LLUICtrl* ctrl, void* user_data) | ||
513 | { | ||
514 | LLPanelNetwork* self = (LLPanelNetwork*)user_data; | ||
515 | if (self) | ||
516 | { | ||
517 | self->refresh(); | ||
518 | } | ||
519 | } | ||
diff --git a/linden/indra/newview/llpanelnetwork.h b/linden/indra/newview/llpanelnetwork.h index 628f713..b8e5618 100644 --- a/linden/indra/newview/llpanelnetwork.h +++ b/linden/indra/newview/llpanelnetwork.h | |||
@@ -47,9 +47,13 @@ public: | |||
47 | void cancel(); | 47 | void cancel(); |
48 | 48 | ||
49 | private: | 49 | private: |
50 | static void onClickClearCache(void*); | 50 | void refresh(); |
51 | static void onClickSetCache(void*); | 51 | |
52 | static void onClickResetCache(void*); | 52 | static void onCommitSpeedRezCheckBox(LLUICtrl* ctrl, void* user_data); |
53 | |||
54 | static void onClickClearDiskCache(void*); | ||
55 | static void onClickSetDiskCache(void*); | ||
56 | static void onClickResetDiskCache(void*); | ||
53 | static void onCommitPort(LLUICtrl* ctrl, void*); | 57 | static void onCommitPort(LLUICtrl* ctrl, void*); |
54 | static void onCommitXMLRPCProxyEnabled(LLUICtrl* ctrl, void* data); | 58 | static void onCommitXMLRPCProxyEnabled(LLUICtrl* ctrl, void* data); |
55 | static void onCommitSocks5ProxyEnabled(LLUICtrl* ctrl, void* data); | 59 | static void onCommitSocks5ProxyEnabled(LLUICtrl* ctrl, void* data); |
@@ -60,6 +64,16 @@ private: | |||
60 | 64 | ||
61 | static bool sSocksSettingsChanged; | 65 | static bool sSocksSettingsChanged; |
62 | 66 | ||
67 | // formerly the web panel -- MC | ||
68 | static void onClickClearWebCache(void*); | ||
69 | static void onClickClearCookies(void*); | ||
70 | static void onClickSearchDefault(void* user_data); | ||
71 | static void onClickSearchClear(void* user_data); | ||
72 | static bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response); | ||
73 | static bool callback_clear_cookies(const LLSD& notification, const LLSD& response); | ||
74 | static void onCommitCookies(LLUICtrl* ctrl, void* data); | ||
75 | static void onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data); | ||
76 | |||
63 | }; | 77 | }; |
64 | 78 | ||
65 | #endif | 79 | #endif |
diff --git a/linden/indra/newview/llpanelweb.cpp b/linden/indra/newview/llpanelweb.cpp deleted file mode 100644 index 93441dd..0000000 --- a/linden/indra/newview/llpanelweb.cpp +++ /dev/null | |||
@@ -1,234 +0,0 @@ | |||
1 | /** | ||
2 | * @file LLPanelWeb.cpp | ||
3 | * @brief Network preferences panel | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2009, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at | ||
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | ||
23 | * By copying, modifying or distributing this software, you acknowledge | ||
24 | * that you have read and understood your obligations described above, | ||
25 | * and agree to abide by those obligations. | ||
26 | * | ||
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
29 | * COMPLETENESS OR PERFORMANCE. | ||
30 | * $/LicenseInfo$ | ||
31 | */ | ||
32 | |||
33 | #include "llviewerprecompiledheaders.h" | ||
34 | |||
35 | // file include | ||
36 | #include "llpanelweb.h" | ||
37 | |||
38 | // project includes | ||
39 | #include "llcheckboxctrl.h" | ||
40 | #include "hippogridmanager.h" | ||
41 | #include "lluictrlfactory.h" | ||
42 | #include "llviewercontrol.h" | ||
43 | #include "llviewermedia.h" | ||
44 | #include "llviewerwindow.h" | ||
45 | #include "llpluginclassmedia.h" | ||
46 | |||
47 | // helper functions for getting/freeing the web browser media | ||
48 | // if creating/destroying these is too slow, we'll need to create | ||
49 | // a static member and update all our static callbacks | ||
50 | viewer_media_t get_web_media() | ||
51 | { | ||
52 | |||
53 | viewer_media_t media_source = LLViewerMedia::newMediaImpl("", LLUUID::null, 0, 0, 0, 0, "text/html"); | ||
54 | |||
55 | return media_source; | ||
56 | } | ||
57 | |||
58 | LLPanelWeb::LLPanelWeb() | ||
59 | { | ||
60 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_web.xml"); | ||
61 | } | ||
62 | |||
63 | BOOL LLPanelWeb::postBuild() | ||
64 | { | ||
65 | childSetAction("clear_cache", onClickClearCache, this); | ||
66 | childSetCommitCallback("web_proxy_enabled", onCommitWebProxyEnabled, this); | ||
67 | |||
68 | std::string value = gSavedSettings.getBOOL("UseExternalBrowser") ? "external" : "internal"; | ||
69 | childSetValue("use_external_browser", value); | ||
70 | |||
71 | childSetValue("cookies_enabled", gSavedSettings.getBOOL("BrowserCookiesEnabled")); | ||
72 | childSetAction("clear_cookies", onClickClearCookies,this); | ||
73 | |||
74 | childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
75 | childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress")); | ||
76 | childSetValue("web_proxy_port", gSavedSettings.getS32("BrowserProxyPort")); | ||
77 | |||
78 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
79 | { | ||
80 | childSetValue("world_search_editor", gSavedSettings.getString("SearchURLQuery")) ; | ||
81 | } | ||
82 | else | ||
83 | { | ||
84 | childSetValue("world_search_editor", gSavedSettings.getString("SearchURLQueryOpenSim")) ; | ||
85 | } | ||
86 | childSetAction("world_search_reset_default", onClickDefault, this); | ||
87 | childSetAction("world_search_clear", onClickClear, this); | ||
88 | |||
89 | childSetEnabled("proxy_text_label", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
90 | childSetEnabled("web_proxy_editor", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
91 | childSetEnabled("web_proxy_port", gSavedSettings.getBOOL("BrowserProxyEnabled")); | ||
92 | |||
93 | return TRUE; | ||
94 | } | ||
95 | |||
96 | |||
97 | |||
98 | LLPanelWeb::~LLPanelWeb() | ||
99 | { | ||
100 | // Children all cleaned up by default view destructor. | ||
101 | } | ||
102 | |||
103 | void LLPanelWeb::apply() | ||
104 | { | ||
105 | gSavedSettings.setBOOL("BrowserCookiesEnabled", childGetValue("cookies_enabled")); | ||
106 | |||
107 | bool proxy_enable = childGetValue("web_proxy_enabled"); | ||
108 | std::string proxy_address = childGetValue("web_proxy_editor"); | ||
109 | int proxy_port = childGetValue("web_proxy_port"); | ||
110 | gSavedSettings.setBOOL("BrowserProxyEnabled", proxy_enable); | ||
111 | gSavedSettings.setString("BrowserProxyAddress", proxy_address); | ||
112 | gSavedSettings.setS32("BrowserProxyPort", proxy_port); | ||
113 | LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port); | ||
114 | |||
115 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
116 | { | ||
117 | gSavedSettings.setString("SearchURLQuery", childGetValue("world_search_editor")); | ||
118 | } | ||
119 | else | ||
120 | { | ||
121 | gSavedSettings.setString("SearchURLQueryOpenSim", childGetValue("world_search_editor")); | ||
122 | } | ||
123 | |||
124 | bool value = childGetValue("use_external_browser").asString() == "external" ? true : false; | ||
125 | gSavedSettings.setBOOL("UseExternalBrowser", value); | ||
126 | |||
127 | viewer_media_t media_source = get_web_media(); | ||
128 | if (media_source && media_source->hasMedia()) | ||
129 | { | ||
130 | media_source->getMediaPlugin()->enable_cookies(childGetValue("cookies_enabled")); | ||
131 | |||
132 | bool proxy_enable = childGetValue("web_proxy_enabled"); | ||
133 | std::string proxy_address = childGetValue("web_proxy_editor"); | ||
134 | int proxy_port = childGetValue("web_proxy_port"); | ||
135 | media_source->getMediaPlugin()->proxy_setup(proxy_enable, proxy_address, proxy_port); | ||
136 | } | ||
137 | } | ||
138 | |||
139 | void LLPanelWeb::cancel() | ||
140 | { | ||
141 | } | ||
142 | |||
143 | // static | ||
144 | void LLPanelWeb::onClickClearCache(void*) | ||
145 | { | ||
146 | LLNotifications::instance().add("ConfirmClearBrowserCache", LLSD(), LLSD(), callback_clear_browser_cache); | ||
147 | } | ||
148 | |||
149 | //static | ||
150 | bool LLPanelWeb::callback_clear_browser_cache(const LLSD& notification, const LLSD& response) | ||
151 | { | ||
152 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
153 | if ( option == 0 ) // YES | ||
154 | { | ||
155 | viewer_media_t media_source = get_web_media(); | ||
156 | if (media_source && media_source->hasMedia()) | ||
157 | media_source->getMediaPlugin()->clear_cache(); | ||
158 | } | ||
159 | return false; | ||
160 | } | ||
161 | |||
162 | // static | ||
163 | void LLPanelWeb::onClickClearCookies(void*) | ||
164 | { | ||
165 | LLNotifications::instance().add("ConfirmClearCookies", LLSD(), LLSD(), callback_clear_cookies); | ||
166 | } | ||
167 | |||
168 | //static | ||
169 | bool LLPanelWeb::callback_clear_cookies(const LLSD& notification, const LLSD& response) | ||
170 | { | ||
171 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
172 | if ( option == 0 ) // YES | ||
173 | { | ||
174 | viewer_media_t media_source = get_web_media(); | ||
175 | if (media_source && media_source->hasMedia()) | ||
176 | media_source->getMediaPlugin()->clear_cookies(); | ||
177 | } | ||
178 | return false; | ||
179 | } | ||
180 | |||
181 | // static | ||
182 | void LLPanelWeb::onCommitCookies(LLUICtrl* ctrl, void* data) | ||
183 | { | ||
184 | LLPanelWeb* self = (LLPanelWeb*)data; | ||
185 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
186 | |||
187 | if (!self || !check) return; | ||
188 | |||
189 | viewer_media_t media_source = get_web_media(); | ||
190 | if (media_source && media_source->hasMedia()) | ||
191 | media_source->getMediaPlugin()->enable_cookies(check->get()); | ||
192 | } | ||
193 | // static | ||
194 | void LLPanelWeb::onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data) | ||
195 | { | ||
196 | LLPanelWeb* self = (LLPanelWeb*)data; | ||
197 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
198 | |||
199 | if (!self || !check) return; | ||
200 | self->childSetEnabled("web_proxy_editor", check->get()); | ||
201 | self->childSetEnabled("web_proxy_port", check->get()); | ||
202 | self->childSetEnabled("proxy_text_label", check->get()); | ||
203 | |||
204 | |||
205 | } | ||
206 | |||
207 | // static | ||
208 | void LLPanelWeb::onClickDefault(void* user_data) | ||
209 | { | ||
210 | LLPanelWeb* self = (LLPanelWeb*)user_data; | ||
211 | LLControlVariable* controlp = | ||
212 | (gHippoGridManager->getConnectedGrid()->isSecondLife()) | ||
213 | ? | ||
214 | gSavedSettings.getControl("SearchURLQuery") | ||
215 | : | ||
216 | gSavedSettings.getControl("SearchURLQueryOpenSim"); | ||
217 | |||
218 | if (controlp) | ||
219 | { | ||
220 | self->childSetValue("world_search_editor",controlp->getDefault().asString()) ; | ||
221 | } | ||
222 | else | ||
223 | { | ||
224 | llwarns << "SearchURLQuery or SearchURLQueryOpenSim missing from settings.xml - thats bad!" << llendl; | ||
225 | } | ||
226 | |||
227 | } | ||
228 | |||
229 | // static | ||
230 | void LLPanelWeb::onClickClear(void* user_data) | ||
231 | { | ||
232 | LLPanelWeb* self = (LLPanelWeb*)user_data; | ||
233 | self->childSetValue("world_search_editor","") ; | ||
234 | } | ||
diff --git a/linden/indra/newview/llpanelweb.h b/linden/indra/newview/llpanelweb.h deleted file mode 100644 index 3282827..0000000 --- a/linden/indra/newview/llpanelweb.h +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | /** | ||
2 | * @file llpanelweb.h | ||
3 | * @brief Web browser preferences panel | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2005&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2005-2009, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at | ||
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | ||
23 | * By copying, modifying or distributing this software, you acknowledge | ||
24 | * that you have read and understood your obligations described above, | ||
25 | * and agree to abide by those obligations. | ||
26 | * | ||
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
29 | * COMPLETENESS OR PERFORMANCE. | ||
30 | * $/LicenseInfo$ | ||
31 | */ | ||
32 | |||
33 | #ifndef LL_LLPANELWEB_H | ||
34 | #define LL_LLPANELWEB_H | ||
35 | |||
36 | #include "llpanel.h" | ||
37 | |||
38 | class LLPanelWeb : public LLPanel | ||
39 | { | ||
40 | public: | ||
41 | LLPanelWeb(); | ||
42 | ~LLPanelWeb(); | ||
43 | |||
44 | BOOL postBuild(); | ||
45 | |||
46 | void apply(); | ||
47 | void cancel(); | ||
48 | |||
49 | private: | ||
50 | static void onClickClearCache(void*); | ||
51 | static void onClickClearCookies(void*); | ||
52 | static void onClickDefault(void* user_data); | ||
53 | static void onClickClear(void* user_data); | ||
54 | static bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response); | ||
55 | static bool callback_clear_cookies(const LLSD& notification, const LLSD& response); | ||
56 | static void onCommitCookies(LLUICtrl* ctrl, void* data); | ||
57 | static void onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data); | ||
58 | }; | ||
59 | |||
60 | #endif | ||
diff --git a/linden/indra/newview/llprefsadvanced.cpp b/linden/indra/newview/llprefsadvanced.cpp index f1b2428..a9500f7 100644 --- a/linden/indra/newview/llprefsadvanced.cpp +++ b/linden/indra/newview/llprefsadvanced.cpp | |||
@@ -32,14 +32,11 @@ | |||
32 | 32 | ||
33 | #include "llcombobox.h" | 33 | #include "llcombobox.h" |
34 | 34 | ||
35 | #include "floatercommandline.h" | ||
36 | #include "llagent.h" | 35 | #include "llagent.h" |
37 | #include "llprefsadvanced.h" | 36 | #include "llprefsadvanced.h" |
38 | #include "llviewercontrol.h" | 37 | #include "llviewercontrol.h" |
39 | #include "llviewermenu.h" | 38 | #include "llviewermenu.h" |
40 | #include "llvoavatar.h" | 39 | #include "llvoavatar.h" |
41 | #include "lgghunspell_wrapper.h" | ||
42 | #include "lggautocorrectfloater.h" | ||
43 | #include "llcombobox.h" | 40 | #include "llcombobox.h" |
44 | #include "llcolorswatch.h" | 41 | #include "llcolorswatch.h" |
45 | #include "llstartup.h" | 42 | #include "llstartup.h" |
@@ -57,9 +54,6 @@ LLPrefsAdvanced::LLPrefsAdvanced() | |||
57 | sInstance = this; | 54 | sInstance = this; |
58 | 55 | ||
59 | childSetCommitCallback("speed_rez_check", onCommitCheckBox, this); | 56 | childSetCommitCallback("speed_rez_check", onCommitCheckBox, this); |
60 | childSetCommitCallback("command_line_check", onCommitCheckBox, this); | ||
61 | |||
62 | childSetAction("command_line_btn", onClickCommandLine, this); | ||
63 | } | 57 | } |
64 | 58 | ||
65 | LLPrefsAdvanced::~LLPrefsAdvanced() | 59 | LLPrefsAdvanced::~LLPrefsAdvanced() |
@@ -68,17 +62,6 @@ LLPrefsAdvanced::~LLPrefsAdvanced() | |||
68 | sInstance = NULL; | 62 | sInstance = NULL; |
69 | } | 63 | } |
70 | 64 | ||
71 | void LLPrefsAdvanced::initHelpBtn(const std::string& name, const std::string& xml_alert) | ||
72 | { | ||
73 | childSetAction(name, onClickHelp, new std::string(xml_alert)); | ||
74 | } | ||
75 | |||
76 | void LLPrefsAdvanced::onClickHelp(void* data) | ||
77 | { | ||
78 | std::string* xml_alert = (std::string*)data; | ||
79 | LLNotifications::instance().add(*xml_alert); | ||
80 | } | ||
81 | |||
82 | BOOL LLPrefsAdvanced::postBuild() | 65 | BOOL LLPrefsAdvanced::postBuild() |
83 | { | 66 | { |
84 | childSetValue("disable_log_screen_check", gSavedSettings.getBOOL("DisableLoginLogoutScreens")); | 67 | childSetValue("disable_log_screen_check", gSavedSettings.getBOOL("DisableLoginLogoutScreens")); |
@@ -86,23 +69,15 @@ BOOL LLPrefsAdvanced::postBuild() | |||
86 | 69 | ||
87 | static BOOL* sShowClientNameTag = rebind_llcontrol<BOOL>("ShowClientNameTag", &gSavedSettings, true); | 70 | static BOOL* sShowClientNameTag = rebind_llcontrol<BOOL>("ShowClientNameTag", &gSavedSettings, true); |
88 | childSetValue("client_name_tag_check", (*sShowClientNameTag)); | 71 | childSetValue("client_name_tag_check", (*sShowClientNameTag)); |
89 | static BOOL* sShowClientColor = rebind_llcontrol<BOOL>("ShowClientColor", &gSavedSettings, true); | ||
90 | childSetValue("client_name_color_check", (*sShowClientColor)); | ||
91 | childSetValue("client_name_hover_check", gSavedSettings.getBOOL("ShowClientNameHoverTip")); | 72 | childSetValue("client_name_hover_check", gSavedSettings.getBOOL("ShowClientNameHoverTip")); |
92 | childSetValue("client_name_tag_broadcast_check", gSavedSettings.getBOOL("ShowMyClientTagToOthers")); | 73 | childSetValue("client_name_tag_broadcast_check", gSavedSettings.getBOOL("ShowMyClientTagToOthers")); |
93 | getChild<LLColorSwatchCtrl>("client_tag_color")->set(gSavedSettings.getColor4("ImprudenceTagColor")); | ||
94 | mClientTagColor = gSavedSettings.getColor4("ImprudenceTagColor"); | ||
95 | 74 | ||
96 | childSetValue("http_texture_check", gSavedSettings.getBOOL("ImagePipelineUseHTTP")); | ||
97 | childSetValue("speed_rez_check", gSavedSettings.getBOOL("SpeedRez")); | ||
98 | childSetValue("speed_rez_interval_spinner", (F32)gSavedSettings.getU32("SpeedRezInterval")); | ||
99 | childSetValue("appearance_anim_check", gSavedSettings.getBOOL("AppearanceAnimate")); | 75 | childSetValue("appearance_anim_check", gSavedSettings.getBOOL("AppearanceAnimate")); |
100 | childSetValue("legacy_pie_menu_checkbox", gSavedSettings.getBOOL("LegacyPieEnabled")); | 76 | childSetValue("legacy_pie_menu_checkbox", gSavedSettings.getBOOL("LegacyPieEnabled")); |
101 | childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic")); | 77 | childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic")); |
102 | childSetValue("allow_mupose", gSavedSettings.getBOOL("AllowMUpose")); | 78 | childSetValue("allow_mupose", gSavedSettings.getBOOL("AllowMUpose")); |
103 | childSetValue("auto_close_ooc", gSavedSettings.getBOOL("AutoCloseOOC")); | 79 | childSetValue("auto_close_ooc", gSavedSettings.getBOOL("AutoCloseOOC")); |
104 | childSetValue("shadows_check", gSavedSettings.getBOOL("ShadowsEnabled")); | 80 | childSetValue("shadows_check", gSavedSettings.getBOOL("ShadowsEnabled")); |
105 | childSetValue("command_line_check", gSavedSettings.getBOOL("CmdLineChatbarEnabled")); | ||
106 | 81 | ||
107 | childSetValue("lightshare_combo", | 82 | childSetValue("lightshare_combo", |
108 | LLSD((S32)gSavedSettings.getU32("LightShareAllowed"))); | 83 | LLSD((S32)gSavedSettings.getU32("LightShareAllowed"))); |
@@ -110,19 +85,20 @@ BOOL LLPrefsAdvanced::postBuild() | |||
110 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); | 85 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); |
111 | crash_behavior_combobox->setCurrentByIndex(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING)); | 86 | crash_behavior_combobox->setCurrentByIndex(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING)); |
112 | 87 | ||
113 | getChild<LLComboBox>("EmeraldSpellBase")->setCommitCallback(onSpellBaseComboBoxCommit); | ||
114 | getChild<LLButton>("EmSpell_EditCustom")->setClickedCallback(onSpellEditCustom, this); | ||
115 | getChild<LLButton>("EmSpell_GetMore")->setClickedCallback(onSpellGetMore, this); | ||
116 | getChild<LLButton>("EmSpell_Add")->setClickedCallback(onSpellAdd, this); | ||
117 | getChild<LLButton>("EmSpell_Remove")->setClickedCallback(onSpellRemove, this); | ||
118 | |||
119 | getChild<LLButton>("ac_button")->setClickedCallback(onAutoCorrectButton,this); | ||
120 | initHelpBtn("EmeraldHelp_SpellCheck", "EmeraldHelp_SpellCheck"); | ||
121 | |||
122 | getChild<LLButton>("reset_cloud_this_account")->setClickedCallback(onResetThisCloudButton,this); | 88 | getChild<LLButton>("reset_cloud_this_account")->setClickedCallback(onResetThisCloudButton,this); |
123 | getChild<LLButton>("save_cloud_this_account")->setClickedCallback(onSaveThisCloudButton,this); | 89 | getChild<LLButton>("save_cloud_this_account")->setClickedCallback(onSaveThisCloudButton,this); |
124 | getChild<LLButton>("save_cloud_any_account")->setClickedCallback(onSaveAnyoneCloudButton,this); | 90 | getChild<LLButton>("save_cloud_any_account")->setClickedCallback(onSaveAnyoneCloudButton,this); |
125 | 91 | ||
92 | childSetValue("automatic_fly", gSavedSettings.getBOOL("AutomaticFly")); | ||
93 | |||
94 | static BOOL* sEnableWindlightRemote = rebind_llcontrol<BOOL>("EnableWindlightRemote", &gSavedSettings, true); | ||
95 | childSetValue("toggle_windlight_control", (*sEnableWindlightRemote)); | ||
96 | mWLControl = (*sEnableWindlightRemote); | ||
97 | |||
98 | childSetValue("script_errors_as_chat", gSavedSettings.getBOOL("ScriptErrorsAsChat")); | ||
99 | childSetValue("show_timestamps_check", gSavedSettings.getBOOL("ShowTimestamps")); | ||
100 | childSetValue("arrow_keys_move_avatar_check", gSavedSettings.getBOOL("ArrowKeysMoveAvatar")); | ||
101 | |||
126 | refresh(); | 102 | refresh(); |
127 | 103 | ||
128 | return TRUE; | 104 | return TRUE; |
@@ -133,18 +109,11 @@ void LLPrefsAdvanced::apply() | |||
133 | gSavedSettings.setBOOL("DisableLoginLogoutScreens", childGetValue("disable_log_screen_check")); | 109 | gSavedSettings.setBOOL("DisableLoginLogoutScreens", childGetValue("disable_log_screen_check")); |
134 | gSavedSettings.setBOOL("DisableTeleportScreens", childGetValue("disable_tp_screen_check")); | 110 | gSavedSettings.setBOOL("DisableTeleportScreens", childGetValue("disable_tp_screen_check")); |
135 | gSavedSettings.setBOOL("ShowClientNameTag", childGetValue("client_name_tag_check")); | 111 | gSavedSettings.setBOOL("ShowClientNameTag", childGetValue("client_name_tag_check")); |
136 | gSavedSettings.setBOOL("ShowClientColor", childGetValue("client_name_color_check")); | ||
137 | gSavedSettings.setBOOL("ShowClientNameHoverTip", childGetValue("client_name_hover_check")); | 112 | gSavedSettings.setBOOL("ShowClientNameHoverTip", childGetValue("client_name_hover_check")); |
138 | gSavedSettings.setColor4("ImprudenceTagColor", getChild<LLColorSwatchCtrl>("client_tag_color")->get()); | ||
139 | mClientTagColor = getChild<LLColorSwatchCtrl>("client_tag_color")->get(); | ||
140 | 113 | ||
141 | gSavedSettings.setBOOL("ImagePipelineUseHTTP", childGetValue("http_texture_check")); | ||
142 | gSavedSettings.setBOOL("SpeedRez", childGetValue("speed_rez_check")); | ||
143 | gSavedSettings.setU32("SpeedRezInterval", childGetValue("speed_rez_interval_spinner").asReal()); | ||
144 | gSavedSettings.setBOOL("AppearanceAnimate", childGetValue("appearance_anim_check")); | 114 | gSavedSettings.setBOOL("AppearanceAnimate", childGetValue("appearance_anim_check")); |
145 | gSavedSettings.setBOOL("LanguageIsPublic", childGetValue("language_is_public")); | 115 | gSavedSettings.setBOOL("LanguageIsPublic", childGetValue("language_is_public")); |
146 | gSavedSettings.setBOOL("AllowMUpose", childGetValue("allow_mupose")); | 116 | |
147 | gSavedSettings.setBOOL("AutoCloseOOC", childGetValue("auto_close_ooc")); | ||
148 | gSavedSettings.setU32("LightShareAllowed", | 117 | gSavedSettings.setU32("LightShareAllowed", |
149 | (U32)childGetValue("lightshare_combo").asInteger()); | 118 | (U32)childGetValue("lightshare_combo").asInteger()); |
150 | 119 | ||
@@ -210,8 +179,6 @@ void LLPrefsAdvanced::apply() | |||
210 | build_pie_menus(); | 179 | build_pie_menus(); |
211 | } | 180 | } |
212 | 181 | ||
213 | gSavedSettings.setBOOL("CmdLineChatbarEnabled", childGetValue("command_line_check").asBoolean()); | ||
214 | |||
215 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); | 182 | LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); |
216 | gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, crash_behavior_combobox->getCurrentIndex()); | 183 | gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, crash_behavior_combobox->getCurrentIndex()); |
217 | 184 | ||
@@ -219,79 +186,34 @@ void LLPrefsAdvanced::apply() | |||
219 | { | 186 | { |
220 | onSaveThisCloudButton(NULL); | 187 | onSaveThisCloudButton(NULL); |
221 | } | 188 | } |
189 | |||
190 | gSavedSettings.setBOOL("AutomaticFly", childGetValue("automatic_fly")); | ||
191 | |||
192 | // windlight remote | ||
193 | static BOOL* sEnableWindlightRemote = rebind_llcontrol<BOOL>("EnableWindlightRemote", &gSavedSettings, true); | ||
194 | mWLControl = (*sEnableWindlightRemote); | ||
195 | |||
196 | gSavedSettings.setBOOL("AllowMUpose", childGetValue("allow_mupose")); | ||
197 | gSavedSettings.setBOOL("AutoCloseOOC", childGetValue("auto_close_ooc")); | ||
198 | gSavedSettings.setBOOL("ArrowKeysMoveAvatar", childGetValue("arrow_keys_move_avatar_check")); | ||
199 | gSavedSettings.setBOOL("ScriptErrorsAsChat", childGetValue("script_errors_as_chat")); | ||
200 | gSavedSettings.setBOOL("ShowTimestamps", childGetValue("show_timestamps_check")); | ||
222 | } | 201 | } |
223 | 202 | ||
224 | void LLPrefsAdvanced::cancel() | 203 | void LLPrefsAdvanced::cancel() |
225 | { | 204 | { |
226 | gSavedSettings.setColor4("ImprudenceTagColor", mClientTagColor); | ||
227 | // llwarns << "cancel" << llendl; | 205 | // llwarns << "cancel" << llendl; |
228 | // cool - "ok" is also cancel | 206 | // cool - "ok" is also cancel |
229 | // LLVOAvatar::sCloud.mPartData.mStartColor = mCloudStartColor; | 207 | // LLVOAvatar::sCloud.mPartData.mStartColor = mCloudStartColor; |
230 | // LLVOAvatar::sCloud.mPartData.mEndColor = mCloudEndColor; | 208 | // LLVOAvatar::sCloud.mPartData.mEndColor = mCloudEndColor; |
209 | |||
210 | gSavedSettings.setBOOL("EnableWindlightRemote", mWLControl); | ||
231 | } | 211 | } |
232 | 212 | ||
233 | void LLPrefsAdvanced::refresh() | 213 | void LLPrefsAdvanced::refresh() |
234 | { | 214 | { |
235 | if (childGetValue("speed_rez_check").asBoolean()) | ||
236 | { | ||
237 | childEnable("speed_rez_interval_spinner"); | ||
238 | childEnable("speed_rez_seconds_text"); | ||
239 | } | ||
240 | else | ||
241 | { | ||
242 | childDisable("speed_rez_interval_spinner"); | ||
243 | childDisable("speed_rez_seconds_text"); | ||
244 | } | ||
245 | |||
246 | if (childGetValue("command_line_check").asBoolean()) | ||
247 | { | ||
248 | childEnable("command_line_btn"); | ||
249 | } | ||
250 | else | ||
251 | { | ||
252 | childDisable("command_line_btn"); | ||
253 | } | ||
254 | |||
255 | LLComboBox* comboBox = getChild<LLComboBox>("EmeraldSpellBase"); | ||
256 | if (comboBox != NULL) | ||
257 | { | ||
258 | comboBox->removeall(); | ||
259 | std::vector<std::string> names = glggHunSpell->getDicts(); | ||
260 | for (int i = 0; i < (int)names.size(); i++) | ||
261 | { | ||
262 | comboBox->add(names[i]); | ||
263 | } | ||
264 | comboBox->setSimple(gSavedSettings.getString("EmeraldSpellBase")); | ||
265 | } | ||
266 | comboBox = getChild<LLComboBox>("EmSpell_Avail"); | ||
267 | if (comboBox != NULL) | ||
268 | { | ||
269 | LLSD selected = comboBox->getSelectedValue(); | ||
270 | comboBox->removeall(); | ||
271 | std::vector<std::string> names = glggHunSpell->getAvailDicts(); | ||
272 | for (int i = 0; i < (int)names.size(); i++) | ||
273 | { | ||
274 | comboBox->add(names[i]); | ||
275 | } | ||
276 | comboBox->selectByValue(selected); | ||
277 | } | ||
278 | comboBox = getChild<LLComboBox>("EmSpell_Installed"); | ||
279 | if (comboBox != NULL) | ||
280 | { | ||
281 | LLSD selected = comboBox->getSelectedValue(); | ||
282 | comboBox->removeall(); | ||
283 | std::vector<std::string> names = glggHunSpell->getInstalledDicts(); | ||
284 | for (int i = 0; i < (int)names.size(); i++) | ||
285 | { | ||
286 | comboBox->add(names[i]); | ||
287 | } | ||
288 | comboBox->selectByValue(selected); | ||
289 | } | ||
290 | |||
291 | |||
292 | bool is_logged_in = LLStartUp::isLoggedIn(); | 215 | bool is_logged_in = LLStartUp::isLoggedIn(); |
293 | setParticleControls(is_logged_in); | 216 | setParticleControls(is_logged_in); |
294 | |||
295 | } | 217 | } |
296 | 218 | ||
297 | void LLPrefsAdvanced::draw() | 219 | void LLPrefsAdvanced::draw() |
@@ -363,65 +285,10 @@ void LLPrefsAdvanced::setParticleControls(bool is_logged_in) | |||
363 | void LLPrefsAdvanced::onCommitCheckBox(LLUICtrl* ctrl, void* user_data) | 285 | void LLPrefsAdvanced::onCommitCheckBox(LLUICtrl* ctrl, void* user_data) |
364 | { | 286 | { |
365 | LLPrefsAdvanced* self = (LLPrefsAdvanced*)user_data; | 287 | LLPrefsAdvanced* self = (LLPrefsAdvanced*)user_data; |
366 | self->refresh(); | 288 | if (self) |
367 | } | ||
368 | |||
369 | void LLPrefsAdvanced::onSpellAdd(void* data) | ||
370 | { | ||
371 | LLPrefsAdvanced* panel = (LLPrefsAdvanced*)data; | ||
372 | if(panel) | ||
373 | { | 289 | { |
374 | glggHunSpell->addButton(panel->childGetValue("EmSpell_Avail").asString()); | 290 | self->refresh(); |
375 | } | 291 | } |
376 | panel->refresh(); | ||
377 | } | ||
378 | |||
379 | void LLPrefsAdvanced::onSpellRemove(void* data) | ||
380 | { | ||
381 | LLPrefsAdvanced* panel = (LLPrefsAdvanced*)data; | ||
382 | if(panel) | ||
383 | { | ||
384 | glggHunSpell->removeButton(panel->childGetValue("EmSpell_Installed").asString()); | ||
385 | } | ||
386 | panel->refresh(); | ||
387 | } | ||
388 | |||
389 | void LLPrefsAdvanced::onSpellGetMore(void* data) | ||
390 | { | ||
391 | glggHunSpell->getMoreButton(data); | ||
392 | } | ||
393 | |||
394 | void LLPrefsAdvanced::onSpellEditCustom(void* data) | ||
395 | { | ||
396 | glggHunSpell->editCustomButton(); | ||
397 | } | ||
398 | |||
399 | void LLPrefsAdvanced::onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata) | ||
400 | { | ||
401 | |||
402 | LLComboBox* box = (LLComboBox*)ctrl; | ||
403 | if (box) | ||
404 | { | ||
405 | glggHunSpell->newDictSelection(box->getValue().asString()); | ||
406 | //LLPanelEmerald* panel = (LLPanelEmerald*)userdata;//box->getParent(); | ||
407 | if (sInstance) | ||
408 | { | ||
409 | sInstance->refresh(); | ||
410 | } | ||
411 | } | ||
412 | //LLPanelEmerald* panel = (LLPanelEmerald*)userdata; | ||
413 | //if(panel)panel->refresh(); | ||
414 | } | ||
415 | |||
416 | void LLPrefsAdvanced::onAutoCorrectButton(void * data) | ||
417 | { | ||
418 | lggAutoCorrectFloaterStart::show(TRUE,data); | ||
419 | } | ||
420 | |||
421 | void LLPrefsAdvanced::onClickCommandLine(void* data) | ||
422 | { | ||
423 | FloaterCommandLine::getInstance()->open(); | ||
424 | FloaterCommandLine::getInstance()->center(); | ||
425 | } | 292 | } |
426 | 293 | ||
427 | void LLPrefsAdvanced::onResetThisCloudButton(void * data) | 294 | void LLPrefsAdvanced::onResetThisCloudButton(void * data) |
diff --git a/linden/indra/newview/llprefsadvanced.h b/linden/indra/newview/llprefsadvanced.h index e4febcc..b863db3 100644 --- a/linden/indra/newview/llprefsadvanced.h +++ b/linden/indra/newview/llprefsadvanced.h | |||
@@ -51,30 +51,19 @@ private: | |||
51 | static LLPrefsAdvanced* sInstance; | 51 | static LLPrefsAdvanced* sInstance; |
52 | 52 | ||
53 | static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data); | 53 | static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data); |
54 | static void onClickCommandLine(void* data); | ||
55 | |||
56 | static void onSpellAdd(void* data); | ||
57 | static void onSpellRemove(void* data); | ||
58 | static void onSpellGetMore(void* data); | ||
59 | static void onSpellEditCustom(void* data); | ||
60 | static void onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata); | ||
61 | static void onAutoCorrectButton(void * data); | ||
62 | static void onResetThisCloudButton(void * data); | 54 | static void onResetThisCloudButton(void * data); |
63 | static void onSaveThisCloudButton(void * data); | 55 | static void onSaveThisCloudButton(void * data); |
64 | static void onSaveAnyoneCloudButton(void * data); | 56 | static void onSaveAnyoneCloudButton(void * data); |
65 | 57 | ||
66 | LLColor4 mClientTagColor; | ||
67 | |||
68 | protected: | 58 | protected: |
69 | void setParticleControls(bool is_logged_in); | 59 | void setParticleControls(bool is_logged_in); |
70 | void initHelpBtn(const std::string& name, const std::string& xml_alert); | ||
71 | static void onClickHelp(void* data); | ||
72 | 60 | ||
73 | private: | 61 | private: |
74 | bool mWasLoggedIn; | 62 | bool mWasLoggedIn; |
75 | LLColor4 mCloudStartColor; | 63 | LLColor4 mCloudStartColor; |
76 | LLColor4 mCloudEndColor; | 64 | LLColor4 mCloudEndColor; |
77 | LLUUID mCloudTextureID; | 65 | LLUUID mCloudTextureID; |
66 | BOOL mWLControl; | ||
78 | }; | 67 | }; |
79 | 68 | ||
80 | #endif // LLPREFSADVANCED_H | 69 | #endif // LLPREFSADVANCED_H |
diff --git a/linden/indra/newview/llprefschat.cpp b/linden/indra/newview/llprefschat.cpp index 5f74a25..9490ba2 100644 --- a/linden/indra/newview/llprefschat.cpp +++ b/linden/indra/newview/llprefschat.cpp | |||
@@ -33,13 +33,20 @@ | |||
33 | 33 | ||
34 | #include "llviewerprecompiledheaders.h" | 34 | #include "llviewerprecompiledheaders.h" |
35 | 35 | ||
36 | #include "llcombobox.h" | ||
37 | #include "llpanel.h" | ||
38 | #include "llstylemap.h" | ||
39 | #include "lluictrlfactory.h" | ||
40 | |||
41 | #include "floatercommandline.h" | ||
42 | #include "llagent.h" | ||
36 | #include "llchatbar.h" | 43 | #include "llchatbar.h" |
37 | #include "llfloaterchat.h" | 44 | #include "llfloaterchat.h" |
45 | #include "lgghunspell_wrapper.h" | ||
46 | #include "lggautocorrectfloater.h" | ||
38 | #include "llprefschat.h" | 47 | #include "llprefschat.h" |
39 | #include "llviewercontrol.h" | 48 | #include "llviewercontrol.h" |
40 | #include "lluictrlfactory.h" | 49 | #include "llviewermessage.h" |
41 | #include "llradiogroup.h" | ||
42 | #include "llstylemap.h" | ||
43 | 50 | ||
44 | class LLPrefsChatImpl : public LLPanel | 51 | class LLPrefsChatImpl : public LLPanel |
45 | { | 52 | { |
@@ -47,44 +54,53 @@ public: | |||
47 | LLPrefsChatImpl(); | 54 | LLPrefsChatImpl(); |
48 | /*virtual*/ ~LLPrefsChatImpl(){}; | 55 | /*virtual*/ ~LLPrefsChatImpl(){}; |
49 | 56 | ||
57 | /*virtual*/ BOOL postBuild(); | ||
58 | |||
50 | void apply(); | 59 | void apply(); |
51 | void cancel(); | 60 | void cancel(); |
61 | void refresh(); | ||
62 | void setPersonalInfo(bool im_via_email, const std::string& email); | ||
63 | void initHelpBtn(const std::string& name, const std::string& xml_alert); | ||
64 | |||
65 | static void onAutoCorrectButton(void * data); | ||
66 | static void onClickHelp(void* data); | ||
67 | static void onClickCommandLine(void* data); | ||
68 | static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data); | ||
69 | static void onSpellAdd(void* data); | ||
70 | static void onSpellRemove(void* data); | ||
71 | static void onSpellGetMore(void* data); | ||
72 | static void onSpellEditCustom(void* data); | ||
73 | static void onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata); | ||
74 | |||
75 | protected: | ||
76 | bool mOriginalIMViaEmail; | ||
77 | bool mGotPersonalInfo; | ||
52 | 78 | ||
53 | private: | 79 | private: |
54 | void refreshValues(); | 80 | bool mChatChannel; |
55 | S32 mChatSize; | ||
56 | F32 mChatPersist; | ||
57 | S32 mChatMaxLines; | ||
58 | BOOL mChatFullWidth; | ||
59 | BOOL mCloseChatOnReturn; | ||
60 | BOOL mArrowKeysMoveAvatar; | ||
61 | BOOL mShowTimestamps; | ||
62 | BOOL mPlayTypingAnim; | ||
63 | BOOL mChatBubbles; | ||
64 | BOOL mLocalChatBubbles; | ||
65 | BOOL mScriptErrorAsChat; | ||
66 | BOOL mChatChannel; | ||
67 | F32 mConsoleOpacity; | ||
68 | F32 mBubbleOpacity; | ||
69 | std::string mTranslateLanguage; | ||
70 | BOOL mTranslateChat; | ||
71 | }; | 81 | }; |
72 | 82 | ||
73 | LLPrefsChatImpl::LLPrefsChatImpl() | 83 | LLPrefsChatImpl::LLPrefsChatImpl() |
74 | : LLPanel(std::string("Chat Panel")) | 84 | : LLPanel(std::string("Chat Panel")), |
85 | mChatChannel(false), | ||
86 | mOriginalIMViaEmail(false), | ||
87 | mGotPersonalInfo(false) | ||
75 | { | 88 | { |
76 | refreshValues(); // initialize member data from saved settings | ||
77 | |||
78 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_chat.xml"); | 89 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_chat.xml"); |
90 | } | ||
91 | |||
92 | BOOL LLPrefsChatImpl::postBuild() | ||
93 | { | ||
94 | requires("send_im_to_email"); | ||
95 | childSetLabelArg("send_im_to_email", "[EMAIL]", getString("log_in_to_change")); | ||
96 | |||
97 | // Don't enable these until we get personal data | ||
98 | childSetEnabled("send_im_to_email", false); | ||
79 | 99 | ||
80 | getChild<LLRadioGroup>("chat_font_size")->setSelectedIndex(gSavedSettings.getS32("ChatFontSize")); | 100 | getChild<LLComboBox>("chat_font_size")->setValue(gSavedSettings.getS32("ChatFontSize")); |
81 | childSetValue("fade_chat_time", gSavedSettings.getF32("ChatPersistTime")); | 101 | childSetValue("fade_chat_time", gSavedSettings.getF32("ChatPersistTime")); |
82 | childSetValue("max_chat_count", gSavedSettings.getS32("ConsoleMaxLines")); | 102 | childSetValue("max_chat_count", gSavedSettings.getS32("ConsoleMaxLines")); |
83 | 103 | ||
84 | childSetValue("arrow_keys_move_avatar_check", gSavedSettings.getBOOL("ArrowKeysMoveAvatar")); | ||
85 | childSetValue("show_timestamps_check", gSavedSettings.getBOOL("ChatShowTimestamps")); | ||
86 | childSetValue("script_errors_as_chat", gSavedSettings.getBOOL("ScriptErrorsAsChat")); | ||
87 | |||
88 | childSetValue("bubble_text_chat", gSavedSettings.getBOOL("UseChatBubbles")); | 104 | childSetValue("bubble_text_chat", gSavedSettings.getBOOL("UseChatBubbles")); |
89 | childSetValue("local_bubble_text_chat", gSavedSettings.getBOOL("UseLocalChatWithBubbles")); | 105 | childSetValue("local_bubble_text_chat", gSavedSettings.getBOOL("UseLocalChatWithBubbles")); |
90 | childSetValue("chat_full_width_check", gSavedSettings.getBOOL("ChatFullWidth")); | 106 | childSetValue("chat_full_width_check", gSavedSettings.getBOOL("ChatFullWidth")); |
@@ -95,59 +111,89 @@ LLPrefsChatImpl::LLPrefsChatImpl() | |||
95 | childSetValue("bubble_chat_opacity", gSavedSettings.getF32("ChatBubbleOpacity")); | 111 | childSetValue("bubble_chat_opacity", gSavedSettings.getF32("ChatBubbleOpacity")); |
96 | childSetValue("translate_language_combobox", gSavedSettings.getString("TranslateLanguage")); | 112 | childSetValue("translate_language_combobox", gSavedSettings.getString("TranslateLanguage")); |
97 | childSetValue("translate_chat", gSavedSettings.getBOOL("TranslateChat")); | 113 | childSetValue("translate_chat", gSavedSettings.getBOOL("TranslateChat")); |
98 | } | ||
99 | 114 | ||
100 | void LLPrefsChatImpl::refreshValues() | ||
101 | { | ||
102 | //set values | ||
103 | mChatSize = gSavedSettings.getS32("ChatFontSize"); | ||
104 | mChatPersist = gSavedSettings.getF32("ChatPersistTime"); | ||
105 | mChatMaxLines = gSavedSettings.getS32("ConsoleMaxLines"); | ||
106 | mArrowKeysMoveAvatar = gSavedSettings.getBOOL("ArrowKeysMoveAvatar"); | ||
107 | mShowTimestamps = gSavedSettings.getBOOL("ChatShowTimestamps"); | ||
108 | mScriptErrorAsChat = gSavedSettings.getBOOL("ScriptErrorsAsChat"); | ||
109 | mChatBubbles = gSavedSettings.getBOOL("UseChatBubbles"); | ||
110 | mLocalChatBubbles = gSavedSettings.getBOOL("UseLocalChatWithBubbles"); | ||
111 | mChatFullWidth = gSavedSettings.getBOOL("ChatFullWidth"); | ||
112 | mCloseChatOnReturn = gSavedSettings.getBOOL("CloseChatOnReturn"); | ||
113 | mPlayTypingAnim = gSavedSettings.getBOOL("PlayTypingAnim"); | ||
114 | mChatChannel = gSavedSettings.getBOOL("ChatChannelSelect"); | 115 | mChatChannel = gSavedSettings.getBOOL("ChatChannelSelect"); |
115 | mConsoleOpacity = gSavedSettings.getF32("ConsoleBackgroundOpacity"); | 116 | |
116 | mTranslateLanguage = gSavedSettings.getString("TranslateLanguage"); | 117 | childSetValue("command_line_check", gSavedSettings.getBOOL("CmdLineChatbarEnabled")); |
117 | mTranslateChat = gSavedSettings.getBOOL("TranslateChat"); | 118 | childSetCommitCallback("command_line_check", onCommitCheckBox, this); |
118 | static F32* sChatBubbleOpacity = rebind_llcontrol<F32>("ChatBubbleOpacity", &gSavedSettings, true); | 119 | childSetAction("command_line_btn", onClickCommandLine, this); |
119 | mBubbleOpacity = *sChatBubbleOpacity; | 120 | |
121 | getChild<LLComboBox>("EmeraldSpellBase")->setCommitCallback(onSpellBaseComboBoxCommit); | ||
122 | getChild<LLButton>("EmSpell_EditCustom")->setClickedCallback(onSpellEditCustom, this); | ||
123 | getChild<LLButton>("EmSpell_GetMore")->setClickedCallback(onSpellGetMore, this); | ||
124 | getChild<LLButton>("EmSpell_Add")->setClickedCallback(onSpellAdd, this); | ||
125 | getChild<LLButton>("EmSpell_Remove")->setClickedCallback(onSpellRemove, this); | ||
126 | |||
127 | getChild<LLButton>("ac_button")->setClickedCallback(onAutoCorrectButton, this); | ||
128 | initHelpBtn("EmeraldHelp_SpellCheck", "EmeraldHelp_SpellCheck"); | ||
129 | |||
130 | childSetValue("include_im_in_chat_console", gSavedSettings.getBOOL("IMInChatConsole")); | ||
131 | childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory")); | ||
132 | childSetValue("vertical-imtabs-toggle", gSavedSettings.getBOOL("VerticalIMTabs")); | ||
133 | |||
134 | refresh(); | ||
135 | |||
136 | return TRUE; | ||
137 | } | ||
138 | |||
139 | void LLPrefsChatImpl::refresh() | ||
140 | { | ||
141 | if (childGetValue("command_line_check").asBoolean()) | ||
142 | { | ||
143 | childEnable("command_line_btn"); | ||
144 | } | ||
145 | else | ||
146 | { | ||
147 | childDisable("command_line_btn"); | ||
148 | } | ||
149 | |||
150 | LLComboBox* comboBox = getChild<LLComboBox>("EmeraldSpellBase"); | ||
151 | if (comboBox != NULL) | ||
152 | { | ||
153 | comboBox->removeall(); | ||
154 | std::vector<std::string> names = glggHunSpell->getDicts(); | ||
155 | for (int i = 0; i < (int)names.size(); i++) | ||
156 | { | ||
157 | comboBox->add(names[i]); | ||
158 | } | ||
159 | comboBox->setSimple(gSavedSettings.getString("EmeraldSpellBase")); | ||
160 | } | ||
161 | comboBox = getChild<LLComboBox>("EmSpell_Avail"); | ||
162 | if (comboBox != NULL) | ||
163 | { | ||
164 | LLSD selected = comboBox->getSelectedValue(); | ||
165 | comboBox->removeall(); | ||
166 | std::vector<std::string> names = glggHunSpell->getAvailDicts(); | ||
167 | for (int i = 0; i < (int)names.size(); i++) | ||
168 | { | ||
169 | comboBox->add(names[i]); | ||
170 | } | ||
171 | comboBox->selectByValue(selected); | ||
172 | } | ||
173 | comboBox = getChild<LLComboBox>("EmSpell_Installed"); | ||
174 | if (comboBox != NULL) | ||
175 | { | ||
176 | LLSD selected = comboBox->getSelectedValue(); | ||
177 | comboBox->removeall(); | ||
178 | std::vector<std::string> names = glggHunSpell->getInstalledDicts(); | ||
179 | for (int i = 0; i < (int)names.size(); i++) | ||
180 | { | ||
181 | comboBox->add(names[i]); | ||
182 | } | ||
183 | comboBox->selectByValue(selected); | ||
184 | } | ||
120 | } | 185 | } |
121 | 186 | ||
122 | void LLPrefsChatImpl::cancel() | 187 | void LLPrefsChatImpl::cancel() |
123 | { | 188 | { |
124 | gSavedSettings.setS32("ChatFontSize", mChatSize); | ||
125 | gSavedSettings.setF32("ChatPersistTime", mChatPersist); | ||
126 | gSavedSettings.setS32("ConsoleMaxLines", mChatMaxLines); | ||
127 | gSavedSettings.setBOOL("ArrowKeysMoveAvatar", mArrowKeysMoveAvatar); | ||
128 | gSavedSettings.setBOOL("ChatShowTimestamps", mShowTimestamps); | ||
129 | gSavedSettings.setBOOL("ScriptErrorsAsChat", mScriptErrorAsChat); | ||
130 | gSavedSettings.setBOOL("UseChatBubbles", mChatBubbles); | ||
131 | gSavedSettings.setBOOL("UseLocalChatWithBubbles", mLocalChatBubbles); | ||
132 | gSavedSettings.setBOOL("ChatFullWidth", mChatFullWidth); | ||
133 | gSavedSettings.setBOOL("CloseChatOnReturn", mCloseChatOnReturn); | ||
134 | gSavedSettings.setBOOL("PlayTypingAnim", mPlayTypingAnim); | ||
135 | gSavedSettings.setBOOL("ChatChannelSelect", mChatChannel); | ||
136 | gSavedSettings.setF32("ConsoleBackgroundOpacity", mConsoleOpacity); | ||
137 | gSavedSettings.setF32("ChatBubbleOpacity", mBubbleOpacity); | ||
138 | gSavedSettings.setString("TranslateLanguage", mTranslateLanguage); | ||
139 | gSavedSettings.setBOOL("TranslateChat", mTranslateChat); | ||
140 | } | 189 | } |
141 | 190 | ||
142 | void LLPrefsChatImpl::apply() | 191 | void LLPrefsChatImpl::apply() |
143 | { | 192 | { |
144 | gSavedSettings.setS32("ChatFontSize", getChild<LLRadioGroup>("chat_font_size")->getSelectedIndex()); | 193 | gSavedSettings.setS32("ChatFontSize", getChild<LLComboBox>("chat_font_size")->getValue().asInteger()); |
145 | gSavedSettings.setF32("ChatPersistTime", childGetValue("fade_chat_time").asReal()); | 194 | gSavedSettings.setF32("ChatPersistTime", childGetValue("fade_chat_time").asReal()); |
146 | gSavedSettings.setS32("ConsoleMaxLines", childGetValue("max_chat_count")); | 195 | gSavedSettings.setS32("ConsoleMaxLines", childGetValue("max_chat_count")); |
147 | 196 | ||
148 | gSavedSettings.setBOOL("ArrowKeysMoveAvatar", childGetValue("arrow_keys_move_avatar_check")); | ||
149 | gSavedSettings.setBOOL("ChatShowTimestamps", childGetValue("show_timestamps_check")); | ||
150 | gSavedSettings.setBOOL("ScriptErrorsAsChat", childGetValue("script_errors_as_chat")); | ||
151 | gSavedSettings.setBOOL("UseChatBubbles", childGetValue("bubble_text_chat")); | 197 | gSavedSettings.setBOOL("UseChatBubbles", childGetValue("bubble_text_chat")); |
152 | gSavedSettings.setBOOL("UseLocalChatWithBubbles", childGetValue("local_bubble_text_chat")); | 198 | gSavedSettings.setBOOL("UseLocalChatWithBubbles", childGetValue("local_bubble_text_chat")); |
153 | gSavedSettings.setBOOL("ChatFullWidth", childGetValue("chat_full_width_check")); | 199 | gSavedSettings.setBOOL("ChatFullWidth", childGetValue("chat_full_width_check")); |
@@ -160,7 +206,7 @@ void LLPrefsChatImpl::apply() | |||
160 | gSavedSettings.setString("TranslateLanguage", childGetValue("translate_language_combobox")); | 206 | gSavedSettings.setString("TranslateLanguage", childGetValue("translate_language_combobox")); |
161 | gSavedSettings.setBOOL("TranslateChat", childGetValue("translate_chat")); | 207 | gSavedSettings.setBOOL("TranslateChat", childGetValue("translate_chat")); |
162 | 208 | ||
163 | BOOL chan_check = childGetValue("toggle_channel_control"); | 209 | bool chan_check = childGetValue("toggle_channel_control"); |
164 | gSavedSettings.setBOOL("ChatChannelSelect", chan_check); | 210 | gSavedSettings.setBOOL("ChatChannelSelect", chan_check); |
165 | if (mChatChannel != chan_check) | 211 | if (mChatChannel != chan_check) |
166 | { | 212 | { |
@@ -172,7 +218,138 @@ void LLPrefsChatImpl::apply() | |||
172 | mChatChannel = chan_check; | 218 | mChatChannel = chan_check; |
173 | } | 219 | } |
174 | 220 | ||
175 | refreshValues(); // member values become the official values and cancel becomes a no-op. | 221 | gSavedSettings.setBOOL("CmdLineChatbarEnabled", childGetValue("command_line_check").asBoolean()); |
222 | |||
223 | gSavedSettings.setBOOL("VerticalIMTabs", childGetValue("vertical-imtabs-toggle").asBoolean()); | ||
224 | gSavedSettings.setBOOL("IMInChatConsole", childGetValue("include_im_in_chat_console").asBoolean()); | ||
225 | gSavedSettings.setBOOL("IMInChatHistory", childGetValue("include_im_in_chat_history").asBoolean()); | ||
226 | |||
227 | if (mGotPersonalInfo) | ||
228 | { | ||
229 | bool new_im_via_email = childGetValue("send_im_to_email").asBoolean(); | ||
230 | |||
231 | if (new_im_via_email != mOriginalIMViaEmail) | ||
232 | { | ||
233 | LLMessageSystem* msg = gMessageSystem; | ||
234 | msg->newMessageFast(_PREHASH_UpdateUserInfo); | ||
235 | msg->nextBlockFast(_PREHASH_AgentData); | ||
236 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
237 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
238 | msg->nextBlockFast(_PREHASH_UserData); | ||
239 | msg->addBOOLFast(_PREHASH_IMViaEMail, new_im_via_email); | ||
240 | gAgent.sendReliableMessage(); | ||
241 | } | ||
242 | } | ||
243 | |||
244 | // Spell checking prefs aren't here because Emerald never supported the cancel button. We should fix this -- MC | ||
245 | } | ||
246 | |||
247 | // Enable and set the value of settings recieved from the sim in AgentInfoReply | ||
248 | void LLPrefsChatImpl::setPersonalInfo(bool im_via_email, const std::string& email) | ||
249 | { | ||
250 | mGotPersonalInfo = true; | ||
251 | mOriginalIMViaEmail = im_via_email; | ||
252 | |||
253 | childEnable("send_im_to_email"); | ||
254 | childSetValue("send_im_to_email", im_via_email); | ||
255 | |||
256 | // Truncate the e-mail address if it's too long (to prevent going off | ||
257 | // the edge of the dialog). | ||
258 | std::string display_email(email); | ||
259 | if(display_email.size() > 30) | ||
260 | { | ||
261 | display_email.resize(30); | ||
262 | display_email += "..."; | ||
263 | } | ||
264 | else if (display_email.empty()) | ||
265 | { | ||
266 | display_email = getString("default_email_used"); | ||
267 | } | ||
268 | childSetLabelArg("send_im_to_email", "[EMAIL]", display_email); | ||
269 | } | ||
270 | |||
271 | // static | ||
272 | void LLPrefsChatImpl::onSpellAdd(void* data) | ||
273 | { | ||
274 | LLPrefsChatImpl* panel = (LLPrefsChatImpl*)data; | ||
275 | if (panel) | ||
276 | { | ||
277 | glggHunSpell->addButton(panel->childGetValue("EmSpell_Avail").asString()); | ||
278 | panel->refresh(); | ||
279 | } | ||
280 | } | ||
281 | |||
282 | // static | ||
283 | void LLPrefsChatImpl::onSpellRemove(void* data) | ||
284 | { | ||
285 | LLPrefsChatImpl* panel = (LLPrefsChatImpl*)data; | ||
286 | if (panel) | ||
287 | { | ||
288 | glggHunSpell->removeButton(panel->childGetValue("EmSpell_Installed").asString()); | ||
289 | panel->refresh(); | ||
290 | } | ||
291 | } | ||
292 | |||
293 | // static | ||
294 | void LLPrefsChatImpl::onSpellGetMore(void* data) | ||
295 | { | ||
296 | glggHunSpell->getMoreButton(data); | ||
297 | } | ||
298 | |||
299 | // static | ||
300 | void LLPrefsChatImpl::onSpellEditCustom(void* data) | ||
301 | { | ||
302 | glggHunSpell->editCustomButton(); | ||
303 | } | ||
304 | |||
305 | // static | ||
306 | void LLPrefsChatImpl::onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata) | ||
307 | { | ||
308 | LLComboBox* box = (LLComboBox*)ctrl; | ||
309 | if (box) | ||
310 | { | ||
311 | glggHunSpell->newDictSelection(box->getValue().asString()); | ||
312 | } | ||
313 | LLPrefsChatImpl* panel = (LLPrefsChatImpl*)userdata; | ||
314 | if (panel) | ||
315 | { | ||
316 | panel->refresh(); | ||
317 | } | ||
318 | } | ||
319 | |||
320 | // static | ||
321 | void LLPrefsChatImpl::onAutoCorrectButton(void * data) | ||
322 | { | ||
323 | lggAutoCorrectFloaterStart::show(TRUE,data); | ||
324 | } | ||
325 | |||
326 | // static | ||
327 | void LLPrefsChatImpl::onClickCommandLine(void* data) | ||
328 | { | ||
329 | FloaterCommandLine::getInstance()->open(); | ||
330 | FloaterCommandLine::getInstance()->center(); | ||
331 | } | ||
332 | |||
333 | //static | ||
334 | void LLPrefsChatImpl::onCommitCheckBox(LLUICtrl* ctrl, void* user_data) | ||
335 | { | ||
336 | LLPrefsChatImpl* self = (LLPrefsChatImpl*)user_data; | ||
337 | if (self) | ||
338 | { | ||
339 | self->refresh(); | ||
340 | } | ||
341 | } | ||
342 | |||
343 | void LLPrefsChatImpl::initHelpBtn(const std::string& name, const std::string& xml_alert) | ||
344 | { | ||
345 | childSetAction(name, onClickHelp, new std::string(xml_alert)); | ||
346 | } | ||
347 | |||
348 | // static | ||
349 | void LLPrefsChatImpl::onClickHelp(void* data) | ||
350 | { | ||
351 | std::string* xml_alert = (std::string*)data; | ||
352 | LLNotifications::instance().add(*xml_alert); | ||
176 | } | 353 | } |
177 | 354 | ||
178 | //--------------------------------------------------------------------------- | 355 | //--------------------------------------------------------------------------- |
@@ -197,6 +374,11 @@ void LLPrefsChat::cancel() | |||
197 | impl.cancel(); | 374 | impl.cancel(); |
198 | } | 375 | } |
199 | 376 | ||
377 | void LLPrefsChat::setPersonalInfo(bool im_via_email, const std::string& email) | ||
378 | { | ||
379 | impl.setPersonalInfo(im_via_email, email); | ||
380 | } | ||
381 | |||
200 | LLPanel* LLPrefsChat::getPanel() | 382 | LLPanel* LLPrefsChat::getPanel() |
201 | { | 383 | { |
202 | return &impl; | 384 | return &impl; |
diff --git a/linden/indra/newview/llprefschat.h b/linden/indra/newview/llprefschat.h index 86718a8..64bfb36 100644 --- a/linden/indra/newview/llprefschat.h +++ b/linden/indra/newview/llprefschat.h | |||
@@ -44,6 +44,7 @@ public: | |||
44 | 44 | ||
45 | void apply(); | 45 | void apply(); |
46 | void cancel(); | 46 | void cancel(); |
47 | void setPersonalInfo(bool im_via_email, const std::string& email); | ||
47 | 48 | ||
48 | LLPanel* getPanel(); | 49 | LLPanel* getPanel(); |
49 | 50 | ||
diff --git a/linden/indra/newview/llprefscolors.cpp b/linden/indra/newview/llprefscolors.cpp index b0bc345..0b4caf5 100644 --- a/linden/indra/newview/llprefscolors.cpp +++ b/linden/indra/newview/llprefscolors.cpp | |||
@@ -80,6 +80,12 @@ BOOL LLPrefsColors::postBuild() | |||
80 | childSetCommitCallback("HighlightOwnNameInChat", onCommitCheckSelfName, this); | 80 | childSetCommitCallback("HighlightOwnNameInChat", onCommitCheckSelfName, this); |
81 | childSetCommitCallback("HighlightFriendsChat", onCommitCheckFriends, this); | 81 | childSetCommitCallback("HighlightFriendsChat", onCommitCheckFriends, this); |
82 | 82 | ||
83 | getChild<LLColorSwatchCtrl>("effect_color_swatch")->set(gSavedSettings.getColor4("EffectColor")); | ||
84 | |||
85 | getChild<LLColorSwatchCtrl>("client_tag_color")->set(gSavedSettings.getColor4("ImprudenceTagColor")); | ||
86 | static BOOL* sShowClientColor = rebind_llcontrol<BOOL>("ShowClientColor", &gSavedSettings, true); | ||
87 | childSetValue("client_name_color_check", (*sShowClientColor)); | ||
88 | |||
83 | return TRUE; | 89 | return TRUE; |
84 | } | 90 | } |
85 | 91 | ||
@@ -96,6 +102,8 @@ void LLPrefsColors::refreshColors() | |||
96 | mHTMLLinkColor = gSavedSettings.getColor4("HTMLLinkColor"); | 102 | mHTMLLinkColor = gSavedSettings.getColor4("HTMLLinkColor"); |
97 | mFriendsChatColor = gSavedSettings.getColor4("FriendsChatColor"); | 103 | mFriendsChatColor = gSavedSettings.getColor4("FriendsChatColor"); |
98 | mOwnNameChatColor = gSavedSettings.getColor4("OwnNameChatColor"); | 104 | mOwnNameChatColor = gSavedSettings.getColor4("OwnNameChatColor"); |
105 | mEffectColor = gSavedSettings.getColor4("EffectColor"); | ||
106 | mClientTagColor = gSavedSettings.getColor4("ImprudenceTagColor"); | ||
99 | } | 107 | } |
100 | 108 | ||
101 | // static | 109 | // static |
@@ -113,9 +121,6 @@ void LLPrefsColors::updateSelfCheck() | |||
113 | childSetEnabled("nick01", highlight_names_enabled); | 121 | childSetEnabled("nick01", highlight_names_enabled); |
114 | childSetEnabled("nick02", highlight_names_enabled); | 122 | childSetEnabled("nick02", highlight_names_enabled); |
115 | childSetEnabled("nick03", highlight_names_enabled); | 123 | childSetEnabled("nick03", highlight_names_enabled); |
116 | childSetEnabled("nick01_text", highlight_names_enabled); | ||
117 | childSetEnabled("nick02_text", highlight_names_enabled); | ||
118 | childSetEnabled("nick03_text", highlight_names_enabled); | ||
119 | } | 124 | } |
120 | 125 | ||
121 | // static | 126 | // static |
@@ -130,6 +135,18 @@ void LLPrefsColors::updateFriendsCheck() | |||
130 | getChild<LLColorSwatchCtrl>("FriendsChatColor")->setEnabled(childGetValue("HighlightFriendsChat")); | 135 | getChild<LLColorSwatchCtrl>("FriendsChatColor")->setEnabled(childGetValue("HighlightFriendsChat")); |
131 | } | 136 | } |
132 | 137 | ||
138 | // static | ||
139 | void LLPrefsColors::onCommitCheckClient(LLUICtrl* ctrl, void* userdata) | ||
140 | { | ||
141 | LLPrefsColors* self = (LLPrefsColors*)userdata; | ||
142 | self->updateClientCheck(); | ||
143 | } | ||
144 | |||
145 | void LLPrefsColors::updateClientCheck() | ||
146 | { | ||
147 | getChild<LLColorSwatchCtrl>("client_tag_color")->setEnabled(childGetValue("client_name_color_checkt")); | ||
148 | } | ||
149 | |||
133 | void LLPrefsColors::cancel() | 150 | void LLPrefsColors::cancel() |
134 | { | 151 | { |
135 | gSavedSettings.setColor4("SystemChatColor", mSystemChatColor); | 152 | gSavedSettings.setColor4("SystemChatColor", mSystemChatColor); |
@@ -143,6 +160,8 @@ void LLPrefsColors::cancel() | |||
143 | gSavedSettings.setColor4("HTMLLinkColor", mHTMLLinkColor); | 160 | gSavedSettings.setColor4("HTMLLinkColor", mHTMLLinkColor); |
144 | gSavedSettings.setColor4("FriendsChatColor", mFriendsChatColor); | 161 | gSavedSettings.setColor4("FriendsChatColor", mFriendsChatColor); |
145 | gSavedSettings.setColor4("OwnNameChatColor", mOwnNameChatColor); | 162 | gSavedSettings.setColor4("OwnNameChatColor", mOwnNameChatColor); |
163 | gSavedSettings.setColor4("EffectColor", mEffectColor); | ||
164 | gSavedSettings.setColor4("ImprudenceTagColor", mClientTagColor); | ||
146 | } | 165 | } |
147 | 166 | ||
148 | void LLPrefsColors::apply() | 167 | void LLPrefsColors::apply() |
@@ -177,5 +196,10 @@ void LLPrefsColors::apply() | |||
177 | boost::trim(nick03); | 196 | boost::trim(nick03); |
178 | gSavedSettings.setString("HighlightNickname03", nick03); | 197 | gSavedSettings.setString("HighlightNickname03", nick03); |
179 | 198 | ||
199 | gSavedSettings.setColor4("EffectColor", childGetValue("effect_color_swatch")); | ||
200 | |||
201 | gSavedSettings.setBOOL("ShowClientColor", childGetValue("client_name_color_check")); | ||
202 | gSavedSettings.setColor4("ImprudenceTagColor", getChild<LLColorSwatchCtrl>("client_tag_color")->get()); | ||
203 | |||
180 | refreshColors(); // member values become the official values and cancel becomes a no-op. | 204 | refreshColors(); // member values become the official values and cancel becomes a no-op. |
181 | } | 205 | } |
diff --git a/linden/indra/newview/llprefscolors.h b/linden/indra/newview/llprefscolors.h index 70bda89..d580add 100644 --- a/linden/indra/newview/llprefscolors.h +++ b/linden/indra/newview/llprefscolors.h | |||
@@ -47,9 +47,11 @@ public: | |||
47 | private: | 47 | private: |
48 | static void onCommitCheckSelfName(LLUICtrl* ctrl, void* userdata); | 48 | static void onCommitCheckSelfName(LLUICtrl* ctrl, void* userdata); |
49 | static void onCommitCheckFriends(LLUICtrl* ctrl, void* userdata); | 49 | static void onCommitCheckFriends(LLUICtrl* ctrl, void* userdata); |
50 | static void onCommitCheckClient(LLUICtrl* ctrl, void* userdata); | ||
50 | void refreshColors(); | 51 | void refreshColors(); |
51 | void updateFriendsCheck(); | 52 | void updateFriendsCheck(); |
52 | void updateSelfCheck(); | 53 | void updateSelfCheck(); |
54 | void updateClientCheck(); | ||
53 | 55 | ||
54 | LLColor4 mSystemChatColor; | 56 | LLColor4 mSystemChatColor; |
55 | LLColor4 mUserChatColor; | 57 | LLColor4 mUserChatColor; |
@@ -62,6 +64,8 @@ private: | |||
62 | LLColor4 mHTMLLinkColor; | 64 | LLColor4 mHTMLLinkColor; |
63 | LLColor4 mFriendsChatColor; | 65 | LLColor4 mFriendsChatColor; |
64 | LLColor4 mOwnNameChatColor; | 66 | LLColor4 mOwnNameChatColor; |
67 | LLColor4 mEffectColor; | ||
68 | LLColor4 mClientTagColor; | ||
65 | }; | 69 | }; |
66 | 70 | ||
67 | #endif //LLPREFSCOLORS_H | 71 | #endif //LLPREFSCOLORS_H |
diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp index ddf027f..53be673 100644 --- a/linden/indra/newview/llprefsim.cpp +++ b/linden/indra/newview/llprefsim.cpp | |||
@@ -66,7 +66,7 @@ public: | |||
66 | 66 | ||
67 | void apply(); | 67 | void apply(); |
68 | void cancel(); | 68 | void cancel(); |
69 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); | 69 | void setPersonalInfo(const std::string& visibility); |
70 | void preparePerAccountPrefs(bool enable); | 70 | void preparePerAccountPrefs(bool enable); |
71 | void enableHistory(); | 71 | void enableHistory(); |
72 | 72 | ||
@@ -80,7 +80,6 @@ protected: | |||
80 | 80 | ||
81 | bool mGotPersonalInfo; | 81 | bool mGotPersonalInfo; |
82 | bool mGotPerAccountSettings; | 82 | bool mGotPerAccountSettings; |
83 | bool mOriginalIMViaEmail; | ||
84 | 83 | ||
85 | bool mOriginalHideOnlineStatus; | 84 | bool mOriginalHideOnlineStatus; |
86 | std::string mDirectoryVisibility; | 85 | std::string mDirectoryVisibility; |
@@ -91,7 +90,6 @@ LLPrefsIMImpl::LLPrefsIMImpl() | |||
91 | : LLPanel(std::string("IM Prefs Panel")), | 90 | : LLPanel(std::string("IM Prefs Panel")), |
92 | mGotPersonalInfo(false), | 91 | mGotPersonalInfo(false), |
93 | mGotPerAccountSettings(false), | 92 | mGotPerAccountSettings(false), |
94 | mOriginalIMViaEmail(false), | ||
95 | mOriginalHideOnlineStatus(false) | 93 | mOriginalHideOnlineStatus(false) |
96 | { | 94 | { |
97 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_im.xml"); | 95 | LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_im.xml"); |
@@ -104,29 +102,14 @@ void LLPrefsIMImpl::cancel() | |||
104 | BOOL LLPrefsIMImpl::postBuild() | 102 | BOOL LLPrefsIMImpl::postBuild() |
105 | { | 103 | { |
106 | requires("online_visibility"); | 104 | requires("online_visibility"); |
107 | requires("send_im_to_email"); | 105 | |
108 | if (!checkRequirements()) | 106 | if (!checkRequirements()) |
109 | { | 107 | { |
110 | return FALSE; | 108 | return FALSE; |
111 | } | 109 | } |
112 | 110 | ||
113 | childSetLabelArg("send_im_to_email", "[EMAIL]", getString("log_in_to_change")); | 111 | // Don't enable this until we get personal data |
114 | |||
115 | // Don't enable these until we get personal data | ||
116 | childSetEnabled("online_visibility", false); | 112 | childSetEnabled("online_visibility", false); |
117 | childSetEnabled("send_im_to_email", false); | ||
118 | |||
119 | // These are safe to enable | ||
120 | childSetEnabled("include_im_in_chat_console", true); | ||
121 | childSetEnabled("include_im_in_chat_history", true); | ||
122 | childSetEnabled("show_timestamps_check", true); | ||
123 | childSetEnabled("friends_online_notify_checkbox", true); | ||
124 | childSetEnabled("vertical-imtabs-toggle", true); | ||
125 | childSetValue("include_im_in_chat_console", gSavedSettings.getBOOL("IMInChatConsole")); | ||
126 | childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory")); | ||
127 | childSetValue("show_timestamps_check", gSavedSettings.getBOOL("IMShowTimestamps")); | ||
128 | childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification")); | ||
129 | childSetValue("vertical-imtabs-toggle", gSavedSettings.getBOOL("VerticalIMTabs")); | ||
130 | 113 | ||
131 | childSetAction("log_path_button", onClickLogPath, this); | 114 | childSetAction("log_path_button", onClickLogPath, this); |
132 | childSetCommitCallback("log_chat",onCommitLogging,this); | 115 | childSetCommitCallback("log_chat",onCommitLogging,this); |
@@ -194,11 +177,9 @@ void LLPrefsIMImpl::apply() | |||
194 | 177 | ||
195 | if (mGotPersonalInfo) | 178 | if (mGotPersonalInfo) |
196 | { | 179 | { |
197 | bool new_im_via_email = childGetValue("send_im_to_email").asBoolean(); | ||
198 | bool new_hide_online = childGetValue("online_visibility").asBoolean(); | 180 | bool new_hide_online = childGetValue("online_visibility").asBoolean(); |
199 | 181 | ||
200 | if((new_im_via_email != mOriginalIMViaEmail) | 182 | if (new_hide_online != mOriginalHideOnlineStatus) |
201 | ||(new_hide_online != mOriginalHideOnlineStatus)) | ||
202 | { | 183 | { |
203 | LLMessageSystem* msg = gMessageSystem; | 184 | LLMessageSystem* msg = gMessageSystem; |
204 | msg->newMessageFast(_PREHASH_UpdateUserInfo); | 185 | msg->newMessageFast(_PREHASH_UpdateUserInfo); |
@@ -206,7 +187,7 @@ void LLPrefsIMImpl::apply() | |||
206 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 187 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
207 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 188 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
208 | msg->nextBlockFast(_PREHASH_UserData); | 189 | msg->nextBlockFast(_PREHASH_UserData); |
209 | msg->addBOOLFast(_PREHASH_IMViaEMail, new_im_via_email); | 190 | //msg->addBOOLFast(_PREHASH_IMViaEMail, new_im_via_email); |
210 | // This hack is because we are representing several different | 191 | // This hack is because we are representing several different |
211 | // possible strings with a single checkbox. Since most users | 192 | // possible strings with a single checkbox. Since most users |
212 | // can only select between 2 values, we represent it as a | 193 | // can only select between 2 values, we represent it as a |
@@ -223,19 +204,12 @@ void LLPrefsIMImpl::apply() | |||
223 | gAgent.sendReliableMessage(); | 204 | gAgent.sendReliableMessage(); |
224 | } | 205 | } |
225 | } | 206 | } |
226 | |||
227 | gSavedSettings.setBOOL("VerticalIMTabs", childGetValue("vertical-imtabs-toggle").asBoolean()); | ||
228 | gSavedSettings.setBOOL("IMInChatConsole", childGetValue("include_im_in_chat_console").asBoolean()); | ||
229 | gSavedSettings.setBOOL("IMInChatHistory", childGetValue("include_im_in_chat_history").asBoolean()); | ||
230 | gSavedSettings.setBOOL("IMShowTimestamps", childGetValue("show_timestamps_check").asBoolean()); | ||
231 | gSavedSettings.setBOOL("ChatOnlineNotification", childGetValue("friends_online_notify_checkbox").asBoolean()); | ||
232 | } | 207 | } |
233 | 208 | ||
234 | // Enable and set the value of settings recieved from the sim in AgentInfoReply | 209 | // Enable and set the value of settings recieved from the sim in AgentInfoReply |
235 | void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) | 210 | void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility) |
236 | { | 211 | { |
237 | mGotPersonalInfo = true; | 212 | mGotPersonalInfo = true; |
238 | mOriginalIMViaEmail = im_via_email; | ||
239 | mDirectoryVisibility = visibility; | 213 | mDirectoryVisibility = visibility; |
240 | 214 | ||
241 | if(visibility == VISIBILITY_DEFAULT) | 215 | if(visibility == VISIBILITY_DEFAULT) |
@@ -255,22 +229,6 @@ void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_e | |||
255 | 229 | ||
256 | childSetValue("online_visibility", mOriginalHideOnlineStatus); | 230 | childSetValue("online_visibility", mOriginalHideOnlineStatus); |
257 | childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility); | 231 | childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility); |
258 | childEnable("send_im_to_email"); | ||
259 | childSetValue("send_im_to_email", im_via_email); | ||
260 | |||
261 | // Truncate the e-mail address if it's too long (to prevent going off | ||
262 | // the edge of the dialog). | ||
263 | std::string display_email(email); | ||
264 | if(display_email.size() > 30) | ||
265 | { | ||
266 | display_email.resize(30); | ||
267 | display_email += "..."; | ||
268 | } | ||
269 | else if (display_email.empty()) | ||
270 | { | ||
271 | display_email = getString("default_email_used"); | ||
272 | } | ||
273 | childSetLabelArg("send_im_to_email", "[EMAIL]", display_email); | ||
274 | } | 232 | } |
275 | 233 | ||
276 | // Enable and set the value of settings that need an account name | 234 | // Enable and set the value of settings that need an account name |
@@ -383,9 +341,9 @@ void LLPrefsIM::cancel() | |||
383 | impl.cancel(); | 341 | impl.cancel(); |
384 | } | 342 | } |
385 | 343 | ||
386 | void LLPrefsIM::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) | 344 | void LLPrefsIM::setPersonalInfo(const std::string& visibility) |
387 | { | 345 | { |
388 | impl.setPersonalInfo(visibility, im_via_email, email); | 346 | impl.setPersonalInfo(visibility); |
389 | } | 347 | } |
390 | 348 | ||
391 | void LLPrefsIM::preparePerAccountPrefs(bool enable) | 349 | void LLPrefsIM::preparePerAccountPrefs(bool enable) |
diff --git a/linden/indra/newview/llprefsim.h b/linden/indra/newview/llprefsim.h index acf9b0f..054e4c7 100644 --- a/linden/indra/newview/llprefsim.h +++ b/linden/indra/newview/llprefsim.h | |||
@@ -45,7 +45,7 @@ public: | |||
45 | 45 | ||
46 | void apply(); | 46 | void apply(); |
47 | void cancel(); | 47 | void cancel(); |
48 | void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email); | 48 | void setPersonalInfo(const std::string& visibility); |
49 | void preparePerAccountPrefs(bool enable); | 49 | void preparePerAccountPrefs(bool enable); |
50 | 50 | ||
51 | LLPanel* getPanel(); | 51 | LLPanel* getPanel(); |
diff --git a/linden/indra/newview/llprefsvoice.cpp b/linden/indra/newview/llprefsvoice.cpp index 7c50f4a..0e8e816 100644 --- a/linden/indra/newview/llprefsvoice.cpp +++ b/linden/indra/newview/llprefsvoice.cpp | |||
@@ -153,8 +153,8 @@ void LLPrefsVoice::apply() | |||
153 | if (enable_voice && !gSavedSettings.getBOOL("VivoxLicenseAccepted")) | 153 | if (enable_voice && !gSavedSettings.getBOOL("VivoxLicenseAccepted")) |
154 | { | 154 | { |
155 | // This window enables voice chat if license is accepted | 155 | // This window enables voice chat if license is accepted |
156 | FloaterVoiceLicense::getInstance()->open(); | 156 | FloaterVoiceLicense::getInstance()->open(); |
157 | FloaterVoiceLicense::getInstance()->center(); | 157 | FloaterVoiceLicense::getInstance()->center(); |
158 | } | 158 | } |
159 | else | 159 | else |
160 | { | 160 | { |
@@ -189,6 +189,8 @@ void LLPrefsVoice::onCommitEnableVoiceChat(LLUICtrl* ctrl, void* user_data) | |||
189 | self->childSetEnabled("push_to_talk_label", enable); | 189 | self->childSetEnabled("push_to_talk_label", enable); |
190 | self->childSetEnabled("voice_call_friends_only_check", enable); | 190 | self->childSetEnabled("voice_call_friends_only_check", enable); |
191 | self->childSetEnabled("auto_disengage_mic_check", enable); | 191 | self->childSetEnabled("auto_disengage_mic_check", enable); |
192 | self->childSetEnabled("privacy_heading", enable); | ||
193 | self->childSetEnabled("push_to_talk_heading", enable); | ||
192 | self->childSetEnabled("push_to_talk_toggle_check", enable); | 194 | self->childSetEnabled("push_to_talk_toggle_check", enable); |
193 | self->childSetEnabled("ear_location", enable); | 195 | self->childSetEnabled("ear_location", enable); |
194 | self->childSetEnabled("set_voice_hotkey_button", enable); | 196 | self->childSetEnabled("set_voice_hotkey_button", enable); |
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index 89c944d..428596b 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -191,7 +191,7 @@ | |||
191 | #include "llwaterparammanager.h" | 191 | #include "llwaterparammanager.h" |
192 | #include "llagentlanguage.h" | 192 | #include "llagentlanguage.h" |
193 | #include "llsocks5.h" | 193 | #include "llsocks5.h" |
194 | #include "viewerversion.h" | 194 | #include "viewerinfo.h" |
195 | 195 | ||
196 | #include "lgghunspell_wrapper.h" | 196 | #include "lgghunspell_wrapper.h" |
197 | #include "jcfloater_animation_list.h" | 197 | #include "jcfloater_animation_list.h" |
@@ -539,9 +539,9 @@ bool idle_startup() | |||
539 | if(!start_messaging_system( | 539 | if(!start_messaging_system( |
540 | message_template_path, | 540 | message_template_path, |
541 | port, | 541 | port, |
542 | ViewerVersion::getLLMajorVersion(), | 542 | ViewerInfo::versionMajor(), |
543 | ViewerVersion::getLLMinorVersion(), | 543 | ViewerInfo::versionMinor(), |
544 | ViewerVersion::getLLPatchVersion(), | 544 | ViewerInfo::versionPatch(), |
545 | FALSE, | 545 | FALSE, |
546 | std::string(), | 546 | std::string(), |
547 | responder, | 547 | responder, |
@@ -1891,8 +1891,7 @@ bool idle_startup() | |||
1891 | tmp = LLUserAuth::getInstance()->getResponse("max-agent-groups"); | 1891 | tmp = LLUserAuth::getInstance()->getResponse("max-agent-groups"); |
1892 | if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setMaxAgentGroups(atoi(tmp.c_str())); | 1892 | if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setMaxAgentGroups(atoi(tmp.c_str())); |
1893 | 1893 | ||
1894 | tmp = LLUserAuth::getInstance()->getResponse("VoiceConnector"); | 1894 | |
1895 | if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setVoiceConnector(tmp); | ||
1896 | gHippoGridManager->saveFile(); | 1895 | gHippoGridManager->saveFile(); |
1897 | gHippoLimits->setLimits(); | 1896 | gHippoLimits->setLimits(); |
1898 | 1897 | ||
@@ -1938,8 +1937,7 @@ bool idle_startup() | |||
1938 | } | 1937 | } |
1939 | // else llwarns << "MapServerURL empty"<< llendl; | 1938 | // else llwarns << "MapServerURL empty"<< llendl; |
1940 | 1939 | ||
1941 | // Pass the user information to the voice chat server interface. | 1940 | |
1942 | gVoiceClient->userAuthorized(firstname, lastname, gAgentID); | ||
1943 | } | 1941 | } |
1944 | else // if(successful_login) | 1942 | else // if(successful_login) |
1945 | { | 1943 | { |
@@ -2072,6 +2070,7 @@ bool idle_startup() | |||
2072 | LL_DEBUGS("AppInitStartupState") << "STATE_SEED_CAP_GRANTED" << LL_ENDL; | 2070 | LL_DEBUGS("AppInitStartupState") << "STATE_SEED_CAP_GRANTED" << LL_ENDL; |
2073 | update_texture_fetch(); | 2071 | update_texture_fetch(); |
2074 | 2072 | ||
2073 | |||
2075 | if ( gViewerWindow != NULL) | 2074 | if ( gViewerWindow != NULL) |
2076 | { // This isn't the first logon attempt, so show the UI | 2075 | { // This isn't the first logon attempt, so show the UI |
2077 | gViewerWindow->setNormalControlsVisible( TRUE ); | 2076 | gViewerWindow->setNormalControlsVisible( TRUE ); |
@@ -2130,6 +2129,9 @@ bool idle_startup() | |||
2130 | // | 2129 | // |
2131 | LL_INFOS("AppInit") << "Initializing communications..." << LL_ENDL; | 2130 | LL_INFOS("AppInit") << "Initializing communications..." << LL_ENDL; |
2132 | 2131 | ||
2132 | // Pass the user information to the voice chat server interface. | ||
2133 | gVoiceClient->userAuthorized(firstname, lastname, gAgentID); | ||
2134 | |||
2133 | // register callbacks for messages. . . do this after initial handshake to make sure that we don't catch any unwanted | 2135 | // register callbacks for messages. . . do this after initial handshake to make sure that we don't catch any unwanted |
2134 | register_viewer_callbacks(gMessageSystem); | 2136 | register_viewer_callbacks(gMessageSystem); |
2135 | 2137 | ||
@@ -2149,7 +2151,7 @@ bool idle_startup() | |||
2149 | gCacheName->addObserver(callback_cache_name); | 2151 | gCacheName->addObserver(callback_cache_name); |
2150 | 2152 | ||
2151 | // Load stored cache if possible | 2153 | // Load stored cache if possible |
2152 | LLAppViewer::instance()->loadNameCache(); | 2154 | LLAppViewer::instance()->loadNameCache(); |
2153 | 2155 | ||
2154 | // Start cache in not-running state until we figure out if we have | 2156 | // Start cache in not-running state until we figure out if we have |
2155 | // capabilities for display name lookup | 2157 | // capabilities for display name lookup |
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp index 5dc1018..d33d507 100644 --- a/linden/indra/newview/lltexturecache.cpp +++ b/linden/indra/newview/lltexturecache.cpp | |||
@@ -1207,6 +1207,7 @@ void LLTextureCache::readHeaderCache() | |||
1207 | { | 1207 | { |
1208 | purge_list.insert(iter->second); | 1208 | purge_list.insert(iter->second); |
1209 | } | 1209 | } |
1210 | llassert_always(purge_list.size() >= entries_to_purge); | ||
1210 | } | 1211 | } |
1211 | else | 1212 | else |
1212 | { | 1213 | { |
diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp index ccc3ab2..e58b0b4 100644 --- a/linden/indra/newview/lltexturectrl.cpp +++ b/linden/indra/newview/lltexturectrl.cpp | |||
@@ -1304,6 +1304,7 @@ public: | |||
1304 | 1304 | ||
1305 | BOOL LLTextureCtrl::handleHover(S32 x, S32 y, MASK mask) | 1305 | BOOL LLTextureCtrl::handleHover(S32 x, S32 y, MASK mask) |
1306 | { | 1306 | { |
1307 | if (!getEnabled()) { return FALSE; } | ||
1307 | getWindow()->setCursor(UI_CURSOR_HAND); | 1308 | getWindow()->setCursor(UI_CURSOR_HAND); |
1308 | return TRUE; | 1309 | return TRUE; |
1309 | } | 1310 | } |
@@ -1311,6 +1312,7 @@ BOOL LLTextureCtrl::handleHover(S32 x, S32 y, MASK mask) | |||
1311 | 1312 | ||
1312 | BOOL LLTextureCtrl::handleMouseDown(S32 x, S32 y, MASK mask) | 1313 | BOOL LLTextureCtrl::handleMouseDown(S32 x, S32 y, MASK mask) |
1313 | { | 1314 | { |
1315 | if (!getEnabled()) { return FALSE; } | ||
1314 | BOOL handled = LLUICtrl::handleMouseDown( x, y , mask ); | 1316 | BOOL handled = LLUICtrl::handleMouseDown( x, y , mask ); |
1315 | if( handled ) | 1317 | if( handled ) |
1316 | { | 1318 | { |
@@ -1421,6 +1423,8 @@ BOOL LLTextureCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, | |||
1421 | EAcceptance *accept, | 1423 | EAcceptance *accept, |
1422 | std::string& tooltip_msg) | 1424 | std::string& tooltip_msg) |
1423 | { | 1425 | { |
1426 | if (!getEnabled()) { return FALSE; } | ||
1427 | |||
1424 | BOOL handled = FALSE; | 1428 | BOOL handled = FALSE; |
1425 | 1429 | ||
1426 | // this downcast may be invalid - but if the second test below | 1430 | // this downcast may be invalid - but if the second test below |
diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index ab867a6..bdad2b8 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp | |||
@@ -874,15 +874,6 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
874 | } | 874 | } |
875 | } | 875 | } |
876 | 876 | ||
877 | // *TODO: remove this hack when not needed anymore | ||
878 | S32 buggy_range_fudge = 0; | ||
879 | if (LLTextureFetch::hasBuggyHTTPRange()) | ||
880 | { | ||
881 | buggy_range_fudge = 1; | ||
882 | resetFormattedData(); // discard any previous data we had | ||
883 | cur_size = 0 ; | ||
884 | } | ||
885 | |||
886 | mRequestedSize = mDesiredSize; | 877 | mRequestedSize = mDesiredSize; |
887 | mRequestedDiscard = mDesiredDiscard; | 878 | mRequestedDiscard = mDesiredDiscard; |
888 | mRequestedSize -= cur_size; | 879 | mRequestedSize -= cur_size; |
@@ -898,7 +889,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
898 | mGetReason.clear(); | 889 | mGetReason.clear(); |
899 | LL_DEBUGS("TextureFetch") << "HTTP GET: " << mID << " Offset: " << offset | 890 | LL_DEBUGS("TextureFetch") << "HTTP GET: " << mID << " Offset: " << offset |
900 | << " Bytes: " << mRequestedSize | 891 | << " Bytes: " << mRequestedSize |
901 | << " Range: " << offset << "-" << offset+mRequestedSize-1+buggy_range_fudge | 892 | << " Range: " << offset << "-" << offset+mRequestedSize-1 |
902 | << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << max_bandwidth | 893 | << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << max_bandwidth |
903 | << LL_ENDL; | 894 | << LL_ENDL; |
904 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); | 895 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); |
@@ -908,7 +899,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
908 | // Will call callbackHttpGet when curl request completes | 899 | // Will call callbackHttpGet when curl request completes |
909 | std::vector<std::string> headers; | 900 | std::vector<std::string> headers; |
910 | headers.push_back("Accept: image/x-j2c"); | 901 | headers.push_back("Accept: image/x-j2c"); |
911 | res = mFetcher->mCurlGetRequest->getByteRange(mUrl, headers, offset, mRequestedSize + buggy_range_fudge, | 902 | res = mFetcher->mCurlGetRequest->getByteRange(mUrl, headers, offset, mRequestedSize, |
912 | new HTTPGetResponder(mFetcher, mID, LLTimer::getTotalTime(), mRequestedSize, offset)); | 903 | new HTTPGetResponder(mFetcher, mID, LLTimer::getTotalTime(), mRequestedSize, offset)); |
913 | } | 904 | } |
914 | if (!res) | 905 | if (!res) |
@@ -2279,45 +2270,3 @@ void LLTextureFetch::dump() | |||
2279 | << llendl; | 2270 | << llendl; |
2280 | } | 2271 | } |
2281 | } | 2272 | } |
2282 | |||
2283 | // This tries to detect if the sim has this bug: | ||
2284 | // http://opensimulator.org/mantis/view.php?id=5081 | ||
2285 | // | ||
2286 | // *TODO: This is a *HACK and may not work if the grid is heterogenous. | ||
2287 | // Remove it once OpenSim versions in the wild are > 0.7.0.2! | ||
2288 | #include "hippogridmanager.h" | ||
2289 | #include <boost/regex.hpp> | ||
2290 | //static | ||
2291 | bool LLTextureFetch::hasBuggyHTTPRange() | ||
2292 | { | ||
2293 | static std::string s_version; | ||
2294 | static bool buggy = false; | ||
2295 | if ((s_version != gLastVersionChannel) && !gLastVersionChannel.empty()) | ||
2296 | { | ||
2297 | s_version = gLastVersionChannel; | ||
2298 | buggy = false; | ||
2299 | if (gHippoGridManager->getConnectedGrid()->getPlatform() == HippoGridInfo::PLATFORM_OPENSIM) | ||
2300 | { | ||
2301 | std::string ver_string; | ||
2302 | try | ||
2303 | { | ||
2304 | const boost::regex re(".*OpenSim.*?([0-9.]+).+"); | ||
2305 | ver_string = regex_replace(s_version, re, "\\1", boost::match_default); | ||
2306 | } | ||
2307 | catch(std::runtime_error) | ||
2308 | { | ||
2309 | ver_string = "0.0"; | ||
2310 | } | ||
2311 | LLStringUtil::replaceChar(ver_string, '.', '0'); | ||
2312 | ver_string = "0." + ver_string; | ||
2313 | F64 version = atof(ver_string.c_str()); | ||
2314 | // we look for "0.6.8" < version < "0.7.0.3" | ||
2315 | if ((version > 0.00608) && (version < 0.0070003)) | ||
2316 | { | ||
2317 | buggy = true; | ||
2318 | llwarns << "Setting buggy http ranges mode for current sim, because we're on " << s_version << llendl; | ||
2319 | } | ||
2320 | } | ||
2321 | } | ||
2322 | return buggy; | ||
2323 | } | ||
diff --git a/linden/indra/newview/lltexturefetch.h b/linden/indra/newview/lltexturefetch.h index 5fa2d1c..6c6bb52 100644 --- a/linden/indra/newview/lltexturefetch.h +++ b/linden/indra/newview/lltexturefetch.h | |||
@@ -86,8 +86,6 @@ public: | |||
86 | 86 | ||
87 | LLTextureInfo* getTextureInfo() { return &mTextureInfo; } | 87 | LLTextureInfo* getTextureInfo() { return &mTextureInfo; } |
88 | 88 | ||
89 | static bool hasBuggyHTTPRange(); // *TODO: remove this *HACK once buggy OpenSim versions are gone | ||
90 | |||
91 | protected: | 89 | protected: |
92 | void addToNetworkQueue(LLTextureFetchWorker* worker); | 90 | void addToNetworkQueue(LLTextureFetchWorker* worker); |
93 | void removeFromNetworkQueue(LLTextureFetchWorker* worker, bool cancel); | 91 | void removeFromNetworkQueue(LLTextureFetchWorker* worker, bool cancel); |
diff --git a/linden/indra/newview/llviewerimagelist.cpp b/linden/indra/newview/llviewerimagelist.cpp index 039896f..de92903 100644 --- a/linden/indra/newview/llviewerimagelist.cpp +++ b/linden/indra/newview/llviewerimagelist.cpp | |||
@@ -193,6 +193,13 @@ void LLViewerImageList::doPreloadImages() | |||
193 | mImagePreloads.insert(image); | 193 | mImagePreloads.insert(image); |
194 | } | 194 | } |
195 | 195 | ||
196 | // Preload default unrezzad avatar cloud | ||
197 | image = getImageFromFile("cloud-particle.j2c",MIPMAP_YES,IMMEDIATE_YES,0,0,DEFAULT_UNREZZED_AVATAR_PARTICLE); | ||
198 | if (image) | ||
199 | { | ||
200 | image->setAddressMode(LLTexUnit::TAM_WRAP); | ||
201 | mImagePreloads.insert(image); | ||
202 | } | ||
196 | } | 203 | } |
197 | 204 | ||
198 | static std::string get_texture_list_name() | 205 | static std::string get_texture_list_name() |
diff --git a/linden/indra/newview/llviewermedia.cpp b/linden/indra/newview/llviewermedia.cpp index 2ba6b50..c38408d 100644 --- a/linden/indra/newview/llviewermedia.cpp +++ b/linden/indra/newview/llviewermedia.cpp | |||
@@ -40,7 +40,7 @@ | |||
40 | #include "llviewerimage.h" | 40 | #include "llviewerimage.h" |
41 | #include "llviewerwindow.h" | 41 | #include "llviewerwindow.h" |
42 | #include "llviewerimagelist.h" | 42 | #include "llviewerimagelist.h" |
43 | //#include "viewerversion.h" | 43 | //#include "viewerinfo.h" |
44 | 44 | ||
45 | #include "llpluginclassmedia.h" | 45 | #include "llpluginclassmedia.h" |
46 | 46 | ||
@@ -261,7 +261,7 @@ std::string LLViewerMedia::getCurrentUserAgent() | |||
261 | std::ostringstream codec; | 261 | std::ostringstream codec; |
262 | codec << "SecondLife/"; | 262 | codec << "SecondLife/"; |
263 | codec << "C64 Basic V2"; | 263 | codec << "C64 Basic V2"; |
264 | //codec << ViewerVersion::getImpMajorVersion() << "." << ViewerVersion::getImpMinorVersion() << "." << ViewerVersion::getImpPatchVersion() << " " << ViewerVersion::getImpTestVersion(); | 264 | //codec << " " << ViewerInfo::versionNumbers3(); |
265 | //codec << " (" << channel << "; " << skin_name << " skin)"; | 265 | //codec << " (" << channel << "; " << skin_name << " skin)"; |
266 | // llinfos << codec.str() << llendl; | 266 | // llinfos << codec.str() << llendl; |
267 | 267 | ||
@@ -547,6 +547,13 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ | |||
547 | 547 | ||
548 | if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) | 548 | if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) |
549 | { | 549 | { |
550 | #if LL_WINDOWS | ||
551 | if (gSavedSettings.getBOOL("ShowConsoleWindow")) | ||
552 | { | ||
553 | media_source->showConsole(); | ||
554 | } | ||
555 | #endif | ||
556 | |||
550 | return media_source; | 557 | return media_source; |
551 | } | 558 | } |
552 | else | 559 | else |
diff --git a/linden/indra/newview/llviewermedia_streamingaudio.cpp b/linden/indra/newview/llviewermedia_streamingaudio.cpp index 6a4dd0f..f02870b 100644 --- a/linden/indra/newview/llviewermedia_streamingaudio.cpp +++ b/linden/indra/newview/llviewermedia_streamingaudio.cpp | |||
@@ -96,7 +96,7 @@ void LLStreamingAudio_MediaPlugins::stop() | |||
96 | { | 96 | { |
97 | mMediaPlugin->stop(); | 97 | mMediaPlugin->stop(); |
98 | } | 98 | } |
99 | 99 | llinfos << "Stopping internet stream." << llendl; | |
100 | mURL.clear(); | 100 | mURL.clear(); |
101 | } | 101 | } |
102 | 102 | ||
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index b85f3ca..9b5c687 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -564,7 +564,7 @@ void pre_init_menus() | |||
564 | // static information | 564 | // static information |
565 | LLColor4 color; | 565 | LLColor4 color; |
566 | color = gColors.getColor( "MenuDefaultBgColor" ); | 566 | color = gColors.getColor( "MenuDefaultBgColor" ); |
567 | LLMenuGL::setDefaultBackgroundColor( color ); | 567 | LLMenuGL::setDefaultBackgroundColor(color); |
568 | color = gColors.getColor( "MenuItemEnabledColor" ); | 568 | color = gColors.getColor( "MenuItemEnabledColor" ); |
569 | LLMenuItemGL::setEnabledColor( color ); | 569 | LLMenuItemGL::setEnabledColor( color ); |
570 | color = gColors.getColor( "MenuItemDisabledColor" ); | 570 | color = gColors.getColor( "MenuItemDisabledColor" ); |
@@ -651,18 +651,8 @@ void init_menus() | |||
651 | color = gColors.getColor( "MenuPopupBgColor" ); | 651 | color = gColors.getColor( "MenuPopupBgColor" ); |
652 | gPopupMenuView->setBackgroundColor( color ); | 652 | gPopupMenuView->setBackgroundColor( color ); |
653 | 653 | ||
654 | // If we are not in production, use a different color to make it apparent. | ||
655 | if (LLViewerLogin::getInstance()->isInProductionGrid()) | ||
656 | { | ||
657 | color = gColors.getColor( "MenuBarBgColor" ); | ||
658 | } | ||
659 | else | ||
660 | { | ||
661 | color = gColors.getColor( "MenuNonProductionBgColor" ); | ||
662 | } | ||
663 | gMenuBarView = (LLMenuBarGL*)LLUICtrlFactory::getInstance()->buildMenu("menu_viewer.xml", gMenuHolder); | 654 | gMenuBarView = (LLMenuBarGL*)LLUICtrlFactory::getInstance()->buildMenu("menu_viewer.xml", gMenuHolder); |
664 | gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT)); | 655 | gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT)); |
665 | gMenuBarView->setBackgroundColor( color ); | ||
666 | 656 | ||
667 | // gMenuBarView->setItemVisible("Tools", FALSE); | 657 | // gMenuBarView->setItemVisible("Tools", FALSE); |
668 | gMenuBarView->arrange(); | 658 | gMenuBarView->arrange(); |
@@ -673,8 +663,7 @@ void init_menus() | |||
673 | // flash when an item is triggered (the flash occurs in the holder) | 663 | // flash when an item is triggered (the flash occurs in the holder) |
674 | gViewerWindow->getRootView()->addChild(gMenuHolder); | 664 | gViewerWindow->getRootView()->addChild(gMenuHolder); |
675 | 665 | ||
676 | gViewerWindow->setMenuBackgroundColor(false, | 666 | gViewerWindow->setMenuBackgroundColor(false, LLViewerLogin::getInstance()->isInProductionGrid()); |
677 | LLViewerLogin::getInstance()->isInProductionGrid()); | ||
678 | 667 | ||
679 | // Assume L$10 for now, the server will tell us the real cost at login | 668 | // Assume L$10 for now, the server will tell us the real cost at login |
680 | std::string fee = gHippoGridManager->getConnectedGrid()->getCurrencySymbol() + "10"; | 669 | std::string fee = gHippoGridManager->getConnectedGrid()->getCurrencySymbol() + "10"; |
@@ -723,8 +712,6 @@ void init_menus() | |||
723 | LLRect menuBarRect = gLoginMenuBarView->getRect(); | 712 | LLRect menuBarRect = gLoginMenuBarView->getRect(); |
724 | gLoginMenuBarView->setRect(LLRect(menuBarRect.mLeft, menuBarRect.mTop, gViewerWindow->getRootView()->getRect().getWidth() - menuBarRect.mLeft, menuBarRect.mBottom)); | 713 | gLoginMenuBarView->setRect(LLRect(menuBarRect.mLeft, menuBarRect.mTop, gViewerWindow->getRootView()->getRect().getWidth() - menuBarRect.mLeft, menuBarRect.mBottom)); |
725 | 714 | ||
726 | gLoginMenuBarView->setBackgroundColor( color ); | ||
727 | |||
728 | gMenuHolder->addChild(gLoginMenuBarView); | 715 | gMenuHolder->addChild(gLoginMenuBarView); |
729 | } | 716 | } |
730 | 717 | ||
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index 84e2b7e..3e686f4 100755 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp | |||
@@ -1973,7 +1973,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1973 | { | 1973 | { |
1974 | case IM_CONSOLE_AND_CHAT_HISTORY: | 1974 | case IM_CONSOLE_AND_CHAT_HISTORY: |
1975 | // These are used for system messages, hence don't need the name, | 1975 | // These are used for system messages, hence don't need the name, |
1976 | // as it is always "Imprudence". | 1976 | // as it is always "Imprudence". Or "meta-impy" maybe? shrugs |
1977 | // *TODO:translate | 1977 | // *TODO:translate |
1978 | args["MESSAGE"] = message; | 1978 | args["MESSAGE"] = message; |
1979 | 1979 | ||
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 868094e..a49dde6 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -2025,15 +2025,15 @@ void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid) | |||
2025 | LLSD args; | 2025 | LLSD args; |
2026 | LLColor4 new_bg_color; | 2026 | LLColor4 new_bg_color; |
2027 | 2027 | ||
2028 | if(god_mode && LLViewerLogin::getInstance()->isInProductionGrid()) | 2028 | if (god_mode && dev_grid) |
2029 | { | 2029 | { |
2030 | new_bg_color = gColors.getColor( "MenuBarGodBgColor" ); | 2030 | new_bg_color = gColors.getColor( "MenuBarGodBgColor" ); |
2031 | } | 2031 | } |
2032 | else if(god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) | 2032 | else if(god_mode && !dev_grid) |
2033 | { | 2033 | { |
2034 | new_bg_color = gColors.getColor( "MenuNonProductionGodBgColor" ); | 2034 | new_bg_color = gColors.getColor( "MenuNonProductionGodBgColor" ); |
2035 | } | 2035 | } |
2036 | else if(!god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) | 2036 | else if(!god_mode && !dev_grid) |
2037 | { | 2037 | { |
2038 | new_bg_color = gColors.getColor( "MenuNonProductionBgColor" ); | 2038 | new_bg_color = gColors.getColor( "MenuNonProductionBgColor" ); |
2039 | } | 2039 | } |
@@ -2042,10 +2042,12 @@ void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid) | |||
2042 | new_bg_color = gColors.getColor( "MenuBarBgColor" ); | 2042 | new_bg_color = gColors.getColor( "MenuBarBgColor" ); |
2043 | } | 2043 | } |
2044 | 2044 | ||
2045 | if(gMenuBarView) | 2045 | // Not doing this is a cheap workaround for the menu not having a good way to tell |
2046 | // the difference between bar and item color -- MC | ||
2047 | /*if(gMenuBarView) | ||
2046 | { | 2048 | { |
2047 | gMenuBarView->setBackgroundColor( new_bg_color ); | 2049 | gMenuBarView->setBackgroundColor( new_bg_color ); |
2048 | } | 2050 | }*/ |
2049 | 2051 | ||
2050 | if(gStatusBar) | 2052 | if(gStatusBar) |
2051 | { | 2053 | { |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index c268580..5c537a8 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -67,8 +67,9 @@ | |||
67 | #include "lltexlayer.h" | 67 | #include "lltexlayer.h" |
68 | #include "lltoolgrab.h" // for needsRenderBeam | 68 | #include "lltoolgrab.h" // for needsRenderBeam |
69 | #include "lltoolmgr.h" // for needsRenderBeam | 69 | #include "lltoolmgr.h" // for needsRenderBeam |
70 | #include "lltoolmorph.h" | 70 | #include "lltoolmorph.h" // for auto de-ruth |
71 | #include "llviewercamera.h" | 71 | #include "llviewercamera.h" |
72 | #include "llviewergenericmessage.h" | ||
72 | #include "llviewerimagelist.h" | 73 | #include "llviewerimagelist.h" |
73 | #include "llviewermedia.h" | 74 | #include "llviewermedia.h" |
74 | #include "llviewermenu.h" | 75 | #include "llviewermenu.h" |
@@ -870,6 +871,8 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id, | |||
870 | mOohMorph = NULL; | 871 | mOohMorph = NULL; |
871 | mAahMorph = NULL; | 872 | mAahMorph = NULL; |
872 | 873 | ||
874 | mRuthTimer.reset(); | ||
875 | |||
873 | //------------------------------------------------------------------------- | 876 | //------------------------------------------------------------------------- |
874 | // initialize joint, mesh and shape members | 877 | // initialize joint, mesh and shape members |
875 | //------------------------------------------------------------------------- | 878 | //------------------------------------------------------------------------- |
@@ -1525,7 +1528,7 @@ void LLVOAvatar::loadCloud(const std::string& filename, LLPartSysData& particle | |||
1525 | if(particles.mPartImageID.isNull() || default_id == particles.mPartImageID) | 1528 | if(particles.mPartImageID.isNull() || default_id == particles.mPartImageID) |
1526 | { | 1529 | { |
1527 | LLViewerImage* cloud_image = | 1530 | LLViewerImage* cloud_image = |
1528 | gImageList.getImageFromFile("cloud-particle.j2c", MIPMAP_YES, IMMEDIATE_YES, 0, 0, default_id); | 1531 | gImageList.getImage(default_id); |
1529 | particles.mPartImageID = cloud_image->getID(); | 1532 | particles.mPartImageID = cloud_image->getID(); |
1530 | } | 1533 | } |
1531 | } | 1534 | } |
@@ -7461,6 +7464,8 @@ BOOL LLVOAvatar::updateIsFullyLoaded() | |||
7461 | loading = TRUE; | 7464 | loading = TRUE; |
7462 | } | 7465 | } |
7463 | 7466 | ||
7467 | updateRuthTimer(loading); | ||
7468 | |||
7464 | // special case to keep nudity off orientation island - | 7469 | // special case to keep nudity off orientation island - |
7465 | // this is fragilely dependent on the compositing system, | 7470 | // this is fragilely dependent on the compositing system, |
7466 | // which gets available textures in the following order: | 7471 | // which gets available textures in the following order: |
@@ -7513,6 +7518,35 @@ BOOL LLVOAvatar::updateIsFullyLoaded() | |||
7513 | return changed; | 7518 | return changed; |
7514 | } | 7519 | } |
7515 | 7520 | ||
7521 | void LLVOAvatar::updateRuthTimer(bool loading) | ||
7522 | { | ||
7523 | if (isSelf() || !loading) | ||
7524 | { | ||
7525 | return; | ||
7526 | } | ||
7527 | |||
7528 | if (mPreviousFullyLoaded) | ||
7529 | { | ||
7530 | mRuthTimer.reset(); | ||
7531 | } | ||
7532 | |||
7533 | const F32 LOADING_TIMEOUT__SECONDS = 90.f; | ||
7534 | if (mRuthTimer.getElapsedTimeF32() > LOADING_TIMEOUT__SECONDS) | ||
7535 | { | ||
7536 | llinfos << "Ruth Timer timeout: Missing texture data for '" << getFullname() << "' " | ||
7537 | << "( Params loaded : " << !visualParamWeightsAreDefault() << " ) " | ||
7538 | << "( Lower : " << isTextureDefined(TEX_LOWER_BAKED) << " ) " | ||
7539 | << "( Upper : " << isTextureDefined(TEX_UPPER_BAKED) << " ) " | ||
7540 | << "( Head : " << isTextureDefined(TEX_HEAD_BAKED) << " )." | ||
7541 | << llendl; | ||
7542 | |||
7543 | //LLAvatarPropertiesProcessor::getInstance()->sendAvatarTexturesRequest(getID()); | ||
7544 | std::vector<std::string> strings; | ||
7545 | strings.push_back(getID().asString()); | ||
7546 | send_generic_message("avatartexturesrequest", strings); | ||
7547 | mRuthTimer.reset(); | ||
7548 | } | ||
7549 | } | ||
7516 | 7550 | ||
7517 | BOOL LLVOAvatar::isFullyLoaded() | 7551 | BOOL LLVOAvatar::isFullyLoaded() |
7518 | { | 7552 | { |
@@ -7603,7 +7637,8 @@ LLGLuint LLVOAvatar::getScratchTexName( LLGLenum format, U32* texture_bytes ) | |||
7603 | { | 7637 | { |
7604 | case GL_LUMINANCE: components = 1; internal_format = GL_LUMINANCE8; break; | 7638 | case GL_LUMINANCE: components = 1; internal_format = GL_LUMINANCE8; break; |
7605 | case GL_ALPHA: components = 1; internal_format = GL_ALPHA8; break; | 7639 | case GL_ALPHA: components = 1; internal_format = GL_ALPHA8; break; |
7606 | case GL_COLOR_INDEX: components = 1; internal_format = GL_COLOR_INDEX8_EXT; break; | 7640 | // Deprecated. See http://svn.secondlife.com/trac/linden/changeset/2757 |
7641 | // case GL_COLOR_INDEX: components = 1; internal_format = GL_COLOR_INDEX8_EXT; break; | ||
7607 | case GL_LUMINANCE_ALPHA: components = 2; internal_format = GL_LUMINANCE8_ALPHA8; break; | 7642 | case GL_LUMINANCE_ALPHA: components = 2; internal_format = GL_LUMINANCE8_ALPHA8; break; |
7608 | case GL_RGB: components = 3; internal_format = GL_RGB8; break; | 7643 | case GL_RGB: components = 3; internal_format = GL_RGB8; break; |
7609 | case GL_RGBA: components = 4; internal_format = GL_RGBA8; break; | 7644 | case GL_RGBA: components = 4; internal_format = GL_RGBA8; break; |
@@ -8756,7 +8791,6 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) | |||
8756 | 8791 | ||
8757 | if( !param ) | 8792 | if( !param ) |
8758 | { | 8793 | { |
8759 | llwarns << "Number of params in AvatarAppearance msg does not match number of params in avatar xml file." << llendl; | ||
8760 | break; | 8794 | break; |
8761 | } | 8795 | } |
8762 | 8796 | ||
@@ -8798,10 +8832,9 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) | |||
8798 | } | 8832 | } |
8799 | } | 8833 | } |
8800 | 8834 | ||
8801 | S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT | 8835 | while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) ) |
8802 | if (num_blocks != expected_tweakable_count) | ||
8803 | { | 8836 | { |
8804 | llinfos << "Number of params in AvatarAppearance msg (" << num_blocks << ") does not match number of tweakable params in avatar xml file (" << expected_tweakable_count << "). Processing what we can. Object: " << getID() << llendl; | 8837 | param = getNextVisualParam(); |
8805 | } | 8838 | } |
8806 | 8839 | ||
8807 | if (params_changed) | 8840 | if (params_changed) |
@@ -8822,6 +8855,23 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) | |||
8822 | else | 8855 | else |
8823 | { | 8856 | { |
8824 | llwarns << "AvatarAppearance msg received without any parameters, object: " << getID() << llendl; | 8857 | llwarns << "AvatarAppearance msg received without any parameters, object: " << getID() << llendl; |
8858 | const F32 LOADING_TIMEOUT_SECONDS = 60.f; | ||
8859 | // this isn't really a problem if we already have a non-default shape | ||
8860 | if (visualParamWeightsAreDefault() && mRuthTimer.getElapsedTimeF32() > LOADING_TIMEOUT_SECONDS) | ||
8861 | { | ||
8862 | // re-request appearance, hoping that it comes back with a shape next time | ||
8863 | llinfos << "Re-requesting AvatarAppearance for object: " << getID() << llendl; | ||
8864 | //LLAvatarPropertiesProcessor::getInstance()->sendAvatarTexturesRequest(getID()); | ||
8865 | std::vector<std::string> strings; | ||
8866 | strings.push_back(getID().asString()); | ||
8867 | send_generic_message("avatartexturesrequest", strings); | ||
8868 | mRuthTimer.reset(); | ||
8869 | } | ||
8870 | else | ||
8871 | { | ||
8872 | llinfos << "That's okay, we already have a non-default shape for object: " << getID() << llendl; | ||
8873 | // we don't really care. | ||
8874 | } | ||
8825 | } | 8875 | } |
8826 | 8876 | ||
8827 | setCompositeUpdatesEnabled( TRUE ); | 8877 | setCompositeUpdatesEnabled( TRUE ); |
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h index 4d08bf0..5dbc945 100644 --- a/linden/indra/newview/llvoavatar.h +++ b/linden/indra/newview/llvoavatar.h | |||
@@ -231,6 +231,7 @@ public: | |||
231 | 231 | ||
232 | BOOL isVisible(); | 232 | BOOL isVisible(); |
233 | BOOL isSelf() const { return mIsSelf; } | 233 | BOOL isSelf() const { return mIsSelf; } |
234 | bool isBuilt() const { return mIsBuilt; } | ||
234 | BOOL isCulled() const { return mCulled; } | 235 | BOOL isCulled() const { return mCulled; } |
235 | 236 | ||
236 | public: | 237 | public: |
@@ -371,12 +372,15 @@ public: | |||
371 | public: | 372 | public: |
372 | BOOL isFullyLoaded(); | 373 | BOOL isFullyLoaded(); |
373 | BOOL updateIsFullyLoaded(); | 374 | BOOL updateIsFullyLoaded(); |
375 | protected: | ||
376 | void updateRuthTimer(bool loading); | ||
374 | private: | 377 | private: |
375 | BOOL mFullyLoaded; | 378 | BOOL mFullyLoaded; |
376 | BOOL mPreviousFullyLoaded; | 379 | BOOL mPreviousFullyLoaded; |
377 | BOOL mFullyLoadedInitialized; | 380 | BOOL mFullyLoadedInitialized; |
378 | S32 mFullyLoadedFrameCounter; | 381 | S32 mFullyLoadedFrameCounter; |
379 | LLFrameTimer mFullyLoadedTimer; | 382 | LLFrameTimer mFullyLoadedTimer; |
383 | LLFrameTimer mRuthTimer; | ||
380 | 384 | ||
381 | //-------------------------------------------------------------------- | 385 | //-------------------------------------------------------------------- |
382 | // Collision Volumes | 386 | // Collision Volumes |
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp index 63362be..4b5d3ce 100644 --- a/linden/indra/newview/llvoiceclient.cpp +++ b/linden/indra/newview/llvoiceclient.cpp | |||
@@ -139,22 +139,23 @@ class LLViewerVoiceAccountProvisionResponder : | |||
139 | public LLHTTPClient::Responder | 139 | public LLHTTPClient::Responder |
140 | { | 140 | { |
141 | public: | 141 | public: |
142 | LLViewerVoiceAccountProvisionResponder(int retries) | 142 | LLViewerVoiceAccountProvisionResponder(int retries, LLUUID response_id) |
143 | { | 143 | { |
144 | mRetries = retries; | 144 | mRetries = retries; |
145 | mResponseID = response_id; | ||
145 | } | 146 | } |
146 | 147 | ||
147 | virtual void error(U32 status, const std::string& reason) | 148 | virtual void error(U32 status, const std::string& reason) |
148 | { | 149 | { |
149 | if ( mRetries > 0 ) | 150 | if ( mRetries > 0 ) |
150 | { | 151 | { |
151 | LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, retrying. status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL; | 152 | LL_DEBUGS("VoiceCaps") << "ProvisionVoiceAccountRequest returned an error, retrying. status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL; |
152 | if ( gVoiceClient ) gVoiceClient->requestVoiceAccountProvision( | 153 | if ( gVoiceClient ) gVoiceClient->requestVoiceAccountProvision( |
153 | mRetries - 1); | 154 | mRetries - 1); |
154 | } | 155 | } |
155 | else | 156 | else |
156 | { | 157 | { |
157 | LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, too many retries (giving up). status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL; | 158 | LL_DEBUGS("VoiceCaps") << "ProvisionVoiceAccountRequest returned an error, too many retries (giving up). status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL; |
158 | if ( gVoiceClient ) gVoiceClient->giveUp(); | 159 | if ( gVoiceClient ) gVoiceClient->giveUp(); |
159 | } | 160 | } |
160 | } | 161 | } |
@@ -166,7 +167,7 @@ public: | |||
166 | std::string voice_sip_uri_hostname; | 167 | std::string voice_sip_uri_hostname; |
167 | std::string voice_account_server_uri; | 168 | std::string voice_account_server_uri; |
168 | 169 | ||
169 | LL_DEBUGS("Voice") << "ProvisionVoiceAccountRequest response:" << ll_pretty_print_sd(content) << LL_ENDL; | 170 | LL_DEBUGS("VoiceCaps") << "ProvisionVoiceAccountRequest response:" << ll_pretty_print_sd(content) << LL_ENDL; |
170 | 171 | ||
171 | if(content.has("voice_sip_uri_hostname")) | 172 | if(content.has("voice_sip_uri_hostname")) |
172 | voice_sip_uri_hostname = content["voice_sip_uri_hostname"].asString(); | 173 | voice_sip_uri_hostname = content["voice_sip_uri_hostname"].asString(); |
@@ -179,12 +180,14 @@ public: | |||
179 | content["username"].asString(), | 180 | content["username"].asString(), |
180 | content["password"].asString(), | 181 | content["password"].asString(), |
181 | voice_sip_uri_hostname, | 182 | voice_sip_uri_hostname, |
182 | voice_account_server_uri); | 183 | voice_account_server_uri, |
184 | mResponseID); | ||
183 | } | 185 | } |
184 | } | 186 | } |
185 | 187 | ||
186 | private: | 188 | private: |
187 | int mRetries; | 189 | int mRetries; |
190 | LLUUID mResponseID; | ||
188 | }; | 191 | }; |
189 | 192 | ||
190 | /** | 193 | /** |
@@ -364,7 +367,7 @@ LLIOPipe::EStatus LLVivoxProtocolParser::process_impl( | |||
364 | // If this message isn't set to be squelched, output the raw XML received. | 367 | // If this message isn't set to be squelched, output the raw XML received. |
365 | if(!squelchDebugOutput) | 368 | if(!squelchDebugOutput) |
366 | { | 369 | { |
367 | LL_DEBUGS("Voice") << "parsing: " << mInput.substr(start, delim - start) << LL_ENDL; | 370 | LL_DEBUGS("VivoxProtocolParser") << "parsing: " << mInput.substr(start, delim - start) << LL_ENDL; |
368 | } | 371 | } |
369 | 372 | ||
370 | start = delim + 3; | 373 | start = delim + 3; |
@@ -378,7 +381,7 @@ LLIOPipe::EStatus LLVivoxProtocolParser::process_impl( | |||
378 | if(!gVoiceClient->mConnected) | 381 | if(!gVoiceClient->mConnected) |
379 | { | 382 | { |
380 | // If voice has been disabled, we just want to close the socket. This does so. | 383 | // If voice has been disabled, we just want to close the socket. This does so. |
381 | LL_INFOS("Voice") << "returning STATUS_STOP" << LL_ENDL; | 384 | LL_INFOS("VivoxProtocolParser") << "returning STATUS_STOP" << LL_ENDL; |
382 | return STATUS_STOP; | 385 | return STATUS_STOP; |
383 | } | 386 | } |
384 | 387 | ||
@@ -452,13 +455,13 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr) | |||
452 | } | 455 | } |
453 | } | 456 | } |
454 | } | 457 | } |
455 | LL_DEBUGS("VivoxProtocolParser") << tag << " (" << responseDepth << ")" << LL_ENDL; | 458 | LL_DEBUGS("VivoxProtocolParserTag") << tag << " (" << responseDepth << ")" << LL_ENDL; |
456 | } | 459 | } |
457 | else | 460 | else |
458 | { | 461 | { |
459 | if (ignoringTags) | 462 | if (ignoringTags) |
460 | { | 463 | { |
461 | LL_DEBUGS("VivoxProtocolParser") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; | 464 | LL_DEBUGS("VivoxProtocolParserTag") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; |
462 | } | 465 | } |
463 | else | 466 | else |
464 | { | 467 | { |
@@ -471,7 +474,7 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr) | |||
471 | ignoreDepth = responseDepth; | 474 | ignoreDepth = responseDepth; |
472 | accumulateText = false; | 475 | accumulateText = false; |
473 | 476 | ||
474 | LL_DEBUGS("VivoxProtocolParser") << "starting ignore, ignoreDepth is " << ignoreDepth << LL_ENDL; | 477 | LL_DEBUGS("VivoxProtocolParserTag") << "starting ignore, ignoreDepth is " << ignoreDepth << LL_ENDL; |
475 | } | 478 | } |
476 | else if (!stricmp("CaptureDevices", tag)) | 479 | else if (!stricmp("CaptureDevices", tag)) |
477 | { | 480 | { |
@@ -512,18 +515,18 @@ void LLVivoxProtocolParser::EndTag(const char *tag) | |||
512 | { | 515 | { |
513 | if (ignoreDepth == responseDepth) | 516 | if (ignoreDepth == responseDepth) |
514 | { | 517 | { |
515 | LL_DEBUGS("VivoxProtocolParser") << "end of ignore" << LL_ENDL; | 518 | LL_DEBUGS("VivoxProtocolParserTag") << "end of ignore" << LL_ENDL; |
516 | ignoringTags = false; | 519 | ignoringTags = false; |
517 | } | 520 | } |
518 | else | 521 | else |
519 | { | 522 | { |
520 | LL_DEBUGS("VivoxProtocolParser") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; | 523 | LL_DEBUGS("VivoxProtocolParserTag") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; |
521 | } | 524 | } |
522 | } | 525 | } |
523 | 526 | ||
524 | if (!ignoringTags) | 527 | if (!ignoringTags) |
525 | { | 528 | { |
526 | LL_DEBUGS("VivoxProtocolParser") << "processing tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; | 529 | LL_DEBUGS("VivoxProtocolParserTag") << "processing tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; |
527 | 530 | ||
528 | // Closing a tag. Finalize the text we've accumulated and reset | 531 | // Closing a tag. Finalize the text we've accumulated and reset |
529 | if (!stricmp("ReturnCode", tag)) | 532 | if (!stricmp("ReturnCode", tag)) |
@@ -1008,12 +1011,13 @@ static LLVoiceClientFriendsObserver *friendslist_listener = NULL; | |||
1008 | class LLVoiceClientCapResponder : public LLHTTPClient::Responder | 1011 | class LLVoiceClientCapResponder : public LLHTTPClient::Responder |
1009 | { | 1012 | { |
1010 | public: | 1013 | public: |
1011 | LLVoiceClientCapResponder(void){}; | 1014 | LLVoiceClientCapResponder(LLUUID response_id):mResponseID(response_id) {}; |
1012 | 1015 | ||
1013 | virtual void error(U32 status, const std::string& reason); // called with bad status codes | 1016 | virtual void error(U32 status, const std::string& reason); // called with bad status codes |
1014 | virtual void result(const LLSD& content); | 1017 | virtual void result(const LLSD& content); |
1015 | 1018 | ||
1016 | private: | 1019 | private: |
1020 | LLUUID mResponseID; | ||
1017 | }; | 1021 | }; |
1018 | 1022 | ||
1019 | void LLVoiceClientCapResponder::error(U32 status, const std::string& reason) | 1023 | void LLVoiceClientCapResponder::error(U32 status, const std::string& reason) |
@@ -1027,7 +1031,7 @@ void LLVoiceClientCapResponder::result(const LLSD& content) | |||
1027 | { | 1031 | { |
1028 | LLSD::map_const_iterator iter; | 1032 | LLSD::map_const_iterator iter; |
1029 | 1033 | ||
1030 | LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest response:" << ll_pretty_print_sd(content) << LL_ENDL; | 1034 | LL_DEBUGS("VoiceCaps") << "ParcelVoiceInfoRequest response:\n" << ll_pretty_print_sd(content) << LL_ENDL; |
1031 | 1035 | ||
1032 | if ( content.has("voice_credentials") ) | 1036 | if ( content.has("voice_credentials") ) |
1033 | { | 1037 | { |
@@ -1045,7 +1049,7 @@ void LLVoiceClientCapResponder::result(const LLSD& content) | |||
1045 | voice_credentials["channel_credentials"].asString(); | 1049 | voice_credentials["channel_credentials"].asString(); |
1046 | } | 1050 | } |
1047 | 1051 | ||
1048 | gVoiceClient->setSpatialChannel(uri, credentials); | 1052 | gVoiceClient->setSpatialChannel(uri, credentials, mResponseID); |
1049 | } | 1053 | } |
1050 | } | 1054 | } |
1051 | 1055 | ||
@@ -1126,6 +1130,8 @@ LLVoiceClient::LLVoiceClient() | |||
1126 | mAudioSessionChanged = false; | 1130 | mAudioSessionChanged = false; |
1127 | 1131 | ||
1128 | // Initial dirty state | 1132 | // Initial dirty state |
1133 | mAccountActive = false; | ||
1134 | mVAPRequested = false; | ||
1129 | mSpatialCoordsDirty = false; | 1135 | mSpatialCoordsDirty = false; |
1130 | mPTTDirty = true; | 1136 | mPTTDirty = true; |
1131 | mFriendsListDirty = true; | 1137 | mFriendsListDirty = true; |
@@ -1169,11 +1175,13 @@ LLVoiceClient::LLVoiceClient() | |||
1169 | // Ignoring SIGCHLD should prevent zombies from being created. Alternately, we could use wait(), but I'd rather not do that. | 1175 | // Ignoring SIGCHLD should prevent zombies from being created. Alternately, we could use wait(), but I'd rather not do that. |
1170 | signal(SIGCHLD, SIG_IGN); | 1176 | signal(SIGCHLD, SIG_IGN); |
1171 | #endif | 1177 | #endif |
1172 | 1178 | if(!gSavedSettings.getBOOL("CmdLineDisableVoice"))//no reason to lag non-voice users | |
1173 | // set up state machine | 1179 | { |
1174 | setState(stateDisabled); | 1180 | // set up state machine |
1175 | 1181 | setState(stateDisabled); | |
1176 | gIdleCallbacks.addFunction(idle, this); | 1182 | |
1183 | gIdleCallbacks.addFunction(idle, this); | ||
1184 | } | ||
1177 | } | 1185 | } |
1178 | 1186 | ||
1179 | //--------------------------------------------------- | 1187 | //--------------------------------------------------- |
@@ -1347,22 +1355,33 @@ void LLVoiceClient::userAuthorized(const std::string& firstName, const std::stri | |||
1347 | sConnectingToAgni = LLViewerLogin::getInstance()->isInProductionGrid(); | 1355 | sConnectingToAgni = LLViewerLogin::getInstance()->isInProductionGrid(); |
1348 | 1356 | ||
1349 | mAccountName = nameFromID(agentID); | 1357 | mAccountName = nameFromID(agentID); |
1358 | mAccountActive = true; | ||
1350 | } | 1359 | } |
1351 | 1360 | ||
1352 | void LLVoiceClient::requestVoiceAccountProvision(S32 retries) | 1361 | void LLVoiceClient::requestVoiceAccountProvision(S32 retries) |
1353 | { | 1362 | { |
1354 | if ( gAgent.getRegion() && mVoiceEnabled ) | 1363 | LLViewerRegion* region = gAgent.getRegion(); |
1364 | if ( mVoiceEnabled && region && region->capabilitiesReceived()) | ||
1355 | { | 1365 | { |
1356 | std::string url = | 1366 | std::string url = region->getCapability("ProvisionVoiceAccountRequest"); |
1357 | gAgent.getRegion()->getCapability( | 1367 | |
1358 | "ProvisionVoiceAccountRequest"); | 1368 | if ( url.empty() ) |
1369 | { | ||
1370 | mVAPRequested = false; | ||
1371 | mAccountActive = false; | ||
1372 | LL_DEBUGS("VoiceSession") << "Cancel Session: ProvisionVoiceAccountRequest capability empty." | ||
1373 | << llendl; | ||
1374 | setState(stateDisableCleanup); | ||
1375 | } | ||
1359 | 1376 | ||
1360 | if ( url == "" ) return; | 1377 | LL_DEBUGS("VoiceCaps") << "Got ProvisionVoiceAccountRequest capability: " |
1378 | << url << llendl; | ||
1361 | 1379 | ||
1380 | mVAPCapResponseID.generate(); | ||
1362 | LLHTTPClient::post( | 1381 | LLHTTPClient::post( |
1363 | url, | 1382 | url, |
1364 | LLSD(), | 1383 | LLSD(), |
1365 | new LLViewerVoiceAccountProvisionResponder(retries)); | 1384 | new LLViewerVoiceAccountProvisionResponder(retries, mVAPCapResponseID)); |
1366 | } | 1385 | } |
1367 | } | 1386 | } |
1368 | 1387 | ||
@@ -1370,11 +1389,46 @@ void LLVoiceClient::login( | |||
1370 | const std::string& account_name, | 1389 | const std::string& account_name, |
1371 | const std::string& password, | 1390 | const std::string& password, |
1372 | const std::string& voice_sip_uri_hostname, | 1391 | const std::string& voice_sip_uri_hostname, |
1373 | const std::string& voice_account_server_uri) | 1392 | const std::string& voice_account_server_uri, |
1393 | const LLUUID& response_id) | ||
1374 | { | 1394 | { |
1395 | if(response_id != mVAPCapResponseID) return; | ||
1396 | |||
1397 | std::string new_scheme; | ||
1398 | std::string old_scheme; | ||
1399 | if(!voice_account_server_uri.empty()) | ||
1400 | { | ||
1401 | new_scheme = voice_account_server_uri.substr(0, voice_account_server_uri.find("://")); | ||
1402 | } | ||
1403 | if(!mDaemonScheme.empty()) | ||
1404 | { | ||
1405 | old_scheme = mDaemonScheme; | ||
1406 | } | ||
1407 | else | ||
1408 | { | ||
1409 | old_scheme = new_scheme; | ||
1410 | } | ||
1411 | |||
1375 | mVoiceSIPURIHostName = voice_sip_uri_hostname; | 1412 | mVoiceSIPURIHostName = voice_sip_uri_hostname; |
1376 | mVoiceAccountServerURI = voice_account_server_uri; | 1413 | mVoiceAccountServerURI = voice_account_server_uri; |
1377 | 1414 | ||
1415 | |||
1416 | LL_DEBUGS("VoiceCaps") << "new_scheme: \"" << new_scheme << "\"" | ||
1417 | << "\nold_scheme: \"" << old_scheme << "\"" | ||
1418 | << "\ngateway running: " << ( isGatewayRunning() ? "true" : "false" ) << llendl; | ||
1419 | if(!isGatewayRunning() ) | ||
1420 | { | ||
1421 | loadDaemon(new_scheme); | ||
1422 | } | ||
1423 | else if(old_scheme != new_scheme) | ||
1424 | { | ||
1425 | mAccountActive = true; | ||
1426 | LL_DEBUGS("VoiceSession") << "Cancel Session: Protocol changed." | ||
1427 | << llendl; | ||
1428 | setState(stateDisableCleanup); | ||
1429 | } | ||
1430 | |||
1431 | |||
1378 | if(!mAccountHandle.empty()) | 1432 | if(!mAccountHandle.empty()) |
1379 | { | 1433 | { |
1380 | // Already logged in. | 1434 | // Already logged in. |
@@ -1432,6 +1486,185 @@ void LLVoiceClient::login( | |||
1432 | } | 1486 | } |
1433 | } | 1487 | } |
1434 | 1488 | ||
1489 | void LLVoiceClient::loadDaemon(const std::string& scheme) | ||
1490 | { | ||
1491 | |||
1492 | // Launch the voice daemon | ||
1493 | |||
1494 | |||
1495 | // *FIX:Mani - Using the executable dir instead | ||
1496 | // of mAppRODataDir, the working directory from which the app | ||
1497 | // is launched. | ||
1498 | //std::string exe_path = gDirUtilp->getAppRODataDir(); | ||
1499 | std::string exe_path = gDirUtilp->getExecutableDir(); | ||
1500 | exe_path += gDirUtilp->getDirDelimiter(); | ||
1501 | |||
1502 | #if LL_DARWIN | ||
1503 | exe_path += "../Resources/"; | ||
1504 | #endif | ||
1505 | |||
1506 | //exe_path += gSavedSettings.getString("VoiceModule"); | ||
1507 | llwarns << "Scheme: " << scheme << llendl; | ||
1508 | |||
1509 | std::string module; | ||
1510 | if (scheme == "tcp") | ||
1511 | { | ||
1512 | |||
1513 | module = gSavedSettings.getString("VoiceModuleMumble").empty() ? | ||
1514 | "mumble" : gSavedSettings.getString("VoiceModuleMumble"); | ||
1515 | } | ||
1516 | else | ||
1517 | { | ||
1518 | module = gSavedSettings.getString("VoiceModuleVivox").empty() ? | ||
1519 | "SLVoice" : gSavedSettings.getString("VoiceModuleVivox"); | ||
1520 | } | ||
1521 | |||
1522 | size_t pos_to_tst = module.find_last_of("/\\"); | ||
1523 | if( pos_to_tst != std::string::npos ) | ||
1524 | { | ||
1525 | module = module.substr(pos_to_tst+1); | ||
1526 | } | ||
1527 | |||
1528 | #if LL_WINDOWS | ||
1529 | std::string extension = ".exe"; | ||
1530 | if ( module.rfind(extension) != module.length()-extension.length()) | ||
1531 | { | ||
1532 | module.append(extension); | ||
1533 | } | ||
1534 | #endif | ||
1535 | |||
1536 | exe_path.append(module); | ||
1537 | |||
1538 | // See if the vivox executable exists | ||
1539 | llstat s; | ||
1540 | if(!LLFile::stat(exe_path, &s)) | ||
1541 | { | ||
1542 | // vivox executable exists. Build the command line and launch the daemon. | ||
1543 | // SLIM SDK: these arguments are no longer necessary. | ||
1544 | // std::string args = " -p tcp -h -c"; | ||
1545 | std::string args; | ||
1546 | std::string cmd; | ||
1547 | std::string loglevel = gSavedSettings.getString("VivoxDebugLevel"); | ||
1548 | |||
1549 | if(loglevel.empty()) | ||
1550 | { | ||
1551 | loglevel = "-1"; // turn logging off completely | ||
1552 | } | ||
1553 | |||
1554 | args += " -ll "; | ||
1555 | args += loglevel; | ||
1556 | |||
1557 | llwarns << "Voice loaded from: " << exe_path << " " << args << LL_ENDL; | ||
1558 | |||
1559 | #if LL_WINDOWS | ||
1560 | PROCESS_INFORMATION pinfo; | ||
1561 | STARTUPINFOA sinfo; | ||
1562 | memset(&sinfo, 0, sizeof(sinfo)); | ||
1563 | std::string exe_dir = gDirUtilp->getAppRODataDir(); | ||
1564 | |||
1565 | |||
1566 | // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string... | ||
1567 | char *args2 = new char[args.size() + 1]; | ||
1568 | strcpy(args2, args.c_str()); | ||
1569 | |||
1570 | if(!CreateProcessA(exe_path.c_str(), args2, NULL, NULL, FALSE, 0, NULL, exe_dir.c_str(), &sinfo, &pinfo)) | ||
1571 | { | ||
1572 | // DWORD dwErr = GetLastError(); | ||
1573 | } | ||
1574 | else | ||
1575 | { | ||
1576 | // foo = pinfo.dwProcessId; // get your pid here if you want to use it later on | ||
1577 | // CloseHandle(pinfo.hProcess); // stops leaks - nothing else | ||
1578 | sGatewayHandle = pinfo.hProcess; | ||
1579 | CloseHandle(pinfo.hThread); // stops leaks - nothing else | ||
1580 | } | ||
1581 | |||
1582 | delete[] args2; | ||
1583 | #else // LL_WINDOWS | ||
1584 | // This should be the same for mac and linux | ||
1585 | { | ||
1586 | std::vector<std::string> arglist; | ||
1587 | arglist.push_back(exe_path); | ||
1588 | |||
1589 | // Split the argument string into separate strings for each argument | ||
1590 | typedef boost::tokenizer<boost::char_separator<char> > tokenizer; | ||
1591 | boost::char_separator<char> sep(" "); | ||
1592 | tokenizer tokens(args, sep); | ||
1593 | tokenizer::iterator token_iter; | ||
1594 | |||
1595 | for(token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter) | ||
1596 | { | ||
1597 | arglist.push_back(*token_iter); | ||
1598 | } | ||
1599 | |||
1600 | // create an argv vector for the child process | ||
1601 | char **fakeargv = new char*[arglist.size() + 1]; | ||
1602 | int i; | ||
1603 | for(i=0; i < arglist.size(); i++) | ||
1604 | fakeargv[i] = const_cast<char*>(arglist[i].c_str()); | ||
1605 | |||
1606 | fakeargv[i] = NULL; | ||
1607 | |||
1608 | fflush(NULL); // flush all buffers before the child inherits them | ||
1609 | pid_t id = vfork(); | ||
1610 | if(id == 0) | ||
1611 | { | ||
1612 | // child | ||
1613 | execv(exe_path.c_str(), fakeargv); | ||
1614 | |||
1615 | // If we reach this point, the exec failed. | ||
1616 | // Use _exit() instead of exit() per the vfork man page. | ||
1617 | _exit(0); | ||
1618 | } | ||
1619 | |||
1620 | // parent | ||
1621 | delete[] fakeargv; | ||
1622 | sGatewayPID = id; | ||
1623 | |||
1624 | } | ||
1625 | |||
1626 | #endif // LL_WINDOWS | ||
1627 | |||
1628 | mDaemonScheme = scheme; | ||
1629 | mDaemonHost = LLHost(gSavedSettings.getString("VoiceHost").c_str(), gSavedSettings.getU32("VoicePort")); | ||
1630 | |||
1631 | // Dirty the states we'll need to sync with the daemon when it comes up. | ||
1632 | mPTTDirty = true; | ||
1633 | mMicVolumeDirty = true; | ||
1634 | mSpeakerVolumeDirty = true; | ||
1635 | mSpeakerMuteDirty = true; | ||
1636 | // These only need to be set if they're not default (i.e. empty string). | ||
1637 | mCaptureDeviceDirty = !mCaptureDevice.empty(); | ||
1638 | mRenderDeviceDirty = !mRenderDevice.empty(); | ||
1639 | |||
1640 | mMainSessionGroupHandle.clear(); | ||
1641 | |||
1642 | // kick in | ||
1643 | |||
1644 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); | ||
1645 | mUpdateTimer.start(); | ||
1646 | |||
1647 | setState(stateDaemonLaunched); | ||
1648 | |||
1649 | //trigger parcel changed in the state engine | ||
1650 | mCurrentRegionName.append("kick in"); | ||
1651 | |||
1652 | |||
1653 | } | ||
1654 | else | ||
1655 | { | ||
1656 | LL_WARNS("Voice") << exe_path << " not found." << LL_ENDL; | ||
1657 | mAccountActive = false; | ||
1658 | LL_DEBUGS("VoiceSession") << "Cancel Session: no module" | ||
1659 | << llendl; | ||
1660 | setState(stateDisableCleanup); | ||
1661 | } | ||
1662 | |||
1663 | // we are done, re-allow ProvisionVoiceAccountRequest | ||
1664 | mVAPRequested = false; | ||
1665 | } | ||
1666 | |||
1667 | |||
1435 | void LLVoiceClient::idle(void* user_data) | 1668 | void LLVoiceClient::idle(void* user_data) |
1436 | { | 1669 | { |
1437 | LLVoiceClient* self = (LLVoiceClient*)user_data; | 1670 | LLVoiceClient* self = (LLVoiceClient*)user_data; |
@@ -1527,6 +1760,8 @@ void LLVoiceClient::setState(state inState) | |||
1527 | } | 1760 | } |
1528 | void LLVoiceClient::close() | 1761 | void LLVoiceClient::close() |
1529 | { | 1762 | { |
1763 | LL_DEBUGS("VoiceSession") << "Cancel Session: LLVoiceClient::close() called." | ||
1764 | << llendl; | ||
1530 | setState(stateDisableCleanup); | 1765 | setState(stateDisableCleanup); |
1531 | } | 1766 | } |
1532 | 1767 | ||
@@ -1537,11 +1772,20 @@ void LLVoiceClient::start() | |||
1537 | 1772 | ||
1538 | void LLVoiceClient::stateMachine() | 1773 | void LLVoiceClient::stateMachine() |
1539 | { | 1774 | { |
1775 | if( stateJail == getState()) | ||
1776 | { | ||
1777 | return; | ||
1778 | } | ||
1779 | |||
1780 | if(gSavedSettings.getBOOL("CmdLineDisableVoice")) | ||
1781 | { | ||
1782 | // Voice is locked out, we must not launch the vivox daemon. | ||
1783 | setState(stateJail); | ||
1784 | } | ||
1540 | 1785 | ||
1541 | // Disable voice as long as the viewer is disconnected from the sim (login/relog) | 1786 | // Disable voice as long as the viewer is disconnected from the sim (login/relog) |
1542 | setVoiceEnabled(!gDisconnected | 1787 | setVoiceEnabled(!gDisconnected |
1543 | && gSavedSettings.getBOOL("EnableVoiceChat") | 1788 | && gSavedSettings.getBOOL("EnableVoiceChat") ); |
1544 | && !gSavedSettings.getBOOL("CmdLineDisableVoice") ); | ||
1545 | 1789 | ||
1546 | if(mVoiceEnabled) | 1790 | if(mVoiceEnabled) |
1547 | { | 1791 | { |
@@ -1560,12 +1804,10 @@ void LLVoiceClient::stateMachine() | |||
1560 | { | 1804 | { |
1561 | // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. | 1805 | // if voice was turned off after the daemon was launched but before we could connect to it, we may need to issue a kill. |
1562 | LL_WARNS("Voice") << "Disabling voice before connection to daemon, terminating." << LL_ENDL; | 1806 | LL_WARNS("Voice") << "Disabling voice before connection to daemon, terminating." << LL_ENDL; |
1563 | killGateway(); | ||
1564 | } | 1807 | } |
1565 | 1808 | LL_DEBUGS("VoiceSession") << "Cancel Session: User turned off voice or logs off." | |
1566 | logout(); | 1809 | << llendl; |
1567 | connectorShutdown(); | 1810 | mAccountActive = false; |
1568 | |||
1569 | setState(stateDisableCleanup); | 1811 | setState(stateDisableCleanup); |
1570 | } | 1812 | } |
1571 | } | 1813 | } |
@@ -1574,47 +1816,21 @@ void LLVoiceClient::stateMachine() | |||
1574 | if(mVoiceEnabled) | 1816 | if(mVoiceEnabled) |
1575 | { | 1817 | { |
1576 | LLViewerRegion *region = gAgent.getRegion(); | 1818 | LLViewerRegion *region = gAgent.getRegion(); |
1577 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | 1819 | if(region && region->capabilitiesReceived()) |
1578 | |||
1579 | if(region && parcel) | ||
1580 | { | 1820 | { |
1581 | S32 parcelLocalID = parcel->getLocalID(); | 1821 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); |
1582 | std::string regionName = region->getName(); | 1822 | if(parcel) |
1583 | std::string capURI = region->getCapability("ParcelVoiceInfoRequest"); | ||
1584 | |||
1585 | // LL_DEBUGS("Voice") << "Region name = \"" << regionName << "\", parcel local ID = " << parcelLocalID << ", cap URI = \"" << capURI << "\"" << LL_ENDL; | ||
1586 | |||
1587 | // The region name starts out empty and gets filled in later. | ||
1588 | // Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes. | ||
1589 | // If either is empty, wait for the next time around. | ||
1590 | if(!regionName.empty()) | ||
1591 | { | 1823 | { |
1592 | if(!capURI.empty()) | 1824 | S32 parcelLocalID = parcel->getLocalID(); |
1593 | { | 1825 | std::string regionName = region->getName(); |
1594 | if((parcelLocalID != mCurrentParcelLocalID) || (regionName != mCurrentRegionName)) | 1826 | |
1595 | { | 1827 | if((parcelLocalID != mCurrentParcelLocalID) || (regionName != mCurrentRegionName)) |
1596 | // We have changed parcels. Initiate a parcel channel lookup. | ||
1597 | mCurrentParcelLocalID = parcelLocalID; | ||
1598 | mCurrentRegionName = regionName; | ||
1599 | |||
1600 | parcelChanged(); | ||
1601 | } | ||
1602 | } | ||
1603 | else | ||
1604 | { | 1828 | { |
1605 | static int count = 0; | 1829 | // We have changed parcels. Initiate a parcel channel lookup. |
1606 | static int count2 = 0; | 1830 | mCurrentParcelLocalID = parcelLocalID; |
1607 | static int num = 1; | 1831 | mCurrentRegionName = regionName; |
1608 | ++count; | 1832 | |
1609 | if (count % num == 0) | 1833 | parcelChanged(); |
1610 | { | ||
1611 | LL_DEBUGS("Voice") << "region doesn't have ParcelVoiceInfoRequest capability. This is normal for a short time after teleporting, but bad if it persists for very long (" << count << ")." << LL_ENDL; | ||
1612 | if (num < 1000 && ++count2 == 10) | ||
1613 | { | ||
1614 | num *= 10; | ||
1615 | count2 = 0; | ||
1616 | } | ||
1617 | } | ||
1618 | } | 1834 | } |
1619 | } | 1835 | } |
1620 | } | 1836 | } |
@@ -1624,191 +1840,65 @@ void LLVoiceClient::stateMachine() | |||
1624 | { | 1840 | { |
1625 | //MARK: stateDisableCleanup | 1841 | //MARK: stateDisableCleanup |
1626 | case stateDisableCleanup: | 1842 | case stateDisableCleanup: |
1627 | // Clean up and reset everything. | 1843 | // Clean up and reset everything. |
1844 | |||
1845 | mVAPCapResponseID.setNull(); | ||
1846 | mPIRCapResponseID.setNull(); | ||
1847 | |||
1848 | if(isGatewayRunning()) | ||
1849 | { | ||
1850 | killGateway(); | ||
1851 | } | ||
1852 | logoutSendMessage(); | ||
1853 | mConnected = false; | ||
1854 | |||
1855 | |||
1628 | closeSocket(); | 1856 | closeSocket(); |
1629 | deleteAllSessions(); | 1857 | deleteAllSessions(); |
1630 | deleteAllBuddies(); | 1858 | deleteAllBuddies(); |
1631 | 1859 | ||
1632 | mConnectorHandle.clear(); | 1860 | mConnectorHandle.clear(); |
1633 | mAccountHandle.clear(); | 1861 | mAccountHandle.clear(); |
1634 | mAccountPassword.clear(); | 1862 | mAccountPassword.clear(); |
1635 | mVoiceAccountServerURI.clear(); | 1863 | mVoiceAccountServerURI.clear(); |
1636 | 1864 | mVAPRequested = false; | |
1637 | setState(stateDisabled); | 1865 | setState(stateDisabled); |
1638 | break; | 1866 | break; |
1639 | 1867 | ||
1640 | //MARK: stateDisabled | 1868 | //MARK: stateDisabled |
1641 | case stateDisabled: | 1869 | case stateDisabled: |
1642 | if(mTuningMode || (mVoiceEnabled && !mAccountName.empty())) | 1870 | if(mTuningMode || (mVoiceEnabled && mAccountActive && !mAccountName.empty())) |
1643 | { | 1871 | { |
1644 | setState(stateStart); | 1872 | setState(stateStart); |
1645 | } | 1873 | } |
1646 | break; | 1874 | break; |
1647 | 1875 | ||
1648 | //MARK: stateStart | 1876 | //MARK: stateStart |
1649 | case stateStart: | 1877 | case stateStart: |
1650 | if(gSavedSettings.getBOOL("CmdLineDisableVoice")) | 1878 | { |
1651 | { | 1879 | LLViewerRegion *region = gAgent.getRegion(); |
1652 | // Voice is locked out, we must not launch the vivox daemon. | 1880 | bool have_region = (NULL != region && region->capabilitiesReceived()); |
1653 | setState(stateJail); | 1881 | if(mVoiceEnabled && !mVAPRequested && !mAccountName.empty() && have_region) |
1654 | } | ||
1655 | else if(!isGatewayRunning()) | ||
1656 | { | 1882 | { |
1657 | if(true) | 1883 | mVAPRequested = true; |
1658 | { | 1884 | requestVoiceAccountProvision(); |
1659 | // Launch the voice daemon | ||
1660 | |||
1661 | // *FIX:Mani - Using the executable dir instead | ||
1662 | // of mAppRODataDir, the working directory from which the app | ||
1663 | // is launched. | ||
1664 | //std::string exe_path = gDirUtilp->getAppRODataDir(); | ||
1665 | std::string exe_path = gDirUtilp->getExecutableDir(); | ||
1666 | exe_path += gDirUtilp->getDirDelimiter(); | ||
1667 | #if LL_DARWIN | ||
1668 | exe_path += "../Resources/"; | ||
1669 | #endif | ||
1670 | exe_path += gSavedSettings.getString("VoiceModule"); | ||
1671 | #if LL_WINDOWS | ||
1672 | exe_path += ".exe"; | ||
1673 | #endif | ||
1674 | // See if the vivox executable exists | ||
1675 | llstat s; | ||
1676 | if(!LLFile::stat(exe_path, &s)) | ||
1677 | { | ||
1678 | // vivox executable exists. Build the command line and launch the daemon. | ||
1679 | // SLIM SDK: these arguments are no longer necessary. | ||
1680 | // std::string args = " -p tcp -h -c"; | ||
1681 | std::string args; | ||
1682 | std::string cmd; | ||
1683 | std::string loglevel = gSavedSettings.getString("VivoxDebugLevel"); | ||
1684 | |||
1685 | if(loglevel.empty()) | ||
1686 | { | ||
1687 | loglevel = "-1"; // turn logging off completely | ||
1688 | } | ||
1689 | |||
1690 | args += " -ll "; | ||
1691 | args += loglevel; | ||
1692 | |||
1693 | LL_DEBUGS("Voice") << "Args for SLVoice: " << args << LL_ENDL; | ||
1694 | |||
1695 | #if LL_WINDOWS | ||
1696 | PROCESS_INFORMATION pinfo; | ||
1697 | STARTUPINFOA sinfo; | ||
1698 | memset(&sinfo, 0, sizeof(sinfo)); | ||
1699 | std::string exe_dir = gDirUtilp->getAppRODataDir(); | ||
1700 | cmd = gSavedSettings.getString("VoiceModule"); | ||
1701 | cmd += ".exe"; | ||
1702 | cmd += args; | ||
1703 | |||
1704 | // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string... | ||
1705 | char *args2 = new char[args.size() + 1]; | ||
1706 | strcpy(args2, args.c_str()); | ||
1707 | |||
1708 | if(!CreateProcessA(exe_path.c_str(), args2, NULL, NULL, FALSE, 0, NULL, exe_dir.c_str(), &sinfo, &pinfo)) | ||
1709 | { | ||
1710 | // DWORD dwErr = GetLastError(); | ||
1711 | } | ||
1712 | else | ||
1713 | { | ||
1714 | // foo = pinfo.dwProcessId; // get your pid here if you want to use it later on | ||
1715 | // CloseHandle(pinfo.hProcess); // stops leaks - nothing else | ||
1716 | sGatewayHandle = pinfo.hProcess; | ||
1717 | CloseHandle(pinfo.hThread); // stops leaks - nothing else | ||
1718 | } | ||
1719 | |||
1720 | delete[] args2; | ||
1721 | #else // LL_WINDOWS | ||
1722 | // This should be the same for mac and linux | ||
1723 | { | ||
1724 | std::vector<std::string> arglist; | ||
1725 | arglist.push_back(exe_path); | ||
1726 | |||
1727 | // Split the argument string into separate strings for each argument | ||
1728 | typedef boost::tokenizer<boost::char_separator<char> > tokenizer; | ||
1729 | boost::char_separator<char> sep(" "); | ||
1730 | tokenizer tokens(args, sep); | ||
1731 | tokenizer::iterator token_iter; | ||
1732 | |||
1733 | for(token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter) | ||
1734 | { | ||
1735 | arglist.push_back(*token_iter); | ||
1736 | } | ||
1737 | |||
1738 | // create an argv vector for the child process | ||
1739 | char **fakeargv = new char*[arglist.size() + 1]; | ||
1740 | int i; | ||
1741 | for(i=0; i < arglist.size(); i++) | ||
1742 | fakeargv[i] = const_cast<char*>(arglist[i].c_str()); | ||
1743 | |||
1744 | fakeargv[i] = NULL; | ||
1745 | |||
1746 | fflush(NULL); // flush all buffers before the child inherits them | ||
1747 | pid_t id = vfork(); | ||
1748 | if(id == 0) | ||
1749 | { | ||
1750 | // child | ||
1751 | execv(exe_path.c_str(), fakeargv); | ||
1752 | |||
1753 | // If we reach this point, the exec failed. | ||
1754 | // Use _exit() instead of exit() per the vfork man page. | ||
1755 | _exit(0); | ||
1756 | } | ||
1757 | |||
1758 | // parent | ||
1759 | delete[] fakeargv; | ||
1760 | sGatewayPID = id; | ||
1761 | } | ||
1762 | #endif // LL_WINDOWS | ||
1763 | mDaemonHost = LLHost(gSavedSettings.getString("VoiceHost").c_str(), gSavedSettings.getU32("VoicePort")); | ||
1764 | } | ||
1765 | else | ||
1766 | { | ||
1767 | LL_WARNS("Voice") << exe_path << " not found." << LL_ENDL; | ||
1768 | mVoiceEnabled = false; | ||
1769 | } | ||
1770 | } | ||
1771 | else | ||
1772 | { | ||
1773 | // SLIM SDK: port changed from 44124 to 44125. | ||
1774 | // We can connect to a client gateway running on another host. This is useful for testing. | ||
1775 | // To do this, launch the gateway on a nearby host like this: | ||
1776 | // vivox-gw.exe -p tcp -i 0.0.0.0:44125 | ||
1777 | // and put that host's IP address here. | ||
1778 | mDaemonHost = LLHost(gSavedSettings.getString("VoiceHost"), gSavedSettings.getU32("VoicePort")); | ||
1779 | } | ||
1780 | |||
1781 | mUpdateTimer.start(); | ||
1782 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); | ||
1783 | |||
1784 | setState(stateDaemonLaunched); | ||
1785 | |||
1786 | // Dirty the states we'll need to sync with the daemon when it comes up. | ||
1787 | mPTTDirty = true; | ||
1788 | mMicVolumeDirty = true; | ||
1789 | mSpeakerVolumeDirty = true; | ||
1790 | mSpeakerMuteDirty = true; | ||
1791 | // These only need to be set if they're not default (i.e. empty string). | ||
1792 | mCaptureDeviceDirty = !mCaptureDevice.empty(); | ||
1793 | mRenderDeviceDirty = !mRenderDevice.empty(); | ||
1794 | |||
1795 | mMainSessionGroupHandle.clear(); | ||
1796 | } | 1885 | } |
1797 | break; | 1886 | } break; |
1798 | 1887 | ||
1799 | //MARK: stateDaemonLaunched | 1888 | //MARK: stateDaemonLaunched |
1800 | case stateDaemonLaunched: | 1889 | case stateDaemonLaunched: |
1801 | if(mUpdateTimer.hasExpired()) | 1890 | if(mUpdateTimer.hasExpired()) |
1802 | { | 1891 | { |
1803 | LL_DEBUGS("Voice") << "Connecting to vivox daemon" << LL_ENDL; | 1892 | |
1804 | |||
1805 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); | 1893 | mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); |
1806 | 1894 | ||
1807 | if(!mSocket) | 1895 | if(!mSocket) |
1808 | { | 1896 | { |
1897 | LL_DEBUGS("VoiceDaemon") << "Connecting to voice daemon. Protocol: " | ||
1898 | << mDaemonScheme << LL_ENDL; | ||
1809 | mSocket = LLSocket::create(LLSocket::STREAM_TCP); | 1899 | mSocket = LLSocket::create(LLSocket::STREAM_TCP); |
1810 | } | 1900 | } |
1811 | 1901 | ||
1812 | mConnected = mSocket->blockingConnect(mDaemonHost); | 1902 | mConnected = mSocket->blockingConnect(mDaemonHost); |
1813 | if(mConnected) | 1903 | if(mConnected) |
1814 | { | 1904 | { |
@@ -1817,6 +1907,7 @@ void LLVoiceClient::stateMachine() | |||
1817 | else | 1907 | else |
1818 | { | 1908 | { |
1819 | // If the connect failed, the socket may have been put into a bad state. Delete it. | 1909 | // If the connect failed, the socket may have been put into a bad state. Delete it. |
1910 | LL_DEBUGS("VoiceDaemon") << "voice daemon not ready yet, retrying" << LL_ENDL; | ||
1820 | closeSocket(); | 1911 | closeSocket(); |
1821 | } | 1912 | } |
1822 | } | 1913 | } |
@@ -1842,9 +1933,8 @@ void LLVoiceClient::stateMachine() | |||
1842 | 1933 | ||
1843 | setState(stateConnected); | 1934 | setState(stateConnected); |
1844 | } | 1935 | } |
1845 | |||
1846 | break; | 1936 | break; |
1847 | 1937 | ||
1848 | //MARK: stateConnected | 1938 | //MARK: stateConnected |
1849 | case stateConnected: | 1939 | case stateConnected: |
1850 | // Initial devices query | 1940 | // Initial devices query |
@@ -1871,24 +1961,16 @@ void LLVoiceClient::stateMachine() | |||
1871 | } | 1961 | } |
1872 | else if(!mAccountName.empty() && mVoiceEnabled) | 1962 | else if(!mAccountName.empty() && mVoiceEnabled) |
1873 | { | 1963 | { |
1874 | LLViewerRegion *region = gAgent.getRegion(); | 1964 | if ( mAccountPassword.empty() ) |
1875 | |||
1876 | if(region) | ||
1877 | { | 1965 | { |
1878 | if ( region->getCapability("ProvisionVoiceAccountRequest") != "" ) | 1966 | requestVoiceAccountProvision(); |
1879 | { | 1967 | } |
1880 | if ( mAccountPassword.empty() ) | 1968 | else |
1881 | { | 1969 | { |
1882 | requestVoiceAccountProvision(); | 1970 | setState(stateConnectorStart); |
1883 | } | ||
1884 | setState(stateConnectorStart); | ||
1885 | } | ||
1886 | else | ||
1887 | { | ||
1888 | LL_DEBUGS("Voice") << "region doesn't have ProvisionVoiceAccountRequest capability!" << LL_ENDL; | ||
1889 | } | ||
1890 | } | 1971 | } |
1891 | } | 1972 | } |
1973 | |||
1892 | break; | 1974 | break; |
1893 | 1975 | ||
1894 | //MARK: stateMicTuningStart | 1976 | //MARK: stateMicTuningStart |
@@ -2025,7 +2107,10 @@ void LLVoiceClient::stateMachine() | |||
2025 | if(mLoginRetryCount > MAX_LOGIN_RETRIES) | 2107 | if(mLoginRetryCount > MAX_LOGIN_RETRIES) |
2026 | { | 2108 | { |
2027 | LL_WARNS("Voice") << "too many login retries, giving up." << LL_ENDL; | 2109 | LL_WARNS("Voice") << "too many login retries, giving up." << LL_ENDL; |
2028 | setState(stateLoginFailed); | 2110 | LL_DEBUGS("VoiceSession") << "Cancel Session: too many login retries." |
2111 | << llendl; | ||
2112 | mAccountActive = false; | ||
2113 | setState(stateDisableCleanup); | ||
2029 | } | 2114 | } |
2030 | else | 2115 | else |
2031 | { | 2116 | { |
@@ -2385,7 +2470,11 @@ void LLVoiceClient::stateMachine() | |||
2385 | 2470 | ||
2386 | //MARK: stateConnectorStopped | 2471 | //MARK: stateConnectorStopped |
2387 | case stateConnectorStopped: // connector stop received | 2472 | case stateConnectorStopped: // connector stop received |
2473 | { | ||
2474 | LL_DEBUGS("VoiceSession") << "Cancel Session: entered stateConnectorStopped." | ||
2475 | << llendl; | ||
2388 | setState(stateDisableCleanup); | 2476 | setState(stateDisableCleanup); |
2477 | } | ||
2389 | break; | 2478 | break; |
2390 | 2479 | ||
2391 | //MARK: stateConnectorFailed | 2480 | //MARK: stateConnectorFailed |
@@ -2396,6 +2485,8 @@ void LLVoiceClient::stateMachine() | |||
2396 | case stateConnectorFailedWaiting: | 2485 | case stateConnectorFailedWaiting: |
2397 | if(!mVoiceEnabled) | 2486 | if(!mVoiceEnabled) |
2398 | { | 2487 | { |
2488 | LL_DEBUGS("VoiceSession") << "Cancel Session: entered stateConnectorFailedWaiting." | ||
2489 | << llendl; | ||
2399 | setState(stateDisableCleanup); | 2490 | setState(stateDisableCleanup); |
2400 | } | 2491 | } |
2401 | break; | 2492 | break; |
@@ -2408,6 +2499,8 @@ void LLVoiceClient::stateMachine() | |||
2408 | case stateLoginFailedWaiting: | 2499 | case stateLoginFailedWaiting: |
2409 | if(!mVoiceEnabled) | 2500 | if(!mVoiceEnabled) |
2410 | { | 2501 | { |
2502 | LL_DEBUGS("VoiceSession") << "Cancel Session: entered stateLoginFailedWaiting." | ||
2503 | << llendl; | ||
2411 | setState(stateDisableCleanup); | 2504 | setState(stateDisableCleanup); |
2412 | } | 2505 | } |
2413 | break; | 2506 | break; |
@@ -2569,7 +2662,7 @@ void LLVoiceClient::sessionGroupCreateSendMessage() | |||
2569 | 2662 | ||
2570 | void LLVoiceClient::sessionCreateSendMessage(sessionState *session, bool startAudio, bool startText) | 2663 | void LLVoiceClient::sessionCreateSendMessage(sessionState *session, bool startAudio, bool startText) |
2571 | { | 2664 | { |
2572 | LL_DEBUGS("Voice") << "requesting create: " << session->mSIPURI << LL_ENDL; | 2665 | LL_DEBUGS("VoiceSession") << "requesting create: " << session->mSIPURI << LL_ENDL; |
2573 | 2666 | ||
2574 | session->mCreateInProgress = true; | 2667 | session->mCreateInProgress = true; |
2575 | if(startAudio) | 2668 | if(startAudio) |
@@ -2605,7 +2698,7 @@ void LLVoiceClient::sessionCreateSendMessage(sessionState *session, bool startAu | |||
2605 | 2698 | ||
2606 | void LLVoiceClient::sessionGroupAddSessionSendMessage(sessionState *session, bool startAudio, bool startText) | 2699 | void LLVoiceClient::sessionGroupAddSessionSendMessage(sessionState *session, bool startAudio, bool startText) |
2607 | { | 2700 | { |
2608 | LL_DEBUGS("Voice") << "requesting create: " << session->mSIPURI << LL_ENDL; | 2701 | LL_DEBUGS("VoiceSession") << "requesting create: " << session->mSIPURI << LL_ENDL; |
2609 | 2702 | ||
2610 | session->mCreateInProgress = true; | 2703 | session->mCreateInProgress = true; |
2611 | if(startAudio) | 2704 | if(startAudio) |
@@ -2642,7 +2735,7 @@ void LLVoiceClient::sessionGroupAddSessionSendMessage(sessionState *session, boo | |||
2642 | 2735 | ||
2643 | void LLVoiceClient::sessionMediaConnectSendMessage(sessionState *session) | 2736 | void LLVoiceClient::sessionMediaConnectSendMessage(sessionState *session) |
2644 | { | 2737 | { |
2645 | LL_DEBUGS("Voice") << "connecting audio to session handle: " << session->mHandle << LL_ENDL; | 2738 | LL_DEBUGS("VoiceSession") << "connecting audio to session handle: " << session->mHandle << LL_ENDL; |
2646 | 2739 | ||
2647 | session->mMediaConnectInProgress = true; | 2740 | session->mMediaConnectInProgress = true; |
2648 | 2741 | ||
@@ -2660,7 +2753,7 @@ void LLVoiceClient::sessionMediaConnectSendMessage(sessionState *session) | |||
2660 | 2753 | ||
2661 | void LLVoiceClient::sessionTextConnectSendMessage(sessionState *session) | 2754 | void LLVoiceClient::sessionTextConnectSendMessage(sessionState *session) |
2662 | { | 2755 | { |
2663 | LL_DEBUGS("Voice") << "connecting text to session handle: " << session->mHandle << LL_ENDL; | 2756 | LL_DEBUGS("VoiceSession") << "connecting text to session handle: " << session->mHandle << LL_ENDL; |
2664 | 2757 | ||
2665 | std::ostringstream stream; | 2758 | std::ostringstream stream; |
2666 | 2759 | ||
@@ -2689,7 +2782,7 @@ void LLVoiceClient::leaveAudioSession() | |||
2689 | { | 2782 | { |
2690 | if(mAudioSession) | 2783 | if(mAudioSession) |
2691 | { | 2784 | { |
2692 | LL_DEBUGS("Voice") << "leaving session: " << mAudioSession->mSIPURI << LL_ENDL; | 2785 | LL_DEBUGS("VoiceSession") << "leaving session: " << mAudioSession->mSIPURI << LL_ENDL; |
2693 | 2786 | ||
2694 | switch(getState()) | 2787 | switch(getState()) |
2695 | { | 2788 | { |
@@ -2724,7 +2817,7 @@ void LLVoiceClient::leaveAudioSession() | |||
2724 | } | 2817 | } |
2725 | else | 2818 | else |
2726 | { | 2819 | { |
2727 | LL_WARNS("Voice") << "called with no session handle" << LL_ENDL; | 2820 | LL_WARNS("VoiceSession") << "called with no session handle" << LL_ENDL; |
2728 | setState(stateSessionTerminated); | 2821 | setState(stateSessionTerminated); |
2729 | } | 2822 | } |
2730 | break; | 2823 | break; |
@@ -2734,13 +2827,13 @@ void LLVoiceClient::leaveAudioSession() | |||
2734 | break; | 2827 | break; |
2735 | 2828 | ||
2736 | default: | 2829 | default: |
2737 | LL_WARNS("Voice") << "called from unknown state" << LL_ENDL; | 2830 | LL_WARNS("VoiceSession") << "called from unknown state" << LL_ENDL; |
2738 | break; | 2831 | break; |
2739 | } | 2832 | } |
2740 | } | 2833 | } |
2741 | else | 2834 | else |
2742 | { | 2835 | { |
2743 | LL_WARNS("Voice") << "called with no active session" << LL_ENDL; | 2836 | LL_WARNS("VoiceSession") << "called with no active session" << LL_ENDL; |
2744 | setState(stateSessionTerminated); | 2837 | setState(stateSessionTerminated); |
2745 | } | 2838 | } |
2746 | } | 2839 | } |
@@ -2749,7 +2842,7 @@ void LLVoiceClient::sessionTerminateSendMessage(sessionState *session) | |||
2749 | { | 2842 | { |
2750 | std::ostringstream stream; | 2843 | std::ostringstream stream; |
2751 | 2844 | ||
2752 | LL_DEBUGS("Voice") << "Sending Session.Terminate with handle " << session->mHandle << LL_ENDL; | 2845 | LL_DEBUGS("VoiceSession") << "Sending Session.Terminate with handle " << session->mHandle << LL_ENDL; |
2753 | stream | 2846 | stream |
2754 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Terminate.1\">" | 2847 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Terminate.1\">" |
2755 | << "<SessionHandle>" << session->mHandle << "</SessionHandle>" | 2848 | << "<SessionHandle>" << session->mHandle << "</SessionHandle>" |
@@ -2762,7 +2855,7 @@ void LLVoiceClient::sessionGroupTerminateSendMessage(sessionState *session) | |||
2762 | { | 2855 | { |
2763 | std::ostringstream stream; | 2856 | std::ostringstream stream; |
2764 | 2857 | ||
2765 | LL_DEBUGS("Voice") << "Sending SessionGroup.Terminate with handle " << session->mGroupHandle << LL_ENDL; | 2858 | LL_DEBUGS("VoiceSession") << "Sending SessionGroup.Terminate with handle " << session->mGroupHandle << LL_ENDL; |
2766 | stream | 2859 | stream |
2767 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.Terminate.1\">" | 2860 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.Terminate.1\">" |
2768 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" | 2861 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" |
@@ -2775,7 +2868,7 @@ void LLVoiceClient::sessionMediaDisconnectSendMessage(sessionState *session) | |||
2775 | { | 2868 | { |
2776 | std::ostringstream stream; | 2869 | std::ostringstream stream; |
2777 | 2870 | ||
2778 | LL_DEBUGS("Voice") << "Sending Session.MediaDisconnect with handle " << session->mHandle << LL_ENDL; | 2871 | LL_DEBUGS("VoiceSession") << "Sending Session.MediaDisconnect with handle " << session->mHandle << LL_ENDL; |
2779 | stream | 2872 | stream |
2780 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.MediaDisconnect.1\">" | 2873 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.MediaDisconnect.1\">" |
2781 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" | 2874 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" |
@@ -2791,7 +2884,7 @@ void LLVoiceClient::sessionTextDisconnectSendMessage(sessionState *session) | |||
2791 | { | 2884 | { |
2792 | std::ostringstream stream; | 2885 | std::ostringstream stream; |
2793 | 2886 | ||
2794 | LL_DEBUGS("Voice") << "Sending Session.TextDisconnect with handle " << session->mHandle << LL_ENDL; | 2887 | LL_DEBUGS("VoiceSession") << "Sending Session.TextDisconnect with handle " << session->mHandle << LL_ENDL; |
2795 | stream | 2888 | stream |
2796 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.TextDisconnect.1\">" | 2889 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.TextDisconnect.1\">" |
2797 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" | 2890 | << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>" |
@@ -2823,13 +2916,13 @@ void LLVoiceClient::getRenderDevicesSendMessage() | |||
2823 | 2916 | ||
2824 | void LLVoiceClient::clearCaptureDevices() | 2917 | void LLVoiceClient::clearCaptureDevices() |
2825 | { | 2918 | { |
2826 | LL_DEBUGS("Voice") << "called" << LL_ENDL; | 2919 | LL_DEBUGS("VoiceDevice") << "called" << LL_ENDL; |
2827 | mCaptureDevices.clear(); | 2920 | mCaptureDevices.clear(); |
2828 | } | 2921 | } |
2829 | 2922 | ||
2830 | void LLVoiceClient::addCaptureDevice(const std::string& name) | 2923 | void LLVoiceClient::addCaptureDevice(const std::string& name) |
2831 | { | 2924 | { |
2832 | LL_DEBUGS("Voice") << name << LL_ENDL; | 2925 | LL_DEBUGS("VoiceDevice") << name << LL_ENDL; |
2833 | 2926 | ||
2834 | mCaptureDevices.push_back(name); | 2927 | mCaptureDevices.push_back(name); |
2835 | } | 2928 | } |
@@ -2861,13 +2954,13 @@ void LLVoiceClient::setCaptureDevice(const std::string& name) | |||
2861 | 2954 | ||
2862 | void LLVoiceClient::clearRenderDevices() | 2955 | void LLVoiceClient::clearRenderDevices() |
2863 | { | 2956 | { |
2864 | LL_DEBUGS("Voice") << "called" << LL_ENDL; | 2957 | LL_DEBUGS("VoiceDevice") << "called" << LL_ENDL; |
2865 | mRenderDevices.clear(); | 2958 | mRenderDevices.clear(); |
2866 | } | 2959 | } |
2867 | 2960 | ||
2868 | void LLVoiceClient::addRenderDevice(const std::string& name) | 2961 | void LLVoiceClient::addRenderDevice(const std::string& name) |
2869 | { | 2962 | { |
2870 | LL_DEBUGS("Voice") << name << LL_ENDL; | 2963 | LL_DEBUGS("VoiceDevice") << name << LL_ENDL; |
2871 | mRenderDevices.push_back(name); | 2964 | mRenderDevices.push_back(name); |
2872 | } | 2965 | } |
2873 | 2966 | ||
@@ -2951,7 +3044,7 @@ void LLVoiceClient::tuningRenderStopSendMessage() | |||
2951 | 3044 | ||
2952 | void LLVoiceClient::tuningCaptureStartSendMessage(int duration) | 3045 | void LLVoiceClient::tuningCaptureStartSendMessage(int duration) |
2953 | { | 3046 | { |
2954 | LL_DEBUGS("Voice") << "sending CaptureAudioStart" << LL_ENDL; | 3047 | LL_DEBUGS("VoiceDevice") << "sending CaptureAudioStart" << LL_ENDL; |
2955 | 3048 | ||
2956 | std::ostringstream stream; | 3049 | std::ostringstream stream; |
2957 | stream | 3050 | stream |
@@ -2964,7 +3057,7 @@ void LLVoiceClient::tuningCaptureStartSendMessage(int duration) | |||
2964 | 3057 | ||
2965 | void LLVoiceClient::tuningCaptureStopSendMessage() | 3058 | void LLVoiceClient::tuningCaptureStopSendMessage() |
2966 | { | 3059 | { |
2967 | LL_DEBUGS("Voice") << "sending CaptureAudioStop" << LL_ENDL; | 3060 | LL_DEBUGS("VoiceDevice") << "sending CaptureAudioStop" << LL_ENDL; |
2968 | 3061 | ||
2969 | std::ostringstream stream; | 3062 | std::ostringstream stream; |
2970 | stream | 3063 | stream |
@@ -3033,17 +3126,17 @@ void LLVoiceClient::daemonDied() | |||
3033 | LL_WARNS("Voice") << "Connection to vivox daemon lost. Resetting state."<< LL_ENDL; | 3126 | LL_WARNS("Voice") << "Connection to vivox daemon lost. Resetting state."<< LL_ENDL; |
3034 | 3127 | ||
3035 | // Try to relaunch the daemon | 3128 | // Try to relaunch the daemon |
3129 | LL_DEBUGS("VoiceSession") << "Cancel Session: voice daemon died." | ||
3130 | << llendl; | ||
3036 | setState(stateDisableCleanup); | 3131 | setState(stateDisableCleanup); |
3037 | } | 3132 | } |
3038 | 3133 | ||
3039 | void LLVoiceClient::giveUp() | 3134 | void LLVoiceClient::giveUp() |
3040 | { | 3135 | { |
3041 | // All has failed. Clean up and stop trying. | 3136 | mAccountActive = false; |
3042 | closeSocket(); | 3137 | LL_DEBUGS("VoiceSession") << "Cancel Session: giveUp() called." |
3043 | deleteAllSessions(); | 3138 | << llendl; |
3044 | deleteAllBuddies(); | 3139 | setState(stateDisableCleanup); |
3045 | |||
3046 | setState(stateJail); | ||
3047 | } | 3140 | } |
3048 | 3141 | ||
3049 | static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVector3d &pos, LLVector3 &vel) | 3142 | static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVector3d &pos, LLVector3 &vel) |
@@ -3378,7 +3471,7 @@ void LLVoiceClient::buildSetCaptureDevice(std::ostringstream &stream) | |||
3378 | { | 3471 | { |
3379 | if(mCaptureDeviceDirty) | 3472 | if(mCaptureDeviceDirty) |
3380 | { | 3473 | { |
3381 | LL_DEBUGS("Voice") << "Setting input device = \"" << mCaptureDevice << "\"" << LL_ENDL; | 3474 | LL_DEBUGS("VoiceDevice") << "Setting input device = \"" << mCaptureDevice << "\"" << LL_ENDL; |
3382 | 3475 | ||
3383 | stream | 3476 | stream |
3384 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetCaptureDevice.1\">" | 3477 | << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetCaptureDevice.1\">" |
@@ -4099,29 +4192,29 @@ void LLVoiceClient::reapSession(sessionState *session) | |||
4099 | { | 4192 | { |
4100 | if(!session->mHandle.empty()) | 4193 | if(!session->mHandle.empty()) |
4101 | { | 4194 | { |
4102 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (non-null session handle)" << LL_ENDL; | 4195 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (non-null session handle)" << LL_ENDL; |
4103 | } | 4196 | } |
4104 | else if(session->mCreateInProgress) | 4197 | else if(session->mCreateInProgress) |
4105 | { | 4198 | { |
4106 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (create in progress)" << LL_ENDL; | 4199 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (create in progress)" << LL_ENDL; |
4107 | } | 4200 | } |
4108 | else if(session->mMediaConnectInProgress) | 4201 | else if(session->mMediaConnectInProgress) |
4109 | { | 4202 | { |
4110 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (connect in progress)" << LL_ENDL; | 4203 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (connect in progress)" << LL_ENDL; |
4111 | } | 4204 | } |
4112 | else if(session == mAudioSession) | 4205 | else if(session == mAudioSession) |
4113 | { | 4206 | { |
4114 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (it's the current session)" << LL_ENDL; | 4207 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (it's the current session)" << LL_ENDL; |
4115 | } | 4208 | } |
4116 | else if(session == mNextAudioSession) | 4209 | else if(session == mNextAudioSession) |
4117 | { | 4210 | { |
4118 | LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (it's the next session)" << LL_ENDL; | 4211 | LL_DEBUGS("VoiceSession") << "NOT deleting session " << session->mSIPURI << " (it's the next session)" << LL_ENDL; |
4119 | } | 4212 | } |
4120 | else | 4213 | else |
4121 | { | 4214 | { |
4122 | // TODO: Question: Should we check for queued text messages here? | 4215 | // TODO: Question: Should we check for queued text messages here? |
4123 | // We don't have a reason to keep tracking this session, so just delete it. | 4216 | // We don't have a reason to keep tracking this session, so just delete it. |
4124 | LL_DEBUGS("Voice") << "deleting session " << session->mSIPURI << LL_ENDL; | 4217 | LL_DEBUGS("VoiceSession") << "deleting session " << session->mSIPURI << LL_ENDL; |
4125 | deleteSession(session); | 4218 | deleteSession(session); |
4126 | session = NULL; | 4219 | session = NULL; |
4127 | } | 4220 | } |
@@ -4179,17 +4272,17 @@ void LLVoiceClient::leftAudioSession( | |||
4179 | case stateJoinSessionFailed: | 4272 | case stateJoinSessionFailed: |
4180 | case stateJoinSessionFailedWaiting: | 4273 | case stateJoinSessionFailedWaiting: |
4181 | // normal transition | 4274 | // normal transition |
4182 | LL_DEBUGS("Voice") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL; | 4275 | LL_DEBUGS("VoiceSession") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL; |
4183 | setState(stateSessionTerminated); | 4276 | setState(stateSessionTerminated); |
4184 | break; | 4277 | break; |
4185 | 4278 | ||
4186 | case stateSessionTerminated: | 4279 | case stateSessionTerminated: |
4187 | // this will happen sometimes -- there are cases where we send the terminate and then go straight to this state. | 4280 | // this will happen sometimes -- there are cases where we send the terminate and then go straight to this state. |
4188 | LL_WARNS("Voice") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL; | 4281 | LL_WARNS("VoiceSession") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL; |
4189 | break; | 4282 | break; |
4190 | 4283 | ||
4191 | default: | 4284 | default: |
4192 | LL_WARNS("Voice") << "unexpected SessionStateChangeEvent (left session) in state " << state2string(getState()) << LL_ENDL; | 4285 | LL_WARNS("VoiceSession") << "unexpected SessionStateChangeEvent (left session) in state " << state2string(getState()) << LL_ENDL; |
4193 | setState(stateSessionTerminated); | 4286 | setState(stateSessionTerminated); |
4194 | break; | 4287 | break; |
4195 | } | 4288 | } |
@@ -4249,7 +4342,7 @@ void LLVoiceClient::mediaStreamUpdatedEvent( | |||
4249 | { | 4342 | { |
4250 | sessionState *session = findSession(sessionHandle); | 4343 | sessionState *session = findSession(sessionHandle); |
4251 | 4344 | ||
4252 | LL_DEBUGS("Voice") << "session " << sessionHandle << ", status code " << statusCode << ", string \"" << statusString << "\"" << LL_ENDL; | 4345 | LL_DEBUGS("VoiceSession") << "session " << sessionHandle << ", status code " << statusCode << ", string \"" << statusString << "\"" << LL_ENDL; |
4253 | 4346 | ||
4254 | if(session) | 4347 | if(session) |
4255 | { | 4348 | { |
@@ -4314,7 +4407,7 @@ void LLVoiceClient::mediaStreamUpdatedEvent( | |||
4314 | } | 4407 | } |
4315 | else | 4408 | else |
4316 | { | 4409 | { |
4317 | LL_WARNS("Voice") << "session " << sessionHandle << "not found"<< LL_ENDL; | 4410 | LL_WARNS("VoiceSession") << "session " << sessionHandle << "not found"<< LL_ENDL; |
4318 | } | 4411 | } |
4319 | } | 4412 | } |
4320 | 4413 | ||
@@ -4435,7 +4528,7 @@ void LLVoiceClient::participantRemovedEvent( | |||
4435 | } | 4528 | } |
4436 | else | 4529 | else |
4437 | { | 4530 | { |
4438 | LL_DEBUGS("Voice") << "unknown session " << sessionHandle << LL_ENDL; | 4531 | LL_DEBUGS("VoiceSession") << "unknown session " << sessionHandle << LL_ENDL; |
4439 | } | 4532 | } |
4440 | } | 4533 | } |
4441 | 4534 | ||
@@ -4479,7 +4572,7 @@ void LLVoiceClient::participantUpdatedEvent( | |||
4479 | } | 4572 | } |
4480 | else | 4573 | else |
4481 | { | 4574 | { |
4482 | LL_WARNS("Voice") << "unknown session " << sessionHandle << LL_ENDL; | 4575 | LL_WARNS("VoiceSession") << "unknown session " << sessionHandle << LL_ENDL; |
4483 | } | 4576 | } |
4484 | } | 4577 | } |
4485 | 4578 | ||
@@ -5058,22 +5151,44 @@ LLVoiceClient::participantState* LLVoiceClient::findParticipantByID(const LLUUID | |||
5058 | 5151 | ||
5059 | void LLVoiceClient::parcelChanged() | 5152 | void LLVoiceClient::parcelChanged() |
5060 | { | 5153 | { |
5061 | if(getState() >= stateNoChannel) | 5154 | mAccountActive = true; |
5155 | LLViewerRegion* region = gAgent.getRegion(); | ||
5156 | if( (getState() >= stateNoChannel) && region && region->capabilitiesReceived()) | ||
5062 | { | 5157 | { |
5063 | // If the user is logged in, start a channel lookup. | 5158 | // If the user is logged in, start a channel lookup, |
5064 | LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL; | 5159 | // but not if already in a private call/conference (then SL regions return an empty cap). |
5160 | // | ||
5065 | 5161 | ||
5066 | std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest"); | 5162 | std::string url = region->getCapability("ParcelVoiceInfoRequest"); |
5067 | LLSD data; | 5163 | LL_DEBUGS("VoiceCaps") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << " cap url:" << url << LL_ENDL; |
5068 | LLHTTPClient::post( | 5164 | if(! url.empty() ) |
5069 | url, | 5165 | { |
5070 | data, | 5166 | mPIRCapResponseID.generate(); |
5071 | new LLVoiceClientCapResponder); | 5167 | LLSD data; |
5168 | LLHTTPClient::post( | ||
5169 | url, | ||
5170 | data, | ||
5171 | new LLVoiceClientCapResponder(mPIRCapResponseID)); | ||
5172 | } | ||
5173 | else | ||
5174 | { | ||
5175 | |||
5176 | mAccountActive = false; | ||
5177 | LL_DEBUGS("VoiceSession") << "Cancel Session: ParcelVoiceInfoRequest cap empty." | ||
5178 | << llendl; | ||
5179 | setState(stateDisableCleanup); | ||
5180 | } | ||
5181 | } | ||
5182 | else if (region && !region->capabilitiesReceived()) | ||
5183 | { | ||
5184 | // We don't know yet where to get the cap so requesting it makes no sense | ||
5185 | mCurrentRegionName.append("retry"); | ||
5186 | return; | ||
5072 | } | 5187 | } |
5073 | else | 5188 | else |
5074 | { | 5189 | { |
5075 | // The transition to stateNoChannel needs to kick this off again. | 5190 | // The transition to stateNoChannel needs to kick this off again. |
5076 | LL_WARNS("Voice") << "not logged in yet, deferring" << LL_ENDL; | 5191 | LL_DEBUGS("Voice") << "not logged in yet, deferring" << LL_ENDL; |
5077 | } | 5192 | } |
5078 | } | 5193 | } |
5079 | 5194 | ||
@@ -5086,12 +5201,42 @@ void LLVoiceClient::switchChannel( | |||
5086 | { | 5201 | { |
5087 | bool needsSwitch = false; | 5202 | bool needsSwitch = false; |
5088 | 5203 | ||
5089 | LL_DEBUGS("Voice") | 5204 | LL_DEBUGS("VoiceSession") |
5090 | << "called in state " << state2string(getState()) | 5205 | << "Switch channel called in state " << state2string(getState()) |
5091 | << " with uri \"" << uri << "\"" | 5206 | << " with uri \"" << uri << "\"" |
5092 | << (spatial?", spatial is true":", spatial is false") | 5207 | << (spatial?", spatial is true":", spatial is false") |
5093 | << LL_ENDL; | 5208 | << LL_ENDL; |
5094 | 5209 | ||
5210 | size_t new_uri_find_sip = std::string::npos; | ||
5211 | size_t old_uri_find_sip = std::string::npos; | ||
5212 | if(!uri.empty()) | ||
5213 | { | ||
5214 | new_uri_find_sip = uri.find("sip:"); | ||
5215 | } | ||
5216 | |||
5217 | if( mNextAudioSession | ||
5218 | && !( mNextAudioSession->mSIPURI.empty() ) | ||
5219 | && (mNextAudioSession->mSIPURI != uri) ) | ||
5220 | { | ||
5221 | old_uri_find_sip = mNextAudioSession->mSIPURI.find("sip:"); | ||
5222 | } | ||
5223 | else | ||
5224 | { | ||
5225 | |||
5226 | // just logged in or voice disabled land in SL, | ||
5227 | // anyway right daemon is already up | ||
5228 | old_uri_find_sip = new_uri_find_sip; | ||
5229 | } | ||
5230 | |||
5231 | if(old_uri_find_sip != new_uri_find_sip) | ||
5232 | { | ||
5233 | mAccountActive = true; | ||
5234 | LL_DEBUGS("VoiceSession") << "Cancel Session: Session type changed" | ||
5235 | << llendl; | ||
5236 | setState(stateDisableCleanup); | ||
5237 | return; | ||
5238 | } | ||
5239 | |||
5095 | switch(getState()) | 5240 | switch(getState()) |
5096 | { | 5241 | { |
5097 | case stateJoinSessionFailed: | 5242 | case stateJoinSessionFailed: |
@@ -5148,7 +5293,7 @@ void LLVoiceClient::switchChannel( | |||
5148 | if(uri.empty()) | 5293 | if(uri.empty()) |
5149 | { | 5294 | { |
5150 | // Leave any channel we may be in | 5295 | // Leave any channel we may be in |
5151 | LL_DEBUGS("Voice") << "leaving channel" << LL_ENDL; | 5296 | LL_DEBUGS("VoiceSession") << "leaving channel" << LL_ENDL; |
5152 | 5297 | ||
5153 | sessionState *oldSession = mNextAudioSession; | 5298 | sessionState *oldSession = mNextAudioSession; |
5154 | mNextAudioSession = NULL; | 5299 | mNextAudioSession = NULL; |
@@ -5160,7 +5305,7 @@ void LLVoiceClient::switchChannel( | |||
5160 | } | 5305 | } |
5161 | else | 5306 | else |
5162 | { | 5307 | { |
5163 | LL_DEBUGS("Voice") << "switching to channel " << uri << LL_ENDL; | 5308 | LL_DEBUGS("VoiceSession") << "switching to channel " << uri << LL_ENDL; |
5164 | 5309 | ||
5165 | mNextAudioSession = addSession(uri); | 5310 | mNextAudioSession = addSession(uri); |
5166 | mNextAudioSession->mHash = hash; | 5311 | mNextAudioSession->mHash = hash; |
@@ -5205,8 +5350,14 @@ void LLVoiceClient::setNonSpatialChannel( | |||
5205 | 5350 | ||
5206 | void LLVoiceClient::setSpatialChannel( | 5351 | void LLVoiceClient::setSpatialChannel( |
5207 | const std::string &uri, | 5352 | const std::string &uri, |
5208 | const std::string &credentials) | 5353 | const std::string &credentials, |
5354 | const LLUUID& response_id) | ||
5209 | { | 5355 | { |
5356 | if (response_id != mPIRCapResponseID) | ||
5357 | { | ||
5358 | return; | ||
5359 | } | ||
5360 | |||
5210 | mSpatialSessionURI = uri; | 5361 | mSpatialSessionURI = uri; |
5211 | mSpatialSessionCredentials = credentials; | 5362 | mSpatialSessionCredentials = credentials; |
5212 | mAreaVoiceDisabled = mSpatialSessionURI.empty(); | 5363 | mAreaVoiceDisabled = mSpatialSessionURI.empty(); |
@@ -5282,7 +5433,7 @@ bool LLVoiceClient::sendTextMessage(const LLUUID& participant_id, const std::str | |||
5282 | } | 5433 | } |
5283 | else | 5434 | else |
5284 | { | 5435 | { |
5285 | LL_DEBUGS("Voice") << "Session not found for participant ID " << participant_id << LL_ENDL; | 5436 | LL_DEBUGS("VoiceSession") << "Session not found for participant ID " << participant_id << LL_ENDL; |
5286 | } | 5437 | } |
5287 | 5438 | ||
5288 | return result; | 5439 | return result; |
@@ -5331,7 +5482,7 @@ void LLVoiceClient::endUserIMSession(const LLUUID &uuid) | |||
5331 | } | 5482 | } |
5332 | else | 5483 | else |
5333 | { | 5484 | { |
5334 | LL_DEBUGS("Voice") << "Session not found for participant ID " << uuid << LL_ENDL; | 5485 | LL_DEBUGS("VoiceSession") << "Session not found for participant ID " << uuid << LL_ENDL; |
5335 | } | 5486 | } |
5336 | } | 5487 | } |
5337 | 5488 | ||
@@ -5452,7 +5603,7 @@ void LLVoiceClient::declineInvite(std::string &sessionHandle) | |||
5452 | 5603 | ||
5453 | void LLVoiceClient::leaveNonSpatialChannel() | 5604 | void LLVoiceClient::leaveNonSpatialChannel() |
5454 | { | 5605 | { |
5455 | LL_DEBUGS("Voice") | 5606 | LL_DEBUGS("VoiceSession") |
5456 | << "called in state " << state2string(getState()) | 5607 | << "called in state " << state2string(getState()) |
5457 | << LL_ENDL; | 5608 | << LL_ENDL; |
5458 | 5609 | ||
@@ -5640,7 +5791,9 @@ bool LLVoiceClient::inSpatialChannel(void) | |||
5640 | 5791 | ||
5641 | if(mAudioSession) | 5792 | if(mAudioSession) |
5642 | result = mAudioSession->mIsSpatial; | 5793 | result = mAudioSession->mIsSpatial; |
5643 | 5794 | if(mNextAudioSession) | |
5795 | result |= !(mNextAudioSession->mIsSpatial); | ||
5796 | |||
5644 | return result; | 5797 | return result; |
5645 | } | 5798 | } |
5646 | 5799 | ||
@@ -5821,11 +5974,13 @@ void LLVoiceClient::setVoiceEnabled(bool enabled) | |||
5821 | mVoiceEnabled = enabled; | 5974 | mVoiceEnabled = enabled; |
5822 | if (enabled) | 5975 | if (enabled) |
5823 | { | 5976 | { |
5977 | mAccountActive = true; | ||
5824 | LLVoiceChannel::getCurrentVoiceChannel()->activate(); | 5978 | LLVoiceChannel::getCurrentVoiceChannel()->activate(); |
5825 | } | 5979 | } |
5826 | else | 5980 | else |
5827 | { | 5981 | { |
5828 | // Turning voice off looses your current channel -- this makes sure the UI isn't out of sync when you re-enable it. | 5982 | // Turning voice off looses your current channel -- this makes sure the UI isn't out of sync when you re-enable it. |
5983 | mAccountActive = false; | ||
5829 | LLVoiceChannel::getCurrentVoiceChannel()->deactivate(); | 5984 | LLVoiceChannel::getCurrentVoiceChannel()->deactivate(); |
5830 | } | 5985 | } |
5831 | } | 5986 | } |
@@ -6397,7 +6552,7 @@ LLVoiceClient::sessionState *LLVoiceClient::addSession(const std::string &uri, c | |||
6397 | { | 6552 | { |
6398 | // No existing session found. | 6553 | // No existing session found. |
6399 | 6554 | ||
6400 | LL_DEBUGS("Voice") << "adding new session: handle " << handle << " URI " << uri << LL_ENDL; | 6555 | LL_DEBUGS("VoiceSession") << "adding new session: handle " << handle << " URI " << uri << LL_ENDL; |
6401 | result = new sessionState(); | 6556 | result = new sessionState(); |
6402 | result->mSIPURI = uri; | 6557 | result->mSIPURI = uri; |
6403 | result->mHandle = handle; | 6558 | result->mHandle = handle; |
@@ -6416,7 +6571,7 @@ LLVoiceClient::sessionState *LLVoiceClient::addSession(const std::string &uri, c | |||
6416 | if(uri != result->mSIPURI) | 6571 | if(uri != result->mSIPURI) |
6417 | { | 6572 | { |
6418 | // TODO: Should this be an internal error? | 6573 | // TODO: Should this be an internal error? |
6419 | LL_DEBUGS("Voice") << "changing uri from " << result->mSIPURI << " to " << uri << LL_ENDL; | 6574 | LL_DEBUGS("VoiceSession") << "changing uri from " << result->mSIPURI << " to " << uri << LL_ENDL; |
6420 | setSessionURI(result, uri); | 6575 | setSessionURI(result, uri); |
6421 | } | 6576 | } |
6422 | 6577 | ||
@@ -6425,17 +6580,17 @@ LLVoiceClient::sessionState *LLVoiceClient::addSession(const std::string &uri, c | |||
6425 | if(handle.empty()) | 6580 | if(handle.empty()) |
6426 | { | 6581 | { |
6427 | // There's at least one race condition where where addSession was clearing an existing session handle, which caused things to break. | 6582 | // There's at least one race condition where where addSession was clearing an existing session handle, which caused things to break. |
6428 | LL_DEBUGS("Voice") << "NOT clearing handle " << result->mHandle << LL_ENDL; | 6583 | LL_DEBUGS("VoiceSession") << "NOT clearing handle " << result->mHandle << LL_ENDL; |
6429 | } | 6584 | } |
6430 | else | 6585 | else |
6431 | { | 6586 | { |
6432 | // TODO: Should this be an internal error? | 6587 | // TODO: Should this be an internal error? |
6433 | LL_DEBUGS("Voice") << "changing handle from " << result->mHandle << " to " << handle << LL_ENDL; | 6588 | LL_DEBUGS("VoiceSession") << "changing handle from " << result->mHandle << " to " << handle << LL_ENDL; |
6434 | setSessionHandle(result, handle); | 6589 | setSessionHandle(result, handle); |
6435 | } | 6590 | } |
6436 | } | 6591 | } |
6437 | 6592 | ||
6438 | LL_DEBUGS("Voice") << "returning existing session: handle " << handle << " URI " << uri << LL_ENDL; | 6593 | LL_DEBUGS("VoiceSession") << "returning existing session: handle " << handle << " URI " << uri << LL_ENDL; |
6439 | } | 6594 | } |
6440 | 6595 | ||
6441 | verifySessionState(); | 6596 | verifySessionState(); |
@@ -6455,14 +6610,14 @@ void LLVoiceClient::setSessionHandle(sessionState *session, const std::string &h | |||
6455 | { | 6610 | { |
6456 | if(iter->second != session) | 6611 | if(iter->second != session) |
6457 | { | 6612 | { |
6458 | LL_ERRS("Voice") << "Internal error: session mismatch!" << LL_ENDL; | 6613 | LL_ERRS("VoiceSession") << "Internal error: session mismatch!" << LL_ENDL; |
6459 | } | 6614 | } |
6460 | 6615 | ||
6461 | mSessionsByHandle.erase(iter); | 6616 | mSessionsByHandle.erase(iter); |
6462 | } | 6617 | } |
6463 | else | 6618 | else |
6464 | { | 6619 | { |
6465 | LL_ERRS("Voice") << "Internal error: session handle not found in map!" << LL_ENDL; | 6620 | LL_ERRS("VoiceSession") << "Internal error: session handle not found in map!" << LL_ENDL; |
6466 | } | 6621 | } |
6467 | } | 6622 | } |
6468 | 6623 | ||
@@ -6494,7 +6649,7 @@ void LLVoiceClient::deleteSession(sessionState *session) | |||
6494 | { | 6649 | { |
6495 | if(iter->second != session) | 6650 | if(iter->second != session) |
6496 | { | 6651 | { |
6497 | LL_ERRS("Voice") << "Internal error: session mismatch" << LL_ENDL; | 6652 | LL_ERRS("VoiceSession") << "Internal error: session mismatch" << LL_ENDL; |
6498 | } | 6653 | } |
6499 | mSessionsByHandle.erase(iter); | 6654 | mSessionsByHandle.erase(iter); |
6500 | } | 6655 | } |
@@ -6525,7 +6680,7 @@ void LLVoiceClient::deleteSession(sessionState *session) | |||
6525 | 6680 | ||
6526 | void LLVoiceClient::deleteAllSessions() | 6681 | void LLVoiceClient::deleteAllSessions() |
6527 | { | 6682 | { |
6528 | LL_DEBUGS("Voice") << "called" << LL_ENDL; | 6683 | LL_DEBUGS("VoiceSession") << "called" << LL_ENDL; |
6529 | 6684 | ||
6530 | while(!mSessions.empty()) | 6685 | while(!mSessions.empty()) |
6531 | { | 6686 | { |
@@ -6534,20 +6689,20 @@ void LLVoiceClient::deleteAllSessions() | |||
6534 | 6689 | ||
6535 | if(!mSessionsByHandle.empty()) | 6690 | if(!mSessionsByHandle.empty()) |
6536 | { | 6691 | { |
6537 | LL_ERRS("Voice") << "Internal error: empty session map, non-empty handle map" << LL_ENDL; | 6692 | LL_ERRS("VoiceSession") << "Internal error: empty session map, non-empty handle map" << LL_ENDL; |
6538 | } | 6693 | } |
6539 | } | 6694 | } |
6540 | 6695 | ||
6541 | void LLVoiceClient::verifySessionState(void) | 6696 | void LLVoiceClient::verifySessionState(void) |
6542 | { | 6697 | { |
6543 | // This is mostly intended for debugging problems with session state management. | 6698 | // This is mostly intended for debugging problems with session state management. |
6544 | LL_DEBUGS("Voice") << "Total session count: " << mSessions.size() << " , session handle map size: " << mSessionsByHandle.size() << LL_ENDL; | 6699 | LL_DEBUGS("VoiceSession") << "Total session count: " << mSessions.size() << " , session handle map size: " << mSessionsByHandle.size() << LL_ENDL; |
6545 | 6700 | ||
6546 | for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++) | 6701 | for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++) |
6547 | { | 6702 | { |
6548 | sessionState *session = *iter; | 6703 | sessionState *session = *iter; |
6549 | 6704 | ||
6550 | LL_DEBUGS("Voice") << "session " << session << ": handle " << session->mHandle << ", URI " << session->mSIPURI << LL_ENDL; | 6705 | LL_DEBUGS("VoiceSession") << "session " << session << ": handle " << session->mHandle << ", URI " << session->mSIPURI << LL_ENDL; |
6551 | 6706 | ||
6552 | if(!session->mHandle.empty()) | 6707 | if(!session->mHandle.empty()) |
6553 | { | 6708 | { |
@@ -6555,13 +6710,13 @@ void LLVoiceClient::verifySessionState(void) | |||
6555 | sessionMap::iterator i2 = mSessionsByHandle.find(&(session->mHandle)); | 6710 | sessionMap::iterator i2 = mSessionsByHandle.find(&(session->mHandle)); |
6556 | if(i2 == mSessionsByHandle.end()) | 6711 | if(i2 == mSessionsByHandle.end()) |
6557 | { | 6712 | { |
6558 | LL_ERRS("Voice") << "internal error (handle " << session->mHandle << " not found in session map)" << LL_ENDL; | 6713 | LL_ERRS("VoiceSession") << "internal error (handle " << session->mHandle << " not found in session map)" << LL_ENDL; |
6559 | } | 6714 | } |
6560 | else | 6715 | else |
6561 | { | 6716 | { |
6562 | if(i2->second != session) | 6717 | if(i2->second != session) |
6563 | { | 6718 | { |
6564 | LL_ERRS("Voice") << "internal error (handle " << session->mHandle << " in session map points to another session)" << LL_ENDL; | 6719 | LL_ERRS("VoiceSession") << "internal error (handle " << session->mHandle << " in session map points to another session)" << LL_ENDL; |
6565 | } | 6720 | } |
6566 | } | 6721 | } |
6567 | } | 6722 | } |
@@ -6574,13 +6729,13 @@ void LLVoiceClient::verifySessionState(void) | |||
6574 | sessionIterator i2 = mSessions.find(session); | 6729 | sessionIterator i2 = mSessions.find(session); |
6575 | if(i2 == mSessions.end()) | 6730 | if(i2 == mSessions.end()) |
6576 | { | 6731 | { |
6577 | LL_ERRS("Voice") << "internal error (session for handle " << session->mHandle << " not found in session map)" << LL_ENDL; | 6732 | LL_ERRS("VoiceSession") << "internal error (session for handle " << session->mHandle << " not found in session map)" << LL_ENDL; |
6578 | } | 6733 | } |
6579 | else | 6734 | else |
6580 | { | 6735 | { |
6581 | if(session->mHandle != (*i2)->mHandle) | 6736 | if(session->mHandle != (*i2)->mHandle) |
6582 | { | 6737 | { |
6583 | LL_ERRS("Voice") << "internal error (session for handle " << session->mHandle << " points to session with different handle " << (*i2)->mHandle << ")" << LL_ENDL; | 6738 | LL_ERRS("VoiceSession") << "internal error (session for handle " << session->mHandle << " points to session with different handle " << (*i2)->mHandle << ")" << LL_ENDL; |
6584 | } | 6739 | } |
6585 | } | 6740 | } |
6586 | } | 6741 | } |
@@ -7010,6 +7165,8 @@ class LLViewerParcelVoiceInfo : public LLHTTPNode | |||
7010 | { | 7165 | { |
7011 | LLSD body = input["body"]; | 7166 | LLSD body = input["body"]; |
7012 | 7167 | ||
7168 | LL_DEBUGS("VoiceCaps") << "ParcelVoiceInfo response: " | ||
7169 | << ll_pretty_print_sd(input) << LL_ENDL; | ||
7013 | //body has "region_name" (str), "parcel_local_id"(int), | 7170 | //body has "region_name" (str), "parcel_local_id"(int), |
7014 | //"voice_credentials" (map). | 7171 | //"voice_credentials" (map). |
7015 | 7172 | ||
@@ -7036,7 +7193,10 @@ class LLViewerParcelVoiceInfo : public LLHTTPNode | |||
7036 | voice_credentials["channel_credentials"].asString(); | 7193 | voice_credentials["channel_credentials"].asString(); |
7037 | } | 7194 | } |
7038 | 7195 | ||
7039 | gVoiceClient->setSpatialChannel(uri, credentials); | 7196 | LLUUID response_id; |
7197 | response_id.generate(); | ||
7198 | gVoiceClient->setPIRCapResponseID(response_id); | ||
7199 | gVoiceClient->setSpatialChannel(uri, credentials, response_id); | ||
7040 | } | 7200 | } |
7041 | } | 7201 | } |
7042 | } | 7202 | } |
@@ -7050,10 +7210,13 @@ class LLViewerRequiredVoiceVersion : public LLHTTPNode | |||
7050 | const LLSD& context, | 7210 | const LLSD& context, |
7051 | const LLSD& input) const | 7211 | const LLSD& input) const |
7052 | { | 7212 | { |
7213 | |||
7053 | //You received this messsage (most likely on region cross or | 7214 | //You received this messsage (most likely on region cross or |
7054 | //teleport) | 7215 | //teleport) |
7055 | if ( input.has("body") && input["body"].has("major_version") ) | 7216 | if ( input.has("body") && input["body"].has("major_version") ) |
7056 | { | 7217 | { |
7218 | LL_DEBUGS("VoiceCaps") << "RequiredVoiceVersion response: " | ||
7219 | << ll_pretty_print_sd(input)<< LL_ENDL; | ||
7057 | int major_voice_version = | 7220 | int major_voice_version = |
7058 | input["body"]["major_version"].asInteger(); | 7221 | input["body"]["major_version"].asInteger(); |
7059 | // int minor_voice_version = | 7222 | // int minor_voice_version = |
diff --git a/linden/indra/newview/llvoiceclient.h b/linden/indra/newview/llvoiceclient.h index 9ef3be9..f5c6d87 100644 --- a/linden/indra/newview/llvoiceclient.h +++ b/linden/indra/newview/llvoiceclient.h | |||
@@ -424,11 +424,15 @@ static void updatePosition(void); | |||
424 | const std::string& account_name, | 424 | const std::string& account_name, |
425 | const std::string& password, | 425 | const std::string& password, |
426 | const std::string& voice_sip_uri_hostname, | 426 | const std::string& voice_sip_uri_hostname, |
427 | const std::string& voice_account_server_uri); | 427 | const std::string& voice_account_server_uri, |
428 | const LLUUID& response_id); | ||
429 | |||
428 | void loginSendMessage(); | 430 | void loginSendMessage(); |
429 | void logout(); | 431 | void logout(); |
430 | void logoutSendMessage(); | 432 | void logoutSendMessage(); |
431 | 433 | ||
434 | void loadDaemon(const std::string& scheme); | ||
435 | |||
432 | void accountListBlockRulesSendMessage(); | 436 | void accountListBlockRulesSendMessage(); |
433 | void accountListAutoAcceptRulesSendMessage(); | 437 | void accountListAutoAcceptRulesSendMessage(); |
434 | 438 | ||
@@ -474,7 +478,8 @@ static void updatePosition(void); | |||
474 | const std::string &credentials); | 478 | const std::string &credentials); |
475 | void setSpatialChannel( | 479 | void setSpatialChannel( |
476 | const std::string &uri, | 480 | const std::string &uri, |
477 | const std::string &credentials); | 481 | const std::string &credentials, |
482 | const LLUUID& response_id); | ||
478 | // start a voice session with the specified user | 483 | // start a voice session with the specified user |
479 | void callUser(const LLUUID &uuid); | 484 | void callUser(const LLUUID &uuid); |
480 | 485 | ||
@@ -519,7 +524,7 @@ static void updatePosition(void); | |||
519 | 524 | ||
520 | void close(); | 525 | void close(); |
521 | void start(); | 526 | void start(); |
522 | 527 | void setPIRCapResponseID(const LLUUID& response_id){ mPIRCapResponseID = response_id; } | |
523 | private: | 528 | private: |
524 | 529 | ||
525 | // internal state for a simple state machine. This is used to deal with the asynchronous nature of some of the messages. | 530 | // internal state for a simple state machine. This is used to deal with the asynchronous nature of some of the messages. |
@@ -595,7 +600,13 @@ static void updatePosition(void); | |||
595 | std::string mAccountDisplayName; | 600 | std::string mAccountDisplayName; |
596 | std::string mAccountFirstName; | 601 | std::string mAccountFirstName; |
597 | std::string mAccountLastName; | 602 | std::string mAccountLastName; |
598 | 603 | ||
604 | bool mAccountActive; | ||
605 | bool mVAPRequested; | ||
606 | std::string mDaemonScheme; | ||
607 | LLUUID mVAPCapResponseID; | ||
608 | LLUUID mPIRCapResponseID; | ||
609 | |||
599 | bool mTuningMode; | 610 | bool mTuningMode; |
600 | float mTuningEnergy; | 611 | float mTuningEnergy; |
601 | std::string mTuningAudioFile; | 612 | std::string mTuningAudioFile; |
diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp index 4a53d4e..8d5bfb4 100644 --- a/linden/indra/newview/llvovolume.cpp +++ b/linden/indra/newview/llvovolume.cpp | |||
@@ -93,7 +93,6 @@ LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *re | |||
93 | mRelativeXformInvTrans.setIdentity(); | 93 | mRelativeXformInvTrans.setIdentity(); |
94 | 94 | ||
95 | mLOD = MIN_LOD; | 95 | mLOD = MIN_LOD; |
96 | mSculptLevel = -2; | ||
97 | mTextureAnimp = NULL; | 96 | mTextureAnimp = NULL; |
98 | mVObjRadius = LLVector3(1,1,0.5f).length(); | 97 | mVObjRadius = LLVector3(1,1,0.5f).length(); |
99 | mNumFaces = 0; | 98 | mNumFaces = 0; |
@@ -507,9 +506,8 @@ void LLVOVolume::updateTextureVirtualSize() | |||
507 | 506 | ||
508 | if (isSculpted()) | 507 | if (isSculpted()) |
509 | { | 508 | { |
510 | LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT); | 509 | updateSculptTexture(); |
511 | LLUUID id = sculpt_params->getSculptTexture(); | 510 | |
512 | mSculptTexture = gImageList.getImage(id); | ||
513 | if (mSculptTexture.notNull()) | 511 | if (mSculptTexture.notNull()) |
514 | { | 512 | { |
515 | mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(), | 513 | mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(), |
@@ -532,14 +530,14 @@ void LLVOVolume::updateTextureVirtualSize() | |||
532 | } | 530 | } |
533 | } | 531 | } |
534 | 532 | ||
535 | S32 texture_discard = mSculptTexture->getCachedRawImageLevel(); //try to match the texture | 533 | S32 texture_discard = mSculptTexture->getDiscardLevel(); //try to match the texture |
536 | S32 current_discard = mSculptLevel; | 534 | S32 current_discard = getVolume() ? getVolume()->getSculptLevel() : -2; |
537 | 535 | ||
538 | if (texture_discard >= 0 && //texture has some data available | 536 | if (texture_discard >= 0 && //texture has some data available |
539 | (texture_discard < current_discard || //texture has more data than last rebuild | 537 | (texture_discard < current_discard || //texture has more data than last rebuild |
540 | current_discard < 0)) //no previous rebuild | 538 | current_discard < 0)) //no previous rebuild |
541 | { | 539 | { |
542 | markForUpdate(FALSE); | 540 | gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE); |
543 | mSculptChanged = TRUE; | 541 | mSculptChanged = TRUE; |
544 | } | 542 | } |
545 | 543 | ||
@@ -687,19 +685,17 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams &volume_params, const S32 detail | |||
687 | mVolumeImpl->onSetVolume(volume_params, detail); | 685 | mVolumeImpl->onSetVolume(volume_params, detail); |
688 | } | 686 | } |
689 | 687 | ||
688 | updateSculptTexture(); | ||
690 | if (isSculpted()) | 689 | if (isSculpted()) |
691 | { | 690 | { |
692 | mSculptTexture = gImageList.getImage(volume_params.getSculptID()); | ||
693 | if (mSculptTexture.notNull()) | 691 | if (mSculptTexture.notNull()) |
694 | { | 692 | { |
695 | sculpt(); | 693 | sculpt(); |
696 | mSculptLevel = getVolume()->getSculptLevel(); | ||
697 | mSculptSurfaceArea = getVolume()->sculptGetSurfaceArea(); | 694 | mSculptSurfaceArea = getVolume()->sculptGetSurfaceArea(); |
698 | } | 695 | } |
699 | } | 696 | } |
700 | else | 697 | else |
701 | { | 698 | { |
702 | mSculptTexture = NULL; | ||
703 | mSculptSurfaceArea = 0.0; | 699 | mSculptSurfaceArea = 0.0; |
704 | } | 700 | } |
705 | 701 | ||
@@ -708,6 +704,38 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams &volume_params, const S32 detail | |||
708 | return FALSE; | 704 | return FALSE; |
709 | } | 705 | } |
710 | 706 | ||
707 | |||
708 | void LLVOVolume::updateSculptTexture() | ||
709 | { | ||
710 | LLPointer<LLViewerImage> old_sculpt = mSculptTexture; | ||
711 | if (isSculpted()) | ||
712 | { | ||
713 | LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT); | ||
714 | LLUUID id = sculpt_params->getSculptTexture(); | ||
715 | if (id.notNull()) | ||
716 | { | ||
717 | mSculptTexture = gImageList.getImage(id); | ||
718 | } | ||
719 | } | ||
720 | else | ||
721 | { | ||
722 | mSculptTexture = NULL; | ||
723 | } | ||
724 | |||
725 | if (mSculptTexture != old_sculpt) | ||
726 | { | ||
727 | if (old_sculpt.notNull()) | ||
728 | { | ||
729 | old_sculpt->removeVolume(this); | ||
730 | } | ||
731 | if (mSculptTexture.notNull()) | ||
732 | { | ||
733 | mSculptTexture->addVolume(this); | ||
734 | } | ||
735 | } | ||
736 | } | ||
737 | |||
738 | |||
711 | // sculpt replaces generate() for sculpted surfaces | 739 | // sculpt replaces generate() for sculpted surfaces |
712 | void LLVOVolume::sculpt() | 740 | void LLVOVolume::sculpt() |
713 | { | 741 | { |
@@ -718,7 +746,7 @@ void LLVOVolume::sculpt() | |||
718 | S8 sculpt_components = 0; | 746 | S8 sculpt_components = 0; |
719 | const U8* sculpt_data = NULL; | 747 | const U8* sculpt_data = NULL; |
720 | 748 | ||
721 | S32 discard_level = mSculptTexture->getCachedRawImageLevel() ; | 749 | S32 discard_level = mSculptTexture->getDiscardLevel() ; |
722 | LLImageRaw* raw_image = mSculptTexture->getCachedRawImage() ; | 750 | LLImageRaw* raw_image = mSculptTexture->getCachedRawImage() ; |
723 | 751 | ||
724 | S32 max_discard = mSculptTexture->getMaxDiscardLevel(); | 752 | S32 max_discard = mSculptTexture->getMaxDiscardLevel(); |
@@ -762,7 +790,7 @@ void LLVOVolume::sculpt() | |||
762 | } | 790 | } |
763 | getVolume()->sculpt(sculpt_width, sculpt_height, sculpt_components, sculpt_data, discard_level); | 791 | getVolume()->sculpt(sculpt_width, sculpt_height, sculpt_components, sculpt_data, discard_level); |
764 | 792 | ||
765 | /*//notify rebuild any other VOVolumes that reference this sculpty volume | 793 | //notify rebuild any other VOVolumes that reference this sculpty volume |
766 | for (S32 i = 0; i < mSculptTexture->getNumVolumes(); ++i) | 794 | for (S32 i = 0; i < mSculptTexture->getNumVolumes(); ++i) |
767 | { | 795 | { |
768 | LLVOVolume* volume = (*(mSculptTexture->getVolumeList()))[i]; | 796 | LLVOVolume* volume = (*(mSculptTexture->getVolumeList()))[i]; |
@@ -770,7 +798,7 @@ void LLVOVolume::sculpt() | |||
770 | { | 798 | { |
771 | gPipeline.markRebuild(volume->mDrawable, LLDrawable::REBUILD_GEOMETRY, FALSE); | 799 | gPipeline.markRebuild(volume->mDrawable, LLDrawable::REBUILD_GEOMETRY, FALSE); |
772 | } | 800 | } |
773 | }*/ | 801 | } |
774 | } | 802 | } |
775 | } | 803 | } |
776 | 804 | ||
diff --git a/linden/indra/newview/llvovolume.h b/linden/indra/newview/llvovolume.h index 7fba28c..2da1d7a 100644 --- a/linden/indra/newview/llvovolume.h +++ b/linden/indra/newview/llvovolume.h | |||
@@ -171,6 +171,7 @@ public: | |||
171 | void setTexture(const S32 face); | 171 | void setTexture(const S32 face); |
172 | S32 getIndexInTex() const {return mIndexInTex ;} | 172 | S32 getIndexInTex() const {return mIndexInTex ;} |
173 | /*virtual*/ BOOL setVolume(const LLVolumeParams &volume_params, const S32 detail, bool unique_volume = false); | 173 | /*virtual*/ BOOL setVolume(const LLVolumeParams &volume_params, const S32 detail, bool unique_volume = false); |
174 | void updateSculptTexture(); | ||
174 | void setIndexInTex(S32 index) { mIndexInTex = index ;} | 175 | void setIndexInTex(S32 index) { mIndexInTex = index ;} |
175 | void sculpt(); | 176 | void sculpt(); |
176 | void updateRelativeXform(); | 177 | void updateRelativeXform(); |
@@ -232,7 +233,6 @@ private: | |||
232 | LLFrameTimer mTextureUpdateTimer; | 233 | LLFrameTimer mTextureUpdateTimer; |
233 | S32 mLOD; | 234 | S32 mLOD; |
234 | BOOL mLODChanged; | 235 | BOOL mLODChanged; |
235 | S32 mSculptLevel; | ||
236 | BOOL mSculptChanged; | 236 | BOOL mSculptChanged; |
237 | LLMatrix4 mRelativeXform; | 237 | LLMatrix4 mRelativeXform; |
238 | LLMatrix3 mRelativeXformInvTrans; | 238 | LLMatrix3 mRelativeXformInvTrans; |
@@ -240,7 +240,7 @@ private: | |||
240 | F32 mVObjRadius; | 240 | F32 mVObjRadius; |
241 | LLVolumeInterface *mVolumeImpl; | 241 | LLVolumeInterface *mVolumeImpl; |
242 | LLPointer<LLViewerImage> mSculptTexture; | 242 | LLPointer<LLViewerImage> mSculptTexture; |
243 | S32 mIndexInTex; | 243 | S32 mIndexInTex; // index of this volume in the texture's volume list |
244 | 244 | ||
245 | // statics | 245 | // statics |
246 | public: | 246 | public: |
diff --git a/linden/indra/newview/packaging/mac/ConfigureDMG.scpt b/linden/indra/newview/packaging/mac/ConfigureDMG.scpt new file mode 100644 index 0000000..198ab9e --- /dev/null +++ b/linden/indra/newview/packaging/mac/ConfigureDMG.scpt | |||
@@ -0,0 +1,110 @@ | |||
1 | (* | ||
2 | |||
3 | @file ConfigureDMG.scpt | ||
4 | @author Jacek Antonelli | ||
5 | @brief Script for configuring the Mac installer disk image. | ||
6 | |||
7 | Copyright (c) 2011, Jacek Antonelli | ||
8 | |||
9 | Permission is hereby granted, free of charge, to any person | ||
10 | obtaining a copy of this software and associated documentation files | ||
11 | (the "Software"), to deal in the Software without restriction, | ||
12 | including without limitation the rights to use, copy, modify, merge, | ||
13 | publish, distribute, sublicense, and/or sell copies of the Software, | ||
14 | and to permit persons to whom the Software is furnished to do so, | ||
15 | subject to the following conditions: | ||
16 | |||
17 | The above copyright notice and this permission notice shall be | ||
18 | included in all copies or substantial portions of the Software. | ||
19 | |||
20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
22 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
24 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
25 | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
26 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
27 | SOFTWARE. | ||
28 | |||
29 | ----- | ||
30 | |||
31 | This AppleScript script configures the view options and icon layout of | ||
32 | the Mac installer disk image (DMG) as part of the packaging process. | ||
33 | See also scripts/package.py, which executes this script. | ||
34 | |||
35 | This script takes two required positional command line arguments: | ||
36 | |||
37 | 1: the name of the mounted volume (e.g. for "/Volumes/Imprudence Installer", | ||
38 | the volume name is "Imprudence Installer"). | ||
39 | 2: the name of the application file (e.g. "Imprudence.app"). | ||
40 | |||
41 | Example usage: | ||
42 | |||
43 | osascript ConfigureDMG.scpt "Imprudence Installer" "Imprudence.app" | ||
44 | |||
45 | Some preparation is necessary before running this script: | ||
46 | |||
47 | * The target disk image must be currently attached as a volume, with | ||
48 | the volume name specified by the first command line argument. | ||
49 | * The volume must contain the application file, with the file | ||
50 | name specified by the second command line argument. | ||
51 | * The volume must contain the "background.png" image file. | ||
52 | * The volume must not contain a file or folder named "Applications". | ||
53 | * It might be necessary to "Enable access for assistive devices" | ||
54 | in System Preferences > Universal Access. | ||
55 | |||
56 | *) | ||
57 | |||
58 | on run argv | ||
59 | |||
60 | -- Read the first positional argument, the volume name. | ||
61 | set volumeName to item 1 of argv | ||
62 | |||
63 | -- Read the second positional argument, the app name. | ||
64 | set appName to item 2 of argv | ||
65 | |||
66 | tell application "Finder" to tell disk volumeName | ||
67 | -- Open the volume in a Finder window. | ||
68 | open | ||
69 | set theWindow to the container window | ||
70 | |||
71 | -- Tweak some options. | ||
72 | set current view of theWindow to icon view | ||
73 | set toolbar visible of theWindow to false | ||
74 | set statusbar visible of theWindow to false | ||
75 | |||
76 | -- Set window to position {150,150}, size {+600,+420}. | ||
77 | set bounds of theWindow to {150, 150, 750, 570} | ||
78 | |||
79 | -- Tweak some more options. | ||
80 | set viewOptions to the icon view options of theWindow | ||
81 | set arrangement of viewOptions to not arranged | ||
82 | set icon size of viewOptions to 128 | ||
83 | |||
84 | -- Make sure background.png is visible, so Finder can see it. | ||
85 | set bgPicPath to the quoted form of (the POSIX path of (it as alias) & "background.png") | ||
86 | do shell script ("SetFile -a v " & bgPicPath) | ||
87 | update without registering applications | ||
88 | |||
89 | -- Use background.png as the background picture. | ||
90 | set background picture of viewOptions to file "background.png" | ||
91 | |||
92 | -- Now set background.png to invisible, so the end user won't see it. | ||
93 | do shell script ("SetFile -a V " & bgPicPath) | ||
94 | |||
95 | -- Position the application file. | ||
96 | set position of item appName of theWindow to {138, 260} | ||
97 | |||
98 | -- Create and position an alias to the Applications folder. | ||
99 | set appAlias to make new alias file at theWindow to POSIX file "/Applications" | ||
100 | set name of appAlias to "Applications" | ||
101 | set position of appAlias to {470, 260} | ||
102 | |||
103 | -- Visually update the window so all the changes take effect. | ||
104 | update without registering applications | ||
105 | |||
106 | -- Pause briefly so we can admire the results. | ||
107 | delay 2 | ||
108 | end tell | ||
109 | |||
110 | end run | ||
diff --git a/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings b/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..1ebe727 --- /dev/null +++ b/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings | |||
@@ -0,0 +1,5 @@ | |||
1 | /* Localized versions of Info.plist keys */ | ||
2 | |||
3 | CFBundleName = "Imprudence"; | ||
4 | CFBundleShortVersionString = "Imprudence 1.4.0 beta 1"; | ||
5 | CFBundleGetInfoString = "Imprudence 1.4.0 beta 1"; | ||
diff --git a/linden/indra/newview/English.lproj/language.txt b/linden/indra/newview/packaging/mac/English.lproj/language.txt index bc0aa57..bc0aa57 100644 --- a/linden/indra/newview/English.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/English.lproj/language.txt | |||
diff --git a/linden/indra/newview/packaging/mac/GenerateInfoPlist.cmake b/linden/indra/newview/packaging/mac/GenerateInfoPlist.cmake new file mode 100644 index 0000000..ecbec34 --- /dev/null +++ b/linden/indra/newview/packaging/mac/GenerateInfoPlist.cmake | |||
@@ -0,0 +1,39 @@ | |||
1 | # | ||
2 | # Generate the Info.plist file from the template. | ||
3 | # Only @-style "@VARIABLES@" are substituted in the template (not "${VARIABLES}"). | ||
4 | # | ||
5 | # This script is needed because CMake has no other way to perform | ||
6 | # configure_file() as a build-time custom command. :( | ||
7 | # | ||
8 | # When running this script, you must define (-D) SOURCE_DIR and | ||
9 | # BINARY_DIR to refer to indra and the build directory respectively. | ||
10 | # (Equivalent to CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR in | ||
11 | # CMakeLists.txt ) | ||
12 | # | ||
13 | |||
14 | if (NOT SOURCE_DIR) | ||
15 | message( FATAL_ERROR "You forgot to define SOURCE_DIR!" ) | ||
16 | endif (NOT SOURCE_DIR) | ||
17 | |||
18 | if (NOT BINARY_DIR) | ||
19 | message( FATAL_ERROR "You forgot to define BINARY_DIR!" ) | ||
20 | endif (NOT BINARY_DIR) | ||
21 | |||
22 | set(SCRIPTS_DIR "${SOURCE_DIR}/../scripts") | ||
23 | set(CMAKE_MODULE_PATH "${SOURCE_DIR}/cmake/" "${CMAKE_ROOT/Modules}") | ||
24 | |||
25 | include(BuildVersion) | ||
26 | build_version(viewer) | ||
27 | |||
28 | SET( BUNDLE_NAME "${viewer_NAME}" ) | ||
29 | SET( EXECUTABLE "${viewer_NAME}" ) | ||
30 | set( BUNDLE_VERSION "${viewer_VERSION}" ) | ||
31 | set( SHORT_VERSION_STRING "${viewer_NAME} ${viewer_VERSION}" ) | ||
32 | set( ICON_FILE "viewer.icns" ) | ||
33 | set( IDENTIFIER "${viewer_BUNDLE_ID}" ) | ||
34 | set( SIGNATURE "impr" ) | ||
35 | |||
36 | configure_file( | ||
37 | ${SOURCE_DIR}/newview/packaging/mac/Info.plist.in | ||
38 | ${BINARY_DIR}/newview/packaging/mac/Info.plist | ||
39 | @ONLY) | ||
diff --git a/linden/indra/newview/German.lproj/language.txt b/linden/indra/newview/packaging/mac/German.lproj/language.txt index c42e816..c42e816 100644 --- a/linden/indra/newview/German.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/German.lproj/language.txt | |||
diff --git a/linden/indra/newview/Info-meta-impy.plist b/linden/indra/newview/packaging/mac/Info.plist.in index 3469e5c..3469e5c 100644 --- a/linden/indra/newview/Info-meta-impy.plist +++ b/linden/indra/newview/packaging/mac/Info.plist.in | |||
diff --git a/linden/indra/newview/Japanese.lproj/language.txt b/linden/indra/newview/packaging/mac/Japanese.lproj/language.txt index c6e3ab6..c6e3ab6 100644 --- a/linden/indra/newview/Japanese.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/Japanese.lproj/language.txt | |||
diff --git a/linden/indra/newview/Korean.lproj/language.txt b/linden/indra/newview/packaging/mac/Korean.lproj/language.txt index b03ec72..b03ec72 100644 --- a/linden/indra/newview/Korean.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/Korean.lproj/language.txt | |||
diff --git a/linden/indra/newview/packaging/mac/background.png b/linden/indra/newview/packaging/mac/background.png new file mode 100644 index 0000000..9b0b0b2 --- /dev/null +++ b/linden/indra/newview/packaging/mac/background.png | |||
Binary files differ | |||
diff --git a/linden/indra/newview/da.lproj/language.txt b/linden/indra/newview/packaging/mac/da.lproj/language.txt index 316d25d..316d25d 100644 --- a/linden/indra/newview/da.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/da.lproj/language.txt | |||
diff --git a/linden/indra/newview/es.lproj/language.txt b/linden/indra/newview/packaging/mac/es.lproj/language.txt index 6c43814..6c43814 100644 --- a/linden/indra/newview/es.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/es.lproj/language.txt | |||
diff --git a/linden/indra/newview/fr.lproj/language.txt b/linden/indra/newview/packaging/mac/fr.lproj/language.txt index 717280a..717280a 100644 --- a/linden/indra/newview/fr.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/fr.lproj/language.txt | |||
diff --git a/linden/indra/newview/hu.lproj/language.txt b/linden/indra/newview/packaging/mac/hu.lproj/language.txt index 6c604cf..6c604cf 100644 --- a/linden/indra/newview/hu.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/hu.lproj/language.txt | |||
diff --git a/linden/indra/newview/it.lproj/language.txt b/linden/indra/newview/packaging/mac/it.lproj/language.txt index c919714..c919714 100644 --- a/linden/indra/newview/it.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/it.lproj/language.txt | |||
diff --git a/linden/indra/newview/nl.lproj/language.txt b/linden/indra/newview/packaging/mac/nl.lproj/language.txt index d5f5c2a..d5f5c2a 100644 --- a/linden/indra/newview/nl.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/nl.lproj/language.txt | |||
diff --git a/linden/indra/newview/pl.lproj/language.txt b/linden/indra/newview/packaging/mac/pl.lproj/language.txt index 55239f3..55239f3 100644 --- a/linden/indra/newview/pl.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/pl.lproj/language.txt | |||
diff --git a/linden/indra/newview/pt.lproj/language.txt b/linden/indra/newview/packaging/mac/pt.lproj/language.txt index 9e3340e..9e3340e 100644 --- a/linden/indra/newview/pt.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/pt.lproj/language.txt | |||
diff --git a/linden/indra/newview/ru.lproj/language.txt b/linden/indra/newview/packaging/mac/ru.lproj/language.txt index adc719b..adc719b 100644 --- a/linden/indra/newview/ru.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/ru.lproj/language.txt | |||
diff --git a/linden/indra/newview/tr.lproj/language.txt b/linden/indra/newview/packaging/mac/tr.lproj/language.txt index 44266bf..44266bf 100644 --- a/linden/indra/newview/tr.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/tr.lproj/language.txt | |||
diff --git a/linden/indra/newview/uk.lproj/language.txt b/linden/indra/newview/packaging/mac/uk.lproj/language.txt index fbc658f..fbc658f 100644 --- a/linden/indra/newview/uk.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/uk.lproj/language.txt | |||
diff --git a/linden/indra/newview/SecondLife.nib/classes.nib b/linden/indra/newview/packaging/mac/viewer.nib/classes.nib index ea58db1..ea58db1 100644 --- a/linden/indra/newview/SecondLife.nib/classes.nib +++ b/linden/indra/newview/packaging/mac/viewer.nib/classes.nib | |||
diff --git a/linden/indra/newview/SecondLife.nib/info.nib b/linden/indra/newview/packaging/mac/viewer.nib/info.nib index 1b531de..1b531de 100644 --- a/linden/indra/newview/SecondLife.nib/info.nib +++ b/linden/indra/newview/packaging/mac/viewer.nib/info.nib | |||
diff --git a/linden/indra/newview/SecondLife.nib/objects.xib b/linden/indra/newview/packaging/mac/viewer.nib/objects.xib index 7ef13e0..7ef13e0 100644 --- a/linden/indra/newview/SecondLife.nib/objects.xib +++ b/linden/indra/newview/packaging/mac/viewer.nib/objects.xib | |||
diff --git a/linden/indra/newview/zh-Hans.lproj/language.txt b/linden/indra/newview/packaging/mac/zh-Hans.lproj/language.txt index 147d659..147d659 100644 --- a/linden/indra/newview/zh-Hans.lproj/language.txt +++ b/linden/indra/newview/packaging/mac/zh-Hans.lproj/language.txt | |||
diff --git a/linden/indra/newview/primbackup.cpp b/linden/indra/newview/primbackup.cpp index a534cef..29b635e 100644 --- a/linden/indra/newview/primbackup.cpp +++ b/linden/indra/newview/primbackup.cpp | |||
@@ -632,6 +632,8 @@ void primbackup::export_next_texture() | |||
632 | 632 | ||
633 | void primbackup::import_object(bool upload) | 633 | void primbackup::import_object(bool upload) |
634 | { | 634 | { |
635 | |||
636 | |||
635 | textures.clear(); | 637 | textures.clear(); |
636 | assetmap.clear(); | 638 | assetmap.clear(); |
637 | current_asset=LLUUID::null; | 639 | current_asset=LLUUID::null; |
@@ -648,9 +650,21 @@ void primbackup::import_object(bool upload) | |||
648 | std::string file_name = file_picker.getFirstFile().c_str(); | 650 | std::string file_name = file_picker.getFirstFile().c_str(); |
649 | folder = gDirUtilp->getDirName(file_name); | 651 | folder = gDirUtilp->getDirName(file_name); |
650 | 652 | ||
651 | llifstream import_file(file_name); | 653 | { |
652 | LLSDSerialize::fromXML(llsd, import_file); | 654 | LLSD import_llsd; |
653 | import_file.close(); | 655 | llifstream import_file(file_name); |
656 | S32 status; | ||
657 | status = LLSDSerialize::fromXML(import_llsd, import_file); | ||
658 | import_file.close(); | ||
659 | |||
660 | if (LLSDParser::PARSE_FAILURE == status) | ||
661 | { | ||
662 | llwarns << "invalid xml file." << llendl; | ||
663 | return; | ||
664 | } | ||
665 | |||
666 | llsd = import_llsd; | ||
667 | } | ||
654 | 668 | ||
655 | show(); | 669 | show(); |
656 | 670 | ||
diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc index 65d4cbb..e4d8e9c 100644 --- a/linden/indra/newview/res/viewerRes.rc +++ b/linden/indra/newview/res/viewerRes.rc | |||
@@ -138,8 +138,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur" | |||
138 | // | 138 | // |
139 | 139 | ||
140 | VS_VERSION_INFO VERSIONINFO | 140 | VS_VERSION_INFO VERSIONINFO |
141 | FILEVERSION 1,3,0 | 141 | FILEVERSION 1,4,0 |
142 | PRODUCTVERSION 1,3,0 | 142 | PRODUCTVERSION 1,4,0 |
143 | FILEFLAGSMASK 0x3fL | 143 | FILEFLAGSMASK 0x3fL |
144 | #ifdef _DEBUG | 144 | #ifdef _DEBUG |
145 | FILEFLAGS 0x1L | 145 | FILEFLAGS 0x1L |
@@ -155,12 +155,12 @@ BEGIN | |||
155 | BLOCK "040904b0" | 155 | BLOCK "040904b0" |
156 | BEGIN | 156 | BEGIN |
157 | VALUE "CompanyName", "meta-impy Viewer Project" | 157 | VALUE "CompanyName", "meta-impy Viewer Project" |
158 | VALUE "FileDescription", "meta-impy Experimental" | 158 | VALUE "FileDescription", "meta-impy" |
159 | VALUE "FileVersion", "2011.04.02" | 159 | VALUE "FileVersion", "1.4.0 beta 1" |
160 | VALUE "InternalName", "meta-impy Experimental" | 160 | VALUE "InternalName", "meta-impy" |
161 | VALUE "OriginalFilename", "meta-impy.exe" | 161 | VALUE "OriginalFilename", "meta-impy.exe" |
162 | VALUE "ProductName", "meta-impy Weekly" | 162 | VALUE "ProductName", "meta-impy" |
163 | VALUE "ProductVersion", "2011.04.02" | 163 | VALUE "ProductVersion", "1.4.0 beta 1" |
164 | END | 164 | END |
165 | END | 165 | END |
166 | BLOCK "VarFileInfo" | 166 | BLOCK "VarFileInfo" |
diff --git a/linden/indra/newview/skins/default/textures/textures.xml b/linden/indra/newview/skins/default/textures/textures.xml index 60fb4e0..9151ee9 100644 --- a/linden/indra/newview/skins/default/textures/textures.xml +++ b/linden/indra/newview/skins/default/textures/textures.xml | |||
@@ -397,5 +397,10 @@ | |||
397 | <texture name="media_btn_stoploading.png"/> | 397 | <texture name="media_btn_stoploading.png"/> |
398 | <texture name="media_panel_divider.png"/> | 398 | <texture name="media_panel_divider.png"/> |
399 | <texture name="media_panel_scrollbg.png"/> | 399 | <texture name="media_panel_scrollbg.png"/> |
400 | |||
401 | <texture name="go-previous-4.png"/> | ||
402 | <texture name="go-next-4.png"/> | ||
403 | <texture name="view-refresh-5.png"/> | ||
404 | <texture name="go-home-4.png"/> | ||
400 | 405 | ||
401 | </textures> | 406 | </textures> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml index d0f72c2..95cdcd0 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml | |||
@@ -57,24 +57,24 @@ | |||
57 | 57 | ||
58 | Many thanks to the many residents in many grids who contributed towards this viewer in countless ways. | 58 | Many thanks to the many residents in many grids who contributed towards this viewer in countless ways. |
59 | 59 | ||
60 | 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion | 60 | 3Dconnexion SDK Copyright © 1992-2007 3Dconnexion |
61 | APR Copyright (C) 2000-2004 The Apache Software Foundation | 61 | APR Copyright © 2000-2004 The Apache Software Foundation |
62 | cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) | 62 | cURL Copyright © 1996-2002, Daniel Stenberg, (daniel@haxx.se) |
63 | DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. | 63 | DBus/dbus-glib Copyright © 2002, 2003 CodeFactory AB / Copyright © 2003, 2004 Red Hat, Inc. |
64 | expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. | 64 | expat Copyright © 1998, 1999, 2000 Thai Open Source Software Center Ltd. |
65 | FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). | 65 | FreeType Copyright © 1996-2002, The FreeType Project (www.freetype.org). |
66 | GL Copyright (C) 1999-2004 Brian Paul. | 66 | GL Copyright © 1999-2004 Brian Paul. |
67 | Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. | 67 | Havok.com(TM) Copyright © 1999-2001, Telekinesys Research Limited. |
68 | jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) | 68 | jpeg2000 Copyright © 2001, David Taubman, The University of New South Wales (UNSW) |
69 | jpeglib Copyright (C) 1991-1998, Thomas G. Lane. | 69 | jpeglib Copyright © 1991-1998, Thomas G. Lane. |
70 | ogg/vorbis Copyright (C) 2001, Xiphophorus | 70 | ogg/vorbis Copyright © 2001, Xiphophorus |
71 | OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. | 71 | OpenSSL Copyright © 1998-2002 The OpenSSL Project. |
72 | SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga | 72 | SDL Copyright © 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga |
73 | SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 73 | SSLeay Copyright © 1995-1998 Eric Young (eay@cryptsoft.com) |
74 | xmlrpc-epi Copyright (C) 2000 Epinions, Inc. | 74 | xmlrpc-epi Copyright © 2000 Epinions, Inc. |
75 | zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. | 75 | zlib Copyright © 1995-2002 Jean-loup Gailly and Mark Adler. |
76 | google-perftools Copyright (c) 2005, Google Inc. | 76 | google-perftools Copyright © 2005, Google Inc. |
77 | Code from FAAD2 is copyright (c) Nero AG, www.nero.com | 77 | Code from FAAD2 is copyright © Nero AG, www.nero.com |
78 | 78 | ||
79 | All rights reserved. See LICENSE-libraries.txt for details. | 79 | All rights reserved. See LICENSE-libraries.txt for details. |
80 | 80 | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml index d57ca5f..fcaa869 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml | |||
@@ -888,7 +888,7 @@ Only large parcels can be listed in search. | |||
888 | height="16" | 888 | height="16" |
889 | left="10" | 889 | left="10" |
890 | length="1" | 890 | length="1" |
891 | name="at URL:" | 891 | name="Current URL:" |
892 | type="string" | 892 | type="string" |
893 | width="65"> | 893 | width="65"> |
894 | Current URL: | 894 | Current URL: |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml b/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml index 9f55f67..50ec87c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml | |||
@@ -93,4 +93,4 @@ | |||
93 | <button bottom_delta="0" follows="top|right" height="22" label="OK" | 93 | <button bottom_delta="0" follows="top|right" height="22" label="OK" |
94 | right="-85" name="btn_ok" tool_tip="" enabled="true" width="80" /> | 94 | right="-85" name="btn_ok" tool_tip="" enabled="true" width="80" /> |
95 | 95 | ||
96 | </floater> \ No newline at end of file | 96 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_command_line.xml b/linden/indra/newview/skins/default/xui/en-us/floater_command_line.xml index 13b334b..a1eb3c8 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_command_line.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_command_line.xml | |||
@@ -93,12 +93,12 @@ | |||
93 | font="SansSerifSmall" height="20" left_delta="0" max_length="256" mouse_opaque="true" | 93 | font="SansSerifSmall" height="20" left_delta="0" max_length="256" mouse_opaque="true" |
94 | tool_tip="Clears the Chat History to prevent lag effects from chat spammers." name="CmdLineChatbarClearChat" control_name="CmdLineChatbarClearChat" width="200"/> | 94 | tool_tip="Clears the Chat History to prevent lag effects from chat spammers." name="CmdLineChatbarClearChat" control_name="CmdLineChatbarClearChat" width="200"/> |
95 | <text bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" | 95 | <text bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" |
96 | name="loltxt15" width="512"> Set the media url (usage: cmd url type)</text> | 96 | name="set_media_url_text" width="512"> Set the media url (usage: cmd url type)</text> |
97 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-20" follows="left|top" | 97 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-20" follows="left|top" |
98 | font="SansSerifSmall" height="20" left_delta="0" max_length="256" mouse_opaque="true" | 98 | font="SansSerifSmall" height="20" left_delta="0" max_length="256" mouse_opaque="true" |
99 | tool_tip="Sets and plays your media stream to the entered url" name="CmdLineChatbarMedia" control_name="CmdLineChatbarMedia" width="200"/> | 99 | tool_tip="Sets and plays your media stream to the entered url" name="CmdLineChatbarMedia" control_name="CmdLineChatbarMedia" width="200"/> |
100 | <text bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" | 100 | <text bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" |
101 | name="loltxt15" width="512"> Set the music stream url (usage: cmd url)</text> | 101 | name="set_music_url_text" width="512"> Set the music stream url (usage: cmd url)</text> |
102 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-20" follows="left|top" | 102 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-20" follows="left|top" |
103 | font="SansSerifSmall" height="20" left_delta="0" max_length="256" mouse_opaque="true" | 103 | font="SansSerifSmall" height="20" left_delta="0" max_length="256" mouse_opaque="true" |
104 | tool_tip="sets and plays your music stream to the entered url" name="CmdLineChatbarMusic" control_name="CmdLineChatbarMusic" width="200"/> | 104 | tool_tip="sets and plays your music stream to the entered url" name="CmdLineChatbarMusic" control_name="CmdLineChatbarMusic" width="200"/> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_grid_default_selector.xml b/linden/indra/newview/skins/default/xui/en-us/floater_grid_default_selector.xml index 157588d..51ba35f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_grid_default_selector.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_grid_default_selector.xml | |||
@@ -17,4 +17,4 @@ | |||
17 | right="-5" name="btn_cancel" width="85" /> | 17 | right="-5" name="btn_cancel" width="85" /> |
18 | <button bottom_delta="0" follows="bottom|right" height="20" label="OK" | 18 | <button bottom_delta="0" follows="bottom|right" height="20" label="OK" |
19 | left_delta="-90" name="btn_ok" width="85" /> | 19 | left_delta="-90" name="btn_ok" width="85" /> |
20 | </floater> \ No newline at end of file | 20 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_inventory.xml b/linden/indra/newview/skins/default/xui/en-us/floater_inventory.xml index 3ab7c7b..554f79d 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_inventory.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_inventory.xml | |||
@@ -170,7 +170,7 @@ | |||
170 | </menu_item_call> | 170 | </menu_item_call> |
171 | </menu> | 171 | </menu> |
172 | <menu bottom_delta="-599" drop_shadow="true" height="85" left="0" | 172 | <menu bottom_delta="-599" drop_shadow="true" height="85" left="0" |
173 | mouse_opaque="false" name="New Body Parts" opaque="true" width="118"> | 173 | mouse_opaque="false" label="New Body Parts" name="New Body Parts" opaque="true" width="118"> |
174 | <menu_item_call bottom_delta="-18" height="18" label="New Shape" left="0" mouse_opaque="true" | 174 | <menu_item_call bottom_delta="-18" height="18" label="New Shape" left="0" mouse_opaque="true" |
175 | name="New Shape" width="118"> | 175 | name="New Shape" width="118"> |
176 | <on_click filter="" function="Inventory.DoCreate" userdata="shape" /> | 176 | <on_click filter="" function="Inventory.DoCreate" userdata="shape" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_local_asset_browse.xml b/linden/indra/newview/skins/default/xui/en-us/floater_local_asset_browse.xml index f9bb3a7..a8ce59c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_local_asset_browse.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_local_asset_browse.xml | |||
@@ -118,12 +118,12 @@ | |||
118 | default_image_name="Default" | 118 | default_image_name="Default" |
119 | can_apply_immediately="true" | 119 | can_apply_immediately="true" |
120 | follows="left|top" | 120 | follows="left|top" |
121 | label="Texture" | ||
122 | bottom_delta="20" | 121 | bottom_delta="20" |
123 | left_delta="0" | 122 | left_delta="0" |
124 | mouse_opaque="true" | 123 | mouse_opaque="true" |
125 | name="texture_view" | 124 | name="texture_view" |
126 | visible="true" | 125 | visible="true" |
126 | enabled="false" | ||
127 | /> | 127 | /> |
128 | 128 | ||
129 | <check_box | 129 | <check_box |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml b/linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml index c1bfdcc..76eee6f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml | |||
@@ -3,20 +3,20 @@ | |||
3 | height="440" min_height="140" min_width="467" name="floater_about" | 3 | height="440" min_height="140" min_width="467" name="floater_about" |
4 | rect_control="FloaterMediaRect" title="Web Browser" width="560"> | 4 | rect_control="FloaterMediaRect" title="Web Browser" width="560"> |
5 | <layout_stack name="stack1" bottom="0" follows="left|right|top|bottom" left="10" top="-20" width="540"> | 5 | <layout_stack name="stack1" bottom="0" follows="left|right|top|bottom" left="10" top="-20" width="540"> |
6 | <layout_panel auto_resize="false" bottom="0" height="20" left="0" name="nav_controls" user_resize="false" | 6 | <layout_panel auto_resize="false" bottom="0" height="25" left="0" name="nav_controls" user_resize="false" |
7 | width="800"> | 7 | width="800"> |
8 | <button bottom="0" follows="left|top" height="20" label="Back" left="0" name="back" | 8 | <button bottom="0" follows="left|top" height="25" label="" image_overlay="go-previous-4.png" left="0" name="back" |
9 | width="55" /> | 9 | width="25" /> |
10 | <button bottom_delta="0" follows="left|top" height="20" label="Forward" left_delta="55" | 10 | <button bottom_delta="0" follows="left|top" height="25" label="" image_overlay="go-next-4.png" left_delta="27" |
11 | name="forward" width="68" /> | 11 | name="forward" width="25" /> |
12 | <button bottom_delta="0" enabled="false" follows="left|top" height="20" label="Reload" | 12 | <button bottom_delta="0" enabled="false" follows="left|top" height="25" label="" image_overlay="view-refresh-5.png" |
13 | left_delta="70" name="reload" width="70" /> | 13 | left_delta="27" name="reload" width="25" /> |
14 | <combo_box allow_text_entry="true" bottom_delta="0" follows="left|top|right" height="20" | 14 | <combo_box allow_text_entry="true" bottom_delta="4" follows="left|top|right" height="20" |
15 | left_delta="75" max_chars="255" name="address" width="485" /> | 15 | left_delta="29" max_chars="255" name="address" width="622" /> |
16 | <button bottom_delta="0" enabled="false" follows="right|top" height="20" label="Go" | 16 | <button bottom_delta="-4" enabled="false" follows="right|top" height="25" label="Go" font="SansSerif" |
17 | left_delta="487" name="go" width="55" /> | 17 | left_delta="625" name="go" width="55" /> |
18 | <button bottom_delta="0" enabled="true" follows="right|top" height="20" label="Home" | 18 | <button bottom_delta="0" enabled="true" follows="right|top" height="25" label="" image_overlay="go-home-4.png" |
19 | left_delta="58" name="home" width="55" /> | 19 | left_delta="58" name="home" width="35" /> |
20 | </layout_panel> | 20 | </layout_panel> |
21 | <layout_panel auto_resize="false" bottom="0" height="20" left="0" name="time_controls" user_resize="false" | 21 | <layout_panel auto_resize="false" bottom="0" height="20" left="0" name="time_controls" user_resize="false" |
22 | width="800"> | 22 | width="800"> |
@@ -33,22 +33,19 @@ | |||
33 | </layout_panel> | 33 | </layout_panel> |
34 | <layout_panel auto_resize="false" bottom="0" height="20" left="0" | 34 | <layout_panel auto_resize="false" bottom="0" height="20" left="0" |
35 | name="parcel_owner_controls" user_resize="false" width="540"> | 35 | name="parcel_owner_controls" user_resize="false" width="540"> |
36 | <button bottom="0" enabled="false" follows="left|top" height="20" | 36 | <button bottom="0" enabled="false" follows="left|top" height="22" |
37 | label="Send Current URL to Parcel" left="0" name="assign" width="200" /> | 37 | label="Send Current URL To Parcel" left="0" name="assign" width="200" /> |
38 | </layout_panel> | 38 | </layout_panel> |
39 | <layout_panel auto_resize="true" bottom="0" height="20" left="0" name="external_controls" user_resize="false" | 39 | <layout_panel auto_resize="true" bottom="0" height="20" left="0" name="external_controls" user_resize="false" |
40 | width="540"> | 40 | width="540"> |
41 | <web_browser bottom="30" follows="left|right|top|bottom" left="0" name="browser" top="20" | 41 | <web_browser bottom="30" follows="left|right|top|bottom" left="0" name="browser" top="20" |
42 | width="540" /> | 42 | width="540" /> |
43 | <button bottom="5" follows="bottom|left" height="20" label="Open in My Web Browser" | 43 | <button bottom="4" follows="bottom|left" height="22" label="Open In External Browser" font="SansSerif" |
44 | left="0" name="open_browser" width="185" /> | 44 | left="0" name="open_browser" width="185" /> |
45 | <check_box bottom="5" control_name="UseExternalBrowser" follows="bottom|left" height="20" | 45 | <check_box bottom="6" control_name="UseExternalBrowser" follows="bottom|left" height="22" |
46 | label="Always open in my web browser" left_delta="184" name="open_always" | 46 | label="Always open in external browser" left_delta="190" name="open_always" width="200" /> |
47 | width="200" /> | 47 | <button bottom="4" enabled="false" follows="bottom|right" height="22" label="Set As Home" font="SansSerif" |
48 | <button bottom="5" enabled="false" follows="bottom|right" height="20" label="Set As Home" | 48 | left="-110" name="set_home" width="104" /> |
49 | left="-176" name="set_home" width="104" /> | ||
50 | <button bottom="5" follows="bottom|right" height="20" label="Close" left="-70" | ||
51 | name="close" width="70" /> | ||
52 | </layout_panel> | 49 | </layout_panel> |
53 | </layout_stack> | 50 | </layout_stack> |
54 | <string name="home_page_url"> | 51 | <string name="home_page_url"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_preview_notecard.xml b/linden/indra/newview/skins/default/xui/en-us/floater_preview_notecard.xml index fe2d977..ce6ab7d 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_preview_notecard.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_preview_notecard.xml | |||
@@ -20,14 +20,14 @@ | |||
20 | <menu_bar bottom="-56" drop_shadow="false" enabled="true" follows="left|top|right" | 20 | <menu_bar bottom="-56" drop_shadow="false" enabled="true" follows="left|top|right" |
21 | height="18" left="8" mouse_opaque="false" name="motecard_menu" opaque="false" | 21 | height="18" left="8" mouse_opaque="false" name="motecard_menu" opaque="false" |
22 | tear_off="false" width="220"> | 22 | tear_off="false" width="220"> |
23 | <menu drop_shadow="true" enabled="true" mouse_opaque="false" name="File" opaque="true" tear_off="false"> | 23 | <menu drop_shadow="true" enabled="true" label="File" mouse_opaque="false" name="File" opaque="true" tear_off="false"> |
24 | <menu_item_call enabled="false" mouse_opaque="true" label="Save" name="Save Menu" shortcut="control|S" /> | 24 | <menu_item_call enabled="false" mouse_opaque="true" label="Save" name="Save Menu" shortcut="control|S" /> |
25 | <menu_item_separator /> | 25 | <menu_item_separator /> |
26 | <menu_item_call enabled="false" mouse_opaque="true" label="Export Text..." name="Export Text..." /> | 26 | <menu_item_call enabled="false" mouse_opaque="true" label="Export Text..." name="Export Text..." /> |
27 | <menu_item_call enabled="false" mouse_opaque="true" label="Import Text..." name="Import Text..." /> | 27 | <menu_item_call enabled="false" mouse_opaque="true" label="Import Text..." name="Import Text..." /> |
28 | </menu> | 28 | </menu> |
29 | <menu bottom_delta="16" left="0" drop_shadow="true" enabled="true" height="198" width="150" | 29 | <menu bottom_delta="16" left="0" drop_shadow="true" enabled="true" height="198" width="150" |
30 | mouse_opaque="false" name="Edit" opaque="true" tear_off="false"> | 30 | label="Edit" mouse_opaque="false" name="Edit" opaque="true" tear_off="false"> |
31 | <menu_item_call bottom_delta="-30" enabled="false" height="20" label="Undo" left="0" | 31 | <menu_item_call bottom_delta="-30" enabled="false" height="20" label="Undo" left="0" |
32 | mouse_opaque="true" name="Undo" width="139" /> | 32 | mouse_opaque="true" name="Undo" width="139" /> |
33 | <menu_item_call bottom_delta="-50" enabled="false" height="20" label="Redo" left="0" | 33 | <menu_item_call bottom_delta="-50" enabled="false" height="20" label="Redo" left="0" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_radar.xml b/linden/indra/newview/skins/default/xui/en-us/floater_radar.xml index 7db7330..bfe30d4 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_radar.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_radar.xml | |||
@@ -187,7 +187,7 @@ | |||
187 | tool_tip="Report avatars getting within or beyond the draw distance" /> | 187 | tool_tip="Report avatars getting within or beyond the draw distance" /> |
188 | 188 | ||
189 | <check_box height="16" label="Avatars within/beyond the shout range" | 189 | <check_box height="16" label="Avatars within/beyond the shout range" |
190 | left="20" bottom_delta="-18" name="alerts_chat" | 190 | left="20" bottom_delta="-18" name="alerts_shout" |
191 | width="200" follows="bottom|left" | 191 | width="200" follows="bottom|left" |
192 | hidden="false" mouse_opaque="true" font="SansSerifSmall" | 192 | hidden="false" mouse_opaque="true" font="SansSerifSmall" |
193 | initial_value="true" enabled="true" radio_style="false" | 193 | initial_value="true" enabled="true" radio_style="false" |
@@ -324,4 +324,4 @@ | |||
324 | /> | 324 | /> |
325 | </panel> | 325 | </panel> |
326 | </tab_container> | 326 | </tab_container> |
327 | </floater> \ No newline at end of file | 327 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_login.xml b/linden/indra/newview/skins/default/xui/en-us/menu_login.xml index 87907ec..ffdafe2 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_login.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_login.xml | |||
@@ -1,18 +1,24 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <menu_bar name="Login Menu" opaque="true" tear_off="false" height="18" bottom="-18" follows="left|top|right"> | 2 | <menu_bar name="Login Menu" opaque="true" tear_off="false" |
3 | <menu create_jump_keys="true" label="File" name="File" opaque="true" tear_off="false"> | 3 | mouse_opaque="false" |
4 | <menu_item_call label="Quit" name="Quit" shortcut="control|Q"> | 4 | drop_shadow="false" |
5 | <on_click function="File.Quit" userdata="" /> | 5 | height="18" bottom="-18" follows="left|top|right"> |
6 | </menu_item_call> | 6 | <menu create_jump_keys="true" label="File" name="File" opaque="true" tear_off="false" |
7 | </menu> | 7 | drop_shadow="true" mouse_opaque="false"> |
8 | <menu create_jump_keys="true" label="Edit" name="Edit" | 8 | <menu_item_call label="Quit" name="Quit" shortcut="control|Q"> |
9 | opaque="true" tear_off="false"> | 9 | <on_click function="File.Quit" userdata="" /> |
10 | </menu_item_call> | ||
11 | </menu> | ||
12 | <menu create_jump_keys="true" label="Edit" name="Edit" | ||
13 | opaque="true" tear_off="false" | ||
14 | drop_shadow="true" mouse_opaque="false"> | ||
10 | <menu_item_call label="Preferences..." name="Preferences..." shortcut="control|P"> | 15 | <menu_item_call label="Preferences..." name="Preferences..." shortcut="control|P"> |
11 | <on_click function="ShowFloater" userdata="preferences" /> | 16 | <on_click function="ShowFloater" userdata="preferences" /> |
12 | </menu_item_call> | 17 | </menu_item_call> |
13 | </menu> | 18 | </menu> |
14 | <menu create_jump_keys="true" label="Help" name="Help" | 19 | <menu create_jump_keys="true" label="Help" name="Help" |
15 | opaque="true" tear_off="false"> | 20 | opaque="true" tear_off="false" |
21 | drop_shadow="true" mouse_opaque="false"> | ||
16 | <menu_item_call label="Grid Help" name="Grid Help" shortcut="F1"> | 22 | <menu_item_call label="Grid Help" name="Grid Help" shortcut="F1"> |
17 | <on_click function="ShowFloater" userdata="help f1" /> | 23 | <on_click function="ShowFloater" userdata="help f1" /> |
18 | </menu_item_call> | 24 | </menu_item_call> |
@@ -32,7 +38,8 @@ | |||
32 | <on_click function="ShowFloater" userdata="about" /> | 38 | <on_click function="ShowFloater" userdata="about" /> |
33 | </menu_item_call> | 39 | </menu_item_call> |
34 | </menu> | 40 | </menu> |
35 | <menu name="Advanced" create_jump_keys="true" opaque="true"> | 41 | <menu name="Advanced" create_jump_keys="true" opaque="true" |
42 | drop_shadow="true" mouse_opaque="false"> | ||
36 | <menu_item_call name="Debug Settings" label="Debug Settings"> | 43 | <menu_item_call name="Debug Settings" label="Debug Settings"> |
37 | <on_click function="Advanced.ShowDebugSettings" userdata="" /> | 44 | <on_click function="Advanced.ShowDebugSettings" userdata="" /> |
38 | </menu_item_call> | 45 | </menu_item_call> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 603c212..03967d9 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | |||
@@ -1,12 +1,13 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | 2 | ||
3 | <menu_bar name="Main Menu" drop_shadow="false" follows="left|top|right" | 3 | <menu_bar name="Main Menu" drop_shadow="false" follows="left|top|right" |
4 | opaque="false" tear_off="false"> | 4 | opaque="false" mouse_opaque="false" tear_off="false"> |
5 | 5 | ||
6 | 6 | ||
7 | <!-- FILE --> | 7 | <!-- FILE --> |
8 | 8 | ||
9 | <menu name="File" create_jump_keys="true" label="File" | 9 | <menu name="File" create_jump_keys="true" label="File" |
10 | drop_shadow="true" mouse_opaque="false" | ||
10 | opaque="true" tear_off="true"> | 11 | opaque="true" tear_off="true"> |
11 | <menu label="Upload" create_jump_keys="true" name="Upload" | 12 | <menu label="Upload" create_jump_keys="true" name="Upload" |
12 | opaque="true" tear_off="true"> | 13 | opaque="true" tear_off="true"> |
@@ -103,6 +104,7 @@ | |||
103 | <!-- EDIT --> | 104 | <!-- EDIT --> |
104 | 105 | ||
105 | <menu name="Edit" create_jump_keys="true" label="Edit" | 106 | <menu name="Edit" create_jump_keys="true" label="Edit" |
107 | drop_shadow="true" mouse_opaque="false" | ||
106 | opaque="true" tear_off="true"> | 108 | opaque="true" tear_off="true"> |
107 | <menu_item_call name="Undo" enabled="false" label="Undo" | 109 | <menu_item_call name="Undo" enabled="false" label="Undo" |
108 | shortcut="control|Z"> | 110 | shortcut="control|Z"> |
@@ -156,13 +158,16 @@ | |||
156 | <menu_item_separator /> | 158 | <menu_item_separator /> |
157 | 159 | ||
158 | <menu name="Attach Object" create_jump_keys="true" | 160 | <menu name="Attach Object" create_jump_keys="true" |
161 | drop_shadow="true" mouse_opaque="false" | ||
159 | label="Attach Object" opaque="true" tear_off="true" /> | 162 | label="Attach Object" opaque="true" tear_off="true" /> |
160 | 163 | ||
161 | <menu name="Detach Object" create_jump_keys="true" | 164 | <menu name="Detach Object" create_jump_keys="true" |
165 | drop_shadow="true" mouse_opaque="false" | ||
162 | label="Detach Object" opaque="true" tear_off="true" /> | 166 | label="Detach Object" opaque="true" tear_off="true" /> |
163 | 167 | ||
164 | 168 | ||
165 | <menu name="Take Off Clothing" create_jump_keys="true" | 169 | <menu name="Take Off Clothing" create_jump_keys="true" |
170 | drop_shadow="true" mouse_opaque="false" | ||
166 | label="Take Off Clothing" opaque="true" tear_off="true"> | 171 | label="Take Off Clothing" opaque="true" tear_off="true"> |
167 | 172 | ||
168 | <menu_item_call name="Shirt" enabled="false" label="Shirt"> | 173 | <menu_item_call name="Shirt" enabled="false" label="Shirt"> |
@@ -295,6 +300,7 @@ | |||
295 | <!-- VIEW --> | 300 | <!-- VIEW --> |
296 | 301 | ||
297 | <menu name="View" create_jump_keys="true" label="View" | 302 | <menu name="View" create_jump_keys="true" label="View" |
303 | drop_shadow="true" mouse_opaque="false" | ||
298 | opaque="true" tear_off="true"> | 304 | opaque="true" tear_off="true"> |
299 | <menu_item_call name="Mouselook" label="Mouselook" | 305 | <menu_item_call name="Mouselook" label="Mouselook" |
300 | shortcut="M"> | 306 | shortcut="M"> |
@@ -406,6 +412,7 @@ | |||
406 | </menu_item_check> | 412 | </menu_item_check> |
407 | <menu_item_separator /> | 413 | <menu_item_separator /> |
408 | <menu name="Hover Tips" create_jump_keys="true" label="Hover Tips" | 414 | <menu name="Hover Tips" create_jump_keys="true" label="Hover Tips" |
415 | drop_shadow="true" mouse_opaque="false" | ||
409 | opaque="true" tear_off="true"> | 416 | opaque="true" tear_off="true"> |
410 | <menu_item_check name="Show Tips" label="Show Tips" | 417 | <menu_item_check name="Show Tips" label="Show Tips" |
411 | shortcut="control|shift|T"> | 418 | shortcut="control|shift|T"> |
@@ -449,8 +456,9 @@ | |||
449 | <on_check function="View.CheckHUDAttachments" /> | 456 | <on_check function="View.CheckHUDAttachments" /> |
450 | </menu_item_check> | 457 | </menu_item_check> |
451 | <menu_item_separator /> | 458 | <menu_item_separator /> |
452 | <menu name="Zoom Level" create_jump_keys="true" | 459 | <menu name="Zoom Level" label="Zoom Level" create_jump_keys="true" |
453 | label="Zoom Level" opaque="true" tear_off="true"> | 460 | drop_shadow="true" mouse_opaque="false" |
461 | opaque="true" tear_off="true"> | ||
454 | <menu_item_call name="Zoom In" label="Zoom In" | 462 | <menu_item_call name="Zoom In" label="Zoom In" |
455 | shortcut="control|0"> | 463 | shortcut="control|0"> |
456 | <on_click function="View.ZoomIn" userdata="" /> | 464 | <on_click function="View.ZoomIn" userdata="" /> |
@@ -483,6 +491,7 @@ | |||
483 | <!-- WORLD --> | 491 | <!-- WORLD --> |
484 | 492 | ||
485 | <menu name="World" create_jump_keys="true" label="World" | 493 | <menu name="World" create_jump_keys="true" label="World" |
494 | drop_shadow="true" mouse_opaque="false" | ||
486 | opaque="true" tear_off="true"> | 495 | opaque="true" tear_off="true"> |
487 | <menu_item_call name="Chat" label="Chat" shortcut=""> | 496 | <menu_item_call name="Chat" label="Chat" shortcut=""> |
488 | <on_click function="World.Chat" userdata="" /> | 497 | <on_click function="World.Chat" userdata="" /> |
@@ -562,8 +571,9 @@ | |||
562 | <on_click function="ShowFloater" userdata="about region" /> | 571 | <on_click function="ShowFloater" userdata="about region" /> |
563 | </menu_item_call> | 572 | </menu_item_call> |
564 | <menu_item_separator /> | 573 | <menu_item_separator /> |
565 | <menu name="Environment Settings" create_jump_keys="true" | 574 | <menu name="Environment Settings" label="Environment Settings" |
566 | label="Environment Settings" opaque="true" tear_off="true"> | 575 | create_jump_keys="true" drop_shadow="true" |
576 | mouse_opaque="false" opaque="true" tear_off="true"> | ||
567 | <menu_item_call name="Sunrise" label="Sunrise"> | 577 | <menu_item_call name="Sunrise" label="Sunrise"> |
568 | <on_click function="World.EnvSettings" userdata="sunrise" /> | 578 | <on_click function="World.EnvSettings" userdata="sunrise" /> |
569 | </menu_item_call> | 579 | </menu_item_call> |
@@ -595,8 +605,10 @@ | |||
595 | <!-- TOOLS --> | 605 | <!-- TOOLS --> |
596 | 606 | ||
597 | <menu name="Tools" create_jump_keys="true" label="Tools" | 607 | <menu name="Tools" create_jump_keys="true" label="Tools" |
608 | drop_shadow="true" mouse_opaque="false" | ||
598 | opaque="true" tear_off="true" visible="false"> | 609 | opaque="true" tear_off="true" visible="false"> |
599 | <menu name="Select Tool" create_jump_keys="true" label="Choose Tool" | 610 | <menu name="Select Tool" create_jump_keys="true" label="Choose Tool" |
611 | drop_shadow="true" mouse_opaque="false" | ||
600 | opaque="true" tear_off="true"> | 612 | opaque="true" tear_off="true"> |
601 | <menu_item_call name="Focus" label="Focus" shortcut="control|1"> | 613 | <menu_item_call name="Focus" label="Focus" shortcut="control|1"> |
602 | <on_click function="Tools.SelectTool" userdata="focus" /> | 614 | <on_click function="Tools.SelectTool" userdata="focus" /> |
@@ -626,6 +638,7 @@ | |||
626 | <on_enable function="Tools.SomethingSelectedNoHUD" /> | 638 | <on_enable function="Tools.SomethingSelectedNoHUD" /> |
627 | </menu_item_call> | 639 | </menu_item_call> |
628 | <menu name="Selection Options" label="Selection Options" | 640 | <menu name="Selection Options" label="Selection Options" |
641 | drop_shadow="true" mouse_opaque="false" | ||
629 | create_jump_keys="true" opaque="true" tear_off="true"> | 642 | create_jump_keys="true" opaque="true" tear_off="true"> |
630 | <menu_item_check name="Select Only My Objects" | 643 | <menu_item_check name="Select Only My Objects" |
631 | label="Select Only My Objects"> | 644 | label="Select Only My Objects"> |
@@ -774,6 +787,7 @@ | |||
774 | </menu_item_call> | 787 | </menu_item_call> |
775 | <menu name="Recompile Scripts in Selection" create_jump_keys="true" | 788 | <menu name="Recompile Scripts in Selection" create_jump_keys="true" |
776 | label="Recompile Scripts in Selection" opaque="true" | 789 | label="Recompile Scripts in Selection" opaque="true" |
790 | drop_shadow="true" mouse_opaque="false" | ||
777 | tear_off="true"> | 791 | tear_off="true"> |
778 | <menu_item_call name="Mono" label="Mono"> | 792 | <menu_item_call name="Mono" label="Mono"> |
779 | <on_click function="Tools.SelectedScriptAction" | 793 | <on_click function="Tools.SelectedScriptAction" |
@@ -820,6 +834,7 @@ | |||
820 | <!-- HELP --> | 834 | <!-- HELP --> |
821 | 835 | ||
822 | <menu name="Help" create_jump_keys="true" label="Help" | 836 | <menu name="Help" create_jump_keys="true" label="Help" |
837 | drop_shadow="true" mouse_opaque="false" | ||
823 | opaque="true" tear_off="true"> | 838 | opaque="true" tear_off="true"> |
824 | <menu_item_call name="Grid Help" label="Grid Help" | 839 | <menu_item_call name="Grid Help" label="Grid Help" |
825 | shortcut="F1"> | 840 | shortcut="F1"> |
@@ -868,14 +883,14 @@ | |||
868 | 883 | ||
869 | <!-- ADVANCED --> | 884 | <!-- ADVANCED --> |
870 | 885 | ||
871 | <menu name="Advanced" drop_shadow="true" | 886 | <menu label="Advanced" name="Advanced" drop_shadow="true" |
872 | opaque="true" tear_off="true"> | 887 | mouse_opaque="false" opaque="true" tear_off="true"> |
873 | 888 | ||
874 | 889 | ||
875 | <!-- CONSOLES --> | 890 | <!-- CONSOLES --> |
876 | 891 | ||
877 | <menu name="Consoles" drop_shadow="true" | 892 | <menu label="Consoles" name="Consoles" drop_shadow="true" |
878 | opaque="true" tear_off="true"> | 893 | mouse_opaque="false" opaque="true" tear_off="true"> |
879 | <menu_item_check name="Frame Console" label="Frame Console" | 894 | <menu_item_check name="Frame Console" label="Frame Console" |
880 | shortcut="control|shift|2"> | 895 | shortcut="control|shift|2"> |
881 | <on_click function="Advanced.ToggleConsole" | 896 | <on_click function="Advanced.ToggleConsole" |
@@ -958,8 +973,8 @@ | |||
958 | 973 | ||
959 | <!-- HUD INFO --> | 974 | <!-- HUD INFO --> |
960 | 975 | ||
961 | <menu name="HUD Info" drop_shadow="true" | 976 | <menu label="HUD Info" name="HUD Info" drop_shadow="true" |
962 | opaque="true" tear_off="true"> | 977 | mouse_opaque="false" opaque="true" tear_off="true"> |
963 | <menu_item_check name="Velocity" label="Velocity"> | 978 | <menu_item_check name="Velocity" label="Velocity"> |
964 | <on_click function="Advanced.ToggleHUDInfo" | 979 | <on_click function="Advanced.ToggleHUDInfo" |
965 | userdata="velocity" /> | 980 | userdata="velocity" /> |
@@ -1027,12 +1042,12 @@ | |||
1027 | 1042 | ||
1028 | <!-- RENDERING --> | 1043 | <!-- RENDERING --> |
1029 | 1044 | ||
1030 | <menu name="Rendering" drop_shadow="true" | 1045 | <menu label="Rendering" name="Rendering" drop_shadow="true" |
1031 | opaque="true" tear_off="true"> | 1046 | mouse_opaque="false" opaque="true" tear_off="true"> |
1032 | 1047 | ||
1033 | <!-- TYPES --> | 1048 | <!-- TYPES --> |
1034 | <menu name="Types" drop_shadow="true" | 1049 | <menu label="Types" name="Types" drop_shadow="true" |
1035 | opaque="true" tear_off="true"> | 1050 | mouse_opaque="false" opaque="true" tear_off="true"> |
1036 | <menu_item_check name="Simple" label="Simple" | 1051 | <menu_item_check name="Simple" label="Simple" |
1037 | shortcut="control|alt|shift|1"> | 1052 | shortcut="control|alt|shift|1"> |
1038 | <on_click function="Advanced.ToggleRenderType" | 1053 | <on_click function="Advanced.ToggleRenderType" |
@@ -1128,8 +1143,8 @@ | |||
1128 | 1143 | ||
1129 | 1144 | ||
1130 | <!-- FEATURES --> | 1145 | <!-- FEATURES --> |
1131 | <menu name="Features" drop_shadow="true" | 1146 | <menu label="Features" name="Features" drop_shadow="true" |
1132 | opaque="true" tear_off="true"> | 1147 | mouse_opaque="false" opaque="true" tear_off="true"> |
1133 | <menu_item_check name="UI" label="UI" | 1148 | <menu_item_check name="UI" label="UI" |
1134 | shortcut="alt|shift|F1"> | 1149 | shortcut="alt|shift|F1"> |
1135 | <on_click function="Advanced.ToggleFeature" | 1150 | <on_click function="Advanced.ToggleFeature" |
@@ -1191,8 +1206,8 @@ | |||
1191 | 1206 | ||
1192 | 1207 | ||
1193 | <!-- INFO DISPLAYS --> | 1208 | <!-- INFO DISPLAYS --> |
1194 | <menu name="Info Displays" drop_shadow="true" | 1209 | <menu label="Info Displays" name="Info Displays" drop_shadow="true" |
1195 | opaque="true" tear_off="true"> | 1210 | mouse_opaque="false" opaque="true" tear_off="true"> |
1196 | <menu_item_check name="Verify" label="Verify"> | 1211 | <menu_item_check name="Verify" label="Verify"> |
1197 | <on_click function="Advanced.ToggleInfoDisplay" | 1212 | <on_click function="Advanced.ToggleInfoDisplay" |
1198 | userdata="verify" /> | 1213 | userdata="verify" /> |
@@ -1318,8 +1333,8 @@ | |||
1318 | 1333 | ||
1319 | 1334 | ||
1320 | <!-- RENDER TESTS --> | 1335 | <!-- RENDER TESTS --> |
1321 | <menu name="Render Tests" drop_shadow="true" | 1336 | <menu label="Render Tests" name="Render Tests" drop_shadow="true" |
1322 | opaque="true" tear_off="true"> | 1337 | mouse_opaque="false" opaque="true" tear_off="true"> |
1323 | <menu_item_check name="Camera Offset" label="Camera Offset"> | 1338 | <menu_item_check name="Camera Offset" label="Camera Offset"> |
1324 | <on_click function="ToggleControl" | 1339 | <on_click function="ToggleControl" |
1325 | userdata="CameraOffset" /> | 1340 | userdata="CameraOffset" /> |
@@ -1463,8 +1478,8 @@ | |||
1463 | 1478 | ||
1464 | <!-- WORLD --> | 1479 | <!-- WORLD --> |
1465 | 1480 | ||
1466 | <menu name="World" drop_shadow="true" | 1481 | <menu label="World" name="World" drop_shadow="true" |
1467 | opaque="true" tear_off="true"> | 1482 | mouse_opaque="false" opaque="true" tear_off="true"> |
1468 | <!-- Disabled because you can't do this in Windlight. | 1483 | <!-- Disabled because you can't do this in Windlight. |
1469 | <menu_item_check name="Mouse Moves Sun" | 1484 | <menu_item_check name="Mouse Moves Sun" |
1470 | label="Mouse Moves Sun" | 1485 | label="Mouse Moves Sun" |
@@ -1499,9 +1514,11 @@ | |||
1499 | 1514 | ||
1500 | <!-- RLVa --> | 1515 | <!-- RLVa --> |
1501 | 1516 | ||
1502 | <menu name="RLVa" drop_shadow="true" opaque="true" tear_off="true"> | 1517 | <menu label="RLVa" name="RLVa" drop_shadow="true" |
1518 | mouse_opaque="false" opaque="true" tear_off="true"> | ||
1503 | 1519 | ||
1504 | <menu name="Debug" drop_shadow="true" opaque="true" tear_off="true"> | 1520 | <menu label="Debug" name="Debug" drop_shadow="true" |
1521 | mouse_opaque="false" opaque="true" tear_off="true"> | ||
1505 | 1522 | ||
1506 | <menu_item_check name="Show Debug Messages" | 1523 | <menu_item_check name="Show Debug Messages" |
1507 | label="Show Debug Messages"> | 1524 | label="Show Debug Messages"> |
@@ -1574,8 +1591,8 @@ | |||
1574 | 1591 | ||
1575 | <!-- UI --> | 1592 | <!-- UI --> |
1576 | 1593 | ||
1577 | <menu name="UI" drop_shadow="true" | 1594 | <menu label="UI" name="UI" drop_shadow="true" |
1578 | opaque="true" tear_off="true"> | 1595 | mouse_opaque="false" opaque="true" tear_off="true"> |
1579 | 1596 | ||
1580 | 1597 | ||
1581 | <menu_item_check name="Use default system color picker" | 1598 | <menu_item_check name="Use default system color picker" |
@@ -1735,8 +1752,8 @@ | |||
1735 | 1752 | ||
1736 | <!-- XUI --> | 1753 | <!-- XUI --> |
1737 | 1754 | ||
1738 | <menu name="XUI" drop_shadow="true" | 1755 | <menu label="XUI" name="XUI" drop_shadow="true" |
1739 | opaque="true" tear_off="true"> | 1756 | mouse_opaque="false" opaque="true" tear_off="true"> |
1740 | <menu_item_call name="Floater Test" | 1757 | <menu_item_call name="Floater Test" |
1741 | label="Floater Test"> | 1758 | label="Floater Test"> |
1742 | <on_click function="Advanced.ShowFloaterTest" | 1759 | <on_click function="Advanced.ShowFloaterTest" |
@@ -1781,11 +1798,11 @@ | |||
1781 | 1798 | ||
1782 | <!-- CHARACTER --> | 1799 | <!-- CHARACTER --> |
1783 | 1800 | ||
1784 | <menu name="Character" drop_shadow="true" | 1801 | <menu label="Character" name="Character" drop_shadow="true" |
1785 | opaque="true" tear_off="true"> | 1802 | mouse_opaque="false" opaque="true" tear_off="true"> |
1786 | 1803 | ||
1787 | <menu name="Grab Baked Texture" drop_shadow="true" | 1804 | <menu label="Grab Baked Texture" name="Grab Baked Texture" drop_shadow="true" |
1788 | opaque="true" tear_off="true"> | 1805 | mouse_opaque="false" opaque="true" tear_off="true"> |
1789 | 1806 | ||
1790 | <menu_item_call name="Iris" enabled="false" | 1807 | <menu_item_call name="Iris" enabled="false" |
1791 | label="Iris"> | 1808 | label="Iris"> |
@@ -1825,8 +1842,8 @@ | |||
1825 | </menu> | 1842 | </menu> |
1826 | 1843 | ||
1827 | <!-- CHARACTER TESTS --> | 1844 | <!-- CHARACTER TESTS --> |
1828 | <menu name="Character Tests" drop_shadow="true" | 1845 | <menu label="Character Tests" name="Character Tests" drop_shadow="true" |
1829 | opaque="true" tear_off="true"> | 1846 | mouse_opaque="false" opaque="true" tear_off="true"> |
1830 | <menu_item_call name="Appearance To XML" | 1847 | <menu_item_call name="Appearance To XML" |
1831 | label="Appearance To XML"> | 1848 | label="Appearance To XML"> |
1832 | <on_click function="Advanced.ToggleAppearanceToXML" | 1849 | <on_click function="Advanced.ToggleAppearanceToXML" |
@@ -1996,8 +2013,8 @@ | |||
1996 | 2013 | ||
1997 | <!-- CRASH --> | 2014 | <!-- CRASH --> |
1998 | 2015 | ||
1999 | <menu name="Crash" drop_shadow="true" | 2016 | <menu label="Crash" name="Crash" drop_shadow="true" |
2000 | opaque="true" tear_off="true"> | 2017 | mouse_opaque="false" opaque="true" tear_off="true"> |
2001 | <menu_item_call name="Force Bad Memory Access" | 2018 | <menu_item_call name="Force Bad Memory Access" |
2002 | label="Force Bad Memory Access"> | 2019 | label="Force Bad Memory Access"> |
2003 | <on_click function="Advanced.Crash" | 2020 | <on_click function="Advanced.Crash" |
@@ -2034,8 +2051,8 @@ | |||
2034 | 2051 | ||
2035 | <!-- NETWORK --> | 2052 | <!-- NETWORK --> |
2036 | 2053 | ||
2037 | <menu name="Network" drop_shadow="true" | 2054 | <menu label="Network" name="Network" drop_shadow="true" |
2038 | opaque="true" tear_off="true"> | 2055 | mouse_opaque="false" opaque="true" tear_off="true"> |
2039 | <menu_item_call name="Enable Message Log" | 2056 | <menu_item_call name="Enable Message Log" |
2040 | label="Enable Message Log"> | 2057 | label="Enable Message Log"> |
2041 | <on_click function="Advanced.EnableMessageLog" | 2058 | <on_click function="Advanced.EnableMessageLog" |
@@ -2071,8 +2088,8 @@ | |||
2071 | 2088 | ||
2072 | <!-- RECORDER --> | 2089 | <!-- RECORDER --> |
2073 | 2090 | ||
2074 | <menu name="Recorder" drop_shadow="true" | 2091 | <menu label="Recorder" name="Recorder" drop_shadow="true" |
2075 | opaque="true" tear_off="true"> | 2092 | mouse_opaque="false" opaque="true" tear_off="true"> |
2076 | <menu_item_check name="Full Session Logging" | 2093 | <menu_item_check name="Full Session Logging" |
2077 | label="Full Session Logging"> | 2094 | label="Full Session Logging"> |
2078 | <on_click function="ToggleControl" | 2095 | <on_click function="ToggleControl" |
@@ -2129,8 +2146,8 @@ | |||
2129 | 2146 | ||
2130 | <!-- ADMIN OPTIONS --> | 2147 | <!-- ADMIN OPTIONS --> |
2131 | 2148 | ||
2132 | <menu name="Admin Options" drop_shadow="true" | 2149 | <menu label="Admin Options" name="Admin Options" drop_shadow="true" |
2133 | opaque="true" tear_off="true"> | 2150 | mouse_opaque="false" opaque="true" tear_off="true"> |
2134 | <menu_item_check name="View Admin Options" | 2151 | <menu_item_check name="View Admin Options" |
2135 | label="View Admin Options" | 2152 | label="View Admin Options" |
2136 | shortcut="control|alt|V"> | 2153 | shortcut="control|alt|V"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/notifications.xml b/linden/indra/newview/skins/default/xui/en-us/notifications.xml index 1dcde4f..b682534 100644 --- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml +++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml | |||
@@ -1733,7 +1733,7 @@ Cannot find the region this land is in. | |||
1733 | type="alertmodal"> | 1733 | type="alertmodal"> |
1734 | Unable to buy land: | 1734 | Unable to buy land: |
1735 | 1735 | ||
1736 | Your allowed/preferred maturity level does not permit you to buy this land. You may need to your maturity level in Preferences first. | 1736 | Your allowed/preferred maturity level does not permit you to buy this land. You may need to adjust your maturity level in Preferences first. |
1737 | </notification> | 1737 | </notification> |
1738 | 1738 | ||
1739 | <notification | 1739 | <notification |
@@ -6920,44 +6920,44 @@ Typing stop packets - sends encrypted messages differently so they do not wind u | |||
6920 | type="alert"> | 6920 | type="alert"> |
6921 | The following constants are accepted in this tab: | 6921 | The following constants are accepted in this tab: |
6922 | 6922 | ||
6923 | PX -- X-axis position | 6923 | PX — X-axis position |
6924 | PY -- Y-axis position | 6924 | PY — Y-axis position |
6925 | PZ -- Z-axis position | 6925 | PZ — Z-axis position |
6926 | SX -- X-axis size | 6926 | SX — X-axis size |
6927 | SY -- Y-axis size | 6927 | SY — Y-axis size |
6928 | SZ -- Z-axis size | 6928 | SZ — Z-axis size |
6929 | RX -- X-axis rotation | 6929 | RX — X-axis rotation |
6930 | RY -- Y-axis rotation | 6930 | RY — Y-axis rotation |
6931 | RZ -- Z-axis rotation | 6931 | RZ — Z-axis rotation |
6932 | CB -- Path cut begin | 6932 | CB — Path cut begin |
6933 | CE -- Path cut end | 6933 | CE — Path cut end |
6934 | HLW -- Hollow size | 6934 | HLW — Hollow size |
6935 | SKW -- Skew | 6935 | SKW — Skew |
6936 | PB -- Slice/Dimple/Profile cut begin | 6936 | PB — Slice/Dimple/Profile cut begin |
6937 | PE -- Slice/Dimple/Profile cut end | 6937 | PE — Slice/Dimple/Profile cut end |
6938 | TB -- Twist begin | 6938 | TB — Twist begin |
6939 | TE -- Twist end | 6939 | TE — Twist end |
6940 | SHX -- X-axis top shear | 6940 | SHX — X-axis top shear |
6941 | SHY -- Y-axis top shear | 6941 | SHY — Y-axis top shear |
6942 | HLX -- X-axis hole size | 6942 | HLX — X-axis hole size |
6943 | HLY -- Y-axis hole size | 6943 | HLY — Y-axis hole size |
6944 | TPX -- X-axis taper | 6944 | TPX — X-axis taper |
6945 | TPY -- Y-axis taper | 6945 | TPY — Y-axis taper |
6946 | ROF -- Radius offset | 6946 | ROF — Radius offset |
6947 | REV -- Revolutions | 6947 | REV — Revolutions |
6948 | 6948 | ||
6949 | PI -- pi | 6949 | PI — π |
6950 | TWO_PI -- 2pi | 6950 | TWO_PI — 2π |
6951 | PI_BY_TWO -- pi/2 | 6951 | PI_BY_TWO — π/2 |
6952 | SQRT2 -- Square root of 2 | 6952 | SQRT2 — Square root of 2 |
6953 | DEG_TO_RAD -- DEG_TO_RAD conversion (pi/180) | 6953 | DEG_TO_RAD — degrees to radians (pi/180) |
6954 | RAD_TO_DEG -- RAD_TO_DEG conversion (180/pi) | 6954 | RAD_TO_DEG — radians to degrees (180/pi) |
6955 | GRAVITY -- -9.8 | 6955 | GRAVITY — -9.8 |
6956 | 6956 | ||
6957 | * -- Multiplication | 6957 | * — Multiplication |
6958 | \ -- Division | 6958 | \ — Division |
6959 | -- Addition | 6959 | — Addition |
6960 | - -- Subtraction | 6960 | - — Subtraction |
6961 | 6961 | ||
6962 | For information about this feature, click "More Info". | 6962 | For information about this feature, click "More Info". |
6963 | <url option="1" name="url"> | 6963 | <url option="1" name="url"> |
@@ -6975,18 +6975,18 @@ For information about this feature, click "More Info". | |||
6975 | type="alert"> | 6975 | type="alert"> |
6976 | The following constants are accepted in this tab: | 6976 | The following constants are accepted in this tab: |
6977 | 6977 | ||
6978 | TSU -- Repeats per face (horizontal) | 6978 | TSU — Repeats per face (horizontal) |
6979 | TSV -- Repeats per face (vertical) | 6979 | TSV — Repeats per face (vertical) |
6980 | TOU -- Offsets per face (horizontal) | 6980 | TOU — Offsets per face (horizontal) |
6981 | TOV -- Offsets per face (vertical) | 6981 | TOV — Offsets per face (vertical) |
6982 | TRNS -- Transparency | 6982 | TRNS — Transparency |
6983 | TROT -- Texture rotation | 6983 | TROT — Texture rotation |
6984 | GLOW -- Glow | 6984 | GLOW — Glow |
6985 | 6985 | ||
6986 | * -- Multiplication | 6986 | * — Multiplication |
6987 | \ -- Division | 6987 | \ — Division |
6988 | -- Addition | 6988 | — Addition |
6989 | - -- Subtraction | 6989 | - — Subtraction |
6990 | 6990 | ||
6991 | For information about this feature, click "More Info". | 6991 | For information about this feature, click "More Info". |
6992 | <url option="1" name="url"> | 6992 | <url option="1" name="url"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_login.xml b/linden/indra/newview/skins/default/xui/en-us/panel_login.xml index 35ecc6e..d60f985 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_login.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_login.xml | |||
@@ -213,6 +213,6 @@ | |||
213 | border_visible="false" border_drop_shadow_visible="false" | 213 | border_visible="false" border_drop_shadow_visible="false" |
214 | font="SansSerifSmall" mouse_opaque="true" | 214 | font="SansSerifSmall" mouse_opaque="true" |
215 | hover="true" hover_color="50 115 185"> | 215 | hover="true" hover_color="50 115 185"> |
216 | [CHANNEL] [VERSION] | 216 | [VERSION] |
217 | </text> | 217 | </text> |
218 | </panel> | 218 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml index fbd605f..b589a1d 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml | |||
@@ -1,122 +1,176 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Advanced" left="102" mouse_opaque="true" | 18 | height="408" label="Advanced" left="102" mouse_opaque="true" |
4 | name="advanced_panel" width="517"> | 19 | name="advanced_panel" width="517"> |
5 | <!-- Start organizing these when we get enough of 'em - MC --> | 20 | |
6 | <!-- The time is now! Chris Tuchs --> | ||
7 | <tab_container label="Page 2" bottom="0" height="450" left="0" mouse_opaque="false" | 21 | <tab_container label="Page 2" bottom="0" height="450" left="0" mouse_opaque="false" |
8 | name="tab2" tab_min_width="50" tab_position="top" width="495" bg_opaque_color="0,0,0,0.0"> | 22 | name="tab2" tab_min_width="50" tab_position="top" width="495" bg_opaque_color="0,0,0,0.0"> |
23 | |||
9 | 24 | ||
10 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 25 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
11 | height="408" label="Main" left="102" mouse_opaque="true" | 26 | height="408" label="Main" left="102" mouse_opaque="true" |
12 | name="main_panel" width="517"> | 27 | name="main_panel" width="517"> |
13 | <check_box bottom="-30" enabled="true" | 28 | |
29 | |||
30 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
31 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
32 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
33 | mouse_opaque="true" name="user_interface_text" v_pad="0" width="394"> | ||
34 | User Interface: | ||
35 | </text> | ||
36 | |||
37 | <check_box bottom_delta="-25" enabled="true" | ||
14 | follows="left|top" font="SansSerifSmall" height="16" | 38 | follows="left|top" font="SansSerifSmall" height="16" |
15 | initial_value="false" label="Disable login/logout screens" left="12" | 39 | initial_value="false" label="Disable login/logout screens" left_delta="30" |
16 | mouse_opaque="true" name="disable_log_screen_check" radio_style="false" | 40 | mouse_opaque="true" name="disable_log_screen_check" radio_style="false" |
17 | width="217" /> | 41 | width="217" /> |
18 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 42 | <check_box bottom_delta="0" enabled="true" follows="left|top" |
19 | font="SansSerifSmall" height="16" initial_value="false" | 43 | font="SansSerifSmall" height="16" initial_value="false" |
20 | label="Disable teleport screen" left="12" mouse_opaque="true" | 44 | label="Disable teleport screen" left="270" mouse_opaque="true" |
21 | name="disable_tp_screen_check" radio_style="false" width="217" /> | 45 | name="disable_tp_screen_check" radio_style="false" width="217" /> |
46 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
47 | font="SansSerifSmall" height="16" initial_value="false" | ||
48 | label="Show WindLight toolbar" left="50" mouse_opaque="true" | ||
49 | name="toggle_windlight_control" radio_style="false" width="237" | ||
50 | control_name="EnableWindlightRemote" /> | ||
51 | <check_box bottom_delta="-18" enabled="true" | ||
52 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
53 | label="Use legacy pie menus" left_delta="0" | ||
54 | mouse_opaque="true" name="legacy_pie_menu_checkbox" radio_style="false" | ||
55 | width="256" /> | ||
56 | |||
57 | |||
58 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
59 | height="1" left="55" name="border" width="380" /> | ||
60 | |||
61 | |||
62 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
63 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
64 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
65 | mouse_opaque="true" name="avatar_text" v_pad="0" width="394"> | ||
66 | Avatar: | ||
67 | </text> | ||
68 | |||
22 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | 69 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
23 | font="SansSerifSmall" height="16" initial_value="false" | 70 | font="SansSerifSmall" height="16" initial_value="false" |
24 | label="Show client names in nametags" left="12" mouse_opaque="true" | 71 | label="Show client names in nametags" left_delta="30" mouse_opaque="true" |
25 | name="client_name_tag_check" radio_style="false" width="160" /> | 72 | name="client_name_tag_check" radio_style="false" width="160" /> |
26 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 73 | <check_box bottom_delta="0" enabled="true" follows="left|top" |
27 | font="SansSerifSmall" height="16" initial_value="false" | 74 | font="SansSerifSmall" height="16" initial_value="false" |
28 | label="Show client names in hovertip" left_delta="0" mouse_opaque="true" | 75 | label="Show client names in hovertip" left="270" mouse_opaque="true" |
29 | name="client_name_hover_check" radio_style="false" width="160" /> | 76 | name="client_name_hover_check" radio_style="false" width="160" /> |
30 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 77 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
31 | font="SansSerifSmall" height="16" initial_value="false" | 78 | font="SansSerifSmall" height="16" initial_value="false" |
32 | label="Show your client name to others" left_delta="0" mouse_opaque="true" | 79 | label="Show your client name to others" left="50" mouse_opaque="true" |
33 | name="client_name_tag_broadcast_check" radio_style="false" width="217" /> | 80 | name="client_name_tag_broadcast_check" radio_style="false" width="217" /> |
34 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-122" | ||
35 | can_apply_immediately="true" color="0.79 0.44 0.88 1" | ||
36 | enabled="true" follows="left|top" | ||
37 | height="65" label="Imprudence" left="250" mouse_opaque="true" | ||
38 | name="client_tag_color" width="65" /> | ||
39 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
40 | font="SansSerifSmall" height="16" initial_value="false" | ||
41 | label="Show client names with color" left_delta="0" mouse_opaque="true" | ||
42 | name="client_name_color_check" radio_style="false" width="160" /> | ||
43 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
44 | font="SansSerifSmall" height="16" initial_value="false" | ||
45 | label="Enable shadows (WARNING: unstable and requires Ultra graphics)" left="12" mouse_opaque="true" | ||
46 | name="shadows_check" radio_style="false" width="217" /> | ||
47 | <text bottom_delta="-25" left="16" height="15" width="300" | ||
48 | follows="top|left"> | ||
49 | Allow region WindLight settings (LightShare): | ||
50 | </text> | ||
51 | <combo_box name="lightshare_combo" | ||
52 | bottom_delta="-2" left_delta="250" height="18" width="135" | ||
53 | allow_text_entry="false" follows="left|top"> | ||
54 | <combo_item type="string" name="never" value="0"> | ||
55 | Never | ||
56 | </combo_item> | ||
57 | <combo_item type="string" name="ask" value="1"> | ||
58 | Ask me every time | ||
59 | </combo_item> | ||
60 | <combo_item type="string" name="always" value="2"> | ||
61 | Always | ||
62 | </combo_item> | ||
63 | </combo_box> | ||
64 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
65 | font="SansSerifSmall" height="16" initial_value="false" | ||
66 | label="Use HTTP texture fetching (experimental)" left="12" mouse_opaque="true" | ||
67 | name="http_texture_check" radio_style="false" width="217" /> | ||
68 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 81 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
69 | font="SansSerifSmall" height="16" initial_value="false" | 82 | font="SansSerifSmall" height="16" initial_value="false" |
70 | label="Increase rez speed via draw distance stepping" left="12" mouse_opaque="true" | 83 | tool_tip="Toggle editing animation and standing up when entering appearance mode" |
71 | name="speed_rez_check" radio_style="false" width="217" /> | 84 | label="Animate avatar when editing appearance" left_delta="0" mouse_opaque="true" |
72 | <spinner bottom_delta="-18" decimal_digits="0" | ||
73 | tool_tip="Interval in seconds between each draw distance increment" | ||
74 | follows="left|top" height="16" increment="1" initial_val="12" | ||
75 | label="Step interval every:" label_width="105" left_delta="20" max_val="20" | ||
76 | min_val="1" mouse_opaque="true" name="speed_rez_interval_spinner" width="145" /> | ||
77 | <text bottom_delta="0" follows="top|left" height="15" left_delta="150" | ||
78 | name="speed_rez_seconds_text" width="115"> | ||
79 | seconds | ||
80 | </text> | ||
81 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
82 | font="SansSerifSmall" height="16" initial_value="false" | ||
83 | tool_tip="Toggle editing animation and standing up when entering appearance mode" | ||
84 | label="Animate avatar when editing appearance" left="12" mouse_opaque="true" | ||
85 | name="appearance_anim_check" radio_style="false" width="217" /> | 85 | name="appearance_anim_check" radio_style="false" width="217" /> |
86 | <check_box bottom_delta="-25" control_name="HeadFollowsMouse" enabled="true" | 86 | <check_box bottom_delta="-18" control_name="HeadFollowsMouse" enabled="true" |
87 | follows="left|top" font="SansSerifSmall" height="16" | 87 | follows="left|top" font="SansSerifSmall" height="16" |
88 | label="Head follows mouse" tooltip="If your avatars head follows your mouse movements" left="12" | 88 | label="Head follows mouse" tooltip="If your avatars head follows your mouse movements" left_delta="0" |
89 | mouse_opaque="true" name="head_follows_mouse_checkbox" radio_style="false" | 89 | mouse_opaque="true" name="head_follows_mouse_checkbox" radio_style="false" |
90 | width="256" /> | 90 | width="256" /> |
91 | <check_box bottom_delta="-25" enabled="true" | 91 | <check_box bottom_delta="-18" enabled="true" |
92 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
93 | label="Use legacy pie menus" left="12" | ||
94 | mouse_opaque="true" name="legacy_pie_menu_checkbox" radio_style="false" | ||
95 | width="256" /> | ||
96 | <check_box bottom_delta="-25" enabled="true" | ||
97 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | 92 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" |
98 | initial_value="false" label="Share language with objects" left="12" | 93 | initial_value="false" label="Share language with objects" left_delta="0" |
99 | mouse_opaque="true" name="language_is_public" | 94 | mouse_opaque="true" name="language_is_public" |
100 | radio_style="false" tool_tip="This lets in-world objects know your preferred language." | 95 | radio_style="false" tool_tip="This lets in-world objects know your preferred language." |
101 | width="256" /> | 96 | width="256" /> |
102 | <check_box bottom_delta="-25" enabled="true" | 97 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
98 | font="SansSerifSmall" height="16" label="Fly/land on holding up/down" | ||
99 | left_delta="0" mouse_opaque="true" name="automatic_fly" radio_style="false" | ||
100 | width="178" /> | ||
101 | <check_box bottom_delta="-18" enabled="true" | ||
102 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
103 | label="Arrow keys always move avatar when chatting" left_delta="0" | ||
104 | mouse_opaque="true" name="arrow_keys_move_avatar_check" radio_style="false" | ||
105 | width="237" /> | ||
106 | |||
107 | |||
108 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
109 | height="1" left="55" name="border" width="380" /> | ||
110 | |||
111 | |||
112 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
113 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
114 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
115 | mouse_opaque="true" name="chat_text" v_pad="0" width="394"> | ||
116 | Chat: | ||
117 | </text> | ||
118 | |||
119 | <check_box bottom_delta="-25" control_name="ScriptErrorsAsChat" enabled="true" | ||
120 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
121 | label="Show script errors and warnings as regular chat" left_delta="30" | ||
122 | mouse_opaque="true" name="script_errors_as_chat" radio_style="false" | ||
123 | width="275" /> | ||
124 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
125 | font="SansSerifSmall" height="16" initial_value="false" | ||
126 | label="Show timestamps with messages" left_delta="0" mouse_opaque="true" | ||
127 | name="show_timestamps_check" radio_style="false" width="237" /> | ||
128 | <check_box bottom_delta="-18" enabled="true" | ||
103 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | 129 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" |
104 | initial_value="false" label="Use MU* pose style chat and IM" left="12" | 130 | initial_value="false" label="Use MU* pose style chat and IM" left_delta="0" |
105 | mouse_opaque="true" name="allow_mupose" | 131 | mouse_opaque="true" name="allow_mupose" |
106 | radio_style="false" tool_tip="Use MU* pose style in chat and IM (with ':' as a synonymous to '/me ')." | 132 | radio_style="false" tool_tip="Use MU* pose style in chat and IM (with ':' as a synonymous to '/me ')." |
107 | width="256" /> | 133 | width="256" /> |
108 | <check_box bottom_delta="0" enabled="true" | 134 | <check_box bottom_delta="0" enabled="true" |
109 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | 135 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" |
110 | initial_value="false" label="Auto-close OOC (( )) chat" left_delta="250" | 136 | initial_value="false" label="Auto-close OOC (( )) chat" left="270" |
111 | mouse_opaque="true" name="auto_close_ooc" | 137 | mouse_opaque="true" name="auto_close_ooc" |
112 | radio_style="false" tool_tip="Auto-close OOC chat (i.e. add )) if not found and (( was used)." | 138 | radio_style="false" tool_tip="Auto-close OOC chat (i.e. add )) if not found and (( was used)." |
113 | width="256" /> | 139 | width="256" /> |
114 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 140 | |
115 | initial_value="false" label="Use the chatbar as a command line" left="12" | 141 | |
116 | mouse_opaque="true" name="command_line_check" radio_style="false" width="270"/> | 142 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
117 | <button bottom_delta="-20" follows="left|top" font="SansSerif" height="20" width="150" | 143 | height="1" left="55" name="border" width="380" /> |
118 | label="Chatbar Commands" name="command_line_btn" left="12" | 144 | |
119 | tool_tip="Set specific chatbar command line commands here" /> | 145 | |
146 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
147 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
148 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
149 | mouse_opaque="true" name="textbox" v_pad="0" width="394"> | ||
150 | World: | ||
151 | </text> | ||
152 | |||
153 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
154 | font="SansSerifSmall" height="16" initial_value="false" | ||
155 | label="Enable shadows (WARNING: unstable and requires Ultra graphics)" left_delta="30" mouse_opaque="true" | ||
156 | name="shadows_check" radio_style="false" width="217" /> | ||
157 | <text bottom_delta="-25" left_delta="0" height="15" width="300" | ||
158 | follows="top|left" name="lightshare_text"> | ||
159 | Allow region WindLight settings (LightShare): | ||
160 | </text> | ||
161 | <combo_box name="lightshare_combo" | ||
162 | bottom_delta="-2" left="275" height="18" width="160" | ||
163 | allow_text_entry="false" follows="left|top"> | ||
164 | <combo_item type="string" name="never" value="0"> | ||
165 | Never | ||
166 | </combo_item> | ||
167 | <combo_item type="string" name="ask" value="1"> | ||
168 | Ask me every time | ||
169 | </combo_item> | ||
170 | <combo_item type="string" name="always" value="2"> | ||
171 | Always | ||
172 | </combo_item> | ||
173 | </combo_box> | ||
120 | 174 | ||
121 | <!-- Uncomment when we start using the crash logger - MC --> | 175 | <!-- Uncomment when we start using the crash logger - MC --> |
122 | <!--<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 176 | <!--<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
@@ -138,69 +192,33 @@ | |||
138 | Never send | 192 | Never send |
139 | </combo_item> | 193 | </combo_item> |
140 | </combo_box>--> | 194 | </combo_box>--> |
195 | |||
141 | 196 | ||
142 | </panel> | 197 | </panel> |
143 | 198 | ||
144 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="SpellCheck" | 199 | |
145 | left="1" mouse_opaque="true" name="SpellCheck" width="418"> | 200 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Avatar Cloud" |
146 | <button bottom="-25" follows="left|top" font="SansSerifSmall" height="18" label="?" | ||
147 | name="EmeraldHelp_SpellCheck" tool_tip="Click here for help regarding the settings in this page." | ||
148 | right="490" width="18"/> | ||
149 | <check_box bottom="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
150 | label="Show misspelled words in red" left="12" mouse_opaque="true" name="EmeraldSpellDisplay" | ||
151 | control_name="EmeraldSpellDisplay" width="126"/> | ||
152 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" | ||
153 | name="EmSpell_txt1" width="512"> | ||
154 | Current language (dictionary): | ||
155 | </text> | ||
156 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
157 | max_chars="200" mouse_opaque="true" name="EmeraldSpellBase" width="250" | ||
158 | control_name="EmeraldSpellBase" tool_tip=""/> | ||
159 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" | ||
160 | name="EmSpell_txt3" width="512"> | ||
161 | Downloaded languages (dictionaries): | ||
162 | </text> | ||
163 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
164 | max_chars="200" mouse_opaque="true" name="EmSpell_Avail" width="250" | ||
165 | control_name="EmSpell_Avail" tool_tip=""/> | ||
166 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" label="Install" | ||
167 | name="EmSpell_Add" tool_tip="" left_delta="255" width="80"/> | ||
168 | <button bottom_delta="-22" follows="left|top" font="SansSerifSmall" height="20" label="Download More..." | ||
169 | name="EmSpell_GetMore" tool_tip="Get more dictionaries availabe online" left="12" width="250"/> | ||
170 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" | ||
171 | name="EmSpell_txt2" width="512"> | ||
172 | Additional custom languages (dictionaries): | ||
173 | </text> | ||
174 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
175 | max_chars="200" mouse_opaque="true" name="EmSpell_Installed" width="250" | ||
176 | control_name="EmSpell_Installed" tool_tip=""/> | ||
177 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" label="Remove" | ||
178 | name="EmSpell_Remove" tool_tip="" left_delta="255" width="80"/> | ||
179 | <!--<button bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="18" label="Edit Custom dictionary" | ||
180 | name="EmSpell_EditCustom" tool_tip="" left_delta="20" width="130"/>--> | ||
181 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left="12" | ||
182 | name="EmSpell_txt4" width="512"> | ||
183 | To use spellcheck, right-click a misspelled word | ||
184 | (red or otherwise) and select its replacement | ||
185 | </text> | ||
186 | <button name="ac_button" label="AutoCorrect Options..." halign="center" | ||
187 | tool_tip="Modify the AutoCorrect word list and settings" left="12" | ||
188 | bottom_delta="-50" width="180" height="20" font="SansSerifSmall" follows="left|top"/> | ||
189 | </panel> | ||
190 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Eye Candy" | ||
191 | left="1" mouse_opaque="true" filename="panel_particle_settings.xml" name="AvatarCloud" width="418"> | 201 | left="1" mouse_opaque="true" filename="panel_particle_settings.xml" name="AvatarCloud" width="418"> |
192 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 202 | |
193 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 203 | |
194 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 204 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
195 | mouse_opaque="true" name="must_be_logged_in_textbox" v_pad="0" width="394"> | 205 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" |
196 | You must be logged in to change this | 206 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" |
197 | </text> | 207 | mouse_opaque="true" name="must_be_logged_in_textbox" v_pad="0" width="394"> |
198 | <check_box bottom_delta="-4" control_name="PreviewAvatarAsCloud" enabled="true" | 208 | You must be logged in to change this |
199 | follows="left|top" font="SansSerifSmall" height="16" | 209 | </text> |
200 | label="Preview avatar as cloud" left="10" | 210 | <check_box bottom_delta="-4" control_name="PreviewAvatarAsCloud" enabled="true" |
201 | mouse_opaque="true" name="preview_cloud" | 211 | follows="left|top" font="SansSerifSmall" height="16" |
202 | radio_style="false" tool_tip="Preview avatar as cloud when already rezzed" | 212 | label="Preview avatar as cloud" left="10" |
203 | width="80" /> | 213 | mouse_opaque="true" name="preview_cloud" |
214 | radio_style="false" tool_tip="Preview avatar as cloud when already rezzed" | ||
215 | width="80" /> | ||
216 | |||
217 | |||
204 | </panel> | 218 | </panel> |
219 | |||
220 | |||
205 | </tab_container> | 221 | </tab_container> |
222 | |||
223 | |||
206 | </panel> | 224 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml index 355d7e8..5a94d6a 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml | |||
@@ -1,93 +1,121 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Audio & Video" left="102" mouse_opaque="true" | 18 | height="408" label="Audio & Video" left="102" mouse_opaque="true" |
4 | name="Media panel" width="517"> | 19 | name="Media panel" width="517"> |
20 | |||
21 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" | 23 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 24 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" |
8 | mouse_opaque="true" name="muting_text" v_pad="0" width="128"> | 25 | mouse_opaque="true" name="muting_text" v_pad="0" width="128"> |
9 | Volume: | 26 | Volume: |
10 | </text> | 27 | </text> |
11 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 28 | |
12 | bottom="-202" drop_shadow_visible="true" enabled="true" follows="left|top" | 29 | <panel border="true" bottom_delta="-180" enabled="true" filename="panel_audio.xml" |
13 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 30 | follows="left|top|right|bottom" height="180" label="Volume" left_delta="30" |
14 | mouse_opaque="true" name="streaming_prefs_text" v_pad="0" width="128"> | ||
15 | Streaming: | ||
16 | </text> | ||
17 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
18 | bottom="-315" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
19 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
20 | mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> | ||
21 | Audio: | ||
22 | </text> | ||
23 | <panel border="true" bottom="-187" enabled="true" filename="panel_audio.xml" | ||
24 | follows="left|top|right|bottom" height="180" label="Volume" left="148" | ||
25 | mouse_opaque="true" name="Volume Panel" width="260" /> | 31 | mouse_opaque="true" name="Volume Panel" width="260" /> |
26 | <check_box bottom="-205" control_name="AudioStreamingMusic" enabled="true" | 32 | |
33 | |||
34 | <view_border bevel_style="none" border_thickness="1" bottom_delta="0" follows="left|top" | ||
35 | height="1" left="55" name="border" width="380" /> | ||
36 | |||
37 | |||
38 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
39 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
40 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
41 | mouse_opaque="true" name="streaming_prefs_text" v_pad="0" width="128"> | ||
42 | Streaming: | ||
43 | </text> | ||
44 | |||
45 | <check_box bottom_delta="-25" control_name="AudioStreamingMusic" enabled="true" | ||
27 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 46 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
28 | label="Play streaming music when available (uses more bandwidth)" | 47 | label="Play streaming music when available (uses more bandwidth)" |
29 | left="142" mouse_opaque="true" name="streaming_music" radio_style="false" | 48 | left_delta="30" mouse_opaque="true" name="streaming_music" radio_style="false" |
30 | width="339" /> | 49 | width="339" /> |
31 | <check_box bottom_delta="-20" control_name="ShowStreamTitle" enabled="true" | 50 | <check_box bottom_delta="-20" control_name="ShowStreamTitle" enabled="true" |
32 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 51 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
33 | label="Show stream info in chat" left="162" mouse_opaque="true" | 52 | label="Show stream info in chat" left_delta="30" mouse_opaque="true" |
34 | name="show_stream_title" radio_style="false" width="338" /> | 53 | name="show_stream_title" radio_style="false" width="338" /> |
35 | <check_box bottom_delta="-20" control_name="AudioStreamingVideo" enabled="true" | 54 | <check_box bottom_delta="-20" control_name="AudioStreamingVideo" enabled="true" |
36 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 55 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
37 | label="Play Streaming Media When Available (uses more bandwidth)" | 56 | label="Play Streaming Media When Available (uses more bandwidth)" |
38 | left="142" mouse_opaque="true" name="streaming_video" radio_style="false" | 57 | left_delta="-30" mouse_opaque="true" name="streaming_video" radio_style="false" |
39 | width="338" /> | 58 | width="338" /> |
40 | <check_box bottom_delta="-20" control_name="ParcelMediaAutoPlayEnable" enabled="true" | 59 | <check_box bottom_delta="-20" control_name="ParcelMediaAutoPlayEnable" enabled="true" |
41 | follows="left|top" font="SansSerifSmall" height="16" | 60 | follows="left|top" font="SansSerifSmall" height="16" |
42 | initial_value="true" label="Automatically play media" left="162" | 61 | initial_value="true" label="Automatically play media" left_delta="30" |
43 | mouse_opaque="true" name="auto_streaming_video" radio_style="false" | 62 | mouse_opaque="true" name="auto_streaming_video" radio_style="false" |
44 | width="338" /> | 63 | width="338" /> |
45 | <check_box bottom_delta="-20" control_name="MediaOnAPrimUI" enabled="true" | 64 | <check_box bottom_delta="-20" control_name="MediaOnAPrimUI" enabled="true" |
46 | follows="left|top" font="SansSerifSmall" height="16" | 65 | follows="left|top" font="SansSerifSmall" height="16" |
47 | initial_value="true" label="Media helper widget" left="162" | 66 | initial_value="true" label="Media helper widget" left_delta="0" |
48 | mouse_opaque="true" name="media_helper_widget" radio_style="false" | 67 | mouse_opaque="true" name="media_helper_widget" radio_style="false" |
49 | width="338" /> | 68 | width="338" /> |
50 | <check_box bottom_delta="-20" control_name="MediaEnableFilter" enabled="true" | 69 | <check_box bottom_delta="-20" control_name="MediaEnableFilter" enabled="true" |
51 | follows="left|top" font="SansSerifSmall" height="16" | 70 | follows="left|top" font="SansSerifSmall" height="16" |
52 | initial_value="true" label="Filter media URLs" left="142" | 71 | initial_value="true" label="Filter media URLs" left_delta="-30" |
53 | mouse_opaque="true" name="enable_media_filter" radio_style="false" | 72 | mouse_opaque="true" name="enable_media_filter" radio_style="false" |
54 | width="200" /> | 73 | width="200" /> |
55 | <button name="show_media_filter" font="SansSerif" label="Media Filter Settings" halign="center" | 74 | <button name="show_media_filter" font="SansSerifSmall" label="Media Filter Settings" halign="center" |
56 | tool_tip="Edit settings and the blocked and allowed lists for the Media Filter." | 75 | tool_tip="Edit settings and the blocked and allowed lists for the Media Filter." |
57 | enabled="false" mouse_opaque="true" follows="top|right" | 76 | enabled="false" mouse_opaque="true" follows="left|top" |
58 | bottom_delta="-2" right="-15" height="20" width="180" /> | 77 | bottom_delta="-2" left="270" height="20" width="160" /> |
59 | <check_box bottom_delta="-33" control_name="MuteWhenMinimized" enabled="true" | 78 | |
79 | |||
80 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
81 | height="1" left="55" name="border" width="380" /> | ||
82 | |||
83 | |||
84 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
85 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
86 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
87 | mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> | ||
88 | Audio: | ||
89 | </text> | ||
90 | |||
91 | <check_box bottom_delta="-25" control_name="MuteWhenMinimized" enabled="true" | ||
60 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 92 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
61 | label="Mute audio when window minimized" left="142" mouse_opaque="true" | 93 | label="Mute audio when minimized" left_delta="30" mouse_opaque="true" |
62 | name="mute_when_minimized" radio_style="false" width="215" /> | 94 | name="mute_when_minimized" radio_style="false" width="215" /> |
63 | <spinner bottom_delta="-20" control_name="UISndMoneyChangeThreshold" decimal_digits="0" | 95 | <spinner bottom_delta="-20" control_name="UISndMoneyChangeThreshold" decimal_digits="0" |
64 | enabled="true" follows="left|top" height="16" increment="10" | 96 | enabled="true" follows="left|top" height="16" increment="10" |
65 | initial_val="10" label="[CURRENCY] change threshold:" label_width="158" left="148" | 97 | initial_val="10" label="[CURRENCY] sound threshhold:" label_width="138" left_delta="0" |
66 | max_val="10000" min_val="0" mouse_opaque="true" name="L$ Change Threshold" | 98 | max_val="10000" min_val="0" mouse_opaque="true" name="L$ Change Threshold" |
67 | width="212" /> | 99 | width="192" /> |
68 | <spinner bottom_delta="-20" control_name="UISndHealthReductionThreshold" | 100 | <spinner bottom_delta="-20" control_name="UISndHealthReductionThreshold" |
69 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 101 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
70 | increment="10" initial_val="20" label="Health change threshold:" | 102 | increment="10" initial_val="20" label="Health sound threshold:" |
71 | label_width="158" left="148" max_val="10000" min_val="0" | 103 | label_width="138" left_delta="0" max_val="10000" min_val="0" |
72 | mouse_opaque="true" name="Health change threshold" width="212" /> | 104 | mouse_opaque="true" name="Health change threshold" width="192" /> |
73 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 105 | <check_box bottom_delta="40" enabled="true" follows="left|top" |
74 | bottom_delta="-27" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
75 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
76 | mouse_opaque="true" name="ambient_prefs_text" v_pad="0" width="128"> | ||
77 | Ambient: | ||
78 | </text> | ||
79 | <check_box bottom_delta="-4" enabled="true" follows="left|top" | ||
80 | font="SansSerifSmall" height="16" initial_value="false" | 106 | font="SansSerifSmall" height="16" initial_value="false" |
81 | label="Enable wind generation" left="142" mouse_opaque="true" | 107 | label="Enable wind generation" left="270" mouse_opaque="true" |
82 | name="mute_wind_check" radio_style="false" width="217" /> | 108 | name="mute_wind_check" radio_style="false" width="217" /> |
83 | <slider bottom_delta="-20" control_name="AudioLevelDoppler" edit_text="true" | 109 | <slider bottom_delta="-20" control_name="AudioLevelDoppler" edit_text="true" |
84 | enabled="true" follows="left|top" height="15" increment="0.1" | 110 | enabled="true" follows="left|top" height="15" increment="0.1" |
85 | initial_val="1" label="Doppler effect:" label_width="100" left="148" | 111 | initial_val="1" label="Doppler effect:" label_width="100" left_delta="0" |
86 | max_val="2" min_val="0" mouse_opaque="true" name="Doppler Effect" | 112 | max_val="2" min_val="0" mouse_opaque="true" name="Doppler Effect" |
87 | show_text="true" width="250" /> | 113 | show_text="true" width="200" /> |
88 | <slider bottom_delta="-20" control_name="AudioLevelRolloff" edit_text="true" | 114 | <slider bottom_delta="-20" control_name="AudioLevelRolloff" edit_text="true" |
89 | enabled="true" follows="left|top" height="15" increment="0.1" | 115 | enabled="true" follows="left|top" height="15" increment="0.1" |
90 | initial_val="1" label="Rolloff factor:" label_width="100" left="148" | 116 | initial_val="1" label="Rolloff factor:" label_width="100" left_delta="0" |
91 | max_val="2" min_val="0" mouse_opaque="true" name="Rolloff Factor" | 117 | max_val="2" min_val="0" mouse_opaque="true" name="Rolloff Factor" |
92 | show_text="true" width="250" /> | 118 | show_text="true" width="200" /> |
119 | |||
120 | |||
93 | </panel> | 121 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml index 9ead3bf..e14442a 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml | |||
@@ -1,196 +1,358 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Chat" left="102" mouse_opaque="true" name="chat" | 18 | height="408" label="Chat" left="102" mouse_opaque="true" name="chat" |
4 | width="517"> | 19 | width="517"> |
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 20 | |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 21 | <tab_container bottom="0" height="450" left="0" mouse_opaque="false" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 22 | name="chattab2" tab_min_width="50" tab_position="top" width="495" bg_opaque_color="0,0,0,0.0"> |
8 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> | 23 | |
9 | Font Size: | 24 | |
10 | </text> | 25 | <!-- CHAT OPTIONS PANEL --> |
11 | <radio_group bottom="-40" draw_border="true" enabled="true" | 26 | |
12 | follows="left|top" height="30" left="148" mouse_opaque="true" | 27 | |
13 | name="chat_font_size" width="331"> | 28 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
14 | <radio_item type="string" length="1" bottom="-24" enabled="true" height="16" left="0" mouse_opaque="true" | 29 | height="408" label="Chat & IMs" left="102" mouse_opaque="true" |
15 | name="radio" width="98"> | 30 | name="chat_panel" width="517"> |
16 | Small | 31 | |
17 | </radio_item> | 32 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
18 | <radio_item type="string" length="1" bottom="-24" enabled="true" height="16" left="110" mouse_opaque="true" | 33 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
19 | name="radio2" width="98"> | 34 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
20 | Medium | 35 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> |
21 | </radio_item> | 36 | Chat Text Size: |
22 | <radio_item type="string" length="1" bottom="-24" enabled="true" height="16" left="220" mouse_opaque="true" | 37 | </text> |
23 | name="radio3" width="98"> | 38 | |
24 | Large | 39 | <combo_box allow_text_entry="false" bottom_delta="-25" enabled="true" follows="left|top" |
25 | </radio_item> | 40 | height="16" left_delta="30" max_chars="100" mouse_opaque="true" |
26 | </radio_group> | 41 | name="chat_font_size" width="160"> |
27 | 42 | <combo_item type="string" length="1" enabled="true" name="0" value="0"> | |
28 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 43 | Small |
29 | bottom_delta="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | 44 | </combo_item> |
30 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 45 | <combo_item type="string" length="1" enabled="true" name="1" value="1"> |
31 | mouse_opaque="false" name="text_translate_chat" v_pad="0" width="128"> | 46 | Medium |
32 | Translate Chat: | 47 | </combo_item> |
33 | </text> | 48 | <combo_item type="string" length="1" enabled="true" name="2" value="2"> |
34 | <check_box bottom_delta="-3" control_name="TranslateChat" enabled="true" follows="left|top" | 49 | Large |
35 | font="SansSerifSmall" height="16" initial_value="false" | 50 | </combo_item> |
36 | label="Use machine translation while chatting (powered by Google)" left="148" mouse_opaque="true" | 51 | </combo_box> |
37 | name="translate_chat" radio_style="false" width="237" /> | 52 | |
38 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 53 | |
39 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" | 54 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
40 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="149" | 55 | height="1" left="55" name="border" width="380" /> |
41 | mouse_opaque="false" name="text_translate_chat" v_pad="0" width="160"> | 56 | |
42 | Translate into this language: | 57 | |
43 | </text> | 58 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
44 | <combo_box allow_text_entry="true" bottom_delta="-5" enabled="true" | 59 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
45 | follows="left|top" height="16" left_delta="183" max_chars="135" | 60 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
46 | mouse_opaque="true" name="translate_language_combobox" width="146"> | 61 | mouse_opaque="false" name="text_box3" v_pad="0" width="135"> |
47 | <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> | 62 | Chat Console: |
48 | System Default | 63 | </text> |
49 | </combo_item> | 64 | <spinner bottom_delta="-25" control_name="ChatPersistTime" decimal_digits="0" |
50 | <combo_item type="string" length="1" enabled="true" name="English" value="en"> | 65 | enabled="true" follows="left|top" height="16" increment="1" |
51 | English | 66 | initial_val="10" label="Fade chat after" label_width="80" left_delta="30" |
52 | </combo_item> | 67 | max_val="60" min_val="2" mouse_opaque="true" name="fade_chat_time" |
53 | 68 | width="130" /> | |
54 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> | 69 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
55 | 70 | bottom_delta="6" drop_shadow_visible="true" enabled="true" | |
56 | <combo_item type="string" length="1" enabled="true" name="Danish" value="da"> | 71 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
57 | Dansk (Danish) | 72 | height="10" left_delta="135" mouse_opaque="false" name="text_box4" v_pad="0" |
58 | </combo_item> | 73 | width="80"> |
59 | <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> | 74 | seconds and |
60 | Deutsch (German) | 75 | </text> |
61 | </combo_item> | 76 | <spinner bottom_delta="-6" decimal_digits="0" |
62 | <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> | 77 | enabled="true" follows="left|top" height="16" increment="1" |
63 | Español (Spanish) | 78 | initial_val="10" left_delta="82" max_val="50" min_val="1" mouse_opaque="true" |
64 | </combo_item> | 79 | name="max_chat_count" width="60" /> |
65 | <combo_item type="string" length="1" enabled="true" name="French" value="fr"> | 80 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
66 | Français (French) | 81 | bottom_delta="6" drop_shadow_visible="true" enabled="true" |
67 | </combo_item> | 82 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
68 | <combo_item type="string" length="1" enabled="true" name="Italian" value="it"> | 83 | height="10" left_delta="65" mouse_opaque="false" name="text_box5" v_pad="0" |
69 | Italiano (Italian) | 84 | width="60"> |
70 | </combo_item> | 85 | lines |
71 | <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu"> | 86 | </text> |
72 | Magyar (Hungarian) | 87 | |
73 | </combo_item> | 88 | <slider bottom_delta="-25" can_edit_text="false" control_name="ConsoleBackgroundOpacity" |
74 | <combo_item type="string" length="1" enabled="true" name="Dutch" value="nl"> | 89 | decimal_digits="3" enabled="true" follows="left|top" height="12" |
75 | Nederlands (Dutch) | 90 | increment="0.05" initial_val="1" label="Console opacity:" left="50" max_val="1" |
76 | </combo_item> | 91 | min_val="0" mouse_opaque="true" name="console_opacity" show_text="true" |
77 | <combo_item type="string" length="1" enabled="true" name="Polish" value="pl"> | 92 | value="0.4" width="200" /> |
78 | Polski (Polish) | 93 | <check_box bottom_delta="-4" control_name="ChatFullWidth" enabled="true" |
79 | </combo_item> | 94 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
80 | <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> | 95 | label="Full screen width (requires restart)" left="270" |
81 | Portugués (Portuguese) | 96 | mouse_opaque="true" name="chat_full_width_check" radio_style="false" |
82 | </combo_item> | 97 | width="239" /> |
83 | <combo_item type="string" length="1" enabled="true" name="Russian" value="ru"> | 98 | |
84 | РуÑÑкий (Russian) | 99 | |
85 | </combo_item> | 100 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
86 | <combo_item type="string" length="1" enabled="true" name="Turkish" value="tr"> | 101 | height="1" left="55" name="border" width="380" /> |
87 | Türkçe (Turkish) | 102 | |
88 | </combo_item> | 103 | |
89 | <combo_item type="string" length="1" enabled="true" name="Ukrainian" value="uk"> | 104 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
90 | УкраїнÑька (Ukrainian) | 105 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
91 | </combo_item> | 106 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
92 | <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> | 107 | mouse_opaque="false" name="text_box7" v_pad="0" width="128"> |
93 | ä¸æ–‡ (简体) (Chinese) | 108 | Chat Bubbles: |
94 | </combo_item> | 109 | </text> |
95 | <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> | 110 | |
96 | 日本語 (Japanese) | 111 | <check_box bottom_delta="-25" control_name="UseChatBubbles" enabled="true" follows="left|top" |
97 | </combo_item> | 112 | font="SansSerifSmall" height="16" initial_value="false" |
98 | <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> | 113 | label="Show chat bubbles" left_delta="30" mouse_opaque="true" |
99 | í•œêµì–´ (Korean) | 114 | name="bubble_text_chat" radio_style="false" width="237" /> |
100 | </combo_item> | 115 | <check_box bottom_delta="-0" control_name="UseLocalChatBubbles" enabled="true" follows="left|top" |
101 | </combo_box> | 116 | font="SansSerifSmall" height="16" initial_value="false" |
117 | label="Show local chat and bubbles" left="270" mouse_opaque="true" | ||
118 | name="local_bubble_text_chat" radio_style="false" width="237" /> | ||
119 | <slider bottom_delta="-20" can_edit_text="false" control_name="ChatBubbleOpacity" | ||
120 | decimal_digits="3" enabled="true" follows="left|top" height="12" | ||
121 | increment="0.05" initial_val="1" label="Bubble opacity:" left="50" max_val="1" | ||
122 | min_val="0" mouse_opaque="true" name="bubble_chat_opacity" show_text="true" | ||
123 | value="0.5" width="200" /> | ||
124 | |||
125 | |||
126 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
127 | height="1" left="55" name="border" width="380" /> | ||
128 | |||
129 | |||
130 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
131 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
132 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
133 | mouse_opaque="false" name="text_box6" v_pad="0" width="135"> | ||
134 | Chatbar: | ||
135 | </text> | ||
136 | |||
137 | <check_box bottom_delta="-25" enabled="true" | ||
138 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
139 | label="Close chatbar after hitting return" left_delta="30" mouse_opaque="true" | ||
140 | name="close_chat_on_return_check" radio_style="false" width="237" /> | ||
141 | <check_box bottom_delta="0" enabled="true" follows="left|top" | ||
142 | font="SansSerifSmall" height="16" initial_value="false" | ||
143 | label="Show custom chat channel" left="270" mouse_opaque="true" | ||
144 | name="toggle_channel_control" radio_style="false" width="237" /> | ||
145 | <check_box bottom_delta="-20" enabled="true" | ||
146 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | ||
147 | label="Play typing animation when chatting" left="50" mouse_opaque="true" | ||
148 | name="play_typing_animation" radio_style="false" width="237" /> | ||
149 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
150 | initial_value="false" label="Use the chatbar as a command line" left="50" | ||
151 | mouse_opaque="true" name="command_line_check" radio_style="false" width="250"/> | ||
152 | <button bottom_delta="-2" follows="left|top" font="SansSerifSmall" height="20" width="160" | ||
153 | label="Chatbar Commands" name="command_line_btn" left="270" | ||
154 | tool_tip="Set specific chatbar command line commands here" /> | ||
155 | |||
156 | |||
157 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
158 | height="1" left="55" name="border" width="380" /> | ||
159 | |||
160 | |||
161 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
162 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
163 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
164 | mouse_opaque="false" name="Instant Messages:" v_pad="0" width="135"> | ||
165 | Instant Messages: | ||
166 | </text> | ||
167 | |||
168 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" | ||
169 | height="16" initial_value="false" label="Send offline IMs to email ([EMAIL])" | ||
170 | left_delta="30" mouse_opaque="true" name="send_im_to_email" radio_style="false" | ||
171 | width="350" /> | ||
172 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
173 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
174 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
175 | mouse_opaque="false" name="show_ims_label" v_pad="0" width="100"> | ||
176 | Show IMs in: | ||
177 | </text> | ||
178 | <check_box bottom_delta="-6" enabled="true" follows="left|top" | ||
179 | font="SansSerifSmall" height="16" initial_value="false" | ||
180 | label="Main chat" left="150" mouse_opaque="true" | ||
181 | name="include_im_in_chat_console" radio_style="false" width="100" /> | ||
182 | <check_box bottom_delta="0" enabled="true" follows="left|top" | ||
183 | font="SansSerifSmall" height="16" initial_value="false" | ||
184 | label="Local Chat window" left="270" mouse_opaque="true" | ||
185 | name="include_im_in_chat_history" radio_style="false" width="100" /> | ||
186 | <check_box bottom_delta="-20" enabled="true" | ||
187 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
188 | label="Vertical IM tabs (requires restart)" left="50" mouse_opaque="true" | ||
189 | name="vertical-imtabs-toggle" radio_style="false" width="270" /> | ||
190 | |||
191 | |||
192 | </panel> | ||
193 | |||
194 | |||
195 | <!-- SPELL CHECKING AND TRANSLATE PANEL --> | ||
196 | |||
197 | |||
198 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Spell Checking & Translate" | ||
199 | left="1" mouse_opaque="true" name="spell_check_tab" width="418"> | ||
200 | |||
201 | |||
202 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
203 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
204 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
205 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> | ||
206 | Spell Checking: | ||
207 | </text> | ||
208 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
209 | label="Enable spell checking" left_delta="30" mouse_opaque="true" name="EmeraldSpellDisplay" | ||
210 | control_name="EmeraldSpellDisplay" width="126"/> | ||
211 | <text bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16" left_delta="30" | ||
212 | name="EmSpell_txt4" width="512"> | ||
213 | Right-click a misspelled/red-underlined word to correct | ||
214 | </text> | ||
215 | |||
216 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left_delta="-30" | ||
217 | name="EmSpell_txt1" width="512"> | ||
218 | Current language (dictionary): | ||
219 | </text> | ||
220 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
221 | max_chars="200" mouse_opaque="true" name="EmeraldSpellBase" width="250" | ||
222 | control_name="EmeraldSpellBase" tool_tip=""/> | ||
223 | |||
224 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" | ||
225 | name="EmSpell_txt3" width="512"> | ||
226 | Downloaded languages (dictionaries): | ||
227 | </text> | ||
228 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
229 | max_chars="200" mouse_opaque="true" name="EmSpell_Avail" width="250" | ||
230 | control_name="EmSpell_Avail" tool_tip=""/> | ||
231 | |||
232 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" label="Install" | ||
233 | name="EmSpell_Add" tool_tip="" left_delta="255" width="110"/> | ||
234 | |||
235 | <button bottom_delta="-22" follows="left|top" font="SansSerifSmall" height="20" label="Download More..." | ||
236 | name="EmSpell_GetMore" tool_tip="Get more dictionaries availabe online" left="50" width="250"/> | ||
237 | |||
238 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="16" left_delta="0" | ||
239 | name="EmSpell_txt2" width="512"> | ||
240 | Additional custom languages (dictionaries): | ||
241 | </text> | ||
242 | <combo_box allow_text_entry="false" bottom_delta="-20" left_delta="0" follows="left|top" height="18" | ||
243 | max_chars="200" mouse_opaque="true" name="EmSpell_Installed" width="250" | ||
244 | control_name="EmSpell_Installed" tool_tip=""/> | ||
245 | |||
246 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" label="Remove" | ||
247 | name="EmSpell_Remove" tool_tip="" left_delta="255" width="110"/> | ||
248 | |||
249 | <!--<button bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="18" label="Edit Custom dictionary" | ||
250 | name="EmSpell_EditCustom" tool_tip="" left_delta="20" width="130"/>--> | ||
251 | |||
252 | <button name="ac_button" label="AutoCorrect..." halign="center" | ||
253 | tool_tip="Modify the AutoCorrect word list and settings" left="50" | ||
254 | bottom_delta="-40" width="160" height="20" font="SansSerifSmall" follows="left|top"/> | ||
255 | |||
256 | |||
257 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
258 | height="1" left="55" name="border" width="380" /> | ||
259 | |||
260 | |||
261 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
262 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
263 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
264 | mouse_opaque="false" name="text_translate" v_pad="0" width="128"> | ||
265 | Translate Chat: | ||
266 | </text> | ||
267 | <check_box bottom_delta="-25" control_name="TranslateChat" enabled="true" follows="left|top" | ||
268 | font="SansSerifSmall" height="16" initial_value="false" | ||
269 | label="Use machine translation while chatting (powered by Google)" left_delta="30" mouse_opaque="true" | ||
270 | name="translate_chat" radio_style="false" width="237" /> | ||
271 | |||
272 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
273 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
274 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
275 | mouse_opaque="false" name="text_translate_chat" v_pad="0" width="160"> | ||
276 | Translate into this language: | ||
277 | </text> | ||
278 | |||
279 | <combo_box allow_text_entry="false" bottom_delta="-5" enabled="true" | ||
280 | follows="left|top" height="16" left="270" max_chars="135" | ||
281 | mouse_opaque="true" name="translate_language_combobox" width="160"> | ||
282 | <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> | ||
283 | System Default | ||
284 | </combo_item> | ||
285 | <combo_item type="string" length="1" enabled="true" name="English" value="en"> | ||
286 | English | ||
287 | </combo_item> | ||
288 | |||
289 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> | ||
290 | |||
291 | <combo_item type="string" length="1" enabled="true" name="Danish" value="da"> | ||
292 | Dansk (Danish) | ||
293 | </combo_item> | ||
294 | <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> | ||
295 | Deutsch (German) | ||
296 | </combo_item> | ||
297 | <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> | ||
298 | Español (Spanish) | ||
299 | </combo_item> | ||
300 | <combo_item type="string" length="1" enabled="true" name="French" value="fr"> | ||
301 | Français (French) | ||
302 | </combo_item> | ||
303 | <combo_item type="string" length="1" enabled="true" name="Italian" value="it"> | ||
304 | Italiano (Italian) | ||
305 | </combo_item> | ||
306 | <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu"> | ||
307 | Magyar (Hungarian) | ||
308 | </combo_item> | ||
309 | <combo_item type="string" length="1" enabled="true" name="Dutch" value="nl"> | ||
310 | Nederlands (Dutch) | ||
311 | </combo_item> | ||
312 | <combo_item type="string" length="1" enabled="true" name="Polish" value="pl"> | ||
313 | Polski (Polish) | ||
314 | </combo_item> | ||
315 | <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> | ||
316 | Portugués (Portuguese) | ||
317 | </combo_item> | ||
318 | <combo_item type="string" length="1" enabled="true" name="Russian" value="ru"> | ||
319 | РуÑÑкий (Russian) | ||
320 | </combo_item> | ||
321 | <combo_item type="string" length="1" enabled="true" name="Turkish" value="tr"> | ||
322 | Türkçe (Turkish) | ||
323 | </combo_item> | ||
324 | <combo_item type="string" length="1" enabled="true" name="Ukrainian" value="uk"> | ||
325 | УкраїнÑька (Ukrainian) | ||
326 | </combo_item> | ||
327 | <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> | ||
328 | ä¸æ–‡ (简体) (Chinese) | ||
329 | </combo_item> | ||
330 | <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> | ||
331 | 日本語 (Japanese) | ||
332 | </combo_item> | ||
333 | <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> | ||
334 | í•œêµì–´ (Korean) | ||
335 | </combo_item> | ||
336 | </combo_box> | ||
337 | |||
338 | |||
339 | <button bottom="-20" follows="left|top" font="SansSerifSmall" height="18" label="?" | ||
340 | name="EmeraldHelp_SpellCheck" tool_tip="Click here for help regarding the settings in this page." | ||
341 | right="490" width="18"/> | ||
342 | |||
343 | |||
344 | </panel> | ||
345 | |||
346 | |||
347 | </tab_container> | ||
348 | |||
102 | 349 | ||
103 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 350 | <string name="log_in_to_change"> |
104 | bottom_delta="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | 351 | log in to change |
105 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 352 | </string> |
106 | mouse_opaque="false" name="text_box3" v_pad="0" width="135"> | 353 | <string name="default_email_used"> |
107 | Chat Console: | 354 | using default address |
108 | </text> | 355 | </string> |
109 | <spinner bottom_delta="-8" control_name="ChatPersistTime" decimal_digits="0" | ||
110 | enabled="true" follows="left|top" height="16" increment="1" | ||
111 | initial_val="10" label="Fade chat after" label_width="80" left="148" | ||
112 | max_val="60" min_val="2" mouse_opaque="true" name="fade_chat_time" | ||
113 | width="130" /> | ||
114 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
115 | bottom_delta="6" drop_shadow_visible="true" enabled="true" | ||
116 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
117 | height="10" left="282" mouse_opaque="false" name="text_box4" v_pad="0" | ||
118 | width="80"> | ||
119 | (seconds) | ||
120 | </text> | ||
121 | <spinner bottom_delta="-6" decimal_digits="0" | ||
122 | enabled="true" follows="left|top" height="16" increment="1" | ||
123 | initial_val="10" left="340" max_val="50" min_val="1" mouse_opaque="true" | ||
124 | name="max_chat_count" width="60" /> | ||
125 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
126 | bottom_delta="6" drop_shadow_visible="true" enabled="true" | ||
127 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
128 | height="10" left="405" mouse_opaque="false" name="text_box5" v_pad="0" | ||
129 | width="60"> | ||
130 | (# lines) | ||
131 | </text> | ||
132 | <slider bottom_delta="-25" can_edit_text="false" control_name="ConsoleBackgroundOpacity" | ||
133 | decimal_digits="3" enabled="true" follows="left|top" height="12" | ||
134 | increment="0.05" initial_val="1" label="Console opacity:" left="148" max_val="1" | ||
135 | min_val="0" mouse_opaque="true" name="console_opacity" show_text="true" | ||
136 | value="0.4" width="225" /> | ||
137 | <check_box bottom_delta="-25" control_name="ChatFullWidth" enabled="true" | ||
138 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
139 | label="Use full screen width (requires restart)" left="148" | ||
140 | mouse_opaque="true" name="chat_full_width_check" radio_style="false" | ||
141 | width="239" /> | ||
142 | |||
143 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
144 | bottom_delta="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
145 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
146 | mouse_opaque="false" name="text_box7" v_pad="0" width="128"> | ||
147 | Chat Bubbles: | ||
148 | </text> | ||
149 | <check_box bottom_delta="-8" control_name="UseChatBubbles" enabled="true" follows="left|top" | ||
150 | font="SansSerifSmall" height="16" initial_value="false" | ||
151 | label="Show chat bubbles" left="148" mouse_opaque="true" | ||
152 | name="bubble_text_chat" radio_style="false" width="237" /> | ||
153 | <check_box bottom_delta="-0" control_name="UseLocalChatBubbles" enabled="true" follows="left|top" | ||
154 | font="SansSerifSmall" height="16" initial_value="false" | ||
155 | label="Show local chat and bubbles" left="288" mouse_opaque="true" | ||
156 | name="local_bubble_text_chat" radio_style="false" width="237" /> | ||
157 | <slider bottom_delta="-20" can_edit_text="false" control_name="ChatBubbleOpacity" | ||
158 | decimal_digits="3" enabled="true" follows="left|top" height="12" | ||
159 | increment="0.05" initial_val="1" label="Bubble opacity:" left="148" max_val="1" | ||
160 | min_val="0" mouse_opaque="true" name="bubble_chat_opacity" show_text="true" | ||
161 | value="0.5" width="225" /> | ||
162 | 356 | ||
163 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
164 | bottom_delta="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
165 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
166 | mouse_opaque="false" name="text_box6" v_pad="0" width="135"> | ||
167 | Miscellaneous: | ||
168 | </text> | ||
169 | <check_box bottom_delta="-8" enabled="true" | ||
170 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
171 | label="Close chat bar after hitting return" left="148" mouse_opaque="true" | ||
172 | name="close_chat_on_return_check" radio_style="false" width="237" /> | ||
173 | <check_box bottom_delta="-18" enabled="true" | ||
174 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
175 | label="Arrow keys always move avatar when chatting" left="148" | ||
176 | mouse_opaque="true" name="arrow_keys_move_avatar_check" radio_style="false" | ||
177 | width="237" /> | ||
178 | <check_box bottom_delta="-18" enabled="true" | ||
179 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
180 | label="Show timestamps in Local Chat" left="148" mouse_opaque="true" | ||
181 | name="show_timestamps_check" radio_style="false" width="237" /> | ||
182 | <check_box bottom_delta="-18" control_name="ScriptErrorsAsChat" enabled="true" | ||
183 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
184 | label="Show script errors and warnings as regular chat" left="148" | ||
185 | mouse_opaque="true" name="script_errors_as_chat" radio_style="false" | ||
186 | width="275" /> | ||
187 | <check_box bottom_delta="-18" enabled="true" | ||
188 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | ||
189 | label="Play typing animation when chatting" left="148" mouse_opaque="true" | ||
190 | name="play_typing_animation" radio_style="false" width="237" /> | ||
191 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | ||
192 | font="SansSerifSmall" height="16" initial_value="false" | ||
193 | label="Show custom chat channel" left="148" mouse_opaque="true" | ||
194 | name="toggle_channel_control" radio_style="false" width="237" /> | ||
195 | 357 | ||
196 | </panel> | 358 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_colors.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_colors.xml index 40a75a6..9b55822 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_colors.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_colors.xml | |||
@@ -1,115 +1,152 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Chat Colors" left="102" mouse_opaque="true" name="colors" | 18 | height="408" label="Colors" left="102" mouse_opaque="true" name="colors" |
4 | width="517"> | 19 | width="517"> |
20 | |||
21 | |||
22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
23 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
24 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
25 | mouse_opaque="true" name="effects_color_textbox" v_pad="0" width="394"> | ||
26 | Selection Beam Color: | ||
27 | </text> | ||
28 | |||
29 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-80" | ||
30 | can_apply_immediately="false" color="1 1 1 1" | ||
31 | enabled="true" follows="left|top" height="65" label="" left="50" | ||
32 | mouse_opaque="true" name="effect_color_swatch" | ||
33 | tool_tip="Click to open Color Picker" width="65" /> | ||
34 | |||
35 | |||
36 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
37 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
38 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="270" | ||
39 | mouse_opaque="true" name="client_tag_color_textbox" v_pad="0" width="394"> | ||
40 | Client Tag Color: | ||
41 | </text> | ||
42 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-80" | ||
43 | can_apply_immediately="true" color="0.79 0.44 0.88 1" | ||
44 | enabled="true" follows="left|top" | ||
45 | height="65" label="Imprudence" left_delta="30" mouse_opaque="true" | ||
46 | name="client_tag_color" width="65" /> | ||
47 | <check_box bottom_delta="45" enabled="true" follows="left|top" | ||
48 | font="SansSerifSmall" height="16" initial_value="false" | ||
49 | label="Color client tags" left_delta="76" mouse_opaque="true" | ||
50 | name="client_name_color_check" radio_style="false" width="160" /> | ||
51 | |||
52 | |||
53 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-60" follows="left|top" | ||
54 | height="1" left="55" name="border" width="380" /> | ||
55 | |||
56 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 57 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 58 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 59 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
8 | mouse_opaque="false" name="text_box2" v_pad="0" width="128"> | 60 | mouse_opaque="false" name="text_box2" v_pad="0" width="128"> |
9 | Chat Colors: | 61 | Chat: |
10 | </text> | 62 | </text> |
11 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 63 | |
64 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-80" | ||
12 | can_apply_immediately="true" color="1 1 1 1" control_name="UserChatColor" | 65 | can_apply_immediately="true" color="1 1 1 1" control_name="UserChatColor" |
13 | enabled="true" follows="left|top" height="65" label="Your chat" left="120" | 66 | enabled="true" follows="left|top" height="65" label="Your chat" left="50" |
14 | mouse_opaque="true" name="user" width="65" /> | 67 | mouse_opaque="true" name="user" width="65" /> |
15 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 68 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
16 | can_apply_immediately="true" color="1 1 1 1" control_name="AgentChatColor" | 69 | can_apply_immediately="true" color="1 1 1 1" control_name="AgentChatColor" |
17 | enabled="true" follows="left|top" height="65" label="Others' chat" left_delta="76" | 70 | enabled="true" follows="left|top" height="65" label="Others' chat" left_delta="76" |
18 | mouse_opaque="true" name="agent" width="65" /> | 71 | mouse_opaque="true" name="agent" width="65" /> |
19 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 72 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
20 | can_apply_immediately="true" color="0.6 0.6 1 1" | 73 | can_apply_immediately="true" color="0.6 0.6 1 1" |
21 | enabled="true" follows="left|top" height="65" label="IMs" left_delta="76" | 74 | enabled="true" follows="left|top" height="65" label="IMs" left_delta="76" |
22 | mouse_opaque="true" name="im" width="65" /> | 75 | mouse_opaque="true" name="im" width="65" /> |
23 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 76 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
24 | can_apply_immediately="true" color="0.8 1 1 1" | 77 | can_apply_immediately="true" color="0.8 1 1 1" |
25 | enabled="true" follows="left|top" | 78 | enabled="true" follows="left|top" |
26 | height="65" label="System" left_delta="76" mouse_opaque="true" | 79 | height="65" label="System" left_delta="76" mouse_opaque="true" |
27 | name="system" width="65" /> | 80 | name="system" width="65" /> |
28 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-75" | 81 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
29 | can_apply_immediately="true" color="0.82 0.82 0.99 1" | 82 | can_apply_immediately="true" color="0.82 0.82 0.99 1" |
30 | control_name="ScriptErrorColor" enabled="true" follows="left|top" | 83 | control_name="ScriptErrorColor" enabled="true" follows="left|top" |
31 | height="65" label="Script errors" left_delta="76" mouse_opaque="true" | 84 | height="65" label="Script errors" left_delta="76" mouse_opaque="true" |
32 | name="script_error" width="65" /> | 85 | name="script_error" width="65" /> |
33 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 86 | |
87 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-70" | ||
34 | can_apply_immediately="true" color="0.7 0.9 0.7 1" | 88 | can_apply_immediately="true" color="0.7 0.9 0.7 1" |
35 | control_name="ObjectChatColor" enabled="true" follows="left|top" | 89 | control_name="ObjectChatColor" enabled="true" follows="left|top" |
36 | height="65" label="Object chat" left="120" mouse_opaque="true" | 90 | height="65" label="Object chat" left="50" mouse_opaque="true" |
37 | name="objects" width="65" /> | 91 | name="objects" width="65" /> |
38 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 92 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
39 | can_apply_immediately="true" color="0.7 0.9 0.7 1" | 93 | can_apply_immediately="true" color="0.7 0.9 0.7 1" |
40 | control_name="ObjectIMColor" enabled="true" follows="left|top" | 94 | control_name="ObjectIMColor" enabled="true" follows="left|top" |
41 | height="65" label="Object IMs" left_delta="76" mouse_opaque="true" | 95 | height="65" label="Object IMs" left_delta="76" mouse_opaque="true" |
42 | name="object_ims" width="65" /> | 96 | name="object_ims" width="65" /> |
43 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 97 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
44 | can_apply_immediately="true" color="0.7 0.9 0.7 1" | 98 | can_apply_immediately="true" color="0.7 0.9 0.7 1" |
45 | enabled="true" follows="left|top" | 99 | enabled="true" follows="left|top" |
46 | height="65" label="Owner chat" left_delta="76" mouse_opaque="true" name="owner" | 100 | height="65" label="Owner chat" left_delta="76" mouse_opaque="true" name="owner" |
47 | width="65" /> | 101 | width="65" /> |
48 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 102 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
49 | can_apply_immediately="true" color="0 0 0 1" | 103 | can_apply_immediately="true" color="0 0 0 1" |
50 | enabled="true" follows="left|top" | 104 | enabled="true" follows="left|top" |
51 | height="65" label="Bubble chat" left_delta="76" mouse_opaque="true" | 105 | height="65" label="Bubble chat" left_delta="76" mouse_opaque="true" |
52 | name="background" width="65" /> | 106 | name="background" width="65" /> |
53 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-146" | 107 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="0" |
54 | can_apply_immediately="true" color="0.6 0.6 1 1" | 108 | can_apply_immediately="true" color="0.6 0.6 1 1" |
55 | enabled="true" follows="left|top" height="65" | 109 | enabled="true" follows="left|top" height="65" |
56 | label="Links" left_delta="76" mouse_opaque="true" name="links" width="65" /> | 110 | label="Links" left_delta="76" mouse_opaque="true" name="links" width="65" /> |
111 | |||
112 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-85" | ||
113 | can_apply_immediately="true" color="1 1 1 1" control_name="FriendsChatColor" | ||
114 | enabled="true" follows="left|top" height="65" label="Friends" left="50" | ||
115 | mouse_opaque="true" name="FriendsChatColor" width="65" /> | ||
116 | <check_box bottom_delta="45" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
117 | initial_value="true" label="Highlight chat from friends" left_delta="76" | ||
118 | mouse_opaque="true" name="HighlightFriendsChat" radio_style="false" width="270"/> | ||
57 | 119 | ||
58 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 120 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-121" |
59 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 121 | can_apply_immediately="true" color="1 1 1 1" control_name="OwnNameChatColor" |
60 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 122 | enabled="true" follows="left|top" height="65" label="Your name" left="50" |
61 | mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | 123 | mouse_opaque="true" name="OwnNameChatColor" width="65" /> |
62 | Line Highlighting: | 124 | <check_box bottom_delta="45" enabled="true" follows="left|top" |
63 | </text> | 125 | font="SansSerifSmall" height="16" initial_value="true" |
64 | 126 | label="Highlight local chat containing your name and/or nicknames:" left_delta="76" mouse_opaque="true" | |
65 | <check_box bottom_delta="-7" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 127 | name="HighlightOwnNameInChat" radio_style="false" width="217" /> |
66 | initial_value="true" label="Highlight chat from friends" left="120" | ||
67 | mouse_opaque="true" name="HighlightFriendsChat" radio_style="false" width="270"/> | ||
68 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-70" | ||
69 | can_apply_immediately="true" color="1 1 1 1" control_name="FriendsChatColor" | ||
70 | enabled="true" follows="left|top" height="65" label="Friends" left_delta="20" | ||
71 | mouse_opaque="true" name="FriendsChatColor" width="65" /> | ||
72 | |||
73 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | ||
74 | font="SansSerifSmall" height="16" initial_value="true" | ||
75 | label="Highlight local chat containing your name" left="120" mouse_opaque="true" | ||
76 | name="HighlightOwnNameInChat" radio_style="false" width="217" /> | ||
77 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 128 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" |
78 | initial_value="true" label="Highlight group chat containing your name" left_delta="0" | 129 | initial_value="true" label="Highlight group chat containing your name and/or nicknames:" left_delta="0" |
79 | mouse_opaque="true" name="HighlightOwnNameInIM" radio_style="false" width="270"/> | 130 | mouse_opaque="true" name="HighlightOwnNameInIM" radio_style="false" width="270"/> |
80 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-70" | ||
81 | can_apply_immediately="true" color="1 1 1 1" control_name="OwnNameChatColor" | ||
82 | enabled="true" follows="left|top" height="65" label="Your name" left_delta="20" | ||
83 | mouse_opaque="true" name="OwnNameChatColor" width="65" /> | ||
84 | 131 | ||
85 | <text bottom_delta="-30" follows="left|top" font="SansSerifSmall" height="20" | 132 | |
86 | left="140" name="nick01_text" width="150"> | 133 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-22" |
87 | Highlight nickname 1: | 134 | enabled="true" follows="left|top" font="SansSerif" label="Nickname 1" |
88 | </text> | 135 | handle_edit_keys_directly="true" height="18" left_delta="0" |
89 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="3" | ||
90 | enabled="true" follows="left|top" font="SansSerif" | ||
91 | handle_edit_keys_directly="true" height="20" left_delta="125" | ||
92 | max_length="50" mouse_opaque="true" name="nick01" | 136 | max_length="50" mouse_opaque="true" name="nick01" |
93 | select_all_on_focus_received="true" width="160" word_wrap="false" /> | 137 | select_all_on_focus_received="true" width="110" word_wrap="false" /> |
94 | 138 | ||
95 | <text bottom_delta="-25" follows="left|top" font="SansSerifSmall" height="20" | 139 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="0" |
96 | left="140" name="nick02_text" width="150"> | 140 | enabled="true" follows="left|top" font="SansSerif" label="Nickname 2" |
97 | Highlight nickname 2: | 141 | handle_edit_keys_directly="true" height="18" left_delta="120" |
98 | </text> | ||
99 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="3" | ||
100 | enabled="true" follows="left|top" font="SansSerif" | ||
101 | handle_edit_keys_directly="true" height="20" left_delta="125" | ||
102 | max_length="50" mouse_opaque="true" name="nick02" | 142 | max_length="50" mouse_opaque="true" name="nick02" |
103 | select_all_on_focus_received="true" width="160" word_wrap="false" /> | 143 | select_all_on_focus_received="true" width="110" word_wrap="false" /> |
104 | 144 | ||
105 | <text bottom_delta="-25" follows="left|top" font="SansSerifSmall" height="20" | 145 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="0" |
106 | left="140" name="nick03_text" width="150"> | 146 | enabled="true" follows="left|top" font="SansSerif" label="Nickname 3" |
107 | Highlight nickname 3: | 147 | handle_edit_keys_directly="true" height="18" left_delta="120" |
108 | </text> | ||
109 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="3" | ||
110 | enabled="true" follows="left|top" font="SansSerif" | ||
111 | handle_edit_keys_directly="true" height="20" left_delta="125" | ||
112 | max_length="50" mouse_opaque="true" name="nick03" | 148 | max_length="50" mouse_opaque="true" name="nick03" |
113 | select_all_on_focus_received="true" width="160" word_wrap="false" /> | 149 | select_all_on_focus_received="true" width="110" word_wrap="false" /> |
150 | |||
114 | 151 | ||
115 | </panel> | 152 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml index c64ce9f..cd896b8 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_fonts.xml | |||
@@ -1,15 +1,35 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | 2 | ||
3 | <panel name="font_panel" label="Fonts" | 3 | <!-- |
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
17 | <panel name="fonts_panel" label="Fonts" | ||
4 | bottom="-409" left="102" height="408" width="517" | 18 | bottom="-409" left="102" height="408" width="517" |
5 | border="true" follows="left|top|right|bottom"> | 19 | border="true" follows="left|top|right|bottom"> |
6 | 20 | ||
7 | <text bottom="-25" left="10" height="15" width="300"> | 21 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
8 | User interface font (requires restart): | 22 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" |
23 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
24 | mouse_opaque="true" name="fontselect" v_pad="0" width="128" font-style="BOLD|SHADOW"> | ||
25 | Select UI Font: | ||
26 | </text> | ||
27 | <text font="SansSerifSmall" bottom="-22" left_delta="80" height="12" name="(requires restart)" width="300"> | ||
28 | (requires restart) | ||
9 | </text> | 29 | </text> |
10 | 30 | ||
11 | <radio_group name="fonts" draw_border="false" | 31 | <radio_group name="fonts" draw_border="false" |
12 | top="-30" left="20" bottom="0" right="-20" | 32 | top="-30" left="50" bottom="0" right="-20" |
13 | follows="top|left|bottom|right"> | 33 | follows="top|left|bottom|right"> |
14 | 34 | ||
15 | <radio_item name="DroidSans" bottom="-20" left="0" height="20"> | 35 | <radio_item name="DroidSans" bottom="-20" left="0" height="20"> |
@@ -48,12 +68,37 @@ | |||
48 | 68 | ||
49 | 69 | ||
50 | <spinner name="font_mult" label="Font size multiplier:" label_width="130" | 70 | <spinner name="font_mult" label="Font size multiplier:" label_width="130" |
51 | bottom="-280" left="20" height="16" width="180" follows="left|top" | 71 | bottom_delta="150" left="50" height="16" width="180" follows="left|top" |
52 | decimal_digits="2" increment="0.01" max_val="3.0" min_val="0.1" | 72 | decimal_digits="2" increment="0.01" max_val="3.0" min_val="0.1" |
53 | tool_tip="Multiply all font sizes by this amount." /> | 73 | tool_tip="Multiply all font sizes by this amount." /> |
54 | 74 | ||
55 | <check_box name="font_round" follows="left|top" | 75 | <check_box name="font_round" follows="left|top" |
56 | bottom="-300" left="20" height="16" width="300" | 76 | bottom_delta="-20" left_delta="0" height="16" width="300" |
57 | label="Force integer font sizes (may fix blurry fonts)" /> | 77 | label="Force integer font sizes (may fix blurry fonts)" /> |
58 | 78 | ||
79 | |||
80 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
81 | height="1" left="55" name="border" width="380" /> | ||
82 | |||
83 | |||
84 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
85 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
86 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
87 | mouse_opaque="true" name="UI Size:" v_pad="0" width="128" font-style="BOLD|SHADOW"> | ||
88 | UI Size: | ||
89 | </text> | ||
90 | |||
91 | <slider bottom_delta="22" can_edit_text="true" label_width="0" label="" | ||
92 | decimal_digits="3" enabled="true" height="16" increment="0.001" | ||
93 | initial_val="1" left="50" max_val="1.4" min_val="0.75" mouse_opaque="true" | ||
94 | name="ui_scale_slider" show_text="true" value="1" width="160" /> | ||
95 | <button bottom_delta="-48" enabled="true" follows="left|top" | ||
96 | font="SansSerifSmall" halign="center" height="20" label="Reset to Default" | ||
97 | left="270" mouse_opaque="true" | ||
98 | name="reset_ui_size" scale_image="true" width="160" /> | ||
99 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | ||
100 | font="SansSerifSmall" height="16" initial_value="false" | ||
101 | label="Use resolution independent scale" left="50" mouse_opaque="true" | ||
102 | name="ui_auto_scale" radio_style="false" width="256" /> | ||
103 | |||
59 | </panel> | 104 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml index 8b354b4..e96def5 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml | |||
@@ -1,18 +1,35 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="General" left="102" mouse_opaque="true" | 18 | height="408" label="General" left="102" mouse_opaque="true" |
4 | name="general_panel" width="517"> | 19 | name="general_panel" width="517"> |
20 | |||
21 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 23 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 24 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
8 | mouse_opaque="true" name="start_location_textbox" v_pad="0" width="394"> | 25 | mouse_opaque="true" name="start_location_textbox" v_pad="0" width="394"> |
9 | Start Location: | 26 | Default Start Location: |
10 | </text> | 27 | </text> |
11 | <string name="region_name_prompt"> | 28 | <string name="region_name_prompt"> |
12 | <Type region name> | 29 | <Type region name> |
13 | </string> | 30 | </string> |
14 | <combo_box name="default_location_combo" | 31 | <combo_box name="default_location_combo" |
15 | bottom="-22" left="155" height="16" width="150" | 32 | bottom_delta="-25" left="50" height="16" width="160" |
16 | follows="left|top" font="SansSerifSmall" | 33 | follows="left|top" font="SansSerifSmall" |
17 | mouse_opaque="true" allow_text_entry="true" max_chars="128"> | 34 | mouse_opaque="true" allow_text_entry="true" max_chars="128"> |
18 | <combo_item name="MyHome" value="My Home"> | 35 | <combo_item name="MyHome" value="My Home"> |
@@ -26,153 +43,122 @@ | |||
26 | </combo_item> | 43 | </combo_item> |
27 | </combo_box> | 44 | </combo_box> |
28 | <button name="grid_btn" label="Grid Manager" | 45 | <button name="grid_btn" label="Grid Manager" |
29 | bottom_delta="-3" left="330" height="20" width="100" | 46 | bottom_delta="-3" left="270" height="20" width="160" |
30 | follows="left|top" font="SansSerifSmall" halign="center" | 47 | follows="left|top" font="SansSerifSmall" halign="center" |
31 | mouse_opaque="true" scale_image="TRUE" /> | 48 | mouse_opaque="true" scale_image="TRUE" /> |
32 | <check_box bottom="-44" enabled="true" follows="left|top" | 49 | <check_box bottom_delta="-17" enabled="true" follows="left|top" |
33 | font="SansSerifSmall" height="16" initial_value="true" | 50 | font="SansSerifSmall" height="16" initial_value="true" |
34 | label="Show start location at login screen" left="151" mouse_opaque="true" | 51 | label="Show at login screen" left="50" mouse_opaque="true" |
35 | name="show_location_checkbox" radio_style="false" width="256" /> | 52 | name="show_location_checkbox" radio_style="false" width="256" /> |
53 | |||
54 | |||
55 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
56 | height="1" left="55" name="border" width="380" /> | ||
57 | |||
58 | |||
36 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 59 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
37 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | 60 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
38 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 61 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
39 | mouse_opaque="true" name="show_names_textbox" v_pad="0" width="394"> | 62 | mouse_opaque="true" name="show_names_textbox" v_pad="0" width="394"> |
40 | Nametags: | 63 | Nametags: |
41 | </text> | 64 | </text> |
42 | <combo_box bottom_delta="0" follows="left|top" height="18" left="155" | 65 | <combo_box bottom_delta="-30" follows="left|top" height="18" left="50" |
43 | mouse_opaque="true" name="fade_out_combobox" width="146"> | 66 | mouse_opaque="true" name="fade_out_combobox" width="160"> |
44 | <combo_item name="Never" value="Never"> | 67 | <combo_item name="Never" value="Never"> |
45 | Never show | 68 | Never show nametags |
46 | </combo_item> | 69 | </combo_item> |
47 | <combo_item name="Show Temporarily" value="Show Temporarily"> | 70 | <combo_item name="Show Temporarily" value="Show Temporarily"> |
48 | Temporarily show | 71 | Briefly show nametags |
49 | </combo_item> | 72 | </combo_item> |
50 | <combo_item name="Always" value="Always"> | 73 | <combo_item name="Always" value="Always"> |
51 | Always show | 74 | Always show nametags |
52 | </combo_item> | 75 | </combo_item> |
53 | </combo_box> | 76 | </combo_box> |
54 | <check_box bottom_delta="0" follows="left|top" | 77 | <check_box bottom_delta="0" follows="left|top" |
55 | font="SansSerifSmall" height="16" initial_value="true" | 78 | font="SansSerifSmall" height="16" initial_value="false" |
56 | label="Small avatar names" left="330" name="small_avatar_names_checkbox" | 79 | label="Large nametags" left="270" name="large_avatar_names_checkbox" |
57 | width="200" /> | 80 | width="200" /> |
58 | <check_box bottom_delta="-20" follows="left|top" | 81 | <check_box bottom_delta="-20" follows="left|top" |
59 | font="SansSerifSmall" height="16" initial_value="false" | 82 | font="SansSerifSmall" height="16" initial_value="false" |
60 | label="Hide my name on my screen" left="151" name="show_my_name_checkbox" | 83 | label="Hide my nametag" left="50" name="show_my_name_checkbox" |
61 | width="200" /> | 84 | width="200" /> |
62 | 85 | <check_box bottom_delta="0" follows="left|top" | |
63 | <check_box bottom_delta="-20" follows="left|top" | ||
64 | font="SansSerifSmall" height="16" initial_value="false" | 86 | font="SansSerifSmall" height="16" initial_value="false" |
65 | label="Highlight friends tags" left="151" name="highlight_friends_checkbox" | 87 | label="Bold my friends' nametags" left="270" name="highlight_friends_checkbox" |
66 | width="200" /> | 88 | width="200" /> |
67 | <text type="string" length="1" bottom_delta="-24" follows="left|top" font="SansSerifSmall" h_pad="0" | 89 | <check_box bottom_delta="-20" follows="left|top" |
68 | halign="left" height="16" left="10" name="Display_Names_textbox" v_pad="0" | 90 | font="SansSerifSmall" height="16" initial_value="false" |
69 | width="394"> | 91 | label="Hide group titles in nametags" left="50" mouse_opaque="true" |
92 | name="show_all_title_checkbox" radio_style="false" width="256" /> | ||
93 | |||
94 | |||
95 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
96 | height="1" left="55" name="border" width="380" /> | ||
97 | |||
98 | |||
99 | <text type="string" length="1" bottom_delta="-20" follows="left|top" font="SansSerifSmall" h_pad="0" | ||
100 | halign="left" height="10" left="20" name="Display_Names_textbox" v_pad="0" | ||
101 | width="394" font-style="BOLD|SHADOW"> | ||
70 | Display Names: | 102 | Display Names: |
71 | </text> | 103 | </text> |
72 | <radio_group name="displaynames" draw_border="false" | 104 | <radio_group name="displaynames" draw_border="false" |
73 | bottom_delta="0" left_delta="60" height="18" | 105 | bottom_delta="-30" left="50" height="18" |
74 | follows="top|left" | 106 | follows="top|left" |
75 | control_name="DisplayNamesUsage"> | 107 | control_name="DisplayNamesUsage"> |
76 | <radio_item name="0" bottom_delta="-8" left_delta="40" height="18"> | 108 | <radio_item name="0" bottom_delta="-8" left="0" height="18"> |
77 | Legacy Names | 109 | Show legacy names |
78 | </radio_item> | 110 | </radio_item> |
79 | <radio_item name="1" bottom_delta="0" left_delta="50" height="18"> | 111 | <radio_item name="1" bottom_delta="0" left_delta="70" height="18"> |
80 | Display Names | 112 | Show display names |
81 | </radio_item> | 113 | </radio_item> |
82 | <radio_item name="2" bottom_delta="0" left_delta="50" height="18"> | 114 | <radio_item name="2" bottom_delta="0" left_delta="70" height="18"> |
83 | Show Both | 115 | Show Both |
84 | </radio_item> | 116 | </radio_item> |
85 | </radio_group> | 117 | </radio_group> |
86 | <check_box bottom_delta="-20" follows="left|top" control_name="LegacyNamesForFriends" | 118 | <check_box bottom_delta="-17" follows="left|top" control_name="LegacyNamesForFriends" |
87 | font="SansSerifSmall" height="16" initial_value="false" | 119 | font="SansSerifSmall" height="16" initial_value="false" |
88 | label="Show legacy names for friends" left="151" name="legacy_friends_checkbox" | 120 | label="Show legacy names for friends" left="50" name="legacy_friends_checkbox" |
89 | width="200" /> | 121 | width="200" /> |
90 | <text type="string" length="1" bottom_delta="-24" follows="left|top" font="SansSerifSmall" h_pad="0" | 122 | |
91 | halign="left" height="16" left="10" name="group_titles_textbox" v_pad="0" | 123 | |
92 | width="394"> | 124 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
93 | Group Titles: | 125 | height="1" left="55" name="border" width="380" /> |
94 | </text> | 126 | |
95 | <check_box bottom_delta="0" follows="left|top" | 127 | |
96 | font="SansSerifSmall" height="16" initial_value="false" | ||
97 | label="Hide all group titles" left="151" mouse_opaque="true" | ||
98 | name="show_all_title_checkbox" radio_style="false" width="256" /> | ||
99 | <check_box bottom_delta="0" follows="left|top" | ||
100 | font="SansSerifSmall" height="16" initial_value="false" | ||
101 | label="Hide my group title" left="330" name="show_my_title_checkbox" | ||
102 | radio_style="false" width="256" /> | ||
103 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
104 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
105 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | ||
106 | mouse_opaque="true" name="effects_color_textbox" v_pad="0" width="394"> | ||
107 | Selection Beam Color: | ||
108 | </text> | ||
109 | <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom_delta="-44" | ||
110 | can_apply_immediately="false" color="1 1 1 1" | ||
111 | enabled="true" follows="left|top" height="55" label="" left="153" | ||
112 | mouse_opaque="true" name="effect_color_swatch" | ||
113 | tool_tip="Click to open Color Picker" width="45" /> | ||
114 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 128 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
115 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" | 129 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
116 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 130 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
117 | mouse_opaque="true" name="UI Size:" v_pad="0" width="128"> | 131 | mouse_opaque="true" name="afk_textbox" v_pad="0" width="394"> |
118 | UI Size: | 132 | Idle Away: |
119 | </text> | 133 | </text> |
120 | <slider bottom_delta="42" can_edit_text="true" | 134 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
121 | decimal_digits="3" enabled="true" height="16" increment="0.001" | 135 | font="SansSerifSmall" height="16" initial_value="false" |
122 | initial_val="1" left="148" max_val="1.4" min_val="0.75" mouse_opaque="true" | 136 | label="Go Away/AFK when idle after" left="50" mouse_opaque="true" |
123 | name="ui_scale_slider" show_text="true" value="1" width="220" /> | 137 | name="afk_timeout_checkbox" radio_style="false" width="256" /> |
124 | <button bottom_delta="-48" enabled="true" follows="left|top" | 138 | <spinner bottom_delta="0" decimal_digits="0" enabled="true" |
125 | font="SansSerif" halign="center" height="22" label="Reset" | 139 | follows="left|top" height="16" increment="1" initial_val="5" |
126 | label_selected="Reset" left_delta="226" mouse_opaque="true" | 140 | label="" label_width="0" left="270" max_val="360" |
127 | name="reset_ui_size" scale_image="true" width="80" /> | 141 | min_val="1" mouse_opaque="true" name="afk_timeout_spinner" width="50" /> |
128 | <check_box bottom_delta="-14" enabled="true" follows="left|top" | ||
129 | font="SansSerifSmall" height="16" initial_value="false" | ||
130 | label="Use resolution independent scale" left="151" mouse_opaque="true" | ||
131 | name="ui_auto_scale" radio_style="false" width="256" /> | ||
132 | <spinner bottom_delta="-24" decimal_digits="0" enabled="true" | ||
133 | follows="left|top" height="16" increment="1" initial_val="300" | ||
134 | label="Away Timeout:" label_width="141" left="10" max_val="600" | ||
135 | min_val="30" mouse_opaque="true" name="afk_timeout_spinner" width="202" /> | ||
136 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
137 | bottom_delta="6" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
138 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="220" | ||
139 | mouse_opaque="true" name="seconds_textbox" v_pad="0" width="128"> | ||
140 | seconds | ||
141 | </text> | ||
142 | <check_box bottom_delta="-5" enabled="true" follows="left|top" | ||
143 | font="SansSerifSmall" height="16" initial_value="false" | ||
144 | label="Go Away/AFK when idle" left="330" mouse_opaque="true" | ||
145 | name="afk_timeout_checkbox" radio_style="false" width="256" /> | ||
146 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 142 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
147 | bottom_delta="-27" drop_shadow_visible="true" enabled="true" follows="left|top" | 143 | bottom_delta="5" drop_shadow_visible="true" enabled="true" follows="left|top" |
148 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 144 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="55" |
149 | mouse_opaque="true" name="Mini-Map Notify:" v_pad="0" width="128"> | 145 | mouse_opaque="true" name="minutes_textbox" v_pad="0" width="128"> |
150 | Mini-Map Notify: | 146 | minute(s) |
151 | </text> | 147 | </text> |
152 | <check_box bottom_delta="-4" enabled="true" | 148 | |
153 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 149 | |
154 | label="Entering chat range" left="151" | 150 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
155 | mouse_opaque="true" name="mini_map_notify_chat" radio_style="false" | 151 | height="1" left="55" name="border" width="380" /> |
156 | width="256" /> | 152 | |
157 | <check_box bottom_delta="0" enabled="true" | 153 | |
158 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
159 | label="Entering sim" left="330" | ||
160 | mouse_opaque="true" name="mini_map_notify_sim" radio_style="false" | ||
161 | width="256" /> | ||
162 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 154 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
163 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | 155 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
164 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 156 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
165 | mouse_opaque="true" name="maturity_desired_label" v_pad="0" width="394"> | 157 | mouse_opaque="true" name="maturity_desired_label" v_pad="0" width="394"> |
166 | Rating: | 158 | Access Content Rated: |
167 | </text> | ||
168 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
169 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
170 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="151" | ||
171 | mouse_opaque="true" name="maturity_desired_prompt" v_pad="0" width="394"> | ||
172 | I want to access content rated: | ||
173 | </text> | 159 | </text> |
174 | <combo_box bottom_delta="-6" follows="left|top" height="18" left="315" | 160 | <combo_box bottom_delta="-25" follows="left|top" height="18" left="50" |
175 | mouse_opaque="true" name="maturity_desired_combobox" width="150"> | 161 | mouse_opaque="true" name="maturity_desired_combobox" width="160"> |
176 | <combo_item name="Desired_Adult" value="42"> | 162 | <combo_item name="Desired_Adult" value="42"> |
177 | PG, Mature and Adult | 163 | PG, Mature and Adult |
178 | </combo_item> | 164 | </combo_item> |
@@ -185,100 +171,108 @@ | |||
185 | </combo_box> | 171 | </combo_box> |
186 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 172 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
187 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" | 173 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" |
188 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="315" | 174 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
189 | mouse_opaque="true" name="maturity_desired_textbox" v_pad="0" width="150"> | 175 | mouse_opaque="true" name="maturity_desired_textbox" v_pad="0" width="160"> |
190 | PG only | 176 | PG only |
191 | </text> | 177 | </text> |
192 | 178 | ||
179 | |||
180 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
181 | height="1" left="55" name="border" width="380" /> | ||
182 | |||
193 | 183 | ||
194 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 184 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
195 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | 185 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
196 | font="SansSerifSmall" h_pad="0" halign="left" height="18" left="10" | 186 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
197 | mouse_opaque="true" name="time_textbox" v_pad="0" width="394"> | ||
198 | Clock: | ||
199 | </text> | ||
200 | <combo_box allow_text_entry="false" bottom_delta="0" enabled="true" follows="left|top" | ||
201 | height="18" left="153" max_chars="20" mouse_opaque="true" | ||
202 | name="time_combobox" width="146"> | ||
203 | <combo_item type="string" name="12HourTime" value="PST 12"> | ||
204 | 12-hour PST/PDT | ||
205 | </combo_item> | ||
206 | <combo_item type="string" name="24HourTime" value="PST 24"> | ||
207 | 24-hour PST/PDT | ||
208 | </combo_item> | ||
209 | <combo_item type="string" name="UTCTime" value="UTC"> | ||
210 | UTC | ||
211 | </combo_item> | ||
212 | </combo_box> | ||
213 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
214 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
215 | font="SansSerifSmall" h_pad="0" halign="left" height="18" left="10" | ||
216 | mouse_opaque="true" name="language_textbox" v_pad="0" width="394"> | 187 | mouse_opaque="true" name="language_textbox" v_pad="0" width="394"> |
217 | Language: | 188 | Language: |
218 | </text> | 189 | </text> |
219 | <combo_box allow_text_entry="false" bottom_delta="0" enabled="true" | 190 | <combo_box allow_text_entry="false" bottom_delta="-30" enabled="true" |
220 | follows="left|top" height="18" left="153" max_chars="135" | 191 | follows="left|top" height="18" left="50" max_chars="135" |
221 | mouse_opaque="true" name="language_combobox" width="146"> | 192 | mouse_opaque="true" name="language_combobox" width="160"> |
222 | <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> | 193 | <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> |
223 | System Default | 194 | System Default |
224 | </combo_item> | 195 | </combo_item> |
225 | <combo_item type="string" length="1" enabled="true" name="English" value="en-us"> | 196 | <combo_item type="string" length="1" enabled="true" name="English" value="en-us"> |
226 | English | 197 | English |
227 | </combo_item> | 198 | </combo_item> |
228 | 199 | ||
229 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> | 200 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> |
230 | 201 | ||
231 | <combo_item type="string" length="1" enabled="true" name="Danish" value="da"> | 202 | <combo_item type="string" length="1" enabled="true" name="Danish" value="da"> |
232 | Dansk (Danish) - Beta | 203 | Dansk (Danish) - Beta |
233 | </combo_item> | 204 | </combo_item> |
234 | <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> | 205 | <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> |
235 | Deutsch (German) - Beta | 206 | Deutsch (German) - Beta |
236 | </combo_item> | 207 | </combo_item> |
237 | <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> | 208 | <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> |
238 | Español (Spanish) - Beta | 209 | Español (Spanish) - Beta |
239 | </combo_item> | 210 | </combo_item> |
240 | <combo_item type="string" length="1" enabled="true" name="French" value="fr"> | 211 | <combo_item type="string" length="1" enabled="true" name="French" value="fr"> |
241 | Français (French) - Beta | 212 | Français (French) - Beta |
242 | </combo_item> | 213 | </combo_item> |
243 | <combo_item type="string" length="1" enabled="true" name="Italian" value="it"> | 214 | <combo_item type="string" length="1" enabled="true" name="Italian" value="it"> |
244 | Italiano (Italian) - Beta | 215 | Italiano (Italian) - Beta |
245 | </combo_item> | 216 | </combo_item> |
246 | <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu"> | 217 | <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu"> |
247 | Magyar (Hungarian) - Beta | 218 | Magyar (Hungarian) - Beta |
248 | </combo_item> | 219 | </combo_item> |
249 | <combo_item type="string" length="1" enabled="true" name="Dutch" value="nl"> | 220 | <combo_item type="string" length="1" enabled="true" name="Dutch" value="nl"> |
250 | Nederlands (Dutch) - Beta | 221 | Nederlands (Dutch) - Beta |
251 | </combo_item> | 222 | </combo_item> |
252 | <combo_item type="string" length="1" enabled="true" name="Polish" value="pl"> | 223 | <combo_item type="string" length="1" enabled="true" name="Polish" value="pl"> |
253 | Polski (Polish) - Beta | 224 | Polski (Polish) - Beta |
254 | </combo_item> | 225 | </combo_item> |
255 | <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> | 226 | <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> |
256 | Portugués (Portuguese) - Beta | 227 | Portugués (Portuguese) - Beta |
257 | </combo_item> | 228 | </combo_item> |
258 | <combo_item type="string" length="1" enabled="true" name="Russian" value="ru"> | 229 | <combo_item type="string" length="1" enabled="true" name="Russian" value="ru"> |
259 | РуÑÑкий (Russian) - Beta | 230 | РуÑÑкий (Russian) - Beta |
260 | </combo_item> | 231 | </combo_item> |
261 | <combo_item type="string" length="1" enabled="true" name="Turkish" value="tr"> | 232 | <combo_item type="string" length="1" enabled="true" name="Turkish" value="tr"> |
262 | Türkçe (Turkish) - Beta | 233 | Türkçe (Turkish) - Beta |
263 | </combo_item> | 234 | </combo_item> |
264 | <combo_item type="string" length="1" enabled="true" name="Ukrainian" value="uk"> | 235 | <combo_item type="string" length="1" enabled="true" name="Ukrainian" value="uk"> |
265 | УкраїнÑька (Ukrainian) - Beta | 236 | УкраїнÑька (Ukrainian) - Beta |
266 | </combo_item> | 237 | </combo_item> |
267 | <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> | 238 | <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> |
268 | ä¸æ–‡ (简体) (Chinese) - Beta | 239 | ä¸æ–‡ (简体) (Chinese) - Beta |
269 | </combo_item> | 240 | </combo_item> |
270 | <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> | 241 | <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> |
271 | 日本語 (Japanese) - Beta | 242 | 日本語 (Japanese) - Beta |
272 | </combo_item> | 243 | </combo_item> |
273 | <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> | 244 | <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> |
274 | í•œêµì–´ (Korean) - Beta | 245 | í•œêµì–´ (Korean) - Beta |
275 | </combo_item> | 246 | </combo_item> |
276 | </combo_box> | 247 | </combo_box> |
277 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 248 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
278 | bottom_delta="0" drop_shadow_visible="true" enabled="true" | 249 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" |
279 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 250 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
280 | height="18" left_delta="150" mouse_opaque="true" name="language_textbox2" | 251 | height="18" left="50" mouse_opaque="true" name="language_textbox2" |
281 | v_pad="0" width="400"> | 252 | v_pad="0" width="380"> |
282 | (requires restart for full effect) | 253 | (requires restart) |
283 | </text> | 254 | </text> |
255 | |||
256 | |||
257 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
258 | bottom_delta="50" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
259 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="270" font-style="BOLD|SHADOW" | ||
260 | mouse_opaque="true" name="time_textbox" v_pad="0" width="394"> | ||
261 | Inworld Clock: | ||
262 | </text> | ||
263 | <combo_box allow_text_entry="false" bottom_delta="-30" enabled="true" follows="left|top" | ||
264 | height="18" left="300" max_chars="20" mouse_opaque="true" | ||
265 | name="time_combobox" width="160"> | ||
266 | <combo_item type="string" name="12HourTime" value="PST 12"> | ||
267 | 12-hour PST/PDT | ||
268 | </combo_item> | ||
269 | <combo_item type="string" name="24HourTime" value="PST 24"> | ||
270 | 24-hour PST/PDT | ||
271 | </combo_item> | ||
272 | <combo_item type="string" name="UTCTime" value="UTC"> | ||
273 | UTC | ||
274 | </combo_item> | ||
275 | </combo_box> | ||
276 | |||
277 | |||
284 | </panel> | 278 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml index fe19929..2e92689 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_graphics1.xml | |||
@@ -1,75 +1,92 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Graphics" left="102" mouse_opaque="true" | 18 | height="408" label="Graphics" left="102" mouse_opaque="true" |
4 | name="Display panel" width="517"> | 19 | name="Display panel" width="517"> |
20 | |||
21 | |||
5 | <button bottom="-22" follows="left|top" font="SansSerif" height="18" label="?" | 22 | <button bottom="-22" follows="left|top" font="SansSerif" height="18" label="?" |
6 | left="470" name="GraphicsPreferencesHelpButton" width="22" /> | 23 | left="470" name="GraphicsPreferencesHelpButton" width="22" /> |
7 | <check_box bottom="-23" enabled="true" follows="left|top" font="SansSerifSmall" | 24 | |
25 | |||
26 | <text type="string" length="1" bottom="-20" follows="left|top" font="SansSerifSmall" h_pad="0" | ||
27 | halign="left" height="10" left="20" name="Display_textbox" v_pad="0" | ||
28 | width="394" font-style="BOLD|SHADOW"> | ||
29 | Display Mode: | ||
30 | </text> | ||
31 | |||
32 | |||
33 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" | ||
8 | height="16" initial_value="false" | 34 | height="16" initial_value="false" |
9 | label="Run meta-impy in a window" left="10" mouse_opaque="true" | 35 | tool_tip="If unchecked, viewer will display full-screen when logged in" |
36 | label="Windowed mode" left_delta="30" mouse_opaque="true" | ||
10 | name="windowed mode" radio_style="false" width="100" /> | 37 | name="windowed mode" radio_style="false" width="100" /> |
11 | <check_box bottom_delta="0" enabled="true" follows="left|top" | 38 | |
12 | font="SansSerifSmall" height="16" initial_value="false" | ||
13 | label="Show WindLight toolbar" left="275" mouse_opaque="true" | ||
14 | name="toggle_windlight_control" radio_style="false" width="237" | ||
15 | control_name="EnableWindlightRemote" /> | ||
16 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom="-43" | ||
17 | embedded_items="false" enabled="false" follows="left|top" | ||
18 | font="SansSerifSmall" height="20" hide_border="true" | ||
19 | hide_scrollbar="true" left="10" max_length="65535" mouse_opaque="true" | ||
20 | name="FullScreenInfo" tab_stop="false" width="350" word_wrap="true"> | ||
21 | If unchecked, viewer will display full-screen when logged in. | ||
22 | </text_editor> | ||
23 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 39 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
24 | bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top" | 40 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" |
25 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 41 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" |
26 | mouse_opaque="true" name="WindowSizeLabel" v_pad="0" width="128"> | 42 | mouse_opaque="true" name="WindowSizeLabel" v_pad="0" width="128"> |
27 | Window size: | 43 | Window size: |
28 | </text> | 44 | </text> |
29 | <combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top" | 45 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
46 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
47 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
48 | mouse_opaque="true" name="DisplayResLabel" v_pad="0" width="128"> | ||
49 | Display resolution: | ||
50 | </text> | ||
51 | <combo_box allow_text_entry="false" bottom_delta="-4" enabled="true" follows="left|top" | ||
30 | height="18" left="185" max_chars="20" mouse_opaque="true" | 52 | height="18" left="185" max_chars="20" mouse_opaque="true" |
31 | name="windowsize combo" width="150"> | 53 | name="windowsize combo" width="160"> |
32 | <combo_item type="string" length="1" enabled="true" name="800x600" value="800 x 600"> | 54 | <combo_item type="string" length="1" enabled="true" name="800x600" value="800 x 600"> |
33 | 800x600 | 55 | 800×600 |
34 | </combo_item> | 56 | </combo_item> |
35 | <combo_item type="string" length="1" enabled="true" name="720x480" value="720 x 480"> | 57 | <combo_item type="string" length="1" enabled="true" name="720x480" value="720 x 480"> |
36 | 720x480 (NTSC) | 58 | 720×480 (NTSC) |
37 | </combo_item> | 59 | </combo_item> |
38 | <combo_item type="string" length="1" enabled="true" name="768x576" value="768 x 576"> | 60 | <combo_item type="string" length="1" enabled="true" name="768x576" value="768 x 576"> |
39 | 768x576 (PAL) | 61 | 768×576 (PAL) |
40 | </combo_item> | 62 | </combo_item> |
41 | <combo_item type="string" length="1" enabled="true" name="1024x768" value="1024 x 768"> | 63 | <combo_item type="string" length="1" enabled="true" name="1024x768" value="1024 x 768"> |
42 | 1024x768 | 64 | 1024×768 |
43 | </combo_item> | 65 | </combo_item> |
44 | <combo_item type="string" length="1" enabled="true" name="1280x720" value="1280 x 720"> | 66 | <combo_item type="string" length="1" enabled="true" name="1280x720" value="1280 x 720"> |
45 | 1280x720 (HDV720) | 67 | 1280×720 (HDV720) |
46 | </combo_item> | 68 | </combo_item> |
47 | <combo_item type="string" length="1" enabled="true" name="1440x1080" value="1440 x 1080"> | 69 | <combo_item type="string" length="1" enabled="true" name="1440x1080" value="1440 x 1080"> |
48 | 1440x1080 (HDV1080) | 70 | 1440×1080 (HDV1080) |
49 | </combo_item> | 71 | </combo_item> |
50 | <combo_item type="string" length="1" enabled="true" name="1920x1080" value="1920 x 1080"> | 72 | <combo_item type="string" length="1" enabled="true" name="1920x1080" value="1920 x 1080"> |
51 | 1920x1080 (HD1080) | 73 | 1920×1080 (HD1080) |
52 | </combo_item> | 74 | </combo_item> |
53 | </combo_box> | 75 | </combo_box> |
54 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 76 | <combo_box allow_text_entry="false" bottom_delta="0" enabled="true" follows="left|top" |
55 | bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
56 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
57 | mouse_opaque="true" name="DisplayResLabel" v_pad="0" width="128"> | ||
58 | Display resolution: | ||
59 | </text> | ||
60 | <combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top" | ||
61 | height="18" left="185" max_chars="20" mouse_opaque="true" | 77 | height="18" left="185" max_chars="20" mouse_opaque="true" |
62 | name="fullscreen combo" width="150" /> | 78 | name="fullscreen combo" width="160" /> |
79 | |||
63 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 80 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
64 | bottom="-39" drop_shadow_visible="true" enabled="true" follows="left|top" | 81 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" |
65 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 82 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
66 | left="10" mouse_opaque="true" name="AspectRatioLabel1" | 83 | left="50" mouse_opaque="true" name="AspectRatioLabel1" |
67 | tool_tip="width / height" v_pad="0" width="160"> | 84 | tool_tip="width / height" v_pad="0" width="160"> |
68 | Aspect ratio: | 85 | Aspect ratio: |
69 | </text> | 86 | </text> |
70 | <combo_box allow_text_entry="true" bottom="-43" enabled="true" follows="left|top" | 87 | <combo_box allow_text_entry="true" bottom_delta="-4" enabled="true" follows="left|top" |
71 | height="16" left="185" max_chars="100" mouse_opaque="true" | 88 | height="16" left="185" max_chars="100" mouse_opaque="true" |
72 | name="aspect_ratio" tool_tip="width / height" width="150"> | 89 | name="aspect_ratio" tool_tip="width / height" width="160"> |
73 | <combo_item type="string" length="1" enabled="true" name="4:3(StandardCRT)" value="1.333333"> | 90 | <combo_item type="string" length="1" enabled="true" name="4:3(StandardCRT)" value="1.333333"> |
74 | 4:3 (Standard CRT) | 91 | 4:3 (Standard CRT) |
75 | </combo_item> | 92 | </combo_item> |
@@ -83,321 +100,318 @@ | |||
83 | 16:9 (Widescreen) | 100 | 16:9 (Widescreen) |
84 | </combo_item> | 101 | </combo_item> |
85 | </combo_box> | 102 | </combo_box> |
86 | <check_box bottom="-44" control_name="FullScreenAutoDetectAspectRatio" enabled="true" | 103 | <check_box bottom_delta="-2" control_name="FullScreenAutoDetectAspectRatio" enabled="true" |
87 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 104 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
88 | label="Auto-detect ratio" left="358" mouse_opaque="true" | 105 | label="Auto-detect" left_delta="165" mouse_opaque="true" |
89 | name="aspect_auto_detect" radio_style="false" width="256" /> | 106 | name="aspect_auto_detect" radio_style="false" width="256" /> |
90 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 107 | |
91 | bottom="-85" drop_shadow_visible="true" enabled="true" follows="left|top" | 108 | |
92 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 109 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
93 | left="10" mouse_opaque="true" name="HigherText" v_pad="0" width="80"> | 110 | height="1" left="55" name="border" width="380" /> |
94 | Quality and | 111 | |
95 | </text> | 112 | |
96 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 113 | <text type="string" length="1" bottom_delta="-20" follows="left|top" font="SansSerifSmall" h_pad="0" |
97 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" | 114 | halign="left" height="10" left="20" name="textbox" v_pad="0" |
98 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 115 | width="394" font-style="BOLD|SHADOW"> |
99 | height="12" left_delta="0" mouse_opaque="true" | 116 | Performance |
100 | name="QualityText" v_pad="0" width="95"> | 117 | </text> |
101 | performance: | 118 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
102 | </text> | 119 | bottom_delta="-22" drop_shadow_visible="true" enabled="true" follows="left|top" |
103 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
104 | bottom="-86" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
105 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | ||
106 | left="115" mouse_opaque="true" name="FasterText" v_pad="0" width="80"> | ||
107 | Faster | ||
108 | </text> | ||
109 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
110 | bottom="-105" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
111 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 120 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
112 | left="158" mouse_opaque="true" name="ShadersPrefText" v_pad="0" width="40"> | 121 | left="110" mouse_opaque="true" name="ShadersPrefText" v_pad="0" width="40"> |
113 | Low | 122 | Low |
114 | </text> | 123 | </text> |
115 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 124 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
116 | bottom_delta="0" drop_shadow_visible="true" enabled="true" | 125 | bottom_delta="0" drop_shadow_visible="true" enabled="true" |
117 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 126 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
118 | height="12" left_delta="47" mouse_opaque="true" | 127 | height="12" left_delta="62" mouse_opaque="true" |
119 | name="ShadersPrefText2" v_pad="0" width="40"> | 128 | name="ShadersPrefText2" v_pad="0" width="40"> |
120 | Mid | 129 | Mid |
121 | </text> | 130 | </text> |
122 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 131 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
123 | bottom_delta="0" drop_shadow_visible="true" enabled="true" | 132 | bottom_delta="0" drop_shadow_visible="true" enabled="true" |
124 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 133 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
125 | height="12" left_delta="47" mouse_opaque="true" | 134 | height="12" left_delta="62" mouse_opaque="true" |
126 | name="ShadersPrefText3" v_pad="0" width="40"> | 135 | name="ShadersPrefText3" v_pad="0" width="40"> |
127 | High | 136 | High |
128 | </text> | 137 | </text> |
129 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 138 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
130 | bottom_delta="0" drop_shadow_visible="true" enabled="true" | 139 | bottom_delta="0" drop_shadow_visible="true" enabled="true" |
131 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 140 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
132 | height="12" left_delta="47" mouse_opaque="true" | 141 | height="12" left_delta="62" mouse_opaque="true" |
133 | name="ShadersPrefText4" v_pad="0" width="40"> | 142 | name="ShadersPrefText4" v_pad="0" width="40"> |
134 | Ultra | 143 | Ultra |
135 | </text> | 144 | </text> |
136 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 145 | <icon bottom_delta="18" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" |
137 | bottom="-80" drop_shadow_visible="true" enabled="true" follows="left|top" | 146 | image_name="rounded_square.tga" left="123" name="LowGraphicsDivet" |
138 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | ||
139 | left="334" mouse_opaque="true" name="HigherText2" v_pad="0" width="80"> | ||
140 | Higher | ||
141 | </text> | ||
142 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
143 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" | ||
144 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
145 | height="12" left_delta="0" mouse_opaque="true" | ||
146 | name="QualityText2" v_pad="0" width="95"> | ||
147 | Quality | ||
148 | </text> | ||
149 | <icon bottom="-89" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" | ||
150 | image_name="rounded_square.tga" left="173" name="LowGraphicsDivet" | ||
151 | width="2" /> | 147 | width="2" /> |
152 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" | 148 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" |
153 | image_name="rounded_square.tga" left_delta="44" name="MidGraphicsDivet" | 149 | image_name="rounded_square.tga" left_delta="60" name="MidGraphicsDivet" |
154 | width="2" /> | 150 | width="2" /> |
155 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" | 151 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" |
156 | image_name="rounded_square.tga" left_delta="44" name="HighGraphicsDivet" | 152 | image_name="rounded_square.tga" left_delta="61" name="HighGraphicsDivet" |
157 | width="2" /> | 153 | width="2" /> |
158 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" | 154 | <icon bottom_delta="0" color="0.12 0.12 0.12 1.0" height="14" follows="left|top" |
159 | image_name="rounded_square.tga" left_delta="44" name="UltraGraphicsDivet" | 155 | image_name="rounded_square.tga" left_delta="61" name="UltraGraphicsDivet" |
160 | width="2" /> | 156 | width="2" /> |
161 | <slider bottom="-90" can_edit_text="false" control_name="RenderQualityPerformance" | 157 | <slider bottom_delta="0" can_edit_text="false" control_name="RenderQualityPerformance" |
162 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 158 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
163 | increment="1" initial_val="0" label="" label_width="0" | 159 | increment="1" initial_val="0" label="" label_width="0" |
164 | left="165" max_val="3" min_val="0" mouse_opaque="true" | 160 | left="115" max_val="3" min_val="0" mouse_opaque="true" |
165 | name="QualityPerformanceSelection" show_text="false" width="150" /> | 161 | name="QualityPerformanceSelection" show_text="false" width="200" /> |
166 | <check_box bottom="-91" control_name="RenderCustomSettings" enabled="true" | 162 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
163 | bottom_delta="2" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
164 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | ||
165 | left="340" mouse_opaque="true" name="HigherText2" v_pad="0" width="200"> | ||
166 | Graphics Quality | ||
167 | </text> | ||
168 | |||
169 | |||
170 | <check_box bottom_delta="-50" control_name="RenderCustomSettings" enabled="true" | ||
167 | follows="left|top" font="SansSerifSmall" height="16" | 171 | follows="left|top" font="SansSerifSmall" height="16" |
168 | initial_value="true" label="Custom" left="385" mouse_opaque="true" | 172 | initial_value="true" label="Advanced options" left="50" mouse_opaque="true" |
169 | name="CustomSettings" radio_style="false" width="256" /> | 173 | name="CustomSettings" radio_style="false" width="256" /> |
170 | <view_border bevel_style="none" border_thickness="1" bottom="-415" follows="left|top" | 174 | |
171 | height="300" left="5" name="GraphicsBorder" width="485" /> | 175 | <button bottom_delta="0" enabled="true" font="SansSerifSmall" halign="center" height="20" |
172 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 176 | label="Recommended Settings" left="210" mouse_opaque="true" |
173 | bottom="-130" drop_shadow_visible="true" enabled="true" follows="left|top" | 177 | name="Defaults" scale_image="true" width="160" follows="left|top" /> |
174 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 178 | <button bottom_delta="0" enabled="true" font="SansSerifSmall" halign="center" height="20" |
179 | label="Hardware" | ||
180 | left_delta="165" mouse_opaque="true" name="GraphicsHardwareButton" | ||
181 | scale_image="true" width="110" follows="left|top" /> | ||
182 | |||
183 | |||
184 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
185 | bottom_delta="-15" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
186 | font="SansSerifSmall" h_pad="0" halign="left" height="10" | ||
175 | left="10" mouse_opaque="true" name="ShadersText" v_pad="0" width="128"> | 187 | left="10" mouse_opaque="true" name="ShadersText" v_pad="0" width="128"> |
176 | Shaders: | 188 | Shaders: |
177 | </text> | 189 | </text> |
178 | <check_box bottom="-153" control_name="RenderObjectBump" enabled="true" follows="left|top" | 190 | <check_box bottom_delta="-23" control_name="RenderObjectBump" enabled="true" follows="left|top" |
179 | font="SansSerifSmall" height="16" initial_value="true" | 191 | font="SansSerifSmall" height="16" initial_value="true" |
180 | label="Bump mapping and shiny" left="10" mouse_opaque="true" | 192 | label="Bump mapping and shiny" left_delta="10" mouse_opaque="true" |
181 | name="BumpShiny" radio_style="false" width="256" /> | 193 | name="BumpShiny" radio_style="false" width="256" /> |
182 | <check_box bottom_delta="-17" control_name="VertexShaderEnable" enabled="true" | 194 | <check_box bottom_delta="-18" control_name="VertexShaderEnable" enabled="true" |
183 | follows="left|top" font="SansSerifSmall" height="16" | 195 | follows="left|top" font="SansSerifSmall" height="16" |
184 | initial_value="true" label="Basic shaders" left_delta="0" | 196 | initial_value="true" label="Basic shaders" left_delta="0" |
185 | mouse_opaque="true" name="BasicShaders" radio_style="false" | 197 | mouse_opaque="true" name="BasicShaders" radio_style="false" |
186 | tool_tip="Disabling this option may prevent some graphics card drivers from crashing." | 198 | tool_tip="Disabling this option may prevent some graphics card drivers from crashing." |
187 | width="315" /> | 199 | width="315" /> |
188 | <check_box bottom_delta="-17" control_name="WindLightUseAtmosShaders" enabled="true" | 200 | <check_box bottom_delta="-18" control_name="WindLightUseAtmosShaders" enabled="true" |
189 | follows="left|top" font="SansSerifSmall" height="16" | 201 | follows="left|top" font="SansSerifSmall" height="16" |
190 | initial_value="true" label="Atmospheric shaders" left_delta="0" | 202 | initial_value="true" label="Atmospheric shaders" left_delta="0" |
191 | mouse_opaque="true" name="WindLightUseAtmosShaders" radio_style="false" | 203 | mouse_opaque="true" name="WindLightUseAtmosShaders" radio_style="false" |
192 | width="256" /> | 204 | width="256" /> |
193 | <check_box bottom_delta="-17" control_name="RenderWaterReflections" enabled="true" | 205 | <check_box bottom_delta="-18" control_name="RenderWaterReflections" enabled="true" |
194 | follows="left|top" font="SansSerifSmall" height="16" | 206 | follows="left|top" font="SansSerifSmall" height="16" |
195 | initial_value="true" label="Water reflections" left_delta="0" | 207 | initial_value="true" label="Water reflections" left_delta="0" |
196 | mouse_opaque="true" name="Reflections" radio_style="false" width="256" /> | 208 | mouse_opaque="true" name="Reflections" radio_style="false" width="256" /> |
197 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 209 | |
198 | bottom="-223" drop_shadow_visible="true" enabled="true" follows="left|top" | 210 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
199 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 211 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
200 | left="10" mouse_opaque="true" name="ReflectionDetailText" v_pad="0" | 212 | font="SansSerifSmall" h_pad="0" halign="left" height="10" |
213 | left_delta="-10" mouse_opaque="true" name="ReflectionDetailText" v_pad="0" | ||
201 | width="128"> | 214 | width="128"> |
202 | Reflection Detail: | 215 | Water Reflections: |
203 | </text> | 216 | </text> |
204 | <radio_group bottom_delta="-73" control_name="RenderReflectionDetail" draw_border="false" | 217 | <combo_box allow_text_entry="false" bottom_delta="-23" enabled="true" follows="left|top" |
205 | enabled="true" follows="left|top" height="70" | 218 | height="16" left_delta="10" max_chars="100" mouse_opaque="true" control_name="RenderReflectionDetail" |
206 | left_delta="-2" mouse_opaque="true" name="ReflectionDetailRadio" | 219 | name="ReflectionDetailCombo" width="160"> |
207 | width="321"> | 220 | <combo_item type="string" length="1" enabled="true" name="0" value="0"> |
208 | <radio_item type="string" length="1" bottom="-19" enabled="true" follows="left|top" height="16" | 221 | Terrain and trees |
209 | left="3" mouse_opaque="true" name="0" width="315"> | 222 | </combo_item> |
210 | Terrain and trees | 223 | <combo_item type="string" length="1" enabled="true" name="1" value="1"> |
211 | </radio_item> | 224 | All static objects |
212 | <radio_item type="string" length="1" bottom="-35" enabled="true" follows="left|top" height="16" | 225 | </combo_item> |
213 | left="3" mouse_opaque="true" name="1" width="315"> | 226 | <combo_item type="string" length="1" enabled="true" name="2" value="2"> |
214 | All static objects | 227 | All avatars and objects |
215 | </radio_item> | 228 | </combo_item> |
216 | <radio_item type="string" length="1" bottom="-51" enabled="true" follows="left|top" height="16" | 229 | <combo_item type="string" length="1" enabled="true" name="3" value="3"> |
217 | left="3" mouse_opaque="true" name="2" width="315"> | 230 | Everything |
218 | All avatars and objects | 231 | </combo_item> |
219 | </radio_item> | 232 | </combo_box> |
220 | <radio_item type="string" length="1" bottom="-67" enabled="true" follows="left|top" height="16" | 233 | |
221 | left="3" mouse_opaque="true" name="3" width="315"> | 234 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
222 | Everything | 235 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
223 | </radio_item> | 236 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="-10" |
224 | </radio_group> | ||
225 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
226 | bottom="-313" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
227 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
228 | mouse_opaque="true" name="AvatarRenderingText" v_pad="0" width="128"> | 237 | mouse_opaque="true" name="AvatarRenderingText" v_pad="0" width="128"> |
229 | Avatar Rendering: | 238 | Avatar Rendering: |
230 | </text> | 239 | </text> |
231 | <check_box bottom_delta="-23" control_name="RenderUseImpostors" enabled="true" | 240 | <check_box bottom_delta="-23" control_name="RenderUseImpostors" enabled="true" |
232 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 241 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
233 | label="Avatar impostors" left_delta="0" mouse_opaque="true" | 242 | label="Avatar impostors" left_delta="10" mouse_opaque="true" |
234 | name="AvatarImpostors" radio_style="false" width="256" /> | 243 | name="AvatarImpostors" radio_style="false" width="256" /> |
235 | <check_box bottom_delta="-17" control_name="RenderAvatarVP" enabled="true" | 244 | <check_box bottom_delta="-18" control_name="RenderAvatarVP" enabled="true" |
236 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 245 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
237 | label="Hardware skinning" left_delta="0" mouse_opaque="true" | 246 | label="Hardware skinning" left_delta="0" mouse_opaque="true" |
238 | name="AvatarVertexProgram" radio_style="false" width="256" /> | 247 | name="AvatarVertexProgram" radio_style="false" width="256" /> |
239 | <check_box bottom_delta="-17" control_name="RenderAvatarCloth" enabled="true" | 248 | <check_box bottom_delta="-18" control_name="RenderAvatarCloth" enabled="true" |
240 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 249 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
241 | label="Avatar cloth" left_delta="0" mouse_opaque="true" name="AvatarCloth" | 250 | label="Avatar cloth" left_delta="0" mouse_opaque="true" name="AvatarCloth" |
242 | radio_style="false" width="256" /> | 251 | radio_style="false" width="256" /> |
252 | |||
253 | |||
254 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
255 | bottom_delta="-27" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
256 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="-10" | ||
257 | mouse_opaque="true" name="TerrainDetailText" v_pad="0" width="128"> | ||
258 | Terrain Detail: | ||
259 | </text> | ||
260 | <combo_box allow_text_entry="false" bottom_delta="-23" enabled="true" follows="left|top" | ||
261 | height="16" left_delta="10" max_chars="100" mouse_opaque="true" control_name="RenderTerrainDetail" | ||
262 | name="TerrainDetailCombo" width="160"> | ||
263 | <combo_item type="string" length="1" enabled="true" name="0" value="0"> | ||
264 | Low | ||
265 | </combo_item> | ||
266 | <combo_item type="string" length="1" enabled="true" name="1" value="1"> | ||
267 | High | ||
268 | </combo_item> | ||
269 | </combo_box> | ||
270 | |||
271 | |||
243 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 272 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
244 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 273 | bottom="-190" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
245 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left_delta="0" | 274 | font="SansSerifSmall" h_pad="0" halign="left" height="10" |
246 | mouse_opaque="true" name="AvatarCountText" v_pad="0" width="128"> | 275 | left="210" mouse_opaque="true" name="LimitsText" v_pad="0" width="128"> |
247 | Max. non-imposters: | 276 | Limits: |
248 | </text> | 277 | </text> |
249 | <slider bottom_delta="-20" can_edit_text="true" control_name="RenderAvatarMaxVisible" | 278 | <slider bottom_delta="-23" can_edit_text="true" control_name="RenderFarClip" |
250 | decimal_digits="0" enabled="true" follows="left|top" height="16" | ||
251 | increment="1" initial_val="35" label="" | ||
252 | label_width="0" left_delta="0" max_val="50" min_val="0" mouse_opaque="true" | ||
253 | name="AvatarMaxVisible" show_text="true" width="100" /> | ||
254 | <slider bottom="-135" can_edit_text="true" control_name="RenderFarClip" | ||
255 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 279 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
256 | increment="4" initial_val="160" label="Draw distance (meters):" | 280 | increment="4" initial_val="160" label="Draw distance (meters):" |
257 | label_width="140" left="215" max_val="1024" min_val="32" mouse_opaque="true" | 281 | label_width="140" left_delta="10" max_val="1024" min_val="32" mouse_opaque="true" |
258 | name="DrawDistance" show_text="true" width="262" /> | 282 | name="DrawDistance" show_text="true" width="262" /> |
259 | <slider bottom_delta="-20" can_edit_text="true" control_name="RenderMaxPartCount" | 283 | <slider bottom_delta="-18" can_edit_text="true" control_name="RenderMaxPartCount" |
260 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 284 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
261 | increment="256" initial_val="4096" | 285 | increment="256" initial_val="4096" |
262 | label="Max. particle count:" label_width="140" left_delta="0" | 286 | label="Max. particle count:" label_width="140" left_delta="0" |
263 | max_val="8192" min_val="0" mouse_opaque="true" name="MaxParticleCount" | 287 | max_val="8192" min_val="0" mouse_opaque="true" name="MaxParticleCount" |
264 | show_text="true" width="262" /> | 288 | show_text="true" width="262" /> |
265 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderGlowResolutionPow" | 289 | <slider bottom_delta="-18" can_edit_text="true" control_name="RenderAvatarMaxVisible" |
290 | decimal_digits="0" enabled="true" follows="left|top" height="16" | ||
291 | increment="1" initial_val="35" label="Max. non-imposters:" | ||
292 | label_width="140" left_delta="0" max_val="50" min_val="0" mouse_opaque="true" | ||
293 | name="AvatarMaxVisible" show_text="true" width="250" /> | ||
294 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderGlowResolutionPow" | ||
266 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 295 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
267 | increment="1" initial_val="8" label="Post process quality:" | 296 | increment="1" initial_val="8" label="Post process quality:" |
268 | label_width="140" left_delta="0" max_val="9" min_val="8" | 297 | label_width="140" left_delta="0" max_val="9" min_val="8" |
269 | mouse_opaque="true" name="RenderPostProcess" show_text="false" width="223" /> | 298 | mouse_opaque="true" name="RenderPostProcess" show_text="false" width="223" /> |
270 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 299 | |
271 | bottom_delta="-17" drop_shadow_visible="true" enabled="true" | 300 | |
301 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
302 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
272 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 303 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
273 | height="12" left="215" mouse_opaque="true" name="MeshDetailText" v_pad="0" | 304 | height="12" left_delta="0" mouse_opaque="true" name="MeshDetailText" v_pad="0" |
274 | width="128"> | 305 | width="128"> |
275 | Mesh Detail: | 306 | Mesh Detail: |
276 | </text> | 307 | </text> |
277 | <slider bottom_delta="-22" can_edit_text="false" control_name="RenderVolumeLODFactor" | 308 | <slider bottom_delta="-23" can_edit_text="false" control_name="RenderVolumeLODFactor" |
278 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 309 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
279 | increment="0.125" initial_val="160" label=" Objects:" | 310 | increment="0.125" initial_val="160" label=" Objects:" |
280 | label_width="140" left_delta="0" max_val="4" min_val="0" | 311 | label_width="140" left_delta="0" max_val="4" min_val="0" |
281 | mouse_opaque="true" name="ObjectMeshDetail" show_text="false" width="223" /> | 312 | mouse_opaque="true" name="ObjectMeshDetail" show_text="false" width="223" /> |
282 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderFlexTimeFactor" | 313 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderFlexTimeFactor" |
283 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 314 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
284 | increment="0.1" initial_val="160" label=" Flexiprims:" | 315 | increment="0.1" initial_val="160" label=" Flexiprims:" |
285 | label_width="140" left_delta="0" max_val="1" min_val="0" | 316 | label_width="140" left_delta="0" max_val="1" min_val="0" |
286 | mouse_opaque="true" name="FlexibleMeshDetail" show_text="false" width="223" /> | 317 | mouse_opaque="true" name="FlexibleMeshDetail" show_text="false" width="223" /> |
287 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderTreeLODFactor" | 318 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderTreeLODFactor" |
288 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 319 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
289 | increment="0.125" initial_val="160" label=" Trees:" | 320 | increment="0.125" initial_val="160" label=" Trees:" |
290 | label_width="140" left_delta="0" max_val="1" min_val="0" | 321 | label_width="140" left_delta="0" max_val="1" min_val="0" |
291 | mouse_opaque="true" name="TreeMeshDetail" show_text="false" width="223" /> | 322 | mouse_opaque="true" name="TreeMeshDetail" show_text="false" width="223" /> |
292 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderAvatarLODFactor" | 323 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderAvatarLODFactor" |
293 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 324 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
294 | increment="0.125" initial_val="160" label=" Avatars:" | 325 | increment="0.125" initial_val="160" label=" Avatars:" |
295 | label_width="140" left_delta="0" max_val="1" min_val="0" | 326 | label_width="140" left_delta="0" max_val="1" min_val="0" |
296 | mouse_opaque="true" name="AvatarMeshDetail" show_text="false" width="223" /> | 327 | mouse_opaque="true" name="AvatarMeshDetail" show_text="false" width="223" /> |
297 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderTerrainLODFactor" | 328 | <slider bottom_delta="-18" can_edit_text="false" control_name="RenderTerrainLODFactor" |
298 | decimal_digits="3" enabled="true" follows="left|top" height="16" | 329 | decimal_digits="3" enabled="true" follows="left|top" height="16" |
299 | increment="0.125" initial_val="160" label=" Terrain:" | 330 | increment="0.125" initial_val="160" label=" Terrain:" |
300 | label_width="140" left_delta="0" max_val="2" min_val="1" | 331 | label_width="140" left_delta="0" max_val="2" min_val="1" |
301 | mouse_opaque="true" name="TerrainMeshDetail" show_text="false" width="223" /> | 332 | mouse_opaque="true" name="TerrainMeshDetail" show_text="false" width="223" /> |
302 | <slider bottom_delta="-20" can_edit_text="false" control_name="WLSkyDetail" | 333 | <slider bottom_delta="-18" can_edit_text="false" control_name="WLSkyDetail" |
303 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 334 | decimal_digits="0" enabled="true" follows="left|top" height="16" |
304 | increment="8" initial_val="160" label=" Sky:" | 335 | increment="8" initial_val="160" label=" Sky:" |
305 | label_width="140" left_delta="0" max_val="128" min_val="16" | 336 | label_width="140" left_delta="0" max_val="128" min_val="16" |
306 | mouse_opaque="true" name="SkyMeshDetail" show_text="false" width="223" /> | 337 | mouse_opaque="true" name="SkyMeshDetail" show_text="false" width="223" /> |
307 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 338 | |
308 | bottom="-172" drop_shadow_visible="true" enabled="true" follows="left|top" | 339 | |
340 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
341 | bottom="-266" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
309 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 342 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
310 | left="444" mouse_opaque="true" name="PostProcessText" v_pad="0" width="128"> | 343 | left="444" mouse_opaque="true" name="PostProcessText" v_pad="0" width="128"> |
311 | Low | 344 | Low |
312 | </text> | 345 | </text> |
313 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 346 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
314 | bottom="-210" drop_shadow_visible="true" enabled="true" follows="left|top" | 347 | bottom_delta="-44" drop_shadow_visible="true" enabled="true" follows="left|top" |
315 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 348 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
316 | left="444" mouse_opaque="true" name="ObjectMeshDetailText" v_pad="0" | 349 | left="444" mouse_opaque="true" name="ObjectMeshDetailText" v_pad="0" |
317 | width="128"> | 350 | width="128"> |
318 | Low | 351 | Low |
319 | </text> | 352 | </text> |
320 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 353 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
321 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 354 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
322 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 355 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
323 | height="12" left_delta="0" mouse_opaque="true" | 356 | height="12" left_delta="0" mouse_opaque="true" |
324 | name="FlexibleMeshDetailText" v_pad="0" width="128"> | 357 | name="FlexibleMeshDetailText" v_pad="0" width="128"> |
325 | Low | 358 | Low |
326 | </text> | 359 | </text> |
327 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 360 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
328 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 361 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
329 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 362 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
330 | height="12" left_delta="0" mouse_opaque="true" | 363 | height="12" left_delta="0" mouse_opaque="true" |
331 | name="TreeMeshDetailText" v_pad="0" width="128"> | 364 | name="TreeMeshDetailText" v_pad="0" width="128"> |
332 | Low | 365 | Low |
333 | </text> | 366 | </text> |
334 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 367 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
335 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 368 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
336 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 369 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
337 | height="12" left_delta="0" mouse_opaque="true" | 370 | height="12" left_delta="0" mouse_opaque="true" |
338 | name="AvatarMeshDetailText" v_pad="0" width="128"> | 371 | name="AvatarMeshDetailText" v_pad="0" width="128"> |
339 | Low | 372 | Low |
340 | </text> | 373 | </text> |
341 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 374 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
342 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 375 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
343 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 376 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
344 | height="12" left_delta="0" mouse_opaque="true" | 377 | height="12" left_delta="0" mouse_opaque="true" |
345 | name="TerrainMeshDetailText" v_pad="0" width="128"> | 378 | name="TerrainMeshDetailText" v_pad="0" width="128"> |
346 | Low | 379 | Low |
347 | </text> | 380 | </text> |
348 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 381 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
349 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 382 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
350 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 383 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
351 | height="12" left_delta="0" mouse_opaque="true" | 384 | height="12" left_delta="0" mouse_opaque="true" |
352 | name="SkyMeshDetailText" v_pad="0" width="128"> | 385 | name="SkyMeshDetailText" v_pad="0" width="128"> |
353 | Low | 386 | Low |
354 | </text> | 387 | </text> |
355 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 388 | |
356 | bottom="-331" drop_shadow_visible="true" enabled="true" follows="left|top" | 389 | |
390 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
391 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
357 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 392 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
358 | left="210" mouse_opaque="true" name="LightingDetailText" v_pad="0" | 393 | left="210" mouse_opaque="true" name="LightingDetailText" v_pad="0" |
359 | width="128"> | 394 | width="128"> |
360 | Lighting Detail: | 395 | Lighting Detail: |
361 | </text> | 396 | </text> |
362 | <radio_group bottom_delta="-43" control_name="RenderLightingDetail" draw_border="false" | 397 | <combo_box allow_text_entry="false" bottom_delta="-23" enabled="true" follows="left|top" |
363 | enabled="true" follows="left|top" height="38" left_delta="0" | 398 | height="16" left_delta="10" max_chars="100" mouse_opaque="true" control_name="RenderLightingDetail" |
364 | mouse_opaque="true" name="LightingDetailRadio" width="321"> | 399 | name="LightingDetailCombo" width="160"> |
365 | <radio_item type="string" length="1" bottom="-19" enabled="true" follows="left|top" height="16" | 400 | <combo_item type="string" length="1" enabled="true" name="0" value="0"> |
366 | left="3" mouse_opaque="true" name="SunMoon" width="156"> | 401 | Sun and moon only |
367 | Sun and moon only | 402 | </combo_item> |
368 | </radio_item> | 403 | <combo_item type="string" length="1" enabled="true" name="1" value="1"> |
369 | <radio_item type="string" length="1" bottom="-35" enabled="true" follows="left|top" height="16" | 404 | Nearby local lights |
370 | left="3" mouse_opaque="true" name="LocalLights" width="156"> | 405 | </combo_item> |
371 | Nearby local lights | 406 | </combo_box> |
372 | </radio_item> | 407 | |
373 | </radio_group> | 408 | |
374 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 409 | <view_border bevel_style="none" border_thickness="1" bottom="-448" follows="left|top" |
375 | bottom="-331" drop_shadow_visible="true" enabled="true" follows="left|top" | 410 | height="271" left="5" name="GraphicsBorder" width="488" /> |
376 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="360" | 411 | |
377 | mouse_opaque="true" name="TerrainDetailText" v_pad="0" width="128"> | 412 | |
378 | Terrain Detail: | ||
379 | </text> | ||
380 | <radio_group bottom_delta="-43" control_name="RenderTerrainDetail" draw_border="false" | ||
381 | enabled="true" follows="left|top" height="38" left_delta="0" | ||
382 | mouse_opaque="true" name="TerrainDetailRadio" width="321"> | ||
383 | <radio_item type="string" length="1" bottom="-19" enabled="true" follows="left|top" height="16" | ||
384 | left="3" mouse_opaque="true" name="0" width="315"> | ||
385 | Low | ||
386 | </radio_item> | ||
387 | <radio_item type="string" length="1" bottom="-35" enabled="true" follows="left|top" height="16" | ||
388 | left="3" mouse_opaque="true" name="2" width="315"> | ||
389 | High | ||
390 | </radio_item> | ||
391 | </radio_group> | ||
392 | <button bottom="4" enabled="true" font="SansSerif" halign="center" height="20" | ||
393 | label="Recommended Settings" left="130" mouse_opaque="true" | ||
394 | name="Defaults" scale_image="true" width="170" follows="left|bottom" /> | ||
395 | <button bottom="4" enabled="true" font="SansSerif" halign="center" height="20" | ||
396 | label="Hardware Options" label_selected="Hardware Options" | ||
397 | left="310" mouse_opaque="true" name="GraphicsHardwareButton" | ||
398 | scale_image="true" width="170" follows="left|bottom" /> | ||
399 | <string name="resolution_format"> | 413 | <string name="resolution_format"> |
400 | [RES_X] x [RES_Y] | 414 | [RES_X] × [RES_Y] |
401 | </string> | 415 | </string> |
402 | <string name="aspect_ratio_text"> | 416 | <string name="aspect_ratio_text"> |
403 | [NUM]:[DEN] | 417 | [NUM]:[DEN] |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml index 2c71998..93bc84c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml | |||
@@ -1,117 +1,111 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="IMs & Logging" left="102" mouse_opaque="true" name="im" | 18 | height="408" label="Logging & Privacy" left="102" mouse_opaque="true" name="im" |
4 | width="517"> | 19 | width="517"> |
20 | |||
21 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 23 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 24 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
8 | mouse_opaque="false" name="text_box" v_pad="0" width="128"> | 25 | mouse_opaque="false" name="Logging:" v_pad="0" width="128"> |
9 | My Online Status: | 26 | Logging: |
10 | </text> | 27 | </text> |
11 | <check_box bottom="-25" enabled="true" follows="left|top" font="SansSerifSmall" | 28 | |
12 | height="16" initial_value="false" | 29 | <check_box bottom_delta="-25" enabled="true" |
13 | label="Only my Friends and Groups can see when I am online" | ||
14 | left="148" mouse_opaque="true" name="online_visibility" radio_style="false" | ||
15 | width="350" /> | ||
16 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
17 | bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
18 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
19 | mouse_opaque="false" name="text_box2" v_pad="0" width="128"> | ||
20 | IM Options: | ||
21 | </text> | ||
22 | <string name="log_in_to_change"> | ||
23 | log in to change | ||
24 | </string> | ||
25 | <string name="default_email_used"> | ||
26 | using default address | ||
27 | </string> | ||
28 | <check_box bottom="-45" enabled="true" follows="left|top" font="SansSerifSmall" | ||
29 | height="16" initial_value="false" label="Send IM to email ([EMAIL])" | ||
30 | left="148" mouse_opaque="true" name="send_im_to_email" radio_style="false" | ||
31 | width="350" /> | ||
32 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
33 | bottom="-59" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
34 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | ||
35 | mouse_opaque="false" name="show_ims_label" v_pad="0" width="100"> | ||
36 | Show IMs in: | ||
37 | </text> | ||
38 | <check_box bottom="-65" enabled="true" follows="left|top" | ||
39 | font="SansSerifSmall" height="16" initial_value="false" | ||
40 | label="Main chat" left="248" mouse_opaque="true" | ||
41 | name="include_im_in_chat_console" radio_style="false" width="100" /> | ||
42 | <check_box bottom="-65" enabled="true" follows="left|top" | ||
43 | font="SansSerifSmall" height="16" initial_value="false" | ||
44 | label="Local Chat window" left="348" mouse_opaque="true" | ||
45 | name="include_im_in_chat_history" radio_style="false" width="100" /> | ||
46 | <check_box bottom="-85" enabled="true" follows="left|top" | ||
47 | font="SansSerifSmall" height="16" initial_value="false" | ||
48 | label="Show timestamps in IM" left="148" mouse_opaque="true" | ||
49 | name="show_timestamps_check" radio_style="false" width="237" /> | ||
50 | <check_box bottom="-105" enabled="true" | ||
51 | follows="left|top" font="SansSerifSmall" height="16" | 30 | follows="left|top" font="SansSerifSmall" height="16" |
52 | initial_value="false" label="Show online Friend notifications" left="148" | 31 | initial_value="false" label="Save a log of IM on my computer" left_delta="30" |
53 | mouse_opaque="true" name="friends_online_notify_checkbox" | 32 | mouse_opaque="true" name="log_instant_messages" radio_style="false" |
54 | radio_style="false" width="256" /> | 33 | width="237" /> |
55 | <check_box bottom_delta="-20" enabled="true" | ||
56 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
57 | label="Vertical IM tabs (requires restart)" left_delta="0" mouse_opaque="true" | ||
58 | name="vertical-imtabs-toggle" radio_style="false" width="270" /> | ||
59 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
60 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
61 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
62 | mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | ||
63 | Busy Mode Response: | ||
64 | </text> | ||
65 | <text_editor type="string" length="1" bottom_delta="-60" embedded_items="false" enabled="true" follows="left|top" | ||
66 | font="SansSerifSmall" height="70" left="148" max_length="255" | ||
67 | mouse_opaque="true" name="busy_response" width="330" word_wrap="true" spell_check="true" /> | ||
68 | <button bottom_delta="-25" follows="top|right" height="22" label="IM Response Options" | ||
69 | left="164" name="busy_adv_btn" tool_tip="Instant message Auto-Response options" | ||
70 | width="180" /> | ||
71 | <button bottom_delta="0" follows="left|top" height="22" label="OTR Options" | ||
72 | left="330" name="otr_adv_btn" tool_tip="Off The Record options" | ||
73 | width="120" /> | ||
74 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
75 | bottom_delta="-23" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
76 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | ||
77 | mouse_opaque="false" name="text_box4" v_pad="0" width="128"> | ||
78 | Logging Options: | ||
79 | </text> | ||
80 | <check_box bottom_delta="-7" enabled="true" | ||
81 | follows="left|top" font="SansSerifSmall" height="16" | ||
82 | initial_value="false" label="Save a log of IM on my computer" left="148" | ||
83 | mouse_opaque="true" name="log_instant_messages" radio_style="false" | ||
84 | width="237" /> | ||
85 | <check_box bottom_delta="-20" enabled="true" | 34 | <check_box bottom_delta="-20" enabled="true" |
86 | follows="left|top" font="SansSerifSmall" height="16" | 35 | follows="left|top" font="SansSerifSmall" height="16" |
87 | initial_value="false" label="Show timestamps in IM log" left="168" | 36 | initial_value="false" label="Show timestamps in IM log" left_delta="30" |
88 | mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false" | 37 | mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false" |
89 | width="217" /> | 38 | width="217" /> |
90 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 39 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
91 | font="SansSerifSmall" height="16" initial_value="false" | 40 | font="SansSerifSmall" height="16" initial_value="false" |
92 | label="Show the end of last IM conversation" left="168" mouse_opaque="true" | 41 | label="Show the end of last IM conversation" left_delta="0" mouse_opaque="true" |
93 | name="log_show_history" radio_style="false" width="217" /> | 42 | name="log_show_history" radio_style="false" width="217" /> |
94 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 43 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
95 | font="SansSerifSmall" height="16" initial_value="false" label="Save a log of Local Chat on my computer" | 44 | font="SansSerifSmall" height="16" initial_value="false" label="Save a log of Local Chat on my computer" |
96 | left="148" mouse_opaque="true" name="log_chat" radio_style="false" | 45 | left_delta="-30" mouse_opaque="true" name="log_chat" radio_style="false" |
97 | width="237" /> | 46 | width="237" /> |
98 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 47 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
99 | font="SansSerifSmall" height="16" initial_value="false" | 48 | font="SansSerifSmall" height="16" initial_value="false" |
100 | label="Show timestamps in Local Chat log" left="168" mouse_opaque="true" | 49 | label="Show timestamps in Local Chat log" left_delta="30" mouse_opaque="true" |
101 | name="log_chat_timestamp" radio_style="false" width="217" /> | 50 | name="log_chat_timestamp" radio_style="false" width="217" /> |
102 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 51 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
103 | font="SansSerifSmall" height="16" initial_value="false" | 52 | font="SansSerifSmall" height="16" initial_value="false" |
104 | label="Show incoming IM in Local Chat log" left="168" mouse_opaque="true" | 53 | label="Show incoming IM in Local Chat log" left_delta="0" mouse_opaque="true" |
105 | name="log_chat_IM" radio_style="false" width="217" /> | 54 | name="log_chat_IM" radio_style="false" width="217" /> |
106 | <check_box bottom_delta="-20" enabled="true" follows="left|top" | 55 | <check_box bottom_delta="-20" enabled="true" follows="left|top" |
107 | font="SansSerifSmall" height="16" initial_value="false" | 56 | font="SansSerifSmall" height="16" initial_value="false" |
108 | label="Include date with timestamps" left="148" mouse_opaque="true" | 57 | label="Include date with timestamps" left_delta="-30" mouse_opaque="true" |
109 | name="log_date_timestamp" radio_style="false" width="237" /> | 58 | name="log_date_timestamp" radio_style="false" width="237" /> |
110 | <button bottom_delta="-22" follows="left|top" font="SansSerif" halign="center" | 59 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
111 | height="20" label="Change Path" label_selected="Change Path" left="148" | 60 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
112 | mouse_opaque="true" name="log_path_button" width="96" /> | 61 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" |
113 | <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="1" | 62 | mouse_opaque="false" name="Log location:" v_pad="0" width="128"> |
114 | drop_shadow_visible="true" enabled="false" follows="top|left|right" | 63 | Log location: |
115 | font="SansSerifSmall" halign="right" height="19" left="248" | 64 | </text> |
116 | max_length="254" mouse_opaque="false" name="log_path_string" right="-20" /> | 65 | <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="-25" |
66 | drop_shadow_visible="true" enabled="false" follows="top|left|right" width="395" | ||
67 | font="SansSerifSmall" halign="right" height="19" left_delta="0" | ||
68 | max_length="254" mouse_opaque="false" name="log_path_string" /> | ||
69 | <button bottom_delta="-25" follows="left|top" font="SansSerifSmall" halign="center" | ||
70 | height="20" label="Change Location" left_delta="0" | ||
71 | mouse_opaque="true" name="log_path_button" width="160" /> | ||
72 | |||
73 | |||
74 | |||
75 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
76 | height="1" left="55" name="border" width="380" /> | ||
77 | |||
78 | |||
79 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
80 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
81 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
82 | mouse_opaque="false" name="Privacy:" v_pad="0" width="128"> | ||
83 | Privacy: | ||
84 | </text> | ||
85 | <check_box bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" | ||
86 | height="16" initial_value="false" | ||
87 | label="Only my Friends and Groups can see when I am online" | ||
88 | left_delta="30" mouse_opaque="true" name="online_visibility" radio_style="false" | ||
89 | width="350" /> | ||
90 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
91 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
92 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left_delta="0" | ||
93 | mouse_opaque="false" name="text_box3" v_pad="0" width="128"> | ||
94 | Busy Mode Response: | ||
95 | </text> | ||
96 | <text_editor type="string" length="1" bottom_delta="-75" embedded_items="false" enabled="true" follows="left|top" | ||
97 | font="SansSerifSmall" height="70" left_delta="0" max_length="255" | ||
98 | mouse_opaque="true" name="busy_response" width="330" word_wrap="true" spell_check="true" /> | ||
99 | <button bottom_delta="-30" follows="top|left" height="20" label="Auto-Response Options" | ||
100 | left_delta="0" name="busy_adv_btn" tool_tip="Instant message Auto-Response options" | ||
101 | width="160" font="SansSerifSmall" /> | ||
102 | <button bottom_delta="0" follows="left|top" height="22" label="OTR Options" | ||
103 | left_delta="200" name="otr_adv_btn" tool_tip="Off The Record options" | ||
104 | width="120" /> | ||
105 | |||
106 | <string name="log_in_to_change"> | ||
107 | log in to change | ||
108 | </string> | ||
109 | |||
110 | |||
117 | </panel> | 111 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml index 70c8464..5713933 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml | |||
@@ -1,152 +1,180 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Input & Camera" left="102" mouse_opaque="true" | 18 | height="408" label="Input & Camera" left="102" mouse_opaque="true" |
4 | name="Input panel" width="517"> | 19 | name="Input panel" width="517"> |
20 | |||
21 | |||
22 | <text name="double_click_action_label" font-style="BOLD|SHADOW" | ||
23 | bottom="-26" left="20" height="16" width="200" | ||
24 | follows="left|top" font="SansSerifSmall" mouse_opaque="true"> | ||
25 | Double-Click Action: | ||
26 | </text> | ||
27 | |||
28 | <combo_box name="double_click_action" | ||
29 | bottom_delta="-25" left_delta="30" height="18" width="160" | ||
30 | follows="left|top" mouse_opaque="true"> | ||
31 | <combo_item name="None" value="None"> | ||
32 | No action | ||
33 | </combo_item> | ||
34 | <combo_item name="Go" value="Go"> | ||
35 | Autopilot | ||
36 | </combo_item> | ||
37 | </combo_box> | ||
38 | |||
39 | <text name="go_action_label" | ||
40 | bottom_delta="-25" left_delta="0" height="18" width="200" | ||
41 | follows="left|top" font="SansSerifSmall" mouse_opaque="true"> | ||
42 | Autopilot: | ||
43 | </text> | ||
44 | |||
45 | <combo_box name="go_action" | ||
46 | bottom_delta="0" left_delta="70" height="18" width="90" | ||
47 | follows="left|top" mouse_opaque="true"> | ||
48 | <combo_item name="Move" value="Move"> | ||
49 | Move | ||
50 | </combo_item> | ||
51 | <combo_item name="Teleport" value="Teleport"> | ||
52 | Teleport | ||
53 | </combo_item> | ||
54 | </combo_box> | ||
55 | |||
56 | |||
57 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
58 | height="1" left="55" name="border" width="380" /> | ||
59 | |||
60 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 61 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 62 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 63 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
8 | mouse_opaque="true" name=" Mouselook Options:" v_pad="0" width="266"> | 64 | mouse_opaque="true" name=" Mouselook Options:" v_pad="0" width="266"> |
9 | Mouselook: | 65 | Mouselook: |
10 | </text> | 66 | </text> |
11 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 67 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
12 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 68 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
13 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 69 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
14 | mouse_opaque="true" name=" Mouse Sensitivity:" v_pad="0" width="128"> | 70 | mouse_opaque="true" name=" Mouse Sensitivity:" v_pad="0" width="128"> |
15 | Mouse sensitivity: | 71 | Mouse sensitivity: |
16 | </text> | 72 | </text> |
17 | <slider_bar bottom="-26" enabled="true" follows="left|top" | 73 | <slider_bar bottom_delta="-6" enabled="true" follows="left|top" |
18 | height="16" increment="0.25" initial_val="2" left="276" max_val="15" | 74 | height="16" increment="0.25" initial_val="2" left_delta="98" max_val="15" |
19 | min_val="0" mouse_opaque="true" name="mouse_sensitivity" width="128" /> | 75 | min_val="0" mouse_opaque="true" name="mouse_sensitivity" width="88" /> |
20 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 76 | <check_box bottom_delta="0" enabled="true" follows="left|top" |
21 | font="SansSerifSmall" height="16" label="Invert mouse" left="148" | 77 | font="SansSerifSmall" height="16" label="Invert mouse" left="270" |
22 | mouse_opaque="true" name="invert_mouse" radio_style="false" width="128" /> | 78 | mouse_opaque="true" name="invert_mouse" radio_style="false" width="128" /> |
23 | <check_box bottom_delta="-18" enabled="true" | 79 | <check_box bottom_delta="-20" enabled="true" |
24 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 80 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
25 | label="Show avatar in mouselook" left="148" mouse_opaque="true" name="first_person_avatar_visible" | 81 | label="Show my avatar in mouselook" left_delta="0" mouse_opaque="true" name="first_person_avatar_visible" |
26 | radio_style="false" width="256" /> | 82 | radio_style="false" width="256" /> |
83 | |||
84 | |||
85 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
86 | height="1" left="55" name="border" width="380" /> | ||
87 | |||
88 | |||
27 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 89 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
28 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 90 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" |
29 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 91 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" font-style="BOLD|SHADOW" |
30 | mouse_opaque="true" name=" Auto Fly Options:" v_pad="0" width="266"> | 92 | mouse_opaque="true" name="text2" v_pad="0" width="128"> |
31 | Auto-Fly: | 93 | Joystick: |
32 | </text> | 94 | </text> |
33 | <check_box bottom_delta="-6" enabled="true" follows="left|top" | 95 | <button bottom_delta="-25" follows="left|top" font="SansSerifSmall" height="20" |
34 | font="SansSerifSmall" height="16" label="Fly/land on holding up/down" | 96 | label="Joystick Setup" left="50" mouse_opaque="true" |
35 | left="148" mouse_opaque="true" name="automatic_fly" radio_style="false" | 97 | name="joystick_setup_button" width="160" /> |
36 | width="178" /> | 98 | |
99 | |||
100 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
101 | height="1" left="55" name="border" width="380" /> | ||
102 | |||
103 | |||
37 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 104 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
38 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 105 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
39 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 106 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
40 | mouse_opaque="true" name=" Camera Options:" v_pad="0" width="266"> | 107 | mouse_opaque="true" name="Camera Options:" v_pad="0" width="266"> |
41 | Default Camera: | 108 | Camera: |
42 | </text> | 109 | </text> |
110 | <check_box bottom_delta="-25" enabled="true" | ||
111 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
112 | label="Automatic edit camera movement" left="50" mouse_opaque="true" | ||
113 | name="edit_camera_movement" radio_style="false" | ||
114 | tool_tip="Use automatic camera positioning when entering and exiting edit mode" | ||
115 | width="201" /> | ||
116 | <check_box bottom_delta="-20" enabled="true" | ||
117 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
118 | label="Automatic appearance camera movement" left_delta="0" mouse_opaque="true" | ||
119 | name="appearance_camera_movement" radio_style="false" | ||
120 | tool_tip="Use automatic camera positioning while in edit mode" width="242" /> | ||
121 | <check_box bottom_delta="-20" enabled="true" | ||
122 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
123 | label="Disable camera constraints" left_delta="0" mouse_opaque="true" | ||
124 | name="Disable camera constraints" radio_style="false" | ||
125 | tool_tip="Disables camera limits such as distance and terrain" width="242" /> | ||
126 | <check_box bottom_delta="-20" enabled="true" | ||
127 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
128 | label="Disable minimum zoom distance" left_delta="30" mouse_opaque="true" | ||
129 | name="disable_min_zoom_check" radio_style="false" | ||
130 | tool_tip="Disables minimum zoom distance for prims and avatars" width="242" /> | ||
131 | |||
132 | |||
43 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 133 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
44 | bottom_delta="0" drop_shadow_visible="true" enabled="true" follows="left|top" | 134 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" |
45 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 135 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
46 | mouse_opaque="true" name="camera_fov_label" v_pad="0" width="128"> | 136 | mouse_opaque="true" name="camera_fov_label" v_pad="0" width="128"> |
47 | Camera view angle: | 137 | View angle: |
48 | </text> | 138 | </text> |
49 | <slider bottom_delta="-6" can_edit_text="true" | 139 | <slider bottom_delta="-6" can_edit_text="true" |
50 | decimal_digits="2" enabled="true" follows="left|top" width="128" height="16" | 140 | decimal_digits="2" enabled="true" follows="left|top" width="100" height="16" |
51 | increment=".025" initial_val="1.57" left="276" max_val="2.97" min_val=".17" | 141 | increment=".025" initial_val="1.57" left_delta="98" max_val="2.97" min_val=".17" |
52 | mouse_opaque="true" name="camera_fov" show_text="false" value="60" /> | 142 | mouse_opaque="true" name="camera_fov" show_text="false" value="60" /> |
143 | |||
53 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 144 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
54 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" | 145 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" |
55 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 146 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
56 | mouse_opaque="true" name="Camera Follow Distance:" v_pad="0" width="128"> | 147 | mouse_opaque="true" name="Camera Follow Distance:" v_pad="0" width="128"> |
57 | Camera follow distance: | 148 | Follow distance: |
58 | </text> | 149 | </text> |
59 | <slider bottom_delta="-6" can_edit_text="true" control_name="CameraOffsetScale" | 150 | <slider bottom_delta="-6" can_edit_text="true" control_name="CameraOffsetScale" |
60 | decimal_digits="2" enabled="true" follows="left|top" height="16" | 151 | decimal_digits="2" enabled="true" follows="left|top" height="16" |
61 | increment=".025" initial_val="1" left="276" min_val=".5" max_val="3" | 152 | increment=".025" initial_val="1" left_delta="98" min_val=".5" max_val="3" |
62 | mouse_opaque="true" name="camera_offset_scale" show_text="false" value="1" | 153 | mouse_opaque="true" name="camera_offset_scale" show_text="false" value="1" |
63 | width="128" /> | 154 | width="100" /> |
155 | |||
64 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 156 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
65 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" | 157 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" |
66 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 158 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
67 | mouse_opaque="true" name="Camera Transition Time:" v_pad="0" width="128"> | 159 | mouse_opaque="true" name="Camera Transition Time:" v_pad="0" width="128"> |
68 | Camera transition time: | 160 | Transition time: |
69 | </text> | 161 | </text> |
70 | <slider bottom_delta="-6" can_edit_text="true" decimal_digits="1" | 162 | <slider bottom_delta="-6" can_edit_text="true" decimal_digits="1" |
71 | enabled="true" follows="left|top" height="16" increment="0.1" | 163 | enabled="true" follows="left|top" height="16" increment="0.1" |
72 | initial_val="0.4" left="276" max_val="4" min_val="0" mouse_opaque="true" | 164 | initial_val="0.4" left_delta="98" max_val="4" min_val="0" mouse_opaque="true" |
73 | name="zoom_time" show_text="false" value="2" width="128" /> | 165 | name="zoom_time" show_text="false" value="2" width="100" /> |
166 | |||
74 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 167 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
75 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" | 168 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top" |
76 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" | 169 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" |
77 | mouse_opaque="true" name="Camera Smoothing:" v_pad="0" width="128"> | 170 | mouse_opaque="true" name="Camera Smoothing:" v_pad="0" width="128"> |
78 | Camera smoothing: | 171 | Smoothing: |
79 | </text> | 172 | </text> |
80 | <slider bottom_delta="-6" can_edit_text="true" | 173 | <slider bottom_delta="-6" can_edit_text="true" |
81 | decimal_digits="1" enabled="true" follows="left|top" height="16" | 174 | decimal_digits="1" enabled="true" follows="left|top" height="16" |
82 | increment="0.1" initial_val="1" left="276" max_val="9" min_val="0" | 175 | increment="0.1" initial_val="1" left_delta="98" max_val="9" min_val="0" |
83 | mouse_opaque="true" name="camera_position_smoothing" show_text="false" value="2" | 176 | mouse_opaque="true" name="camera_position_smoothing" show_text="false" value="2" |
84 | width="128" /> | 177 | width="100" /> |
85 | <check_box bottom_delta="-24" enabled="true" | ||
86 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
87 | label="Automatic edit camera movement" left="148" mouse_opaque="true" | ||
88 | name="edit_camera_movement" radio_style="false" | ||
89 | tool_tip="Use automatic camera positioning when entering and exiting edit mode" | ||
90 | width="201" /> | ||
91 | <check_box bottom_delta="-18" enabled="true" | ||
92 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
93 | label="Automatic appearance camera movement" left="148" mouse_opaque="true" | ||
94 | name="appearance_camera_movement" radio_style="false" | ||
95 | tool_tip="Use automatic camera positioning while in edit mode" width="242" /> | ||
96 | <check_box bottom_delta="-18" enabled="true" | ||
97 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
98 | label="Disable camera constraints" left="148" mouse_opaque="true" | ||
99 | name="Disable camera constraints" radio_style="false" | ||
100 | tool_tip="Disables camera limits such as distance and terrain" width="242" /> | ||
101 | <check_box bottom_delta="-18" enabled="true" | ||
102 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
103 | label="Disable minimum zoom distance" left="168" mouse_opaque="true" | ||
104 | name="disable_min_zoom_check" radio_style="false" | ||
105 | tool_tip="Disables minimum zoom distance for prims and avatars" width="242" /> | ||
106 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
107 | bottom_delta="-32" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
108 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | ||
109 | mouse_opaque="true" name="text2" v_pad="0" width="128"> | ||
110 | Joystick: | ||
111 | </text> | ||
112 | <button bottom_delta="-4" follows="left|top" font="SansSerif" height="20" | ||
113 | label="Joystick Setup" left="148" mouse_opaque="true" | ||
114 | name="joystick_setup_button" width="155" /> | ||
115 | |||
116 | |||
117 | <text name="double_click_action_label" | ||
118 | bottom_delta="-35" left="10" height="18" width="200" | ||
119 | follows="left|top" font="SansSerifSmall" mouse_opaque="true"> | ||
120 | Double-Click Action: | ||
121 | </text> | ||
122 | |||
123 | <combo_box name="double_click_action" | ||
124 | bottom_delta="0" left_delta="138" height="18" width="150" | ||
125 | follows="left|top" mouse_opaque="true"> | ||
126 | <combo_item name="None" value="None"> | ||
127 | None | ||
128 | </combo_item> | ||
129 | <combo_item name="Go" value="Go"> | ||
130 | Autopilot | ||
131 | </combo_item> | ||
132 | </combo_box> | ||
133 | |||
134 | 178 | ||
135 | <text name="go_action_label" | ||
136 | bottom_delta="-20" left="10" height="18" width="200" | ||
137 | follows="left|top" font="SansSerifSmall" mouse_opaque="true"> | ||
138 | Autopilot Style: | ||
139 | </text> | ||
140 | |||
141 | <combo_box name="go_action" | ||
142 | bottom_delta="0" left_delta="138" height="18" width="150" | ||
143 | follows="left|top" mouse_opaque="true"> | ||
144 | <combo_item name="Move" value="Move"> | ||
145 | Move | ||
146 | </combo_item> | ||
147 | <combo_item name="Teleport" value="Teleport"> | ||
148 | Teleport | ||
149 | </combo_item> | ||
150 | </combo_box> | ||
151 | 179 | ||
152 | </panel> | 180 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml index 7d6bb4a..57d8f31 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml | |||
@@ -1,178 +1,434 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Network" left="102" mouse_opaque="true" name="network" | 18 | height="408" label="Network" left="102" mouse_opaque="true" name="network" |
4 | width="517"> | 19 | width="517"> |
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 20 | |
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | 21 | |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" | 22 | <tab_container bottom="0" height="450" left="0" mouse_opaque="false" |
8 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> | 23 | name="networktab2" tab_min_width="50" tab_position="top" width="495" bg_opaque_color="0,0,0,0.0"> |
9 | Maximum bandwidth: | 24 | |
10 | </text> | 25 | |
11 | <slider bottom_delta="-25" can_edit_text="true" control_name="ThrottleBandwidthKBPS" | 26 | <!-- BANDWIDTH SETTINGS PANEL --> |
12 | decimal_digits="0" enabled="true" follows="left|top" height="15" | 27 | |
13 | increment="10" initial_val="1000" left_delta="0" max_val="5000" min_val="50" | 28 | |
14 | mouse_opaque="true" name="max_bandwidth" show_text="true" value="1000" | 29 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
15 | width="180" /> | 30 | height="408" label="Performance" left="102" mouse_opaque="true" |
16 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 31 | name="bandwidth_panel" width="517"> |
17 | bottom_delta="4" drop_shadow_visible="true" enabled="true" | 32 | |
18 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 33 | |
19 | height="10" left_delta="186" mouse_opaque="false" name="text_box2" | 34 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
20 | v_pad="0" width="200"> | 35 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
21 | kbps (kilobits per second) | 36 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
22 | </text> | 37 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> |
23 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 38 | Maximum Viewer Bandwidth: |
24 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" | 39 | </text> |
25 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 40 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
26 | height="10" left="12" mouse_opaque="false" name="cache_size_label_l" | 41 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" |
27 | v_pad="0" width="200"> | 42 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
28 | Disk cache size (MB): | 43 | height="10" left="50" mouse_opaque="false" name="Speed:" |
29 | </text> | 44 | v_pad="0" width="200"> |
30 | <slider bottom_delta="-25" can_edit_text="true" control_name="CacheSize" | 45 | Speed: |
31 | decimal_digits="0" enabled="true" follows="left|top" height="15" | 46 | </text> |
32 | increment="10" initial_val="50" left_delta="0" max_val="1000" min_val="10" | 47 | <slider bottom_delta="-4" can_edit_text="true" control_name="ThrottleBandwidthKBPS" |
33 | mouse_opaque="true" name="cache_size" show_text="true" width="180" /> | 48 | decimal_digits="0" enabled="true" follows="left|top" height="15" |
34 | <button bottom_delta="-4" enabled="true" follows="left|top" | 49 | increment="10" initial_val="1000" left_delta="50" max_val="5000" min_val="50" |
35 | font="SansSerif" halign="center" height="22" label="Clear Disk Cache" left="340" | 50 | mouse_opaque="true" name="max_bandwidth" show_text="true" value="1000" |
36 | left_delta="186" mouse_opaque="true" name="clear_cache" scale_image="true" | 51 | width="160" /> |
37 | width="150" /> | 52 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
38 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 53 | bottom_delta="4" drop_shadow_visible="true" enabled="true" |
39 | bottom_delta="-17" drop_shadow_visible="true" enabled="true" | 54 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
40 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 55 | height="10" left_delta="166" mouse_opaque="false" name="text_box2" |
41 | height="10" left="12" mouse_opaque="false" name="cache_location_label" | 56 | v_pad="0" width="200"> |
42 | v_pad="0" width="200"> | 57 | kbps (kilobits per second) |
43 | Disk cache location: | 58 | </text> |
44 | </text> | 59 | |
45 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-28" | 60 | |
46 | enabled="false" follows="left|top" font="SansSerif" | 61 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
47 | handle_edit_keys_directly="true" height="20" left_delta="0" | 62 | height="1" left="55" name="border" width="380" /> |
48 | max_length="4096" mouse_opaque="true" name="cache_location" | 63 | |
49 | select_all_on_focus_received="false" width="470" word_wrap="false" /> | 64 | |
50 | <button bottom_delta="-25" enabled="true" follows="left|top" font="SansSerif" | 65 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
51 | halign="center" height="22" label="Set" label_selected="Set" left_delta="0" | 66 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
52 | mouse_opaque="true" name="set_cache" scale_image="true" width="100" /> | 67 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
53 | <button bottom="-105" bottom_delta="0" enabled="true" follows="left|top" | 68 | mouse_opaque="false" name="Texture Fetching:" v_pad="0" width="200"> |
54 | font="SansSerif" halign="center" height="22" label="Reset" | 69 | Texture Fetching: |
55 | label_selected="Set" left_delta="103" mouse_opaque="true" | 70 | </text> |
56 | name="reset_cache" scale_image="true" width="100" /> | 71 | |
57 | <check_box bottom="-173" bottom_delta="-25" control_name="ConnectionPortEnabled" | 72 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
58 | enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 73 | font="SansSerifSmall" height="16" initial_value="false" |
59 | initial_value="false" label="Enable custom outgoing port" left="12" | 74 | label="Use HTTP texture fetching (experimental)" left="50" mouse_opaque="true" |
60 | mouse_opaque="true" name="connection_port_enabled" radio_style="false" | 75 | name="http_texture_check" radio_style="false" width="217" /> |
61 | tool_tip="Enables custom port for outgoing connections" | 76 | |
62 | width="256" /> | 77 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
63 | <spinner bottom="-193" bottom_delta="-20" control_name="ConnectionPort" | 78 | font="SansSerifSmall" height="16" initial_value="false" |
64 | decimal_digits="0" enabled="true" follows="left|top" height="16" | 79 | label="Increase rez speed via draw distance stepping" left_delta="0" mouse_opaque="true" |
65 | increment="1" initial_val="13000" label="Port number:" label_width="75" | 80 | name="speed_rez_check" radio_style="false" width="217" /> |
66 | left_delta="20" max_val="13050" min_val="13000" mouse_opaque="true" | 81 | <spinner bottom_delta="-20" decimal_digits="0" |
67 | name="connection_port" width="140" /> | 82 | tool_tip="Interval in seconds between each draw distance increment" |
68 | 83 | follows="left|top" height="16" increment="1" initial_val="12" | |
69 | <!-- XMLRPC PROXY --> | 84 | label="Step interval every:" label_width="105" left_delta="30" max_val="20" |
70 | 85 | min_val="1" mouse_opaque="true" name="speed_rez_interval_spinner" width="145" /> | |
71 | <check_box bottom_delta="-25" enabled="true" | 86 | <text bottom_delta="0" follows="top|left" height="15" left_delta="150" |
72 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 87 | name="speed_rez_seconds_text" width="115"> |
73 | label="Enable XMLRPC proxy (Login, Land, and Money purchases)" left="15" mouse_opaque="true" | 88 | seconds |
74 | name="xmlrpc_proxy_enabled" radio_style="false" width="300" /> | 89 | </text> |
75 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 90 | |
76 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | 91 | |
77 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 92 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
78 | height="10" left_delta="20" mouse_opaque="false" name="xmlrpc_proxy_text_label" | 93 | height="1" left="55" name="border" width="380" /> |
79 | v_pad="0" width="128"> | 94 | |
80 | Address: | 95 | |
81 | </text> | 96 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
82 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | 97 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
83 | height="20" left="112" name="xmlrpc_proxy_editor" | 98 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
84 | tool_tip="The name or IP address of the proxy you would like to use" | 99 | mouse_opaque="false" name="Disk Cache:" v_pad="0" width="200"> |
85 | width="200" /> | 100 | Disk Cache: |
86 | <spinner bottom_delta="-20" decimal_digits="0" | 101 | </text> |
87 | enabled="true" follows="left|top" height="16" increment="1" | 102 | |
88 | initial_val="80" label="Port number:" label_width="75" left="35" | 103 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
89 | max_val="65535" min_val="10" mouse_opaque="true" name="xmlrpc_proxy_port" | 104 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" |
90 | width="140" /> | 105 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
91 | 106 | height="10" left="50" mouse_opaque="false" name="cache_size_label_l" | |
92 | <!-- SOCKS 5 PROXY --> | 107 | v_pad="0" width="200"> |
93 | 108 | Size: | |
94 | <check_box bottom_delta="-24" enabled="true" | 109 | </text> |
95 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 110 | <slider bottom_delta="-4" can_edit_text="true" control_name="CacheSize" |
96 | label="Enable SOCKS 5 proxy" left="15" mouse_opaque="true" | 111 | decimal_digits="0" enabled="true" follows="left|top" height="15" |
97 | name="socks5_proxy_enabled" radio_style="false" width="256" /> | 112 | increment="10" initial_val="50" left_delta="50" max_val="1000" min_val="10" |
98 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 113 | mouse_opaque="true" name="disk_cache_size" show_text="true" width="160" /> |
99 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | 114 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
100 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 115 | bottom_delta="4" drop_shadow_visible="true" enabled="true" |
101 | height="10" left="35" mouse_opaque="false" name="socks5_host_label" | 116 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
102 | v_pad="0" width="128"> | 117 | height="10" left_delta="166" mouse_opaque="false" name="text_box5" |
103 | SOCKS 5 host: | 118 | v_pad="0" width="200"> |
104 | </text> | 119 | megabytes |
105 | <line_editor bottom_delta="-6" enabled="true" follows="left|top" font="SansSerif" | 120 | </text> |
106 | height="20" left="113" name="socks5_proxy_host" | 121 | |
107 | tool_tip="The name or IP address of the SOCKS5 proxy you would like to use" | 122 | <button bottom_delta="-30" enabled="true" follows="left|top" |
108 | width="200" /> | 123 | font="SansSerifSmall" halign="center" height="20" label="Clear Disk Cache" |
109 | <spinner bottom_delta="-20" decimal_digits="0" | 124 | left="50" mouse_opaque="true" name="clear_disk_cache" scale_image="true" |
110 | enabled="true" follows="left|top" height="16" increment="1" | 125 | width="160" /> |
111 | initial_val="80" label="Port number:" label_width="75" left="35" | 126 | |
112 | max_val="65535" min_val="10" mouse_opaque="true" name="socks5_proxy_port" | 127 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
113 | width="140" /> | 128 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" |
114 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 129 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
115 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 130 | height="10" left="50" mouse_opaque="false" name="cache_location_label" |
116 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 131 | v_pad="0" width="200"> |
117 | height="10" left="35" mouse_opaque="false" name="socks5_auth_label" | 132 | Location: |
118 | v_pad="0" width="128"> | 133 | </text> |
119 | SOCKS 5 authentication: | 134 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-25" |
120 | </text> | 135 | enabled="false" follows="left|top" font="SansSerif" |
121 | <radio_group bottom_delta="-6" draw_border="false" follows="left|top" height="20" left="35" | 136 | handle_edit_keys_directly="true" height="20" left_delta="0" |
122 | name="socks5_auth" width="420"> | 137 | max_length="4096" mouse_opaque="true" name="disk_cache_location" |
123 | <radio_item bottom="0" height="20" left_delta="80" name="None" width="50" | 138 | select_all_on_focus_received="false" width="395" word_wrap="false" /> |
124 | tool_tip="No authentication"> | 139 | <button bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" |
125 | None | 140 | halign="center" height="20" label="Change Location" left_delta="0" |
126 | </radio_item> | 141 | mouse_opaque="true" name="set_disk_cache" scale_image="true" width="160" /> |
127 | <radio_item bottom="0" height="20" left_delta="50" name="UserPass" width="50" | 142 | <button bottom_delta="0" enabled="true" follows="left|top" |
128 | tool_tip="Username / Password authentication"> | 143 | font="SansSerifSmall" halign="center" height="20" label="Reset to Default" |
129 | Username / Password | 144 | left_delta="165" mouse_opaque="true" |
130 | </radio_item> | 145 | name="reset_disk_cache" scale_image="true" width="160" /> |
131 | </radio_group> | 146 | |
132 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 147 | |
133 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" | 148 | </panel> |
134 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 149 | |
135 | height="10" left="122" mouse_opaque="false" name="socks5_username_label" | 150 | |
136 | v_pad="0" width="128"> | 151 | <!-- PROXY SETTINGS PANEL --> |
137 | Username: | 152 | |
138 | </text> | 153 | |
139 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | 154 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Proxy Settings" |
140 | height="20" left="200" name="socks5_proxy_username" | 155 | left="1" mouse_opaque="true" name="proxies" width="418"> |
141 | tool_tip="Username for the Socks5 proxy" | 156 | |
142 | width="200" /> | 157 | |
143 | 158 | <!-- XMLRPC PROXY --> | |
144 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 159 | |
145 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" | 160 | |
146 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 161 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
147 | height="10" left="122" mouse_opaque="false" name="socks5_password_label" | 162 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
148 | v_pad="0" width="128"> | 163 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" |
149 | Password: | 164 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> |
150 | </text> | 165 | XMLRPC: |
151 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | 166 | </text> |
152 | height="20" left="200" name="socks5_proxy_password" | 167 | |
153 | tool_tip="Password for the Socks5 proxy" | 168 | <check_box bottom_delta="-25" enabled="true" |
154 | width="200" /> | 169 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
155 | 170 | label="Enable XMLRPC proxy (Login, Land, and Money purchases)" left="50" mouse_opaque="true" | |
156 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 171 | name="xmlrpc_proxy_enabled" radio_style="false" width="300" /> |
157 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | 172 | |
158 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 173 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
159 | height="10" left="35" mouse_opaque="false" name="http_proxy_label" | 174 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" |
160 | v_pad="0" width="128"> | 175 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
161 | HTTP proxy: | 176 | height="10" left_delta="30" mouse_opaque="false" name="xmlrpc_proxy_text_label" |
162 | </text> | 177 | v_pad="0" width="128"> |
163 | <radio_group bottom_delta="-8" draw_border="false" follows="left|top" height="20" left="35" | 178 | Address: |
164 | name="socks5_http_proxy_type" width="380" > | 179 | </text> |
165 | <radio_item height="20" bottom="0" left="100" name="None" width="50" | 180 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" |
166 | tool_tip="No HTTP proxy"> | 181 | height="20" left_delta="50" name="xmlrpc_proxy_editor" |
167 | None | 182 | tool_tip="The name or IP address of the proxy you would like to use" |
168 | </radio_item> | 183 | width="200" /> |
169 | <radio_item height="20" bottom="0" left="170" name="Socks" width="50" | 184 | <spinner bottom_delta="-20" decimal_digits="0" |
170 | tool_tip="Use Socks for HTTP proxy"> | 185 | enabled="true" follows="left|top" height="16" increment="1" |
171 | SOCKS 5 | 186 | initial_val="80" label="Port number:" label_width="75" left_delta="-50" |
172 | </radio_item> | 187 | max_val="65535" min_val="10" mouse_opaque="true" name="xmlrpc_proxy_port" |
173 | <radio_item height="20" bottom="0" left="250" name="Web" width="50" | 188 | width="140" /> |
174 | tool_tip="Use web proxy for HTTP proxy"> | 189 | |
175 | Web | 190 | |
176 | </radio_item> | 191 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" |
177 | </radio_group> | 192 | height="1" left="55" name="border" width="380" /> |
193 | |||
194 | |||
195 | <!-- SOCKS 5 PROXY --> | ||
196 | |||
197 | |||
198 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
199 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
200 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="20" | ||
201 | mouse_opaque="false" name="text_box" v_pad="0" width="200"> | ||
202 | SOCKS 5: | ||
203 | </text> | ||
204 | |||
205 | <check_box bottom_delta="-25" enabled="true" | ||
206 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
207 | label="Enable SOCKS 5 proxy" left="50" mouse_opaque="true" | ||
208 | name="socks5_proxy_enabled" radio_style="false" width="256" /> | ||
209 | |||
210 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
211 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | ||
212 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
213 | height="10" left_delta="30" mouse_opaque="false" name="socks5_host_label" | ||
214 | v_pad="0" width="128"> | ||
215 | SOCKS 5 host: | ||
216 | </text> | ||
217 | <line_editor bottom_delta="-6" enabled="true" follows="left|top" font="SansSerif" | ||
218 | height="20" left_delta="80" name="socks5_proxy_host" | ||
219 | tool_tip="The name or IP address of the SOCKS5 proxy you would like to use" | ||
220 | width="200" /> | ||
221 | <spinner bottom_delta="-20" decimal_digits="0" | ||
222 | enabled="true" follows="left|top" height="16" increment="1" | ||
223 | initial_val="80" label="Port number:" label_width="78" left_delta="-80" | ||
224 | max_val="65535" min_val="10" mouse_opaque="true" name="socks5_proxy_port" | ||
225 | width="140" /> | ||
226 | |||
227 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
228 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" | ||
229 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
230 | height="10" left_delta="0" mouse_opaque="false" name="socks5_auth_label" | ||
231 | v_pad="0" width="128"> | ||
232 | SOCKS 5 authentication: | ||
233 | </text> | ||
234 | <radio_group bottom_delta="-6" draw_border="false" follows="left|top" height="20" left_delta="0" | ||
235 | name="socks5_auth" width="420"> | ||
236 | <radio_item bottom="0" height="20" left_delta="80" name="None" width="50" | ||
237 | tool_tip="No authentication"> | ||
238 | None | ||
239 | </radio_item> | ||
240 | <radio_item bottom="0" height="20" left_delta="50" name="UserPass" width="50" | ||
241 | tool_tip="Username / Password authentication"> | ||
242 | Username / Password | ||
243 | </radio_item> | ||
244 | </radio_group> | ||
245 | |||
246 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
247 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" | ||
248 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
249 | height="10" left="122" mouse_opaque="false" name="socks5_username_label" | ||
250 | v_pad="0" width="128"> | ||
251 | Username: | ||
252 | </text> | ||
253 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
254 | height="20" left="200" name="socks5_proxy_username" | ||
255 | tool_tip="Username for the Socks5 proxy" | ||
256 | width="200" /> | ||
257 | |||
258 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
259 | bottom_delta="-14" drop_shadow_visible="true" enabled="true" | ||
260 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
261 | height="10" left="122" mouse_opaque="false" name="socks5_password_label" | ||
262 | v_pad="0" width="128"> | ||
263 | Password: | ||
264 | </text> | ||
265 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
266 | height="20" left="200" name="socks5_proxy_password" | ||
267 | tool_tip="Password for the Socks5 proxy" | ||
268 | width="200" /> | ||
269 | |||
270 | |||
271 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
272 | height="1" left="55" name="border" width="380" /> | ||
273 | |||
274 | |||
275 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
276 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
277 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
278 | height="10" left="20" mouse_opaque="false" name="http_proxy_label" | ||
279 | v_pad="0" width="128"> | ||
280 | HTTP Textures Proxy: | ||
281 | </text> | ||
282 | <radio_group bottom_delta="-25" draw_border="false" follows="left|top" height="20" left="50" | ||
283 | name="socks5_http_proxy_type" width="380" > | ||
284 | <radio_item height="20" bottom="0" left="50" name="None" width="50" | ||
285 | tool_tip="No HTTP proxy"> | ||
286 | None | ||
287 | </radio_item> | ||
288 | <radio_item height="20" bottom="0" left="160" name="Socks" width="50" | ||
289 | tool_tip="Use Socks for HTTP proxy"> | ||
290 | SOCKS 5 | ||
291 | </radio_item> | ||
292 | <radio_item height="20" bottom="0" left="270" name="Web" width="50" | ||
293 | tool_tip="Use web proxy for HTTP proxy"> | ||
294 | Web | ||
295 | </radio_item> | ||
296 | </radio_group> | ||
297 | |||
298 | |||
299 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
300 | height="1" left="55" name="border" width="380" /> | ||
301 | |||
302 | |||
303 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
304 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
305 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
306 | height="10" left="20" mouse_opaque="false" name="port_label" | ||
307 | v_pad="0" width="128"> | ||
308 | Ougoing Connections: | ||
309 | </text> | ||
310 | <check_box bottom_delta="-25" control_name="ConnectionPortEnabled" | ||
311 | enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
312 | initial_value="false" label="Enable custom outgoing port" left_delta="30" | ||
313 | mouse_opaque="true" name="connection_port_enabled" radio_style="false" | ||
314 | tool_tip="Enables custom port for outgoing connections" | ||
315 | width="256" /> | ||
316 | <spinner bottom_delta="-20" control_name="ConnectionPort" | ||
317 | decimal_digits="0" enabled="true" follows="left|top" height="16" | ||
318 | increment="1" initial_val="13000" label="Port number:" label_width="75" | ||
319 | left_delta="30" max_val="13050" min_val="13000" mouse_opaque="true" | ||
320 | name="connection_port" width="140" /> | ||
321 | |||
322 | |||
323 | </panel> | ||
324 | |||
325 | |||
326 | <!-- WEB BROWSER PANEL --> | ||
327 | |||
328 | |||
329 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="Web Browser" | ||
330 | left="1" mouse_opaque="true" name="web_browser" width="418"> | ||
331 | |||
332 | |||
333 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
334 | bottom="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
335 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
336 | height="10" left="20" mouse_opaque="false" name="open_links_label" | ||
337 | v_pad="0" width="128"> | ||
338 | Open Links In: | ||
339 | </text> | ||
340 | |||
341 | <radio_group bottom_delta="-45" draw_border="false" follows="top|left" height="40" left="50" | ||
342 | name="use_external_browser" width="480"> | ||
343 | <radio_item bottom="-20" height="20" left="0" name="external" width="480" | ||
344 | tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."> | ||
345 | My external browser (Firefox, Safari, Internet Explorer, etc.) | ||
346 | </radio_item> | ||
347 | <radio_item bottom="-40" height="20" left="0" name="internal" width="480" | ||
348 | tool_tip="Use the internal browser for help, web links, etc. This browser opens as a new window inside Imprudence."> | ||
349 | Imprudence's internal browser | ||
350 | </radio_item> | ||
351 | </radio_group> | ||
352 | |||
353 | |||
354 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
355 | height="1" left="55" name="border" width="380" /> | ||
356 | |||
357 | |||
358 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
359 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
360 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
361 | height="10" left="20" mouse_opaque="false" name="internal_browser_label" | ||
362 | v_pad="0" width="128"> | ||
363 | Internal Browser: | ||
364 | </text> | ||
365 | |||
366 | <button bottom_delta="-30" enabled="true" follows="left|top" font="SansSerifSmall" | ||
367 | halign="center" height="20" label="Clear Internal Browser Cache" left_delta="30" | ||
368 | mouse_opaque="true" name="clear_web_cache" scale_image="true" width="320" /> | ||
369 | |||
370 | <check_box bottom_delta="-35" enabled="true" follows="left|top" | ||
371 | font="SansSerifSmall" height="16" initial_value="false" | ||
372 | label="Accept cookies while using internal browser" left_delta="0" mouse_opaque="true" | ||
373 | tool_top="Allows the internal browser to accept cookies from websites" | ||
374 | name="cookies_enabled" radio_style="false" width="256" /> | ||
375 | <button bottom_delta="-25" enabled="true" follows="left|top" font="SansSerifSmall" | ||
376 | halign="center" height="20" label="Clear Cookies" left_delta="30" | ||
377 | tool_tip="Clear Cookies" | ||
378 | mouse_opaque="true" name="clear_ookies" scale_image="true" width="160" /> | ||
379 | |||
380 | <check_box bottom_delta="-35" enabled="true" | ||
381 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
382 | label="Enable proxy for internal browser" left="50" mouse_opaque="true" | ||
383 | name="web_proxy_enabled" radio_style="false" width="256" /> | ||
384 | |||
385 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
386 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | ||
387 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
388 | height="10" left_delta="30" mouse_opaque="false" name="proxy_text_label" | ||
389 | v_pad="0" width="128"> | ||
390 | Address: | ||
391 | </text> | ||
392 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
393 | height="20" left_delta="50" name="web_proxy_editor" | ||
394 | tool_tip="The name or IP address of the proxy you would like to use" | ||
395 | width="200" /> | ||
396 | <spinner bottom_delta="-20" decimal_digits="0" | ||
397 | enabled="true" follows="left|top" height="16" increment="1" | ||
398 | initial_val="80" label="Port number:" label_width="75" left_delta="-50" | ||
399 | max_val="12000" min_val="10" mouse_opaque="true" name="web_proxy_port" | ||
400 | width="140" /> | ||
401 | |||
402 | |||
403 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
404 | height="1" left="55" name="border" width="380" /> | ||
405 | |||
406 | |||
407 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
408 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" | ||
409 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
410 | height="10" left="20" mouse_opaque="false" name="search_url_label" | ||
411 | v_pad="0" width="200"> | ||
412 | Custom All (Web) Search URL: | ||
413 | </text> | ||
414 | |||
415 | <line_editor bottom_delta="-25" enabled="true" follows="left|top" | ||
416 | font="SansSerifSmall" height="18" left_delta="30" name="world_search_editor" | ||
417 | tool_tip="Address of the world search engine you would like to use" | ||
418 | width="395" /> | ||
419 | <button bottom_delta="-22" enabled="true" follows="left|top" font="SansSerifSmall" | ||
420 | halign="center" height="20" label="Clear" left_delta="0" | ||
421 | tool_tip="clear field" | ||
422 | mouse_opaque="true" name="world_search_clear" scale_image="true" width="160" /> | ||
423 | <button bottom_delta="0" enabled="true" follows="left|top" font="SansSerifSmall" | ||
424 | halign="center" height="20" label="Reset to Default" left_delta="165" | ||
425 | mouse_opaque="true" name="world_search_reset_default" scale_image="true" width="160" /> | ||
426 | |||
427 | |||
428 | </panel> | ||
429 | |||
430 | |||
431 | </tab_container> | ||
432 | |||
433 | |||
178 | </panel> | 434 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml index 2168137..061d02c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml | |||
@@ -1,47 +1,117 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel border="true" bottom="0" height="500" label="Popups" left="0" name="popups" | 2 | |
3 | title="Popups" width="400"> | 3 | <!-- |
4 | <text bottom="-20" follows="top|left" left="15" width="300" name="dont_show_label"> | 4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP |
5 | Hide These Popups: | 5 | |
6 | </text> | 6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP |
7 | <scroll_list follows="top|left" height="88" left="15" name="disabled_popups" width="480" /> | 7 | |
8 | <button follows="top|left" height="20" label="Enable This Popup" left="15" | 8 | USE LINES BETWEEN GROUPS |
9 | name="enable_popup" width="175" /> | 9 | |
10 | <button follows="top|left" height="20" label="Enable All Popups" left="200" | 10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS |
11 | name="reset_dialogs_btn" | 11 | |
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
17 | <panel border="true" bottom="-409" height="408" label="Notifications" left="0" name="popups" | ||
18 | title="Notifications" width="400"> | ||
19 | |||
20 | |||
21 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
22 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
23 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" | ||
24 | mouse_opaque="true" name="dont_show_label" v_pad="0" width="200" font-style="BOLD|SHADOW"> | ||
25 | Hide These Notifications: | ||
26 | </text> | ||
27 | |||
28 | <scroll_list follows="top|left" height="88" left="50" name="disabled_popups" width="420"/> | ||
29 | |||
30 | <button follows="top|left" height="20" label="Enable This" left="50" bottom_delta="-22" | ||
31 | name="enable_popup" width="160" font="SansSerifSmall" /> | ||
32 | <button follows="top|left" height="20" label="Enable All" left="270" | ||
33 | name="reset_dialogs_btn" font="SansSerifSmall" | ||
12 | tool_tip="Enable all of the optional popups and 'first time use' notifications." | 34 | tool_tip="Enable all of the optional popups and 'first time use' notifications." |
13 | width="175" bottom_delta="0" /> | 35 | width="160" bottom_delta="0" /> |
14 | <text follows="top|left" left="15" width="128" name="show_label" bottom_delta="-24"> | 36 | |
15 | Show These Popups: | 37 | |
16 | </text> | 38 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
17 | <scroll_list follows="top|left" height="88" left="15" name="enabled_popups" width="480" /> | 39 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" follows="left|top" |
18 | <button bottom_delta="-24" follows="top|left" height="20" | 40 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" |
19 | label="Disable All Popups" left="200" | 41 | mouse_opaque="true" name="show_label" v_pad="0" width="200" font-style="BOLD|SHADOW"> |
20 | name="skip_dialogs_btn" | 42 | Show These Notifications: |
43 | </text> | ||
44 | |||
45 | <scroll_list follows="top|left" height="88" left="50" name="enabled_popups" width="420" /> | ||
46 | |||
47 | <button bottom_delta="-22" follows="top|left" height="20" | ||
48 | label="Disable All" left="270" | ||
49 | name="skip_dialogs_btn" font="SansSerifSmall" | ||
21 | tool_tip="Disable all of the optional popups and 'first time use' notifications." | 50 | tool_tip="Disable all of the optional popups and 'first time use' notifications." |
22 | width="175" /> | 51 | width="160" /> |
52 | |||
53 | |||
54 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
55 | height="1" left="55" name="border" width="380" /> | ||
56 | |||
57 | |||
23 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 58 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
24 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" | 59 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" font-style="BOLD|SHADOW" |
25 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 60 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
26 | height="10" left="15" mouse_opaque="false" name="text_box2" v_pad="0" | 61 | height="10" left="20" mouse_opaque="false" name="text_box2" v_pad="0" |
27 | width="270"> | 62 | width="270"> |
28 | Offers of Notecards, Textures and Landmarks: | 63 | Inventory Offers: |
29 | </text> | 64 | </text> |
30 | <check_box bottom_delta="-25" enabled="true" | 65 | <check_box bottom_delta="-25" enabled="true" |
31 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 66 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
32 | label="Automatically accept" left="40" mouse_opaque="true" | 67 | label="Automatically accept" left="50" mouse_opaque="true" |
33 | name="accept_new_inventory" radio_style="false" width="270" /> | 68 | name="accept_new_inventory" radio_style="false" width="270" /> |
34 | <check_box bottom_delta="-20" enabled="true" | 69 | <check_box bottom_delta="-20" enabled="true" |
35 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 70 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
36 | label="Automatically view after accepting" left="40" mouse_opaque="true" | 71 | label="Automatically view Notecards, Textures and Landmarks after accepting" left_delta="0" mouse_opaque="true" |
37 | name="show_new_inventory" radio_style="false" width="270" /> | 72 | name="show_new_inventory" radio_style="false" width="270" /> |
38 | <check_box bottom_delta="-20" enabled="true" | 73 | <check_box bottom_delta="-20" enabled="true" |
39 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 74 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
40 | label="Automatically show newly accepted objects in inventory" left="40" mouse_opaque="true" | 75 | label="Automatically show newly accepted objects in inventory" left_delta="0" mouse_opaque="true" |
41 | name="show_in_inventory" radio_style="false" width="270" /> | 76 | name="show_in_inventory" radio_style="false" width="270" /> |
42 | <check_box bottom_delta="-30" enabled="true" | 77 | |
78 | |||
79 | <view_border bevel_style="none" border_thickness="1" bottom_delta="-15" follows="left|top" | ||
80 | height="1" left="55" name="border" width="380" /> | ||
81 | |||
82 | |||
83 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
84 | bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
85 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" font-style="BOLD|SHADOW" | ||
86 | mouse_opaque="true" name="radar_text" v_pad="0" width="128"> | ||
87 | Chat Notifications: | ||
88 | </text> | ||
89 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
90 | bottom_delta="-16" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
91 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="50" | ||
92 | mouse_opaque="true" name="When an avatar enters:" v_pad="0" width="128"> | ||
93 | When an avatar enters: | ||
94 | </text> | ||
95 | <check_box bottom_delta="-6" enabled="true" | ||
96 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
97 | label="Chat range" left="270" | ||
98 | mouse_opaque="true" name="mini_map_notify_chat" radio_style="false" | ||
99 | width="256" /> | ||
100 | <check_box bottom_delta="0" enabled="true" | ||
101 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
102 | label="Current region" left="390" | ||
103 | mouse_opaque="true" name="mini_map_notify_sim" radio_style="false" | ||
104 | width="256" /> | ||
105 | |||
106 | <check_box bottom_delta="-20" enabled="true" | ||
107 | follows="left|top" font="SansSerifSmall" height="16" | ||
108 | initial_value="false" label="When Friends come online" left="50" | ||
109 | mouse_opaque="true" name="friends_online_notify_checkbox" | ||
110 | radio_style="false" width="256" /> | ||
111 | <check_box bottom_delta="0" enabled="true" | ||
43 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 112 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
44 | label="Notify when [CURRENCY] spent or received" left="15" | 113 | label="When [CURRENCY] spent or received" left="270" |
45 | mouse_opaque="true" name="notify_money_change_checkbox" radio_style="false" | 114 | mouse_opaque="true" name="notify_money_change_checkbox" radio_style="false" |
46 | width="256" /> | 115 | width="256" /> |
116 | |||
47 | </panel> | 117 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml index 4a5c95a..eae0103 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_skins.xml | |||
@@ -1,14 +1,39 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | |||
3 | <!-- | ||
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 17 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" label="Skins" left="102" mouse_opaque="true" | 18 | height="408" label="Skins" left="102" mouse_opaque="true" |
4 | name="Skins panel" width="517"> | 19 | name="Skins panel" width="517"> |
20 | |||
21 | |||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
6 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" | 23 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" font-style="BOLD|SHADOW" |
7 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 24 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="20" |
8 | mouse_opaque="true" name="muting_text" v_pad="0" width="500"> | 25 | mouse_opaque="true" name="muting_text" v_pad="0" width="500"> |
9 | Select a skin (requires restart). (Please see the skin folders for information and credits) | 26 | Select Skin: |
10 | </text> | 27 | </text> |
11 | <radio_group bottom="0" draw_border="false" follows="top|left" height="380" left="12" | 28 | |
29 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
30 | bottom="-22" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
31 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left_delta="80" | ||
32 | mouse_opaque="true" name="requires_restart_text" v_pad="0" width="500"> | ||
33 | (requires restart). See skin folder for credits | ||
34 | </text> | ||
35 | |||
36 | <radio_group bottom="0" draw_border="false" follows="top|left" height="380" left="50" | ||
12 | name="skin_selection" width="480"> | 37 | name="skin_selection" width="480"> |
13 | <radio_item bottom="-20" height="20" left="0" name="meta7" width="480"> | 38 | <radio_item bottom="-20" height="20" left="0" name="meta7" width="480"> |
14 | meta 7 | 39 | meta 7 |
@@ -24,40 +49,40 @@ | |||
24 | </radio_item> | 49 | </radio_item> |
25 | </radio_group> | 50 | </radio_group> |
26 | 51 | ||
27 | <button left="130" bottom="-125" width="216" height="95" name="meta7_preview" | 52 | <button left="150" bottom="-130" width="216" height="95" name="meta7_preview" |
28 | scale_image="true" label="" image_selected="skin_thumbnail_meta7.png" | 53 | scale_image="true" label="" image_selected="skin_thumbnail_meta7.png" |
29 | image_unselected="skin_thumbnail_meta7.png" image_hover_selected="skin_thumbnail_meta7.png" | 54 | image_hover_selected="skin_thumbnail_meta7.png" image_unselected="skin_thumbnail_meta7.png" |
30 | image_hover_unselected="skin_thumbnail_meta7.png" follows="left|top" /> | 55 | image_hover_unselected="skin_thumbnail_meta7.png" follows="left|top" /> |
31 | <button left="130" bottom_delta="-100" width="216" height="95" name="m7white_preview" | 56 | <button left="150" bottom_delta="-100" width="216" height="95" name="m7white_preview" |
32 | scale_image="true" label="" image_selected="skin_thumbnail_white_meta7.png" | 57 | scale_image="true" label="" image_selected="skin_thumbnail_white_meta7.png" |
33 | image_hover_selected="skin_thumbnail_white_meta7.png" image_unselected="skin_thumbnail_white_meta7.png" | 58 | image_hover_selected="skin_thumbnail_white_meta7.png" image_unselected="skin_thumbnail_white_meta7.png" |
34 | image_hover_unselected="skin_thumbnail_white_meta7.png" follows="left|top" /> | 59 | image_hover_unselected="skin_thumbnail_white_meta7.png" follows="left|top" /> |
35 | <button left="130" bottom_delta="-100" width="216" height="95" name="pslpurple_preview" | 60 | <button left="150" bottom_delta="-100" width="216" height="95" name="pslpurple_preview" |
36 | scale_image="true" label="" image_selected="skin_thumbnail_pslpurple.png" | 61 | scale_image="true" label="" image_selected="skin_thumbnail_pslpurple.png" |
37 | image_hover_selected="skin_thumbnail_pslpurple.png" image_unselected="skin_thumbnail_pslpurple.png" | 62 | image_hover_selected="skin_thumbnail_pslpurple.png" image_unselected="skin_thumbnail_pslpurple.png" |
38 | image_hover_unselected="skin_thumbnail_pslpurple.png" follows="left|top" /> | 63 | image_hover_unselected="skin_thumbnail_pslpurple.png" follows="left|top" /> |
39 | <button left="130" bottom_delta="-100" width="216" height="95" name="classic_preview" | 64 | <button left="150" bottom_delta="-100" width="216" height="95" name="classic_preview" |
40 | scale_image="true" label="" image_selected="skin_thumbnail_default.png" | 65 | scale_image="true" label="" image_selected="skin_thumbnail_default.png" |
41 | image_hover_selected="skin_thumbnail_default.png" image_unselected="skin_thumbnail_default.png" | 66 | image_hover_selected="skin_thumbnail_default.png" image_unselected="skin_thumbnail_default.png" |
42 | image_hover_unselected="skin_thumbnail_default.png" follows="left|top" /> | 67 | image_hover_unselected="skin_thumbnail_default.png" follows="left|top" /> |
43 | <text name="skin_current_text" | 68 | <text name="skin_current_text" font-style="BOLD|SHADOW" |
44 | left="10" bottom="5" halign="left" height="12" | 69 | left="20" bottom="5" halign="left" height="12" |
45 | follows="left|bottom" h_pad="0" v_pad="0" | 70 | follows="left|bottom" h_pad="0" v_pad="0" |
46 | bg_visible="false" drop_shadow_visible="true" | 71 | bg_visible="false" drop_shadow_visible="true" |
47 | border_visible="false" border_drop_shadow_visible="false" | 72 | border_visible="false" border_drop_shadow_visible="false" |
48 | font="SansSerif" mouse_opaque="true"> | 73 | font="SansSerifSmall" mouse_opaque="true"> |
49 | Other Skin Name: | 74 | Custom Skin Name: |
50 | </text> | 75 | </text> |
51 | <line_editor name="skin_current_edit" | 76 | <line_editor name="skin_current_edit" |
52 | bottom_delta="0" left_delta="120" height="20" width="120" | 77 | bottom_delta="-2" left_delta="110" height="18" width="160" |
53 | follows="left|bottom" font="SansSerif" | 78 | follows="left|bottom" font="SansSerif" |
54 | bevel_style="in" border_style="line" border_thickness="1" | 79 | bevel_style="in" border_style="line" border_thickness="1" |
55 | max_length="31" mouse_opaque="true" | 80 | max_length="31" mouse_opaque="true" |
56 | handle_edit_keys_directly="true" | 81 | handle_edit_keys_directly="true" |
57 | select_all_on_focus_received="true" /> | 82 | select_all_on_focus_received="true" /> |
58 | <button name="save_skin" label="Save" | 83 | <button name="save_skin" label="Save" |
59 | bottom_delta="-2" left_delta="120" height="24" width="90" | 84 | bottom_delta="-2" left_delta="165" height="20" width="110" |
60 | follows="left|center" font="SansSerif" halign="center" | 85 | follows="left|center" font="SansSerifSmall" halign="center" |
61 | mouse_opaque="true" scale_image="TRUE" /> | 86 | mouse_opaque="true" scale_image="TRUE" /> |
62 | </panel> | 87 | </panel> |
63 | 88 | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml index b4939ca..d9c3f5e 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml | |||
@@ -1,20 +1,39 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 2 | |
3 | height="408" label="Voice" left="102" mouse_opaque="true" name="chat" | 3 | <!-- |
4 | ALL PREFS OPTIONS START AT 20px FROM LEFT, 10px FROM TOP | ||
5 | |||
6 | USE bottom_delta BETWEEN OPTIONS IN A GROUP | ||
7 | |||
8 | USE LINES BETWEEN GROUPS | ||
9 | |||
10 | USE font-style="BOLD|SHADOW" FOR GROUP LABELS | ||
11 | |||
12 | GROUP LABEL CONTENTS ARE INDENTED 30px | ||
13 | |||
14 | USE left="270" FOR TABBING OPTIONS | ||
15 | --> | ||
16 | |||
17 | <panel border="true" bottom="-20" enabled="true" follows="left|top|right|bottom" | ||
18 | height="408" label="Voice" left="102" mouse_opaque="true" name="voice_chat" | ||
4 | width="517"> | 19 | width="517"> |
5 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-26" | 20 | |
6 | embedded_items="false" enabled="false" follows="left|top" | 21 | |
7 | font="SansSerifSmall" height="20" hide_border="true" hide_scrollbar="true" | 22 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom="-30" |
8 | left_delta="8" max_length="65535" mouse_opaque="true" | 23 | embedded_items="false" enabled="false" follows="left|top" |
9 | name="voice_unavailable" tab_stop="false" width="450" word_wrap="true"> | 24 | font="SansSerifSmall" height="20" hide_border="true" hide_scrollbar="true" |
10 | Voice Chat Is Not Available | 25 | left="20" max_length="65535" mouse_opaque="true" |
11 | </text_editor> | 26 | name="voice_unavailable" tab_stop="false" width="450" word_wrap="true"> |
12 | <check_box bottom_delta="0" enabled="true" | 27 | Voice Chat Is Not Available |
13 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 28 | </text_editor> |
14 | label="Enable voice chat" left="8" mouse_opaque="true" | 29 | <check_box bottom="-26" enabled="true" |
15 | name="enable_voice_check" radio_style="false" width="200" /> | 30 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
31 | label="Enable voice chat" left="20" mouse_opaque="true" | ||
32 | name="enable_voice_check" radio_style="false" width="200" /> | ||
33 | |||
34 | |||
16 | <radio_group bottom_delta="-40" draw_border="false" follows="left|top" height="40" | 35 | <radio_group bottom_delta="-40" draw_border="false" follows="left|top" height="40" |
17 | left_delta="20" name="ear_location" width="364"> | 36 | left_delta="30" name="ear_location" width="364"> |
18 | <radio_item type="string" length="1" bottom="-19" follows="left|top" height="16" left="3" name="0" width="315"> | 37 | <radio_item type="string" length="1" bottom="-19" follows="left|top" height="16" left="3" name="0" width="315"> |
19 | Hear Voice Chat from camera position. | 38 | Hear Voice Chat from camera position. |
20 | </radio_item> | 39 | </radio_item> |
@@ -22,17 +41,19 @@ | |||
22 | Hear Voice Chat from avatar position. | 41 | Hear Voice Chat from avatar position. |
23 | </radio_item> | 42 | </radio_item> |
24 | </radio_group> | 43 | </radio_group> |
25 | <text type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-20" | 44 | |
26 | embedded_items="false" enabled="true" follows="left|top" | 45 | |
46 | <text type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-30" | ||
47 | embedded_items="false" enabled="true" follows="left|top" font-style="BOLD|SHADOW" | ||
27 | font="SansSerifSmall" height="16" hide_border="true" hide_scrollbar="true" | 48 | font="SansSerifSmall" height="16" hide_border="true" hide_scrollbar="true" |
28 | left_delta="0" max_length="65535" mouse_opaque="true" | 49 | left="20" max_length="65535" mouse_opaque="true" |
29 | name="push_to_talk_heading" width="445" word_wrap="true"> | 50 | name="push_to_talk_heading" width="445" word_wrap="true"> |
30 | Push To Talk: | 51 | Push To Talk: |
31 | </text> | 52 | </text> |
32 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-60" | 53 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-60" |
33 | embedded_items="false" enabled="false" follows="left|top" | 54 | embedded_items="false" enabled="false" follows="left|top" |
34 | font="SansSerifSmall" height="65" hide_border="true" hide_scrollbar="true" | 55 | font="SansSerifSmall" height="65" hide_border="true" hide_scrollbar="true" |
35 | left_delta="20" max_length="65535" mouse_opaque="true" | 56 | left_delta="30" max_length="65535" mouse_opaque="true" |
36 | name="voice_chat_description" tab_stop="false" width="465" word_wrap="true"> | 57 | name="voice_chat_description" tab_stop="false" width="465" word_wrap="true"> |
37 | Push-to-Talk mode lets you control when your voice is transmitted. When in toggle mode, press and release the push-to-talk trigger to switch your microphone on and off. When not in toggle mode, the microphone is active only when the trigger is held down. | 58 | Push-to-Talk mode lets you control when your voice is transmitted. When in toggle mode, press and release the push-to-talk trigger to switch your microphone on and off. When not in toggle mode, the microphone is active only when the trigger is held down. |
38 | </text_editor> | 59 | </text_editor> |
@@ -51,34 +72,38 @@ | |||
51 | drop_shadow_visible="true" enabled="false" | 72 | drop_shadow_visible="true" enabled="false" |
52 | follows="top|left" font="SansSerifSmall" halign="right" height="19" | 73 | follows="top|left" font="SansSerifSmall" halign="right" height="19" |
53 | left_delta="0" max_length="254" mouse_opaque="false" name="modifier_combo" | 74 | left_delta="0" max_length="254" mouse_opaque="false" name="modifier_combo" |
54 | width="280" /> | 75 | width="320" /> |
55 | <button bottom_delta="-25" follows="left|top" font="SansSerif" halign="center" | 76 | <button bottom_delta="-25" follows="left|top" font="SansSerifSmall" halign="center" |
56 | height="20" label="Set Key" left_delta="0" mouse_opaque="true" | 77 | height="20" label="Set Key" left_delta="0" mouse_opaque="true" |
57 | name="set_voice_hotkey_button" width="115" /> | 78 | name="set_voice_hotkey_button" width="160" /> |
58 | <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center" height="20" | 79 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="center" height="20" |
59 | label="Middle Mouse Button" left_delta="120" mouse_opaque="true" | 80 | label="Reset to Default" left_delta="165" mouse_opaque="true" |
60 | name="set_voice_middlemouse_button" width="160" /> | 81 | name="set_voice_middlemouse_button" width="160" /> |
61 | <text allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-25" | 82 | |
62 | embedded_items="false" enabled="true" follows="left|top" height="16" | 83 | |
63 | left="28" name="privacy_heading" width="445"> | 84 | <text allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-30" font="SansSerifSmall" |
85 | embedded_items="false" enabled="true" follows="left|top" height="16" font-style="BOLD|SHADOW" | ||
86 | left="30" name="privacy_heading" width="445"> | ||
64 | Privacy: | 87 | Privacy: |
65 | </text> | 88 | </text> |
66 | <check_box bottom_delta="-20" enabled="true" | 89 | <check_box bottom_delta="-20" enabled="true" |
67 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 90 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
68 | label="Only accept voice calls from people on My Friends list" | 91 | label="Only accept calls from my friends" |
69 | left_delta="20" mouse_opaque="true" name="voice_call_friends_only_check" | 92 | left_delta="30" mouse_opaque="true" name="voice_call_friends_only_check" |
70 | radio_style="false" width="200" /> | 93 | radio_style="false" width="200" /> |
71 | <check_box bottom_delta="-18" enabled="true" | 94 | <check_box bottom_delta="-18" enabled="true" |
72 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 95 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
73 | label="Switch off microphone when ending IM calls" | 96 | label="Switch off microphone when ending calls" |
74 | mouse_opaque="true" name="auto_disengage_mic_check" | 97 | mouse_opaque="true" name="auto_disengage_mic_check" |
75 | radio_style="false" width="200" /> | 98 | radio_style="false" width="200" /> |
76 | <button bottom_delta="-40" follows="left|top" font="SansSerif" height="20" | 99 | |
77 | label="Device Settings" left="28" mouse_opaque="true" | 100 | |
78 | name="device_settings_btn" width="155" /> | 101 | <button bottom_delta="-40" follows="left|top" font="SansSerifSmall" height="20" |
79 | <button bottom_delta="0" follows="left|top" font="SansSerif" halign="center" height="20" | 102 | label="Device Settings" left="30" mouse_opaque="true" |
80 | label="Reconnect to Voice" left_delta="160" mouse_opaque="true" | 103 | name="device_settings_btn" width="160" /> |
81 | name="reset_voice" width="160" /> | 104 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="center" height="20" |
105 | label="Reconnect to Voice" left_delta="160" mouse_opaque="true" | ||
106 | name="reset_voice" width="160" /> | ||
82 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-32" | 107 | <text_editor type="string" length="1" allow_html="false" bg_readonly_color="0 0 0 0" bottom_delta="-32" |
83 | embedded_items="false" enabled="false" follows="left|top" | 108 | embedded_items="false" enabled="false" follows="left|top" |
84 | font="SansSerifSmall" height="35" hide_border="true" hide_scrollbar="true" | 109 | font="SansSerifSmall" height="35" hide_border="true" hide_scrollbar="true" |
@@ -86,4 +111,6 @@ | |||
86 | name="device_settings_text" tab_stop="false" width="450" word_wrap="true"> | 111 | name="device_settings_text" tab_stop="false" width="450" word_wrap="true"> |
87 | NOTE: Running the Device Settings will temporarily disconnect you from Voice Chat, and changes you make will be immediately applied. | 112 | NOTE: Running the Device Settings will temporarily disconnect you from Voice Chat, and changes you make will be immediately applied. |
88 | </text_editor> | 113 | </text_editor> |
114 | |||
115 | |||
89 | </panel> | 116 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml deleted file mode 100644 index b4dbbb5..0000000 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | ||
3 | height="408" label="Web Browser" left="102" mouse_opaque="true" name="web" | ||
4 | width="517"> | ||
5 | <radio_group bottom="-45" draw_border="false" follows="top|left" height="40" left="12" | ||
6 | name="use_external_browser" width="480"> | ||
7 | <radio_item bottom="-20" height="20" left="0" name="external" width="480" | ||
8 | tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."> | ||
9 | Use external web browser (Firefox, Safari, Internet Explorer) | ||
10 | </radio_item> | ||
11 | <radio_item bottom="-40" height="20" left="0" name="internal" width="480" | ||
12 | tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside the viewer."> | ||
13 | Use built-in web browser | ||
14 | </radio_item> | ||
15 | </radio_group> | ||
16 | <button bottom_delta="-30" enabled="true" follows="left|top" font="SansSerif" | ||
17 | halign="center" height="22" label="Clear Built-In Browser Cache" left="35" | ||
18 | mouse_opaque="true" name="clear_cache" scale_image="true" width="250" /> | ||
19 | <check_box bottom_delta="-35" enabled="true" follows="left|top" | ||
20 | font="SansSerifSmall" height="16" initial_value="false" | ||
21 | label="Accept cookies while using built-in web browser" left="15" mouse_opaque="true" | ||
22 | tool_top="Allows the built-in web browser to accept cookies from websites" | ||
23 | name="cookies_enabled" radio_style="false" width="256" /> | ||
24 | <button bottom_delta="-25" enabled="true" follows="left|top" font="SansSerif" | ||
25 | halign="center" height="20" label="Clear Cookies" left_delta="20" | ||
26 | tool_tip="Clear Cookies" | ||
27 | mouse_opaque="true" name="clear_ookies" scale_image="true" width="110" /> | ||
28 | <check_box bottom_delta="-35" enabled="true" | ||
29 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
30 | label="Enable proxy for built-in web browser" left="15" mouse_opaque="true" | ||
31 | name="web_proxy_enabled" radio_style="false" width="256" /> | ||
32 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
33 | bottom_delta="-18" drop_shadow_visible="true" enabled="true" | ||
34 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
35 | height="10" left_delta="20" mouse_opaque="false" name="proxy_text_label" | ||
36 | v_pad="0" width="128"> | ||
37 | Address: | ||
38 | </text> | ||
39 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
40 | height="20" left="112" name="web_proxy_editor" | ||
41 | tool_tip="The name or IP address of the proxy you would like to use" | ||
42 | width="200" /> | ||
43 | <spinner bottom_delta="-20" decimal_digits="0" | ||
44 | enabled="true" follows="left|top" height="16" increment="1" | ||
45 | initial_val="80" label="Port number:" label_width="75" left="35" | ||
46 | max_val="12000" min_val="10" mouse_opaque="true" name="web_proxy_port" | ||
47 | width="140" /> | ||
48 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
49 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" | ||
50 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
51 | height="10" left="15" mouse_opaque="false" name="cache_size_label_l" | ||
52 | v_pad="0" width="200"> | ||
53 | Custom All (web) search tab URL: | ||
54 | </text> | ||
55 | <line_editor bottom_delta="-25" enabled="true" follows="left|top" | ||
56 | font="SansSerifSmall" height="18" left="15" name="world_search_editor" | ||
57 | tool_tip="Address of the world search engine you would like to use" | ||
58 | width="400" /> | ||
59 | <button bottom_delta="-22" enabled="true" follows="left|top" font="SansSerif" | ||
60 | halign="center" height="20" label="Reset" left="15" | ||
61 | tool_tip="Reset to default" | ||
62 | mouse_opaque="true" name="world_search_reset_default" scale_image="true" width="80" /> | ||
63 | <button bottom_delta="0" enabled="true" follows="left|top" font="SansSerif" | ||
64 | halign="center" height="20" label="Clear" left_delta="85" | ||
65 | tool_tip="clear field" | ||
66 | mouse_opaque="true" name="world_search_clear" scale_image="true" width="80" /> | ||
67 | |||
68 | </panel> | ||
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_region_estate.xml b/linden/indra/newview/skins/default/xui/en-us/panel_region_estate.xml index 5dd738a..bcbff32 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_region_estate.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_region_estate.xml | |||
@@ -25,7 +25,7 @@ regions in the estate. | |||
25 | (unknown) | 25 | (unknown) |
26 | </text> | 26 | </text> |
27 | <view_border bevel_style="in" border="true" border_thickness="1" bottom_delta="-295" | 27 | <view_border bevel_style="in" border="true" border_thickness="1" bottom_delta="-295" |
28 | follows="top|left" height="350" left="6" width="250" /> | 28 | follows="top|left" height="290" left="6" width="250" /> |
29 | <check_box bottom_delta="265" follows="left|top" height="20" label="Use Global Time" | 29 | <check_box bottom_delta="265" follows="left|top" height="20" label="Use Global Time" |
30 | left="12" name="use_global_time_check" width="200" /> | 30 | left="12" name="use_global_time_check" width="200" /> |
31 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" | 31 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_about.xml b/linden/indra/newview/skins/default/xui/zh/floater_about.xml index b14f06f..bb975e0 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_about.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_about.xml | |||
@@ -1,6 +1,14 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater name="floater_about" title="关于第二人生"> | 2 | <floater name="floater_about" title="关于第二人生"> |
3 | <tab_container name="about_tab"> | ||
4 | <panel label="版本" name="support_panel"> | ||
5 | <button label="å¤åˆ¶åˆ°å‰ªè´´æ¿" name="copy_btn" /> | ||
6 | </panel> | ||
7 | <panel label="工作人员" name="credits_panel" /> | ||
8 | </tab_container> | ||
9 | |||
3 | <string name="you_are_at"> | 10 | <string name="you_are_at"> |
4 | 您现在ä½äºŽ [POSITION] | 11 | 您现在ä½äºŽ [POSITION] |
5 | </string> | 12 | </string> |
13 | |||
6 | </floater> | 14 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_about_land.xml b/linden/indra/newview/skins/default/xui/zh/floater_about_land.xml index d9c52a2..c83cb24 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_about_land.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_about_land.xml | |||
@@ -2,10 +2,10 @@ | |||
2 | <floater name="floaterland" title="关于土地"> | 2 | <floater name="floaterland" title="关于土地"> |
3 | <tab_container name="landtab"> | 3 | <tab_container name="landtab"> |
4 | <panel label="一般" name="land_general_panel"> | 4 | <panel label="一般" name="land_general_panel"> |
5 | <text length="1" name="Name:" type="string"> | 5 | <text name="Name:" type="string"> |
6 | åå—: | 6 | åå—: |
7 | </text> | 7 | </text> |
8 | <text length="1" name="Description:" type="string"> | 8 | <text name="Description:" type="string"> |
9 | æè¿°: | 9 | æè¿°: |
10 | </text> | 10 | </text> |
11 | <text name="LandType"> | 11 | <text name="LandType"> |
@@ -20,56 +20,56 @@ | |||
20 | <text name="ContentRatingText"> | 20 | <text name="ContentRatingText"> |
21 | Adult | 21 | Adult |
22 | </text> | 22 | </text> |
23 | <text length="1" name="Owner:" type="string"> | 23 | <text name="Owner:" type="string"> |
24 | 主人: | 24 | 主人: |
25 | </text> | 25 | </text> |
26 | <text length="1" name="OwnerText" type="string"> | 26 | <text name="OwnerText" type="string"> |
27 | Leyla Linden | 27 | Leyla Linden |
28 | </text> | 28 | </text> |
29 | <button label="档案..." label_selected="档案..." name="Profile..."/> | 29 | <button label="档案..." label_selected="档案..." name="Profile..."/> |
30 | <text length="1" name="Group:" type="string"> | 30 | <text name="Group:" type="string"> |
31 | 社团: | 31 | 社团: |
32 | </text> | 32 | </text> |
33 | <button label="更改..." label_selected="更改..." name="Set..."/> | 33 | <button label="更改..." label_selected="更改..." name="Set..."/> |
34 | <check_box label="å…许转让给社团" name="check deed" tool_tip="一个社团官员å¯ä»¥è½¬è®©è¿™å—土地至社团,使其被社团的土地é…é¢æ”¯æŒã€‚"/> | 34 | <check_box label="å…许转让给社团" name="check deed" tool_tip="一个社团官员å¯ä»¥è½¬è®©è¿™å—土地至社团,使其被社团的土地é…é¢æ”¯æŒã€‚"/> |
35 | <button label="转让..." label_selected="转让..." name="Deed..." tool_tip="åªæœ‰ä½ 是所选社团官员的时候æ‰èƒ½è½¬è®©åœŸåœ°ã€‚"/> | 35 | <button label="转让..." label_selected="转让..." name="Deed..." tool_tip="åªæœ‰ä½ 是所选社团官员的时候æ‰èƒ½è½¬è®©åœŸåœ°ã€‚"/> |
36 | <check_box label="土地拥有者通过转让土地æ¥è´¡çŒ®" name="check contrib" tool_tip="当土地转让到社团,原土地拥有者将需贡献足够的土地æ¥æ”¯æŒã€‚"/> | 36 | <check_box label="拥有者在转让åŒæ—¶ç»™å‡ºè´¡çŒ®" name="check contrib" tool_tip="当土地被转让给社团时, å‰ä¸€ä¸ªä¸»äººè´¡çŒ®è¶³å¤Ÿçš„土地é…é¢ä»¥æ”¯æŒåœŸåœ°çš„è¿è¡Œã€‚"/> |
37 | <text length="1" name="For Sale:" type="string"> | 37 | <text name="For Sale:" type="string"> |
38 | 出售: | 38 | 出售: |
39 | </text> | 39 | </text> |
40 | <text length="1" name="Not for sale." type="string"> | 40 | <text name="Not for sale." type="string"> |
41 | éžå–状æ€ã€‚ | 41 | éžå–状æ€ã€‚ |
42 | </text> | 42 | </text> |
43 | <text length="1" name="For Sale: Price L$[PRICE]." type="string"> | 43 | <text name="For Sale: Price L$[PRICE]." type="string"> |
44 | ä»·æ ¼: L$[PRICE](L$[PRICE_PER_SQM]/m²)。 | 44 | ä»·æ ¼: [CURRENCY][PRICE] ([CURRENCY][PRICE_PER_SQM]/m²)。 |
45 | </text> | 45 | </text> |
46 | <button label="出售土地..." label_selected="出售土地..." name="Sell Land..."/> | 46 | <button label="出售土地..." label_selected="出售土地..." name="Sell Land..."/> |
47 | <text length="1" name="For sale to" type="string"> | 47 | <text name="For sale to" type="string"> |
48 | 出售给: [BUYER] | 48 | 出售给: [BUYER] |
49 | </text> | 49 | </text> |
50 | <text length="1" name="Sell with landowners objects in parcel." type="string"> | 50 | <text name="Sell with landowners objects in parcel." type="string"> |
51 | 出售ä¸åŒ…括物体。 | 51 | 出售ä¸åŒ…括物体。 |
52 | </text> | 52 | </text> |
53 | <text length="1" name="Selling with no objects in parcel." type="string"> | 53 | <text name="Selling with no objects in parcel." type="string"> |
54 | 出售ä¸ä¸åŒ…括物体。 | 54 | 出售ä¸ä¸åŒ…括物体。 |
55 | </text> | 55 | </text> |
56 | <button label="å–消土地出售" label_selected="å–消土地出售" name="Cancel Land Sale"/> | 56 | <button label="å–消土地出售" label_selected="å–消土地出售" name="Cancel Land Sale"/> |
57 | <text length="1" name="Claimed:" type="string"> | 57 | <text name="Claimed:" type="string"> |
58 | 认è´æ—¶é—´: | 58 | 认è´æ—¶é—´: |
59 | </text> | 59 | </text> |
60 | <text length="1" name="DateClaimText" type="string"> | 60 | <text name="DateClaimText" type="string"> |
61 | 星期二 八月15日 13:47:25 2006年 | 61 | 星期二 八月15日 13:47:25 2006年 |
62 | </text> | 62 | </text> |
63 | <text length="1" name="PriceLabel" type="string"> | 63 | <text name="PriceLabel" type="string"> |
64 | é¢ç§¯ï¼š | 64 | é¢ç§¯ï¼š |
65 | </text> | 65 | </text> |
66 | <text length="1" name="PriceText" type="string"> | 66 | <text name="PriceText" type="string"> |
67 | 4048m² | 67 | 4048m² |
68 | </text> | 68 | </text> |
69 | <text length="1" name="Traffic:" type="string"> | 69 | <text name="Traffic:" type="string"> |
70 | æµé‡: | 70 | æµé‡: |
71 | </text> | 71 | </text> |
72 | <text length="1" name="DwellText" type="string"> | 72 | <text name="DwellText" type="string"> |
73 | 0 | 73 | 0 |
74 | </text> | 74 | </text> |
75 | <button label="è´ä¹°åœŸåœ°..." label_selected="è´ä¹°åœŸåœ°..." name="Buy Land..."/> | 75 | <button label="è´ä¹°åœŸåœ°..." label_selected="è´ä¹°åœŸåœ°..." name="Buy Land..."/> |
@@ -123,31 +123,31 @@ | |||
123 | <text name="estate_section_lbl"> | 123 | <text name="estate_section_lbl"> |
124 | 地产: | 124 | 地产: |
125 | </text> | 125 | </text> |
126 | <text length="1" name="estate_name_lbl" type="string"> | 126 | <text name="estate_name_lbl" type="string"> |
127 | å称: | 127 | å称: |
128 | </text> | 128 | </text> |
129 | <text length="1" name="estate_name_text" type="string"> | 129 | <text name="estate_name_text" type="string"> |
130 | 大陆 | 130 | 大陆 |
131 | </text> | 131 | </text> |
132 | <text length="1" name="estate_owner_lbl" type="string"> | 132 | <text name="estate_owner_lbl" type="string"> |
133 | 拥有者: | 133 | 拥有者: |
134 | </text> | 134 | </text> |
135 | <text length="1" name="estate_owner_text" type="string"> | 135 | <text name="estate_owner_text" type="string"> |
136 | (æ— ) | 136 | (æ— ) |
137 | </text> | 137 | </text> |
138 | <text_editor length="1" name="covenant_editor" type="string"> | 138 | <text_editor name="covenant_editor" type="string"> |
139 | è¿™å—地产没有æ供任何契约åˆåŒã€‚ | 139 | è¿™å—地产没有æ供任何契约åˆåŒã€‚ |
140 | </text_editor> | 140 | </text_editor> |
141 | <text length="1" name="covenant_timestamp_text" type="string"> | 141 | <text name="covenant_timestamp_text" type="string"> |
142 | 上次修改时间 星期三12 月3 1日 16:00:00 1969年 | 142 | 上次修改时间 星期三12 月3 1日 16:00:00 1969年 |
143 | </text> | 143 | </text> |
144 | <text name="region_section_lbl"> | 144 | <text name="region_section_lbl"> |
145 | 地区: | 145 | 地区: |
146 | </text> | 146 | </text> |
147 | <text length="1" name="region_name_lbl" type="string"> | 147 | <text name="region_name_lbl" type="string"> |
148 | å称: | 148 | å称: |
149 | </text> | 149 | </text> |
150 | <text length="1" name="region_name_text" type="string"> | 150 | <text name="region_name_text" type="string"> |
151 | leyla | 151 | leyla |
152 | </text> | 152 | </text> |
153 | <text name="region_landtype_lbl"> | 153 | <text name="region_landtype_lbl"> |
@@ -165,13 +165,13 @@ | |||
165 | <text name="resellable_lbl"> | 165 | <text name="resellable_lbl"> |
166 | 转售: | 166 | 转售: |
167 | </text> | 167 | </text> |
168 | <text length="1" name="resellable_clause" type="string"> | 168 | <text name="resellable_clause" type="string"> |
169 | æ¤åœ°åŒºå†…è´ä¹°çš„土地ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚ | 169 | æ¤åœ°åŒºå†…è´ä¹°çš„土地ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚ |
170 | </text> | 170 | </text> |
171 | <text name="changeable_lbl"> | 171 | <text name="changeable_lbl"> |
172 | 划分: | 172 | 划分: |
173 | </text> | 173 | </text> |
174 | <text length="1" name="changeable_clause" type="string"> | 174 | <text name="changeable_clause" type="string"> |
175 | æ¤åœ°åŒºå†…è´ä¹°çš„土地ä¸èƒ½è¢«åˆå¹¶æˆ–划分。 | 175 | æ¤åœ°åŒºå†…è´ä¹°çš„土地ä¸èƒ½è¢«åˆå¹¶æˆ–划分。 |
176 | </text> | 176 | </text> |
177 | <string name="can_resell"> | 177 | <string name="can_resell"> |
@@ -191,7 +191,7 @@ | |||
191 | <text name="parcel_object_bonus"> | 191 | <text name="parcel_object_bonus"> |
192 | 区域é¢å¤–ç‰©ä½“å› æ•°: [BONUS] | 192 | 区域é¢å¤–ç‰©ä½“å› æ•°: [BONUS] |
193 | </text> | 193 | </text> |
194 | <text length="1" name="Simulator primitive usage:" type="string"> | 194 | <text name="Simulator primitive usage:" type="string"> |
195 | 模拟器元件使用情况: | 195 | 模拟器元件使用情况: |
196 | </text> | 196 | </text> |
197 | <text left="146" name="objects_available"> | 197 | <text left="146" name="objects_available"> |
@@ -203,53 +203,53 @@ | |||
203 | <string name="objects_deleted_text"> | 203 | <string name="objects_deleted_text"> |
204 | [COUNT] 个, 最多 [MAX] 个 ([DELETED] ä¸ªå°†ä¼šè¢«åˆ é™¤) | 204 | [COUNT] 个, 最多 [MAX] 个 ([DELETED] ä¸ªå°†ä¼šè¢«åˆ é™¤) |
205 | </string> | 205 | </string> |
206 | <text length="1" name="Primitives parcel supports:" type="string"> | 206 | <text name="Primitives parcel supports:" type="string"> |
207 | 地å—支æŒå…ƒä»¶æ•°: | 207 | 地å—支æŒå…ƒä»¶æ•°: |
208 | </text> | 208 | </text> |
209 | <text left="146" length="1" name="object_contrib_text" type="string" width="222"> | 209 | <text left="146" name="object_contrib_text" type="string" width="222"> |
210 | [COUNT] 个 | 210 | [COUNT] 个 |
211 | </text> | 211 | </text> |
212 | <text length="1" name="Primitives on parcel:" type="string"> | 212 | <text name="Primitives on parcel:" type="string"> |
213 | 地å—上的元件数: | 213 | 地å—上的元件数: |
214 | </text> | 214 | </text> |
215 | <text left="146" length="1" name="total_objects_text" type="string" width="58"> | 215 | <text left="146" name="total_objects_text" type="string" width="58"> |
216 | [COUNT] 个 | 216 | [COUNT] 个 |
217 | </text> | 217 | </text> |
218 | <text length="1" name="Owned by parcel owner:" type="string"> | 218 | <text name="Owned by parcel owner:" type="string"> |
219 | 土地拥有者所有: | 219 | 土地拥有者所有: |
220 | </text> | 220 | </text> |
221 | <text left="146" length="1" name="owner_objects_text" type="string" width="58"> | 221 | <text left="146" name="owner_objects_text" type="string" width="58"> |
222 | [COUNT] 个 | 222 | [COUNT] 个 |
223 | </text> | 223 | </text> |
224 | <button label="显示" label_selected="显示" name="ShowOwner"/> | 224 | <button label="显示" label_selected="显示" name="ShowOwner"/> |
225 | <button label="归还..." label_selected="归还..." name="ReturnOwner..." tool_tip="将物体归还其主人。"/> | 225 | <button label="归还..." label_selected="归还..." name="ReturnOwner..." tool_tip="将物体归还其主人。"/> |
226 | <text length="1" name="Set to group:" type="string"> | 226 | <text name="Set to group:" type="string"> |
227 | 设为社团的元件数: | 227 | 设为社团的元件数: |
228 | </text> | 228 | </text> |
229 | <text left="146" length="1" name="group_objects_text" type="string" width="58"> | 229 | <text left="146" name="group_objects_text" type="string" width="58"> |
230 | [COUNT] 个 | 230 | [COUNT] 个 |
231 | </text> | 231 | </text> |
232 | <button label="显示" label_selected="显示" name="ShowGroup"/> | 232 | <button label="显示" label_selected="显示" name="ShowGroup"/> |
233 | <button label="归还..." label_selected="归还..." name="ReturnGroup..." tool_tip="将物体归还其主人。"/> | 233 | <button label="归还..." label_selected="归还..." name="ReturnGroup..." tool_tip="将物体归还其主人。"/> |
234 | <text length="1" name="Owned by others:" type="string"> | 234 | <text name="Owned by others:" type="string"> |
235 | 为其他人所有: | 235 | 为其他人所有: |
236 | </text> | 236 | </text> |
237 | <text left="146" length="1" name="other_objects_text" type="string" width="58"> | 237 | <text left="146" name="other_objects_text" type="string" width="58"> |
238 | [COUNT] 个 | 238 | [COUNT] 个 |
239 | </text> | 239 | </text> |
240 | <button label="显示" label_selected="显示" name="ShowOther"/> | 240 | <button label="显示" label_selected="显示" name="ShowOther"/> |
241 | <button label="归还..." label_selected="归还..." name="ReturnOther..." tool_tip="将物体归还其主人。"/> | 241 | <button label="归还..." label_selected="归还..." name="ReturnOther..." tool_tip="将物体归还其主人。"/> |
242 | <text length="1" name="Selected / sat upon:" type="string"> | 242 | <text name="Selected / sat upon:" type="string"> |
243 | 被选择 / 被å上的: | 243 | 被选择 / 被å上的: |
244 | </text> | 244 | </text> |
245 | <text left="146" length="1" name="selected_objects_text" type="string" width="58"> | 245 | <text left="146" name="selected_objects_text" type="string" width="58"> |
246 | [COUNT] 个 | 246 | [COUNT] 个 |
247 | </text> | 247 | </text> |
248 | <text length="1" name="Autoreturn" type="string"> | 248 | <text name="Autoreturn" type="string"> |
249 | 自动归还其他居民的物体 (分钟, 0为关é—): | 249 | 自动归还其他居民的物体 (分钟, 0为关é—): |
250 | </text> | 250 | </text> |
251 | <line_editor name="clean other time" right="-170"/> | 251 | <line_editor name="clean other time" right="-170"/> |
252 | <text length="1" name="Object Owners:" type="string"> | 252 | <text name="Object Owners:" type="string"> |
253 | 物体主人: | 253 | 物体主人: |
254 | </text> | 254 | </text> |
255 | <button label="æ›´æ–°åå•" label_selected="æ›´æ–°åå•" left="78" name="Refresh List"/> | 255 | <button label="æ›´æ–°åå•" label_selected="æ›´æ–°åå•" left="78" name="Refresh List"/> |
@@ -263,7 +263,7 @@ | |||
263 | </name_list> | 263 | </name_list> |
264 | </panel> | 264 | </panel> |
265 | <panel label="选项" name="land_options_panel"> | 265 | <panel label="选项" name="land_options_panel"> |
266 | <text length="1" name="allow_label" type="string"> | 266 | <text name="allow_label" type="string"> |
267 | å…许其他居民: | 267 | å…许其他居民: |
268 | </text> | 268 | </text> |
269 | <check_box label="编辑地形" name="edit land check" tool_tip="如果选ä¸çš„è¯ï¼Œè°éƒ½èƒ½ç¼–辑您的土地地形。最好是ä¸è¦é€‰ä¸è¿™é¡¹ï¼Œå› 为您总å¯ä»¥ç¼–辑您自己的土地。"/> | 269 | <check_box label="编辑地形" name="edit land check" tool_tip="如果选ä¸çš„è¯ï¼Œè°éƒ½èƒ½ç¼–辑您的土地地形。最好是ä¸è¦é€‰ä¸è¿™é¡¹ï¼Œå› 为您总å¯ä»¥ç¼–辑您自己的土地。"/> |
@@ -284,7 +284,7 @@ | |||
284 | </text> | 284 | </text> |
285 | <check_box label="所有居民" name="check other scripts"/> | 285 | <check_box label="所有居民" name="check other scripts"/> |
286 | <check_box label="社团" name="check group scripts"/> | 286 | <check_box label="社团" name="check group scripts"/> |
287 | <text length="1" name="land_options_label" type="string"> | 287 | <text name="land_options_label" type="string"> |
288 | 土地选项: | 288 | 土地选项: |
289 | </text> | 289 | </text> |
290 | <check_box label="安全 (ä¸ä¼šå—伤)" name="check safe" tool_tip="如果选ä¸çš„è¯ï¼ŒåœŸåœ°è®¾ç½®ä¸ºå®‰å…¨ï¼Œç¦ç”¨æ ¼æ–—伤害。ä¸é€‰ä¸çš„è¯ï¼Œå¯ç”¨æ ¼æ–—伤害。"/> | 290 | <check_box label="安全 (ä¸ä¼šå—伤)" name="check safe" tool_tip="如果选ä¸çš„è¯ï¼ŒåœŸåœ°è®¾ç½®ä¸ºå®‰å…¨ï¼Œç¦ç”¨æ ¼æ–—伤害。ä¸é€‰ä¸çš„è¯ï¼Œå¯ç”¨æ ¼æ–—伤害。"/> |
@@ -392,11 +392,11 @@ | |||
392 | <string name="mature_check_adult_tooltip"> | 392 | <string name="mature_check_adult_tooltip"> |
393 | 您的地å—ä¿¡æ¯æˆ–其内容被认为是adult内容。 | 393 | 您的地å—ä¿¡æ¯æˆ–其内容被认为是adult内容。 |
394 | </string> | 394 | </string> |
395 | <text length="1" name="Snapshot:" type="string"> | 395 | <text name="Snapshot:" type="string"> |
396 | å¿«ç…§: | 396 | å¿«ç…§: |
397 | </text> | 397 | </text> |
398 | <texture_picker label="" name="snapshot_ctrl" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | 398 | <texture_picker label="" name="snapshot_ctrl" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> |
399 | <text length="1" name="landing_point" type="string"> | 399 | <text name="landing_point" type="string"> |
400 | ç€é™†ç‚¹: [LANDING] | 400 | ç€é™†ç‚¹: [LANDING] |
401 | </text> | 401 | </text> |
402 | <string name="landing_point_none"> | 402 | <string name="landing_point_none"> |
@@ -404,17 +404,17 @@ | |||
404 | </string> | 404 | </string> |
405 | <button label="设置" label_selected="设置" name="Set" tool_tip="设置访问者抵达时的ç€é™†ç‚¹ã€‚将会设置到您化身在该地å—内的ä½ç½®ã€‚"/> | 405 | <button label="设置" label_selected="设置" name="Set" tool_tip="设置访问者抵达时的ç€é™†ç‚¹ã€‚将会设置到您化身在该地å—内的ä½ç½®ã€‚"/> |
406 | <button label="清除" label_selected="清除" name="Clear" tool_tip="清除ç€é™†ç‚¹"/> | 406 | <button label="清除" label_selected="清除" name="Clear" tool_tip="清除ç€é™†ç‚¹"/> |
407 | <text length="1" name="Teleport Routing: " type="string"> | 407 | <text name="Teleport Routing: " type="string"> |
408 | çž¬é—´ç§»åŠ¨ä¼ é€è·¯çº¿: | 408 | çž¬é—´ç§»åŠ¨ä¼ é€è·¯çº¿: |
409 | </text> | 409 | </text> |
410 | <combo_box name="landing type" tool_tip="Teleport Routing -- é€‰æ‹©å¦‚ä½•åº”å¯¹åˆ°ä½ çš„åœŸåœ°çš„çž¬é—´ç§»åŠ¨ã€‚"> | 410 | <combo_box name="landing type" tool_tip="Teleport Routing -- é€‰æ‹©å¦‚ä½•åº”å¯¹åˆ°ä½ çš„åœŸåœ°çš„çž¬é—´ç§»åŠ¨ã€‚"> |
411 | <combo_item length="1" name="Blocked" type="string"> | 411 | <combo_item name="Blocked" type="string"> |
412 | ä¸å…许 | 412 | ä¸å…许 |
413 | </combo_item> | 413 | </combo_item> |
414 | <combo_item length="1" name="LandingPoint" type="string"> | 414 | <combo_item name="LandingPoint" type="string"> |
415 | ç€é™†ç‚¹ | 415 | ç€é™†ç‚¹ |
416 | </combo_item> | 416 | </combo_item> |
417 | <combo_item length="1" name="Anywhere" type="string"> | 417 | <combo_item name="Anywhere" type="string"> |
418 | ä»»æ„ä½ç½® | 418 | ä»»æ„ä½ç½® |
419 | </combo_item> | 419 | </combo_item> |
420 | </combo_box> | 420 | </combo_box> |
@@ -434,12 +434,43 @@ | |||
434 | 媒体 URL: | 434 | 媒体 URL: |
435 | </text> | 435 | </text> |
436 | <button label="设置..." label_selected="设置..." name="set_media_url"/> | 436 | <button label="设置..." label_selected="设置..." name="set_media_url"/> |
437 | <text | ||
438 | name="Current URL:"> | ||
439 | å½“å‰ URL: | ||
440 | </text> | ||
441 | |||
442 | <button | ||
443 | label="é‡ç½®..." | ||
444 | label_selected="é‡ç½®..." | ||
445 | name="reset_media_url" | ||
446 | right="-12" /> | ||
447 | <check_box label="éšè—媒体 URL" name="hide_media_url" tool_tip="选ä¸è¯¥é¡¹å°†ä¼šå¯¹æœªè¢«æŽˆæƒçš„查看该地å—ä¿¡æ¯çš„人éšè—媒体 URL 。注æ„对 HTML 类型,æ¤é¡¹ä¸å¯ç”¨ã€‚"/> | ||
448 | <text | ||
449 | font="SansSerifSmall" | ||
450 | name="media_reset" | ||
451 | right="-264" | ||
452 | tool_tip="地å—在该时间之åŽï¼Œå°†è‡ªåŠ¨è¿”回åˆå§‹ URL (0 为ä¸è¿”回)" | ||
453 | type="string" | ||
454 | width="185"> | ||
455 | 在 | ||
456 | </text> | ||
457 | <spinner | ||
458 | name="media_reset_time" | ||
459 | right="-195" | ||
460 | tool_tip="地å—在该时间之åŽï¼Œå°†è‡ªåŠ¨è¿”回åˆå§‹ URL (0 为ä¸è¿”回)" /> | ||
461 | <text | ||
462 | |||
463 | name="minutes" | ||
464 | tool_tip="地å—在该时间之åŽï¼Œå°†è‡ªåŠ¨è¿”回åˆå§‹ URL (0 为ä¸è¿”回)" | ||
465 | right="-90"> | ||
466 | 分钟åŽå›žåˆ°åˆå§‹ URL | ||
467 | </text> | ||
437 | <text name="Description:"> | 468 | <text name="Description:"> |
438 | æè¿°: | 469 | æè¿°: |
439 | </text> | 470 | </text> |
440 | <line_editor name="url_description" tool_tip="在æ’放/åŠ è½½æŒ‰é’®æ—显示的文å—"/> | 471 | <line_editor name="url_description" tool_tip="在æ’放/åŠ è½½æŒ‰é’®æ—显示的文å—"/> |
441 | <text length="1" name="Media texture:" type="string"> | 472 | <text name="Media texture:" type="string"> |
442 | 媒体 æè´¨: | 473 | æè´¨: |
443 | </text> | 474 | </text> |
444 | <texture_picker label="" name="media texture" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | 475 | <texture_picker label="" name="media texture" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> |
445 | <text name="replace_texture_help"> | 476 | <text name="replace_texture_help"> |
@@ -447,38 +478,98 @@ | |||
447 | 显示选择的动画或网页。) | 478 | 显示选择的动画或网页。) |
448 | </text> | 479 | </text> |
449 | <text name="Options:"> | 480 | <text name="Options:"> |
450 | 媒体 选项: | 481 | 选项: |
451 | </text> | 482 | </text> |
452 | <check_box label="è‡ªåŠ¨è°ƒæ•´å†…å®¹å¤§å° " name="media_auto_scale" tool_tip="打开æ¤é¡¹å°†è‡ªåŠ¨ç¼©æ”¾è¯¥åœ°å—上的内容。其速度和质é‡å¯èƒ½ä¼šç¨ç¨é™ä½Žï¼Œä½†ä¸ä¼šéœ€è¦ä»»ä½•å…¶ä»–çš„æ质缩放或对é½ã€‚"/> | 483 | <check_box label="è‡ªåŠ¨è°ƒæ•´å†…å®¹å¤§å° " name="media_auto_scale" tool_tip="打开æ¤é¡¹å°†è‡ªåŠ¨ç¼©æ”¾è¯¥åœ°å—上的内容。其速度和质é‡å¯èƒ½ä¼šç¨ç¨é™ä½Žï¼Œä½†ä¸ä¼šéœ€è¦ä»»ä½•å…¶ä»–çš„æ质缩放或对é½ã€‚"/> |
453 | <check_box label="循环æ’放" name="media_loop" tool_tip="循环æ’放媒体。当媒体æ’放完毕时,它将从开始处é‡æ–°æ’放。"/> | 484 | <check_box label="循环æ’放" name="media_loop" tool_tip="循环æ’放媒体。当媒体æ’放完毕时,它将从开始处é‡æ–°æ’放。"/> |
454 | <check_box label="éšè—媒体 URL" name="hide_media_url" tool_tip="打开该选项将对未ç»å…许的土地信æ¯å¯Ÿçœ‹è€…éšè—媒体 URL。请注æ„该选项ä¸é€‚用于 HTML 类型。"/> | ||
455 | <check_box label="éšè—éŸ³ä¹ URL" name="hide_music_url" tool_tip="打开该选项将对未ç»å…许的土地信æ¯å¯Ÿçœ‹è€…éšè—éŸ³ä¹ URL。"/> | ||
456 | <text name="media_size" tool_tip="渲染媒体的尺寸,设为 0 使用默认值"> | 485 | <text name="media_size" tool_tip="渲染媒体的尺寸,设为 0 使用默认值"> |
457 | 媒体尺寸: | 486 | 媒体尺寸: |
458 | </text> | 487 | </text> |
459 | <spinner name="media_size_width" tool_tip="渲染媒体的尺寸,设为 0 使用默认值"/> | 488 | |
460 | <spinner name="media_size_height" tool_tip="渲染媒体的尺寸,设为 0 使用默认值"/> | 489 | <spinner name="media_size_width" tool_tip="渲染媒体的尺寸,设为 0 使用默认值"/> |
461 | <text name="pixels" right="-10"> | 490 | <text |
491 | name="pixels"> | ||
462 | åƒç´ | 492 | åƒç´ |
463 | </text> | 493 | </text> |
494 | <text | ||
495 | name="Interaction:"> | ||
496 | 交互: | ||
497 | </text> | ||
498 | <radio_group | ||
499 | name="radio_navigate_allow"> | ||
500 | <radio_item | ||
501 | name="Anyone" | ||
502 | tool_tip="任何居民都å¯ä»¥å’Œåª’体交互。"> | ||
503 | 任何人 | ||
504 | </radio_item> | ||
505 | <radio_item | ||
506 | name="Group" | ||
507 | tool_tip="社团æƒé™æŽ§åˆ¶è°å¯ä»¥ä¸Žåª’体交互。"> | ||
508 | 社团 | ||
509 | </radio_item> | ||
510 | </radio_group> | ||
511 | <check_box | ||
512 | label="ä»…å…许æµè§ˆè¿™äº›åŸŸ:" | ||
513 | name="check navigate filter" /> | ||
514 | <line_editor | ||
515 | name="navigate_filter_domain" /> | ||
516 | <button | ||
517 | label="æ·»åŠ ..." | ||
518 | label_selected="æ·»åŠ ..." | ||
519 | name="add_navigate_filter" /> | ||
520 | <scroll_list | ||
521 | name="filter_list"> | ||
522 | <column | ||
523 | label="域å" | ||
524 | name="domain" /> | ||
525 | </scroll_list> | ||
526 | <button | ||
527 | label="移除" | ||
528 | label_selected="移除" | ||
529 | name="remove_navigate_filter" /> | ||
530 | </panel> | ||
531 | <panel | ||
532 | label="音频" | ||
533 | layout="topleft" | ||
534 | name="land_audio_panel" | ||
535 | top_delta="1"> | ||
464 | <text name="MusicURL:"> | 536 | <text name="MusicURL:"> |
465 | éŸ³ä¹ URL: | 537 | éŸ³ä¹ URL: |
466 | </text> | 538 | </text> |
467 | <line_editor name="music_url" right="-15"/> | 539 | <check_box label="éšè—éŸ³ä¹ URL" name="hide_music_url" tool_tip="选ä¸è¯¥é¡¹å°†ä¼šå¯¹æœªè¢«æŽˆæƒçš„查看该地å—ä¿¡æ¯çš„人éšè—媒体 URL 。"/> |
540 | |||
468 | <text name="Sound:"> | 541 | <text name="Sound:"> |
469 | 声音: | 542 | 声音: |
470 | </text> | 543 | </text> |
471 | <check_box label="动作和物å“的声音åªå˜åœ¨äºŽæ¤åœ°å—。" name="check sound local"/> | 544 | <check_box label="é™åˆ¶åŠ¨ä½œå’Œç‰©å“的声音到æ¤åœ°å—。" name="check_sound_local"/> |
472 | <button label="?" label_selected="?" name="?"/> | 545 | <button label="?" label_selected="?" name="?"/> |
473 | <text name="Voice settings:"> | 546 | <text name="Voice:"> |
474 | è¯éŸ³: | 547 | è¯éŸ³: |
475 | </text> | 548 | </text> |
549 | <radio_group | ||
550 | name="parcel_voice_channel"> | ||
551 | <radio_item | ||
552 | name="Estate" | ||
553 | tool_tip="使用地产è¯éŸ³é¢‘é“。"> | ||
554 | åœ°äº§é¢‘é“ | ||
555 | </radio_item> | ||
556 | <radio_item | ||
557 | name="Parcel" | ||
558 | tool_tip="é™åˆ¶è¯éŸ³åˆ°è¯¥åœ°å—。"> | ||
559 | 地å—é¢‘é“ | ||
560 | </radio_item> | ||
561 | <radio_item | ||
562 | name="Disabled" | ||
563 | tool_tip="在æ¤åœ°å—上ç¦ç”¨è¯éŸ³ã€‚"> | ||
564 | ç¦ç”¨ | ||
565 | </radio_item> | ||
566 | </radio_group> | ||
476 | <check_box label="使用è¯éŸ³åŠŸèƒ½" name="parcel_enable_voice_channel"/> | 567 | <check_box label="使用è¯éŸ³åŠŸèƒ½" name="parcel_enable_voice_channel"/> |
477 | <check_box label="å…许使用地产声音频é“(由地产所创建)" name="parcel_enable_voice_channel_is_estate_disabled"/> | 568 | <check_box label="å…许使用地产声音频é“(由地产所创建)" name="parcel_enable_voice_channel_is_estate_disabled"/> |
478 | <check_box label="é™åˆ¶å£°éŸ³äºŽåœ°å—ç§æœ‰é¢‘é“" name="parcel_enable_voice_channel_parcel"/> | 569 | <check_box label="é™åˆ¶å£°éŸ³äºŽåœ°å—ç§æœ‰é¢‘é“" name="parcel_enable_voice_channel_parcel"/> |
479 | </panel> | 570 | </panel> |
480 | <panel label="访问" name="land_access_panel"> | 571 | <panel label="访问" name="land_access_panel"> |
481 | <text length="1" name="Limit access to this parcel to:" type="string"> | 572 | <text name="Limit access to this parcel to:" type="string"> |
482 | 对该地å—的访问 | 573 | 对该地å—的访问 |
483 | </text> | 574 | </text> |
484 | <check_box label="å…许公众访问" name="public_access"/> | 575 | <check_box label="å…许公众访问" name="public_access"/> |
@@ -500,7 +591,7 @@ | |||
500 | 社团 | 591 | 社团 |
501 | </combo_item> | 592 | </combo_item> |
502 | </combo_box> | 593 | </combo_box> |
503 | <spinner label="L$ æ ‡ä»·:" name="PriceSpin"/> | 594 | <spinner label="[CURRENCY] æ ‡ä»·:" name="PriceSpin"/> |
504 | <spinner label="访问时间:" name="HoursSpin"/> | 595 | <spinner label="访问时间:" name="HoursSpin"/> |
505 | <text label="总是å…许" name="AllowedText"> | 596 | <text label="总是å…许" name="AllowedText"> |
506 | 被å…许的居民 | 597 | 被å…许的居民 |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_animation_list.xml b/linden/indra/newview/skins/default/xui/zh/floater_animation_list.xml new file mode 100644 index 0000000..43f528a --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_animation_list.xml | |||
@@ -0,0 +1,46 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="animation list" | ||
4 | title="动画列表"> | ||
5 | <scroll_list | ||
6 | name="animation_list" | ||
7 | tool_tip="按Shift或Ctrlæ¥é€‰æ‹©å¤šä¸ªæ¡ç›®"> | ||
8 | <!-- Icons relating to the avatar, currently: tracking, and marked --> | ||
9 | <column | ||
10 | name="Anim Name" | ||
11 | label="动画å称" /> | ||
12 | <column | ||
13 | name="Animation UUID" | ||
14 | label="动画 UUID" /> | ||
15 | <!--<column name="object_name" label="Distance" dynamicwidth="true"/>--> | ||
16 | <column | ||
17 | name="Source Object UUID" | ||
18 | label="æºç‰©ä½“ UUID" /> | ||
19 | <column | ||
20 | name="Source Owner" | ||
21 | label="æºæ‹¥æœ‰è€…" /> | ||
22 | <!-- What the avatar is doing: producing sounds, rezzing, particles, etc --> | ||
23 | </scroll_list> | ||
24 | |||
25 | <button | ||
26 | label="åœæ¢é€‰ä¸é¡¹" | ||
27 | name="Stop Selected" | ||
28 | tool_tip="åœæ¢é€‰ä¸çš„动画" /> | ||
29 | <button | ||
30 | label="撤回选ä¸é¡¹" | ||
31 | name="Revoke Selected" | ||
32 | tool_tip="撤回选ä¸ç‰©ä½“的动画许å¯" /> | ||
33 | <button | ||
34 | label="åœæ¢+撤回选ä¸é¡¹" | ||
35 | name="Stop+Revoke Selected" | ||
36 | tool_tip="撤回选ä¸ç‰©ä½“的动画许å¯ï¼Œå¹¶ä¸”åœæ¢é€‰ä¸çš„动画" /> | ||
37 | <button | ||
38 | label="打开拥有者档案" | ||
39 | name="Open Owner Profile" | ||
40 | tool_tip="打开选ä¸ç‰©ä½“拥有者的档案" /> | ||
41 | <button | ||
42 | label="归还物体" | ||
43 | name="Return Object" | ||
44 | tool_tip="归还选ä¸ç‰©ä½“ï¼Œå¦‚æžœä½ æœ‰ç›¸å…³åœŸåœ°æƒåŠ›çš„è¯" /> | ||
45 | |||
46 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml b/linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml index 9e28bf6..4fa2db3 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml | |||
@@ -59,7 +59,7 @@ | |||
59 | </text> | 59 | </text> |
60 | <combo_box label="" name="emote_combo" tool_tip="控制在动画ä¸çš„表情"> | 60 | <combo_box label="" name="emote_combo" tool_tip="控制在动画ä¸çš„表情"> |
61 | <combo_item name="[None]"> | 61 | <combo_item name="[None]"> |
62 | [None] | 62 | [æ— ] |
63 | </combo_item> | 63 | </combo_item> |
64 | <combo_item name="Aaaaah"> | 64 | <combo_item name="Aaaaah"> |
65 | å•Šå•Šå•Š | 65 | å•Šå•Šå•Š |
@@ -147,7 +147,7 @@ | |||
147 | 我们推è从Poser 4软件ä¸å¯¼å‡ºçš„BVH文件 | 147 | 我们推è从Poser 4软件ä¸å¯¼å‡ºçš„BVH文件 |
148 | </text> | 148 | </text> |
149 | <button label="å–消" name="cancel_btn"/> | 149 | <button label="å–消" name="cancel_btn"/> |
150 | <button label="ä¸Šä¼ (L$[AMOUNT])" name="ok_btn"/> | 150 | <button label="ä¸Šä¼ ([UPLOADFEE])" name="ok_btn"/> |
151 | <string name="failed_to_initialize"> | 151 | <string name="failed_to_initialize"> |
152 | åˆå§‹åŒ–动作失败。 | 152 | åˆå§‹åŒ–动作失败。 |
153 | </string> | 153 | </string> |
@@ -161,4 +161,7 @@ | |||
161 | 161 | ||
162 | [STATUS] | 162 | [STATUS] |
163 | </string> | 163 | </string> |
164 | <string name="in_world"> | ||
165 | åŠ¨ç”»é¢„è§ˆå°†åœ¨ä½ çš„åŒ–èº«ä¸Šæ’放。 | ||
166 | </string> | ||
164 | </floater> | 167 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_ao.xml b/linden/indra/newview/skins/default/xui/zh/floater_ao.xml new file mode 100644 index 0000000..df83b85 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_ao.xml | |||
@@ -0,0 +1,150 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="geminifloater" | ||
4 | title="动画覆盖"> | ||
5 | |||
6 | <text | ||
7 | name="Give inventory" | ||
8 | tool_tip="拖动 ZHAO II 记事å¡åˆ°è¿™é‡Œã€‚动画必须和记事å¡åœ¨åŒä¸€ä¸ªæ–‡ä»¶å¤¹ä¸ã€‚"> | ||
9 | 拖动 ZHAO II 记事å¡åˆ°è¿™é‡Œ | ||
10 | </text> | ||
11 | <text | ||
12 | name="ao_nc_text" | ||
13 | tool_tip=""> | ||
14 | ç›®å‰è®¾ç½®åˆ°: ITEM | ||
15 | </text> | ||
16 | |||
17 | <button | ||
18 | name="opencard" | ||
19 | label="打开记事å¡" /> | ||
20 | <button | ||
21 | name="reloadcard" | ||
22 | label="啥信" /> | ||
23 | |||
24 | <check_box | ||
25 | label="å¯ç”¨åŠ¨ç”»è¦†ç›–" | ||
26 | name="AOEnabled" /> | ||
27 | <check_box | ||
28 | label="å¯ç”¨å姿覆盖" | ||
29 | name="AOSitsEnabled" /> | ||
30 | |||
31 | <text | ||
32 | name="buttons_desc"> | ||
33 | 站立: | ||
34 | </text> | ||
35 | <combo_box | ||
36 | name="stands" | ||
37 | label="" /> | ||
38 | <button | ||
39 | name="prevstand" | ||
40 | tool_tip="上一个站立动画" | ||
41 | label="<<" /> | ||
42 | <button | ||
43 | name="nextstand" | ||
44 | tool_tip="下一个站立动画" | ||
45 | label=">>" /> | ||
46 | <check_box | ||
47 | label="站立动画顺åºéšæœº" | ||
48 | name="AOStandRandomize" /> | ||
49 | <check_box | ||
50 | label="第一人称视角ä¸ç¦ç”¨ç«™ç«‹" | ||
51 | name="AONoStandsInMouselook" /> | ||
52 | <check_box | ||
53 | label="显示动画覆盖工具æ " | ||
54 | name="ao_remote_checkbox" /> | ||
55 | <spinner | ||
56 | name="standtime" | ||
57 | label="站立切æ¢æ—¶é—´:" | ||
58 | tool_tip="切æ¢ç«™ç«‹åŠ¨ç”»æ’放的时间。" /> | ||
59 | |||
60 | <button | ||
61 | name="newcard" | ||
62 | label="新建记事å¡æ¨¡æ¿" /> | ||
63 | |||
64 | <button | ||
65 | label="展开 >>" | ||
66 | name="more_btn" | ||
67 | tool_tip="高级选项" /> | ||
68 | <button | ||
69 | label="<< 折å " | ||
70 | name="less_btn" | ||
71 | tool_tip="高级选项" /> | ||
72 | |||
73 | <tab_container | ||
74 | label="默认" | ||
75 | name="tabcontainer" | ||
76 | tab_min_width="50"> | ||
77 | <panel | ||
78 | label="默认动画" | ||
79 | name="tabdefaultanims"> | ||
80 | |||
81 | <text | ||
82 | name="textdefaultwalk"> | ||
83 | èµ°è·¯: | ||
84 | </text> | ||
85 | <text | ||
86 | name="textdefaultrun"> | ||
87 | è·‘æ¥: | ||
88 | </text> | ||
89 | <text | ||
90 | name="textdefaultjump"> | ||
91 | 跳跃: | ||
92 | </text> | ||
93 | <text | ||
94 | name="textdefaultsit"> | ||
95 | å下: | ||
96 | </text> | ||
97 | <text | ||
98 | name="textdefaultgsit"> | ||
99 | å在地上: | ||
100 | </text> | ||
101 | <text | ||
102 | name="textdefaultcrouch"> | ||
103 | 蹲下: | ||
104 | </text> | ||
105 | <text | ||
106 | name="textdefaultcrouchwalk"> | ||
107 | 蹲走: | ||
108 | </text> | ||
109 | <text | ||
110 | name="textdefaultfall"> | ||
111 | 下è½: | ||
112 | </text> | ||
113 | <text | ||
114 | name="textdefaulthover"> | ||
115 | 浮空: | ||
116 | </text> | ||
117 | <combo_box | ||
118 | name="hovers" | ||
119 | label="" /> | ||
120 | <text | ||
121 | name="textdefaultfly"> | ||
122 | 飞行: | ||
123 | </text> | ||
124 | <text | ||
125 | name="textdefaultflyslow"> | ||
126 | 慢速飞行: | ||
127 | </text> | ||
128 | <text | ||
129 | name="textdefaultflyup"> | ||
130 | å‘上飞行: | ||
131 | </text> | ||
132 | <text | ||
133 | name="textdefaultflydown"> | ||
134 | å‘下飞行: | ||
135 | </text> | ||
136 | <text | ||
137 | name="textdefaultland"> | ||
138 | ç€é™†: | ||
139 | </text> | ||
140 | <text | ||
141 | name="textdefaultstandup"> | ||
142 | 起身: | ||
143 | </text> | ||
144 | <text | ||
145 | name="textdefaultprejump"> | ||
146 | 预跳跃: | ||
147 | </text> | ||
148 | </panel> | ||
149 | </tab_container> | ||
150 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_area_search.xml b/linden/indra/newview/skins/default/xui/zh/floater_area_search.xml new file mode 100644 index 0000000..7a8a4d8 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_area_search.xml | |||
@@ -0,0 +1,51 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="area search" | ||
4 | title="区域物体æœç´¢"> | ||
5 | <text | ||
6 | name="name_label"> | ||
7 | å称æœç´¢å—符串: | ||
8 | </text> | ||
9 | <text | ||
10 | name="desc_label"> | ||
11 | æè¿°æœç´¢å—符串: | ||
12 | </text> | ||
13 | |||
14 | <text | ||
15 | name="owner_label"> | ||
16 | 拥有者æœç´¢å—符串: | ||
17 | </text> | ||
18 | <text | ||
19 | name="group_label"> | ||
20 | 社团æœç´¢å—符串: | ||
21 | </text> | ||
22 | <scroll_list | ||
23 | name="result_list"> | ||
24 | <column | ||
25 | name="Name" | ||
26 | label="å称" | ||
27 | tool_tip="åŒå‡»ä»»ä½•é¡¹ç›®åœ¨ç‰©ä½“çš„ä½ç½®æ˜¾ç¤ºä¿¡æ ‡" /> | ||
28 | <column | ||
29 | name="Description" | ||
30 | label="æè¿°" | ||
31 | tool_tip="åŒå‡»ä»»ä½•é¡¹ç›®åœ¨ç‰©ä½“çš„ä½ç½®æ˜¾ç¤ºä¿¡æ ‡" /> | ||
32 | <column | ||
33 | name="Owner" | ||
34 | label="拥有者" | ||
35 | tool_tip="åŒå‡»ä»»ä½•é¡¹ç›®åœ¨ç‰©ä½“çš„ä½ç½®æ˜¾ç¤ºä¿¡æ ‡" /> | ||
36 | <column | ||
37 | name="Group" | ||
38 | label="社团" | ||
39 | tool_tip="åŒå‡»ä»»ä½•é¡¹ç›®åœ¨ç‰©ä½“çš„ä½ç½®æ˜¾ç¤ºä¿¡æ ‡" /> | ||
40 | </scroll_list> | ||
41 | <button | ||
42 | name="Refresh" | ||
43 | label="刷新" /> | ||
44 | <button | ||
45 | name="Stop" | ||
46 | label="åœæ¢" /> | ||
47 | <text | ||
48 | name="counter"> | ||
49 | 已列出/ç‰å¾…ä¸/总计 | ||
50 | </text> | ||
51 | </floater> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_asset_browser.xml b/linden/indra/newview/skins/default/xui/zh/floater_asset_browser.xml new file mode 100644 index 0000000..32292f5 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_asset_browser.xml | |||
@@ -0,0 +1,18 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="asset browser" | ||
4 | title="æè´¨æµè§ˆå™¨"> | ||
5 | |||
6 | <button | ||
7 | label="下一页 >>" | ||
8 | name="button next" /> | ||
9 | |||
10 | <button | ||
11 | label="<< 上一页" | ||
12 | name="button previous" /> | ||
13 | |||
14 | <button | ||
15 | label="刷新" | ||
16 | name="button refresh" /> | ||
17 | |||
18 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_autocorrect.xml b/linden/indra/newview/skins/default/xui/zh/floater_autocorrect.xml new file mode 100644 index 0000000..f616163 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_autocorrect.xml | |||
@@ -0,0 +1,72 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="em_ac_floater" | ||
4 | title="自动更æ£è®¾ç½®"> | ||
5 | <check_box | ||
6 | font="SansSerif" | ||
7 | label="å¯ç”¨è‡ªåŠ¨æ›´æ£" | ||
8 | name="em_ac_enable" | ||
9 | tool_tip="ä½ å¿…é¡»é€‰ä¸è¿™ä¸ªæ¡†æ‰èƒ½ä½¿ç”¨è¿™äº›è®¾ç½®ï¼Œä»–将会æœç´¢ä½ 的所有å¯å†™çš„文本输入,并用替æ¢é¡¹æ›¿æ¢ä»»ä½•æœç´¢æ¡ç›®" /> | ||
10 | <button | ||
11 | name="em_ac_loadlist" | ||
12 | label="读å–列表.." | ||
13 | tool_tip="点击这里从文件导入之å‰å¯¼å‡ºçš„列表" /> | ||
14 | <text | ||
15 | name="em_ac_notecard"> | ||
16 | |||
17 | 拖动è¦è¯»å–çš„ | ||
18 | 记事å¡åˆ°è¿™é‡Œã€‚ | ||
19 | </text> | ||
20 | <text | ||
21 | font="SansSerif" | ||
22 | name="em_ac_text1">列表å称 列表项目</text> | ||
23 | <text | ||
24 | font="SansSerif" | ||
25 | name="em_ac_text_name">列表å称</text> | ||
26 | <text | ||
27 | font="SansSerif" | ||
28 | name="em_ac_text2">作者:</text> | ||
29 | <view_border | ||
30 | name="em_ac_box2" /> | ||
31 | <text | ||
32 | font="SansSerif" | ||
33 | name="em_ac_text_author">作者å</text> | ||
34 | <check_box | ||
35 | font="SansSerif" | ||
36 | label="å¯ç”¨ï¼Œä¼˜å…ˆçº§:" | ||
37 | name="em_ac_list_enabled" | ||
38 | tool_tip="ä½ æ˜¯å¦å¸Œæœ›ä½¿ç”¨è¯¥åˆ—表" /> | ||
39 | <spinner | ||
40 | label="" | ||
41 | name="em_ac_priority" | ||
42 | tool_tip="决定列表使用的顺åºã€‚高优先级的列表将在低优先级列表之å‰ç”¨æ¥æ›¿æ¢æ–‡å—。" /> | ||
43 | <check_box | ||
44 | label="显示æ示" | ||
45 | name="em_ac_list_show" | ||
46 | tool_tip="æ¯å½“一个å•è¯è¢«æ›¿æ¢æ—¶ï¼Œå¼¹å‡ºæ示" /> | ||
47 | <check_box | ||
48 | label="匹é…整个å•è¯" | ||
49 | name="em_ac_list_style" | ||
50 | tool_tip="仅当整个å•è¯å®Œå…¨åŒ¹é…æ—¶æ‰è¿›è¡Œæ›¿æ¢ã€‚ä¸é€‰ä¸çš„è¯ï¼Œå°†åœ¨å•è¯å†…部替æ¢æ–‡å—。" /> | ||
51 | <!--Only replace when matches a whole word. If unselected, will replace inside words.--> | ||
52 | <button | ||
53 | name="em_ac_deletelist" | ||
54 | label="åˆ é™¤åˆ—è¡¨" | ||
55 | tool_tip="è¿™å°†åˆ é™¤æ•´ä¸ªå•è¯å’Œæ›¿æ¢é¡¹åˆ—表。æ¤åŠ¨ä½œä¸èƒ½æ’¤é”€ã€‚" /> | ||
56 | <button | ||
57 | name="em_ac_exportlist" | ||
58 | label="导出列表" | ||
59 | tool_tip="这将ä¿å˜ä½ 的当å‰åˆ—表到文件供共享或编辑。" /> | ||
60 | <button | ||
61 | name="em_ac_addentry" | ||
62 | label="æ·»åŠ æ¡ç›®" /> | ||
63 | <button | ||
64 | name="em_ac_rementry" | ||
65 | label="移除æ¡ç›®" /> | ||
66 | <text | ||
67 | name="em_ac_text3">已自动更æ£çš„è¯æ•°:</text> | ||
68 | <text | ||
69 | name="em_ac_stats">计数</text> | ||
70 | |||
71 | |||
72 | </floater> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml b/linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml index d5dcc23..c99401e 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml | |||
@@ -24,7 +24,7 @@ | |||
24 | </panel> | 24 | </panel> |
25 | </tab_container> | 25 | </tab_container> |
26 | <button label="选择" label_selected="选择" name="Select"/> | 26 | <button label="选择" label_selected="选择" name="Select"/> |
27 | <button label="å–消" label_selected="å–消" name="Cancel"/> | 27 | <button label="å…³é—" label_selected="å…³é—" name="Cancel"/> |
28 | <string name="not_found"> | 28 | <string name="not_found"> |
29 | 没有找到“[TEXT]†| 29 | 没有找到“[TEXT]†|
30 | </string> | 30 | </string> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_build_options.xml b/linden/indra/newview/skins/default/xui/zh/floater_build_options.xml index ece9941..5727508 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_build_options.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_build_options.xml | |||
@@ -1,14 +1,84 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater name="build options floater" title="ç½‘æ ¼é€‰é¡¹"> | 2 | <floater |
3 | <spinner label="ç½‘æ ¼å•ä½ (ç±³)" name="GridResolution" /> | 3 | name="build options floater" |
4 | <spinner label="ç½‘æ ¼å®½åº¦ (ç±³)" name="GridDrawSize" /> | 4 | title="é«˜çº§å»ºé€ é€‰é¡¹"> |
5 | <text name="text_box7"> ç½‘æ ¼é€‰é¡¹:</text> | ||
6 | <spinner | ||
7 | label="ç½‘æ ¼å•ä½ (ç±³):" | ||
8 | name="GridResolution" /> | ||
9 | <spinner | ||
10 | label="ç½‘æ ¼èŒƒå›´ (ç±³):" | ||
11 | name="GridDrawSize" /> | ||
5 | <check_box | 12 | <check_box |
6 | |||
7 | label="å¯ç”¨åå•ä½å¯¹é½" | 13 | label="å¯ç”¨åå•ä½å¯¹é½" |
8 | name="GridSubUnit" /> | 14 | name="GridSubUnit" /> |
9 | <check_box | 15 | <check_box |
10 | |||
11 | label="显示剖é¢" | 16 | label="显示剖é¢" |
12 | name="GridCrossSection" /> | 17 | name="GridCrossSection" /> |
13 | <slider label="æ ¼åä¸é€æ˜Žåº¦" name="GridOpacity" /> | 18 | <slider |
19 | label="ç½‘æ ¼ä¸é€æ˜Žåº¦:" | ||
20 | name="GridOpacity" | ||
21 | value="0.7" /> | ||
22 | |||
23 | <text | ||
24 | name="text_box3"> 物体大å°:</text> | ||
25 | |||
26 | <spinner | ||
27 | label="X 尺寸:" | ||
28 | name="X size" /> | ||
29 | <spinner | ||
30 | label="Y 尺寸:" | ||
31 | name="Y size" /> | ||
32 | <spinner | ||
33 | label="Z 尺寸:" | ||
34 | name="Z size" /> | ||
35 | |||
36 | <text | ||
37 | name="text_box6">旋转ä¸å¿ƒ:</text> | ||
38 | <spinner | ||
39 | label="X ä½ç½®:" | ||
40 | name="X pos" /> | ||
41 | <spinner | ||
42 | label="Y ä½ç½®:" | ||
43 | name="Y pos" /> | ||
44 | <spinner | ||
45 | label="Z ä½ç½®:" | ||
46 | name="Z pos" /> | ||
47 | <check_box | ||
48 | label="值为百分比" | ||
49 | tool_tip="默认设置为百分比,æ¯ä¸ªè½´éƒ½è®¾ç½®ä¸º 50" | ||
50 | name="PivotPercToggle" /> | ||
51 | |||
52 | <check_box | ||
53 | label="显示选ä¸é¡¹è½®å»“" | ||
54 | name="BuildPrefsRenderHighlight_toggle" /> | ||
55 | <check_box | ||
56 | label="é™åˆ¶é€‰æ‹©è·ç¦»" | ||
57 | tooltip="" | ||
58 | name="limit_select_dist_check" /> | ||
59 | <check_box | ||
60 | label="æ˜¾ç¤ºè½´äºŽæ ¹å…ƒä»¶ä½ç½®" | ||
61 | tool_tip="默认行为是在链接组的é‡å¿ƒä½ç½®æ˜¾ç¤ºè½´ã€‚选ä¸è¯¥é¡¹å°†åœ¨æ ¹å…ƒä»¶ä½ç½®æ˜¾ç¤ºè½´ã€‚" | ||
62 | name="BuildPrefsActualRoot_toggle" /> | ||
63 | <check_box | ||
64 | label="以地å—社团创建物体" | ||
65 | tooltip="创建物体时使用地å—社团的身份 (如果å¯èƒ½)" | ||
66 | name="grouplandrez" /> | ||
67 | <spinner | ||
68 | tool_tip="设置移动ã€æ—‹è½¬å’Œç¼©æ”¾çš„å°æ•°ç²¾åº¦" | ||
69 | label="物体编辑å°æ•°ä½:" | ||
70 | name="spinner_decimal" /> | ||
71 | |||
72 | <button | ||
73 | label="应用" | ||
74 | name="btn_apply" /> | ||
75 | <button | ||
76 | label="å–消" | ||
77 | name="btn_cancel" /> | ||
78 | <button | ||
79 | label="确定" | ||
80 | name="btn_ok" /> | ||
81 | <button | ||
82 | label="é‡ç½®ä¸ºé»˜è®¤å€¼" | ||
83 | name="btn_reset" /> | ||
14 | </floater> | 84 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_busy.xml b/linden/indra/newview/skins/default/xui/zh/floater_busy.xml new file mode 100644 index 0000000..eb5a9b2 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_busy.xml | |||
@@ -0,0 +1,76 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="busy" | ||
4 | title="IM Response Options" | ||
5 | can_tear_off="false"> | ||
6 | |||
7 | <check_box | ||
8 | label="自动回å¤æ”¶åˆ°çš„å³æ—¶æ¶ˆæ¯" | ||
9 | name="InstantMessageResponseEnabled" /> | ||
10 | <check_box | ||
11 | label="Announce 收到的å³æ—¶æ¶ˆæ¯" | ||
12 | name="InstantMessageAnnounceIncoming" /> | ||
13 | <check_box | ||
14 | label="å·èµ°ç„¦ç‚¹ (Steal focus)/自动回å¤é€šå‘Šåœ¨é¡¶ç«¯å¼¹å‡º" | ||
15 | name="InstantMessageAnnounceStealFocus" /> | ||
16 | <check_box | ||
17 | label="自动回å¤éžå¥½å‹" | ||
18 | name="InstantMessageResponseFriends" /> | ||
19 | <check_box | ||
20 | label="自动回å¤å±è”½çš„人" | ||
21 | name="InstantMessageResponseMuted" /> | ||
22 | <check_box | ||
23 | label="自动回å¤ä»»ä½•äºº" | ||
24 | name="InstantMessageResponseAnyone" /> | ||
25 | <check_box | ||
26 | label="对方一开始打å—就自动回å¤" | ||
27 | name="InstantMessageShowOnTyping" /> | ||
28 | <check_box | ||
29 | label="如果信æ¯è¢«è‡ªåŠ¨å›žå¤å°±ä¸è¦æ˜¾ç¤º" | ||
30 | name="InstantMessageShowResponded" /> | ||
31 | <check_box | ||
32 | label="自动回å¤æ‰€æœ‰ä¿¡æ¯" name="InstantMessageResponseRepeat" /> | ||
33 | |||
34 | <text | ||
35 | name="text_box1"> | ||
36 | 回å¤æ–‡å—: | ||
37 | </text> | ||
38 | <text | ||
39 | name="text_box_a"> | ||
40 | 使用‘#f’代替收件人的å | ||
41 | </text> | ||
42 | <text | ||
43 | name="text_box_b"> | ||
44 | 使用‘#l’代替收件人的姓 | ||
45 | </text> | ||
46 | <text | ||
47 | name="text_box_c"> | ||
48 | 使用‘#t’代替当å‰æ—¶é—´ | ||
49 | </text> | ||
50 | |||
51 | <check_box | ||
52 | label="回å¤æ—¶åŒæ—¶é€å‡ºç‰©ä½“" | ||
53 | name="InstantMessageResponseItem" /> | ||
54 | |||
55 | <text | ||
56 | name="Give inventory" | ||
57 | tool_tip="拖动到这里的库å˜æ¡ç›®å°†ä¼šè¢«åœ¨è‡ªåŠ¨å›žå¤æ—¶é€å‡ºã€‚"> | ||
58 | 拖动库å˜æ¡ç›®åˆ°è¿™é‡Œ | ||
59 | </text> | ||
60 | |||
61 | <text | ||
62 | name="im_give_disp_rect_txt" | ||
63 | tool_tip=""> | ||
64 | ç›®å‰è®¾ç½®åˆ°: ITEM | ||
65 | </text> | ||
66 | |||
67 | <button | ||
68 | label="å–消" | ||
69 | name="btn_cancel" | ||
70 | tool_tip=""/> | ||
71 | <button | ||
72 | label="确定" | ||
73 | name="btn_ok" | ||
74 | tool_tip="" /> | ||
75 | |||
76 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml b/linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml index 2ce722e..7f1d106 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml | |||
@@ -4,7 +4,7 @@ | |||
4 | [NAME] 包括: | 4 | [NAME] 包括: |
5 | </text> | 5 | </text> |
6 | <text name="buy_text"> | 6 | <text name="buy_text"> |
7 | 以 L$[AMOUNT] 从 [NAME] 处è´ä¹°? | 7 | 以 [CURRENCY][AMOUNT] 从 [NAME] 处è´ä¹°? |
8 | </text> | 8 | </text> |
9 | <button label="å–消" label_selected="å–消" name="cancel_btn" /> | 9 | <button label="å–消" label_selected="å–消" name="cancel_btn" /> |
10 | <button label="è´ä¹°" label_selected="è´ä¹°" name="buy_btn" /> | 10 | <button label="è´ä¹°" label_selected="è´ä¹°" name="buy_btn" /> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml b/linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml index f4ce5b6..78fc763 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml | |||
@@ -17,19 +17,19 @@ | |||
17 | æ£åœ¨è¿žæŽ¥ LindeX... | 17 | æ£åœ¨è¿žæŽ¥ LindeX... |
18 | </text> | 18 | </text> |
19 | <text name="buy_action_unknown"> | 19 | <text name="buy_action_unknown"> |
20 | 在 LindeX è´§å¸äº¤æ¢æ‰€è´ä¹° L$ | 20 | 在 è´§å¸äº¤æ¢æ‰€è´ä¹° [CURRENCY] |
21 | </text> | 21 | </text> |
22 | <text name="buy_action"> | 22 | <text name="buy_action"> |
23 | [NAME] L$ [PRICE] | 23 | [NAME] [CURRENCY] [PRICE] |
24 | </text> | 24 | </text> |
25 | <text name="currency_action"> | 25 | <text name="currency_action"> |
26 | è´ä¹°L$ | 26 | è´ä¹°[CURRENCY] |
27 | </text> | 27 | </text> |
28 | <line_editor name="currency_amt"> | 28 | <line_editor name="currency_amt"> |
29 | 1234 | 29 | 1234 |
30 | </line_editor> | 30 | </line_editor> |
31 | <text name="currency_est"> | 31 | <text name="currency_est"> |
32 | 需è¦å¤§æ¦‚ US$ [USD] | 32 | 需è¦å¤§æ¦‚ [REALCURRENCY] [USD] |
33 | </text> | 33 | </text> |
34 | <text name="getting_data"> | 34 | <text name="getting_data"> |
35 | 获å–æ•°æ®... | 35 | 获å–æ•°æ®... |
@@ -38,22 +38,22 @@ | |||
38 | ä½ ç›®å‰æœ‰ | 38 | ä½ ç›®å‰æœ‰ |
39 | </text> | 39 | </text> |
40 | <text name="balance_amount"> | 40 | <text name="balance_amount"> |
41 | L$ [AMT] | 41 | [CURRENCY] [AMT] |
42 | </text> | 42 | </text> |
43 | <text name="buying_label"> | 43 | <text name="buying_label"> |
44 | ä½ æ£åœ¨è´ä¹° | 44 | ä½ æ£åœ¨è´ä¹° |
45 | </text> | 45 | </text> |
46 | <text name="buying_amount"> | 46 | <text name="buying_amount"> |
47 | L$ [AMT] | 47 | [CURRENCY] [AMT] |
48 | </text> | 48 | </text> |
49 | <text name="total_label"> | 49 | <text name="total_label"> |
50 | ä½ çš„å¸æˆ·ç»“余是 | 50 | ä½ çš„å¸æˆ·ç»“余是 |
51 | </text> | 51 | </text> |
52 | <text name="total_amount"> | 52 | <text name="total_amount"> |
53 | L$ [AMT] | 53 | [CURRENCY] [AMT] |
54 | </text> | 54 | </text> |
55 | <text name="purchase_warning_repurchase"> | 55 | <text name="purchase_warning_repurchase"> |
56 | 确认æ¤æ¬¡æ“作åªä¼šè´ä¹°çŽ°é’žã€‚ | 56 | 确认æ¤æ¬¡æ“作åªä¼šè´ä¹°è´§å¸ã€‚ |
57 | ä½ éœ€è¦é‡è¯•è¯¥æ“作。 | 57 | ä½ éœ€è¦é‡è¯•è¯¥æ“作。 |
58 | </text> | 58 | </text> |
59 | <text name="purchase_warning_notenough"> | 59 | <text name="purchase_warning_notenough"> |
@@ -62,6 +62,6 @@ | |||
62 | <button label="å–消" name="cancel_btn"/> | 62 | <button label="å–消" name="cancel_btn"/> |
63 | <button label="è´ä¹°" name="buy_btn"/> | 63 | <button label="è´ä¹°" name="buy_btn"/> |
64 | <string name="buy_currency"> | 64 | <string name="buy_currency"> |
65 | 以大约 US$ [USD] è´ä¹° L$ [LINDENS] | 65 | 以大约 [REALCURRENCY] [USD] è´ä¹° [CURRENCY] [LINDENS] |
66 | </string> | 66 | </string> |
67 | </floater> | 67 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml b/linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml index 45c5832..2474ed3 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml | |||
@@ -97,7 +97,7 @@ | |||
97 | ä½ æœ‰L$2,100. | 97 | ä½ æœ‰L$2,100. |
98 | </text> | 98 | </text> |
99 | <text name="currency_action"> | 99 | <text name="currency_action"> |
100 | è´ä¹°é¢å¤–çš„ L$ | 100 | è´ä¹°é¢å¤–çš„ [CURRENCY] |
101 | </text> | 101 | </text> |
102 | <line_editor name="currency_amt"> | 102 | <line_editor name="currency_amt"> |
103 | 1000 | 103 | 1000 |
@@ -186,10 +186,10 @@ | |||
186 | ä½ æ‹¥æœ‰[BUYER]平方米的土地。 | 186 | ä½ æ‹¥æœ‰[BUYER]平方米的土地。 |
187 | </string> | 187 | </string> |
188 | <string name="pay_to_for_land"> | 188 | <string name="pay_to_for_land"> |
189 | 支付L$ [AMOUNT] 至 [SELLER] è´ä¹°è¿™å—土地 | 189 | 支付[CURRENCY] [AMOUNT] 至 [SELLER] è´ä¹°è¿™å—土地 |
190 | </string> | 190 | </string> |
191 | <string name="buy_for_US"> | 191 | <string name="buy_for_US"> |
192 | 以大约US$[AMOUNT2]è´ä¹°L$[AMOUNT], | 192 | 以大约US$[AMOUNT2]è´ä¹°[CURRENCY][AMOUNT], |
193 | </string> | 193 | </string> |
194 | <string name="parcel_meters"> | 194 | <string name="parcel_meters"> |
195 | è¿™å—土地的é¢ç§¯ä¸º[AMOUNT]平方米。 | 195 | è¿™å—土地的é¢ç§¯ä¸º[AMOUNT]平方米。 |
@@ -210,30 +210,31 @@ | |||
210 | <string name="sold_without_objects"> | 210 | <string name="sold_without_objects"> |
211 | 物å“ä¸åŒ…æ‹¬åœ¨å…¶ä¸ | 211 | 物å“ä¸åŒ…æ‹¬åœ¨å…¶ä¸ |
212 | </string> | 212 | </string> |
213 | <!--Does not appear to be using [CURRENCY]--> | ||
213 | <string name="info_price_string"> | 214 | <string name="info_price_string"> |
214 | L$[PRICE] | 215 | [CURRENCY][PRICE] |
215 | (L$[PRICE_PER_SQM]/m²) | 216 | ([CURRENCY][PRICE_PER_SQM]/m²) |
216 | [SOLD_WITH_OBJECTS] | 217 | [SOLD_WITH_OBJECTS] |
217 | </string> | 218 | </string> |
218 | <string name="insufficient_land_credits"> | 219 | <string name="insufficient_land_credits"> |
219 | 在这次è´ä¹°å®Œæˆä¹‹å‰ï¼Œç¤¾å›¢[GROUP]将需è¦è¶³å¤Ÿçš„被贡献的土地所用的信用é¢åº¦ï¼Œæ¥è¦†ç›–这片土地。 | 220 | 在这次è´ä¹°å®Œæˆä¹‹å‰ï¼Œç¤¾å›¢[GROUP]将需è¦è¶³å¤Ÿçš„被贡献的土地所用的信用é¢åº¦ï¼Œæ¥è¦†ç›–这片土地。 |
220 | </string> | 221 | </string> |
221 | <string name="have_enough_lindens"> | 222 | <string name="have_enough_lindens"> |
222 | ä½ æœ‰L$ [AMOUNT], 这些钱足够è´ä¹°è¿™å—土地。 | 223 | ä½ æœ‰[CURRENCY] [AMOUNT], 这些钱足够è´ä¹°è¿™å—土地。 |
223 | </string> | 224 | </string> |
224 | <string name="not_enough_lindens"> | 225 | <string name="not_enough_lindens"> |
225 | ä½ åªæœ‰L$ [AMOUNT], ä½ è¿˜éœ€è¦ L$ [AMOUNT2]。 | 226 | ä½ åªæœ‰[CURRENCY] [AMOUNT], ä½ è¿˜éœ€è¦ [CURRENCY] [AMOUNT2]。 |
226 | </string> | 227 | </string> |
227 | <string name="balance_left"> | 228 | <string name="balance_left"> |
228 | æ¤é¡¹æ¶ˆè´¹åŽ, ä½ è¿˜ä¼šæœ‰L$ [AMOUNT]结余. | 229 | æ¤é¡¹æ¶ˆè´¹åŽ, ä½ è¿˜ä¼šæœ‰[CURRENCY] [AMOUNT]结余. |
229 | </string> | 230 | </string> |
230 | <string name="balance_needed"> | 231 | <string name="balance_needed"> |
231 | ä½ éœ€è¦è´ä¹°è‡³å°‘ L$ [AMOUNT]æ¥è´ä¹°è¿™å—土地。 | 232 | ä½ éœ€è¦è´ä¹°è‡³å°‘ [CURRENCY] [AMOUNT]æ¥è´ä¹°è¿™å—土地。 |
232 | </string> | 233 | </string> |
233 | <string name="no_parcel_selected"> | 234 | <string name="no_parcel_selected"> |
234 | (没有选择地å—) | 235 | (没有选择地å—) |
235 | </string> | 236 | </string> |
236 | <string name="buy_currency"> | 237 | <string name="buy_currency"> |
237 | 以大约 US$ [USD] è´ä¹° L$ [LINDENS] | 238 | 以大约 US$ [USD] è´ä¹° [CURRENCY] [LINDENS] |
238 | </string> | 239 | </string> |
239 | </floater> | 240 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml b/linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml index b7c977c..b32286c 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml | |||
@@ -4,7 +4,7 @@ | |||
4 | 以åŠå®ƒçš„内容: | 4 | 以åŠå®ƒçš„内容: |
5 | </text> | 5 | </text> |
6 | <text name="buy_text"> | 6 | <text name="buy_text"> |
7 | 以 L$[AMOUNT] 从 [NAME] 处è´ä¹°? | 7 | 以 [CURRENCY][AMOUNT] 从 [NAME] 处è´ä¹°? |
8 | </text> | 8 | </text> |
9 | <button label="å–消" label_selected="å–消" name="cancel_btn" /> | 9 | <button label="å–消" label_selected="å–消" name="cancel_btn" /> |
10 | <button label="è´ä¹°" label_selected="è´ä¹°" name="buy_btn" /> | 10 | <button label="è´ä¹°" label_selected="è´ä¹°" name="buy_btn" /> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml b/linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml index 7dcd40d..2fdc1bf 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml | |||
@@ -19,13 +19,13 @@ | |||
19 | -- æ—¥å¿—ç»“æŸ -- | 19 | -- æ—¥å¿—ç»“æŸ -- |
20 | </string> | 20 | </string> |
21 | <string name="ScriptQuestionCautionChatGranted"> | 21 | <string name="ScriptQuestionCautionChatGranted"> |
22 | ‘[OBJECTNAME]’, 主人为 ‘[OWNERNAME]’ 的物体, ä½äºŽ [REGIONNAME] 地区 [REGIONPOS], 已被授予以下æƒåˆ©ï¼š [PERMISSIONS]。 | 22 | ‘[OBJECTNAME]’, ‘[OWNERNAME]’ 所拥有的物体, ä½äºŽ [REGIONNAME] 地区 [REGIONPOS], 已被授予以下æƒåˆ©ï¼š [PERMISSIONS]。 |
23 | </string> | 23 | </string> |
24 | <string name="ScriptQuestionCautionChatDenied"> | 24 | <string name="ScriptQuestionCautionChatDenied"> |
25 | ‘[OBJECTNAME]’, 主人为 ‘[OWNERNAME]’ 的物体, ä½äºŽ [REGIONNAME] 地区 [REGIONPOS], 已被拒ç»ä»¥ä¸‹æƒåˆ©ï¼š [PERMISSIONS]。 | 25 | ‘[OBJECTNAME]’, ‘[OWNERNAME]’ 所拥有的物体, ä½äºŽ [REGIONNAME] 地区 [REGIONPOS], 已被拒ç»ä»¥ä¸‹æƒåˆ©ï¼š [PERMISSIONS]。 |
26 | </string> | 26 | </string> |
27 | <string name="ScriptTakeMoney"> | 27 | <string name="ScriptTakeMoney"> |
28 | 从您那里å–èµ°æž—ç™»å¸(L$) | 28 | 从您那里å–èµ°è´§å¸ |
29 | </string> | 29 | </string> |
30 | <string name="ActOnControlInputs"> | 30 | <string name="ActOnControlInputs"> |
31 | 对您的控制输入åšå‡ºå应 | 31 | 对您的控制输入åšå‡ºå应 |
@@ -65,6 +65,9 @@ | |||
65 | </combo_item> | 65 | </combo_item> |
66 | </combo_box> | 66 | </combo_box> |
67 | <check_box label="显示å±è”½çš„æ–‡å—" name="show mutes"/> | 67 | <check_box label="显示å±è”½çš„æ–‡å—" name="show mutes"/> |
68 | <check_box | ||
69 | label="翻译èŠå¤© (ç”± Google 强力驱动)" | ||
70 | name="translate chat" /> | ||
68 | <button label="< <" label_selected="> >" name="toggle_active_speakers_btn" tool_tip="显示在该å³æ—¶é€šä¿¡ä¼šè¯ä¸æ´»åŠ¨çš„å‚与者。"/> | 71 | <button label="< <" label_selected="> >" name="toggle_active_speakers_btn" tool_tip="显示在该å³æ—¶é€šä¿¡ä¼šè¯ä¸æ´»åŠ¨çš„å‚与者。"/> |
69 | <panel name="chat_panel"> | 72 | <panel name="chat_panel"> |
70 | <string name="gesture_label"> | 73 | <string name="gesture_label"> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_chatterbox.xml b/linden/indra/newview/skins/default/xui/zh/floater_chatterbox.xml index 6d30952..d8735d8 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_chatterbox.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_chatterbox.xml | |||
@@ -1,3 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <multi_floater name="floater_chatterbox" title="交æµ"> | 2 | <multi_floater name="floater_chatterbox" title="交æµ"> |
3 | <string name="unread_count_string_singular"> | ||
4 | æ¡æœªè¯»æ¶ˆæ¯ | ||
5 | </string> | ||
6 | <string name="unread_count_string_plural"> | ||
7 | æ¡æœªè¯»æ¶ˆæ¯ | ||
8 | </string> | ||
3 | </multi_floater> \ No newline at end of file | 9 | </multi_floater> \ No newline at end of file |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_chatterbox_vertical.xml b/linden/indra/newview/skins/default/xui/zh/floater_chatterbox_vertical.xml new file mode 100644 index 0000000..c7a4a1e --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_chatterbox_vertical.xml | |||
@@ -0,0 +1,11 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <multi_floater | ||
3 | name="floater_chatterbox" | ||
4 | title="交æµ"> | ||
5 | <string name="unread_count_string_singular"> | ||
6 | æ¡æœªè¯»æ¶ˆæ¯ | ||
7 | </string> | ||
8 | <string name="unread_count_string_plural"> | ||
9 | æ¡æœªè¯»æ¶ˆæ¯ | ||
10 | </string> | ||
11 | </multi_floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_choose_group.xml b/linden/indra/newview/skins/default/xui/zh/floater_choose_group.xml index f43eddd..75d94e1 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_choose_group.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_choose_group.xml | |||
@@ -5,4 +5,7 @@ | |||
5 | </text> | 5 | </text> |
6 | <button label="OK" label_selected="OK" name="OK" /> | 6 | <button label="OK" label_selected="OK" name="OK" /> |
7 | <button label="å–消" label_selected="å–消" name="Cancel" /> | 7 | <button label="å–消" label_selected="å–消" name="Cancel" /> |
8 | <string name="none"> | ||
9 | æ— | ||
10 | </string> | ||
8 | </floater> | 11 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_command_line.xml b/linden/indra/newview/skins/default/xui/zh/floater_command_line.xml new file mode 100644 index 0000000..97bb8b5 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_command_line.xml | |||
@@ -0,0 +1,65 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="busy" | ||
4 | title="èŠå¤©æ 命令" | ||
5 | can_tear_off="false"> | ||
6 | <text | ||
7 | name="loltxt2"> 区域内瞬间移动 (用法: 命令 x y z)</text> | ||
8 | <text | ||
9 | name="loltxt3"> çž¬é—´ç§»åŠ¨åˆ°åœ°é¢ (用法: 命令)</text> | ||
10 | <text | ||
11 | name="loltxt4"> 瞬间移动到高度 (用法: 命令 z)</text> | ||
12 | <text | ||
13 | name="loltxt5"> 瞬间移动回家 (用法: 命令)</text> | ||
14 | <text | ||
15 | name="loltxt6"> åˆ›å»ºä¸€ä¸ªå¹³å° (用法: 命令 0 - 30)</text> | ||
16 | <slider | ||
17 | name="CmdLineChatbarPlatformSize" | ||
18 | label="宽度" | ||
19 | tool_tip="您想è¦å¤šå¤§çš„å¹³å°ï¼Ÿ" /> | ||
20 | <text | ||
21 | name="loltxt7"> 瞬间移动到其他区域 (用法: 命令 区域å称)</text> | ||
22 | <check_box | ||
23 | label="瞬间移动时ä¿æŒä½ç½®" | ||
24 | name="toggle" /> | ||
25 | <text | ||
26 | name="loltxt8"> è®¡ç®—è¡¨è¾¾å¼ (用法: 命令 SIN(2+2))</text> | ||
27 | <text | ||
28 | name="add_autokorrect">æ·»åŠ è‡ªåŠ¨æ›´æ£è¯æ±‡(命令 列表|原è¯|æ›´æ£)</text> | ||
29 | <text | ||
30 | name="loltxt9"> 改å˜æ绘è·ç¦» (用法: 命令 è·ç¦»)</text> | ||
31 | <text | ||
32 | name="loltxt10"> 瞬间移动到摄åƒæœºä½ç½® (用法: 命令)</text> | ||
33 | <text | ||
34 | name="loltxt11"> 获å–键值相对应的化身åå— (用法: 命令 键值)</text> | ||
35 | <text | ||
36 | name="loltxt12"> 邀请化身瞬间移动 (用法: 命令 键值)</text> | ||
37 | <text | ||
38 | name="loltxt13"> 瞬间移动到化身ä½ç½® (用法: 命令 åå—)</text> | ||
39 | <line_editor | ||
40 | tool_tip="åå—大å°å†™ä¸é‡è¦ï¼Œåªé”®å…¥åå—的一部分也å¯ä»¥ã€‚打开å°åœ°å›¾çš„è¯ï¼Œæ•ˆæžœæ›´ä½³ã€‚" | ||
41 | name="CmdLineChatbarTP2" /> | ||
42 | <text | ||
43 | name="loltxt14"> 打开(on)/å…³é—(off)动作覆盖器 (用法: 命令 on/off)</text> | ||
44 | <text | ||
45 | name="loltxt15"> 清除èŠå¤©è®°å½• (用法: 命令)</text> | ||
46 | <line_editor | ||
47 | tool_tip="清除èŠå¤©è®°å½•é˜²æ¢å¡æœºã€‚" | ||
48 | name="CmdLineChatbarClearChat" /> | ||
49 | |||
50 | <text | ||
51 | name="set_media_url_text"> 设置媒体 URL(用法: 命令 url 类型)</text> | ||
52 | <line_editor | ||
53 | tool_tip="设置媒体æµä½ç½®åˆ°æŒ‡å®šçš„ URL 并æ’放" | ||
54 | name="CmdLineChatbarMedia" /> | ||
55 | <text | ||
56 | name="set_music_url_text"> 设置音ä¹æµ URL (用法: 命令 url)</text> | ||
57 | |||
58 | <line_editor | ||
59 | tool_tip="设置音ä¹æµä½ç½®åˆ°æŒ‡å®šçš„ URL 并æ’放" | ||
60 | name="CmdLineChatbarMusic" /> | ||
61 | <button | ||
62 | label="?" | ||
63 | name="Help_CmdLine" | ||
64 | tool_tip="点击这里获å–该页é¢è®¾ç½®çš„帮助。" /> | ||
65 | </floater> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_customize.xml b/linden/indra/newview/skins/default/xui/zh/floater_customize.xml index ef14187..d6d1384 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_customize.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_customize.xml | |||
@@ -1,5 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <floater name="floater customize" title="外表"> | 2 | <floater name="floater customize" title="外观"> |
3 | <tab_container name="customize tab container"> | 3 | <tab_container name="customize tab container"> |
4 | <panel label="身体部ä½" name="body_parts_placeholder"/> | 4 | <panel label="身体部ä½" name="body_parts_placeholder"/> |
5 | <panel label="体型" name="Shape"> | 5 | <panel label="体型" name="Shape"> |
@@ -465,8 +465,92 @@ | |||
465 | <button label="å¦å˜ä¸º..." label_selected="å¦å˜ä¸º..." name="Save As"/> | 465 | <button label="å¦å˜ä¸º..." label_selected="å¦å˜ä¸º..." name="Save As"/> |
466 | <button label="æ¢å¤" label_selected="æ¢å¤" name="Revert"/> | 466 | <button label="æ¢å¤" label_selected="æ¢å¤" name="Revert"/> |
467 | </panel> | 467 | </panel> |
468 | <panel label="纹身" name="Tattoo"> | ||
469 | <text length="1" name="title"> | ||
470 | [DESC] | ||
471 | </text> | ||
472 | <text length="1" name="title_no_modify"> | ||
473 | [DESC]: æ— æ³•ä¿®æ”¹ | ||
474 | </text> | ||
475 | <text length="1" name="title_loading" type="string"> | ||
476 | [DESC]: 载入ä¸... | ||
477 | </text> | ||
478 | <text length="1" name="title_not_worn" type="string"> | ||
479 | [DESC]: æ²¡æœ‰è¢«ç©¿ç€ | ||
480 | </text> | ||
481 | <text length="1" name="path" type="string"> | ||
482 | ä½äºŽ[PATH] | ||
483 | </text> | ||
484 | <text length="1" name="not worn instructions" type="string"> | ||
485 | è¦ä½¿ç”¨æ–°çš„çº¹èº«ï¼Œéœ€ä»Žä½ çš„åº“å˜ä¸æ‹–æ‹½ä¸€ä¸ªæ–°çš„çº¹èº«è‡³ä½ çš„åŒ–èº«ä¸Šã€‚ | ||
486 | æˆ–è€…ï¼Œä½ ä¹Ÿå¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚ | ||
487 | </text> | ||
488 | <text length="1" name="no modify instructions" type="string"> | ||
489 | ä½ æ²¡æœ‰ä¿®æ”¹è¿™ä»¶æœé¥°çš„æƒåˆ©ã€‚ | ||
490 | </text> | ||
491 | <text name="Item Action Label"> | ||
492 | 纹身: | ||
493 | </text> | ||
494 | <texture_picker label="头部纹身" name="Head Tattoo" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | ||
495 | <texture_picker label="上身的纹身" name="Upper Tattoo" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | ||
496 | <texture_picker label="下身纹身" name="Lower Tattoo" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | ||
497 | <color_swatch label="颜色" name="Color/Tint" tool_tip="点击这里æ¥æ‰“开色彩选择器"/> | ||
498 | <button label="创建新的纹身" label_selected="创建新的纹身" name="Create New"/> | ||
499 | <button label="脱掉" label_selected="脱掉" name="Take Off"/> | ||
500 | <button label="å˜å‚¨" label_selected="å˜å‚¨" name="Save"/> | ||
501 | <button label="å¦å˜ä¸º..." label_selected="å¦å˜ä¸º..." name="Save As"/> | ||
502 | <button label="æ¢å¤" label_selected="æ¢å¤" name="Revert"/> | ||
503 | </panel> | ||
504 | <panel label="é€æ˜Žåº¦" name="Alpha"> | ||
505 | <text length="1" name="title"> | ||
506 | [DESC] | ||
507 | </text> | ||
508 | <text length="1" name="title_no_modify"> | ||
509 | [DESC]: æ— æ³•ä¿®æ”¹ | ||
510 | </text> | ||
511 | <text length="1" name="title_loading" type="string"> | ||
512 | [DESC]: 载入ä¸... | ||
513 | </text> | ||
514 | <text length="1" name="title_not_worn" type="string"> | ||
515 | [DESC]: æ²¡æœ‰è¢«ç©¿ç€ | ||
516 | </text> | ||
517 | <text length="1" name="path" type="string"> | ||
518 | ä½äºŽ[PATH] | ||
519 | </text> | ||
520 | <text length="1" name="not worn instructions" type="string"> | ||
521 | è¦ä½¿ç”¨æ–°çš„é€æ˜Žåº¦è’™æ¿ï¼Œéœ€ä»Žä½ 的库å˜ä¸æ‹–拽一个新的é€æ˜Žåº¦è’™æ¿è‡³ä½ 的化身上。 | ||
522 | æˆ–è€…ï¼Œä½ ä¹Ÿå¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚ | ||
523 | </text> | ||
524 | <text length="1" name="no modify instructions" type="string"> | ||
525 | ä½ æ²¡æœ‰ä¿®æ”¹è¿™ä»¶æœé¥°çš„æƒåˆ©ã€‚ | ||
526 | </text> | ||
527 | <text name="Item Action Label"> | ||
528 | é€æ˜Žåº¦è’™æ¿ï¼š | ||
529 | </text> | ||
530 | <texture_picker label="头部é€æ˜Žåº¦" name="Head Alpha" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | ||
531 | <texture_picker label="上身é€æ˜Žåº¦" name="Upper Alpha" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | ||
532 | <texture_picker label="下身é€æ˜Žåº¦" name="Lower Alpha" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | ||
533 | <texture_picker label="头å‘é€æ˜Žåº¦" name="Hair Alpha" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | ||
534 | <texture_picker label="眼ç›é€æ˜Žåº¦" name="Eye Alpha" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | ||
535 | <button label="创建新的é€æ˜Žåº¦è’™æ¿" label_selected="创建新的é€æ˜Žåº¦è’™æ¿" name="Create New"/> | ||
536 | <button label="脱掉" label_selected="脱掉" name="Take Off"/> | ||
537 | <button label="å˜å‚¨" label_selected="å˜å‚¨" name="Save"/> | ||
538 | <button label="å¦å˜ä¸º..." label_selected="å¦å˜ä¸º..." name="Save As"/> | ||
539 | <button label="æ¢å¤" label_selected="æ¢å¤" name="Revert"/> | ||
540 | </panel> | ||
468 | </tab_container> | 541 | </tab_container> |
542 | <text | ||
543 | name="AvatarHeightText"> | ||
544 | 化身高度: | ||
545 | </text> | ||
546 | <text name="includes_shoes"> | ||
547 | (包括鞋) | ||
548 | </text> | ||
549 | |||
550 | <button name="Import" label="导入" /> | ||
551 | <button name="Export" label="导出" /> | ||
552 | |||
553 | <button label="ä¿å˜ä¸ºè£…æŸ" label_selected="ä¿å˜ä¸ºè£…æŸ" name="Make Outfit" /> | ||
469 | <button label="å–消" label_selected="å–消" name="Cancel"/> | 554 | <button label="å–消" label_selected="å–消" name="Cancel"/> |
470 | <button label="确定" label_selected="确定" name="Ok"/> | 555 | <button label="确定" label_selected="确定" name="Ok"/> |
471 | <button label="Make Outfit..." label_selected="制作装æŸ..." name="Make Outfit"/> | ||
472 | </floater> | 556 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_dictionaries.xml b/linden/indra/newview/skins/default/xui/zh/floater_dictionaries.xml new file mode 100644 index 0000000..0964d75 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_dictionaries.xml | |||
@@ -0,0 +1,18 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="EmeraldIRC_dictionaries" | ||
4 | title="下载新è¯å…¸"> | ||
5 | <text | ||
6 | name="EmDics_txt"> | ||
7 | 以下是å¯ä»¥ä»Ž Imprudence ç½‘ç«™ä¸‹è½½çš„é™„åŠ è¯å…¸çš„列表。 | ||
8 | |||
9 | 请选择您想下载的è¯å…¸ï¼Œç„¶åŽæŒ‰ä¸‹è½½æŒ‰é’®ã€‚</text> | ||
10 | <combo_box | ||
11 | allow_text_entry="false" | ||
12 | max_chars="255" | ||
13 | name="Emerald_combo_dics" | ||
14 | tool_tip="" /> | ||
15 | <button | ||
16 | label="下载" | ||
17 | name="Emerald_dic_download" /> | ||
18 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_directory.xml b/linden/indra/newview/skins/default/xui/zh/floater_directory.xml index 063676a..0850f58 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_directory.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_directory.xml | |||
@@ -1,7 +1,67 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <floater name="directory" title="æœç´¢"> | 2 | <floater name="directory" title="æœç´¢"> |
3 | <tab_container name="Directory Tabs"> | 3 | <tab_container name="Directory Tabs"> |
4 | <panel label="All" name="find_all_panel"> | 4 | <panel |
5 | label="全部" | ||
6 | name="find_all_old_panel"> | ||
7 | <text name="find"> | ||
8 | 查找: | ||
9 | </text> | ||
10 | <button label="æœç´¢" label_selected="æœç´¢" name="Search" /> | ||
11 | <string name="searching_text"> | ||
12 | 查找ä¸â€¦â€¦ | ||
13 | </string> | ||
14 | <string name="not_found_text"> | ||
15 | 什么也没找到。 | ||
16 | </string> <button | ||
17 | label="åŽé€€" | ||
18 | name="back_btn" /> | ||
19 | <button | ||
20 | label="å‰è¿›" | ||
21 | name="forward_btn" /> | ||
22 | <line_editor | ||
23 | label="æœç´¢" | ||
24 | name="search_editor" | ||
25 | tool_tip="æœç´¢ç¬¬äºŒäººç”Ÿ" /> | ||
26 | <check_box label="PG 内容" name="incpg"/> | ||
27 | <check_box label="Mature 内容" name="incmature"/> | ||
28 | <check_box label="Adult 内容" name="incadult"/> | ||
29 | <scroll_list | ||
30 | fg_disable_color="1, 1, 1, 1" | ||
31 | name="results"> | ||
32 | <column | ||
33 | label="" | ||
34 | name="icon" /> | ||
35 | <column | ||
36 | label="å称" | ||
37 | name="name" /> | ||
38 | <column | ||
39 | label="ä»·æ ¼" | ||
40 | name="price" /> | ||
41 | <column | ||
42 | label="时间 (PT)" | ||
43 | name="date" /> | ||
44 | <column | ||
45 | label="时间" | ||
46 | name="time" /> | ||
47 | <column | ||
48 | label="æµé‡" | ||
49 | name="dwell" /> | ||
50 | <column | ||
51 | label="é¢ç§¯" | ||
52 | name="area" /> | ||
53 | <column | ||
54 | label="[CURRENCY]/m²" | ||
55 | name="per_meter" /> | ||
56 | <column | ||
57 | label="在线" | ||
58 | name="online" /> | ||
59 | <column | ||
60 | label="团员" | ||
61 | name="members" /> | ||
62 | </scroll_list> | ||
63 | </panel> | ||
64 | <panel label="全部 (Web)" name="find_all_panel"> | ||
5 | <string name="searching_text"> | 65 | <string name="searching_text"> |
6 | 查找ä¸â€¦â€¦ | 66 | 查找ä¸â€¦â€¦ |
7 | </string> | 67 | </string> |
@@ -9,7 +69,7 @@ | |||
9 | 什么也没找到。 | 69 | 什么也没找到。 |
10 | </string> | 70 | </string> |
11 | <text name="find"> | 71 | <text name="find"> |
12 | 寻找: | 72 | 查找: |
13 | </text> | 73 | </text> |
14 | <line_editor label="æœç´¢" name="search_editor" tool_tip="æœç´¢ç¬¬äºŒäººç”Ÿ"/> | 74 | <line_editor label="æœç´¢" name="search_editor" tool_tip="æœç´¢ç¬¬äºŒäººç”Ÿ"/> |
15 | <button label="åŽé€€" name="back_btn"/> | 75 | <button label="åŽé€€" name="back_btn"/> |
@@ -35,9 +95,9 @@ | |||
35 | Wiki | 95 | Wiki |
36 | </combo_item> | 96 | </combo_item> |
37 | </combo_box> | 97 | </combo_box> |
38 | <check_box label="PG内容" name="incpg"/> | 98 | <check_box label="PG 内容" name="incpg"/> |
39 | <check_box label="Mature内容" name="incmature"/> | 99 | <check_box label="Mature 内容" name="incmature"/> |
40 | <check_box label="Adult内容" name="incadult"/> | 100 | <check_box label="Adult 内容" name="incadult"/> |
41 | <button label="?" label_selected="?" name="?"/> | 101 | <button label="?" label_selected="?" name="?"/> |
42 | <string name="loading_text"> | 102 | <string name="loading_text"> |
43 | åŠ è½½ä¸... | 103 | åŠ è½½ä¸... |
@@ -56,9 +116,9 @@ | |||
56 | <text name="find"> | 116 | <text name="find"> |
57 | 寻找: | 117 | 寻找: |
58 | </text> | 118 | </text> |
59 | <check_box label="PG内容" name="incpg"/> | 119 | <check_box label="PG 内容" name="incpg"/> |
60 | <check_box label="Mature内容" name="incmature"/> | 120 | <check_box label="Mature 内容" name="incmature"/> |
61 | <check_box label="Adult内容" name="incadult"/> | 121 | <check_box label="Adult 内容" name="incadult"/> |
62 | <combo_box name="Category"> | 122 | <combo_box name="Category"> |
63 | <combo_item name="AnyCategory"> | 123 | <combo_item name="AnyCategory"> |
64 | ä»»æ„分类 | 124 | ä»»æ„分类 |
@@ -98,8 +158,8 @@ | |||
98 | <scroll_list name="results"> | 158 | <scroll_list name="results"> |
99 | <column label="" name="icon"/> | 159 | <column label="" name="icon"/> |
100 | <column label="" name="type"/> | 160 | <column label="" name="type"/> |
101 | <column label="Name" name="name"/> | 161 | <column label="å称" name="name"/> |
102 | <column label="Price" name="price"/> | 162 | <column label="ä»·æ ¼" name="price"/> |
103 | </scroll_list> | 163 | </scroll_list> |
104 | <button label="下一页 >" label_selected="下一页 >" name="Next >"/> | 164 | <button label="下一页 >" label_selected="下一页 >" name="Next >"/> |
105 | <button label="< 上一页" label_selected="< 上一页" name="< Prev"/> | 165 | <button label="< 上一页" label_selected="< 上一页" name="< Prev"/> |
@@ -169,9 +229,9 @@ | |||
169 | 其他 | 229 | 其他 |
170 | </combo_item> | 230 | </combo_item> |
171 | </combo_box> | 231 | </combo_box> |
172 | <check_box label="PG内容" name="incpg"/> | 232 | <check_box label="PG 内容" name="incpg"/> |
173 | <check_box label="Mature内容" name="incmature"/> | 233 | <check_box label="Mature 内容" name="incmature"/> |
174 | <check_box label="Adult内容" name="incadult"/> | 234 | <check_box label="Adult 内容" name="incadult"/> |
175 | <button label="æœç´¢" label_selected="æœç´¢" name="Search" tool_tip="æœç´¢"/> | 235 | <button label="æœç´¢" label_selected="æœç´¢" name="Search" tool_tip="æœç´¢"/> |
176 | <button label="åˆ é™¤" label_selected="åˆ é™¤" name="Delete"/> | 236 | <button label="åˆ é™¤" label_selected="åˆ é™¤" name="Delete"/> |
177 | <scroll_list name="results"> | 237 | <scroll_list name="results"> |
@@ -185,7 +245,7 @@ | |||
185 | <button label="下一页 >" label_selected="下一页 >" name="Next >"/> | 245 | <button label="下一页 >" label_selected="下一页 >" name="Next >"/> |
186 | <button label="< 上一页" label_selected="< 上一页" name="< Prev"/> | 246 | <button label="< 上一页" label_selected="< 上一页" name="< Prev"/> |
187 | </panel> | 247 | </panel> |
188 | <panel label="çƒé—¨åœ°ç‚¹" name="showcase_panel"> | 248 | <panel label="特色介ç»" name="showcase_panel"> |
189 | <string name="searching_text"> | 249 | <string name="searching_text"> |
190 | 查找ä¸â€¦â€¦ | 250 | 查找ä¸â€¦â€¦ |
191 | </string> | 251 | </string> |
@@ -209,15 +269,15 @@ | |||
209 | 什么也没找到。 | 269 | 什么也没找到。 |
210 | </string> | 270 | </string> |
211 | <string name="land_help_text"> | 271 | <string name="land_help_text"> |
212 | 土地å¯ä»¥ç›´æŽ¥ç”¨æž—登元è´ä¹°ï¼ˆL$),也å¯ä»¥ç”¨æž—登元或美元æ‹å–。 | 272 | 土地å¯ä»¥ç›´æŽ¥ç”¨ä¸–ç•Œä¸çš„è´§å¸è´ä¹°ï¼Œä¹Ÿå¯ä»¥ç”¨ä¸–ç•Œä¸çš„è´§å¸æˆ–真实货å¸æ‹å–。 |
213 | è¦ç›´æŽ¥è´ä¹°, 进入该地å—,然åŽç‚¹å‡»èœå•æ 上的地点å称。 | 273 | è¦ç›´æŽ¥è´ä¹°, 进入该地å—,然åŽç‚¹å‡»èœå•æ 上的地点å称。 |
214 | </string> | 274 | </string> |
215 | <text name="find"> | 275 | <text name="find"> |
216 | 寻找: | 276 | 寻找: |
217 | </text> | 277 | </text> |
218 | <check_box label="PG内容" name="incpg"/> | 278 | <check_box label="PG 内容" name="incpg"/> |
219 | <check_box label="Mature内容" name="incmature"/> | 279 | <check_box label="Mature 内容" name="incmature"/> |
220 | <check_box label="Adult内容" name="incadult"/> | 280 | <check_box label="Adult 内容" name="incadult"/> |
221 | <combo_box bottom="-64" left="224" name="type" width="168"> | 281 | <combo_box bottom="-64" left="224" name="type" width="168"> |
222 | <combo_item name="AllTypes"> | 282 | <combo_item name="AllTypes"> |
223 | 所有类型 | 283 | 所有类型 |
@@ -234,7 +294,7 @@ | |||
234 | </combo_box> | 294 | </combo_box> |
235 | <check_box label="æ ‡ä»· ≤ " name="pricecheck"/> | 295 | <check_box label="æ ‡ä»· ≤ " name="pricecheck"/> |
236 | <text name="pricecheck_symbol"> | 296 | <text name="pricecheck_symbol"> |
237 | L$ | 297 | [CURRENCY] |
238 | </text> | 298 | </text> |
239 | <check_box label="地区 ≥ " name="areacheck"/> | 299 | <check_box label="地区 ≥ " name="areacheck"/> |
240 | <text left="190" name="areacheck_symbol" width="75"> | 300 | <text left="190" name="areacheck_symbol" width="75"> |
@@ -248,9 +308,9 @@ | |||
248 | <column label="" name="type"/> | 308 | <column label="" name="type"/> |
249 | <column label="å称" name="name"/> | 309 | <column label="å称" name="name"/> |
250 | <column label="类型" name="landtype"/> | 310 | <column label="类型" name="landtype"/> |
251 | <column label="L$ ä»·æ ¼" name="price"/> | 311 | <column label="[CURRENCY] ä»·æ ¼" name="price"/> |
252 | <column label="é¢ç§¯" name="area"/> | 312 | <column label="é¢ç§¯" name="area"/> |
253 | <column label="L$/m²" name="per_meter"/> | 313 | <column label="[CURRENCY]/m²" name="per_meter"/> |
254 | </scroll_list> | 314 | </scroll_list> |
255 | <button label="下一页>" label_selected="下一页>" name="Next >"/> | 315 | <button label="下一页>" label_selected="下一页>" name="Next >"/> |
256 | <button label="< 之å‰" label_selected="< 之å‰" name="< Prev"/> | 316 | <button label="< 之å‰" label_selected="< 之å‰" name="< Prev"/> |
@@ -265,9 +325,9 @@ | |||
265 | <text name="find"> | 325 | <text name="find"> |
266 | 查找: | 326 | 查找: |
267 | </text> | 327 | </text> |
268 | <check_box label="PG内容" name="incpg"/> | 328 | <check_box label="PG 内容" name="incpg"/> |
269 | <check_box label="Mature内容" name="incmature"/> | 329 | <check_box label="Mature 内容" name="incmature"/> |
270 | <check_box label="Adult内容" name="incadult"/> | 330 | <check_box label="Adult 内容" name="incadult"/> |
271 | <combo_box name="Category"> | 331 | <combo_box name="Category"> |
272 | <combo_item name="AnyCategory"> | 332 | <combo_item name="AnyCategory"> |
273 | ä»»æ„分类 | 333 | ä»»æ„分类 |
@@ -389,16 +449,41 @@ | |||
389 | <line_editor label="查找" name="search_editor" tool_tip="æœç´¢ç¬¬äºŒäººç”Ÿ"/> | 449 | <line_editor label="查找" name="search_editor" tool_tip="æœç´¢ç¬¬äºŒäººç”Ÿ"/> |
390 | <button label="åŽé€€" name="back_btn"/> | 450 | <button label="åŽé€€" name="back_btn"/> |
391 | <button label="å‰è¿›" name="forward_btn"/> | 451 | <button label="å‰è¿›" name="forward_btn"/> |
392 | <button label="æœç´¢" label_selected="æœç´¢" name="search_btn"/> | 452 | <button label="æœç´¢" label_selected="æœç´¢" name="Search"/> |
393 | <check_box label="PG内容" name="incpg"/> | 453 | <check_box label="PG 内容" name="incpg"/> |
394 | <check_box label="Mature内容" name="incmature"/> | 454 | <check_box label="Mature 内容" name="incmature"/> |
395 | <check_box label="Adult内容" name="incadult"/> | 455 | <check_box label="Adult 内容" name="incadult"/> |
456 | name="incadult" /> | ||
457 | <scroll_list | ||
458 | name="results"> | ||
459 | <column | ||
460 | label="" | ||
461 | name="icon" | ||
462 | sort_ascending="false" /> | ||
463 | <column | ||
464 | label="" | ||
465 | name="type" /> | ||
466 | <column | ||
467 | label="å称" | ||
468 | name="name" /> | ||
469 | <column | ||
470 | label="团员" | ||
471 | name="members" | ||
472 | sort_ascending="false" /> | ||
473 | <column | ||
474 | label="" | ||
475 | name="score" /> | ||
476 | </scroll_list> | ||
396 | <string name="loading_text"> | 477 | <string name="loading_text"> |
397 | åŠ è½½ä¸... | 478 | åŠ è½½ä¸... |
398 | </string> | 479 | </string> |
399 | <string name="done_text"> | 480 | <string name="done_text"> |
400 | å®Œæˆ | 481 | å®Œæˆ |
401 | </string> | 482 | </string> |
483 | |||
402 | </panel> | 484 | </panel> |
403 | </tab_container> | 485 | </tab_container> |
486 | <check_box | ||
487 | name="save_results_check" | ||
488 | label="ä¿å˜æœç´¢ç»“æžœ"> | ||
404 | </floater> | 489 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_display_name.xml b/linden/indra/newview/skins/default/xui/zh/floater_display_name.xml new file mode 100644 index 0000000..142f446 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_display_name.xml | |||
@@ -0,0 +1,47 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="Display Name" | ||
4 | title="更改显示å称"> | ||
5 | <text | ||
6 | name="info_text1" | ||
7 | wrap="true"> | ||
8 | 您给化身的å称å«åšæ˜¾ç¤ºå称。 | ||
9 | </text> | ||
10 | <text | ||
11 | name="info_text2" | ||
12 | wrap="true"> | ||
13 | 您æ¯ä¸ªæ˜ŸæœŸå¯ä»¥æ›´æ”¹ä¸€æ¬¡ã€‚ | ||
14 | </text> | ||
15 | <text | ||
16 | name="now_ok_text"> | ||
17 | 如果您愿æ„çš„è¯ï¼ŒçŽ°åœ¨å°±å¯ä»¥æ›´æ”¹å®ƒã€‚ | ||
18 | </text> | ||
19 | <text | ||
20 | name="lockout_text" | ||
21 | visible="false"> | ||
22 | 您必须ç‰åˆ° [TIME] 之åŽæ‰èƒ½æ›´æ”¹å®ƒã€‚ | ||
23 | </text> | ||
24 | <text | ||
25 | name="set_name_label"> | ||
26 | 新的显示å称: | ||
27 | </text> | ||
28 | <line_editor | ||
29 | name="display_name_editor" /> | ||
30 | <text | ||
31 | name="name_confirm_label"> | ||
32 | å†é”®å…¥ä¸€æ¬¡ä½ çš„æ–°åå—以确认: | ||
33 | </text> | ||
34 | <line_editor | ||
35 | name="display_name_confirm" /> | ||
36 | <button | ||
37 | name="save_btn" | ||
38 | label="ä¿å˜" | ||
39 | tool_tip="ä¿å˜æ‚¨çš„新显示å称" /> | ||
40 | <button | ||
41 | name="reset_btn" | ||
42 | label="é‡ç½®" | ||
43 | tool_tip="将显示å称é‡ç½®ä¸ºç”¨æˆ·å" /> | ||
44 | <button | ||
45 | name="cancel_btn" | ||
46 | label="å–消" /> | ||
47 | </floater> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml b/linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml index b5db758..bf16b7f 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml | |||
@@ -38,7 +38,7 @@ | |||
38 | 地产ID: | 38 | 地产ID: |
39 | </text> | 39 | </text> |
40 | <text name="parent id"> | 40 | <text name="parent id"> |
41 | æ¯åŒºåŸŸID: | 41 | 上级ID: |
42 | </text> | 42 | </text> |
43 | <line_editor name="parentestate" tool_tip="这是这å—区域的æ¯åŒºåŸŸã€‚" /> | 43 | <line_editor name="parentestate" tool_tip="这是这å—区域的æ¯åŒºåŸŸã€‚" /> |
44 | <text name="Grid Pos: "> | 44 | <text name="Grid Pos: "> |
@@ -53,7 +53,7 @@ | |||
53 | å¸å•æ˜Žç»†: | 53 | å¸å•æ˜Žç»†: |
54 | </text> | 54 | </text> |
55 | <text name="land cost text"> | 55 | <text name="land cost text"> |
56 | L$æ¯å¹³æ–¹ç±³: | 56 | [CURRENCY] æ¯å¹³æ–¹ç±³: |
57 | </text> | 57 | </text> |
58 | <button label="æ›´æ–°" label_selected="æ›´æ–°" name="Refresh" | 58 | <button label="æ›´æ–°" label_selected="æ›´æ–°" name="Refresh" |
59 | tool_tip="点击这里æ¥æ›´æ–°ä»¥ä¸Šä¿¡æ¯." /> | 59 | tool_tip="点击这里æ¥æ›´æ–°ä»¥ä¸Šä¿¡æ¯." /> |
@@ -88,12 +88,12 @@ | |||
88 | label_selected="åˆ é™¤ç›®æ ‡äºŽä»–äººåœŸåœ°ä¸Šæœ‰è„šæœ¬çš„ç‰©ä½“" | 88 | label_selected="åˆ é™¤ç›®æ ‡äºŽä»–äººåœŸåœ°ä¸Šæœ‰è„šæœ¬çš„ç‰©ä½“" |
89 | name="Delete Target's Scripted Objects On Others Land" | 89 | name="Delete Target's Scripted Objects On Others Land" |
90 | tool_tip="åˆ é™¤ä»–äººåœŸåœ°ä¸Šç›®æ ‡æ‰€æœ‰æœ‰è„šæœ¬çš„ç‰©ä½“ã€‚(ä¸å¯å¤åˆ¶)的物体将被返还。" /> | 90 | tool_tip="åˆ é™¤ä»–äººåœŸåœ°ä¸Šç›®æ ‡æ‰€æœ‰æœ‰è„šæœ¬çš„ç‰©ä½“ã€‚(ä¸å¯å¤åˆ¶)的物体将被返还。" /> |
91 | <button label="åˆ é™¤*任何*土地上选ä¸çš„脚本东东" | 91 | <button label="åˆ é™¤ç›®æ ‡äºŽ*任何*土地上选ä¸çš„脚本物体" |
92 | label_selected="åˆ é™¤*任何*土地上选ä¸çš„脚本东东" | 92 | label_selected="åˆ é™¤ç›®æ ‡äºŽ*任何*土地上选ä¸çš„脚本物体" |
93 | name="Delete Target's Scripted Objects On *Any* Land" | 93 | name="Delete Target's Scripted Objects On *Any* Land" |
94 | tool_tip="åˆ é™¤è¯¥åŒºåŸŸä¸ç›®æ ‡æ‰€æœ‰æœ‰è„šæœ¬çš„物体。(ä¸å¯å¤åˆ¶)的物体将被返还。" /> | 94 | tool_tip="åˆ é™¤è¯¥åŒºåŸŸä¸ç›®æ ‡æ‰€æœ‰æœ‰è„šæœ¬çš„物体。(ä¸å¯å¤åˆ¶)的物体将被返还。" /> |
95 | <button label="åˆ é™¤*所有*选ä¸çš„东东" | 95 | <button label="åˆ é™¤*所有*选ä¸çš„物体" |
96 | label_selected="åˆ é™¤*所有*选ä¸çš„东东" | 96 | label_selected="åˆ é™¤*所有*选ä¸çš„物体" |
97 | name="Delete *ALL* Of Target's Objects" | 97 | name="Delete *ALL* Of Target's Objects" |
98 | tool_tip="åˆ é™¤è¯¥åŒºåŸŸä¸ç›®æ ‡æ‰€æœ‰çš„物体。(ä¸å¯å¤åˆ¶)的物体将被返还。" /> | 98 | tool_tip="åˆ é™¤è¯¥åŒºåŸŸä¸ç›®æ ‡æ‰€æœ‰çš„物体。(ä¸å¯å¤åˆ¶)的物体将被返还。" /> |
99 | <button label="获å–首è¦ç¢°æ’žæº" label_selected="å–最首è¦ç¢°æ’žæº" | 99 | <button label="获å–首è¦ç¢°æ’žæº" label_selected="å–最首è¦ç¢°æ’žæº" |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_grid_default_selector.xml b/linden/indra/newview/skins/default/xui/zh/floater_grid_default_selector.xml new file mode 100644 index 0000000..9921ad2 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_grid_default_selector.xml | |||
@@ -0,0 +1,15 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="default_grid" | ||
4 | title="é€‰æ‹©é»˜è®¤ç½‘æ ¼"> | ||
5 | <text | ||
6 | name="select_label"> | ||
7 | æˆ–è€…ä½¿ç”¨ç½‘æ ¼ç®¡ç†å™¨æ·»åŠ æ–°çš„ç½‘æ ¼ | ||
8 | </text> | ||
9 | <button | ||
10 | label="å–消" | ||
11 | name="btn_cancel" /> | ||
12 | <button | ||
13 | label="确定" | ||
14 | name="btn_ok" /> | ||
15 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_grid_manager.xml b/linden/indra/newview/skins/default/xui/zh/floater_grid_manager.xml new file mode 100644 index 0000000..7342567 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_grid_manager.xml | |||
@@ -0,0 +1,118 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="floater_login" | ||
4 | title="ç½‘æ ¼ç®¡ç†å™¨"> | ||
5 | |||
6 | <!-- Grid Selector --> | ||
7 | <text | ||
8 | name="grid_selector_label"> | ||
9 | é€‰æ‹©ç½‘æ ¼: | ||
10 | </text> | ||
11 | |||
12 | <scroll_list | ||
13 | name="grid_selector"> | ||
14 | <column | ||
15 | label="ç½‘æ ¼åˆ—è¡¨" | ||
16 | name="grid" /> | ||
17 | </scroll_list> | ||
18 | |||
19 | <!-- Grid Selector Buttons --> | ||
20 | <button | ||
21 | label="æ·»åŠ æ–°ç½‘æ ¼" | ||
22 | name="btn_add" /> | ||
23 | <button | ||
24 | label="åˆ›å»ºç½‘æ ¼å‰¯æœ¬" | ||
25 | name="btn_copy" /> | ||
26 | <button | ||
27 | label="åˆ é™¤ç½‘æ ¼" | ||
28 | name="btn_delete" /> | ||
29 | |||
30 | <!-- Grid Details --> | ||
31 | <text | ||
32 | name="gridnick_text"> | ||
33 | ç½‘æ ¼æ˜µç§° (唯一): | ||
34 | </text> | ||
35 | <line_editor | ||
36 | name="gridnick" | ||
37 | label="必须填写" /> | ||
38 | <text | ||
39 | name="gridname_text"> | ||
40 | ç½‘æ ¼å称: | ||
41 | </text> | ||
42 | <line_editor | ||
43 | name="gridname" | ||
44 | label="必须填写" /> | ||
45 | <text | ||
46 | name="first_name_text"> | ||
47 | å: | ||
48 | </text> | ||
49 | <text | ||
50 | name="username_text"> | ||
51 | 用户å: | ||
52 | </text> | ||
53 | <text | ||
54 | name="last_name_text"> | ||
55 | 姓: | ||
56 | </text> | ||
57 | <text | ||
58 | name="avatar_password_text"> | ||
59 | 密ç : | ||
60 | </text> | ||
61 | <text | ||
62 | name="loginuri_text"> | ||
63 | 登入 URI: | ||
64 | </text> | ||
65 | <line_editor | ||
66 | name="loginuri" | ||
67 | label="必须填写" /> | ||
68 | <button | ||
69 | label="获å–ç½‘æ ¼ä¿¡æ¯" | ||
70 | name="btn_gridinfo" /> | ||
71 | <button | ||
72 | label="清除信æ¯" | ||
73 | name="btn_clear" /> | ||
74 | <text | ||
75 | name="loginpage_text"> | ||
76 | ç½‘æ ¼ä¿¡æ¯ URL: | ||
77 | </text> | ||
78 | <text | ||
79 | name="loginpage_text"> | ||
80 | 登入页é¢: | ||
81 | </text> | ||
82 | <text | ||
83 | name="helperuri_text"> | ||
84 | 辅助 URI: | ||
85 | </text> | ||
86 | <text | ||
87 | name="website_text"> | ||
88 | 网站: | ||
89 | </text> | ||
90 | <text | ||
91 | name="support_text"> | ||
92 | 支æŒ: | ||
93 | </text> | ||
94 | <text | ||
95 | name="register_text"> | ||
96 | 账户: | ||
97 | </text> | ||
98 | <text | ||
99 | name="password_text"> | ||
100 | 密ç : | ||
101 | </text> | ||
102 | <text | ||
103 | name="search_text"> | ||
104 | æœç´¢ç½‘页: | ||
105 | </text> | ||
106 | <button | ||
107 | label="应用" | ||
108 | label_selected="应用" | ||
109 | name="btn_apply" /> | ||
110 | <button | ||
111 | label="å–消" | ||
112 | label_selected="å–消" | ||
113 | name="btn_cancel" /> | ||
114 | <button | ||
115 | label="确定" | ||
116 | label_selected="确定" | ||
117 | name="btn_ok" /> | ||
118 | </floater> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_group_titles.xml b/linden/indra/newview/skins/default/xui/zh/floater_group_titles.xml new file mode 100644 index 0000000..5c24f84 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_group_titles.xml | |||
@@ -0,0 +1,19 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="goup titles" | ||
4 | title="社团头衔"> | ||
5 | <scroll_list | ||
6 | name="titles_list"> | ||
7 | <column | ||
8 | name="title" | ||
9 | label="头衔" /> | ||
10 | <column | ||
11 | name="group_name" | ||
12 | label="社团" /> | ||
13 | <!--éšè—å—段,用于å˜å‚¨ UUID,请ä¿æŒå®½åº¦ä¸º 0--> | ||
14 | </scroll_list> | ||
15 | <button | ||
16 | name="activate" | ||
17 | label="激活" | ||
18 | tool_tip="激活选ä¸çš„社团头衔" /> | ||
19 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml b/linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml index d3bf113..02a76a6 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml | |||
@@ -50,6 +50,10 @@ | |||
50 | <check_box | 50 | <check_box |
51 | label="ä½¿ç”¨æ— æŸåŽ‹ç¼©" | 51 | label="ä½¿ç”¨æ— æŸåŽ‹ç¼©" |
52 | name="lossless_check" /> | 52 | name="lossless_check" /> |
53 | <check_box | ||
54 | label="ä¸´æ—¶å›¾åƒ (å…è´¹)" | ||
55 | name="temp_check" | ||
56 | tooltip="设置资产为临时的,这æ„味ç€å®ƒæ˜¯å…费的,但是作为代价,仅在一段时间内有效,之åŽå®ƒå°±æ¶ˆå¤±äº†ã€‚" /> | ||
53 | <button label="å–消" name="cancel_btn" /> | 57 | <button label="å–消" name="cancel_btn" /> |
54 | <button label="ä¸Šä¼ (L$[AMOUNT])" name="ok_btn" /> | 58 | <button label="ä¸Šä¼ ([UPLOADFEE])" name="ok_btn" /> |
55 | </floater> | 59 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_inspect.xml b/linden/indra/newview/skins/default/xui/zh/floater_inspect.xml index fff47d5..5288300 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_inspect.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_inspect.xml | |||
@@ -4,11 +4,19 @@ | |||
4 | tool_tip="从这份列表ä¸é€‰æ‹©ä¸€é¡¹ç‰©ä½“æ¥åœ¨ä¸–ç•Œä¸çªå‡ºæ˜¾ç¤ºå®ƒ"> | 4 | tool_tip="从这份列表ä¸é€‰æ‹©ä¸€é¡¹ç‰©ä½“æ¥åœ¨ä¸–ç•Œä¸çªå‡ºæ˜¾ç¤ºå®ƒ"> |
5 | <column label="物体å称" name="object_name" /> | 5 | <column label="物体å称" name="object_name" /> |
6 | <column label="主人åå—" name="owner_name" /> | 6 | <column label="主人åå—" name="owner_name" /> |
7 | <column label="上个拥有者åå—" name="last_owner_name" /> | ||
7 | <column label="创建者åå—" name="creator_name" /> | 8 | <column label="创建者åå—" name="creator_name" /> |
9 | <column label="é¢" name="face_num" width="48"/> | ||
10 | <column label="顶点" name="vertex_num" width="48" /> | ||
11 | <column label="脚本" name="script_num" width="48" /> | ||
12 | <column label="库å˜æ€»è®¡" name="inv_num" /> | ||
8 | <column label="创建时间" name="creation_date" /> | 13 | <column label="创建时间" name="creation_date" /> |
9 | </scroll_list> | 14 | </scroll_list> |
10 | <button label="查看主人档案..." name="button owner" | 15 | <button label="查看主人档案..." name="button owner" |
11 | tool_tip="查看çªå‡ºæ˜¾ç¤ºç‰©ä½“的主人的档案" /> | 16 | tool_tip="查看çªå‡ºæ˜¾ç¤ºç‰©ä½“的主人的档案" /> |
17 | <button | ||
18 | label="查看上个拥有者档案" name="button_last_owner" | ||
19 | tool_tip="查看çªå‡ºæ˜¾ç¤ºç‰©ä½“的创建者的档案" /> | ||
12 | <button label="查看创建者档案..." name="button creator" | 20 | <button label="查看创建者档案..." name="button creator" |
13 | tool_tip="查看çªå‡ºæ˜¾ç¤ºç‰©ä½“的创建者的档案" /> | 21 | tool_tip="查看çªå‡ºæ˜¾ç¤ºç‰©ä½“的创建者的档案" /> |
14 | </floater> | 22 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml index a59000c..14af4f9 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml | |||
@@ -33,7 +33,27 @@ | |||
33 | <string name="add_friend_string"> | 33 | <string name="add_friend_string"> |
34 | æ·»åŠ ä¸ºå¥½å‹ | 34 | æ·»åŠ ä¸ºå¥½å‹ |
35 | </string> | 35 | </string> |
36 | <flyout_button label="档案..." name="profile_callee_btn"/> | 36 | |
37 | |||
38 | <string | ||
39 | name="add_friend_string"> | ||
40 | æ·»åŠ å¥½å‹ | ||
41 | </string> | ||
42 | <flyout_button label="档案..." name="profile_callee_btn" > | ||
43 | <flyout_button_item name="history_entry"> | ||
44 | 查看对è¯åŽ†å² | ||
45 | </flyout_button_item> | ||
46 | <flyout_button_item name="pay_entry"> | ||
47 | 付款 | ||
48 | </flyout_button_item> | ||
49 | <flyout_button_item name="teleport_entry"> | ||
50 | 邀请瞬间移动 | ||
51 | </flyout_button_item> | ||
52 | </flyout_button> | ||
53 | <text | ||
54 | name="inventory_send"> | ||
55 | 拖动库å˜æ¡ç›®åˆ°è¿™é‡Œé€å‡º | ||
56 | </text> | ||
37 | <button label="呼å«" name="start_call_btn"/> | 57 | <button label="呼å«" name="start_call_btn"/> |
38 | <button label="结æŸå‘¼å«" name="end_call_btn" pad_right="10" visible="false"/> | 58 | <button label="结æŸå‘¼å«" name="end_call_btn" pad_right="10" visible="false"/> |
39 | <panel name="speaker_controls"> | 59 | <panel name="speaker_controls"> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/zh/floater_instant_message_group.xml index 2171bd1..1c35524 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_instant_message_group.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_instant_message_group.xml | |||
@@ -54,6 +54,13 @@ | |||
54 | <button | 54 | <button |
55 | label="社团信æ¯" | 55 | label="社团信æ¯" |
56 | name="group_info_btn" /> | 56 | name="group_info_btn" /> |
57 | <flyout_button | ||
58 | label="社团信æ¯" | ||
59 | name="group_info_btn"> | ||
60 | <flyout_button_item name="history_entry"> | ||
61 | 查看èŠå¤©åŽ†å² | ||
62 | </flyout_button_item> | ||
63 | </flyout_button> | ||
57 | <button | 64 | <button |
58 | image_overlay_alignment="left" | 65 | image_overlay_alignment="left" |
59 | label="åŠ å…¥é€šè¯" | 66 | label="åŠ å…¥é€šè¯" |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_inventory.xml b/linden/indra/newview/skins/default/xui/zh/floater_inventory.xml index 1f90496..65f2463 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_inventory.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_inventory.xml | |||
@@ -2,9 +2,51 @@ | |||
2 | <floater name="Inventory" title="库å˜"> | 2 | <floater name="Inventory" title="库å˜"> |
3 | <search_editor label="在这里输入è¦æŸ¥æ‰¾çš„物体" name="inventory search editor"/> | 3 | <search_editor label="在这里输入è¦æŸ¥æ‰¾çš„物体" name="inventory search editor"/> |
4 | <tab_container name="inventory filter tabs"> | 4 | <tab_container name="inventory filter tabs"> |
5 | <inventory_panel label="所有物体" name="All Items"/> | 5 | <inventory_panel label="所有物å“" name="All Items"/> |
6 | <inventory_panel label="最近使用的物体" name="Recent Items"/> | 6 | <inventory_panel label="最近使用的物å“" name="Recent Items"/> |
7 | <inventory_panel label="ç©¿ç€çš„物å“" name="Worn Items" /> | ||
7 | </tab_container> | 8 | </tab_container> |
9 | <text | ||
10 | name="group_titles_textbox"> | ||
11 | 快速过滤: | ||
12 | </text> | ||
13 | |||
14 | <!-- Inventory Type Filter Labels --> | ||
15 | <string name="filter_type_all">所有类型</string> | ||
16 | <string name="filter_type_animation">动画</string> | ||
17 | <string name="filter_type_bodypart">身体部ä½</string> | ||
18 | <string name="filter_type_callingcard">å片</string> | ||
19 | <string name="filter_type_clothing">衣物</string> | ||
20 | <string name="filter_type_gesture">动作</string> | ||
21 | <string name="filter_type_landmark">åœ°æ ‡</string> | ||
22 | <string name="filter_type_notecard">记事å¡</string> | ||
23 | <string name="filter_type_object">物体</string> | ||
24 | <string name="filter_type_script">脚本</string> | ||
25 | <string name="filter_type_sound">声音</string> | ||
26 | <string name="filter_type_texture">æè´¨</string> | ||
27 | <string name="filter_type_snapshot">å¿«ç…§</string> | ||
28 | <string name="filter_type_custom">自定义...</string> | ||
29 | |||
30 | <combo_box | ||
31 | name="Quick Filter" | ||
32 | label="快速过滤"> | ||
33 | |||
34 | <combo_item name="filter_type_all">所有类型</combo_item> | ||
35 | <combo_item name="filter_type_animation">动画</combo_item> | ||
36 | <combo_item name="filter_type_bodypart">身体部ä½</combo_item> | ||
37 | <combo_item name="filter_type_callingcard">å片</combo_item> | ||
38 | <combo_item name="filter_type_clothing">衣物</combo_item> | ||
39 | <combo_item name="filter_type_gesture">动作</combo_item> | ||
40 | <combo_item name="filter_type_landmark">åœ°æ ‡</combo_item> | ||
41 | <combo_item name="filter_type_notecard">记事å¡</combo_item> | ||
42 | <combo_item name="filter_type_object">物体</combo_item> | ||
43 | <combo_item name="filter_type_script">脚本</combo_item> | ||
44 | <combo_item name="filter_type_sound">声音</combo_item> | ||
45 | <combo_item name="filter_type_texture">æè´¨</combo_item> | ||
46 | <combo_item name="filter_type_snapshot">å¿«ç…§</combo_item> | ||
47 | <combo_item name="filter_type_custom">自定义...</combo_item> | ||
48 | |||
49 | </combo_box> | ||
8 | <menu_bar name="Inventory Menu"> | 50 | <menu_bar name="Inventory Menu"> |
9 | <menu label="文件 " name="File"> | 51 | <menu label="文件 " name="File"> |
10 | <menu_item_call label="打开" name="Open"/> | 52 | <menu_item_call label="打开" name="Open"/> |
@@ -19,7 +61,7 @@ | |||
19 | <menu_item_call label="新的脚本" name="New Script"/> | 61 | <menu_item_call label="新的脚本" name="New Script"/> |
20 | <menu_item_call label="新的记事å¡" name="New Note"/> | 62 | <menu_item_call label="新的记事å¡" name="New Note"/> |
21 | <menu_item_call label="新的动作" name="New Gesture"/> | 63 | <menu_item_call label="新的动作" name="New Gesture"/> |
22 | <menu name="New Clothes"> | 64 | <menu name="New Clothes" label="新建衣物"> |
23 | <menu_item_call label="新建衬衫" name="New Shirt"/> | 65 | <menu_item_call label="新建衬衫" name="New Shirt"/> |
24 | <menu_item_call label="新建裤å" name="New Pants"/> | 66 | <menu_item_call label="新建裤å" name="New Pants"/> |
25 | <menu_item_call label="新建鞋å" name="New Shoes"/> | 67 | <menu_item_call label="新建鞋å" name="New Shoes"/> |
@@ -27,10 +69,12 @@ | |||
27 | <menu_item_call label="新建夹克" name="New Jacket"/> | 69 | <menu_item_call label="新建夹克" name="New Jacket"/> |
28 | <menu_item_call label="新建裙å" name="New Skirt"/> | 70 | <menu_item_call label="新建裙å" name="New Skirt"/> |
29 | <menu_item_call label="新建手套" name="New Gloves"/> | 71 | <menu_item_call label="新建手套" name="New Gloves"/> |
30 | <menu_item_call label="新建汗衫" name="New Undershirt"/> | 72 | <menu_item_call label="新建内衣" name="New Undershirt"/> |
31 | <menu_item_call label="æ–°è§å†…è¡£" name="New Underpants"/> | 73 | <menu_item_call label="新建内裤" name="New Underpants"/> |
74 | <menu_item_call label="新建纹身" name="New Tattoo" /> | ||
75 | <menu_item_call label="新建é€æ˜Žåº¦è’™æ¿" name="New Alpha" /> | ||
32 | </menu> | 76 | </menu> |
33 | <menu name="New Body Parts"> | 77 | <menu name="New Body Parts" label="新建身体部ä½"> |
34 | <menu_item_call label="新建外形" name="New Shape"/> | 78 | <menu_item_call label="新建外形" name="New Shape"/> |
35 | <menu_item_call label="新建皮肤" name="New Skin"/> | 79 | <menu_item_call label="新建皮肤" name="New Skin"/> |
36 | <menu_item_call label="新建头å‘" name="New Hair"/> | 80 | <menu_item_call label="新建头å‘" name="New Hair"/> |
@@ -43,5 +87,11 @@ | |||
43 | <menu_item_check label="文件夹总是按å称排列" name="Folders Always By Name"/> | 87 | <menu_item_check label="文件夹总是按å称排列" name="Folders Always By Name"/> |
44 | <menu_item_check label="系统文件夹置顶" name="System Folders To Top"/> | 88 | <menu_item_check label="系统文件夹置顶" name="System Folders To Top"/> |
45 | </menu> | 89 | </menu> |
90 | <menu label="查找选项" name="Search"> | ||
91 | <menu_item_check label="按å称" name="By Name" /> | ||
92 | <menu_item_check label="按创建者" name="By Creator" /> | ||
93 | <menu_item_check label="按æè¿°" name="By Description" /> | ||
94 | <menu_item_check label="按全部" name="By All" /> | ||
95 | </menu> | ||
46 | </menu_bar> | 96 | </menu_bar> |
47 | </floater> | 97 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml b/linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml index 34ccc79..b6c9a6c 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml | |||
@@ -68,7 +68,7 @@ | |||
68 | </radio_item> | 68 | </radio_item> |
69 | </radio_group> | 69 | </radio_group> |
70 | <text name="TextPrice"> | 70 | <text name="TextPrice"> |
71 | ä»·æ ¼ï¼šL$ | 71 | ä»·æ ¼ï¼š[CURRENCY] |
72 | </text> | 72 | </text> |
73 | <string name="unknown"> | 73 | <string name="unknown"> |
74 | (未知) | 74 | (未知) |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml b/linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml index 95a0808..089de84 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml | |||
@@ -2,6 +2,7 @@ | |||
2 | <floater name="Inventory Finder" title="inventory_recent_items"> | 2 | <floater name="Inventory Finder" title="inventory_recent_items"> |
3 | <check_box label="动画" name="check_animation" /> | 3 | <check_box label="动画" name="check_animation" /> |
4 | <check_box label="通è¯å¡" name="check_calling_card" /> | 4 | <check_box label="通è¯å¡" name="check_calling_card" /> |
5 | <check_box label="身体部ä½" name="check_bodypart" /> | ||
5 | <check_box label="衣物" name="check_clothing" /> | 6 | <check_box label="衣物" name="check_clothing" /> |
6 | <check_box label="动作" name="check_gesture" /> | 7 | <check_box label="动作" name="check_gesture" /> |
7 | <check_box label="åœ°æ ‡" name="check_landmark" /> | 8 | <check_box label="åœ°æ ‡" name="check_landmark" /> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_joystick.xml b/linden/indra/newview/skins/default/xui/zh/floater_joystick.xml index de512aa..7db5b59 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_joystick.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_joystick.xml | |||
@@ -1,5 +1,205 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater name="Joystick" title="Joystick Configuration"> | 2 | <floater |
3 | <button label="确定" label_selected="确定" name="ok_btn"/> | 3 | name="Joystick" |
4 | <button label="å–消" label_selected="å–消" name="cancel_btn"/> | 4 | title="游æˆæŽ§åˆ¶å™¨è®¾ç½®"> |
5 | </floater> | 5 | |
6 | <check_box | ||
7 | name="enable_joystick">å¯ç”¨æ‰‹æŸ„:</check_box> | ||
8 | <check_box | ||
9 | name="auto_enable_joystick">自动å¯ç”¨æ‰‹æŸ„</check_box> | ||
10 | <spinner | ||
11 | name="JoystickAxis1" | ||
12 | label="X è½´æ˜ å°„" /> | ||
13 | <spinner | ||
14 | name="JoystickAxis2" | ||
15 | label="Y è½´æ˜ å°„" /> | ||
16 | <spinner | ||
17 | name="JoystickAxis0" | ||
18 | label="Z è½´æ˜ å°„" /> | ||
19 | |||
20 | <spinner | ||
21 | name="JoystickAxis4" | ||
22 | label="ä¿¯ä»°æ˜ å°„" /> | ||
23 | <spinner | ||
24 | name="JoystickAxis5" | ||
25 | label="åèˆªæ˜ å°„" /> | ||
26 | <spinner | ||
27 | name="JoystickAxis3" | ||
28 | label="æ»šè½¬æ˜ å°„" /> | ||
29 | |||
30 | <spinner | ||
31 | name="JoystickAxis6" | ||
32 | label="ç¼©æ”¾æ˜ å°„" /> | ||
33 | <check_box | ||
34 | label="直接缩放" | ||
35 | name="ZoomDirect" /> | ||
36 | <check_box | ||
37 | label="ä¸‰ç»´å…‰æ ‡" | ||
38 | name="Cursor3D" /> | ||
39 | <check_box | ||
40 | label="自动平衡" | ||
41 | name="AutoLeveling" /> | ||
42 | |||
43 | <text | ||
44 | name="Control Modes:"> | ||
45 | 控制模å¼: | ||
46 | </text> | ||
47 | |||
48 | <check_box | ||
49 | name="JoystickAvatarEnabled">化身</check_box> | ||
50 | <check_box | ||
51 | name="JoystickBuildEnabled">å»ºé€ </check_box> | ||
52 | <check_box | ||
53 | name="JoystickFlycamEnabled">æµè§ˆ</check_box> | ||
54 | |||
55 | <text | ||
56 | name="XScale">X Scale</text> | ||
57 | <spinner | ||
58 | name="AvatarAxisScale1" /> | ||
59 | <spinner | ||
60 | name="BuildAxisScale1" /> | ||
61 | <spinner | ||
62 | name="FlycamAxisScale1" /> | ||
63 | |||
64 | <text | ||
65 | name="YScale">Y Scale</text> | ||
66 | <spinner | ||
67 | name="AvatarAxisScale2" /> | ||
68 | <spinner | ||
69 | name="BuildAxisScale2" /> | ||
70 | <spinner | ||
71 | name="FlycamAxisScale2" /> | ||
72 | |||
73 | <text | ||
74 | name="ZScale">Z Scale</text> | ||
75 | <spinner | ||
76 | name="AvatarAxisScale0" /> | ||
77 | <spinner | ||
78 | name="BuildAxisScale0" /> | ||
79 | <spinner | ||
80 | name="FlycamAxisScale0" /> | ||
81 | |||
82 | <text | ||
83 | name="PitchScale">Pitch Scale</text> | ||
84 | <spinner | ||
85 | name="AvatarAxisScale4" /> | ||
86 | <spinner | ||
87 | name="BuildAxisScale4" /> | ||
88 | <spinner | ||
89 | name="FlycamAxisScale4" /> | ||
90 | |||
91 | <text | ||
92 | name="YawScale">Yaw Scale</text> | ||
93 | <spinner | ||
94 | name="AvatarAxisScale5" /> | ||
95 | <spinner | ||
96 | name="BuildAxisScale5" /> | ||
97 | <spinner | ||
98 | name="FlycamAxisScale5" /> | ||
99 | |||
100 | <text | ||
101 | name="RollScale">Roll Scale</text> | ||
102 | <spinner | ||
103 | name="BuildAxisScale3" /> | ||
104 | <spinner | ||
105 | name="FlycamAxisScale3" /> | ||
106 | |||
107 | |||
108 | <text | ||
109 | name="XDeadZone">X Dead Zone</text> | ||
110 | <spinner | ||
111 | name="AvatarAxisDeadZone1" /> | ||
112 | <spinner | ||
113 | name="BuildAxisDeadZone1" /> | ||
114 | <spinner | ||
115 | name="FlycamAxisDeadZone1" /> | ||
116 | |||
117 | <text | ||
118 | name="YDeadZone">Y Dead Zone</text> | ||
119 | <spinner | ||
120 | name="AvatarAxisDeadZone2" /> | ||
121 | <spinner | ||
122 | name="BuildAxisDeadZone2" /> | ||
123 | <spinner | ||
124 | name="FlycamAxisDeadZone2" /> | ||
125 | |||
126 | <text | ||
127 | name="ZDeadZone">Z Dead Zone</text> | ||
128 | <spinner | ||
129 | name="AvatarAxisDeadZone0" /> | ||
130 | <spinner | ||
131 | name="BuildAxisDeadZone0" /> | ||
132 | <spinner | ||
133 | name="FlycamAxisDeadZone0" /> | ||
134 | |||
135 | <text | ||
136 | name="PitchDeadZone">Pitch Dead Zone</text> | ||
137 | <spinner | ||
138 | name="AvatarAxisDeadZone4" /> | ||
139 | <spinner | ||
140 | name="BuildAxisDeadZone4" /> | ||
141 | <spinner | ||
142 | name="FlycamAxisDeadZone4" /> | ||
143 | |||
144 | <text | ||
145 | name="YawDeadZone">Yaw Dead Zone</text> | ||
146 | <spinner | ||
147 | name="AvatarAxisDeadZone5" /> | ||
148 | <spinner | ||
149 | name="BuildAxisDeadZone5" /> | ||
150 | <spinner | ||
151 | name="FlycamAxisDeadZone5" /> | ||
152 | |||
153 | <text | ||
154 | name="RollDeadZone">Roll Dead Zone</text> | ||
155 | <spinner | ||
156 | name="BuildAxisDeadZone3" /> | ||
157 | <spinner | ||
158 | name="FlycamAxisDeadZone3" /> | ||
159 | |||
160 | <text | ||
161 | name="Feathering">Feathering</text> | ||
162 | <slider | ||
163 | label="" | ||
164 | name="AvatarFeathering" | ||
165 | value="0.7" /> | ||
166 | <slider | ||
167 | label="" | ||
168 | name="BuildFeathering" | ||
169 | value="0.7" /> | ||
170 | <slider | ||
171 | label="" | ||
172 | name="FlycamFeathering" | ||
173 | value="0.7" /> | ||
174 | |||
175 | <text | ||
176 | name="ZoomScale2">Zoom Scale</text> | ||
177 | <spinner | ||
178 | name="FlycamAxisScale6" | ||
179 | label="" /> | ||
180 | <text | ||
181 | name="ZoomDeadZone">Zoom Dead Zone</text> | ||
182 | <spinner | ||
183 | name="FlycamAxisDeadZone6" | ||
184 | label="" /> | ||
185 | |||
186 | <button | ||
187 | label="SpaceNavigator 默认值" | ||
188 | name="SpaceNavigatorDefaults" /> | ||
189 | |||
190 | <button | ||
191 | label="确定" | ||
192 | label_selected="确定" | ||
193 | name="ok_btn" /> | ||
194 | <button | ||
195 | label="å–消" | ||
196 | label_selected="å–消" | ||
197 | name="cancel_btn" /> | ||
198 | |||
199 | <string | ||
200 | name="JoystickMonitor">游æˆæŽ§åˆ¶å™¨ç›‘视器</string> | ||
201 | <string | ||
202 | name="Axis">è½´ [NUM]</string> | ||
203 | <string | ||
204 | name="NoDevice">没有检测到设备</string> | ||
205 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_local_asset_browse.xml b/linden/indra/newview/skins/default/xui/zh/floater_local_asset_browse.xml new file mode 100644 index 0000000..45f2ea1 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_local_asset_browse.xml | |||
@@ -0,0 +1,98 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <!-- Local Asset Browser: xui --><!-- floater definition start --><floater | ||
3 | name="local_bitmap_browser_floater" | ||
4 | title="本地æ质属性"> | ||
5 | |||
6 | <button | ||
7 | name="add_btn" | ||
8 | label="æ·»åŠ " /> | ||
9 | <button | ||
10 | name="del_btn" | ||
11 | label="移除" /> | ||
12 | <button | ||
13 | name="upload_btn" | ||
14 | label="ä¸Šä¼ å›¾åƒ ([UPLOADFEE])..." /> | ||
15 | <column | ||
16 | name="bitmap_name" | ||
17 | label="å称" /> | ||
18 | <column | ||
19 | name="bitmap_uuid" | ||
20 | label="UUID" /> | ||
21 | </scroll_list> | ||
22 | <text | ||
23 | name="path_caption_text" | ||
24 | visible="true"> | ||
25 | 本地路径: | ||
26 | </text> | ||
27 | <text | ||
28 | name="uuid_caption_text" | ||
29 | visible="true"> | ||
30 | 本地 UUID: | ||
31 | </text> | ||
32 | |||
33 | <texture_picker | ||
34 | label="æè´¨" | ||
35 | name="texture_view"/> | ||
36 | |||
37 | <check_box | ||
38 | label="ä¿æŒæ›´æ–°" | ||
39 | name="keep_updating_checkbox" | ||
40 | tool_tip="å¯ç”¨å®šæ—¶æ£€æŸ¥ç¡¬ç›˜ä¸Šçš„ä½å›¾æ˜¯å¦å·²æ›´æ–°"/> | ||
41 | |||
42 | <combo_box | ||
43 | visible="true" | ||
44 | allow_text_entry="false" | ||
45 | max_chars="20" | ||
46 | name="type_combobox"> | ||
47 | |||
48 | <combo_item | ||
49 | name="type_texture" | ||
50 | value="type_texture"> | ||
51 | æè´¨ | ||
52 | </combo_item> | ||
53 | |||
54 | <combo_item | ||
55 | name="type_sculptie" | ||
56 | value="type_sculptie"> | ||
57 | 雕塑æè´¨ | ||
58 | </combo_item> | ||
59 | |||
60 | <combo_item | ||
61 | name="type_layer" | ||
62 | value="type_layer"> | ||
63 | 衣物 | ||
64 | </combo_item> | ||
65 | |||
66 | </combo_box> | ||
67 | |||
68 | <text | ||
69 | name="time_caption_text" | ||
70 | visible="true"> | ||
71 | 时间: | ||
72 | </text> | ||
73 | |||
74 | <text | ||
75 | name="time_text" | ||
76 | visible="true"> | ||
77 | (date here) | ||
78 | </text> | ||
79 | |||
80 | <text | ||
81 | name="link_caption_text" | ||
82 | visible="true"> | ||
83 | 链接: | ||
84 | </text> | ||
85 | |||
86 | <text | ||
87 | name="link_text" | ||
88 | visible="true"> | ||
89 | (link status) | ||
90 | </text> | ||
91 | |||
92 | <text | ||
93 | name="name_caption_text" | ||
94 | visible="true"> | ||
95 | å称: | ||
96 | </text> | ||
97 | |||
98 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_media_browser.xml b/linden/indra/newview/skins/default/xui/zh/floater_media_browser.xml index d10c3e0..1ae48ea 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_media_browser.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_media_browser.xml | |||
@@ -10,18 +10,33 @@ | |||
10 | <layout_panel | 10 | <layout_panel |
11 | name="nav_controls"> | 11 | name="nav_controls"> |
12 | <button | 12 | <button |
13 | label="åŽé€€" | ||
14 | name="back" /> | 13 | name="back" /> |
15 | <button | 14 | <button |
16 | label="å‰è¿›" | ||
17 | name="forward" /> | 15 | name="forward" /> |
18 | <button | 16 | <button |
19 | label="刷新" | ||
20 | name="reload" /> | 17 | name="reload" /> |
21 | <button | 18 | <button |
22 | label="转到" | 19 | label="转到" |
23 | name="go" /> | 20 | name="go" /> |
24 | </layout_panel> | 21 | </layout_panel> |
22 | <layout_panel | ||
23 | name="time_controls"> | ||
24 | <button | ||
25 | label="快退" | ||
26 | name="rewind" /> | ||
27 | <button | ||
28 | label="" | ||
29 | name="play" /> | ||
30 | <button | ||
31 | label="" | ||
32 | name="pause" /> | ||
33 | <button | ||
34 | label="åœæ¢" | ||
35 | name="stop" /> | ||
36 | <button | ||
37 | label="å¿«è¿›" | ||
38 | name="seek" /> | ||
39 | </layout_panel> | ||
25 | <layout_panel | 40 | <layout_panel |
26 | name="parcel_owner_controls"> | 41 | name="parcel_owner_controls"> |
27 | <button | 42 | <button |
@@ -39,8 +54,9 @@ | |||
39 | <button | 54 | <button |
40 | label="å…³é—" | 55 | label="å…³é—" |
41 | name="close" /> | 56 | name="close" /> |
57 | <button label="设置为主页" name="set_home"/> | ||
42 | </layout_panel> | 58 | </layout_panel> |
43 | </layout_stack> | 59 | </layout_stack> |
44 | </floater> | 60 | </floater> |
45 | 61 | ||
46 | <!--Translated for Second Life 1.19.1 RC3 --> \ No newline at end of file | 62 | <!--Translated for Second Life 1.19.1 RC3 --> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_media_filter.xml b/linden/indra/newview/skins/default/xui/zh/floater_media_filter.xml new file mode 100644 index 0000000..c4d63ab --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_media_filter.xml | |||
@@ -0,0 +1,92 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="floatermediafilter" | ||
4 | title="媒体过滤"> | ||
5 | |||
6 | <check_box | ||
7 | name="enable_mediafilter" | ||
8 | label="å¯ç”¨åª’体过滤" | ||
9 | tool_tip="æ ¹æ®åŸŸå过滤媒体 URL。" /> | ||
10 | |||
11 | <check_box | ||
12 | name="filter_only_remote" | ||
13 | label="仅过滤脚本å¯åŠ¨çš„åª’ä½“æµ (较ä¸å®‰å…¨)" | ||
14 | tool_tip="这将防æ¢å¼¹å‡ºçª—å£è¯¢é—®å±è”½åœ°å—上永久设置的URL。仅脚本对媒体URL的更改以åŠè„šæœ¬è¯·æ±‚æ’放媒体æµä¼šè¢«è¿‡æ»¤ã€‚" /> | ||
15 | |||
16 | <text | ||
17 | name="info1"> | ||
18 | 粗体显示的域åä½äºŽæŒç»åˆ—è¡¨ä¸ (å³åˆ—于白åå•æˆ–黑åå•ä¸). | ||
19 | </text> | ||
20 | <text | ||
21 | name="info2"> | ||
22 | 斜体显示的域åä½äºŽä¼šè¯åˆ—è¡¨ä¸ (å³ä¸´æ—¶è¢«å…许或被ç¦æ¢). | ||
23 | </text> | ||
24 | |||
25 | <scroll_list | ||
26 | name="whitelist_list"> | ||
27 | <column | ||
28 | name="whitelist_col" | ||
29 | label="å…许的域å或æœåŠ¡å™¨å¯¹è±¡" /> | ||
30 | </scroll_list> | ||
31 | |||
32 | <scroll_list | ||
33 | name="blacklist_list"> | ||
34 | <column | ||
35 | name="blacklist_col" | ||
36 | label="阻æ¢çš„域å或æœåŠ¡å™¨å¯¹è±¡" /> | ||
37 | </scroll_list> | ||
38 | |||
39 | <button | ||
40 | name="add_whitelist" | ||
41 | label="æ·»åŠ ..." | ||
42 | tool_tip="æ·»åŠ æœåŠ¡å™¨åˆ°å…许列表" /> | ||
43 | |||
44 | <button | ||
45 | name="remove_whitelist" | ||
46 | label="移除" | ||
47 | tool_tip="从å…许列表ä¸æ¸…除选ä¸çš„æœåŠ¡å™¨" /> | ||
48 | |||
49 | <button | ||
50 | name="clear_lists" | ||
51 | label="清除列表" | ||
52 | tool_tip="清除所有列表" /> | ||
53 | |||
54 | <button | ||
55 | name="show_ips" | ||
56 | label="显示 IP" | ||
57 | tool_tip="显示域å所对应的IPåœ°å€ (由于DNS查询,列表刷新时将会使客户端åœæ¢)" /> | ||
58 | |||
59 | <button | ||
60 | name="add_blacklist" | ||
61 | label="æ·»åŠ ..." | ||
62 | tool_tip="æ·»åŠ æœåŠ¡å™¨åˆ°" /> | ||
63 | |||
64 | <button | ||
65 | name="remove_blacklist" | ||
66 | label="移除" | ||
67 | tool_tip="从ç¦æ¢åˆ—表ä¸æ¸…除选ä¸çš„æœåŠ¡å™¨" /> | ||
68 | |||
69 | <text | ||
70 | name="add_text"> | ||
71 | 新域å: | ||
72 | </text> | ||
73 | |||
74 | <check_box | ||
75 | name="match_ip" | ||
76 | label="æ·»åŠ /åˆ é™¤ç›¸å…³çš„ IP" | ||
77 | tool_tip="æ·»åŠ æˆ–åˆ é™¤åŸŸåæ—¶åŒæ—¶æ·»åŠ æˆ–åˆ é™¤å…¶ IP 地å€" /> | ||
78 | |||
79 | <line_editor | ||
80 | name="input_domain" | ||
81 | tool_tip="键入新的URL,域å,IP 地å€æˆ–脚本对象 HTTP æœåŠ¡å™¨è·¯å¾„" /> | ||
82 | |||
83 | <button | ||
84 | name="cancel_domain" | ||
85 | label="å–消" /> | ||
86 | <button | ||
87 | name="commit_domain" | ||
88 | label="æ·»åŠ " | ||
89 | tool_tip="æ·»åŠ åˆ°åˆ—è¡¨ä¸" /> | ||
90 | </floater> | ||
91 | |||
92 | |||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_message_builder.xml b/linden/indra/newview/skins/default/xui/zh/floater_message_builder.xml new file mode 100644 index 0000000..efceead --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_message_builder.xml | |||
@@ -0,0 +1,20 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="Message Builder" | ||
4 | title="消æ¯å»ºé€ 器"> | ||
5 | <scroll_list | ||
6 | name="net_list"> | ||
7 | </scroll_list> | ||
8 | <combo_box | ||
9 | name="untrusted_message_combo" | ||
10 | tool_tip="ä¸å¯ä¿¡"> | ||
11 | </combo_box> | ||
12 | <combo_box | ||
13 | name="trusted_message_combo" | ||
14 | tool_tip="å¯ä¿¡"> | ||
15 | </combo_box> | ||
16 | <button | ||
17 | name="send_btn" | ||
18 | label="å‘é€" | ||
19 | tool_tip="å‘é€ (Ctrl-Enter)" /> | ||
20 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_mini_map.xml b/linden/indra/newview/skins/default/xui/zh/floater_mini_map.xml index 430dd05..50e89c4 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_mini_map.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_mini_map.xml | |||
@@ -1,4 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <floater name="minimap"> | 2 | <floater name="minimap"> |
3 | <panel label="微型地图" name="mini_mapview" tool_tip="(åŒå‡»æ‰“开地图)"/> | 3 | <panel label="微型地图" name="mini_mapview"/> |
4 | <button name="toggle_radar" tool_tip="显示或éšè—é›·è¾¾" /> | ||
4 | </floater> | 5 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_name_description.xml b/linden/indra/newview/skins/default/xui/zh/floater_name_description.xml index 55beb81..1f7fc32 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_name_description.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_name_description.xml | |||
@@ -7,5 +7,5 @@ | |||
7 | æè¿°: | 7 | æè¿°: |
8 | </text> | 8 | </text> |
9 | <button label="å–消" name="cancel_btn" /> | 9 | <button label="å–消" name="cancel_btn" /> |
10 | <button label="ä¸Šä¼ (L$[AMOUNT])" name="ok_btn" /> | 10 | <button label="ä¸Šä¼ ([UPLOADFEE])" name="ok_btn" /> |
11 | </floater> | 11 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml b/linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml index 8fbbf92..2edaa33 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml | |||
@@ -16,6 +16,8 @@ | |||
16 | <check_box label="内衣" name="checkbox_Undershirt" /> | 16 | <check_box label="内衣" name="checkbox_Undershirt" /> |
17 | <check_box label="内裤" name="checkbox_Underpants" /> | 17 | <check_box label="内裤" name="checkbox_Underpants" /> |
18 | <check_box label="裙å" name="checkbox_Skirt" /> | 18 | <check_box label="裙å" name="checkbox_Skirt" /> |
19 | <check_box label="纹身" name="checkbox_Tattoo" /> | ||
20 | <check_box label="é€æ˜Žåº¦" name="checkbox_Alpha" /> | ||
19 | <check_box label="胸部" name="checkbox_Chest" /> | 21 | <check_box label="胸部" name="checkbox_Chest" /> |
20 | <check_box label="头部" name="checkbox_Skull" /> | 22 | <check_box label="头部" name="checkbox_Skull" /> |
21 | <check_box label="左肩" name="checkbox_Left Shoulder" /> | 23 | <check_box label="左肩" name="checkbox_Left Shoulder" /> |
@@ -70,6 +72,8 @@ | |||
70 | <text type="string" length="1" name="Items to include in outfit:"> | 72 | <text type="string" length="1" name="Items to include in outfit:"> |
71 | 装æŸä¸åŒ…括的物å“: | 73 | 装æŸä¸åŒ…括的物å“: |
72 | </text> | 74 | </text> |
75 | <button label="全部选ä¸" name="Check All" /> | ||
76 | <button label="全部ä¸é€‰" name="Uncheck All" /> | ||
73 | <text type="string" length="1" name="Body Parts:"> | 77 | <text type="string" length="1" name="Body Parts:"> |
74 | 体形 | 78 | 体形 |
75 | </text> | 79 | </text> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_notification.xml b/linden/indra/newview/skins/default/xui/zh/floater_notification.xml new file mode 100644 index 0000000..d24a0fe --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_notification.xml | |||
@@ -0,0 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | title="æ示控制å°" | ||
4 | name="notification"> | ||
5 | <combo_box | ||
6 | label="回å¤" | ||
7 | name="response"> | ||
8 | </combo_box> | ||
9 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_pay.xml b/linden/indra/newview/skins/default/xui/zh/floater_pay.xml index ac30075..85ce2f3 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_pay.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_pay.xml | |||
@@ -6,9 +6,11 @@ | |||
6 | </text> | 6 | </text> |
7 | 7 | ||
8 | <text name="amount text"> | 8 | <text name="amount text"> |
9 | æ•°é‡: | 9 | é¢åº¦: |
10 | </text> | ||
11 | <text name="message text"> | ||
12 | 备注: | ||
10 | </text> | 13 | </text> |
11 | |||
12 | <button name="pay btn" label="支付" /> | 14 | <button name="pay btn" label="支付" /> |
13 | <button name="cancel btn" label="å–消" /> | 15 | <button name="cancel btn" label="å–消" /> |
14 | 16 | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_postcard.xml b/linden/indra/newview/skins/default/xui/zh/floater_postcard.xml index 656d75b..2e54772 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_postcard.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_postcard.xml | |||
@@ -20,12 +20,11 @@ | |||
20 | åœ¨è¿™é‡Œé”®å…¥ä½ çš„ä¿¡æ¯ã€‚ | 20 | åœ¨è¿™é‡Œé”®å…¥ä½ çš„ä¿¡æ¯ã€‚ |
21 | </text_editor> | 21 | </text_editor> |
22 | <text name="fine_print"> | 22 | <text name="fine_print"> |
23 | å¦‚æžœä½ çš„æ”¶ä»¶äººåŠ å…¥SLï¼Œä½ ä¼šå¾—åˆ°ä¸€ä»½ä»‹ç»å¥–励。 | ||
24 | </text> | 23 | </text> |
25 | <button label="å–消" name="cancel_btn"/> | 24 | <button label="å–消" name="cancel_btn"/> |
26 | <button label="å‘é€" name="send_btn"/> | 25 | <button label="å‘é€" name="send_btn"/> |
27 | <string name="default_subject"> | 26 | <string name="default_subject"> |
28 | æ¥è‡ªç¬¬äºŒäººç”Ÿçš„明信片 | 27 | æ¥è‡ª [GRID_NAME] 的明信片 |
29 | </string> | 28 | </string> |
30 | <string name="default_message"> | 29 | <string name="default_message"> |
31 | 瞧瞧这个! | 30 | 瞧瞧这个! |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preferences.xml b/linden/indra/newview/skins/default/xui/zh/floater_preferences.xml index 0af9120..61267ef 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_preferences.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_preferences.xml | |||
@@ -5,5 +5,7 @@ | |||
5 | <button label="å–消" label_selected="å–消" name="Cancel" /> | 5 | <button label="å–消" label_selected="å–消" name="Cancel" /> |
6 | <button label="应用" label_selected="应用" name="Apply" /> | 6 | <button label="应用" label_selected="应用" name="Apply" /> |
7 | <button label="帮助" label_selected="帮助" name="Help" /> | 7 | <button label="帮助" label_selected="帮助" name="Help" /> |
8 | 8 | <button label="支æŒ" name="Support" /> | |
9 | <button label="全部é‡ç½®ä¸ºé»˜è®¤å€¼" name="reset_btn" | ||
10 | tooltip="将所有选项æ¢å¤åˆ°é»˜è®¤å€¼ (需è¦é‡å¯åŠ¨)"/> | ||
9 | </floater> | 11 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml index af229f1..a27d210 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml | |||
@@ -28,7 +28,7 @@ | |||
28 | 库: | 28 | 库: |
29 | </text> | 29 | </text> |
30 | <text name="steps_label"> | 30 | <text name="steps_label"> |
31 | 阶段: | 31 | æ¥éª¤ï¼š |
32 | </text> | 32 | </text> |
33 | <scroll_list name="library_list"> | 33 | <scroll_list name="library_list"> |
34 | 动画 | 34 | 动画 |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml index 60ef174..be9daf5 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml | |||
@@ -4,6 +4,56 @@ | |||
4 | <text type="string" length="1" name="desc txt"> | 4 | <text type="string" length="1" name="desc txt"> |
5 | æè¿°: | 5 | æè¿°: |
6 | </text> | 6 | </text> |
7 | <menu_bar | ||
8 | name="motecard_menu"> | ||
9 | <menu | ||
10 | name="File" | ||
11 | label="文件"> | ||
12 | <menu_item_call | ||
13 | label="ä¿å˜" | ||
14 | name="Save Menu"/> | ||
15 | <menu_item_call | ||
16 | label="导出文å—..." | ||
17 | name="Export Text..." /> | ||
18 | <menu_item_call | ||
19 | label="导入文å—..." | ||
20 | name="Import Text..." /> | ||
21 | </menu> | ||
22 | <menu | ||
23 | label="编辑" | ||
24 | name="Edit"> | ||
25 | <menu_item_call | ||
26 | label="撤销" | ||
27 | name="Undo" /> | ||
28 | <menu_item_call | ||
29 | label="é‡åš" | ||
30 | name="Redo" /> | ||
31 | <menu_item_separator | ||
32 | label="-----------" | ||
33 | name="separator1" /> | ||
34 | <menu_item_call | ||
35 | label="剪切" | ||
36 | name="Cut" /> | ||
37 | <menu_item_call | ||
38 | label="å¤åˆ¶" | ||
39 | name="Copy" /> | ||
40 | <menu_item_call | ||
41 | label="粘贴" | ||
42 | name="Paste" /> | ||
43 | <menu_item_call | ||
44 | label="全选" | ||
45 | name="Select All" /> | ||
46 | <menu_item_call | ||
47 | label="å…¨ä¸é€‰" | ||
48 | name="Deselect" /> | ||
49 | <menu_item_separator | ||
50 | label="-----------" | ||
51 | name="separator3" /> | ||
52 | <menu_item_call | ||
53 | label="查找 / 替æ¢..." | ||
54 | name="Search / Replace..." /> | ||
55 | </menu> | ||
56 | </menu_bar> | ||
7 | <text_editor type="string" length="1" name="Notecard Editor"> | 57 | <text_editor type="string" length="1" name="Notecard Editor"> |
8 | 请ç‰å¾…... | 58 | 请ç‰å¾…... |
9 | </text_editor> | 59 | </text_editor> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml index 3853f05..f8d2327 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml | |||
@@ -6,6 +6,56 @@ | |||
6 | <text type="string" length="1" name="desc txt"> | 6 | <text type="string" length="1" name="desc txt"> |
7 | æè¿°: | 7 | æè¿°: |
8 | </text> | 8 | </text> |
9 | <menu_bar | ||
10 | name="motecard_menu"> | ||
11 | <menu | ||
12 | name="File" | ||
13 | label="文件"> | ||
14 | <menu_item_call | ||
15 | label="ä¿å˜" | ||
16 | name="Save Menu"/> | ||
17 | <menu_item_call | ||
18 | label="导出文å—..." | ||
19 | name="Export Text..." /> | ||
20 | <menu_item_call | ||
21 | label="导入文å—..." | ||
22 | name="Import Text..." /> | ||
23 | </menu> | ||
24 | <menu | ||
25 | label="编辑" | ||
26 | name="Edit"> | ||
27 | <menu_item_call | ||
28 | label="撤销" | ||
29 | name="Undo" /> | ||
30 | <menu_item_call | ||
31 | label="é‡åš" | ||
32 | name="Redo" /> | ||
33 | <menu_item_separator | ||
34 | label="-----------" | ||
35 | name="separator1" /> | ||
36 | <menu_item_call | ||
37 | label="剪切" | ||
38 | name="Cut" /> | ||
39 | <menu_item_call | ||
40 | label="å¤åˆ¶" | ||
41 | name="Copy" /> | ||
42 | <menu_item_call | ||
43 | label="粘贴" | ||
44 | name="Paste" /> | ||
45 | <menu_item_call | ||
46 | label="全选" | ||
47 | name="Select All" /> | ||
48 | <menu_item_call | ||
49 | label="å…¨ä¸é€‰" | ||
50 | name="Deselect" /> | ||
51 | <menu_item_separator | ||
52 | label="-----------" | ||
53 | name="separator3" /> | ||
54 | <menu_item_call | ||
55 | label="查找 / 替æ¢..." | ||
56 | name="Search / Replace..." /> | ||
57 | </menu> | ||
58 | </menu_bar> | ||
9 | <button label="ä¿ç•™" label_selected="ä¿ç•™" name="Keep" /> | 59 | <button label="ä¿ç•™" label_selected="ä¿ç•™" name="Keep" /> |
10 | <button label="放弃" label_selected="放弃" name="Discard" /> | 60 | <button label="放弃" label_selected="放弃" name="Discard" /> |
11 | <string | 61 | <string |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_prim_import.xml b/linden/indra/newview/skins/default/xui/zh/floater_prim_import.xml new file mode 100644 index 0000000..dfe1601 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_prim_import.xml | |||
@@ -0,0 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="Import" | ||
4 | title="导入进度"> | ||
5 | <text | ||
6 | name="name_label"> 进度 </text> | ||
7 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_radar.xml b/linden/indra/newview/skins/default/xui/zh/floater_radar.xml new file mode 100644 index 0000000..cdb6d0a --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_radar.xml | |||
@@ -0,0 +1,191 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="radar" | ||
4 | title="é›·è¾¾"> | ||
5 | |||
6 | <scroll_list | ||
7 | name="avatar_list" | ||
8 | tool_tip="ç‚¹å‡»æ—¶æŒ‰ä½ Shift 或 Control 选择多å化身"> | ||
9 | <column | ||
10 | name="marked" | ||
11 | label="æ ‡è®°" | ||
12 | tool_tip="æ ‡è®°çš„åŒ–èº«" /> | ||
13 | <column | ||
14 | name="avatar_name" | ||
15 | label="åå—" | ||
16 | tool_tip="ç‚¹å‡»æ—¶æŒ‰ä½ Shift 或 Control 选择多å化身" /> | ||
17 | <column | ||
18 | name="distance" | ||
19 | label="è·ç¦»" | ||
20 | tool_tip="到您的化身的è·ç¦» (红色=èŠå¤©è·ç¦»å†…, 黄色=å–Šå«è·ç¦»å†…, 绿色=æ绘è·ç¦»å†…)" /> | ||
21 | <column | ||
22 | name="position" | ||
23 | label="ä½ç½®" | ||
24 | tool_tip="区域内的ä½ç½® (X, Y), 或区域外大致方å‘" /> | ||
25 | <column | ||
26 | name="altitude" | ||
27 | label="高度" | ||
28 | tool_tip="高度" /> | ||
29 | </scroll_list> | ||
30 | |||
31 | <tab_container | ||
32 | name="actions_tab_container"> | ||
33 | <panel | ||
34 | label="化身" | ||
35 | name="actions_tab"> | ||
36 | <!-- upper row --> | ||
37 | <button | ||
38 | name="profile_btn" | ||
39 | label="档案" | ||
40 | tool_tip="显示图片ã€ç¤¾å›¢å’Œå…¶ä»–ä¿¡æ¯" /> | ||
41 | <button | ||
42 | name="track_btn" | ||
43 | label="追踪/å–消" | ||
44 | tool_tip="切æ¢è¿½è¸ªè¯¥åŒ–身的ä½ç½®" /> | ||
45 | <button | ||
46 | name="get_key_btn" | ||
47 | label="获å–键值" | ||
48 | tool_tip="å¤åˆ¶åŒ–身的键值到剪贴æ¿" /> | ||
49 | <!-- upper middle row --> | ||
50 | <button | ||
51 | name="im_btn" | ||
52 | label="å³æ—¶æ¶ˆæ¯" | ||
53 | tool_tip="打开å³æ—¶é€šä¿¡ä¼šè¯" /> | ||
54 | <button | ||
55 | name="offer_btn" | ||
56 | label="邀请瞬移" | ||
57 | tool_tip="邀请æ¤äººçž¬é—´ç§»åŠ¨åˆ°ä½ çš„ä½ç½®" /> | ||
58 | <button | ||
59 | name="teleport_btn" | ||
60 | label="瞬移到" | ||
61 | tool_tip="瞬间移动到他人的ä½ç½®" /> | ||
62 | <!-- lower middle row--> | ||
63 | <button | ||
64 | name="mark_btn" | ||
65 | label="æ ‡è®°/å–消" | ||
66 | tool_tip="在列表ä¸æ ‡è®°æˆ–å–æ¶ˆæ ‡è®°è¯¥åŒ–èº«" /> | ||
67 | <button | ||
68 | name="prev_marked_btn" | ||
69 | label="ä¸Šä¸ªæ ‡è®°" | ||
70 | tool_tip="èšç„¦æ‘„åƒæœºäºŽä¸Šä¸ªå·²æ ‡è®°çš„化身" /> | ||
71 | <button | ||
72 | name="next_marked_btn" | ||
73 | label="ä¸‹ä¸ªæ ‡è®°" | ||
74 | tool_tip="èšç„¦æ‘„åƒæœºäºŽä¸‹ä¸ªå·²æ ‡è®°çš„化身" /> | ||
75 | <!-- lower row--> | ||
76 | <button | ||
77 | name="focus_btn" | ||
78 | label="èšç„¦" | ||
79 | tool_tip="èšç„¦æ‘„åƒæœºäºŽå½“å‰é€‰ä¸çš„化身" /> | ||
80 | <button | ||
81 | name="prev_in_list_btn" | ||
82 | label="上个" | ||
83 | tool_tip="èšç„¦æ‘„åƒæœºäºŽåˆ—表ä¸ä¸Šä¸€ä¸ªåŒ–身" /> | ||
84 | <button | ||
85 | name="next_in_list_btn" | ||
86 | label="下个" | ||
87 | tool_tip="èšç„¦æ‘„åƒæœºäºŽåˆ—表ä¸ä¸‹ä¸€ä¸ªåŒ–身" /> | ||
88 | |||
89 | </panel> | ||
90 | |||
91 | <panel | ||
92 | label="æ醒" | ||
93 | name="alerts_tab"> | ||
94 | <check_box | ||
95 | label="èŠå¤©ä¸æ˜¾ç¤ºæ醒" | ||
96 | name="radar_alerts" | ||
97 | tool_tip="在èŠå¤©è®°å½•ä¸æ˜¾ç¤ºè¿›å…¥å’Œç¦»å¼€èŒƒå›´çš„化身" /> | ||
98 | |||
99 | <check_box | ||
100 | label="化身进入 / 离开区域" | ||
101 | name="alerts_sim" | ||
102 | tool_tip="报告进入或离开区域的化身" /> | ||
103 | |||
104 | <check_box | ||
105 | label="化身进入 / 离开æ绘è·ç¦»" | ||
106 | name="alerts_draw" | ||
107 | tool_tip="报告进入或离开æ绘è·ç¦»çš„化身" /> | ||
108 | |||
109 | <check_box | ||
110 | label="化身进入 / 离开喊å«è·ç¦»" | ||
111 | name="alerts_shout" | ||
112 | tool_tip="报告进入或离开喊å«è·ç¦»çš„化身" /> | ||
113 | |||
114 | <check_box | ||
115 | label="化身进入 / 离开èŠå¤©è·ç¦»" | ||
116 | name="alerts_chat" | ||
117 | tool_tip="报告进入或离开èŠå¤©è·ç¦»çš„化身" /> | ||
118 | </panel> | ||
119 | |||
120 | <panel | ||
121 | label="管ç†" | ||
122 | name="land_tab"> | ||
123 | |||
124 | <!-- Upper row --> | ||
125 | <button | ||
126 | name="mute_btn" | ||
127 | label="å±è”½/解除" | ||
128 | tool_tip="å±è”½æˆ–解除å±è”½è¯¥åŒ–身 (å±è”½çš„化身åå—会在列表ä¸ä»¥çº¢è‰²é«˜äº®æ˜¾ç¤º)。" /> | ||
129 | <button | ||
130 | name="freeze_btn" | ||
131 | label="冻结" | ||
132 | tool_tip="冻结该化身,防æ¢å…¶ç§»åŠ¨" /> | ||
133 | <button | ||
134 | name="ar_btn" | ||
135 | label="报告" | ||
136 | tool_tip="报告该化身的ä¸è‰¯è¡Œä¸ºã€‚" /> | ||
137 | <!-- Lower row --> | ||
138 | <button | ||
139 | name="eject_btn" | ||
140 | label="驱é€" | ||
141 | tool_tip="从地å—ä¸é©±é€è¯¥åŒ–身。" /> | ||
142 | |||
143 | <button | ||
144 | name="estate_eject_btn" | ||
145 | label="从地产ä¸é©±é€" | ||
146 | tool_tip="从地产ä¸é©±é€è¯¥åŒ–身。" /> | ||
147 | </panel> | ||
148 | |||
149 | <panel | ||
150 | label="选项" | ||
151 | name="options_tab"> | ||
152 | <check_box | ||
153 | label="æ›´æ–°" | ||
154 | name="update_enabled_cb" | ||
155 | tool_tip="选择化身列表应何时更新" /> | ||
156 | <text | ||
157 | name="rate"> | ||
158 | 速率: | ||
159 | </text> | ||
160 | <radio_group | ||
161 | name="update_rate" | ||
162 | tool_tip="雷达更新频率 (高频率将é™ä½Ž FPS)"> | ||
163 | <radio_item | ||
164 | name="high"> | ||
165 | 高 | ||
166 | </radio_item> | ||
167 | <radio_item | ||
168 | name="medium"> | ||
169 | ä¸ | ||
170 | </radio_item> | ||
171 | <radio_item | ||
172 | name="low"> | ||
173 | 低 | ||
174 | </radio_item> | ||
175 | </radio_group> | ||
176 | <check_box | ||
177 | label="å…³é—时继ç»æ醒" | ||
178 | name="keep_open" | ||
179 | tool_tip="éšè—窗å£è€Œä¸å…³é—,以继ç»åœ¨èŠå¤©è®°å½•ä¸æ˜¾ç¤ºè¿›å…¥çš„化身" /> | ||
180 | <check_box | ||
181 | label="å‘é€é”®å€¼åˆ° HUD" | ||
182 | name="radar_chat_keys" | ||
183 | tool_tip="设置是å¦å°†åŒ–身的键值å‘é€ç»™LSL脚本" /> | ||
184 | <button | ||
185 | name="send_keys_btn" | ||
186 | label="现在å‘é€" | ||
187 | tool_tip="ç«‹å³å°†æ‰€æœ‰é”®å€¼å‘é€åˆ° HUD" /> | ||
188 | </panel> | ||
189 | </tab_container> | ||
190 | </floater> | ||
191 | |||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_rlv_behaviour.xml b/linden/indra/newview/skins/default/xui/zh/floater_rlv_behaviour.xml new file mode 100644 index 0000000..8aefafd --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_rlv_behaviour.xml | |||
@@ -0,0 +1,14 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="rlvBehaviours" | ||
4 | title="激活的 RLV é™åˆ¶"> | ||
5 | <scroll_list | ||
6 | name="behaviour_list"> | ||
7 | <column | ||
8 | label="é™åˆ¶" | ||
9 | name="behaviour" /> | ||
10 | <column | ||
11 | label="物体å称" | ||
12 | name="name" /> | ||
13 | </scroll_list> | ||
14 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml b/linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml index 27c97aa..28d80c5 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml | |||
@@ -54,6 +54,7 @@ | |||
54 | label="帮助" | 54 | label="帮助" |
55 | name="Help"> | 55 | name="Help"> |
56 | <menu_item_call label="帮助..." name="Help..." /> | 56 | <menu_item_call label="帮助..." name="Help..." /> |
57 | <menu_item_call label="打开 Autoscript" name="Launch Autoscript..." width="112" /> | ||
57 | <menu_item_call | 58 | <menu_item_call |
58 | label="LSL Wiki 帮助..." | 59 | label="LSL Wiki 帮助..." |
59 | name="LSL Wiki Help..." /> | 60 | name="LSL Wiki Help..." /> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_search_replace.xml b/linden/indra/newview/skins/default/xui/zh/floater_search_replace.xml index d21b657..5a2d724 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_search_replace.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_search_replace.xml | |||
@@ -4,10 +4,10 @@ | |||
4 | <button label="查找" label_selected="查找" name="search_btn" /> | 4 | <button label="查找" label_selected="查找" name="search_btn" /> |
5 | <button label="替æ¢" label_selected="替æ¢" name="replace_btn" /> | 5 | <button label="替æ¢" label_selected="替æ¢" name="replace_btn" /> |
6 | <button label="全部替æ¢" label_selected="全部替æ¢" name="replace_all_btn" /> | 6 | <button label="全部替æ¢" label_selected="全部替æ¢" name="replace_all_btn" /> |
7 | <text type="string" length="1" name="txt"> | 7 | <text type="string" name="search_label"> |
8 | 查找 | 8 | 查找 |
9 | </text> | 9 | </text> |
10 | <text type="string" length="1" name="txt2"> | 10 | <text type="string" name="replace_label"> |
11 | æ›¿æ¢ | 11 | æ›¿æ¢ |
12 | </text> | 12 | </text> |
13 | </floater> | 13 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml b/linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml index 7ecc330..499d4c4 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml | |||
@@ -22,10 +22,10 @@ | |||
22 | 为这å—土地选择一个åˆé€‚çš„ä»·ä½ | 22 | 为这å—土地选择一个åˆé€‚çš„ä»·ä½ |
23 | </text> | 23 | </text> |
24 | <text name="price_ld"> | 24 | <text name="price_ld"> |
25 | L$ | 25 | [CURRENCY] |
26 | </text> | 26 | </text> |
27 | <text name="price_per_m"> | 27 | <text name="price_per_m"> |
28 | (L$[PER_METER]æ¯å¹³æ–¹ç±³) | 28 | ([CURRENCY][PER_METER] æ¯å¹³æ–¹ç±³) |
29 | </text> | 29 | </text> |
30 | <text name="sell_to_label"> | 30 | <text name="sell_to_label"> |
31 | 把土地出售给: | 31 | 把土地出售给: |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml b/linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml index e0f9a17..ed90d9c 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml | |||
@@ -8,7 +8,7 @@ | |||
8 | 通过电å邮件å‘é€ | 8 | 通过电å邮件å‘é€ |
9 | </radio_item> | 9 | </radio_item> |
10 | <radio_item name="texture"> | 10 | <radio_item name="texture"> |
11 | ä¿å˜è‡³åº“å˜ (L$[AMOUNT]) | 11 | ä¿å˜è‡³åº“å˜ ([UPLOADFEE]) |
12 | </radio_item> | 12 | </radio_item> |
13 | <radio_item name="local"> | 13 | <radio_item name="local"> |
14 | ä¿å˜è‡³ç¡¬ç›˜ | 14 | ä¿å˜è‡³ç¡¬ç›˜ |
@@ -19,7 +19,7 @@ | |||
19 | </text> | 19 | </text> |
20 | <button label="刷新截图" name="new_snapshot_btn"/> | 20 | <button label="刷新截图" name="new_snapshot_btn"/> |
21 | <button label="å‘é€" name="send_btn"/> | 21 | <button label="å‘é€" name="send_btn"/> |
22 | <button label="ä¸Šä¼ (L$[AMOUNT])" name="upload_btn"/> | 22 | <button label="ä¸Šä¼ ([UPLOADFEE])" name="upload_btn"/> |
23 | <flyout_button label="ä¿å˜" list_position="below" name="save_btn" tool_tip="ä¿å˜å›¾åƒåˆ°æ–‡ä»¶"> | 23 | <flyout_button label="ä¿å˜" list_position="below" name="save_btn" tool_tip="ä¿å˜å›¾åƒåˆ°æ–‡ä»¶"> |
24 | <flyout_button_item name="save_item"> | 24 | <flyout_button_item name="save_item"> |
25 | ä¿å˜ | 25 | ä¿å˜ |
@@ -42,13 +42,13 @@ | |||
42 | 当å‰çª—å£ | 42 | 当å‰çª—å£ |
43 | </combo_item> | 43 | </combo_item> |
44 | <combo_item name="640x480"> | 44 | <combo_item name="640x480"> |
45 | 640x480 | 45 | 640×480 |
46 | </combo_item> | 46 | </combo_item> |
47 | <combo_item name="800x600"> | 47 | <combo_item name="800x600"> |
48 | 800x600 | 48 | 800×600 |
49 | </combo_item> | 49 | </combo_item> |
50 | <combo_item name="1024x768"> | 50 | <combo_item name="1024x768"> |
51 | 1024x768 | 51 | 1024×768 |
52 | </combo_item> | 52 | </combo_item> |
53 | <combo_item name="Custom"> | 53 | <combo_item name="Custom"> |
54 | 自定义 | 54 | 自定义 |
@@ -59,13 +59,13 @@ | |||
59 | 当å‰çª—å£ | 59 | 当å‰çª—å£ |
60 | </combo_item> | 60 | </combo_item> |
61 | <combo_item name="Small(128x128)"> | 61 | <combo_item name="Small(128x128)"> |
62 | å° (128x128) | 62 | å° (128×128) |
63 | </combo_item> | 63 | </combo_item> |
64 | <combo_item name="Medium(256x256)"> | 64 | <combo_item name="Medium(256x256)"> |
65 | ä¸ (256x256) | 65 | ä¸ (256×256) |
66 | </combo_item> | 66 | </combo_item> |
67 | <combo_item name="Large(512x512)"> | 67 | <combo_item name="Large(512x512)"> |
68 | 大 (512x512) | 68 | 大 (512×512) |
69 | </combo_item> | 69 | </combo_item> |
70 | <combo_item name="Custom"> | 70 | <combo_item name="Custom"> |
71 | 自定义 | 71 | 自定义 |
@@ -76,22 +76,22 @@ | |||
76 | 当å‰çª—å£ | 76 | 当å‰çª—å£ |
77 | </combo_item> | 77 | </combo_item> |
78 | <combo_item name="320x240"> | 78 | <combo_item name="320x240"> |
79 | 320x240 | 79 | 320×240 |
80 | </combo_item> | 80 | </combo_item> |
81 | <combo_item name="640x480"> | 81 | <combo_item name="640x480"> |
82 | 640x480 | 82 | 640×480 |
83 | </combo_item> | 83 | </combo_item> |
84 | <combo_item name="800x600"> | 84 | <combo_item name="800x600"> |
85 | 800x600 | 85 | 800×600 |
86 | </combo_item> | 86 | </combo_item> |
87 | <combo_item name="1024x768"> | 87 | <combo_item name="1024x768"> |
88 | 1024x768 | 88 | 1024×768 |
89 | </combo_item> | 89 | </combo_item> |
90 | <combo_item name="1280x1024"> | 90 | <combo_item name="1280x1024"> |
91 | 1280x1024 | 91 | 1280×1024 |
92 | </combo_item> | 92 | </combo_item> |
93 | <combo_item name="1600x1200"> | 93 | <combo_item name="1600x1200"> |
94 | 1600x1200 | 94 | 1600×1200 |
95 | </combo_item> | 95 | </combo_item> |
96 | <combo_item name="Custom"> | 96 | <combo_item name="Custom"> |
97 | 自定义 | 97 | 自定义 |
@@ -104,6 +104,9 @@ | |||
104 | <combo_item name="JPEG"> | 104 | <combo_item name="JPEG"> |
105 | JPEG | 105 | JPEG |
106 | </combo_item> | 106 | </combo_item> |
107 | <combo_item name="TGA"> | ||
108 | TGA | ||
109 | </combo_item> | ||
107 | <combo_item name="BMP"> | 110 | <combo_item name="BMP"> |
108 | BMP | 111 | BMP |
109 | </combo_item> | 112 | </combo_item> |
@@ -112,8 +115,9 @@ | |||
112 | <spinner label="高度" name="snapshot_height"/> | 115 | <spinner label="高度" name="snapshot_height"/> |
113 | <check_box label="ä¿æŒç”»é¢å®½é«˜æ¯”" name="keep_aspect_check"/> | 116 | <check_box label="ä¿æŒç”»é¢å®½é«˜æ¯”" name="keep_aspect_check"/> |
114 | <slider label="图åƒè´¨é‡" name="image_quality_slider"/> | 117 | <slider label="图åƒè´¨é‡" name="image_quality_slider"/> |
118 | <check_box label="åŒå€è§£æžåº¦" name="high_res_check" /> | ||
115 | <text name="layer_type_label"> | 119 | <text name="layer_type_label"> |
116 | 获å–: | 120 | 截å–: |
117 | </text> | 121 | </text> |
118 | <combo_box label="ç”»é¢å›¾å±‚" name="layer_types"> | 122 | <combo_box label="ç”»é¢å›¾å±‚" name="layer_types"> |
119 | <combo_item name="Colors"> | 123 | <combo_item name="Colors"> |
@@ -131,6 +135,8 @@ | |||
131 | <check_box label="ä¿å˜åŽä¿æŒçª—å£å¼€å¯" name="keep_open_check"/> | 135 | <check_box label="ä¿å˜åŽä¿æŒçª—å£å¼€å¯" name="keep_open_check"/> |
132 | <check_box label="冻结当å‰ç”»é¢(å…¨å±é¢„览)" name="freeze_frame_check"/> | 136 | <check_box label="冻结当å‰ç”»é¢(å…¨å±é¢„览)" name="freeze_frame_check"/> |
133 | <check_box label="自动截图" name="auto_snapshot_check"/> | 137 | <check_box label="自动截图" name="auto_snapshot_check"/> |
138 | <check_box enabled="true" label="ä¸´æ—¶å›¾åƒ (å…è´¹)" | ||
139 | tooltip="设置资产为临时的,这æ„味ç€å®ƒæ˜¯å…费的,但是作为代价,仅在一段时间内有效,之åŽå®ƒå°±æ¶ˆå¤±äº†ã€‚" /> | ||
134 | <string name="unknown"> | 140 | <string name="unknown"> |
135 | 未知 | 141 | 未知 |
136 | </string> | 142 | </string> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml b/linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml index ac9c149..40c564f 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml | |||
@@ -7,5 +7,5 @@ | |||
7 | æè¿°: | 7 | æè¿°: |
8 | </text> | 8 | </text> |
9 | <button label="å–消" label_selected="å–消" name="cancel_btn" /> | 9 | <button label="å–消" label_selected="å–消" name="cancel_btn" /> |
10 | <button label="ä¸Šä¼ (L$[AMOUNT])" label_selected="ä¸Šä¼ (L$[AMOUNT])" name="ok_btn" /> | 10 | <button label="ä¸Šä¼ ([UPLOADFEE])" label_selected="ä¸Šä¼ ([UPLOADFEE])" name="ok_btn" /> |
11 | </floater> | 11 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_teleport_history.xml b/linden/indra/newview/skins/default/xui/zh/floater_teleport_history.xml new file mode 100644 index 0000000..b4dd5de --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_teleport_history.xml | |||
@@ -0,0 +1,72 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="teleporthistory" | ||
4 | title="瞬间移动历å²"> | ||
5 | <tab_container | ||
6 | name="tplisttabs"> | ||
7 | <panel | ||
8 | label="瞬间移动到" | ||
9 | name="TP-in"> | ||
10 | <scroll_list | ||
11 | name="places_list_in"> | ||
12 | <column | ||
13 | label="区域" | ||
14 | name="region" /> | ||
15 | <column | ||
16 | label="ä½ç½®" | ||
17 | name="position" /> | ||
18 | <column | ||
19 | label="访问时间" | ||
20 | name="visited" /> | ||
21 | <!--Hidden fields, used as storage for prebuilt strings, please keep at width 0--> | ||
22 | <column | ||
23 | label="SLURL" | ||
24 | name="slurl" /> | ||
25 | <column | ||
26 | label="Sim String" | ||
27 | name="simstring" /> | ||
28 | </scroll_list> | ||
29 | </panel> | ||
30 | <panel | ||
31 | label="瞬间移动从" | ||
32 | name="TP-out"> | ||
33 | <scroll_list | ||
34 | name="places_list_out"> | ||
35 | <column | ||
36 | label="区域" | ||
37 | name="region" /> | ||
38 | <column | ||
39 | label="ä½ç½®" | ||
40 | name="position" /> | ||
41 | <column | ||
42 | label="访问时间" | ||
43 | name="visited" /> | ||
44 | <!--Hidden fields, used as storage for prebuilt strings, please keep at width 0--> | ||
45 | <column | ||
46 | label="SLURL" | ||
47 | name="slurl" /> | ||
48 | <column | ||
49 | label="Sim String" | ||
50 | name="simstring" /> | ||
51 | </scroll_list> | ||
52 | </panel> | ||
53 | </tab_container> | ||
54 | <button | ||
55 | label="瞬间移动" | ||
56 | label_selected="瞬间移动" | ||
57 | name="teleport" | ||
58 | tool_tip="瞬间移动到所选ä½ç½®" /> | ||
59 | <button | ||
60 | label="在地图上显示" | ||
61 | label_selected="在地图上显示" | ||
62 | name="show_on_map" | ||
63 | tool_tip="å±…ä¸æ˜¾ç¤ºè¯¥åœ°ç‚¹" /> | ||
64 | <button | ||
65 | label="清除历å²" | ||
66 | name="clear_history" | ||
67 | tool_tip="清除ä¿å˜çš„历å²" /> | ||
68 | <button | ||
69 | label="å¤åˆ¶ SLURL 到剪贴æ¿" | ||
70 | name="copy_slurl" | ||
71 | tool_tip="å¤åˆ¶å½“å‰ä½ç½®ä¸º SLURL 供分享。" /> | ||
72 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml b/linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml index bbca686..7e41a58 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml | |||
@@ -15,6 +15,7 @@ | |||
15 | <button label="默认" label_selected="默认" name="Default" /> | 15 | <button label="默认" label_selected="默认" name="Default" /> |
16 | <button label="æ— æè´¨" label_selected="æ— æè´¨" name="None" /> | 16 | <button label="æ— æè´¨" label_selected="æ— æè´¨" name="None" /> |
17 | <button label="空白" label_selected="空白" name="Blank" /> | 17 | <button label="空白" label_selected="空白" name="Blank" /> |
18 | <button label="é€æ˜Ž" label_selected="é€æ˜Ž" name="Invisible" /> | ||
18 | <check_box label="显示文件夹" name="show_folders_check" /> | 19 | <check_box label="显示文件夹" name="show_folders_check" /> |
19 | <check_box label="ç«‹å³åº”用" name="apply_immediate_check" /> | 20 | <check_box label="ç«‹å³åº”用" name="apply_immediate_check" /> |
20 | <button label="" label_selected="" name="Pipette" /> | 21 | <button label="" label_selected="" name="Pipette" /> |
@@ -23,4 +24,38 @@ | |||
23 | <string name="pick title"> | 24 | <string name="pick title"> |
24 | 选择: | 25 | 选择: |
25 | </string> | 26 | </string> |
27 | |||
28 | <tab_container name="actions_tab_container"> | ||
29 | <panel label="库å˜" name="server_tab"> | ||
30 | <search_editor | ||
31 | label="在这里键入è¦æŸ¥æ‰¾çš„æè´¨" | ||
32 | name="inventory search editor" /> | ||
33 | </panel> | ||
34 | <panel | ||
35 | label="我的电脑" | ||
36 | name="local_tab"> | ||
37 | <!-- tag: vaa emerald local_asset_browser [begin] --> | ||
38 | <text | ||
39 | name="select_local"> | ||
40 | é€‰æ‹©ä½ çš„ç”µè„‘ä¸Šçš„æ质在世界内预览 | ||
41 | Select texture on your computer to preview inworld | ||
42 | </text> | ||
43 | <button | ||
44 | label="æ·»åŠ " | ||
45 | name="Add" /> | ||
46 | <button | ||
47 | label="移除" | ||
48 | name="Remove" /> | ||
49 | <button | ||
50 | label="属性..." | ||
51 | name="Browser" /> | ||
52 | <scroll_list | ||
53 | name="local_name_list"> | ||
54 | <column | ||
55 | name="unit_name" | ||
56 | label="å称" /> | ||
57 | </scroll_list> | ||
58 | <!-- tag: vaa emerald local_asset_browser [end] --> | ||
59 | </panel> | ||
60 | </tab_container> | ||
26 | </floater> | 61 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_tools.xml b/linden/indra/newview/skins/default/xui/zh/floater_tools.xml index 4f7bcf1..f608b78 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_tools.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_tools.xml | |||
@@ -14,7 +14,12 @@ | |||
14 | <check_box label="ä½ç½®" name="radio position"/> | 14 | <check_box label="ä½ç½®" name="radio position"/> |
15 | <check_box label="旋转(Ctrl)" name="radio rotate"/> | 15 | <check_box label="旋转(Ctrl)" name="radio rotate"/> |
16 | <check_box label="拉伸(Ctrl-Shift)" name="radio stretch"/> | 16 | <check_box label="拉伸(Ctrl-Shift)" name="radio stretch"/> |
17 | <check_box label="选择æè´¨" name="radio select face"/> | 17 | <check_box label="选择表é¢æ·»åŠ æè´¨" name="radio select face"/> |
18 | <check_box label="å¯¹é½ (按 Shift å †ç Œ)" | ||
19 | name="radio align" | ||
20 | tool_tip="Align aligns all selected prims' edges along an axis, Pack moves all selected prims' edges so they're touching" /> | ||
21 | <button label="链接" label_selected="链接" name="link_btn" /> | ||
22 | <button label="解除链接" label_selected="解除链接" name="unlink_btn"/> | ||
18 | <check_box label="编辑连接部件" name="checkbox edit linked parts"/> | 23 | <check_box label="编辑连接部件" name="checkbox edit linked parts"/> |
19 | <text name="text ruler mode"> | 24 | <text name="text ruler mode"> |
20 | æ ‡å°ºï¼š | 25 | æ ‡å°ºï¼š |
@@ -33,7 +38,7 @@ | |||
33 | <check_box label="åŒæ—¶æ‹‰ä¼¸ä¸¤è¾¹" name="checkbox uniform"/> | 38 | <check_box label="åŒæ—¶æ‹‰ä¼¸ä¸¤è¾¹" name="checkbox uniform"/> |
34 | <check_box label="拉伸æè´¨" name="checkbox stretch textures"/> | 39 | <check_box label="拉伸æè´¨" name="checkbox stretch textures"/> |
35 | <check_box label="ä½¿ç”¨ç½‘æ ¼" name="checkbox snap to grid"/> | 40 | <check_box label="ä½¿ç”¨ç½‘æ ¼" name="checkbox snap to grid"/> |
36 | <button label="选项..." label_selected="选项..." name="Options..."/> | 41 | <button label="å»ºé€ é€‰é¡¹..." label_selected="å»ºé€ é€‰é¡¹..." name="Options..."/> |
37 | <text name="text status"> | 42 | <text name="text status"> |
38 | 拖动æ¥ç§»åŠ¨ç‰©ä½“, æŒ‰ä½ Shift 拖动æ¥å¤åˆ¶ | 43 | 拖动æ¥ç§»åŠ¨ç‰©ä½“, æŒ‰ä½ Shift 拖动æ¥å¤åˆ¶ |
39 | </text> | 44 | </text> |
@@ -74,11 +79,14 @@ | |||
74 | 强度 | 79 | 强度 |
75 | </text> | 80 | </text> |
76 | <text name="obj_count"> | 81 | <text name="obj_count"> |
77 | 选择物å“:[COUNT] | 82 | 选择物体数:[COUNT] |
78 | </text> | 83 | </text> |
79 | <text name="prim_count"> | 84 | <text name="prim_count"> |
80 | 元件:[COUNT] | 85 | 元件数:[COUNT] |
81 | </text> | 86 | </text> |
87 | <text name="link_num"> | ||
88 | 链接编å·: [NUMBER] | ||
89 | </text> | ||
82 | <tab_container name="Object Info Tabs"> | 90 | <tab_container name="Object Info Tabs"> |
83 | <panel label="一般" name="General"> | 91 | <panel label="一般" name="General"> |
84 | <text name="Name:"> | 92 | <text name="Name:"> |
@@ -98,7 +106,7 @@ | |||
98 | 主人: | 106 | 主人: |
99 | </text> | 107 | </text> |
100 | <text name="Owner Name"> | 108 | <text name="Owner Name"> |
101 | 斯雷è¨æ–¯Â·æž—ç™» | 109 | Kakurady Drakenar |
102 | </text> | 110 | </text> |
103 | <button label="档案..." label_selected="档案..." name="button owner profile"/> | 111 | <button label="档案..." label_selected="档案..." name="button owner profile"/> |
104 | <text name="Group:"> | 112 | <text name="Group:"> |
@@ -126,7 +134,7 @@ | |||
126 | <check_box label="在æœç´¢ä¸æ˜¾ç¤º" name="search_check" tool_tip="让别人å¯ä»¥åœ¨æœç´¢ç»“æžœä¸çœ‹åˆ°è¿™ä»¶ç‰©ä½“。"/> | 134 | <check_box label="在æœç´¢ä¸æ˜¾ç¤º" name="search_check" tool_tip="让别人å¯ä»¥åœ¨æœç´¢ç»“æžœä¸çœ‹åˆ°è¿™ä»¶ç‰©ä½“。"/> |
127 | <check_box label="出售" name="checkbox for sale"/> | 135 | <check_box label="出售" name="checkbox for sale"/> |
128 | <text name="Cost"> | 136 | <text name="Cost"> |
129 | ä»·æ ¼: L$ | 137 | ä»·æ ¼: [CURRENCY] |
130 | </text> | 138 | </text> |
131 | <radio_group name="sale type"> | 139 | <radio_group name="sale type"> |
132 | <radio_item name="Original"> | 140 | <radio_item name="Original"> |
@@ -139,6 +147,21 @@ | |||
139 | 内容 | 147 | 内容 |
140 | </radio_item> | 148 | </radio_item> |
141 | </radio_group> | 149 | </radio_group> |
150 | <button | ||
151 | label="å¤åˆ¶é”®å€¼" | ||
152 | label_selected="å¤åˆ¶é”®å€¼" | ||
153 | name="button copy key" | ||
154 | tool_tip="å¤åˆ¶ç‰©ä½“的键值到剪贴æ¿ã€‚" /> | ||
155 | <text | ||
156 | name="Anyone can:"> | ||
157 | 任何人都å¯ä»¥: | ||
158 | </text> | ||
159 | <check_box | ||
160 | label="移动" | ||
161 | name="checkbox allow everyone move" /> | ||
162 | <check_box | ||
163 | label="å¤åˆ¶" | ||
164 | name="checkbox allow everyone copy" /> | ||
142 | <text name="Next owner can:"> | 165 | <text name="Next owner can:"> |
143 | 下个拥有者å¯ä»¥: | 166 | 下个拥有者å¯ä»¥: |
144 | </text> | 167 | </text> |
@@ -205,24 +228,24 @@ | |||
205 | 必须选择一个完整的物体æ¥è®¾ç½®è®¸å¯ã€‚ | 228 | 必须选择一个完整的物体æ¥è®¾ç½®è®¸å¯ã€‚ |
206 | </string> | 229 | </string> |
207 | <string name="Cost Default"> | 230 | <string name="Cost Default"> |
208 | ä»·æ ¼: L$ | 231 | ä»·æ ¼: [CURRENCY] |
209 | </string> | 232 | </string> |
210 | <string name="Cost Total"> | 233 | <string name="Cost Total"> |
211 | æ€»ä»·æ ¼: L$ | 234 | æ€»ä»·æ ¼: [CURRENCY] |
212 | </string> | 235 | </string> |
213 | <string name="Cost Per Unit"> | 236 | <string name="Cost Per Unit"> |
214 | æ¯ä¸ªçš„ä»·æ ¼: L$ | 237 | å•ä»·: [CURRENCY] |
215 | </string> | 238 | </string> |
216 | <string name="Cost Mixed"> | 239 | <string name="Cost Mixed"> |
217 | æ··åˆä»·æ ¼ | 240 | ä»·æ ¼ä¸ç›¸åŒ |
218 | </string> | 241 | </string> |
219 | <string name="Sale Mixed"> | 242 | <string name="Sale Mixed"> |
220 | æ··åˆé”€å”® | 243 | 部分ä¸å‡ºå”® |
221 | </string> | 244 | </string> |
222 | </panel> | 245 | </panel> |
223 | <panel label="物体" name="Object"> | 246 | <panel label="物体" name="Object"> |
224 | <text name="select_single"> | 247 | <text name="select_single"> |
225 | 一次åªèƒ½ç¼–辑一个元件的å‚数。请选择å•ä¸ªå…ƒä»¶ã€‚ | 248 | ä¸èƒ½åŒæ—¶ç¼–辑多个元件的å‚数。请选择å•ä¸ªå…ƒä»¶ã€‚ |
226 | </text> | 249 | </text> |
227 | <text name="edit_object"> | 250 | <text name="edit_object"> |
228 | 编辑物体å‚æ•°: | 251 | 编辑物体å‚æ•°: |
@@ -237,15 +260,50 @@ | |||
237 | <spinner label="X" name="Pos X"/> | 260 | <spinner label="X" name="Pos X"/> |
238 | <spinner label="Y" name="Pos Y"/> | 261 | <spinner label="Y" name="Pos Y"/> |
239 | <spinner label="Z" name="Pos Z"/> | 262 | <spinner label="Z" name="Pos Z"/> |
263 | <button | ||
264 | name="copypos" | ||
265 | tool_tip="å¤åˆ¶ä½ç½®" /> | ||
266 | <button | ||
267 | name="pastepos" | ||
268 | tool_tip="粘贴ä½ç½®" /> | ||
269 | <button | ||
270 | label="p" | ||
271 | name="pasteposclip" | ||
272 | tool_tip="从剪贴æ¿ç²˜è´´ä½ç½®" /> | ||
240 | <text name="label size"> | 273 | <text name="label size"> |
241 | 尺寸 (米) | 274 | 尺寸 (米) |
242 | </text> | 275 | </text> |
243 | <spinner label="X" name="Scale X"/> | 276 | <spinner label="X" name="Scale X"/> |
244 | <spinner label="Y" name="Scale Y"/> | 277 | <spinner label="Y" name="Scale Y"/> |
245 | <spinner label="Z" name="Scale Z"/> | 278 | <spinner label="Z" name="Scale Z"/> |
279 | <button | ||
280 | label="C" | ||
281 | name="copysize" | ||
282 | tool_tip="å¤åˆ¶å°ºå¯¸" /> | ||
283 | <button | ||
284 | label="P" | ||
285 | name="pastesize" | ||
286 | tool_tip="粘贴尺寸" /> | ||
287 | <button | ||
288 | label="p" | ||
289 | name="pastesizeclip" | ||
290 | tool_tip="从剪贴æ¿ç²˜è´´å°ºå¯¸" /> | ||
246 | <text name="label rotation"> | 291 | <text name="label rotation"> |
247 | 旋转 (角度) | 292 | 旋转 (角度) |
248 | </text> | 293 | </text> |
294 | <button | ||
295 | label="C" | ||
296 | name="copyrot" | ||
297 | tool_tip="å¤åˆ¶æ–¹å‘" /> | ||
298 | <button | ||
299 | label="P" | ||
300 | name="pasterot" | ||
301 | tool_tip="粘贴方å‘" /> | ||
302 | <button | ||
303 | label="p" | ||
304 | name="pasterotclip" | ||
305 | tool_tip="从剪贴æ¿ç²˜è´´æ–¹å‘" /> | ||
306 | |||
249 | <spinner label="X" name="Rot X"/> | 307 | <spinner label="X" name="Rot X"/> |
250 | <spinner label="Y" name="Rot Y"/> | 308 | <spinner label="Y" name="Rot Y"/> |
251 | <spinner label="Z" name="Rot Z"/> | 309 | <spinner label="Z" name="Rot Z"/> |
@@ -518,6 +576,10 @@ | |||
518 | 编织 | 576 | 编织 |
519 | </combo_item> | 577 | </combo_item> |
520 | </combo_box> | 578 | </combo_box> |
579 | <check_box | ||
580 | label="对é½å¹³é¢æè´¨" | ||
581 | name="checkbox planar align" | ||
582 | tool_tip="所有选ä¸é¢çš„æ质与最åŽé€‰ä¸é¢çš„æ质对é½ã€‚需è¦é€‰æ‹©å¹³é¢æè´¨æ˜ å°„ã€‚" /> | ||
521 | <text name="tex scale"> | 583 | <text name="tex scale"> |
522 | æ¯é¢é‡å¤æ¬¡æ•° | 584 | æ¯é¢é‡å¤æ¬¡æ•° |
523 | </text> | 585 | </text> |
@@ -556,10 +618,10 @@ | |||
556 | </tab_container> | 618 | </tab_container> |
557 | <panel name="land info panel"> | 619 | <panel name="land info panel"> |
558 | <text name="label_parcel_info"> | 620 | <text name="label_parcel_info"> |
559 | åœŸåœ°ä¿¡æ¯ | 621 | 土地信æ¯: |
560 | </text> | 622 | </text> |
561 | <text name="label_area_price"> | 623 | <text name="label_area_price"> |
562 | ä»·æ ¼: L$[PRICE] æ¯ [AREA]平方米. | 624 | ä»·æ ¼: [CURRENCY][PRICE] æ¯ [AREA]平方米. |
563 | </text> | 625 | </text> |
564 | <text name="label_area"> | 626 | <text name="label_area"> |
565 | é¢ç§¯: [AREA] 平方米. | 627 | é¢ç§¯: [AREA] 平方米. |
@@ -594,8 +656,11 @@ | |||
594 | 点击并拖动æ¥æ›´æ”¹è§†è§’ | 656 | 点击并拖动æ¥æ›´æ”¹è§†è§’ |
595 | </string> | 657 | </string> |
596 | <string name="status_grab"> | 658 | <string name="status_grab"> |
597 | 拖动以移动,按ä½Ctrl抬起,Ctrl+Shift旋转 | 659 | æ‹–åŠ¨ä»¥ç§»åŠ¨ï¼ŒæŒ‰ä½ Ctrl 抬起,Ctrl+Shift 旋转 |
598 | </string> | 660 | </string> |
661 | <string name="status_align"> | ||
662 | CTRL-A 以对é½åˆ°è½´, CTRL-Shift-A å †ç Œ | ||
663 | </string> | ||
599 | <string name="status_place"> | 664 | <string name="status_place"> |
600 | 在世界ä¸ç‚¹å‡»ä»¥åˆ›å»º | 665 | 在世界ä¸ç‚¹å‡»ä»¥åˆ›å»º |
601 | </string> | 666 | </string> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_tos.xml b/linden/indra/newview/skins/default/xui/zh/floater_tos.xml index ed16075..29f7341 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_tos.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_tos.xml | |||
@@ -9,8 +9,7 @@ | |||
9 | æœåŠ¡æ¡æ¬¾åè®® | 9 | æœåŠ¡æ¡æ¬¾åè®® |
10 | </text> | 10 | </text> |
11 | <text name="tos_heading"> | 11 | <text name="tos_heading"> |
12 | 登陆第二人生å‰è¯·ä»”细阅读下列æœåŠ¡æ¡æ¬¾ã€‚è¦ç»§ç»ç™»å½•åˆ°ç¬¬äºŒäººç”Ÿï¼Œ | 12 | 登陆å‰è¯·ä»”细阅读下列æœåŠ¡æ¡æ¬¾ã€‚è¦ç»§ç»ç™»å½•ï¼Œæ‚¨å¿…须接å—该å议。 |
13 | 您必须接å—该å议。 | ||
14 | </text> | 13 | </text> |
15 | <web_browser name="tos_html"/> | 14 | <web_browser name="tos_html"/> |
16 | 15 | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_voice_license.xml b/linden/indra/newview/skins/default/xui/zh/floater_voice_license.xml new file mode 100644 index 0000000..06fc9c1 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_voice_license.xml | |||
@@ -0,0 +1,25 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="modal container" | ||
4 | title=""> | ||
5 | <button | ||
6 | label="继ç»" | ||
7 | label_selected="继ç»" | ||
8 | name="Continue" /> | ||
9 | <button | ||
10 | label="å–消" | ||
11 | label_selected="å–消" | ||
12 | name="Cancel" /> | ||
13 | <check_box | ||
14 | label="我接å—Vivox使用æ¡ä¾‹ã€‚" | ||
15 | name="agree_chk" /> | ||
16 | <text | ||
17 | name="license_heading"> | ||
18 | 请仔细阅读以下的æ¡ä¾‹æ–‡æœ¬ã€‚ | ||
19 | è¦ä½¿ç”¨Vivoxè¯éŸ³èŠå¤©ï¼Œæ‚¨å¿…须接å—æ¡ä¾‹æ¬¾é¡¹ã€‚ | ||
20 | </text> | ||
21 | <!-- Loading text says: "Loading Vivox Acceptable Use Policy..." URL encoded --> | ||
22 | <web_browser | ||
23 | name="license_html" | ||
24 | start_url="data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//vivox.com/vivox_aup.html%22%3EVivox%20Acceptable%20Use%20Policy%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E" /> | ||
25 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_water.xml b/linden/indra/newview/skins/default/xui/zh/floater_water.xml index bc4091a..0defeb3 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_water.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_water.xml | |||
@@ -5,7 +5,22 @@ | |||
5 | </text> | 5 | </text> |
6 | <combo_box allow_text_entry="false" max_chars="20" name="WaterPresetsCombo"/> | 6 | <combo_box allow_text_entry="false" max_chars="20" name="WaterPresetsCombo"/> |
7 | <button label="新建" label_selected="新建" name="WaterNewPreset"/> | 7 | <button label="新建" label_selected="新建" name="WaterNewPreset"/> |
8 | <button label="ä¿å˜" label_selected="ä¿å˜" name="WaterSavePreset"/> | 8 | <flyout_button |
9 | label="ä¿å˜åˆ°ç¡¬ç›˜" | ||
10 | name="WaterSavePreset"> | ||
11 | <flyout_button_item | ||
12 | name="save_inventory_item"> | ||
13 | ä¿å˜åˆ°åº“å˜ | ||
14 | </flyout_button_item> | ||
15 | <flyout_button_item | ||
16 | name="save_disk_item"> | ||
17 | ä¿å˜åˆ°ç¡¬ç›˜ | ||
18 | </flyout_button_item> | ||
19 | <flyout_button_item | ||
20 | name="send_to_server_item"> | ||
21 | å‘é€åˆ°æœåŠ¡å™¨ | ||
22 | </flyout_button_item> | ||
23 | </flyout_button> | ||
9 | <button label="åˆ é™¤" label_selected="Delete" name="WaterDeletePreset"/> | 24 | <button label="åˆ é™¤" label_selected="Delete" name="WaterDeletePreset"/> |
10 | <tab_container name="Water Tabs" tab_position="top"> | 25 | <tab_container name="Water Tabs" tab_position="top"> |
11 | <panel label="设置" name="Settings"> | 26 | <panel label="设置" name="Settings"> |
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_windlight_manager.xml b/linden/indra/newview/skins/default/xui/zh/floater_windlight_manager.xml new file mode 100644 index 0000000..f69e94d --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/floater_windlight_manager.xml | |||
@@ -0,0 +1,33 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater | ||
3 | name="WindLight send to server floater" | ||
4 | title="WindLight 管ç†å™¨"> | ||
5 | <button | ||
6 | label="当å‰åœ°å—" | ||
7 | label_selected="当å‰åœ°å—" | ||
8 | name="this_parcel" /> | ||
9 | <button | ||
10 | label="所有地å—" | ||
11 | label_selected="所有地å—" | ||
12 | name="all_parcels" /> | ||
13 | <button | ||
14 | label="当å‰åŒºåŸŸ" | ||
15 | label_selected="当å‰åŒºåŸŸ" | ||
16 | name="this_region" /> | ||
17 | <text | ||
18 | name="KeyFramePresetsText"> | ||
19 | 预设: | ||
20 | </text> | ||
21 | <button | ||
22 | label="显示" | ||
23 | label_selected="显示" | ||
24 | name="show" /> | ||
25 | <button | ||
26 | label="设置为当å‰é¢„设" | ||
27 | label_selected="设置为当å‰é¢„设" | ||
28 | name="set_to_current" /> | ||
29 | <button | ||
30 | label="移除" | ||
31 | label_selected="移除" | ||
32 | name="remove" /> | ||
33 | </floater> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml b/linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml index e9c260d..bbce687 100644 --- a/linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml +++ b/linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml | |||
@@ -4,7 +4,22 @@ | |||
4 | 天空预设: | 4 | 天空预设: |
5 | </text> | 5 | </text> |
6 | <button label="新建" label_selected="新建" name="WLNewPreset"/> | 6 | <button label="新建" label_selected="新建" name="WLNewPreset"/> |
7 | <button label="ä¿å˜" label_selected="ä¿å˜" name="WLSavePreset"/> | 7 | <flyout_button |
8 | label="ä¿å˜åˆ°ç¡¬ç›˜" | ||
9 | name="WLSavePreset"> | ||
10 | <flyout_button_item | ||
11 | name="save_inventory_item"> | ||
12 | ä¿å˜åˆ°åº“å˜ | ||
13 | </flyout_button_item> | ||
14 | <flyout_button_item | ||
15 | name="save_disk_item"> | ||
16 | ä¿å˜åˆ°ç¡¬ç›˜ | ||
17 | </flyout_button_item> | ||
18 | <flyout_button_item | ||
19 | name="send_to_server_item"> | ||
20 | å‘é€åˆ°æœåŠ¡å™¨ | ||
21 | </flyout_button_item> | ||
22 | </flyout_button> | ||
8 | <button label="åˆ é™¤" label_selected="åˆ é™¤" name="WLDeletePreset"/> | 23 | <button label="åˆ é™¤" label_selected="åˆ é™¤" name="WLDeletePreset"/> |
9 | <button label="日夜循环编辑器" label_selected="日夜循环编辑器" name="WLDayCycleMenuButton"/> | 24 | <button label="日夜循环编辑器" label_selected="日夜循环编辑器" name="WLDayCycleMenuButton"/> |
10 | <tab_container name="WindLight Tabs" tab_position="top"> | 25 | <tab_container name="WindLight Tabs" tab_position="top"> |
@@ -64,6 +79,10 @@ | |||
64 | </text> | 79 | </text> |
65 | <button label="?" name="WLMaxAltitudeHelp"/> | 80 | <button label="?" name="WLMaxAltitudeHelp"/> |
66 | <slider label="" name="WLMaxAltitude" /> | 81 | <slider label="" name="WLMaxAltitude" /> |
82 | <button | ||
83 | label="日夜周期编辑器" | ||
84 | label_selected="日夜周期编辑器" | ||
85 | name="WLDayCycleMenuButton" /> | ||
67 | </panel> | 86 | </panel> |
68 | <panel label="光照" name="Lighting"> | 87 | <panel label="光照" name="Lighting"> |
69 | <text name="SLCText"> | 88 | <text name="SLCText"> |
@@ -181,6 +200,14 @@ | |||
181 | <check_box label="Lock" name="WLCloudLockY"/> | 200 | <check_box label="Lock" name="WLCloudLockY"/> |
182 | <check_box label="渲染旧云层" name="DrawClassicClouds"/> | 201 | <check_box label="渲染旧云层" name="DrawClassicClouds"/> |
183 | <button label="?" name="WLClassicCloudsHelp"/> | 202 | <button label="?" name="WLClassicCloudsHelp"/> |
203 | <text | ||
204 | name="WLCloudHeightText"> | ||
205 | 旧云层高度 | ||
206 | </text> | ||
207 | <text | ||
208 | name="WLCloudClassicRangeText"> | ||
209 | 旧云层范围 | ||
210 | </text> | ||
184 | </panel> | 211 | </panel> |
185 | </tab_container> | 212 | </tab_container> |
186 | <string name="WLDefaultSkyNames"> | 213 | <string name="WLDefaultSkyNames"> |
diff --git a/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_attachment.xml b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_attachment.xml new file mode 100644 index 0000000..a6204ea --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_attachment.xml | |||
@@ -0,0 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <pie_menu name="Attachment Pie"> | ||
3 | <menu_item_call label="丢下" name="Drop" /> | ||
4 | <menu_item_call label="审查" name="Object Inspect" /> | ||
5 | <menu_item_call label="å¸ä¸‹" name="Detach" /> | ||
6 | <menu_item_call label="编辑..." name="Edit" /> | ||
7 | </pie_menu> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_avatar.xml b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_avatar.xml new file mode 100644 index 0000000..f23c2f4 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_avatar.xml | |||
@@ -0,0 +1,22 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <pie_menu name="Avatar Pie"> | ||
3 | <menu_item_call label="档案..." name="Profile..." /> | ||
4 | <menu_item_call label="å±è”½" name="Avatar Mute" /> | ||
5 | <!--TODO--> | ||
6 | <menu_item_call label="å‰å¾€" name="Go To" /> | ||
7 | <menu_item_call label="报告..." name="abuse"/> | ||
8 | |||
9 | |||
10 | <menu_item_call label="æ·»åŠ å¥½å‹..." name="Add Friend" /> | ||
11 | <menu_item_call label="付款..." name="Pay..." /> | ||
12 | <pie_menu label="更多 >" name="More >"> | ||
13 | <menu_item_call label="冻结..." name="Freeze..." /> | ||
14 | <menu_item_call label="èµ ä¸Žå片" name="Give Card" /> | ||
15 | <menu_item_call label="社团邀请..." name="Invite..." /> | ||
16 | <menu_item_call label="驱é€..." name="Eject..." /> | ||
17 | <menu_item_call label="调试..." name="Debug..." /> | ||
18 | <menu_item_call label="审查" name="Avatar Inspect"/> | ||
19 | <menu_item_call label="éšè—" name="Derender" /> | ||
20 | </pie_menu> | ||
21 | <menu_item_call label="å‘é€æ¶ˆæ¯..." name="Send IM..." /> | ||
22 | </pie_menu> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_land.xml b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_land.xml new file mode 100644 index 0000000..97241fd --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_land.xml | |||
@@ -0,0 +1,12 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <pie_menu name="Land Pie"> | ||
3 | <menu_item_call label="关于土地..." name="About Land..." /> | ||
4 | <menu_item_call label="å»ºé€ " name="Create" /> | ||
5 | <menu_item_call label="å‰å¾€" name="Go Here" /> | ||
6 | <menu_item_call label="å在这里" name="Sit Here" /> | ||
7 | <menu_item_call label="è´ä¹°é€šè¡Œè¯" name="Land Buy Pass" /> | ||
8 | <menu_item_call label="编辑地形" name="Edit Terrain" /> | ||
9 | <menu_item_call label="è´ä¹°åœŸåœ°..." name="Land Buy" /> | ||
10 | <menu_item_call label="æ·»åŠ åœ°æ ‡" name="Add Landmark"> | ||
11 | </pie_menu> | ||
12 | <!-- Translated for Second Life 1.19.0 (80267) --> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_object.xml b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_object.xml new file mode 100644 index 0000000..bb9e8b1 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_object.xml | |||
@@ -0,0 +1,30 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | ||
2 | <pie_menu name="Object Pie"> | ||
3 | <menu_item_call label="打开" name="Open"/> | ||
4 | <menu_item_call label="触摸" name="Object Touch" /> | ||
5 | <menu_item_call label="å在这里" name="Object Sit" /> | ||
6 | <menu_item_call label="æ‹¿èµ°" name="Pie Object Take" /> | ||
7 | <menu_item_call label="付款..." name="Pay..."/> | ||
8 | <menu_item_call label="åˆ›é€ " name="Create"/> | ||
9 | <pie_menu label="更多 >" name="More >"> | ||
10 | <menu_item_call label="åˆ é™¤" name="Delete"/> | ||
11 | <menu_item_call label="穿上" name="Wear"/> | ||
12 | <menu_item_call label="拿走副本" name="Take Copy"/> | ||
13 | <pie_menu label="装上到HUD >" name="Object Attach HUD"/> | ||
14 | <pie_menu label="装备到>" name="Object Attach"/> | ||
15 | <menu_item_call label="归还..." name="Return..."/> | ||
16 | <pie_menu label="更多 >" name="Rate Menu"> | ||
17 | <menu_item_call label="导出" name="Export" /> | ||
18 | <menu_item_call label="å±è”½" name="Object Mute" /> | ||
19 | <menu_item_call label="报告..." name="Report Abuse..." /> | ||
20 | <menu_item_call label="å‰å¾€" name="Go To" /> | ||
21 | <menu_item_call label="å±è”½" name="Object Mute"/> | ||
22 | <menu_item_call label="审查" name="Object Inspect"/> | ||
23 | <menu_item_call label="éšè—" name="Derender" /> | ||
24 | <menu_item_call name="链接" label="Link" /> | ||
25 | <menu_item_call name="解除链接" label="Unlink" /> | ||
26 | </pie_menu> | ||
27 | <menu_item_call label="è´ä¹°..." name="Buy..."/> | ||
28 | </pie_menu> | ||
29 | <menu_item_call label="编辑..." name="Edit..."/> | ||
30 | </pie_menu> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_self.xml b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_self.xml new file mode 100644 index 0000000..2b79bf2 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/legacy_menu_pie_self.xml | |||
@@ -0,0 +1,29 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <pie_menu name="Self Pie"> | ||
3 | <menu_item_call label="档案..." name="Profile..." /> | ||
4 | <menu_item_call label="社团..." name="Groups..." /> | ||
5 | <menu_item_call label="去往..." name="Go..." /> | ||
6 | <menu_item_call label="起身" name="Stand Up" /> | ||
7 | <menu_item_call label="朋å‹..." name="Friends..." /> | ||
8 | <menu_item_call label="动作..." name="Gestures..." /> | ||
9 | <pie_menu label="脱下 >" name="Take Off >"> | ||
10 | <pie_menu label="æœé¥° >" name="Clothes >"> | ||
11 | <menu_item_call label="衬衣" name="Shirt" /> | ||
12 | <menu_item_call label="裤å" name="Pants" /> | ||
13 | <menu_item_call label="éž‹å" name="Shoes" /> | ||
14 | <menu_item_call label="袜å" name="Socks" /> | ||
15 | <menu_item_call label="夹克" name="Jacket" /> | ||
16 | <menu_item_call label="手套" name="Gloves" /> | ||
17 | <pie_menu label="更多 >" name="More >"> | ||
18 | <menu_item_call label="内衣" name="Self Undershirt" /> | ||
19 | <menu_item_call label="所有æœé¥°" name="All Clothes" /> | ||
20 | <menu_item_call label="内裤" name="Self Underpants" /> | ||
21 | </pie_menu> | ||
22 | <menu_item_call label="裙å" name="Skirt" /> | ||
23 | </pie_menu> | ||
24 | <pie_menu label="HUD >" name="Object Detach HUD" /> | ||
25 | <pie_menu label="å¸ä¸‹ >" name="Object Detach" /> | ||
26 | <menu_item_call label="分开全部" name="Detach All" /> | ||
27 | </pie_menu> | ||
28 | <menu_item_call label="外观..." name="Appearance..." /> | ||
29 | </pie_menu> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_inventory.xml b/linden/indra/newview/skins/default/xui/zh/menu_inventory.xml index fee52b9..4a1547e 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_inventory.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_inventory.xml | |||
@@ -22,6 +22,8 @@ | |||
22 | <menu_item_call label="新建手套" name="New Gloves"/> | 22 | <menu_item_call label="新建手套" name="New Gloves"/> |
23 | <menu_item_call label="新建内衣" name="New Undershirt"/> | 23 | <menu_item_call label="新建内衣" name="New Undershirt"/> |
24 | <menu_item_call label="新建内裤" name="New Underpants"/> | 24 | <menu_item_call label="新建内裤" name="New Underpants"/> |
25 | <menu_item_call label="新建纹身" name="New Tattoo" /> | ||
26 | <menu_item_call label="新建é€æ˜Žåº¦è’™æ¿" name="New Alpha" /> | ||
25 | </menu> | 27 | </menu> |
26 | <menu name="New Body Parts"> | 28 | <menu name="New Body Parts"> |
27 | <menu_item_call label="新建体型" name="New Shape"/> | 29 | <menu_item_call label="新建体型" name="New Shape"/> |
@@ -38,6 +40,7 @@ | |||
38 | <menu_item_call label="属性" name="Properties"/> | 40 | <menu_item_call label="属性" name="Properties"/> |
39 | <menu_item_call label="é‡å‘½å" name="Rename"/> | 41 | <menu_item_call label="é‡å‘½å" name="Rename"/> |
40 | <menu_item_call label="å¤åˆ¶èµ„产UUID" name="Copy Asset UUID"/> | 42 | <menu_item_call label="å¤åˆ¶èµ„产UUID" name="Copy Asset UUID"/> |
43 | <menu_item_call label="剪切" name="Cut" /> | ||
41 | <menu_item_call label="å¤åˆ¶" name="Copy"/> | 44 | <menu_item_call label="å¤åˆ¶" name="Copy"/> |
42 | <menu_item_call label="粘贴" name="Paste"/> | 45 | <menu_item_call label="粘贴" name="Paste"/> |
43 | <menu_item_call label="åˆ é™¤" name="Delete"/> | 46 | <menu_item_call label="åˆ é™¤" name="Delete"/> |
@@ -55,12 +58,15 @@ | |||
55 | <menu_item_call label="激活" name="Activate"/> | 58 | <menu_item_call label="激活" name="Activate"/> |
56 | <menu_item_call label="解除激活" name="Deactivate"/> | 59 | <menu_item_call label="解除激活" name="Deactivate"/> |
57 | <menu_item_call label="从自己身上å¸ä¸‹" name="Detach From Yourself"/> | 60 | <menu_item_call label="从自己身上å¸ä¸‹" name="Detach From Yourself"/> |
58 | <menu_item_call label="æ¢å¤è‡³ä¸Šä¸€ä½ç½®" name="Restore to Last Position"/> | 61 | <menu_item_call label="æ¢å¤è‡³æœ€åŽä½ç½®" name="Restore to Last Position"/> |
59 | <menu_item_call label="穿上" name="Object Wear"/> | 62 | <menu_item_call label="穿上" name="Object Wear"/> |
60 | <menu label="装备至" name="Attach To"/> | 63 | <menu label="装备至" name="Attach To"/> |
61 | <menu label="装备到HUD" name="Attach To HUD"/> | 64 | <menu label="装备到HUD" name="Attach To HUD"/> |
62 | <menu_item_call label="编辑" name="Wearable Edit"/> | 65 | <menu_item_call label="编辑" name="Wearable Edit"/> |
63 | <menu_item_call label="穿上" name="Wearable Wear"/> | 66 | <menu_item_call label="穿上" name="Wearable Wear"/> |
64 | <menu_item_call label="脱掉" name="Take Off"/> | 67 | <menu_item_call label="脱掉" name="Take Off"/> |
68 | <menu_item_call label="使用 WindLight 设置" name="Use WindLight Settings" /> | ||
69 | <menu_item_call label="使用水é¢è®¾ç½®" name="Use WaterLight Settings" /> | ||
70 | <menu_item_call label="编辑 WindLight 设置" name="Edit WindLight Settings" /> | ||
65 | <menu_item_call label="--æ— å¯ç”¨é€‰é¡¹--" name="--no options--"/> | 71 | <menu_item_call label="--æ— å¯ç”¨é€‰é¡¹--" name="--no options--"/> |
66 | </menu> | 72 | </menu> |
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_login.xml b/linden/indra/newview/skins/default/xui/zh/menu_login.xml index a00ae90..8c70de2 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_login.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_login.xml | |||
@@ -32,5 +32,25 @@ | |||
32 | name="About Second Life..."> | 32 | name="About Second Life..."> |
33 | <on_click /> | 33 | <on_click /> |
34 | </menu_item_call> | 34 | </menu_item_call> |
35 | <menu_item_call | ||
36 | label="Grid Help" | ||
37 | name="Grid Help" /> | ||
38 | <menu_item_call | ||
39 | label="Imprudence 网络日志" | ||
40 | name="Imprudence Blog" /> | ||
41 | <menu_item_call | ||
42 | label="Imprudence 论å›" | ||
43 | name="Imprudence Forums" /> | ||
44 | <menu_item_call | ||
45 | label="关于 Imprudence" | ||
46 | name="About Imprudence" /> | ||
47 | </menu> | ||
48 | <menu | ||
49 | label="高级" | ||
50 | name="Advanced"> | ||
51 | <menu_item_call | ||
52 | name="Debug Settings" | ||
53 | label="调试设置" /> | ||
35 | </menu> | 54 | </menu> |
36 | </menu_bar> \ No newline at end of file | 55 | </menu_bar> |
56 | |||
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml index 7891fd1..321a652 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml | |||
@@ -1,15 +1,18 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <pie_menu name="Attachment Pie"> | 2 | <pie_menu name="Attachment Pie"> |
3 | <menu_item_call label="档案..." name="Profile..."/> | 3 | <menu_item_call label="档案..." name="Profile..."/> |
4 | <menu_item_call label="丢下" name="Drop" /> | 4 | <menu_item_call label="社团..." name="Groups"/> |
5 | <menu_item_call label="社团..." name="Groups..."/> | 5 | <menu_item_call label="触摸" name="Attachment Touch"/> |
6 | <menu_item_call label="触摸" name="Attachment Object Touch"> | 6 | |
7 | <on_enable userdata="触摸" name="EnableTouch"/> | ||
8 | </menu_item_call> | ||
9 | <menu_item_call label="起身" name="Stand Up"/> | 7 | <menu_item_call label="起身" name="Stand Up"/> |
10 | <menu_item_call label="å¸ä¸‹" name="Detach" /> | 8 | |
11 | <menu_item_call label="好å‹..." name="Friends..."/> | 9 | <menu_item_call label="好å‹..." name="Friends"/> |
12 | <menu_item_call label="动作..." name="Gestures..."/> | 10 | <menu_item_call label="动作..." name="Gestures..."/> |
13 | <menu_item_call label="外观..." name="Appearance..."/> | 11 | <menu_item_call label="外观..." name="Appearance..."/> |
14 | <menu_item_call label="编辑..." name="Edit..."/> | 12 | <menu_item_call label="编辑..." name="Edit..."/> |
13 | <pie_menu label="更多 >" name="More >"> | ||
14 | <menu_item_call label="丢下" name="Drop" /> | ||
15 | <menu_item_call label="å¸ä¸‹" name="Detach" /> | ||
16 | <menu_item_call label="审查" name="Object Inspect" /> | ||
17 | </pie_menu> | ||
15 | </pie_menu> | 18 | </pie_menu> |
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml index 684e9a3..8f983d6 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml | |||
@@ -1,19 +1,21 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <pie_menu name="Avatar Pie"> | 2 | <pie_menu name="Avatar Pie"> |
3 | <menu_item_call label="档案..." name="Profile..." /> | 3 | <menu_item_call label="档案" name="Profile" /> |
4 | <menu_item_call label="å±è”½" name="Avatar Mute" /> | 4 | <menu_item_call label="å±è”½" name="Avatar Mute" /> |
5 | <!--TODO--> | 5 | <!--TODO--> |
6 | <menu_item_call label="去往" name="Go To" /> | 6 | <menu_item_call label="å‰å¾€" name="Go To" /> |
7 | <menu_item_call label="报告..." name="abuse"/> | 7 | <menu_item_call label="社团邀请..." name="Invite..." /> |
8 | |||
8 | <menu_item_call label="æ·»åŠ å¥½å‹..." name="Add Friend" /> | 9 | <menu_item_call label="æ·»åŠ å¥½å‹..." name="Add Friend" /> |
9 | <menu_item_call label="付款..." name="Pay..." /> | 10 | <menu_item_call label="付款..." name="Pay..." /> |
10 | <pie_menu label="更多 >" name="More >"> | 11 | <pie_menu label="更多 >" name="More >"> |
11 | <menu_item_call label="冻结..." name="Freeze..." /> | 12 | <menu_item_call label="冻结..." name="Freeze" /> |
12 | <menu_item_call label="èµ ä¸Žå片" name="Give Card" /> | 13 | <menu_item_call label="èµ ä¸Žå片" name="Give Card" /> |
13 | <menu_item_call label="社团邀请..." name="Invite..." /> | 14 | <menu_item_call label="报告..." name="abuse"/> |
14 | <menu_item_call label="驱é€..." name="Eject..." /> | 15 | <menu_item_call label="驱é€..." name="Eject" /> |
15 | <menu_item_call label="调试..." name="Debug..." /> | 16 | <menu_item_call label="调试..." name="Debug..." /> |
16 | <menu_item_call label="审查" name="Object Inspect"/> | 17 | <menu_item_call label="审查" name="Avatar Inspect"/> |
18 | <menu_item_call label="éšè—" name="Derender" /> | ||
17 | </pie_menu> | 19 | </pie_menu> |
18 | <menu_item_call label="å‘é€æ¶ˆæ¯..." name="Send IM..." /> | 20 | <menu_item_call label="å‘é€æ¶ˆæ¯..." name="Send IM..." /> |
19 | </pie_menu> | 21 | </pie_menu> |
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_hud.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_hud.xml new file mode 100644 index 0000000..773c5bd --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_hud.xml | |||
@@ -0,0 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <pie_menu name="HUD Pie"> | ||
3 | <menu_item_call label="丢下" name="Drop" /> | ||
4 | <menu_item_call label="触摸" name="Attachment Touch" /> | ||
5 | <menu_item_call label="审查" name="Object Inspect" /> | ||
6 | <menu_item_call label="å¸ä¸‹" name="Detach" /> | ||
7 | <menu_item_call label="编辑..." name="Edit..." /> | ||
8 | </pie_menu> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml index fb420b8..97241fd 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml | |||
@@ -1,11 +1,12 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <pie_menu name="Land Pie"> | 2 | <pie_menu name="Land Pie"> |
3 | <menu_item_call label="关于土地..." name="About Land..." /> | 3 | <menu_item_call label="关于土地..." name="About Land..." /> |
4 | <menu_item_call label="创建" name="Create" /> | 4 | <menu_item_call label="å»ºé€ " name="Create" /> |
5 | <menu_item_call label="去这里" name="Go Here" /> | 5 | <menu_item_call label="å‰å¾€" name="Go Here" /> |
6 | <menu_item_call label="å在这里" name="Sit Here" /> | 6 | <menu_item_call label="å在这里" name="Sit Here" /> |
7 | <menu_item_call label="è´ä¹°é€šè¡Œè¯" name="Land Buy Pass" /> | 7 | <menu_item_call label="è´ä¹°é€šè¡Œè¯" name="Land Buy Pass" /> |
8 | <menu_item_call label="编辑地形" name="Edit Terrain" /> | 8 | <menu_item_call label="编辑地形" name="Edit Terrain" /> |
9 | <menu_item_call label="è´ä¹°åœŸåœ°..." name="Land Buy" /> | 9 | <menu_item_call label="è´ä¹°åœŸåœ°..." name="Land Buy" /> |
10 | <menu_item_call label="æ·»åŠ åœ°æ ‡" name="Add Landmark"> | ||
10 | </pie_menu> | 11 | </pie_menu> |
11 | <!-- Translated for Second Life 1.19.0 (80267) --> \ No newline at end of file | 12 | <!-- Translated for Second Life 1.19.0 (80267) --> \ No newline at end of file |
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml index 0a43667..5d28932 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml | |||
@@ -1,18 +1,13 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <pie_menu name="Object Pie"> | 2 | <pie_menu name="Object Pie"> |
3 | <menu_item_call label="打开" name="Open"/> | 3 | <menu_item_call label="打开" name="Open"/> |
4 | <menu_item_call label="åˆ›é€ " name="Create"/> | 4 | <menu_item_call label="è´ä¹°..." name="Buy..."/> |
5 | <menu_item_call label="触摸" name="Object Touch"> | 5 | <menu_item_call label="触摸" name="Object Touch" /> |
6 | <on_enable userdata="触摸" name="EnableTouch"/> | 6 | <menu_item_call label="å在这里" name="Object Sit" /> |
7 | </menu_item_call> | 7 | <menu_item_call label="æ‹¿èµ°" name="Pie Object Take" /> |
8 | <menu_item_call label="å在这里" name="Object Sit"> | ||
9 | <on_enable userdata="å在这里,起身" name="EnableSitOrStand"/> | ||
10 | </menu_item_call> | ||
11 | <menu_item_call label="æ‹¿èµ°" name="Pie Object Take"> | ||
12 | <on_enable userdata="è´ä¹°,æ‹¿èµ°" name="EnableBuyOrTake"/> | ||
13 | </menu_item_call> | ||
14 | <menu_item_call label="付款..." name="Pay..."/> | 8 | <menu_item_call label="付款..." name="Pay..."/> |
15 | <pie_menu label="更多 >" name="More >"> | 9 | <pie_menu label="更多 >" name="More >"> |
10 | <menu_item_call label="å»ºé€ " name="Create"/> | ||
16 | <menu_item_call label="åˆ é™¤" name="Delete"/> | 11 | <menu_item_call label="åˆ é™¤" name="Delete"/> |
17 | <menu_item_call label="穿上" name="Wear"/> | 12 | <menu_item_call label="穿上" name="Wear"/> |
18 | <menu_item_call label="拿走副本" name="Take Copy"/> | 13 | <menu_item_call label="拿走副本" name="Take Copy"/> |
@@ -20,11 +15,16 @@ | |||
20 | <pie_menu label="装备到>" name="Object Attach"/> | 15 | <pie_menu label="装备到>" name="Object Attach"/> |
21 | <menu_item_call label="归还..." name="Return..."/> | 16 | <menu_item_call label="归还..." name="Return..."/> |
22 | <pie_menu label="更多 >" name="Rate Menu"> | 17 | <pie_menu label="更多 >" name="Rate Menu"> |
23 | <menu_item_call label="报告..." name="Report Abuse..."/> | 18 | <menu_item_call label="导出" name="Export" /> |
19 | <menu_item_call label="å±è”½" name="Object Mute" /> | ||
20 | <menu_item_call label="报告..." name="Report Abuse..." /> | ||
21 | <menu_item_call label="å‰å¾€" name="Go To" /> | ||
24 | <menu_item_call label="å±è”½" name="Object Mute"/> | 22 | <menu_item_call label="å±è”½" name="Object Mute"/> |
25 | <menu_item_call label="审查" name="Object Inspect"/> | 23 | <menu_item_call label="审查" name="Object Inspect"/> |
24 | <menu_item_call label="éšè—" name="Derender" /> | ||
25 | <menu_item_call name="链接" label="Link" /> | ||
26 | <menu_item_call name="解除链接" label="Unlink" /> | ||
26 | </pie_menu> | 27 | </pie_menu> |
27 | <menu_item_call label="è´ä¹°..." name="Buy..."/> | ||
28 | </pie_menu> | 28 | </pie_menu> |
29 | <menu_item_call label="编辑..." name="Edit..."/> | 29 | <menu_item_call label="编辑..." name="Edit..."/> |
30 | </pie_menu> | 30 | </pie_menu> |
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml index 2b79bf2..75bb349 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml | |||
@@ -1,10 +1,10 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <pie_menu name="Self Pie"> | 2 | <pie_menu name="Self Pie"> |
3 | <menu_item_call label="档案..." name="Profile..." /> | 3 | <menu_item_call label="档案..." name="Profile..." /> |
4 | <menu_item_call label="社团..." name="Groups..." /> | 4 | <menu_item_call label="社团" name="Groups" /> |
5 | <menu_item_call label="去往..." name="Go..." /> | 5 | <menu_item_call label="å‰å¾€..." name="Go..." /> |
6 | <menu_item_call label="起身" name="Stand Up" /> | 6 | <menu_item_call label="起身" name="Stand Up" /> |
7 | <menu_item_call label="朋å‹..." name="Friends..." /> | 7 | <menu_item_call label="好å‹" name="Friends" /> |
8 | <menu_item_call label="动作..." name="Gestures..." /> | 8 | <menu_item_call label="动作..." name="Gestures..." /> |
9 | <pie_menu label="脱下 >" name="Take Off >"> | 9 | <pie_menu label="脱下 >" name="Take Off >"> |
10 | <pie_menu label="æœé¥° >" name="Clothes >"> | 10 | <pie_menu label="æœé¥° >" name="Clothes >"> |
@@ -16,7 +16,9 @@ | |||
16 | <menu_item_call label="手套" name="Gloves" /> | 16 | <menu_item_call label="手套" name="Gloves" /> |
17 | <pie_menu label="更多 >" name="More >"> | 17 | <pie_menu label="更多 >" name="More >"> |
18 | <menu_item_call label="内衣" name="Self Undershirt" /> | 18 | <menu_item_call label="内衣" name="Self Undershirt" /> |
19 | <menu_item_call label="é€æ˜Žåº¦è’™æ¿" name="Self Alpha" /> | ||
19 | <menu_item_call label="所有æœé¥°" name="All Clothes" /> | 20 | <menu_item_call label="所有æœé¥°" name="All Clothes" /> |
21 | <menu_item_call label="纹身" name="Self Tattoo" /> | ||
20 | <menu_item_call label="内裤" name="Self Underpants" /> | 22 | <menu_item_call label="内裤" name="Self Underpants" /> |
21 | </pie_menu> | 23 | </pie_menu> |
22 | <menu_item_call label="裙å" name="Skirt" /> | 24 | <menu_item_call label="裙å" name="Skirt" /> |
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_rightclick_text.xml b/linden/indra/newview/skins/default/xui/zh/menu_rightclick_text.xml index 36fa667..7282c5e 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_rightclick_text.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_rightclick_text.xml | |||
@@ -1,116 +1,30 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | 2 | <menu name="Text Edit Menu"> | |
3 | <menu drop_shadow="true" | 3 | <menu_item_call label="剪切" name="Cut Text" /> |
4 | mouse_opaque="false" name="Text Edit Menu" opaque="true"> | 4 | <menu_item_call label="å¤åˆ¶" name="Copy Text" /> |
5 | <menu_item_call label="Cut" mouse_opaque="true" | 5 | <menu_item_call label="粘贴" name="Paste Text" /> |
6 | name="Cut Text"> | 6 | <menu_item_call label="åˆ é™¤" name="Delete Text" /> |
7 | <on_click function="textfield_cut" userdata="about" /> | 7 | <menu_item_call label="全选" name="Select All Text" /> |
8 | <on_enable function="textfield_cut_enable" /> | 8 | <menu name="Translation Options" label="翻译为..."> |
9 | </menu_item_call> | 9 | <!-- |
10 | <menu_item_call label="Copy" mouse_opaque="true" | 10 | <menu_item_call label="英è¯" name="Translate Text" /> |
11 | name="Copy Text" > | 11 | <menu_item_call label="丹麦è¯" name="Translate Text" /> |
12 | <on_click function="textfield_copy" userdata="" /> | 12 | <menu_item_call label="å¾·è¯" name="Translate Text" /> |
13 | <on_enable function="textfield_copy_enable" /> | 13 | <menu_item_call label="西ç牙è¯" name="Translate Text" /> |
14 | </menu_item_call> | 14 | <menu_item_call label="法è¯" name="Translate Text" /> |
15 | <menu_item_call label="Paste" mouse_opaque="true" | 15 | <menu_item_call label="æ„大利è¯" name="Translate Text" /> |
16 | name="Paste Text" > | 16 | <menu_item_call label="åŒˆç‰™åˆ©è¯ " name="Translate Text" /> |
17 | <on_click function="textfield_paste" userdata="" /> | 17 | <menu_item_call label="è·å…°è¯" name="Translate Text" /> |
18 | <on_enable function="textfield_paste_enable" /> | 18 | <menu_item_call label="波兰è¯" name="Translate Text" /> |
19 | </menu_item_call> | 19 | <menu_item_call label="è‘¡è„牙è¯" name="Translate Text" /> |
20 | <menu_item_call label="Delete" mouse_opaque="true" | 20 | <menu_item_call label="ä¿„è¯" name="Translate Text" /> |
21 | name="Delete Text" > | 21 | <menu_item_call label="土耳其è¯" name="Translate Text" /> |
22 | <on_click function="textfield_delete" userdata="" /> | 22 | <menu_item_call label="乌克兰è¯" name="Translate Text" /> |
23 | <on_enable function="textfield_delete_enable" /> | 23 | <menu_item_call label="ä¸æ–‡" name="Translate Text" /> |
24 | </menu_item_call> | 24 | <menu_item_call label="æ—¥è¯" name="Translate Text" /> |
25 | <menu_item_separator /> | 25 | <menu_item_call label="韩è¯/æœé²œè¯" name="Translate Text" /> |
26 | <menu_item_call label="Select All" mouse_opaque="true" | 26 | --> |
27 | name="Select All Text" > | 27 | </menu> |
28 | <on_click function="textfield_selectall" userdata="" /> | ||
29 | <on_enable function="textfield_selectall_enable" /> | ||
30 | </menu_item_call> | ||
31 | <menu_item_separator name="Translate" /> | ||
32 | <menu drop_shadow="true" | ||
33 | mouse_opaque="false" name="Translation Options" | ||
34 | bottom_delta="0" label="Translate To..." opaque="true" > | ||
35 | <menu_item_call label="English" mouse_opaque="true" | ||
36 | name="Translate Text" > | ||
37 | <on_click function="textfield_translate" translate="true" userdata="en" /> | ||
38 | <on_enable function="textfield_translate_enable" /> | ||
39 | </menu_item_call> | ||
40 | <menu_item_call label="Danish" mouse_opaque="true" | ||
41 | name="Translate Text" > | ||
42 | <on_click function="textfield_translate" translate="true" userdata="da" /> | ||
43 | <on_enable function="textfield_translate_enable" /> | ||
44 | </menu_item_call> | ||
45 | <menu_item_call label="Deutsch (German)" mouse_opaque="true" | ||
46 | name="Translate Text" > | ||
47 | <on_click function="textfield_translate" translate="true" userdata="de" /> | ||
48 | <on_enable function="textfield_translate_enable" /> | ||
49 | </menu_item_call> | ||
50 | <menu_item_call label="Spanish" mouse_opaque="true" | ||
51 | name="Translate Text" > | ||
52 | <on_click function="textfield_translate" translate="true" userdata="es" /> | ||
53 | <on_enable function="textfield_translate_enable" /> | ||
54 | </menu_item_call> | ||
55 | <menu_item_call label="French" mouse_opaque="true" | ||
56 | name="Translate Text" > | ||
57 | <on_click function="textfield_translate" translate="true" userdata="fr" /> | ||
58 | <on_enable function="textfield_translate_enable" /> | ||
59 | </menu_item_call> | ||
60 | <menu_item_call label="Italian" mouse_opaque="true" | ||
61 | name="Translate Text" > | ||
62 | <on_click function="textfield_translate" translate="true" userdata="it" /> | ||
63 | <on_enable function="textfield_translate_enable" /> | ||
64 | </menu_item_call> | ||
65 | <menu_item_call label="Hungarian" mouse_opaque="true" | ||
66 | name="Translate Text" > | ||
67 | <on_click function="textfield_translate" translate="true" userdata="hu" /> | ||
68 | <on_enable function="textfield_translate_enable" /> | ||
69 | </menu_item_call> | ||
70 | <menu_item_call label="Dutch" mouse_opaque="true" | ||
71 | name="Translate Text" > | ||
72 | <on_click function="textfield_translate" translate="true" userdata="nl" /> | ||
73 | <on_enable function="textfield_translate_enable" /> | ||
74 | </menu_item_call> | ||
75 | <menu_item_call label="Polish" mouse_opaque="true" | ||
76 | name="Translate Text" > | ||
77 | <on_click function="textfield_translate" translate="true" userdata="pl" /> | ||
78 | <on_enable function="textfield_translate_enable" /> | ||
79 | </menu_item_call> | ||
80 | <menu_item_call label="Portugese" mouse_opaque="true" | ||
81 | name="Translate Text" > | ||
82 | <on_click function="textfield_translate" translate="true" userdata="pt" /> | ||
83 | <on_enable function="textfield_translate_enable" /> | ||
84 | </menu_item_call> | ||
85 | <menu_item_call label="Russian" mouse_opaque="true" | ||
86 | name="Translate Text" > | ||
87 | <on_click function="textfield_translate" translate="true" userdata="ru" /> | ||
88 | <on_enable function="textfield_translate_enable" /> | ||
89 | </menu_item_call> | ||
90 | <menu_item_call label="Turkish" mouse_opaque="true" | ||
91 | name="Translate Text" > | ||
92 | <on_click function="textfield_translate" translate="true" userdata="tr" /> | ||
93 | <on_enable function="textfield_translate_enable" /> | ||
94 | </menu_item_call> | ||
95 | <menu_item_call label="Ukrainian" mouse_opaque="true" | ||
96 | name="Translate Text" > | ||
97 | <on_click function="textfield_translate" translate="true" userdata="uk" /> | ||
98 | <on_enable function="textfield_translate_enable" /> | ||
99 | </menu_item_call> | ||
100 | <menu_item_call label="Chinese" mouse_opaque="true" | ||
101 | name="Translate Text" > | ||
102 | <on_click function="textfield_translate" translate="true" userdata="zh" /> | ||
103 | <on_enable function="textfield_translate_enable" /> | ||
104 | </menu_item_call> | ||
105 | <menu_item_call label="Japanese" mouse_opaque="true" | ||
106 | name="Translate Text" > | ||
107 | <on_click function="textfield_translate" translate="true" userdata="ja" /> | ||
108 | <on_enable function="textfield_translate_enable" /> | ||
109 | </menu_item_call> | ||
110 | <menu_item_call label="Korean" mouse_opaque="true" | ||
111 | name="Translate Text" > | ||
112 | <on_click function="textfield_translate" translate="true" userdata="ko" /> | ||
113 | <on_enable function="textfield_translate_enable" /> | ||
114 | </menu_item_call> | ||
115 | </menu> | ||
116 | </menu> | 28 | </menu> |
29 | |||
30 | |||
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_viewer.xml b/linden/indra/newview/skins/default/xui/zh/menu_viewer.xml index 0a2ea1b..b18bbde 100644 --- a/linden/indra/newview/skins/default/xui/zh/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/zh/menu_viewer.xml | |||
@@ -2,15 +2,19 @@ | |||
2 | <menu_bar name="Main Menu"> | 2 | <menu_bar name="Main Menu"> |
3 | <menu label="文件" name="File"> | 3 | <menu label="文件" name="File"> |
4 | <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/> | 4 | <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/> |
5 | <menu label="ä¸Šä¼ " name="upload"> | 5 | <menu label="ä¸Šä¼ " name="Upload"> |
6 | <menu_item_call label="图åƒï¼ˆL$[COST])..." name="Upload Image"/> | 6 | <menu_item_call label="ä¸Šä¼ å›¾åƒ ([UPLOADFEE])..." name="Upload Image"/> |
7 | <menu_item_call label="声音(L$[COST])..." name="Upload Sound"/> | 7 | <menu_item_call label="ä¸Šä¼ å£°éŸ³ ([UPLOADFEE])..." name="Upload Sound"/> |
8 | <menu_item_call label="动画(L$[COST])..." name="Upload Animation"/> | 8 | <menu_item_call label="ä¸Šä¼ åŠ¨ç”» ([UPLOADFEE])..." name="Upload Animation"/> |
9 | <menu_item_call label="大宗(æ¯ä»½éœ€ä»˜L$[COST])..." name="Bulk Upload"/> | 9 | <menu_item_call label="批é‡ä¸Šä¼ (æ¯ä¸ªæ–‡ä»¶éœ€ [UPLOADFEE])..." name="Bulk Upload"/> |
10 | <menu_item_separator label="-----------" name="separator"/> | ||
11 | <menu_item_call label="设置默认æƒé™..." name="perm prefs"/> | 10 | <menu_item_call label="设置默认æƒé™..." name="perm prefs"/> |
12 | </menu> | 11 | </menu> |
13 | <menu_item_separator label="-----------" name="separator"/> | 12 | <menu_item_call label="导入物体..." name="Import" /> |
13 | <menu_item_call label="å¯¼å…¥å¹¶ä¸Šä¼ ... (æ¯ä¸ªæè´¨ [UPLOADFEE])" name="ImportUpload" /> | ||
14 | <menu_item_call label="导出所选物体..." name="Export" /> | ||
15 | <menu_item_call | ||
16 | name="Minimize All Windows" | ||
17 | label="最å°åŒ–所有窗å£" /> | ||
14 | <menu_item_call label="å…³é—窗å£" name="Close Window"/> | 18 | <menu_item_call label="å…³é—窗å£" name="Close Window"/> |
15 | <menu_item_call label="å…³é—所有窗å£" name="Close All Windows"/> | 19 | <menu_item_call label="å…³é—所有窗å£" name="Close All Windows"/> |
16 | <menu_item_separator label="-----------" name="separator2"/> | 20 | <menu_item_separator label="-----------" name="separator2"/> |
@@ -49,15 +53,20 @@ | |||
49 | <menu_item_call label="内衣" name="Menu Undershirt"/> | 53 | <menu_item_call label="内衣" name="Menu Undershirt"/> |
50 | <menu_item_call label="内裤" name="Menu Underpants"/> | 54 | <menu_item_call label="内裤" name="Menu Underpants"/> |
51 | <menu_item_call label="裙å" name="Skirt"/> | 55 | <menu_item_call label="裙å" name="Skirt"/> |
56 | <menu_item_call label="纹身" name="Tattoo" /> | ||
57 | <menu_item_call label="é€æ˜Žåº¦è’™æ¿" name="Alpha" /> | ||
52 | <menu_item_call label="所有æœé¥°" name="All Clothes"/> | 58 | <menu_item_call label="所有æœé¥°" name="All Clothes"/> |
53 | </menu> | 59 | </menu> |
54 | <menu_item_separator label="-----------" name="separator6"/> | 60 | <menu_item_separator label="-----------" name="separator6"/> |
55 | <menu_item_call label="动作..." name="Gestures..."/> | 61 | <menu_item_call label="动作..." name="Gestures"/> |
56 | <menu_item_call label="档案..." name="Profile..."/> | 62 | <menu_item_call label="档案..." name="Profile..."/> |
57 | <menu_item_call label="外观..." name="Appearance..."/> | 63 | <menu_item_call label="外观..." name="Appearance..."/> |
58 | <menu_item_separator label="-----------" name="separator7"/> | 64 | <menu_item_call label="显示å称..." name="Display Name..." /> |
59 | <menu_item_check label="朋å‹..." name="Friends..."/> | 65 | <menu_item_call label="刷新外观" name="Refresh Appearance" /> |
60 | <menu_item_call label="社团..." name="Groups..."/> | 66 | <menu_item_separator label="-----------" name="separator7" /> |
67 | <menu_item_check label="好å‹..." name="Friends"/> | ||
68 | <menu_item_call label="社团..." name="Groups"/> | ||
69 | <menu_item_check label="媒体过滤" name="Media Filter" /> | ||
61 | <menu_item_separator label="-----------" name="separator8"/> | 70 | <menu_item_separator label="-----------" name="separator8"/> |
62 | <menu_item_call label="å‚数设置..." name="Preferences..."/> | 71 | <menu_item_call label="å‚数设置..." name="Preferences..."/> |
63 | </menu> | 72 | </menu> |
@@ -69,17 +78,20 @@ | |||
69 | <menu_item_call label="é‡æ–°è®¾ç½®è§†è§’" name="Reset View"/> | 78 | <menu_item_call label="é‡æ–°è®¾ç½®è§†è§’" name="Reset View"/> |
70 | <menu_item_call label="查看最åŽä¸€æ¬¡èŠå¤©è€…" name="Look at Last Chatter"/> | 79 | <menu_item_call label="查看最åŽä¸€æ¬¡èŠå¤©è€…" name="Look at Last Chatter"/> |
71 | <menu_item_separator label="-----------" name="separator"/> | 80 | <menu_item_separator label="-----------" name="separator"/> |
81 | <menu_item_check label="网络æµè§ˆå™¨" name="Web Browser" /> | ||
72 | <menu_item_check label="工具æ " name="Toolbar"/> | 82 | <menu_item_check label="工具æ " name="Toolbar"/> |
73 | <menu_item_check label="èŠå¤©è®°å½•" name="Chat History"/> | 83 | <menu_item_check label="èŠå¤©è®°å½•" name="Chat History"/> |
74 | <menu_item_check label="å³æ—¶æ¶ˆæ¯" name="Instant Message"/> | 84 | <menu_item_check label="å³æ—¶æ¶ˆæ¯" name="Instant Message"/> |
75 | <menu_item_check label="库å˜" name="Inventory"/> | 85 | <menu_item_check label="库å˜" name="Inventory"/> |
76 | <menu_item_check label="活跃的说è¯äºº" name="Active Speakers"/> | 86 | <menu_item_check label="活跃的说è¯äºº" name="Active Speakers"/> |
77 | <menu_item_check label="å±è”½åå•" name="Mute List"/> | 87 | <menu_item_check label="å±è”½åå•" name="Mute List"/> |
88 | <menu_item_check label="瞬间移动历å²" name="Teleport History" /> | ||
78 | <menu_item_separator label="-----------" name="separator2"/> | 89 | <menu_item_separator label="-----------" name="separator2"/> |
79 | <menu_item_check label="æ‘„åƒå¤´æŽ§åˆ¶" name="Camera Controls"/> | 90 | <menu_item_check label="æ‘„åƒå¤´æŽ§åˆ¶" name="Camera Controls"/> |
80 | <menu_item_check label="移动控制" name="Movement Controls"/> | 91 | <menu_item_check label="移动控制" name="Movement Controls"/> |
81 | <menu_item_check label="世界地图" name="World Map"/> | 92 | <menu_item_check label="世界地图" name="World Map"/> |
82 | <menu_item_check label="è¿·ä½ åœ°å›¾" name="Mini-Map"/> | 93 | <menu_item_check label="è¿·ä½ åœ°å›¾" name="Mini-Map"/> |
94 | <menu_item_check label="动画覆盖" name="AO" /> | ||
83 | <menu_item_separator label="-----------" name="separator3"/> | 95 | <menu_item_separator label="-----------" name="separator3"/> |
84 | <menu_item_check label="统计æ¡" name="Statistics Bar"/> | 96 | <menu_item_check label="统计æ¡" name="Statistics Bar"/> |
85 | <menu_item_check label="地å—边线" name="Property Lines"/> | 97 | <menu_item_check label="地å—边线" name="Property Lines"/> |
@@ -97,11 +109,14 @@ | |||
97 | <menu_item_check label="éšè—ç²’å" name="Hide Particles"/> | 109 | <menu_item_check label="éšè—ç²’å" name="Hide Particles"/> |
98 | <menu_item_check label="显示界é¢é™„件" name="Show HUD Attachments"/> | 110 | <menu_item_check label="显示界é¢é™„件" name="Show HUD Attachments"/> |
99 | <menu_item_separator label="-----------" name="separator5"/> | 111 | <menu_item_separator label="-----------" name="separator5"/> |
100 | <menu_item_call label="缩å°" name="Zoom In"/> | ||
101 | <menu_item_call label="默认缩放" name="Zoom Default"/> | ||
102 | <menu_item_call label="放大" name="Zoom Out"/> | ||
103 | <menu_item_separator label="-----------" name="separator6"/> | 112 | <menu_item_separator label="-----------" name="separator6"/> |
104 | <menu_item_call label="切æ¢å…¨å±çŠ¶æ€" name="Toggle Fullscreen"/> | 113 | <menu_item_call label="切æ¢å…¨å±çŠ¶æ€" name="Toggle Fullscreen"/> |
114 | <menu label="缩放" name="Zoom Level"> | ||
115 | <menu_item_call label="缩å°" name="Zoom In"/> | ||
116 | <menu_item_call label="默认缩放" name="Zoom Default"/> | ||
117 | <menu_item_call label="放大" name="Zoom Out"/> | ||
118 | </menu> | ||
119 | <menu_item_check name="Toggle Advanced Menu" label="高级èœå•"/> | ||
105 | <menu_item_call label="设置用户界é¢å°ºå¯¸ä¸ºé»˜è®¤å€¼" name="Set UI Size to Default"/> | 120 | <menu_item_call label="设置用户界é¢å°ºå¯¸ä¸ºé»˜è®¤å€¼" name="Set UI Size to Default"/> |
106 | </menu> | 121 | </menu> |
107 | <menu label="世界" name="World"> | 122 | <menu label="世界" name="World"> |
@@ -115,18 +130,19 @@ | |||
115 | <menu_item_call label="瞬间移动回家" name="Teleport Home"/> | 130 | <menu_item_call label="瞬间移动回家" name="Teleport Home"/> |
116 | <menu_item_separator label="-----------" name="separator3"/> | 131 | <menu_item_separator label="-----------" name="separator3"/> |
117 | <menu_item_call label="设æˆç¦»å¼€çŠ¶æ€" name="Set Away"/> | 132 | <menu_item_call label="设æˆç¦»å¼€çŠ¶æ€" name="Set Away"/> |
118 | <menu_item_call label="设æˆç¹å¿™çŠ¶æ€" name="Set Busy"/> | 133 | <menu_item_call label="设æˆå¿™ç¢ŒçŠ¶æ€" name="Set Busy"/> |
134 | <menu_item_check label="自动回å¤å³æ—¶æ¶ˆæ¯" name="Auto-Respond to IMs" /> | ||
119 | <menu_item_call label="åœæ¢åŒ–身动画" name="Stop Animating My Avatar"/> | 135 | <menu_item_call label="åœæ¢åŒ–身动画" name="Stop Animating My Avatar"/> |
120 | <menu_item_call label="释放按键" name="Release Keys"/> | 136 | <menu_item_call label="释放按键" name="Release Keys"/> |
121 | <menu_item_separator label="-----------" name="separator4"/> | 137 | <menu_item_separator label="-----------" name="separator4"/> |
122 | <menu_item_call label="å¸æˆ·åŽ†å²çºªå½•..." name="Account History..."/> | 138 | <menu_item_call label="å¸æˆ·åŽ†å²çºªå½•..." name="Account History..."/> |
123 | <menu_item_call label="管ç†æˆ‘çš„å¸æˆ·..." name="Manage My Account..."/> | 139 | <menu_item_call label="管ç†æˆ‘çš„å¸æˆ·..." name="Manage My Account..."/> |
124 | <menu_item_call label="è´ä¹° L$..." name="Buy and Sell L$..."/> | 140 | <menu_item_call label="è´ä¹° [CURRENCY]..." name="Buy and Sell L$..."/> |
125 | <menu_item_separator label="-----------" name="separator5"/> | 141 | <menu_item_separator label="-----------" name="separator5"/> |
126 | <menu_item_call label="我的土地..." name="My Land..."/> | 142 | <menu_item_call label="我的土地..." name="My Land"/> |
127 | <menu_item_call label="关于土地..." name="About Land..."/> | 143 | <menu_item_call label="关于土地..." name="About Land"/> |
128 | <menu_item_call label="è´ä¹°åœŸåœ°..." name="Buy Land..."/> | 144 | <menu_item_call label="è´ä¹°åœŸåœ°..." name="Buy Land..."/> |
129 | <menu_item_call label="地区/地产..." name="Region/Estate..."/> | 145 | <menu_item_call label="地区/地产..." name="Region/Estate"/> |
130 | <menu_item_separator label="-----------" name="separator6"/> | 146 | <menu_item_separator label="-----------" name="separator6"/> |
131 | <menu label="环境设置" name="Environment Settings"> | 147 | <menu label="环境设置" name="Environment Settings"> |
132 | <menu_item_call label="日出" name="Sunrise"/> | 148 | <menu_item_call label="日出" name="Sunrise"/> |
@@ -146,28 +162,34 @@ | |||
146 | <menu_item_call label="土地" name="Land"/> | 162 | <menu_item_call label="土地" name="Land"/> |
147 | </menu> | 163 | </menu> |
148 | <menu_item_separator label="-----------" name="separator"/> | 164 | <menu_item_separator label="-----------" name="separator"/> |
149 | <menu_item_check label="åªé€‰æ‹©æˆ‘的物体" name="Select Only My Objects"/> | 165 | <menu label="选择选项" name="Selection Options"> |
150 | <menu_item_check label="åªé€‰æ‹©å¯ç§»åŠ¨çš„物体" name="Select Only Movable Objects"/> | 166 | <menu_item_check label="åªé€‰æ‹©æˆ‘的物体" name="Select Only My Objects"/> |
151 | <menu_item_check label="选ä¸åŒ…围区域" name="Select By Surrounding"/> | 167 | <menu_item_check label="åªé€‰æ‹©å¯ç§»åŠ¨çš„物体" name="Select Only Movable Objects"/> |
152 | <menu_item_check label="显示éšè—的选ä¸é¡¹" name="Show Hidden Selection"/> | 168 | <menu_item_check label="åªé€‰æ‹©å¯å¤åˆ¶çš„物体" name="Select Only Copyable Objects" /> |
153 | <menu_item_check label="显示选择项的光照åŠå¾„" name="Show Light Radius for Selection"/> | 169 | <menu_item_check label="包围选择" name="Select By Surrounding" /> |
154 | <menu_item_check label="显示选择导引" name="Show Selection Beam"/> | 170 | <menu_item_check label="显示éšè—的选ä¸é¡¹" name="Show Hidden Selection"/> |
171 | <menu_item_check label="显示选ä¸é¡¹è½®å»“" name="Show Selection Outlines" /> | ||
172 | <menu_item_check label="显示选ä¸é¡¹çš„光照åŠå¾„" name="Show Light Radius for Selection"/> | ||
173 | <menu_item_check label="显示选择导引" name="Show Selection Beam"/> | ||
174 | </menu> | ||
175 | |||
155 | <menu_item_separator label="-----------" name="separator2"/> | 176 | <menu_item_separator label="-----------" name="separator2"/> |
156 | <menu_item_check label="对é½åˆ°ç½‘æ ¼" name="Snap to Grid"/> | 177 | <menu_item_check label="对é½åˆ°ç½‘æ ¼" name="Snap to Grid"/> |
157 | <menu_item_call label="在 XY é¢ä¸Šå¯¹é½ç½‘æ ¼" name="Snap Object XY to Grid"/> | 178 | <menu_item_call label="在 XY é¢ä¸Šå¯¹é½ç½‘æ ¼" name="Snap Object XY to Grid"/> |
158 | <menu_item_call label="ä»¥é€‰é¡¹ä½œä¸ºç½‘æ ¼" name="Use Selection for Grid"/> | 179 | <menu_item_call label="ä»¥é€‰é¡¹ä½œä¸ºç½‘æ ¼" name="Use Selection for Grid"/> |
159 | <menu_item_call label="ç½‘æ ¼é€‰é¡¹..." name="Grid Options..."/> | 180 | <menu_item_call label="é«˜çº§å»ºé€ é€‰é¡¹..." name="Advanced Build Options..."/> |
160 | <menu_item_separator label="-----------" name="separator3"/> | 181 | <menu_item_separator label="-----------" name="separator3"/> |
161 | <menu_item_check label="编辑链接部件" name="Edit Linked Parts" shortcut=""/> | 182 | <menu_item_check label="编辑链接部件" name="Edit Linked Parts" /> |
183 | <menu_item_check label="选择链接部件" name="Select Linked Parts" /> | ||
162 | <menu_item_call label="链接" name="Link"/> | 184 | <menu_item_call label="链接" name="Link"/> |
163 | <menu_item_call label="解除链接" name="Unlink"/> | 185 | <menu_item_call label="解除链接" name="Unlink"/> |
164 | <menu_item_separator label="-----------" name="separator4"/> | 186 | <menu_item_separator label="-----------" name="separator4"/> |
165 | <menu_item_call label="èšç„¦äºŽæ‰€é€‰ç‰©ä½“" name="Focus on Selection"/> | 187 | <menu_item_call label="èšç„¦äºŽæ‰€é€‰ç‰©ä½“" name="Focus on Selection"/> |
166 | <menu_item_call label="缩放到所选物体" name="Zoom to Selection"/> | 188 | <menu_item_call label="缩放到所选物体" name="Zoom to Selection"/> |
167 | <menu_item_call label="è´ä¹°ç‰©ä½“" name="Menu Object Take"> | 189 | <menu_item_call label="创建副本" name="Duplicate" /> |
168 | <on_enable userdata="è´ä¹°,æ‹¿èµ°" name="EnableBuyOrTake"/> | 190 | <menu_item_call label="è´ä¹°ç‰©ä½“" name="Menu Object Take" /> |
169 | </menu_item_call> | ||
170 | <menu_item_call label="拿走副本" name="Take Copy"/> | 191 | <menu_item_call label="拿走副本" name="Take Copy"/> |
192 | <menu_item_call label="归还物体" name="Return..." /> | ||
171 | <menu_item_call label="将物体å˜å›žè‡³ç‰©ä½“内容" name="Save Object Back to Object Contents"/> | 193 | <menu_item_call label="将物体å˜å›žè‡³ç‰©ä½“内容" name="Save Object Back to Object Contents"/> |
172 | <menu_item_separator label="-----------" name="separator6"/> | 194 | <menu_item_separator label="-----------" name="separator6"/> |
173 | <menu_item_call label="显示脚本è¦å‘Š/错误窗å£" name="Show Script Warning/Error Window"/> | 195 | <menu_item_call label="显示脚本è¦å‘Š/错误窗å£" name="Show Script Warning/Error Window"/> |
@@ -178,17 +200,30 @@ | |||
178 | <menu_item_call label="é‡ç½®æ‰€é€‰é¡¹ä¸è„šæœ¬" name="Reset Scripts in Selection"/> | 200 | <menu_item_call label="é‡ç½®æ‰€é€‰é¡¹ä¸è„šæœ¬" name="Reset Scripts in Selection"/> |
179 | <menu_item_call label="设置所选项ä¸è„šæœ¬è¿è¡Œ" name="Set Scripts to Running in Selection"/> | 201 | <menu_item_call label="设置所选项ä¸è„šæœ¬è¿è¡Œ" name="Set Scripts to Running in Selection"/> |
180 | <menu_item_call label="设置所选项ä¸è„šæœ¬ä¸è¿è¡Œ" name="Set Scripts to Not Running in Selection"/> | 202 | <menu_item_call label="设置所选项ä¸è„šæœ¬ä¸è¿è¡Œ" name="Set Scripts to Not Running in Selection"/> |
203 | <menu_item_call | ||
204 | name="Set permissions on selected task inventory" | ||
205 | label="批é‡è®¾ç½®æƒé™"/> | ||
181 | </menu> | 206 | </menu> |
182 | <menu label="帮助" name="Help"> | 207 | <menu label="帮助" name="Help"> |
183 | <menu_item_call label="第二人生帮助" name="Second Life Help"/> | 208 | <menu_item_call label="第二人生帮助" name="Second Life Help"/> |
184 | <menu_item_call label="教程" name="Tutorial"/> | 209 | <menu_item_call label="教程" name="Tutorial"/> |
185 | <menu_item_separator label="-----------" name="separator"/> | 210 | <menu_item_separator label="-----------" name="separator"/> |
186 | <menu_item_call label="官方林登åšå®¢..." name="Official Linden Blog..."/> | 211 | <menu_item_call label="Imprudence 网络日志" name="Imprudence Blog" /> |
212 | <menu_item_call label="Imprudence 论å›" name="Imprudence Forums" /> | ||
213 | <menu_item_call label="脚本å‚考首页" name="Scripting Portal"> | ||
214 | <!-- | ||
215 | <on_click | ||
216 | function="PromptShowURL" | ||
217 | name="ScriptingPortal_url" | ||
218 | userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal/zh-Hans" /> | ||
219 | --> | ||
220 | </menu_item_call> | ||
221 | |||
187 | <menu_item_separator label="-----------" name="separator2"/> | 222 | <menu_item_separator label="-----------" name="separator2"/> |
188 | <menu_item_call label="脚本 Wiki 门户..." name="Scripting Portal..."/> | 223 | <menu_item_call label="脚本 Wiki 门户..." name="Scripting Portal..."/> |
189 | <menu_item_separator label="-----------" name="separator3"/> | 224 | <menu_item_separator label="-----------" name="separator3"/> |
190 | <menu_item_call label="报告ä¸è‰¯è¡Œä¸º..." name="Report Abuse..."/> | 225 | <menu_item_call label="报告ä¸è‰¯è¡Œä¸º..." name="Report Abuse..."/> |
191 | <menu_item_call label="é¢ ç°¸ï¼ŒæŽ¨åŠ¨å’Œç¢°æ’ž..." name="Bumps, Pushes &amp; Hits..."/> | 226 | <menu_item_call label="é¢ ç°¸ï¼ŒæŽ¨åŠ¨å’Œç¢°æ’ž..." name="Bumps, Pushes & Hits"/> |
192 | <menu_item_call label="延迟计é‡å™¨" name="Lag Meter"/> | 227 | <menu_item_call label="延迟计é‡å™¨" name="Lag Meter"/> |
193 | <menu create_jump_keys="true" drop_shadow="true" label="错误汇报" name="Bug Reporting" opaque="true" tear_off="true"> | 228 | <menu create_jump_keys="true" drop_shadow="true" label="错误汇报" name="Bug Reporting" opaque="true" tear_off="true"> |
194 | <menu_item_call label="公开 Issue Tracker..." name="Public Issue Tracker..."/> | 229 | <menu_item_call label="公开 Issue Tracker..." name="Public Issue Tracker..."/> |
@@ -199,6 +234,324 @@ | |||
199 | <menu_item_call label="è´¨é‡ä¿è¯ Wiki..." name="QA Wiki..."/> | 234 | <menu_item_call label="è´¨é‡ä¿è¯ Wiki..." name="QA Wiki..."/> |
200 | <menu_item_call label="汇报错误..." name="Report Bug..."/> | 235 | <menu_item_call label="汇报错误..." name="Report Bug..."/> |
201 | </menu> | 236 | </menu> |
202 | <menu_item_call label="关于第二人生 meta-impy..." name="About meta-impy..."/> | ||
203 | </menu> | 237 | </menu> |
238 | |||
239 | <menu label="高级" name="Advanced"> | ||
240 | <!-- CONSOLES --> | ||
241 | <menu name="Consoles" label="控制å°"> | ||
242 | <menu_item_check name="Frame Console" label="帧控制å°" /> | ||
243 | <menu_item_check name="Texture Console" label="æ质控制å°" /> | ||
244 | <menu_item_check name="Debug Console" label="调试信æ¯" /> | ||
245 | <menu_item_check name="Fast Timers" label="快速计时器" /> | ||
246 | <!-- Requires compiled-in support, I think? | ||
247 | <menu_item_check name="Memory" label="Memory" | ||
248 | shortcut="control|shift|0"> | ||
249 | <on_click function="Advanced.ToggleConsole" | ||
250 | userdata="memory" /> | ||
251 | <on_check function="Advanced.CheckConsole" | ||
252 | userdata="memory" /> | ||
253 | </menu_item_check> | ||
254 | --> | ||
255 | <menu_item_call name="Notifications Console" label="æ示控制å°" /> | ||
256 | <menu_item_call name="Message Log" label="消æ¯æ—¥å¿—" /> | ||
257 | <menu_item_call name="Message Builder" label="消æ¯å»ºç‘器" /> | ||
258 | <menu_item_call name="Region Info to Debug Console" label="区域信æ¯åˆ°è°ƒè¯•æŽ§åˆ¶å°" /> | ||
259 | <menu_item_call name="Group Info to Debug Console" label="社团信æ¯åˆ°è°ƒè¯•æŽ§åˆ¶å°" /> | ||
260 | <menu_item_call name="Capabilities Info to Debug Console" label="Capabilities ä¿¡æ¯åˆ°è°ƒè¯•æŽ§åˆ¶å°" /> | ||
261 | </menu> | ||
262 | <menu_item_call name="Reload personal setting overrides" label="é‡æ–°è½½å…¥ä¸ªäººè®¾ç½®" /> | ||
263 | <!-- HUD INFO --> | ||
264 | <menu name="HUD Info" label="HUD ä¿¡æ¯"> | ||
265 | <menu_item_check name="Velocity" label="速度" /> | ||
266 | <menu_item_check name="Camera" label="æ‘„åƒæœº" /> | ||
267 | <menu_item_check name="Wind" label="风" /> | ||
268 | <!--Field of View--> | ||
269 | <menu_item_check name="FOV" label="FOV" /> | ||
270 | </menu> | ||
271 | <menu_item_call label="å在地上" name="Ground Sit" /> | ||
272 | <menu_item_call name="Teleport to Ground" label="瞬间移动到地é¢" /> | ||
273 | <menu_item_check label="幻影化身" name="Phantom" /> | ||
274 | <menu_item_check label="动画列表" name="Animation List" /> | ||
275 | <menu_item_check label="全功能雷达" name="Full Radar" /> | ||
276 | <menu_item_check label="区域物体æœç´¢" name="Area Object Search" /> | ||
277 | <menu_item_check label="资产æµè§ˆå™¨" name="asset browser" /> | ||
278 | <!-- RENDERING --> | ||
279 | <menu name="Rendering" label="渲染"> | ||
280 | <!-- TYPES --> | ||
281 | <menu name="Types" label="类型"> | ||
282 | <menu_item_check name="Simple" label="简å•" /> | ||
283 | <menu_item_check name="Alpha" label="é€æ˜Žåº¦" /> | ||
284 | <menu_item_check name="Tree" label="æ ‘æœ¨" /> | ||
285 | <menu_item_check name="Character" label="人物" /> | ||
286 | <menu_item_check name="SurfacePatch" label="SurfacePatch" /> | ||
287 | <menu_item_check name="Sky" label="天空" /> | ||
288 | <menu_item_check name="Water" label="æ°´é¢" /> | ||
289 | <menu_item_check name="Ground" label="地é¢" /> | ||
290 | <menu_item_check name="Volume" label="体积" /> | ||
291 | <menu_item_check name="Grass" label="è‰æœ¨" /> | ||
292 | <menu_item_check name="Clouds" label="云层" /> | ||
293 | <menu_item_check name="Particles" label="ç²’å" /> | ||
294 | <menu_item_check name="Bump" label="凹凸贴图" /> | ||
295 | </menu> | ||
296 | <!-- FEATURES --> | ||
297 | <menu name="Features" label="特å¾"> | ||
298 | <menu_item_check name="UI" label="ç•Œé¢" /> | ||
299 | <menu_item_check name="Selected" label="选ä¸é¡¹" /> | ||
300 | <menu_item_check name="Highlighted" label="高亮" /> | ||
301 | <menu_item_check name="Dynamic Textures" label="动æ€æè´¨" /> | ||
302 | <menu_item_check name="Foot Shadows" label="脚阴影" /> | ||
303 | <menu_item_check name="Fog" label="雾" /> | ||
304 | <menu_item_check name="Test FRInfo" label="测试 FRInfo" /> | ||
305 | <menu_item_check name="Flexible Objects" label="活动物体" /> | ||
306 | </menu> | ||
307 | <!-- INFO DISPLAYS --> | ||
308 | <menu name="Info Displays" label="ä¿¡æ¯æ˜¾ç¤º"> | ||
309 | <menu_item_check name="Verify" label="验è¯" /> | ||
310 | <menu_item_check name="BBoxes" label="包围盒" /> | ||
311 | <menu_item_check name="Points" label="点" /> | ||
312 | <menu_item_check name="Octree" label="å…«å‰æ ‘" /> | ||
313 | <menu_item_check name="Occlusion" label="é®è”½" /> | ||
314 | <menu_item_check name="Render Batches" label="渲染批次" /> | ||
315 | <menu_item_check name="Animated Textures" label="æ质动画" /> | ||
316 | <menu_item_check name="Texture Priority" label="æ质优先级" /> | ||
317 | <menu_item_check name="Avatar Rendering Cost" label="化身渲染开销" /> | ||
318 | <menu_item_check name="Texture Area (sqrt(A))" label="æè´¨é¢ç§¯ (sqrt(A))" /> | ||
319 | <menu_item_check name="Face Area (sqrt(A))" label="表é¢é¢ç§¯ (sqrt(A))" /> | ||
320 | <menu_item_check name="Pick Render" label="选å–渲染" /> | ||
321 | <menu_item_check name="Lights" label="å…‰æº" /> | ||
322 | <menu_item_check name="Particles" label="ç²’å" /> | ||
323 | <menu_item_check name="Composition" label="Composition" /> | ||
324 | <menu_item_check name="Glow" label="å‘å…‰" /> | ||
325 | <menu_item_check name="Raycasting" label="光线投射" /> | ||
326 | <menu_item_check name="Sculpt" label="雕塑元件" /> | ||
327 | <menu_item_check name="Vectorize Perf Test" label="å‘é‡åŒ–性能测试" /> | ||
328 | </menu> | ||
329 | <!-- RENDER TESTS --> | ||
330 | <menu name="Render Tests" label="渲染测试"> | ||
331 | <menu_item_check name="Camera Offset" label="æ‘„åƒæœºå移" /> | ||
332 | <menu_item_check name="Randomize Framerate" label="éšæœºåŒ–帧率" /> | ||
333 | <menu_item_check name="Periodic Slow Frame" label="周期性å‡æ…¢å¸§" /> | ||
334 | <menu_item_check name="Frame Test" label="帧测试" /> | ||
335 | </menu> | ||
336 | <menu_item_check name="Axes" label="è½´" /> | ||
337 | <menu_item_check name="Hide Selected" label="éšè—选ä¸é¡¹" /> | ||
338 | <menu_item_check name="Tangent Basis" label="切å‘基础" /> | ||
339 | <menu_item_call name="Selected Texture Info" label="选ä¸çš„æ质信æ¯" /> | ||
340 | <menu_item_check name="Wireframe" label="线框" /> | ||
341 | <menu_item_check name="Object-Object Occlusion" label="对象对对象é®è”½" /> | ||
342 | <menu_item_check name="Debug GL" label="调试 GL" /> | ||
343 | <menu_item_check name="Debug Pipeline" label="调试æµæ°´çº¿" /> | ||
344 | <menu_item_check name="Fast Alpha" label="快速é€æ˜Žåº¦" /> | ||
345 | <menu_item_check name="Animate Trees" label="æ ‘æœ¨åŠ¨ç”»" /> | ||
346 | <menu_item_check name="Animate Textures" label="æ质动画" /> | ||
347 | <menu_item_check name="Disable Textures" label="ç¦ç”¨æè´¨" /> | ||
348 | <!-- Disabled because it doesn't seem to be used anymore. | ||
349 | <menu_item_check name="HTTP Get Textures" | ||
350 | label="HTTP Get Textures"> | ||
351 | <on_click function="ToggleControl" | ||
352 | userdata="ImagePipelineUseHTTP" /> | ||
353 | <on_check control="ImagePipelineUseHTTP" /> | ||
354 | </menu_item_check> | ||
355 | --> | ||
356 | <menu_item_check name="Run Multiple Threads" label="è¿è¡Œå¤šä¸ªçº¿ç¨‹" /> | ||
357 | <!-- Disabled because it doesn't work very well? | ||
358 | <menu_item_check name="Dynamic Reflections" | ||
359 | label="Dynamic Reflections"> | ||
360 | <on_click function="ToggleControl" | ||
361 | userdata="RenderDynamicReflections" /> | ||
362 | <on_check control="RenderDynamicReflections" /> | ||
363 | </menu_item_check> | ||
364 | --> | ||
365 | <menu_item_check name="Cheesy Beacon" label="ç»™åŠ›çš„ä¿¡æ ‡" /> | ||
366 | <menu_item_check name="Attached Lights" label="装备的光æº" /> | ||
367 | <menu_item_check name="Attached Particles" label="装备的粒åæº" /> | ||
368 | </menu> | ||
369 | <!-- WORLD --> | ||
370 | <menu name="World" label="世界"> | ||
371 | <!-- Disabled because you can't do this in Windlight. | ||
372 | <menu_item_check name="Mouse Moves Sun" | ||
373 | label="Mouse Moves Sun" | ||
374 | shortcut="control|alt|M"> | ||
375 | <on_click function="ToggleControl" userdata="MouseSun" /> | ||
376 | <on_check control="MouseSun" /> | ||
377 | </menu_item_check> | ||
378 | --> | ||
379 | <menu_item_check name="Sim Sun Override" label="模拟器太阳覆盖" /> | ||
380 | <menu_item_call name="Dump Scripted Camera" label="脚本摄åƒæœºæŽ§åˆ¶è½¬å‚¨" /> | ||
381 | <menu_item_check name="Fixed Weather" label="固定天气" /> | ||
382 | <menu_item_call name="Dump Region Object Cache" label="转储区域物体缓å˜" /> | ||
383 | </menu> | ||
384 | <!-- RLVa --> | ||
385 | <menu name="RLVa"> | ||
386 | <menu name="Debug" label="调试"> | ||
387 | <menu_item_check name="Show Debug Messages" label="显示调试信æ¯" /> | ||
388 | <menu_item_check name="Enable Legacy Naming" label="å¯ç”¨æ—§å¼å‘½å" /> | ||
389 | </menu> | ||
390 | <menu_item_check name="Enable Wear" label="å¯ç”¨ç©¿ç€" /> | ||
391 | <menu_item_check name="Hide locked layers" label="éšè—é”定的衣物层次" /> | ||
392 | <menu_item_check name="Hide locked attachments" label="éšè—é”定的附件" /> | ||
393 | <!-- | ||
394 | <menu_item_check name="Hide locked inventory" | ||
395 | label="Hide locked inventory"> | ||
396 | <on_click function="ToggleControl" | ||
397 | userdata="RLVaHideLockedInventory" /> | ||
398 | <on_check control="RLVaHideLockedInventory" /> | ||
399 | </menu_item_check> | ||
400 | --> | ||
401 | <menu_item_check name="Forbid Give to #RLV" label="ç¦æ¢ç»™ä¸Žåˆ° #RLV" /> | ||
402 | <menu_item_check name="Show Name Tags" label="显示姓åæ ‡ç¾" /> | ||
403 | <menu_item_call name="Restrictions..." label="é™åˆ¶..." /> | ||
404 | </menu> | ||
405 | <!-- UI --> | ||
406 | <menu name="UI" label="ç•Œé¢"> | ||
407 | <menu_item_check name="Use default system color picker" label="使用系统默认颜色选择器" /> | ||
408 | <menu_item_check name="Show search panel in overlay bar" label="覆盖æ ä¸æ˜¾ç¤ºæœç´¢é¢æ¿" /> | ||
409 | <menu_item_call name="Reload Balance" label="é‡æ–°è½½å…¥ [CURRENCY] ä½™é¢" /> | ||
410 | <menu_item_call name="Web Browser Test" label="网络æµè§ˆå™¨æµ‹è¯•" /> | ||
411 | <!-- | ||
412 | *TODO: Make this a proper toggle item with the "X" indicator. | ||
413 | 1. Add a "Advanced.CheckEditableUI" function in llviewermenu.cpp. | ||
414 | 2. Change this surrounding menu_item_call to a menu_item_check. | ||
415 | 3. Uncomment the "on_check" line below. | ||
416 | --> | ||
417 | <menu_item_call name="Editable UI" label="å¯ç¼–辑的用户界é¢"> | ||
418 | <!-- | ||
419 | <on_check function="Advanced.CheckEditableUI" userdata="" /> | ||
420 | --> | ||
421 | </menu_item_call> | ||
422 | <menu_item_call name="Dump SelectMgr" label="转储 SelectMgr" /> | ||
423 | <menu_item_call name="Dump Inventory" label="转储库å˜" /> | ||
424 | <menu_item_call name="Dump Focus Holder" label="转储焦点æŒæœ‰è€…" /> | ||
425 | <menu_item_call name="Print Selected Object Info" label="打å°é€‰ä¸ç‰©ä½“ä¿¡æ¯" /> | ||
426 | <menu_item_call name="Print Agent Info" label="æ‰“å° Agent ä¿¡æ¯" /> | ||
427 | <menu_item_call name="Memory Stats" label="内å˜çŠ¶æ€" /> | ||
428 | <menu_item_call name="Clear Cached Group Info" label="清除缓å˜çš„社团信æ¯" /> | ||
429 | <menu_item_check name="Debug SelectMgr" label="调试 SelectMgr" /> | ||
430 | <menu_item_check name="Debug Clicks" label="调试点击" /> | ||
431 | <menu_item_check name="Debug Views" label="调试视图" /> | ||
432 | <menu_item_check name="Show Name Tooltips" label="显示å称æ示" /> | ||
433 | <menu_item_check name="Debug Mouse Events" label="è°ƒè¯•é¼ æ ‡äº‹ä»¶" /> | ||
434 | <menu_item_check name="Debug Keys" label="调试键盘" /> | ||
435 | <menu_item_check name="Debug WindowProc" label="调试 WindowProc" /> | ||
436 | <menu_item_check name="Debug Text Editor Tips" label="调试文本编辑器æ示" /> | ||
437 | <menu_item_check name="Show Time" label="显示时间" /> | ||
438 | <menu_item_check name="Show Render Info" label="显示渲染信æ¯" /> | ||
439 | <menu_item_check name="Show Matrices" label="显示矩阵" /> | ||
440 | <menu_item_check name="Show Color Under Cursor" label="显示指针之下的颜色" /> | ||
441 | </menu> | ||
442 | <!-- XUI --> | ||
443 | <menu name="XUI"> | ||
444 | <menu_item_call name="Floater Test" label="浮动框测试" /> | ||
445 | <menu_item_call name="Font Test" label="å—体测试" /> | ||
446 | <menu_item_call name="Export Menus to XML..." label="导出èœå•åˆ° XML..." /> | ||
447 | <menu_item_call name="Edit UI..." label="编辑界é¢..." /> | ||
448 | <menu_item_call name="Load from XML..." label="从 XML 读å–..." /> | ||
449 | <menu_item_call name="Save to XML..." label="ä¿å˜åˆ° XML..." /> | ||
450 | <menu_item_check name="Show XUI Names" label="显示 XUI å称" /> | ||
451 | </menu> | ||
452 | <!-- CHARACTER --> | ||
453 | <menu name="Character" label="人物"> | ||
454 | <menu name="Grab Baked Texture" label="获å–烘烤æè´¨"> | ||
455 | <menu_item_call name="Iris" label="çž³å”" /> | ||
456 | <menu_item_call name="Head" label="头部" /> | ||
457 | <menu_item_call name="Upper Body" label="上身" /> | ||
458 | <menu_item_call name="Lower Body" label="下身" /> | ||
459 | <menu_item_call name="Skirt" label="裙å" /> | ||
460 | </menu> | ||
461 | <!-- CHARACTER TESTS --> | ||
462 | <menu name="Character Tests" label="人物测试"> | ||
463 | <menu_item_call name="Appearance To XML" label="外观到 XML" /> | ||
464 | <menu_item_call name="Toggle Character Geometry" label="切æ¢è§’è‰²å‡ ä½•" /> | ||
465 | <menu_item_call name="Test Male" label="测试男性" /> | ||
466 | <menu_item_call name="Test Female" label="测试女性" /> | ||
467 | <menu_item_call name="Toggle PG" label="测试未æˆå¹´æ¨¡å¼" /> | ||
468 | <menu_item_check name="Allow Select Avatar" label="å…许选择化身" /> | ||
469 | </menu> | ||
470 | <menu_item_check name="Enable Lip Sync (Beta)" label="å¯ç”¨å£åž‹åŒæ¥ (测试)" /> | ||
471 | <menu_item_check name="Tap-Tap-Hold To Run" label="åŒæ•²å¹¶æŒ‰ä½è·‘æ¥" /> | ||
472 | <menu_item_call name="Force Params to Default" label="强制å‚数到默认值" /> | ||
473 | <menu_item_call name="Reload Vertex Shader" label="é‡æ–°è½½å…¥é¡¶ç‚¹ç€è‰²å™¨" /> | ||
474 | <menu_item_check label="Animation Info" name="动画信æ¯" /> | ||
475 | <!-- | ||
476 | *TODO: Make this a proper toggle item with the "X" indicator. | ||
477 | 1. Add a "Advanced.CheckSlowmotionAnimation" function in | ||
478 | llviewermenu.cpp. | ||
479 | 2. Change this surrounding menu_item_call to a menu_item_check. | ||
480 | 3. Uncomment the "on_check" line below. | ||
481 | --> | ||
482 | <menu_item_call name="Slow Motion Animations" label="慢动作动画" /> | ||
483 | <menu_item_check name="Show Look At" label="æ˜¾ç¤ºè§†çº¿ç›®æ ‡" /> | ||
484 | <menu_item_check name="Show Point At" label="显示指å‘ç›®æ ‡" /> | ||
485 | <menu_item_check name="Private Look At" label="对他人éšè—è§†çº¿ç›®æ ‡" /> | ||
486 | <menu_item_check name="Private Point At" label="对他人éšè—指å‘ç›®æ ‡" /> | ||
487 | <menu_item_check name="Debug Joint Updates" label="调试关节更新" /> | ||
488 | <menu_item_check name="Disable LOD" label="ç¦ç”¨ LOD" /> | ||
489 | <menu_item_check name="Debug Character Vis" label="调试人物å¯è§æ€§" /> | ||
490 | <!-- Disabled. See DEV-14477 | ||
491 | <menu_item_check name="Show Collision Plane" | ||
492 | label="Show Collision Plane"> | ||
493 | <on_click function="Advanced.ToggleShowCollisionPlane" | ||
494 | userdata="" /> | ||
495 | <on_check function="Advanced.CheckShowCollisionPlane" | ||
496 | userdata="" /> | ||
497 | </menu_item_check> | ||
498 | --> | ||
499 | <menu_item_check name="Show Collision Skeleton" label="显示碰撞骨骼" /> | ||
500 | <menu_item_check name="Display Agent Target" label="显示 Agent ç›®æ ‡" /> | ||
501 | <menu_item_check name="Debug Rotation" label="调试旋转" /> | ||
502 | <menu_item_call name="Dump Attachments" label="打å°é™„件" /> | ||
503 | <menu_item_call label="Reload Avatar Cloud Particle" name="é‡æ–°åŠ 载化身云粒å" /> | ||
504 | </menu> | ||
505 | <!-- CRASH --> | ||
506 | <menu name="Crash" label="崩溃"> | ||
507 | <menu_item_call name="Force Bad Memory Access" label="å¼ºåˆ¶æ— æ•ˆå†…å˜è®¿é—®" /> | ||
508 | <menu_item_call name="Force LLError And Crash" label="强制 LLError 并崩溃" /> | ||
509 | <menu_item_call name="Force Infinite Loop" label="å¼ºåˆ¶æ— é™å¾ªçŽ¯" /> | ||
510 | <menu_item_call name="Force Driver Crash" label="强制驱动程åºå´©æºƒ" /> | ||
511 | <menu_item_call name="Force Disconnect Viewer" label="强制æ–开连接" /> | ||
512 | <menu_item_check name="Output Debug Minidump" label="输出调试å°è½¬å‚¨" /> | ||
513 | </menu> | ||
514 | <!-- NETWORK --> | ||
515 | <menu name="Network" label="网络"> | ||
516 | <menu_item_call name="Enable Message Log" label="å¯ç”¨æ¶ˆæ¯æ—¥å¿—" /> | ||
517 | <menu_item_call name="Disable Message Log" label="ç¦ç”¨æ¶ˆæ¯æ—¥å¿—" /> | ||
518 | <menu_item_check name="Velocity Interpolate Objects" label="物体速度æ’值" /> | ||
519 | <menu_item_check name="Ping Interpolate Object Positions" label="Ping Interpolate Object Positions" /> | ||
520 | <menu_item_call name="Drop a Packet" label="丢弃一个å°åŒ…" /> | ||
521 | </menu> | ||
522 | <!-- RECORDER --> | ||
523 | <menu name="Recorder" label="记录器"> | ||
524 | <menu_item_check name="Full Session Logging" label="录制整个会è¯" /> | ||
525 | <menu_item_call name="Start Logging" label="开始记录" /> | ||
526 | <menu_item_call name="Stop Logging" label="åœæ¢è®°å½•" /> | ||
527 | <menu_item_call name="Log 10 Seconds" label="记录 10 秒" /> | ||
528 | <menu_item_call name="Log 30 Seconds" label="记录 30 秒" /> | ||
529 | <menu_item_call name="Log 60 Seconds" label="记录 60 秒" /> | ||
530 | <menu_item_call name="Start Playback" label="开始æ’放" /> | ||
531 | <menu_item_call name="Stop Playback" label="åœæ¢æ’放" /> | ||
532 | <menu_item_check name="Loop Playback" label="循环æ’放" /> | ||
533 | <menu_item_call name="Start Record" label="开始录制" /> | ||
534 | <menu_item_call name="Stop Record" label="åœæ¢å½•åˆ¶" /> | ||
535 | </menu> | ||
536 | <!-- ADMIN OPTIONS --> | ||
537 | <menu name="Admin Options" label="管ç†å‘˜é€‰é¡¹"> | ||
538 | <menu_item_check name="View Admin Options" label="显示管ç†å‘˜é€‰é¡¹" /> | ||
539 | <menu_item_call name="Request Admin Status" label="请求管ç†å‘˜çŠ¶æ€" /> | ||
540 | <menu_item_call name="Leave Admin Status" label="离开管ç†å‘˜çŠ¶æ€" /> | ||
541 | </menu> | ||
542 | <menu_item_check name="Show Updates" label="显示更新" /> | ||
543 | <menu_item_check name="Quiet Snapshots to Disk" label="æ— å£°å¿«ç…§åˆ°ç£ç›˜" /> | ||
544 | <menu_item_call name="Compress Image..." label="压缩图åƒ..." /> | ||
545 | <menu_item_check name="Disable Max Build Constraints" label="ç¦ç”¨å»ºé€ 尺寸最大é™åˆ¶" /> | ||
546 | <menu_item_check name="Debug Permissions" label="调试æƒé™" /> | ||
547 | <menu_item_check name="Mouse Smoothing" label="é¼ æ ‡å¹³æ»‘" /> | ||
548 | <menu_item_check name="Show Mouselook Crosshairs" label="显示第一人称视角准星" /> | ||
549 | <menu_item_check name="Console Window" label="控制å°çª—å£" /> | ||
550 | <menu_item_check name="Restrained Love Support" label="Restrained Love 支æŒ" /> | ||
551 | <menu_item_check name="Allow Multiple Instances" label="å…许多个实例" /> | ||
552 | <menu_item_call name="Logout" label="登出 (ä¸ç¨³å®š)" /> | ||
553 | <menu_item_call name="Debug Settings" label="调试设置" /> | ||
554 | </menu> | ||
555 | |||
556 | |||
204 | </menu_bar> | 557 | </menu_bar> |
diff --git a/linden/indra/newview/skins/default/xui/zh/mime_types_linux.xml b/linden/indra/newview/skins/default/xui/zh/mime_types_linux.xml new file mode 100644 index 0000000..3fedf28 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/mime_types_linux.xml | |||
@@ -0,0 +1,236 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <mimetypes name="default"> | ||
3 | <widgetset name="web"> | ||
4 | <label name="web_label"> | ||
5 | 网页内容 | ||
6 | </label> | ||
7 | <tooltip name="web_tooltip"> | ||
8 | 该区域有网页内容 | ||
9 | </tooltip> | ||
10 | <playtip name="web_playtip"> | ||
11 | 显示网页内容 | ||
12 | </playtip> | ||
13 | </widgetset> | ||
14 | <widgetset name="movie"> | ||
15 | <label name="movie_label"> | ||
16 | 影片 | ||
17 | </label> | ||
18 | <tooltip name="movie_tooltip"> | ||
19 | 这里å¯ä»¥æ’放影片 | ||
20 | </tooltip> | ||
21 | <playtip name="movie_playtip"> | ||
22 | æ’放影片 | ||
23 | </playtip> | ||
24 | </widgetset> | ||
25 | <widgetset name="none"> | ||
26 | <label name="none_label"> | ||
27 | æ— å†…å®¹ | ||
28 | </label> | ||
29 | <tooltip name="none_tooltip"> | ||
30 | 这里没有媒体 | ||
31 | </tooltip> | ||
32 | <playtip name="none_playtip" /> | ||
33 | </widgetset> | ||
34 | <widgetset name="image"> | ||
35 | <label name="image_label"> | ||
36 | å›¾åƒ | ||
37 | </label> | ||
38 | <tooltip name="image_tooltip"> | ||
39 | è¿™é‡Œæœ‰å›¾åƒ | ||
40 | </tooltip> | ||
41 | <playtip name="image_playtip"> | ||
42 | 显示该ä½ç½®çš„å›¾åƒ | ||
43 | </playtip> | ||
44 | </widgetset> | ||
45 | <widgetset name="audio"> | ||
46 | <label name="audio_label"> | ||
47 | 音频 | ||
48 | </label> | ||
49 | <tooltip name="audio_tooltip"> | ||
50 | 这里å¯ä»¥æ’放音频 | ||
51 | </tooltip> | ||
52 | <playtip name="audio_playtip"> | ||
53 | æ’放该ä½ç½®çš„音频 | ||
54 | </playtip> | ||
55 | </widgetset> | ||
56 | <scheme name="rtsp"> | ||
57 | <label name="rtsp_label"> | ||
58 | 实时æµåª’体 (RTSP) | ||
59 | </label> | ||
60 | </scheme> | ||
61 | <mimetype name="blank"> | ||
62 | <label name="blank_label"> | ||
63 | - æ— - | ||
64 | </label> | ||
65 | </mimetype> | ||
66 | <mimetype name="none/none"> | ||
67 | <label name="none/none_label"> | ||
68 | - æ— - | ||
69 | </label> | ||
70 | </mimetype> | ||
71 | <mimetype name="audio/*"> | ||
72 | <label name="audio2_label"> | ||
73 | 音频 | ||
74 | </label> | ||
75 | </mimetype> | ||
76 | <mimetype name="video/*"> | ||
77 | <label name="video2_label"> | ||
78 | 视频 | ||
79 | </label> | ||
80 | </mimetype> | ||
81 | <mimetype name="image/*"> | ||
82 | <label name="image2_label"> | ||
83 | å›¾åƒ | ||
84 | </label> | ||
85 | </mimetype> | ||
86 | <mimetype name="video/vnd.secondlife.qt.legacy"> | ||
87 | <label name="vnd.secondlife.qt.legacy_label"> | ||
88 | 影片 (QuickTime) | ||
89 | </label> | ||
90 | </mimetype> | ||
91 | <mimetype name="application/javascript"> | ||
92 | <label name="application/javascript_label"> | ||
93 | Javascript | ||
94 | </label> | ||
95 | </mimetype> | ||
96 | <mimetype name="application/ogg"> | ||
97 | <label name="application/ogg_label"> | ||
98 | Ogg 音频/视频 | ||
99 | </label> | ||
100 | </mimetype> | ||
101 | <mimetype name="application/pdf"> | ||
102 | <label name="application/pdf_label"> | ||
103 | PDF 文档 | ||
104 | </label> | ||
105 | </mimetype> | ||
106 | <mimetype name="application/postscript"> | ||
107 | <label name="application/postscript_label"> | ||
108 | Postscript 文档 | ||
109 | </label> | ||
110 | </mimetype> | ||
111 | <mimetype name="application/rtf"> | ||
112 | <label name="application/rtf_label"> | ||
113 | å¸¦æ ¼å¼åŒ–的文本 (RTF) | ||
114 | </label> | ||
115 | </mimetype> | ||
116 | <mimetype name="application/smil"> | ||
117 | <label name="application/smil_label"> | ||
118 | åŒæ¥å¤šåª’体集æˆè¯è¨€ (SMIL) | ||
119 | </label> | ||
120 | </mimetype> | ||
121 | <mimetype name="application/xhtml+xml"> | ||
122 | <label name="application/xhtml+xml_label"> | ||
123 | 网页 (XHTML) | ||
124 | </label> | ||
125 | </mimetype> | ||
126 | <mimetype name="application/x-director"> | ||
127 | <label name="application/x-director_label"> | ||
128 | Macromedia Director | ||
129 | </label> | ||
130 | </mimetype> | ||
131 | <mimetype name="application/x-shockwave-flash"> | ||
132 | <label name="application/x-shockwave-flash_label"> | ||
133 | Flash | ||
134 | </label> | ||
135 | </mimetype> | ||
136 | <mimetype name="audio/mid"> | ||
137 | <label name="audio/mid_label"> | ||
138 | 音频 (MIDI) | ||
139 | </label> | ||
140 | </mimetype> | ||
141 | <mimetype name="audio/mpeg"> | ||
142 | <label name="audio/mpeg_label"> | ||
143 | 音频 (MP3) | ||
144 | </label> | ||
145 | </mimetype> | ||
146 | <mimetype name="audio/x-aiff"> | ||
147 | <label name="audio/x-aiff_label"> | ||
148 | 音频 (AIFF) | ||
149 | </label> | ||
150 | </mimetype> | ||
151 | <mimetype name="audio/x-wav"> | ||
152 | <label name="audio/x-wav_label"> | ||
153 | 音频 (WAV) | ||
154 | </label> | ||
155 | </mimetype> | ||
156 | <mimetype name="image/bmp"> | ||
157 | <label name="image/bmp_label"> | ||
158 | å›¾åƒ (BMP) | ||
159 | </label> | ||
160 | </mimetype> | ||
161 | <mimetype name="image/gif"> | ||
162 | <label name="image/gif_label"> | ||
163 | å›¾åƒ (GIF) | ||
164 | </label> | ||
165 | </mimetype> | ||
166 | <mimetype name="image/jpeg"> | ||
167 | <label name="image/jpeg_label"> | ||
168 | å›¾åƒ (JPEG) | ||
169 | </label> | ||
170 | </mimetype> | ||
171 | <mimetype name="image/png"> | ||
172 | <label name="image/png_label"> | ||
173 | å›¾åƒ (PNG) | ||
174 | </label> | ||
175 | </mimetype> | ||
176 | <mimetype name="image/svg+xml"> | ||
177 | <label name="image/svg+xml_label"> | ||
178 | å›¾åƒ (SVG) | ||
179 | </label> | ||
180 | </mimetype> | ||
181 | <mimetype name="image/tiff"> | ||
182 | <label name="image/tiff_label"> | ||
183 | å›¾åƒ (TIFF) | ||
184 | </label> | ||
185 | </mimetype> | ||
186 | <mimetype name="text/html"> | ||
187 | <label name="text/html_label"> | ||
188 | 网页 | ||
189 | </label> | ||
190 | </mimetype> | ||
191 | <mimetype name="text/plain"> | ||
192 | <label name="text/plain_label"> | ||
193 | 文本 | ||
194 | </label> | ||
195 | </mimetype> | ||
196 | <mimetype name="text/xml"> | ||
197 | <label name="text/xml_label"> | ||
198 | XML | ||
199 | </label> | ||
200 | </mimetype> | ||
201 | <mimetype name="video/mpeg"> | ||
202 | <label name="video/mpeg_label"> | ||
203 | 影片 (MPEG) | ||
204 | </label> | ||
205 | </mimetype> | ||
206 | <mimetype name="video/mp4"> | ||
207 | <label name="video/mp4_label"> | ||
208 | 影片 (MP4) | ||
209 | </label> | ||
210 | </mimetype> | ||
211 | <mimetype name="video/x-m4v"> | ||
212 | <label name="video/m4v_label"> | ||
213 | 影片 (M4V) | ||
214 | </label> | ||
215 | </mimetype> | ||
216 | <mimetype name="video/quicktime"> | ||
217 | <label name="video/quicktime_label"> | ||
218 | 影片 (QuickTime) | ||
219 | </label> | ||
220 | </mimetype> | ||
221 | <mimetype name="video/x-ms-asf"> | ||
222 | <label name="video/x-ms-asf_label"> | ||
223 | 影片 (Windows Media ASF) | ||
224 | </label> | ||
225 | </mimetype> | ||
226 | <mimetype name="video/x-ms-wmv"> | ||
227 | <label name="video/x-ms-wmv_label"> | ||
228 | 影片 (Windows Media WMV) | ||
229 | </label> | ||
230 | </mimetype> | ||
231 | <mimetype name="video/x-msvideo"> | ||
232 | <label name="video/x-msvideo_label"> | ||
233 | 影片 (AVI) | ||
234 | </label> | ||
235 | </mimetype> | ||
236 | </mimetypes> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/mime_types_mac.xml b/linden/indra/newview/skins/default/xui/zh/mime_types_mac.xml new file mode 100644 index 0000000..3fedf28 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/mime_types_mac.xml | |||
@@ -0,0 +1,236 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <mimetypes name="default"> | ||
3 | <widgetset name="web"> | ||
4 | <label name="web_label"> | ||
5 | 网页内容 | ||
6 | </label> | ||
7 | <tooltip name="web_tooltip"> | ||
8 | 该区域有网页内容 | ||
9 | </tooltip> | ||
10 | <playtip name="web_playtip"> | ||
11 | 显示网页内容 | ||
12 | </playtip> | ||
13 | </widgetset> | ||
14 | <widgetset name="movie"> | ||
15 | <label name="movie_label"> | ||
16 | 影片 | ||
17 | </label> | ||
18 | <tooltip name="movie_tooltip"> | ||
19 | 这里å¯ä»¥æ’放影片 | ||
20 | </tooltip> | ||
21 | <playtip name="movie_playtip"> | ||
22 | æ’放影片 | ||
23 | </playtip> | ||
24 | </widgetset> | ||
25 | <widgetset name="none"> | ||
26 | <label name="none_label"> | ||
27 | æ— å†…å®¹ | ||
28 | </label> | ||
29 | <tooltip name="none_tooltip"> | ||
30 | 这里没有媒体 | ||
31 | </tooltip> | ||
32 | <playtip name="none_playtip" /> | ||
33 | </widgetset> | ||
34 | <widgetset name="image"> | ||
35 | <label name="image_label"> | ||
36 | å›¾åƒ | ||
37 | </label> | ||
38 | <tooltip name="image_tooltip"> | ||
39 | è¿™é‡Œæœ‰å›¾åƒ | ||
40 | </tooltip> | ||
41 | <playtip name="image_playtip"> | ||
42 | 显示该ä½ç½®çš„å›¾åƒ | ||
43 | </playtip> | ||
44 | </widgetset> | ||
45 | <widgetset name="audio"> | ||
46 | <label name="audio_label"> | ||
47 | 音频 | ||
48 | </label> | ||
49 | <tooltip name="audio_tooltip"> | ||
50 | 这里å¯ä»¥æ’放音频 | ||
51 | </tooltip> | ||
52 | <playtip name="audio_playtip"> | ||
53 | æ’放该ä½ç½®çš„音频 | ||
54 | </playtip> | ||
55 | </widgetset> | ||
56 | <scheme name="rtsp"> | ||
57 | <label name="rtsp_label"> | ||
58 | 实时æµåª’体 (RTSP) | ||
59 | </label> | ||
60 | </scheme> | ||
61 | <mimetype name="blank"> | ||
62 | <label name="blank_label"> | ||
63 | - æ— - | ||
64 | </label> | ||
65 | </mimetype> | ||
66 | <mimetype name="none/none"> | ||
67 | <label name="none/none_label"> | ||
68 | - æ— - | ||
69 | </label> | ||
70 | </mimetype> | ||
71 | <mimetype name="audio/*"> | ||
72 | <label name="audio2_label"> | ||
73 | 音频 | ||
74 | </label> | ||
75 | </mimetype> | ||
76 | <mimetype name="video/*"> | ||
77 | <label name="video2_label"> | ||
78 | 视频 | ||
79 | </label> | ||
80 | </mimetype> | ||
81 | <mimetype name="image/*"> | ||
82 | <label name="image2_label"> | ||
83 | å›¾åƒ | ||
84 | </label> | ||
85 | </mimetype> | ||
86 | <mimetype name="video/vnd.secondlife.qt.legacy"> | ||
87 | <label name="vnd.secondlife.qt.legacy_label"> | ||
88 | 影片 (QuickTime) | ||
89 | </label> | ||
90 | </mimetype> | ||
91 | <mimetype name="application/javascript"> | ||
92 | <label name="application/javascript_label"> | ||
93 | Javascript | ||
94 | </label> | ||
95 | </mimetype> | ||
96 | <mimetype name="application/ogg"> | ||
97 | <label name="application/ogg_label"> | ||
98 | Ogg 音频/视频 | ||
99 | </label> | ||
100 | </mimetype> | ||
101 | <mimetype name="application/pdf"> | ||
102 | <label name="application/pdf_label"> | ||
103 | PDF 文档 | ||
104 | </label> | ||
105 | </mimetype> | ||
106 | <mimetype name="application/postscript"> | ||
107 | <label name="application/postscript_label"> | ||
108 | Postscript 文档 | ||
109 | </label> | ||
110 | </mimetype> | ||
111 | <mimetype name="application/rtf"> | ||
112 | <label name="application/rtf_label"> | ||
113 | å¸¦æ ¼å¼åŒ–的文本 (RTF) | ||
114 | </label> | ||
115 | </mimetype> | ||
116 | <mimetype name="application/smil"> | ||
117 | <label name="application/smil_label"> | ||
118 | åŒæ¥å¤šåª’体集æˆè¯è¨€ (SMIL) | ||
119 | </label> | ||
120 | </mimetype> | ||
121 | <mimetype name="application/xhtml+xml"> | ||
122 | <label name="application/xhtml+xml_label"> | ||
123 | 网页 (XHTML) | ||
124 | </label> | ||
125 | </mimetype> | ||
126 | <mimetype name="application/x-director"> | ||
127 | <label name="application/x-director_label"> | ||
128 | Macromedia Director | ||
129 | </label> | ||
130 | </mimetype> | ||
131 | <mimetype name="application/x-shockwave-flash"> | ||
132 | <label name="application/x-shockwave-flash_label"> | ||
133 | Flash | ||
134 | </label> | ||
135 | </mimetype> | ||
136 | <mimetype name="audio/mid"> | ||
137 | <label name="audio/mid_label"> | ||
138 | 音频 (MIDI) | ||
139 | </label> | ||
140 | </mimetype> | ||
141 | <mimetype name="audio/mpeg"> | ||
142 | <label name="audio/mpeg_label"> | ||
143 | 音频 (MP3) | ||
144 | </label> | ||
145 | </mimetype> | ||
146 | <mimetype name="audio/x-aiff"> | ||
147 | <label name="audio/x-aiff_label"> | ||
148 | 音频 (AIFF) | ||
149 | </label> | ||
150 | </mimetype> | ||
151 | <mimetype name="audio/x-wav"> | ||
152 | <label name="audio/x-wav_label"> | ||
153 | 音频 (WAV) | ||
154 | </label> | ||
155 | </mimetype> | ||
156 | <mimetype name="image/bmp"> | ||
157 | <label name="image/bmp_label"> | ||
158 | å›¾åƒ (BMP) | ||
159 | </label> | ||
160 | </mimetype> | ||
161 | <mimetype name="image/gif"> | ||
162 | <label name="image/gif_label"> | ||
163 | å›¾åƒ (GIF) | ||
164 | </label> | ||
165 | </mimetype> | ||
166 | <mimetype name="image/jpeg"> | ||
167 | <label name="image/jpeg_label"> | ||
168 | å›¾åƒ (JPEG) | ||
169 | </label> | ||
170 | </mimetype> | ||
171 | <mimetype name="image/png"> | ||
172 | <label name="image/png_label"> | ||
173 | å›¾åƒ (PNG) | ||
174 | </label> | ||
175 | </mimetype> | ||
176 | <mimetype name="image/svg+xml"> | ||
177 | <label name="image/svg+xml_label"> | ||
178 | å›¾åƒ (SVG) | ||
179 | </label> | ||
180 | </mimetype> | ||
181 | <mimetype name="image/tiff"> | ||
182 | <label name="image/tiff_label"> | ||
183 | å›¾åƒ (TIFF) | ||
184 | </label> | ||
185 | </mimetype> | ||
186 | <mimetype name="text/html"> | ||
187 | <label name="text/html_label"> | ||
188 | 网页 | ||
189 | </label> | ||
190 | </mimetype> | ||
191 | <mimetype name="text/plain"> | ||
192 | <label name="text/plain_label"> | ||
193 | 文本 | ||
194 | </label> | ||
195 | </mimetype> | ||
196 | <mimetype name="text/xml"> | ||
197 | <label name="text/xml_label"> | ||
198 | XML | ||
199 | </label> | ||
200 | </mimetype> | ||
201 | <mimetype name="video/mpeg"> | ||
202 | <label name="video/mpeg_label"> | ||
203 | 影片 (MPEG) | ||
204 | </label> | ||
205 | </mimetype> | ||
206 | <mimetype name="video/mp4"> | ||
207 | <label name="video/mp4_label"> | ||
208 | 影片 (MP4) | ||
209 | </label> | ||
210 | </mimetype> | ||
211 | <mimetype name="video/x-m4v"> | ||
212 | <label name="video/m4v_label"> | ||
213 | 影片 (M4V) | ||
214 | </label> | ||
215 | </mimetype> | ||
216 | <mimetype name="video/quicktime"> | ||
217 | <label name="video/quicktime_label"> | ||
218 | 影片 (QuickTime) | ||
219 | </label> | ||
220 | </mimetype> | ||
221 | <mimetype name="video/x-ms-asf"> | ||
222 | <label name="video/x-ms-asf_label"> | ||
223 | 影片 (Windows Media ASF) | ||
224 | </label> | ||
225 | </mimetype> | ||
226 | <mimetype name="video/x-ms-wmv"> | ||
227 | <label name="video/x-ms-wmv_label"> | ||
228 | 影片 (Windows Media WMV) | ||
229 | </label> | ||
230 | </mimetype> | ||
231 | <mimetype name="video/x-msvideo"> | ||
232 | <label name="video/x-msvideo_label"> | ||
233 | 影片 (AVI) | ||
234 | </label> | ||
235 | </mimetype> | ||
236 | </mimetypes> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/mime_types_windows.xml b/linden/indra/newview/skins/default/xui/zh/mime_types_windows.xml new file mode 100644 index 0000000..3fedf28 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/mime_types_windows.xml | |||
@@ -0,0 +1,236 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <mimetypes name="default"> | ||
3 | <widgetset name="web"> | ||
4 | <label name="web_label"> | ||
5 | 网页内容 | ||
6 | </label> | ||
7 | <tooltip name="web_tooltip"> | ||
8 | 该区域有网页内容 | ||
9 | </tooltip> | ||
10 | <playtip name="web_playtip"> | ||
11 | 显示网页内容 | ||
12 | </playtip> | ||
13 | </widgetset> | ||
14 | <widgetset name="movie"> | ||
15 | <label name="movie_label"> | ||
16 | 影片 | ||
17 | </label> | ||
18 | <tooltip name="movie_tooltip"> | ||
19 | 这里å¯ä»¥æ’放影片 | ||
20 | </tooltip> | ||
21 | <playtip name="movie_playtip"> | ||
22 | æ’放影片 | ||
23 | </playtip> | ||
24 | </widgetset> | ||
25 | <widgetset name="none"> | ||
26 | <label name="none_label"> | ||
27 | æ— å†…å®¹ | ||
28 | </label> | ||
29 | <tooltip name="none_tooltip"> | ||
30 | 这里没有媒体 | ||
31 | </tooltip> | ||
32 | <playtip name="none_playtip" /> | ||
33 | </widgetset> | ||
34 | <widgetset name="image"> | ||
35 | <label name="image_label"> | ||
36 | å›¾åƒ | ||
37 | </label> | ||
38 | <tooltip name="image_tooltip"> | ||
39 | è¿™é‡Œæœ‰å›¾åƒ | ||
40 | </tooltip> | ||
41 | <playtip name="image_playtip"> | ||
42 | 显示该ä½ç½®çš„å›¾åƒ | ||
43 | </playtip> | ||
44 | </widgetset> | ||
45 | <widgetset name="audio"> | ||
46 | <label name="audio_label"> | ||
47 | 音频 | ||
48 | </label> | ||
49 | <tooltip name="audio_tooltip"> | ||
50 | 这里å¯ä»¥æ’放音频 | ||
51 | </tooltip> | ||
52 | <playtip name="audio_playtip"> | ||
53 | æ’放该ä½ç½®çš„音频 | ||
54 | </playtip> | ||
55 | </widgetset> | ||
56 | <scheme name="rtsp"> | ||
57 | <label name="rtsp_label"> | ||
58 | 实时æµåª’体 (RTSP) | ||
59 | </label> | ||
60 | </scheme> | ||
61 | <mimetype name="blank"> | ||
62 | <label name="blank_label"> | ||
63 | - æ— - | ||
64 | </label> | ||
65 | </mimetype> | ||
66 | <mimetype name="none/none"> | ||
67 | <label name="none/none_label"> | ||
68 | - æ— - | ||
69 | </label> | ||
70 | </mimetype> | ||
71 | <mimetype name="audio/*"> | ||
72 | <label name="audio2_label"> | ||
73 | 音频 | ||
74 | </label> | ||
75 | </mimetype> | ||
76 | <mimetype name="video/*"> | ||
77 | <label name="video2_label"> | ||
78 | 视频 | ||
79 | </label> | ||
80 | </mimetype> | ||
81 | <mimetype name="image/*"> | ||
82 | <label name="image2_label"> | ||
83 | å›¾åƒ | ||
84 | </label> | ||
85 | </mimetype> | ||
86 | <mimetype name="video/vnd.secondlife.qt.legacy"> | ||
87 | <label name="vnd.secondlife.qt.legacy_label"> | ||
88 | 影片 (QuickTime) | ||
89 | </label> | ||
90 | </mimetype> | ||
91 | <mimetype name="application/javascript"> | ||
92 | <label name="application/javascript_label"> | ||
93 | Javascript | ||
94 | </label> | ||
95 | </mimetype> | ||
96 | <mimetype name="application/ogg"> | ||
97 | <label name="application/ogg_label"> | ||
98 | Ogg 音频/视频 | ||
99 | </label> | ||
100 | </mimetype> | ||
101 | <mimetype name="application/pdf"> | ||
102 | <label name="application/pdf_label"> | ||
103 | PDF 文档 | ||
104 | </label> | ||
105 | </mimetype> | ||
106 | <mimetype name="application/postscript"> | ||
107 | <label name="application/postscript_label"> | ||
108 | Postscript 文档 | ||
109 | </label> | ||
110 | </mimetype> | ||
111 | <mimetype name="application/rtf"> | ||
112 | <label name="application/rtf_label"> | ||
113 | å¸¦æ ¼å¼åŒ–的文本 (RTF) | ||
114 | </label> | ||
115 | </mimetype> | ||
116 | <mimetype name="application/smil"> | ||
117 | <label name="application/smil_label"> | ||
118 | åŒæ¥å¤šåª’体集æˆè¯è¨€ (SMIL) | ||
119 | </label> | ||
120 | </mimetype> | ||
121 | <mimetype name="application/xhtml+xml"> | ||
122 | <label name="application/xhtml+xml_label"> | ||
123 | 网页 (XHTML) | ||
124 | </label> | ||
125 | </mimetype> | ||
126 | <mimetype name="application/x-director"> | ||
127 | <label name="application/x-director_label"> | ||
128 | Macromedia Director | ||
129 | </label> | ||
130 | </mimetype> | ||
131 | <mimetype name="application/x-shockwave-flash"> | ||
132 | <label name="application/x-shockwave-flash_label"> | ||
133 | Flash | ||
134 | </label> | ||
135 | </mimetype> | ||
136 | <mimetype name="audio/mid"> | ||
137 | <label name="audio/mid_label"> | ||
138 | 音频 (MIDI) | ||
139 | </label> | ||
140 | </mimetype> | ||
141 | <mimetype name="audio/mpeg"> | ||
142 | <label name="audio/mpeg_label"> | ||
143 | 音频 (MP3) | ||
144 | </label> | ||
145 | </mimetype> | ||
146 | <mimetype name="audio/x-aiff"> | ||
147 | <label name="audio/x-aiff_label"> | ||
148 | 音频 (AIFF) | ||
149 | </label> | ||
150 | </mimetype> | ||
151 | <mimetype name="audio/x-wav"> | ||
152 | <label name="audio/x-wav_label"> | ||
153 | 音频 (WAV) | ||
154 | </label> | ||
155 | </mimetype> | ||
156 | <mimetype name="image/bmp"> | ||
157 | <label name="image/bmp_label"> | ||
158 | å›¾åƒ (BMP) | ||
159 | </label> | ||
160 | </mimetype> | ||
161 | <mimetype name="image/gif"> | ||
162 | <label name="image/gif_label"> | ||
163 | å›¾åƒ (GIF) | ||
164 | </label> | ||
165 | </mimetype> | ||
166 | <mimetype name="image/jpeg"> | ||
167 | <label name="image/jpeg_label"> | ||
168 | å›¾åƒ (JPEG) | ||
169 | </label> | ||
170 | </mimetype> | ||
171 | <mimetype name="image/png"> | ||
172 | <label name="image/png_label"> | ||
173 | å›¾åƒ (PNG) | ||
174 | </label> | ||
175 | </mimetype> | ||
176 | <mimetype name="image/svg+xml"> | ||
177 | <label name="image/svg+xml_label"> | ||
178 | å›¾åƒ (SVG) | ||
179 | </label> | ||
180 | </mimetype> | ||
181 | <mimetype name="image/tiff"> | ||
182 | <label name="image/tiff_label"> | ||
183 | å›¾åƒ (TIFF) | ||
184 | </label> | ||
185 | </mimetype> | ||
186 | <mimetype name="text/html"> | ||
187 | <label name="text/html_label"> | ||
188 | 网页 | ||
189 | </label> | ||
190 | </mimetype> | ||
191 | <mimetype name="text/plain"> | ||
192 | <label name="text/plain_label"> | ||
193 | 文本 | ||
194 | </label> | ||
195 | </mimetype> | ||
196 | <mimetype name="text/xml"> | ||
197 | <label name="text/xml_label"> | ||
198 | XML | ||
199 | </label> | ||
200 | </mimetype> | ||
201 | <mimetype name="video/mpeg"> | ||
202 | <label name="video/mpeg_label"> | ||
203 | 影片 (MPEG) | ||
204 | </label> | ||
205 | </mimetype> | ||
206 | <mimetype name="video/mp4"> | ||
207 | <label name="video/mp4_label"> | ||
208 | 影片 (MP4) | ||
209 | </label> | ||
210 | </mimetype> | ||
211 | <mimetype name="video/x-m4v"> | ||
212 | <label name="video/m4v_label"> | ||
213 | 影片 (M4V) | ||
214 | </label> | ||
215 | </mimetype> | ||
216 | <mimetype name="video/quicktime"> | ||
217 | <label name="video/quicktime_label"> | ||
218 | 影片 (QuickTime) | ||
219 | </label> | ||
220 | </mimetype> | ||
221 | <mimetype name="video/x-ms-asf"> | ||
222 | <label name="video/x-ms-asf_label"> | ||
223 | 影片 (Windows Media ASF) | ||
224 | </label> | ||
225 | </mimetype> | ||
226 | <mimetype name="video/x-ms-wmv"> | ||
227 | <label name="video/x-ms-wmv_label"> | ||
228 | 影片 (Windows Media WMV) | ||
229 | </label> | ||
230 | </mimetype> | ||
231 | <mimetype name="video/x-msvideo"> | ||
232 | <label name="video/x-msvideo_label"> | ||
233 | 影片 (AVI) | ||
234 | </label> | ||
235 | </mimetype> | ||
236 | </mimetypes> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/notifications.xml b/linden/indra/newview/skins/default/xui/zh/notifications.xml index 415e5e7..0596e76 100644 --- a/linden/indra/newview/skins/default/xui/zh/notifications.xml +++ b/linden/indra/newview/skins/default/xui/zh/notifications.xml | |||
@@ -4,12 +4,18 @@ | |||
4 | <!-- I think "Second Life" should not be localized, actually. -Jacek --> | 4 | <!-- I think "Second Life" should not be localized, actually. -Jacek --> |
5 | <!-- | 5 | <!-- |
6 | <global name="SECOND_LIFE"> | 6 | <global name="SECOND_LIFE"> |
7 | 二人生 | 7 | 第二人生 |
8 | </global> | 8 | </global> |
9 | --> | 9 | --> |
10 | |||
11 | <!-- *è¦å‘Š* *è¦å‘Š* *è¦å‘Š* --> | ||
12 | |||
13 | <!-- 在 Visual Studio ä¸è‡ªåŠ¨ç¼©è¿›æ‰“å¼€åŽç¼–辑该文件将会导致界é¢æŽ’ç‰ˆé”™è¯¯ï¼ --> | ||
14 | |||
15 | <!-- *è¦å‘Š* *è¦å‘Š* *è¦å‘Š* --> | ||
10 | 16 | ||
11 | <global name="skipnexttime"> | 17 | <global name="skipnexttime"> |
12 | 下次ä¸è¦å†è®©æˆ‘看这个了 | 18 | 下次ä¸å†æ˜¾ç¤ºã€‚ |
13 | </global> | 19 | </global> |
14 | <global name="alwayschoose"> | 20 | <global name="alwayschoose"> |
15 | 总是选择该选项 | 21 | 总是选择该选项 |
@@ -37,7 +43,7 @@ | |||
37 | name="OK" | 43 | name="OK" |
38 | text="$yestext"/> | 44 | text="$yestext"/> |
39 | <button | 45 | <button |
40 | name="Cancel" | 46 | name="å–消" |
41 | text="$notext"/> | 47 | text="$notext"/> |
42 | </form> | 48 | </form> |
43 | </template> | 49 | </template> |
@@ -49,7 +55,7 @@ | |||
49 | text="$yestext"/> | 55 | text="$yestext"/> |
50 | <button | 56 | <button |
51 | 57 | ||
52 | name="Cancel" | 58 | name="å–消" |
53 | text="$notext"/> | 59 | text="$notext"/> |
54 | <ignore text="$ignoretext"/> | 60 | <ignore text="$ignoretext"/> |
55 | </form> | 61 | </form> |
@@ -61,7 +67,7 @@ | |||
61 | name="OK" | 67 | name="OK" |
62 | text="$yestext"/> | 68 | text="$yestext"/> |
63 | <button | 69 | <button |
64 | name="Help" | 70 | name="帮助" |
65 | text="$helptext"/> | 71 | text="$helptext"/> |
66 | </form> | 72 | </form> |
67 | </template> | 73 | </template> |
@@ -69,18 +75,18 @@ | |||
69 | <template name="yesnocancelbuttons"> | 75 | <template name="yesnocancelbuttons"> |
70 | <form> | 76 | <form> |
71 | <button | 77 | <button |
72 | name="Yes" | 78 | name="是" |
73 | text="$yestext"/> | 79 | text="$yestext"/> |
74 | <button | 80 | <button |
75 | name="No" | 81 | name="å¦" |
76 | text="$notext"/> | 82 | text="$notext"/> |
77 | <button | 83 | <button |
78 | name="Cancel" | 84 | name="å–消" |
79 | text="$canceltext"/> | 85 | text="$canceltext"/> |
80 | </form> | 86 | </form> |
81 | </template> | 87 | </template> |
82 | <notification functor="GenericAcknowledge" label="未知è¦æŠ¥" name="MissingAlert"> | 88 | <notification functor="GenericAcknowledge" label="未知è¦æŠ¥" name="MissingAlert"> |
83 | 您的第[VIEWER_NAME]ç‰ˆæœ¬æ— æ³•æ˜¾ç¤ºæ‰€æŽ¥æ”¶åˆ°çš„è®¯æ¯ã€‚ | 89 | 您的 [VIEWER_NAME] ç‰ˆæœ¬æ— æ³•æ˜¾ç¤ºæ‰€æŽ¥æ”¶åˆ°çš„è®¯æ¯ã€‚ |
84 | 90 | ||
85 | é”™è¯¯è¯¦æƒ…ï¼šæ— æ³•åœ¨notifications.xmlä¸æ‰¾åˆ°â€˜[_NAME]’。 | 91 | é”™è¯¯è¯¦æƒ…ï¼šæ— æ³•åœ¨notifications.xmlä¸æ‰¾åˆ°â€˜[_NAME]’。 |
86 | <usetemplate name="okbutton" yestext="确定"/> | 92 | <usetemplate name="okbutton" yestext="确定"/> |
@@ -103,7 +109,7 @@ | |||
103 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="是"/> | 109 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="是"/> |
104 | </notification> | 110 | </notification> |
105 | <notification name="BadInstallation"> | 111 | <notification name="BadInstallation"> |
106 | 第[VIEWER_NAME]å‡çº§é”™è¯¯ã€‚请从[VIEWER_SITE]é‡æ–°ä¸‹è½½å®‰è£…最新版本。 | 112 | [VIEWER_NAME] å‡çº§é”™è¯¯ã€‚请从[VIEWER_SITE]é‡æ–°ä¸‹è½½å®‰è£…最新版本。 |
107 | <usetemplate | 113 | <usetemplate |
108 | name="okbutton" | 114 | name="okbutton" |
109 | yestext="确定"/> | 115 | yestext="确定"/> |
@@ -262,33 +268,33 @@ | |||
262 | å…¶ä»–å±…æ°‘åœ¨è§‚çœ‹ä½ çš„æ¡£æ¡ˆçš„æ—¶å€™å¯ä»¥è®¿é—®ä½ 所指定的URL。 | 268 | å…¶ä»–å±…æ°‘åœ¨è§‚çœ‹ä½ çš„æ¡£æ¡ˆçš„æ—¶å€™å¯ä»¥è®¿é—®ä½ 所指定的URL。 |
263 | </notification> | 269 | </notification> |
264 | <notification name="JoinGroupCanAfford"> | 270 | <notification name="JoinGroupCanAfford"> |
265 | åŠ å…¥è¯¥ç¤¾å›¢éœ€èŠ±è´¹L$[COST]。 | 271 | åŠ å…¥è¯¥ç¤¾å›¢éœ€èŠ±è´¹[CURRENCY][COST]。 |
266 | ä½ æ„¿æ„继ç»å—? | 272 | ä½ æ„¿æ„继ç»å—? |
267 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="åŠ å…¥"/> | 273 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="åŠ å…¥"/> |
268 | </notification> | 274 | </notification> |
269 | <notification name="JoinGroupCannotAfford"> | 275 | <notification name="JoinGroupCannotAfford"> |
270 | åŠ å…¥è¯¥ç¤¾å›¢éœ€èŠ±è´¹ L$[COST]。 | 276 | åŠ å…¥è¯¥ç¤¾å›¢éœ€èŠ±è´¹ [CURRENCY][COST]。 |
271 | 您拥有的 L$ ä¸å¤Ÿã€‚ | 277 | 您拥有的 [CURRENCY] ä¸å¤Ÿã€‚ |
272 | </notification> | 278 | </notification> |
273 | <notification name="LandBuyPass"> | 279 | <notification name="LandBuyPass"> |
274 | 花费 L$[COST] ä½ å°±å¯ä»¥è¿›å…¥è¿™å—土地(‘[PARCEL_NAME]’) | 280 | 花费 [CURRENCY][COST] ä½ å°±å¯ä»¥è¿›å…¥è¿™å—土地(‘[PARCEL_NAME]’) |
275 | [TIME]å°æ—¶ã€‚是å¦è´ä¹°é€šè¡Œè¯ï¼Ÿ | 281 | [TIME]å°æ—¶ã€‚是å¦è´ä¹°é€šè¡Œè¯ï¼Ÿ |
276 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> | 282 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> |
277 | </notification> | 283 | </notification> |
278 | <notification name="SalePriceRestriction"> | 284 | <notification name="SalePriceRestriction"> |
279 | å¦‚æžœå‡ºå”®ç»™ä»»ä½•äººï¼Œå‡ºå”®ä»·æ ¼å¿…é¡» > L$0。 | 285 | å¦‚æžœå‡ºå”®ç»™ä»»ä½•äººï¼Œå‡ºå”®ä»·æ ¼å¿…é¡» > [CURRENCY]0。 |
280 | 如果售价为L$0,请选定一个用户æ¥å”®å‡ºã€‚ | 286 | 如果售价为[CURRENCY]0,请选定一个用户æ¥å”®å‡ºã€‚ |
281 | </notification> | 287 | </notification> |
282 | <notification name="ConfirmLandSaleChange"> | 288 | <notification name="ConfirmLandSaleChange"> |
283 | 所选的 [LAND_SIZE]平方米土地æ£è¢«è®¾ç½®ä¸ºä»£å”®ã€‚ | 289 | 所选的 [LAND_SIZE]平方米土地æ£è¢«è®¾ç½®ä¸ºä»£å”®ã€‚ |
284 | ä½ çš„å”®ä»·å°†æ˜¯ä¸º L$[SALE_PRICE]并将被授æƒå”®ç»™[NAME]。 | 290 | ä½ çš„å”®ä»·å°†æ˜¯ä¸º [CURRENCY][SALE_PRICE]并将被授æƒå”®ç»™[NAME]。 |
285 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="确定"/> | 291 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="确定"/> |
286 | </notification> | 292 | </notification> |
287 | <notification name="ConfirmLandSaleToAnyoneChange"> | 293 | <notification name="ConfirmLandSaleToAnyoneChange"> |
288 | 请注æ„: 点击 ‘售出给任何人’ å°†ä½¿ä½ çš„åœŸåœ°å¯¹æ•´ä¸ªç¬¬[GRID_NAME]社区开放,包括当å‰ä¸åœ¨è¿™ä¸ªåœ°åŒºä¸çš„人。 | 294 | 请注æ„: 点击 ‘售出给任何人’ å°†ä½¿ä½ çš„åœŸåœ°å¯¹æ•´ä¸ª [GRID_NAME] 社区开放,包括当å‰ä¸åœ¨è¿™ä¸ªåœ°åŒºä¸çš„人。 |
289 | 295 | ||
290 | 所选的 [LAND_SIZE]平方米土地æ£è¢«è®¾ç½®ä¸ºä»£å”®ã€‚ | 296 | 所选的 [LAND_SIZE]平方米土地æ£è¢«è®¾ç½®ä¸ºä»£å”®ã€‚ |
291 | ä½ çš„å”®ä»·å°†æ˜¯ä¸º L$[SALE_PRICE]并将被授æƒå”®ç»™[NAME]。 | 297 | ä½ çš„å”®ä»·å°†æ˜¯ä¸º [CURRENCY][SALE_PRICE]并将被授æƒå”®ç»™[NAME]。 |
292 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="确定"/> | 298 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="确定"/> |
293 | </notification> | 299 | </notification> |
294 | <notification name="ReturnObjectsDeededToGroup"> | 300 | <notification name="ReturnObjectsDeededToGroup"> |
@@ -512,7 +518,7 @@ | |||
512 | æ— æ³•å†™å…¥æ–‡ä»¶ [[FILE]] | 518 | æ— æ³•å†™å…¥æ–‡ä»¶ [[FILE]] |
513 | </notification> | 519 | </notification> |
514 | <notification name="UnsupportedHardware"> | 520 | <notification name="UnsupportedHardware"> |
515 | è¦å‘Šï¼š 您的系统没有满足第[VIEWER_NAME]的最低系统需求。如果您继ç»ä½¿ç”¨ç¬¬[VIEWER_NAME],您å¯èƒ½ä¼šå¾—到糟糕的性能体验。ä¸å¹¸çš„æ˜¯ï¼Œæˆ‘ä»¬æ— æ³•ä¸ºä¸æ”¯æŒçš„系统é…备æ供技术支æŒã€‚ | 521 | è¦å‘Šï¼š 您的系统没有满足 [VIEWER_NAME] 的最低系统需求。如果您继ç»ä½¿ç”¨ [VIEWER_NAME] ,您å¯èƒ½ä¼šå¾—到糟糕的性能体验。ä¸å¹¸çš„æ˜¯ï¼Œæˆ‘ä»¬æ— æ³•ä¸ºä¸æ”¯æŒçš„系统é…备æ供技术支æŒã€‚ |
516 | 522 | ||
517 | MINSPECS | 523 | MINSPECS |
518 | 您希望访问 [_URL] 得到更多信æ¯å—? | 524 | 您希望访问 [_URL] 得到更多信æ¯å—? |
@@ -524,7 +530,7 @@ MINSPECS | |||
524 | <notification name="UnknownGPU"> | 530 | <notification name="UnknownGPU"> |
525 | 您的系统ä¸å®‰è£…了一个我们所ä¸çŸ¥é“的显å¡ã€‚ | 531 | 您的系统ä¸å®‰è£…了一个我们所ä¸çŸ¥é“的显å¡ã€‚ |
526 | è¿™ç»å¸¸å‘生于我们还没有æ¥å¾—åŠæµ‹è¯•çš„新硬件上。 | 532 | è¿™ç»å¸¸å‘生于我们还没有æ¥å¾—åŠæµ‹è¯•çš„新硬件上。 |
527 | 第[VIEWER_NAME]将很å¯èƒ½æ£å¸¸è¿è¡Œï¼Œä½†æ‚¨ä¹Ÿè®¸è¦ | 533 | [VIEWER_NAME] 将很å¯èƒ½æ£å¸¸è¿è¡Œï¼Œä½†æ‚¨ä¹Ÿè®¸è¦ |
528 | 调节您的图形设定到更åˆé€‚的水平上。 | 534 | 调节您的图形设定到更åˆé€‚的水平上。 |
529 | (编辑 > 首选项 > 图åƒ)。 | 535 | (编辑 > 首选项 > 图åƒ)。 |
530 | <form name="form"> | 536 | <form name="form"> |
@@ -678,19 +684,24 @@ MINSPECS | |||
678 | [FILE] | 684 | [FILE] |
679 | </notification> | 685 | </notification> |
680 | <notification name="UnknownVorbisEncodeFailure"> | 686 | <notification name="UnknownVorbisEncodeFailure"> |
681 | 对文件进行 Vorbis ç¼–ç æ—¶å‘生错误: [FILE] | 687 | 对文件进行 Vorbis ç¼–ç æ—¶å‘生错误: |
688 | [FILE] | ||
682 | </notification> | 689 | </notification> |
683 | <notification name="CannotEncodeFile"> | 690 | <notification name="CannotEncodeFile"> |
684 | æ— æ³•ç¼–ç 文件[FILE] | 691 | æ— æ³•ç¼–ç 文件 |
692 | [FILE] | ||
685 | </notification> | 693 | </notification> |
686 | <notification name="CorruptResourceFile"> | 694 | <notification name="CorruptResourceFile"> |
687 | å´©å的的资æºæ–‡ä»¶ï¼š [FILE] | 695 | å´©å的的资æºæ–‡ä»¶ï¼š |
696 | [FILE] | ||
688 | </notification> | 697 | </notification> |
689 | <notification name="UnknownResourceFileVersion"> | 698 | <notification name="UnknownResourceFileVersion"> |
690 | 未知的林登资æºæ–‡ä»¶ç‰ˆæœ¬å‘现于文件: [FILE] | 699 | 未知的林登资æºæ–‡ä»¶ç‰ˆæœ¬å‘现于文件: |
700 | [FILE] | ||
691 | </notification> | 701 | </notification> |
692 | <notification name="UnableToCreateOutputFile"> | 702 | <notification name="UnableToCreateOutputFile"> |
693 | æ— æ³•åˆ›å»ºè¾“å‡ºæ–‡ä»¶ï¼š [FILE] | 703 | æ— æ³•åˆ›å»ºè¾“å‡ºæ–‡ä»¶ï¼š |
704 | [FILE] | ||
694 | </notification> | 705 | </notification> |
695 | <notification name="DoNotSupportBulkAnimationUpload"> | 706 | <notification name="DoNotSupportBulkAnimationUpload"> |
696 | 我们现在ä¸æ”¯æŒå¤§å®—ä¸Šä¼ åŠ¨ç”»æ–‡ä»¶ã€‚ | 707 | 我们现在ä¸æ”¯æŒå¤§å®—ä¸Šä¼ åŠ¨ç”»æ–‡ä»¶ã€‚ |
@@ -832,8 +843,13 @@ www.secondlife.com/support | |||
832 | æ— æ³•è´ä¹°åœŸåœ°ï¼š | 843 | æ— æ³•è´ä¹°åœŸåœ°ï¼š |
833 | æ— æ³•æ‰¾åˆ°è¯¥åœŸåœ°æ‰€åœ¨åŒºåŸŸã€‚ | 844 | æ— æ³•æ‰¾åˆ°è¯¥åœŸåœ°æ‰€åœ¨åŒºåŸŸã€‚ |
834 | </notification> | 845 | </notification> |
846 | <notification name="CannotBuyLandMaturity"> | ||
847 | æ— æ³•è´ä¹°åœŸåœ°ï¼š | ||
848 | |||
849 | ä½ æ‰€èƒ½è®¿é—®çš„/选择的é™åˆ¶çº§åˆ«ä¸å…è®¸ä½ è´ä¹°è¯¥åœŸåœ°ã€‚ä½ å¯èƒ½é¦–先需è¦åœ¨å‚数设定ä¸æ›´æ”¹ä½ çš„é™åˆ¶çº§åˆ«ã€‚ | ||
850 | </notification> | ||
835 | <notification name="CannotCloseFloaterBuyLand"> | 851 | <notification name="CannotCloseFloaterBuyLand"> |
836 | 在第[GRID_NAME]完æˆå¯¹è¿™æ¬¡äº¤æ˜“çš„ä¼°ä»·å‰ï¼Œ | 852 | 在 [GRID_NAME] 完æˆå¯¹è¿™æ¬¡äº¤æ˜“çš„ä¼°ä»·å‰ï¼Œ |
837 | ä½ ä¸èƒ½å…³é—“è´ä¹°åœŸåœ°â€çª—å£ã€‚ | 853 | ä½ ä¸èƒ½å…³é—“è´ä¹°åœŸåœ°â€çª—å£ã€‚ |
838 | </notification> | 854 | </notification> |
839 | <notification name="CannotDeedLandNothingSelected"> | 855 | <notification name="CannotDeedLandNothingSelected"> |
@@ -908,8 +924,9 @@ www.secondlife.com/support | |||
908 | </notification> | 924 | </notification> |
909 | <notification name="ReleaseLandWarning"> | 925 | <notification name="ReleaseLandWarning"> |
910 | ä½ å°†æ”¾å¼ƒé¢ç§¯ä¸º [AREA] 平方米的土地。 | 926 | ä½ å°†æ”¾å¼ƒé¢ç§¯ä¸º [AREA] 平方米的土地。 |
911 | æ”¾å¼ƒè¯¥åœŸåœ°ä¼šå°†ä»–ä»Žä½ æ‹¥æœ‰çš„åœŸåœ°ä¸ | 927 | |
912 | 移走, ä¸ä¼šå…‘æ¢æˆä»»ä½• L$。 | 928 | æ”¾å¼ƒè¯¥åœŸåœ°ä¼šå°†å®ƒä»Žä½ æŒæœ‰çš„åœŸåœ°ä¸ |
929 | 去除, 但ä¸ä¼šé€€è¿˜ä»»ä½• [CURRENCY]。 | ||
913 | 930 | ||
914 | 是å¦æ”¾å¼ƒåœŸåœ°ï¼Ÿ | 931 | 是å¦æ”¾å¼ƒåœŸåœ°ï¼Ÿ |
915 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="确定"/> | 932 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="确定"/> |
@@ -1001,6 +1018,7 @@ www.secondlife.com/support | |||
1001 | </notification> | 1018 | </notification> |
1002 | <notification name="CannotSaveToAssetStore"> | 1019 | <notification name="CannotSaveToAssetStore"> |
1003 | æ— æ³•å‚¨å˜ [NAME] 至ä¸å¤®èµ„æ–™æœåŠ¡å™¨ã€‚ | 1020 | æ— æ³•å‚¨å˜ [NAME] 至ä¸å¤®èµ„æ–™æœåŠ¡å™¨ã€‚ |
1021 | |||
1004 | 这通常åªæ˜¯ä¸´æ—¶çš„问题。请自定义åŽå†æ¬¡ä¿å˜ã€‚ | 1022 | 这通常åªæ˜¯ä¸´æ—¶çš„问题。请自定义åŽå†æ¬¡ä¿å˜ã€‚ |
1005 | 1023 | ||
1006 | 如果问题ä¾ç„¶å˜åœ¨ï¼Œè¯·ç‚¹å‡» | 1024 | 如果问题ä¾ç„¶å˜åœ¨ï¼Œè¯·ç‚¹å‡» |
@@ -1008,7 +1026,7 @@ www.secondlife.com/support | |||
1008 | 您的网络设置的具体信æ¯ã€‚ | 1026 | 您的网络设置的具体信æ¯ã€‚ |
1009 | </notification> | 1027 | </notification> |
1010 | <notification name="YouHaveBeenLoggedOut"> | 1028 | <notification name="YouHaveBeenLoggedOut"> |
1011 | ä½ å·²ç»é€€å‡º[GRID_NAME]: | 1029 | ä½ å·²ç»è¢«é€€å‡º[GRID_NAME]: |
1012 | 1030 | ||
1013 | [MESSAGE] | 1031 | [MESSAGE] |
1014 | 1032 | ||
@@ -1031,7 +1049,7 @@ www.secondlife.com/support | |||
1031 | <notification label="æ·»åŠ å¥½å‹" name="AddFriendWithMessage"> | 1049 | <notification label="æ·»åŠ å¥½å‹" name="AddFriendWithMessage"> |
1032 | 好å‹é—´å¯ä»¥ç›¸äº’授æƒæŸ¥çœ‹å„自在地图上的ä½ç½®å’Œåœ¨çº¿çŠ¶æ€ã€‚ | 1050 | 好å‹é—´å¯ä»¥ç›¸äº’授æƒæŸ¥çœ‹å„自在地图上的ä½ç½®å’Œåœ¨çº¿çŠ¶æ€ã€‚ |
1033 | 1051 | ||
1034 | åŠ [NAME] 为好å‹å—? | 1052 | 是å¦æè®® [NAME] æˆä¸ºå¥½å‹ï¼Ÿ |
1035 | <form name="form"> | 1053 | <form name="form"> |
1036 | <input name="message" type="text"> | 1054 | <input name="message" type="text"> |
1037 | 您想æˆä¸ºæˆ‘的好å‹ä¹ˆï¼Ÿ | 1055 | 您想æˆä¸ºæˆ‘的好å‹ä¹ˆï¼Ÿ |
@@ -1069,7 +1087,7 @@ www.secondlife.com/support | |||
1069 | ä½ å¿…é¡»ç»™åˆ†ç±»å¹¿å‘Šè®¾å®šä¸€ä¸ªåå—。 | 1087 | ä½ å¿…é¡»ç»™åˆ†ç±»å¹¿å‘Šè®¾å®šä¸€ä¸ªåå—。 |
1070 | </notification> | 1088 | </notification> |
1071 | <notification name="MinClassifiedPrice"> | 1089 | <notification name="MinClassifiedPrice"> |
1072 | 广告刊登出价必须大于 L$[MIN_PRICE]。 | 1090 | 广告刊登出价必须大于 [CURRENCY][MIN_PRICE]。 |
1073 | 1091 | ||
1074 | è¯·è¾“å…¥ä¸€ä¸ªæ›´é«˜çš„ä»·æ ¼ã€‚ | 1092 | è¯·è¾“å…¥ä¸€ä¸ªæ›´é«˜çš„ä»·æ ¼ã€‚ |
1075 | </notification> | 1093 | </notification> |
@@ -1192,8 +1210,7 @@ www.secondlife.com/support | |||
1192 | </notification> | 1210 | </notification> |
1193 | <notification name="ClothingLoading"> | 1211 | <notification name="ClothingLoading"> |
1194 | ä½ çš„è£…æŸä»åœ¨ä¸‹è½½ä¸ã€‚ | 1212 | ä½ çš„è£…æŸä»åœ¨ä¸‹è½½ä¸ã€‚ |
1195 | ä½ çŽ°åœ¨å¯ä»¥æŒ‰æ£å¸¸çš„使用这个世界, | 1213 | ä½ çŽ°åœ¨å¯ä»¥æŒ‰æ£å¸¸åœ°ä½¿ç”¨ [GRID_NAME],其他用户也å¯ä»¥çœ‹è§ä½ 。 |
1196 | 其他用户也å¯ä»¥çœ‹è§ä½ 。 | ||
1197 | <form name="form"> | 1214 | <form name="form"> |
1198 | <ignore name="ignore" text="装æŸä¸‹è½½æ—¶é—´å¤ªé•¿"/> | 1215 | <ignore name="ignore" text="装æŸä¸‹è½½æ—¶é—´å¤ªé•¿"/> |
1199 | </form> | 1216 | </form> |
@@ -1208,7 +1225,7 @@ www.secondlife.com/support | |||
1208 | <usetemplate name="okcancelbuttons" notext="继ç»" yestext="æ–°å¸æˆ·..."/> | 1225 | <usetemplate name="okcancelbuttons" notext="继ç»" yestext="æ–°å¸æˆ·..."/> |
1209 | </notification> | 1226 | </notification> |
1210 | <notification name="LoginPacketNeverReceived"> | 1227 | <notification name="LoginPacketNeverReceived"> |
1211 | 我们é‡åˆ°äº†ä¸€äº›è¿žæŽ¥ä¸Šçš„麻烦。问题å¯èƒ½å‡ºåœ¨æ‚¨çš„互è”网连接,也å¯èƒ½å‡ºåœ¨ç¬¬[GRID_NAME]çš„æœåŠ¡å™¨ã€‚ | 1228 | 我们é‡åˆ°äº†ä¸€äº›è¿žæŽ¥ä¸Šçš„麻烦。问题å¯èƒ½å‡ºåœ¨æ‚¨çš„互è”网连接,也å¯èƒ½å‡ºåœ¨ [GRID_NAME] çš„æœåŠ¡å™¨ã€‚ |
1212 | 1229 | ||
1213 | è¯·å‡ åˆ†é’ŸåŽå†è¯•, 或点击帮助连接我们的支æŒé¡µé¢ï¼Œæˆ–选择 “瞬间移动†æ¥å°è¯•çž¬é—´ç§»åŠ¨å›žå®¶ã€‚ | 1230 | è¯·å‡ åˆ†é’ŸåŽå†è¯•, 或点击帮助连接我们的支æŒé¡µé¢ï¼Œæˆ–选择 “瞬间移动†æ¥å°è¯•çž¬é—´ç§»åŠ¨å›žå®¶ã€‚ |
1214 | <form name="form"> | 1231 | <form name="form"> |
@@ -1227,7 +1244,7 @@ www.secondlife.com/support | |||
1227 | <usetemplate name="okcancelbuttons" notext="女性" yestext="男性"/> | 1244 | <usetemplate name="okcancelbuttons" notext="女性" yestext="男性"/> |
1228 | </notification> | 1245 | </notification> |
1229 | <notification name="NotEnoughCurrency"> | 1246 | <notification name="NotEnoughCurrency"> |
1230 | [NAME] L$ [PRICE] 您没有足够的 L$ æ¥è¿™æ ·åšã€‚ | 1247 | [NAME] [CURRENCY] [PRICE] 您没有足够的 [CURRENCY] æ¥è¿™æ ·åšã€‚ |
1231 | </notification> | 1248 | </notification> |
1232 | <notification name="GrantedModifyRights"> | 1249 | <notification name="GrantedModifyRights"> |
1233 | ä½ å·²ç»è¢«æŽˆäºˆç‰¹æƒï¼Œä½ å¯ä»¥ä»»æ„修改[FIRST_NAME] [LAST_NAME]的物体。 | 1250 | ä½ å·²ç»è¢«æŽˆäºˆç‰¹æƒï¼Œä½ å¯ä»¥ä»»æ„修改[FIRST_NAME] [LAST_NAME]的物体。 |
@@ -1282,17 +1299,17 @@ www.secondlife.com/support | |||
1282 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="烘烤"/> | 1299 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="烘烤"/> |
1283 | </notification> | 1300 | </notification> |
1284 | <notification name="MaxAllowedAgentOnRegion"> | 1301 | <notification name="MaxAllowedAgentOnRegion"> |
1285 | ä½ æœ€å¤šåªèƒ½åˆ—出 [MAX_AGENTS]åå…许的居民。 | 1302 | ä½ æœ€å¤šåªèƒ½åˆ—出 [MAX_AGENTS] åå…许的居民。 |
1286 | </notification> | 1303 | </notification> |
1287 | <notification name="MaxBannedAgentsOnRegion"> | 1304 | <notification name="MaxBannedAgentsOnRegion"> |
1288 | ä½ æœ€å¤šåªèƒ½åˆ—出 [MAX_BANNED] åç¦æ¢çš„居民。 | 1305 | ä½ æœ€å¤šåªèƒ½åˆ—出 [MAX_BANNED] åç¦æ¢çš„居民。 |
1289 | </notification> | 1306 | </notification> |
1290 | <notification name="MaxAgentOnRegionBatch"> | 1307 | <notification name="MaxAgentOnRegionBatch"> |
1291 | å°è¯•æ·»åŠ [NUM_ADDED] å代表时失败: | 1308 | å°è¯•æ·»åŠ [NUM_ADDED] å代表时失败: |
1292 | 超出 [LIST_TYPE] [MAX_AGENTS]åçš„é™åˆ¶ [NUM_EXCESS]å。 | 1309 | 超出 [LIST_TYPE] [MAX_AGENTS] åçš„é™åˆ¶ [NUM_EXCESS] å。 |
1293 | </notification> | 1310 | </notification> |
1294 | <notification name="MaxAllowedGroupsOnRegion"> | 1311 | <notification name="MaxAllowedGroupsOnRegion"> |
1295 | ä½ åªèƒ½æœ‰[MAX_GROUPS]个å…许的社团。 | 1312 | ä½ åªèƒ½æœ‰ [MAX_GROUPS] 个å…许的社团。 |
1296 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="烘烤"/> | 1313 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="烘烤"/> |
1297 | </notification> | 1314 | </notification> |
1298 | <notification name="MaxManagersOnRegion"> | 1315 | <notification name="MaxManagersOnRegion"> |
@@ -1330,7 +1347,7 @@ www.secondlife.com/support | |||
1330 | <usetemplate name="okcancelbuttons" notext="继ç»" yestext="下载"/> | 1347 | <usetemplate name="okcancelbuttons" notext="继ç»" yestext="下载"/> |
1331 | </notification> | 1348 | </notification> |
1332 | <notification name="DownloadWindowsReleaseForDownload"> | 1349 | <notification name="DownloadWindowsReleaseForDownload"> |
1333 | [VIEWER_NAME] 有新版本å¯ç”¨ã€‚ | 1350 | [VIEWER_NAME] 有新版本å¯ç”¨ã€‚ |
1334 | [MESSAGE] | 1351 | [MESSAGE] |
1335 | 1352 | ||
1336 | 这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装æ¤æ›´æ–°ï¼Œä»¥æ”¹å–„性能和稳定性。 | 1353 | 这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装æ¤æ›´æ–°ï¼Œä»¥æ”¹å–„性能和稳定性。 |
@@ -1364,7 +1381,7 @@ www.secondlife.com/support | |||
1364 | </notification> | 1381 | </notification> |
1365 | <notification name="DeedObjectToGroup"> | 1382 | <notification name="DeedObjectToGroup"> |
1366 | 转让æ¤ç‰©ä½“会导致社团: | 1383 | 转让æ¤ç‰©ä½“会导致社团: |
1367 | * 收到付给该物体的L$。 | 1384 | * 收到付给该物体的 [CURRENCY]。 |
1368 | <usetemplate ignoretext="转让物体到社团" name="okcancelignore" notext="å–消" yestext="转让"/> | 1385 | <usetemplate ignoretext="转让物体到社团" name="okcancelignore" notext="å–消" yestext="转让"/> |
1369 | </notification> | 1386 | </notification> |
1370 | <notification name="WebLaunchExternalTarget"> | 1387 | <notification name="WebLaunchExternalTarget"> |
@@ -1462,7 +1479,9 @@ www.secondlife.com/support | |||
1462 | 一个旧社团, 或者拒ç»æ–°ç¤¾å›¢é‚€è¯·ã€‚ | 1479 | 一个旧社团, 或者拒ç»æ–°ç¤¾å›¢é‚€è¯·ã€‚ |
1463 | 离开社团请选择‘编辑’èœå•ä¸‹çš„ | 1480 | 离开社团请选择‘编辑’èœå•ä¸‹çš„ |
1464 | ‘我的社团...’选项。 | 1481 | ‘我的社团...’选项。 |
1482 | |||
1465 | [NAME]é‚€è¯·ä½ æˆä¸ºè¯¥ç¤¾å›¢æˆå‘˜ã€‚ | 1483 | [NAME]é‚€è¯·ä½ æˆä¸ºè¯¥ç¤¾å›¢æˆå‘˜ã€‚ |
1484 | |||
1466 | [INVITE] | 1485 | [INVITE] |
1467 | <usetemplate name="okcancelbuttons" notext="è°¢ç»" yestext="åŠ å…¥"/> | 1486 | <usetemplate name="okcancelbuttons" notext="è°¢ç»" yestext="åŠ å…¥"/> |
1468 | </notification> | 1487 | </notification> |
@@ -1581,7 +1600,7 @@ www.secondlife.com/support | |||
1581 | <notification name="RegionEntryAccessBlocked"> | 1600 | <notification name="RegionEntryAccessBlocked"> |
1582 | 您的é™åˆ¶çº§ä¸å…许您访问æ¤åœ°åŒºã€‚è¿™å¯èƒ½æ˜¯ç”±äºŽæ‚¨çš„年龄还没有被验è¯ã€‚ | 1601 | 您的é™åˆ¶çº§ä¸å…许您访问æ¤åœ°åŒºã€‚è¿™å¯èƒ½æ˜¯ç”±äºŽæ‚¨çš„年龄还没有被验è¯ã€‚ |
1583 | 1602 | ||
1584 | 请检查您的第[VIEWER_NAME]是å¦æ˜¯æœ€æ–°ç‰ˆæœ¬å¹¶åˆ°çŸ¥è¯†åº“去了解有关区访问æƒé™å’Œé™åˆ¶çº§çš„关系。 | 1603 | 请检查您的 [VIEWER_NAME] 是å¦æ˜¯æœ€æ–°ç‰ˆæœ¬å¹¶åˆ°çŸ¥è¯†åº“去了解有关区访问æƒé™å’Œé™åˆ¶çº§çš„关系。 |
1585 | <usetemplate | 1604 | <usetemplate |
1586 | name="okbutton" | 1605 | name="okbutton" |
1587 | yestext="确定"/> | 1606 | yestext="确定"/> |
@@ -1619,7 +1638,7 @@ www.secondlife.com/support | |||
1619 | <notification name="LandClaimAccessBlocked"> | 1638 | <notification name="LandClaimAccessBlocked"> |
1620 | 您的é™åˆ¶çº§ä¸å…许您申请æ¤åœ°çš„产æƒã€‚è¿™å¯èƒ½æ˜¯ç”±äºŽæ‚¨è¿˜æ²¡æœ‰é€šè¿‡å¹´é¾„验è¯ã€‚ | 1639 | 您的é™åˆ¶çº§ä¸å…许您申请æ¤åœ°çš„产æƒã€‚è¿™å¯èƒ½æ˜¯ç”±äºŽæ‚¨è¿˜æ²¡æœ‰é€šè¿‡å¹´é¾„验è¯ã€‚ |
1621 | 1640 | ||
1622 | 请检查您的第[VIEWER_NAME]是å¦æ˜¯æœ€æ–°ç‰ˆæœ¬å¹¶åˆ°çŸ¥è¯†åº“去了解有关区访问æƒé™å’Œé™åˆ¶çº§çš„关系。 | 1641 | 请检查您的 [VIEWER_NAME] 是å¦æ˜¯æœ€æ–°ç‰ˆæœ¬å¹¶åˆ°çŸ¥è¯†åº“去了解有关区访问æƒé™å’Œé™åˆ¶çº§çš„关系。 |
1623 | <usetemplate | 1642 | <usetemplate |
1624 | name="okbutton" | 1643 | name="okbutton" |
1625 | yestext="确定"/> | 1644 | yestext="确定"/> |
@@ -1653,7 +1672,7 @@ www.secondlife.com/support | |||
1653 | <notification name="LandBuyAccessBlocked"> | 1672 | <notification name="LandBuyAccessBlocked"> |
1654 | 您的é™åˆ¶çº§ä¸å…许您è´ä¹°æ¤åœŸåœ°ã€‚è¿™å¯èƒ½æ˜¯ç”±äºŽæ‚¨è¿˜æ²¡æœ‰é€šè¿‡å¹´é¾„验è¯ã€‚ | 1673 | 您的é™åˆ¶çº§ä¸å…许您è´ä¹°æ¤åœŸåœ°ã€‚è¿™å¯èƒ½æ˜¯ç”±äºŽæ‚¨è¿˜æ²¡æœ‰é€šè¿‡å¹´é¾„验è¯ã€‚ |
1655 | 1674 | ||
1656 | 请检查您的第[VIEWER_NAME]是å¦æ˜¯æœ€æ–°ç‰ˆæœ¬å¹¶åˆ°çŸ¥è¯†åº“去了解有关区访问æƒé™å’Œé™åˆ¶çº§çš„关系。 | 1675 | 请检查您的 [VIEWER_NAME] 是å¦æ˜¯æœ€æ–°ç‰ˆæœ¬å¹¶åˆ°çŸ¥è¯†åº“去了解有关区访问æƒé™å’Œé™åˆ¶çº§çš„关系。 |
1657 | <usetemplate | 1676 | <usetemplate |
1658 | name="okbutton" | 1677 | name="okbutton" |
1659 | yestext="确定"/> | 1678 | yestext="确定"/> |
@@ -1709,7 +1728,7 @@ www.secondlife.com/support | |||
1709 | <notification name="PublishClassified"> | 1728 | <notification name="PublishClassified"> |
1710 | 请éµè®°ï¼š 分类广告费用ä¸ä¼šé€€è¿˜ã€‚ | 1729 | 请éµè®°ï¼š 分类广告费用ä¸ä¼šé€€è¿˜ã€‚ |
1711 | 1730 | ||
1712 | 是å¦ä»¥L$[AMOUNT]å‘布广告? | 1731 | 是å¦ä»¥ [CURRENCY][AMOUNT] å‘布广告? |
1713 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="å‘布"/> | 1732 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="å‘布"/> |
1714 | </notification> | 1733 | </notification> |
1715 | <notification name="SetClassifiedMature"> | 1734 | <notification name="SetClassifiedMature"> |
@@ -1746,6 +1765,14 @@ www.secondlife.com/support | |||
1746 | 1765 | ||
1747 | 默认: 关 | 1766 | 默认: 关 |
1748 | </notification> | 1767 | </notification> |
1768 | <notification | ||
1769 | label="最å°å¹´é¾„" | ||
1770 | name="HelpRegionMinimumAge" | ||
1771 | type="alertmodal"> | ||
1772 | 进入该地区的用户其账户必须至少已建立这么多天æ‰èƒ½è¿›å…¥ã€‚ | ||
1773 | |||
1774 | 默认: 0 (ç¦ç”¨) | ||
1775 | </notification> | ||
1749 | <notification label="é”定飞翔" name="HelpRegionBlockFly"> | 1776 | <notification label="é”定飞翔" name="HelpRegionBlockFly"> |
1750 | 如果选择æ¤é¡¹,æ— è®ºæ¯ä¸ªåœ°å—设置如何, | 1777 | 如果选择æ¤é¡¹,æ— è®ºæ¯ä¸ªåœ°å—设置如何, |
1751 | 人们都ä¸èƒ½åœ¨æ¤åŒºåŸŸå†…飞行。 | 1778 | 人们都ä¸èƒ½åœ¨æ¤åŒºåŸŸå†…飞行。 |
@@ -1783,7 +1810,7 @@ www.secondlife.com/support | |||
1783 | <notification label="é™åˆ¶æŽ¨åŠ¨" name="HelpRegionRestrictPushObject"> | 1810 | <notification label="é™åˆ¶æŽ¨åŠ¨" name="HelpRegionRestrictPushObject"> |
1784 | 设定所有区域为é™åˆ¶æŽ¨åŠ¨åŒºã€‚å±…æ°‘åªèƒ½æŽ¨åŠ¨è‡ªå·±ï¼Œæˆ–者由土地主人的脚本代ç 推动。 | 1811 | 设定所有区域为é™åˆ¶æŽ¨åŠ¨åŒºã€‚å±…æ°‘åªèƒ½æŽ¨åŠ¨è‡ªå·±ï¼Œæˆ–者由土地主人的脚本代ç 推动。 |
1785 | 1812 | ||
1786 | (推动功能和llPushObject() LSL函数有关。) | 1813 | (推动指的是llPushObject() LSL函数。) |
1787 | 1814 | ||
1788 | 默认: 关 | 1815 | 默认: 关 |
1789 | </notification> | 1816 | </notification> |
@@ -1800,11 +1827,11 @@ www.secondlife.com/support | |||
1800 | 1827 | ||
1801 | 默认: 选择 | 1828 | 默认: 选择 |
1802 | </notification> | 1829 | </notification> |
1803 | <notification label="Do Not Show In Search" name="HelpRegionSearch"> | 1830 | <notification label="ä¸åœ¨æœç´¢ä¸æ˜¾ç¤º" name="HelpRegionSearch"> |
1804 | 打开该选项将阻æ¢åœ°å—拥有者在æœç´¢ä¸åˆ—出他们的地å—。 | 1831 | 打开该选项将阻æ¢åœ°å—拥有者在æœç´¢ä¸åˆ—出他们的地å—。 |
1805 | 默认:关 | 1832 | 默认:关 |
1806 | </notification> | 1833 | </notification> |
1807 | <notification label="更改区域的æˆäººæŒ‡æ•°è®¾å®š" name="RegionMaturityChange"> | 1834 | <notification label="更改区域的设定" name="RegionMaturityChange"> |
1808 | æ¤åŒºåŸŸå†…çš„æˆäººå†…容ç‰çº§å·²ç»æ›´æ–°ã€‚ | 1835 | æ¤åŒºåŸŸå†…çš„æˆäººå†…容ç‰çº§å·²ç»æ›´æ–°ã€‚ |
1809 | 1836 | ||
1810 | 但是,世界地图更新时间需è¦å¤§çº¦5分钟, | 1837 | 但是,世界地图更新时间需è¦å¤§çº¦5分钟, |
@@ -1947,8 +1974,8 @@ www.secondlife.com/support | |||
1947 | 地产ç»ç†æ˜¯ä½ 委派的负责区域控制 | 1974 | 地产ç»ç†æ˜¯ä½ 委派的负责区域控制 |
1948 | 和地产调节的居民。 地产ç»ç† | 1975 | 和地产调节的居民。 地产ç»ç† |
1949 | 有æƒæ”¹å˜æŽ§åˆ¶æ¿å†…任何调节项, é™¤äº†ä¸Šä¼ , | 1976 | 有æƒæ”¹å˜æŽ§åˆ¶æ¿å†…任何调节项, é™¤äº†ä¸Šä¼ , |
1950 | 下载, 和压缩地形。特别的, 他们有æƒå…许 | 1977 | 下载, 和压缩地形。值得指出的一点是 |
1951 | 或ç¦æ¢å±…æ°‘è¿›å…¥ä½ çš„åœ°äº§ã€‚ | 1978 | 他们有æƒå…许或ç¦æ¢å±…æ°‘è¿›å…¥ä½ çš„åœ°äº§ã€‚ |
1952 | 1979 | ||
1953 | 地产ç»ç†åªèƒ½è¢«åœ°äº§ä¸»äººé›‡ä½£æˆ–辞退 | 1980 | 地产ç»ç†åªèƒ½è¢«åœ°äº§ä¸»äººé›‡ä½£æˆ–辞退 |
1954 | , ä¸èƒ½äº’ç›¸ä¹‹é—´å§”æ´¾ã€‚è¯·é€‰æ‹©ä½ ä¿¡ä»»çš„ | 1981 | , ä¸èƒ½äº’ç›¸ä¹‹é—´å§”æ´¾ã€‚è¯·é€‰æ‹©ä½ ä¿¡ä»»çš„ |
@@ -2005,8 +2032,8 @@ www.secondlife.com/support | |||
2005 | 默认:关 | 2032 | 默认:关 |
2006 | </notification> | 2033 | </notification> |
2007 | <notification label="è¯éŸ³èŠå¤©ç‰ˆæœ¬ä¸ç¬¦åˆ" name="VoiceVersionMismatch"> | 2034 | <notification label="è¯éŸ³èŠå¤©ç‰ˆæœ¬ä¸ç¬¦åˆ" name="VoiceVersionMismatch"> |
2008 | 该版本的第[VIEWER_NAME]与该地区的è¯éŸ³èŠå¤©ä¸å…¼å®¹ã€‚ | 2035 | 该版本的 [VIEWER_NAME] 与该地区的è¯éŸ³èŠå¤©ä¸å…¼å®¹ã€‚ |
2009 | 为了æ£å¸¸ä½¿ç”¨è¯éŸ³èŠå¤©ä½ 需è¦æ›´æ–°ç¬¬[VIEWER_NAME]。 | 2036 | 为了æ£å¸¸ä½¿ç”¨è¯éŸ³èŠå¤©ä½ 需è¦æ›´æ–° [VIEWER_NAME] 。 |
2010 | </notification> | 2037 | </notification> |
2011 | <notification label="ä¸åŠ¨äº§å¥‘约åˆåŒ" name="HelpEstateCovenant"> | 2038 | <notification label="ä¸åŠ¨äº§å¥‘约åˆåŒ" name="HelpEstateCovenant"> |
2012 | 设置ä¸åŠ¨äº§çš„契约åˆåŒä½¿ä½ å¯ä»¥å‡ºå”®åœ°äº§ä¸çš„土地。如果ä¸åŠ¨äº§å¥‘约åˆåŒæ²¡æœ‰è®¾ç½®ï¼Œä½ 则ä¸èƒ½å‡ºå”®åœŸåœ°ã€‚如果在买主è´ä¹°ä¹‹å‰ï¼Œä½ ä¸æƒ³åœ¨åœŸåœ°ä¸Šè®¾ç½®ä»»ä½•ç›¸å…³çš„给买主的æ„è§å’Œè§„å®šï¼Œä½ çš„å¥‘çº¦åˆåŒçš„注释å¡å¯ä»¥æ˜¯ç©ºçš„。 | 2039 | 设置ä¸åŠ¨äº§çš„契约åˆåŒä½¿ä½ å¯ä»¥å‡ºå”®åœ°äº§ä¸çš„土地。如果ä¸åŠ¨äº§å¥‘约åˆåŒæ²¡æœ‰è®¾ç½®ï¼Œä½ 则ä¸èƒ½å‡ºå”®åœŸåœ°ã€‚如果在买主è´ä¹°ä¹‹å‰ï¼Œä½ ä¸æƒ³åœ¨åœŸåœ°ä¸Šè®¾ç½®ä»»ä½•ç›¸å…³çš„给买主的æ„è§å’Œè§„å®šï¼Œä½ çš„å¥‘çº¦åˆåŒçš„注释å¡å¯ä»¥æ˜¯ç©ºçš„。 |
@@ -2028,48 +2055,50 @@ www.secondlife.com/support | |||
2028 | 请仅选择一件物体,å†è¯•ä¸€æ¬¡ã€‚ | 2055 | 请仅选择一件物体,å†è¯•ä¸€æ¬¡ã€‚ |
2029 | </notification> | 2056 | </notification> |
2030 | <notification name="BuyOriginal"> | 2057 | <notification name="BuyOriginal"> |
2031 | 是å¦ä»¥ L$[PRICE] è´ä¹°åŽŸç‰©ä½“? | 2058 | 是å¦ä»¥ [CURRENCY][PRICE] è´ä¹°åŽŸç‰©ä½“? |
2032 | ä½ å°†æˆä¸ºç‰©ä½“的主人。 | 2059 | ä½ å°†æˆä¸ºç‰©ä½“的主人。 |
2033 | ä½ å°†å¯ä»¥ï¼š | 2060 | ä½ å°†å¯ä»¥ï¼š |
2034 | 修改: [MODIFYPERM] | 2061 | • 修改: [MODIFYPERM] |
2035 | å¤åˆ¶ï¼š [COPYPERM] | 2062 | • å¤åˆ¶ï¼š [COPYPERM] |
2036 | 转å–æˆ–èµ é€ï¼š [RESELLPERM] | 2063 | • 转å–æˆ–èµ é€ï¼š [RESELLPERM] |
2037 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> | 2064 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> |
2038 | </notification> | 2065 | </notification> |
2039 | <notification name="BuyOriginalNoOwner"> | 2066 | <notification name="BuyOriginalNoOwner"> |
2040 | 是å¦ä»¥ L$[PRICE] è´ä¹°åŽŸç‰©ä½“? | 2067 | 是å¦ä»¥ [CURRENCY][PRICE] è´ä¹°åŽŸç‰©ä½“? |
2041 | ä½ å°†æˆä¸ºç‰©ä½“的主人。 | 2068 | ä½ å°†æˆä¸ºç‰©ä½“的主人。 |
2042 | ä½ å°†å¯ä»¥ï¼š | 2069 | ä½ å°†å¯ä»¥ï¼š |
2043 | 修改: [MODIFYPERM] | 2070 | • 修改: [MODIFYPERM] |
2044 | å¤åˆ¶ï¼š [COPYPERM] | 2071 | • å¤åˆ¶ï¼š [COPYPERM] |
2045 | 转å–æˆ–èµ é€ï¼š [RESELLPERM] | 2072 | • 转å–æˆ–èµ é€ï¼š [RESELLPERM] |
2046 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> | 2073 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> |
2047 | </notification> | 2074 | </notification> |
2048 | <notification name="BuyCopy"> | 2075 | <notification name="BuyCopy"> |
2049 | 是å¦ä»¥ L$[PRICE] 从 [OWNER] è´ä¹°ç‰©ä½“的副本? | 2076 | 是å¦ä»¥ [CURRENCY][PRICE] 从 [OWNER] è´ä¹°ç‰©ä½“的副本? |
2050 | 这件物体将被å¤åˆ¶åˆ°ä½ 的库å˜ã€‚ | 2077 | 这件物体将被å¤åˆ¶åˆ°ä½ 的库å˜ã€‚ |
2051 | ä½ å°†å¯ä»¥ï¼š | 2078 | ä½ å°†å¯ä»¥ï¼š |
2052 | 修改: [MODIFYPERM] | 2079 | • 修改: [MODIFYPERM] |
2053 | å¤åˆ¶ï¼š [COPYPERM] | 2080 | • å¤åˆ¶ï¼š [COPYPERM] |
2054 | 转å–æˆ–èµ é€ï¼š [RESELLPERM] | 2081 | • 转å–æˆ–èµ é€ï¼š [RESELLPERM] |
2055 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> | 2082 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> |
2056 | </notification> | 2083 | </notification> |
2057 | <notification name="BuyCopyNoOwner"> | 2084 | <notification name="BuyCopyNoOwner"> |
2058 | 是å¦ä»¥ L$[PRICE] è´ä¹°ç‰©ä½“的副本? | 2085 | 是å¦ä»¥ [CURRENCY][PRICE] è´ä¹°ç‰©ä½“的副本? |
2059 | 这件物体将被å¤åˆ¶åˆ°ä½ 的库å˜ã€‚ | 2086 | 这件物体将被å¤åˆ¶åˆ°ä½ 的库å˜ã€‚ |
2060 | ä½ å°†å¯ä»¥ï¼š | 2087 | ä½ å°†å¯ä»¥ï¼š |
2061 | 修改: [MODIFYPERM] | 2088 | • 修改: [MODIFYPERM] |
2062 | å¤åˆ¶ï¼š [COPYPERM] | 2089 | • å¤åˆ¶ï¼š [COPYPERM] |
2063 | 转å–æˆ–èµ é€ï¼š [RESELLPERM] | 2090 | • 转å–æˆ–èµ é€ï¼š [RESELLPERM] |
2064 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> | 2091 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> |
2065 | </notification> | 2092 | </notification> |
2066 | <notification name="BuyContents"> | 2093 | <notification name="BuyContents"> |
2067 | 是å¦ä»¥ L$[PRICE] 从 [OWNER] è´ä¹°å†…容? | 2094 | 是å¦ä»¥ [CURRENCY][PRICE] 从 [OWNER] è´ä¹°å†…容? |
2095 | |||
2068 | 它们将被å¤åˆ¶åˆ°ä½ 的库å˜ã€‚ | 2096 | 它们将被å¤åˆ¶åˆ°ä½ 的库å˜ã€‚ |
2069 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> | 2097 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> |
2070 | </notification> | 2098 | </notification> |
2071 | <notification name="BuyContentsNoOwner"> | 2099 | <notification name="BuyContentsNoOwner"> |
2072 | 是å¦ä»¥ L$[PRICE] è´ä¹°å†…容? | 2100 | 是å¦ä»¥ [CURRENCY][PRICE] è´ä¹°å†…容? |
2101 | |||
2073 | 它们将被å¤åˆ¶åˆ°ä½ 的库å˜ã€‚ | 2102 | 它们将被å¤åˆ¶åˆ°ä½ 的库å˜ã€‚ |
2074 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> | 2103 | <usetemplate name="okcancelbuttons" notext="å–消" yestext="è´ä¹°"/> |
2075 | </notification> | 2104 | </notification> |
@@ -2082,6 +2111,7 @@ www.secondlife.com/support | |||
2082 | </notification> | 2111 | </notification> |
2083 | <notification name="ConfirmPurchasePassword" type="password"> | 2112 | <notification name="ConfirmPurchasePassword" type="password"> |
2084 | æ¤é¡¹äº¤æ˜“将: | 2113 | æ¤é¡¹äº¤æ˜“将: |
2114 | |||
2085 | [ACTION] | 2115 | [ACTION] |
2086 | 2116 | ||
2087 | ä½ ç¡®å®šè¦ç»§ç»è´ä¹°å—? | 2117 | ä½ ç¡®å®šè¦ç»§ç»è´ä¹°å—? |
@@ -2127,16 +2157,19 @@ www.secondlife.com/support | |||
2127 | 这个物体ä¸æ²¡æœ‰ä½ 能够å¤åˆ¶çš„项目。 | 2157 | 这个物体ä¸æ²¡æœ‰ä½ 能够å¤åˆ¶çš„项目。 |
2128 | </notification> | 2158 | </notification> |
2129 | <notification name="WebLaunchAccountHistory"> | 2159 | <notification name="WebLaunchAccountHistory"> |
2130 | 是å¦å‰å¾€ç¬¬[SECOND_LIFE]ç½‘ç«™æŸ¥çœ‹ä½ çš„å¸æˆ·è®°å½•ï¼Ÿ | 2160 | 是å¦å‰å¾€ [SECOND_LIFE] ç½‘ç«™æŸ¥çœ‹ä½ çš„å¸æˆ·è®°å½•ï¼Ÿ |
2131 | <usetemplate ignoretext="打开æµè§ˆå™¨æŸ¥çœ‹å¸æˆ·è®°å½•" name="okcancelignore" notext="å–消" yestext="打开网页"/> | 2161 | <usetemplate ignoretext="打开æµè§ˆå™¨æŸ¥çœ‹å¸æˆ·è®°å½•" name="okcancelignore" notext="å–消" yestext="打开网页"/> |
2132 | </notification> | 2162 | </notification> |
2133 | <notification name="ClickOpenF1Help"> | 2163 | <notification name="ClickOpenF1Help"> |
2134 | 访问第[SECOND_LIFE]帮助网站å—? | 2164 | 访问 [SECOND_LIFE] 帮助网站å—? |
2135 | <usetemplate ignoretext="访问第[SECOND_LIFE]帮助网站时" name="okcancelignore" notext="å–消" yestext="打开页é¢"/> | 2165 | <usetemplate ignoretext="访问 [SECOND_LIFE] 帮助网站时" name="okcancelignore" notext="å–消" yestext="打开页é¢"/> |
2166 | </notification> | ||
2167 | <notification name="NoSupportUrl"> | ||
2168 | [GRID_NAME] 没有支æŒç½‘页的链接。 | ||
2136 | </notification> | 2169 | </notification> |
2137 | <notification name="ConfirmQuit"> | 2170 | <notification name="ConfirmQuit"> |
2138 | 确定退出? | 2171 | 确定退出? |
2139 | <usetemplate ignoretext="退出第[VIEWER_NAME]æ—¶" name="okcancelignore" notext="继ç»" yestext="退出"/> | 2172 | <usetemplate ignoretext="退出 [VIEWER_NAME] æ—¶" name="okcancelignore" notext="继ç»" yestext="退出"/> |
2140 | </notification> | 2173 | </notification> |
2141 | <notification name="HelpReportAbuseEmailLL"> | 2174 | <notification name="HelpReportAbuseEmailLL"> |
2142 | 使用该工具æ¥æŠ¥å‘Šè¿åæœåŠ¡æ¡æ¬¾å’Œç¤¾åŒºæ ‡å‡†ã€‚ 请访问: | 2175 | 使用该工具æ¥æŠ¥å‘Šè¿åæœåŠ¡æ¡æ¬¾å’Œç¤¾åŒºæ ‡å‡†ã€‚ 请访问: |
@@ -2157,9 +2190,9 @@ www.secondlife.com/support | |||
2157 | è¿™å—区域的主人将éµå®ˆåŸºäºŽåœŸåœ°å¥‘约所概述的当地规则,解决报告。 | 2190 | è¿™å—区域的主人将éµå®ˆåŸºäºŽåœŸåœ°å¥‘约所概述的当地规则,解决报告。 |
2158 | (ä½ å¯ä»¥ä»Žä¸–ç•Œèœå•ä¸é€‰æ‹© “关于土地†æ¥æŸ¥çœ‹å¥‘约。) | 2191 | (ä½ å¯ä»¥ä»Žä¸–ç•Œèœå•ä¸é€‰æ‹© “关于土地†æ¥æŸ¥çœ‹å¥‘约。) |
2159 | 2192 | ||
2160 | 该报告的解决结果仅对该区域有效;居民对第[GRID_NAME]其他地方的使用 | 2193 | 该报告的解决结果仅对该区域有效;居民对 [GRID_NAME] 其他地方的使用 |
2161 | å°†ä¸ä¼šå—该报告结果的影å“。<!-- åªæœ‰æž—登实验室能够é™åˆ¶è®¿é—®æ•´ä¸ª | 2194 | å°†ä¸ä¼šå—该报告结果的影å“。<!-- åªæœ‰æž—登实验室能够é™åˆ¶è®¿é—®æ•´ä¸ª |
2162 | 第[GRID_NAME]。--> | 2195 | [GRID_NAME]。--> |
2163 | </notification> | 2196 | </notification> |
2164 | <notification name="HelpReportBug"> | 2197 | <notification name="HelpReportBug"> |
2165 | 这个工具åªç”¨æ¥æŠ¥å‘Šä¸Žæ述或预期工作ä¸ä¸€è‡´çš„技术功能。请尽能æ供详细资料。 | 2198 | 这个工具åªç”¨æ¥æŠ¥å‘Šä¸Žæ述或预期工作ä¸ä¸€è‡´çš„技术功能。请尽能æ供详细资料。 |
@@ -2187,17 +2220,14 @@ http://secondlife.com/community/support.php | |||
2187 | </notification> | 2220 | </notification> |
2188 | <notification name="HelpReportAbuseAbuserLocationEmpty"> | 2221 | <notification name="HelpReportAbuseAbuserLocationEmpty"> |
2189 | 请输入ä¸è‰¯è¡Œä¸ºå‘生的地å€ã€‚ | 2222 | 请输入ä¸è‰¯è¡Œä¸ºå‘生的地å€ã€‚ |
2190 | |||
2191 | 输入æ£ç¡®çš„æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šã€‚ | 2223 | 输入æ£ç¡®çš„æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šã€‚ |
2192 | </notification> | 2224 | </notification> |
2193 | <notification name="HelpReportAbuseSummaryEmpty"> | 2225 | <notification name="HelpReportAbuseSummaryEmpty"> |
2194 | 请输入ä¸è‰¯è¡Œä¸ºçš„概况。 | 2226 | 请输入ä¸è‰¯è¡Œä¸ºçš„概况。 |
2195 | |||
2196 | 输入对事件的æ£ç¡®æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šã€‚ | 2227 | 输入对事件的æ£ç¡®æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šã€‚ |
2197 | </notification> | 2228 | </notification> |
2198 | <notification name="HelpReportBugSummaryEmpty"> | 2229 | <notification name="HelpReportBugSummaryEmpty"> |
2199 | 请输入错误概况。 | 2230 | 请输入错误概况。 |
2200 | |||
2201 | 输入对事件的æ£ç¡®æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†é”™è¯¯æŠ¥å‘Šã€‚ | 2231 | 输入对事件的æ£ç¡®æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†é”™è¯¯æŠ¥å‘Šã€‚ |
2202 | </notification> | 2232 | </notification> |
2203 | <notification name="HelpReportAbuseDetailsEmpty"> | 2233 | <notification name="HelpReportAbuseDetailsEmpty"> |
@@ -2215,9 +2245,9 @@ http://secondlife.com/community/support.php | |||
2215 | 亲爱的居民, | 2245 | 亲爱的居民, |
2216 | 如果您将è¦æŠ¥å‘ŠçŸ¥è¯†äº§æƒä¾µçŠ¯ï¼Œè¯·ç¡®è®¤æ‚¨é€šè¿‡æ£ç¡®çš„æ–¹å¼æŠ¥å‘Šï¼š | 2246 | 如果您将è¦æŠ¥å‘ŠçŸ¥è¯†äº§æƒä¾µçŠ¯ï¼Œè¯·ç¡®è®¤æ‚¨é€šè¿‡æ£ç¡®çš„æ–¹å¼æŠ¥å‘Šï¼š |
2217 | 2247 | ||
2218 | (1) ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šæ‰‹ç»ã€‚您å¯ä»¥æ交一份ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šï¼Œå¦‚果您相信æŸä½å±…æ°‘æ£åœ¨åˆ©ç”¨ç¬¬[SECOND_LIFE]许å¯ç³»ç»Ÿçš„æ¼æ´žï¼Œä¾‹å¦‚使用 CopyBot 或者类似的å¤åˆ¶å·¥å…·ï¼Œæ¥ä¾µçŠ¯çŸ¥è¯†äº§æƒã€‚ä¸è‰¯è¡Œä¸ºè°ƒæŸ¥å°ç»„负责对于è¿å第[SECOND_LIFE]ç¤¾åŒºæ ‡å‡†æˆ–æœåŠ¡æ¡æ¬¾çš„行为进行调查以åŠå®žè¡Œç›¸åº”的惩罚措施。但是,ä¸è‰¯è¡Œä¸ºè°ƒæŸ¥å°ç»„ä¸è´Ÿè´£ä»Žä¸–ç•Œä¸ç§»é™¤å†…容,并且ä¸ä¼šå¯¹è¿™ç±»è¯·æ±‚作出回应。 | 2248 | (1) ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šæ‰‹ç»ã€‚您å¯ä»¥æ交一份ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šï¼Œå¦‚果您相信æŸä½å±…æ°‘æ£åœ¨åˆ©ç”¨ [SECOND_LIFE] 许å¯ç³»ç»Ÿçš„æ¼æ´žï¼Œä¾‹å¦‚使用 CopyBot 或者类似的å¤åˆ¶å·¥å…·ï¼Œæ¥ä¾µçŠ¯çŸ¥è¯†äº§æƒã€‚ä¸è‰¯è¡Œä¸ºè°ƒæŸ¥å°ç»„负责对于è¿å [SECOND_LIFE] ç¤¾åŒºæ ‡å‡†æˆ–æœåŠ¡æ¡æ¬¾çš„行为进行调查以åŠå®žè¡Œç›¸åº”的惩罚措施。但是,ä¸è‰¯è¡Œä¸ºè°ƒæŸ¥å°ç»„ä¸è´Ÿè´£ä»Žä¸–ç•Œä¸ç§»é™¤å†…容,并且ä¸ä¼šå¯¹è¿™ç±»è¯·æ±‚作出回应。 |
2219 | 2249 | ||
2220 | (2) DMCA (æ•°å—åƒå¹´ç‰ˆæƒå定) 或者说内容移除手ç»ã€‚ è¦è¯·æ±‚从第[SECOND_LIFE]ä¸åŽ»é™¤å†…容,您*å¿…é¡»*æ交一份按我们 DMCA æ¡ä¾‹ http://secondlife.com/corporate/dmca.php ä¸æ‰€æŒ‡å‡ºçš„,有效的侵æƒé€šçŸ¥ã€‚ | 2250 | (2) DMCA (æ•°å—åƒå¹´ç‰ˆæƒå定) 或者说内容移除手ç»ã€‚ è¦è¯·æ±‚从 [SECOND_LIFE] ä¸åŽ»é™¤å†…容,您*å¿…é¡»*æ交一份按我们 DMCA æ¡ä¾‹ http://secondlife.com/corporate/dmca.php ä¸æ‰€æŒ‡å‡ºçš„,有效的侵æƒé€šçŸ¥ã€‚ |
2221 | 2251 | ||
2222 | 如果您ä»å¸Œæœ›ç»§ç»ä¸è‰¯è¡Œä¸ºçš„报告,请关é—æ¤çª—å£ï¼Œå¹¶å®Œæˆæ交您的报告。 | 2252 | 如果您ä»å¸Œæœ›ç»§ç»ä¸è‰¯è¡Œä¸ºçš„报告,请关é—æ¤çª—å£ï¼Œå¹¶å®Œæˆæ交您的报告。 |
2223 | 您å¯èƒ½éœ€è¦é€‰æ‹© ‘CopyBot 或利用æ¼æ´žâ€™ 这一特定分类。 | 2253 | 您å¯èƒ½éœ€è¦é€‰æ‹© ‘CopyBot 或利用æ¼æ´žâ€™ 这一特定分类。 |
@@ -2228,10 +2258,12 @@ http://secondlife.com/community/support.php | |||
2228 | </notification> | 2258 | </notification> |
2229 | <notification name="FailedRequirementsCheck"> | 2259 | <notification name="FailedRequirementsCheck"> |
2230 | 以下必须的部件丢失于 [FLOATER]: | 2260 | 以下必须的部件丢失于 [FLOATER]: |
2261 | |||
2231 | [COMPONENTS] | 2262 | [COMPONENTS] |
2232 | </notification> | 2263 | </notification> |
2233 | <notification label="替æ¢å·²ç»å˜åœ¨çš„附件" name="ReplaceAttachment"> | 2264 | <notification label="替æ¢å·²ç»å˜åœ¨çš„附件" name="ReplaceAttachment"> |
2234 | å·²ç»æœ‰ä¸€ä¸ªç‰©ä½“附在身体的这个部ä½ä¸Šäº†ã€‚ | 2265 | å·²ç»æœ‰ä¸€ä¸ªç‰©ä½“附在身体的这个部ä½ä¸Šäº†ã€‚ |
2266 | |||
2235 | ä½ æ˜¯å¦è¦ç”¨æ‰€é€‰ç‰©ä½“替代它? | 2267 | ä½ æ˜¯å¦è¦ç”¨æ‰€é€‰ç‰©ä½“替代它? |
2236 | <form name="form"> | 2268 | <form name="form"> |
2237 | <ignore name="ignore" save_option="true" text="替æ¢å·²æœ‰çš„附件时"/> | 2269 | <ignore name="ignore" save_option="true" text="替æ¢å·²æœ‰çš„附件时"/> |
@@ -2345,7 +2377,7 @@ http://secondlife.com/community/support.php | |||
2345 | 点击 ‘高级水é¢é€‰é¡¹â€™ æ¥æ‰“开较高级水é¢è®¾ç½®çš„编辑器。 | 2377 | 点击 ‘高级水é¢é€‰é¡¹â€™ æ¥æ‰“开较高级水é¢è®¾ç½®çš„编辑器。 |
2346 | </notification> | 2378 | </notification> |
2347 | <notification name="HelpDayCycle"> | 2379 | <notification name="HelpDayCycle"> |
2348 | æ—¥å¤œå‘¨æœŸç¼–è¾‘å™¨ç»™äºˆä½ å¯¹ç¬¬[GRID_NAME]日夜循环ä¸å¤©ç©ºçš„控制。这也是基础环境编辑器的时间滑å—所使用的周期。 | 2380 | æ—¥å¤œå‘¨æœŸç¼–è¾‘å™¨ç»™äºˆä½ å¯¹ [GRID_NAME] 日夜循环ä¸å¤©ç©ºçš„控制。这也是基础环境编辑器的时间滑å—所使用的周期。 |
2349 | 2381 | ||
2350 | 日夜周期编辑器的基础是关键帧。它们是带有天空预设的节点 (在时间图上以ç°è‰²çš„点表示)。当时间æµé€ï¼ŒWindLight 的天空 也会通过过在这些关键帧之间æ’值而产生å˜åŒ–。 | 2382 | 日夜周期编辑器的基础是关键帧。它们是带有天空预设的节点 (在时间图上以ç°è‰²çš„点表示)。当时间æµé€ï¼ŒWindLight 的天空 也会通过过在这些关键帧之间æ’值而产生å˜åŒ–。 |
2351 | 2383 | ||
@@ -2427,7 +2459,7 @@ http://secondlife.com/community/support.php | |||
2427 | 控制云层在 Y 轴移动的速度。 | 2459 | 控制云层在 Y 轴移动的速度。 |
2428 | </notification> | 2460 | </notification> |
2429 | <notification name="HelpClassicClouds"> | 2461 | <notification name="HelpClassicClouds"> |
2430 | 选å–该框以在渲染 WindLight 的云层åŒæ—¶æ¸²æŸ“第[SECOND_LIFE]的旧云层。 | 2462 | 选å–该框以在渲染 WindLight 的云层åŒæ—¶æ¸²æŸ“ [SECOND_LIFE] 的旧云层。 |
2431 | </notification> | 2463 | </notification> |
2432 | <notification name="HelpWaterFogColor"> | 2464 | <notification name="HelpWaterFogColor"> |
2433 | 控制水雾颜色。 | 2465 | 控制水雾颜色。 |
@@ -2515,8 +2547,8 @@ http://secondlife.com/community/support.php | |||
2515 | <notification name="Cannot_Purchase_an_Attachment"> | 2547 | <notification name="Cannot_Purchase_an_Attachment"> |
2516 | 物å“ä½œä¸ºé™„ä»¶æ—¶æ— æ³•è´ä¹°ã€‚ | 2548 | 物å“ä½œä¸ºé™„ä»¶æ—¶æ— æ³•è´ä¹°ã€‚ |
2517 | </notification> | 2549 | </notification> |
2518 | <notification label="About Requests for the Debit Permission" name="DebitPermissionDetails"> | 2550 | <notification label="关于æ款æƒé™è¯·æ±‚" name="DebitPermissionDetails"> |
2519 | 授予该请求将给予脚本æŒç»çš„从您的å¸æˆ·ä¸æå–æž—ç™»å¸ (L$) 的许å¯ã€‚è¦å–消这项许å¯ï¼Œç‰©ä½“çš„æ‹¥æœ‰è€…å¿…é¡»åˆ é™¤ç‰©ä½“æˆ–é‡ç½®ç‰©ä½“ä¸çš„脚本。 | 2551 | 授予该请求将给予脚本æŒç»çš„从您的å¸æˆ·ä¸æå– [CURRENCY] 的许å¯ã€‚è¦å–消这项许å¯ï¼Œç‰©ä½“çš„æ‹¥æœ‰è€…å¿…é¡»åˆ é™¤ç‰©ä½“æˆ–é‡ç½®ç‰©ä½“ä¸çš„脚本。 |
2520 | <usetemplate name="okbutton" yestext="确定"/> | 2552 | <usetemplate name="okbutton" yestext="确定"/> |
2521 | </notification> | 2553 | </notification> |
2522 | <notification name="AutoWearNewClothing"> | 2554 | <notification name="AutoWearNewClothing"> |
@@ -2525,17 +2557,17 @@ http://secondlife.com/community/support.php | |||
2525 | </notification> | 2557 | </notification> |
2526 | <notification name="NotAgeVerified"> | 2558 | <notification name="NotAgeVerified"> |
2527 | 您需è¦éªŒè¯å¹´é¾„æ‰èƒ½è¿›å…¥è¿™ä¸ªåœ°å—。 | 2559 | 您需è¦éªŒè¯å¹´é¾„æ‰èƒ½è¿›å…¥è¿™ä¸ªåœ°å—。 |
2528 | 您希望访问第[SECOND_LIFE]网站验è¯æ‚¨çš„年龄å—? | 2560 | 您希望访问 [SECOND_LIFE] 网站验è¯æ‚¨çš„年龄å—? |
2529 | 2561 | ||
2530 | [_URL] | 2562 | [_URL] |
2531 | <url name="url" option="0"> | 2563 | <url name="url" option="0"> |
2532 | https://secondlife.com/account/verification.php | 2564 | https://secondlife.com/account/verification.php |
2533 | </url> | 2565 | </url> |
2534 | <usetemplate ignoretext="è¦å‘Šæ²¡æœ‰éªŒè¯å¹´é¾„æ—¶" name="okcancelignore" notext="å¦" yestext="是"/> | 2566 | <usetemplate ignoretext="没有验è¯å¹´é¾„æ—¶è¦å‘Š" name="okcancelignore" notext="å¦" yestext="是"/> |
2535 | </notification> | 2567 | </notification> |
2536 | <notification name="Cannot enter parcel: no payment info on file"> | 2568 | <notification name="Cannot enter parcel: no payment info on file"> |
2537 | 在您访问该土地å‰ï¼Œæ‚¨çš„å¸æˆ·éœ€è¦ä»˜æ¬¾ä¿¡æ¯ã€‚ | 2569 | 在您访问该土地å‰ï¼Œæ‚¨çš„å¸æˆ·éœ€è¦ä»˜æ¬¾ä¿¡æ¯ã€‚ |
2538 | 您è¦åˆ°[SECOND_LIFE]网站æ¥è®¾ç½®ä¹ˆï¼Ÿ | 2570 | 您è¦åˆ° [SECOND_LIFE] 网站æ¥è®¾ç½®ä¹ˆï¼Ÿ |
2539 | 2571 | ||
2540 | [_URL] | 2572 | [_URL] |
2541 | <url name="url" option="0"> | 2573 | <url name="url" option="0"> |
@@ -2549,6 +2581,68 @@ http://secondlife.com/community/support.php | |||
2549 | <notification name="SystemMessageTip"> | 2581 | <notification name="SystemMessageTip"> |
2550 | [MESSAGE] | 2582 | [MESSAGE] |
2551 | </notification> | 2583 | </notification> |
2584 | <notification name="SetDisplayNameSuccess"> | ||
2585 | ä½ å¥½ [DISPLAY_NAME]! | ||
2586 | |||
2587 | 和真实生活ä¸ä¸€æ ·ï¼Œå¤§å®¶è®¤è¯†æ–°åå—è¦æœ‰ä¸€æ®µæ—¶é—´ã€‚所以若新的显示å称没有立å³åœ¨ç‰©ä½“ã€è„šæœ¬ã€æœç´¢ç‰ç‰ä¸æ›´æ–°çš„è¯ï¼Œè¯·ç¨å¾…å‡ å¤©ã€‚ | ||
2588 | </notification> | ||
2589 | |||
2590 | <notification name="SetDisplayNameBlocked"> | ||
2591 | 抱æ‰ï¼Œä½ ä¸èƒ½æ›´æ”¹ä½ 的显示åç§°ã€‚è‹¥ä½ è§‰å¾—è¿™ä¸åº”该å‘生,请è”系支æŒäººå‘˜ã€‚ | ||
2592 | </notification> | ||
2593 | |||
2594 | <notification name="SetDisplayNameFailedLength"> | ||
2595 | 抱æ‰ï¼Œé‚£ä¸ªåå—太长了。显示å称最长å¯ä»¥æœ‰ [LENGTH] 个å—符。 | ||
2596 | |||
2597 | 请å°è¯•çŸä¸€ç‚¹çš„åå—。 | ||
2598 | </notification> | ||
2599 | |||
2600 | <notification name="SetDisplayNameFailedGeneric"> | ||
2601 | 抱æ‰ï¼Œæˆ‘们ä¸èƒ½è®¾ç½®ä½ 的显示å称。请ç¨å€™å†è¯•ã€‚ | ||
2602 | </notification> | ||
2603 | |||
2604 | <notification | ||
2605 | icon="alertmodal.tga" | ||
2606 | name="SetDisplayNameMismatch"> | ||
2607 | ä½ é”®å…¥çš„æ˜¾ç¤ºå称ä¸ä¸€è‡´ã€‚请é‡æ–°è¾“入。 | ||
2608 | </notification> | ||
2609 | |||
2610 | <!-- *NOTE: This should never happen --> | ||
2611 | <notification name="AgentDisplayNameUpdateThresholdExceeded"> | ||
2612 | 抱æ‰ï¼Œä½ è¦å¤šç‰ä¸€æ®µæ—¶é—´æ‰èƒ½æ›´æ”¹ä½ 的显示å称。 | ||
2613 | |||
2614 | å‚è§ http://wiki.secondlife.com/wiki/Setting_your_display_name | ||
2615 | |||
2616 | 请ç¨å€™å†è¯•ã€‚ | ||
2617 | </notification> | ||
2618 | |||
2619 | <notification | ||
2620 | icon="alertmodal.tga" | ||
2621 | name="AgentDisplayNameSetBlocked"> | ||
2622 | 抱æ‰ï¼Œæˆ‘们ä¸èƒ½è®¾ç½®ä½ 所希望的显示åç§°ï¼Œå› ä¸ºå…¶ä¸å«æœ‰ç¦æ¢ç”¨è¯ã€‚ | ||
2623 | |||
2624 | 请å°è¯•åˆ«çš„åå—。 | ||
2625 | </notification> | ||
2626 | |||
2627 | <notification | ||
2628 | icon="alertmodal.tga" | ||
2629 | name="AgentDisplayNameSetInvalidUnicode"> | ||
2630 | ä½ æ‰€å¸Œæœ›è®¾ç½®çš„æ˜¾ç¤ºå称包å«æ— 效å—符。 | ||
2631 | </notification> | ||
2632 | |||
2633 | <notification | ||
2634 | icon="alertmodal.tga" | ||
2635 | name="AgentDisplayNameSetOnlyPunctuation"> | ||
2636 | ä½ çš„æ˜¾ç¤ºå称必须å«æœ‰ä¸æ˜¯æ ‡ç‚¹ç¬¦å·çš„å—。 | ||
2637 | </notification> | ||
2638 | |||
2639 | |||
2640 | <notification | ||
2641 | icon="notifytip.tga" | ||
2642 | name="DisplayNameUpdate"> | ||
2643 | [OLD_NAME] ([SLID]) 已改å为 [NEW_NAME]. | ||
2644 | </notification> | ||
2645 | |||
2552 | <notification name="Cancelled"> | 2646 | <notification name="Cancelled"> |
2553 | å·²å–消 | 2647 | å·²å–消 |
2554 | </notification> | 2648 | </notification> |
@@ -2578,7 +2672,7 @@ http://secondlife.com/community/support.php | |||
2578 | (å¤§æ¦‚è¦ 5 分钟) | 2672 | (å¤§æ¦‚è¦ 5 分钟) |
2579 | </notification> | 2673 | </notification> |
2580 | <notification name="UploadPayment"> | 2674 | <notification name="UploadPayment"> |
2581 | æ‚¨ä¸ºäº†ä¸Šä¼ ä»˜å‡ºäº† L$[AMOUNT]。 | 2675 | æ‚¨ä¸ºäº†ä¸Šä¼ ä»˜å‡ºäº† [CURRENCY][AMOUNT]。 |
2582 | </notification> | 2676 | </notification> |
2583 | <notification name="UploadWebSnapshotDone"> | 2677 | <notification name="UploadWebSnapshotDone"> |
2584 | 快照已ç»è¢«ä¸Šä¼ 至网页。 | 2678 | 快照已ç»è¢«ä¸Šä¼ 至网页。 |
@@ -2603,6 +2697,7 @@ http://secondlife.com/community/support.php | |||
2603 | </notification> | 2697 | </notification> |
2604 | <notification name="CapsKeyOn"> | 2698 | <notification name="CapsKeyOn"> |
2605 | 大写é”定处于开å¯çŠ¶æ€ã€‚ | 2699 | 大写é”定处于开å¯çŠ¶æ€ã€‚ |
2700 | |||
2606 | å› ä¸ºè¿™ä¼šå½±å“您键入的密ç , | 2701 | å› ä¸ºè¿™ä¼šå½±å“您键入的密ç , |
2607 | 也许您会想把它关掉。 | 2702 | 也许您会想把它关掉。 |
2608 | </notification> | 2703 | </notification> |
@@ -2730,12 +2825,26 @@ http://secondlife.com/community/support.php | |||
2730 | </notification> | 2825 | </notification> |
2731 | <notification name="DeactivatedGesturesTrigger"> | 2826 | <notification name="DeactivatedGesturesTrigger"> |
2732 | å–消激活了触å‘器相åŒçš„动作: | 2827 | å–消激活了触å‘器相åŒçš„动作: |
2828 | |||
2733 | [NAMES] | 2829 | [NAMES] |
2734 | </notification> | 2830 | </notification> |
2735 | <notification name="NoQuickTime"> | 2831 | <notification name="NoQuickTime"> |
2736 | Apple å…¬å¸çš„ QuickTime æ²¡æœ‰å®‰è£…åœ¨ä½ çš„æ“作系统ä¸ã€‚å¦‚æžœä½ å¸Œæœ›è§‚çœ‹åœ¨æ”¯æŒçš„地å—ä¸æ’放的媒体æµï¼Œåˆ™éœ€è¦ä»Ž | 2832 | Apple å…¬å¸çš„ QuickTime æ²¡æœ‰å®‰è£…åœ¨ä½ çš„æ“作系统ä¸ã€‚å¦‚æžœä½ å¸Œæœ›è§‚çœ‹åœ¨æ”¯æŒçš„地å—ä¸æ’放的媒体æµï¼Œåˆ™éœ€è¦ä»Ž |
2737 | QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | 2833 | QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 |
2738 | </notification> | 2834 | </notification> |
2835 | <notification name="NoPlugin"> | ||
2836 | æ²¡æœ‰æ‰¾åˆ°èƒ½å¤„ç† â€œ[MIME_TYPE]†MIME 类型的æ’件。æ¤ç±»åª’体将ä¸å¯ç”¨ã€‚ | ||
2837 | </notification> | ||
2838 | <notification name="MediaPluginFailed"> | ||
2839 | 以下的媒体æ’件已崩溃: | ||
2840 | [PLUGIN] | ||
2841 | |||
2842 | 请é‡æ–°å®‰è£…或如果æŒç»é‡åˆ°é—®é¢˜ï¼Œæ¸…è”系供应商。 | ||
2843 | <form name="form"> | ||
2844 | <ignore name="ignore" | ||
2845 | text="媒体æ’件崩溃时"/> | ||
2846 | </form> | ||
2847 | </notification> | ||
2739 | <notification name="OwnedObjectsReturned"> | 2848 | <notification name="OwnedObjectsReturned"> |
2740 | 在所选地å—ä¸Šä½ æ‰€æ‹¥æœ‰çš„ç‰©ä½“å·²ç»è¢«å½’è¿˜è‡³ä½ çš„åº“å˜ä¸ã€‚ | 2849 | 在所选地å—ä¸Šä½ æ‰€æ‹¥æœ‰çš„ç‰©ä½“å·²ç»è¢«å½’è¿˜è‡³ä½ çš„åº“å˜ä¸ã€‚ |
2741 | </notification> | 2850 | </notification> |
@@ -2749,7 +2858,9 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2749 | </notification> | 2858 | </notification> |
2750 | <notification name="GroupObjectsReturned"> | 2859 | <notification name="GroupObjectsReturned"> |
2751 | 在所选地å—上,与社团 [GROUPNAME] 分享的物体已ç»è¢«å½’还至它们的主人的库å˜é‡Œã€‚ | 2860 | 在所选地å—上,与社团 [GROUPNAME] 分享的物体已ç»è¢«å½’还至它们的主人的库å˜é‡Œã€‚ |
2861 | |||
2752 | å¯è½¬è®©çš„转让到社团的物体已ç»è¢«å½’还至它们先å‰ä¸»äººå¤„。 | 2862 | å¯è½¬è®©çš„转让到社团的物体已ç»è¢«å½’还至它们先å‰ä¸»äººå¤„。 |
2863 | |||
2753 | ä¸å¯è½¬è®©çš„转让到社团的物体已ç»åˆ 除。 | 2864 | ä¸å¯è½¬è®©çš„转让到社团的物体已ç»åˆ 除。 |
2754 | </notification> | 2865 | </notification> |
2755 | <notification name="UnOwnedObjectsReturned"> | 2866 | <notification name="UnOwnedObjectsReturned"> |
@@ -2757,14 +2868,17 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2757 | </notification> | 2868 | </notification> |
2758 | <notification name="NotSafe"> | 2869 | <notification name="NotSafe"> |
2759 | è¿™å—土地打开了伤害选项 (‘ä¸å®‰å…¨â€™)。 | 2870 | è¿™å—土地打开了伤害选项 (‘ä¸å®‰å…¨â€™)。 |
2871 | |||
2760 | 您在这里å¯èƒ½ä¼šå—伤。如果您æ»äº†ï¼Œæ‚¨å°†ä¼šè¢«çž¬é—´ç§»åŠ¨è‡³æ‚¨çš„家ä½ç½®ã€‚ | 2872 | 您在这里å¯èƒ½ä¼šå—伤。如果您æ»äº†ï¼Œæ‚¨å°†ä¼šè¢«çž¬é—´ç§»åŠ¨è‡³æ‚¨çš„家ä½ç½®ã€‚ |
2761 | </notification> | 2873 | </notification> |
2762 | <notification name="NoFly"> | 2874 | <notification name="NoFly"> |
2763 | è¿™å—土地关é—了飞行 (‘ä¸èƒ½é£žè¡Œâ€™)。 | 2875 | è¿™å—土地关é—了飞行 (‘ä¸èƒ½é£žè¡Œâ€™)。 |
2876 | |||
2764 | 您ä¸èƒ½åœ¨è¿™é‡Œé£žè¡Œã€‚ | 2877 | 您ä¸èƒ½åœ¨è¿™é‡Œé£žè¡Œã€‚ |
2765 | </notification> | 2878 | </notification> |
2766 | <notification name="PushRestricted"> | 2879 | <notification name="PushRestricted"> |
2767 | è¿™å—土地 ‘ä¸å…许推动’。 | 2880 | è¿™å—土地 ‘ä¸å…许推动’。 |
2881 | |||
2768 | 您ä¸èƒ½æŽ¨åŠ¨è¿™é‡Œçš„任何物体,除éžæ‚¨æ‹¥æœ‰è¿™å—土地。 | 2882 | 您ä¸èƒ½æŽ¨åŠ¨è¿™é‡Œçš„任何物体,除éžæ‚¨æ‹¥æœ‰è¿™å—土地。 |
2769 | </notification> | 2883 | </notification> |
2770 | <notification name="NoVoice"> | 2884 | <notification name="NoVoice"> |
@@ -2772,6 +2886,7 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2772 | </notification> | 2886 | </notification> |
2773 | <notification name="NoBuild"> | 2887 | <notification name="NoBuild"> |
2774 | è¿™å—土地上关é—äº†å»ºé€ (‘ä¸èƒ½å»ºé€ ’)。 | 2888 | è¿™å—土地上关é—äº†å»ºé€ (‘ä¸èƒ½å»ºé€ ’)。 |
2889 | |||
2775 | 您ä¸èƒ½åœ¨æ¤åˆ›å»ºç‰©ä½“。 | 2890 | 您ä¸èƒ½åœ¨æ¤åˆ›å»ºç‰©ä½“。 |
2776 | </notification> | 2891 | </notification> |
2777 | <notification name="ScriptsStopped"> | 2892 | <notification name="ScriptsStopped"> |
@@ -2782,13 +2897,14 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2782 | </notification> | 2897 | </notification> |
2783 | <notification name="NoOutsideScripts"> | 2898 | <notification name="NoOutsideScripts"> |
2784 | è¿™å—土地关é—了外部脚本 (‘没有外部脚本’)。 | 2899 | è¿™å—土地关é—了外部脚本 (‘没有外部脚本’)。 |
2900 | |||
2785 | 除了属于土地主人的脚本,任何脚本在这里都ä¸ä¼šè¿è¡Œã€‚ | 2901 | 除了属于土地主人的脚本,任何脚本在这里都ä¸ä¼šè¿è¡Œã€‚ |
2786 | </notification> | 2902 | </notification> |
2787 | <notification name="ClaimPublicLand"> | 2903 | <notification name="ClaimPublicLand"> |
2788 | åªèƒ½å¯¹æ‚¨æ‰€åœ¨çš„公共土地上申请产æƒã€‚ | 2904 | åªèƒ½å¯¹æ‚¨æ‰€åœ¨çš„公共土地上申请产æƒã€‚ |
2789 | </notification> | 2905 | </notification> |
2790 | <notification name="RegionTPAccessBlocked"> | 2906 | <notification name="RegionTPAccessBlocked"> |
2791 | 您的é™åˆ¶çº§ä¸å…许您进入æ¤åœ°ã€‚您å¯èƒ½éœ€è¦ä¸‹è½½å¹¶å®‰è£…最新的第[VIEWER_NAME]软件或å–得年龄验è¯ã€‚ | 2907 | 您的é™åˆ¶çº§ä¸å…许您进入æ¤åœ°ã€‚您å¯èƒ½éœ€è¦ä¸‹è½½å¹¶å®‰è£…最新的 [VIEWER_NAME] 软件或å–得年龄验è¯ã€‚ |
2792 | 2908 | ||
2793 | 请去知识库了解更多关于访问æƒé™ä¸Žé™åˆ¶çº§çš„关系。 | 2909 | 请去知识库了解更多关于访问æƒé™ä¸Žé™åˆ¶çº§çš„关系。 |
2794 | </notification> | 2910 | </notification> |
@@ -2799,8 +2915,8 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2799 | 您的账å·ä¸èƒ½è¿žæŽ¥åˆ°è¯¥â€œå°‘年专属区â€ã€‚ | 2915 | 您的账å·ä¸èƒ½è¿žæŽ¥åˆ°è¯¥â€œå°‘年专属区â€ã€‚ |
2800 | </notification> | 2916 | </notification> |
2801 | <notification name="NoHelpIslandTP"> | 2917 | <notification name="NoHelpIslandTP"> |
2802 | 您ä¸èƒ½çž¬é—´è½¬ç§»å›žâ€œæ´åŠ©å²›â€ã€‚ | 2918 | 您ä¸èƒ½çž¬é—´ç§»åŠ¨å›ž “Help Islandâ€ã€‚ |
2803 | 去“公共æ´åŠ©å²›â€é‡å¤æ‚¨çš„教程。 | 2919 | 去 “Help Island Public†é‡å¤æ‚¨çš„教程。 |
2804 | </notification> | 2920 | </notification> |
2805 | <notification name="ImproperPaymentStatus"> | 2921 | <notification name="ImproperPaymentStatus"> |
2806 | 您没有适当的付款信æ¯ï¼Œä¸èƒ½è¿›å…¥æ¤åŒºã€‚ | 2922 | 您没有适当的付款信æ¯ï¼Œä¸èƒ½è¿›å…¥æ¤åŒºã€‚ |
@@ -2848,19 +2964,19 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2848 | 没有有效的回路 | 2964 | 没有有效的回路 |
2849 | </notification> | 2965 | </notification> |
2850 | <notification name="NoValidTimestamp"> | 2966 | <notification name="NoValidTimestamp"> |
2851 | æ²¡æœ‰æœ‰æ•ˆçš„æ—¶é—´æ ‡è®° | 2967 | 没有有效的时间戳 |
2852 | </notification> | 2968 | </notification> |
2853 | <notification name="NoPendingConnection"> | 2969 | <notification name="NoPendingConnection"> |
2854 | æ— æ³•å»ºç«‹è¿žæŽ¥ã€‚ | 2970 | æ— æ³•å»ºç«‹è¿žæŽ¥ã€‚ |
2855 | </notification> | 2971 | </notification> |
2856 | <notification name="InternalUsherError"> | 2972 | <notification name="InternalUsherError"> |
2857 | çž¬é—´è½¬ç§»çš„ä¼ é€è¿‡ç¨‹å¯¼è‡´äº†ä¸€ä¸ªæœåŠ¡å™¨é”™è¯¯ã€‚第[GRID_NAME]æœåŠ¡å™¨å¯èƒ½å˜åœ¨å¼‚常。 | 2973 | çž¬é—´è½¬ç§»çš„ä¼ é€è¿‡ç¨‹å¯¼è‡´äº†ä¸€ä¸ªæœåŠ¡å™¨é”™è¯¯ã€‚ [GRID_NAME] æœåŠ¡å™¨å¯èƒ½å˜åœ¨å¼‚常。 |
2858 | </notification> | 2974 | </notification> |
2859 | <notification name="NoGoodTPDestination"> | 2975 | <notification name="NoGoodTPDestination"> |
2860 | 在æ¤åœ°åŒºä¸æ— 法找到一个åˆé€‚çš„ä¼ é€ç‚¹ã€‚ | 2976 | 在æ¤åœ°åŒºä¸æ— 法找到一个åˆé€‚çš„ä¼ é€ç‚¹ã€‚ |
2861 | </notification> | 2977 | </notification> |
2862 | <notification name="InternalErrorRegionResolver"> | 2978 | <notification name="InternalErrorRegionResolver"> |
2863 | 您的瞬间转移请求在解释全局åæ ‡æ—¶å¯¼è‡´äº†ä¸€ä¸ªæœåŠ¡å™¨é”™è¯¯ã€‚第[GRID_NAME]æœåŠ¡å™¨å¯èƒ½å˜åœ¨å¼‚常。 | 2979 | 您的瞬间转移请求在解释全局åæ ‡æ—¶å¯¼è‡´äº†ä¸€ä¸ªæœåŠ¡å™¨é”™è¯¯ã€‚ [GRID_NAME] æœåŠ¡å™¨å¯èƒ½å˜åœ¨å¼‚常。 |
2864 | </notification> | 2980 | </notification> |
2865 | <notification name="NoValidLanding"> | 2981 | <notification name="NoValidLanding"> |
2866 | 找ä¸åˆ°ä¸€ä¸ªæœ‰æ•ˆçš„é™è½ç‚¹ | 2982 | 找ä¸åˆ°ä¸€ä¸ªæœ‰æ•ˆçš„é™è½ç‚¹ |
@@ -2894,6 +3010,7 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2894 | </notification> | 3010 | </notification> |
2895 | <notification name="GodMessage"> | 3011 | <notification name="GodMessage"> |
2896 | [NAME] | 3012 | [NAME] |
3013 | |||
2897 | [MESSAGE] | 3014 | [MESSAGE] |
2898 | </notification> | 3015 | </notification> |
2899 | <notification name="JoinGroup"> | 3016 | <notification name="JoinGroup"> |
@@ -2915,6 +3032,7 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2915 | </notification> | 3032 | </notification> |
2916 | <notification name="GotoURL"> | 3033 | <notification name="GotoURL"> |
2917 | [MESSAGE] | 3034 | [MESSAGE] |
3035 | |||
2918 | [URL] | 3036 | [URL] |
2919 | <form name="form"> | 3037 | <form name="form"> |
2920 | <button name="Later" text="ç¨åŽ"/> | 3038 | <button name="Later" text="ç¨åŽ"/> |
@@ -2930,6 +3048,8 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2930 | <form name="form"> | 3048 | <form name="form"> |
2931 | <button name="Accept" text="接å—"/> | 3049 | <button name="Accept" text="接å—"/> |
2932 | <button name="Decline" text="è°¢ç»"/> | 3050 | <button name="Decline" text="è°¢ç»"/> |
3051 | <button name="Profile" text="档案"/> | ||
3052 | <button name="Ignore" text="忽略"/> | ||
2933 | </form> | 3053 | </form> |
2934 | </notification> | 3054 | </notification> |
2935 | <notification name="OfferFriendshipNoMessage"> | 3055 | <notification name="OfferFriendshipNoMessage"> |
@@ -2938,6 +3058,8 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2938 | <form name="form"> | 3058 | <form name="form"> |
2939 | <button name="Accept" text="接å—"/> | 3059 | <button name="Accept" text="接å—"/> |
2940 | <button name="Decline" text="è°¢ç»"/> | 3060 | <button name="Decline" text="è°¢ç»"/> |
3061 | <button name="Profile" text="档案"/> | ||
3062 | <button name="Ignore" text="忽略"/> | ||
2941 | </form> | 3063 | </form> |
2942 | </notification> | 3064 | </notification> |
2943 | <notification name="FriendshipAccepted"> | 3065 | <notification name="FriendshipAccepted"> |
@@ -2947,19 +3069,24 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2947 | [NAME] è°¢ç»äº†æ‚¨çš„好å‹é‚€è¯·ã€‚ | 3069 | [NAME] è°¢ç»äº†æ‚¨çš„好å‹é‚€è¯·ã€‚ |
2948 | </notification> | 3070 | </notification> |
2949 | <notification name="OfferCallingCard"> | 3071 | <notification name="OfferCallingCard"> |
2950 | [FIRST] [LAST] è¦ç»™ä½ 他的通è¯å¡ã€‚è¿™å°†åœ¨ä½ çš„åº“å˜ä¸æ·»åŠ 一个书ç¾ï¼Œè¿™æ ·ä½ å°±å¯ä»¥å¿«é€Ÿçš„通过å³æ—¶æ¶ˆæ¯è”系这ä½å±…民。 | 3072 | [FIRST] [LAST] è¦ç»™ä½ 他的通è¯å¡ã€‚ |
3073 | |||
3074 | è¿™å°†åœ¨ä½ çš„åº“å˜ä¸æ·»åŠ 一个书ç¾ï¼Œè¿™æ ·ä½ å°±å¯ä»¥å¿«é€Ÿçš„通过å³æ—¶æ¶ˆæ¯è”系这ä½å±…民。 | ||
2951 | <form name="form"> | 3075 | <form name="form"> |
2952 | <button name="Accept" text="接å—"/> | 3076 | <button name="Accept" text="接å—"/> |
2953 | <button name="Decline" text="è°¢ç»"/> | 3077 | <button name="Decline" text="è°¢ç»"/> |
3078 | <button name="Ignore" text="忽略"/> | ||
2954 | </form> | 3079 | </form> |
2955 | </notification> | 3080 | </notification> |
2956 | <notification name="RegionRestartMinutes"> | 3081 | <notification name="RegionRestartMinutes"> |
2957 | 地区将在 [MINUTES]分钟åŽé‡æ–°å¯åŠ¨ã€‚ | 3082 | 区域将在 [MINUTES]分钟åŽé‡æ–°å¯åŠ¨ã€‚ |
2958 | 如果ä»ç•™åœ¨æ¤åœ°åŒºå†…,您将会被登出。 | 3083 | |
3084 | 如果ä»ç•™åœ¨æ¤åŒºåŸŸå†…,您将会被登出。 | ||
2959 | </notification> | 3085 | </notification> |
2960 | <notification name="RegionRestartSeconds"> | 3086 | <notification name="RegionRestartSeconds"> |
2961 | 区域将在 [MINUTES]秒åŽé‡æ–°å¯åŠ¨ã€‚ | 3087 | 区域将在 [MINUTES]秒åŽé‡æ–°å¯åŠ¨ã€‚ |
2962 | 如果ä»ç•™åœ¨æ¤åœ°åŒºå†…,您将会被登出。 | 3088 | |
3089 | 如果ä»ç•™åœ¨æ¤åŒºåŸŸå†…,您将会被登出。 | ||
2963 | </notification> | 3090 | </notification> |
2964 | <notification name="LoadWebPage"> | 3091 | <notification name="LoadWebPage"> |
2965 | 是å¦è½½å…¥ç½‘页[URL]? | 3092 | 是å¦è½½å…¥ç½‘页[URL]? |
@@ -2979,12 +3106,13 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2979 | 在数æ®åº“ä¸æ²¡èƒ½æ‰¾åˆ°å为 [DESC] çš„[TYPE]。 | 3106 | 在数æ®åº“ä¸æ²¡èƒ½æ‰¾åˆ°å为 [DESC] çš„[TYPE]。 |
2980 | </notification> | 3107 | </notification> |
2981 | <notification name="InvalidWearable"> | 3108 | <notification name="InvalidWearable"> |
2982 | 您所è¦ç©¿æˆ´çš„物å“使用了一ç§å½“å‰å®¢æˆ·ç«¯æ— 法处ç†çš„功能。请å‡çº§æ‚¨çš„第[VIEWER_NAME]版本以æ£ç¡®ç©¿æˆ´æ¤ç‰©å“。 | 3109 | 您所è¦ç©¿æˆ´çš„物å“使用了一ç§å½“å‰å®¢æˆ·ç«¯æ— 法处ç†çš„功能。请å‡çº§æ‚¨çš„ [VIEWER_NAME] 版本以æ£ç¡®ç©¿æˆ´æ¤ç‰©å“。 |
2983 | </notification> | 3110 | </notification> |
2984 | <notification name="ScriptQuestion"> | 3111 | <notification name="ScriptQuestion"> |
2985 | ‘[OBJECTNAME]’, 一件 ‘[NAME]’ 拥有的物体, 想è¦ï¼š | 3112 | ‘[OBJECTNAME]’, 一件 ‘[NAME]’ 拥有的物体, 想è¦ï¼š |
2986 | 3113 | ||
2987 | [QUESTIONS] | 3114 | [QUESTIONS] |
3115 | |||
2988 | è¿™æ ·å¯ä»¥å—? | 3116 | è¿™æ ·å¯ä»¥å—? |
2989 | <form name="form"> | 3117 | <form name="form"> |
2990 | <button name="Yes" text="å…许"/> | 3118 | <button name="Yes" text="å…许"/> |
@@ -2996,6 +3124,7 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
2996 | ‘[OBJECTNAME]’, 一件 ‘[NAME]’ 拥有的物体, 想è¦ï¼š | 3124 | ‘[OBJECTNAME]’, 一件 ‘[NAME]’ 拥有的物体, 想è¦ï¼š |
2997 | 3125 | ||
2998 | [QUESTIONS] | 3126 | [QUESTIONS] |
3127 | |||
2999 | 如果您ä¸ä¿¡ä»»è¯¥ç‰©ä½“和它的创建者,您应该拒ç»è¿™è¯·æ±‚。点击细节按钮察看详细资料。 | 3128 | 如果您ä¸ä¿¡ä»»è¯¥ç‰©ä½“和它的创建者,您应该拒ç»è¿™è¯·æ±‚。点击细节按钮察看详细资料。 |
3000 | 3129 | ||
3001 | 是å¦æŽˆäºˆè®¸å¯ï¼Ÿ | 3130 | 是å¦æŽˆäºˆè®¸å¯ï¼Ÿ |
@@ -3020,17 +3149,22 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
3020 | </form> | 3149 | </form> |
3021 | </notification> | 3150 | </notification> |
3022 | <notification name="FirstBalanceIncrease"> | 3151 | <notification name="FirstBalanceIncrease"> |
3023 | 您刚收到了 L$[AMOUNT]。 | 3152 | 您刚收到了 [CURRENCY][AMOUNT]。 |
3024 | 物体和其他用户å¯ä»¥å‘您支付L$。 | 3153 | |
3154 | 物体和其他用户å¯ä»¥å‘您支付 [CURRENCY]。 | ||
3155 | |||
3025 | 您的å¸æˆ·ä½™é¢æ˜¾ç¤ºåœ¨å±å¹•çš„å³ä¸Šè§’。 | 3156 | 您的å¸æˆ·ä½™é¢æ˜¾ç¤ºåœ¨å±å¹•çš„å³ä¸Šè§’。 |
3026 | </notification> | 3157 | </notification> |
3027 | <notification name="FirstBalanceDecrease"> | 3158 | <notification name="FirstBalanceDecrease"> |
3028 | 您刚支付了 L$[AMOUNT]。 | 3159 | 您刚支付了 [CURRENCY][AMOUNT]。 |
3160 | |||
3029 | 您的å¸æˆ·ä½™é¢æ˜¾ç¤ºåœ¨å±å¹•çš„å³ä¸Šè§’。 | 3161 | 您的å¸æˆ·ä½™é¢æ˜¾ç¤ºåœ¨å±å¹•çš„å³ä¸Šè§’。 |
3030 | </notification> | 3162 | </notification> |
3031 | <notification name="FirstSit"> | 3163 | <notification name="FirstSit"> |
3032 | 您æ£åœ¨åç€ã€‚ | 3164 | 您æ£åœ¨åç€ã€‚ |
3165 | |||
3033 | 使用方å‘é”® (或者AWSD) æ¥æ”¹å˜è§†è§’。 | 3166 | 使用方å‘é”® (或者AWSD) æ¥æ”¹å˜è§†è§’。 |
3167 | |||
3034 | 点击 ‘站起æ¥â€™ 按钮起身。 | 3168 | 点击 ‘站起æ¥â€™ 按钮起身。 |
3035 | </notification> | 3169 | </notification> |
3036 | <notification name="FirstMap"> | 3170 | <notification name="FirstMap"> |
@@ -3038,6 +3172,12 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
3038 | åŒå‡»ä»¥çž¬é—´ç§»åŠ¨ã€‚ | 3172 | åŒå‡»ä»¥çž¬é—´ç§»åŠ¨ã€‚ |
3039 | 使用å³è¾¹çš„控件查找信æ¯ï¼Œå¹¶æ˜¾ç¤ºä¸åŒçš„背景。 | 3173 | 使用å³è¾¹çš„控件查找信æ¯ï¼Œå¹¶æ˜¾ç¤ºä¸åŒçš„背景。 |
3040 | </notification> | 3174 | </notification> |
3175 | <notification | ||
3176 | icon="notify.tga" | ||
3177 | name="FirstMiniMap" | ||
3178 | type="notify"> | ||
3179 | å³é”®å•å‡»è¿·ä½ 地图查看更多选项。 | ||
3180 | </notification> | ||
3041 | <notification name="FirstBuild"> | 3181 | <notification name="FirstBuild"> |
3042 | 您å¯ä»¥åœ¨ [GRID_NAME] çš„æŸäº›åŒºåŸŸä¸åˆ›å»ºæ–°ç‰©ä½“。 | 3182 | 您å¯ä»¥åœ¨ [GRID_NAME] çš„æŸäº›åŒºåŸŸä¸åˆ›å»ºæ–°ç‰©ä½“。 |
3043 | ä½¿ç”¨å·¦ä¸Šè§’çš„å·¥å…·å»ºé€ ï¼Œä¹Ÿè¯•ä¸€è¯•æŒ‰ä¸‹ Ctrl 或者 Alt 键快速地切æ¢å·¥å…·ã€‚ | 3183 | ä½¿ç”¨å·¦ä¸Šè§’çš„å·¥å…·å»ºé€ ï¼Œä¹Ÿè¯•ä¸€è¯•æŒ‰ä¸‹ Ctrl 或者 Alt 键快速地切æ¢å·¥å…·ã€‚ |
@@ -3064,9 +3204,9 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
3064 | </notification> | 3204 | </notification> |
3065 | <notification name="FirstInventory"> | 3205 | <notification name="FirstInventory"> |
3066 | 这是您的库å˜ï¼Œæ˜¯å˜æ”¾ç‰©ä½“ã€è®°äº‹å¡ã€è¡£æœå’Œæ‚¨æ‹¥æœ‰çš„其他东西的地方。 | 3206 | 这是您的库å˜ï¼Œæ˜¯å˜æ”¾ç‰©ä½“ã€è®°äº‹å¡ã€è¡£æœå’Œæ‚¨æ‹¥æœ‰çš„其他东西的地方。 |
3067 | * è¦ç©¿ä¸Šç‰©ä½“或装备文件夹,将它拖动到您自己身上。 | 3207 | • è¦ç©¿ä¸Šç‰©ä½“或装备文件夹,将它拖动到您自己身上。 |
3068 | * è¦å°†ç‰©ä½“带入世界ä¸ï¼Œå°†å®ƒæ‹–动到地上。 | 3208 | • è¦å°†ç‰©ä½“带入世界ä¸ï¼Œå°†å®ƒæ‹–动到地上。 |
3069 | * è¦é˜…读记事å¡ï¼ŒåŒå‡»å®ƒã€‚ | 3209 | • è¦é˜…读记事å¡ï¼ŒåŒå‡»å®ƒã€‚ |
3070 | </notification> | 3210 | </notification> |
3071 | <notification name="FirstSandbox"> | 3211 | <notification name="FirstSandbox"> |
3072 | 这是一å—沙盒区域。 | 3212 | 这是一å—沙盒区域。 |
@@ -3080,17 +3220,41 @@ QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player。 | |||
3080 | </notification> | 3220 | </notification> |
3081 | <notification name="FirstDebugMenus"> | 3221 | <notification name="FirstDebugMenus"> |
3082 | 您已å¯ç”¨äº†é«˜çº§èœå•ã€‚ | 3222 | 您已å¯ç”¨äº†é«˜çº§èœå•ã€‚ |
3083 | 该èœå•åŒ…å«å¯¹è°ƒè¯•ç¬¬[VIEWER_NAME]çš„å¼€å‘者有用的功能。 | 3223 | 该èœå•åŒ…å«å¯¹è°ƒè¯• [VIEWER_NAME] çš„å¼€å‘者有用的功能。 |
3084 | è¦åˆ‡æ¢è¯¥èœå•ï¼Œåœ¨ Windows ä¸æŒ‰ Ctrl-Alt-D。 在 Mac ä¸æŒ‰ Cmd-Opt-Shift-D。 | 3224 | è¦åˆ‡æ¢è¯¥èœå•ï¼Œåœ¨ Windows ä¸æŒ‰ Ctrl-Alt-D。 在 Mac ä¸æŒ‰ Cmd-Opt-Shift-D。 |
3085 | </notification> | 3225 | </notification> |
3086 | <notification name="FirstSculptedPrim"> | 3226 | <notification name="FirstSculptedPrim"> |
3087 | 您æ£åœ¨ç¼–辑 sculpted 元件。 | 3227 | 您æ£åœ¨ç¼–辑雕塑元件。 |
3088 | Sculpted 元件需è¦ç‰¹æ®Šçš„æè´¨æ¥æŒ‡å®šå…¶å½¢çŠ¶ã€‚ | 3228 | 雕塑元件需è¦ç‰¹æ®Šçš„æè´¨æ¥æŒ‡å®šå…¶å½¢çŠ¶ã€‚ |
3089 | 您å¯ä»¥åœ¨åº“å˜åº“ä¸æ‰¾åˆ°ç¤ºèŒƒ sculpted æ质。 | 3229 | 您å¯ä»¥åœ¨åº“å˜ä¸æ‰¾åˆ°ç¤ºèŒƒé›•å¡‘æ质。 |
3090 | </notification> | 3230 | </notification> |
3091 | <notification name="FirstMedia"> | 3231 | <notification name="FirstMedia"> |
3092 | 您已ç»å¼€å§‹æ’放媒体。媒体å¯ä»¥åœ¨å‚数设置的音频和视频一æ ä¸è®¾ç½®ä¸ºè‡ªåŠ¨æ’放。请注æ„这对于您ä¸ä¿¡ä»»çš„媒体站点å¯èƒ½ä¼šæœ‰å®‰å…¨éšæ‚£ã€‚ | 3232 | 您已ç»å¼€å§‹æ’放媒体。媒体å¯ä»¥åœ¨å‚数设置的音频和视频一æ ä¸è®¾ç½®ä¸ºè‡ªåŠ¨æ’放。请注æ„这对于您ä¸ä¿¡ä»»çš„媒体站点å¯èƒ½ä¼šæœ‰å®‰å…¨éšæ‚£ã€‚ |
3093 | </notification> | 3233 | </notification> |
3234 | <notification name="FirstRLVDetach"> | ||
3235 | 您的一个或多个附件已被 Restrained Life 设置为ä¸å¯å¸ä¸‹ã€‚ | ||
3236 | 请注æ„è¿™åŒæ—¶ä¼šç¦ç”¨æ‰€æœ‰é™„件的‘穿上’选项,除éžå®ƒä»¬è¢«æ£ç¡®åœ°å‘½å。 | ||
3237 | |||
3238 | 详细资料请在 SL Wiki 上æœç´¢â€˜Restrained Life’。 | ||
3239 | </notification> | ||
3240 | |||
3241 | <notification name="FirstRLVFartouch"> | ||
3242 | 您已被è·ç¦»è§¦æ‘¸é™åˆ¶: 您将ä¸èƒ½è§¦æ‘¸ç¦»æ‚¨çš„化身1.5米以外的物体,直到é™åˆ¶è§£é™¤ã€‚ | ||
3243 | |||
3244 | æ示: è·ç¦»å¤–çš„ç‰©ä½“åœ¨é¼ æ ‡åˆ’è¿‡æ—¶å°†ä¸ä¼šæ”¹å˜æŒ‡é’ˆï¼Œå¹¶ä¸”如果您å°è¯•å³é”®ç‚¹å‡»çš„è¯å°†ä¼šå¬åˆ°é”™è¯¯æ示音。 | ||
3245 | </notification> | ||
3246 | |||
3247 | <notification name="FirstRLVGiveToRLV"> | ||
3248 | 接å—物å“时,å称以 '#RLV/~' 开始的文件夹å¯ä»¥è¢«è‡ªåŠ¨æ”¾ç½®åœ¨æ‚¨çš„ #RLV 共享文件夹下。 | ||
3249 | |||
3250 | 请注æ„,一旦å¯ç”¨ï¼ŒæŽ¥å—的物å“将会立å³å¯ä¾›è„šæœ¬ä½¿ç”¨ï¼Œå¹¶å¯ä»¥è°ƒç”¨ RLV API 的所有功能,这å¯èƒ½å¯¼è‡´æ„想ä¸åˆ°çš„或令人ä¸å¿«çš„情况å‘生。 | ||
3251 | |||
3252 | 您是å¦å¸Œæœ›å¯ç”¨è¿™ä¸ªåŠŸèƒ½? | ||
3253 | <usetemplate | ||
3254 | name="okcancelbuttonscanceldefault" | ||
3255 | notext="å¦" | ||
3256 | yestext="是"/> | ||
3257 | </notification> | ||
3094 | <notification name="MaxListSelectMessage"> | 3258 | <notification name="MaxListSelectMessage"> |
3095 | 您从该列表ä¸æœ€å¤šåªèƒ½é€‰æ‹©[MAX_SELECT] 个项目。 | 3259 | 您从该列表ä¸æœ€å¤šåªèƒ½é€‰æ‹©[MAX_SELECT] 个项目。 |
3096 | </notification> | 3260 | </notification> |
@@ -3184,11 +3348,483 @@ Sculpted 元件需è¦ç‰¹æ®Šçš„æè´¨æ¥æŒ‡å®šå…¶å½¢çŠ¶ã€‚ | |||
3184 | <notification name="UnableToOpenCommandURL"> | 3348 | <notification name="UnableToOpenCommandURL"> |
3185 | 您点击的URLä¸èƒ½ä»Žè¯¥æµè§ˆå™¨ä¸æ‰“开。 | 3349 | 您点击的URLä¸èƒ½ä»Žè¯¥æµè§ˆå™¨ä¸æ‰“开。 |
3186 | </notification> | 3350 | </notification> |
3351 | <notification name="QueryClientTags"> | ||
3352 | 您是å¦å¸Œæœ›ä»Ž kokuaviewer.org è‡ªåŠ¨æ›´æ–°å®¢æˆ·ç«¯æ ‡è¯†æ•°æ®åº“? | ||
3353 | |||
3354 | 这将确ä¿æ‚¨å…³äºŽå…¶å®ƒå®¢æˆ·ç«¯çš„资料是最新的。 | ||
3355 | <form name="form"> | ||
3356 | <button | ||
3357 | name="Yes" | ||
3358 | text="是"/> | ||
3359 | <button | ||
3360 | name="No" | ||
3361 | text="å¦"/> | ||
3362 | </form> | ||
3363 | </notification> | ||
3364 | <!--Begin Imprudence notifications--> | ||
3365 | |||
3366 | <notification name="ClickBuildConstants"> | ||
3367 | æœ¬æ ‡ç¾é¡µä¸å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å¸¸æ•°: | ||
3368 | |||
3369 | PX — X è½´ä½ç½® | ||
3370 | PY — Y è½´ä½ç½® | ||
3371 | PZ — Z è½´ä½ç½® | ||
3372 | SX — X 轴尺寸 | ||
3373 | SY — Y 轴尺寸 | ||
3374 | SZ — Z 轴尺寸 | ||
3375 | RX — X 轴角度 | ||
3376 | RY — Y 轴角度 | ||
3377 | RZ — Z 轴角度 | ||
3378 | CB — 路径截æ–开始 | ||
3379 | CE — 路径截æ–ç»“æŸ | ||
3380 | HLW — çªŸçª¿å¤§å° | ||
3381 | SKW — 倾斜 | ||
3382 | PB — 切片/凹陷/剖é¢æˆªæ–开始 | ||
3383 | PE — 切片/凹陷/剖é¢æˆªæ–ç»“æŸ | ||
3384 | TB — æ‰æ›²å¼€å§‹ | ||
3385 | TE — æ‰æ›²ç»“æŸ | ||
3386 | SHX — X 轴顶é¢å€¾æ–œ | ||
3387 | SHY — Y 轴顶é¢å€¾æ–œ | ||
3388 | HLX — X 轴洞的尺寸 | ||
3389 | HLY — Y 轴洞的尺寸 | ||
3390 | TPX — X 轴锥形 | ||
3391 | TPY — Y 轴锥形 | ||
3392 | ROF — åŠå¾„å˜åŒ– | ||
3393 | REV — 旋转次数 | ||
3394 | |||
3395 | PI — π | ||
3396 | TWO_PI — 2π | ||
3397 | PI_BY_TWO — π/2 | ||
3398 | SQRT2 — 2çš„å¹³æ–¹æ ¹ | ||
3399 | DEG_TO_RAD — è§’åº¦åˆ°å¼§åº¦è½¬æ¢ (Ï€/180) | ||
3400 | RAD_TO_DEG — å¼§åº¦åˆ°è§’åº¦è½¬æ¢ (180/Ï€) | ||
3401 | GRAVITY — -9.8 | ||
3402 | |||
3403 | * — 乘 | ||
3404 | \ — 除 | ||
3405 | + — åŠ | ||
3406 | - — å‡ | ||
3407 | |||
3408 | 更多信æ¯è¯·ç‚¹å‡» “更多信æ¯â€ã€‚ | ||
3409 | <usetemplate | ||
3410 | name="okhelpbuttons" | ||
3411 | yestext="确定" | ||
3412 | helptext="更多信æ¯"/> | ||
3413 | </notification> | ||
3414 | |||
3415 | <notification name="ClickTextureConstants" type="alert"> | ||
3416 | æœ¬æ ‡ç¾é¡µä¸å¯ä»¥ä½¿ç”¨ä»¥ä¸‹å¸¸æ•°: | ||
3417 | |||
3418 | TSU — æ¯é¢é‡å¤æ¬¡æ•° (æ°´å¹³) | ||
3419 | TSV — æ¯é¢é‡å¤æ¬¡æ•° (åž‚ç›´) | ||
3420 | TOU — ä½ç§» (æ°´å¹³) | ||
3421 | TOV — ä½ç§» (åž‚ç›´) | ||
3422 | TRNS — é€æ˜Žåº¦ | ||
3423 | TROT — æ质旋转角度 | ||
3424 | GLOW — å‘å…‰ | ||
3425 | |||
3426 | * — 乘 | ||
3427 | \ — 除 | ||
3428 | + — åŠ | ||
3429 | - — å‡ | ||
3430 | |||
3431 | 更多信æ¯è¯·ç‚¹å‡» “更多信æ¯â€ã€‚ | ||
3432 | <usetemplate | ||
3433 | name="okhelpbuttons" | ||
3434 | yestext="确定" | ||
3435 | helptext="更多信æ¯"/> | ||
3436 | </notification> | ||
3437 | |||
3438 | <notification name="ConfirmAutoPilot"> | ||
3439 | ä½ ç¡®å®šè¦å‰å¾€è¿™é‡Œå—? | ||
3440 | <usetemplate | ||
3441 | ignoretext="使用自动寻路时" | ||
3442 | name="okcancelignore" | ||
3443 | notext="å–消" | ||
3444 | yestext="å‰å¾€"/> | ||
3445 | </notification> | ||
3446 | |||
3447 | <!--looks like a singular they - not much I can do about it - Kaku --> | ||
3448 | <notification name="ConfirmDerender"> | ||
3449 | 您确定è¦éšè— [NAME]? | ||
3450 | |||
3451 | [NAME] å°†ä¸å†è¢«æ¸²æŸ“,直到您离开区域或他们更æ¢è£…æŸã€‚ | ||
3452 | <usetemplate | ||
3453 | ignoretext="éšè—物体或化身时" | ||
3454 | name="okcancelignore" | ||
3455 | notext="å–消" | ||
3456 | yestext="éšè—"/> | ||
3457 | </notification> | ||
3458 | |||
3459 | <notification name="ConfirmDoubleClickTP"> | ||
3460 | 您确定è¦çž¬é—´ç§»åŠ¨åˆ°è¿™é‡Œå—? | ||
3461 | <usetemplate | ||
3462 | ignoretext="åŒå‡»çž¬é—´ç§»åŠ¨æ—¶" | ||
3463 | name="okcancelignore" | ||
3464 | notext="å–消" | ||
3465 | yestext="瞬间移动"/> | ||
3466 | </notification> | ||
3467 | |||
3468 | <notification name="ConfirmMuteAgent"> | ||
3469 | 您确定è¦å±è”½ [NAME] (å±…æ°‘)å—? | ||
3470 | <usetemplate | ||
3471 | ignoretext="å±è”½å±…æ°‘æ—¶" | ||
3472 | name="okcancelignore" | ||
3473 | notext="å–消" | ||
3474 | yestext="å±è”½"/> | ||
3475 | </notification> | ||
3476 | |||
3477 | <notification name="ConfirmMuteObject"> | ||
3478 | 您确定è¦å±è”½ [NAME] (物体)å—? | ||
3479 | <usetemplate | ||
3480 | ignoretext="å±è”½ç‰©ä½“æ—¶" | ||
3481 | name="okcancelignore" | ||
3482 | notext="å–消" | ||
3483 | yestext="å±è”½"/> | ||
3484 | </notification> | ||
3485 | |||
3486 | <notification name="ConfirmToggleFullscreen"> | ||
3487 | 您确定è¦åˆ‡æ¢å…¨å±æ¨¡å¼å—? | ||
3488 | <usetemplate | ||
3489 | name="okcancelbuttons" | ||
3490 | notext="å–消" | ||
3491 | yestext="切æ¢"/> | ||
3492 | </notification> | ||
3493 | |||
3494 | <notification name="ConfirmRemoveAllClothes"> | ||
3495 | 您确定è¦è„±ä¸‹æ‰€æœ‰è¡£ç‰©å—? | ||
3496 | <usetemplate | ||
3497 | ignoretext="脱下所有衣物时" | ||
3498 | name="okcancelignore" | ||
3499 | notext="å–消" | ||
3500 | yestext="脱下"/> | ||
3501 | </notification> | ||
3502 | |||
3503 | <notification name="ConfirmResetAllPreferences"> | ||
3504 | 您确定è¦é‡ç½®æ‰€æœ‰è®¾ç½®å—? | ||
3505 | |||
3506 | 设置将在 [VIEWER_NAME] é‡æ–°å¯åŠ¨æ—¶æ¸…除。 | ||
3507 | <usetemplate | ||
3508 | ignoretext="é‡ç½®è®¾ç½®æ—¶" | ||
3509 | name="okcancelignore" | ||
3510 | notext="å–消" | ||
3511 | yestext="é‡ç½®"/> | ||
3512 | </notification> | ||
3513 | |||
3514 | <notification name="ConfirmRestoreToWorld"> | ||
3515 | 您确定è¦æ¢å¤è¯¥ç‰©ä½“到其最åŽçš„ä½ç½®å—? | ||
3516 | |||
3517 | è¦å‘Š: å¦‚æžœä½ ä¸ç¡®å®šç‰©ä½“会æ¢å¤åˆ°å“ªé‡Œ, ä¸è¦æ‰§è¡Œæ¢å¤! | ||
3518 | |||
3519 | 更多信æ¯è¯·ç‚¹å‡» “更多信æ¯â€ã€‚ | ||
3520 | <usetemplate | ||
3521 | name="okcancelhelpignore" | ||
3522 | yestext="æ¢å¤" | ||
3523 | helptext="更多信æ¯" | ||
3524 | notext="å–消" | ||
3525 | ignoretext="æ¢å¤ç‰©ä½“到其最åŽä½ç½®æ—¶" /> | ||
3526 | </notification> | ||
3527 | |||
3528 | <notification name="ConfirmTeleportHome"> | ||
3529 | 您确定è¦çž¬é—´ç§»åŠ¨å›žå®¶å—? | ||
3530 | <usetemplate | ||
3531 | ignoretext="瞬间移动回家时" | ||
3532 | name="okcancelignore" | ||
3533 | notext="å–消" | ||
3534 | yestext="瞬间移动"/> | ||
3535 | </notification> | ||
3536 | |||
3537 | <notification name="ConnectingToRegionError"> | ||
3538 | æ— æ³•è¿žæŽ¥åˆ°å½“å‰åŒºåŸŸã€‚请å°è¯•ç™»å…¥åˆ°å…¶ä»–区域。 | ||
3539 | |||
3540 | 默认登录区域å¯ä»¥åœ¨å‚数设置的一般选项å¡ä¸è®¾ç½®ã€‚ | ||
3541 | </notification> | ||
3542 | |||
3543 | <notification name="DisconnectedFromRegion"> | ||
3544 | 您与所在的区域的链接已被æ–å¼€ã€‚æ— æ³•ç»§ç»ã€‚ | ||
3545 | </notification> | ||
3546 | |||
3547 | <notification name="GridsNoNick"> | ||
3548 | ä¸èƒ½ä¿å˜æ–°çš„ç½‘æ ¼ä¿¡æ¯ã€‚ | ||
3549 | |||
3550 | æ‚¨å¿…é¡»æŒ‡å®šä¸€ä¸ªå”¯ä¸€çš„ç½‘æ ¼æ˜µç§°ã€‚ | ||
3551 | </notification> | ||
3552 | |||
3553 | <notification name="GridsNoLoginUri"> | ||
3554 | ä¸èƒ½ä¿å˜æ–°ç½‘æ ¼ ‘[NAME]’. | ||
3555 | |||
3556 | 您必须指定登入 URI 。 | ||
3557 | </notification> | ||
3558 | |||
3559 | <notification name="GridInfoDirty"> | ||
3560 | 您有未ä¿å˜çš„更改,将会丢失。继ç»ï¼Ÿ | ||
3561 | <usetemplate | ||
3562 | ignoretext="åˆ›å»ºæ–°ç½‘æ ¼æ—¶" | ||
3563 | name="okcancelignore" | ||
3564 | notext="å–消" | ||
3565 | yestext="继ç»"/> | ||
3566 | </notification> | ||
3567 | |||
3568 | <notification name="GridExists"> | ||
3569 | ä¸èƒ½ä¿å˜æ–°ç½‘æ ¼ ‘[NAME]’. | ||
3570 | |||
3571 | 昵称相åŒçš„ç½‘æ ¼å·²ç»å˜åœ¨ã€‚ | ||
3572 | </notification> | ||
3573 | |||
3574 | <notification | ||
3575 | icon="alertmodal.tga" | ||
3576 | name="GridInfoNoLoginUri" | ||
3577 | type="alertmodal"> | ||
3578 | 获å–ç½‘æ ¼ä¿¡æ¯éœ€è¦å…¶ç™»å…¥ URI. | ||
3579 | </notification> | ||
3580 | |||
3581 | <notification name="GridInfoNoLoginUri"> | ||
3582 | 获å–ç½‘æ ¼çš„ä¿¡æ¯éœ€è¦ç½‘æ ¼ç™»å…¥ URI。 | ||
3583 | </notification> | ||
3584 | |||
3585 | <notification name="GridInfoError"> | ||
3586 | æ— æ³•ä»ŽæœåŠ¡å™¨èŽ·å–ç½‘æ ¼ä¿¡æ¯ã€‚ | ||
3587 | </notification> | ||
3588 | |||
3589 | <notification name="IMLogNotFound"> | ||
3590 | 找ä¸åˆ°ä¸Ž [NAME] çš„å³æ—¶èŠå¤©è®°å½•ã€‚ | ||
3591 | <usetemplate | ||
3592 | name="okbutton" | ||
3593 | yestext="确定"/> | ||
3594 | </notification> | ||
3595 | |||
3596 | <notification name="InvalidLogInSecondLife"> | ||
3597 | å“Žå‘€! 您所输入的登入åç§°æ ¼å¼ä¸å¯¹ï¼ | ||
3598 | |||
3599 | [SECOND_LIFE] 接å—以下登入åæ ¼å¼: | ||
3600 | |||
3601 | - 用户å | ||
3602 | - 用户å.Resident | ||
3603 | - å.姓 | ||
3604 | |||
3605 | 如果您没有账户的è¯ï¼Œè¦ä¸è¦çŽ°åœ¨åˆ›å»ºä¸€ä¸ªï¼Ÿ | ||
3606 | <usetemplate | ||
3607 | name="okcancelbuttons" | ||
3608 | notext="å†è¯•ä¸€æ¬¡" | ||
3609 | yestext="创建账户"/> | ||
3610 | </notification> | ||
3611 | |||
3612 | <notification name="InvalidPassword"> | ||
3613 | æ‚¨å·²è¾“å…¥äº†æ— æ•ˆçš„å¯†ç ï¼è¯·é‡è¯•ã€‚ | ||
3614 | </notification> | ||
3615 | |||
3616 | <notification name="IncompleteInventoryItem"> | ||
3617 | 您æ£è®¿é—®çš„物å“尚未在本地å¯ç”¨ã€‚请ç¨å€™å†è¯•ã€‚ | ||
3618 | </notification> | ||
3619 | |||
3620 | <notification name="ShowLookAtInfo"> | ||
3621 | æ˜¾ç¤ºè§†çº¿ç›®æ ‡æ˜¯ä¸€ä¸ªè°ƒè¯•åŠŸèƒ½ï¼Œå¯ä»¥æ˜¾ç¤ºåŒ–身的头部在看什么东西。请注æ„: 这项功能并*ä¸ä¼š*显示化身的摄åƒæœºè§†è§’实际æœå‘哪个方å‘。请ä¸è¦ä¾èµ–该功能ä¿æŠ¤ä»»ä½•éšç§! | ||
3622 | <usetemplate | ||
3623 | ignoretext="è®¾ç½®æ˜¾ç¤ºè§†çº¿ç›®æ ‡æ—¶" | ||
3624 | name="okignore" | ||
3625 | yestext="OK"/> | ||
3626 | </notification> | ||
3627 | |||
3628 | <notification name="WebLaunchImprudenceBlog"> | ||
3629 | å‰å¾€ Imprudence 官方日志阅读最新的新闻和信æ¯ã€‚ | ||
3630 | <usetemplate | ||
3631 | ignoretext="打开网络æµè§ˆå™¨é˜…读网络日志时" | ||
3632 | name="okcancelignore" | ||
3633 | notext="å–消" | ||
3634 | yestext="打开网页"/> | ||
3635 | </notification> | ||
3636 | |||
3637 | <notification name="WebLaunchImprudenceForums"> | ||
3638 | å‰å¾€ Imprudence 官方论å›è®¨è®º Imprudence 工程。 | ||
3639 | <usetemplate | ||
3640 | ignoretext="打开网络æµè§ˆå™¨é˜…读论å›æ—¶" | ||
3641 | name="okcancelignore" | ||
3642 | notext="å–消" | ||
3643 | yestext="打开网页"/> | ||
3644 | </notification> | ||
3645 | |||
3646 | <notification | ||
3647 | icon="alert.tga" | ||
3648 | name="WebLaunchAutoscript" | ||
3649 | type="alert"> | ||
3650 | 打开 Autoscript 生æˆå™¨ (ç”± 3greeneggs.com 制作)? | ||
3651 | <usetemplate | ||
3652 | ignoretext="打开 Autoscript 生æˆå™¨" | ||
3653 | name="okcancelignore" | ||
3654 | notext="å–消" | ||
3655 | yestext="确定"/> | ||
3656 | </notification> | ||
3657 | |||
3658 | <notification | ||
3659 | icon="notify.tga" | ||
3660 | name="FirstAO" | ||
3661 | type="notify"> | ||
3662 | 使用方法å¯ä»¥åœ¨æ–°å»ºè®°äº‹å¡æ¨¡æ¿ä¸æ‰¾åˆ°ã€‚使用工具æ 打开或关é—动画覆盖。 | ||
3663 | </notification> | ||
3664 | |||
3665 | <notification | ||
3666 | icon="notifytip.tga" | ||
3667 | name="NoShadows" | ||
3668 | type="notifytip"> | ||
3669 | ä¸èƒ½å¯ç”¨é˜´å½±ï¼Œå› 为您的图形设置过低。请确定您的图åƒè®¾ç½®ä¸º “æžé«˜â€ 并已å¯ç”¨äº†åŸºæœ¬å’Œå¤§æ°”ç€è‰²å™¨ã€‚ | ||
3670 | </notification> | ||
3671 | |||
3672 | <notification name="NoTextureExportSL"> | ||
3673 | 为了éµå®ˆ Second Life æœåŠ¡åè®®, Imprudence 没有下载导出物体的任何æ质。 | ||
3674 | </notification> | ||
3675 | |||
3676 | <notification | ||
3677 | icon="alert.tga" | ||
3678 | name="Help_CmdLine" | ||
3679 | type="alert"> | ||
3680 | å„ç§å‘½ä»¤è¡ŒåŠŸèƒ½çš„选项。 | ||
3681 | |||
3682 | è¦ä½¿ç”¨æŸä¸€æ¡å‘½ä»¤, 在èŠå¤©æ (本地èŠå¤©) ä¸é”®å…¥å‘½ä»¤å¹¶æŒ‰å›žè½¦é”®ã€‚ | ||
3683 | </notification> | ||
3684 | |||
3685 | <notification label="拼写检查帮助" name="EmeraldHelp_SpellCheck"> | ||
3686 | è¦æ‹¼å†™æ£€æŸ¥æŸä¸ªå•è¯, å³é”®ç‚¹å‡»å®ƒ, 然åŽé€‰æ‹©æ£ç¡®çš„è¯æ›¿æ¢ã€‚ | ||
3687 | 您å¯ä»¥é€‰æ‹©ä¸€ä¸ªåŸºæœ¬è¾žå…¸, 该辞典储å˜è¯å¼å’ŒåŸºæœ¬è¯æ±‡ã€‚ | ||
3688 | 您也å¯ä»¥é€‰æ‹©å®‰è£…其他è¯æ±‡åˆ—表, åªè¦ä»Žåˆ—表ä¸é€‰ä¸ç„¶åŽ “安装â€ã€‚ | ||
3689 | </notification> | ||
3690 | |||
3691 | <notification | ||
3692 | name="ConfirmLightShare" | ||
3693 | type="notify" | ||
3694 | icon="notify.tga"> | ||
3695 | 该区域æ£åœ¨å¹¿æ’自定义天空和水é¢è®¾ç½®ã€‚ | ||
3696 | 应用该区域的设定? ("忽略" å°†ä¼šå¿½ç•¥æ‰€æœ‰åŒºåŸŸè®¾ç½®ï¼Œç›´åˆ°ä½ ç¦»å¼€è¿™ä¸ªåŒºåŸŸã€‚) | ||
3697 | <form name="form"> | ||
3698 | <button name="apply" text="应用"/> | ||
3699 | <button name="temp" text="现在ä¸è¦"/> | ||
3700 | <button name="region" text="忽略"/> | ||
3701 | </form> | ||
3702 | </notification> | ||
3703 | |||
3704 | <notification | ||
3705 | name="ChangeFont" | ||
3706 | icon="notify.tga" | ||
3707 | type="notify"> | ||
3708 | æ–°å—体将在您é‡æ–°å¯åŠ¨ [VIEWER_NAME] åŽä½¿ç”¨ã€‚ | ||
3709 | </notification> | ||
3710 | |||
3711 | <notification name="FirstPrivacy"> | ||
3712 | 注æ„: Second Life æœåŠ¡æ¡æ¬¾è¦æ±‚所有客户端,包括 Imprudence 查看器, 连接到 Second Life æ—¶æ¯ 5 分钟å‘林登实验室å‘é€ä¸€ä¸ª “统计数æ®å°åŒ…â€ã€‚ | ||
3713 | |||
3714 | 该å°åŒ…包括关于您的计算机以åŠæ‚¨ä½¿ç”¨ Second Life 的情况的一些éžä¸ªäººè¯†åˆ«æ€§çš„ä¿¡æ¯, 例如您的计算机硬件和æ“作系统,平å‡å¸§çŽ‡ï¼Œè®¿é—®çš„区域数,附近化身数é‡ï¼Œä»¥åŠå…¶ä»–ä¿¡æ¯ã€‚请阅读 Second Life éšç§æ”¿ç–了解林登实验室如何使用æ¤é¡¹ä»¥åŠå…¶ä»–ä¿¡æ¯ã€‚ | ||
3715 | |||
3716 | 该å°åŒ…ä»…å‘é€ç»™æž—登实验室; Imprudence å¼€å‘者并ä¸æŽ¥æ”¶æˆ–采集任何æ¤ç±»ä¿¡æ¯ã€‚ | ||
3717 | |||
3718 | Second Life æœåŠ¡æ¡æ¬¾ä¸å…许您选择ä¸å‘é€æ¤ä¿¡æ¯ã€‚登入 Second Life 代表您åŒæ„采集这些数æ®ã€‚ | ||
3719 | <usetemplate | ||
3720 | name="okcancelbuttons" | ||
3721 | yestext="登入" notext="å–消"/> | ||
3722 | </notification> | ||
3723 | |||
3724 | <notification | ||
3725 | icon="alert.tga" | ||
3726 | name="MediaAlert" | ||
3727 | type="alert"> | ||
3728 | 该地å—çš„æ‹¥æœ‰è€…å·²è¯·æ±‚æŸ¥çœ‹å™¨åŠ è½½ä»¥ä¸‹ [TYPE] URL: | ||
3729 | |||
3730 | [URL] | ||
3731 | |||
3732 | 您å¯ä»¥é€‰æ‹©å…许或ç¦æ¢å¯¹åº”的域å或世界内物体æœåŠ¡å™¨: | ||
3733 | |||
3734 | [DOMAIN] | ||
3735 | |||
3736 | “å…许†和 “ç¦æ¢â€ 仅对该会è¯æœ‰æ•ˆï¼Œè€Œ “黑åå•â€ å’Œ “白åå•â€ 永久有效。 | ||
3737 | <form name="form"> | ||
3738 | <button | ||
3739 | name="Allow" | ||
3740 | text="å…许"/> | ||
3741 | <button | ||
3742 | name="Deny" | ||
3743 | text="ç¦æ¢"/> | ||
3744 | <button | ||
3745 | name="Blacklist" | ||
3746 | text="黑åå•"/> | ||
3747 | <button | ||
3748 | name="Whitelist" | ||
3749 | text="白åå•"/> | ||
3750 | </form> | ||
3751 | </notification> | ||
3752 | |||
3753 | <notification | ||
3754 | name="MediaListed"> | ||
3755 | [DOMAIN] 的媒体/音频 URL å·²ç»è¢« [LISTED] | ||
3756 | </notification> | ||
3757 | |||
3758 | <notification name="MediaBlocked"> | ||
3759 | å±è”½äº†æ¥è‡ª [DOMAIN] 的媒体/音频。 | ||
3760 | </notification> | ||
3761 | |||
3762 | <notification name="MediaFiltersCleared"> | ||
3763 | 媒体过滤列表已ç»æ¸…除 | ||
3764 | </notification> | ||
3765 | |||
3766 | <notification name="ProxyNeedRestart"> | ||
3767 | Socks 代ç†æœåŠ¡å™¨è®¾ç½®å°†åœ¨æ‚¨é‡æ–°å¯åŠ¨ [VIEWER_NAME] åŽç”Ÿæ•ˆ. | ||
3768 | </notification> | ||
3769 | |||
3770 | <notification name="SOCKS_CONNECT_OK"> | ||
3771 | æˆåŠŸè¿žæŽ¥ Socks5 代ç†æœåŠ¡å™¨ [PROXY]。 | ||
3772 | </notification> | ||
3773 | |||
3774 | <notification name="SOCKS_NOT_PERMITTED"> | ||
3775 | Socks5 代ç†æœåŠ¡å™¨ [PROXY] æ‹’ç»äº†è¿žæŽ¥ï¼Œè¿žæŽ¥æœªè¢«è§„则å…许 | ||
3776 | </notification> | ||
3777 | |||
3778 | <notification name="SOCKS_CONNECT_ERROR"> | ||
3779 | Socks5 代ç†æœåŠ¡å™¨ [PROXY] æ‹’ç»äº†è¿žæŽ¥, æ— æ³•æ‰“å¼€ TCP 连接 | ||
3780 | </notification> | ||
3781 | |||
3782 | <notification name="SOCKS_NOT_ACCEPTABLE"> | ||
3783 | Socks5 代ç†æœåŠ¡å™¨ [PROXY] æ‹’ç»äº†é€‰ä¸çš„身份验è¯ç³»ç»Ÿ | ||
3784 | </notification> | ||
3785 | |||
3786 | <notification name="SOCKS_AUTH_FAIL"> | ||
3787 | Socks5 代ç†æœåŠ¡å™¨ [PROXY] 报告您的身份验è¯ä¿¡æ¯æ— 效 | ||
3788 | </notification> | ||
3789 | |||
3790 | <notification name="SOCKS_UDP_FWD_NOT_GRANTED"> | ||
3791 | Socks5 代ç†æœåŠ¡å™¨ [PROXY] æ‹’ç»äº† UDP å…³è”请求 | ||
3792 | </notification> | ||
3793 | |||
3794 | <notification name="SOCKS_HOST_CONNECT_FAILED"> | ||
3795 | æ— æ³•è¿žæŽ¥åˆ° Socks5 代ç†æœåŠ¡å™¨ [PROXY] | ||
3796 | </notification> | ||
3797 | |||
3798 | <!--End Imprudence notifications--> | ||
3799 | <!-- [KITTY VIEWER] --> | ||
3800 | <notification | ||
3801 | icon="alertmodal.tga" | ||
3802 | name="KittyInvalidWaterlightNotecard" | ||
3803 | type="alert"> | ||
3804 | [NAME] ä¸æ˜¯æœ‰æ•ˆçš„æ°´é¢è®¾å®šèµ„产。 | ||
3805 | </notification> | ||
3806 | |||
3807 | <notification | ||
3808 | icon="alertmodal.tga" | ||
3809 | name="KittyInvalidWindlightNotecard" | ||
3810 | type="alert"> | ||
3811 | [NAME] ä¸æ˜¯æœ‰æ•ˆçš„ WindLight 设定资产。 | ||
3812 | </notification> | ||
3813 | |||
3814 | <notification | ||
3815 | name="KittyWLSaveNotecardAlert"> | ||
3816 | 您是å¦è¦è¦†ç›–å·²ç»ä¿å˜çš„预设? | ||
3817 | <usetemplate | ||
3818 | name="okcancelbuttons" | ||
3819 | notext="å¦" | ||
3820 | yestext="是"/> | ||
3821 | </notification> | ||
3822 | <!-- [/KITTY VIEWER] --> | ||
3187 | <global name="UnsupportedCPU"> | 3823 | <global name="UnsupportedCPU"> |
3188 | - 您的 CPU(ä¸å¤®å¤„ç†å™¨)速度没有达到最低需求。 | 3824 | - 您的 CPU(ä¸å¤®å¤„ç†å™¨)速度没有达到最低需求。 |
3189 | </global> | 3825 | </global> |
3190 | <global name="UnsupportedGLRequirements"> | 3826 | <global name="UnsupportedGLRequirements"> |
3191 | 您似乎没有满足第[VIEWER_NAME]的系统需求的硬件。第[VIEWER_NAME]需è¦æ”¯æŒå¤šé‡æè´¨ (multitexture) | 3827 | 您似乎没有满足 [VIEWER_NAME] 的系统需求的硬件。 [VIEWER_NAME] 需è¦æ”¯æŒå¤šé‡æè´¨ (multitexture) |
3192 | çš„ OpenGL 显示å¡ã€‚如果您满足这个æ¡ä»¶çš„è¯ï¼Œä¹Ÿè®¸æ‚¨éœ€è¦ç¡®è®¤å·²ç» | 3828 | çš„ OpenGL 显示å¡ã€‚如果您满足这个æ¡ä»¶çš„è¯ï¼Œä¹Ÿè®¸æ‚¨éœ€è¦ç¡®è®¤å·²ç» |
3193 | 安装了您的显示å¡çš„最新驱动程åºã€ä»¥åŠæ“作系统的 Service Pack 和补ä¸ã€‚ | 3829 | 安装了您的显示å¡çš„最新驱动程åºã€ä»¥åŠæ“作系统的 Service Pack 和补ä¸ã€‚ |
3194 | 3830 | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_ao_remote_controls.xml b/linden/indra/newview/skins/default/xui/zh/panel_ao_remote_controls.xml new file mode 100644 index 0000000..75d01fe --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/panel_ao_remote_controls.xml | |||
@@ -0,0 +1,6 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel name="ao_controls"> | ||
3 | <button label="动画覆盖" label_selected="动画覆盖" name="ao_btn" | ||
4 | tool_tip="点击这里切æ¢åŠ¨ç”»è¦†ç›–器" /> | ||
5 | <button name="popup_btn" tool_tip="更多选项" width="22" /> | ||
6 | </panel> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_ao_remote_expanded.xml b/linden/indra/newview/skins/default/xui/zh/panel_ao_remote_expanded.xml new file mode 100644 index 0000000..283d7cf --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/panel_ao_remote_expanded.xml | |||
@@ -0,0 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel | ||
3 | name="ao_remote"> | ||
4 | <button | ||
5 | label="å姿覆盖关é—" | ||
6 | label_selected="å姿覆盖打开" | ||
7 | name="ao_sit_btn" /> | ||
8 | </panel> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_audio.xml b/linden/indra/newview/skins/default/xui/zh/panel_audio.xml index a537046..182b184 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_audio.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_audio.xml | |||
@@ -23,6 +23,9 @@ | |||
23 | <slider | 23 | <slider |
24 | name="Wind Volume" | 24 | name="Wind Volume" |
25 | label="环境" /> | 25 | label="环境" /> |
26 | <slider | ||
27 | label="动作" | ||
28 | name="Gestures Volume" /> | ||
26 | <slider name="UI Volume" | 29 | <slider name="UI Volume" |
27 | label="ç•Œé¢" /> | 30 | label="ç•Œé¢" /> |
28 | 31 | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_avatar.xml b/linden/indra/newview/skins/default/xui/zh/panel_avatar.xml index a1ed123..1d1848d 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_avatar.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_avatar.xml | |||
@@ -1,7 +1,10 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel name="Panel Avatar"> | 2 | <panel name="Panel Avatar"> |
3 | <tab_container name="tab"> | 3 | <tab_container name="tab"> |
4 | <panel label="Avatar" name="2nd Life"> | 4 | <panel label="档案" name="2nd Life"> |
5 | <button label="å¤åˆ¶é”®å€¼" label_selected="å¤åˆ¶é”®å€¼" name="btn_copy_uuid" /> | ||
6 | |||
7 | |||
5 | <string name="CaptionTextAcctInfo"> | 8 | <string name="CaptionTextAcctInfo"> |
6 | [ACCTTYPE] | 9 | [ACCTTYPE] |
7 | [PAYMENTINFO] | 10 | [PAYMENTINFO] |
@@ -14,7 +17,7 @@ | |||
14 | 试用者 | 17 | 试用者 |
15 | </string> | 18 | </string> |
16 | <string name="AcctTypeCharterMember"> | 19 | <string name="AcctTypeCharterMember"> |
17 | å®ªç« åˆ¶å®šå§”å‘˜ä¼šæˆå‘˜ | 20 | 终身会员 |
18 | </string> | 21 | </string> |
19 | <string name="AcctTypeEmployee"> | 22 | <string name="AcctTypeEmployee"> |
20 | 林登实验室雇员 | 23 | 林登实验室雇员 |
@@ -40,11 +43,23 @@ | |||
40 | <text name="online_yes"> | 43 | <text name="online_yes"> |
41 | 当å‰åœ¨çº¿ | 44 | 当å‰åœ¨çº¿ |
42 | </text> | 45 | </text> |
46 | <text name="online_no"> | ||
47 | ä¸åœ¨çº¿ | ||
48 | </text> | ||
49 | <text name="online_unknown"> | ||
50 | 在线状æ€æœªçŸ¥ | ||
51 | </text> | ||
43 | <text name="label"> | 52 | <text name="label"> |
44 | 出生: | 53 | 出生: |
45 | </text> | 54 | </text> |
55 | <string name="copy_key_info"> | ||
56 | 已将 [AVATAR] 的键值å¤åˆ¶åˆ°å‰ªè´´æ¿: [KEY] | ||
57 | </string> | ||
58 | <string name="days_old_text"> | ||
59 | ([DAYS] 天) | ||
60 | </string> | ||
46 | <text name="label2"> | 61 | <text name="label2"> |
47 | 账户: | 62 | 账户信æ¯: |
48 | </text> | 63 | </text> |
49 | <text name="partner_label" tool_tip="第二人生æ档。è¦èŽ·å–更多关于如何设置æ¤é¡¹åŠŸèƒ½ï¼Œ 请登陆www.secondlife.com/partner"> | 64 | <text name="partner_label" tool_tip="第二人生æ档。è¦èŽ·å–更多关于如何设置æ¤é¡¹åŠŸèƒ½ï¼Œ 请登陆www.secondlife.com/partner"> |
50 | ææ¡£: | 65 | ææ¡£: |
@@ -61,7 +76,7 @@ | |||
61 | 社团: | 76 | 社团: |
62 | </text> | 77 | </text> |
63 | <text name="About:"> | 78 | <text name="About:"> |
64 | 关于: | 79 | 关于: (8196个å—) |
65 | </text> | 80 | </text> |
66 | <text name="(500 chars)"> | 81 | <text name="(500 chars)"> |
67 | (500 个å—) | 82 | (500 个å—) |
@@ -69,8 +84,11 @@ | |||
69 | <text name="Give item:"> | 84 | <text name="Give item:"> |
70 | 给与物å“: | 85 | 给与物å“: |
71 | </text> | 86 | </text> |
72 | <text name="Give inventory" tool_tip="è¦æŠŠåº“å˜ä¸çš„ç‰©ä½“èµ ä¸Žè¿™ä¸ªäººï¼Œå°†å…¶æ‹–åŠ¨åˆ°è¿™é‡Œã€‚"> | 87 | <text name="drop target" tool_tip="è¦æŠŠåº“å˜ä¸çš„ç‰©ä½“èµ ä¸Žè¿™ä¸ªäººï¼Œå°†å…¶æ‹–åŠ¨åˆ°è¿™é‡Œã€‚"> |
73 | 放置库å˜ç‰©å“于æ¤ã€‚ | 88 | 拖动库å˜æ¡ç›® |
89 | </text> | ||
90 | <text name="Give inventory 2" tool_tip="è¦æŠŠåº“å˜ä¸çš„ç‰©ä½“èµ ä¸Žè¿™ä¸ªäººï¼Œå°†å…¶æ‹–åŠ¨åˆ°è¿™é‡Œã€‚"> | ||
91 | åˆ°è¿™é‡Œèµ ä¸Žå±…æ°‘ | ||
74 | </text> | 92 | </text> |
75 | <check_box label="在æœç´¢ç»“æžœä¸æ˜¾ç¤º" name="allow_publish" tool_tip="在æœç´¢ä¸æ˜¾ç¤ºé¢å¤–ä¿¡æ¯ï¼Œä¾‹å¦‚æ述和照片。"/> | 93 | <check_box label="在æœç´¢ç»“æžœä¸æ˜¾ç¤º" name="allow_publish" tool_tip="在æœç´¢ä¸æ˜¾ç¤ºé¢å¤–ä¿¡æ¯ï¼Œä¾‹å¦‚æ述和照片。"/> |
76 | <button label="?" label_selected="?" name="?"/> | 94 | <button label="?" label_selected="?" name="?"/> |
@@ -78,17 +96,18 @@ | |||
78 | <button label="邀请瞬间移动..." label_selected="邀请瞬间移动..." name="Offer Teleport..."/> | 96 | <button label="邀请瞬间移动..." label_selected="邀请瞬间移动..." name="Offer Teleport..."/> |
79 | <button label="æ·»åŠ ä¸ºå¥½å‹..." label_selected="æ·»åŠ ä¸ºå¥½å‹..." name="Add Friend..."/> | 97 | <button label="æ·»åŠ ä¸ºå¥½å‹..." label_selected="æ·»åŠ ä¸ºå¥½å‹..." name="Add Friend..."/> |
80 | <button label="付款..." label_selected="付款..." name="Pay..."/> | 98 | <button label="付款..." label_selected="付款..." name="Pay..."/> |
81 | <button label="å³æ—¶æ¶ˆæ¯..." label_selected="å³æ—¶æ¶ˆæ¯..." name="Instant Message..." tool_tip="å³æ—¶é€šä¿¡"/> | 99 | <button label="å³æ—¶æ¶ˆæ¯..." label_selected="å³æ—¶æ¶ˆæ¯..." name="Instant Message..." tool_tip="å³æ—¶æ¶ˆæ¯ (IM)"/> |
82 | <button label="å±è”½" label_selected="å±è”½" name="Mute"/> | 100 | <button label="å±è”½" label_selected="å±è”½" name="Mute"/> |
101 | <button label="é‚€è¯·åŠ å…¥ç¤¾å›¢..." label_selected="é‚€è¯·åŠ å…¥ç¤¾å›¢..." name="Invite to Group..." /> | ||
83 | </panel> | 102 | </panel> |
84 | <panel label="Web" name="WebProfile"> | 103 | <panel label="Web" name="WebProfile"> |
85 | <line_editor is_unicode="false" name="url_edit"/> | 104 | <line_editor is_unicode="false" name="url_edit"/> |
86 | <flyout_button label="åŠ è½½" label_selected="åŠ è½½" name="load" tool_tip="用内部æµè§ˆå™¨æ‰“开这个档案页é¢ã€‚"> | 105 | <flyout_button label="åŠ è½½" label_selected="åŠ è½½" name="load" tool_tip="用内部æµè§ˆå™¨æ‰“开这个档案页é¢ã€‚"> |
87 | <flyout_button_item name="open_item"> | 106 | <flyout_button_item name="open_item"> |
88 | 在外部æµè§ˆå™¨ä¸ | 107 | 在外部æµè§ˆå™¨ä¸æ‰“å¼€ |
89 | </flyout_button_item> | 108 | </flyout_button_item> |
90 | <flyout_button_item name="home_item"> | 109 | <flyout_button_item name="home_item"> |
91 | 家连接 | 110 | è¿”å›žèµ·å§‹é¡µé¢ |
92 | </flyout_button_item> | 111 | </flyout_button_item> |
93 | </flyout_button> | 112 | </flyout_button> |
94 | <button label="?" label_selected="?" name="web_profile_help"/> | 113 | <button label="?" label_selected="?" name="web_profile_help"/> |
@@ -122,31 +141,31 @@ | |||
122 | </panel> | 141 | </panel> |
123 | <panel label="收è—" name="Picks"> | 142 | <panel label="收è—" name="Picks"> |
124 | <text name="Tell everyone about your favorite places in Second Life."> | 143 | <text name="Tell everyone about your favorite places in Second Life."> |
125 | å‘Šè¯‰å¤§å®¶ä½ åœ¨ç¬¬äºŒäººç”Ÿä¸æœ€å–œæ¬¢çš„地点。 | 144 | å‘Šè¯‰å¤§å®¶ä½ æœ€å–œæ¬¢çš„åœ°ç‚¹ã€‚ |
126 | </text> | 145 | </text> |
127 | <button label="新建..." label_selected="新建..." name="New..."/> | 146 | <button label="新建..." label_selected="新建..." name="New..."/> |
128 | <button label="åˆ é™¤..." label_selected="åˆ é™¤..." name="Delete..."/> | 147 | <button label="åˆ é™¤..." label_selected="åˆ é™¤..." name="Delete..."/> |
129 | <text name="loading_text"> | 148 | <text name="loading_text"> |
130 | åŠ è½½... | 149 | 载入ä¸... |
131 | </text> | 150 | </text> |
132 | </panel> | 151 | </panel> |
133 | <panel label="分类广告" name="Classified"> | 152 | <panel label="分类广告" name="Classified"> |
134 | <text name="Place an ad in Second Life's classified listings."> | 153 | <text name="Place an ad in Second Life's classified listings."> |
135 | 在第二人生的分类æ ä¸åˆŠç™»å¹¿å‘Šã€‚ | 154 | 在分类广告æ ä¸åˆŠç™»å¹¿å‘Šã€‚ |
136 | </text> | 155 | </text> |
137 | <button label="新建..." label_selected="新建..." name="New..."/> | 156 | <button label="新建..." label_selected="新建..." name="New..."/> |
138 | <button label="åˆ é™¤..." label_selected="åˆ é™¤..." name="Delete..."/> | 157 | <button label="åˆ é™¤..." label_selected="åˆ é™¤..." name="Delete..."/> |
139 | <text name="loading_text"> | 158 | <text name="loading_text"> |
140 | åŠ è½½... | 159 | 载入ä¸... |
141 | </text> | 160 | </text> |
142 | </panel> | 161 | </panel> |
143 | <panel label="第一人生" name="1st Life"> | 162 | <panel label="真实生活" name="1st Life"> |
144 | <text name="Photo:"> | 163 | <text name="Photo:"> |
145 | 照片: | 164 | 照片: |
146 | </text> | 165 | </text> |
147 | <texture_picker label="" name="img" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> | 166 | <texture_picker label="" name="img" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡"/> |
148 | <text name="Info:"> | 167 | <text name="Info:"> |
149 | 消æ¯: | 168 | æ¶ˆæ¯ (8196 个å—): |
150 | </text> | 169 | </text> |
151 | <text name="(250 chars)"> | 170 | <text name="(250 chars)"> |
152 | (250个å—) | 171 | (250个å—) |
@@ -154,7 +173,7 @@ | |||
154 | </panel> | 173 | </panel> |
155 | <panel label="我的备注" name="My Notes"> | 174 | <panel label="我的备注" name="My Notes"> |
156 | <string name="Loading"> | 175 | <string name="Loading"> |
157 | åŠ è½½... | 176 | 载入ä¸... |
158 | </string> | 177 | </string> |
159 | <text name="label"> | 178 | <text name="label"> |
160 | 使用这å—空间æ¥è®°å½•ä½ 关于这个人的笔记。 追踪交易 | 179 | 使用这å—空间æ¥è®°å½•ä½ 关于这个人的笔记。 追踪交易 |
@@ -171,7 +190,7 @@ | |||
171 | <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="对æ¤ä½å±…æ°‘å¼€å¯é¡¾å®¢æœåŠ¡å·¥å…·ã€‚"/> | 190 | <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="对æ¤ä½å±…æ°‘å¼€å¯é¡¾å®¢æœåŠ¡å·¥å…·ã€‚"/> |
172 | <string name="ShowOnMapNonFriend"> | 191 | <string name="ShowOnMapNonFriend"> |
173 | 在地图上显示ä½ç½®ã€‚ | 192 | 在地图上显示ä½ç½®ã€‚ |
174 | ç”±äºŽä½ å’Œå®ƒä»¬ä¹‹é—´æ²¡æœ‰å‹è°Šå…³ç³»ï¼Œæ‰€ä»¥åˆšæ‰çš„æ“ä½œæ— æ•ˆã€‚ | 193 | ç”±äºŽä½ å’Œå¯¹æ–¹ä¹‹é—´æ²¡æœ‰å‹è°Šå…³ç³»ï¼Œæ‰€ä»¥åˆšæ‰çš„æ“ä½œæ— æ•ˆã€‚ |
175 | </string> | 194 | </string> |
176 | <string name="ShowOnMapFriendOffline"> | 195 | <string name="ShowOnMapFriendOffline"> |
177 | 在地图上显示ä½ç½®ã€‚ | 196 | 在地图上显示ä½ç½®ã€‚ |
@@ -190,6 +209,9 @@ | |||
190 | é‚€è¯·çž¬é—´ç§»åŠ¨åˆ°ä½ æ‰€åœ¨çš„ä½ç½®ã€‚ | 209 | é‚€è¯·çž¬é—´ç§»åŠ¨åˆ°ä½ æ‰€åœ¨çš„ä½ç½®ã€‚ |
191 | </string> | 210 | </string> |
192 | <string name="Loading"> | 211 | <string name="Loading"> |
193 | åŠ è½½... | 212 | 载入ä¸... |
213 | </string> | ||
214 | <string name="HiddenLabel"> | ||
215 | (éšè—) | ||
194 | </string> | 216 | </string> |
195 | </panel> | 217 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml b/linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml index f70eef3..761d58a 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml | |||
@@ -26,7 +26,7 @@ | |||
26 | <button label="å‘布..." name="classified_update_btn"/> | 26 | <button label="å‘布..." name="classified_update_btn"/> |
27 | <check_box label="æ¯å‘¨è‡ªåŠ¨æ›´æ–°" name="auto_renew_check"/> | 27 | <check_box label="æ¯å‘¨è‡ªåŠ¨æ›´æ–°" name="auto_renew_check"/> |
28 | <string name="ad_placed_paid"> | 28 | <string name="ad_placed_paid"> |
29 | 广告å‘布: [DATE],为æ¤ä»˜å‡ºäº† L$[AMT]。 | 29 | 广告å‘布: [DATE],为æ¤ä»˜å‡ºäº† [CURRENCY][AMT]。 |
30 | </string> | 30 | </string> |
31 | <string name="update_txt"> | 31 | <string name="update_txt"> |
32 | æ›´æ–° | 32 | æ›´æ–° |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_classified.xml b/linden/indra/newview/skins/default/xui/zh/panel_classified.xml index 09ded10..7646245 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_classified.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_classified.xml | |||
@@ -6,21 +6,21 @@ | |||
6 | <button label="瞬间移动" name="classified_teleport_btn"/> | 6 | <button label="瞬间移动" name="classified_teleport_btn"/> |
7 | <button label="在地图ä¸æ˜¾ç¤º" name="classified_map_btn"/> | 7 | <button label="在地图ä¸æ˜¾ç¤º" name="classified_map_btn"/> |
8 | <button label="档案" name="classified_profile_btn"/> | 8 | <button label="档案" name="classified_profile_btn"/> |
9 | <combo_box name="classified_mature_check"> | 9 | <combo_box label="" name="classified_mature_check"> |
10 | <combo_item name="select_mature"> | 10 | <combo_item name="select_mature"> |
11 | -选择é™åˆ¶çº§- | 11 | - 选择é™åˆ¶çº§ - |
12 | </combo_item> | 12 | </combo_item> |
13 | <combo_item name="mature"> | 13 | <combo_item name="mature"> |
14 | Mature Content | 14 | Mature内容 |
15 | </combo_item> | 15 | </combo_item> |
16 | <combo_item name="pg"> | 16 | <combo_item name="pg"> |
17 | PG Content | 17 | PG内容 |
18 | </combo_item> | 18 | </combo_item> |
19 | </combo_box> | 19 | </combo_box> |
20 | <combo_box label="" name="classified_category_combo"/> | 20 | <combo_box label="" name="classified_category_combo"/> |
21 | <button label="æ›´æ–°" name="classified_update_btn"/> | 21 | <button label="æ›´æ–°" name="classified_update_btn"/> |
22 | <string name="ad_placed_paid"> | 22 | <string name="ad_placed_paid"> |
23 | 广告地å€ï¼š[DATE],å‘布付款 L$[AMT] | 23 | 广告å‘布: [DATE],为æ¤ä»˜å‡ºäº† [CURRENCY][AMT]。 |
24 | </string> | 24 | </string> |
25 | <string name="update_txt"> | 25 | <string name="update_txt"> |
26 | æ›´æ–° | 26 | æ›´æ–° |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_friends.xml b/linden/indra/newview/skins/default/xui/zh/panel_friends.xml index fafb6e8..16b16fc 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_friends.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_friends.xml | |||
@@ -9,12 +9,16 @@ | |||
9 | <column name="icon_visible_online" tool_tip="好å‹å¯ä»¥çœ‹è§ä½ 是å¦åœ¨çº¿"/> | 9 | <column name="icon_visible_online" tool_tip="好å‹å¯ä»¥çœ‹è§ä½ 是å¦åœ¨çº¿"/> |
10 | <column name="icon_visible_map" tool_tip="好å‹å¯ä»¥åœ¨åœ°å›¾ä¸Šæ‰¾åˆ°ä½ "/> | 10 | <column name="icon_visible_map" tool_tip="好å‹å¯ä»¥åœ¨åœ°å›¾ä¸Šæ‰¾åˆ°ä½ "/> |
11 | <column name="icon_edit_mine" tool_tip="好å‹å¯ä»¥ç¼–è¾‘ä½ çš„ç‰©ä½“"/> | 11 | <column name="icon_edit_mine" tool_tip="好å‹å¯ä»¥ç¼–è¾‘ä½ çš„ç‰©ä½“"/> |
12 | <column name="icon_visible_map" tool_tip="ä½ å¯ä»¥åœ¨åœ°å›¾ä¸Šæ‰¾åˆ°è¿™ä½å¥½å‹"/> | ||
12 | <column name="icon_edit_theirs" tool_tip="ä½ å¯ä»¥ç¼–辑这ä½å¥½å‹çš„物体"/> | 13 | <column name="icon_edit_theirs" tool_tip="ä½ å¯ä»¥ç¼–辑这ä½å¥½å‹çš„物体"/> |
13 | </scroll_list> | 14 | </scroll_list> |
14 | <button label="èŠå¤©/呼å«" name="im_btn" tool_tip="打开å³æ—¶é€šä¿¡ä¼šè¯"/> | 15 | <button label="èŠå¤©/呼å«" name="im_btn" tool_tip="打开å³æ—¶é€šä¿¡ä¼šè¯"/> |
15 | <button label="档案" name="profile_btn" tool_tip="显示图片ã€ç¤¾å›¢å’Œå…¶ä»–ä¿¡æ¯"/> | 16 | <button label="档案" name="profile_btn" tool_tip="显示图片ã€ç¤¾å›¢å’Œå…¶ä»–ä¿¡æ¯"/> |
16 | <button label="瞬间移动..." name="offer_teleport_btn" tool_tip="邀请该好å‹çž¬é—´ç§»åŠ¨åˆ°ä½ 的当å‰ä½ç½®"/> | 17 | <button label="瞬间移动..." name="offer_teleport_btn" tool_tip="邀请该好å‹çž¬é—´ç§»åŠ¨åˆ°ä½ 的当å‰ä½ç½®"/> |
17 | <button label="付款..." name="pay_btn" tool_tip="给这ä½å¥½å‹æž—ç™»å¸ (L$)"/> | 18 | <button label="付款..." name="pay_btn" tool_tip="给这ä½å¥½å‹è´§å¸"/> |
18 | <button label="移除..." name="remove_btn" tool_tip="å°†è¿™ä¸ªäººä»Žä½ çš„å¥½å‹åˆ—表ä¸åŽ»é™¤"/> | 19 | <button label="移除..." name="remove_btn" tool_tip="å°†è¿™ä¸ªäººä»Žä½ çš„å¥½å‹åˆ—表ä¸åŽ»é™¤"/> |
19 | <button label="æ·»åŠ ..." name="add_btn" tool_tip="邀请其他居民æˆä¸ºä½ 的好å‹"/> | 20 | <button label="æ·»åŠ ..." name="add_btn" tool_tip="邀请其他居民æˆä¸ºä½ 的好å‹"/> |
21 | <search_editor bottom="-24" enabled="true" follows="left|right|top" font="SansSerif" | ||
22 | height="18" left="10" right="-100" name="buddy_search" | ||
23 | label="在这里打å—查找好å‹" width="130" /> | ||
20 | </panel> | 24 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_general.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_general.xml index 43d6d3e..cddaac2 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_group_general.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_group_general.xml | |||
@@ -26,7 +26,7 @@ | |||
26 | <text_editor name="charter"> | 26 | <text_editor name="charter"> |
27 | ç¤¾å›¢å®ªç« | 27 | ç¤¾å›¢å®ªç« |
28 | </text_editor> | 28 | </text_editor> |
29 | <button label="åŠ å…¥(L$0)" label_selected="åŠ å…¥(L$0)" name="join_button"/> | 29 | <button label="åŠ å…¥ (å…è´¹)" label_selected="åŠ å…¥ (å…è´¹)" name="join_button"/> |
30 | <button label="详细视图" label_selected="详细察看" name="info_button"/> | 30 | <button label="详细视图" label_selected="详细察看" name="info_button"/> |
31 | <text name="text_owners_and_visible_members"> | 31 | <text name="text_owners_and_visible_members"> |
32 | 拥有者和å¯è§çš„会员 | 32 | 拥有者和å¯è§çš„会员 |
@@ -45,7 +45,7 @@ | |||
45 | <panel name="preferences_container"> | 45 | <panel name="preferences_container"> |
46 | <check_box label="在æœç´¢ä¸æ˜¾ç¤º" name="show_in_group_list" tool_tip="让别人在æœç´¢ç»“æžœä¸çœ‹åˆ°è¿™ä¸ªç¤¾å›¢ã€‚"/> | 46 | <check_box label="在æœç´¢ä¸æ˜¾ç¤º" name="show_in_group_list" tool_tip="让别人在æœç´¢ç»“æžœä¸çœ‹åˆ°è¿™ä¸ªç¤¾å›¢ã€‚"/> |
47 | <check_box label="公开注册" name="open_enrollement" tool_tip="设置该社团是å¦å…è®¸æ–°ä¼šå‘˜åŠ å…¥è€Œä¸éœ€è¦è¢«é‚€è¯·ã€‚"/> | 47 | <check_box label="公开注册" name="open_enrollement" tool_tip="设置该社团是å¦å…è®¸æ–°ä¼šå‘˜åŠ å…¥è€Œä¸éœ€è¦è¢«é‚€è¯·ã€‚"/> |
48 | <check_box label="注册费用: L$" name="check_enrollment_fee" tool_tip="设定是å¦æ”¶å°†å–社团入会费。"/> | 48 | <check_box label="注册费用: [CURRENCY]" name="check_enrollment_fee" tool_tip="设定是å¦æ”¶å°†å–社团入会费。"/> |
49 | <spinner name="spin_enrollment_fee" tool_tip="如果选择了注册费用的è¯ï¼Œæ–°ä¼šå‘˜åŠ 入社团时必须付出这笔费用。"/> | 49 | <spinner name="spin_enrollment_fee" tool_tip="如果选择了注册费用的è¯ï¼Œæ–°ä¼šå‘˜åŠ 入社团时必须付出这笔费用。"/> |
50 | <combo_box name="group_mature_check" tool_tip="设置是å¦åº”将社团信æ¯çœ‹ä½œMature内容。"> | 50 | <combo_box name="group_mature_check" tool_tip="设置是å¦åº”将社团信æ¯çœ‹ä½œMature内容。"> |
51 | <combo_item name="select_mature"> | 51 | <combo_item name="select_mature"> |
@@ -65,12 +65,16 @@ | |||
65 | <combo_box name="active_title" tool_tip="设置当该社团激活时,在化身姓åæ ‡ç¾ä¸æ˜¾ç¤ºçš„头衔。"/> | 65 | <combo_box name="active_title" tool_tip="设置当该社团激活时,在化身姓åæ ‡ç¾ä¸æ˜¾ç¤ºçš„头衔。"/> |
66 | </panel> | 66 | </panel> |
67 | <check_box label="接å—社团通知" name="receive_notices" tool_tip="设置您是å¦æƒ³è¦ä»Žè¯¥ç¤¾å›¢æŽ¥å—通知。如果这个社团å‘您乱å‘垃圾信æ¯ï¼Œé‚£å°±å–消选择这项。"/> | 67 | <check_box label="接å—社团通知" name="receive_notices" tool_tip="设置您是å¦æƒ³è¦ä»Žè¯¥ç¤¾å›¢æŽ¥å—通知。如果这个社团å‘您乱å‘垃圾信æ¯ï¼Œé‚£å°±å–消选择这项。"/> |
68 | <check_box | ||
69 | label="åŠ å…¥ç¤¾å›¢èŠå¤©" | ||
70 | name="receive_chat" | ||
71 | tool_tip="设置是å¦æƒ³å‚åŠ ç¤¾å›¢èŠå¤©ã€‚如果这个社团å‘您乱å‘垃圾信æ¯ï¼Œé‚£å°±å–消选择这项。" /> | ||
68 | <check_box label="在我的档案ä¸åˆ—出该社团" name="list_groups_in_profile" tool_tip="设置您是å¦æƒ³è¦åœ¨æ¡£æ¡ˆä¸åˆ—出该社团"/> | 72 | <check_box label="在我的档案ä¸åˆ—出该社团" name="list_groups_in_profile" tool_tip="设置您是å¦æƒ³è¦åœ¨æ¡£æ¡ˆä¸åˆ—出该社团"/> |
69 | </panel> | 73 | </panel> |
70 | <string name="incomplete_member_data_str"> | 74 | <string name="incomplete_member_data_str"> |
71 | é‡æ–°èŽ·å–ä¼šå‘˜ä¿¡æ¯ | 75 | 获å–团员信æ¯ä¸ |
72 | </string> | 76 | </string> |
73 | <string name="confirm_group_create_str"> | 77 | <string name="confirm_group_create_str"> |
74 | ä½ çœŸçš„ï¼ŒçœŸçš„ï¼ŒçœŸ----çš„----确定è¦èŠ±è´¹M$0æ¥åˆ›å»ºè¿™ä¸ªç¤¾å›¢å—? | 78 | ä½ çœŸçš„ï¼ŒçœŸçš„ï¼ŒçœŸ----çš„----确定è¦èŠ±è´¹[GROUPCREATEFEE]æ¥åˆ›å»ºè¿™ä¸ªç¤¾å›¢å—? |
75 | </string> | 79 | </string> |
76 | </panel> | 80 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml index cf1866c..0c0a64a 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml | |||
@@ -11,7 +11,7 @@ | |||
11 | ä½ æ²¡æœ‰æŸ¥çœ‹è¿™ä¸ªç¤¾å›¢è´¦æˆ·ä¿¡æ¯çš„æƒé™ã€‚ | 11 | ä½ æ²¡æœ‰æŸ¥çœ‹è¿™ä¸ªç¤¾å›¢è´¦æˆ·ä¿¡æ¯çš„æƒé™ã€‚ |
12 | </string> | 12 | </string> |
13 | <string name="loading_txt"> | 13 | <string name="loading_txt"> |
14 | 载入... | 14 | 载入ä¸... |
15 | </string> | 15 | </string> |
16 | <text name="group_land_heading"> | 16 | <text name="group_land_heading"> |
17 | 社团所æŒæœ‰åœŸåœ° | 17 | 社团所æŒæœ‰åœŸåœ° |
@@ -55,7 +55,7 @@ | |||
55 | 社团æˆå‘˜å¿…须贡献更多的土地é¢åº¦ï¼Œæ¥æ”¯æŒåœŸåœ°çš„使用。 | 55 | 社团æˆå‘˜å¿…须贡献更多的土地é¢åº¦ï¼Œæ¥æ”¯æŒåœŸåœ°çš„使用。 |
56 | </text> | 56 | </text> |
57 | <text name="group_money_heading"> | 57 | <text name="group_money_heading"> |
58 | 社团资产 L$ | 58 | 社团 [CURRENCY] |
59 | </text> | 59 | </text> |
60 | <tab_container name="group_money_tab_container"> | 60 | <tab_container name="group_money_tab_container"> |
61 | <panel label="计划" name="group_money_planning_tab"> | 61 | <panel label="计划" name="group_money_planning_tab"> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_groups.xml b/linden/indra/newview/skins/default/xui/zh/panel_groups.xml index cb658cb..a67c585 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_groups.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_groups.xml | |||
@@ -1,5 +1,24 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel name="groups"> | 2 | <panel name="groups"> |
3 | <scroll_list | ||
4 | name="group list"> | ||
5 | <column | ||
6 | label="社团å称" | ||
7 | name="name" /> | ||
8 | <column | ||
9 | label="通知" | ||
10 | name="receive_notices" | ||
11 | tool_tip="接å—该社团的通知" /> | ||
12 | <column | ||
13 | label="èŠå¤©" | ||
14 | name="join_group_chat" | ||
15 | tool_tip="å‚åŠ è¯¥ç¤¾å›¢çš„ç¤¾å›¢èŠå¤©" /> | ||
16 | <column | ||
17 | label="公开" | ||
18 | name="list_in_profile" | ||
19 | image="ff_visible_online_button.tga" | ||
20 | tool_tip="åœ¨ä½ çš„æ¡£æ¡ˆä¸åˆ—出该社团" /> | ||
21 | </scroll_list> | ||
3 | <text name="groupdesc" > | 22 | <text name="groupdesc" > |
4 | 您当å‰æ¿€æ´»çš„社团以粗体表示。 | 23 | 您当å‰æ¿€æ´»çš„社团以粗体表示。 |
5 | </text> | 24 | </text> |
@@ -17,6 +36,12 @@ | |||
17 | label="激活" | 36 | label="激活" |
18 | name="Activate" /> | 37 | name="Activate" /> |
19 | <button | 38 | <button |
39 | label="头衔..." | ||
40 | name="Titles..." /> | ||
41 | <button | ||
42 | label="邀请..." | ||
43 | name="Invite..." /> | ||
44 | <button | ||
20 | label="离开" | 45 | label="离开" |
21 | name="Leave" /> | 46 | name="Leave" /> |
22 | <button | 47 | <button |
@@ -25,5 +50,8 @@ | |||
25 | <button | 50 | <button |
26 | label="æœç´¢..." | 51 | label="æœç´¢..." |
27 | name="Search..." /> | 52 | name="Search..." /> |
53 | <search_editor | ||
54 | name="group_search" | ||
55 | label="æœç´¢ä½ 的社团" /> | ||
28 | </panel> | 56 | </panel> |
29 | <!--Translated for Second Life 1.19.0 (79185)--> \ No newline at end of file | 57 | <!--Translated for Second Life 1.19.0 (79185)--> \ No newline at end of file |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_login.xml b/linden/indra/newview/skins/default/xui/zh/panel_login.xml index a10df47..b43d441 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_login.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_login.xml | |||
@@ -1,11 +1,32 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel name="panel_login"> | 2 | <panel name="panel_login"> |
3 | <web_browser name="login_html" | ||
4 | bottom="102" top="-1" left="0" right="-1" | ||
5 | border_visible="false" follows="top|left|bottom|right" | ||
6 | start_url="data:text/html, | ||
7 | %3Chtml%3E | ||
8 | %3Chead%3E %3C/head%3E | ||
9 | %3Cbody bgcolor=%22#5a2d65%22 text=%22ffffff%22%3E | ||
10 | %3Ctable width=%22100%%22 height=%22100%%22 border=%220%22%3E | ||
11 | %3Ctr%3E | ||
12 | %3Ctd align=%22center%22 valign=%22middle%22 style=%22font-size:0.8em;%22%3E | ||
13 | %3Cimg src=%22imprudence_loading.png%22 align=%22absmiddle%22%3E | ||
14 | %3Cbr/%3E | ||
15 | %3CH1%3E请ç¨å€™...%3C/H1%3E | ||
16 | %3C/td%3E | ||
17 | %3C/tr%3C | ||
18 | %3C/table%3E | ||
19 | %3C/body%3E | ||
20 | %3C/html%3E" /> | ||
3 | <text name="first_name_text"> | 21 | <text name="first_name_text"> |
4 | å: | 22 | å: |
5 | </text> | 23 | </text> |
6 | <text name="last_name_text"> | 24 | <text name="last_name_text"> |
7 | 姓: | 25 | 姓: |
8 | </text> | 26 | </text> |
27 | <text name="username_text"> | ||
28 | 登入å称: | ||
29 | </text> | ||
9 | <text name="password_text"> | 30 | <text name="password_text"> |
10 | 密ç : | 31 | 密ç : |
11 | </text> | 32 | </text> |
@@ -27,6 +48,10 @@ | |||
27 | <text name="full_screen_text"> | 48 | <text name="full_screen_text"> |
28 | 登陆åŽæ˜¾ç¤ºå™¨ä¼šé‡‡ç”¨å…¨å±æ˜¾ç¤ºã€‚ | 49 | 登陆åŽæ˜¾ç¤ºå™¨ä¼šé‡‡ç”¨å…¨å±æ˜¾ç¤ºã€‚ |
29 | </text> | 50 | </text> |
51 | <text name="grid_text"> | ||
52 | ç½‘æ ¼: | ||
53 | </text> | ||
54 | <button name="grid_btn" label="ç½‘æ ¼ç®¡ç†å™¨" /> | ||
30 | <button label="æ–°å¸æˆ·..." label_selected="æ–°å¸æˆ·..." name="new_account_btn" /> | 55 | <button label="æ–°å¸æˆ·..." label_selected="æ–°å¸æˆ·..." name="new_account_btn" /> |
31 | <button label="登入" label_selected="登入" name="connect_btn" /> | 56 | <button label="登入" label_selected="登入" name="connect_btn" /> |
32 | <button label="å‚数选择..." label_selected="å‚数选择..." name="preferences_btn" /> | 57 | <button label="å‚数选择..." label_selected="å‚数选择..." name="preferences_btn" /> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_mini_map.xml b/linden/indra/newview/skins/default/xui/zh/panel_mini_map.xml index cc55e26..655d866 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_mini_map.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_mini_map.xml | |||
@@ -24,4 +24,13 @@ | |||
24 | <text name="nw_label" width="40"> | 24 | <text name="nw_label" width="40"> |
25 | 西北 | 25 | 西北 |
26 | </text> | 26 | </text> |
27 | <string name="tooltip_tp"> | ||
28 | åŒå‡»çž¬é—´ç§»åŠ¨ | ||
29 | </string> | ||
30 | <string name="tooltip_pan"> | ||
31 | æŒ‰ä½ Shift 拖动平移 | ||
32 | </string> | ||
33 | <string name="tooltip_map"> | ||
34 | åŒå‡»æ‰“开地图 | ||
35 | </string> | ||
27 | </panel> | 36 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml b/linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml index 6e5424d..98ccab6 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml | |||
@@ -4,13 +4,16 @@ | |||
4 | <layout_panel min_width="420" name="main_panel"> | 4 | <layout_panel min_width="420" name="main_panel"> |
5 | <layout_stack name="chatbar_and_buttons"> | 5 | <layout_stack name="chatbar_and_buttons"> |
6 | <layout_panel name="state_buttons"> | 6 | <layout_panel name="state_buttons"> |
7 | <button label="已收到å³æ—¶æ¶ˆæ¯" label_selected="已收到å³æ—¶æ¶ˆæ¯" name="IM Received" tool_tip="ä½ æœ‰ä¸€ä¸ªæœªå¯Ÿçœ‹çš„å³æ—¶æ¶ˆæ¯ã€‚请点击察看"/> | 7 | <button label="æ¡æœªè¯»æ¶ˆæ¯" label_selected="æ¡æœªè¯»æ¶ˆæ¯" name="IM Received" tool_tip="ä½ æœ‰ä¸€æ¡æœªå¯Ÿçœ‹çš„å³æ—¶æ¶ˆæ¯ã€‚请点击察看"/> |
8 | <button label="å–消忙碌状æ€" label_selected="å–消忙碌状æ€" name="Set Not Busy" tool_tip="èŠå¤©ä¸Žå³æ—¶æ¶ˆæ¯æ¨¡å¼å·²å¯¹ä½ éšè—。 点击这里æ¥è®¾å®šä½ ä¸åœ¨å¿™ç¢Œæ¨¡å¼ä¸‹"/> | 8 | <button label="å–消忙碌状æ€" label_selected="å–消忙碌状æ€" name="Set Not Busy" tool_tip="èŠå¤©ä¸Žå³æ—¶æ¶ˆæ¯æ¨¡å¼å·²å¯¹ä½ éšè—。 点击这里离开忙碌模å¼"/> |
9 | <button label="三维æµè§ˆ" label_selected="三维æµè§ˆ" name="Flycam" tool_tip="ä½ çš„æ‰‹æŸ„å½“å‰è¢«æ‰‹æŸ„所控制,点击这里释放。"/> | 9 | <button label="三维æµè§ˆ" label_selected="三维æµè§ˆ" name="Flycam" tool_tip="ä½ çš„è§†è§’å½“å‰è¢«æ‰‹æŸ„所控制,点击这里释放。"/> |
10 | <button label="第一人称视角" label_selected="第一人称视角" name="Mouselook" tool_tip="ä½¿ç”¨é¼ æ ‡æŽ§åˆ¶å±å¹•ã€‚å¦‚æžœä½ æœ‰æžªï¼Œç‚¹å‡»åˆ™å¯ä»¥å°„击。"/> | 10 | <button label="第一人称视角" label_selected="第一人称视角" name="Mouselook" tool_tip="ä½¿ç”¨é¼ æ ‡æŽ§åˆ¶å±å¹•ã€‚å¦‚æžœä½ æœ‰æžªï¼Œç‚¹å‡»åˆ™å¯ä»¥å°„击。"/> |
11 | <button label="起身" label_selected="起身" name="Stand Up" tool_tip="点击这里æ¥ç«™ç«‹"/> | 11 | <button label="起身" label_selected="起身" name="Stand Up" tool_tip="点击这里æ¥ç«™ç«‹"/> |
12 | </layout_panel> | 12 | </layout_panel> |
13 | </layout_stack> | 13 | </layout_stack> |
14 | </layout_panel> | 14 | </layout_panel> |
15 | </layout_stack> | 15 | </layout_stack> |
16 | <string name="unread_count_string_plural"> | ||
17 | æ¡æœªè¯»æ¶ˆæ¯ | ||
18 | </string> | ||
16 | </panel> | 19 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_particle_settings.xml b/linden/indra/newview/skins/default/xui/zh/panel_particle_settings.xml new file mode 100644 index 0000000..5bc7ca6 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/panel_particle_settings.xml | |||
@@ -0,0 +1,44 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel | ||
3 | label="ç²’å设置" | ||
4 | name="ParticleSettings"> | ||
5 | |||
6 | <text | ||
7 | name="part_start_color_textbox"> | ||
8 | 起始颜色: | ||
9 | </text> | ||
10 | <color_swatch | ||
11 | name="part_start_color_swatch" | ||
12 | tool_tip="点击这里æ¥æ‰“开色彩选择器" /> | ||
13 | <text | ||
14 | name="part_end_color_textbox"> | ||
15 | 结æŸé¢œè‰²: | ||
16 | </text> | ||
17 | <color_swatch | ||
18 | label="" | ||
19 | name="part_end_color_swatch" | ||
20 | tool_tip="点击这里æ¥æ‰“开色彩选择器" /> | ||
21 | <text | ||
22 | name="part_texture_textbox"> | ||
23 | æè´¨: | ||
24 | </text> | ||
25 | |||
26 | <texture_picker | ||
27 | label="" | ||
28 | name="part_texture_picker" | ||
29 | tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> | ||
30 | <button | ||
31 | name="reset_cloud_this_account" | ||
32 | label="é‡ç½®è¯¥è´¦æˆ·" | ||
33 | tool_tip="é‡ç½®è¯¥è´¦æˆ·çš„化身粒å云到默认值" /> | ||
34 | <button | ||
35 | name="save_cloud_this_account" | ||
36 | label="ä¿å˜è¯¥è´¦æˆ·" | ||
37 | tool_tip="ä¿å˜è¯¥è´¦æˆ·çš„化身粒å云" /> | ||
38 | <button | ||
39 | name="save_cloud_any_account" | ||
40 | label="ä¿å˜æ‰€æœ‰è´¦æˆ·" | ||
41 | tool_tip="ä¿å˜åŒ–身粒å云设置到所有账户" /> | ||
42 | </panel> | ||
43 | |||
44 | |||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_place.xml b/linden/indra/newview/skins/default/xui/zh/panel_place.xml index 91512d9..b2c5492 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_place.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_place.xml | |||
@@ -37,7 +37,7 @@ | |||
37 | </string> | 37 | </string> |
38 | <string | 38 | <string |
39 | name="forsale_text"> | 39 | name="forsale_text"> |
40 | 以L$[PRICE]çš„ä»·æ ¼å‡ºå”® | 40 | 以 [CURRENCY][PRICE] çš„ä»·æ ¼å‡ºå”® |
41 | </string> | 41 | </string> |
42 | <string | 42 | <string |
43 | name="auction_text"> | 43 | name="auction_text"> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_place_small.xml b/linden/indra/newview/skins/default/xui/zh/panel_place_small.xml index bbda749..1e978d0 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_place_small.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_place_small.xml | |||
@@ -25,7 +25,7 @@ | |||
25 | é¢ç§¯ï¼š[AREA]平方米。 | 25 | é¢ç§¯ï¼š[AREA]平方米。 |
26 | </string> | 26 | </string> |
27 | <string name="forsale_text"> | 27 | <string name="forsale_text"> |
28 | 以L$[PRICE]出售 | 28 | 以 [CURRENCY][PRICE] 出售 |
29 | </string> | 29 | </string> |
30 | <string name="auction_text"> | 30 | <string name="auction_text"> |
31 | æ‹å– ID [ID]。 | 31 | æ‹å– ID [ID]。 |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml index f3ce87e..65cfee8 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_advanced.xml | |||
@@ -1,4 +1,164 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel name="advanced_panel"> | 2 | <panel |
3 | <check_box label="与物体共享è¯è¨€" name="language_is_public" tool_tip="这使得世界内的物体å¯ä»¥çŸ¥é“ä½ å好的è¯è¨€ã€‚"/> | 3 | label="高级" |
4 | name="advanced_panel"> | ||
5 | <!-- Start organizing these when we get enough of 'em - MC --> | ||
6 | <tab_container | ||
7 | label="第 2 页" | ||
8 | name="tab2" | ||
9 | tab_min_width="50"> | ||
10 | |||
11 | <panel | ||
12 | label="主è¦" | ||
13 | name="main_panel"> | ||
14 | <text name="user_interface_text"> | ||
15 | 用户界é¢: | ||
16 | </text> | ||
17 | |||
18 | <check_box | ||
19 | label="ç¦ç”¨ç™»å…¥ / 登出å±å¹•" | ||
20 | name="disable_log_screen_check" /> | ||
21 | <check_box | ||
22 | label="ç¦ç”¨çž¬é—´ç§»åŠ¨å±å¹•" | ||
23 | name="disable_tp_screen_check" /> | ||
24 | <check_box | ||
25 | label="显示 WindLight 工具æ " | ||
26 | name="toggle_windlight_control" /> | ||
27 | <check_box | ||
28 | label="使用旧å¼èœå•" | ||
29 | name="legacy_pie_menu_checkbox" /> | ||
30 | <text name="avatar_text"> | ||
31 | 化身: | ||
32 | </text> | ||
33 | |||
34 | <check_box | ||
35 | label="在姓åæ ‡ç¾ä¸æ˜¾ç¤ºå®¢æˆ·ç«¯å称" | ||
36 | name="client_name_tag_check" /> | ||
37 | <check_box | ||
38 | label="用颜色显示客户端å称" | ||
39 | name="client_name_color_check" /> | ||
40 | <check_box | ||
41 | label="悬åœæ示ä¸æ˜¾ç¤ºå®¢æˆ·ç«¯å称" | ||
42 | name="client_name_hover_check" /> | ||
43 | <check_box | ||
44 | label="å¯¹ä»–äººæ˜¾ç¤ºä½ çš„å®¢æˆ·ç«¯å称" | ||
45 | name="client_name_tag_broadcast_check" /> | ||
46 | <check_box | ||
47 | tool_tip="切æ¢ç¼–辑外观时是å¦èµ·ç«‹è½¬èº«ã€‚" | ||
48 | label="编辑外观时æ’放化身动画" | ||
49 | name="appearance_anim_check" /> | ||
50 | <check_box label="头部跟éšé¼ æ ‡" tooltip="如果您的化身头部跟éšæ‚¨çš„é¼ æ ‡åŠ¨ä½œ" name="head_follows_mouse_checkbox" /> | ||
51 | <check_box label="起飞/ç€é™†é€šè¿‡é”®ç›˜ä¸Š/下键控制" name="automatic_fly"/> | ||
52 | <check_box label="èŠå¤©æ—¶ç®å¤´é”®æ€»æ˜¯ç§»åŠ¨ä½ 的化身" | ||
53 | name="arrow_keys_move_avatar_check" /> | ||
54 | |||
55 | <text name="chat_text"> | ||
56 | èŠå¤©: | ||
57 | </text> | ||
58 | <check_box label="以èŠå¤©å½¢å¼æ˜¾ç¤ºè„šæœ¬é”™è¯¯å’Œè¦å‘Š" name="script_errors_as_chat" /> | ||
59 | <check_box label="显示收到消æ¯çš„时间" name="show_timestamps_check" /> | ||
60 | <check_box | ||
61 | label="èŠå¤©å’Œå³æ—¶é€šä¿¡ä¸ä½¿ç”¨ MU* é£Žæ ¼åŠ¨ä½œ" | ||
62 | name="allow_mupose" | ||
63 | tool_tip="èŠå¤©å’Œå³æ—¶é€šä¿¡ä¸ä½¿ç”¨ MU* é£Žæ ¼åŠ¨ä½œ (':' å¯ä»¥ç”¨æ¥ä»£æ›¿ '/me ')。" /> | ||
64 | <check_box | ||
65 | label="è‡ªåŠ¨å…³é— OOC (( )) å‘言" | ||
66 | name="auto_close_ooc" | ||
67 | tool_tip="自动关é—脱离角色的å‘言 (å³æ˜¯ï¼Œ 如果键入了 (( 但没有 )) å°±æ·»åŠ )) )." /> | ||
68 | |||
69 | <text | ||
70 | name="textbox"> | ||
71 | 世界: | ||
72 | </text> | ||
73 | <check_box | ||
74 | label="å¯ç”¨é˜´å½± (è¦å‘Š: ä¸ç¨³å®šå¹¶éœ€è¦å›¾åƒè®¾ç½®ä¸ºæœ€é«˜)" | ||
75 | name="shadows_check" /> | ||
76 | <text name="lightshare_text"> | ||
77 | å¯ç”¨åŒºåŸŸ WindLight 设置 (LightShare): | ||
78 | </text> | ||
79 | <combo_box | ||
80 | name="lightshare_combo" | ||
81 | allow_text_entry="false"> | ||
82 | <combo_item | ||
83 | name="never" | ||
84 | value="0"> | ||
85 | ä»Žä¸ | ||
86 | </combo_item> | ||
87 | <combo_item | ||
88 | name="ask" | ||
89 | value="1"> | ||
90 | æ¯æ¬¡éƒ½è¯¢é—®æˆ‘ | ||
91 | </combo_item> | ||
92 | <combo_item | ||
93 | name="always" | ||
94 | value="2"> | ||
95 | 总是 | ||
96 | </combo_item> | ||
97 | </combo_box> | ||
98 | |||
99 | <check_box label="用颜色区别客户端" name="client_name_color_check" /> | ||
100 | |||
101 | |||
102 | <check_box | ||
103 | label="使用 HTTP 获å–æè´¨ (实验性)" | ||
104 | name="http_texture_check" /> | ||
105 | <check_box | ||
106 | label="通过é€æ¸å¢žåŠ æ绘è·ç¦»åŠ 速载入" | ||
107 | name="speed_rez_check" /> | ||
108 | <spinner | ||
109 | tool_tip="æ绘è·ç¦»å¢žåŠ 之间的将å„" | ||
110 | label="æ¥è¿›é—´éš”:" | ||
111 | name="speed_rez_interval_spinner" /> | ||
112 | <text | ||
113 | name="speed_rez_seconds_text"> | ||
114 | seconds | ||
115 | </text> | ||
116 | |||
117 | |||
118 | <check_box label="与物体共享è¯è¨€" name="language_is_public" tool_tip="这使得世界内的物体å¯ä»¥çŸ¥é“ä½ å好的è¯è¨€ã€‚"/> | ||
119 | |||
120 | |||
121 | |||
122 | <!-- Uncomment when we start using the crash logger - MC --> | ||
123 | <!--<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
124 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
125 | font="SansSerifSmall" h_pad="0" halign="left" height="18" left="12" | ||
126 | mouse_opaque="true" name="crash_report_textbox" v_pad="0" width="394"> | ||
127 | 崩溃报告: | ||
128 | </text> | ||
129 | <combo_box allow_text_entry="false" bottom_delta="0" enabled="true" follows="left|top" | ||
130 | height="18" left="153" max_chars="20" mouse_opaque="true" | ||
131 | name="crash_behavior_combobox" width="146"> | ||
132 | <combo_item type="string" length="1" enabled="true" name="Askbeforesending" value="Ask before sending"> | ||
133 | Ask before sending | ||
134 | </combo_item> | ||
135 | <combo_item type="string" length="1" enabled="true" name="Alwayssend" value="Always send"> | ||
136 | Always send | ||
137 | </combo_item> | ||
138 | <combo_item type="string" length="1" enabled="true" name="Neversend" value="Never send"> | ||
139 | Never send | ||
140 | </combo_item> | ||
141 | </combo_box>--> | ||
142 | |||
143 | <button | ||
144 | label="é‡ç½®æ‰€æœ‰é€‰é¡¹åˆ°é»˜è®¤å€¼" | ||
145 | name="reset_btn" | ||
146 | tool_tip="é‡ç½®æ‰€æœ‰é€‰é¡¹åˆ°é»˜è®¤å€¼ (需è¦é‡å¯åŠ¨)" /> | ||
147 | </panel> | ||
148 | |||
149 | |||
150 | <panel | ||
151 | label="化身粒å设置" | ||
152 | name="AvatarCloud"> | ||
153 | <text | ||
154 | name="must_be_logged_in_textbox"> | ||
155 | 必须登入åŽæ‰èƒ½æ›´æ”¹ | ||
156 | </text> | ||
157 | <check_box | ||
158 | label="预览化身为云" | ||
159 | name="preview_cloud" | ||
160 | tool_tip="预览化身为云,å³ä½¿å·²ç» rezzed" /> | ||
161 | </panel> | ||
162 | </tab_container> | ||
163 | |||
4 | </panel> | 164 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml index 3b505b7..8c61f4f 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml | |||
@@ -4,19 +4,30 @@ | |||
4 | 音é‡: | 4 | 音é‡: |
5 | </text> | 5 | </text> |
6 | <text name="streaming_prefs_text"> | 6 | <text name="streaming_prefs_text"> |
7 | æµåª’体首选项: | 7 | æµåª’体: |
8 | </text> | 8 | </text> |
9 | <text name="audio_prefs_text"> | 9 | <text name="audio_prefs_text"> |
10 | 音频首选项: | 10 | 音频: |
11 | </text> | 11 | </text> |
12 | <panel label="音é‡" name="Volume Panel"/> | 12 | <panel label="音é‡" name="Volume Panel"/> |
13 | <check_box label="当音ä¹å¯ç”¨æ—¶æ’放音ä¹æµ(会å 用更多带宽)" name="streaming_music"/> | 13 | <check_box label="当音ä¹å¯ç”¨æ—¶æ’放音ä¹æµ(会å 用更多带宽)" name="streaming_music"/> |
14 | <check_box label="èŠå¤©è®°å½•ä¸æ˜¾ç¤ºæµä¿¡æ¯" name="show_stream_title" /> | ||
14 | <check_box label="当视频å¯ç”¨æ—¶æ’放视频æµ(会å 用更多带宽)" name="streaming_video"/> | 15 | <check_box label="当视频å¯ç”¨æ—¶æ’放视频æµ(会å 用更多带宽)" name="streaming_video"/> |
15 | <check_box label="自动æ’放媒体" name="auto_streaming_video"/> | 16 | <check_box label="自动æ’放媒体" name="auto_streaming_video"/> |
17 | <check_box label="媒体控制å°å·¥å…·" name="media_helper_widget" /> | ||
18 | <check_box label="过滤媒体 URL" name="enable_media_filter" /> | ||
19 | <button | ||
20 | name="show_media_filter" | ||
21 | label="媒体过滤设置" | ||
22 | tool_tip="编辑媒体过滤器的设置和å…许和ç¦æ¢åˆ—表。" /> | ||
16 | <check_box label="当窗å£æœ€å°åŒ–æ—¶å±è”½å£°éŸ³" name="mute_when_minimized"/> | 23 | <check_box label="当窗å£æœ€å°åŒ–æ—¶å±è”½å£°éŸ³" name="mute_when_minimized"/> |
17 | <slider label="多普勒效应" name="Doppler Effect" width="250"/> | 24 | <slider label="多普勒效应" name="Doppler Effect" width="250"/> |
18 | <slider label="è·ç¦»ç³»æ•°" name="Distance Factor"/> | 25 | <slider label="è·ç¦»ç³»æ•°" name="Distance Factor"/> |
19 | <slider label="è¡°å‡ç³»æ•°:" name="Rolloff Factor"/> | 26 | <slider label="è¡°å‡ç³»æ•°:" name="Rolloff Factor"/> |
20 | <spinner label="L$ å˜åŒ–阈值" name="L$ Change Threshold"/> | 27 | <spinner label="[CURRENCY] å˜åŒ–阈值" name="L$ Change Threshold"/> |
21 | <spinner label="生命值å˜åŒ–阈值" name="Health Change Threshold"/> | 28 | <spinner label="生命值å˜åŒ–阈值" name="Health change threshold"/> |
29 | <text name="ambient_prefs_text"> | ||
30 | 环境: | ||
31 | </text> | ||
32 | <check_box label="å¯ç”¨é£Žå£°" name="mute_wind_check" /> | ||
22 | </panel> | 33 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml index 143821d..e2df77f 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml | |||
@@ -1,72 +1,253 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel label="èŠå¤©" name="chat"> | 2 | <panel label="èŠå¤©" name="chat"> |
3 | <text type="string" length="1" name="text_box"> | 3 | <tab_container |
4 | èŠå¤©å—体大å°: | 4 | name="chattab2"> |
5 | </text> | 5 | <panel |
6 | <radio_group name="chat_font_size"> | 6 | label="èŠå¤©å’Œå³æ—¶æ¶ˆæ¯" |
7 | <radio_item type="string" length="1" name="radio"> | 7 | name="chat_panel"> |
8 | å°å· | 8 | <text type="string" length="1" name="text_box"> |
9 | </radio_item> | 9 | èŠå¤©å—体大å°: |
10 | <radio_item type="string" length="1" name="radio2"> | 10 | </text> |
11 | ä¸å· | 11 | <combo_box |
12 | </radio_item> | 12 | name="chat_font_size"> |
13 | <radio_item type="string" length="1" name="radio3"> | 13 | <combo_item name="0"> |
14 | å¤§å· | 14 | å°å· |
15 | </radio_item> | 15 | </combo_item> |
16 | </radio_group> | 16 | <combo_item name="1"> |
17 | <text type="string" length="1" name="text_box2"> | 17 | ä¸å· |
18 | èŠå¤©é¢œè‰²: | 18 | </combo_item> |
19 | </text> | 19 | <combo_item name="2"> |
20 | <!--Geneko Nemeth: 最多åªèƒ½å†™ä¸‰ä¸ªå—。/Maximum 3 Chinese characters.--> | 20 | å¤§å· |
21 | <color_swatch | 21 | </combo_item> |
22 | label="您" | 22 | </combo_box> |
23 | name="user" /> | ||
24 | <color_swatch | ||
25 | label="其他人" | ||
26 | name="agent" /> | ||
27 | <color_swatch | ||
28 | label="å³æ—¶" | ||
29 | name="im" /> | ||
30 | <color_swatch label="系统" name="system" /> | ||
31 | <color_swatch label="错误" name="script_error" /> | ||
32 | <color_swatch label="用户" name="users" /> | ||
33 | <color_swatch label="物体" name="objects" /> | ||
34 | <color_swatch label="Owner" name="owner" /> | ||
35 | <color_swatch label="æ°”çƒ" name="background" /> | ||
36 | <color_swatch label="链接" name="links" /> | ||
37 | <text type="string" length="1" name="text_box3"> | ||
38 | èŠå¤©æŽ§åˆ¶å°: | ||
39 | </text> | ||
40 | <spinner label="对è¯æ·¡å‡ºæ—¶é—´" name="fade_chat_time" /> | ||
41 | <text type="string" length="1" name="text_box4"> | ||
42 | (秒) | ||
43 | </text> | ||
44 | <text type="string" length="1" name="text_box5"> | ||
45 | (行) | ||
46 | </text> | ||
47 | <slider label="ä¸é€æ˜Žåº¦" name="console_opacity" /> | ||
48 | <check_box | ||
49 | label="使用全å±å®½åº¦ (需è¦é‡å¯åŠ¨)" | ||
50 | name="chat_full_width_check" /> | ||
51 | <text type="string" length="1" name="text_box6"> | ||
52 | èŠå¤©é€‰é¡¹: | ||
53 | </text> | ||
54 | <check_box label="用全å±å®½åº¦èŠå¤© (需é‡å¯)" name="chat_full_width_check" /> | ||
55 | <check_box label="按回车键关é—èŠå¤©æ " name="close_chat_on_return_check" /> | ||
56 | <check_box label="èŠå¤©æ—¶ç®å¤´é”®æ€»æ˜¯ç§»åŠ¨ä½ 的化身" | ||
57 | name="arrow_keys_move_avatar_check" /> | ||
58 | <check_box label="本地èŠå¤©æ—¶æ˜¾ç¤ºæ—¶é—´æˆ³" name="show_timestamps_check" /> | ||
59 | <check_box | ||
60 | label="èŠå¤©æ—¶æ’放打å—动画" | ||
61 | name="play_typing_animation" /> | ||
62 | <text type="string" length="1" name="text_box7"> | ||
63 | èŠå¤©æ°”çƒ: | ||
64 | </text> | ||
65 | <check_box label="使用气çƒèŠå¤©" name="bubble_text_chat" /> | ||
66 | <slider label="ä¸é€æ˜Žåº¦" name="bubble_chat_opacity" /> | ||
67 | <text type="string" length="1" name="text_box8"> | ||
68 | 脚本错误: | ||
69 | </text> | ||
70 | <check_box label="以èŠå¤©å½¢å¼æ˜¾ç¤ºè„šæœ¬é”™è¯¯å’Œè¦å‘Š" name="script_errors_as_chat" /> | ||
71 | 23 | ||
24 | <text type="string" length="1" name="text_box2"> | ||
25 | èŠå¤©é¢œè‰²: | ||
26 | </text> | ||
27 | <color_swatch | ||
28 | label="您" | ||
29 | name="user" /> | ||
30 | <color_swatch | ||
31 | label="其他人" | ||
32 | name="agent" /> | ||
33 | <color_swatch | ||
34 | label="å³æ—¶æ¶ˆæ¯" | ||
35 | name="im" /> | ||
36 | <color_swatch label="系统" name="system" /> | ||
37 | <color_swatch label="错误" name="script_error" /> | ||
38 | <color_swatch label="用户" name="users" /> | ||
39 | <color_swatch label="物体" name="objects" /> | ||
40 | <color_swatch label="Owner" name="owner" /> | ||
41 | <color_swatch label="æ°”çƒ" name="background" /> | ||
42 | <color_swatch label="链接" name="links" /> | ||
43 | <text type="string" length="1" name="text_box3"> | ||
44 | èŠå¤©æŽ§åˆ¶å°: | ||
45 | </text> | ||
46 | <spinner label="对è¯æ·¡å‡ºæ—¶é—´" name="fade_chat_time" /> | ||
47 | <text type="string" length="1" name="text_box4"> | ||
48 | (秒) | ||
49 | </text> | ||
50 | <text type="string" length="1" name="text_box5"> | ||
51 | (行) | ||
52 | </text> | ||
53 | <slider label="ä¸é€æ˜Žåº¦" name="console_opacity" /> | ||
54 | <check_box | ||
55 | label="使用全å±å®½åº¦ (需è¦é‡å¯åŠ¨)" | ||
56 | name="chat_full_width_check" /> | ||
57 | <text type="string" length="1" name="text_box6"> | ||
58 | èŠå¤©æ : | ||
59 | </text> | ||
60 | <check_box label="用全å±å®½åº¦èŠå¤© (需é‡å¯)" name="chat_full_width_check" /> | ||
61 | <check_box label="按回车键关é—èŠå¤©æ " name="close_chat_on_return_check" /> | ||
62 | <check_box | ||
63 | label="èŠå¤©æ—¶æ’放打å—动画" | ||
64 | name="play_typing_animation" /> | ||
65 | <check_box | ||
66 | label="å°†èŠå¤©æ 作为命令行使用" | ||
67 | name="command_line_check" /> | ||
68 | <button | ||
69 | label="èŠå¤©æ 命令" | ||
70 | name="command_line_btn" | ||
71 | tool_tip="Set specific chatbar command line commands here" /> | ||
72 | <text type="string" length="1" name="text_box7"> | ||
73 | èŠå¤©æ°”çƒ: | ||
74 | </text> | ||
75 | <check_box label="使用气çƒèŠå¤©" name="bubble_text_chat" /> | ||
76 | <check_box | ||
77 | label="åŒæ—¶æ˜¾ç¤ºæœ¬åœ°èŠå¤©å’Œæ°”çƒ" | ||
78 | name="local_bubble_text_chat" /> | ||
79 | <slider label="ä¸é€æ˜Žåº¦" name="bubble_chat_opacity" /> | ||
80 | <text type="string" length="1" name="text_box8"> | ||
81 | 脚本错误: | ||
82 | </text> | ||
83 | <check_box | ||
84 | label="显示自定义èŠå¤©é¢‘é“" | ||
85 | name="toggle_channel_control" /> | ||
86 | <text | ||
87 | name="Instant Messages:"> | ||
88 | å³æ—¶æ¶ˆæ¯: | ||
89 | </text> | ||
90 | |||
91 | <check_box label="å‘é€å³æ—¶æ¶ˆæ¯è‡³ç”µå邮件([EMAIL])" name="send_im_to_email" /> | ||
92 | <text | ||
93 | name="show_ims_label"> | ||
94 | 显示å³æ—¶æ¶ˆæ¯: | ||
95 | </text> | ||
96 | <check_box | ||
97 | label="èŠå¤©æŽ§åˆ¶å°" | ||
98 | name="include_im_in_chat_console" /> | ||
99 | <check_box | ||
100 | label="本地èŠå¤©çª—å£" | ||
101 | name="include_im_in_chat_history" /> | ||
102 | <check_box | ||
103 | label="åž‚ç›´å³æ—¶æ¶ˆæ¯æ ‡ç¾é¡µ (需è¦é‡å¯åŠ¨)" | ||
104 | name="vertical-imtabs-toggle" /> | ||
105 | </panel> | ||
106 | <panel | ||
107 | label="拼写检查" | ||
108 | name="spell_check_tab"> | ||
109 | |||
110 | <text name="text_box"> | ||
111 | 拼写检查: | ||
112 | </text> | ||
113 | <button | ||
114 | label="?" | ||
115 | name="EmeraldHelp_SpellCheck" | ||
116 | tool_tip="点击这里获å–该页é¢è®¾ç½®çš„帮助。" /> | ||
117 | <check_box | ||
118 | label="以红色显示拼错的è¯" | ||
119 | name="EmeraldSpellDisplay" /> | ||
120 | <text | ||
121 | name="EmSpell_txt1"> | ||
122 | 当å‰è¯è¨€ (è¯å…¸): | ||
123 | </text> | ||
124 | <text | ||
125 | name="EmSpell_txt3"> | ||
126 | 下载è¯è¨€ (è¯å…¸): | ||
127 | </text> | ||
128 | <button | ||
129 | label="安装" | ||
130 | name="EmSpell_Add" | ||
131 | tool_tip="" /> | ||
132 | <button | ||
133 | label="下载更多..." | ||
134 | name="EmSpell_GetMore" | ||
135 | tool_tip="在线获å–更多è¯å…¸" /> | ||
136 | <text | ||
137 | name="EmSpell_txt2"> | ||
138 | é™„åŠ çš„è‡ªå®šä¹‰è¯å…¸: | ||
139 | </text> | ||
140 | <button | ||
141 | label="移除" | ||
142 | name="EmSpell_Remove" | ||
143 | tool_tip="" /> | ||
144 | <!--<button bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="18" label="Edit Custom dictionary" | ||
145 | name="EmSpell_EditCustom" tool_tip="" left_delta="20" width="130"/>--> | ||
146 | <text | ||
147 | name="EmSpell_txt4"> | ||
148 | è¦ä½¿ç”¨æ‹¼å†™æ£€æŸ¥ï¼Œå³é”®å•å‡»æ‹¼é”™çš„è¯å¹¶é€‰æ‹©æ£ç¡®çš„è¯æ›¿æ¢ã€‚ | ||
149 | </text> | ||
150 | <button | ||
151 | name="ac_button" | ||
152 | label="自动更æ£è®¾å®š..." | ||
153 | tool_tip="更改自动更æ£è¯æ±‡è¡¨å’Œè®¾ç½®" /> | ||
154 | <text | ||
155 | name="text_translate"> | ||
156 | 翻译èŠå¤©: | ||
157 | </text> | ||
158 | <check_box | ||
159 | label="机器翻译èŠå¤© (ç”± Google 强力驱动)" | ||
160 | name="translate_chat" /> | ||
161 | <text | ||
162 | name="text_translate_chat"> | ||
163 | 翻译为以下è¯è¨€: | ||
164 | </text> | ||
165 | <combo_box | ||
166 | name="translate_language_combobox"> | ||
167 | <combo_item | ||
168 | name="System Default Language"> | ||
169 | 系统默认值 | ||
170 | </combo_item> | ||
171 | <combo_item | ||
172 | name="English"> | ||
173 | English (英è¯) | ||
174 | </combo_item> | ||
175 | |||
176 | <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. --> | ||
177 | |||
178 | <combo_item | ||
179 | name="Danish"> | ||
180 | Dansk (丹麦è¯) | ||
181 | </combo_item> | ||
182 | <combo_item | ||
183 | name="Deutsch(German)"> | ||
184 | Deutsch (å¾·è¯) | ||
185 | </combo_item> | ||
186 | <combo_item | ||
187 | name="Spanish"> | ||
188 | Español (西ç牙è¯) | ||
189 | </combo_item> | ||
190 | <combo_item | ||
191 | name="French"> | ||
192 | Français (法è¯) | ||
193 | </combo_item> | ||
194 | <combo_item | ||
195 | name="Italian"> | ||
196 | Italiano (æ„大利è¯) | ||
197 | </combo_item> | ||
198 | <combo_item | ||
199 | name="Hungarian"> | ||
200 | Magyar (匈牙利è¯) | ||
201 | </combo_item> | ||
202 | <combo_item | ||
203 | name="Dutch"> | ||
204 | Nederlands (è·å…°è¯) | ||
205 | </combo_item> | ||
206 | <combo_item | ||
207 | name="Polish"> | ||
208 | Polski (波兰è¯) | ||
209 | </combo_item> | ||
210 | <combo_item | ||
211 | name="Portugese"> | ||
212 | Portugués (è‘¡è„牙è¯) | ||
213 | </combo_item> | ||
214 | <combo_item | ||
215 | name="Russian"> | ||
216 | РуÑÑкий (ä¿„è¯) | ||
217 | </combo_item> | ||
218 | <combo_item | ||
219 | name="Turkish"> | ||
220 | Türkçe (土耳其è¯) | ||
221 | </combo_item> | ||
222 | <combo_item | ||
223 | name="Ukrainian" | ||
224 | value="uk"> | ||
225 | УкраїнÑька (乌克兰è¯) | ||
226 | </combo_item> | ||
227 | <combo_item | ||
228 | name="Chinese" | ||
229 | value="zh"> | ||
230 | ä¸æ–‡ | ||
231 | </combo_item> | ||
232 | <combo_item | ||
233 | name="(Japanese)" | ||
234 | value="ja"> | ||
235 | 日本語 | ||
236 | </combo_item> | ||
237 | <combo_item | ||
238 | name="(Korean)" | ||
239 | value="ko"> | ||
240 | í•œêµì–´ (韩è¯) | ||
241 | </combo_item> | ||
242 | </combo_box> | ||
243 | </panel> | ||
244 | |||
245 | </tab_container> | ||
246 | <string name="log_in_to_change"> | ||
247 | 登陆åŽæ›´æ”¹ | ||
248 | </string> | ||
249 | <string | ||
250 | name="default_email_used"> | ||
251 | 使用默认的电åé‚®ä»¶åœ°å€ | ||
252 | </string> | ||
72 | </panel> | 253 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml new file mode 100644 index 0000000..691e052 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml | |||
@@ -0,0 +1,81 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel | ||
3 | label="èŠå¤©é¢œè‰²" | ||
4 | name="colors"> | ||
5 | <text | ||
6 | name="text_box2"> | ||
7 | èŠå¤©é¢œè‰²: | ||
8 | </text> | ||
9 | <text | ||
10 | name="effects_color_textbox"> | ||
11 | 我的选择光æŸé¢œè‰²: | ||
12 | </text> | ||
13 | <color_swatch | ||
14 | name="effect_color_swatch" | ||
15 | tool_tip="点击这里æ¥æ‰“开色彩选择器" /> | ||
16 | |||
17 | <text | ||
18 | name="client_tag_color_textbox"> | ||
19 | å®¢æˆ·ç«¯æ ‡ç¾é¢œè‰²: | ||
20 | </text> | ||
21 | <check_box label="用颜色区别客户端" name="client_name_color_check" /> | ||
22 | <color_swatch | ||
23 | label="ä½ çš„èŠå¤©" | ||
24 | name="user" /> | ||
25 | <color_swatch | ||
26 | label="他人的èŠå¤©" | ||
27 | name="agent" /> | ||
28 | <color_swatch | ||
29 | label="å³æ—¶æ¶ˆæ¯" | ||
30 | name="im" /> | ||
31 | <color_swatch | ||
32 | label="系统" | ||
33 | name="system" /> | ||
34 | <color_swatch | ||
35 | label="脚本错误" | ||
36 | name="script_error" /> | ||
37 | <color_swatch | ||
38 | label="物体的èŠå¤©" | ||
39 | name="objects" /> | ||
40 | <color_swatch | ||
41 | label="物体å³æ—¶æ¶ˆæ¯" | ||
42 | name="object_ims" /> | ||
43 | <color_swatch | ||
44 | label="物体对拥有者" | ||
45 | name="owner" /> | ||
46 | <color_swatch | ||
47 | label="èŠå¤©æ°”çƒ" | ||
48 | name="background" /> | ||
49 | <color_swatch | ||
50 | label="链接" | ||
51 | name="links" /> | ||
52 | |||
53 | <text | ||
54 | name="text_box3"> | ||
55 | 高亮: | ||
56 | </text> | ||
57 | |||
58 | <check_box | ||
59 | label="高亮好å‹çš„èŠå¤©" | ||
60 | name="HighlightFriendsChat" /> | ||
61 | <color_swatch | ||
62 | label="好å‹" | ||
63 | name="FriendsChatColor" /> | ||
64 | |||
65 | <check_box | ||
66 | label="高亮å«æœ‰ä½ çš„åå—的本地èŠå¤©" | ||
67 | name="HighlightOwnNameInChat" /> | ||
68 | <check_box | ||
69 | label="高亮å«æœ‰ä½ çš„åå—的社团èŠå¤©" | ||
70 | name="HighlightOwnNameInIM" /> | ||
71 | <color_swatch | ||
72 | label="ä½ çš„åå—" | ||
73 | name="OwnNameChatColor" /> | ||
74 | |||
75 | <line_editor label="高亮昵称 1:" | ||
76 | name="nick01" /> | ||
77 | <line_editor label="高亮昵称 2:" | ||
78 | name="nick02" /> | ||
79 | <line_editor label="高亮昵称 3:" | ||
80 | name="nick03"> | ||
81 | </panel> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_fonts.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_fonts.xml new file mode 100644 index 0000000..ecb4e60 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_fonts.xml | |||
@@ -0,0 +1,29 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel | ||
3 | name="fonts_panel" | ||
4 | label="å—体"> | ||
5 | |||
6 | <text name="fontselect"> | ||
7 | 用户界é¢å—体: | ||
8 | </text> | ||
9 | <text name="(requires restart)"> | ||
10 | (需è¦é‡å¯åŠ¨) | ||
11 | </text> | ||
12 | |||
13 | <spinner | ||
14 | name="font_mult" | ||
15 | label="å—体放大å€æ•°:" | ||
16 | tool_tip="所有å—体尺寸将被乘以这个数。" /> | ||
17 | |||
18 | <check_box | ||
19 | name="font_round" | ||
20 | label="强制整数å—ä½“å¤§å° (也许能解决å—体模糊问题)" /> | ||
21 | <text name="UI Size:"> | ||
22 | ç•Œé¢å°ºå¯¸: | ||
23 | </text> | ||
24 | <button | ||
25 | label="é‡ç½®" | ||
26 | label_selected="é‡ç½®" | ||
27 | name="reset_ui_size" /> | ||
28 | <check_box label="ä½¿ç”¨åˆ†è¾¨çŽ‡æ— å…³å°ºå¯¸" name="ui_auto_scale"/> | ||
29 | </panel> | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml index 926231c..429bff3 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml | |||
@@ -1,30 +1,74 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel label="一般选项" name="general_panel"> | 2 | <panel label="一般选项" name="general_panel"> |
3 | <radio_group draw_border="false" name="default_start_location"> | 3 | <combo_box |
4 | <radio_item name="MyHome" tool_tip="默认登录到我的家。"> | 4 | name="default_location_combo" |
5 | 我的家 | 5 | allow_text_entry="true" |
6 | </radio_item> | 6 | max_chars="128"> |
7 | <radio_item name="MyLastLocation" tool_tip="默认登录到我最åŽçš„ä½ç½®ã€‚"> | 7 | <combo_item |
8 | 我最åŽåœ¨çš„ä½ç½® | 8 | name="MyHome" |
9 | </radio_item> | 9 | value="My Home"> |
10 | </radio_group> | 10 | 我的家 |
11 | <check_box label="在登陆界é¢ä¸Šæ˜¾ç¤ºèµ·å§‹ä½ç½®" name="show_location_checkbox"/> | 11 | </combo_item> |
12 | <combo_item | ||
13 | name="MyLastLocation" | ||
14 | value="My Last Location"> | ||
15 | 我最åŽåœ¨çš„ä½ç½® | ||
16 | </combo_item> | ||
17 | <combo_item | ||
18 | name="Typeregionname" | ||
19 | value="<Type region name>"> | ||
20 | <输入地域å> | ||
21 | </combo_item> | ||
22 | </combo_box> | ||
23 | <check_box label="在登陆界é¢ä¸Šæ˜¾ç¤º" name="show_location_checkbox"/> | ||
24 | <button | ||
25 | name="grid_btn" | ||
26 | label="ç½‘æ ¼ç®¡ç†å™¨" /> | ||
12 | <combo_box name="fade_out_combobox"> | 27 | <combo_box name="fade_out_combobox"> |
13 | <combo_item name="Never"> | 28 | <combo_item name="Never"> |
14 | 从ä¸æ˜¾ç¤º | 29 | 从ä¸æ˜¾ç¤º |
15 | </combo_item> | 30 | </combo_item> |
16 | <combo_item name="Show Temporarily"> | 31 | <combo_item name="Show Temporarily"> |
17 | 暂时显示 | 32 | çŸæš‚地显示 |
18 | </combo_item> | 33 | </combo_item> |
19 | <combo_item name="Always"> | 34 | <combo_item name="Always"> |
20 | 总是显示 | 35 | 总是显示 |
21 | </combo_item> | 36 | </combo_item> |
22 | </combo_box> | 37 | </combo_box> |
23 | <check_box label="化身åå—使用å°å·å—体" name="small_avatar_names_checkbox"/> | 38 | <check_box label="放大姓åæ ‡ç¾" name="large_avatar_names_checkbox"/> |
24 | <check_box label="在我的å±å¹•ä¸Šéšè—我的åå—" name="show_my_name_checkbox"/> | 39 | <check_box label="在我的å±å¹•ä¸Šéšè—我的åå—" name="show_my_name_checkbox"/> |
40 | <check_box | ||
41 | label="粗体显示好å‹çš„姓åæ ‡ç¾" | ||
42 | name="highlight_friends_checkbox" /> | ||
43 | <text | ||
44 | name="Display_Names_textbox"> | ||
45 | 显示å称: | ||
46 | </text> | ||
47 | <radio_group | ||
48 | name="displaynames"> | ||
49 | <radio_item | ||
50 | name="0"> | ||
51 | ç»å…¸åå— | ||
52 | </radio_item> | ||
53 | <radio_item | ||
54 | name="1"> | ||
55 | 显示å称 | ||
56 | </radio_item> | ||
57 | <radio_item | ||
58 | name="2"> | ||
59 | 两者都显示 | ||
60 | </radio_item> | ||
61 | </radio_group> | ||
62 | <check_box | ||
63 | label="显示好å‹çš„ç»å…¸åå—" | ||
64 | name="legacy_friends_checkbox" /> | ||
25 | <text name="group_titles_textbox"> | 65 | <text name="group_titles_textbox"> |
26 | 社团头衔: | 66 | 社团头衔: |
27 | </text> | 67 | </text> |
68 | <text | ||
69 | name="show_names_textbox"> | ||
70 | 姓åæ ‡ç¾: | ||
71 | </text> | ||
28 | <check_box label="éšè—所有社团头衔" name="show_all_title_checkbox"/> | 72 | <check_box label="éšè—所有社团头衔" name="show_all_title_checkbox"/> |
29 | <check_box label="éšè—我的社团头衔" name="show_my_title_checkbox"/> | 73 | <check_box label="éšè—我的社团头衔" name="show_my_title_checkbox"/> |
30 | <color_swatch label="" name="effect_color_swatch" tool_tip="点击这里æ¥æ‰“开色彩选择器"/> | 74 | <color_swatch label="" name="effect_color_swatch" tool_tip="点击这里æ¥æ‰“开色彩选择器"/> |
@@ -32,39 +76,75 @@ | |||
32 | ç•Œé¢å°ºå¯¸: | 76 | ç•Œé¢å°ºå¯¸: |
33 | </text> | 77 | </text> |
34 | <check_box bottom="-236" label="ä½¿ç”¨åˆ†è¾¨çŽ‡æ— å…³å°ºå¯¸" left="148" name="ui_auto_scale" width="256"/> | 78 | <check_box bottom="-236" label="ä½¿ç”¨åˆ†è¾¨çŽ‡æ— å…³å°ºå¯¸" left="148" name="ui_auto_scale" width="256"/> |
79 | <button | ||
80 | label="é‡ç½®" | ||
81 | label_selected="é‡ç½®" | ||
82 | name="reset_ui_size" /> | ||
83 | <text | ||
84 | name="afk_textbox"> | ||
85 | 空闲时离开: | ||
86 | </text> | ||
35 | <spinner label="离开休æ¯è®¡æ—¶:" name="afk_timeout_spinner"/> | 87 | <spinner label="离开休æ¯è®¡æ—¶:" name="afk_timeout_spinner"/> |
36 | <check_box label="åœ¨ä»˜å‡ºæˆ–æ”¶åˆ°æž—ç™»å¸ (L$) æ—¶æ醒我" name="notify_money_change_checkbox"/> | 88 | <check_box |
89 | label="空闲时进入离开状æ€" | ||
90 | name="afk_timeout_checkbox" /> | ||
91 | |||
92 | <text | ||
93 | name="Mini-Map Notify:"> | ||
94 | è¿·ä½ åœ°å›¾æ醒: | ||
95 | </text> | ||
37 | <text name="maturity_desired_label"> | 96 | <text name="maturity_desired_label"> |
38 | 分级: | 97 | 分级: |
39 | </text> | 98 | </text> |
40 | <text name="maturity_desired_prompt"> | 99 | <text name="maturity_desired_prompt"> |
41 | 我希望获的土地访问æƒé™ï¼š | 100 | 我希望访问以下级别的内容: |
42 | </text> | 101 | </text> |
43 | <combo_box name="maturity_desired_combobox"> | 102 | <combo_box name="maturity_desired_combobox"> |
44 | <combo_item name="Desired_Adult"> | 103 | <combo_item name="Desired_Adult"> |
45 | PG,Matureå’ŒAdult | 104 | PGã€Mature å’Œ Adult |
46 | </combo_item> | 105 | </combo_item> |
47 | <combo_item name="Desired_Mature"> | 106 | <combo_item name="Desired_Mature"> |
48 | PG和Mature | 107 | PG 和 Mature |
49 | </combo_item> | 108 | </combo_item> |
50 | <combo_item name="Desired_PG"> | 109 | <combo_item name="Desired_PG"> |
51 | ä»…é™PG | 110 | ä»…é™ PG |
52 | </combo_item> | 111 | </combo_item> |
53 | </combo_box> | 112 | </combo_box> |
54 | <text name="maturity_desired_textbox"> | 113 | <text name="maturity_desired_textbox"> |
55 | ä»…é™PG | 114 | ä»…é™ PG |
56 | </text> | 115 | </text> |
116 | <text | ||
117 | name="time_textbox"> | ||
118 | 时钟: | ||
119 | </text> | ||
120 | <combo_box | ||
121 | allow_text_entry="false" | ||
122 | max_chars="20" | ||
123 | name="time_combobox"> | ||
124 | <combo_item | ||
125 | name="12HourTime" | ||
126 | value="PST 12"> | ||
127 | 12å°æ—¶ å¤ªå¹³æ´‹æ ‡å‡†/å¤ä»¤æ—¶ | ||
128 | </combo_item> | ||
129 | <combo_item | ||
130 | name="24HourTime" | ||
131 | value="PST 24"> | ||
132 | 24å°æ—¶ å¤ªå¹³æ´‹æ ‡å‡†/å¤ä»¤æ—¶ | ||
133 | </combo_item> | ||
134 | <combo_item | ||
135 | name="UTCTime" | ||
136 | value="UTC"> | ||
137 | å调世界时 | ||
138 | </combo_item> | ||
139 | </combo_box> | ||
57 | <text length="1" name="start_location_textbox" type="string"> | 140 | <text length="1" name="start_location_textbox" type="string"> |
58 | 起始ä½ç½®: | 141 | 起始ä½ç½®: |
59 | </text> | 142 | </text> |
60 | <text length="1" name="show_names_textbox" type="string"> | ||
61 | 显示åå—: | ||
62 | </text> | ||
63 | <text length="1" name="effects_color_textbox" type="string"> | 143 | <text length="1" name="effects_color_textbox" type="string"> |
64 | 我的效果颜色: | 144 | 我的效果颜色: |
65 | </text> | 145 | </text> |
66 | <text length="1" name="seconds_textbox" type="string"> | 146 | <text length="1" name="minutes_textbox" type="string"> |
67 | 秒 | 147 | 分钟 |
68 | </text> | 148 | </text> |
69 | <text length="1" name="crash_report_textbox" type="string"> | 149 | <text length="1" name="crash_report_textbox" type="string"> |
70 | 崩溃报告: | 150 | 崩溃报告: |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml index b2c2863..4a2c365 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml | |||
@@ -1,5 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel label="图åƒ" name="Display panel"> | 2 | <panel label="图åƒ" name="Display panel"> |
3 | <text name="Display_textbox"> | ||
4 | 显示模å¼: | ||
5 | </text> | ||
3 | <button label="?" name="GraphicsPreferencesHelpButton"/> | 6 | <button label="?" name="GraphicsPreferencesHelpButton"/> |
4 | <check_box label="在窗å£ä¸è¿è¡Œ" name="windowed mode"/> | 7 | <check_box label="在窗å£ä¸è¿è¡Œ" name="windowed mode"/> |
5 | <text_editor name="FullScreenInfo"> | 8 | <text_editor name="FullScreenInfo"> |
@@ -10,19 +13,28 @@ | |||
10 | </text> | 13 | </text> |
11 | <combo_box name="windowsize combo"> | 14 | <combo_box name="windowsize combo"> |
12 | <combo_item name="640x480"> | 15 | <combo_item name="640x480"> |
13 | 640x480 | 16 | 640 × 480 |
14 | </combo_item> | 17 | </combo_item> |
15 | <combo_item name="800x600"> | 18 | <combo_item name="800x600"> |
16 | 800x600 | 19 | 800 × 600 |
17 | </combo_item> | 20 | </combo_item> |
18 | <combo_item name="720x480"> | 21 | <combo_item name="720x480"> |
19 | 720x480 (NTSC) | 22 | 720 × 480 (NTSC) |
20 | </combo_item> | 23 | </combo_item> |
21 | <combo_item name="768x576"> | 24 | <combo_item name="768x576"> |
22 | 768x576 (PAL) | 25 | 768 × 576 (PAL) |
23 | </combo_item> | 26 | </combo_item> |
24 | <combo_item name="1024x768"> | 27 | <combo_item name="1024x768"> |
25 | 1024x768 | 28 | 1024 × 768 |
29 | </combo_item> | ||
30 | <combo_item name="1280x720"> | ||
31 | 1280 × 720 (HDV720) | ||
32 | </combo_item> | ||
33 | <combo_item name="1440x1080"> | ||
34 | 1440 × 1080 (HDV1080) | ||
35 | </combo_item> | ||
36 | <combo_item name="1920x1080"> | ||
37 | 1920 × 1080 (HD1080) | ||
26 | </combo_item> | 38 | </combo_item> |
27 | </combo_box> | 39 | </combo_box> |
28 | <text name="DisplayResLabel"> | 40 | <text name="DisplayResLabel"> |
@@ -40,20 +52,20 @@ | |||
40 | 5:4 (1280x1024 液晶显示器) | 52 | 5:4 (1280x1024 液晶显示器) |
41 | </combo_item> | 53 | </combo_item> |
42 | <combo_item name="8:5(Widescreen)"> | 54 | <combo_item name="8:5(Widescreen)"> |
43 | 8:5 (宽å±) | 55 | 8:5 (宽å±å¹•) |
44 | </combo_item> | 56 | </combo_item> |
45 | <combo_item name="16:9(Widescreen)"> | 57 | <combo_item name="16:9(Widescreen)"> |
46 | 16:9 (宽å±å¹•) | 58 | 16:9 (宽å±å¹•) |
47 | </combo_item> | 59 | </combo_item> |
48 | </combo_box> | 60 | </combo_box> |
49 | <check_box label="自动检测" name="aspect_auto_detect"/> | 61 | <check_box label="自动检测" name="aspect_auto_detect"/> |
50 | <text name="HigherText"> | 62 | <text name="textbox"> |
51 | è´¨é‡å’Œ | 63 | 性能 |
52 | </text> | 64 | </text> |
53 | <text name="QualityText" width="95"> | 65 | <text name="HigherText2"> |
54 | 性能: | 66 | 图åƒè´¨é‡ |
55 | </text> | 67 | </text> |
56 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom="-86" drop_shadow_visible="true" enabled="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" height="12" hidden="false" left="115" length="1" mouse_opaque="true" name="FasterText" type="string" v_pad="0" width="80"> | 68 | <text name="FasterText"> |
57 | æ›´å¿« | 69 | æ›´å¿« |
58 | </text> | 70 | </text> |
59 | <text name="ShadersPrefText"> | 71 | <text name="ShadersPrefText"> |
@@ -68,9 +80,6 @@ | |||
68 | <text name="ShadersPrefText4"> | 80 | <text name="ShadersPrefText4"> |
69 | 最高 | 81 | 最高 |
70 | </text> | 82 | </text> |
71 | <text name="HigherText2"> | ||
72 | 更高 | ||
73 | </text> | ||
74 | <text name="QualityText2"> | 83 | <text name="QualityText2"> |
75 | è´¨é‡ | 84 | è´¨é‡ |
76 | </text> | 85 | </text> |
@@ -87,26 +96,31 @@ | |||
87 | <text name="ReflectionDetailText"> | 96 | <text name="ReflectionDetailText"> |
88 | å射细节: | 97 | å射细节: |
89 | </text> | 98 | </text> |
90 | <radio_group name="ReflectionDetailRadio"> | 99 | <combo_box name="ReflectionDetailCombo"> |
91 | <radio_item name="0"> | 100 | <combo_item name="0"> |
92 | 地é¢å’Œæ ‘木 | 101 | 地é¢å’Œæ ‘木 |
93 | </radio_item> | 102 | </combo_item> |
94 | <radio_item name="1"> | 103 | <combo_item name="1"> |
95 | 所有é™æ€ç‰©ä½“ | 104 | 所有é™æ€ç‰©ä½“ |
96 | </radio_item> | 105 | </combo_item> |
97 | <radio_item name="2"> | 106 | <combo_item name="2"> |
98 | 所有化身和物体 | 107 | 所有化身和物体 |
99 | </radio_item> | 108 | </combo_item> |
100 | <radio_item name="3"> | 109 | <combo_item name="3"> |
101 | 一切东西 | 110 | 一切东西 |
102 | </radio_item> | 111 | </combo_item> |
103 | </radio_group> | 112 | </combo_box> |
113 | |||
104 | <text name="AvatarRenderingText" width="128"> | 114 | <text name="AvatarRenderingText" width="128"> |
105 | 化身渲染: | 115 | 化身渲染: |
106 | </text> | 116 | </text> |
107 | <check_box label="化身替身" name="AvatarImpostors" width="256"/> | 117 | <check_box label="化身替身" name="AvatarImpostors" width="256"/> |
108 | <check_box label="硬件 Skinning" name="AvatarVertexProgram" width="256"/> | 118 | <check_box label="硬件 Skinning" name="AvatarVertexProgram" width="256"/> |
109 | <check_box label="化身衣物效果" name="AvatarCloth" width="256"/> | 119 | <check_box label="化身衣物效果" name="AvatarCloth" width="256"/> |
120 | <slider name="AvatarMaxVisible" label="éžæ›¿èº«æœ€å¤š (å):" /> | ||
121 | <text name="LimitsText"> | ||
122 | é™åˆ¶: | ||
123 | </text> | ||
110 | <text name="DrawDistanceMeterText1" width="128"> | 124 | <text name="DrawDistanceMeterText1" width="128"> |
111 | m | 125 | m |
112 | </text> | 126 | </text> |
@@ -149,29 +163,30 @@ | |||
149 | <text name="LightingDetailText"> | 163 | <text name="LightingDetailText"> |
150 | 光照细节: | 164 | 光照细节: |
151 | </text> | 165 | </text> |
152 | <radio_group name="LightingDetailRadio"> | 166 | <combo_box name="LightingDetailCombo"> |
153 | <radio_item name="SunMoon"> | 167 | <combo_item name="0"> |
154 | 仅有日月光效 | 168 | 仅有日月光效 |
155 | </radio_item> | 169 | </combo_item> |
156 | <radio_item name="LocalLights"> | 170 | <combo_item name="1"> |
157 | 附近的ç¯å…‰ | 171 | 附近的ç¯å…‰ |
158 | </radio_item> | 172 | </combo_item> |
159 | </radio_group> | 173 | </combo_box> |
160 | <text name="TerrainDetailText"> | 174 | <text name="TerrainDetailText"> |
161 | 地é¢ç»†èŠ‚: | 175 | 地é¢ç»†èŠ‚: |
162 | </text> | 176 | </text> |
163 | <radio_group name="TerrainDetailRadio"> | 177 | <combo_box name="TerrainDetailCombo"> |
164 | <radio_item name="0"> | 178 | <combo_item name="0"> |
165 | 低 | 179 | 低 |
166 | </radio_item> | 180 | </combo_item> |
167 | <radio_item name="2"> | 181 | <combo_item name="1"> |
168 | 高 | 182 | 高 |
169 | </radio_item> | 183 | </combo_item> |
170 | </radio_group> | 184 | </combo_box> |
185 | |||
171 | <button label="建议设置" name="Defaults"/> | 186 | <button label="建议设置" name="Defaults"/> |
172 | <button label="硬件选项" label_selected="硬件选项" name="GraphicsHardwareButton"/> | 187 | <button label="硬件选项" label_selected="硬件选项" name="GraphicsHardwareButton"/> |
173 | <string hidden="true" name="resolution_format"> | 188 | <string hidden="true" name="resolution_format"> |
174 | [RES_X] x [RES_Y] | 189 | [RES_X] × [RES_Y] |
175 | </string> | 190 | </string> |
176 | <string hidden="true" name="aspect_ratio_text"> | 191 | <string hidden="true" name="aspect_ratio_text"> |
177 | [NUM]:[DEN] | 192 | [NUM]:[DEN] |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml index 8fd8054..45d6e78 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml | |||
@@ -1,5 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel label="å³æ—¶æ¶ˆæ¯" name="im"> | 2 | <panel label="èŠå¤©è®°å½•å’Œéšç§" name="im"> |
3 | <text name="Logging:"> | ||
4 | èŠå¤©è®°å½•: | ||
5 | </text> | ||
3 | <text type="string" length="1" name="text_box"> | 6 | <text type="string" length="1" name="text_box"> |
4 | 我的在线状æ€: | 7 | 我的在线状æ€: |
5 | </text> | 8 | </text> |
@@ -11,8 +14,6 @@ | |||
11 | <text name="log_in_to_change"> | 14 | <text name="log_in_to_change"> |
12 | 登陆åŽæ›´æ”¹ | 15 | 登陆åŽæ›´æ”¹ |
13 | </text> | 16 | </text> |
14 | <check_box label="å‘é€å³æ—¶æ¶ˆæ¯è‡³ç”µå邮件([EMAIL])" name="send_im_to_email" /> | ||
15 | <check_box label="本地èŠå¤©ä¸åŒ…å«å³æ—¶é€šä¿¡æ¯" name="include_im_in_chat_console" /> | ||
16 | <check_box label="在å³æ—¶æ¶ˆæ¯ä¸æ˜¾ç¤ºæ—¶é—´" name="show_timestamps_check" /> | 17 | <check_box label="在å³æ—¶æ¶ˆæ¯ä¸æ˜¾ç¤ºæ—¶é—´" name="show_timestamps_check" /> |
17 | <check_box | 18 | <check_box |
18 | label="显示好å‹ä¸Šçº¿é€šçŸ¥" | 19 | label="显示好å‹ä¸Šçº¿é€šçŸ¥" |
@@ -20,11 +21,21 @@ | |||
20 | <check_box label="ä¿å˜å³æ—¶é€šä¿¡è®°å½•åˆ°æˆ‘的电脑上" name="log_instant_messages" /> | 21 | <check_box label="ä¿å˜å³æ—¶é€šä¿¡è®°å½•åˆ°æˆ‘的电脑上" name="log_instant_messages" /> |
21 | <check_box label="ä¿å˜å¯¹è¯è®°å½•åˆ°æˆ‘的电脑上" name="log_chat" /> | 22 | <check_box label="ä¿å˜å¯¹è¯è®°å½•åˆ°æˆ‘的电脑上" name="log_chat" /> |
22 | <check_box label="显示上次å³æ—¶é€šä¿¡çš„结尾" name="log_show_history" /> | 23 | <check_box label="显示上次å³æ—¶é€šä¿¡çš„结尾" name="log_show_history" /> |
23 | <button label="更改路径" label_selected="更改路径" name="log_path_button" /> | 24 | <text name="Log location:"> |
25 | 记录ä½ç½®: | ||
26 | </text> | ||
27 | <button label="更改ä½ç½®" name="log_path_button" /> | ||
28 | <text name="Privacy:"> | ||
29 | éšç§: | ||
30 | </text> | ||
24 | <text | 31 | <text |
25 | name="text_box3"> | 32 | name="text_box3"> |
26 | 忙碌模å¼çš„自动回å¤: | 33 | 忙碌模å¼çš„自动回å¤: |
27 | </text> | 34 | </text> |
35 | <button | ||
36 | label="å³æ—¶æ¶ˆæ¯è‡ªåŠ¨å›žå¤é€‰é¡¹" | ||
37 | name="busy_adv_btn" | ||
38 | tool_tip="å³æ—¶æ¶ˆæ¯è‡ªåŠ¨å›žå¤é€‰é¡¹" /> | ||
28 | <text | 39 | <text |
29 | name="text_box4"> | 40 | name="text_box4"> |
30 | èŠå¤©è®°å½•é€‰é¡¹: | 41 | èŠå¤©è®°å½•é€‰é¡¹: |
@@ -48,5 +59,4 @@ | |||
48 | label="显示时间时包括日期" | 59 | label="显示时间时包括日期" |
49 | name="log_date_timestamp" /> | 60 | name="log_date_timestamp" /> |
50 | 61 | ||
51 | |||
52 | </panel> | 62 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml index 19d060f..74e38b2 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml | |||
@@ -1,5 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel label="输入和摄åƒå¤´" name="Input panel"> | 2 | <panel label="输入和摄åƒæœº" name="Input panel"> |
3 | <text length="1" name=" Mouselook Options:" type="string"> | 3 | <text length="1" name=" Mouselook Options:" type="string"> |
4 | 第一人称视角选项设置: | 4 | 第一人称视角选项设置: |
5 | </text> | 5 | </text> |
@@ -11,7 +11,7 @@ | |||
11 | 自动飞翔选项: | 11 | 自动飞翔选项: |
12 | </text> | 12 | </text> |
13 | <check_box label="起飞/ç€é™†é€šè¿‡é”®ç›˜ä¸Š/下键控制" name="automatic_fly"/> | 13 | <check_box label="起飞/ç€é™†é€šè¿‡é”®ç›˜ä¸Š/下键控制" name="automatic_fly"/> |
14 | <text length="1" name=" Camera Options:" type="string"> | 14 | <text length="1" name="Camera Options:" type="string"> |
15 | æ‘„åƒæœºé€‰é¡¹: | 15 | æ‘„åƒæœºé€‰é¡¹: |
16 | </text> | 16 | </text> |
17 | <text name="camera_fov_label"> | 17 | <text name="camera_fov_label"> |
@@ -20,11 +20,52 @@ | |||
20 | <text name="Camera Follow Distance:"> | 20 | <text name="Camera Follow Distance:"> |
21 | æ‘„åƒæœºè·Ÿéšè·ç¦»: | 21 | æ‘„åƒæœºè·Ÿéšè·ç¦»: |
22 | </text> | 22 | </text> |
23 | <check_box label="编辑物体时使用自动视角" name="edit_camera_movement" tool_tip="当进入和离开编辑模å¼æ—¶ï¼Œè‡ªåŠ¨ç§»åŠ¨æ‘„åƒå¤´"/> | 23 | <text |
24 | <check_box label="编辑外观时使用自动视角" name="appearance_camera_movement" tool_tip="在编辑外观时,摄åƒå¤´è‡ªåŠ¨å®šä½"/> | 24 | name="Camera Transition Time:"> |
25 | æ‘„åƒæœºè¿‡æ¸¡æ—¶é—´: | ||
26 | </text> | ||
27 | <text | ||
28 | name="Camera Smoothing:"> | ||
29 | æ‘„åƒæœºå¹³æ»‘: | ||
30 | </text> | ||
31 | <check_box label="编辑物体时使用自动视角" name="edit_camera_movement" tool_tip="当进入和离开编辑模å¼æ—¶ï¼Œè‡ªåŠ¨ç§»åŠ¨æ‘„åƒæœº"/> | ||
32 | <check_box label="编辑外观时使用自动视角" name="appearance_camera_movement" tool_tip="在编辑外观时,摄åƒæœºè‡ªåŠ¨å®šä½"/> | ||
33 | <check_box | ||
34 | label="ç¦ç”¨æ‘„åƒæœºé™åˆ¶" | ||
35 | name="Disable camera constraints" | ||
36 | tool_tip="ç¦ç”¨æ‘„åƒæœºé™åˆ¶ï¼Œä¾‹å¦‚è·ç¦»é™åˆ¶å’Œåœ°é¢é™åˆ¶" /> | ||
37 | <check_box | ||
38 | label="ç¦ç”¨æœ€å°æ”¾å¤§è·ç¦»" | ||
39 | name="disable_min_zoom_check" | ||
40 | tool_tip="èšç„¦å…ƒä»¶æˆ–化身并拉近视角时,ç¦ç”¨æœ€å°è·ç¦»" /> | ||
25 | <text name="text2"> | 41 | <text name="text2"> |
26 | 化身显示选项: | 42 | 化身显示选项: |
27 | </text> | 43 | </text> |
28 | <check_box label="第一人称视角ä¸ï¼Œæ˜¾ç¤ºè‡ªå·±çš„化身" name="first_person_avatar_visible"/> | 44 | <check_box label="第一人称视角ä¸ï¼Œæ˜¾ç¤ºè‡ªå·±çš„化身" name="first_person_avatar_visible"/> |
29 | <button label="游æˆæ†è®¾ç½®" name="joystick_setup_button"/> | 45 | <button label="游æˆæ†è®¾ç½®" name="joystick_setup_button"/> |
46 | |||
47 | <text name="double_click_action_label"> | ||
48 | åŒå‡»åŠ¨ä½œ: | ||
49 | </text> | ||
50 | <combo_box | ||
51 | name="double_click_action"> | ||
52 | <combo_item name="None"> | ||
53 | æ— | ||
54 | </combo_item> | ||
55 | <combo_item name="Go"> | ||
56 | <!--å‰å¾€-->自动寻路 | ||
57 | </combo_item> | ||
58 | </combo_box> | ||
59 | |||
60 | <text name="go_action_label"> | ||
61 | 自动寻路方å¼: | ||
62 | </text> | ||
63 | <combo_box name="go_action"> | ||
64 | <combo_item name="Move"> | ||
65 | 移动 | ||
66 | </combo_item> | ||
67 | <combo_item name="Teleport"> | ||
68 | 瞬间移动 | ||
69 | </combo_item> | ||
70 | </combo_box> | ||
30 | </panel> | 71 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml index ccaf9a6..14184cd 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml | |||
@@ -1,23 +1,252 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel label="网络" name="network"> | 2 | <panel label="网络" name="network"> |
3 | <tab_container | ||
4 | name="networktab2" | ||
5 | tab_min_width="50"> | ||
6 | |||
7 | <panel | ||
8 | label="性能" | ||
9 | name="bandwidth_panel"> | ||
3 | <text name="text_box"> | 10 | <text name="text_box"> |
4 | 最大带宽: | 11 | 最大带宽: |
5 | </text> | 12 | </text> |
13 | <text name="Speed:"> | ||
14 | </text> | ||
6 | <text name="text_box2"> | 15 | <text name="text_box2"> |
7 | kbps (æ¯ç§’kbæ•°) | 16 | kbps (åƒä½æ¯ç§’) |
17 | </text> | ||
18 | <text name="Texture Fetching:"> | ||
19 | æ质下载: | ||
8 | </text> | 20 | </text> |
21 | <check_box | ||
22 | label="使用 HTTP 获å–æè´¨ (实验性)" | ||
23 | name="http_texture_check" /> | ||
24 | <check_box | ||
25 | label="通过é€æ¸å¢žåŠ æ绘è·ç¦»åŠ 速载入" | ||
26 | name="speed_rez_check" /> | ||
27 | <spinner | ||
28 | tool_tip="æ绘è·ç¦»å¢žåŠ 之间的将å„" | ||
29 | label="æ¥è¿›é—´éš”:" | ||
30 | name="speed_rez_interval_spinner" /> | ||
31 | <text | ||
32 | name="speed_rez_seconds_text"> | ||
33 | 秒 | ||
34 | </text> | ||
35 | <text | ||
36 | name="Disk Cache:"> | ||
37 | ç£ç›˜é«˜é€Ÿç¼“å˜: | ||
38 | </text> | ||
9 | <text name="cache_size_label_l"> | 39 | <text name="cache_size_label_l"> |
10 | ç£ç›˜é«˜é€Ÿç¼“å˜å¤§å°: | 40 | 大å°: |
11 | </text> | 41 | </text> |
12 | <text name="text_box5"> | 42 | <text name="text_box5"> |
13 | å…†å—节 | 43 | å…†å—节 |
14 | </text> | 44 | </text> |
15 | <button label="清除缓å˜" name="clear_cache"/> | 45 | <button label="清除缓å˜" name="clear_disk_cache"/> |
16 | <text name="cache_location_label"> | 46 | <text name="cache_location_label"> |
17 | ç£ç›˜ç¼“å˜ä½ç½®: | 47 | ç£ç›˜ç¼“å˜ä½ç½®: |
18 | </text> | 48 | </text> |
19 | <button label="设置" label_selected="设置" name="set_cache"/> | 49 | <button label="设置" label_selected="设置" name="set_disk_cache"/> |
20 | <button label="é‡ç½®" label_selected="设置" name="reset_cache"/> | 50 | <button label="é‡ç½®" label_selected="设置" name="reset_disk_cache"/> |
21 | <check_box label="自定义连接端å£" name="connection_port_enabled"/> | 51 | </panel> |
52 | |||
53 | |||
54 | <!-- PROXY SETTINGS PANEL --> | ||
55 | |||
56 | |||
57 | <panel | ||
58 | label="代ç†æœåŠ¡å™¨è®¾ç½®" | ||
59 | name="proxies"> | ||
60 | <check_box | ||
61 | label="å¯ç”¨ XMLRPC 代ç†æœåŠ¡å™¨ (登入ã€åœŸåœ°ã€ä»¥åŠè´ä¹°è´§å¸)" | ||
62 | name="xmlrpc_proxy_enabled" /> | ||
63 | <text | ||
64 | name="xmlrpc_proxy_text_label"> | ||
65 | 地å€: | ||
66 | </text> | ||
67 | <line_editor | ||
68 | name="xmlrpc_proxy_editor" | ||
69 | tool_tip="希望使用的代ç†æœåŠ¡å™¨å称或 IP 地å€" /> | ||
70 | <spinner | ||
71 | label="端å£å·:" | ||
72 | name="xmlrpc_proxy_port" /> | ||
73 | |||
74 | <!-- SOCKS 5 PROXY --> | ||
75 | |||
76 | <check_box | ||
77 | label="å¯ç”¨ SOCKS 5 代ç†æœåŠ¡å™¨" | ||
78 | name="socks5_proxy_enabled" /> | ||
79 | <text | ||
80 | name="socks5_host_label"> | ||
81 | SOCKS 5 主机: | ||
82 | </text> | ||
83 | <line_editor | ||
84 | name="socks5_proxy_host" | ||
85 | tool_tip="希望使用的 SOCKS 5 代ç†æœåŠ¡å™¨å称或 IP 地å€e" /> | ||
86 | <spinner | ||
87 | label="端å£å·:" | ||
88 | name="socks5_proxy_port" /> | ||
89 | <text | ||
90 | name="socks5_auth_label"> | ||
91 | SOCKS 5 身份验è¯: | ||
92 | </text> | ||
93 | <radio_group | ||
94 | name="socks5_auth"> | ||
95 | <radio_item | ||
96 | name="None" | ||
97 | tool_tip="ä¸ä½¿ç”¨èº«ä»½éªŒè¯"> | ||
98 | æ— | ||
99 | </radio_item> | ||
100 | <radio_item | ||
101 | name="UserPass" | ||
102 | tool_tip="用户å / 密ç 身份验è¯"> | ||
103 | 用户å / 密ç | ||
104 | </radio_item> | ||
105 | </radio_group> | ||
106 | <text | ||
107 | name="socks5_username_label"> | ||
108 | 用户å: | ||
109 | </text> | ||
110 | <line_editor | ||
111 | name="socks5_proxy_username" | ||
112 | tool_tip="Socks 5代ç†æœåŠ¡å™¨çš„用户å" /> | ||
113 | |||
114 | <text | ||
115 | name="socks5_password_label"> | ||
116 | 密ç : | ||
117 | </text> | ||
118 | <line_editor | ||
119 | name="socks5_proxy_password" | ||
120 | tool_tip="Socks 5代ç†æœåŠ¡å™¨çš„密ç " /> | ||
121 | |||
122 | <text | ||
123 | name="http_proxy_label"> | ||
124 | HTTP 代ç†æœåŠ¡å™¨: | ||
125 | </text> | ||
126 | <radio_group | ||
127 | name="socks5_http_proxy_type"> | ||
128 | <radio_item | ||
129 | name="None" | ||
130 | tool_tip="ä¸ä½¿ç”¨ä»£ç†æœåŠ¡å™¨"> | ||
131 | ä¸ä½¿ç”¨ | ||
132 | </radio_item> | ||
133 | <radio_item | ||
134 | name="Socks" | ||
135 | tool_tip="HTTP 连接使用 Socks 5 代ç†æœåŠ¡å™¨"> | ||
136 | SOCKS 5 | ||
137 | </radio_item> | ||
138 | <radio_item | ||
139 | name="Web" | ||
140 | tool_tip="HTTP 连接使用 Web 代ç†æœåŠ¡å™¨"> | ||
141 | Web | ||
142 | </radio_item> | ||
143 | </radio_group> | ||
144 | <text name="port_label"> | ||
145 | ä¼ å‡ºè¿žæŽ¥: | ||
146 | </text> | ||
147 | <check_box label="è‡ªå®šä¹‰ä¼ å‡ºè¿žæŽ¥ç«¯å£" name="connection_port_enabled" | ||
148 | tool_tip="å¯¹ä¼ å‡ºè¿žæŽ¥ä½¿ç”¨è‡ªå®šä¹‰ç«¯å£"/> | ||
22 | <spinner label="端å£å·:" name="connection_port"/> | 149 | <spinner label="端å£å·:" name="connection_port"/> |
150 | </panel> | ||
151 | |||
152 | |||
153 | <!-- WEB BROWSER PANEL --> | ||
154 | |||
155 | |||
156 | <panel | ||
157 | label="Web æµè§ˆå™¨" | ||
158 | name="web_browser"> | ||
159 | <text name="internal_browser_label"> | ||
160 | 内建æµè§ˆå™¨: | ||
161 | </text> | ||
162 | <button | ||
163 | label="清除内部æµè§ˆå™¨ç¼“å˜" | ||
164 | name="clear_web_cache" /> | ||
165 | <text type="string" name="cookie_label" > | ||
166 | Cookie: | ||
167 | </text> | ||
168 | <check_box label="ä»Žç½‘ç«™æŽ¥å— cookie" | ||
169 | name="cookies_enabled" /> | ||
170 | <button | ||
171 | label="清除 Cookie" | ||
172 | name="clear_ookies" /> | ||
173 | <text name="proxy_label"> | ||
174 | 代ç†æœåŠ¡å™¨: | ||
175 | </text> | ||
176 | <check_box | ||
177 | label="å¯ç”¨ç½‘页代ç†æœåŠ¡å™¨" | ||
178 | name="web_proxy_enabled" /> | ||
179 | <text name="proxy_text_label"> | ||
180 | 地å€: | ||
181 | </text> | ||
182 | <line_editor | ||
183 | name="web_proxy_editor" | ||
184 | tool_tip="ä½ æƒ³ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„å称或者 IP 地å€" /> | ||
185 | <spinner | ||
186 | label="端å£å·:" | ||
187 | name="web_proxy_port" /> | ||
188 | <text name="open_links_label"> | ||
189 | 打开链接: | ||
190 | </text> | ||
191 | <radio_group name="use_external_browser"> | ||
192 | <radio_item | ||
193 | name="external" | ||
194 | tool_tip="使用系统默认网络æµè§ˆå™¨æ‰“开帮助ã€ç½‘页链接, ç‰ç‰ã€‚\n若全å±æ˜¾ç¤ºåˆ™ä¸æŽ¨è使用。"> | ||
195 | 使用外部æµè§ˆå™¨(Firefox, Safari, Internet Explorer) | ||
196 | </radio_item> | ||
197 | <radio_item | ||
198 | name="internal" | ||
199 | tool_tip="使用内部æµè§ˆå™¨æ‰“开帮助ã€ç½‘页链接, ç‰ç‰ã€‚这个æµè§ˆå™¨ä¼šåœ¨ Imprudence ä¸æ‰“开一个新窗å£ã€‚"> | ||
200 | 使用内建æµè§ˆå™¨ | ||
201 | </radio_item> | ||
202 | </radio_group> | ||
203 | <text> | ||
204 | æµè§ˆå™¨ä¸»é¡µ: | ||
205 | </text> | ||
206 | <line_editor name="home_page" tool_tip="首次打开第二人生æµè§ˆå™¨æ—¶çš„æµè§ˆé¡µé¢" /> | ||
207 | <text> | ||
208 | 代ç†æœåŠ¡å™¨é…ç½®: | ||
209 | </text> | ||
210 | <check_box label="内部æµè§ˆå™¨ä½¿ç”¨ä»£ç†æœåŠ¡å™¨" name="proxy_enabled" | ||
211 | tool_tip="è¯·ä¸ºå› ç‰¹ç½‘ç½‘ç»œæµè§ˆå™¨æŒ‡å®šä»£ç†æœåŠ¡å™¨é…置。" /> | ||
212 | <text> | ||
213 | 代ç†æœåŠ¡å™¨: | ||
214 | </text> | ||
215 | <line_editor name="proxy_address" tool_tip="请输入代ç†æœåŠ¡å™¨çš„å称或IP地å€" /> | ||
216 | <text> | ||
217 | 端å£ï¼š | ||
218 | </text> | ||
219 | <line_editor name="proxy_port" /> | ||
220 | <text> | ||
221 | 对以下内容ä¸ä½¿ç”¨ä»£ç†: | ||
222 | </text> | ||
223 | <line_editor name="proxy_exclusions" | ||
224 | tool_tip="请输入ä¸æƒ³ä½¿ç”¨ä»£ç†æœåŠ¡å™¨æ›¿æ¢çš„å称或IP地å€" /> | ||
225 | <check_box label="在元件上显示网页 (实验性功能, 需è¦é‡å¯)" | ||
226 | name="web_pages_on_prims_check" /> | ||
227 | <text> | ||
228 | 安全地å€ï¼š | ||
229 | (登陆察看) | ||
230 | </text> | ||
231 | <button label="æ·»åŠ " name="add_trusted" /> | ||
232 | <line_editor name="trusted_site_entry" tool_tip="æ·»åŠ åˆ°å®‰å…¨åå•ä¸çš„网络地å€" /> | ||
233 | <button label="移除" name="rem_trusted" /> | ||
234 | <text name="search_url_label"> | ||
235 | 全部 (Web) æœç´¢æ ‡ç¾ URL: | ||
236 | </text> | ||
237 | <line_editor | ||
238 | name="world_search_editor" | ||
239 | tool_tip="您想使用的世界æœç´¢å¼•æ“Ž" /> | ||
240 | <button | ||
241 | label="é‡ç½®" | ||
242 | tool_tip="é‡ç½®ä¸ºé»˜è®¤å€¼" | ||
243 | name="world_search_reset_default" /> | ||
244 | <button | ||
245 | label="清除" | ||
246 | tool_tip="清除å—段" | ||
247 | name="world_search_clear" /> | ||
248 | </panel> | ||
249 | </tab_container> | ||
250 | |||
251 | </panel> | ||
23 | </panel> | 252 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml index eeeaf87..48a3e4c 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml | |||
@@ -4,15 +4,15 @@ | |||
4 | name="popups" | 4 | name="popups" |
5 | title="弹出窗å£"> | 5 | title="弹出窗å£"> |
6 | <text name="dont_show_label"> | 6 | <text name="dont_show_label"> |
7 | ä¸æ˜¾ç¤ºè¿™äº›å¼¹å‡ºçª—å£: | 7 | ä¸æ˜¾ç¤ºè¿™äº›æ示: |
8 | </text> | 8 | </text> |
9 | <scroll_list | 9 | <scroll_list |
10 | name="disabled_popups" /> | 10 | name="disabled_popups" /> |
11 | <button | 11 | <button |
12 | label="å¯ç”¨è¯¥å¼¹å‡ºçª—å£" | 12 | label="å¯ç”¨è¯¥æ示" |
13 | name="enable_popup" /> | 13 | name="enable_popup" /> |
14 | <text name="show_label"> | 14 | <text name="show_label"> |
15 | 显示这些弹出窗å£: | 15 | 显示这些æ示: |
16 | </text> | 16 | </text> |
17 | <scroll_list | 17 | <scroll_list |
18 | name="enabled_popups" /> | 18 | name="enabled_popups" /> |
@@ -26,14 +26,33 @@ | |||
26 | <check_box | 26 | <check_box |
27 | label="接å—åŽè‡ªåŠ¨æ‰“å¼€" | 27 | label="接å—åŽè‡ªåŠ¨æ‰“å¼€" |
28 | name="show_new_inventory" /> | 28 | name="show_new_inventory" /> |
29 | <check_box label="在库å˜ä¸è‡ªåŠ¨æ˜¾ç¤ºæ–°æŽ¥æ”¶çš„物体" | 29 | <check_box label="在库å˜ä¸è‡ªåŠ¨æ˜¾ç¤ºæ–°æŽ¥æ”¶çš„物å“" |
30 | name="show_in_inventory" /> | 30 | name="show_in_inventory" /> |
31 | <button width="225" | 31 | <button width="225" |
32 | label="显示所有的“下次ä¸å†æ˜¾ç¤ºâ€å¯¹è¯æ¡†..." | 32 | label="显示所有的æ示" |
33 | name="reset_dialogs_btn" | 33 | name="reset_dialogs_btn" |
34 | tool_tip="å¯ç”¨æ‰€æœ‰å¯é€‰çš„弹出窗å£åŠâ€œé¦–次使用â€æ示。" /> | 34 | tool_tip="å¯ç”¨æ‰€æœ‰å¯é€‰çš„弹出窗å£åŠâ€œé¦–次使用â€æ示。" /> |
35 | <button width="225" | 35 | <button width="225" |
36 | label="éšè—所有的“下次ä¸å†æ˜¾ç¤ºâ€å¯¹è¯æ¡†..." | 36 | label="éšè—所有的æ示" |
37 | name="skip_dialogs_btn" | 37 | name="skip_dialogs_btn" |
38 | tool_tip="ç¦ç”¨æ‰€æœ‰å¯é€‰çš„弹出窗å£åŠâ€œé¦–次使用â€æ示。" /> | 38 | tool_tip="ç¦ç”¨æ‰€æœ‰å¯é€‰çš„弹出窗å£åŠâ€œé¦–次使用â€æ示。" /> |
39 | <text name="radar_text"> | ||
40 | èŠå¤©é€šçŸ¥: | ||
41 | </text> | ||
42 | <text | ||
43 | name="When an avatar enters:"> | ||
44 | 当其他化身: | ||
45 | </text> | ||
46 | <check_box | ||
47 | label="进入èŠå¤©èŒƒå›´æ—¶" | ||
48 | name="mini_map_notify_chat" /> | ||
49 | <check_box | ||
50 | label="进入区域时" | ||
51 | name="mini_map_notify_sim" /> | ||
52 | <check_box | ||
53 | label="显示好å‹ä¸Šçº¿é€šçŸ¥" | ||
54 | name="friends_online_notify_checkbox" /> | ||
55 | <check_box | ||
56 | label="收到或付出 [CURRENCY] æ—¶æ示" | ||
57 | name="notify_money_change_checkbox" /> | ||
39 | </panel> | 58 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_skins.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_skins.xml index 70e0bc2..69b214c 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_skins.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_skins.xml | |||
@@ -1,12 +1,22 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel label="皮肤" name="Skins panel"> | 2 | <panel label="皮肤" name="Skins panel"> |
3 | <text name="muting_text"> | 3 | <text name="muting_text"> |
4 | 选择皮肤 (需è¦é‡å¯åŠ¨): | 4 | 选择皮肤: |
5 | </text> | 5 | </text> |
6 | <radio_group name="skin_selection"> | 6 | <text |
7 | <radio_item name="default">默认</radio_item> | 7 | name="requires_restart_text"> |
8 | <radio_item name="silver">Silver</radio_item> | 8 | (需è¦é‡å¯åŠ¨; ä¿¡æ¯ä¸Žä½œè€…资料请å‚è§çš®è‚¤æ–‡ä»¶å¤¹) |
9 | </radio_group> | 9 | </text> |
10 | <radio_group name="skin_selection"> | ||
11 | <radio_item name="default">默认</radio_item> | ||
12 | </radio_group> | ||
13 | <text | ||
14 | name="skin_current_text"> | ||
15 | 其他皮肤: | ||
16 | </text> | ||
17 | <button | ||
18 | name="save_skin" | ||
19 | label="ä¿å˜" /> | ||
10 | </panel> | 20 | </panel> |
11 | 21 | ||
12 | 22 | ||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_voice.xml index a41be19..9691aa6 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_voice.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_voice.xml | |||
@@ -1,5 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" height="408" hidden="false" label="è¯éŸ³èŠå¤©" left="102" mouse_opaque="true" name="chat" width="517"> | 2 | <panel label="è¯éŸ³èŠå¤©" name="voice_chat"> |
3 | <text_editor name="voice_unavailable"> | 3 | <text_editor name="voice_unavailable"> |
4 | è¯éŸ³èŠå¤©ä¸å¯ç”¨ã€‚ | 4 | è¯éŸ³èŠå¤©ä¸å¯ç”¨ã€‚ |
5 | </text_editor> | 5 | </text_editor> |
@@ -13,14 +13,14 @@ | |||
13 | </radio_item> | 13 | </radio_item> |
14 | </radio_group> | 14 | </radio_group> |
15 | <text name="push_to_talk_heading"> | 15 | <text name="push_to_talk_heading"> |
16 | å³æŒ‰å³è¯´ | 16 | æŒ‰é”®é€šè¯ |
17 | </text> | 17 | </text> |
18 | <text_editor name="voice_chat_description" width="465"> | 18 | <text_editor name="voice_chat_description" width="465"> |
19 | å³æŒ‰å³è¯´å…è®¸ä½ æŽ§åˆ¶ä»€ä¹ˆæ—¶å€™ä¼ é€å£°éŸ³ã€‚在切æ¢æ¨¡å¼ä¸ï¼ŒæŒ‰ä¸‹å¹¶é‡Šæ”¾å³æŒ‰å³è¯´é”®æ¥åˆ‡æ¢éº¦å…‹é£Žå¼€å…³ã€‚ä¸åœ¨åˆ‡æ¢æ¨¡å¼çš„时候,麦克风仅在å³æŒ‰å³è¯´é”®æŒ‰ä¸‹æ—¶æ‰æœ‰æ•ˆã€‚ | 19 | 按键通è¯å…è®¸ä½ æŽ§åˆ¶ä»€ä¹ˆæ—¶å€™ä¼ é€å£°éŸ³ã€‚在切æ¢æ¨¡å¼ä¸ï¼ŒæŒ‰ä¸‹å¹¶é‡Šæ”¾å³æŒ‰å³è¯´é”®æ¥åˆ‡æ¢éº¦å…‹é£Žå¼€å…³ã€‚ä¸åœ¨åˆ‡æ¢æ¨¡å¼çš„时候,麦克风仅在å³æŒ‰å³è¯´é”®æŒ‰ä¸‹æ—¶æ‰æœ‰æ•ˆã€‚ |
20 | </text_editor> | 20 | </text_editor> |
21 | <check_box label="以切æ¢æ¨¡å¼ä½¿ç”¨å³æŒ‰å³è¯´" name="push_to_talk_toggle_check"/> | 21 | <check_box label="以切æ¢æ¨¡å¼ä½¿ç”¨æŒ‰é”®é€šè¯" name="push_to_talk_toggle_check"/> |
22 | <text name="push_to_talk_label" type="string"> | 22 | <text name="push_to_talk_label" type="string"> |
23 | å³æŒ‰å³è¯´åˆ‡æ¢é”®: | 23 | 按键通è¯åˆ‡æ¢é”®: |
24 | </text> | 24 | </text> |
25 | <line_editor name="modifier_combo"/> | 25 | <line_editor name="modifier_combo"/> |
26 | <button label="设置按键" name="set_voice_hotkey_button"/> | 26 | <button label="设置按键" name="set_voice_hotkey_button"/> |
@@ -34,4 +34,5 @@ | |||
34 | <text_editor bottom_delta="-45" height="48" name="device_settings_text"> | 34 | <text_editor bottom_delta="-45" height="48" name="device_settings_text"> |
35 | *注æ„*: è¿è¡Œè®¾å¤‡é€‰é¡¹æˆ–è¯éŸ³è®¾ç½®å‘导将临时将您从è¯éŸ³èŠå¤©æ–开,并且所作的更改将立å³ç”Ÿæ•ˆã€‚ | 35 | *注æ„*: è¿è¡Œè®¾å¤‡é€‰é¡¹æˆ–è¯éŸ³è®¾ç½®å‘导将临时将您从è¯éŸ³èŠå¤©æ–开,并且所作的更改将立å³ç”Ÿæ•ˆã€‚ |
36 | </text_editor> | 36 | </text_editor> |
37 | <button label="é‡æ–°è¿žæŽ¥åˆ°è¯éŸ³èŠå¤©" name="reset_voice" /> | ||
37 | </panel> | 38 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_web.xml index e965534..ca07b20 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_web.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_web.xml | |||
@@ -2,20 +2,17 @@ | |||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | 2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" |
3 | height="408" hidden="false" label="Web" left="102" mouse_opaque="true" | 3 | height="408" hidden="false" label="Web" left="102" mouse_opaque="true" |
4 | name="web" width="517"> | 4 | name="web" width="517"> |
5 | <text name="cache_size_label_l"> | ||
6 | æµè§ˆå™¨ç¼“å˜: | ||
7 | </text> | ||
8 | <button | 5 | <button |
9 | label="现在清除" | 6 | label="清除内部æµè§ˆå™¨ç¼“å˜" |
10 | name="clear_cache" /> | 7 | name="clear_cache" /> |
11 | <text type="string" name="cookie_label" > | 8 | <text type="string" name="cookie_label" > |
12 | Cookie: | 9 | Cookie: |
13 | </text> | 10 | </text> |
14 | <check_box label="ä»Žç½‘ç«™æŽ¥å— cookie" | 11 | <check_box label="ä»Žç½‘ç«™æŽ¥å— cookie" |
15 | name="cookies_enabled" /> | 12 | name="cookies_enabled" /> |
16 | <button | 13 | <button |
17 | label="现在清除" | 14 | label="清除 Cookie" |
18 | name="clear_cookies" /> | 15 | name="clear_ookies" /> |
19 | <text name="proxy_label"> | 16 | <text name="proxy_label"> |
20 | 代ç†æœåŠ¡å™¨: | 17 | 代ç†æœåŠ¡å™¨: |
21 | </text> | 18 | </text> |
@@ -39,7 +36,7 @@ | |||
39 | </radio_item> | 36 | </radio_item> |
40 | <radio_item | 37 | <radio_item |
41 | name="internal" | 38 | name="internal" |
42 | tool_tip="使用内部æµè§ˆå™¨æ‰“开帮助ã€ç½‘页链接, ç‰ç‰ã€‚这个æµè§ˆå™¨ä¼šåœ¨ç¬¬äºŒäººç”Ÿä¸æ‰“开一个新窗å£ã€‚"> | 39 | tool_tip="使用内部æµè§ˆå™¨æ‰“开帮助ã€ç½‘页链接, ç‰ç‰ã€‚这个æµè§ˆå™¨ä¼šåœ¨ Imprudence ä¸æ‰“开一个新窗å£ã€‚"> |
43 | 使用内建æµè§ˆå™¨ | 40 | 使用内建æµè§ˆå™¨ |
44 | </radio_item> | 41 | </radio_item> |
45 | </radio_group> | 42 | </radio_group> |
@@ -85,4 +82,19 @@ | |||
85 | <button label="æ·»åŠ " name="add_trusted" /> | 82 | <button label="æ·»åŠ " name="add_trusted" /> |
86 | <line_editor name="trusted_site_entry" tool_tip="æ·»åŠ åˆ°å®‰å…¨åå•ä¸çš„网络地å€" /> | 83 | <line_editor name="trusted_site_entry" tool_tip="æ·»åŠ åˆ°å®‰å…¨åå•ä¸çš„网络地å€" /> |
87 | <button label="移除" name="rem_trusted" /> | 84 | <button label="移除" name="rem_trusted" /> |
85 | <text name="cache_size_label_l"> | ||
86 | 全部 (Web) æœç´¢æ ‡ç¾ URL: | ||
87 | </text> | ||
88 | <line_editor | ||
89 | name="world_search_editor" | ||
90 | tool_tip="您想使用的世界æœç´¢å¼•æ“Ž" /> | ||
91 | <button | ||
92 | label="é‡ç½®" | ||
93 | tool_tip="é‡ç½®ä¸ºé»˜è®¤å€¼" | ||
94 | name="world_search_reset_default" /> | ||
95 | <button | ||
96 | label="清除" | ||
97 | tool_tip="清除å—段" | ||
98 | name="world_search_clear" /> | ||
99 | |||
88 | </panel> | 100 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_radar.xml b/linden/indra/newview/skins/default/xui/zh/panel_radar.xml new file mode 100644 index 0000000..db4fc89 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/panel_radar.xml | |||
@@ -0,0 +1,104 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <!-- Note: panel rect (size) is specified in floater_mini_map.xml --><panel | ||
3 | name="RadarPanel" | ||
4 | label="Radar"> | ||
5 | <string name="no_one_near"> | ||
6 | èŒƒå›´å†…æ— åŒ–èº« | ||
7 | </string> | ||
8 | <string name="is_muted"> | ||
9 | (å·²å±è”½) | ||
10 | </string> | ||
11 | <string name="is_typing"> | ||
12 | (打å—ä¸) | ||
13 | </string> | ||
14 | <string name="entering_chat_range"> | ||
15 | [NAME] 进入了èŠå¤©èŒƒå›´ ([DISTANCE]m) | ||
16 | </string> | ||
17 | <string name="entering_sim_range"> | ||
18 | [NAME] 进入了当å‰åŒºåŸŸ ([DISTANCE]m) | ||
19 | </string> | ||
20 | <string name="avatars_in_singular"> | ||
21 | [COUNT] å化身于 | ||
22 | </string> | ||
23 | <string name="avatars_in_plural"> | ||
24 | [COUNT] å化身于 | ||
25 | </string> | ||
26 | <string name="unknown_avatar"> | ||
27 | (未知) | ||
28 | </string> | ||
29 | <text name="avatar_count" left="5"> | ||
30 | 0 å化身于 | ||
31 | </text> | ||
32 | <text name="meters" left_delta="100"> | ||
33 | m内 | ||
34 | </text> | ||
35 | <tab_container name="radar_tab_container"> | ||
36 | <panel | ||
37 | name="avatar_tab" | ||
38 | label="化身"> | ||
39 | <button | ||
40 | name="im_btn" | ||
41 | label="èŠå¤©/呼å«" | ||
42 | tool_tip="打开å³æ—¶é€šä¿¡ä¼šè¯" /> | ||
43 | <button | ||
44 | name="profile_btn" | ||
45 | label="档案" | ||
46 | tool_tip="显示图片ã€ç¤¾å›¢å’Œå…¶ä»–ä¿¡æ¯" /> | ||
47 | <button | ||
48 | name="offer_teleport_btn" | ||
49 | label="邀请瞬移" | ||
50 | tool_tip="邀请æ¤äººçž¬é—´ç§»åŠ¨åˆ°ä½ çš„ä½ç½®" /> | ||
51 | <button | ||
52 | name="teleport_btn" | ||
53 | label="瞬移到..." | ||
54 | tool_tip="瞬间移动到他人的ä½ç½®" /> | ||
55 | <button | ||
56 | name="track_btn" | ||
57 | label="追踪" | ||
58 | tool_tip="åˆ›å»ºä¿¡æ ‡è¿½è¸ªå¯ä»¥åœ¨åœ°å›¾ä¸Šæ˜¾ç¤ºçš„好å‹" /> | ||
59 | <button | ||
60 | name="invite_btn" | ||
61 | label="邀请..." | ||
62 | tool_tip="é‚€è¯·åŠ å…¥ç¤¾å›¢" /> | ||
63 | <button | ||
64 | name="add_btn" | ||
65 | label="æ·»åŠ ..." | ||
66 | tool_tip="邀请其他居民æˆä¸ºä½ 的好å‹" /> | ||
67 | </panel> | ||
68 | <panel | ||
69 | name="estate_tab" | ||
70 | label="地产"> | ||
71 | <button | ||
72 | name="cam_btn" | ||
73 | label="èšç„¦..." /> | ||
74 | <button | ||
75 | name="freeze_btn" | ||
76 | label="冻结..." /> | ||
77 | <button | ||
78 | name="eject_btn" | ||
79 | label="驱é€..." /> | ||
80 | <button | ||
81 | name="ban_btn" | ||
82 | label="å°ç¦..." /> | ||
83 | <button | ||
84 | name="mute_btn" | ||
85 | label="å±è”½..." /> | ||
86 | <button | ||
87 | name="unmute_btn" | ||
88 | label="解除å±è”½..." /> | ||
89 | <button | ||
90 | name="ar_btn" | ||
91 | label="报告..." /> | ||
92 | </panel> | ||
93 | </tab_container> | ||
94 | |||
95 | <scroll_list name="RadarList"> | ||
96 | <column | ||
97 | name="avatar_name" | ||
98 | label="å称" /> | ||
99 | <column | ||
100 | name="avatar_distance" | ||
101 | label="è·ç¦»" /> | ||
102 | </scroll_list> | ||
103 | </panel> | ||
104 | |||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_region_general.xml b/linden/indra/newview/skins/default/xui/zh/panel_region_general.xml index 186d27e..146c1f9 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_region_general.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_region_general.xml | |||
@@ -36,6 +36,7 @@ | |||
36 | <button label="?" name="agent_limit_help"/> | 36 | <button label="?" name="agent_limit_help"/> |
37 | <spinner label="é¢å¤–ç‰©ä½“å› æ•°" name="object_bonus_spin"/> | 37 | <spinner label="é¢å¤–ç‰©ä½“å› æ•°" name="object_bonus_spin"/> |
38 | <button label="?" name="object_bonus_help"/> | 38 | <button label="?" name="object_bonus_help"/> |
39 | <spinner label="最å°è´¦æˆ·å¹´é¾„" name="minimum_agent_age"/> | ||
39 | <text label="æˆäººå†…容" name="access_text"> | 40 | <text label="æˆäººå†…容" name="access_text"> |
40 | 分级: | 41 | 分级: |
41 | </text> | 42 | </text> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_region_open_region_settings.xml b/linden/indra/newview/skins/default/xui/zh/panel_region_open_region_settings.xml new file mode 100644 index 0000000..0c63782 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/panel_region_open_region_settings.xml | |||
@@ -0,0 +1,67 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel | ||
3 | label="区域设置" | ||
4 | name="RegionSettings"> | ||
5 | <spinner | ||
6 | label="默认æ绘è·ç¦»" | ||
7 | name="draw_distance" /> | ||
8 | <check_box | ||
9 | label="强制æ绘è·ç¦»" | ||
10 | name="force_draw_distance" /> | ||
11 | <spinner | ||
12 | label="最大拖动è·ç¦»" | ||
13 | name="max_drag_distance" /> | ||
14 | <spinner | ||
15 | label="最大元件尺寸" | ||
16 | name="max_prim_scale" /> | ||
17 | <spinner | ||
18 | label="最å°å…ƒä»¶å°ºå¯¸" | ||
19 | name="min_prim_scale" /> | ||
20 | <spinner | ||
21 | label="最大物ç†å…ƒä»¶å°ºå¯¸" | ||
22 | name="max_phys_prim_scale" /> | ||
23 | <spinner | ||
24 | label="最大窟窿尺寸" | ||
25 | name="max_hollow_size" /> | ||
26 | <spinner | ||
27 | label="最å°çªŸçª¿å°ºå¯¸" | ||
28 | name="min_hole_size" /> | ||
29 | <spinner | ||
30 | label="最大链接数" | ||
31 | name="max_link_count" /> | ||
32 | <spinner | ||
33 | label="最大物ç†é“¾æŽ¥æ•°" | ||
34 | name="max_link_count_phys" /> | ||
35 | <spinner | ||
36 | label="最大库å˜ç‰©å“转让数" | ||
37 | name="max_inventory_items_transfer" /> | ||
38 | <spinner | ||
39 | label="æ˜¾ç¤ºæ ‡ç¾" | ||
40 | name="show_tags" /> | ||
41 | <spinner | ||
42 | label="最大社团数" | ||
43 | name="max_groups" /> | ||
44 | <check_box | ||
45 | label="渲染水é¢" | ||
46 | name="render_water" /> | ||
47 | <check_box | ||
48 | label="å…è®¸è¿·ä½ åœ°å›¾" | ||
49 | name="allow_minimap" /> | ||
50 | <check_box | ||
51 | label="å…许物ç†å…ƒä»¶" | ||
52 | name="allow_physical_prims" /> | ||
53 | <check_box | ||
54 | label="å¯ç”¨æœªæˆå¹´æ¨¡å¼" | ||
55 | name="enable_teen_mode" /> | ||
56 | <check_box | ||
57 | label="å¯ç”¨å»ºé€ 尺寸é™åˆ¶" | ||
58 | name="enforce_max_build" /> | ||
59 | <check_box | ||
60 | label="å…è®¸åœ°å— WindLight 设置" | ||
61 | name="allow_parcel_windlight" /> | ||
62 | <button | ||
63 | label="应用" | ||
64 | name="apply_ors_btn" /> | ||
65 | </panel> | ||
66 | |||
67 | |||
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml b/linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml index 0dce0f2..7e39b42 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml | |||
@@ -1,16 +1,16 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
2 | <panel name="active_speakers_panel"> | 2 | <panel name="active_speakers_panel"> |
3 | <string name="moderator_label"> | 3 | <string name="moderator_label"> |
4 | (管ç†å‘˜) | 4 | (主æŒäºº) |
5 | </string> | 5 | </string> |
6 | <layout_stack name="panels"> | 6 | <layout_stack name="panels"> |
7 | <layout_panel name="moderation_mode_panel"> | 7 | <layout_panel name="moderation_mode_panel"> |
8 | <combo_box name="moderation_mode"> | 8 | <combo_box name="moderation_mode"> |
9 | <combo_item name="OpenVoice"> | 9 | <combo_item name="OpenVoice"> |
10 | 声音 ç¼ºçœ å¼€ | 10 | è¯éŸ³é»˜è®¤å¼€æ”¾ |
11 | </combo_item> | 11 | </combo_item> |
12 | <combo_item name="ModeratedVoice"> | 12 | <combo_item name="ModeratedVoice"> |
13 | 声音 ç¼ºçœ å…³ | 13 | è¯éŸ³é»˜è®¤å…³é— |
14 | </combo_item> | 14 | </combo_item> |
15 | </combo_box> | 15 | </combo_box> |
16 | </layout_panel> | 16 | </layout_panel> |
@@ -34,7 +34,7 @@ | |||
34 | å…许è¯éŸ³èŠå¤© | 34 | å…许è¯éŸ³èŠå¤© |
35 | </check_box> | 35 | </check_box> |
36 | <check_box name="moderator_allow_text"> | 36 | <check_box name="moderator_allow_text"> |
37 | å…许文本èŠå¤© | 37 | å…许文å—èŠå¤© |
38 | </check_box> | 38 | </check_box> |
39 | </layout_panel> | 39 | </layout_panel> |
40 | </layout_stack> | 40 | </layout_stack> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml b/linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml index 0f65852..d79feb0 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml | |||
@@ -21,8 +21,8 @@ | |||
21 | <button label="" label_selected="" name="restrictpush" tool_tip="ä¸å…许推动"/> | 21 | <button label="" label_selected="" name="restrictpush" tool_tip="ä¸å…许推动"/> |
22 | <button label="" label_selected="" name="status_no_voice" tool_tip="æ¤å¤„è¯éŸ³ä¸å¯ç”¨"/> | 22 | <button label="" label_selected="" name="status_no_voice" tool_tip="æ¤å¤„è¯éŸ³ä¸å¯ç”¨"/> |
23 | <button label="" label_selected="" name="buyland" tool_tip="è´ä¹°è¿™å—土地"/> | 23 | <button label="" label_selected="" name="buyland" tool_tip="è´ä¹°è¿™å—土地"/> |
24 | <line_editor label="æœç´¢" name="search_editor" tool_tip="æœç´¢ Second Life"/> | 24 | <line_editor label="æœç´¢" name="search_editor" tool_tip="æœç´¢ä¸–ç•Œ"/> |
25 | <button label="" label_selected="" name="search_btn" tool_tip="æœç´¢ Second Life"/> | 25 | <button label="" label_selected="" name="search_btn" tool_tip="æœç´¢ä¸–ç•Œ"/> |
26 | <string name="packet_loss_tooltip"> | 26 | <string name="packet_loss_tooltip"> |
27 | å°åŒ…丢失率 | 27 | å°åŒ…丢失率 |
28 | </string> | 28 | </string> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml b/linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml index e9c381d..154d6f5 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml | |||
@@ -4,7 +4,7 @@ | |||
4 | æ¢å¤åœé çª—å£ | 4 | æ¢å¤åœé çª—å£ |
5 | </string> | 5 | </string> |
6 | <layout_stack name="toolbar_stack"> | 6 | <layout_stack name="toolbar_stack"> |
7 | <button label="å³æ—¶é€š" name="im_btn" tool_tip="用å³æ—¶é€šè”ç³»ä½ çš„æœ‹å‹ã€‚" /> | 7 | <button label="å³æ—¶æ¶ˆæ¯" name="im_btn" tool_tip="用å³æ—¶æ¶ˆæ¯è”ç³»ä½ çš„æœ‹å‹ã€‚" /> |
8 | <button label="" name="chat_btn" tool_tip="显示èŠå¤©æ 。(回车键)" /> | 8 | <button label="" name="chat_btn" tool_tip="显示èŠå¤©æ 。(回车键)" /> |
9 | <flyout_button label="交æµ" name="communicate_btn" | 9 | <flyout_button label="交æµ" name="communicate_btn" |
10 | tool_tip="æŸ¥æ‰¾å¹¶ä¸Žä½ çš„å¥½å‹å’Œç¤¾å›¢äº¤æµã€‚" /> | 10 | tool_tip="æŸ¥æ‰¾å¹¶ä¸Žä½ çš„å¥½å‹å’Œç¤¾å›¢äº¤æµã€‚" /> |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml b/linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml index 6f98195..c082004 100644 --- a/linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml +++ b/linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml | |||
@@ -11,7 +11,7 @@ | |||
11 | 从化身的ä½ç½®å¬è¯éŸ³èŠå¤©ã€‚ | 11 | 从化身的ä½ç½®å¬è¯éŸ³èŠå¤©ã€‚ |
12 | </radio_item> | 12 | </radio_item> |
13 | </radio_group> | 13 | </radio_group> |
14 | <check_box label="仅好å‹å¯å‘我å‘èµ·è¯èŠè¯·æ±‚" name="friends_only_check"/> | 14 | <check_box label="仅好å‹å¯å‘我å‘èµ·è¯éŸ³å‘¼å«è¯·æ±‚" name="friends_only_check"/> |
15 | <check_box label="以切æ¢æ¨¡å¼ä½¿ç”¨å³æŒ‰å³è¯´" name="push_to_talk_toggle_check"/> | 15 | <check_box label="以切æ¢æ¨¡å¼ä½¿ç”¨å³æŒ‰å³è¯´" name="push_to_talk_toggle_check"/> |
16 | <text name="push_to_talk_label" word_wrap="true"> | 16 | <text name="push_to_talk_label" word_wrap="true"> |
17 | å³æŒ‰å³è¯´åˆ‡æ¢é”®: | 17 | å³æŒ‰å³è¯´åˆ‡æ¢é”®: |
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_windlight_controls.xml b/linden/indra/newview/skins/default/xui/zh/panel_windlight_controls.xml new file mode 100644 index 0000000..3ecb259 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/zh/panel_windlight_controls.xml | |||
@@ -0,0 +1,19 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel | ||
3 | name="windlight_controls"> | ||
4 | <button | ||
5 | label="编辑器" | ||
6 | name="Environment" | ||
7 | tool_tip="点击这里调节世界环境" /> | ||
8 | <flyout_button | ||
9 | label="天空" | ||
10 | name="Presets" | ||
11 | tool_tip="Windlight 预设"> | ||
12 | </flyout_button> | ||
13 | <button | ||
14 | toggle="true" | ||
15 | label="" | ||
16 | name="Popup" | ||
17 | tool_tip="点击这里调节æ绘è·ç¦»" /> | ||
18 | </panel> | ||
19 | |||
diff --git a/linden/indra/newview/skins/default/xui/zh/strings.xml b/linden/indra/newview/skins/default/xui/zh/strings.xml index 3eb0014..5b541cd 100644 --- a/linden/indra/newview/skins/default/xui/zh/strings.xml +++ b/linden/indra/newview/skins/default/xui/zh/strings.xml | |||
@@ -6,12 +6,29 @@ | |||
6 | <strings> | 6 | <strings> |
7 | 7 | ||
8 | <!-- Imprudence-specific strings --> | 8 | <!-- Imprudence-specific strings --> |
9 | <string name="landmark_created">ä½ åˆ›å»ºäº†ä¸€ä¸ªåœ°æ ‡ä½äºŽ</string> | ||
10 | <string name="new_home_page">ä½ çš„æ–°ä¸»é¡µæ˜¯</string> | ||
11 | <string name="server_version_changed_chat">ä½ è¿›å…¥çš„åŒºåŸŸæ£åœ¨è¿è¡Œä¸åŒçš„模拟器版本:[SERVER_VERSION_INFO]</string> | ||
12 | <string name="hippo_label_free">free</string> | ||
13 | <string name="hippo_label_week">周</string> | ||
9 | <string name="StatBarDaysOfWeek"> | 14 | <string name="StatBarDaysOfWeek"> |
10 | 星期日:星期一:星期二:星期三:星期四:星期五:æ˜ŸæœŸå… | 15 | 星期日:星期一:星期二:星期三:星期四:星期五:æ˜ŸæœŸå… |
11 | </string> | 16 | </string> |
12 | <string name="StatBarMonthsOfYear"> | 17 | <string name="StatBarMonthsOfYear"> |
13 | 一月:二月:三月:四月:五月:å…月:七月:八月:ä¹æœˆ:å月:å一月:å二月 | 18 | 一月:二月:三月:四月:五月:å…月:七月:八月:ä¹æœˆ:å月:å一月:å二月 |
14 | </string> | 19 | </string> |
20 | <string name="TitleBarMultiple"> | ||
21 | [FIRST_NAME] [LAST_NAME] 于 [GRID_NAME] | ||
22 | </string> | ||
23 | <string name="copy_obj_key_info"> | ||
24 | å¤åˆ¶äº†é”®ä¸ºäº†: | ||
25 | </string> | ||
26 | <string name="TeleportOfferMaturity"> | ||
27 | [NAME] é‚€è¯·ä½ çž¬é—´ç§»åŠ¨åˆ° [DESTINATION] | ||
28 | </string> | ||
29 | <string name="TeleportLureMaturity"> | ||
30 | [NAME] é‚€è¯·ä½ çž¬é—´ç§»åŠ¨åˆ° [DESTINATION] | ||
31 | </string> | ||
15 | 32 | ||
16 | <string name="LoginInProgress"> | 33 | <string name="LoginInProgress"> |
17 | æ£åœ¨ç™»å½•ã€‚ [APP_NAME] å¯èƒ½ä¼šçœ‹ä¸ŠåŽ»æ²¡æœ‰å应。 请ç¨å€™ã€‚ | 34 | æ£åœ¨ç™»å½•ã€‚ [APP_NAME] å¯èƒ½ä¼šçœ‹ä¸ŠåŽ»æ²¡æœ‰å应。 请ç¨å€™ã€‚ |
@@ -110,7 +127,7 @@ | |||
110 | å¯ä»»æ„å¤åˆ¶ | 127 | å¯ä»»æ„å¤åˆ¶ |
111 | </string> | 128 | </string> |
112 | <string name="TooltipForSaleL$"> | 129 | <string name="TooltipForSaleL$"> |
113 | å¾…å”®: L$[AMOUNT] | 130 | å¾…å”®: [CURRENCY][AMOUNT] |
114 | </string> | 131 | </string> |
115 | <string name="TooltipForSaleMsg"> | 132 | <string name="TooltipForSaleMsg"> |
116 | å¾…å”®: [MESSAGE] | 133 | å¾…å”®: [MESSAGE] |
@@ -281,7 +298,7 @@ | |||
281 | 摇手指 | 298 | 摇手指 |
282 | </string> | 299 | </string> |
283 | <string name="anim_fist_pump"> | 300 | <string name="anim_fist_pump"> |
284 | Fist Pump | 301 | 冲拳 |
285 | </string> | 302 | </string> |
286 | <string name="anim_yoga_float"> | 303 | <string name="anim_yoga_float"> |
287 | 浮空瑜伽 | 304 | 浮空瑜伽 |
@@ -350,10 +367,10 @@ | |||
350 | RPS 剪刀 | 367 | RPS 剪刀 |
351 | </string> | 368 | </string> |
352 | <string name="anim_express_repulsed"> | 369 | <string name="anim_express_repulsed"> |
353 | Repulsed | 370 | 排斥 |
354 | </string> | 371 | </string> |
355 | <string name="anim_kick_roundhouse_r"> | 372 | <string name="anim_kick_roundhouse_r"> |
356 | Roundhouse Kick | 373 | æ‰«å ‚è…¿ |
357 | </string> | 374 | </string> |
358 | <string name="anim_express_sad"> | 375 | <string name="anim_express_sad"> |
359 | 伤心 | 376 | 伤心 |
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index 61a266a..6f85311 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py | |||
@@ -585,7 +585,8 @@ class DarwinManifest(ViewerManifest): | |||
585 | 585 | ||
586 | if self.prefix(src="", dst="Contents"): # everything goes in Contents | 586 | if self.prefix(src="", dst="Contents"): # everything goes in Contents |
587 | 587 | ||
588 | self.path("Info-meta-impy.plist", dst="Info.plist") | 588 | # Info.plist goes directly in Contents |
589 | self.path("packaging/mac/Info.plist", dst="Info.plist") | ||
589 | 590 | ||
590 | # copy additional libs in <bundle>/Contents/MacOS/ | 591 | # copy additional libs in <bundle>/Contents/MacOS/ |
591 | if (not self.standalone()) and self.prefix(src="../../libraries/universal-darwin/lib_release", dst="MacOS/"): | 592 | if (not self.standalone()) and self.prefix(src="../../libraries/universal-darwin/lib_release", dst="MacOS/"): |
@@ -666,27 +667,27 @@ class DarwinManifest(ViewerManifest): | |||
666 | self.gather_documents() | 667 | self.gather_documents() |
667 | 668 | ||
668 | self.path("featuretable_mac.txt") | 669 | self.path("featuretable_mac.txt") |
669 | self.path("SecondLife.nib") | ||
670 | |||
671 | self.path("viewer.icns") | 670 | self.path("viewer.icns") |
672 | 671 | ||
673 | # Translations | 672 | if self.prefix(src="packaging/mac", dst=""): |
674 | self.path("English.lproj") | 673 | self.path("SecondLife.nib") |
675 | self.path("German.lproj") | 674 | self.path("English.lproj") |
676 | self.path("Japanese.lproj") | 675 | self.path("German.lproj") |
677 | self.path("Korean.lproj") | 676 | self.path("Japanese.lproj") |
678 | self.path("da.lproj") | 677 | self.path("Korean.lproj") |
679 | self.path("es.lproj") | 678 | self.path("da.lproj") |
680 | self.path("fr.lproj") | 679 | self.path("es.lproj") |
681 | self.path("hu.lproj") | 680 | self.path("fr.lproj") |
682 | self.path("it.lproj") | 681 | self.path("hu.lproj") |
683 | self.path("nl.lproj") | 682 | self.path("it.lproj") |
684 | self.path("pl.lproj") | 683 | self.path("nl.lproj") |
685 | self.path("pt.lproj") | 684 | self.path("pl.lproj") |
686 | self.path("ru.lproj") | 685 | self.path("pt.lproj") |
687 | self.path("tr.lproj") | 686 | self.path("ru.lproj") |
688 | self.path("uk.lproj") | 687 | self.path("tr.lproj") |
689 | self.path("zh-Hans.lproj") | 688 | self.path("uk.lproj") |
689 | self.path("zh-Hans.lproj") | ||
690 | self.end_prefix("packaging/mac") | ||
690 | 691 | ||
691 | 692 | ||
692 | # if (not self.standalone()) and self.prefix(src="../../libraries/universal-darwin/lib_release/gstreamer-plugins", dst="lib/gstreamer-plugins"): | 693 | # if (not self.standalone()) and self.prefix(src="../../libraries/universal-darwin/lib_release/gstreamer-plugins", dst="lib/gstreamer-plugins"): |
diff --git a/linden/indra/newview/viewerinfo.cpp b/linden/indra/newview/viewerinfo.cpp new file mode 100644 index 0000000..59e35d4 --- /dev/null +++ b/linden/indra/newview/viewerinfo.cpp | |||
@@ -0,0 +1,148 @@ | |||
1 | /** | ||
2 | * @file viewerinfo.cpp | ||
3 | * @brief Functions for querying the viewer name, version, and other info. | ||
4 | * @author Jacek Antonelli | ||
5 | * | ||
6 | * Copyright (c) 2010-2011, Jacek Antonelli | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU Lesser General Public | ||
10 | * License as published by the Free Software Foundation; | ||
11 | * version 2.1 of the License only. | ||
12 | |||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
16 | * Lesser General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU Lesser General Public | ||
19 | * License along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
21 | * Boston, MA 02110-1301 USA | ||
22 | */ | ||
23 | |||
24 | #include "llviewerprecompiledheaders.h" | ||
25 | |||
26 | #include "viewerinfo.h" | ||
27 | |||
28 | namespace ViewerInfo | ||
29 | { | ||
30 | |||
31 | // These are intentionally defined here instead of in the header, | ||
32 | // because they should NOT be read directly. Use the functions. | ||
33 | const std::string NAME = "meta-impy"; | ||
34 | const std::string VARNT = ""; | ||
35 | const S32 MAJOR = 1; | ||
36 | const S32 MINOR = 4; | ||
37 | const S32 PATCH = 1; | ||
38 | const S32 RLEAS = 1; // increment for each beta/RC/release | ||
39 | const std::string EXTRA = "beta 1"; | ||
40 | |||
41 | // Mac OS X bundle identifier. Should match the one in Info.plist. | ||
42 | const std::string BUNDLE_ID = "org.imprudenceviewer.viewer"; | ||
43 | |||
44 | |||
45 | const std::string& viewerName() | ||
46 | { | ||
47 | return NAME; | ||
48 | } | ||
49 | |||
50 | const std::string& viewerVariant() | ||
51 | { | ||
52 | return VARNT; | ||
53 | } | ||
54 | |||
55 | const std::string& nameWithVariant() | ||
56 | { | ||
57 | static std::string s; | ||
58 | if (!s.empty()) | ||
59 | { | ||
60 | return s; | ||
61 | } | ||
62 | |||
63 | if (VARNT.empty()) | ||
64 | { | ||
65 | s = NAME; | ||
66 | } | ||
67 | else | ||
68 | { | ||
69 | s = NAME + " " + VARNT; | ||
70 | } | ||
71 | |||
72 | return s; | ||
73 | } | ||
74 | |||
75 | S32 versionMajor() | ||
76 | { | ||
77 | return MAJOR; | ||
78 | } | ||
79 | |||
80 | S32 versionMinor() | ||
81 | { | ||
82 | return MINOR; | ||
83 | } | ||
84 | |||
85 | S32 versionPatch() | ||
86 | { | ||
87 | return PATCH; | ||
88 | } | ||
89 | |||
90 | S32 versionRelease() | ||
91 | { | ||
92 | return RLEAS; | ||
93 | } | ||
94 | |||
95 | const std::string& versionExtra() | ||
96 | { | ||
97 | return EXTRA; | ||
98 | } | ||
99 | |||
100 | const std::string& versionNumbers3() | ||
101 | { | ||
102 | static std::string s = llformat("%d.%d.%d", MAJOR, MINOR, PATCH); | ||
103 | return s; | ||
104 | } | ||
105 | |||
106 | const std::string& versionNumbers4() | ||
107 | { | ||
108 | static std::string s = llformat("%d.%d.%d.%d", | ||
109 | MAJOR, MINOR, PATCH, RLEAS); | ||
110 | return s; | ||
111 | } | ||
112 | |||
113 | const std::string& prettyVersion() | ||
114 | { | ||
115 | static std::string s; | ||
116 | if (s.length() > 0) | ||
117 | { | ||
118 | return s; | ||
119 | } | ||
120 | |||
121 | s = versionNumbers3(); | ||
122 | |||
123 | if (EXTRA.length() > 0) | ||
124 | { | ||
125 | s += " " + EXTRA; | ||
126 | } | ||
127 | |||
128 | return s; | ||
129 | } | ||
130 | |||
131 | const std::string& prettyInfo() | ||
132 | { | ||
133 | static std::string s = nameWithVariant() + " " + prettyVersion(); | ||
134 | return s; | ||
135 | } | ||
136 | |||
137 | const std::string& terseInfo() | ||
138 | { | ||
139 | static std::string s = nameWithVariant() + " " + versionNumbers4(); | ||
140 | return s; | ||
141 | } | ||
142 | |||
143 | const std::string& bundleID() | ||
144 | { | ||
145 | return BUNDLE_ID; | ||
146 | } | ||
147 | |||
148 | } | ||
diff --git a/linden/indra/newview/viewerinfo.h b/linden/indra/newview/viewerinfo.h new file mode 100644 index 0000000..fe2e829 --- /dev/null +++ b/linden/indra/newview/viewerinfo.h | |||
@@ -0,0 +1,93 @@ | |||
1 | /** | ||
2 | * @file viewerinfo.h | ||
3 | * @brief Functions for querying the viewer name, version, and other info. | ||
4 | * @author Jacek Antonelli | ||
5 | * | ||
6 | * Copyright (c) 2010-2011, Jacek Antonelli | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU Lesser General Public | ||
10 | * License as published by the Free Software Foundation; | ||
11 | * version 2.1 of the License only. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
16 | * Lesser General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU Lesser General Public | ||
19 | * License along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
21 | * Boston, MA 02110-1301 USA | ||
22 | */ | ||
23 | |||
24 | #ifndef VERSIONINFO_H | ||
25 | #define VERSIONINFO_H | ||
26 | |||
27 | #include "linden_common.h" | ||
28 | |||
29 | namespace ViewerInfo | ||
30 | { | ||
31 | /// Returns the name of the viewer. | ||
32 | const std::string& viewerName(); | ||
33 | |||
34 | /// Returns the viewer variant (e.g. "Experimental"). | ||
35 | /// May be empty, if no variant string was set. | ||
36 | const std::string& viewerVariant(); | ||
37 | |||
38 | /// Returns a string with the viewer name and variant | ||
39 | /// (if it has one). | ||
40 | const std::string& nameWithVariant(); | ||
41 | |||
42 | /// Returns the major (first) version number. | ||
43 | /// This number increases for each major release, and the | ||
44 | /// minor, patch, and release numbers are reset to zero. | ||
45 | S32 versionMajor(); | ||
46 | |||
47 | /// Returns the minor (second) version number. | ||
48 | /// This number increases for each minor release, and the | ||
49 | /// patch and release numbers are reset to zero. | ||
50 | S32 versionMinor(); | ||
51 | |||
52 | /// Returns the patch (third) version number. | ||
53 | /// This number increases for each patch (bugfix) release, | ||
54 | /// and the release number is reset to zero. | ||
55 | S32 versionPatch(); | ||
56 | |||
57 | /// Returns the release (fourth) version number. | ||
58 | /// This number increases for each beta, release candidate, | ||
59 | /// and final release. | ||
60 | S32 versionRelease(); | ||
61 | |||
62 | /// Returns the extra version string (e.g. "beta 1", "RC1"). | ||
63 | /// May be empty, if no extra string was set. | ||
64 | const std::string& versionExtra(); | ||
65 | |||
66 | /// Returns a three-segment dot-separated version string | ||
67 | /// ("major.minor.patch"). Intended for human reading. | ||
68 | const std::string& versionNumbers3(); | ||
69 | |||
70 | /// Returns a four-segment dot-separated version string | ||
71 | /// ("major.minor.patch.release"). Intended for computer use, e.g. | ||
72 | /// login channel or version number comparison. | ||
73 | const std::string& versionNumbers4(); | ||
74 | |||
75 | /// Returns the three-segment version number with extra version | ||
76 | /// string (if not empty). Intended for human reading. | ||
77 | const std::string& prettyVersion(); | ||
78 | |||
79 | /// Returns the viewer name, variant (if not empty), and pretty | ||
80 | /// version. Intended for human reading. | ||
81 | const std::string& prettyInfo(); | ||
82 | |||
83 | /// Returns the the viewer name, variant (if not empty), and | ||
84 | /// 4-segment version. Intended for computer use, e.g. login channel | ||
85 | /// or version number comparison. | ||
86 | const std::string& terseInfo(); | ||
87 | |||
88 | /// Returns a string with the viewer's Mac OS X bundle identifier. | ||
89 | const std::string& bundleID(); | ||
90 | |||
91 | } | ||
92 | |||
93 | #endif // VERSIONINFO_H | ||
diff --git a/linden/indra/newview/viewerversion.cpp b/linden/indra/newview/viewerversion.cpp deleted file mode 100644 index 3678cb4..0000000 --- a/linden/indra/newview/viewerversion.cpp +++ /dev/null | |||
@@ -1,89 +0,0 @@ | |||
1 | /** | ||
2 | * @file viewerversion.cpp | ||
3 | * @brief set the viewer version in xml | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2009&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2010, McCabe Maxsted | ||
8 | * | ||
9 | * Imprudence Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided to you | ||
11 | * under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
13 | * this distribution, or online at | ||
14 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
15 | * | ||
16 | * There are special exceptions to the terms and conditions of the GPL as | ||
17 | * it is applied to this Source Code. View the full text of the exception | ||
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | ||
21 | * By copying, modifying or distributing this software, you acknowledge | ||
22 | * that you have read and understood your obligations described above, | ||
23 | * and agree to abide by those obligations. | ||
24 | * | ||
25 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
26 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
27 | * COMPLETENESS OR PERFORMANCE. | ||
28 | * $/LicenseInfo$ | ||
29 | */ | ||
30 | |||
31 | #include "llviewerprecompiledheaders.h" | ||
32 | |||
33 | #include "lldir.h" | ||
34 | #include "llxmltree.h" | ||
35 | #include "viewerversion.h" | ||
36 | |||
37 | |||
38 | S32 ViewerVersion::sVersionMajor = 0; | ||
39 | S32 ViewerVersion::sVersionMinor = 0; | ||
40 | S32 ViewerVersion::sVersionPatch = 0; | ||
41 | std::string ViewerVersion::sVersionTest = ""; | ||
42 | |||
43 | const std::string ViewerVersion::sViewerName = "meta-impy"; | ||
44 | |||
45 | ViewerVersion::ViewerVersion() | ||
46 | { | ||
47 | } | ||
48 | |||
49 | bool ViewerVersion::initViewerVersion() | ||
50 | { | ||
51 | std::string file_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "viewerversion.xml"); | ||
52 | |||
53 | if (!gDirUtilp->fileExists(file_path)) | ||
54 | { | ||
55 | llwarns << "Unable to find viewerversion.xml in app_settings folder" << llendl; | ||
56 | return false; | ||
57 | } | ||
58 | else | ||
59 | { | ||
60 | LLXMLNodePtr root; | ||
61 | |||
62 | if (!LLXMLNode::parseFile(file_path, root, NULL)) | ||
63 | { | ||
64 | llwarns << "Unable to parse version file: " << file_path << llendl; | ||
65 | return false; | ||
66 | } | ||
67 | |||
68 | if (root.isNull()) // shouldn't ever happen | ||
69 | { | ||
70 | llwarns << "Error while trying to read viewerversion.xml" << llendl; | ||
71 | return false; | ||
72 | } | ||
73 | |||
74 | LLXMLNodePtr child_nodep = root->getFirstChild(); | ||
75 | while (child_nodep.notNull()) | ||
76 | { | ||
77 | child_nodep->getAttributeS32("version_major", sVersionMajor); | ||
78 | child_nodep->getAttributeS32("version_minor", sVersionMinor); | ||
79 | child_nodep->getAttributeS32("version_patch", sVersionPatch); | ||
80 | child_nodep->getAttributeString("version_test", sVersionTest); | ||
81 | |||
82 | child_nodep = child_nodep->getNextSibling(); | ||
83 | } | ||
84 | |||
85 | llinfos << "Version set to: " << sVersionMajor << "." << sVersionMinor << "." << sVersionPatch << " " << sVersionTest << llendl; | ||
86 | |||
87 | return true; | ||
88 | } | ||
89 | } | ||
diff --git a/linden/indra/newview/viewerversion.h b/linden/indra/newview/viewerversion.h deleted file mode 100644 index a517f9f..0000000 --- a/linden/indra/newview/viewerversion.h +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | /** | ||
2 | * @file viewerversion.h | ||
3 | * @brief set the viewer version in xml | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2009&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2010, McCabe Maxsted | ||
8 | * | ||
9 | * Imprudence Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided to you | ||
11 | * under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in | ||
13 | * this distribution, or online at | ||
14 | * http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
15 | * | ||
16 | * There are special exceptions to the terms and conditions of the GPL as | ||
17 | * it is applied to this Source Code. View the full text of the exception | ||
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | ||
21 | * By copying, modifying or distributing this software, you acknowledge | ||
22 | * that you have read and understood your obligations described above, | ||
23 | * and agree to abide by those obligations. | ||
24 | * | ||
25 | * ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO | ||
26 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
27 | * COMPLETENESS OR PERFORMANCE. | ||
28 | * $/LicenseInfo$ | ||
29 | */ | ||
30 | |||
31 | #ifndef VIEWERVERSION_H | ||
32 | #define VIEWERVERSION_H | ||
33 | |||
34 | #include "llversionviewer.h" // for LL versioning only | ||
35 | |||
36 | class ViewerVersion | ||
37 | { | ||
38 | public: | ||
39 | ViewerVersion(); | ||
40 | /*virtual*/ ~ViewerVersion(); | ||
41 | |||
42 | static bool initViewerVersion(); | ||
43 | |||
44 | // Returns the major version of Imprudence | ||
45 | static S32 getImpMajorVersion() { return sVersionMajor; } | ||
46 | // Returns the minor version of Imprudence | ||
47 | static S32 getImpMinorVersion() { return sVersionMinor; } | ||
48 | // Returns the patch version of Imprudence | ||
49 | static S32 getImpPatchVersion() { return sVersionPatch; } | ||
50 | // Returns the test version of Imprudence | ||
51 | static std::string getImpTestVersion() { return sVersionTest; } | ||
52 | // Returns the name of the viewer. Currently always "Imprudence" | ||
53 | static std::string getImpViewerName() { return sViewerName; } | ||
54 | |||
55 | // Returns the major version of the viewer | ||
56 | static S32 getLLMajorVersion() { return LL_VERSION_MAJOR; } | ||
57 | // Returns the minor version of the viewer | ||
58 | static S32 getLLMinorVersion() { return LL_VERSION_MINOR; } | ||
59 | // Returns the patch version of the viewer | ||
60 | static S32 getLLPatchVersion() { return LL_VERSION_PATCH; } | ||
61 | // Returns the build version of the viewer | ||
62 | static S32 getLLBuildVersion() { return LL_VERSION_BUILD; } | ||
63 | // Returns the name of the viewer ("meta-impy") | ||
64 | static std::string getLLViewerName() { return LL_VIEWER_NAME; } | ||
65 | |||
66 | // Note that the viewer channel is set in settings.xml | ||
67 | // as VersionChannelName. LL_VIEWER_CHANNEL is not | ||
68 | // used in Imprudence | ||
69 | |||
70 | private: | ||
71 | static S32 sVersionMajor; | ||
72 | static S32 sVersionMinor; | ||
73 | static S32 sVersionPatch; | ||
74 | static std::string sVersionTest; | ||
75 | |||
76 | static const std::string sViewerName; | ||
77 | }; | ||
78 | |||
79 | #endif // VIEWERVERSION_H | ||
diff --git a/linden/install.xml b/linden/install.xml index 8d71435..d25636d 100755 --- a/linden/install.xml +++ b/linden/install.xml | |||
@@ -1092,9 +1092,9 @@ Copyright (C) 2004-2005 Vladimir Berezniker @ http://public.xdi.org/=vmpn | |||
1092 | <key>ogg-vorbis</key> | 1092 | <key>ogg-vorbis</key> |
1093 | <map> | 1093 | <map> |
1094 | <key>copyright</key> | 1094 | <key>copyright</key> |
1095 | <string>Copyright (C) 2008 Xiph.org Foundation</string> | 1095 | <string>Copyright (C) Xiph.org Foundation</string> |
1096 | <key>description</key> | 1096 | <key>description</key> |
1097 | <string>Ogg: container format Vorbis: audio compression scheme</string> | 1097 | <string>Ogg: container format; Vorbis: audio compression scheme</string> |
1098 | <key>license</key> | 1098 | <key>license</key> |
1099 | <string>xiph-bsd</string> | 1099 | <string>xiph-bsd</string> |
1100 | <key>packages</key> | 1100 | <key>packages</key> |
@@ -1102,30 +1102,30 @@ Copyright (C) 2004-2005 Vladimir Berezniker @ http://public.xdi.org/=vmpn | |||
1102 | <key>darwin</key> | 1102 | <key>darwin</key> |
1103 | <map> | 1103 | <map> |
1104 | <key>md5sum</key> | 1104 | <key>md5sum</key> |
1105 | <string>88eec3965fc2384436192faef1db2629</string> | 1105 | <string>30c75ce29c2ce2f6e8063067db31989d</string> |
1106 | <key>url</key> | 1106 | <key>url</key> |
1107 | <uri>http://imprudenceviewer.org/download/libs/ogg-vorbis-darwin-20100620.tar.bz2</uri> | 1107 | <uri>http://download.kokuaviewer.org/files/libs/ogg-vorbis-darwin-1.2.2-1.3.2-20110517.tar.bz2</uri> |
1108 | </map> | 1108 | </map> |
1109 | <key>linux</key> | 1109 | <key>linux</key> |
1110 | <map> | 1110 | <map> |
1111 | <key>md5sum</key> | 1111 | <key>md5sum</key> |
1112 | <string>72bde567859934024c8a4a70b97b24f5</string> | 1112 | <string>a132634c28f0d7fb0e7e4f62c82a0579</string> |
1113 | <key>url</key> | 1113 | <key>url</key> |
1114 | <uri>http://imprudenceviewer.org/download/libs/ogg-vorbis-linux-20091115.tar.bz2</uri> | 1114 | <uri>http://download.kokuaviewer.org/files/libs/ogg-vorbis-linux-1.2.2-1.3.2-20110514.tar.bz2</uri> |
1115 | </map> | 1115 | </map> |
1116 | <key>linux64</key> | 1116 | <key>linux64</key> |
1117 | <map> | 1117 | <map> |
1118 | <key>md5sum</key> | 1118 | <key>md5sum</key> |
1119 | <string>83c72b57a95e8c42560fb67955169f19</string> | 1119 | <string>dded849d4d46fb5d94f088c86407ec98</string> |
1120 | <key>url</key> | 1120 | <key>url</key> |
1121 | <uri>http://imprudenceviewer.org/download/libs/ogg-vorbis-linux64-20091202.tar.bz2</uri> | 1121 | <uri>http://download.kokuaviewer.org/files/libs/ogg-vorbis-linux64-1.2.2-1.3.2-20110514.tar.bz2</uri> |
1122 | </map> | 1122 | </map> |
1123 | <key>windows</key> | 1123 | <key>windows</key> |
1124 | <map> | 1124 | <map> |
1125 | <key>md5sum</key> | 1125 | <key>md5sum</key> |
1126 | <string>9bf1fea65e66b2cd3075e6ffd7eb57ad</string> | 1126 | <string>946bab72f6774220eaf139ce378ba671</string> |
1127 | <key>url</key> | 1127 | <key>url</key> |
1128 | <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg-vorbis-1.1.3-1.2.0-windows-20080723.tar.bz2</uri> | 1128 | <uri>http://download.kokuaviewer.org/files/libs/ogg-vorbis-windows-1.2.2-1.3.2-20110511.tar.bz2</uri> |
1129 | </map> | 1129 | </map> |
1130 | </map> | 1130 | </map> |
1131 | </map> | 1131 | </map> |
diff --git a/linden/scripts/build_version.py b/linden/scripts/build_version.py deleted file mode 100755 index f6b88a9..0000000 --- a/linden/scripts/build_version.py +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | #!/usr/bin/env python | ||
2 | # | ||
3 | # Print the build information embedded in a header file. | ||
4 | # | ||
5 | # Expects to be invoked from the command line with a file name and a | ||
6 | # list of directories to search. The file name will be one of the | ||
7 | # following: | ||
8 | # | ||
9 | # llversionserver.h | ||
10 | # llversionviewer.h | ||
11 | # | ||
12 | # The directory list that follows will include indra/llcommon, where | ||
13 | # these files live. | ||
14 | |||
15 | import errno, os, re | ||
16 | |||
17 | def get_version(filename): | ||
18 | fp = open(filename) | ||
19 | data = fp.read() | ||
20 | fp.close() | ||
21 | |||
22 | vals = {} | ||
23 | m = re.search('<viewer version_major="(\d+)" />', data) | ||
24 | vals['major'] = m.group(1) | ||
25 | m = re.search('<viewer version_minor="(\d+)" />', data) | ||
26 | vals['minor'] = m.group(1) | ||
27 | m = re.search('<viewer version_patch="(\d+)" />', data) | ||
28 | vals['patch'] = m.group(1) | ||
29 | m = re.search('<viewer version_test="(.*)" />', data) | ||
30 | vals['test'] = m.group(1) | ||
31 | |||
32 | version = "%(major)s.%(minor)s.%(patch)s" % vals | ||
33 | |||
34 | if len(vals['test']) > 0: | ||
35 | # Replace some puncuation and spaces with '-' in the test version | ||
36 | vals['test'] = re.sub('[ \t:;,+/\\"\'`]+', '-', vals['test']) | ||
37 | version += "-%(test)s" % vals | ||
38 | |||
39 | return version | ||
40 | |||
41 | |||
42 | if __name__ == '__main__': | ||
43 | import sys | ||
44 | |||
45 | try: | ||
46 | for path in sys.argv[2:]: | ||
47 | name = os.path.join(path, sys.argv[1]) | ||
48 | try: | ||
49 | print get_version(name) | ||
50 | break | ||
51 | except OSError, err: | ||
52 | if err.errno != errno.ENOENT: | ||
53 | raise | ||
54 | else: | ||
55 | print >> sys.stderr, 'File not found:', sys.argv[1] | ||
56 | sys.exit(1) | ||
57 | except AttributeError: | ||
58 | print >> sys.stderr, 'Error: malformatted file: ', name | ||
59 | sys.exit(1) | ||
60 | except IndexError: | ||
61 | print >> sys.stderr, ('Usage: %s llversion[...].h [directories]' % | ||
62 | sys.argv[0]) | ||
diff --git a/linden/scripts/package.py b/linden/scripts/package.py new file mode 100755 index 0000000..e02a9cc --- /dev/null +++ b/linden/scripts/package.py | |||
@@ -0,0 +1,334 @@ | |||
1 | #!/usr/bin/env python | ||
2 | # | ||
3 | # @file package.py | ||
4 | # @author Jacek Antonelli | ||
5 | # @brief Script for generating viewer installer packages. | ||
6 | # | ||
7 | # Usage: package.py --build-dir=PATH [options] | ||
8 | # | ||
9 | # Copyright (c) 2007-2009, Linden Research, Inc. | ||
10 | # Copyright (c) 2010-2011, Jacek Antonelli | ||
11 | # | ||
12 | # Permission is hereby granted, free of charge, to any person | ||
13 | # obtaining a copy of this software and associated documentation files | ||
14 | # (the "Software"), to deal in the Software without restriction, | ||
15 | # including without limitation the rights to use, copy, modify, merge, | ||
16 | # publish, distribute, sublicense, and/or sell copies of the Software, | ||
17 | # and to permit persons to whom the Software is furnished to do so, | ||
18 | # subject to the following conditions: | ||
19 | # | ||
20 | # The above copyright notice and this permission notice shall be | ||
21 | # included in all copies or substantial portions of the Software. | ||
22 | # | ||
23 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
24 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
25 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
26 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
27 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
28 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
29 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
30 | # SOFTWARE. | ||
31 | # | ||
32 | |||
33 | import os, sys | ||
34 | from viewer_info import ViewerInfo | ||
35 | |||
36 | |||
37 | SCRIPTS_DIR = sys.path[0] # directory containing this script | ||
38 | TOP_DIR = os.path.abspath(os.path.join(SCRIPTS_DIR,'..')) | ||
39 | SOURCE_DIR = os.path.abspath(os.path.join(TOP_DIR,'indra')) | ||
40 | BUILD_TYPE = "RelWithDebInfo" | ||
41 | |||
42 | |||
43 | class PackagerError(Exception): pass | ||
44 | |||
45 | class BadDir(PackagerError): pass | ||
46 | |||
47 | class WeirdPlatform(PackagerError): pass | ||
48 | |||
49 | class CmdFailed(PackagerError): pass | ||
50 | |||
51 | |||
52 | def indent(text, amount=4): | ||
53 | import string | ||
54 | lines = [(' '*amount + line) for line in string.split(text, '\n')] | ||
55 | return string.join(lines, '\n') | ||
56 | |||
57 | def message(*args): | ||
58 | """Prints an informational message with a leading '#'.""" | ||
59 | print '# ' + ' '.join([str(arg) for arg in args]) | ||
60 | |||
61 | def error(*args): | ||
62 | """Prints an error message to stderr.""" | ||
63 | print >> sys.stderr, 'Error: ' + ' '.join([str(arg) for arg in args]) | ||
64 | |||
65 | |||
66 | class Packager: | ||
67 | |||
68 | def __init__(self, build_dir, opts={}): | ||
69 | options = {'source_dir': SOURCE_DIR, | ||
70 | 'build_type': BUILD_TYPE, | ||
71 | 'verbose': False, | ||
72 | } | ||
73 | options.update(opts) | ||
74 | |||
75 | self.build_dir = os.path.abspath(build_dir) | ||
76 | self.__check_build_dir() | ||
77 | |||
78 | # Package results go in the top build directory. | ||
79 | self.dest_dir = build_dir | ||
80 | |||
81 | self.source_dir = os.path.abspath(options['source_dir']) | ||
82 | self.__check_source_dir() | ||
83 | |||
84 | self.build_type = options['build_type'] | ||
85 | self.platform = self.__get_platform() | ||
86 | self.verbose = options['verbose'] | ||
87 | self.viewer_info = ViewerInfo() | ||
88 | |||
89 | |||
90 | def make(self): | ||
91 | plat = self.platform | ||
92 | if plat == 'linux': self.make_linux() | ||
93 | elif plat == 'mac': self.make_mac() | ||
94 | elif plat == 'windows': self.make_windows() | ||
95 | |||
96 | |||
97 | ######### | ||
98 | # LINUX # | ||
99 | ######### | ||
100 | |||
101 | def make_linux(self): | ||
102 | import shutil | ||
103 | |||
104 | packaged_dir = os.path.join(self.build_dir, 'newview', 'packaged') | ||
105 | |||
106 | if not os.path.exists(packaged_dir): | ||
107 | raise BadDir("invalid build dir, has no 'newview/packaged/' " | ||
108 | 'subdirectory: %(d)r'%{'d': self.build_dir}) | ||
109 | |||
110 | self.__run_command( 'Checking/fixing file permissions...', | ||
111 | """find %(d)r -type d | xargs --no-run-if-empty chmod 755; | ||
112 | find %(d)r -type f -perm 0700 | xargs --no-run-if-empty chmod 0755; | ||
113 | find %(d)r -type f -perm 0500 | xargs --no-run-if-empty chmod 0555; | ||
114 | find %(d)r -type f -perm 0600 | xargs --no-run-if-empty chmod 0644; | ||
115 | find %(d)r -type f -perm 0400 | xargs --no-run-if-empty chmod 0444; | ||
116 | true""" % {'d': packaged_dir}) | ||
117 | |||
118 | plat = 'Linux' | ||
119 | from platform import architecture | ||
120 | if architecture()[0] == '64bit': | ||
121 | plat += '-x86_64' | ||
122 | elif architecture()[0] == '32bit': | ||
123 | plat += '-x86' | ||
124 | |||
125 | inst_name = self.viewer_info.combined + '-' + plat | ||
126 | dest_file = os.path.join(self.dest_dir, inst_name + '.tar.bz2') | ||
127 | |||
128 | if (os.path.exists(dest_file)): | ||
129 | bkp = dest_file + ".bkp" | ||
130 | message("Renaming existing package to %r..." % bkp) | ||
131 | shutil.move(dest_file, bkp) | ||
132 | |||
133 | self.__run_command( | ||
134 | 'Creating package %r (this takes a while)...'%dest_file, | ||
135 | 'tar -C %(dir)s --numeric-owner ' | ||
136 | '--transform "s,^./,%(inst_name)s/," ' | ||
137 | #'--verbose --show-transformed-names ' | ||
138 | '-cjf %(dest_file)s .' % { 'dir': packaged_dir, | ||
139 | 'inst_name': inst_name, | ||
140 | 'dest_file': dest_file}) | ||
141 | |||
142 | message('Package complete: %r' % dest_file) | ||
143 | |||
144 | |||
145 | ####### | ||
146 | # MAC # | ||
147 | ####### | ||
148 | |||
149 | def make_mac(self): | ||
150 | import shutil | ||
151 | |||
152 | volname = self.viewer_info.name + " Installer" | ||
153 | |||
154 | # Where the DMG files (background image, etc.) come from. | ||
155 | dmg_src = os.path.join(self.source_dir, 'newview', 'packaging', 'mac') | ||
156 | |||
157 | # Everything that will be in the package is copied to here. | ||
158 | dmg_dst = os.path.join('/Volumes', volname) | ||
159 | |||
160 | if (os.path.exists(dmg_dst)): | ||
161 | error('%r is currently attached. Eject it and try again.' % dmg_dst) | ||
162 | sys.exit(1) | ||
163 | |||
164 | app_name = self.viewer_info.name + ".app" | ||
165 | app_orig = os.path.join(self.build_dir, 'newview', self.build_type, app_name) | ||
166 | app_dst = os.path.join(dmg_dst, app_name) | ||
167 | |||
168 | if (not os.path.exists(app_orig)): | ||
169 | error("App does not exist: %r" % app_orig) | ||
170 | sys.exit(1) | ||
171 | |||
172 | dmg_name = "%s-Mac"%(self.viewer_info.combined) | ||
173 | temp_dmg = os.path.join(self.build_dir, dmg_name+".sparseimage") | ||
174 | final_dmg = os.path.join(self.dest_dir, dmg_name+".dmg") | ||
175 | |||
176 | if (os.path.exists(temp_dmg)): | ||
177 | message("Removing stale temp disk image...") | ||
178 | os.remove(temp_dmg) | ||
179 | |||
180 | self.__run_command( | ||
181 | 'Creating temp disk image...', | ||
182 | 'hdiutil create %(temp)r -volname %(volname)r -fs HFS+ ' | ||
183 | '-layout SPUD -type SPARSE' % | ||
184 | {'temp': temp_dmg, 'volname': volname, 'src': dmg_dst}) | ||
185 | |||
186 | self.__run_command( | ||
187 | 'Mounting temp disk image...', | ||
188 | 'hdiutil attach %r -readwrite -noautoopen' % temp_dmg) | ||
189 | |||
190 | # Move the .app to the staging area (temporarily). | ||
191 | message("Copying %r (this takes a while)..."%(app_name)) | ||
192 | shutil.copytree(app_orig, app_dst, symlinks=True) | ||
193 | |||
194 | message("Copying background.png...") | ||
195 | shutil.copy2( os.path.join(dmg_src, 'background.png'), | ||
196 | os.path.join(dmg_dst, 'background.png')) | ||
197 | |||
198 | config_script = os.path.join(self.source_dir, 'newview', | ||
199 | 'packaging', 'mac', 'ConfigureDMG.scpt') | ||
200 | |||
201 | self.__run_command( | ||
202 | "Configuring temp disk image's view options...", | ||
203 | 'osascript %(script)r %(volname)r %(app_name)r' % | ||
204 | {'script': config_script, 'volname': volname, 'app_name': app_name}) | ||
205 | |||
206 | self.__run_command( | ||
207 | 'Unmounting temp disk image...', | ||
208 | 'hdiutil detach %r' % dmg_dst) | ||
209 | |||
210 | if (os.path.exists(final_dmg)): | ||
211 | bkp = final_dmg + ".bkp" | ||
212 | message("Renaming existing final disk image to %r..." % bkp) | ||
213 | shutil.move(final_dmg, bkp) | ||
214 | |||
215 | self.__run_command( | ||
216 | 'Creating compressed final disk image (this takes a while)...', | ||
217 | 'hdiutil convert %(temp)r -format UDBZ -o %(final)r' % | ||
218 | {'temp':temp_dmg, 'final':final_dmg}) | ||
219 | |||
220 | message("Removing temp disk image...") | ||
221 | os.remove(temp_dmg) | ||
222 | |||
223 | message('Package complete: %r'%final_dmg) | ||
224 | |||
225 | |||
226 | ########### | ||
227 | # WINDOWS # | ||
228 | ########### | ||
229 | |||
230 | def make_windows(self): | ||
231 | print "Packaging for Windows is not supported yet." | ||
232 | |||
233 | |||
234 | ################### | ||
235 | # PRIVATE METHODS # | ||
236 | ################### | ||
237 | |||
238 | def __check_build_dir(self): | ||
239 | if not os.path.exists(self.build_dir): | ||
240 | raise BadDir('build dir %(dir)r does not exist.' % | ||
241 | {'dir': self.build_dir}) | ||
242 | if not os.path.isdir(self.build_dir): | ||
243 | raise BadDir('build dir %(dir)r is not a directory.' % | ||
244 | {'dir': self.build_dir}) | ||
245 | |||
246 | def __check_source_dir(self): | ||
247 | if not os.path.exists(self.source_dir): | ||
248 | raise BadDir('source dir %(dir)r does not exist.' % | ||
249 | {'dir': self.source_dir}) | ||
250 | if not os.path.isdir(self.source_dir): | ||
251 | raise BadDir('source dir %(dir)r is not a directory.' % | ||
252 | {'dir': self.source_dir}) | ||
253 | |||
254 | def __get_platform(self): | ||
255 | platform = sys.platform | ||
256 | try: | ||
257 | return {'linux2':'linux', | ||
258 | 'linux1':'linux', | ||
259 | 'cygwin':'windows', | ||
260 | 'win32' :'windows', | ||
261 | 'darwin':'mac', | ||
262 | }[platform] | ||
263 | except KeyError: | ||
264 | raise WeirdPlatform( | ||
265 | "Unrecognized platform/operating system: %r" % platform) | ||
266 | |||
267 | def __run_command(self, summary=None, command=None): | ||
268 | if summary: message(summary) | ||
269 | |||
270 | if not command: return | ||
271 | |||
272 | import subprocess | ||
273 | |||
274 | out = subprocess.PIPE # = intercept command's output | ||
275 | if self.verbose: | ||
276 | print indent(command) | ||
277 | out = None # = don't intercept | ||
278 | |||
279 | child = subprocess.Popen(command, shell=True, stdout=out, stderr=None) | ||
280 | status = child.wait() | ||
281 | |||
282 | if status: | ||
283 | raise CmdFailed('A command returned non-zero status (%s):\n%s'% | ||
284 | (status, indent(command))) | ||
285 | |||
286 | |||
287 | |||
288 | def main(args=sys.argv[1:]): | ||
289 | from optparse import OptionParser | ||
290 | |||
291 | op = OptionParser(usage='%prog --build-dir=PATH [options]') | ||
292 | |||
293 | op.add_option('--build-dir', dest='build_dir', nargs=1, metavar='PATH', | ||
294 | help='path to the \'build\' directory, which contains ' | ||
295 | 'CMakeCache.txt and the compile result subdirectories') | ||
296 | |||
297 | op.add_option('--source-dir', dest='source_dir', nargs=1, metavar='PATH', | ||
298 | default=SOURCE_DIR, | ||
299 | help='optional path to an alternate source directory, ' | ||
300 | 'i.e. \'indra\'. Default: %(SOURCE_DIR)r' | ||
301 | %{ 'SOURCE_DIR': SOURCE_DIR } ) | ||
302 | |||
303 | op.add_option('--build-type', dest='build_type', nargs=1, metavar='TYPE', | ||
304 | default=BUILD_TYPE, | ||
305 | help='\'Debug\', \'RelWithDebInfo\', or \'Release\'. ' | ||
306 | 'Default: %(BUILD_TYPE)r' | ||
307 | %{ 'BUILD_TYPE': BUILD_TYPE } ) | ||
308 | |||
309 | op.add_option('-v', '--verbose', action='store_true', default=False, | ||
310 | help='print all shell commands as they are run') | ||
311 | |||
312 | if not args: | ||
313 | op.print_help() | ||
314 | return | ||
315 | |||
316 | options = op.parse_args(args)[0] | ||
317 | |||
318 | if not options.build_dir: | ||
319 | error('--build-dir=PATH is required.') | ||
320 | sys.exit(1) | ||
321 | |||
322 | opts_dict = {'source_dir': options.source_dir, | ||
323 | 'build_type': options.build_type, | ||
324 | 'verbose': options.verbose} | ||
325 | |||
326 | try: | ||
327 | Packager(options.build_dir, opts_dict).make() | ||
328 | except PackagerError, err: | ||
329 | error(err.args[0]) | ||
330 | sys.exit(1) | ||
331 | |||
332 | |||
333 | if __name__ == '__main__': | ||
334 | main() | ||
diff --git a/linden/scripts/viewer_info.py b/linden/scripts/viewer_info.py new file mode 100755 index 0000000..53ea432 --- /dev/null +++ b/linden/scripts/viewer_info.py | |||
@@ -0,0 +1,101 @@ | |||
1 | #!/usr/bin/env python | ||
2 | # | ||
3 | # @file viewer_info.py | ||
4 | # @author Jacek Antonelli | ||
5 | # @brief Scans and prints the viewer name and/or version. | ||
6 | # | ||
7 | # Copyright (c) 2010, Jacek Antonelli | ||
8 | # | ||
9 | # Permission is hereby granted, free of charge, to any person | ||
10 | # obtaining a copy of this software and associated documentation files | ||
11 | # (the "Software"), to deal in the Software without restriction, | ||
12 | # including without limitation the rights to use, copy, modify, merge, | ||
13 | # publish, distribute, sublicense, and/or sell copies of the Software, | ||
14 | # and to permit persons to whom the Software is furnished to do so, | ||
15 | # subject to the following conditions: | ||
16 | # | ||
17 | # The above copyright notice and this permission notice shall be | ||
18 | # included in all copies or substantial portions of the Software. | ||
19 | # | ||
20 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
21 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
22 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
23 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
24 | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
25 | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
26 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
27 | # SOFTWARE. | ||
28 | # | ||
29 | # | ||
30 | # Usage: | ||
31 | # | ||
32 | # viewer_info.py --name # viewer name (e.g. "Kokua") | ||
33 | # viewer_info.py --version # viewer version (e.g. "1.0.0-RC1" | ||
34 | # viewer_info.py --combined # name + version (e.g. "Kokua-1.0.0-RC1") | ||
35 | # | ||
36 | # You can pass multiple flags to print each thing on a separate line. | ||
37 | # E.g. `viewer_info.py --name --version' will print 2 lines, e.g.: | ||
38 | # | ||
39 | # Kokua | ||
40 | # 1.0.0-RC1 | ||
41 | # | ||
42 | |||
43 | import errno, os, re, string, sys | ||
44 | |||
45 | |||
46 | class ViewerInfo: | ||
47 | |||
48 | def __init__(self, filepath=None): | ||
49 | f = open(filepath or self.default_file()) | ||
50 | data = f.read() | ||
51 | f.close() | ||
52 | |||
53 | self.name = re.search('NAME\s*=\s*"([^"]*)"', data).group(1) | ||
54 | self.major = re.search('MAJOR\s*=\s*(\d+)', data).group(1) | ||
55 | self.minor = re.search('MINOR\s*=\s*(\d+)', data).group(1) | ||
56 | self.patch = re.search('PATCH\s*=\s*(\d+)', data).group(1) | ||
57 | self.extra = re.search('EXTRA\s*=\s*"([^"]*)"', data).group(1) | ||
58 | self.bundle_id = re.search('BUNDLE_ID\s*=\s*"([^"]*)"', data).group(1) | ||
59 | |||
60 | self.version = "%s.%s.%s"%(self.major, self.minor, self.patch) | ||
61 | if len(self.extra) > 0: | ||
62 | # Replace spaces and some puncuation with '-' in extra | ||
63 | extra = re.sub('[- \t:;,!+/\\"\'`]+', '-', self.extra) | ||
64 | # Strip any leading or trailing "-"s | ||
65 | extra = string.strip(extra, '-') | ||
66 | self.version += "-" + extra | ||
67 | |||
68 | self.combined = self.name + "-" + self.version | ||
69 | |||
70 | @classmethod | ||
71 | def default_file(klass): | ||
72 | scripts_dir = sys.path[0] # directory containing this script | ||
73 | viewerinfo = os.path.join('indra', 'newview', 'viewerinfo.cpp') | ||
74 | filepath = os.path.join(scripts_dir, '..', viewerinfo) | ||
75 | return os.path.abspath(filepath) | ||
76 | |||
77 | |||
78 | if __name__ == '__main__': | ||
79 | |||
80 | try: | ||
81 | info = ViewerInfo() | ||
82 | except IOError, err: | ||
83 | if err.errno == errno.ENOENT: | ||
84 | print >> sys.stderr, 'File not found:', ViewerInfo.default_file() | ||
85 | sys.exit(1) | ||
86 | else: | ||
87 | raise | ||
88 | |||
89 | args = sys.argv[1:] | ||
90 | |||
91 | if not args: | ||
92 | print "Usage: %s [--name] [--version] [--combined]"%(sys.argv[0]) | ||
93 | for arg in args: | ||
94 | if '--name' == arg: | ||
95 | print info.name | ||
96 | elif '--version' == arg: | ||
97 | print info.version | ||
98 | elif '--combined' == arg: | ||
99 | print info.combined | ||
100 | elif '--bundle-id' == arg: | ||
101 | print info.bundle_id | ||