summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2025-11-13 19:03:24 +0200
committerAndrey Lihatskiy <alihatskiy@productengine.com>2025-11-13 19:03:24 +0200
commitceba070dcb42609ca267bdc5dac003db7aa2ad09 (patch)
treecf444a5b3ad3041e36b3e11307b2c6907badabda /indra/newview
parent2a620a9447b7d0544d5c500d88b4128565486018 (diff)
parent0ceefe6d270a4688720287f88b3bd5e2509909c1 (diff)
Merge branch 'release/2025.08' into marchcat/slua-2508
# Conflicts: # autobuild.xml
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/CMakeLists.txt41
-rw-r--r--indra/newview/VIEWER_VERSION.txt2
-rw-r--r--indra/newview/app_settings/settings.xml8
-rw-r--r--indra/newview/llagent.cpp34
-rw-r--r--indra/newview/llappdelegate-objc.mm154
-rw-r--r--indra/newview/llappviewer.cpp1
-rw-r--r--indra/newview/llappviewermacosx-objc.mm12
-rw-r--r--indra/newview/llappviewerwin32.cpp9
-rw-r--r--indra/newview/lldrawpoolbump.cpp10
-rw-r--r--indra/newview/llfeaturemanager.cpp47
-rw-r--r--indra/newview/llfeaturemanager.h2
-rw-r--r--indra/newview/llfilepicker_mac.mm112
-rw-r--r--indra/newview/llfloateravatarwelcomepack.cpp8
-rw-r--r--indra/newview/llfloaterdestinations.cpp12
-rw-r--r--indra/newview/llfloateremojipicker.cpp9
-rw-r--r--indra/newview/llfloaterimagepreview.cpp8
-rw-r--r--indra/newview/llfloaterimcontainer.cpp5
-rw-r--r--indra/newview/llfloatermarketplace.cpp29
-rw-r--r--indra/newview/llfloatermarketplace.h8
-rw-r--r--indra/newview/llfloatermodelpreview.cpp12
-rw-r--r--indra/newview/llfloaterpreference.cpp11
-rw-r--r--indra/newview/llfloaterregioninfo.cpp39
-rw-r--r--indra/newview/llfloaterregioninfo.h1
-rw-r--r--indra/newview/llfloatersearch.cpp23
-rw-r--r--indra/newview/llfloatersearch.h4
-rw-r--r--indra/newview/llimview.cpp4
-rw-r--r--indra/newview/llinventorybridge.cpp26
-rw-r--r--indra/newview/llinventorygallery.cpp24
-rw-r--r--indra/newview/llinventorygallerymenu.cpp35
-rw-r--r--indra/newview/lllocalbitmaps.cpp5
-rw-r--r--indra/newview/llmeshrepository.cpp45
-rw-r--r--indra/newview/llmeshrepository.h5
-rw-r--r--indra/newview/llmodelpreview.cpp14
-rw-r--r--indra/newview/llpanelface.cpp2
-rw-r--r--indra/newview/llpanelobjectinventory.cpp13
-rw-r--r--indra/newview/llpanelvolume.cpp6
-rw-r--r--indra/newview/llreflectionmapmanager.cpp4
-rw-r--r--indra/newview/llselectmgr.cpp1
-rw-r--r--indra/newview/llstatusbar.cpp7
-rw-r--r--indra/newview/llsurface.cpp91
-rw-r--r--indra/newview/llsurface.h14
-rw-r--r--indra/newview/lltooldraganddrop.cpp2
-rw-r--r--indra/newview/llviewerdisplay.cpp5
-rw-r--r--indra/newview/llviewermedia.cpp118
-rw-r--r--indra/newview/llviewermedia.h7
-rw-r--r--indra/newview/llviewermenufile.cpp18
-rw-r--r--indra/newview/llviewermessage.cpp5
-rw-r--r--indra/newview/llviewerobjectlist.cpp4
-rw-r--r--indra/newview/llviewerstats.h3
-rw-r--r--indra/newview/llviewertexture.cpp5
-rw-r--r--indra/newview/llviewerwindow.cpp71
-rw-r--r--indra/newview/llvoicevivox.cpp1
-rw-r--r--indra/newview/llvoicewebrtc.cpp39
-rw-r--r--indra/newview/llvoicewebrtc.h4
-rw-r--r--indra/newview/llvovolume.cpp2
-rw-r--r--indra/newview/pipeline.cpp2
-rw-r--r--indra/newview/skins/default/xui/en/floater_marketplace.xml221
-rw-r--r--indra/newview/skins/default/xui/en/floater_model_preview.xml149
-rw-r--r--indra/newview/skins/default/xui/en/floater_search.xml222
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml35
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_move.xml36
-rw-r--r--indra/newview/skins/default/xui/ja/control_table_contents_columns_basic.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_360capture.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about_land.xml28
-rw-r--r--indra/newview/skins/default/xui/ja/floater_add_payment_method.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_avatar_textures.xml16
-rw-r--r--indra/newview/skins/default/xui/ja/floater_bumps.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/floater_edit_ext_day_cycle.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_god_tools.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/floater_incoming_call.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_inspect.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_joystick.xml30
-rw-r--r--indra/newview/skins/default/xui/ja/floater_lagmeter.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_land_holdings.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_lsl_guide.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_model_preview.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_outgoing_call.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml20
-rw-r--r--indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml24
-rw-r--r--indra/newview/skins/default/xui/ja/floater_performance.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preferences.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preferences_view_advanced.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_settings_debug.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_snapshot.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_stats.xml26
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tools.xml64
-rw-r--r--indra/newview/skins/default/xui/ja/floater_top_objects.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_translation_settings.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_ui_preview.xml18
-rw-r--r--indra/newview/skins/default/xui/ja/floater_url_entry.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_attachment_other.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_avatar_other.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_conversation.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_gesture_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_participant_list.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_nearby.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_profile_other.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_profile_self.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_settings_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_slurl.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_url_agent.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_url_http.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_viewer.xml58
-rw-r--r--indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml102
-rw-r--r--indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_universal.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_bulk_ban.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_creation_sidetray.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_invite.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_notices.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_roles.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_landmark_info.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_main_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_media_settings_general.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_nearby_media.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_notification_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_people.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_performance_autoadjustments.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_performance_huds.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_performance_preferences.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_place_profile.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_postcard_settings.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_chat.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_colors.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_general.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_sound.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_presets_pulldown.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_profile_secondlife.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_covenant.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_environment.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_estate.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_terrain.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_status_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_tools_texture.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_item_info.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_task_info.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml122
-rw-r--r--indra/newview/skins/default/xui/ja/teleport_strings.xml2
-rwxr-xr-xindra/newview/viewer_manifest.py12
156 files changed, 1874 insertions, 824 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 5a49b43367..5ee2915b60 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -50,7 +50,7 @@ include(VulkanGltf)
include(ZLIBNG)
include(LLPrimitive)
-if (NOT HAVOK_TPV)
+if (HAVOK)
# When using HAVOK_TPV, the library is precompiled, so no need for this
# Stub and probably havok lib itself is a hack, autobuild loads a 3p that really is a source tarball
@@ -59,6 +59,11 @@ if (NOT HAVOK_TPV)
# which means we need to duct tape this togther ...
add_subdirectory(${LLPHYSICSEXTENSIONS_SRC_DIR} llphysicsextensions)
+ if (NOT "${LLPHYSICSEXTENSIONS_STUB_DIR}" STREQUAL "")
+ # for darwin universal builds we need both real llphysicsextensions and the stub for aarch64 fallback
+ # this will only be set when HAVOK is ON, otherwise the normal stub fallback will be in effect
+ add_subdirectory(${LLPHYSICSEXTENSIONS_STUB_DIR} llphysicsextensionsstub)
+ endif()
# Another hack that works with newer cmake versions:
cmake_policy( SET CMP0079 NEW)
@@ -71,7 +76,7 @@ if (NOT HAVOK_TPV)
target_compile_options( llphysicsextensions PRIVATE -Wno-unused-local-typedef)
endif (DARWIN)
endif()
-endif (NOT HAVOK_TPV)
+endif ()
set(viewer_SOURCE_FILES
gltfscenemanager.cpp
@@ -1716,10 +1721,6 @@ if (WINDOWS)
list(APPEND viewer_SOURCE_FILES ${viewer_INSTALLER_FILES})
endif (WINDOWS)
-if (HAVOK OR HAVOK_TPV)
- set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_HAVOK")
-endif (HAVOK OR HAVOK_TPV)
-
if( DEFINED LLSTARTUP_COMPILE_FLAGS )
# progress view disables/enables icons based on available packages
set_source_files_properties(llprogressview.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}")
@@ -1957,9 +1958,31 @@ elseif (DARWIN)
set_target_properties(${VIEWER_BINARY_NAME}
PROPERTIES
RESOURCE SecondLife.xib
- #LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP"
LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip"
)
+ if(HAVOK)
+ set_target_properties(${VIEWER_BINARY_NAME}
+ PROPERTIES
+ # arch specific flags for universal builds: https://stackoverflow.com/a/77942065
+ XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=x86_64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_FULL -DLL_HAVOK=1"
+ XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=arm64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_STUB"
+ # only generate the .MAP file for llphysicsextensions_tpv on x86_64
+ XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=x86_64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensions/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensions -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP"
+ XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=arm64] "$(inherited) -L${CMAKE_BINARY_DIR}/llphysicsextensionsos/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensionsos"
+ )
+ elseif(HAVOK_TPV)
+ set_target_properties(${VIEWER_BINARY_NAME}
+ PROPERTIES
+ # arch specific flags for universal builds: https://stackoverflow.com/a/77942065
+ XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=x86_64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_FULL -DLL_HAVOK=1"
+ XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=arm64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_STUB"
+ # only generate the .MAP file for llphysicsextensions_tpv on x86_64
+ XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=x86_64] "$(inherited) -L${ARCH_PREBUILT_DIRS}/ -lllphysicsextensions_tpv"
+ XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=arm64] "$(inherited) -L${CMAKE_BINARY_DIR}/llphysicsextensionsos/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensionsos"
+ )
+ else()
+ target_link_libraries(${VIEWER_BINARY_NAME} llphysicsextensionsos)
+ endif()
else (WINDOWS)
# Linux
set_target_properties(${VIEWER_BINARY_NAME}
@@ -2036,6 +2059,10 @@ if( TARGET ll::nvapi )
target_link_libraries(${VIEWER_BINARY_NAME} ll::nvapi )
endif()
+if ( TARGET llconvexdecomposition )
+ target_link_libraries(${VIEWER_BINARY_NAME} llconvexdecomposition )
+endif ()
+
set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH
"Path to artwork files.")
diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
index 77f5bec5b2..429dc57af3 100644
--- a/indra/newview/VIEWER_VERSION.txt
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -1 +1 @@
-7.2.2
+7.2.3
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 0306d243ee..f3c3b35d60 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2469,16 +2469,16 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>DisableMouseWarp</key>
+ <key>MouseWarpMode</key>
<map>
<key>Comment</key>
- <string>Disable warping of the mouse to the center of the screen during alt-zoom and mouse look. Useful with certain input devices, mouse sharing programs like Synergy, or running under Parallels.</string>
+ <string>Controls warping of the mouse to the center of the screen during alt-zoom and mouse look. Useful with certain input devices, mouse sharing programs like Synergy, or running under Parallels. 0 - automatic, 1 - on, 2 - off</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
- <string>Boolean</string>
+ <string>S32</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>1</integer>
</map>
<key>DisableExternalBrowser</key>
<map>
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 085155714a..e95d192f72 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -167,7 +167,7 @@ std::map<S32, std::string> LLTeleportRequest::sTeleportStatusName = { { kPending
class LLTeleportRequestViaLandmark : public LLTeleportRequest
{
public:
- LLTeleportRequestViaLandmark(const LLUUID &pLandmarkId);
+ LLTeleportRequestViaLandmark(const LLUUID &pLandmarkId, bool log = true);
virtual ~LLTeleportRequestViaLandmark();
virtual void toOstream(std::ostream& os) const;
@@ -179,6 +179,7 @@ public:
protected:
inline const LLUUID &getLandmarkId() const {return mLandmarkId;};
+ bool mLogOnDestruction = true;
private:
LLUUID mLandmarkId;
@@ -5008,16 +5009,25 @@ void LLTeleportRequest::toOstream(std::ostream& os) const
//-----------------------------------------------------------------------------
// LLTeleportRequestViaLandmark
//-----------------------------------------------------------------------------
-LLTeleportRequestViaLandmark::LLTeleportRequestViaLandmark(const LLUUID &pLandmarkId)
- : LLTeleportRequest(),
- mLandmarkId(pLandmarkId)
+LLTeleportRequestViaLandmark::LLTeleportRequestViaLandmark(const LLUUID &pLandmarkId, bool log)
+ : LLTeleportRequest()
+ , mLandmarkId(pLandmarkId)
+ , mLogOnDestruction(true)
{
- LL_INFOS("Teleport") << "LLTeleportRequestViaLandmark created, " << *this << LL_ENDL;
+ if (log)
+ {
+ // Workaround to not log twice for LLTeleportRequestViaLure, besides this wouldn't have logged fully.
+ LL_INFOS("Teleport") << "LLTeleportRequestViaLandmark created, " << *this << LL_ENDL;
+ }
}
LLTeleportRequestViaLandmark::~LLTeleportRequestViaLandmark()
{
- LL_INFOS("Teleport") << "~LLTeleportRequestViaLandmark, " << *this << LL_ENDL;
+ if (mLogOnDestruction)
+ {
+ // Workaround to not crash on toOstream for derived classes and to not log twice.
+ LL_INFOS("Teleport") << "~LLTeleportRequestViaLandmark, " << *this << LL_ENDL;
+ }
}
void LLTeleportRequestViaLandmark::toOstream(std::ostream& os) const
@@ -5047,16 +5057,20 @@ void LLTeleportRequestViaLandmark::restartTeleport()
// LLTeleportRequestViaLure
//-----------------------------------------------------------------------------
-LLTeleportRequestViaLure::LLTeleportRequestViaLure(const LLUUID &pLureId, bool pIsLureGodLike)
- : LLTeleportRequestViaLandmark(pLureId),
+LLTeleportRequestViaLure::LLTeleportRequestViaLure(const LLUUID& pLureId, bool pIsLureGodLike)
+ : LLTeleportRequestViaLandmark(pLureId, false),
mIsLureGodLike(pIsLureGodLike)
{
- LL_INFOS("Teleport") << "LLTeleportRequestViaLure created" << LL_ENDL;
+ LL_INFOS("Teleport") << "LLTeleportRequestViaLure created: " << *this << LL_ENDL;
}
LLTeleportRequestViaLure::~LLTeleportRequestViaLure()
{
- LL_INFOS("Teleport") << "~LLTeleportRequestViaLure" << LL_ENDL;
+ if (mLogOnDestruction)
+ {
+ LL_INFOS("Teleport") << "~LLTeleportRequestViaLure: " << *this << LL_ENDL;
+ mLogOnDestruction = false;
+ }
}
void LLTeleportRequestViaLure::toOstream(std::ostream& os) const
diff --git a/indra/newview/llappdelegate-objc.mm b/indra/newview/llappdelegate-objc.mm
index b8fd3dc189..af18dca185 100644
--- a/indra/newview/llappdelegate-objc.mm
+++ b/indra/newview/llappdelegate-objc.mm
@@ -57,42 +57,42 @@
- (void) applicationDidFinishLaunching:(NSNotification *)notification
{
- // Call constructViewer() first so our logging subsystem is in place. This
- // risks missing crashes in the LLAppViewerMacOSX constructor, but for
- // present purposes it's more important to get the startup sequence
- // properly logged.
- // Someday I would like to modify the logging system so that calls before
- // it's initialized are cached in a std::ostringstream and then, once it's
- // initialized, "played back" into whatever handlers have been set up.
- constructViewer();
+ // Call constructViewer() first so our logging subsystem is in place. This
+ // risks missing crashes in the LLAppViewerMacOSX constructor, but for
+ // present purposes it's more important to get the startup sequence
+ // properly logged.
+ // Someday I would like to modify the logging system so that calls before
+ // it's initialized are cached in a std::ostringstream and then, once it's
+ // initialized, "played back" into whatever handlers have been set up.
+ constructViewer();
#if defined(LL_BUGSPLAT)
infos("bugsplat setup");
- // Engage BugsplatStartupManager *before* calling initViewer() to handle
- // any crashes during initialization.
- // https://www.bugsplat.com/docs/platforms/os-x#initialization
- [BugsplatStartupManager sharedManager].autoSubmitCrashReport = YES;
- [BugsplatStartupManager sharedManager].askUserDetails = NO;
- [BugsplatStartupManager sharedManager].delegate = self;
- [[BugsplatStartupManager sharedManager] start];
+ // Engage BugsplatStartupManager *before* calling initViewer() to handle
+ // any crashes during initialization.
+ // https://www.bugsplat.com/docs/platforms/os-x#initialization
+ [BugsplatStartupManager sharedManager].autoSubmitCrashReport = YES;
+ [BugsplatStartupManager sharedManager].askUserDetails = NO;
+ [BugsplatStartupManager sharedManager].delegate = self;
+ [[BugsplatStartupManager sharedManager] start];
#endif
infos("post-bugsplat setup");
- frameTimer = nil;
+ frameTimer = nil;
- [self languageUpdated];
+ [self languageUpdated];
- if (initViewer())
- {
- // Set up recurring calls to oneFrame (repeating timer with timeout 0)
- // until applicationShouldTerminate.
- frameTimer = [NSTimer scheduledTimerWithTimeInterval:0.0 target:self
- selector:@selector(oneFrame) userInfo:nil repeats:YES];
- } else {
- exit(0);
- }
+ if (initViewer())
+ {
+ // Set up recurring calls to oneFrame (repeating timer with timeout 0)
+ // until applicationShouldTerminate.
+ frameTimer = [NSTimer scheduledTimerWithTimeInterval:0.0 target:self
+ selector:@selector(oneFrame) userInfo:nil repeats:YES];
+ } else {
+ exit(0);
+ }
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(languageUpdated) name:@"NSTextInputContextKeyboardSelectionDidChangeNotification" object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(languageUpdated) name:@"NSTextInputContextKeyboardSelectionDidChangeNotification" object:nil];
// [[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
}
@@ -110,74 +110,74 @@
- (void) applicationDidBecomeActive:(NSNotification *)notification
{
- callWindowFocus();
+ callWindowFocus();
}
- (void) applicationDidResignActive:(NSNotification *)notification
{
- callWindowUnfocus();
+ callWindowUnfocus();
}
- (void) applicationDidHide:(NSNotification *)notification
{
- callWindowHide();
+ callWindowHide();
}
- (void) applicationDidUnhide:(NSNotification *)notification
{
- callWindowUnhide();
+ callWindowUnhide();
}
- (NSApplicationTerminateReply) applicationShouldTerminate:(NSApplication *)sender
{
- // run one frame to assess state
- if (!pumpMainLoop())
- {
- // pumpMainLoop() returns true when done, false if it wants to be
- // called again. Since it returned false, do not yet cancel
- // frameTimer.
- handleQuit();
- [[NSApplication sharedApplication] stopModal];
- return NSTerminateCancel;
- } else {
- // pumpMainLoop() returned true: it's done. Okay, done with frameTimer.
- [frameTimer release];
- cleanupViewer();
- return NSTerminateNow;
- }
+ // run one frame to assess state
+ if (!pumpMainLoop())
+ {
+ // pumpMainLoop() returns true when done, false if it wants to be
+ // called again. Since it returned false, do not yet cancel
+ // frameTimer.
+ handleQuit();
+ [[NSApplication sharedApplication] stopModal];
+ return NSTerminateCancel;
+ } else {
+ // pumpMainLoop() returned true: it's done. Okay, done with frameTimer.
+ [frameTimer release];
+ cleanupViewer();
+ return NSTerminateNow;
+ }
}
- (void) oneFrame
{
- bool appExiting = pumpMainLoop();
- if (appExiting)
- {
- // Once pumpMainLoop() reports that we're done, cancel frameTimer:
- // stop the repetitive calls.
- [frameTimer release];
- [[NSApplication sharedApplication] terminate:self];
- }
+ bool appExiting = pumpMainLoop();
+ if (appExiting)
+ {
+ // Once pumpMainLoop() reports that we're done, cancel frameTimer:
+ // stop the repetitive calls.
+ [frameTimer release];
+ [[NSApplication sharedApplication] terminate:self];
+ }
}
- (void) showInputWindow:(bool)show withEvent:(NSEvent*)textEvent
{
- if (![self romanScript])
- {
- if (show)
- {
- NSLog(@"Showing input window.");
- [inputWindow makeKeyAndOrderFront:inputWindow];
+ if (![self romanScript])
+ {
+ if (show)
+ {
+ NSLog(@"Showing input window.");
+ [inputWindow makeKeyAndOrderFront:inputWindow];
if (textEvent != nil)
{
[[inputView inputContext] discardMarkedText];
[[inputView inputContext] handleEvent:textEvent];
}
- } else {
- NSLog(@"Hiding input window.");
- [inputWindow orderOut:inputWindow];
- [window makeKeyAndOrderFront:window];
- }
- }
+ } else {
+ NSLog(@"Hiding input window.");
+ [inputWindow orderOut:inputWindow];
+ [window makeKeyAndOrderFront:window];
+ }
+ }
}
// This will get called multiple times by NSNotificationCenter.
@@ -187,15 +187,15 @@
- (void) languageUpdated
{
- TISInputSourceRef currentInput = TISCopyCurrentKeyboardInputSource();
- CFArrayRef languages = (CFArrayRef)TISGetInputSourceProperty(currentInput, kTISPropertyInputSourceLanguages);
-
+ TISInputSourceRef currentInput = TISCopyCurrentKeyboardInputSource();
+ CFArrayRef languages = (CFArrayRef)TISGetInputSourceProperty(currentInput, kTISPropertyInputSourceLanguages);
+
#if 0 // In the event of ever needing to add new language sources, change this to 1 and watch the terminal for "languages:"
- NSLog(@"languages: %@", TISGetInputSourceProperty(currentInput, kTISPropertyInputSourceLanguages));
+ NSLog(@"languages: %@", TISGetInputSourceProperty(currentInput, kTISPropertyInputSourceLanguages));
#endif
-
- // Typically the language we want is going to be the very first result in the array.
- currentInputLanguage = (NSString*)CFArrayGetValueAtIndex(languages, 0);
+
+ // Typically the language we want is going to be the very first result in the array.
+ currentInputLanguage = (NSString*)CFArrayGetValueAtIndex(languages, 0);
}
- (bool) romanScript
@@ -209,7 +209,7 @@
return false;
}
}
-
+
return true;
}
@@ -313,11 +313,11 @@ struct AttachmentInfo
// We "happen to know" that info[0].basename is "SecondLife.old" -- due to
// the fact that BugsplatMac only notices a crash during the viewer run
- // following the crash.
+ // following the crash.
// The Bugsplat service doesn't respect the MIME type above when returning
// the log data to a browser, so take this opportunity to rename the file
// from <base>.old to <base>_log.txt
- info[0].basename =
+ info[0].basename =
boost::filesystem::path(info[0].pathname).stem().string() + "_log.txt";
infos("attachmentsForBugsplatStartupManager attaching log " + info[0].basename);
@@ -373,7 +373,7 @@ struct AttachmentInfo
{
[super sendEvent:event];
if ([event type] == NSEventTypeKeyUp && ([event modifierFlags] & NSEventModifierFlagCommand))
- {
+ {
[[self keyWindow] sendEvent:event];
}
}
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index d0d55591c2..e1ed9f842d 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2399,7 +2399,6 @@ void LLAppViewer::initLoggingAndGetLastDuration()
if (gDirUtilp->fileExists(user_data_path_cef_log))
{
std::string user_data_path_cef_old = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "cef.old");
- LLFile::remove(user_data_path_cef_old, ENOENT);
LLFile::rename(user_data_path_cef_log, user_data_path_cef_old);
}
}
diff --git a/indra/newview/llappviewermacosx-objc.mm b/indra/newview/llappviewermacosx-objc.mm
index 2ea3f2f171..96a6bc6edc 100644
--- a/indra/newview/llappviewermacosx-objc.mm
+++ b/indra/newview/llappviewermacosx-objc.mm
@@ -5,27 +5,27 @@
* $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
- */
+ */
#if !defined LL_DARWIN
- #error "Use only with macOS"
+ #error "Use only with macOS"
#endif
#import <Cocoa/Cocoa.h>
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index a951338138..64b506a335 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -179,7 +179,14 @@ namespace
// If marker doesn't exist, create a marker with 'other' code for next launch
// otherwise don't override existing file
// Any unmarked crashes will be considered as freezes
- app->createErrorMarker(LAST_EXEC_OTHER_CRASH);
+ if (app->logoutRequestSent())
+ {
+ app->createErrorMarker(LAST_EXEC_LOGOUT_CRASH);
+ }
+ else
+ {
+ app->createErrorMarker(LAST_EXEC_OTHER_CRASH);
+ }
}
} // MDSCB_EXCEPTIONCODE
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index bf593bff07..69003f88fd 100644
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -802,7 +802,10 @@ void LLBumpImageList::onSourceStandardLoaded( bool success, LLViewerFetchedTextu
}
src_vi->setExplicitFormat(GL_RGBA, GL_RGBA);
{
- src_vi->createGLTexture(src_vi->getDiscardLevel(), nrm_image);
+ if (!src_vi->createGLTexture(src_vi->getDiscardLevel(), nrm_image))
+ {
+ LL_WARNS() << "Failed to create bump image texture for image " << src_vi->getID() << LL_ENDL;
+ }
}
}
}
@@ -896,7 +899,10 @@ void LLBumpImageList::onSourceUpdated(LLViewerTexture* src, EBumpEffect bump_cod
LLImageGL* src_img = src->getGLTexture();
LLImageGL* dst_img = bump->getGLTexture();
- dst_img->setSize(src->getWidth(), src->getHeight(), 4, 0);
+ if (!dst_img->setSize(src->getWidth(), src->getHeight(), 4, 0))
+ {
+ LL_WARNS() << "Failed to setSize for image " << bump->getID() << LL_ENDL;
+ }
dst_img->setUseMipMaps(true);
dst_img->setDiscardLevel(0);
dst_img->createGLTexture();
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index ba54d93c75..9f3df54b05 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -404,8 +404,53 @@ F32 logExceptionBenchmark()
}
#endif
+bool checkRDNA35()
+{
+ // This checks if we're running on an RDNA3.5 GPU. You're only going to see these on AMD's APUs.
+ // As of driver version 25, we're seeing stalls in some of our queries.
+ // This appears to be a driver bug, and appears to be specific RDNA3.5 APUs.
+ // There's multiples of these guys, so we just use this function to check if that GPU is on the list of known RDNA3.5 APUs.
+ // - Geenz 11/12/2025
+ std::array<std::string, 7> rdna35GPUs = {
+ "8060S",
+ "8050S",
+ "8040S",
+ "860M",
+ "840M",
+ "890M",
+ "880M"
+ };
+
+ for (const auto& gpu_name : rdna35GPUs)
+ {
+ if (gGLManager.getRawGLString().find(gpu_name) != std::string::npos)
+ {
+ LL_WARNS("RenderInit") << "Detected AMD RDNA3.5 GPU (" << gpu_name << ")." << LL_ENDL;
+ return true;
+ }
+ }
+
+ return false;
+}
+
bool LLFeatureManager::loadGPUClass()
{
+ // This is a hack for certain AMD GPUs in newer driver versions on certain APUs.
+ // These GPUs will show inconsistent freezes when attempting to run shader profiles against them.
+ // This is extremely problematic as it can lead to:
+ // - Login freezes
+ // - Inability to start the client
+ // - Completely random avatars triggering a freeze
+ // As a result, we filter out these GPUs for shader profiling.
+ // - Geenz 11/11/2025
+
+ if (gGLManager.getRawGLString().find("Radeon") != std::string::npos && checkRDNA35() && gGLManager.mDriverVersionVendorString.find("25.") != std::string::npos)
+ {
+ LL_WARNS("RenderInit") << "Detected AMD RDNA3.5 GPU on a known bad driver; disabling shader profiling to prevent freezes." << LL_ENDL;
+ mSkipProfiling = true;
+ LLGLSLShader::sCanProfile = false;
+ }
+
if (!gSavedSettings.getBOOL("SkipBenchmark"))
{
F32 class1_gbps = gSavedSettings.getF32("RenderClass1MemoryBandwidth");
@@ -465,7 +510,7 @@ bool LLFeatureManager::loadGPUClass()
}
#if LL_WINDOWS
- const F32Gigabytes MIN_PHYSICAL_MEMORY(2);
+ const F32Gigabytes MIN_PHYSICAL_MEMORY(8);
LLMemory::updateMemoryInfo();
F32Gigabytes physical_mem = LLMemory::getMaxMemKB();
diff --git a/indra/newview/llfeaturemanager.h b/indra/newview/llfeaturemanager.h
index 22de6afbae..d04b89cb60 100644
--- a/indra/newview/llfeaturemanager.h
+++ b/indra/newview/llfeaturemanager.h
@@ -123,6 +123,7 @@ public:
S32 getVersion() const { return mTableVersion; }
void setSafe(const bool safe) { mSafe = safe; }
bool isSafe() const { return mSafe; }
+ bool skipProfiling() const { return mSkipProfiling; }
LLFeatureList *findMask(const std::string& name);
bool maskFeatures(const std::string& name);
@@ -170,6 +171,7 @@ protected:
F32 mExpectedGLVersion; //expected GL version according to gpu table
std::string mGPUString;
bool mGPUSupported;
+ bool mSkipProfiling = false;
};
inline
diff --git a/indra/newview/llfilepicker_mac.mm b/indra/newview/llfilepicker_mac.mm
index 978069457c..6cb7c4ad51 100644
--- a/indra/newview/llfilepicker_mac.mm
+++ b/indra/newview/llfilepicker_mac.mm
@@ -1,25 +1,25 @@
-/**
+/**
* @file llfilepicker_mac.cpp
* @brief OS-specific file picker
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -32,15 +32,15 @@
NSOpenPanel *init_panel(const std::vector<std::string>* allowed_types, unsigned int flags)
{
int i;
-
+
NSOpenPanel *panel = [NSOpenPanel openPanel];
NSMutableArray *fileTypes = nil;
-
-
+
+
if ( allowed_types && !allowed_types->empty())
{
fileTypes = [[NSMutableArray alloc] init];
-
+
for (i=0;i<allowed_types->size();++i)
{
[fileTypes addObject:
@@ -48,7 +48,7 @@ NSOpenPanel *init_panel(const std::vector<std::string>* allowed_types, unsigned
encoding:[NSString defaultCStringEncoding]]];
}
}
-
+
//[panel setMessage:@"Import one or more files or directories."];
[panel setAllowsMultipleSelection: ( (flags & F_MULTIPLE)?true:false ) ];
[panel setCanChooseDirectories: ( (flags & F_DIRECTORY)?true:false ) ];
@@ -56,7 +56,7 @@ NSOpenPanel *init_panel(const std::vector<std::string>* allowed_types, unsigned
[panel setResolvesAliases: true];
[panel setCanChooseFiles: ( (flags & F_FILE)?true:false )];
[panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
-
+
if (fileTypes)
{
[panel setAllowedFileTypes:fileTypes];
@@ -77,7 +77,7 @@ std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::st
std::unique_ptr<std::vector<std::string>> outfiles;
@autoreleasepool
- {
+ {
int result;
//Aura TODO: We could init a small window and release it at the end of this routine
//for a modeless interface.
@@ -85,17 +85,17 @@ std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::st
NSOpenPanel *panel = init_panel(allowed_types,flags);
result = [panel runModal];
-
+
if (result == NSModalResponseOK)
{
NSArray *filesToOpen = [panel URLs];
int i, count = [filesToOpen count];
-
+
if (count > 0)
{
outfiles.reset(new std::vector<std::string>);
}
-
+
for (i=0; i<count; i++) {
NSString *aFile = [[filesToOpen objectAtIndex:i] path];
std::string afilestr = std::string([aFile UTF8String]);
@@ -113,11 +113,11 @@ void doLoadDialogModeless(const std::vector<std::string>* allowed_types,
{
@autoreleasepool
- {
+ {
// Note: might need to return and save this panel
// so that it does not close immediately
NSOpenPanel *panel = init_panel(allowed_types,flags);
-
+
[panel beginWithCompletionHandler:^(NSModalResponse result)
{
std::vector<std::string> outfiles;
@@ -125,10 +125,10 @@ void doLoadDialogModeless(const std::vector<std::string>* allowed_types,
{
NSArray *filesToOpen = [panel URLs];
int i, count = [filesToOpen count];
-
+
if (count > 0)
{
-
+
for (i=0; i<count; i++) {
NSString *aFile = [[filesToOpen objectAtIndex:i] path];
std::string *afilestr = new std::string([aFile UTF8String]);
@@ -149,7 +149,7 @@ void doLoadDialogModeless(const std::vector<std::string>* allowed_types,
}
}
-std::unique_ptr<std::string> doSaveDialog(const std::string* file,
+std::unique_ptr<std::string> doSaveDialog(const std::string* file,
const std::string* type,
const std::string* creator,
const std::string* extension,
@@ -157,18 +157,18 @@ std::unique_ptr<std::string> doSaveDialog(const std::string* file,
{
std::unique_ptr<std::string> outfile;
@autoreleasepool
- {
+ {
NSSavePanel *panel = [NSSavePanel savePanel];
-
+
NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]];
NSArray *fileType = [extensionns componentsSeparatedByString:@","];
-
+
//[panel setMessage:@"Save Image File"];
[panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
[panel setCanSelectHiddenExtension:true];
[panel setAllowedFileTypes:fileType];
NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]];
-
+
NSURL* url = [NSURL fileURLWithPath:fileName];
[panel setNameFieldStringValue: fileName];
[panel setDirectoryURL: url];
@@ -193,39 +193,39 @@ void doSaveDialogModeless(const std::string* file,
void *userdata)
{
@autoreleasepool {
- NSSavePanel *panel = [NSSavePanel savePanel];
-
- NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]];
- NSArray *fileType = [extensionns componentsSeparatedByString:@","];
-
- //[panel setMessage:@"Save Image File"];
- [panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
- [panel setCanSelectHiddenExtension:true];
- [panel setAllowedFileTypes:fileType];
- NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]];
-
- NSURL* url = [NSURL fileURLWithPath:fileName];
- [panel setNameFieldStringValue: fileName];
- [panel setDirectoryURL: url];
-
-
- [panel beginWithCompletionHandler:^(NSModalResponse result)
- {
+ NSSavePanel *panel = [NSSavePanel savePanel];
+
+ NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]];
+ NSArray *fileType = [extensionns componentsSeparatedByString:@","];
+
+ //[panel setMessage:@"Save Image File"];
+ [panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
+ [panel setCanSelectHiddenExtension:true];
+ [panel setAllowedFileTypes:fileType];
+ NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]];
+
+ NSURL* url = [NSURL fileURLWithPath:fileName];
+ [panel setNameFieldStringValue: fileName];
+ [panel setDirectoryURL: url];
+
+
+ [panel beginWithCompletionHandler:^(NSModalResponse result)
+ {
if (result == NSModalResponseOK)
- {
- NSURL* url = [panel URL];
- NSString* p = [url path];
- std::string outfile([p UTF8String]);
-
- callback(true, outfile, userdata);
- }
- else // cancel
- {
- std::string outfile;
- callback(false, outfile, userdata);
- }
- }];
- }
+ {
+ NSURL* url = [panel URL];
+ NSString* p = [url path];
+ std::string outfile([p UTF8String]);
+
+ callback(true, outfile, userdata);
+ }
+ else // cancel
+ {
+ std::string outfile;
+ callback(false, outfile, userdata);
+ }
+ }];
+ }
}
#endif
diff --git a/indra/newview/llfloateravatarwelcomepack.cpp b/indra/newview/llfloateravatarwelcomepack.cpp
index 82e44d1398..be384bf4d1 100644
--- a/indra/newview/llfloateravatarwelcomepack.cpp
+++ b/indra/newview/llfloateravatarwelcomepack.cpp
@@ -28,8 +28,10 @@
#include "llviewerprecompiledheaders.h"
#include "llfloateravatarwelcomepack.h"
-#include "lluictrlfactory.h"
#include "llmediactrl.h"
+#include "lluictrlfactory.h"
+#include "llviewercontrol.h"
+#include "llweb.h"
LLFloaterAvatarWelcomePack::LLFloaterAvatarWelcomePack(const LLSD& key)
: LLFloater(key)
@@ -52,6 +54,10 @@ bool LLFloaterAvatarWelcomePack::postBuild()
if (mAvatarPicker)
{
mAvatarPicker->clearCache();
+ mAvatarPicker->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
+ std::string url = gSavedSettings.getString("AvatarWelcomePack");
+ url = LLWeb::expandURLSubstitutions(url, LLSD());
+ mAvatarPicker->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
}
return true;
diff --git a/indra/newview/llfloaterdestinations.cpp b/indra/newview/llfloaterdestinations.cpp
index fad9693e8f..84fc4afcdd 100644
--- a/indra/newview/llfloaterdestinations.cpp
+++ b/indra/newview/llfloaterdestinations.cpp
@@ -28,7 +28,10 @@
#include "llviewerprecompiledheaders.h"
#include "llfloaterdestinations.h"
+#include "llmediactrl.h"
#include "lluictrlfactory.h"
+#include "llviewercontrol.h"
+#include "llweb.h"
LLFloaterDestinations::LLFloaterDestinations(const LLSD& key)
@@ -43,6 +46,15 @@ LLFloaterDestinations::~LLFloaterDestinations()
bool LLFloaterDestinations::postBuild()
{
enableResizeCtrls(true, true, false);
+ LLMediaCtrl* destinations = getChild<LLMediaCtrl>("destination_guide_contents");
+ destinations->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
+ std::string url = gSavedSettings.getString("DestinationGuideURL");
+ url = LLWeb::expandURLSubstitutions(url, LLSD());
+ destinations->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
+
+ // If cookie is there, will set it now. Otherwise will have to wait for login completion
+ // which will also update destinations instance if it already exists.
+ LLViewerMedia::getInstance()->getOpenIDCookie(destinations);
return true;
}
diff --git a/indra/newview/llfloateremojipicker.cpp b/indra/newview/llfloateremojipicker.cpp
index c5f4a2f0cf..ab76f3473b 100644
--- a/indra/newview/llfloateremojipicker.cpp
+++ b/indra/newview/llfloateremojipicker.cpp
@@ -377,6 +377,9 @@ void LLFloaterEmojiPicker::initialize()
{
if (!mHint.empty())
{
+ // Hack: Trying to open floater, search for a match,
+ // and hide floater immediately if no match found,
+ // instead of checking prior to opening
hideFloater();
return;
}
@@ -406,6 +409,12 @@ void LLFloaterEmojiPicker::initialize()
return;
}
+ if (!mHint.empty() && getSoundFlags() == LLView::SILENT)
+ {
+ // Sounds were supressed
+ make_ui_sound("UISndWindowOpen");
+ }
+
mGroups->setVisible(true);
mPreview->setIcon(nullptr);
showPreview(true);
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 550c3adc27..c924807273 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -267,6 +267,14 @@ void LLFloaterImagePreview::onBtnOK()
LLPointer<LLImageJ2C> formatted = new LLImageJ2C;
+ if (mRawImagep->getWidth() * mRawImagep->getHeight() <= LL_IMAGE_REZ_LOSSLESS_CUTOFF * LL_IMAGE_REZ_LOSSLESS_CUTOFF)
+ {
+ if (gSavedSettings.getBOOL("LosslessJ2CUpload"))
+ {
+ formatted->setReversible(true);
+ }
+ }
+
if (formatted->encode(mRawImagep, 0.0f))
{
LLFileSystem fmt_file(new_asset_id, LLAssetType::AT_TEXTURE, LLFileSystem::WRITE);
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index d821d9a4a5..a0f2dbe197 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -1698,6 +1698,11 @@ void LLFloaterIMContainer::showConversation(const LLUUID& session_id)
if (session_floater)
{
session_floater->restoreFloater();
+ if (session_floater->isTornOff() && session_floater->isMinimized())
+ {
+ session_floater->setMinimized(false);
+ session_floater->setFocus(true);
+ }
}
}
diff --git a/indra/newview/llfloatermarketplace.cpp b/indra/newview/llfloatermarketplace.cpp
index 889daf84ab..7316d7617d 100644
--- a/indra/newview/llfloatermarketplace.cpp
+++ b/indra/newview/llfloatermarketplace.cpp
@@ -27,10 +27,11 @@
#include "llviewerprecompiledheaders.h"
#include "llfloatermarketplace.h"
+#include "llviewercontrol.h"
#include "lluictrlfactory.h"
LLFloaterMarketplace::LLFloaterMarketplace(const LLSD& key)
- : LLFloater(key)
+ : LLFloaterWebContent(key)
{
}
@@ -38,10 +39,32 @@ LLFloaterMarketplace::~LLFloaterMarketplace()
{
}
+// just to override LLFloaterWebContent
+void LLFloaterMarketplace::onClose(bool app_quitting)
+{
+}
+
bool LLFloaterMarketplace::postBuild()
{
- enableResizeCtrls(true, true, false);
+ if (!LLFloaterWebContent::postBuild())
+ return false;
+
+ mWebBrowser->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
+ std::string url = gSavedSettings.getString("MarketplaceURL");
+ mWebBrowser->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
+
+ // If cookie is there, will set it now, Otherwise will have to wait for login completion
+ // which will also update marketplace instance if it already exists.
+ LLViewerMedia::getInstance()->getOpenIDCookie(mWebBrowser);
+
return true;
}
-
+void LLFloaterMarketplace::openMarketplace()
+{
+ std::string url = gSavedSettings.getString("MarketplaceURL");
+ if (mCurrentURL != url)
+ {
+ mWebBrowser->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
+ }
+}
diff --git a/indra/newview/llfloatermarketplace.h b/indra/newview/llfloatermarketplace.h
index 2ae4d0d64a..9524c94eee 100644
--- a/indra/newview/llfloatermarketplace.h
+++ b/indra/newview/llfloatermarketplace.h
@@ -27,14 +27,20 @@
#pragma once
#include "llfloater.h"
+#include "llfloaterwebcontent.h"
class LLFloaterMarketplace:
- public LLFloater
+ public LLFloaterWebContent
{
friend class LLFloaterReg;
+
+public:
+ void openMarketplace();
+
private:
LLFloaterMarketplace(const LLSD& key);
~LLFloaterMarketplace();
bool postBuild() override;
+ void onClose(bool app_quitting) override;
};
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index f76f39222b..ef29be8200 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -1035,8 +1035,13 @@ void LLFloaterModelPreview::onPhysicsStageExecute(LLUICtrl* ctrl, void* data)
gMeshRepo.mDecompThread->submitRequest(request);
}
}
-
- if (stage == "Decompose")
+ if (stage == "Analyze")
+ {
+ sInstance->setStatusMessage(sInstance->getString("decomposing"));
+ sInstance->childSetVisible("Analyze", false);
+ sInstance->childSetVisible("analyze_cancel", true);
+ }
+ else if (stage == "Decompose")
{
sInstance->setStatusMessage(sInstance->getString("decomposing"));
sInstance->childSetVisible("Decompose", false);
@@ -1137,6 +1142,7 @@ void LLFloaterModelPreview::initDecompControls()
childSetCommitCallback("simplify_cancel", onPhysicsStageCancel, NULL);
childSetCommitCallback("decompose_cancel", onPhysicsStageCancel, NULL);
+ childSetCommitCallback("analyze_cancel", onPhysicsStageCancel, NULL);
childSetCommitCallback("physics_lod_combo", onPhysicsUseLOD, NULL);
childSetCommitCallback("physics_browse", onPhysicsBrowse, NULL);
@@ -2018,7 +2024,7 @@ void LLFloaterModelPreview::DecompRequest::completed()
{ //called from the main thread
if (mContinue)
{
- mModel->setConvexHullDecomposition(mHull);
+ mModel->setConvexHullDecomposition(mHull, mHullMesh);
if (sInstance)
{
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 1da9990550..f537ae6424 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -775,6 +775,17 @@ void LLFloaterPreference::onOpen(const LLSD& key)
// Load (double-)click to walk/teleport settings.
updateClickActionViews();
+#if LL_LINUX
+ // Lixux doesn't support automatic mode
+ LLComboBox* combo = getChild<LLComboBox>("double_click_action_combo");
+ S32 mode = gSavedSettings.getS32("MouseWarpMode");
+ if (mode == 0)
+ {
+ combo->setValue("1");
+ }
+ combo->setEnabledByValue("0", false);
+#endif
+
// Enabled/disabled popups, might have been changed by user actions
// while preferences floater was closed.
buildPopupLists();
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 334f32d051..5ec7e94fcc 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -270,10 +270,12 @@ bool LLFloaterRegionInfo::postBuild()
static LLCachedControl<bool> feature_pbr_terrain_transforms_enabled(gSavedSettings, "RenderTerrainPBRTransformsEnabled", false);
if (!feature_pbr_terrain_transforms_enabled() || !feature_pbr_terrain_enabled())
{
+ LL_INFOS("Terrain") << "Building region terrain panel from panel_region_terrain.xml" << LL_ENDL;
panel->buildFromFile("panel_region_terrain.xml");
}
else
{
+ LL_INFOS("Terrain") << "Building region terrain panel from panel_region_terrain_texture_transform.xml" << LL_ENDL;
panel->buildFromFile("panel_region_terrain_texture_transform.xml");
}
mTab->addTabPanel(panel);
@@ -1490,6 +1492,11 @@ bool LLPanelRegionTerrainInfo::validateMaterials()
const LLUUID& material_asset_id = material_ctrl->getImageAssetID();
llassert(material_asset_id.notNull());
if (material_asset_id.isNull()) { return false; }
+ if (material_asset_id == BLANK_MATERIAL_ASSET_ID)
+ {
+ // Default/Blank material is valid by default
+ continue;
+ }
const LLFetchedGLTFMaterial* material = gGLTFMaterialList.getMaterial(material_asset_id);
if (!material->isLoaded())
{
@@ -1999,18 +2006,7 @@ void LLPanelRegionTerrainInfo::initMaterialCtrl(LLTextureCtrl*& ctrl, const std:
ctrl->setCommitCallback(
[this, index](LLUICtrl* ctrl, const LLSD& param)
{
- if (!mMaterialScaleUCtrl[index]
- || !mMaterialScaleVCtrl[index]
- || !mMaterialRotationCtrl[index]
- || !mMaterialOffsetUCtrl[index]
- || !mMaterialOffsetVCtrl[index]) return;
-
- mMaterialScaleUCtrl[index]->setValue(1.f);
- mMaterialScaleVCtrl[index]->setValue(1.f);
- mMaterialRotationCtrl[index]->setValue(0.f);
- mMaterialOffsetUCtrl[index]->setValue(0.f);
- mMaterialOffsetVCtrl[index]->setValue(0.f);
- onChangeAnything();
+ callbackMaterialCommit(index);
});
}
@@ -2098,6 +2094,25 @@ bool LLPanelRegionTerrainInfo::callbackBakeTerrain(const LLSD& notification, con
return false;
}
+void LLPanelRegionTerrainInfo::callbackMaterialCommit(S32 index)
+{
+ // These can be null if 'transforms' panel was not inited
+ if (mMaterialScaleUCtrl[index]
+ && mMaterialScaleVCtrl[index]
+ && mMaterialRotationCtrl[index]
+ && mMaterialOffsetUCtrl[index]
+ && mMaterialOffsetVCtrl[index])
+ {
+ mMaterialScaleUCtrl[index]->setValue(1.f);
+ mMaterialScaleVCtrl[index]->setValue(1.f);
+ mMaterialRotationCtrl[index]->setValue(0.f);
+ mMaterialOffsetUCtrl[index]->setValue(0.f);
+ mMaterialOffsetVCtrl[index]->setValue(0.f);
+ }
+
+ onChangeAnything();
+}
+
/////////////////////////////////////////////////////////////////////////////
// LLPanelEstateInfo
//
diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h
index a8631c36ca..0036df9c3d 100644
--- a/indra/newview/llfloaterregioninfo.h
+++ b/indra/newview/llfloaterregioninfo.h
@@ -272,6 +272,7 @@ public:
static void onClickBakeTerrain(void*);
bool callbackBakeTerrain(const LLSD& notification, const LLSD& response);
bool callbackTextureHeights(const LLSD& notification, const LLSD& response);
+ void callbackMaterialCommit(S32 index);
protected:
bool sendUpdate() override;
diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp
index 8e6a47dce5..9b7a4e5134 100644
--- a/indra/newview/llfloatersearch.cpp
+++ b/indra/newview/llfloatersearch.cpp
@@ -66,7 +66,7 @@ class LLSearchHandler : public LLCommandHandler {
LLSearchHandler gSearchHandler;
LLFloaterSearch::LLFloaterSearch(const LLSD& key)
- : LLFloater(key)
+ : LLFloaterWebContent(key)
{
mSearchType.insert("standard");
mSearchType.insert("land");
@@ -86,6 +86,12 @@ LLFloaterSearch::~LLFloaterSearch()
void LLFloaterSearch::onOpen(const LLSD& tokens)
{
initiateSearch(tokens);
+ mWebBrowser->setFocus(true);
+}
+
+// just to override LLFloaterWebContent
+void LLFloaterSearch::onClose(bool app_quitting)
+{
}
void LLFloaterSearch::initiateSearch(const LLSD& tokens)
@@ -155,13 +161,22 @@ void LLFloaterSearch::initiateSearch(const LLSD& tokens)
// Naviation to the calculated URL - we know it's HTML so we can
// tell the media system not to bother with the MIME type check.
- LLMediaCtrl* search_browser = findChild<LLMediaCtrl>("search_contents");
- search_browser->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
+ mWebBrowser->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
}
bool LLFloaterSearch::postBuild()
{
- enableResizeCtrls(true, true, false);
+ if (!LLFloaterWebContent::postBuild())
+ return false;
+
+ mWebBrowser->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
+
+ // If cookie is there, will set it now, Otherwise will have to wait for login completion
+ // which will also update search instance if it already exists.
+ LLViewerMedia::getInstance()->getOpenIDCookie(mWebBrowser);
+
+ getChildView("address")->setEnabled(false);
+ getChildView("popexternal")->setEnabled(false);
// This call is actioned by the preload code in llViewerWindow
// that creates the search floater during the login process
diff --git a/indra/newview/llfloatersearch.h b/indra/newview/llfloatersearch.h
index e8a2be4797..6d93474f4a 100644
--- a/indra/newview/llfloatersearch.h
+++ b/indra/newview/llfloatersearch.h
@@ -27,13 +27,15 @@
#pragma once
#include "llfloater.h"
+#include "llfloaterwebcontent.h"
class LLFloaterSearch:
- public LLFloater {
+ public LLFloaterWebContent {
friend class LLFloaterReg;
public:
void onOpen(const LLSD& key) override;
+ void onClose(bool app_quitting) override;
private:
LLFloaterSearch(const LLSD& key);
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index c1e80ba4f1..bda4afcc04 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -809,6 +809,10 @@ void LLIMModel::LLIMSession::initVoiceChannel(const LLSD& voiceChannelInfo)
{
if (mVoiceChannel)
{
+ if (!voiceChannelInfo.isMap())
+ {
+ LL_WARNS() << "initVoiceChannel called without voiceChannelInfo" << LL_ENDL;
+ }
if (mVoiceChannel->isThisVoiceChannel(voiceChannelInfo))
{
return;
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 1e6c5cf04a..e322d3ae28 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -4390,6 +4390,32 @@ void LLFolderBridge::pasteLinkFromClipboard()
std::vector<LLUUID> objects;
LLClipboard::instance().pasteFromClipboard(objects);
+ if (objects.size() == 0)
+ {
+ LLClipboard::instance().setCutMode(false);
+ return;
+ }
+
+ LLUUID& first_id = objects[0];
+ LLInventoryItem* item = model->getItem(first_id);
+ if (item && item->getAssetUUID().isNull())
+ {
+ if (item->getActualType() == LLAssetType::AT_NOTECARD)
+ {
+ // otehrwise AIS will return 'Cannot link to items with a NULL asset_id.'
+ LLNotificationsUtil::add("CantLinkNotecard");
+ LLClipboard::instance().setCutMode(false);
+ return;
+ }
+ else if (item->getActualType() == LLAssetType::AT_MATERIAL)
+ {
+ LLNotificationsUtil::add("CantLinkMaterial");
+ LLClipboard::instance().setCutMode(false);
+ return;
+ }
+ }
+
+
LLPointer<LLInventoryCallback> cb = NULL;
LLInventoryPanel* panel = mInventoryPanel.get();
if (panel->getRootFolder()->isSingleFolderMode())
diff --git a/indra/newview/llinventorygallery.cpp b/indra/newview/llinventorygallery.cpp
index a4cb6ea65d..c54af7d9f1 100644
--- a/indra/newview/llinventorygallery.cpp
+++ b/indra/newview/llinventorygallery.cpp
@@ -2120,6 +2120,30 @@ void LLInventoryGallery::pasteAsLink()
std::vector<LLUUID> objects;
LLClipboard::instance().pasteFromClipboard(objects);
+ if (objects.size() == 0)
+ {
+ LLClipboard::instance().setCutMode(false);
+ return;
+ }
+
+ LLUUID& first_id = objects[0];
+ LLInventoryItem* item = gInventory.getItem(first_id);
+ if (item && item->getAssetUUID().isNull())
+ {
+ if (item->getActualType() == LLAssetType::AT_NOTECARD)
+ {
+ LLNotificationsUtil::add("CantLinkNotecard");
+ LLClipboard::instance().setCutMode(false);
+ return;
+ }
+ else if (item->getActualType() == LLAssetType::AT_MATERIAL)
+ {
+ LLNotificationsUtil::add("CantLinkMaterial");
+ LLClipboard::instance().setCutMode(false);
+ return;
+ }
+ }
+
bool paste_into_root = mSelectedItemIDs.empty();
for (LLUUID& dest : mSelectedItemIDs)
{
diff --git a/indra/newview/llinventorygallerymenu.cpp b/indra/newview/llinventorygallerymenu.cpp
index e129a1296a..eda93e3e79 100644
--- a/indra/newview/llinventorygallerymenu.cpp
+++ b/indra/newview/llinventorygallerymenu.cpp
@@ -603,20 +603,23 @@ void LLInventoryGalleryContextMenu::updateMenuItemsVisibility(LLContextMenu* men
bool has_children = false;
bool is_full_perm_item = false;
bool is_copyable = false;
- LLViewerInventoryItem* selected_item = gInventory.getItem(selected_id);
+
+ LLViewerInventoryCategory* selected_category = nullptr;
+ LLViewerInventoryItem* selected_item = nullptr;
if(is_folder)
{
- LLInventoryCategory* category = gInventory.getCategory(selected_id);
- if (category)
+ selected_category = dynamic_cast<LLViewerInventoryCategory*>(obj);
+ if (selected_category)
{
- folder_type = category->getPreferredType();
+ folder_type = selected_category->getPreferredType();
is_system_folder = LLFolderType::lookupIsProtectedType(folder_type);
has_children = (gInventory.categoryHasChildren(selected_id) != LLInventoryModel::CHILDREN_NO);
}
}
else
{
+ selected_item = dynamic_cast<LLViewerInventoryItem*>(obj);
if (selected_item)
{
is_full_perm_item = selected_item->getIsFullPerm();
@@ -735,8 +738,7 @@ void LLInventoryGalleryContextMenu::updateMenuItemsVisibility(LLContextMenu* men
{
if (is_agent_inventory && !is_inbox && !is_cof && !is_in_favorites && !is_outfits && !is_in_outfits)
{
- LLViewerInventoryCategory* category = gInventory.getCategory(selected_id);
- if (!category || !LLFriendCardsManager::instance().isCategoryInFriendFolder(category))
+ if (!selected_category || !LLFriendCardsManager::instance().isCategoryInFriendFolder(selected_category))
{
items.push_back(std::string("New Folder"));
}
@@ -764,6 +766,22 @@ void LLInventoryGalleryContextMenu::updateMenuItemsVisibility(LLContextMenu* men
if (inventory_linking)
{
items.push_back(std::string("Paste As Link"));
+
+ if (selected_item)
+ {
+ if (!LLAssetType::lookupCanLink(selected_item->getActualType()))
+ {
+ disabled_items.push_back(std::string("Paste As Link"));
+ }
+ else if (gInventory.isObjectDescendentOf(selected_item->getUUID(), gInventory.getLibraryRootFolderID()))
+ {
+ disabled_items.push_back(std::string("Paste As Link"));
+ }
+ }
+ else if (selected_category && LLFolderType::lookupIsProtectedType(selected_category->getPreferredType()))
+ {
+ disabled_items.push_back(std::string("Paste As Link"));
+ }
}
}
if (is_folder && is_agent_inventory)
@@ -1020,9 +1038,8 @@ void LLInventoryGalleryContextMenu::updateMenuItemsVisibility(LLContextMenu* men
{
if (is_folder)
{
- LLViewerInventoryCategory* cat = gInventory.getCategory(selected_id);
- if (cat
- && !LLFolderType::lookupIsProtectedType(cat->getPreferredType())
+ if (selected_category
+ && !LLFolderType::lookupIsProtectedType(selected_category->getPreferredType())
&& gInventory.isObjectDescendentOf(selected_id, gInventory.getRootFolderID()))
{
can_list = true;
diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp
index a99c9df0ff..6e56aac270 100644
--- a/indra/newview/lllocalbitmaps.cpp
+++ b/indra/newview/lllocalbitmaps.cpp
@@ -219,7 +219,10 @@ bool LLLocalBitmap::updateSelf(EUpdateType optional_firstupdate)
LLPointer<LLViewerFetchedTexture> texture = new LLViewerFetchedTexture
("file://"+mFilename, FTT_LOCAL_FILE, mWorldID, LL_LOCAL_USE_MIPMAPS);
- texture->createGLTexture(LL_LOCAL_DISCARD_LEVEL, raw_image);
+ if (!texture->createGLTexture(LL_LOCAL_DISCARD_LEVEL, raw_image))
+ {
+ LL_WARNS() << "Failed to create GL texture for local bitmap: " << mFilename << " " << mWorldID << LL_ENDL;
+ }
texture->ref();
gTextureList.addImage(texture, TEX_LIST_STANDARD);
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index e0f942b083..413f02b723 100644
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -256,6 +256,7 @@
// mDecompositionRequests mMutex rw.repo.mMutex, ro.repo.none [5]
// mPhysicsShapeRequests mMutex rw.repo.mMutex, ro.repo.none [5]
// mDecompositionQ mMutex rw.repo.mLoadedMutex, rw.main.mLoadedMutex [5] (was: [0])
+// mPhysicsQ mMutex rw.repo.mLoadedMutex, rw.main.mLoadedMutex [5] (was: [0])
// mHeaderReqQ mMutex ro.repo.none [5], rw.repo.mMutex, rw.any.mMutex
// mLODReqQ mMutex ro.repo.none [5], rw.repo.mMutex, rw.any.mMutex
// mUnavailableQ mMutex rw.repo.none [0], ro.main.none [5], rw.main.mLoadedMutex
@@ -982,6 +983,12 @@ LLMeshRepoThread::~LLMeshRepoThread()
mDecompositionQ.pop_front();
}
+ while (!mPhysicsQ.empty())
+ {
+ delete mPhysicsQ.front();
+ mPhysicsQ.pop_front();
+ }
+
delete mHttpRequest;
mHttpRequest = nullptr;
delete mMutex;
@@ -2565,7 +2572,7 @@ EMeshProcessingResult LLMeshRepoThread::physicsShapeReceived(const LLUUID& mesh_
{
LLMutexLock lock(mLoadedMutex);
- mDecompositionQ.push_back(d);
+ mPhysicsQ.push_back(d);
}
return MESH_OK;
}
@@ -3376,13 +3383,14 @@ void LLMeshRepoThread::notifyLoadedMeshes()
}
}
- if (!mSkinInfoQ.empty() || !mSkinUnavailableQ.empty() || ! mDecompositionQ.empty())
+ if (!mSkinInfoQ.empty() || !mSkinUnavailableQ.empty() || !mDecompositionQ.empty() || !mPhysicsQ.empty())
{
if (mLoadedMutex->trylock())
{
std::deque<LLPointer<LLMeshSkinInfo>> skin_info_q;
std::deque<UUIDBasedRequest> skin_info_unavail_q;
std::list<LLModel::Decomposition*> decomp_q;
+ std::list<LLModel::Decomposition*> physics_q;
if (! mSkinInfoQ.empty())
{
@@ -3399,6 +3407,11 @@ void LLMeshRepoThread::notifyLoadedMeshes()
decomp_q.swap(mDecompositionQ);
}
+ if (!mPhysicsQ.empty())
+ {
+ physics_q.swap(mPhysicsQ);
+ }
+
mLoadedMutex->unlock();
// Process the elements free of the lock
@@ -3415,9 +3428,15 @@ void LLMeshRepoThread::notifyLoadedMeshes()
while (! decomp_q.empty())
{
- gMeshRepo.notifyDecompositionReceived(decomp_q.front());
+ gMeshRepo.notifyDecompositionReceived(decomp_q.front(), false);
decomp_q.pop_front();
}
+
+ while (!physics_q.empty())
+ {
+ gMeshRepo.notifyDecompositionReceived(physics_q.front(), true);
+ physics_q.pop_front();
+ }
}
}
@@ -4659,13 +4678,13 @@ void LLMeshRepository::notifySkinInfoUnavailable(const LLUUID& mesh_id)
}
}
-void LLMeshRepository::notifyDecompositionReceived(LLModel::Decomposition* decomp)
+void LLMeshRepository::notifyDecompositionReceived(LLModel::Decomposition* decomp, bool physics_mesh)
{
- decomposition_map::iterator iter = mDecompositionMap.find(decomp->mMeshID);
+ LLUUID decomp_id = decomp->mMeshID; // Copy to avoid invalidation in below deletion
+ decomposition_map::iterator iter = mDecompositionMap.find(decomp_id);
if (iter == mDecompositionMap.end())
{ //just insert decomp into map
- mDecompositionMap[decomp->mMeshID] = decomp;
- mLoadingDecompositions.erase(decomp->mMeshID);
+ mDecompositionMap[decomp_id] = decomp;
sCacheBytesDecomps += decomp->sizeBytes();
}
else
@@ -4673,10 +4692,17 @@ void LLMeshRepository::notifyDecompositionReceived(LLModel::Decomposition* decom
sCacheBytesDecomps -= iter->second->sizeBytes();
iter->second->merge(decomp);
sCacheBytesDecomps += iter->second->sizeBytes();
-
- mLoadingDecompositions.erase(decomp->mMeshID);
delete decomp;
}
+
+ if (physics_mesh)
+ {
+ mLoadingPhysicsShapes.erase(decomp_id);
+ }
+ else
+ {
+ mLoadingDecompositions.erase(decomp_id);
+ }
}
void LLMeshRepository::notifyMeshLoaded(const LLVolumeParams& mesh_params, LLVolume* volume, S32 lod)
@@ -4823,7 +4849,6 @@ void LLMeshRepository::fetchPhysicsShape(const LLUUID& mesh_id)
std::unordered_set<LLUUID>::iterator iter = mLoadingPhysicsShapes.find(mesh_id);
if (iter == mLoadingPhysicsShapes.end())
{ //no request pending for this skin info
- // *FIXME: Nothing ever deletes entries, can't be right
mLoadingPhysicsShapes.insert(mesh_id);
mPendingPhysicsShapeRequests.push(mesh_id);
}
diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h
index 450afd5d5a..01b51e753e 100644
--- a/indra/newview/llmeshrepository.h
+++ b/indra/newview/llmeshrepository.h
@@ -521,6 +521,9 @@ public:
// list of completed Decomposition info requests
std::list<LLModel::Decomposition*> mDecompositionQ;
+ // list of completed Physics Mesh info requests
+ std::list<LLModel::Decomposition*> mPhysicsQ;
+
//queue of requested headers
std::queue<HeaderRequest> mHeaderReqQ;
@@ -871,7 +874,7 @@ public:
void notifyMeshUnavailable(const LLVolumeParams& mesh_params, S32 request_lod, S32 volume_lod);
void notifySkinInfoReceived(LLMeshSkinInfo* info);
void notifySkinInfoUnavailable(const LLUUID& info);
- void notifyDecompositionReceived(LLModel::Decomposition* info);
+ void notifyDecompositionReceived(LLModel::Decomposition* info, bool physics_mesh);
S32 getActualMeshLOD(const LLVolumeParams& mesh_params, S32 lod);
static S32 getActualMeshLOD(LLMeshHeader& header, S32 lod);
diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp
index 46411fc4a0..6b1fbdce4c 100644
--- a/indra/newview/llmodelpreview.cpp
+++ b/indra/newview/llmodelpreview.cpp
@@ -2626,7 +2626,16 @@ void LLModelPreview::updateStatusMessages()
//enable = enable && !use_hull && fmp->childGetValue("physics_optimize").asBoolean();
//enable/disable "analysis" UI
- LLPanel* panel = fmp->getChild<LLPanel>("physics analysis");
+#if LL_HAVOK
+ LLPanel* panel = fmp->getChild<LLPanel>("physics simplification");
+ panel->setVisible(true);
+
+ panel = fmp->getChild<LLPanel>("physics analysis havok");
+ panel->setVisible(true);
+#else
+ LLPanel* panel = fmp->getChild<LLPanel>("physics analysis vhacd");
+ panel->setVisible(true);
+#endif
LLView* child = panel->getFirstChild();
while (child)
{
@@ -2650,6 +2659,8 @@ void LLModelPreview::updateStatusMessages()
fmp->childSetVisible("simplify_cancel", false);
fmp->childSetVisible("Decompose", true);
fmp->childSetVisible("decompose_cancel", false);
+ fmp->childSetVisible("Analyze", true);
+ fmp->childSetVisible("analyze_cancel", false);
if (phys_hulls > 0)
{
@@ -2659,6 +2670,7 @@ void LLModelPreview::updateStatusMessages()
if (phys_tris || phys_hulls > 0)
{
fmp->childEnable("Decompose");
+ fmp->childEnable("Analyze");
}
}
else
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 3ab48f69c8..182b648914 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -4721,7 +4721,6 @@ void LLPanelFace::onPasteTexture(LLViewerObject* objectp, S32 te)
if (allow)
{
objectp->setRenderMaterialID(te, te_data["te"]["pbr"].asUUID(), false /*managing our own update*/);
- tep->setGLTFRenderMaterial(nullptr);
tep->setGLTFMaterialOverride(nullptr);
if (te_data["te"].has("pbr_override"))
@@ -4737,7 +4736,6 @@ void LLPanelFace::onPasteTexture(LLViewerObject* objectp, S32 te)
else
{
objectp->setRenderMaterialID(te, LLUUID::null, false /*send in bulk later*/ );
- tep->setGLTFRenderMaterial(nullptr);
tep->setGLTFMaterialOverride(nullptr);
// blank out most override data on the server
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index f90d6d5b3f..a31a54bb67 100644
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -385,10 +385,7 @@ bool LLTaskInvFVBridge::removeItem()
return true;
}
- LLSD payload;
- payload["task_id"] = mPanel->getTaskUUID();
- payload["inventory_ids"].append(mUUID);
- LLNotificationsUtil::add("RemoveItemWarn", LLSD(), payload, boost::bind(&remove_task_inventory_callback, _1, _2, mPanel));
+ LLNotificationsUtil::add("CantModifyContentInNoModTask");
return false;
}
}
@@ -411,13 +408,7 @@ void LLTaskInvFVBridge::removeBatch(std::vector<LLFolderViewModelItem*>& batch)
if (!object->permModify())
{
- LLSD payload;
- payload["task_id"] = mPanel->getTaskUUID();
- for (LLFolderViewModelItem* item : batch)
- {
- payload["inventory_ids"].append(((LLTaskInvFVBridge*)item)->getUUID());
- }
- LLNotificationsUtil::add("RemoveItemWarn", LLSD(), payload, boost::bind(&remove_task_inventory_callback, _1, _2, mPanel));
+ LLNotificationsUtil::add("CantModifyContentInNoModTask");
}
else
{
diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp
index 2fbdbeaf59..5916163f60 100644
--- a/indra/newview/llpanelvolume.cpp
+++ b/indra/newview/llpanelvolume.cpp
@@ -582,7 +582,7 @@ void LLPanelVolume::getState( )
bool enable_material = editable && single_volume && material_same;
LLCachedControl<bool> edit_linked(gSavedSettings, "EditLinkedParts", false);
- if (!enable_material && !edit_linked())
+ if (!enable_material)
{
LLViewerObject* root = selection->getPrimaryObject();
while (root && !root->isAvatar() && root->getParent())
@@ -592,6 +592,10 @@ void LLPanelVolume::getState( )
{
break;
}
+ if (!parent->isSelected())
+ {
+ break;
+ }
root = parent;
}
if (root)
diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp
index eb7fe06e7d..c6fa64753c 100644
--- a/indra/newview/llreflectionmapmanager.cpp
+++ b/indra/newview/llreflectionmapmanager.cpp
@@ -998,11 +998,11 @@ void LLReflectionMapManager::updateProbeFace(LLReflectionMap* probe, U32 face)
mTexture->bind(channel);
}
}
+
+ gIrradianceGenProgram.unbind();
}
mMipChain[0].flush();
-
- gIrradianceGenProgram.unbind();
}
}
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index be4b449e2a..4762fc555d 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -2073,7 +2073,6 @@ bool LLSelectMgr::selectionSetGLTFMaterial(const LLUUID& mat_id)
objectp->clearTEWaterExclusion(te);
// Blank out most override data on the object and send to server
- objectp->setRenderMaterialID(te, asset_id);
if (should_preserve_transforms && preserved_override)
{
// Apply material with preserved transforms
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 82c959d7f7..2727127633 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -41,6 +41,7 @@
#include "llpanelpresetscamerapulldown.h"
#include "llpanelpresetspulldown.h"
#include "llpanelvolumepulldown.h"
+#include "llfloatermarketplace.h"
#include "llfloaterregioninfo.h"
#include "llfloaterscriptdebug.h"
#include "llhints.h"
@@ -523,7 +524,11 @@ void LLStatusBar::onClickBuyCurrency()
void LLStatusBar::onClickShop()
{
- LLFloaterReg::toggleInstanceOrBringToFront("marketplace");
+ LLFloaterReg::showInstanceOrBringToFront("marketplace");
+ if (LLFloaterMarketplace* marketplace = LLFloaterReg::getTypedInstance<LLFloaterMarketplace>("marketplace"))
+ {
+ marketplace->openMarketplace();
+ }
}
void LLStatusBar::onMouseEnterPresetsCamera()
diff --git a/indra/newview/llsurface.cpp b/indra/newview/llsurface.cpp
index 1826885069..64359b6cbe 100644
--- a/indra/newview/llsurface.cpp
+++ b/indra/newview/llsurface.cpp
@@ -28,9 +28,6 @@
#include "llsurface.h"
-#include "llrender.h"
-
-#include "llviewertexturelist.h"
#include "llpatchvertexarray.h"
#include "patch_dct.h"
#include "patch_code.h"
@@ -39,28 +36,25 @@
#include "llregionhandle.h"
#include "llagent.h"
#include "llagentcamera.h"
-#include "llappviewer.h"
#include "llworld.h"
#include "llviewercontrol.h"
#include "llviewertexture.h"
#include "llsurfacepatch.h"
-#include "llvosurfacepatch.h"
#include "llvowater.h"
#include "pipeline.h"
#include "llviewerregion.h"
-#include "llvlcomposition.h"
-#include "noise.h"
-#include "llviewercamera.h"
-#include "llglheaders.h"
#include "lldrawpoolterrain.h"
-#include "lldrawable.h"
#include "llworldmipmap.h"
extern LLPipeline gPipeline;
extern bool gShiftFrame;
-LLColor4U MAX_WATER_COLOR(0, 48, 96, 240);
+namespace
+{
+ static constexpr float MIN_TEXTURE_REQUEST_INTERVAL = 5.0f;
+}
+LLColor4U MAX_WATER_COLOR(0, 48, 96, 240);
S32 LLSurface::sTextureSize = 256;
@@ -74,18 +68,18 @@ LLSurface::LLSurface(U32 type, LLViewerRegion *regionp) :
mType(type),
mDetailTextureScale(0.f),
mOriginGlobal(0.0, 0.0, 0.0),
- mSTexturep(NULL),
+ mSTexturep(nullptr),
mGridsPerPatchEdge(0),
mMetersPerGrid(1.0f),
mMetersPerEdge(1.0f),
mRegionp(regionp)
{
// Surface data
- mSurfaceZ = NULL;
- mNorm = NULL;
+ mSurfaceZ = nullptr;
+ mNorm = nullptr;
// Patch data
- mPatchList = NULL;
+ mPatchList = nullptr;
// One of each for each camera
mVisiblePatchCount = 0;
@@ -95,14 +89,14 @@ LLSurface::LLSurface(U32 type, LLViewerRegion *regionp) :
mMinZ = 10000.f;
mMaxZ = -10000.f;
- mWaterObjp = NULL;
+ mWaterObjp = nullptr;
// In here temporarily.
mSurfacePatchUpdateCount = 0;
for (S32 i = 0; i < 8; i++)
{
- mNeighbors[i] = NULL;
+ mNeighbors[i] = nullptr;
}
}
@@ -110,7 +104,7 @@ LLSurface::LLSurface(U32 type, LLViewerRegion *regionp) :
LLSurface::~LLSurface()
{
delete [] mSurfaceZ;
- mSurfaceZ = NULL;
+ mSurfaceZ = nullptr;
delete [] mNorm;
@@ -129,7 +123,7 @@ LLSurface::~LLSurface()
{
gPipeline.removePool(poolp);
// Don't enable this until we blitz the draw pool for it as well. -- djs
- mSTexturep = NULL;
+ mSTexturep = nullptr;
}
else
{
@@ -144,7 +138,7 @@ void LLSurface::initClasses()
void LLSurface::setRegion(LLViewerRegion *regionp)
{
mRegionp = regionp;
- mWaterObjp = NULL; // depends on regionp, needs recreating
+ mWaterObjp = nullptr; // depends on regionp, needs recreating
}
// Assumes that arguments are powers of 2, and that
@@ -211,16 +205,29 @@ LLViewerTexture* LLSurface::getSTexture()
void LLSurface::createSTexture()
{
- if (!mSTexturep)
+ if (mSTexturep.isNull())
+ {
+ mTimer.setTimerExpirySec(MIN_TEXTURE_REQUEST_INTERVAL);
+ }
+ else if (mSTexturep->hasGLTexture())
{
- U64 handle = mRegionp->getHandle();
+ // Unexpected: createSTexture() called when a valid texture already exists.
+ // This may indicate a logic error in the caller, as textures should not be recreated unnecessarily.
+ LL_WARNS() << "Called LLSurface::createSTexture() while we already have a valid texture!" << LL_ENDL;
+ return;
+ }
+ else if (!mTimer.checkExpirationAndReset(MIN_TEXTURE_REQUEST_INTERVAL))
+ {
+ // We haven't gotten a valid texture yet, but throttle the number of requests to avoid server flooding
+ return;
+ }
- U32 grid_x, grid_y;
+ U64 handle = mRegionp->getHandle();
+ U32 grid_x, grid_y;
- grid_from_region_handle(handle, &grid_x, &grid_y);
+ grid_from_region_handle(handle, &grid_x, &grid_y);
- mSTexturep = LLWorldMipmap::loadObjectsTile(grid_x, grid_y, 1);
- }
+ mSTexturep = LLWorldMipmap::loadObjectsTile(grid_x, grid_y, 1);
}
void LLSurface::initTextures()
@@ -285,7 +292,7 @@ void LLSurface::getNeighboringRegions( std::vector<LLViewerRegion*>& uniqueRegio
S32 i;
for (i = 0; i < 8; i++)
{
- if ( mNeighbors[i] != NULL )
+ if (mNeighbors[i] != nullptr)
{
uniqueRegions.push_back( mNeighbors[i]->getRegion() );
}
@@ -298,7 +305,7 @@ void LLSurface::getNeighboringRegionsStatus( std::vector<S32>& regions )
S32 i;
for (i = 0; i < 8; i++)
{
- if ( mNeighbors[i] != NULL )
+ if (mNeighbors[i] != nullptr)
{
regions.push_back( i );
}
@@ -498,7 +505,7 @@ void LLSurface::disconnectNeighbor(LLSurface *surfacep)
{
if (surfacep == mNeighbors[i])
{
- mNeighbors[i] = NULL;
+ mNeighbors[i] = nullptr;
}
}
@@ -518,7 +525,7 @@ void LLSurface::disconnectAllNeighbors()
if (mNeighbors[i])
{
mNeighbors[i]->disconnectNeighbor(this);
- mNeighbors[i] = NULL;
+ mNeighbors[i] = nullptr;
}
}
}
@@ -910,7 +917,7 @@ LLSurfacePatch *LLSurface::resolvePatchRegion(const F32 x, const F32 y) const
if(0 == mNumberOfPatches)
{
LL_WARNS() << "No patches for current region!" << LL_ENDL;
- return NULL;
+ return nullptr;
}
S32 old_index = index;
index = llclamp(old_index, 0, (mNumberOfPatches - 1));
@@ -996,7 +1003,7 @@ void LLSurface::createPatchData()
}
else
{
- patchp->setNeighborPatch(EAST, NULL);
+ patchp->setNeighborPatch(EAST, nullptr);
}
if (j < mPatchesPerEdge-1)
@@ -1005,7 +1012,7 @@ void LLSurface::createPatchData()
}
else
{
- patchp->setNeighborPatch(NORTH, NULL);
+ patchp->setNeighborPatch(NORTH, nullptr);
}
if (i > 0)
@@ -1014,7 +1021,7 @@ void LLSurface::createPatchData()
}
else
{
- patchp->setNeighborPatch(WEST, NULL);
+ patchp->setNeighborPatch(WEST, nullptr);
}
if (j > 0)
@@ -1023,7 +1030,7 @@ void LLSurface::createPatchData()
}
else
{
- patchp->setNeighborPatch(SOUTH, NULL);
+ patchp->setNeighborPatch(SOUTH, nullptr);
}
if (i < (mPatchesPerEdge-1) && j < (mPatchesPerEdge-1))
@@ -1032,7 +1039,7 @@ void LLSurface::createPatchData()
}
else
{
- patchp->setNeighborPatch(NORTHEAST, NULL);
+ patchp->setNeighborPatch(NORTHEAST, nullptr);
}
if (i > 0 && j < (mPatchesPerEdge-1))
@@ -1041,7 +1048,7 @@ void LLSurface::createPatchData()
}
else
{
- patchp->setNeighborPatch(NORTHWEST, NULL);
+ patchp->setNeighborPatch(NORTHWEST, nullptr);
}
if (i > 0 && j > 0)
@@ -1050,7 +1057,7 @@ void LLSurface::createPatchData()
}
else
{
- patchp->setNeighborPatch(SOUTHWEST, NULL);
+ patchp->setNeighborPatch(SOUTHWEST, nullptr);
}
if (i < (mPatchesPerEdge-1) && j > 0)
@@ -1059,7 +1066,7 @@ void LLSurface::createPatchData()
}
else
{
- patchp->setNeighborPatch(SOUTHEAST, NULL);
+ patchp->setNeighborPatch(SOUTHEAST, nullptr);
}
LLVector3d origin_global;
@@ -1077,7 +1084,7 @@ void LLSurface::destroyPatchData()
// Delete all of the cached patch data for these patches.
delete [] mPatchList;
- mPatchList = NULL;
+ mPatchList = nullptr;
mVisiblePatchCount = 0;
}
@@ -1105,12 +1112,12 @@ LLSurfacePatch *LLSurface::getPatch(const S32 x, const S32 y) const
if ((x < 0) || (x >= mPatchesPerEdge))
{
LL_ERRS() << "Asking for patch out of bounds" << LL_ENDL;
- return NULL;
+ return nullptr;
}
if ((y < 0) || (y >= mPatchesPerEdge))
{
LL_ERRS() << "Asking for patch out of bounds" << LL_ENDL;
- return NULL;
+ return nullptr;
}
return mPatchList + x + y*mPatchesPerEdge;
diff --git a/indra/newview/llsurface.h b/indra/newview/llsurface.h
index fc72ab7db7..a599019ca5 100644
--- a/indra/newview/llsurface.h
+++ b/indra/newview/llsurface.h
@@ -29,14 +29,8 @@
#include "v3math.h"
#include "v3dmath.h"
-#include "v4math.h"
-#include "m3math.h"
-#include "m4math.h"
-#include "llquaternion.h"
-
-#include "v4coloru.h"
-#include "v4color.h"
+#include "lltimer.h"
#include "llvowater.h"
#include "llpatchvertexarray.h"
#include "llviewertexture.h"
@@ -65,7 +59,7 @@ class LLGroupHeader;
class LLSurface
{
public:
- LLSurface(U32 type, LLViewerRegion *regionp = NULL);
+ LLSurface(U32 type, LLViewerRegion *regionp = nullptr);
virtual ~LLSurface();
static void initClasses(); // Do class initialization for LLSurface and its child classes.
@@ -169,14 +163,13 @@ public:
F32 mDetailTextureScale; // Number of times to repeat detail texture across this surface
-protected:
+private:
void createSTexture();
void initTextures();
void createPatchData(); // Allocates memory for patches.
void destroyPatchData(); // Deallocates memory for patches.
-protected:
LLVector3d mOriginGlobal; // In absolute frame
LLSurfacePatch *mPatchList; // Array of all patches
@@ -212,6 +205,7 @@ protected:
private:
LLViewerRegion *mRegionp; // Patch whose coordinate system this surface is using.
static S32 sTextureSize; // Size of the surface texture
+ LLTimer mTimer; // timer to throttle initial requests until the mSTexture is fully fetched
};
extern template bool LLSurface::idleUpdate</*PBR=*/false>(F32 max_update_time);
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index d0c0bdb5ce..f78ff2226c 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -1537,7 +1537,7 @@ void LLToolDragAndDrop::dropMaterialAllFaces(LLViewerObject* hit_obj,
}
else
{
- hit_obj->setRenderMaterialID(te, asset_id, false, true);
+ hit_obj->setRenderMaterialID(te, asset_id);
}
}
}
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 4c408ec17d..35ac7919ac 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -240,8 +240,11 @@ void display_stats()
if (gRecentFPSTime.getElapsedTimeF32() >= FPS_LOG_FREQUENCY)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("DS - FPS");
+ LLTrace::Recording& recording = LLTrace::get_frame_recording().getLastRecording();
+ F64 normalized_session_jitter = recording.getLastValue(LLStatViewer::NOTRMALIZED_FRAMETIME_JITTER_SESSION);
+ F64 normalized_period_jitter = recording.getLastValue(LLStatViewer::NORMALIZED_FRAMTIME_JITTER_PERIOD);
F32 fps = gRecentFrameCount / FPS_LOG_FREQUENCY;
- LL_INFOS() << llformat("FPS: %.02f", fps) << LL_ENDL;
+ LL_INFOS() << llformat("FPS: %.02f SESSION JITTER: %.4f PERIOD JITTER: %.4f", fps, normalized_session_jitter, normalized_period_jitter) << LL_ENDL;
gRecentFrameCount = 0;
gRecentFPSTime.reset();
}
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 89861d74bc..8f229850c0 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -83,6 +83,8 @@ extern bool gCubeSnapshot;
// *TODO: Consider enabling mipmaps (they have been disabled for a long time). Likely has a significant performance impact for tiled/high texture repeat media. Mip generation in a shader may also be an option if necessary.
constexpr bool USE_MIPMAPS = false;
+constexpr S32 MAX_MEDIA_INSTANCES_DEFAULT = 8;
+constexpr S32 MEDIA_INSTANCES_MIN_LIMIT = 6; // 4 'permanent' floaters plus reserve for dynamic ones
void init_threaded_picker_load_dialog(LLPluginClassMedia* plugin, LLFilePicker::ELoadFilter filter, bool get_multiple)
{
@@ -214,6 +216,7 @@ static bool sViewerMediaMuteListObserverInitialized = false;
LLViewerMedia::LLViewerMedia():
mAnyMediaShowing(false),
mAnyMediaPlaying(false),
+mMaxIntances(MAX_MEDIA_INSTANCES_DEFAULT),
mSpareBrowserMediaSource(NULL)
{
}
@@ -222,6 +225,7 @@ LLViewerMedia::~LLViewerMedia()
{
gIdleCallbacks.deleteFunction(LLViewerMedia::onIdle, NULL);
mTeleportFinishConnection.disconnect();
+ mMaxInstancesConnection.disconnect();
if (mSpareBrowserMediaSource != NULL)
{
delete mSpareBrowserMediaSource;
@@ -235,6 +239,35 @@ void LLViewerMedia::initSingleton()
gIdleCallbacks.addFunction(LLViewerMedia::onIdle, NULL);
mTeleportFinishConnection = LLViewerParcelMgr::getInstance()->
setTeleportFinishedCallback(boost::bind(&LLViewerMedia::onTeleportFinished, this));
+
+ LLControlVariable* ctrl = gSavedSettings.getControl("PluginInstancesTotal");
+ if (ctrl)
+ {
+ setMaxInstances(ctrl->getValue().asInteger());
+ mMaxInstancesConnection = ctrl->getSignal()->connect([this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
+ {
+ setMaxInstances(new_val.asInteger());
+ });
+ }
+ else
+ {
+ setMaxInstances(MAX_MEDIA_INSTANCES_DEFAULT);
+ }
+}
+
+void LLViewerMedia::setMaxInstances(S32 max_instances)
+{
+ const F32Gigabytes MIN_PHYSICAL_MEMORY(8);
+ LLMemory::updateMemoryInfo();
+ F32Gigabytes physical_mem = LLMemory::getMaxMemKB();
+ if (MIN_PHYSICAL_MEMORY > physical_mem)
+ {
+ mMaxIntances = llmax(max_instances - 2, MEDIA_INSTANCES_MIN_LIMIT);
+ }
+ else
+ {
+ mMaxIntances = llmax(max_instances, MEDIA_INSTANCES_MIN_LIMIT);
+ }
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -688,7 +721,6 @@ void LLViewerMedia::updateMedia(void *dummy_arg)
static LLCachedControl<bool> inworld_media_enabled(gSavedSettings, "AudioStreamingMedia", true);
static LLCachedControl<bool> inworld_audio_enabled(gSavedSettings, "AudioStreamingMusic", true);
- static LLCachedControl<U32> max_instances(gSavedSettings, "PluginInstancesTotal", 8);
static LLCachedControl<U32> max_normal(gSavedSettings, "PluginInstancesNormal", 2);
static LLCachedControl<U32> max_low(gSavedSettings, "PluginInstancesLow", 4);
static LLCachedControl<F32> max_cpu(gSavedSettings, "PluginInstancesCPULimit", 0.9);
@@ -709,7 +741,7 @@ void LLViewerMedia::updateMedia(void *dummy_arg)
LLPluginClassMedia::EPriority new_priority = LLPluginClassMedia::PRIORITY_NORMAL;
- if(pimpl->isForcedUnloaded() || (impl_count_total >= (int)max_instances))
+ if(pimpl->isForcedUnloaded() || (impl_count_total >= mMaxIntances))
{
// Never load muted or failed impls.
// Hard limit on the number of instances that will be loaded at one time
@@ -869,7 +901,7 @@ void LLViewerMedia::updateMedia(void *dummy_arg)
sLowestLoadableImplInterest = 0.0f;
// Only do this calculation if we've hit the impl count limit -- up until that point we always need to load media data.
- if(lowest_interest_loadable && (impl_count_total >= (int)max_instances))
+ if(lowest_interest_loadable && (impl_count_total >= mMaxIntances))
{
// Get the interest value of this impl's object for use by isInterestingEnough
LLVOVolume *object = lowest_interest_loadable->getSomeObject();
@@ -1201,6 +1233,54 @@ LLCore::HttpHeaders::ptr_t LLViewerMedia::getHttpHeaders()
return headers;
}
+bool LLViewerMedia::getOpenIDCookie(LLMediaCtrl* media_instance) const
+{
+ if (mOpenIDCookie.empty())
+ {
+ return false;
+ }
+
+ std::string authority = mOpenIDURL.mAuthority;
+ std::string::size_type hostStart = authority.find('@');
+ if (hostStart == std::string::npos)
+ {
+ // no username/password
+ hostStart = 0;
+ }
+ else
+ {
+ // Hostname starts after the @.
+ // (If the hostname part is empty, this may put host_start at the end of the string. In that case, it will end up passing through an empty hostname, which is correct.)
+ ++hostStart;
+ }
+ std::string::size_type hostEnd = authority.rfind(':');
+ if ((hostEnd == std::string::npos) || (hostEnd < hostStart))
+ {
+ // no port
+ hostEnd = authority.size();
+ }
+
+ std::string cookie_host = authority.substr(hostStart, hostEnd - hostStart);
+ std::string cookie_name = "";
+ std::string cookie_value = "";
+ std::string cookie_path = "";
+ bool httponly = true;
+ bool secure = true;
+ if (!parseRawCookie(mOpenIDCookie, cookie_name, cookie_value, cookie_path, httponly, secure))
+ {
+ return false;
+ }
+ std::string cefUrl(std::string(mOpenIDURL.mURI) + "://" + std::string(mOpenIDURL.mAuthority));
+ if (media_instance && media_instance->getMediaPlugin())
+ {
+ media_instance->getMediaPlugin()->setCookie(cefUrl, cookie_name, cookie_value, cookie_host,
+ cookie_path, httponly, secure);
+
+ media_instance->getMediaPlugin()->storeOpenIDCookie(cefUrl, cookie_name, cookie_value,
+ cookie_host, cookie_path, httponly, secure);
+ }
+ return true;
+}
/////////////////////////////////////////////////////////////////////////////////////////
void LLViewerMedia::setOpenIDCookie(const std::string& url)
@@ -1267,7 +1347,7 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)
bool secure = true;
LLViewerMedia* inst = getInstance();
- if (inst->parseRawCookie(inst->mOpenIDCookie, cookie_name, cookie_value, cookie_path, httponly, secure))
+ if (parseRawCookie(inst->mOpenIDCookie, cookie_name, cookie_value, cookie_path, httponly, secure))
{
// MAINT-5711 - inexplicably, the CEF setCookie function will no longer set the cookie if the
// url and domain are not the same. This used to be my.sl.com and id.sl.com respectively and worked.
@@ -1284,20 +1364,24 @@ void LLViewerMedia::getOpenIDCookieCoro(std::string url)
std::string browser_name;
};
struct MediaCookieInstance media_cookie_instances[] = {
- {"search", "search_contents" },
- {"marketplace", "marketplace_contents" },
+ {"search", "webbrowser" },
+ {"marketplace", "webbrowser" },
{"destinations", "destination_guide_contents" },
};
for (MediaCookieInstance mci : media_cookie_instances)
{
- LLMediaCtrl* media_instance = LLFloaterReg::getInstance(mci.floater_name)->getChild<LLMediaCtrl>(mci.browser_name);
- if (media_instance && media_instance->getMediaPlugin())
+ LLFloater *floaterp = LLFloaterReg::findInstance(mci.floater_name);
+ if (floaterp)
{
- media_instance->getMediaPlugin()->setCookie(cefUrl, cookie_name, cookie_value, cookie_host,
- cookie_path, httponly, secure);
+ LLMediaCtrl* media_instance = floaterp->getChild<LLMediaCtrl>(mci.browser_name);
+ if (media_instance && media_instance->getMediaPlugin())
+ {
+ media_instance->getMediaPlugin()->setCookie(cefUrl, cookie_name, cookie_value, cookie_host,
+ cookie_path, httponly, secure);
- media_instance->getMediaPlugin()->storeOpenIDCookie(cefUrl, cookie_name, cookie_value,
- cookie_host, cookie_path, httponly, secure);
+ media_instance->getMediaPlugin()->storeOpenIDCookie(cefUrl, cookie_name, cookie_value,
+ cookie_host, cookie_path, httponly, secure);
+ }
}
}
}
@@ -3001,7 +3085,10 @@ void LLViewerMediaImpl::doMediaTexUpdate(LLViewerMediaTexture* media_tex, U8* da
// -Cosmic,2023-04-04
// Allocate GL texture based on LLImageRaw but do NOT copy to GL
LLGLuint tex_name = 0;
- media_tex->createGLTexture(0, raw, 0, true, LLGLTexture::OTHER, true, &tex_name);
+ if (!media_tex->createGLTexture(0, raw, 0, true, LLGLTexture::OTHER, true, &tex_name))
+ {
+ LL_WARNS("Media") << "Failed to create media texture" << LL_ENDL;
+ }
// copy just the subimage covered by the image raw to GL
media_tex->setSubImage(data, data_width, data_height, x_pos, y_pos, width, height, tex_name);
@@ -3070,7 +3157,10 @@ LLViewerMediaTexture* LLViewerMediaImpl::updateMediaImage()
mMediaSource->getTextureFormatSwapBytes());
int discard_level = 0;
- media_tex->createGLTexture(discard_level, raw);
+ if (!media_tex->createGLTexture(discard_level, raw))
+ {
+ LL_WARNS("Media") << "Failed to create media texture" << LL_ENDL;
+ }
// MEDIAOPT: set this dynamically on play/stop
// FIXME
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index c17cf59815..1fc5bbc9e0 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -69,6 +69,7 @@ private:
};
class LLViewerMediaImpl;
+class LLMediaCtrl;
class LLViewerMedia: public LLSingleton<LLViewerMedia>
{
@@ -162,22 +163,26 @@ public:
LLSD getHeaders();
LLCore::HttpHeaders::ptr_t getHttpHeaders();
+ bool getOpenIDCookie(LLMediaCtrl* media_instance) const;
private:
void onAuthSubmit(const LLSD& notification, const LLSD& response);
- bool parseRawCookie(const std::string raw_cookie, std::string& name, std::string& value, std::string& path, bool& httponly, bool& secure);
+ static bool parseRawCookie(const std::string raw_cookie, std::string& name, std::string& value, std::string& path, bool& httponly, bool& secure);
void setOpenIDCookie(const std::string& url);
void onTeleportFinished();
static void openIDSetupCoro(std::string openidUrl, std::string openidToken);
static void getOpenIDCookieCoro(std::string url);
+ void setMaxInstances(S32 max_instances);
bool mAnyMediaShowing;
bool mAnyMediaPlaying;
+ S32 mMaxIntances = 8;
LLURL mOpenIDURL;
std::string mOpenIDCookie;
LLPluginClassMedia* mSpareBrowserMediaSource;
boost::signals2::connection mTeleportFinishConnection;
+ boost::signals2::connection mMaxInstancesConnection;
};
// Implementation functions not exported into header file
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index 3695478061..801ff3c212 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -912,7 +912,23 @@ class LLFileUploadModel : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- LLFloaterModelPreview::showModelPreview();
+ if (LLConvexDecomposition::isFunctional())
+ {
+ LLFloaterModelPreview::showModelPreview();
+ }
+ else
+ {
+ if (gGLManager.mIsApple)
+ {
+ LLNotificationsUtil::add("ModelUploaderMissingPhysicsApple");
+ }
+ else
+ {
+ // TPV?
+ LLNotificationsUtil::add("ModelUploaderMissingPhysics");
+ LLFloaterModelPreview::showModelPreview();
+ }
+ }
return true;
}
};
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 16b7ac33b8..e9f6d7175e 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3139,7 +3139,10 @@ void process_crossed_region(LLMessageSystem* msg, void**)
return;
}
LL_INFOS("Messaging") << "process_crossed_region()" << LL_ENDL;
- gAgentAvatarp->resetRegionCrossingTimer();
+ if (isAgentAvatarValid())
+ {
+ gAgentAvatarp->resetRegionCrossingTimer();
+ }
U32 sim_ip;
msg->getIPAddrFast(_PREHASH_RegionData, _PREHASH_SimIP, sim_ip);
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index d72d428c08..fb9e5fd0a9 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -1070,7 +1070,7 @@ void LLViewerObjectList::fetchObjectCostsCoro(std::string url)
if (diff.empty())
{
- LL_INFOS() << "No outstanding object IDs to request. Pending count: " << mPendingObjectCost.size() << LL_ENDL;
+ LL_DEBUGS() << "No outstanding object IDs to request. Pending count: " << mPendingObjectCost.size() << LL_ENDL;
return;
}
@@ -1205,7 +1205,7 @@ void LLViewerObjectList::fetchPhisicsFlagsCoro(std::string url)
if (idList.size() < 1)
{
- LL_INFOS() << "No outstanding object physics flags to request." << LL_ENDL;
+ LL_DEBUGS() << "No outstanding object physics flags to request." << LL_ENDL;
return;
}
diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h
index 011269d7ee..1ac8b2f66b 100644
--- a/indra/newview/llviewerstats.h
+++ b/indra/newview/llviewerstats.h
@@ -229,6 +229,9 @@ extern LLTrace::EventStatHandle<F64Seconds > AVATAR_EDIT_TIME,
extern LLTrace::EventStatHandle<LLUnit<F32, LLUnits::Percent> > OBJECT_CACHE_HIT_RATE;
+extern LLTrace::SampleStatHandle<F64> NOTRMALIZED_FRAMETIME_JITTER_SESSION;
+extern LLTrace::SampleStatHandle<F64> NORMALIZED_FRAMTIME_JITTER_PERIOD;
+
}
class LLViewerStats : public LLSingleton<LLViewerStats>
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 6135e18840..1e83482752 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -406,7 +406,10 @@ void LLViewerTextureManager::init()
}
}
}
- imagep->createGLTexture(0, image_raw);
+ if (!imagep->createGLTexture(0, image_raw))
+ {
+ LL_WARNS() << "Failed to create default texture " << IMG_DEFAULT << LL_ENDL;
+ }
image_raw = NULL;
#else
LLViewerFetchedTexture::sDefaultImagep = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, true, LLGLTexture::BOOST_UI);
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 3849c286c5..5fed98dfe4 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2322,36 +2322,23 @@ void LLViewerWindow::initWorldUI()
gToolBarView->setVisible(true);
}
- if (!gNonInteractive)
+ // Don't preload cef instances on low end hardware
+ const F32Gigabytes MIN_PHYSICAL_MEMORY(8);
+ F32Gigabytes physical_mem = LLMemory::getMaxMemKB();
+ if (physical_mem <= 0)
{
- LLMediaCtrl* destinations = LLFloaterReg::getInstance("destinations")->getChild<LLMediaCtrl>("destination_guide_contents");
- if (destinations)
- {
- destinations->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
- std::string url = gSavedSettings.getString("DestinationGuideURL");
- url = LLWeb::expandURLSubstitutions(url, LLSD());
- destinations->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
- }
- LLMediaCtrl* avatar_welcome_pack = LLFloaterReg::getInstance("avatar_welcome_pack")->findChild<LLMediaCtrl>("avatar_picker_contents");
- if (avatar_welcome_pack)
- {
- avatar_welcome_pack->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
- std::string url = gSavedSettings.getString("AvatarWelcomePack");
- url = LLWeb::expandURLSubstitutions(url, LLSD());
- avatar_welcome_pack->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
- }
- LLMediaCtrl* search = LLFloaterReg::getInstance("search")->findChild<LLMediaCtrl>("search_contents");
- if (search)
- {
- search->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
- }
- LLMediaCtrl* marketplace = LLFloaterReg::getInstance("marketplace")->getChild<LLMediaCtrl>("marketplace_contents");
- if (marketplace)
- {
- marketplace->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
- std::string url = gSavedSettings.getString("MarketplaceURL");
- marketplace->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
- }
+ LLMemory::updateMemoryInfo();
+ physical_mem = LLMemory::getMaxMemKB();
+ }
+
+ if (!gNonInteractive && physical_mem > MIN_PHYSICAL_MEMORY)
+ {
+ LL_INFOS() << "Preloading cef instances" << LL_ENDL;
+
+ LLFloaterReg::getInstance("destinations");
+ LLFloaterReg::getInstance("avatar_welcome_pack");
+ LLFloaterReg::getInstance("search");
+ LLFloaterReg::getInstance("marketplace");
}
}
@@ -3340,7 +3327,31 @@ void LLViewerWindow::clearPopups()
void LLViewerWindow::moveCursorToCenter()
{
- if (! gSavedSettings.getBOOL("DisableMouseWarp"))
+ bool mouse_warp = false;
+ LLCachedControl<S32> mouse_warp_mode(gSavedSettings, "MouseWarpMode", 1);
+
+ switch (mouse_warp_mode())
+ {
+ case 0:
+ // For Windows:
+ // Mouse usually uses 'delta' position since it isn't aware of own location, keep it centered.
+ // Touch screen reports absolute or virtual absolute position and warping a physical
+ // touch is pointless, so don't move it.
+ //
+ // MacOS
+ // If 'decoupled', CGAssociateMouseAndMouseCursorPosition can make mouse stay in
+ // one place and not move, do not move it (needs testing).
+ mouse_warp = mWindow->isWrapMouse();
+ break;
+ case 1:
+ mouse_warp = true;
+ break;
+ default:
+ mouse_warp = false;
+ break;
+ }
+
+ if (mouse_warp)
{
S32 x = getWorldViewWidthScaled() / 2;
S32 y = getWorldViewHeightScaled() / 2;
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 6d29038a23..8792ae3285 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -1014,7 +1014,6 @@ bool LLVivoxVoiceClient::startAndLaunchDaemon()
std::string old_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SLVoice.old");
if (gDirUtilp->fileExists(new_log))
{
- LLFile::remove(old_log, ENOENT);
LLFile::rename(new_log, old_log);
}
diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp
index 83f104ef01..fba7098906 100644
--- a/indra/newview/llvoicewebrtc.cpp
+++ b/indra/newview/llvoicewebrtc.cpp
@@ -273,6 +273,11 @@ void LLWebRTCVoiceClient::cleanupSingleton()
void LLWebRTCVoiceClient::init(LLPumpIO* pump)
{
// constructor will set up LLVoiceClient::getInstance()
+ initWebRTC();
+}
+
+void LLWebRTCVoiceClient::initWebRTC()
+{
llwebrtc::init(this);
mWebRTCDeviceInterface = llwebrtc::getDeviceInterface();
@@ -293,6 +298,8 @@ void LLWebRTCVoiceClient::terminate()
mVoiceEnabled = false;
sShuttingDown = true; // so that coroutines won't post more work.
llwebrtc::terminate();
+
+ mWebRTCDeviceInterface = nullptr;
}
//---------------------------------------------------
@@ -389,7 +396,7 @@ void LLWebRTCVoiceClient::updateSettings()
config.mNoiseSuppressionLevel = noiseSuppressionLevel;
audioConfigChanged = true;
}
- if (audioConfigChanged)
+ if (audioConfigChanged && mWebRTCDeviceInterface)
{
mWebRTCDeviceInterface->setAudioConfig(config);
}
@@ -790,7 +797,10 @@ void LLWebRTCVoiceClient::tuningStart()
{
if (!mIsInTuningMode)
{
- mWebRTCDeviceInterface->setTuningMode(true);
+ if (mWebRTCDeviceInterface)
+ {
+ mWebRTCDeviceInterface->setTuningMode(true);
+ }
mIsInTuningMode = true;
}
}
@@ -799,7 +809,10 @@ void LLWebRTCVoiceClient::tuningStop()
{
if (mIsInTuningMode)
{
- mWebRTCDeviceInterface->setTuningMode(false);
+ if (mWebRTCDeviceInterface)
+ {
+ mWebRTCDeviceInterface->setTuningMode(false);
+ }
mIsInTuningMode = false;
}
}
@@ -832,6 +845,10 @@ void LLWebRTCVoiceClient::tuningSetSpeakerVolume(float volume)
float LLWebRTCVoiceClient::tuningGetEnergy(void)
{
+ if (!mWebRTCDeviceInterface)
+ {
+ return 0.f;
+ }
float rms = mWebRTCDeviceInterface->getTuningAudioLevel();
return TUNING_LEVEL_START_POINT - TUNING_LEVEL_SCALE * rms;
}
@@ -859,7 +876,10 @@ void LLWebRTCVoiceClient::refreshDeviceLists(bool clearCurrentList)
clearCaptureDevices();
clearRenderDevices();
}
- mWebRTCDeviceInterface->refreshDevices();
+ if (mWebRTCDeviceInterface)
+ {
+ mWebRTCDeviceInterface->refreshDevices();
+ }
}
@@ -1167,7 +1187,7 @@ void LLWebRTCVoiceClient::sendPositionUpdate(bool force)
void LLWebRTCVoiceClient::updateOwnVolume()
{
F32 audio_level = 0.0f;
- if (!mMuteMic)
+ if (!mMuteMic && mWebRTCDeviceInterface)
{
float rms = mWebRTCDeviceInterface->getPeerConnectionAudioLevel();
audio_level = LEVEL_START_POINT - LEVEL_SCALE * rms;
@@ -1804,6 +1824,15 @@ void LLWebRTCVoiceClient::onChangeDetailed(const LLMute& mute)
}
}
+void LLWebRTCVoiceClient::userAuthorized(const std::string& user_id, const LLUUID& agentID)
+{
+ if (sShuttingDown)
+ {
+ sShuttingDown = false; // was terminated, restart
+ initWebRTC();
+ }
+}
+
void LLWebRTCVoiceClient::predSetUserMute(const LLWebRTCVoiceClient::sessionStatePtr_t &session, const LLUUID &id, bool mute)
{
session->setUserMute(id, mute);
diff --git a/indra/newview/llvoicewebrtc.h b/indra/newview/llvoicewebrtc.h
index 722d81fdc2..2ce575852a 100644
--- a/indra/newview/llvoicewebrtc.h
+++ b/indra/newview/llvoicewebrtc.h
@@ -204,7 +204,7 @@ public:
//@}
// authorize the user
- void userAuthorized(const std::string &user_id, const LLUUID &agentID) override {};
+ void userAuthorized(const std::string &user_id, const LLUUID &agentID) override;
void OnConnectionEstablished(const std::string& channelID, const LLUUID& regionID);
@@ -443,6 +443,8 @@ public:
boost::signals2::connection mAvatarNameCacheConnection;
private:
+ // init or restart the WebRTC device interface.
+ void initWebRTC();
// Coroutine support methods
//---
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 2370b948ef..aa230f4636 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -5025,7 +5025,7 @@ void LLRiggedVolume::update(
else
{
face_begin = face_index;
- face_end = face_begin + 1;
+ face_end = llmin(face_begin + 1, volume->getNumVolumeFaces());
}
for (S32 i = face_begin; i < face_end; ++i)
{
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 8b6680ee10..fc66e9283e 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4340,7 +4340,7 @@ void LLPipeline::renderPhysicsDisplay()
gGL.flush();
gDebugProgram.bind();
- LLGLEnable(GL_POLYGON_OFFSET_LINE);
+ LLGLEnable polygon_offset_line(GL_POLYGON_OFFSET_LINE);
glPolygonOffset(3.f, 3.f);
glLineWidth(3.f);
LLGLEnable blend(GL_BLEND);
diff --git a/indra/newview/skins/default/xui/en/floater_marketplace.xml b/indra/newview/skins/default/xui/en/floater_marketplace.xml
index 2299e02c63..40bf674d2d 100644
--- a/indra/newview/skins/default/xui/en/floater_marketplace.xml
+++ b/indra/newview/skins/default/xui/en/floater_marketplace.xml
@@ -1,26 +1,201 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater
- positioning="cascading"
- legacy_header_height="225"
- can_minimize="true"
- can_close="true"
- can_resize="true"
- min_height="800"
- min_width="800"
- height="800"
- layout="topleft"
- name="Marketplace"
- single_instance="true"
- help_topic="marketplace"
- save_rect="true"
- save_visibility="true"
- title="MARKETPLACE"
- width="800">
- <web_browser
- top="25"
- height="775"
- width="800"
- follows="all"
- name="marketplace_contents"
- trusted_content="true"/>
+ legacy_header_height="18"
+ can_minimize="true"
+ can_close="true"
+ can_resize="true"
+ height="775"
+ layout="topleft"
+ min_height="500"
+ min_width="600"
+ name="Marketplace"
+ save_rect="true"
+ single_instance="true"
+ save_visibility="true"
+ title="MARKETPLACE"
+ tab_stop="true"
+ width="780">
+ <layout_stack
+ bottom="775"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="5"
+ animate="false"
+ name="stack1"
+ orientation="vertical"
+ top="20"
+ width="770">
+ <layout_panel
+ auto_resize="false"
+ default_tab_group="1"
+ height="22"
+ layout="topleft"
+ left="0"
+ min_height="20"
+ name="nav_controls"
+ top="400"
+ width="770">
+ <button
+ image_overlay="Arrow_Left_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ hover_glow_amount="0.15"
+ tool_tip="Navigate back"
+ follows="left|top"
+ height="22"
+ layout="topleft"
+ left="1"
+ name="back"
+ top="0"
+ width="22">
+ <button.commit_callback
+ function="WebContent.Back" />
+ </button>
+ <button
+ image_overlay="Arrow_Right_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ tool_tip="Navigate forward"
+ follows="left|top"
+ height="22"
+ layout="topleft"
+ left="27"
+ name="forward"
+ top_delta="0"
+ width="22">
+ <button.commit_callback
+ function="WebContent.Forward" />
+ </button>
+ <button
+ image_overlay="Stop_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ tool_tip="Stop navigation"
+ enabled="true"
+ follows="left|top"
+ height="22"
+ layout="topleft"
+ left="51"
+ name="stop"
+ top_delta="0"
+ width="22">
+ <button.commit_callback
+ function="WebContent.Stop" />
+ </button>
+ <button
+ image_overlay="Refresh_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ tool_tip="Reload page"
+ follows="left|top"
+ height="22"
+ layout="topleft"
+ left="51"
+ name="reload"
+ top_delta="0"
+ width="22">
+ <button.commit_callback
+ function="WebContent.Reload" />
+ </button>
+ <combo_box
+ allow_text_entry="true"
+ follows="left|top|right"
+ tab_group="1"
+ height="22"
+ layout="topleft"
+ left_pad="4"
+ max_chars="1024"
+ name="address"
+ combo_editor.select_on_focus="true"
+ tool_tip="Enter URL here"
+ top_delta="0"
+ width="672">
+ <combo_box.commit_callback
+ function="WebContent.EnterAddress" />
+ </combo_box>
+ <icon
+ name="media_secure_lock_flag"
+ height="16"
+ follows="top|left"
+ image_name="Lock2"
+ layout="topleft"
+ left_delta="2"
+ top_delta="2"
+ visible="false"
+ tool_tip="Secured Browsing"
+ width="16" />
+ <button
+ image_overlay="ExternalBrowser_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ tool_tip="Open current URL in your desktop browser"
+ follows="right|top"
+ enabled="true"
+ height="22"
+ layout="topleft"
+ name="popexternal"
+ right="770"
+ top_delta="-2"
+ width="22">
+ <button.commit_callback
+ function="WebContent.PopExternal" />
+ </button>
+ </layout_panel>
+ <layout_panel
+ height="40"
+ layout="topleft"
+ left_delta="0"
+ name="external_controls"
+ top_delta="0"
+ auto_resize="true"
+ width="585">
+ <web_browser
+ bottom="-2"
+ follows="all"
+ layout="topleft"
+ left="0"
+ name="webbrowser"
+ top="0"/>
+ </layout_panel>
+ <layout_panel name="status_bar"
+ height="23"
+ auto_resize="false">
+ <text
+ type="string"
+ length="200"
+ follows="bottom|left"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="statusbartext"
+ parse_urls="false"
+ text_color="0.4 0.4 0.4 1"
+ top_pad="3"
+ width="495"/>
+ <progress_bar
+ color_bar="0.3 1.0 0.3 1"
+ follows="bottom|right"
+ height="16"
+ top_delta="-1"
+ left_pad="24"
+ layout="topleft"
+ name="statusbarprogress"
+ width="64"/>
+ </layout_panel>
+ </layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml
index f11d687840..39e9de0980 100644
--- a/indra/newview/skins/default/xui/en/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml
@@ -40,7 +40,7 @@
<string name="simplifying">Simplifying...</string>
<string name="tbd">TBD</string>
<string name="ModelTextureScaling">One or more textures in this model were scaled to be within the allowed limits.</string>
-
+
<!-- Warnings and info from model loader-->
<string name="TooManyJoint">Skinning disabled due to too many joints: [JOINTS], maximum: [MAX]</string>
<string name="UnrecognizedJoint">Rigged to unrecognized joint name [NAME]</string>
@@ -807,7 +807,7 @@
help_topic="upload_model_physics"
label="Physics"
name="physics_panel">
-
+
<!-- ==== STEP 1: Level of Detail ==== -->
<view_border
bevel_style="none"
@@ -873,7 +873,7 @@
<!-- <check_box name="physics_optimize" follows="left|top" width="130" left="10" top_pad="5" height="20" label="Optimize"/>
<check_box name="physics_use_hull" follows="left|top" width="130" left_pad="5" height="20" label="Use Convex Hull"/> -->
</panel>
-
+
<!-- ==== STEP 2: Analyze ==== -->
<view_border
bevel_style="none"
@@ -890,9 +890,9 @@
height="65"
follows="top|left"
left="18"
- name="physics analysis"
+ name="physics analysis havok"
top_pad="10"
- visible="true"
+ visible="false"
width="589">
<text
follows="left|top"
@@ -980,7 +980,131 @@
visible="false"
width="90"/>
</panel>
-
+ <panel
+ bg_alpha_color="0 0 0 0"
+ bg_opaque_color="0 0 0 0.3"
+ height="65"
+ follows="top|left"
+ left="18"
+ name="physics analysis vhacd"
+ top_delta="0"
+ visible="false"
+ width="589">
+ <text
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="0"
+ name="method_label"
+ text_color="White"
+ top_pad="0">
+ Step 2: Convert to hulls (optional)
+ </text>
+ <text
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ name="analysis_method_label"
+ top_pad="10"
+ width="100">
+ Fill Mode:
+ </text>
+ <text
+ follows="top|left"
+ height="15"
+ name="quality_label"
+ layout="topleft"
+ left_pad="5"
+ width="85">
+ Resolution:
+ </text>
+ <text
+ follows="top|left"
+ height="15"
+ name="quality_label"
+ layout="topleft"
+ left_pad="25"
+ width="95">
+ Hulls per Mesh:
+ </text>
+ <text
+ follows="top|left"
+ height="15"
+ name="smooth_method_label"
+ layout="topleft"
+ left_pad="5"
+ width="95">
+ Vertices per hull:
+ </text>
+ <text
+ follows="top|left"
+ height="15"
+ name="tolerance_label"
+ layout="topleft"
+ left_pad="5"
+ width="100">
+ Error tolerance:
+ </text>
+ <combo_box
+ follows="top|left"
+ layout="topleft"
+ left="0"
+ name="Fill Mode"
+ top_pad="0"
+ height="20"
+ width="100"/>
+ <combo_box
+ follows="top|left"
+ layout="topleft"
+ left_pad="5"
+ name="Voxel Resolution"
+ height="20"
+ width="100"/>
+ <spinner
+ follows="top|left"
+ name="Num Hulls"
+ height="20"
+ left_pad="10"
+ width="60"
+ decimal_digits="0"
+ allow_digits_only="true"/>
+ <spinner
+ follows="top|left"
+ name="Num Vertices"
+ height="20"
+ left_pad="40"
+ width="60"
+ decimal_digits="0"
+ allow_digits_only="true"/>
+ <spinner
+ follows="top|left"
+ name="Error Tolerance"
+ height="20"
+ left_pad="40"
+ width="60"
+ decimal_digits="4"
+ allow_digits_only="true"/>
+ <button
+ bottom="1"
+ follows="top|right"
+ height="20"
+ label="Analyze"
+ layout="bottomleft"
+ name="Analyze"
+ right="-1"
+ width="90"/>
+ <button
+ follows="top|left"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left_delta="0"
+ name="analyze_cancel"
+ visible="false"
+ width="90"/>
+ </panel>
+
<!-- ==== STEP 3: Simplify ==== -->
<view_border
bevel_style="none"
@@ -999,7 +1123,8 @@
left="18"
name="physics simplification"
top_pad="10"
- width="589">
+ width="589"
+ visible="false">
<text
text_color="White"
follows="left|top"
@@ -1088,7 +1213,7 @@
name="simplify_cancel"
width="90"/>
</panel>
-
+
<!-- ==== Results ==== -->
<view_border
bevel_style="none"
@@ -1186,7 +1311,7 @@
name="modifiers_panel"
help_topic="upload_model_modifiers">
<view_border
- bevel_style="none"
+ bevel_style="none"
follows="top|left"
height="306"
layout="topleft"
@@ -1593,7 +1718,7 @@ Model:
[MODEL]
</text>
</panel>
- <!--
+ <!--
Streaming breakdown numbers are available but not fully understood
uncommenting the following sections will display the numbers for debugging purposes
<text
@@ -1695,7 +1820,7 @@ Analysed:
width="462"
visible="true">
You don't have rights to upload mesh models. [[VURL] Find out how] to get certified.
- </text>
+ </text>
<text
text_color="Yellow"
layout="topleft"
@@ -1706,7 +1831,7 @@ Analysed:
</text>
</panel>
</panel>
-
+
<text
follows="left|top"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/floater_search.xml b/indra/newview/skins/default/xui/en/floater_search.xml
index 76a486e211..8891ebcd87 100644
--- a/indra/newview/skins/default/xui/en/floater_search.xml
+++ b/indra/newview/skins/default/xui/en/floater_search.xml
@@ -1,26 +1,202 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater
- positioning="cascading"
- legacy_header_height="225"
- can_minimize="true"
- can_close="true"
- can_resize="true"
- min_height="800"
- min_width="800"
- height="800"
- layout="topleft"
- name="Search"
- single_instance="true"
- help_topic="search"
- save_rect="true"
- save_visibility="true"
- title="SEARCH"
- width="800">
- <web_browser
- top="25"
- height="775"
- width="800"
- follows="all"
- name="search_contents"
- trusted_content="true"/>
+ legacy_header_height="18"
+ can_minimize="true"
+ can_close="true"
+ can_resize="true"
+ height="775"
+ layout="topleft"
+ min_height="500"
+ min_width="600"
+ name="Search"
+ save_rect="true"
+ single_instance="true"
+ save_visibility="true"
+ title="SEARCH"
+ tab_stop="true"
+ width="780">
+ <layout_stack
+ bottom="775"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="5"
+ animate="false"
+ name="stack1"
+ orientation="vertical"
+ top="20"
+ width="770">
+ <layout_panel
+ auto_resize="false"
+ default_tab_group="1"
+ height="22"
+ layout="topleft"
+ left="0"
+ min_height="20"
+ name="nav_controls"
+ top="400"
+ width="770">
+ <button
+ image_overlay="Arrow_Left_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ hover_glow_amount="0.15"
+ tool_tip="Navigate back"
+ follows="left|top"
+ height="22"
+ layout="topleft"
+ left="1"
+ name="back"
+ top="0"
+ width="22">
+ <button.commit_callback
+ function="WebContent.Back" />
+ </button>
+ <button
+ image_overlay="Arrow_Right_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ tool_tip="Navigate forward"
+ follows="left|top"
+ height="22"
+ layout="topleft"
+ left="27"
+ name="forward"
+ top_delta="0"
+ width="22">
+ <button.commit_callback
+ function="WebContent.Forward" />
+ </button>
+ <button
+ image_overlay="Stop_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ tool_tip="Stop navigation"
+ enabled="true"
+ follows="left|top"
+ height="22"
+ layout="topleft"
+ left="51"
+ name="stop"
+ top_delta="0"
+ width="22">
+ <button.commit_callback
+ function="WebContent.Stop" />
+ </button>
+ <button
+ image_overlay="Refresh_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ tool_tip="Reload page"
+ follows="left|top"
+ height="22"
+ layout="topleft"
+ left="51"
+ name="reload"
+ top_delta="0"
+ width="22">
+ <button.commit_callback
+ function="WebContent.Reload" />
+ </button>
+ <combo_box
+ allow_text_entry="true"
+ follows="left|top|right"
+ tab_group="1"
+ height="22"
+ layout="topleft"
+ left_pad="4"
+ max_chars="1024"
+ name="address"
+ combo_editor.select_on_focus="true"
+ tool_tip="Enter URL here"
+ top_delta="0"
+ width="672">
+ <combo_box.commit_callback
+ function="WebContent.EnterAddress" />
+ </combo_box>
+ <icon
+ name="media_secure_lock_flag"
+ height="16"
+ follows="top|left"
+ image_name="Lock2"
+ layout="topleft"
+ left_delta="2"
+ top_delta="2"
+ visible="false"
+ tool_tip="Secured Browsing"
+ width="16" />
+ <button
+ image_overlay="ExternalBrowser_Off"
+ image_disabled="PushButton_Disabled"
+ image_disabled_selected="PushButton_Disabled"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ chrome="true"
+ tool_tip="Open current URL in your desktop browser"
+ follows="right|top"
+ enabled="true"
+ height="22"
+ layout="topleft"
+ name="popexternal"
+ right="770"
+ top_delta="-2"
+ width="22">
+ <button.commit_callback
+ function="WebContent.PopExternal" />
+ </button>
+ </layout_panel>
+ <layout_panel
+ height="40"
+ layout="topleft"
+ left_delta="0"
+ name="external_controls"
+ top_delta="0"
+ auto_resize="true"
+ width="585">
+ <web_browser
+ bottom="-2"
+ follows="all"
+ layout="topleft"
+ left="0"
+ trusted_content="true"
+ name="webbrowser"
+ top="0"/>
+ </layout_panel>
+ <layout_panel name="status_bar"
+ height="23"
+ auto_resize="false">
+ <text
+ type="string"
+ length="200"
+ follows="bottom|left"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="statusbartext"
+ parse_urls="false"
+ text_color="0.4 0.4 0.4 1"
+ top_pad="3"
+ width="495"/>
+ <progress_bar
+ color_bar="0.3 1.0 0.3 1"
+ follows="bottom|right"
+ height="16"
+ top_delta="-1"
+ left_pad="24"
+ layout="topleft"
+ name="statusbarprogress"
+ width="64"/>
+ </layout_panel>
+ </layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index fa3fd86d59..dbd513afe8 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -2239,6 +2239,25 @@ Couldn&apos;t open uploaded sound file for reading:
<notification
icon="alertmodal.tga"
+ name="ModelUploaderMissingPhysicsApple"
+ type="alertmodal">
+Model upload is not yet available on Apple Silicon, but will be supported in an upcoming release.
+
+Workaround: Right-click the Second Life app in Finder, select
+&apos;Get Info&apos;, then check &apos;Open using Rosetta&apos;
+ <tag>fail</tag>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ModelUploaderMissingPhysics"
+ type="alertmodal">
+Physics library is not present, some of the model uploader's functionality might not work or might not work correctly.
+ <tag>fail</tag>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
name="SoundFileNotRIFF"
type="alertmodal">
File does not appear to be a RIFF WAVE file:
@@ -6576,6 +6595,22 @@ Do you want to replace it with the selected object?
</notification>
<notification
+ icon="alertmodal.tga"
+ name="CantLinkNotecard"
+ type="alertmodal">
+ You must save the notecard before creating a link to it.
+ <tag>fail</tag>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CantLinkMaterial"
+ type="alertmodal">
+ You must save the material before creating a link to it.
+ <tag>fail</tag>
+ </notification>
+
+ <notification
icon="alert.tga"
label="Do Not Disturb Mode Warning"
name="DoNotDisturbModePay"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_move.xml b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
index 4aafceb112..2fc859f43e 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
@@ -202,9 +202,43 @@
height="10"
layout="topleft"
left="86"
- name="single_click_action_lbl"
+ name="mouse_warp_lbl"
width="150"
top_pad="20">
+ Mouse Warp:
+ </text>
+ <combo_box
+ control_name="MouseWarpMode"
+ height="23"
+ layout="topleft"
+ left_pad="10"
+ top_delta="-6"
+ name="mouse_warp_combo"
+ tool_tip="Controls warping of the mouse to the center of the screen during alt-zoom and mouse look."
+ width="200">
+ <combo_box.item
+ label="Automatic"
+ name="0"
+ value="0"/>
+ <combo_box.item
+ label="On"
+ name="1"
+ value="1"/>
+ <combo_box.item
+ label="Off"
+ name="2"
+ value="2"/>
+ </combo_box>
+ <text
+ follows="left|top"
+ type="string"
+ length="1"
+ height="10"
+ layout="topleft"
+ left="86"
+ name="single_click_action_lbl"
+ width="150"
+ top_pad="12">
Single click on land:
</text>
<combo_box
diff --git a/indra/newview/skins/default/xui/ja/control_table_contents_columns_basic.xml b/indra/newview/skins/default/xui/ja/control_table_contents_columns_basic.xml
index 83f204648d..db833e2c8e 100644
--- a/indra/newview/skins/default/xui/ja/control_table_contents_columns_basic.xml
+++ b/indra/newview/skins/default/xui/ja/control_table_contents_columns_basic.xml
@@ -2,6 +2,6 @@
<contents>
<columns label="アクション" name="lst_action"/>
<columns label="優先コントロール" name="lst_ctrl1"/>
- <columns label="代わり1" name="lst_ctrl2"/>
- <columns label="代わり2" name="lst_ctrl3"/>
+ <columns label="代替1" name="lst_ctrl2"/>
+ <columns label="代替2" name="lst_ctrl3"/>
</contents>
diff --git a/indra/newview/skins/default/xui/ja/floater_360capture.xml b/indra/newview/skins/default/xui/ja/floater_360capture.xml
index d0a6eef0e0..4199327e88 100644
--- a/indra/newview/skins/default/xui/ja/floater_360capture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_360capture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="360capture" title="360度Sショット">
+<floater name="360capture" title="360度スナップショット">
<panel name="ui_panel_left">
<text name="quality_level_label">
品質
@@ -11,7 +11,7 @@
<radio_item label="最高品位" name="maximum_quality" value="2048" tool_tip="最高品質"/>
</radio_group>
<check_box label="アバターをすべて隠す" name="360_hide_avatar"/>
- <button label="360度画像を作成" name="capture_button"/>
+ <button label="360度画像を作成" name="capture_button"/>
<button label="名前をつけて保存…" name="save_local_button"/>
</panel>
<panel name="ui_panel_right">
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index 7da5f41f90..ed057704fe 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -45,7 +45,7 @@
[AREA]㎡
</panel.string>
<panel.string name="auction_id_text">
- オークションID:[ID]
+ オークションID:[ID]
</panel.string>
<panel.string name="need_tier_to_modify">
この土地を修正変更するには、購入を承認する必要があります。
@@ -72,7 +72,7 @@
区画が選択されていません。
</panel.string>
<panel.string name="time_stamp_template">
- [year,datetime,local]年[mth,datetime,local]月[day,datetime,local]日[wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
+ [year,datetime,local]年[mth,datetime,local]月[day,datetime,local]日[wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</panel.string>
<text name="Name:">
名前:
@@ -85,7 +85,7 @@
種類:
</text>
<text name="LandTypeText">
- メインランド/入植地
+ メインランド / ホームステッド
</text>
<text name="ContentRating">
区分:
@@ -136,7 +136,7 @@
4048m²
</text>
<text name="Traffic:">
- トラフィック:
+ 交通量:
</text>
<text name="DwellText">
読み込んでいます…
@@ -178,7 +178,7 @@
この不動産には約款がありません。
</text_editor>
<text name="covenant_timestamp_text">
- 最後更新:1969年12月31日水曜日 16:00:00
+ 最後更新:1969年12月31日水曜日 16:00:00
</text>
<text font="SansSerifLarge" name="region_section_lbl">
地域:
@@ -190,7 +190,7 @@
種類:
</text>
<text name="region_landtype_text">
- メインランド/入植地
+ メインランド / ホームステッド
</text>
<text name="region_maturity_lbl">
区分:
@@ -270,7 +270,7 @@
[COUNT]個
</text>
<text name="Autoreturn">
- 他者のオブジェクトの自動返却(分単位、0で自動返却なし):
+ 他者のオブジェクトの自動返却(分単位、0で自動返却なし):
</text>
<line_editor name="clean other time"/>
<text name="Object Owners:">
@@ -291,7 +291,7 @@
この区画を検索結果に表示する
</panel.string>
<panel.string name="search_disabled_small_tooltip">
- 区画面積が128㎡未満のため、このオプションは無効です。
+ 区画面積が128㎡未満のため、このオプションは無効です。
大きな区画のみ検索に表示させることが可能です。
</panel.string>
<panel.string name="search_disabled_permissions_tooltip">
@@ -385,7 +385,7 @@
<text name="with media:">
種類:
</text>
- <combo_box name="media type" tool_tip="動画や、Webページ、その他のメディアのURLを指定します。"/>
+ <combo_box name="media type" tool_tip="動画や、Webページ、その他のメディアのURLを指定します。"/>
<text name="at URL:">
ホームページ:
</text>
@@ -402,11 +402,11 @@
このテクスチャを使用するオブジェクトの「再生」をクリックすると、動画やWebページを表示します。テクスチャを変更するにはサムネイルを選択してください。
</text>
<check_box label="スケールを自動設定" name="media_auto_scale" tool_tip="このオプションをチェックすると、この区画のコンテンツのスケールが自動的に設定されます。動作速度と画質が少し低下することがありますが、他のテクスチャのスケーリングや整列が必要になることはありません。"/>
- <text name="media_size" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの0のままにします。">
+ <text name="media_size" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの0のままにします。">
サイズ:
</text>
- <spinner name="media_size_width" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの0のままにします。"/>
- <spinner name="media_size_height" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの0のままにします。"/>
+ <spinner name="media_size_width" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの0のままにします。"/>
+ <spinner name="media_size_height" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの0のままにします。"/>
<text name="pixels">
ピクセル
</text>
@@ -417,7 +417,7 @@
</panel>
<panel label="サウンド" name="land_audio_panel">
<text name="MusicURL:">
- 音楽URL:
+ 音楽URL:
</text>
<text name="Sound:">
サウンド:
@@ -443,7 +443,7 @@
1つ以上のオプションが、不動産レベルで設定されています。
</panel.string>
<check_box label="誰でも訪問可(このオプションをオフにすると立入禁止ラインが作成されます)" name="public_access"/>
- <check_box label="18歳以上である必要があります。[ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="この区画にアクセスするには、18歳以上でなければなりません。詳細につきましては、[SUPPORT_SITE]をご覧になってください。"/>
+ <check_box label="18歳以上である必要があります。[ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="この区画にアクセスするには、18歳以上でなければなりません。詳細につきましては、[SUPPORT_SITE]をご覧になってください。"/>
<check_box label="支払情報が登録されている必要があります。[ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="アカウントに支払情報が登録されていない場合、この区画にアクセスすることはできません。詳細につきましては、[SUPPORT_SITE]をご覧になってください。"/>
<check_box label="制約なしにグループ[GROUP]を許可する。" name="GroupCheck" tool_tip="「一般」タブで、グループを選択してください。"/>
<check_box label="入場許可を販売:" name="PassCheck" tool_tip="この区画への一時的なアクセスを許可します。"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_add_payment_method.xml b/indra/newview/skins/default/xui/ja/floater_add_payment_method.xml
index fb2cd37cc3..b420bf7d20 100644
--- a/indra/newview/skins/default/xui/ja/floater_add_payment_method.xml
+++ b/indra/newview/skins/default/xui/ja/floater_add_payment_method.xml
@@ -5,7 +5,7 @@
</floater.string>
<panel label="wrapper_panel" name="wrapper_panel">
<text name="title_txt">
- 支払い方法を登録してリンデンドルを購入し、Second Lifeをもっと楽しみましょう。
+ 支払い方法を追加してリンデンドルを購入し、Second Lifeをもっと楽しみましょう。
</text>
<button label="始めましょう" name="continue_btn"/>
<button label="また後で"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
index 5de3486ea1..a4909c18fd 100644
--- a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
@@ -6,13 +6,13 @@
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<text name="label">
- ベークド
+ ベイク済み
テクスチャ
</text>
<text name="composite_label">
合成テクスチャ
</text>
- <button label="IDをコンソールにダンプ" label_selected="ダンプ" name="Dump"/>
+ <button label="IDをコンソールにダンプ" label_selected="ダンプ" name="Dump"/>
<panel name="scroll_content_panel2">
<texture_picker label="髪" name="hair-baked"/>
<texture_picker label="髪" name="hair_grain"/>
@@ -53,12 +53,12 @@
<texture_picker label="左腕のタトゥ" name="leftarm_tattoo"/>
<texture_picker label="左足" name="leftleg-baked"/>
<texture_picker label="左足のタトゥ" name="leftleg_tattoo"/>
- <texture_picker label="予備1" name="aux1-baked"/>
- <texture_picker label="予備1タトゥ" name="aux1_tattoo"/>
- <texture_picker label="予備2" name="aux2-baked"/>
- <texture_picker label="予備2タトゥ" name="aux2_tattoo"/>
- <texture_picker label="予備3" name="aux3-baked"/>
- <texture_picker label="予備3タトゥ" name="aux3_tattoo"/>
+ <texture_picker label="予備1" name="aux1-baked"/>
+ <texture_picker label="予備1タトゥ" name="aux1_tattoo"/>
+ <texture_picker label="予備2" name="aux2-baked"/>
+ <texture_picker label="予備2タトゥ" name="aux2_tattoo"/>
+ <texture_picker label="予備3" name="aux3-baked"/>
+ <texture_picker label="予備3タトゥ" name="aux3_tattoo"/>
</panel>
</panel>
</scroll_container>
diff --git a/indra/newview/skins/default/xui/ja/floater_bumps.xml b/indra/newview/skins/default/xui/ja/floater_bumps.xml
index 8cd9c0cff9..c48296fa8f 100644
--- a/indra/newview/skins/default/xui/ja/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/ja/floater_bumps.xml
@@ -4,21 +4,21 @@
検出なし
</floater.string>
<floater.string name="bump">
- [TIME] [NAME]があなたに衝突しました。
+ [TIME] [NAME]があなたに衝突しました。
</floater.string>
<floater.string name="llpushobject">
- [TIME] [NAME]がスクリプトであなたを押しました。
+ [TIME] [NAME]がスクリプトであなたを押しました。
</floater.string>
<floater.string name="selected_object_collide">
- [TIME] [NAME]が、オブジェクトであなたを叩きました。
+ [TIME] [NAME]が、オブジェクトであなたを叩きました。
</floater.string>
<floater.string name="scripted_object_collide">
- [TIME] [NAME]が、スクリプトのオブジェクトであなたを叩きました。
+ [TIME] [NAME]が、スクリプトのオブジェクトであなたを叩きました。
</floater.string>
<floater.string name="physical_object_collide">
- [TIME] [NAME]が、物理オブジェクトであなたを叩きました。
+ [TIME] [NAME]が、物理オブジェクトであなたを叩きました。
</floater.string>
<floater.string name="timeStr">
- [[hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]]
+ [[hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]]
</floater.string>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_edit_ext_day_cycle.xml b/indra/newview/skins/default/xui/ja/floater_edit_ext_day_cycle.xml
index f75564cd4c..a72836bbbc 100644
--- a/indra/newview/skins/default/xui/ja/floater_edit_ext_day_cycle.xml
+++ b/indra/newview/skins/default/xui/ja/floater_edit_ext_day_cycle.xml
@@ -13,7 +13,7 @@
自分で作成したデイサイクルを編集するには、希望の設定に調節して、「保存」をクリックします。
</string>
<string name="time_label">
- ([HH]:[MM])
+ ([HH]:[MM])
</string>
<string name="sky_track_label">
空[ALT]
@@ -42,9 +42,9 @@
<layout_stack name="content_stack">
<layout_panel name="timeline_track_selection">
<panel name="timeline_layers">
- <button label="空4" name="sky4_track"/>
- <button label="空3" name="sky3_track"/>
- <button label="空2" name="sky2_track"/>
+ <button label="空4" name="sky4_track"/>
+ <button label="空3" name="sky3_track"/>
+ <button label="空2" name="sky2_track"/>
<button label="地面" name="sky1_track"/>
<button label="水面" name="water_track"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_god_tools.xml b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
index 3c96e2e340..d82be80c95 100644
--- a/indra/newview/skins/default/xui/ja/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
@@ -20,17 +20,17 @@
<button label="地形を元に戻す" label_selected="地形を元に戻す" name="Revert Terrain" tool_tip="現在の地形をデフォルトに置換します。"/>
<button label="地形を交換" label_selected="地形を交換" name="Swap Terrain" tool_tip="現在の地形をデフォルトと入れ替えます。"/>
<text name="estate id">
- 不動産ID:
+ 不動産ID:
</text>
<text name="parent id">
- 親ID:
+ 親ID:
</text>
<line_editor name="parentestate" tool_tip="これは、このリージョン(地域)の親不動産です。"/>
<text name="Grid Pos: ">
グリッド位置:
</text>
- <line_editor name="gridposx" tool_tip="これは、このリージョン(地域)のグリッドX座標です。"/>
- <line_editor name="gridposy" tool_tip="これは、このリージョン(地域)のグリッドY座標です。"/>
+ <line_editor name="gridposx" tool_tip="これは、このリージョン(地域)のグリッドX座標です。"/>
+ <line_editor name="gridposy" tool_tip="これは、このリージョン(地域)のグリッドY座標です。"/>
<text name="Redirect to Grid: ">
グリッドにリダイレクト:
</text>
@@ -85,7 +85,7 @@
<combo_box.item label="コライダー<ステップ>" name="item1"/>
<combo_box.item label="スクリプト<回数>、<オプション・パターン>" name="item2"/>
<combo_box.item label="オブジェクト<パターン>" name="item3"/>
- <combo_box.item label="rez <アセットID>" name="item4"/>
+ <combo_box.item label="rez <アセットID>" name="item4"/>
</combo_box>
<text name="Parameter:">
パラメーター:
diff --git a/indra/newview/skins/default/xui/ja/floater_incoming_call.xml b/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
index 319db34879..5b09d2da53 100644
--- a/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
@@ -4,7 +4,7 @@
5
</floater.string>
<floater.string name="localchat">
- 近隣のボイスチャット
+ 近くのボイスチャット
</floater.string>
<floater.string name="anonymous">
匿名ユーザー
diff --git a/indra/newview/skins/default/xui/ja/floater_inspect.xml b/indra/newview/skins/default/xui/ja/floater_inspect.xml
index fca7b2eab8..0a859f9142 100644
--- a/indra/newview/skins/default/xui/ja/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inspect.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="inspect" title="オブジェクトの調査">
<floater.string name="timeStamp">
- [year,datetime,slt]年[mth,datetime,slt]月[day,datetime,slt]日([wkday,datetime,slt]) [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]
+ [year,datetime,slt]年[mth,datetime,slt]月[day,datetime,slt]日([wkday,datetime,slt]) [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]
</floater.string>
<scroll_list name="object_list" tool_tip="このリストからオブジェクトを選択して、インワールドでハイライトします。">
<scroll_list.columns label="オブジェクト名" name="object_name"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_joystick.xml b/indra/newview/skins/default/xui/ja/floater_joystick.xml
index 559ecee5a8..0d3f0992a2 100644
--- a/indra/newview/skins/default/xui/ja/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/ja/floater_joystick.xml
@@ -6,9 +6,9 @@
<text name="joystick_lbl">
ジョイスティック:
</text>
- <spinner label="X軸マッピング" name="JoystickAxis1"/>
- <spinner label="Y軸マッピング" name="JoystickAxis2"/>
- <spinner label="Z軸マッピング" name="JoystickAxis0"/>
+ <spinner label="X軸マッピング" name="JoystickAxis1"/>
+ <spinner label="Y軸マッピング" name="JoystickAxis2"/>
+ <spinner label="Z軸マッピング" name="JoystickAxis0"/>
<spinner label="ピッチ・マッピング" name="JoystickAxis4"/>
<spinner label="ヨー・マッピング" name="JoystickAxis5"/>
<spinner label="ロール・マッピング" name="JoystickAxis3"/>
@@ -23,19 +23,19 @@
<check_box label="造る" name="JoystickBuildEnabled"/>
<check_box label="フライ・カメラ" name="JoystickFlycamEnabled"/>
<text name="XScale">
- Xスケール
+ Xスケール
</text>
<spinner name="AvatarAxisScale1"/>
<spinner name="BuildAxisScale1"/>
<spinner name="FlycamAxisScale1"/>
<text name="YScale">
- Yスケール
+ Yスケール
</text>
<spinner name="AvatarAxisScale2"/>
<spinner name="BuildAxisScale2"/>
<spinner name="FlycamAxisScale2"/>
<text name="ZScale">
- Zスケール
+ Zスケール
</text>
<spinner name="AvatarAxisScale0"/>
<spinner name="BuildAxisScale0"/>
@@ -58,19 +58,19 @@
<spinner name="BuildAxisScale3"/>
<spinner name="FlycamAxisScale3"/>
<text name="XDeadZone">
- Xデッド・ゾーン
+ Xデッド・ゾーン
</text>
<spinner name="AvatarAxisDeadZone1"/>
<spinner name="BuildAxisDeadZone1"/>
<spinner name="FlycamAxisDeadZone1"/>
<text name="YDeadZone">
- Yデッド・ゾーン
+ Yデッド・ゾーン
</text>
<spinner name="AvatarAxisDeadZone2"/>
<spinner name="BuildAxisDeadZone2"/>
<spinner name="FlycamAxisDeadZone2"/>
<text name="ZDeadZone">
- Zデッド・ゾーン
+ Zデッド・ゾーン
</text>
<spinner name="AvatarAxisDeadZone0"/>
<spinner name="BuildAxisDeadZone0"/>
@@ -110,12 +110,12 @@
<button label="OK" label_selected="OK" name="ok_btn"/>
<button label="キャンセル" label_selected="キャンセル" name="cancel_btn"/>
<stat_view label="ジョイスティック・モニター" name="axis_view">
- <stat_bar label="軸0" name="axis0"/>
- <stat_bar label="軸1" name="axis1"/>
- <stat_bar label="軸2" name="axis2"/>
- <stat_bar label="軸3" name="axis3"/>
- <stat_bar label="軸4" name="axis4"/>
- <stat_bar label="軸5" name="axis5"/>
+ <stat_bar label="軸0" name="axis0"/>
+ <stat_bar label="軸1" name="axis1"/>
+ <stat_bar label="軸2" name="axis2"/>
+ <stat_bar label="軸3" name="axis3"/>
+ <stat_bar label="軸4" name="axis4"/>
+ <stat_bar label="軸5" name="axis5"/>
</stat_view>
<string name="NoDevice">
デバイスは検出されませんでした。
diff --git a/indra/newview/skins/default/xui/ja/floater_lagmeter.xml b/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
index e7830bbd25..67b4e29e45 100644
--- a/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_lagmeter" title="ラグメーター">
<floater.string name="max_title_msg">
- 遅延計測器
+ ラグメーター
</floater.string>
<floater.string name="max_width_px">
360
diff --git a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
index 31009cb2e0..cd32fac8ac 100644
--- a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
@@ -17,13 +17,13 @@
<column label="面積" name="area"/>
</scroll_list>
<text name="allowed_label">
- 現在の支払いプランで利用可能な入植地:
+ 現在の支払いプランで所有可能な土地:
</text>
<text name="allowed_text">
[AREA]㎡
</text>
<text name="current_label">
- 現在の保有地:
+ 現在所有している土地:
</text>
<text name="current_text">
[AREA]㎡
diff --git a/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml b/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
index 4bb370f6ea..f362bff2bd 100644
--- a/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="script ed float" title="LSLレファレンス">
+<floater name="script ed float" title="LSLレファレンス">
<check_box label="カーソルを追う" name="lock_check"/>
<combo_box label="ロック" name="history_combo"/>
<button label="戻る" name="back_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_model_preview.xml b/indra/newview/skins/default/xui/ja/floater_model_preview.xml
index 69629f357f..123421a97d 100644
--- a/indra/newview/skins/default/xui/ja/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_model_preview.xml
@@ -233,7 +233,7 @@
</panel>
<panel label="アップロードのオプション" name="modifiers_panel">
<text name="scale_label">
- スケール(1=増減なし):
+ スケール(1=増減なし):
</text>
<spinner name="import_scale" value="1.0"/>
<text name="dimensions_label">
@@ -250,7 +250,7 @@
<check_box label="ジョイント位置を含む" name="upload_joints"/>
<check_box label="ジョイント位置が定義されている場合、スケールをロック" name="lock_scale_if_joint_position"/>
<text name="pelvis_offset_label">
- Zオフセット(アバターを上下調整):
+ Zオフセット(アバターを上下調整):
</text>
<spinner name="pelvis_offset" value="0.0"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
index d74b714b1a..35f4cd3ca3 100644
--- a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
@@ -4,7 +4,7 @@
5
</floater.string>
<floater.string name="localchat">
- 近隣のボイスチャット
+ 近くのボイスチャット
</floater.string>
<floater.string name="anonymous">
匿名ユーザー
diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml
index 00742aef23..092b564455 100644
--- a/indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_characters.xml
@@ -32,7 +32,7 @@
<scroll_list.columns label="名前" name="name"/>
<scroll_list.columns label="説明" name="description"/>
<scroll_list.columns label="所有者" name="owner"/>
- <scroll_list.columns label="CPU" name="cpu_time"/>
+ <scroll_list.columns label="CPU" name="cpu_time"/>
<scroll_list.columns label="高度" name="altitude"/>
</scroll_list>
<text name="messaging_status">
diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml
index 218fade27b..72d9f4b44a 100644
--- a/indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_console.xml
@@ -89,17 +89,17 @@
</text>
<combo_box name="show_heatmap_mode">
<combo_box.item label="表示しない" name="show_heatmap_mode_none"/>
- <combo_box.item label="キャラクタータイプA" name="show_heatmap_mode_a"/>
- <combo_box.item label="キャラクタータイプB" name="show_heatmap_mode_b"/>
- <combo_box.item label="キャラクタータイプC" name="show_heatmap_mode_c"/>
- <combo_box.item label="キャラクタータイプD" name="show_heatmap_mode_d"/>
+ <combo_box.item label="キャラクタータイプA" name="show_heatmap_mode_a"/>
+ <combo_box.item label="キャラクタータイプB" name="show_heatmap_mode_b"/>
+ <combo_box.item label="キャラクタータイプC" name="show_heatmap_mode_c"/>
+ <combo_box.item label="キャラクタータイプD" name="show_heatmap_mode_d"/>
</combo_box>
<check_box label="歩行可能" name="show_walkables"/>
<check_box label="素材ボリューム" name="show_material_volumes"/>
<check_box label="静的障害物" name="show_static_obstacles"/>
<check_box label="除外ボリューム" name="show_exclusion_volumes"/>
<check_box label="水上飛行機" name="show_water_plane"/>
- <check_box label="X線表示" name="show_xray"/>
+ <check_box label="X線表示" name="show_xray"/>
</panel>
<panel label="パスをテスト" name="test_panel">
<text name="ctrl_click_label">
@@ -113,17 +113,17 @@
</text>
<slider name="character_width" value="1"/>
<text name="character_width_unit_label">
- m
+ m
</text>
<text name="character_type_label">
キャラクタータイプ
</text>
<combo_box name="path_character_type">
<combo_box.item label="なし" name="path_character_type_none"/>
- <combo_box.item label="A" name="path_character_type_a"/>
- <combo_box.item label="B" name="path_character_type_b"/>
- <combo_box.item label="C" name="path_character_type_c"/>
- <combo_box.item label="D" name="path_character_type_d"/>
+ <combo_box.item label="A" name="path_character_type_a"/>
+ <combo_box.item label="B" name="path_character_type_b"/>
+ <combo_box.item label="C" name="path_character_type_c"/>
+ <combo_box.item label="D" name="path_character_type_d"/>
</combo_box>
<button label="経路をクリア" name="clear_path"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
index 0189cbd47b..0bf9b6a308 100644
--- a/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pathfinding_linksets.xml
@@ -119,10 +119,10 @@
<scroll_list.columns label="ランドインパクト" name="land_impact"/>
<scroll_list.columns label="距離" name="dist_from_you"/>
<scroll_list.columns label="経路探索で使用" name="linkset_use"/>
- <scroll_list.columns label="A%" name="a_percent"/>
- <scroll_list.columns label="B%" name="b_percent"/>
- <scroll_list.columns label="C%" name="c_percent"/>
- <scroll_list.columns label="D%" name="d_percent"/>
+ <scroll_list.columns label="A %" name="a_percent"/>
+ <scroll_list.columns label="B %" name="b_percent"/>
+ <scroll_list.columns label="C %" name="c_percent"/>
+ <scroll_list.columns label="D %" name="d_percent"/>
</scroll_list>
<text name="messaging_status">
リンクセット:
@@ -150,21 +150,21 @@
歩行可能性:
</text>
<text name="edit_a_label">
- A
+ A
</text>
- <line_editor name="edit_a_value" tool_tip="タイプAのキャラクターの歩行可能性。キャラクタータイプの例はヒューマノイドです。"/>
+ <line_editor name="edit_a_value" tool_tip="タイプAのキャラクターの歩行可能性。キャラクタータイプの例はヒューマノイドです。"/>
<text name="edit_b_label">
- B
+ B
</text>
- <line_editor name="edit_b_value" tool_tip="タイプBのキャラクターの歩行可能性。キャラクタータイプの例はクリーチャーです。"/>
+ <line_editor name="edit_b_value" tool_tip="タイプBのキャラクターの歩行可能性。キャラクタータイプの例はクリーチャーです。"/>
<text name="edit_c_label">
- C
+ C
</text>
- <line_editor name="edit_c_value" tool_tip="タイプCのキャラクターの歩行可能性。キャラクタータイプの例はメカニカルです。"/>
+ <line_editor name="edit_c_value" tool_tip="タイプCのキャラクターの歩行可能性。キャラクタータイプの例はメカニカルです。"/>
<text name="edit_d_label">
- D
+ D
</text>
- <line_editor name="edit_d_value" tool_tip="タイプDのキャラクターの歩行可能性。キャラクタータイプの例はその他です。"/>
+ <line_editor name="edit_d_value" tool_tip="タイプDのキャラクターの歩行可能性。キャラクタータイプの例はその他です。"/>
<button label="変更を適用" name="apply_edit_values"/>
<text name="suggested_use_a_label">
(ヒューマノイド)
diff --git a/indra/newview/skins/default/xui/ja/floater_performance.xml b/indra/newview/skins/default/xui/ja/floater_performance.xml
index e2efc152a4..ecb00dd58c 100644
--- a/indra/newview/skins/default/xui/ja/floater_performance.xml
+++ b/indra/newview/skins/default/xui/ja/floater_performance.xml
@@ -39,7 +39,7 @@
</panel>
<panel name="nearby_subpanel">
<text name="avatars_nearby_lbl">
- 近隣のアバター
+ 近くのアバター
</text>
<text name="avatars_nearby_desc">
近くにいるアバターのうち、どのタイプのアバターを完全に表示するかを管理します。
@@ -51,16 +51,16 @@
アバターの複雑度
</text>
<text name="complexity_info">
- FPSが出ない場合は、アバターの複雑度を減らしてください。
+ FPSが出ない場合は、アバターの複雑度を減らしてください。
</text>
<icon name="icon_arrow4"/>
</panel>
<panel name="huds_subpanel">
<text name="huds_lbl">
- アクティブなHUD
+ アクティブなHUD
</text>
<text name="huds_desc">
- 使用していないHUDを外すと、速度が向上する可能性があります。
+ 使用していないHUDを外すと、速度が向上する可能性があります。
</text>
<icon name="icon_arrow4"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_preferences.xml b/indra/newview/skins/default/xui/ja/floater_preferences.xml
index c26bad3176..f75026c6a6 100644
--- a/indra/newview/skins/default/xui/ja/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preferences.xml
@@ -15,7 +15,7 @@
<panel label="色" name="colors"/>
<panel label="プライバシー" name="im"/>
<panel label="セットアップ" name="input"/>
- <panel label="拡張" name="advanced1"/>
+ <panel label="アドバンス" name="advanced1"/>
<panel label="アップロード" name="uploads"/>
<panel label="操作" name="controls"/>
</tab_container>
diff --git a/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml
index 66a416f416..9a2ed64291 100644
--- a/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preferences_graphics_advanced.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="prefs_graphics_advanced" title="拡張グラフィック設定">
+<floater name="prefs_graphics_advanced" title="グラフィック詳細設定">
<text name="GeneralText">
全般
</text>
<slider label="描画距離:" name="DrawDistance"/>
<text name="DrawDistanceMeterText2">
- m
+ m
</text>
<slider label="最大パーティクル数:" name="MaxParticleCount"/>
<slider label="ポストプロセス品質:" name="RenderPostProcess"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_preferences_view_advanced.xml b/indra/newview/skins/default/xui/ja/floater_preferences_view_advanced.xml
index 5efbbf7e17..5f686e41e4 100644
--- a/indra/newview/skins/default/xui/ja/floater_preferences_view_advanced.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preferences_view_advanced.xml
@@ -4,14 +4,14 @@
カメラのオフセット:
</text>
<spinner name="camera_x"/>
- <spinner label="Y" name="camera_y"/>
- <spinner label="Z" name="camera_z"/>
+ <spinner label="Y" name="camera_y"/>
+ <spinner label="Z" name="camera_z"/>
<text name="focus_offset_lbl">
焦点のオフセット:
</text>
<spinner name="focus_x"/>
- <spinner label="Y" name="focus_y"/>
- <spinner label="Z" name="focus_z"/>
+ <spinner label="Y" name="focus_y"/>
+ <spinner label="Z" name="focus_z"/>
<text name="offset_scale_lbl">
カメラのオフセット倍率:
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml
index 43d5223ecc..b43d54001c 100644
--- a/indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml
+++ b/indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml
@@ -4,7 +4,7 @@
<container_view name="statistics_view">
<stat_view name="basic" label="基本">
<stat_bar label="フレームごとのピクセル差" name="frame difference" unit_label="%"/>
- <stat_bar label="UDPデータの受信量" name="bandwidth" unit_label="kbps"/>
+ <stat_bar label="UDPデータの受信量" name="bandwidth" unit_label="kbps"/>
<stat_bar label="パケットロス" name="packet_loss" unit_label="%"/>
</stat_view>
<stat_view name="advanced" label="拡張">
@@ -57,15 +57,15 @@
<stat_bar name="simsimphysicsshapeupdatemsec" label=" 物理形状更新" unit_label="㎳"/>
<stat_bar name="simsimphysicsothermsec" label=" 他の物理作用" unit_label="㎳"/>
<stat_bar name="simsleepmsec" label=" スリープ時間" unit_label="㎳"/>
- <stat_bar name="simpumpiomsec" label=" ポンプI/O" unit_label="㎳"/>
+ <stat_bar name="simpumpiomsec" label=" ポンプIO" unit_label="㎳"/>
</stat_view>
</stat_view>
</stat_view>
<stat_view name="frame_stats" label="フレームの内訳">
<stat_bar name="scenery_frame_pct" label="景色" unit_label="%"/>
<stat_bar name="avatar_frame_pct" label="アバター" unit_label="%"/>
- <stat_bar name="ui_frame_pct" label="UI" unit_label="%"/>
- <stat_bar name="huds_frame_pct" label="HUD" unit_label="%"/>
+ <stat_bar name="ui_frame_pct" label="UI" unit_label="%"/>
+ <stat_bar name="huds_frame_pct" label="HUD" unit_label="%"/>
<stat_bar name="swap_frame_pct" label="スワップ" unit_label="%"/>
<stat_bar name="idle_frame_pct" label="タスク" unit_label="%"/>
</stat_view>
diff --git a/indra/newview/skins/default/xui/ja/floater_settings_debug.xml b/indra/newview/skins/default/xui/ja/floater_settings_debug.xml
index f304ab9769..ef1947dbce 100644
--- a/indra/newview/skins/default/xui/ja/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/ja/floater_settings_debug.xml
@@ -16,10 +16,10 @@
</radio_group>
<line_editor name="val_text"/>
<color_swatch label="色" name="val_color_swatch"/>
- <spinner label="X" name="val_spinner_1"/>
- <spinner label="X" name="val_spinner_2"/>
- <spinner label="X" name="val_spinner_3"/>
- <spinner label="X" name="val_spinner_4"/>
+ <spinner label="x" name="val_spinner_1"/>
+ <spinner label="x" name="val_spinner_2"/>
+ <spinner label="x" name="val_spinner_3"/>
+ <spinner label="x" name="val_spinner_4"/>
<button label="デフォルトにリセット" name="default_btn"/>
<check_box label="変更された設定のみ表示" name="hide_default"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index 8035e8a13f..be9c52fb12 100644
--- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
@@ -49,7 +49,7 @@
<combo_box.item label="色深度" name="Depth" value="depth"/>
</combo_box>
<check_box label="インターフェース" name="ui_check"/>
- <check_box label="HUD" name="hud_check"/>
+ <check_box label="HUD" name="hud_check"/>
<check_box label="フレームをフリーズ(全画面)" name="freeze_frame_check"/>
<check_box label="自動リフレッシュ" name="auto_snapshot_check"/>
<text name="filter_list_label">
@@ -93,6 +93,6 @@
[SIZE]㎅
</text>
<text name="360_label">
- 360度Sショットを撮影
+ 360度スナップショットを撮影
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_stats.xml b/indra/newview/skins/default/xui/ja/floater_stats.xml
index 0c28b47351..41a482a4b9 100644
--- a/indra/newview/skins/default/xui/ja/floater_stats.xml
+++ b/indra/newview/skins/default/xui/ja/floater_stats.xml
@@ -3,15 +3,15 @@
<scroll_container name="statistics_scroll">
<container_view name="statistics_view">
<stat_view label="基本" name="basic">
- <stat_bar label="FPS" name="fps" unit_label="/秒"/>
+ <stat_bar label="FPS" name="fps" unit_label="/秒"/>
<stat_bar name="frame_mean" label="フレーム(平均)" unit_label="㎳"/>
<stat_bar name="frame_median" label="フレーム(中央値)" unit_label="㎳"/>
<stat_bar name="framet_jitter" label="ジッタ"/>
- <stat_bar label="受信したUDPデータ" name="bandwidth"/>
+ <stat_bar label="受信したUDPデータ" name="bandwidth"/>
<stat_bar label="パケットロス" name="packet_loss"/>
<stat_bar label="シムのPing" name="ping"/>
</stat_view>
- <stat_view label="拡張" name="advanced">
+ <stat_view label="詳細" name="advanced">
<stat_view label="描画" name="render">
<stat_bar label="フレームあたりのKTris" name="ktrisframe" unit_label="ktris/フレーム"/>
<stat_bar label="秒あたりのKTris" name="ktrissec"/>
@@ -27,15 +27,15 @@
<stat_bar label="キャッシュヒット率" name="texture_cache_hits"/>
<stat_bar label="キャッシュ読み取り遅延" name="texture_cache_read_latency"/>
<stat_bar label="カウント" name="numimagesstat"/>
- <stat_bar label="RAWカウント" name="numrawimagesstat"/>
- <stat_bar label="GLメモリ" name="gltexmemstat"/>
+ <stat_bar label="Rawカウント" name="numrawimagesstat"/>
+ <stat_bar label="GLメモリ" name="gltexmemstat"/>
<stat_bar label="フォーマット済メモリ" name="formattedmemstat"/>
- <stat_bar label="RAWメモリ" name="rawmemstat"/>
+ <stat_bar label="Rawメモリ" name="rawmemstat"/>
<stat_bar label="統合メモリ" name="glboundmemstat"/>
</stat_view>
<stat_view label="メモリ使用量" name="memory">
- <stat_bar label="LLトレース" name="LLTrace"/>
- <stat_bar label="UI" name="LLView"/>
+ <stat_bar label="LLトレース" name="LLTrace"/>
+ <stat_bar label="UI" name="LLView"/>
<stat_bar label="フォント" name="LLFontFreetype"/>
<stat_bar label="インベントリ" name="LLInventoryObject"/>
<stat_bar label="ビューアオブジェクト" name="LLViewerObject"/>
@@ -47,7 +47,7 @@
<stat_bar label="描画情報" name="LLDrawInfo"/>
<stat_bar label="テクスチャデータ" name="LLTexture"/>
<stat_bar label="画像データ" name="LLImage"/>
- <stat_bar label="GL画像データ" name="LLImageGL"/>
+ <stat_bar label="GL画像データ" name="LLImageGL"/>
<stat_bar label="頂点バッファ" name="LLVertexBuffer"/>
</stat_view>
<stat_view label="ネットワーク" name="network">
@@ -63,11 +63,11 @@
</stat_view>
<stat_view label="シミュレーター" name="sim">
<stat_bar label="遅延時間" name="simtimedilation"/>
- <stat_bar label="シムのFPS" name="simfps"/>
- <stat_bar label="物理作用のFPS" name="simphysicsfps"/>
+ <stat_bar label="シムのFPS" name="simfps"/>
+ <stat_bar label="物理作用のFPS" name="simphysicsfps"/>
<stat_view label="物理作用の詳細" name="physicsdetail">
<stat_bar label="ピン留めオブジェクト" name="physicspinnedtasks"/>
- <stat_bar label="低LODオブジェクト" name="physicslodtasks"/>
+ <stat_bar label="低LODオブジェクト" name="physicslodtasks"/>
<stat_bar label="メモリ配分" name="physicsmemoryallocated"/>
</stat_view>
<stat_bar label="エージェントの更新/秒" name="simagentups"/>
@@ -79,7 +79,7 @@
<stat_bar label="スクリプト実行" name="simpctscriptsrun"/>
<stat_bar label="スクリプトイベント" name="simscripteps" unit_label="eps"/>
<stat_view label="経路探索" name="simpathfinding">
- <stat_bar label="AIステップ時間" name="simsimaistepmsec"/>
+ <stat_bar label="AIステップ時間" name="simsimaistepmsec"/>
<stat_bar label="スキップされたシルエットステップ" name="simsimskippedsilhouettesteps" unit_label="/秒"/>
<stat_bar label="更新されたキャラクター" name="simsimpctsteppedcharacters" unit_label="%"/>
</stat_view>
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index fb95a71ce0..f14d8f7241 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -40,7 +40,7 @@
土地をクリックし、ドラッグして選択
</floater.string>
<floater.string name="status_selectcount">
- 選択されているオブジェクトは[OBJ_COUNT]個、土地の負荷は[LAND_IMPACT] [secondlife:///app/openfloater/object_weights 詳細]
+ 選択されているオブジェクトは[OBJ_COUNT]個、土地の負荷は[LAND_IMPACT] [secondlife:///app/openfloater/object_weights 詳細]
</floater.string>
<floater.string name="status_remaining_capacity">
残りの許容数[LAND_CAPACITY]
@@ -123,7 +123,7 @@
何も選択されていません。
</text>
<text name="remaining_capacity">
- [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights 詳細]
+ [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights 詳細]
</text>
<tab_container name="Object Info Tabs">
<panel label="一般" name="General">
@@ -232,22 +232,22 @@
<check_box label="コピー" name="checkbox next owner can copy" tool_tip="譲渡先の所有者は、このオブジェクトを無制限にコピーできます。コピーには制作者の情報が含まれ、コピー元のアイテムと違って許可などに関し制約があります。"/>
<check_box label="再販・譲渡" name="checkbox next owner can transfer" tool_tip="譲渡先の所有者は、このオブジェクトを他人に譲渡したり再販することができます。"/>
<text name="B:">
- B:
+ B:
</text>
<text name="O:">
- C:
+ O:
</text>
<text name="G:">
- G:
+ G:
</text>
<text name="E:">
- E:
+ E:
</text>
<text name="N:">
- N:
+ N:
</text>
<text name="F:">
- F:
+ F:
</text>
</panel>
<panel name="pathfinding_attrs_panel">
@@ -264,21 +264,21 @@
<text name="label position">
位置(メートル)
</text>
- <spinner label="X" name="Pos X"/>
- <spinner label="Y" name="Pos Y"/>
- <spinner label="Z" name="Pos Z"/>
+ <spinner label="X" name="Pos X"/>
+ <spinner label="Y" name="Pos Y"/>
+ <spinner label="Z" name="Pos Z"/>
<text name="label size">
サイズ(メートル)
</text>
- <spinner label="X" name="Scale X"/>
- <spinner label="Y" name="Scale Y"/>
- <spinner label="Z" name="Scale Z"/>
+ <spinner label="X" name="Scale X"/>
+ <spinner label="Y" name="Scale Y"/>
+ <spinner label="Z" name="Scale Z"/>
<text name="label rotation">
回転(度)
</text>
- <spinner label="X" name="Rot X"/>
- <spinner label="Y" name="Rot Y"/>
- <spinner label="Z" name="Rot Z"/>
+ <spinner label="X" name="Rot X"/>
+ <spinner label="Y" name="Rot Y"/>
+ <spinner label="Z" name="Rot Z"/>
<combo_box name="comboBaseType">
<combo_box.item label="ボックス" name="Box"/>
<combo_box.item label="シリンダー" name="Cylinder"/>
@@ -320,13 +320,13 @@
<text name="scale_hole">
穴寸法
</text>
- <spinner label="X" name="Taper Scale X"/>
- <spinner label="Y" name="Taper Scale Y"/>
+ <spinner label="X" name="Taper Scale X"/>
+ <spinner label="Y" name="Taper Scale Y"/>
<text name="text topshear">
上部層
</text>
- <spinner label="X" name="Shear X"/>
- <spinner label="Y" name="Shear Y"/>
+ <spinner label="X" name="Shear X"/>
+ <spinner label="Y" name="Shear Y"/>
<text name="advanced_cut">
プロフィールカット(始点と終点)
</text>
@@ -341,8 +341,8 @@
<text name="text taper2">
テーパー
</text>
- <spinner label="X" name="Taper X"/>
- <spinner label="Y" name="Taper Y"/>
+ <spinner label="X" name="Taper X"/>
+ <spinner label="Y" name="Taper Y"/>
<text name="text radius delta">
半径
</text>
@@ -350,7 +350,7 @@
回転体
</text>
<texture_picker label="スカルプトテクスチャ" name="sculpt texture control" tool_tip="クリックして画像を選択してください。"/>
- <check_box label="ミラー" name="sculpt mirror control" tool_tip="スカルプトプリムをX軸上で反転させます"/>
+ <check_box label="ミラー" name="sculpt mirror control" tool_tip="スカルプトプリムをX軸上で反転させます"/>
<check_box label="裏返し" name="sculpt invert control" tool_tip="スカルプトプリムを反転させて裏返します"/>
<text name="label sculpt type">
縫い目のタイプ
@@ -379,20 +379,20 @@
オブジェクトの特徴を編集:
</text>
<check_box label="アニメーションメッシュ" name="Animated Mesh Checkbox Ctrl" tool_tip="リグ入りメッシュオブジェクトを、それぞれアニメーションさせることができるようになります。"/>
- <check_box label="フレキシブルパス" name="Flexible1D Checkbox Ctrl" tool_tip="Z軸を中心に、オブジェクトの屈曲を有効にします。(クライアント側のみ)"/>
+ <check_box label="フレキシブルパス" name="Flexible1D Checkbox Ctrl" tool_tip="Z軸を中心に、オブジェクトの屈曲を有効にします。(クライアント側のみ)"/>
<spinner label="柔軟性" name="FlexNumSections"/>
<spinner label="重力" name="FlexGravity"/>
<spinner label="ドラッグ" name="FlexFriction"/>
<spinner label="風" name="FlexWind"/>
<spinner label="緊張" name="FlexTension"/>
- <spinner label="X軸方向の力" name="FlexForceX"/>
- <spinner label="Y軸方向の力" name="FlexForceY"/>
- <spinner label="Z軸方向の力" name="FlexForceZ"/>
+ <spinner label="X軸方向の力" name="FlexForceX"/>
+ <spinner label="Y軸方向の力" name="FlexForceY"/>
+ <spinner label="Z軸方向の力" name="FlexForceZ"/>
<check_box label="発光" name="Light Checkbox Ctrl" tool_tip="オブジェクトが発光します"/>
<color_swatch label="" name="colorswatch" tool_tip="クリックしてカラーピッカーを開きます"/>
<texture_picker label="" name="light texture control" tool_tip="クリックで投影画を選択します(遅延レンダリング有効時のみ)"/>
<spinner label="輝度" name="Light Intensity"/>
- <spinner label="FOV" name="Light FOV"/>
+ <spinner label="FOV" name="Light FOV"/>
<spinner label="半径" name="Light Radius"/>
<spinner label="焦点" name="Light Focus"/>
<spinner label="弱まる" name="Light Falloff"/>
@@ -412,7 +412,7 @@
</combo_box>
<spinner label="重力" name="Physics Gravity"/>
<spinner label="摩擦" name="Physics Friction"/>
- <spinner label="密度(100㎏/㎥)" name="Physics Density"/>
+ <spinner label="密度(100㎏/㎥)" name="Physics Density"/>
<spinner label="復元" name="Physics Restitution"/>
</panel>
<panel label="材質" name="Texture"/>
@@ -426,13 +426,13 @@
区画情報
</text>
<text name="label_area_price">
- 価格:[AREA]㎡ L$ [PRICE]
+ 価格:[AREA]㎡ L$ [PRICE]
</text>
<text name="label_area">
面積:[AREA]㎡
</text>
<button label="土地情報" label_selected="土地情報" name="button about land"/>
- <check_box label="所有者を表示" name="checkbox show owners" tool_tip="所有者の種類別に区画を色づけます:緑色=あなたの土地 水色=あなたのグループ所有地 赤色=他人が所有する土地 黄色 = 売り出し中 紫色=オークション 灰色=公共領域"/>
+ <check_box label="所有者を表示" name="checkbox show owners" tool_tip="所有者の種類別に区画を色づけます:&#10;&#10;緑色=あなたの土地 &#10;水色=あなたのグループ所有地 &#10;赤色=他人が所有する土地 &#10;黄色 = 売り出し中 &#10;紫色=オークション &#10;灰色=公共領域"/>
<text name="label_parcel_modify">
区画の編集
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_top_objects.xml b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
index 86ab64cb3e..69d527a087 100644
--- a/indra/newview/skins/default/xui/ja/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
@@ -22,7 +22,7 @@
何も見つかりませんでした。
</floater.string>
<floater.string name="URLs">
- URL
+ URL
</floater.string>
<floater.string name="memory">
メモリ(㎅)
@@ -41,7 +41,7 @@
<scroll_list.columns label="メモリ(㎅)" name="memory"/>
</scroll_list>
<text name="id_text">
- 物体ID:
+ 物体ID:
</text>
<button label="標識を表示" name="show_beacon_btn"/>
<text name="obj_name_text">
diff --git a/indra/newview/skins/default/xui/ja/floater_translation_settings.xml b/indra/newview/skins/default/xui/ja/floater_translation_settings.xml
index 8bbcbcdfed..dbe5c3007a 100644
--- a/indra/newview/skins/default/xui/ja/floater_translation_settings.xml
+++ b/indra/newview/skins/default/xui/ja/floater_translation_settings.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_translation_settings" title="チャットの翻訳設定">
<string name="azure_api_key_not_verified">
- Azureサービス識別子の認証ができませんでした。ステータス:[STATUS] 設定をお確かめの上、もう一度やり直してください。
+ Azureサービス識別子の認証ができませんでした。ステータス:[STATUS] 設定をお確かめの上、もう一度やり直してください。
</string>
<string name="google_api_key_not_verified">
- Google APIキーの認証ができませんでした。ステータス:[STATUS] 設定をお確かめの上、もう一度やり直してください。
+ Google APIキーの認証ができませんでした。ステータス:[STATUS] 設定をお確かめの上、もう一度やり直してください。
</string>
<string name="deepl_api_key_not_verified">
- DeepL Authキーの認証ができませんでした。ステータス:[STATUS] 設定をお確かめの上、もう一度やり直してください。
+ DeepL Authキーの認証ができませんでした。ステータス:[STATUS] 設定をお確かめの上、もう一度やり直してください。
</string>
<string name="azure_api_key_verified">
Azureサービス識別子が認証されました。
diff --git a/indra/newview/skins/default/xui/ja/floater_ui_preview.xml b/indra/newview/skins/default/xui/ja/floater_ui_preview.xml
index b907b4e8d7..c3d70e7055 100644
--- a/indra/newview/skins/default/xui/ja/floater_ui_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_ui_preview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="gui_preview_tool" title="XUIプレビューツール">
+<floater name="gui_preview_tool" title="XUIプレビューツール">
<string name="ExternalEditorNotSet">
環境変数LL_XUI_EDITORまたはExternalEditor設定を設定するか、[EDITOR PATH]フィールドにそのパスを指定して、エディターを選択します。
</string>
@@ -10,11 +10,11 @@
<combo_box name="language_select_combo">
<combo_box.item label="ja" name="item1" value="ja"/>
</combo_box>
- <button label="表示" label_selected="表示" name="display_floater" tool_tip="選択したXMLファイルで定義されたXUIフロータを表示します。"/>
+ <button label="表示" label_selected="表示" name="display_floater" tool_tip="選択したXMLファイルで定義されたXUIフロータを表示します。"/>
<button label="非表示" label_selected="非表示" name="close_displayed_floater" tool_tip="現在表示されているフローターが存在する場合は、それを閉じます。"/>
- <button label="編集…" label_selected="編集…" name="edit_floater" tool_tip="選択したXMLファイルによって定義されたXUIフローターを編集します。(外部エディターを開きます)ローカライズされたバージョンが存在しない場合は、enバージョンを開きます。"/>
- <button label="保存" label_selected="保存" name="save_floater" tool_tip="選択したXMLファイルで定義されたXUIフロータを保存します。"/>
- <button label="全て保存" label_selected="全て保存" name="save_all_floaters" tool_tip="選択した言語で定義されたすべてのXUIフロータを保存します。"/>
+ <button label="編集…" label_selected="編集…" name="edit_floater" tool_tip="選択したXMLファイルによって定義されたXUIフローターを編集します。(外部エディターを開きます)ローカライズされたバージョンが存在しない場合は、enバージョンを開きます。"/>
+ <button label="保存" label_selected="保存" name="save_floater" tool_tip="選択したXMLファイルで定義されたXUIフロータを保存します。"/>
+ <button label="全て保存" label_selected="全て保存" name="save_all_floaters" tool_tip="選択した言語で定義されたすべてのXUIフロータを保存します。"/>
<button label="≫" label_selected="≪" name="toggle_overlap_panel" tool_tip="重なっている要素の強調表示と表示パネルを切り替えます。要素を右クリックして、この機能用に選択します。選択した要素は、赤い四角形でマークされます。"/>
<text name="select_language_label_2">
二次言語:
@@ -22,7 +22,7 @@
<combo_box name="language_select_combo_2">
<combo_box.item label="en" name="item1" value="en"/>
</combo_box>
- <button label="表示" name="display_floater_2" tool_tip="選択したXMLファイルで定義されたXUIフロータを表示します。"/>
+ <button label="表示" name="display_floater_2" tool_tip="選択したXMLファイルで定義されたXUIフロータを表示します。"/>
<button enabled="false" label="非表示" name="close_displayed_floater_2" tool_tip="現在表示されているフローターが存在する場合は、それを閉じます。"/>
<button label="スキーマをエクスポート" name="export_schema"/>
<check_box label="四角形を表示" name="show_rectangles"/>
@@ -35,8 +35,8 @@
<text name="editor_path_label">
エディタのパス:
</text>
- <line_editor name="executable_path_field" tool_tip="フローターXMLファイルを編集するためのエディター(実行可能ファイル)へのフルパス。(引用符は必要ありません)"/>
- <button follows="left|bottom" label="ブラウズ…" label_selected="ブラウズ…" name="browse_for_executable" tool_tip="フローターXMLファイルを編集するためのエディター(実行可能ファイル)を参照します。"/>
+ <line_editor name="executable_path_field" tool_tip="フローターXMLファイルを編集するためのエディター(実行可能ファイル)へのフルパス。(引用符は必要ありません)"/>
+ <button follows="left|bottom" label="ブラウズ…" label_selected="ブラウズ…" name="browse_for_executable" tool_tip="フローターXMLファイルを編集するためのエディター(実行可能ファイル)を参照します。"/>
<text name="executable_args_label">
エディタの引数:
</text>
@@ -46,7 +46,7 @@
<text name="diff_file_label">
差分ファイル:
</text>
- <line_editor name="vlt_diff_path_field" tool_tip="Viewer Localization Toolkitによって生成されたXMLのD0、D1言語差分ファイルへのフルパス"/>
+ <line_editor name="vlt_diff_path_field" tool_tip="Viewer Localization Toolkitによって生成されたXMLのD0、D1言語差分ファイルへのフルパス"/>
<button label="ブラウズ…" label_selected="ブラウズ…" name="browse_for_vlt_diffs" tool_tip="VLTで生成されたD0、D1差分ファイルを参照して、変更されたファイルと要素を強調表示します。"/>
<button label="差分をハイライト" label_selected="ハイライトを解除" name="toggle_vlt_diff_highlight" tool_tip="変更された言語データを含むファイルと要素の強調表示を切り替えます。"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_url_entry.xml b/indra/newview/skins/default/xui/ja/floater_url_entry.xml
index 3ff50854a5..534e0156c5 100644
--- a/indra/newview/skins/default/xui/ja/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/ja/floater_url_entry.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="url_entry">
<text name="media_label">
- メディアURL:
+ メディアURL:
</text>
<combo_box name="media_entry"/>
<button label="OK" name="ok_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
index be59547bf3..fd8e75da87 100644
--- a/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="whitelist_entry" title="ホワイトリストの入力">
<text name="media_label">
- URLかURLパターンを入力して、許可するドメインをリストに追加します。
+ URLかURLパターンを入力して、許可するドメインをリストに追加します。
</text>
- <line_editor name="whitelist_entry" tool_tip="URLかURLパターンをホワイトリストに入力します。"/>
+ <line_editor name="whitelist_entry" tool_tip="URLかURLパターンをホワイトリストに入力します。"/>
<button label="OK" name="ok_btn"/>
<button label="キャンセル" name="cancel_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
index 284449d59d..87f469f91d 100644
--- a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
@@ -2,7 +2,7 @@
<context_menu name="Avatar Pie">
<menu_item_call label="プロフィールを見る" name="Profile..."/>
<menu_item_call label="フレンドに追加" name="Add Friend"/>
- <menu_item_call label="IM" name="Send IM..."/>
+ <menu_item_call label="IM" name="Send IM..."/>
<menu_item_call label="コール" name="Call"/>
<menu_item_call label="グループに招待…" name="Invite..."/>
<menu_item_separator/>
@@ -14,7 +14,7 @@
<menu_item_call label="フリーズ" name="Freeze..."/>
<menu_item_call label="追放" name="Eject..."/>
<menu_item_call label="テクスチャのデバッグ" name="Debug..."/>
- <menu_item_call label="XMLとしてダンプ" name="Dump XML"/>
+ <menu_item_call label="XMLとしてダンプ" name="Dump XML"/>
<menu_item_call label="ズームイン" name="Zoom In"/>
<menu_item_call label="支払う" name="Pay..."/>
<menu_item_separator/>
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
index a7989b35c8..0a022d16a1 100644
--- a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
@@ -2,7 +2,7 @@
<context_menu name="Avatar Pie">
<menu_item_call label="プロフィールを見る" name="Profile..."/>
<menu_item_call label="フレンドに追加" name="Add Friend"/>
- <menu_item_call label="IM" name="Send IM..."/>
+ <menu_item_call label="IM" name="Send IM..."/>
<menu_item_call label="コール" name="Call"/>
<menu_item_call label="グループへ招待" name="Invite..."/>
<menu_item_separator/>
@@ -14,7 +14,7 @@
<menu_item_call label="フリーズ" name="Freeze..."/>
<menu_item_call label="追放" name="Eject..."/>
<menu_item_call label="テクスチャのデバッグ" name="Debug..."/>
- <menu_item_call label="XMLとしてダンプ" name="Dump XML"/>
+ <menu_item_call label="XMLとしてダンプ" name="Dump XML"/>
<menu_item_call label="ズームイン" name="Zoom In"/>
<menu_item_call label="支払う" name="Pay..."/>
<menu_item_separator/>
diff --git a/indra/newview/skins/default/xui/ja/menu_conversation.xml b/indra/newview/skins/default/xui/ja/menu_conversation.xml
index 047f5d57cf..163feb5b56 100644
--- a/indra/newview/skins/default/xui/ja/menu_conversation.xml
+++ b/indra/newview/skins/default/xui/ja/menu_conversation.xml
@@ -5,7 +5,7 @@
<menu_item_call label="ボイスチャットを切断する" name="disconnect_from_voice"/>
<menu_item_call label="選択した項目を閉じる" name="close_selected_conversations"/>
<menu_item_call label="プロフィールを表示" name="view_profile"/>
- <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="IM" name="im"/>
<menu_item_call label="テレポートのオファー" name="offer_teleport"/>
<menu_item_call label="ボイスコール" name="voice_call"/>
<menu_item_call label="チャットの履歴…" name="chat_history"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml b/indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml
index 78c46d13b4..438b0c304b 100644
--- a/indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_conversation_log_gear.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Conversation Context Menu">
- <menu_item_call label="IM…" name="IM"/>
+ <menu_item_call label="IM..." name="IM"/>
<menu_item_call label="ボイスコール…" name="Call"/>
<menu_item_call label="チャットの履歴を開く…" name="Chat history"/>
<menu_item_call label="プロフィールを表示" name="View Profile"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml b/indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml
index bcda112d2f..2012eb88cc 100644
--- a/indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml
+++ b/indra/newview/skins/default/xui/ja/menu_conversation_log_view.xml
@@ -3,5 +3,5 @@
<menu_item_check label="名前で並べ替え" name="sort_by_name"/>
<menu_item_check label="日付で並べ替え" name="sort_by_date"/>
<menu_item_check label="上位のフレンドを並べ替え" name="sort_by_friends"/>
- <menu_item_call label="近隣チャットの履歴を表示…" name="view_nearby_chat_history"/>
+ <menu_item_call label="チャット履歴を表示…" name="view_nearby_chat_history"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_gesture_gear.xml b/indra/newview/skins/default/xui/ja/menu_gesture_gear.xml
index e1f24cdb39..3a8fd36ceb 100644
--- a/indra/newview/skins/default/xui/ja/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_gesture_gear.xml
@@ -4,7 +4,7 @@
<menu_item_call label="名前変更" name="rename"/>
<menu_item_call label="コピー" name="copy_gesture"/>
<menu_item_call label="ペースト" name="paste"/>
- <menu_item_call label="UUIDをコピー" name="copy_uuid"/>
+ <menu_item_call label="UUIDをコピー" name="copy_uuid"/>
<menu_item_call label="現在のアウトフィットに保存" name="save_to_outfit"/>
<menu_item_call label="編集" name="edit_gesture"/>
<menu_item_call label="調べる" name="inspect"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index c7cba4845d..d602823fe4 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -82,7 +82,7 @@
<menu_item_call label="オリジナルを開く" name="Open Original"/>
<menu_item_call label="プロパティ" name="Properties"/>
<menu_item_call label="名前を変更" name="Rename"/>
- <menu_item_call label="アセットのUUIDをコピー" name="Copy Asset UUID"/>
+ <menu_item_call label="アセットのUUIDをコピー" name="Copy Asset UUID"/>
<menu_item_call label="メインパネルで表示" name="Show in Main Panel"/>
<menu_item_call label="カット" name="Cut"/>
<menu_item_call label="コピー" name="Copy"/>
@@ -113,7 +113,7 @@
<menu_item_separator name="Wearable And Object Separator"/>
<menu_item_call label="装着" name="Wearable And Object Wear"/>
<menu label="装着先" name="Attach To"/>
- <menu label="HUD 装着先" name="Attach To HUD"/>
+ <menu label="HUDの装着先" name="Attach To HUD"/>
<menu_item_call label="触る" name="Attachment Touch"/>
<menu_item_call label="編集" name="Wearable Edit"/>
<menu_item_call label="追加" name="Wearable Add"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_participant_list.xml b/indra/newview/skins/default/xui/ja/menu_participant_list.xml
index ebce5f7e6b..5756e3f8b5 100644
--- a/indra/newview/skins/default/xui/ja/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/ja/menu_participant_list.xml
@@ -4,7 +4,7 @@
<menu_item_check label="最近の発言者で並べ替え" name="SortByRecentSpeakers"/>
<menu_item_call label="プロフィールの表示" name="View Profile"/>
<menu_item_call label="フレンド登録" name="Add Friend"/>
- <menu_item_call label="IM" name="IM"/>
+ <menu_item_call label="IM" name="IM"/>
<menu_item_call label="コール" name="Call"/>
<menu_item_call label="共有" name="Share"/>
<menu_item_call label="支払う" name="Pay"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
index bbe842a37e..13c940abf4 100644
--- a/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
<menu_item_call label="プロフィールを表示" name="view_profile"/>
- <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="IM" name="im"/>
<menu_item_call label="テレポートを送る" name="offer_teleport"/>
<menu_item_call label="ボイスコール" name="voice_call"/>
<menu_item_call label="チャットの履歴を表示…" name="chat_history"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml
index 4e3dbd3279..e8b8f0f694 100644
--- a/indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_nearby_multiselect.xml
@@ -2,7 +2,7 @@
<context_menu name="Multi-Selected People Context Menu">
<menu_item_call label="フレンド登録" name="add_friends"/>
<menu_item_call label="フレンドを削除" name="remove_friends"/>
- <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="IM" name="im"/>
<menu_item_call label="コール" name="call"/>
<menu_item_call label="共有" name="share"/>
<menu_item_call label="支払い" name="pay"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_profile_other.xml b/indra/newview/skins/default/xui/ja/menu_profile_other.xml
index 0247a60803..9803735afc 100644
--- a/indra/newview/skins/default/xui/ja/menu_profile_other.xml
+++ b/indra/newview/skins/default/xui/ja/menu_profile_other.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Avatar Profile Menu">
- <menu_item_call label="IM" name="im"/>
+ <menu_item_call label="IM" name="im"/>
<menu_item_call label="テレポートのオファー" name="offer_teleport"/>
<menu_item_call label="テレポートのリクエスト" name="request_teleport"/>
<menu_item_call label="ボイスコール" name="voice_call"/>
@@ -19,5 +19,5 @@
<menu_item_separator name="separator_copy_options"/>
<menu_item_call label="表示名をコピー" name="copy_display_name"/>
<menu_item_call label="エージェント名をコピー" name="copy_name"/>
- <menu_item_call label="エージェントIDをコピー" name="copy_id"/>
+ <menu_item_call label="エージェントIDをコピー" name="copy_id"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_profile_self.xml b/indra/newview/skins/default/xui/ja/menu_profile_self.xml
index 7c9570378e..f39593e417 100644
--- a/indra/newview/skins/default/xui/ja/menu_profile_self.xml
+++ b/indra/newview/skins/default/xui/ja/menu_profile_self.xml
@@ -8,5 +8,5 @@
<menu_item_separator name="separator_copy_options"/>
<menu_item_call label="表示名をコピー" name="copy_display_name"/>
<menu_item_call label="エージェント名をコピー" name="copy_name"/>
- <menu_item_call label="エージェントIDをコピー" name="copy_id"/>
+ <menu_item_call label="エージェントIDをコピー" name="copy_id"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_settings_gear.xml b/indra/newview/skins/default/xui/ja/menu_settings_gear.xml
index a8ff0d3721..3f5d30073b 100644
--- a/indra/newview/skins/default/xui/ja/menu_settings_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_settings_gear.xml
@@ -6,5 +6,5 @@
<menu_item_call label="リージョン(地域)に適用" name="Settings Apply Region"/>
<menu_item_call label="コピー" name="copy_settings"/>
<menu_item_call label="ペースト" name="paste_settings"/>
- <menu_item_call label="UUIDをコピー" name="copy_uuid"/>
+ <menu_item_call label="UUIDをコピー" name="copy_uuid"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_slurl.xml b/indra/newview/skins/default/xui/ja/menu_slurl.xml
index 820cc3cd53..e68128e429 100644
--- a/indra/newview/skins/default/xui/ja/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/ja/menu_slurl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
- <menu_item_call label="URLについて" name="about_url"/>
- <menu_item_call label="URLにテレポートする" name="teleport_to_url"/>
+ <menu_item_call label="URLについて" name="about_url"/>
+ <menu_item_call label="URLにテレポートする" name="teleport_to_url"/>
<menu_item_call label="マップ" name="show_on_map"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_url_agent.xml b/indra/newview/skins/default/xui/ja/menu_url_agent.xml
index 9ce9a070f2..d06f4896b2 100644
--- a/indra/newview/skins/default/xui/ja/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_agent.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
<menu_item_call label="プロフィールを表示" name="show_agent"/>
- <menu_item_call label="IMを送信…" name="send_im"/>
+ <menu_item_call label="IMを送信…" name="send_im"/>
<menu_item_call label="フレンドを追加…" name="add_friend"/>
<menu_item_call label="フレンドを削除…" name="remove_friend"/>
<menu_item_call label="嫌がらせの報告" name="report_abuse"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_url_http.xml b/indra/newview/skins/default/xui/ja/menu_url_http.xml
index ae97e8bd8d..c3da8a8686 100644
--- a/indra/newview/skins/default/xui/ja/menu_url_http.xml
+++ b/indra/newview/skins/default/xui/ja/menu_url_http.xml
@@ -3,5 +3,5 @@
<menu_item_call label="Web ページを開く" name="url_open"/>
<menu_item_call label="内蔵ブラウザで開く" name="url_open_internal"/>
<menu_item_call label="外部ブラウザで開く" name="url_open_external"/>
- <menu_item_call label="URLをクリップボードにコピー" name="url_copy"/>
+ <menu_item_call label="URLをクリップボードにコピー" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index f6b10bb121..41df8fdbb1 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -17,7 +17,7 @@
<menu_item_call label="アカウントのダッシュボード…" name="Manage My Account"/>
<menu_item_call label="[Membership]" name="Membership"/>
<menu_item_separator/>
- <menu_item_call label="初期設定…" name="Preferences"/>
+ <menu_item_call label="環境設定…" name="Preferences"/>
<menu_item_call label="ツールバーのボタン…" name="Toolbars"/>
<menu_item_call label="全てのコントロールを隠す" name="Hide UI" shortcut="control|shift|U"/>
<menu_item_check label="HUDを表示" name="Show HUD Attachments" shortcut="alt|shift|H"/>
@@ -47,7 +47,7 @@
<menu_item_separator/>
<menu_item_call label="すべての服装" name="All Clothes"/>
</menu>
- <menu label="HUD" name="Avatar Detach HUD"/>
+ <menu label="HUD" name="Avatar Detach HUD"/>
<menu label="取り外す" name="Avatar Detach"/>
<menu_item_call label="全てを取り外す" name="Detach All"/>
</menu>
@@ -70,7 +70,7 @@
</menu>
<menu label="コミュニケーション" name="Communicate">
<menu_item_check label="会話…" name="Conversations"/>
- <menu_item_check label="近隣のチャット…" name="Nearby Chat"/>
+ <menu_item_check label="周辺チャット…" name="Nearby Chat"/>
<menu_item_check label="ボイスチャット" name="Speak"/>
<menu_item_check name="Conversation Log..." label="会話ログ…"/>
<menu_item_separator/>
@@ -95,7 +95,7 @@
<menu_item_call label="現在地をホームに設定" name="Set Home to Here"/>
<menu_item_separator/>
<menu_item_call label="スナップショット" name="Take Snapshot"/>
- <menu_item_call label="360度スナップショット" name="Capture 360"/>
+ <menu_item_call label="360度スナップショット" name="Capture 360"/>
<menu_item_separator/>
<menu_item_call label="場所のプロフィール" name="Place Profile"/>
<menu_item_call label="土地情報" name="About Land"/>
@@ -112,14 +112,14 @@
<menu_item_check label="座標" name="Coordinates"/>
<menu_item_check label="区画のプロパティ" name="Parcel Properties"/>
<menu_item_separator/>
- <menu_item_check label="拡張メニュー" name="Show Advanced Menu"/>
+ <menu_item_check label="アドバンスメニュー" name="Show Advanced Menu"/>
</menu>
<menu_item_check label="グラフィック性能の最適化…" name="Performance"/>
<menu_item_separator/>
<menu label="環境" name="Environment">
- <menu_item_check label="夜明け" name="Sunrise"/>
+ <menu_item_check label="日の出" name="Sunrise"/>
<menu_item_check label="正午" name="Noon"/>
- <menu_item_check label="夕方" name="Sunset"/>
+ <menu_item_check label="日没" name="Sunset"/>
<menu_item_check label="深夜" name="Midnight"/>
<menu_item_check label="共有された環境を使用" name="Use Shared Environment"/>
<menu_item_separator/>
@@ -188,7 +188,7 @@
<menu_item_check label="選択ビームを表示する" name="Show Selection Beam"/>
<menu_item_separator/>
<menu_item_check label="グリッド吸着" name="Snap to Grid"/>
- <menu_item_call label="オブジェクトのXY軸をグリッドに吸着" name="Snap Object XY to Grid"/>
+ <menu_item_call label="オブジェクトのXY軸をグリッドに吸着" name="Snap Object XY to Grid"/>
<menu_item_call label="選択をグリッドに使用する" name="Use Selection for Grid"/>
<menu_item_separator/>
<menu_item_call label="グリッドオプション…" name="Grid Options"/>
@@ -221,9 +221,9 @@
<menu_item_call label="衝突・プッシュ&打撃" name="Bumps, Pushes &amp;amp; Hits"/>
<menu_item_call label="[APP_NAME]について" name="About Second Life"/>
</menu>
- <menu label="拡張" name="Advanced">
+ <menu label="アドバンス" name="Advanced">
<menu_item_call label="テクスチャをリベークする" name="Rebake Texture"/>
- <menu_item_call label="UIサイズをデフォルトにする" name="Set UI Size to Default"/>
+ <menu_item_call label="UIサイズをデフォルトにする" name="Set UI Size to Default"/>
<menu_item_call label="ウィンドウサイズ設定…" name="Set Window Size..."/>
<menu_item_separator/>
<menu_item_check label="オブジェクトの選択距離の制限" name="Limit Select Distance"/>
@@ -233,7 +233,7 @@
<menu_item_check label="スナップショットをディスクに保存" name="QuietSnapshotsToDisk"/>
<menu_item_separator/>
<menu label="パフォーマンスツール" name="Performance Tools">
- <menu_item_call label="遅延メーター" name="Lag Meter"/>
+ <menu_item_call label="ラグメーター" name="Lag Meter"/>
<menu_item_check label="統計バー" name="Statistics Bar"/>
<menu_item_call label="シーン負荷の統計情報" name="Scene Load Statistics"/>
<menu_item_check label="アバターの複雑度を表示" name="Avatar Draw Info"/>
@@ -262,7 +262,7 @@
<menu_item_check label="衝突" name="Rendering Type Bump"/>
</menu>
<menu label="レンダリング機能" name="Rendering Features">
- <menu_item_check label="UI" name="ToggleUI"/>
+ <menu_item_check label="UI" name="ToggleUI"/>
<menu_item_check label="選択済" name="Selected"/>
<menu_item_check label="ハイライト" name="Highlighted"/>
<menu_item_check label="動的テクスチャ" name="Dynamic Textures"/>
@@ -313,7 +313,7 @@
<menu_item_separator/>
<menu_item_check label="カメラ" name="Camera"/>
<menu_item_check label="風" name="Wind"/>
- <menu_item_check label="FOV" name="FOV"/>
+ <menu_item_check label="FOV" name="FOV"/>
<menu_item_check label="バッジ" name="Badge"/>
</menu>
<menu label="情報を表示" name="Display Info">
@@ -352,7 +352,7 @@
</menu>
<menu label="メタデータの描画" name="Render Metadata">
<menu_item_check label="バウンディングボックス" name="Bounding Boxes"/>
- <menu_item_check label="普通" name="Normals"/>
+ <menu_item_check label="法線" name="Normals"/>
<menu_item_check label="八分木" name="Octree"/>
<menu_item_check label="シャドウ円錐" name="Shadow Frusta"/>
<menu_item_check label="実像" name="Physics Shapes"/>
@@ -363,7 +363,7 @@
<menu_item_check label="テクスチャ優先度" name="Texture Priority"/>
<menu_item_check label="テクスチャの範囲" name="Texture Area"/>
<menu_item_check label="側面" name="Face Area"/>
- <menu_item_check label="LOD情報" name="LOD Info"/>
+ <menu_item_check label="LOD情報" name="LOD Info"/>
<menu_item_check label="三角形の数" name="Triangle Count"/>
<menu_item_check label="制作・キュー" name="Build Queue"/>
<menu_item_check label="光" name="Lights"/>
@@ -372,7 +372,7 @@
<menu_item_check label="ジョイント" name="Joints"/>
<menu_item_check label="レイキャスト" name="Raycast"/>
<menu_item_check label="風のベクトル" name="Wind Vectors"/>
- <menu_item_check label="彫刻" name="Sculpt"/>
+ <menu_item_check label="スカルプト" name="Sculpt"/>
<menu label="テクスチャの密度" name="Texture Density">
<menu_item_check label="無し" name="None"/>
<menu_item_check label="原行" name="Current"/>
@@ -389,10 +389,10 @@
<menu_item_check label="オブジェクト間のオクルージョン" name="Object-Object Occlusion"/>
<menu_item_separator/>
<menu_item_check label="高度な光源モデル" name="Advanced Lighting Model"/>
- <menu_item_check label=" 太陽・月・プロジェクタからの影" name="Shadows from Sun/Moon/Projectors"/>
- <menu_item_check label=" SSAOと影のスムージング" name="SSAO and Shadow Smoothing"/>
+ <menu_item_check label=" 太陽・月・プロジェクタからの影" name="Shadows from Sun/Moon/Projectors"/>
+ <menu_item_check label=" SSAOと影のスムージング" name="SSAO and Shadow Smoothing"/>
<menu_item_separator/>
- <menu_item_check label="次回起動時にGLをデバッグ" name="Debug GL"/>
+ <menu_item_check label="次回起動時にGLのデバッグを開始" name="Debug GL"/>
<menu_item_check label="パイプラインをデバッグ" name="Debug Pipeline"/>
<menu_item_check label="自動アルファマスク(遅延)" name="Automatic Alpha Masks (deferred)"/>
<menu_item_check label="自動アルファマスク(遅延なし)" name="Automatic Alpha Masks (non-deferred)"/>
@@ -439,7 +439,7 @@
<menu_item_call label="リージョンオブジェクトのキャッシュをダンプ" name="Dump Region Object Cache"/>
<menu_item_call label="関心リスト:フルアップデート" name="Interest List: Full Update"/>
</menu>
- <menu label="UI" name="UI">
+ <menu label="UI" name="UI">
<menu_item_call label="メディアブラウザ" name="Media Browser"/>
<menu_item_call label="インベントリの出力" name="Dump Inventory"/>
<menu_item_call label="タイマーをダンプ" name="Dump Timers"/>
@@ -455,15 +455,15 @@
<menu_item_check label="デバッグキー" name="Debug Keys"/>
<menu_item_check label="WindowProcのデバッグ" name="Debug WindowProc"/>
</menu>
- <menu label="XUI" name="XUI">
+ <menu label="XUI" name="XUI">
<menu_item_call label="色の設定をリロード" name="Reload Color Settings"/>
<menu_item_call label="フォントテストを表示" name="Show Font Test"/>
- <menu_item_check label="XUI名を表示" name="Show XUI Names"/>
- <menu_item_call label="テストIMを送信する" name="Send Test IMs"/>
+ <menu_item_check label="XUI名を表示" name="Show XUI Names"/>
+ <menu_item_call label="テストIMを送信する" name="Send Test IMs"/>
<menu_item_call label="名前キャッシュをフラッシュ" name="Flush Names Caches"/>
</menu>
- <menu label="アバター" name="Character">
- <menu label="ベークドテクスチャを取得する" name="Grab Baked Texture">
+ <menu label="キャラクター" name="Character">
+ <menu label="ベイク済みテクスチャを取得する" name="Grab Baked Texture">
<menu_item_call label="瞳" name="Grab Iris"/>
<menu_item_call label="頭" name="Grab Head"/>
<menu_item_call label="上半身" name="Grab Upper Body"/>
@@ -488,7 +488,7 @@
<menu_item_check label="見ているものを表示する" name="Show Look At"/>
<menu_item_check label="クリックした場所を表示する" name="Show Point At"/>
<menu_item_check label="結合部のアップデートのデバッグ" name="Debug Joint Updates"/>
- <menu_item_check label="LODを無効にする" name="Disable LOD"/>
+ <menu_item_check label="LODを無効にする" name="Disable LOD"/>
<menu_item_check label="キャラクターVisのデバッグ" name="Debug Character Vis"/>
<menu_item_check label="スケルトンの衝突判定を表示する" name="Show Collision Skeleton"/>
<menu_item_check label="ボーンを表示" name="Show Bones"/>
@@ -499,7 +499,7 @@
<menu_item_call label="ローカルテクスチャをダンプ" name="Dump Local Textures"/>
</menu>
<menu_item_separator/>
- <menu_item_check label="HTTPテスクチャ" name="HTTP Textures"/>
+ <menu_item_check label="HTTPテスクチャ" name="HTTP Textures"/>
<menu_item_call label="圧縮画像" name="Compress Images"/>
<menu_item_call label="圧縮ファイルテスト" name="Compress File Test"/>
<menu_item_call label="Visual Leak Detectorを有効にする" name="Enable Visual Leak Detector"/>
@@ -517,14 +517,14 @@
<menu_item_call label="管理者ステータス解除" name="Leave Admin Options"/>
<menu_item_check label="管理者メニューを表示する" name="View Admin Options"/>
</menu>
- <menu label="管理" name="Admin">
+ <menu label="管理者" name="Admin">
<menu label="オブジェクト" name="AdminObject">
<menu_item_call label="コピーを取る" name="Admin Take Copy"/>
<menu_item_call label="自分を所有者にする" name="Force Owner To Me"/>
<menu_item_call label="所有者権限の実行" name="Force Owner Permissive"/>
<menu_item_call label="削除" name="Delete"/>
<menu_item_call label="ロック" name="Lock"/>
- <menu_item_call label="アセットのIDを取得" name="Get Assets IDs"/>
+ <menu_item_call label="アセットのIDを取得" name="Get Assets IDs"/>
</menu>
<menu label="区画" name="Parcel">
<menu_item_call label="自分を所有者にする" name="Owner To Me"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml b/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml
index 213a554bbd..2c13d50226 100644
--- a/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml
@@ -6,8 +6,8 @@
<menu_item_call label="触る" name="touch"/>
<menu_item_call label="脱ぐ" name="take_off_or_detach"/>
<menu_item_call label="取り外す" name="detach"/>
- <context_menu label="装着:" name="wearable_attach_to"/>
- <context_menu label="HUDに装着" name="wearable_attach_to_hud"/>
+ <context_menu label="装着" name="wearable_attach_to"/>
+ <context_menu label="HUDに装着" name="wearable_attach_to_hud"/>
<menu_item_call label="取り外す" name="take_off"/>
<menu_item_call label="編集" name="edit"/>
<menu_item_call label="アイテムのプロフィール" name="object_profile"/>
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index 123e95df04..9ec7a0de98 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -451,7 +451,7 @@ L$が不足しているので、このグループに参加することができ
</notification>
<notification name="CreateGroupCost">このグループ作成にかかる費用:L$ [COST]
一人ではグループにならないので、永久に削除されてしまいます。
-48時間以内にメンバーを勧誘し、入会してもらってください。
+48時間以内にメンバーを勧誘し、入会してもらってください。
<tag>
group
</tag>
@@ -1260,7 +1260,7 @@ L$が不足しているので、このグループに参加することができ
fail
</tag>
</notification>
- <notification name="SoundFileInvalidTooLong">オーディオファイルが長すぎます。(最大10秒):
+ <notification name="SoundFileInvalidTooLong">オーディオファイルが長すぎます。(最大30秒):
[FILE]
<tag>
fail
@@ -1411,7 +1411,7 @@ L$が不足しているので、このグループに参加することができ
fail
</tag>
</notification>
- <notification name="invalid_tport">テレポートの試行は1分間に6回までと制限されています。1分待ってからもう一度テレポートしてみてください。問題が解決しない場合は、ログインし直してください。
+ <notification name="invalid_tport">テレポートの試行は1分間に6回までと制限されています。1分待ってからもう一度テレポートしてみてください。問題が解決しない場合は、ログインし直してください。
<tag>
fail
</tag>
@@ -1735,7 +1735,7 @@ L$が不足しているので、このグループに参加することができ
</tag>
</notification>
<notification name="YouHaveBeenLoggedOut">しまった、[SECOND_LIFE]からログアウトされてしまいました。[MESSAGE]
- <usetemplate name="okcancelbuttons" notext="終了" yestext="IMでチャット"/>
+ <usetemplate name="okcancelbuttons" notext="終了" yestext="IM &amp; チャットを見る"/>
</notification>
<notification name="InventoryUnusable">インベントリの読み込み中に問題が発生しました。まず、ログアウトして再度ログインし直してみてください。
このメッセージが再度表示される場合は、サポートに連絡して問題を解決してください。
@@ -2126,7 +2126,7 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries
HUDComplexityWarning
</context>
</unique>
- <usetemplate ignoretext="HUDが複雑すぎる場合の警告" name="notifyignore"/>
+ <usetemplate ignoretext="HUDが複雑すぎる場合の警告" name="notifyignore"/>
</notification>
<notification name="FirstRun">[APP_NAME]のインストールが完了しました。
[SECOND_LIFE]を使ったことがない場合は、ログインする前にアカウントの作成を行ってください。
@@ -2162,7 +2162,7 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries
</form>
</notification>
<notification name="WelcomeChooseSex">まもなく、あなたのアバターが表示されます。矢印キーを使用して歩きます。
-ヘルプが必要なときや、[SECOND_LIFE]について知りたいときは、F1キーを押してください。
+ヘルプが必要なときや、[SECOND_LIFE]について知りたいときは、F1キーを押してください。
男性あるいは女性のアバターを選択してください。この設定は後で変更できます。
<tag>
confirm
@@ -2189,8 +2189,8 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries
発行元:[ISSUER_NAME_STRING]
有効日:[VALID_FROM]
次の更新日:[VALID_TO]
-MD5フィンガープリント:[SHA1_DIGEST]
-SHA1フィンガープリント:[MD5_DIGEST]
+MD5フィンガープリント:[SHA1_DIGEST]
+SHA1フィンガープリント:[MD5_DIGEST]
キー使用法:[KEYUSAGE]
拡張キー使用法:[EXTENDEDKEYUSAGE]
サブジェクトキー認識別子:[SUBJECTKEYIDENTIFIER]
@@ -2201,15 +2201,15 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries
</notification>
<notification name="TrustCertificateError">このサーバーの認証機関は不明です。
認証情報:
- サブジェクト名:[SUBJECT_NAME_STRING]
- 発行元:[ISSUER_NAME_STRING]
- 有効日:[VALID_FROM]
- 次の更新日:[VALID_TO]
- MD5フィンガープリント:[SHA1_DIGEST]
- SHA1フィンガープリント:[MD5_DIGEST]
- キー使用法:[KEYUSAGE]
- 拡張キー使用法:[EXTENDEDKEYUSAGE]
- サブジェクトキー認識別子:[SUBJECTKEYIDENTIFIER]
+サブジェクト名:[SUBJECT_NAME_STRING]
+発行元:[ISSUER_NAME_STRING]
+有効日:[VALID_FROM]
+次の更新日:[VALID_TO]
+MD5フィンガープリント:[SHA1_DIGEST]
+SHA1フィンガープリント:[MD5_DIGEST]
+キー使用法:[KEYUSAGE]
+拡張キー使用法:[EXTENDEDKEYUSAGE]
+サブジェクトキー認識別子:[SUBJECTKEYIDENTIFIER]
この認証局を信頼しますか?
<tag>
@@ -2232,7 +2232,7 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries
[NAME]は、オブジェクトを編集する権限を取り消されました。
</notification>
<notification name="FlushMapVisibilityCaches">このリージョンのマップのキャッシュを消去します。デバッグ目的のみに便利な操作です。
-(作成中は5分経過すると、全員のマップが再度ログイン後に更新されます)
+(作成中は5分経過すると、全員のマップが再度ログイン後に更新されます)
<tag>
fail
</tag>
@@ -2281,7 +2281,7 @@ https://wiki.secondlife.com/wiki/Adding_Spelling_Dictionaries
テクスチャは、24ビットの512✕512以下の画像を選択し、「適用」ボタンを再度クリックしてください。
</notification>
<notification name="RawUploadStarted">
- アップロードを開始しました。接続速度によっては、最大2分程度かかります。
+ アップロードを開始しました。接続速度によっては、最大2分程度かかります。
</notification>
<notification name="ConfirmBakeTerrain">現在の地形を構築しようとしています。この操作を行うと現在の地形が、土地の隆起と沈降の制限範囲の基準となり、「復元」ツールのデフォルトになります。操作を続行しますか?
<tag>
@@ -2606,7 +2606,7 @@ OKをクリックして、ダウンロードとインストールを開始しま
</tag>
<form name="form">
<input name="message">
- あなたはフリーズされています。動くこともチャットすることもできません。管理者がIMであなたに連絡します。
+ あなたはフリーズされています。動くこともチャットすることもできません。管理者がIMであなたに連絡します。
</input>
<button name="OK" text="OK"/>
<button name="Cancel" text="キャンセル"/>
@@ -3150,19 +3150,19 @@ https://community.secondlife.com/knowledgebase/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83
fail
</tag>
</notification>
- <notification name="UnableToLoadNotecardAsset">現在ノートカードのアセットIDを読み込むことができません。
+ <notification name="UnableToLoadNotecardAsset">現在ノートカードのアセットIDを読み込むことができません。
<tag>
fail
</tag>
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="NotAllowedToViewNotecard">要求したアセットIDに関するノートカードを閲覧するには、権限が不十分です。
+ <notification name="NotAllowedToViewNotecard">要求したアセットIDに関するノートカードを閲覧するには、権限が不十分です。
<tag>
fail
</tag>
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="MissingNotecardAssetID">ノートカード用のアセットIDがデータベースに登録されていません。
+ <notification name="MissingNotecardAssetID">ノートカード用のアセットIDがデータベースに登録されていません。
<tag>
fail
</tag>
@@ -3189,7 +3189,7 @@ https://community.secondlife.com/knowledgebase/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83
</tag>
<usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="いいえ" yestext="はい"/>
</notification>
- <notification label="再起動を確認" name="ConfirmRestart">このリージョンを2分後に再起動しようとしています。このまま続けてもよろしいですか?
+ <notification label="再起動を確認" name="ConfirmRestart">このリージョンを2分後に再起動しようとしています。このまま続けてもよろしいですか?
<tag>
confirm
</tag>
@@ -3489,7 +3489,7 @@ https://community.secondlife.com/knowledgebase/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83
⑴嫌がらせの報告の手順。居住者が、[SECOND_LIFE]権限システムを悪用していると思われる場合(たとえば、CopyBotまたは同様のコピーツールを使用して、知的財産権を侵害していると思われる場合)は、不正使用報告を提出することができます。不正行為チームは、[SECOND_LIFE][http://secondlife.com/corporate/tos.php 利用規約]や、[http://jp.secondlife.com/corporate/cs.php コミュニティ・スタンダード]に違反する行為を調査し、に違反する行為に対する適切な処罰を下します。ただし、担当チームは[SECOND_LIFE]の世界からコンテンツを削除して欲しいというリクエストには応じません。
-⑵DMCA またはコンテンツ削除プロセス。[SECOND_LIFE]からコンテンツの削除をリクエストするには、[https://www.lindenlab.com/legal/intellectual-property-infringement-notification-policy DCMAポリシー]に規定されている有効な権利侵害通知を提出する必要があります。
+⑵DMCA またはコンテンツ削除プロセス。[SECOND_LIFE]からコンテンツの削除をリクエストするには、[https://www.lindenlab.com/legal/intellectual-property-infringement-notification-policy DMCAポリシー]に規定されている有効な権利侵害通知を提出する必要があります。
このまま嫌がらせの報告を続けたい場合は、このウィンドウを閉じて報告の送信を完了してください。特定のカテゴリ「コピー Bot 及び権限の悪用」を選択する必要がある場合があります。
@@ -3578,7 +3578,7 @@ Linden Lab
</tag>
<usetemplate name="okcancelbuttons" notext="キャンセル" yestext="はい"/>
</notification>
- <notification name="ConfirmClearMediaUrlList">保存されたURLのリストを消去します。このまま、リストを消去してもよろしいですか?
+ <notification name="ConfirmClearMediaUrlList">保存されたURLのリストを消去します。このまま、リストを消去してもよろしいですか?
<tag>
confirm
</tag>
@@ -3669,10 +3669,10 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
<notification name="AutoWearNewClothing">作成する服装を自動的に装着しますか?
<usetemplate ignoretext="「容姿」を編集中に、作成する服装を装着するとき" name="okcancelignore" notext="いいえ" yestext="はい"/>
</notification>
- <notification name="NotAgeVerified">訪問しようとしている場所は、18歳以上の住人に制限されています。
+ <notification name="NotAgeVerified">訪問しようとしている場所は、18歳以上の住人に制限されています。
<usetemplate ignoretext="年齢制限付きのエリアを訪問する年齢に達していません。" name="okignore" yestext="OK"/>
</notification>
- <notification name="NotAgeVerified_Notify">この場所への入場は、18歳以上に制限されています。
+ <notification name="NotAgeVerified_Notify">この場所への入場は、18歳以上に制限されています。
<tag>
fail
</tag>
@@ -3708,7 +3708,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
<notification name="ReplacedMissingWearable">
欠落している服装や身体部位をデフォルトに置き換えます。
</notification>
- <notification name="GroupNotice">件名:[SUBJECT] メッセージ:[MESSAGE]
+ <notification name="GroupNotice">件名:[SUBJECT] メッセージ:[MESSAGE]
<tag>
group
</tag>
@@ -3726,7 +3726,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
</notification>
<notification name="UploadingAuctionSnapshot">
インワールドとWebサイトのスナップショットをアップロード中です…
-(所要時間:約5分)
+(所要時間:約5分)
</notification>
<notification name="UploadPayment">アップロードにL$ [AMOUNT]支払いました。
<tag>
@@ -3774,7 +3774,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
</tag>
</notification>
<notification name="IMAcrossParentEstates">
- 親不動産間では、IMを送信できません。
+ 親不動産間では、IMを送信できません。
</notification>
<notification name="TransferInventoryAcrossParentEstates">
親不動産間でインベントリを移動することはできません。
@@ -3855,7 +3855,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
[NAME]は、インベントリの提供を断りました。
</notification>
<notification name="ObjectMessage">
- [NAME]:[MESSAGE]
+ [NAME]: [MESSAGE]
</notification>
<notification name="CallingCardAccepted">
コーリングカードが受理されました。
@@ -3870,7 +3870,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
(この操作は、ランドマークをダブルクリックするか、右クリックして「テレポート」を選択して実行することもできます。)
</notification>
<notification name="TeleportToPerson">
- 誰かとのプライベートな会話を開くには、相手のアバターをクリックして、メニューから「IM」を選択します。
+ 誰かとのプライベートな会話を開くには、相手のアバターをクリックして、メニューから「IM」を選択します。
</notification>
<notification name="CantSelectLandFromMultipleRegions">サーバーの境界を越えて土地を選択することできません。
もっと小さな土地を選択してください。
@@ -4000,14 +4000,14 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
<unique/>
<usetemplate name="okbutton" yestext="リージョンの再構築"/>
</notification>
- <notification name="DynamicPathfindingDisabled">このリージョン(地域)において、動的経路探索が有効になっていません。経路探索LSL呼び出しを使用するスクリプトの入ったオブジェクトは、このリージョンで期待どおりに動作しない可能性があります。
+ <notification name="DynamicPathfindingDisabled">このリージョン(地域)において、動的経路探索が有効になっていません。経路探索LSL呼び出しを使用するスクリプトの入ったオブジェクトは、このリージョンで期待どおりに動作しない可能性があります。
<unique/>
</notification>
<notification name="PathfindingCannotRebakeNavmesh">エラーが発生しました。ネットワークまたはサーバーに問題があるか、制作する権限がない可能性があります。この問題は、一度ログアウトしてから、ログインし直すと解決される場合があります。
<unique/>
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="SeeAvatars">この区画にいるアバターやこの区画内で行われる文字チャットは、他の区画から見えません。あなたには、この区画外にいる住人が見えず、外の住人にはあなたの姿が見えません。チャンネル0での通常の文字チャットもブロックされます。
+ <notification name="SeeAvatars">この区画にいるアバターやこの区画内で行われる文字チャットは、他の区画から見えません。あなたには、この区画外にいる住人が見えず、外の住人にはあなたの姿が見えません。チャンネル0での通常の文字チャットもブロックされます。
<unique/>
</notification>
<notification name="ScriptsStopped">
@@ -4048,12 +4048,12 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
fail
</tag>
</notification>
- <notification name="MustGetAgeRegion">このリージョン(地域)に入るには、18歳以上である必要があります。
+ <notification name="MustGetAgeRegion">このリージョン(地域)に入るには、18歳以上である必要があります。
<tag>
fail
</tag>
</notification>
- <notification name="MustGetAgeParcel">この区画に入るには、18歳以上である必要があります。
+ <notification name="MustGetAgeParcel">この区画に入るには、18歳以上である必要があります。
<tag>
fail
</tag>
@@ -4296,7 +4296,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
</tag>
</notification>
<notification name="OfferCallingCard">[NAME]が、コーリングカードを渡そうとしています。
-あなたのインベントリにブックマークが追加され、この住人に素早くIMを送ることができます。
+あなたのインベントリにブックマークが追加され、この住人に素早くIMを送ることができます。
<tag>
friendship
</tag>
@@ -4317,7 +4317,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
[MESSAGE]
-送信元のオブジェクト:&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt; 所有者:[NAME_SLURL]
+送信元のオブジェクト:&lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt; 所有者:[NAME_SLURL]
<tag>
confirm
</tag>
@@ -4457,7 +4457,7 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
</notification>
<notification name="BuyLindenDollarSuccess">お支払ありがとうございます。
-あなたのL$残高は、処理が完了するとアップデートされます。処理に20分以上かかった場合、お取り引きがキャンセルされることがあります。その場合は、購入金額はあなたの US$残高に追加されます。 [https://secondlife.com/my/account/?lang=ja-JP マイアカウント]の取引履歴ページで、支払状況を確認できます。
+あなたのL$残高は、処理が完了するとアップデートされます。処理に20分以上かかった場合、お取り引きがキャンセルされることがあります。その場合は、購入金額はあなたの US$残高に追加されます。 [https://secondlife.com/my/account/?lang=ja-JP マイアカウント]の取引履歴ページで、支払状況を確認できます。
<tag>
funds
</tag>
@@ -4745,11 +4745,11 @@ Webページにリンクすると、他人がこの場所に簡単にアクセã‚
<button name="respondbutton" text="返答"/>
</form>
</notification>
- <notification name="ConfirmCloseAll">すべてのIMを閉じますか?
+ <notification name="ConfirmCloseAll">すべてのIMを閉じますか?
<tag>
confirm
</tag>
- <usetemplate ignoretext="すべてのIMを閉じる前の確認" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ <usetemplate ignoretext="すべてのIMを閉じる前の確認" name="okcancelignore" notext="キャンセル" yestext="OK"/>
</notification>
<notification name="AttachmentSaved">
装着物が保存されました。
@@ -5075,7 +5075,7 @@ UDP:3478, 3479, 5060, 5062, 6250, 12000-32000
メモリプール残量が少なくなっています。クラッシュを避けるため[APP_NAME]の機能の一部は無効になりました。他のアプリケーションを終了し、状況が継続または再発する場合にはSecond Lifeを再起動してください。
</notification>
<notification name="ForceQuitDueToLowMemory">
- メモリ不足のため30秒以内に[APP_NAME]は終了します。
+ メモリ不足のため30秒以内に[APP_NAME]は終了します。
</notification>
<notification name="SOCKS_NOT_PERMITTED">ルールセットによって許可されていないため、SOCKS 5プロキシ"[HOST]:[PORT]"が接続を拒絶しました。
<tag>
@@ -5275,7 +5275,7 @@ UDP:3478, 3479, 5060, 5062, 6250, 12000-32000
<tag>
confirm
</tag>
- <usetemplate ignoretext="UIを非表示前の確認" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ <usetemplate ignoretext="UIを非表示前の確認" name="okcancelignore" notext="キャンセル" yestext="OK"/>
</notification>
<notification name="PathfindingLinksets_WarnOnPhantom">選択された一部のリンクセットはファントムフラグが切り替えられます。
@@ -6220,7 +6220,7 @@ UDP:3478, 3479, 5060, 5062, 6250, 12000-32000
fail
</tag>
</notification>
- <notification name="TenObjectsDisabledPlzRefresh">選択された最初の10個のオブジェクトのみが無効にされました。必要に応じて、リフレッシュして選択内容を追加してください。
+ <notification name="TenObjectsDisabledPlzRefresh">選択された最初の10個のオブジェクトのみが無効にされました。必要に応じて、リフレッシュして選択内容を追加してください。
<tag>
fail
</tag>
@@ -6638,9 +6638,9 @@ UDP:3478, 3479, 5060, 5062, 6250, 12000-32000
fail
</tag>
</notification>
- <notification name="CompressionTestResults">サイズ[SIZE]㎅のファイル[FILE]をgzipのレベル6で圧縮したテスト結果:
-圧縮:[PACK_TIME]秒 [PSIZE]㎅
-解凍:[UNPACK_TIME]秒 [USIZE]㎅
+ <notification name="CompressionTestResults">サイズ[SIZE]㎅のファイル[FILE]をgzipのレベル6で圧縮したテスト結果:
+圧縮:[PACK_TIME]秒 [PSIZE]㎅
+解凍:[UNPACK_TIME]秒 [USIZE]㎅
<tag>
fail
</tag>
@@ -6674,7 +6674,7 @@ UDP:3478, 3479, 5060, 5062, 6250, 12000-32000
</tag>
<usetemplate name="okbutton" yestext="OK"/>
</notification>
- <notification name="RiggedMeshAttachedToHUD">HUDポイント「[POINT]」にアタッチされたオブジェクト「[NAME]」にはリグメッシュが含まれています。
+ <notification name="RiggedMeshAttachedToHUD">HUDポイント「[POINT]」にアタッチされたオブジェクト「[NAME]」にはリグメッシュが含まれています。
リグメッシュオブジェクトは、アバターに取り付けるように設計されています。あなたにはこのオブジェクトが表示されますが、他の人には表示されません。
@@ -6682,9 +6682,9 @@ UDP:3478, 3479, 5060, 5062, 6250, 12000-32000
<tag>
confirm
</tag>
- <usetemplate ignoretext="リグメッシュがHUDポイントにアタッチされている場合に警告します。" name="okignore" yestext="OK"/>
+ <usetemplate ignoretext="リグメッシュがHUDポイントにアタッチされている場合に警告します。" name="okignore" yestext="OK"/>
</notification>
- <notification name="EnableAutoFPSWarning" type="alertmodal">自動FPSを有効にしようとしています。保存されていないグラフィック設定はすべて失われます。
+ <notification name="EnableAutoFPSWarning" type="alertmodal">自動FPSを有効にしようとしています。保存されていないグラフィック設定はすべて失われます。
まずそれらを保存しますか?
<tag>
diff --git a/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
index b920a0a8f7..848e3d2f33 100644
--- a/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
@@ -24,7 +24,7 @@
<icon name="hovered_icon"/>
<icon name="selected_icon"/>
<text name="avatar_name" value="(読み込んでいます)"/>
- <text name="last_interaction" value="0秒"/>
+ <text name="last_interaction" value="0秒"/>
<icon name="permission_edit_theirs_icon" tool_tip="このフレンドのオブジェクトを編集することができます。"/>
<icon name="permission_edit_mine_icon" tool_tip="このフレンドは、あなたのオブジェクトを編集・削除・取得することができます。"/>
<icon tool_tip="このフレンドはマップ上であなたの位置を表示できます。" name="permission_map_icon"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml
index 156f475fc6..56b6e88c7b 100644
--- a/indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_clothing_list_button_bar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="clothing_list_button_bar_panel">
- <button label="追加+" name="add_btn"/>
+ <button label="追加 +" name="add_btn"/>
<button name="clothing_shop_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_universal.xml b/indra/newview/skins/default/xui/ja/panel_edit_universal.xml
index fd5fe80848..6d6ee5622f 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_universal.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_universal.xml
@@ -10,9 +10,9 @@
<texture_picker label="目のタトゥ" name="Eyes Tattoo" tool_tip="クリックして画像を選択する"/>
<texture_picker label="左腕のタトゥ" name="Left Arm Tattoo" tool_tip="クリックして画像を選択する"/>
<texture_picker label="左脚のタトゥ" name="Left Leg Tattoo" tool_tip="クリックして画像を選択する"/>
- <texture_picker label="予備1のタトゥ" name="Aux1 Tattoo" tool_tip="クリックして画像を選択する"/>
- <texture_picker label="予備2のタトゥ" name="Aux2 Tattoo" tool_tip="クリックして画像を選択する"/>
- <texture_picker label="予備3のタトゥ" name="Aux3 Tattoo" tool_tip="クリックして画像を選択する"/>
+ <texture_picker label="予備1のタトゥ" name="Aux1 Tattoo" tool_tip="クリックして画像を選択する"/>
+ <texture_picker label="予備2のタトゥ" name="Aux2 Tattoo" tool_tip="クリックして画像を選択する"/>
+ <texture_picker label="予備3のタトゥ" name="Aux3 Tattoo" tool_tip="クリックして画像を選択する"/>
<color_swatch label="色/明暗" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
</scroll_container>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_bulk_ban.xml b/indra/newview/skins/default/xui/ja/panel_group_bulk_ban.xml
index 962d69c67c..27d9b088cb 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_bulk_ban.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_bulk_ban.xml
@@ -4,7 +4,7 @@
(読み込んでいます…)
</panel.string>
<panel.string name="ban_selection_too_large">
- グループのバンが送信されていません:選択した住人が多すぎます。グループへの立入禁止の数は1リクエスト当たり100人に制限されています。
+ グループのバンが送信されていません:選択した住人が多すぎます。グループへの立入禁止の数は1リクエスト当たり100人に制限されています。
</panel.string>
<panel.string name="ban_not_permitted">
グループのバンが送信されていません:「立入禁止リストの管理」の能力がありません。
diff --git a/indra/newview/skins/default/xui/ja/panel_group_creation_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_group_creation_sidetray.xml
index 42e3b0050e..5e5fbfff9f 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_creation_sidetray.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_creation_sidetray.xml
@@ -53,7 +53,7 @@
</layout_panel>
</layout_stack>
<text name="info_deletion">
- 注:48時間メンバーが2人未満のグループは、自動的に解散されます。
+ 注:48時間メンバーが2人未満のグループは、自動的に解散されます。
</text>
</layout_panel>
</layout_stack>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_invite.xml b/indra/newview/skins/default/xui/ja/panel_group_invite.xml
index 85f0cba760..1177d5930d 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_invite.xml
@@ -11,7 +11,7 @@
</panel.string>
<panel.string name="invite_selection_too_large">
グループへの招待が送信されていません:選択された住人が多すぎます。
-グループへの招待は1回のリクエストあたり100人に制限されています。
+グループへの招待は1回のリクエストあたり100人に制限されています。
</panel.string>
<text name="help_text">
グループには一度に複数の住人を招待することができます。「リストから住人を選択」をクリックしてください。
diff --git a/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
index ebde7f9944..8045c26724 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
@@ -9,8 +9,8 @@
過去の通知はありません
</panel.string>
<text name="lbl2">
- 通知は14日間保存されます。
-1日の制限数は200通です。
+ 通知は14日間保存されます。
+1日の制限数は200通です。
</text>
<scroll_list name="notice_list">
<scroll_list.columns label="" name="icon"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_roles.xml b/indra/newview/skins/default/xui/ja/panel_group_roles.xml
index bd16e3e986..1a063a3592 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_roles.xml
@@ -30,7 +30,7 @@ Ctrlキーを押しながら、メンバー名をクリックすることで複æ
<panel.string name="help_text">
役割には、タイトルと許可された能力が割り当てられています。
メンバーは1つ以上の役割を持つことができます。
-グループで使える役割は10個までで、「全員(Everyone)」と「所有者(Owner)」がそれに含まれています。
+グループで使える役割は10個までで、「全員(Everyone)」と「所有者(Owner)」がそれに含まれています。
</panel.string>
<panel.string name="cant_delete_role">
「全員(Everyone)」と「所有者(Owner)」の役割は削除することができません。
diff --git a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
index c95320e53a..4055e23d9f 100644
--- a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
@@ -16,7 +16,7 @@
この位置の情報は、アクセス制限のためご利用いただけません。許可については区画所有者にお問い合わせください。
</string>
<string name="acquired_date">
- [year,datetime,local]年[mth,datetime,local]月[day,datetime,local]日([wkday,datetime,local]) [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
+ [year,datetime,local]年[mth,datetime,local]月[day,datetime,local]日([wkday,datetime,local]) [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string>
<string name="icon_PG" value="Parcel_PG_Dark"/>
<string name="icon_M" value="Parcel_M_Dark"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
index 5b5116a05d..c75fd8b1ca 100644
--- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
@@ -19,7 +19,7 @@
<item label="名前" name="Name" value="search_by_name"/>
<item label="制作者" name="Creator" value="search_by_creator"/>
<item label="説明" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
</combo_box>
<menu_button tool_tip="検索表示オプションを表示" name="options_visibility_btn"/>
<filter_editor label="検索用語を入力する" name="inventory search editor"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
index 5d984cb58c..39d9863a0a 100644
--- a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
@@ -28,7 +28,7 @@
サイズ:
</text>
<text name="X_label">
- X
+ X
</text>
<spinner label="" name="height_pixels"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
index 08edb447cb..7c7ce83a01 100644
--- a/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_chat">
- <line_editor label="ここをクリックしてチャットを開始します。" name="chat_box" tool_tip="Enterキーで発言し、Ctrl+Enterキーでシャウトします。"/>
+ <line_editor label="ここをクリックしてチャットを開始します。" name="chat_box" tool_tip="Enterキーで発言し、Ctrl+Enterキーで叫びます。"/>
<button name="show_nearby_chat" tool_tip="近隣チャットログを表示/非表示"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
index 1093624cda..9c3b51adb9 100644
--- a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
@@ -19,8 +19,8 @@
<button label="すべて停止" name="all_nearby_media_disable_btn" tool_tip="近隣のメディアをすべてオフにします"/>
<button label="すべて開始" name="all_nearby_media_enable_btn" tool_tip="近隣のメディアをすべてオンにします"/>
<button name="open_prefs_btn" tool_tip="メディアの設定を開きます"/>
- <button label="詳細 ≫" label_selected="≪ 簡易" name="more_btn" tool_tip="拡張コントロール"/>
- <button label="詳細 ≫" label_selected="≪ 簡易" name="less_btn" tool_tip="拡張コントロール"/>
+ <button label="詳細 &gt;&gt;" label_selected="&lt;&lt; 簡易" name="more_btn" tool_tip="拡張コントロール"/>
+ <button label="詳細 &gt;&gt;" label_selected="&lt;&lt; 簡易" name="less_btn" tool_tip="拡張コントロール"/>
</panel>
<panel name="nearby_media_panel">
<text name="nearby_media_title">
diff --git a/indra/newview/skins/default/xui/ja/panel_notification_list_item.xml b/indra/newview/skins/default/xui/ja/panel_notification_list_item.xml
index 00733bf79d..f1fa54d14e 100644
--- a/indra/newview/skins/default/xui/ja/panel_notification_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_notification_list_item.xml
@@ -40,7 +40,7 @@
<text name="sender_or_fee_box">
送信者:住民 じゅうみん
</text>
- <text name="notification_time" value="2014年12月24日 23:30"/>
+ <text name="notification_time" value="2014年12月24日 23:30"/>
</panel>
</panel>
</layout_panel>
@@ -76,7 +76,7 @@
<text name="sender_or_fee_box_exp">
送信者:住民 じゅうみん
</text>
- <text name="notification_time_exp" value="2014年12月24日 23:30"/>
+ <text name="notification_time_exp" value="2014年12月24日 23:30"/>
</panel>
<panel name="notification_text_panel_exp">
<chat_editor name="notification_text_exp">
diff --git a/indra/newview/skins/default/xui/ja/panel_people.xml b/indra/newview/skins/default/xui/ja/panel_people.xml
index 516ee3c7d2..fbdaa319a2 100644
--- a/indra/newview/skins/default/xui/ja/panel_people.xml
+++ b/indra/newview/skins/default/xui/ja/panel_people.xml
@@ -19,7 +19,7 @@
<string name="AltMiniMapToolTipMsg" value="[地域](ダブルクリックでテレポート。Shift‐ドラッグで水平・垂直移動)"/>
<string name="GroupCountWithInfo" value="あなたは現在、[COUNT]グループに属しています。あと[REMAINING]グループに参加することができます。[secondlife:/// 上限を増やす]"/>
<tab_container name="tabs">
- <panel label="近隣" name="nearby_panel">
+ <panel label="近く" name="nearby_panel">
<panel label="bottom_panel" name="nearby_buttons_panel">
<filter_editor label="人物をフィルタ" name="nearby_filter_input"/>
<button name="gear_btn" tool_tip="選択した人物に対するアクション"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_performance_autoadjustments.xml b/indra/newview/skins/default/xui/ja/panel_performance_autoadjustments.xml
index 3a0eeae6d5..fdbfca64ce 100644
--- a/indra/newview/skins/default/xui/ja/panel_performance_autoadjustments.xml
+++ b/indra/newview/skins/default/xui/ja/panel_performance_autoadjustments.xml
@@ -24,12 +24,12 @@
<combo_box.item label="アバターとワールド" name="av_and_scene" value="1"/>
<combo_box.item label="ワールドのみ" name="scene_only" value="2"/>
</combo_box>
- <button label="今すぐ自動調整" name="start_autotune" tool_tip="ビューアーは、目標FPSを満たすように設定が調整されるまで停止します。"/>
+ <button label="今すぐ自動調整" name="start_autotune" tool_tip="ビューアーは、目標FPSを満たすように設定が調整されるまで停止します。"/>
<button label="キャンセル" name="stop_autotune" tool_tip="自動調整を中断します。"/>
<text name="wip_desc">
調整中です…
</text>
- <check_box label="継続的に調整する" name="AutoTuneContinuous" tool_tip="ビューアーは、このフローターが閉じていても停止するまで、目標FPSを満たすように設定を継続的に調整します。">
+ <check_box label="継続的に調整する" name="AutoTuneContinuous" tool_tip="ビューアーは、このフローターが閉じていても停止するまで、目標FPSを満たすように設定を継続的に調整します。">
</check_box>
<radio_group name="autotune_lock_type">
<radio_item label="このログインセッションのみ" name="one_session_lock" value="0"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_performance_huds.xml b/indra/newview/skins/default/xui/ja/panel_performance_huds.xml
index 51d9e73540..2d53d74d0d 100644
--- a/indra/newview/skins/default/xui/ja/panel_performance_huds.xml
+++ b/indra/newview/skins/default/xui/ja/panel_performance_huds.xml
@@ -5,13 +5,13 @@
戻る
</text>
<text name="huds_title">
- アクティブなHUD
+ アクティブなHUD
</text>
<text name="huds_desc1">
- 使用していないHUDを取り外すとメモリが節約され、Second Lifeの処理が高速化されます。
+ 使用していないHUDを取り外すとメモリが節約され、Second Lifeの処理が高速化されます。
</text>
<text name="huds_desc2">
- 注意:HUDの最小化ボタンを使用しても、HUDを取り外したことにはなりません。
+ 注意:HUDの最小化ボタンを使用しても、HUDを取り外したことにはなりません。
</text>
<name_list name="hud_list">
<name_list.columns label="" name="complex_visual"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_performance_preferences.xml b/indra/newview/skins/default/xui/ja/panel_performance_preferences.xml
index 40e7800adc..2e165b11b6 100644
--- a/indra/newview/skins/default/xui/ja/panel_performance_preferences.xml
+++ b/indra/newview/skins/default/xui/ja/panel_performance_preferences.xml
@@ -7,7 +7,7 @@
<text name="settings_title">
グラフィック設定
</text>
- <button label="拡張設定を開く" name="advanced_btn"/>
+ <button label="詳細設定を開く" name="advanced_btn"/>
<button label="推奨設定にリセット" name="defaults_btn"/>
<view_border name="border0"/>
<text name="quality_lbl">
@@ -40,7 +40,7 @@
</text>
<slider name="draw_distance"/>
<text name="draw_distance_m">
- m
+ m
</text>
<text name="farther_lbl">
遠景
@@ -58,7 +58,7 @@
<check_box label="大気(周辺)シェーダー" name="atmospheric_shaders"/>
<check_box label="高度な光源モデル" name="advanced_lighting_model"/>
<text name="RenderShadowDetailText">
- 影:
+ 影
</text>
<combo_box name="ShadowDetail">
<combo_box.item label="なし" name="0" value="0"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_place_profile.xml b/indra/newview/skins/default/xui/ja/panel_place_profile.xml
index 21843e4420..5bd1611a2e 100644
--- a/indra/newview/skins/default/xui/ja/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_place_profile.xml
@@ -39,7 +39,7 @@
この場所の情報は、アクセス制限のためご利用いただけません。許可については区画所有者にお問い合わせください。
</string>
<string name="acquired_date">
- [year,datetime,local]年[mth,datetime,local]月[day,datetime,local]日[wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
+ [year,datetime,local]年[mth,datetime,local]月[day,datetime,local]日[wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string>
<button name="back_btn" tool_tip="戻る"/>
<text name="title" value="場所のプロフィール"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_postcard_settings.xml b/indra/newview/skins/default/xui/ja/panel_postcard_settings.xml
index 6373eadabc..f74059e7f1 100644
--- a/indra/newview/skins/default/xui/ja/panel_postcard_settings.xml
+++ b/indra/newview/skins/default/xui/ja/panel_postcard_settings.xml
@@ -2,9 +2,9 @@
<panel name="panel_postcard_settings">
<combo_box label="解像度" name="postcard_size_combo">
<combo_box.item label="現在のウィンドウ" name="CurrentWindow"/>
- <combo_box.item label="640✕480" name="640x480"/>
- <combo_box.item label="800✕600" name="800x600"/>
- <combo_box.item label="1024✕768" name="1024x768"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
<combo_box.item label="カスタム" name="Custom"/>
</combo_box>
<spinner label="横幅✕高さ" name="postcard_snapshot_width"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
index 40998f8035..72da378efb 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="拡張" name="advanced">
+<panel label="アドバンス" name="advanced">
<panel.string name="aspect_ratio_text">
- [NUM]:[DEN]
+ [NUM]:[DEN]
</panel.string>
<text name="Cache:">
キャッシュ:
@@ -17,19 +17,19 @@
<button label="参照" label_selected="参照" name="set_cache"/>
<button label="デフォルトの場所" label_selected="デフォルトの場所" name="default_cache_location"/>
<text name="UI Size:">
- UIのサイズ:
+ UIのサイズ:
</text>
<text name="HUD Size:">
- HUDのスケール:
+ HUDのスケール:
</text>
- <check_box label="スクリプトのエラーを表示:" name="show_script_errors"/>
+ <check_box label="スクリプトのエラーを表示:" name="show_script_errors"/>
<radio_group name="show_location">
<radio_item label="近隣チャット" name="0"/>
<radio_item label="別々のウィンドウ" name="1"/>
</radio_group>
<check_box label="複数のビューアを許可" name="allow_multiple_viewer_check"/>
<check_box label="ログイン時にグリッド選択を表示" name="show_grid_selection_check"/>
- <check_box label="拡張メニューを表示" name="show_advanced_menu_check"/>
+ <check_box label="アドバンスメニューを表示" name="show_advanced_menu_check"/>
<check_box label="開発メニューを表示" name="show_develop_menu_check"/>
<button label="記録済みのユーザ名" name="remembered_usernames"/>
<button label="デフォルトの作成権限" name="default_creation_permissions"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
index dd11296729..8246c1e07c 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -4,12 +4,12 @@
<panel name="general_chat_settings">
<check_box initial_value="true" label="チャット中にタイピング動作のアニメーションを再生" name="play_typing_animation"/>
<check_box label="オフライン時に受け取ったIMはメールで受信する" name="send_im_to_email"/>
- <check_box label="フレンドとグループ以外からのコールとIMは受信しない" name="voice_call_friends_only_check"/>
+ <check_box label="フレンドとグループ以外からのコールとIMは受信しない" name="voice_call_friends_only_check"/>
<text name="email_settings">
- [https://accounts.secondlife.com/change_email?lang=ja オフライン時のIMのメール送信先の設定]
+ [https://accounts.secondlife.com/change_email?lang=ja オフライン時のIMのメール送信先の設定]
</text>
<text name="font_size">
- 文字の大きさ:
+ フォントサイズ:
</text>
<combo_box name="chat_font_size">
<item label="小" name="Small" value="0"/>
@@ -20,7 +20,7 @@
</panel>
<panel name="im_notification_settings">
<text name="friend_ims">
- フレンドIM:
+ フレンドからのIM:
</text>
<combo_box name="FriendIMOptions">
<item label="開いている会話ウィンドウ" name="OpenConversationsWindow" value="openconversations"/>
@@ -30,7 +30,7 @@
</combo_box>
<check_box label="サウンドを再生" name="play_sound_friend_im"/>
<text name="non_friend_ims">
- フレンドのいないIM:
+ フレンド以外からのIM:
</text>
<combo_box name="NonFriendIMOptions">
<item label="開いている会話ウィンドウ" name="OpenConversationsWindow" value="openconversations"/>
@@ -40,7 +40,7 @@
</combo_box>
<check_box label="サウンドを再生" name="play_sound_non_friend_im"/>
<text name="conference_ims">
- 会話IM:
+ 会議IM:
</text>
<combo_box name="ConferenceIMOptions">
<item label="開いている会話ウィンドウ" name="OpenConversationsWindow" value="openconversations"/>
@@ -70,7 +70,7 @@
</combo_box>
<check_box label="サウンドを再生" name="play_sound_nearby_chat_im"/>
<text name="object_ims">
- オブジェクトによるIM:
+ オブジェクトによるIM:
</text>
<combo_box name="ObjectIMOptions">
<item label="開いている会話ウィンドウ" name="OpenConversationsWindow" value="openconversations"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml b/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
index b740f85806..d57f8d12f5 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
@@ -29,13 +29,13 @@
所有者
</text>
<text name="text_box9">
- URL
+ URL
</text>
<text name="bubble_chat">
名前の表示の背景色(吹き出しチャットにも適用):
</text>
<color_swatch name="background" tool_tip="名前の表示色を選択"/>
- <slider label="不透明度:" name="bubble_chat_opacity" tool_tip="名前の表示の不透明度を選択"/>
+ <slider label="不透明度:" name="bubble_chat_opacity" tool_tip="名前の表示の不透明度を選択"/>
<text name="floater_opacity">
フローターの透過度:
</text>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index 9309dda5af..eff831a7ac 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -45,7 +45,7 @@
<check_box label="ユーザー名" name="show_slids" tool_tip="bobsmith123 などユーザー名を表示"/>
<check_box label="グループタイトル" name="show_all_title_checkbox1" tool_tip="オフィサーまたはメンバーなど、グループタイトルを表示"/>
<check_box label="フレンドをハイライト表示" name="show_friends" tool_tip="フレンドの名前をハイライト表示"/>
- <check_box label="表示名を表示" name="display_names_check" tool_tip="これを選択すると、チャット、IMなどで表示名が表示されます。"/>
+ <check_box label="表示名を表示" name="display_names_check" tool_tip="これを選択すると、チャット、IMなどで表示名が表示されます。"/>
<text name="inworld_typing_rg_label">
特定キーを押したときの動作:
</text>
@@ -57,10 +57,10 @@
「離席」とするまでの時間:
</text>
<combo_box label="「離席」とするまでの時間:" name="afk">
- <combo_box.item label="2分" name="item0"/>
- <combo_box.item label="5分" name="item1"/>
- <combo_box.item label="10分" name="item2"/>
- <combo_box.item label="30分" name="item3"/>
+ <combo_box.item label="2分" name="item0"/>
+ <combo_box.item label="5分" name="item1"/>
+ <combo_box.item label="10分" name="item2"/>
+ <combo_box.item label="30分" name="item3"/>
<combo_box.item label="離席設定なし" name="item4"/>
</combo_box>
<text name="text_box3">
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
index 79a4689526..a70b30c57f 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
@@ -37,7 +37,7 @@
<slider name="QualityPerformanceSelection"/>
<slider control_name="RenderFarClip" label="描画距離:" name="DrawDistance"/>
<text name="DrawDistanceMeterText2">
- m
+ m
</text>
<check_box initial_value="true" label="大気(周辺)シェーダー" name="WindLightUseAtmosShaders"/>
<check_box initial_value="true" label="高度な光源モデル" name="UseLightShaders"/>
@@ -56,5 +56,5 @@
<button label="プリセットを削除…" name="PrefDeleteButton"/>
<button label="プリセットを削除…" name="PrefDeleteButton"/>
<button label="推奨設定にリセット" name="Defaults"/>
- <button label="拡張設定…" name="AdvancedSettings"/>
+ <button label="詳細設定…" name="AdvancedSettings"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
index 3956e07bf8..85be779053 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
@@ -4,10 +4,10 @@
中央のボタン
</panel.string>
<panel.string name="button4_mouse">
- 4ボタン
+ マウスボタン4
</panel.string>
<panel.string name="button5_mouse">
- 5ボタン
+ マウスボタン5
</panel.string>
<slider label="全体のボリューム" name="System Volume"/>
<button name="mute_audio"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_presets_pulldown.xml b/indra/newview/skins/default/xui/ja/panel_presets_pulldown.xml
index b4504dd39a..128669260a 100644
--- a/indra/newview/skins/default/xui/ja/panel_presets_pulldown.xml
+++ b/indra/newview/skins/default/xui/ja/panel_presets_pulldown.xml
@@ -5,6 +5,6 @@
</text>
<scroll_list name="preset_list"/>
<view_border name="horiz_separator"/>
- <button name="open_prefs_btn" label="グラフィック初期設定" tool_tip="グラフィック設定を呼び出します。"/>
- <button name="open_autofps_btn" label="自動FPS設定" tool_tip="自動調整設定を呼び出します。"/>
+ <button name="open_prefs_btn" label="グラフィック設定" tool_tip="グラフィック設定を呼び出します。"/>
+ <button name="open_autofps_btn" label="自動FPS設定" tool_tip="自動調整設定を呼び出します。"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
index 6c33bda5cd..038a7aa49f 100644
--- a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
@@ -64,7 +64,7 @@
<button name="close_btn" tool_tip="ズームバック"/>
</layout_panel>
<layout_panel name="new_window">
- <button name="new_window_btn" tool_tip="URLをブラウザで開く"/>
+ <button name="new_window_btn" tool_tip="URLをブラウザで開く"/>
</layout_panel>
</layout_stack>
<icon name="media_secure_lock_flag" tool_tip="安全なブラウジング"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_profile_secondlife.xml b/indra/newview/skins/default/xui/ja/panel_profile_secondlife.xml
index 71e223b90b..1c9111606e 100644
--- a/indra/newview/skins/default/xui/ja/panel_profile_secondlife.xml
+++ b/indra/newview/skins/default/xui/ja/panel_profile_secondlife.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_profile" label="プロフィール">
- <string name="date_format" value="SLでの誕生日:[year,datetime,utc]年[mth,datetime,utc]月[day,datetime,utc]日"/>
+ <string name="date_format" value="SLでの誕生日:[year,datetime,utc]年[mth,datetime,utc]月[day,datetime,utc]日"/>
<string name="age_format" value="[AGE]経過"/>
<string name="partner_text" value="パートナー:[LINK]"/>
<string name="CaptionTextAcctInfo">
diff --git a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
index 9b2239e0bb..16349b45d4 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
@@ -45,7 +45,7 @@
種類:
</text>
<text name="region_landtype_text">
- メインランド/入植地
+ メインランド / ホームステッド
</text>
<text name="region_maturity_lbl">
区分:
diff --git a/indra/newview/skins/default/xui/ja/panel_region_environment.xml b/indra/newview/skins/default/xui/ja/panel_region_environment.xml
index 48aa2a0adb..969c8f699c 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_environment.xml
@@ -7,7 +7,7 @@
リージョン(地域)の設定を使用
</string>
<string name="str_altitude_desription">
- 空 [INDEX]([ALTITUDE]m)
+ 空 [INDEX]([ALTITUDE]m)
</string>
<string name="str_no_parcel">
区画が選択されていません。環境の設定は無効になっています。
@@ -48,7 +48,7 @@
</layout_panel>
<layout_panel name="pnl_environment_length">
<text name="lbl_apparent_time">
- [AP] [HH]:[MM]([PRC]%)
+ [AP] [HH]:[MM] ([PRC]%)
</text>
</layout_panel>
<layout_panel name="pnl_environment_buttons"/>
@@ -57,7 +57,7 @@
<layout_panel name="pnl_environment_altitudes">
<panel name="pnl_alt1">
<text name="txt_alt1">
- 空[INDEX] [ALTITUDE]m
+ 空[INDEX] [ALTITUDE]m
</text>
<line_editor name="edt_invname_alt1">
不明
@@ -66,7 +66,7 @@
</panel>
<panel name="pnl_alt2">
<text name="txt_alt2">
- 空[INDEX] [ALTITUDE]m
+ 空[INDEX] [ALTITUDE]m
</text>
<line_editor name="edt_invname_alt2">
不明
@@ -75,7 +75,7 @@
</panel>
<panel name="pnl_alt3">
<text name="txt_alt3">
- 空[INDEX] [ALTITUDE]m
+ 空[INDEX] [ALTITUDE]m
</text>
<line_editor name="edt_invname_alt3">
不明
diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
index df790376ec..429b55cb32 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
@@ -19,7 +19,7 @@
<radio_item label="アクセスタブに記載された住人とグループのみ許可する" name="estate_restricted_access"/>
<radio_item label="誰でも訪問可" name="estate_public_access"/>
</radio_group>
- <check_box label="18歳以上である必要があります" name="limit_age_verified" tool_tip="この不動産(不動産)にアクセスするには、18 才以上でなければなりません。詳細については、[SUPPORT_SITE]をご覧ください。"/>
+ <check_box label="18歳以上である必要があります" name="limit_age_verified" tool_tip="この不動産(不動産)にアクセスするには、18 才以上でなければなりません。詳細については、[SUPPORT_SITE]をご覧ください。"/>
<check_box label="支払情報が登録されている必要があります" name="limit_payment" tool_tip="支払情報が登録されていないと、この不動産にアクセスすることはできません。詳細については、[SUPPORT_SITE]をご覧ください。"/>
<check_box label="区画所有者" name="parcel_access_override"/>
<check_box label="ボイスチャットを許可" name="voice_chat_check"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_terrain.xml b/indra/newview/skins/default/xui/ja/panel_region_terrain.xml
index 11e8d0d169..398f8d6718 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_terrain.xml
@@ -13,16 +13,16 @@
地形テクスチャ
</text>
<text name="height_text_lbl">
- 1(低)
+ 1(低)
</text>
<text name="height_text_lbl2">
- 2
+ 2
</text>
<text name="height_text_lbl3">
- 3
+ 3
</text>
<text name="height_text_lbl4">
- 4(高)
+ 4(高)
</text>
<text name="height_text_lbl5">
地形の隆起範囲
@@ -31,7 +31,7 @@
数値は上のテクスチャのブレンド範囲を示します。
</text>
<text name="height_text_lbl11">
- 計測単位はメートルで、「低」の値は、1番のテクスチャの高さの「最大値」です。「高」の値は、4番のテクスチャの高さの「最低値」です。
+ 計測単位はメートルで、「低」の値は、1番のテクスチャの高さの「最大値」です。「高」の値は、4番のテクスチャの高さの「最低値」です。
</text>
<text name="height_text_lbl6">
北西
diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml
index c717b71194..68eb8b4f9d 100644
--- a/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml
@@ -8,7 +8,7 @@
</text>
<scroll_list name="scripts_list">
<scroll_list.columns label="サイズ (㎅)" name="size"/>
- <scroll_list.columns label="URL" name="urls"/>
+ <scroll_list.columns label="URL" name="urls"/>
<scroll_list.columns label="オブジェクト名" name="name"/>
<scroll_list.columns label="場所" name="location"/>
</scroll_list>
diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml
index 71dedb55a6..30c3fdc9b5 100644
--- a/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml
@@ -10,7 +10,7 @@
</text>
<scroll_list name="scripts_list">
<scroll_list.columns label="サイズ (㎅)" name="size"/>
- <scroll_list.columns label="URL" name="urls"/>
+ <scroll_list.columns label="URL" name="urls"/>
<scroll_list.columns label="オブジェクト名" name="name"/>
<scroll_list.columns label="オブジェクトの所有者" name="owner"/>
<scroll_list.columns label="区画" name="parcel"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml b/indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml
index 9cb0b8f116..27a55aa653 100644
--- a/indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml
+++ b/indra/newview/skins/default/xui/ja/panel_snapshot_postcard.xml
@@ -10,7 +10,7 @@
送信中…
</string>
<text name="title">
- Eメール
+ Eメール
</text>
<tab_container name="postcard_tabs">
<panel label="メッセージ" name="panel_postcard_message"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml
index 9feae80624..2497b15548 100644
--- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml
@@ -7,10 +7,10 @@
帯域幅
</panel.string>
<panel.string name="time">
- [ampm, datetime, slt] [hour12, datetime, slt]:[min, datetime, slt] [timezone,datetime, slt]
+ [ampm, datetime, slt] [hour12, datetime, slt]:[min, datetime, slt] [timezone,datetime, slt]
</panel.string>
<panel.string name="timeTooltip">
- [year, datetime, slt]年[month, datetime, slt]月[day, datetime, slt]日([weekday, datetime, slt])
+ [year, datetime, slt]年[month, datetime, slt][day, datetime, slt]日([weekday, datetime, slt])
</panel.string>
<panel.string name="buycurrencylabel">
L$ [AMT]
@@ -24,7 +24,7 @@
<button label="ショップ" name="goShop" tool_tip="Second Lifeのマーケットプレイスを開きます。" width="70"/>
</panel>
<text name="TimeText" tool_tip="現在時刻(太平洋)">
- 午前 24:00 PST
+ 午前 24:00 PST
</text>
<icon image_name="Cam_FreeCam_Off" name="presets_icon_camera" tool_tip="カメラ"/>
<icon image_name="Presets_Icon" name="presets_icon_graphic" tool_tip="グラフィックのプリセット"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_tools_texture.xml b/indra/newview/skins/default/xui/ja/panel_tools_texture.xml
index 49efc529e4..968635e55b 100644
--- a/indra/newview/skins/default/xui/ja/panel_tools_texture.xml
+++ b/indra/newview/skins/default/xui/ja/panel_tools_texture.xml
@@ -17,7 +17,7 @@
</combo_box>
<radio_group name="radio_material_type">
<radio_item label="テクスチャ (拡散)" name="Texture (diffuse)" value="0"/>
- <radio_item label="凹凸 (標準)" name="Bumpiness (normal)" value="1"/>
+ <radio_item label="凹凸 (法線)" name="Bumpiness (normal)" value="1"/>
<radio_item label="輝き (反射)" name="Shininess (specular)" value="2"/>
</radio_group>
<check_box initial_value="false" label="繰り返しをロックする" name="checkbox_sync_settings" tool_tip="すべてのマップの繰り返しを調整する"/>
@@ -79,7 +79,7 @@
</text>
<color_swatch label="" name="shinycolorswatch" tool_tip="クリックしてカラーピッカーを開きます"/>
<text name="media_info">
- 選択したメディアのURLがもしあれば、ここに入ります。
+ 選択したメディアのURLがもしあれば、ここに入ります。
</text>
<button label="選択…" name="add_media" tool_tip="メディアを追加します"/>
<button label="削除" name="delete_media" tool_tip="このメディアテクスチャを削除します"/>
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
index fe9998b4ce..520ef848a0 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
@@ -19,7 +19,7 @@
所有者ができること:
</panel.string>
<panel.string name="acquiredDate">
- [year,datetime,local]年[mth,datetime,local]月[day,datetime,local]日[wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
+ [year,datetime,local]年[mth,datetime,local]月[day,datetime,local]日[wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</panel.string>
<panel.string name="origin_inventory">
(インベントリ)
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
index 8ff543bf92..1240a2e670 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
@@ -48,7 +48,7 @@
<text name="Name:">
名前:
</text>
- <line_editor name="Object Name" tool_tip="使用できる名前の文字数は最大63文字までです。長いプリム名は短縮されます。名前に使用できる文字はASCII-7 (非拡張)に含まれる印字可能な文字のみです(縦線「|」は例外)。"/>
+ <line_editor name="Object Name" tool_tip="使用できる名前の文字数は最大63文字までです。長いプリム名は短縮されます。名前に使用できる文字はASCII-7 (非拡張)に含まれる印字可能な文字のみです(縦線「|」は例外)。"/>
<text name="Description:">
説明:
</text>
@@ -68,7 +68,7 @@
<text name="label click action">
クリックで:
</text>
- <combo_box name="clickaction" tool_tip="マウスで1回左クリックすると、オブジェクトに対してアクションを起こせるようになります。各クリックアクションには、何ができるかを示す特別なカーソルがあります。クリックアクションによっては、動作要件が必要なものもあります。例えば、「触る」や「支払い」にはスクリプトが必要になります。">
+ <combo_box name="clickaction" tool_tip="マウスで1回左クリックすると、オブジェクトに対してアクションを起こせるようになります。各クリックアクションには、何ができるかを示す特別なカーソルがあります。クリックアクションによっては、動作要件が必要なものもあります。例えば、「触る」や「支払い」にはスクリプトが必要になります。">
<combo_box.item label="触る(デフォルト)" name="Touch/grab(default)"/>
<combo_box.item label="オブジェクトに座る" name="Sitonobject"/>
<combo_box.item label="オブジェクトを買う" name="Buyobject"/>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 2a338123f3..7d618bc337 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -31,7 +31,7 @@
グラフィックを初期化できませんでした。グラフィックドライバを更新してください。
</string>
<string name="AboutHeader">
- [CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3]([ADDRESS_SIZE]bit)
+ [CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3]([ADDRESS_SIZE]bit)
[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
</string>
<string name="BuildConfig">
@@ -46,9 +46,9 @@ SLURL:&lt;nolink&gt;[SLURL]&lt;/nolink&gt;
[SERVER_RELEASE_NOTES_URL]
</string>
<string name="AboutSystem">
- CPU:[CPU]
+ CPU:[CPU]
メモリ:[MEMORY_MB]㎆
-OSのバージョン:[OS_VERSION]
+OSのバージョン:[OS_VERSION]
グラフィックカード製造元:[GRAPHICS_CARD_VENDOR]
グラフィックカード:[GRAPHICS_CARD]
</string>
@@ -61,15 +61,15 @@ SLURL:&lt;nolink&gt;[SLURL]&lt;/nolink&gt;
<string name="AboutSettings">
ウィンドウサイズ:[WINDOW_WIDTH]x[WINDOW_HEIGHT]
フォントサイズ調整:[FONT_SIZE_ADJUSTMENT]pt
-UIスケーリング:[UI_SCALE]
-描画距離:[DRAW_DISTANCE]m
-帯域幅:[NET_BANDWITH]kbit/秒
-LOD係数:[LOD_FACTOR]
+UIスケーリング:[UI_SCALE]
+描画距離:[DRAW_DISTANCE]m
+帯域幅:[NET_BANDWITH]kbit/s
+LOD係数:[LOD_FACTOR]
描画の質:[RENDER_QUALITY]
テクスチャメモリ:[TEXTURE_MEMORY]㎆
</string>
<string name="AboutOSXHiDPI">
- 高DPI表示モード:[HIDPI]
+ 高DPI表示モード:[HIDPI]
</string>
<string name="AboutLibs">
J2Cデコーダバージョン:[J2C_VERSION]
@@ -82,10 +82,10 @@ LibVLCバージョン:[LIBVLC_VERSION]
パケット損失:[PACKETS_LOST,number,0]/[PACKETS_IN,number,0]([PACKETS_PCT,number,1]%)
</string>
<string name="AboutTime">
- [year, datetime, slt]年[month, datetime, slt]月[day, datetime, slt]日 [hour, datetime, slt]:[min,datetime, slt]:[second,datetime,slt]
+ [year, datetime, slt]年[month, datetime, slt]月[day, datetime, slt]日 [hour, datetime, slt]:[min,datetime, slt]:[second,datetime,slt]
</string>
<string name="ErrorFetchingServerReleaseNotesURL">
- サーバーのリリースノートのURL取得時にエラーが発生しました。
+ サーバーのリリースノートのURL取得時にエラーが発生しました。
</string>
<string name="BuildConfiguration">
ビルド構成
@@ -357,7 +357,7 @@ support@secondlife.com にお問い合わせください。
白黒
</string>
<string name="Colors1970">
- 1970年代のカラー
+ 1970年代のカラー
</string>
<string name="Intense">
強調
@@ -540,7 +540,7 @@ support@secondlife.com にお問い合わせください。
<string name="TooltipSLAPP">
クリックして secondlife:// コマンドを出します。
</string>
- <string name="CurrentURL" value="現在のURL:[CurrentURL]"/>
+ <string name="CurrentURL" value="現在のURL:[CurrentURL]"/>
<string name="TooltipEmail">
クリックして電子メールを作成します。
</string>
@@ -557,7 +557,7 @@ support@secondlife.com にお問い合わせください。
ミュート解除
</string>
<string name="SLappAgentIM">
- IM
+ IM
</string>
<string name="SLappAgentPay">
支払い
@@ -821,28 +821,28 @@ support@secondlife.com にお問い合わせください。
泣く
</string>
<string name="anim_dance1">
- ダンス1
+ ダンス1
</string>
<string name="anim_dance2">
- ダンス2
+ ダンス2
</string>
<string name="anim_dance3">
- ダンス3
+ ダンス3
</string>
<string name="anim_dance4">
- ダンス4
+ ダンス4
</string>
<string name="anim_dance5">
- ダンス5
+ ダンス5
</string>
<string name="anim_dance6">
- ダンス6
+ ダンス6
</string>
<string name="anim_dance7">
- ダンス7
+ ダンス7
</string>
<string name="anim_dance8">
- ダンス8
+ ダンス8
</string>
<string name="anim_express_disdain">
侮蔑
@@ -1010,7 +1010,7 @@ support@secondlife.com にお問い合わせください。
オフライン
</string>
<string name="worldmap_item_tooltip_format">
- [AREA]㎡ L$ [PRICE]([SQMPRICE] L$/㎡)
+ [AREA]㎡ L$ [PRICE]([SQMPRICE] L$/㎡)
</string>
<string name="worldmap_results_none_found">
何も見つかりませんでした。
@@ -1034,7 +1034,7 @@ support@secondlife.com にお問い合わせください。
のささやき:
</string>
<string name="shout">
- のシャウト:
+ の叫び:
</string>
<string name="ringing">
インワールドボイスチャットに接続中…
@@ -1142,16 +1142,16 @@ support@secondlife.com にお問い合わせください。
(不明)
</string>
<string name="Estate / Full Region">
- 不動産/フルリージョン
+ 不動産 / フルリージョン
</string>
<string name="Estate / Homestead">
- 不動産/入植地
+ 不動産 / ホームステッド
</string>
<string name="Mainland / Homestead">
- メインランド/入植地
+ メインランド / ホームステッド
</string>
<string name="Mainland / Full Region">
- メインランド/フルリージョン
+ メインランド / フルリージョン
</string>
<string name="all_files">
全てのファイル
@@ -3225,7 +3225,7 @@ For AI Character: Get the closest navigable point to the point provided.
料金はサブスクリプションのレベルにより異なります。レベルが高いほど、料金が下がります。[https://accounts.secondlife.com/change_membership/?lang=ja-JP 詳細]
</string>
<string name="Open landmarks">
- オープン ランドマーク
+ ランドマーク一覧を開く
</string>
<string name="Unconstrained">
アンコンストレインド(制約なし)
@@ -3602,7 +3602,7 @@ For AI Character: Get the closest navigable point to the point provided.
あなたは、周囲の誰からも見えていない可能性があります。
</string>
<string name="hud_description_total">
- 利用中のHUD
+ 利用中のHUD
</string>
<string name="hud_name_with_joint">
[OBJ_NAME]([JNT_NAME]に装着中)
@@ -3695,7 +3695,7 @@ For AI Character: Get the closest navigable point to the point provided.
年齢未確認
</string>
<string name="Center 2">
- 中央2
+ 中央2
</string>
<string name="Top Right">
右上
@@ -3874,19 +3874,19 @@ For AI Character: Get the closest navigable point to the point provided.
区画一覧:[PARCELS]個
</string>
<string name="ScriptLimitsMemoryUsed">
- 使用されたメモリ:[MAX]㎅中[COUNT]㎅ [AVAILABLE]㎅利用可
+ 使用されたメモリ:[MAX]㎅中[COUNT]㎅ [AVAILABLE]㎅利用可
</string>
<string name="ScriptLimitsMemoryUsedSimple">
使用されたメモリ:[COUNT]㎅
</string>
<string name="ScriptLimitsParcelScriptURLs">
- 区画のスクリプトURL
+ 区画のスクリプトURL
</string>
<string name="ScriptLimitsURLsUsed">
- 使用されたURL:[MAX]件中[COUNT]件 [AVAILABLE]件利用可
+ 使用されたURL:[MAX]件中[COUNT]件 [AVAILABLE]件利用可
</string>
<string name="ScriptLimitsURLsUsedSimple">
- 使用されたURL:[COUNT]件
+ 使用されたURL:[COUNT]件
</string>
<string name="ScriptLimitsRequestError">
情報のリクエスト中にエラーが発生しました
@@ -3997,28 +3997,28 @@ For AI Character: Get the closest navigable point to the point provided.
右胸筋
</string>
<string name="ATTACH_HUD_CENTER_2">
- HUD(中央 2)
+ HUD(中央 2)
</string>
<string name="ATTACH_HUD_TOP_RIGHT">
- HUD(右上)
+ HUD(右上)
</string>
<string name="ATTACH_HUD_TOP_CENTER">
- HUD(上・中央)
+ HUD(上・中央)
</string>
<string name="ATTACH_HUD_TOP_LEFT">
- HUD(左上)
+ HUD(左上)
</string>
<string name="ATTACH_HUD_CENTER_1">
- HUD(中央 1)
+ HUD(中央 1)
</string>
<string name="ATTACH_HUD_BOTTOM_LEFT">
- HUD(左下)
+ HUD(左下)
</string>
<string name="ATTACH_HUD_BOTTOM">
- HUD(下)
+ HUD(下)
</string>
<string name="ATTACH_HUD_BOTTOM_RIGHT">
- HUD(右下)
+ HUD(右下)
</string>
<string name="ATTACH_NECK">
首
@@ -4078,10 +4078,10 @@ For AI Character: Get the closest navigable point to the point provided.
[COUNT]件見つかりました
</string>
<string name="PanelDirTimeStr">
- [ampm,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc]
+ [ampm,datetime,utc] [hour12,datetime,utc]:[min,datetime,utc]
</string>
<string name="PanelDirEventsDateText">
- [mthnum,datetime,slt]/[day,datetime,slt]
+ [mthnum,datetime,slt]/[day,datetime,slt]
</string>
<string name="PanelContentsTooltip">
オブジェクトの中身
@@ -4545,10 +4545,10 @@ www.secondlife.com から最新バージョンをダウンロードしてくだã
ピクセル形式が設定できません。
</string>
<string name="MBGLContextErr">
- GLレンダーコンテキストが作れません
+ GLレンダーコンテキストが作れません
</string>
<string name="MBGLContextActErr">
- GLレンダーコンテキストを有効化できません。
+ GLレンダーコンテキストを有効化できません。
</string>
<string name="MBVideoDrvErr">
お使いのコンピューターのビデオカードのドライバが正常にインストールされていないか、古いまたはサポート対象外のため、[APP_NAME]を実行することができませんでした。
@@ -6157,7 +6157,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだã
インベントリからここにアイテムをドラッグします。
</string>
<string name="no_session_message">
- (IMセッションが存在しません)
+ (IMセッションが存在しません)
</string>
<string name="only_user_message">
このセッションにいるユーザーはあなただけです。
@@ -6582,28 +6582,28 @@ www.secondlife.com から最新バージョンをダウンロードしてくだã
一時退席中
</string>
<string name="dance1">
- ダンス1
+ ダンス1
</string>
<string name="dance2">
- ダンス2
+ ダンス2
</string>
<string name="dance3">
- ダンス3
+ ダンス3
</string>
<string name="dance4">
- ダンス4
+ ダンス4
</string>
<string name="dance5">
- ダンス5
+ ダンス5
</string>
<string name="dance6">
- ダンス6
+ ダンス6
</string>
<string name="dance7">
- ダンス7
+ ダンス7
</string>
<string name="dance8">
- ダンス8
+ ダンス8
</string>
<string name="AvatarBirthDateFormat">
[year,datetime,slt]年[mthnum,datetime,slt]月[day,datetime,slt]日
@@ -6623,7 +6623,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだã
<string name="outfit_photo_verify_dimensions_error">
画像の寸法を確認できません。画像サイズがピッカーに表示されるまでお待ちください。
</string>
- <string name="sentences_separator" value=" "/>
+ <string name="sentences_separator" value=" "/>
<string name="words_separator" value="、"/>
<string name="server_is_down">
大変申し訳ございませんが、予期しない問題が発生しました。サービスに関する既知の問題については、 https://status.secondlifegrid.net/?lang=ja-JP をご覧ください。
@@ -6636,7 +6636,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだã
日:月:火:水:木:金:土
</string>
<string name="dateTimeMonthNames">
- 1月:2月:3月:4月:5月:6月:7月:8月:9月:10月:11月:12月
+ 1月:2月:3月:4月:5月:6月:7月:8月:9月:10月:11月:12月
</string>
<string name="dateTimeMonthShortNames">
㋀:㋁:㋂:㋃:㋄:㋅:㋆:㋇:㋈:㋉:㋊:㋋
@@ -7108,7 +7108,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだã
パーティクルを非表示
</string>
<string name="Command_360_Capture_Label">
- 360度Sショット
+ 360度スナップショット
</string>
<string name="Command_AboutLand_Label">
土地情報
@@ -7198,7 +7198,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだã
ボイス設定
</string>
<string name="Command_360_Capture_Tooltip">
- 360度の正距円筒図法のスナップショット画像を撮影します。
+ 360度の正距円筒図法のスナップショット画像を撮影します。
</string>
<string name="Command_AboutLand_Tooltip">
訪問先に関する情報を表示します。
@@ -7483,7 +7483,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだã
物理形状に不正な確認データがあります。物理モデルを修正してください。
</string>
<string name="Mav_Details_MAV_BLOCK_MISSING">
- データがありません。高LODが存在し、有効であることを確認してください。設定されていない場合は、物理モデルを設定します。
+ データがありません。高LODが存在し、有効であることを確認してください。設定されていない場合は、物理モデルを設定します。
</string>
<string name="Mav_Details_MAV_UNKNOWN_VERSION">
物理形状のバージョンが正しくありません。物理モデルに正しいバージョンを設定してください。
@@ -7494,7 +7494,7 @@ www.secondlife.com のウェブサイトに接続できるかご確認くださã
接続できても、このエラーが継続的に起こる場合は、サポートセクションから問題を報告してください。
</string>
<string name="ssl_peer_certificate">
- ログインサーバーがSSL経由で確認できませんでした。
+ ログインサーバーがSSL経由で確認できませんでした。
このエラーが継続的に起こる場合は、Secondlife.com のサポートセクションから問題を報告してください。
</string>
<string name="ssl_connect_error">
diff --git a/indra/newview/skins/default/xui/ja/teleport_strings.xml b/indra/newview/skins/default/xui/ja/teleport_strings.xml
index c1be98bef9..cdfdb1628b 100644
--- a/indra/newview/skins/default/xui/ja/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/ja/teleport_strings.xml
@@ -47,7 +47,7 @@
インベントリシステムは現在利用できません。
</message>
<message name="MustGetAgeRegion">
- このリージョン(地域)に入るには、18歳以上である必要があります。
+ このリージョン(地域)に入るには、18歳以上である必要があります。
</message>
<message name="RegionTPSpecialUsageBlocked">
リージョンに入ることができません。
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index e46073057e..0e2c9d177e 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -245,6 +245,16 @@ class ViewerManifest(LLManifest):
}
return "%(channel_vendor_base)s%(channel_variant_underscores)s_%(version_underscores)s_%(arch)s" % substitution_strings
+ def installer_base_name_mac(self):
+ global CHANNEL_VENDOR_BASE
+ # a standard map of strings for replacing in the templates
+ substitution_strings = {
+ 'channel_vendor_base' : '_'.join(CHANNEL_VENDOR_BASE.split()),
+ 'channel_variant_underscores':self.channel_variant_app_suffix(),
+ 'version_underscores' : '_'.join(self.args['version'])
+ }
+ return "%(channel_vendor_base)s%(channel_variant_underscores)s_%(version_underscores)s_universal" % substitution_strings
+
def app_name(self):
global CHANNEL_VENDOR_BASE
channel_type=self.channel_type()
@@ -1068,7 +1078,7 @@ class Darwin_x86_64_Manifest(ViewerManifest):
def package_finish(self):
- imagename = self.installer_base_name()
+ imagename = self.installer_base_name_mac()
self.set_github_output('imagename', imagename)
finalname = imagename + ".dmg"
self.package_file = finalname