From 46f8fb8781ccce338b4a88aaf8371ee3dec56d29 Mon Sep 17 00:00:00 2001 From: Mark Palange <palange@lindenlab.com> Date: Tue, 3 Feb 2009 21:15:57 +0000 Subject: [PATCH] svn merge -r107016:108767 svn+ssh://svn.lindenlab.com/svn/linden/viewer/viewer_1-22 Merge back of viewer 1.22 RC6 and RC7 change to trunk. QAR-1214 and QAR-1227 --- doc/contributions.txt | 3 + .../linux_crash_logger/llcrashloggerlinux.cpp | 15 +- indra/llprimitive/llprimitive.cpp | 205 +------------- indra/llrender/llimagegl.cpp | 12 - indra/llrender/llimagegl.h | 2 - indra/newview/app_settings/settings.xml | 2 +- indra/newview/llappviewer.cpp | 9 +- indra/newview/llappviewer.h | 1 + indra/newview/llappviewerwin32.cpp | 2 +- indra/newview/lldrawable.cpp | 12 +- indra/newview/lldrawpoolbump.cpp | 7 +- indra/newview/lldrawpoolbump.h | 3 +- indra/newview/lleventpoll.cpp | 17 +- indra/newview/llfloaterinspect.cpp | 6 + indra/newview/llfloaterlagmeter.cpp | 2 +- .../newview/llfloatervoicedevicesettings.cpp | 34 ++- indra/newview/llhudeffectpointat.cpp | 4 +- indra/newview/llhudicon.cpp | 2 +- indra/newview/lllogchat.cpp | 3 +- indra/newview/llmutelist.cpp | 49 ++-- indra/newview/llselectmgr.cpp | 2 + indra/newview/lltexturefetch.cpp | 30 ++- indra/newview/lltextureview.cpp | 3 +- indra/newview/llviewercontrol.cpp | 1 + indra/newview/llviewerdisplay.cpp | 1 + indra/newview/llviewermenu.cpp | 7 + indra/newview/llviewerpartsim.cpp | 30 ++- indra/newview/llviewerpartsim.h | 6 + indra/newview/llviewerstats.cpp | 21 +- indra/newview/llviewerwindow.cpp | 203 ++++++-------- indra/newview/llviewerwindow.h | 3 +- indra/newview/llvoavatar.cpp | 20 +- indra/newview/llvoavatar.h | 2 + indra/newview/llvoiceclient.cpp | 2 + indra/newview/llvopartgroup.cpp | 2 + indra/newview/llvotextbubble.cpp | 20 +- indra/newview/llvovolume.cpp | 17 +- indra/newview/llwindebug.cpp | 250 ++++++++++++------ indra/newview/pipeline.cpp | 79 +++--- .../skins/default/xui/da/floater_about.xml | 6 +- .../skins/default/xui/de/floater_about.xml | 4 +- .../skins/default/xui/de/role_actions.xml | 114 ++++---- .../skins/default/xui/fr/floater_about.xml | 4 +- .../skins/default/xui/ja/floater_about.xml | 4 +- .../default/xui/ja/floater_about_land.xml | 2 +- .../default/xui/ja/floater_buy_currency.xml | 4 +- .../skins/default/xui/ja/floater_inspect.xml | 2 +- .../default/xui/ja/floater_inventory.xml | 4 +- .../ja/floater_inventory_item_properties.xml | 2 +- .../default/xui/ja/floater_land_holdings.xml | 18 +- .../default/xui/ja/floater_media_browser.xml | 6 +- .../skins/default/xui/ja/menu_viewer.xml | 4 +- .../default/xui/ja/panel_group_general.xml | 42 ++- .../default/xui/ja/panel_group_land_money.xml | 34 +-- .../default/xui/ja/panel_group_notices.xml | 9 +- .../default/xui/ja/panel_group_roles.xml | 4 +- .../xui/ja/panel_preferences_graphics1.xml | 2 +- .../skins/default/xui/ja/panel_status_bar.xml | 4 +- .../skins/default/xui/pl/floater_about.xml | 6 +- .../default/xui/pl/panel_region_terrain.xml | 4 +- .../skins/default/xui/pt/mime_types.xml | 2 +- 61 files changed, 669 insertions(+), 701 deletions(-) diff --git a/doc/contributions.txt b/doc/contributions.txt index 2b0d3abd9e0..f4228e010f8 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -22,6 +22,7 @@ Aimee Trescothick VWR-6550 VWR-6583 VWR-6482 + VWR-7109 VWR-7383 VWR-8341 VWR-8430 @@ -436,6 +437,8 @@ tenebrous pau VWR-247 Tharax Ferraris VWR-605 +Thickbrick Sleaford + VWR-7109 Thraxis Epsilon SVC-371 VWR-383 diff --git a/indra/linux_crash_logger/llcrashloggerlinux.cpp b/indra/linux_crash_logger/llcrashloggerlinux.cpp index bd06928598c..2c46a24b650 100644 --- a/indra/linux_crash_logger/llcrashloggerlinux.cpp +++ b/indra/linux_crash_logger/llcrashloggerlinux.cpp @@ -125,11 +125,20 @@ void LLCrashLoggerLinux::gatherPlatformSpecificFiles() bool LLCrashLoggerLinux::mainLoop() { - if(!do_ask_dialog()) + bool send_logs = true; + if(CRASH_BEHAVIOR_ASK == getCrashBehavior()) { - return true; + send_logs = do_ask_dialog(); + } + else if(CRASH_BEHAVIOR_NEVER_SEND == getCrashBehavior()) + { + send_logs = false; + } + + if(send_logs) + { + sendCrashLogs(); } - sendCrashLogs(); return true; } diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp index 68d7bd8039e..6fc0a559ae4 100644 --- a/indra/llprimitive/llprimitive.cpp +++ b/indra/llprimitive/llprimitive.cpp @@ -958,213 +958,16 @@ BOOL LLPrimitive::setVolume(const LLVolumeParams &volume_params, const S32 detai U32 old_face_mask = mVolumep->mFaceMask; - S32 face_bit = 0; - S32 cur_mask = 0; - - // grab copies of the old faces so we can determine the TE mappings... - std::vector<LLProfile::Face> old_faces; // list of old faces for remapping texture entries - LLTextureEntry old_tes[9]; - - for (S32 face = 0; face < mVolumep->getNumFaces(); face++) - { - old_faces.push_back(mVolumep->getProfile().mFaces[face]); - } - - for (face_bit = 0; face_bit < 9; face_bit++) - { - cur_mask = 0x1 << face_bit; - if (old_face_mask & cur_mask) - { - S32 te_index = face_index_from_id(cur_mask, old_faces); - old_tes[face_bit] = *getTE(te_index); - //llinfos << face_bit << ":" << te_index << ":" << old_tes[face_bit].getID() << llendl; - } - } - - // build the new object sVolumeManager->unrefVolume(mVolumep); mVolumep = volumep; - U32 new_face_mask = mVolumep->mFaceMask; - S32 i; - - /* - std::string old_mask_string; - for (i = 0; i < 9; i++) + U32 new_face_mask = mVolumep->mFaceMask; + if (old_face_mask != new_face_mask) { - if (old_face_mask & (1 << i)) - { - old_mask_string.append("1"); - } - else - { - old_mask_string.append("0"); - } - } - std::string new_mask_string; - for (i = 0; i < 9; i++) - { - if (new_face_mask & (1 << i)) - { - new_mask_string.append("1"); - } - else - { - new_mask_string.append("0"); - } - } - - llinfos << "old mask: " << old_mask_string << llendl; - llinfos << "new mask: " << new_mask_string << llendl; - */ - - - if (old_face_mask == new_face_mask) - { - // nothing to do - return TRUE; - } - - if (mVolumep->getNumFaces() == 0 && new_face_mask != 0) - { - llwarns << "Object with 0 faces found...INCORRECT!" << llendl; setNumTEs(mVolumep->getNumFaces()); - return TRUE; - } - - - S32 face_mapping[9]; - for (face_bit = 0; face_bit < 9; face_bit++) - { - face_mapping[face_bit] = face_bit; - } - - // Generate the face-type mappings - for (face_bit = 0; face_bit < 9; face_bit++) - { - cur_mask = 0x1 << face_bit; - if (!(new_face_mask & cur_mask)) - { - // Face doesn't exist in new map. - face_mapping[face_bit] = -1; - continue; - } - else if (old_face_mask & cur_mask) - { - // Face exists in new and old map. - face_mapping[face_bit] = face_bit; - continue; - } - - // OK, how we've got a mismatch, where we have to fill a new face with one from - // the old face. - if (cur_mask & (LL_FACE_PATH_BEGIN | LL_FACE_PATH_END | LL_FACE_INNER_SIDE)) - { - // It's a top/bottom/hollow interior face. - if (old_face_mask & LL_FACE_PATH_END) - { - face_mapping[face_bit] = 1; - continue; - } - else - { - S32 cur_outer_mask = LL_FACE_OUTER_SIDE_0; - for (i = 0; i < 4; i++) - { - if (old_face_mask & cur_outer_mask) - { - face_mapping[face_bit] = 5 + i; - break; - } - cur_outer_mask <<= 1; - } - if (i == 4) - { - llwarns << "No path end or outer face in volume!" << llendl; - } - continue; - } - } - - if (cur_mask & (LL_FACE_PROFILE_BEGIN | LL_FACE_PROFILE_END)) - { - // A cut slice. Use the hollow interior if we have it. - if (old_face_mask & LL_FACE_INNER_SIDE) - { - face_mapping[face_bit] = 2; - continue; - } - - // No interior, use the bottom face. - // Could figure out which of the outer faces was nearest, but that would be harder. - if (old_face_mask & LL_FACE_PATH_END) - { - face_mapping[face_bit] = 1; - continue; - } - else - { - S32 cur_outer_mask = LL_FACE_OUTER_SIDE_0; - for (i = 0; i < 4; i++) - { - if (old_face_mask & cur_outer_mask) - { - face_mapping[face_bit] = 5 + i; - break; - } - cur_outer_mask <<= 1; - } - if (i == 4) - { - llwarns << "No path end or outer face in volume!" << llendl; - } - continue; - } - } - - // OK, the face that's missing is an outer face... - // Pull from the nearest adjacent outer face (there's always guaranteed to be one... - S32 cur_outer = face_bit - 5; - S32 min_dist = 5; - S32 min_outer_bit = -1; - S32 i; - for (i = 0; i < 4; i++) - { - if (old_face_mask & (LL_FACE_OUTER_SIDE_0 << i)) - { - S32 dist = abs(i - cur_outer); - if (dist < min_dist) - { - min_dist = dist; - min_outer_bit = i + 5; - } - } - } - if (-1 == min_outer_bit) - { - llinfos << (LLVolume *)mVolumep << llendl; - llwarns << "Bad! No outer faces, impossible!" << llendl; - } - face_mapping[face_bit] = min_outer_bit; - } - - - setNumTEs(mVolumep->getNumFaces()); - for (face_bit = 0; face_bit < 9; face_bit++) - { - cur_mask = 0x1 << face_bit; - if (new_face_mask & cur_mask) - { - if (-1 == face_mapping[face_bit]) - { - llwarns << "No mapping from old face to new face!" << llendl; - } - - S32 te_num = face_index_from_id(cur_mask, mVolumep->getProfile().mFaces); - setTE(te_num, old_tes[face_mapping[face_bit]]); - } - } + } + return TRUE; } diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 3e1c160198f..f5b596b963a 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -62,8 +62,6 @@ S32 LLImageGL::sCount = 0; BOOL LLImageGL::sGlobalUseAnisotropic = FALSE; F32 LLImageGL::sLastFrameTime = 0.f; -S32 LLImageGL::sMaxTextureSize = 0 ; - std::set<LLImageGL*> LLImageGL::sImageList; //************************************************************************************** @@ -379,16 +377,6 @@ void LLImageGL::setSize(S32 width, S32 height, S32 ncomponents) { if (width != mWidth || height != mHeight || ncomponents != mComponents) { - if(width > 1024 || height > 1024) - { - llwarns << "texture size is big: width: " << width << " height: " << height << llendl ; - if(!sMaxTextureSize) - { - glGetIntegerv(GL_MAX_TEXTURE_SIZE, (GLint*)&sMaxTextureSize) ; - } - llwarns << "max texture size is: " << sMaxTextureSize << llendl ; - } - // Check if dimensions are a power of two! if (!checkSize(width,height)) { diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h index 01159ed7447..cb565939d9b 100644 --- a/indra/llrender/llimagegl.h +++ b/indra/llrender/llimagegl.h @@ -213,8 +213,6 @@ class LLImageGL : public LLRefCount static U32 sBindCount; // Tracks number of texture binds for current frame static U32 sUniqueCount; // Tracks number of unique texture binds for current frame static BOOL sGlobalUseAnisotropic; - - static S32 sMaxTextureSize ; #if DEBUG_MISS BOOL mMissed; // Missed on last bind? BOOL getMissed() const { return mMissed; }; diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index b2f9f0a2ca0..3375d0e9464 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2808,7 +2808,7 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>0</integer> + <integer>1</integer> </map> <key>FloaterActiveSpeakersSortColumn</key> <map> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 44b9cb2198b..359e5df4f84 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -3278,8 +3278,6 @@ void LLAppViewer::idle() return; } - gViewerWindow->handlePerFrameHover(); - /////////////////////////////////////// // Agent and camera movement // @@ -3557,12 +3555,12 @@ void LLAppViewer::sendLogoutRequest() if (mLogoutMarkerFile) { llinfos << "Created logout marker file " << mLogoutMarkerFileName << llendl; + apr_file_close(mLogoutMarkerFile); } else { llwarns << "Cannot create logout marker file " << mLogoutMarkerFileName << llendl; } - apr_file_close(mLogoutMarkerFile); } } @@ -3786,6 +3784,11 @@ void LLAppViewer::forceErrorSoftwareException() throw; } +void LLAppViewer::forceErrorDriverCrash() +{ + glDeleteTextures(1, NULL); +} + void LLAppViewer::initMainloopTimeout(const std::string& state, F32 secs) { if(!mMainloopTimeout) diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index b4668fc1cab..638bd241ce9 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -116,6 +116,7 @@ class LLAppViewer : public LLApp virtual void forceErrorBadMemoryAccess(); virtual void forceErrorInifiniteLoop(); virtual void forceErrorSoftwareException(); + virtual void forceErrorDriverCrash(); // *NOTE: There are currently 3 settings files: // "Global", "PerAccount" and "CrashSettings" diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 26feb56e739..16928923bf1 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -83,7 +83,7 @@ const std::string LLAppViewerWin32::sWindowClass = "Second Life"; LONG WINAPI viewer_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop) { // *NOTE:Mani - this code is stolen from LLApp, where its never actually used. - + //OSMessageBox("Attach Debugger Now", "Error", OSMB_OK); // Translate the signals/exceptions into cross-platform stuff // Windows implementation _tprintf( _T("Entering Windows Exception Handler...\n") ); diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index a0572b7a2cd..d5619f2bf06 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -499,7 +499,7 @@ F32 LLDrawable::updateXform(BOOL undamped) F32 dist_squared = 0.f; F32 camdist2 = (mDistanceWRTCamera * mDistanceWRTCamera); - if (damped && mDistanceWRTCamera > 0.0f) + if (damped && isVisible()) { F32 lerp_amt = llclamp(LLCriticalDamp::getInterpolant(OBJECT_DAMPING_TIME_CONSTANT), 0.f, 1.f); LLVector3 new_pos = lerp(old_pos, target_pos, lerp_amt); @@ -523,11 +523,19 @@ F32 LLDrawable::updateXform(BOOL undamped) { // snap to final position dist_squared = 0.0f; + if (!isRoot()) + { //child prim snapping to some position, needs a rebuild + gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE); + } } } if ((mCurrentScale != target_scale) || - (!isRoot() && (dist_squared >= MIN_INTERPOLATE_DISTANCE_SQUARED) || !mVObjp->getAngularVelocity().isExactlyZero())) + (!isRoot() && + (dist_squared >= MIN_INTERPOLATE_DISTANCE_SQUARED) || + !mVObjp->getAngularVelocity().isExactlyZero() || + target_pos != mXform.getPosition() || + target_rot != mXform.getRotation())) { //child prim moving or scale change requires immediate rebuild gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE); } diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp index b23819be27a..60c41159d28 100644 --- a/indra/newview/lldrawpoolbump.cpp +++ b/indra/newview/lldrawpoolbump.cpp @@ -593,7 +593,7 @@ BOOL LLDrawPoolBump::bindBumpMap(LLDrawInfo& params) if( bump_code < LLStandardBumpmap::sStandardBumpmapCount ) { bump = gStandardBumpmapList[bump_code].mImage; - gBumpImageList.addTextureStats(bump_code, tex->getID(), params.mVSize, 1, 1); + gBumpImageList.addTextureStats(bump_code, tex->getID(), params.mVSize); } break; } @@ -735,14 +735,13 @@ LLBumpImageList::~LLBumpImageList() // Note: Does nothing for entries in gStandardBumpmapList that are not actually standard bump images (e.g. none, brightness, and darkness) -void LLBumpImageList::addTextureStats(U8 bump, const LLUUID& base_image_id, - F32 pixel_area, F32 texel_area_ratio, F32 cos_center_angle) +void LLBumpImageList::addTextureStats(U8 bump, const LLUUID& base_image_id, F32 virtual_size) { bump &= TEM_BUMP_MASK; LLViewerImage* bump_image = gStandardBumpmapList[bump].mImage; if( bump_image ) { - bump_image->addTextureStats(pixel_area, texel_area_ratio, cos_center_angle); + bump_image->addTextureStats(virtual_size); } } diff --git a/indra/newview/lldrawpoolbump.h b/indra/newview/lldrawpoolbump.h index 7bd2ac7aa6f..f5cb0cb7694 100644 --- a/indra/newview/lldrawpoolbump.h +++ b/indra/newview/lldrawpoolbump.h @@ -132,8 +132,7 @@ class LLBumpImageList LLImageGL* getBrightnessDarknessImage(LLViewerImage* src_image, U8 bump_code); // LLImageGL* getTestImage(); - void addTextureStats(U8 bump, const LLUUID& base_image_id, - F32 pixel_area, F32 texel_area_ratio, F32 cos_center_angle); + void addTextureStats(U8 bump, const LLUUID& base_image_id, F32 virtual_size); static void onSourceBrightnessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata ); static void onSourceDarknessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata ); diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp index c58c68373fc..eca9f8aba25 100644 --- a/indra/newview/lleventpoll.cpp +++ b/indra/newview/lleventpoll.cpp @@ -32,9 +32,9 @@ #include "llviewerprecompiledheaders.h" +#include "lleventpoll.h" #include "llappviewer.h" #include "llagent.h" -#include "lleventpoll.h" #include "llhttpclient.h" #include "llhttpstatuscodes.h" @@ -42,6 +42,7 @@ #include "lltimer.h" #include "llviewerregion.h" #include "message.h" +#include "lltrans.h" namespace { @@ -226,11 +227,15 @@ namespace // They are essentially disconnected from the region even though some things may still work. // Since things won't get better until they relog we force a disconnect now. - // *NOTE:Mani - This force disconnect was causing logouts even when disconnected - // from neighboring regions. - // *FIX:Mani We may want to re enable forceDisconnect for the agents main region. - // *FIX:Mani If reimplemting Translate!!!! - // LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in."); + // *NOTE:Mani - The following condition check to see if this failing event poll + // is attached to the Agent's main region. If so we disconnect the viewer. + // Else... its a child region and we just leave the dead event poll stopped and + // continue running. + if(gAgent.getRegion() && gAgent.getRegion()->getHost().getIPandPort() == mSender) + { + llwarns << "Forcing disconnect due to stalled main region event poll." << llendl; + LLAppViewer::instance()->forceDisconnect(LLTrans::getString("AgentLostConnection")); + } } } diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp index a0244d5ac20..de8a094fa99 100644 --- a/indra/newview/llfloaterinspect.cpp +++ b/indra/newview/llfloaterinspect.cpp @@ -214,6 +214,12 @@ void LLFloaterInspect::refresh() LLSD row; char time[MAX_STRING]; std::string owner_name, creator_name; + + if (obj->mCreationDate == 0) + { // Don't have valid information from the server, so skip this one + continue; + } + time_t timestamp = (time_t) (obj->mCreationDate/1000000); LLStringUtil::copy(time, ctime(×tamp), MAX_STRING); time[24] = '\0'; diff --git a/indra/newview/llfloaterlagmeter.cpp b/indra/newview/llfloaterlagmeter.cpp index 02741e01802..15f1e4852d8 100644 --- a/indra/newview/llfloaterlagmeter.cpp +++ b/indra/newview/llfloaterlagmeter.cpp @@ -184,7 +184,7 @@ void LLFloaterLagMeter::determineClient() { mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) ); } - else if(LLViewerImage::sBoundTextureMemory > LLViewerImage::sMaxBoundTextureMem) + else if((LLViewerImage::sBoundTextureMemory >> 20) > LLViewerImage::sMaxBoundTextureMem) { mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) ); } diff --git a/indra/newview/llfloatervoicedevicesettings.cpp b/indra/newview/llfloatervoicedevicesettings.cpp index 00eac232408..92b8e3397f2 100644 --- a/indra/newview/llfloatervoicedevicesettings.cpp +++ b/indra/newview/llfloatervoicedevicesettings.cpp @@ -86,14 +86,15 @@ BOOL LLPanelVoiceDeviceSettings::postBuild() void LLPanelVoiceDeviceSettings::draw() { // let user know that volume indicator is not yet available - childSetVisible("wait_text", !gVoiceClient->inTuningMode()); + bool is_in_tuning_mode = gVoiceClient->inTuningMode(); + childSetVisible("wait_text", !is_in_tuning_mode); LLPanel::draw(); F32 voice_power = gVoiceClient->tuningGetEnergy(); S32 discrete_power = 0; - if (!gVoiceClient->inTuningMode()) + if (!is_in_tuning_mode) { discrete_power = 0; } @@ -102,7 +103,7 @@ void LLPanelVoiceDeviceSettings::draw() discrete_power = llmin(4, llfloor((voice_power / LLVoiceClient::OVERDRIVEN_POWER_LEVEL) * 4.f)); } - if (gVoiceClient->inTuningMode()) + if (is_in_tuning_mode) { for(S32 power_bar_idx = 0; power_bar_idx < 5; power_bar_idx++) { @@ -137,7 +138,11 @@ void LLPanelVoiceDeviceSettings::apply() } // assume we are being destroyed by closing our embedding window - gSavedSettings.setF32("AudioLevelMic", mMicVolume); + LLSlider* volume_slider = getChild<LLSlider>("mic_volume_slider"); + if(volume_slider) + { + gSavedSettings.setF32("AudioLevelMic", (F32)volume_slider->getValue().asReal()); + } } void LLPanelVoiceDeviceSettings::cancel() @@ -150,6 +155,13 @@ void LLPanelVoiceDeviceSettings::cancel() if(mCtrlOutputDevices) mCtrlOutputDevices->setSimple(mOutputDevice); + + gSavedSettings.setF32("AudioLevelMic", mMicVolume); + LLSlider* volume_slider = getChild<LLSlider>("mic_volume_slider"); + if(volume_slider) + { + volume_slider->setValue(mMicVolume); + } } void LLPanelVoiceDeviceSettings::refresh() @@ -157,8 +169,8 @@ void LLPanelVoiceDeviceSettings::refresh() //grab current volume LLSlider* volume_slider = getChild<LLSlider>("mic_volume_slider"); // set mic volume tuning slider based on last mic volume setting - mMicVolume = (F32)volume_slider->getValue().asReal(); - gVoiceClient->tuningSetMicVolume(mMicVolume); + F32 current_volume = (F32)volume_slider->getValue().asReal(); + gVoiceClient->tuningSetMicVolume(current_volume); // Fill in popup menus mCtrlInputDevices = getChild<LLComboBox>("voice_input_device"); @@ -248,13 +260,19 @@ void LLPanelVoiceDeviceSettings::onClose(bool app_quitting) // static void LLPanelVoiceDeviceSettings::onCommitInputDevice(LLUICtrl* ctrl, void* user_data) { - gSavedSettings.setString("VoiceInputAudioDevice", ctrl->getValue().asString()); + if(gVoiceClient) + { + gVoiceClient->setCaptureDevice(ctrl->getValue().asString()); + } } // static void LLPanelVoiceDeviceSettings::onCommitOutputDevice(LLUICtrl* ctrl, void* user_data) { - gSavedSettings.setString("VoiceOutputAudioDevice", ctrl->getValue().asString()); + if(gVoiceClient) + { + gVoiceClient->setRenderDevice(ctrl->getValue().asString()); + } } // diff --git a/indra/newview/llhudeffectpointat.cpp b/indra/newview/llhudeffectpointat.cpp index 76fdf1798cb..88521df29c4 100644 --- a/indra/newview/llhudeffectpointat.cpp +++ b/indra/newview/llhudeffectpointat.cpp @@ -442,8 +442,10 @@ bool LLHUDEffectPointAt::calcTargetPosition() mTargetPos -= mSourceObject->getRenderPosition(); - if (!mTargetPos.isFinite()) + if (!llfinite(mTargetPos.lengthSquared())) + { return false; + } if (mSourceObject->isAvatar()) { diff --git a/indra/newview/llhudicon.cpp b/indra/newview/llhudicon.cpp index 8c6b906ccdd..0c7d785ae09 100644 --- a/indra/newview/llhudicon.cpp +++ b/indra/newview/llhudicon.cpp @@ -274,7 +274,7 @@ BOOL LLHUDIcon::lineSegmentIntersect(const LLVector3& start, const LLVector3& en LLVector3 dir = end-start; if (LLTriangleRayIntersect(upper_right, upper_left, lower_right, start, dir, NULL, NULL, &t, FALSE) || - LLTriangleRayIntersect(lower_left, lower_right, upper_left, start, dir, NULL, NULL, &t, FALSE)) + LLTriangleRayIntersect(upper_left, lower_left, lower_right, start, dir, NULL, NULL, &t, FALSE)) { if (intersection) { diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp index 79eb2dd1d45..a9b0610ed5f 100644 --- a/indra/newview/lllogchat.cpp +++ b/indra/newview/lllogchat.cpp @@ -107,7 +107,8 @@ void LLLogChat::loadHistory(std::string filename , void (*callback)(ELogLineType { if(!filename.size()) { - llerrs << "Filename is Empty!" << llendl; + llwarns << "Filename is Empty!" << llendl; + return ; } LLFILE* fptr = LLFile::fopen(makeLogFileName(filename), "r"); /*Flawfinder: ignore*/ diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp index d0993e7dca8..bfcba599750 100644 --- a/indra/newview/llmutelist.cpp +++ b/indra/newview/llmutelist.cpp @@ -73,6 +73,24 @@ #include "llviewerobject.h" #include "llviewerobjectlist.h" +namespace +{ + // This method is used to return an object to mute given an object id. + // Its used by the LLMute constructor and LLMuteList::isMuted. + LLViewerObject* get_object_to_mute_from_id(LLUUID object_id) + { + LLViewerObject *objectp = gObjectList.findObject(object_id); + if ((objectp) && (!objectp->isAvatar())) + { + LLViewerObject *parentp = (LLViewerObject *)objectp->getParent(); + if (parentp && parentp->getID() != gAgent.getID()) + { + objectp = parentp; + } + } + return objectp; + } +} // "emptymutelist" class LLDispatchEmptyMuteList : public LLDispatchHandler @@ -107,15 +125,21 @@ LLMute::LLMute(const LLUUID& id, const std::string& name, EType type, U32 flags) mFlags(flags) { // muting is done by root objects only - try to find this objects root - LLViewerObject *objectp = gObjectList.findObject(mID); - if ((objectp) && (!objectp->isAvatar())) + LLViewerObject* mute_object = get_object_to_mute_from_id(id); + if(mute_object && mute_object->getID() != id) { - LLViewerObject *parentp = (LLViewerObject *)objectp->getParent(); - if (parentp) + mID = mute_object->getID(); + LLNameValue* firstname = mute_object->getNVPair("FirstName"); + LLNameValue* lastname = mute_object->getNVPair("LastName"); + if (firstname && lastname) { - mID = parentp->getID(); + mName.assign( firstname->getString() ); + mName.append(" "); + mName.append( lastname->getString() ); } + mType = mute_object->isAvatar() ? AGENT : OBJECT; } + } @@ -664,19 +688,10 @@ BOOL LLMuteList::saveToFile(const std::string& filename) BOOL LLMuteList::isMuted(const LLUUID& id, const std::string& name, U32 flags) const { - LLUUID id_to_check = id; - // for objects, check for muting on their parent prim - LLViewerObject *objectp = gObjectList.findObject(id); - if ((objectp) && (!objectp->isAvatar())) - { - LLViewerObject *parentp = (LLViewerObject *)objectp->getParent(); - if (parentp) - { - id_to_check = parentp->getID(); - } - } - + LLViewerObject* mute_object = get_object_to_mute_from_id(id); + LLUUID id_to_check = (mute_object) ? mute_object->getID() : id; + // don't need name or type for lookup LLMute mute(id_to_check); mute_set_t::const_iterator mute_it = mMutes.find(mute); diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index b6a35ac3928..9aa5c37b265 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -4954,6 +4954,7 @@ LLSelectNode::LLSelectNode(LLViewerObject* object, BOOL glow) mSitName = LLStringUtil::null; mSilhouetteExists = FALSE; mDuplicated = FALSE; + mCreationDate = 0; saveColors(); } @@ -4991,6 +4992,7 @@ LLSelectNode::LLSelectNode(const LLSelectNode& nodep) mFromTaskID = nodep.mFromTaskID; mTouchName = nodep.mTouchName; mSitName = nodep.mSitName; + mCreationDate = nodep.mCreationDate; mSilhouetteVertices = nodep.mSilhouetteVertices; mSilhouetteNormals = nodep.mSilhouetteNormals; diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index d32858c1eac..3fcb9c50be5 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -563,6 +563,14 @@ bool LLTextureFetchWorker::doWork(S32 param) { mFetchTimer.reset(); } + + if (mImagePriority <= 0.0f) + { + if (mState < WRITE_TO_CACHE) + { + return true; // cancel request + } + } if (mState == INIT) { @@ -709,7 +717,7 @@ bool LLTextureFetchWorker::doWork(S32 param) mFetcher->lockQueue(); mFetcher->removeFromNetworkQueue(this); mFetcher->unlockQueue(); - if (!mFormattedImage->getDataSize()) + if (mFormattedImage.isNull() || !mFormattedImage->getDataSize()) { // processSimulatorPackets() failed // llwarns << "processSimulatorPackets() failed to load buffer" << llendl; @@ -1051,17 +1059,22 @@ void LLTextureFetchWorker::removeFromCache() bool LLTextureFetchWorker::processSimulatorPackets() { + if (mFormattedImage.isNull() || mRequestedSize < 0) + { + // not sure how we got here, but not a valid state, abort! + mFormattedImage = NULL; + return true; + } + if (mLastPacket >= mFirstPacket) { - llassert_always(mFormattedImage) ; S32 buffer_size = mFormattedImage->getDataSize(); for (S32 i = mFirstPacket; i<=mLastPacket; i++) { - llassert_always(mPackets[i]) ; + llassert_always(mPackets[i]); buffer_size += mPackets[i]->mSize; } bool have_all_data = mLastPacket >= mTotalPackets-1; - llassert_always(mRequestedSize > 0); if (buffer_size >= mRequestedSize || have_all_data) { /// We have enough (or all) data @@ -1228,7 +1241,12 @@ void LLTextureFetchWorker::callbackDecoded(bool success) bool LLTextureFetchWorker::decodeImage() { - llassert_always(mImageWorker); + if(!mImageWorker) + { + //LLTextureFetchWorker is aborted, skip image decoding. + return true ; + } + bool res = true; if (mRawImage.isNull()) { @@ -1642,7 +1660,7 @@ void LLTextureFetch::sendRequestListToSimulators() S32 packet = req->mLastPacket + 1; gMessageSystem->nextBlockFast(_PREHASH_RequestImage); gMessageSystem->addUUIDFast(_PREHASH_Image, req->mID); - gMessageSystem->addS8Fast(_PREHASH_DiscardLevel, (S8)req->mSimRequestedDiscard); + gMessageSystem->addS8Fast(_PREHASH_DiscardLevel, (S8)req->mDesiredDiscard); gMessageSystem->addF32Fast(_PREHASH_DownloadPriority, req->mImagePriority); gMessageSystem->addU32Fast(_PREHASH_Packet, packet); gMessageSystem->addU8Fast(_PREHASH_Type, req->mType); diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp index 450e5d83afc..ab7d70d20ed 100644 --- a/indra/newview/lltextureview.cpp +++ b/indra/newview/lltextureview.cpp @@ -163,7 +163,7 @@ void LLTextureBar::draw() { color = LLColor4::magenta; } - else if (mImagep->getDecodePriority() == 0.0f) + else if (mImagep->getDecodePriority() <= 0.0f) { color = LLColor4::grey; color[VALPHA] = .7f; } @@ -613,6 +613,7 @@ void LLTextureView::draw() { pri = imagep->getDecodePriority(); } + pri = llclamp(pri, 0.0f, HIGH_PRIORITY-1.f); if (sDebugImages.find(imagep) != sDebugImages.end()) { diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index e66bccf6c9b..16a830a1109 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -556,6 +556,7 @@ void settings_setup_listeners() gSavedSettings.getControl("VivoxDebugServerName")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); gSavedSettings.getControl("VoiceInputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); gSavedSettings.getControl("VoiceOutputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); + gSavedSettings.getControl("AudioLevelMic")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); gSavedSettings.getControl("LipSyncEnabled")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); } diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 694c0503f4c..3f4e1353df9 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -254,6 +254,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot) gViewerWindow->performPick(); } + gViewerWindow->handlePerFrameHover(); LLAppViewer::instance()->pingMainloopTimeout("Display:CheckStates"); LLGLState::checkStates(); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index e0b7b233ecd..417117bdf12 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -404,6 +404,7 @@ void force_error_llerror(void *); void force_error_bad_memory_access(void *); void force_error_infinite_loop(void *); void force_error_software_exception(void *); +void force_error_driver_crash(void *); void handle_stopall(void*); //void handle_hinge(void*); @@ -937,6 +938,7 @@ void init_client_menu(LLMenuGL* menu) sub->append(new LLMenuItemCallGL("Force LLError And Crash", &force_error_llerror)); sub->append(new LLMenuItemCallGL("Force Bad Memory Access", &force_error_bad_memory_access)); sub->append(new LLMenuItemCallGL("Force Infinite Loop", &force_error_infinite_loop)); + sub->append(new LLMenuItemCallGL("Force Driver Crash", &force_error_driver_crash)); sub->append(new LLMenuItemCallGL("Force Disconnect Viewer", &handle_disconnect_viewer)); // *NOTE:Mani this isn't handled yet... sub->append(new LLMenuItemCallGL("Force Software Exception", &force_error_unhandled_exception)); sub->createJumpKeys(); @@ -6883,6 +6885,11 @@ void force_error_software_exception(void *) LLAppViewer::instance()->forceErrorSoftwareException(); } +void force_error_driver_crash(void *) +{ + LLAppViewer::instance()->forceErrorDriverCrash(); +} + class LLToolsUseSelectionForGrid : public view_listener_t { bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp index f1c01732f14..d513c021eea 100644 --- a/indra/newview/llviewerpartsim.cpp +++ b/indra/newview/llviewerpartsim.cpp @@ -54,6 +54,7 @@ const F32 PART_SIM_BOX_RAD = 0.5f*F_SQRT3*PART_SIM_BOX_SIDE; //static S32 LLViewerPartSim::sMaxParticleCount = 0; S32 LLViewerPartSim::sParticleCount = 0; +S32 LLViewerPartSim::sParticleCount2 = 0; // This controls how greedy individual particle burst sources are allowed to be, and adapts according to how near the particle-count limit we are. F32 LLViewerPartSim::sParticleAdaptiveRate = 0.0625f; F32 LLViewerPartSim::sParticleBurstRate = 0.5f; @@ -85,12 +86,16 @@ LLViewerPart::LLViewerPart() : { LLMemType mt(LLMemType::MTYPE_PARTICLES); mPartSourcep = NULL; + + ++LLViewerPartSim::sParticleCount2 ; } LLViewerPart::~LLViewerPart() { LLMemType mt(LLMemType::MTYPE_PARTICLES); mPartSourcep = NULL; + + --LLViewerPartSim::sParticleCount2 ; } void LLViewerPart::init(LLPointer<LLViewerPartSource> sourcep, LLViewerImage *imagep, LLVPCallback cb) @@ -264,6 +269,8 @@ void LLViewerPartGroup::updateParticles(const F32 lastdt) LLVector3 gravity(0.f, 0.f, GRAVITY); + LLViewerPartSim::checkParticleCount(mParticles.size()); + LLViewerRegion *regionp = getRegion(); S32 end = (S32) mParticles.size(); for (S32 i = 0 ; i < (S32)mParticles.size();) @@ -417,6 +424,8 @@ void LLViewerPartGroup::updateParticles(const F32 lastdt) gObjectList.killObject(mVOPartGroupp); mVOPartGroupp = NULL; } + + LLViewerPartSim::checkParticleCount() ; } @@ -452,6 +461,19 @@ void LLViewerPartGroup::removeParticlesByID(const U32 source_id) // // +//static +void LLViewerPartSim::checkParticleCount(U32 size) +{ + if(LLViewerPartSim::sParticleCount2 != LLViewerPartSim::sParticleCount) + { + llerrs << "sParticleCount: " << LLViewerPartSim::sParticleCount << " ; sParticleCount2: " << LLViewerPartSim::sParticleCount2 << llendl ; + } + + if(size > (U32)LLViewerPartSim::sParticleCount2) + { + llerrs << "curren particle size: " << LLViewerPartSim::sParticleCount2 << " array size: " << size << llendl ; + } +} LLViewerPartSim::LLViewerPartSim() { @@ -510,6 +532,12 @@ void LLViewerPartSim::addPart(LLViewerPart* part) { put(part); } + else + { + //delete the particle if can not add it in + delete part ; + part = NULL ; + } } @@ -545,7 +573,7 @@ LLViewerPartGroup *LLViewerPartSim::put(LLViewerPart* part) if(!return_group) { llassert_always(part->mPosAgent.isFinite()); - LLViewerPartGroup *groupp = createViewerPartGroup(part->mPosAgent, desired_size, part->mFlags & LLPartData::LL_PART_HUD); + LLViewerPartGroup *groupp = createViewerPartGroup(part->mPosAgent, desired_size, part->mFlags & LLPartData::LL_PART_HUD); groupp->mUniformParticles = (part->mScale.mV[0] == part->mScale.mV[1] && !(part->mFlags & LLPartData::LL_PART_FOLLOW_VELOCITY_MASK)); if (!groupp->addPart(part)) diff --git a/indra/newview/llviewerpartsim.h b/indra/newview/llviewerpartsim.h index e50a1aef1c7..21bc37f8910 100644 --- a/indra/newview/llviewerpartsim.h +++ b/indra/newview/llviewerpartsim.h @@ -198,6 +198,12 @@ class LLViewerPartSim : public LLSingleton<LLViewerPartSim> static const F32 PART_THROTTLE_RESCALE; static const F32 PART_ADAPT_RATE_MULT; static const F32 PART_ADAPT_RATE_MULT_RECIP; + +//debug use only +public: + static S32 sParticleCount2; + + static void checkParticleCount(U32 size = 0) ; }; #endif // LL_LLVIEWERPARTSIM_H diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index 07569a5e546..2af38548166 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -41,6 +41,7 @@ #include "llappviewer.h" #include "pipeline.h" +#include "lltexturefetch.h" #include "llviewerobjectlist.h" #include "llviewerimagelist.h" #include "lltexlayer.h" @@ -564,15 +565,12 @@ void update_statistics(U32 frame_count) LLViewerStats::getInstance()->mAssetKBitStat.addValue(gTransferManager.getTransferBitsIn(LLTCT_ASSET)/1024.f); gTransferManager.resetTransferBitsIn(LLTCT_ASSET); - static S32 tex_bits_idle_count = 0; - if (LLViewerImageList::sTextureBits == 0) + if (LLAppViewer::getTextureFetch()->getNumRequests() == 0) { - if (++tex_bits_idle_count >= 30) - gDebugTimers[0].pause(); + gDebugTimers[0].pause(); } else { - tex_bits_idle_count = 0; gDebugTimers[0].unpause(); } @@ -767,12 +765,15 @@ void send_stats() // misc["int_2"] = LLFloaterDirectory::sNewSearchCount; // Steve: 1.18.6 // misc["int_1"] = LLSD::Integer(gSavedSettings.getU32("RenderQualityPerformance")); // Steve: 1.21 // misc["int_2"] = LLSD::Integer(gFrameStalls); // Steve: 1.21 - F32 unbaked_time = LLVOAvatar::sUnbakedTime / gFrameTime; - misc["int_1"] = LLSD::Integer(unbaked_time * 1000.f); // Steve: 1.22 - F32 grey_time = LLVOAvatar::sGreyTime / gFrameTime; - misc["int_2"] = LLSD::Integer(grey_time * 1000.f); // Steve: 1.22 + + F32 unbaked_time = LLVOAvatar::sUnbakedTime * 1000.f / gFrameTimeSeconds; + misc["int_1"] = LLSD::Integer(unbaked_time); // Steve: 1.22 + F32 grey_time = LLVOAvatar::sGreyTime * 1000.f / gFrameTimeSeconds; + misc["int_2"] = LLSD::Integer(grey_time); // Steve: 1.22 + + llinfos << "Misc Stats: int_1: " << misc["int_1"] << " int_2: " << misc["int_2"] << llendl; + llinfos << "Misc Stats: string_1: " << misc["string_1"] << " string_2: " << misc["string_2"] << llendl; LLViewerStats::getInstance()->addToMessage(body); - LLHTTPClient::post(url, body, new ViewerStatsResponder()); } diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 167b89fd024..e73736bc615 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -923,7 +923,7 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK // *HACK: this should be rolled into the composite tool logic, not // hardcoded at the top level. - if (CAMERA_MODE_CUSTOMIZE_AVATAR != gAgent.getCameraMode()) + if (CAMERA_MODE_CUSTOMIZE_AVATAR != gAgent.getCameraMode() && LLToolMgr::getInstance()->getCurrentTool() != LLToolPie::getInstance()) { // If the current tool didn't process the click, we should show // the pie menu. This can be done by passing the event to the pie @@ -2135,12 +2135,7 @@ void LLViewerWindow::reshape(S32 width, S32 height) gSavedSettings.setBOOL("FullScreen", mWantFullscreen); // store new settings for the mode we are in, regardless - if (mWindow->getFullscreen()) - { - gSavedSettings.setS32("FullScreenWidth", width); - gSavedSettings.setS32("FullScreenHeight", height); - } - else + if (!mWindow->getFullscreen()) { // Only save size if not maximized BOOL maximized = mWindow->getMaximized(); @@ -3626,6 +3621,16 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de // world coordinates of mouse LLVector3 mouse_direction_global = mouseDirectionGlobal(x,y); LLVector3 mouse_point_global = LLViewerCamera::getInstance()->getOrigin(); + + //get near clip plane + LLVector3 n = LLViewerCamera::getInstance()->getAtAxis(); + LLVector3 p = mouse_point_global + n * LLViewerCamera::getInstance()->getNear(); + + //project mouse point onto plane + LLVector3 pos; + line_plane(mouse_point_global, mouse_direction_global, p, n, pos); + mouse_point_global = pos; + LLVector3 mouse_world_start = mouse_point_global; LLVector3 mouse_world_end = mouse_point_global + mouse_direction_global * depth; @@ -4735,79 +4740,13 @@ void LLViewerWindow::getTargetWindow(BOOL& fullscreen, S32& width, S32& height) } } -bool LLViewerWindow::updateResolution() -{ - if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) - { - getWindow()->setNativeAspectRatio(0.f); - } - else - { - getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio")); - } - - reshape(getWindowDisplayWidth(), getWindowDisplayHeight()); - - // Screen resolution - S32 num_resolutions; - LLWindow::LLWindowResolution* supported_resolutions = getWindow()->getSupportedResolutions(num_resolutions); - - // check if resolution has changed - BOOL targetFullscreen; - S32 targetWidth; - S32 targetHeight; - - getTargetWindow(targetFullscreen, targetWidth, targetHeight); - - if ((mIsFullscreenChecked != (bool) targetFullscreen) || - (mIsFullscreenChecked && - (supported_resolutions[mCurrResolutionIndex].mWidth != targetWidth || - supported_resolutions[mCurrResolutionIndex].mHeight != targetHeight) - )) - { - // change fullscreen resolution or switch in/out of windowed mode - BOOL result; - - BOOL logged_in = (LLStartUp::getStartupState() >= STATE_STARTED); - if (mIsFullscreenChecked) - { - result = changeDisplaySettings(TRUE, - LLCoordScreen( supported_resolutions[mCurrResolutionIndex].mWidth, - supported_resolutions[mCurrResolutionIndex].mHeight), - gSavedSettings.getBOOL("DisableVerticalSync"), - logged_in); - } - else - { - result = changeDisplaySettings(FALSE, - LLCoordScreen(gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight")), - TRUE, - logged_in); - } - if (!result) - { - - // GL is non-existent at this point, so we can't continue. - llerrs << "LLPanelDisplay::apply() failed" << llendl; - } - } - - // force aspect ratio - if (mIsFullscreenChecked) - { - LLViewerCamera::getInstance()->setAspect( getDisplayAspectRatio() ); - } - return true; -} - -void LLViewerWindow::requestResolutionUpdate(bool fullscreen_checked, U32 resolution_index) +void LLViewerWindow::requestResolutionUpdate(bool fullscreen_checked) { mResDirty = true; + mWantFullscreen = fullscreen_checked; mIsFullscreenChecked = fullscreen_checked; - mCurrResolutionIndex = resolution_index; } - BOOL LLViewerWindow::checkSettings() { if (mStatesDirty) @@ -4820,42 +4759,70 @@ BOOL LLViewerWindow::checkSettings() // We want to update the resolution AFTER the states getting refreshed not before. if (mResDirty) { - updateResolution(); + if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) + { + getWindow()->setNativeAspectRatio(0.f); + } + else + { + getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio")); + } + + reshape(getWindowDisplayWidth(), getWindowDisplayHeight()); + + // force aspect ratio + if (mIsFullscreenChecked) + { + LLViewerCamera::getInstance()->setAspect( getDisplayAspectRatio() ); + } + mResDirty = false; // This will force a state update the next frame. mStatesDirty = true; } BOOL is_fullscreen = mWindow->getFullscreen(); - if (is_fullscreen && !mWantFullscreen) - { - changeDisplaySettings(FALSE, - LLCoordScreen(gSavedSettings.getS32("WindowWidth"), - gSavedSettings.getS32("WindowHeight")), - TRUE, - mShowFullscreenProgress); - mStatesDirty = true; - return TRUE; + if(mWantFullscreen) + { + LLCoordScreen screen_size; + LLCoordScreen desired_screen_size(gSavedSettings.getS32("FullScreenWidth"), + gSavedSettings.getS32("FullScreenHeight")); + getWindow()->getSize(&screen_size); + if(!is_fullscreen || + screen_size.mX != desired_screen_size.mX + || screen_size.mY != desired_screen_size.mY) + { + if (!LLStartUp::canGoFullscreen()) + { + return FALSE; + } + + LLGLState::checkStates(); + LLGLState::checkTextureChannels(); + changeDisplaySettings(TRUE, + desired_screen_size, + gSavedSettings.getBOOL("DisableVerticalSync"), + mShowFullscreenProgress); + + LLGLState::checkStates(); + LLGLState::checkTextureChannels(); + mStatesDirty = true; + return TRUE; + } } - else if (!is_fullscreen && mWantFullscreen) + else { - if (!LLStartUp::canGoFullscreen()) + if(is_fullscreen) { - return FALSE; + // Changing to windowed mode. + changeDisplaySettings(FALSE, + LLCoordScreen(gSavedSettings.getS32("WindowWidth"), + gSavedSettings.getS32("WindowHeight")), + TRUE, + mShowFullscreenProgress); + mStatesDirty = true; + return TRUE; } - - LLGLState::checkStates(); - LLGLState::checkTextureChannels(); - changeDisplaySettings(TRUE, - LLCoordScreen(gSavedSettings.getS32("FullScreenWidth"), - gSavedSettings.getS32("FullScreenHeight")), - gSavedSettings.getBOOL("DisableVerticalSync"), - mShowFullscreenProgress); - - LLGLState::checkStates(); - LLGLState::checkTextureChannels(); - mStatesDirty = true; - return TRUE; } return FALSE; } @@ -4886,13 +4853,9 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, BOOL old_fullscreen = mWindow->getFullscreen(); if (!old_fullscreen && fullscreen && !LLStartUp::canGoFullscreen()) { - // we can't do this now, so do it later - - gSavedSettings.setS32("FullScreenWidth", size.mX); - gSavedSettings.setS32("FullScreenHeight", size.mY); - //gSavedSettings.setBOOL("DisableVerticalSync", disable_vsync); - - return TRUE; // a lie..., because we'll get to it later + // Not allowed to switch to fullscreen now, so exit early. + // *NOTE: This case should never be reached, but just-in-case. + return TRUE; } U32 fsaa = gSavedSettings.getU32("RenderFSAASamples"); @@ -4979,7 +4942,7 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, #if LL_WINDOWS // Only trigger a reshape after switching to fullscreen; otherwise rely on the windows callback // (otherwise size is wrong; this is the entire window size, reshape wants the visible window size) - if (fullscreen) + if (fullscreen && result_first_try) #endif { reshape(size.mX, size.mY); @@ -5283,7 +5246,16 @@ void LLPickInfo::fetchResults() //{ // mPickType = PICK_PARCEL_WALL; //} - if (objectp) + if (hit_icon && + (!objectp || + icon_dist < (LLViewerCamera::getInstance()->getOrigin()-intersection).magVec())) + { + // was this name referring to a hud icon? + mHUDIcon = hit_icon; + mPickType = PICK_ICON; + mPosGlobal = mHUDIcon->getPositionGlobal(); + } + else if (objectp) { if( objectp->getPCode() == LLViewerObject::LL_VO_SURFACE_PATCH ) { @@ -5335,16 +5307,7 @@ void LLPickInfo::fetchResults() } } } - if (hit_icon && - (!objectp || - icon_dist < (LLViewerCamera::getInstance()->getOrigin()-intersection).magVec())) - { - // was this name referring to a hud icon? - mHUDIcon = hit_icon; - mPickType = PICK_ICON; - mPosGlobal = mHUDIcon->getPositionGlobal(); - } - + if (mPickCallback) { mPickCallback(*this); diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index a55913c5669..1520e779abd 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -346,8 +346,7 @@ class LLViewerWindow : public LLWindowCallbacks void toggleFullscreen(BOOL show_progress); // handle shutting down GL and bringing it back up - bool updateResolution(void); - void requestResolutionUpdate(bool fullscreen_checked, U32 resolution_index); + void requestResolutionUpdate(bool fullscreen_checked); BOOL checkSettings(); void restartDisplay(BOOL show_progress_bar); BOOL changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 4f2504fc172..7e22eb40bbb 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -289,7 +289,9 @@ BOOL LLVOAvatar::sJointDebug = FALSE; S32 LLVOAvatar::sCurJoint = 0; S32 LLVOAvatar::sCurVolume = 0; F32 LLVOAvatar::sUnbakedTime = 0.f; +F32 LLVOAvatar::sUnbakedUpdateTime = 0.f; F32 LLVOAvatar::sGreyTime = 0.f; +F32 LLVOAvatar::sGreyUpdateTime = 0.f; struct LLAvatarTexData { @@ -4722,7 +4724,7 @@ void LLVOAvatar::addLocalTextureStats( LLVOAvatar::ELocTexIndex idx, LLViewerIma desired_pixels = llmin(mPixelArea, (F32)LOCTEX_IMAGE_AREA_OTHER ); imagep->setBoostLevel(LLViewerImage::BOOST_AVATAR); } - imagep->addTextureStats( desired_pixels, texel_area_ratio ); + imagep->addTextureStats( desired_pixels / texel_area_ratio ); if (imagep->getDiscardLevel() < 0) { mHasGrey = TRUE; // for statistics gathering @@ -4744,7 +4746,7 @@ void LLVOAvatar::addBakedTextureStats( LLViewerImage* imagep, F32 pixel_area, F3 { mMaxPixelArea = llmax(pixel_area, mMaxPixelArea); mMinPixelArea = llmin(pixel_area, mMinPixelArea); - imagep->addTextureStats(pixel_area, texel_area_ratio); + imagep->addTextureStats(pixel_area / texel_area_ratio); imagep->setBoostLevel(boost_level); } @@ -9172,9 +9174,19 @@ void LLVOAvatar::cullAvatarsByPixelArea() } else { - sUnbakedTime += gFrameTimeSeconds; + if (gFrameTimeSeconds != sUnbakedUpdateTime) // only update once per frame + { + sUnbakedUpdateTime = gFrameTimeSeconds; + sUnbakedTime += gFrameIntervalSeconds; + } if (grey_avatars > 0) - sGreyTime += gFrameTimeSeconds; + { + if (gFrameTimeSeconds != sGreyUpdateTime) // only update once per frame + { + sGreyUpdateTime = gFrameTimeSeconds; + sGreyTime += gFrameIntervalSeconds; + } + } } } diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 3373357c087..81ab0fd49cf 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -915,7 +915,9 @@ class LLVOAvatar : static ETextureIndex sBakedTextureIndices[BAKED_TEXTURE_COUNT]; static F32 sUnbakedTime; // Total seconds with >=1 unbaked avatars + static F32 sUnbakedUpdateTime; // Last time stats were updated (to prevent multiple updates per frame) static F32 sGreyTime; // Total seconds with >=1 grey avatars + static F32 sGreyUpdateTime; // Last time stats were updated (to prevent multiple updates per frame) //-------------------------------------------------------------------- // Texture Layer Sets and Global Colors diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 1a4f28a8aa3..1d62ec4b9aa 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -933,6 +933,8 @@ void LLVoiceClient::updateSettings() setCaptureDevice(inputDevice); std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice"); setRenderDevice(outputDevice); + F32 mic_level = gSavedSettings.getF32("AudioLevelMic"); + setMicGain(mic_level); setLipSyncEnabled(gSavedSettings.getBOOL("LipSyncEnabled")); } diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp index f5d9119ee05..322516fe565 100644 --- a/indra/newview/llvopartgroup.cpp +++ b/indra/newview/llvopartgroup.cpp @@ -181,6 +181,8 @@ BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable) F32 pixel_meter_ratio = LLViewerCamera::getInstance()->getPixelMeterRatio(); pixel_meter_ratio *= pixel_meter_ratio; + LLViewerPartSim::checkParticleCount(mViewerPartGroupp->mParticles.size()) ; + S32 count=0; mDepth = 0.f; S32 i = 0 ; diff --git a/indra/newview/llvotextbubble.cpp b/indra/newview/llvotextbubble.cpp index 19e7e389e76..de69aac037b 100644 --- a/indra/newview/llvotextbubble.cpp +++ b/indra/newview/llvotextbubble.cpp @@ -119,30 +119,16 @@ BOOL LLVOTextBubble::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) void LLVOTextBubble::updateTextures(LLAgent &agent) { // Update the image levels of all textures... - // First we do some quick checks. - U32 i; - // This doesn't take into account whether the object is in front - // or behind... - - LLVector3 position_local = getPositionAgent() - agent.getCameraPositionAgent(); - F32 dot_product = position_local * agent.getFrameAgent().getAtAxis(); - F32 cos_angle = dot_product / position_local.length(); - - if (cos_angle > 1.f) - { - cos_angle = 1.f; - } - - for (i = 0; i < getNumTEs(); i++) + for (U32 i = 0; i < getNumTEs(); i++) { const LLTextureEntry *te = getTE(i); F32 texel_area_ratio = fabs(te->mScaleS * te->mScaleT); - + texel_area_ratio = llclamp(texel_area_ratio, .125f, 16.f); LLViewerImage *imagep = getTEImage(i); if (imagep) { - imagep->addTextureStats(mPixelArea, texel_area_ratio, cos_angle); + imagep->addTextureStats(mPixelArea / texel_area_ratio); } } } diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index e8e6e5ac1b1..9023147a7da 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -69,8 +69,7 @@ const S32 MIN_QUIET_FRAMES_COALESCE = 30; const F32 FORCE_SIMPLE_RENDER_AREA = 512.f; const F32 FORCE_CULL_AREA = 8.f; -// sadly - we can't lower sculptie rez below b/c residents have a LOT of content that depends on the 128 -const S32 SCULPT_REZ = 128; +const S32 MAX_SCULPT_REZ = 128; BOOL gAnimateTextures = TRUE; extern BOOL gHideSelectedObjects; @@ -499,6 +498,7 @@ void LLVOVolume::updateTextures() else if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY)) { F32 pri = imagep->getDecodePriority(); + pri = llmax(pri, 0.0f); if (pri < min_vsize) min_vsize = pri; if (pri > max_vsize) max_vsize = pri; } @@ -517,7 +517,10 @@ void LLVOVolume::updateTextures() mSculptTexture = gImageList.getImage(id); if (mSculptTexture.notNull()) { - mSculptTexture->addTextureStats(SCULPT_REZ * SCULPT_REZ); + S32 lod = llmin(mLOD, 3); + F32 lodf = ((F32)(4-lod)/4.f); // 0 -> 1.0, 3 -> .25 + F32 tex_size = lodf * MAX_SCULPT_REZ; + mSculptTexture->addTextureStats(2.f * tex_size * tex_size); mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(), (S32)LLViewerImage::BOOST_SCULPTED)); } @@ -1947,6 +1950,8 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& e return FALSE; } + BOOL ret = FALSE; + LLVolume* volume = getVolume(); if (volume) { @@ -2002,6 +2007,8 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& e if (face_hit >= 0 && mDrawable->getNumFaces() > face_hit) { LLFace* face = mDrawable->getFace(face_hit); + v_end = p; + if (pick_transparent || !face->getTexture() || face->getTexture()->getMask(face->surfaceToTexture(tc, p, n))) { if (face_hitp != NULL) @@ -2031,13 +2038,13 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& e *tex_coord = tc; } - return TRUE; + ret = TRUE; } } } } - return FALSE; + return ret; } U32 LLVOVolume::getPartitionType() const diff --git a/indra/newview/llwindebug.cpp b/indra/newview/llwindebug.cpp index 07a53168165..1d4f1a64f52 100644 --- a/indra/newview/llwindebug.cpp +++ b/indra/newview/llwindebug.cpp @@ -123,7 +123,9 @@ MODULE32_NEST Module32Next_; #define NL L"\r\n" //new line BOOL WINAPI Get_Module_By_Ret_Addr(PBYTE Ret_Addr, LPWSTR Module_Name, PBYTE & Module_Addr); - +void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record, + const CONTEXT* context_record, + LLSD& info); void printError( CHAR* msg ) { @@ -186,69 +188,6 @@ BOOL GetProcessThreadIDs(DWORD process_id, std::vector<DWORD>& thread_ids) return( TRUE ); } -void WINAPI GetCallStackData(const CONTEXT* context_struct, LLSD& info) -{ - // Fill Str with call stack info. - // pException can be either GetExceptionInformation() or NULL. - // If pException = NULL - get current call stack. - - LPWSTR Module_Name = new WCHAR[MAX_PATH]; - PBYTE Module_Addr = 0; - - typedef struct STACK - { - STACK * Ebp; - PBYTE Ret_Addr; - DWORD Param[0]; - } STACK, * PSTACK; - - PSTACK Ebp; - - if(context_struct) - { - Ebp = (PSTACK)context_struct->Ebp; - } - else - { - // The context struct is NULL, - // so we will use the current stack. - Ebp = (PSTACK)&context_struct - 1; - - // Skip frame of GetCallStackData(). - if (!IsBadReadPtr(Ebp, sizeof(PSTACK))) - Ebp = Ebp->Ebp; //caller ebp - } - - // Trace CALL_TRACE_MAX calls maximum - not to exceed DUMP_SIZE_MAX. - // Break trace on wrong stack frame. - for (int Ret_Addr_I = 0, i = 0; - (Ret_Addr_I < CALL_TRACE_MAX) && !IsBadReadPtr(Ebp, sizeof(PSTACK)) && !IsBadCodePtr(FARPROC(Ebp->Ret_Addr)); - Ret_Addr_I++, Ebp = Ebp->Ebp, ++i) - { - // If module with Ebp->Ret_Addr found. - - if (Get_Module_By_Ret_Addr(Ebp->Ret_Addr, Module_Name, Module_Addr)) - { - // Save module's address and full path. - info["CallStack"][i]["ModuleName"] = ll_convert_wide_to_string(Module_Name); - info["CallStack"][i]["ModuleAddress"] = (int)Module_Addr; - info["CallStack"][i]["CallOffset"] = (int)(Ebp->Ret_Addr - Module_Addr); - - LLSD params; - // Save 5 params of the call. We don't know the real number of params. - if (!IsBadReadPtr(Ebp, sizeof(PSTACK) + 5 * sizeof(DWORD))) - { - for(int j = 0; j < 5; ++j) - { - params[j] = (int)Ebp->Param[j]; - } - } - info["CallStack"][i]["Parameters"] = params; - } - info["CallStack"][i]["ReturnAddress"] = (int)Ebp->Ret_Addr; - } -} - BOOL GetThreadCallStack(DWORD thread_id, LLSD& info) { if(GetCurrentThreadId() == thread_id) @@ -273,7 +212,7 @@ BOOL GetThreadCallStack(DWORD thread_id, LLSD& info) context_struct.ContextFlags = CONTEXT_FULL; if(GetThreadContext(thread_handle, &context_struct)) { - GetCallStackData(&context_struct, info); + Get_Call_Stack(NULL, &context_struct, info); result = true; } ResumeThread(thread_handle); @@ -328,16 +267,98 @@ BOOL WINAPI Get_Module_By_Ret_Addr(PBYTE Ret_Addr, LPWSTR Module_Name, PBYTE & M return found; } //Get_Module_By_Ret_Addr +bool has_valid_call_before(PDWORD cur_stack_loc) +{ + PBYTE p_first_byte = (PBYTE)(*cur_stack_loc - 1); + PBYTE p_second_byte = (PBYTE)(*cur_stack_loc -2); + PBYTE p_fifth_byte = (PBYTE)(*cur_stack_loc - 5); + PBYTE p_sixth_byte = (PBYTE)(*cur_stack_loc - 6); + + // make sure we can read it + if(IsBadReadPtr(p_sixth_byte, 6 * sizeof(BYTE))) + { + return false; + } + + // check for 9a + 4 bytes + if(*p_fifth_byte == 0x9A) + { + return true; + } + + // Check for E8 + 4 bytes and last byte is 00 or FF + if(*p_fifth_byte == 0xE8 && (*p_first_byte == 0x00 || *p_first_byte == 0xFF)) + { + return true; + } + + // the other is six bytes + if(*p_sixth_byte == 0xFF || *p_second_byte == 0xFF) + { + return true; + } + + return false; +} + +PBYTE get_valid_frame(PBYTE esp) +{ + PDWORD cur_stack_loc = NULL; + const int max_search = 400; + WCHAR module_name[MAX_PATH]; + PBYTE module_addr = 0; + + // round to highest multiple of four + esp = (esp + (4 - ((int)esp % 4)) % 4); + + // scroll through stack a few hundred places. + for (cur_stack_loc = (PDWORD) esp; cur_stack_loc < (PDWORD)esp + max_search; cur_stack_loc += 1) + { + // if you can read the pointer, + if (IsBadReadPtr(cur_stack_loc, sizeof(PDWORD))) + { + continue; + } + + // check if it's in a module + if (!Get_Module_By_Ret_Addr((PBYTE)*cur_stack_loc, module_name, module_addr)) + { + continue; + } + + // check if the code before the instruction ptr is a call + if(!has_valid_call_before(cur_stack_loc)) + { + continue; + } + + // if these all pass, return that ebp, otherwise continue till we're dead + return (PBYTE)(cur_stack_loc - 1); + } + + return NULL; +} //****************************************************************** -void WINAPI Get_Call_Stack(PEXCEPTION_POINTERS pException, LLSD& info) +void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record, + const CONTEXT* context_record, + LLSD& info) //****************************************************************** // Fill Str with call stack info. // pException can be either GetExceptionInformation() or NULL. // If pException = NULL - get current call stack. -{ +{ LPWSTR Module_Name = new WCHAR[MAX_PATH]; PBYTE Module_Addr = 0; - + LLSD params; + PBYTE Esp = NULL; + LLSD tmp_info; + + bool fake_frame = false; + bool ebp_used = false; + const int HEURISTIC_MAX_WALK = 10; + int heuristic_walk_i = 0; + int Ret_Addr_I = 0; + typedef struct STACK { STACK * Ebp; @@ -348,15 +369,23 @@ void WINAPI Get_Call_Stack(PEXCEPTION_POINTERS pException, LLSD& info) STACK Stack = {0, 0}; PSTACK Ebp; - if (pException) //fake frame for exception address + if (exception_record && context_record) //fake frame for exception address { - Stack.Ebp = (PSTACK)pException->ContextRecord->Ebp; - Stack.Ret_Addr = (PBYTE)pException->ExceptionRecord->ExceptionAddress; + Stack.Ebp = (PSTACK)(context_record->Ebp); + Stack.Ret_Addr = (PBYTE)exception_record->ExceptionAddress; Ebp = &Stack; + Esp = (PBYTE) context_record->Esp; + fake_frame = true; + } + else if(context_record) + { + Ebp = (PSTACK)(context_record->Ebp); + Esp = (PBYTE)(context_record->Esp); } else { - Ebp = (PSTACK)&pException - 1; //frame addr of Get_Call_Stack() + Ebp = (PSTACK)&exception_record - 1; //frame addr of Get_Call_Stack() + Esp = (PBYTE)&exception_record; // Skip frame of Get_Call_Stack(). if (!IsBadReadPtr(Ebp, sizeof(PSTACK))) @@ -365,22 +394,21 @@ void WINAPI Get_Call_Stack(PEXCEPTION_POINTERS pException, LLSD& info) // Trace CALL_TRACE_MAX calls maximum - not to exceed DUMP_SIZE_MAX. // Break trace on wrong stack frame. - for (int Ret_Addr_I = 0, i = 0; - (Ret_Addr_I < CALL_TRACE_MAX) && !IsBadReadPtr(Ebp, sizeof(PSTACK)) && !IsBadCodePtr(FARPROC(Ebp->Ret_Addr)); - Ret_Addr_I++, Ebp = Ebp->Ebp, ++i) + for (Ret_Addr_I = 0; + heuristic_walk_i < HEURISTIC_MAX_WALK && + Ret_Addr_I < CALL_TRACE_MAX && !IsBadReadPtr(Ebp, sizeof(PSTACK)) && !IsBadCodePtr(FARPROC(Ebp->Ret_Addr)); + Ret_Addr_I++) { // If module with Ebp->Ret_Addr found. - if (Get_Module_By_Ret_Addr(Ebp->Ret_Addr, Module_Name, Module_Addr)) { // Save module's address and full path. - info["CallStack"][i]["ModuleName"] = ll_convert_wide_to_string(Module_Name); - info["CallStack"][i]["ModuleAddress"] = (int)Module_Addr; - info["CallStack"][i]["CallOffset"] = (int)(Ebp->Ret_Addr - Module_Addr); + tmp_info["CallStack"][Ret_Addr_I]["ModuleName"] = ll_convert_wide_to_string(Module_Name); + tmp_info["CallStack"][Ret_Addr_I]["ModuleAddress"] = (int)Module_Addr; + tmp_info["CallStack"][Ret_Addr_I]["CallOffset"] = (int)(Ebp->Ret_Addr - Module_Addr); - LLSD params; // Save 5 params of the call. We don't know the real number of params. - if (pException && !Ret_Addr_I) //fake frame for exception address + if (fake_frame && !Ret_Addr_I) //fake frame for exception address params[0] = "Exception Offset"; else if (!IsBadReadPtr(Ebp, sizeof(PSTACK) + 5 * sizeof(DWORD))) { @@ -389,10 +417,62 @@ void WINAPI Get_Call_Stack(PEXCEPTION_POINTERS pException, LLSD& info) params[j] = (int)Ebp->Param[j]; } } - info["CallStack"][i]["Parameters"] = params; + tmp_info["CallStack"][Ret_Addr_I]["Parameters"] = params; + } + + tmp_info["CallStack"][Ret_Addr_I]["ReturnAddress"] = (int)Ebp->Ret_Addr; + + // get ready for next frame + // Set ESP to just after return address. Not the real esp, but just enough after the return address + if(!fake_frame) { + Esp = (PBYTE)Ebp + 8; + } + else + { + fake_frame = false; + } + + // is next ebp valid? + // only run if we've never found a good ebp + if( !ebp_used && + (IsBadReadPtr(Ebp->Ebp, sizeof(PSTACK)) || + IsBadCodePtr(FARPROC(Ebp->Ebp->Ret_Addr)) || + !Get_Module_By_Ret_Addr(Ebp->Ebp->Ret_Addr, Module_Name, Module_Addr))) + { + heuristic_walk_i++; + PBYTE new_ebp = get_valid_frame(Esp); + if (new_ebp != NULL) + { + Ebp = (PSTACK)new_ebp; + } + } + else + { + ebp_used = true; + Ebp = Ebp->Ebp; } - info["CallStack"][i]["ReturnAddress"] = (int)Ebp->Ret_Addr; } + + // Now go back through and edit out heuristic stacks that could very well be bogus. + // Leave the top and the last stack chosen by the heuristic, however. + if(heuristic_walk_i > 2) + { + info["CallStack"][0] = tmp_info["CallStack"][0]; + std::string ttest = info["CallStack"][0]["ModuleName"]; + for(int cur_frame = 1; + (cur_frame + heuristic_walk_i - 2 < Ret_Addr_I); + ++cur_frame) + { + // edit out the middle heuristic found frames + info["CallStack"][cur_frame] = tmp_info["CallStack"][cur_frame + heuristic_walk_i - 2]; + } + } + else + { + info = tmp_info; + } + + } //Get_Call_Stack //*********************************** @@ -509,7 +589,7 @@ LLSD WINAPI Get_Exception_Info(PEXCEPTION_POINTERS pException) } //if (pException) // Save call stack info. - Get_Call_Stack(pException, info); + Get_Call_Stack(pException->ExceptionRecord, pException->ContextRecord, info); return info; } //Get_Exception_Info @@ -566,7 +646,7 @@ LPTOP_LEVEL_EXCEPTION_FILTER WINAPI MyDummySetUnhandledExceptionFilter( llinfos << "Someone tried to set the exception filter. Listing call stack modules" << llendl; LLSD cs_info; - GetCallStackData(NULL, cs_info); + Get_Call_Stack(NULL, NULL, cs_info); if(cs_info.has("CallStack") && cs_info["CallStack"].isArray()) { diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index a63b5c5fd16..62e337b2d1c 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -4093,55 +4093,52 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start, const F32 ATTACHMENT_OVERRIDE_DIST = 0.1f; - if (!drawable || !drawable->getVObj()->isAttachment()) - { //check against avatars - sPickAvatar = TRUE; - for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin(); - iter != LLWorld::getInstance()->getRegionList().end(); ++iter) + //check against avatars + sPickAvatar = TRUE; + for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin(); + iter != LLWorld::getInstance()->getRegionList().end(); ++iter) + { + LLViewerRegion* region = *iter; + + LLSpatialPartition* part = region->getSpatialPartition(LLViewerRegion::PARTITION_BRIDGE); + if (part && hasRenderType(part->mDrawableType)) + { + LLDrawable* hit = part->lineSegmentIntersect(start, local_end, pick_transparent, face_hit, &position, tex_coord, normal, bi_normal); + if (hit) { - LLViewerRegion* region = *iter; + if (!drawable || + !drawable->getVObj()->isAttachment() || + (position-local_end).magVec() > ATTACHMENT_OVERRIDE_DIST) + { //avatar overrides if previously hit drawable is not an attachment or + //attachment is far enough away from detected intersection + drawable = hit; + local_end = position; + } + else + { //prioritize attachments over avatars + position = local_end; - LLSpatialPartition* part = region->getSpatialPartition(LLViewerRegion::PARTITION_BRIDGE); - if (part && hasRenderType(part->mDrawableType)) - { - LLDrawable* hit = part->lineSegmentIntersect(start, local_end, pick_transparent, face_hit, &position, tex_coord, normal, bi_normal); - if (hit) + if (face_hit) { - if (!drawable || - !drawable->getVObj()->isAttachment() || - (position-local_end).magVec() > ATTACHMENT_OVERRIDE_DIST) - { //avatar overrides if previously hit drawable is not an attachment or - //attachment is far enough away from detected intersection - drawable = hit; - local_end = position; - } - else - { //prioritize attachments over avatars - position = local_end; - - if (face_hit) - { - *face_hit = local_face_hit; - } - if (tex_coord) - { - *tex_coord = local_texcoord; - } - if (bi_normal) - { - *bi_normal = local_binormal; - } - if (normal) - { - *normal = local_normal; - } - } + *face_hit = local_face_hit; + } + if (tex_coord) + { + *tex_coord = local_texcoord; + } + if (bi_normal) + { + *bi_normal = local_binormal; + } + if (normal) + { + *normal = local_normal; } } } } } - + } //check all avatar nametags (silly, isn't it?) for (std::vector< LLCharacter* >::iterator iter = LLCharacter::sInstances.begin(); diff --git a/indra/newview/skins/default/xui/da/floater_about.xml b/indra/newview/skins/default/xui/da/floater_about.xml index 48ca5401ed2..b96232cac18 100644 --- a/indra/newview/skins/default/xui/da/floater_about.xml +++ b/indra/newview/skins/default/xui/da/floater_about.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="floater_about" title="Om Second Life"> <text_editor name="credits_editor"> - Second Life er gjort muligt for dig af Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ and many others. + Second Life er gjort muligt for dig af Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others. -Tak til følgende beboerne for at bidrage til at sikre, at dette er den bedste version til dato: Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti +Tak til følgende beboerne for at bidrage til at sikre, at dette er den bedste version til dato: afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion APR Copyright (C) 2000-2004 The Apache Software Foundation @@ -27,7 +27,7 @@ Alle rettigheder forbeholdes. Se licenses.txt for detaljer. Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) -We can only see a short distance ahead, but we can see plenty there that needs to be done. --Alan Turing +I get by with a little help from my friends. --Richard Starkey </text_editor> <string name="you_are_at"> Du er ved [POSITION] diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml index 7c9b2427d20..1b7722fffd8 100644 --- a/indra/newview/skins/default/xui/de/floater_about.xml +++ b/indra/newview/skins/default/xui/de/floater_about.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="floater_about" title="Ãœber Second Life"> <text_editor name="credits_editor"> - Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ und vielen anderen. + Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les und vielen anderen. -Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti +Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion APR Copyright (C) 2000-2004 The Apache Software Foundation diff --git a/indra/newview/skins/default/xui/de/role_actions.xml b/indra/newview/skins/default/xui/de/role_actions.xml index 26042bd773d..95eb6c5eb29 100644 --- a/indra/newview/skins/default/xui/de/role_actions.xml +++ b/indra/newview/skins/default/xui/de/role_actions.xml @@ -4,157 +4,157 @@ description="Diese Fähigkeiten ermöglichen das Hinzufügen und Entfernen von Mitgliedern sowie den Beitritt ohne Einladung." name="Membership"> <action description="Personen in diese Gruppe einladen" - longdescription="Personen zu dieser Gruppe einladen können Sie mit 'Neue Person einladen...' unter 'Mitglieder und Rollen' > 'Mitglieder'." + longdescription="Personen zu dieser Gruppe einladen können Sie mit „Neue Person einladen...“ unter „Mitglieder und Rollen“ > „Mitglieder“." name="member invite" /> <action description="Mitglieder aus dieser Gruppe werfen" - longdescription="Mitglieder von der Gruppe ausschließen können Sie mit 'Aus Gruppe werfen' unter 'Mitglieder und Rollen' > 'Mitglieder'. Ein Eigentümer kann jeden, außer einen anderen Eigentümer, ausschließen. Wenn Sie kein Eigentümer sind, können Sie ein Mitglied nur dann von der Gruppe ausschließen, wenn es die Rolle 'Jeder' innehat, aber KEINE ANDERE Rolle. Um Mitgliedern Rollen entziehen zu können, müssen Sie über die Fähigkeit 'Mitgliedern Rollen entziehen' verfügen." + longdescription="Mitglieder von der Gruppe ausschließen können Sie mit „Aus Gruppe werfen“ unter „Mitglieder und Rollen“ > „Mitglieder“. Ein Eigentümer kann jeden, außer einen anderen Eigentümer, ausschließen. Wenn Sie kein Eigentümer sind, können Sie ein Mitglied nur dann von der Gruppe ausschließen, wenn es die Rolle „Jeder“ innehat, aber KEINE ANDERE Rolle. Um Mitgliedern Rollen entziehen zu können, müssen Sie über die Fähigkeit „Mitgliedern Rollen entziehen“ verfügen." name="member eject" /> <action - description="'Registrierung offen' einstellen und 'Beitrittsgebühr' ändern" - longdescription="'Beitritt möglich' erlaubt den Beitritt zur Gruppe ohne vorhergehende Einladung. Die 'Beitrittsgebühr' wird in den Gruppeneinstellungen auf der Registerkarte 'Allgemein' festgelegt." + description="„Registrierung offen“ einstellen und „Beitrittsgebühr“ ändern" + longdescription="„Beitritt möglich“ erlaubt den Beitritt zur Gruppe ohne vorhergehende Einladung. Die „Beitrittsgebühr“ wird in den Gruppeneinstellungen auf der Registerkarte „Allgemein“ festgelegt." name="member options" /> </action_set> <action_set description="Diese Fähigkeiten ermöglichen das Hinzufügen, Entfernen und Ändern von Gruppenrollen, das Zuweisen und Entfernen von Rollen und das Zuweisen von Fähigkeiten zu Rollen." name="Roles"> <action description="Neue Rollen erstellen" - longdescription="Neue Rollen erstellen Sie unter 'Mitglieder und Rollen' > 'Rollen'." + longdescription="Neue Rollen erstellen Sie unter „Mitglieder und Rollen“ > „Rollen“." name="role create" /> <action description="Rollen löschen" - longdescription="Rollen löschen können Sie unter 'Mitglieder und Rollen' > 'Rollen'." + longdescription="Rollen löschen können Sie unter „Mitglieder und Rollen“ > „Rollen“." name="role delete" /> <action description="Rollennamen, Titel und Beschreibung ändern" - longdescription="Namen, Titel und Beschreibungen von Rollen können Sie nach Auswahl einer Rolle unten auf der Registerkarte 'Mitglieder und Rollen' > 'Rollen' ändern." + longdescription="Namen, Titel und Beschreibungen von Rollen können Sie nach Auswahl einer Rolle unten auf der Registerkarte „Mitglieder und Rollen“ > „Rollen“ ändern." name="role properties" /> <action description="Mitgliedern nur eigene Rollen zuweisen" - longdescription="Mitgliedern nur eigene Rollen zuweisen können Sie im Bereich 'Zugewiesene Rollen' auf der Registerkarte 'Mitglieder und Rollen' > 'Mitglieder'. Ein Mitglied mit dieser Fähigkeit kann anderen Mitgliedern nur die eigenen Rollen zuweisen." + longdescription="Mitgliedern nur eigene Rollen zuweisen können Sie im Bereich „Zugewiesene Rollen“ auf der Registerkarte „Mitglieder und Rollen“ > „Mitglieder“. Ein Mitglied mit dieser Fähigkeit kann anderen Mitgliedern nur die eigenen Rollen zuweisen." name="role assign member limited" /> <action description="Mitgliedern beliebige Rolle zuweisen" - longdescription="Mitgliedern beliebige Rolle zuweisen können Sie im Bereich 'Zugewiesene Rollen' auf der Registerkarte 'Mitglieder und Rollen' > 'Mitglieder'. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann sich selbst und jedem anderen Mitglied (außer dem Eigentümer) Rollen mit weitreichenden Fähigkeiten zuweisen und damit fast Eigentümerrechte erreichen. Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen." + longdescription="Mitgliedern beliebige Rolle zuweisen können Sie im Bereich „Zugewiesene Rollen“ auf der Registerkarte „Mitglieder und Rollen“ > „Mitglieder“. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann sich selbst und jedem anderen Mitglied (außer dem Eigentümer) Rollen mit weitreichenden Fähigkeiten zuweisen und damit fast Eigentümerrechte erreichen. Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen." name="role assign member" /> <action description="Mitgliedern Rollen entziehen" - longdescription="Mitgliedern Rollen entziehen können Sie im Bereich 'Rollen' auf der Registerkarte 'Mitglieder und Rollen' > 'Mitglieder'. Eigentümer können nicht entfernt werden." + longdescription="Mitgliedern Rollen entziehen können Sie im Bereich „Rollen“ auf der Registerkarte „Mitglieder und Rollen“ > „Mitglieder“. Eigentümer können nicht entfernt werden." name="role remove member" /> <action description="Rollenfähigkeiten zuweisen und entfernen" - longdescription="Rollenfähigkeiten zuweisen und entfernen können Sie im Bereich 'Zulässige Fähigkeiten' auf der Registerkarte 'Mitglieder und Rollen' > 'Rollen'. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann sich selbst und jedem anderen Mitglied (außer dem Eigentümer) alle Fähigkeiten zuweisen und damit fast Eigentümerrechte erreichen. Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen." + longdescription="Rollenfähigkeiten zuweisen und entfernen können Sie im Bereich „Zulässige Fähigkeiten“ auf der Registerkarte „Mitglieder und Rollen“ > „Rollen“. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann sich selbst und jedem anderen Mitglied (außer dem Eigentümer) alle Fähigkeiten zuweisen und damit fast Eigentümerrechte erreichen. Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen." name="role change actions" /> </action_set> <action_set description="Diese Fähigkeiten ermöglichen es, die Gruppenidentität zu ändern, z. B. öffentliche Sichtbarkeit, Charta und Insignien." name="Group Identity"> <action - description="Charta, Insignien und 'Im Web veröffentlichen' ändern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind." - longdescription="Charta, Insignien und 'Im Web veröffentlichen' ändern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind. Diese Einstellungen finden Sie auf der Registerkarte 'Allgemein'." + description="Charta, Insignien und „Im Web veröffentlichen“ ändern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind." + longdescription="Charta, Insignien und „Im Web veröffentlichen“ ändern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind. Diese Einstellungen finden Sie auf der Registerkarte „Allgemein“." name="group change identity" /> </action_set> <action_set - description="Diese Fähigkeiten ermöglichen es, gruppeneigenes Land zu übertragen, zu bearbeiten und zu verkaufen. Klicken Sie mit rechts auf den Boden und wählen Sie 'Land-Info...' oder klicken Sie in der Menüleiste auf den Parzellennamen." + description="Diese Fähigkeiten ermöglichen es, gruppeneigenes Land zu übertragen, zu bearbeiten und zu verkaufen. Klicken Sie mit rechts auf den Boden und wählen Sie „Land-Info...“ oder klicken Sie in der Menüleiste auf den Parzellennamen." name="Parcel Management"> <action description="Land übertragen und für Gruppe kaufen" - longdescription="Land übertragen und für Gruppe kaufen. Diese Einstellung finden Sie unter 'Land-Info' > 'Allgemein'." + longdescription="Land übertragen und für Gruppe kaufen. Diese Einstellung finden Sie unter „Land-Info“ > „Allgemein“." name="land deed" /> <action description="Land Governor Linden überlassen" - longdescription="Land Governor Linden überlassen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann gruppeneigenes Land unter 'Land-Info' > 'Allgemein' aufgeben und es ohne Verkauf in das Eigentum von Linden zurückführen! Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen." + longdescription="Land Governor Linden überlassen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann gruppeneigenes Land unter „Land-Info“ > „Allgemein“ aufgeben und es ohne Verkauf in das Eigentum von Linden zurückführen! Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen." name="land release" /> <action description="Land.zu.verkaufen-Info einstellen" - longdescription="Land zu verkaufen-Info einstellen. *WARNUNG* Mitglieder in einer Rolle mit dieser Fähigkeit können gruppeneigenes Land jederzeit unter 'Land-Info' > 'Allgemein' verkaufen! Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen." + longdescription="Land zu verkaufen-Info einstellen. *WARNUNG* Mitglieder in einer Rolle mit dieser Fähigkeit können gruppeneigenes Land jederzeit unter „Land-Info“ > „Allgemein“ verkaufen! Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen." name="land set sale info" /> <action description="Parzellen teilen und zusammenlegen" - longdescription="Parzellen teilen und zusammenlegen. Klicken Sie dazu mit rechts auf den Boden, wählen sie 'Terrain bearbeiten' und ziehen Sie die Maus auf das Land, um eine Auswahl zu treffen. Zum Teilen treffen Sie eine Auswahl und klicken auf 'Unterteilen...'. Zum Zusammenlegen von zwei oder mehr angrenzenden Parzellen klicken Sie auf 'Zusammenlegen...'." + longdescription="Parzellen teilen und zusammenlegen. Klicken Sie dazu mit rechts auf den Boden, wählen sie „Terrain bearbeiten“ und ziehen Sie die Maus auf das Land, um eine Auswahl zu treffen. Zum Teilen treffen Sie eine Auswahl und klicken auf „Unterteilen...“. Zum Zusammenlegen von zwei oder mehr angrenzenden Parzellen klicken Sie auf „Zusammenlegen...“." name="land divide join" /> </action_set> <action_set description="Diese Fähigkeiten ermöglichen es, den Parzellennamen und die Veröffentlichungseinstellungen sowie die Anzeige des Suchverzeichnisses, den Landepunkt und die TP-Routenoptionen festzulegen." name="Parcel Identity"> <action - description="'In "Orte suchen" anzeigen' ein-/ausschalten und Kategorie festlegen" - longdescription="Auf der Registerkarte 'Optionen' unter 'Land-Info' können Sie 'In "Orte suchen" anzeigen' ein- und ausschalten und die Parzellenkategorie festlegen." + description="„In Orte suchen anzeigen“ ein-/ausschalten und Kategorie festlegen" + longdescription="Auf der Registerkarte „Optionen“ unter „Land-Info“ können Sie „In Orte suchen anzeigen“ ein- und ausschalten und die Parzellenkategorie festlegen." name="land find places" /> <action - description="Name und Beschreibung der Parzelle und Einstellungen für 'Im Web veröffentlichen' ändern" - longdescription="Name und Beschreibung der Parzelle und Einstellungen für 'Im Web veröffentlichen' ändern. Diese Einstellungen finden Sie unter 'Land-Info' > 'Optionen'." + description="Name und Beschreibung der Parzelle und Einstellungen für „Im Web veröffentlichen“ ändern" + longdescription="Name und Beschreibung der Parzelle und Einstellungen für „Im Web veröffentlichen“ ändern. Diese Einstellungen finden Sie unter „Land-Info“ > „Optionen“." name="land change identity" /> <action description="Landepunkt und Teleport-Route festlegen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle einen Landepunkt für ankommende Teleports und Teleport-Routen festlegen. Diese Einstellungen finden Sie unter 'Land-Info' > 'Optionen'." + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle einen Landepunkt für ankommende Teleports und Teleport-Routen festlegen. Diese Einstellungen finden Sie unter „Land-Info“ > „Optionen“." name="land set landing point" /> </action_set> <action_set - description="Diese Fähigkeiten ermöglichen es, Parzellenoptionen wie 'Objekte erstellen', 'Terrain bearbeiten' sowie Musik- und Medieneinstellungen zu ändern." + description="Diese Fähigkeiten ermöglichen es, Parzellenoptionen wie „Objekte erstellen“, „Terrain bearbeiten“ sowie Musik- und Medieneinstellungen zu ändern." name="Parcel Settings"> <action description="Musik- und Medieneinstellungen ändern" - longdescription="Die Einstellungen für Streaming-Musik und Filme finden Sie unter 'Land-Info' > 'Medien'." + longdescription="Die Einstellungen für Streaming-Musik und Filme finden Sie unter „Land-Info“ > „Medien“." name="land change media" /> - <action description="'Terrain bearbeiten' ein/aus" - longdescription="'Terrain bearbeiten' ein/aus. *WARNUNG* 'Land-Info' > 'Optionen' > 'Terrain bearbeiten' ermöglicht jedem das Terraformen Ihres Grundstücks und das Setzen und Verschieben von Linden-Pflanzen. Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen. Diese Einstellung finden Sie unter 'Land-Info' > 'Optionen'." + <action description="„Terrain bearbeiten“ ein/aus" + longdescription="„Terrain bearbeiten“ ein/aus. *WARNUNG* „Land-Info“ > „Optionen“ > „Terrain bearbeiten“ ermöglicht jedem das Terraformen Ihres Grundstücks und das Setzen und Verschieben von Linden-Pflanzen. Ãœberlegen Sie sich, wem Sie diese Fähigkeit verleihen. Diese Einstellung finden Sie unter „Land-Info“ > „Optionen“." name="land edit" /> - <action description="'Land-Info'-Optionen einstellen" - longdescription="Auf der Registerkarte 'Optionen' unter 'Land-Info' können Sie 'Sicher (kein Schaden)' und 'Fliegen' ein- und ausschalten und Einwohnern folgende Aktionen auf gruppeneigenem Land erlauben: 'Objekte erstellen', 'Terrain bearbeiten', 'Landmarken erstellen' und 'Skripts ausführen'." + <action description="„Land-Info“-Optionen einstellen" + longdescription="Auf der Registerkarte „Optionen“ unter „Land-Info“ können Sie „Sicher (kein Schaden)“ und „Fliegen“ ein- und ausschalten und Einwohnern folgende Aktionen auf gruppeneigenem Land erlauben: „Objekte erstellen“, „Terrain bearbeiten“, „Landmarken erstellen“ und „Skripts ausführen“." name="land options" /> </action_set> <action_set description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Umgehen von Restriktionen auf gruppeneigenen Parzellen zu erlauben." name="Parcel Powers"> - <action description="'Terrain bearbeiten' zulassen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter 'Land-Info' > 'Optionen' deaktiviert ist." + <action description="„Terrain bearbeiten“ zulassen" + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter „Land-Info“ > „Optionen“ deaktiviert ist." name="land allow edit land" /> - <action description="'Fliegen' zulassen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter 'Land-Info' > 'Optionen' deaktiviert ist." + <action description="„Fliegen“ zulassen" + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter „Land-Info“ > „Optionen“ deaktiviert ist." name="land allow fly" /> - <action description="'Objekte erstellen' zulassen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter 'Land-Info' > 'Optionen' deaktiviert ist." + <action description="„Objekte erstellen“ zulassen" + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter „Land-Info“ > „Optionen“ deaktiviert ist." name="land allow create" /> - <action description="'Landmarke erstellen' zulassen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können für eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter 'Land-Info' > 'Optionen' deaktiviert ist." + <action description="„Landmarke erstellen“ zulassen" + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können für eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter „Land-Info“ > „Optionen“ deaktiviert ist." name="land allow landmark" /> - <action description="'Hier als Zuhause wählen' auf Gruppenland zulassen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer an diese Gruppe übertragenen Parzelle die Funktion 'Welt' > 'Hier als Zuhause wählen' verwenden." + <action description="„Hier als Zuhause wählen“ auf Gruppenland zulassen" + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer an diese Gruppe übertragenen Parzelle die Funktion „Welt“ > „Hier als Zuhause wählen“ verwenden." name="land allow set home" /> </action_set> <action_set description="Diese Fähigkeiten ermöglichen es, den Zugang auf gruppeneigenen Parzellen zu steuern. Dazu gehört das Einfrieren und Ausschließen von Einwohnern." name="Parcel Access"> <action description="Parzellen-Zugangslisten verwalten" - longdescription="Parzellen-Zugangslisten bearbeiten Sie unter 'Land-Info' > 'Zugang'." + longdescription="Parzellen-Zugangslisten bearbeiten Sie unter „Land-Info“ > „Zugang“." name="land manage allowed" /> <action description="Parzellen-Bannlisten verwalten" - longdescription="Parzellen-Bannlisten bearbeiten Sie unter 'Land-Info' > 'Verbannen'." + longdescription="Parzellen-Bannlisten bearbeiten Sie unter „Land-Info“ > „Verbannen“." name="land manage banned" /> <action - description="Parzelleneinstellungen für 'Pässe verkaufen...' ändern" - longdescription="Die Parzellen-Einstellungen für 'Pässe verkaufen...' ändern Sie unter 'Land-Info' > 'Zugang'." + description="Parzelleneinstellungen für „Pässe verkaufen...“ ändern" + longdescription="Die Parzellen-Einstellungen für „Pässe verkaufen...“ ändern Sie unter „Land-Info“ > „Zugang“." name="land manage passes" /> <action description="Einwohner aus Parzellen werfen und einfrieren" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können gegen unerwünschte Personen auf einer gruppeneigenen Parzelle Maßnahmen ergreifen. Klicken Sie die Person mit rechts an und wählen Sie 'Mehr' >, dann 'Ausschließen...' oder 'Einfrieren...'." + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können gegen unerwünschte Personen auf einer gruppeneigenen Parzelle Maßnahmen ergreifen. Klicken Sie die Person mit rechts an und wählen Sie „Mehr“ >, dann „Ausschließen...“ oder „Einfrieren...“." name="land admin" /> </action_set> <action_set description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Zurückgeben von Objekten sowie das Platzieren und Verschieben von Linden-Pflanzen zu erlauben. Mitglieder können das Grundstück aufräumen und an der Landschaftsgestaltung mitwirken. Aber Vorsicht: Zurückgegebene Objekte können nicht mehr zurückgeholt werden." name="Parcel Content"> <action description="Gruppeneigene Objekte zurückgeben" - longdescription="Gruppeneigene Objekte auf gruppeneigenen Parzellen können Sie unter 'Land-Info' > 'Objekte' zurückgeben." + longdescription="Gruppeneigene Objekte auf gruppeneigenen Parzellen können Sie unter „Land-Info“ > „Objekte“ zurückgeben." name="land return group owned" /> <action description="Gruppenobjekte zurückgeben" - longdescription="Gruppenobjekte auf gruppeneigenen Parzellen können Sie unter 'Land-Info' > 'Objekte' zurückgeben." + longdescription="Gruppenobjekte auf gruppeneigenen Parzellen können Sie unter „Land-Info“ > „Objekte“ zurückgeben." name="land return group set" /> <action description="Gruppenfremde Objekte zurückgeben" - longdescription="Objekte von gruppenfremden Personen auf gruppeneigenen Parzellen können Sie unter 'Land-Info' > 'Objekte' zurückgeben." + longdescription="Objekte von gruppenfremden Personen auf gruppeneigenen Parzellen können Sie unter „Land-Info“ > „Objekte“ zurückgeben." name="land return non group" /> <action description="Landschaftsgestaltung mit Linden-Pflanzen" - longdescription="Die Fähigkeit zur Landschaftsgestaltung ermöglicht das Platzieren und Verschieben von Linden-Bäumen, -Pflanzen und -Gräsern. Diese Objekte finden Sie im Bibliotheksordner des Inventars unter 'Objekte'. Sie lassen sich auch mit der Schaltfläche 'Erstellen' erzeugen." + longdescription="Die Fähigkeit zur Landschaftsgestaltung ermöglicht das Platzieren und Verschieben von Linden-Bäumen, -Pflanzen und -Gräsern. Diese Objekte finden Sie im Bibliotheksordner des Inventars unter „Objekte“. Sie lassen sich auch mit der Schaltfläche „Erstellen“ erzeugen." name="land gardening" /> </action_set> <action_set - description="Diese Fähigkeiten ermöglichen es, gruppeneigene Objekte zu übertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter 'Auswahl-Tool' > 'Bearbeiten' auf der Registerkarte 'Allgemein' vorgenommen. Klicken Sie mit rechts auf ein Objekt und wählen Sie 'Bearbeiten', um seine Einstellungen anzuzeigen." + description="Diese Fähigkeiten ermöglichen es, gruppeneigene Objekte zu übertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter „Auswahl-Tool“ > „Bearbeiten“ auf der Registerkarte „Allgemein“ vorgenommen. Klicken Sie mit rechts auf ein Objekt und wählen Sie „Bearbeiten“, um seine Einstellungen anzuzeigen." name="Object Management"> <action description="Objekte an Gruppe übertragen" - longdescription="Objekte an eine Gruppe übertragen können Sie unter 'Auswahl-Tool' > 'Bearbeiten' auf der Registerkarte 'Allgemein'." + longdescription="Objekte an eine Gruppe übertragen können Sie unter „Auswahl-Tool“ > „Bearbeiten“ auf der Registerkarte „Allgemein“." name="object deed" /> <action description="Gruppeneigene Objekte manipulieren (verschieben, kopieren, bearbeiten)" - longdescription="Gruppeneigene Objekte lassen sich unter 'Auswahl-Tool' > 'Bearbeiten' auf der Registerkarte 'Allgemein' manipulieren (verschieben, kopieren, bearbeiten)." + longdescription="Gruppeneigene Objekte lassen sich unter „Auswahl-Tool“ > „Bearbeiten“ auf der Registerkarte „Allgemein“ manipulieren (verschieben, kopieren, bearbeiten)." name="object manipulate" /> <action description="Gruppeneigene Objekte zum Verkauf freigeben" - longdescription="Gruppeneigene Objekte zum Verkauf freigeben können Sie unter 'Auswahl-Tool' > 'Bearbeiten' auf der Registerkarte 'Allgemein'." + longdescription="Gruppeneigene Objekte zum Verkauf freigeben können Sie unter „Auswahl-Tool“ > „Bearbeiten“ auf der Registerkarte „Allgemein“." name="object set sale" /> </action_set> <action_set @@ -168,20 +168,20 @@ description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Senden, Empfangen und Anzeigen von Gruppennachrichten zu erlauben." name="Notices"> <action description="Mitteilungen senden" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter 'Mitteilungen' Mitteilungen senden." + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter „Mitteilungen“ Mitteilungen senden." name="notices send" /> <action description="Mitteilungen erhalten und ältere Mitteilungen anzeigen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Mitteilungen erhalten und in der Gruppeninfo unter 'Mitteilungen' ältere Mitteilungen einsehen." + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Mitteilungen erhalten und in der Gruppeninfo unter „Mitteilungen“ ältere Mitteilungen einsehen." name="notices receive" /> </action_set> <action_set description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Erstellen von Anfragen, das Abstimmen über Anfragen und das Anzeigen des Abstimmprotokolls zu erlauben." name="Proposals"> <action description="Neue Anfragen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Anfragen stellen, über die auf der Registerkarte 'Anfragen' in der Gruppeninfo abgestimmt werden kann." + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Anfragen stellen, über die auf der Registerkarte „Anfragen“ in der Gruppeninfo abgestimmt werden kann." name="proposal start" /> <action description="Ãœber Anfragen abstimmen" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter 'Anfragen' über Anfragen abstimmen." + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter „Anfragen“ über Anfragen abstimmen." name="proposal vote" /> </action_set> <action_set @@ -191,7 +191,7 @@ longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten." name="join group chat" /> <action description="Gruppen-Voice-Chat beitreten" - longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Voice-Chat beitreten.HINWEIS:Sie benötigen die Fähigkeit 'Gruppen-Chat beitreten', um Zugang zu dieser Voice-Chat-Sitzung zu erhalten." + longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Voice-Chat beitreten. HINWEIS: Sie benötigen die Fähigkeit „Gruppen-Chat beitreten“, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten." name="join voice chat" /> <action description="Gruppen-Chat moderieren" longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern." diff --git a/indra/newview/skins/default/xui/fr/floater_about.xml b/indra/newview/skins/default/xui/fr/floater_about.xml index 3f6d47cd94f..716ce105690 100644 --- a/indra/newview/skins/default/xui/fr/floater_about.xml +++ b/indra/newview/skins/default/xui/fr/floater_about.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_about" title="A propos de Second Life"> <text_editor name="credits_editor"> - Second Life existe grâce aux efforts de Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ et de nombreuses autres personnes. + Second Life existe grâce aux efforts de Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les et de nombreuses autres personnes. - Tous nos remerciements aux résidents suivants pour avoir testé cette version (la meilleure qui soit jusqu'à présent) : Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti + Tous nos remerciements aux résidents suivants pour avoir testé cette version (la meilleure qui soit jusqu'à présent) : afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion APR Copyright (C) 2000-2004 The Apache Software Foundation diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml index 9027f84e91b..86b88831118 100644 --- a/indra/newview/skins/default/xui/ja/floater_about.xml +++ b/indra/newview/skins/default/xui/ja/floater_about.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="floater_about" title="Second Lifeã«ã¤ã„ã¦"> <text_editor name="credits_editor"> - Second Lifeã¯ã€ Philipã€Tessaã€Andrewã€Coryã€Jamesã€Benã€Charã€Charlieã€Colinã€Danã€Danielã€Dougã€Ericã€Hamletã€Haneyã€Eveã€Hunterã€Ianã€Jeffã€Jenniferã€Jimã€Johnã€Leeã€Markã€Peterã€Phoenixã€Richardã€Robinã€Xenonã€Steveã€Tanyaã€Eddieã€Aviã€Frankã€Bruceã€Aaronã€Aliceã€Bobã€Debraã€Eileenã€Helenã€Janetã€Louieã€Leviathaniaã€Stefanã€Rayã€Kevinã€Tomã€Mikebã€MikeTã€Burgessã€Elenaã€Tracyã€Billã€Toddã€Ryanã€Zachã€Sarahã€Novaã€Timã€Stephanieã€Michaelã€Evanã€Nicolasã€Catherineã€Rachelleã€Daveã€Hollyã€Bubã€Kellyã€Magellanã€Ramziã€Donã€Sabinã€Jillã€Rheyaã€Jeskaã€Torleyã€Konaã€Callumã€Charityã€Ventrellaã€Jackã€Vektorã€Irisã€Chrisã€Nicoleã€Mickã€Reubenã€Blueã€Babbageã€Yedwabã€Deanaã€Laurenã€Brentã€Pathfinderã€Chadrickã€Altruimaã€Jesseã€Teenyã€Monroeã€Icculusã€Davidã€Tessã€Lizzieã€Patsyã€Isaacã€Lawrenceã€Cynã€Boã€Giaã€Annetteã€Mariusã€Tboneã€Jonathanã€Karenã€Ginsuã€Satokoã€Yukoã€Makikoã€Thomasã€Harryã€Sethã€Alexeiã€Brianã€Guyã€Runitaiã€Ethanã€Dataã€Corneliusã€Kennyã€Swissã€Zeroã€Natriaã€Wendyã€Stephenã€Teepleã€Thumperã€Lucyã€Deeã€Miaã€Lianaã€Warrenã€Brankaã€Auraã€beezã€Miloã€Hermiaã€Redã€Thraxã€Joeã€Sallyã€Magentaã€Moguraã€Paulã€Joseã€Rejeanã€Henrikã€Lexieã€Amberã€Loganã€Xanã€Noraã€Morpheusã€Donovanã€Leylaã€MichaelFrancisã€Beastã€Cubeã€Buckyã€Joshuaã€Stryfeã€Harmonyã€Teresaã€Claudiaã€Walkerã€Glennã€Fritzã€Fordakã€Juneã€Cleopetraã€Jeanã€Ivyã€Betsyã€Rooseveltã€Spikeã€Kenã€Whichã€Tofuã€Chiyoã€Robã€Zeeã€dustinã€Georgeã€Delã€Matthewã€Catã€Jacquiã€Lightfootã€Adrianã€Violaã€Alfredã€Noelã€Irfanã€Sunilã€Yoolã€Rikaã€Janeã€Xtremeã€Frontierã€a2ã€Neoã€Siobhanã€Yozã€Justinã€Elleã€Qarlã€Benjaminã€Isabelã€Gulliverã€Everettã€Christopherã€Izzyã€Stephanyã€Garryã€Sejongã€Seanã€Tobinã€Iridiumã€Metaã€Anthonyã€Jeremyã€JPã€Jakeã€Mauriceã€Madhaviã€Leopardã€Kyleã€Joonã€Kariã€Bertã€Belindaã€Jonã€Kristiã€Bridieã€Pramodã€KJã€Socratesã€Mariaã€Ivanã€Aricã€Yamasakiã€Adreanneã€Jayã€MitchKã€Cerenã€Cocoã€Durlã€Jennyã€Periapseã€Karticã€Storrsã€Lotteã€Sandyã€Rohnã€Colossusã€Zenã€BigPapiã€Bradã€Pastramiã€Kurzã€Maniã€Neuroã€Jaimeã€MJã€Rowanã€Sgtã€Elvisã€Geckoã€Samuelã€Sardonyxã€Leoã€Bryanã€Nikoã€Softã€Poppyã€Rachelã€Akiã€Angeloã€Banzaiã€Alexaã€Sueã€CeeLoã€Benderã€CGã€Gillianã€Pelleã€Nickã€Echoã€Zaraã€Christineã€Shamiranã€Emmaã€Blakeã€Keikoã€Plexusã€Joppaã€Sidewinderã€Ericaã€Ashleiã€Twilightã€Kristenã€Brettã€Qã€Enusã€Simonã€Bevisã€Kraftã€Kipã€Chandlerã€Ronã€LauraPã€Ramã€KyleJMã€Scouseã€Prosperoã€Melissaã€Martyã€Natã€Hamiltonã€Kendã€Lordanã€Jimmyã€Kosmoã€Seraphã€Greenã€Ekimã€Wiggoã€JTã€Romeã€Dorisã€Mizã€Benocã€Whumpã€Trinityã€Patchã€Kateã€TJã€Baoã€Joohwanã€Christyã€Sofiaã€Matiasã€Cogsworthã€Johanã€Orehã€Cheahã€Angelaã€Brandyã€Mangoã€Lanã€Aleksã€Gloriaã€Heidyã€Mitchellã€Spaceã€Coltonã€Bambersã€Einsteinã€Maggieã€Malbersã€Roseã€Winnieã€Stellaã€Miltonã€Rothmanã€Niallã€Marinã€Allisonã€Katieã€Dawnã€Kattã€Dustyã€Kalpanaã€Judyã€Andreaã€Ambroffã€Infinityã€Gailã€Ricoã€Raymondã€Yiã€Williamã€Christaã€Mã€Teaganã€Scoutã€Mollyã€Danteã€Corrã€Dynamikeã€Usiã€Kayleeã€Vidtutsã€Lilã€Danicaã€Saschaã€Kelvã€Jacobã€Nyaã€Rodneyã€Brandonã€Elsieã€Blondinã€Grantã€Katrinã€Nyxã€Gabrielã€Locklainnã€Claireã€Devinã€Minervaã€Montyã€Austinã€Bradfordã€Siã€Keiraã€Hã€Caitlinã€Ditaã€Makaiã€Jennã€Annã€Meredithã€Clareã€Joyã€Praveenã€Codyã€Edmundã€Rutheã€Sirenaã€Gayathriã€Spiderã€FJã€Davidoffã€Tianã€Jennieã€Louiseã€Oskarã€Landonã€Noelleã€Jarvã€Ingridã€Alã€Sommerã€Docã€Ariaã€Huinã€Grayã€Liliã€Virã€DJã¨ã€ãã®ä»–多数ã®äººé”ã«ã‚ˆã£ã¦ä½œæˆã•ã‚Œã¾ã—ãŸã€‚ + Second Lifeã¯ã€ Philipã€Tessaã€Andrewã€Coryã€Jamesã€Benã€Charã€Charlieã€Colinã€Danã€Danielã€Dougã€Ericã€Hamletã€Haneyã€Eveã€Hunterã€Ianã€Jeffã€Jenniferã€Jimã€Johnã€Leeã€Markã€Peterã€Phoenixã€Richardã€Robinã€Xenonã€Steveã€Tanyaã€Eddieã€Aviã€Frankã€Bruceã€Aaronã€Aliceã€Bobã€Debraã€Eileenã€Helenã€Janetã€Louieã€Leviathaniaã€Stefanã€Rayã€Kevinã€Tomã€Mikebã€MikeTã€Burgessã€Elenaã€Tracyã€Billã€Toddã€Ryanã€Zachã€Sarahã€Novaã€Timã€Stephanieã€Michaelã€Evanã€Nicolasã€Catherineã€Rachelleã€Daveã€Hollyã€Bubã€Kellyã€Magellanã€Ramziã€Donã€Sabinã€Jillã€Rheyaã€Jeskaã€Torleyã€Konaã€Callumã€Charityã€Ventrellaã€Jackã€Vektorã€Irisã€Chrisã€Nicoleã€Mickã€Reubenã€Blueã€Babbageã€Yedwabã€Deanaã€Laurenã€Brentã€Pathfinderã€Chadrickã€Altruimaã€Jesseã€Teenyã€Monroeã€Icculusã€Davidã€Tessã€Lizzieã€Patsyã€Isaacã€Lawrenceã€Cynã€Boã€Giaã€Annetteã€Mariusã€Tboneã€Jonathanã€Karenã€Ginsuã€Satokoã€Yukoã€Makikoã€Thomasã€Harryã€Sethã€Alexeiã€Brianã€Guyã€Runitaiã€Ethanã€Dataã€Corneliusã€Kennyã€Swissã€Zeroã€Natriaã€Wendyã€Stephenã€Teepleã€Thumperã€Lucyã€Deeã€Miaã€Lianaã€Warrenã€Brankaã€Auraã€beezã€Miloã€Hermiaã€Redã€Thraxã€Joeã€Sallyã€Magentaã€Moguraã€Paulã€Joseã€Rejeanã€Henrikã€Lexieã€Amberã€Loganã€Xanã€Noraã€Morpheusã€Donovanã€Leylaã€MichaelFrancisã€Beastã€Cubeã€Buckyã€Joshuaã€Stryfeã€Harmonyã€Teresaã€Claudiaã€Walkerã€Glennã€Fritzã€Fordakã€Juneã€Cleopetraã€Jeanã€Ivyã€Betsyã€Rooseveltã€Spikeã€Kenã€Whichã€Tofuã€Chiyoã€Robã€Zeeã€dustinã€Georgeã€Delã€Matthewã€Catã€Jacquiã€Lightfootã€Adrianã€Violaã€Alfredã€Noelã€Irfanã€Sunilã€Yoolã€Rikaã€Janeã€Xtremeã€Frontierã€a2ã€Neoã€Siobhanã€Yozã€Justinã€Elleã€Qarlã€Benjaminã€Isabelã€Gulliverã€Everettã€Christopherã€Izzyã€Stephanyã€Garryã€Sejongã€Seanã€Tobinã€Iridiumã€Metaã€Anthonyã€Jeremyã€JPã€Jakeã€Mauriceã€Madhaviã€Leopardã€Kyleã€Joonã€Kariã€Bertã€Belindaã€Jonã€Kristiã€Bridieã€Pramodã€KJã€Socratesã€Mariaã€Ivanã€Aricã€Yamasakiã€Adreanneã€Jayã€MitchKã€Cerenã€Cocoã€Durlã€Jennyã€Periapseã€Karticã€Storrsã€Lotteã€Sandyã€Rohnã€Colossusã€Zenã€BigPapiã€Bradã€Pastramiã€Kurzã€Maniã€Neuroã€Jaimeã€MJã€Rowanã€Sgtã€Elvisã€Geckoã€Samuelã€Sardonyxã€Leoã€Bryanã€Nikoã€Softã€Poppyã€Rachelã€Akiã€Angeloã€Banzaiã€Alexaã€Sueã€CeeLoã€Benderã€CGã€Gillianã€Pelleã€Nickã€Echoã€Zaraã€Christineã€Shamiranã€Emmaã€Blakeã€Keikoã€Plexusã€Joppaã€Sidewinderã€Ericaã€Ashleiã€Twilightã€Kristenã€Brettã€Qã€Enusã€Simonã€Bevisã€Kraftã€Kipã€Chandlerã€Ronã€LauraPã€Ramã€KyleJMã€Scouseã€Prosperoã€Melissaã€Martyã€Natã€Hamiltonã€Kendã€Lordanã€Jimmyã€Kosmoã€Seraphã€Greenã€Ekimã€Wiggoã€JTã€Romeã€Dorisã€Mizã€Benocã€Whumpã€Trinityã€Patchã€Kateã€TJã€Baoã€Joohwanã€Christyã€Sofiaã€Matiasã€Cogsworthã€Johanã€Orehã€Cheahã€Angelaã€Brandyã€Mangoã€Lanã€Aleksã€Gloriaã€Heidyã€Mitchellã€Spaceã€Coltonã€Bambersã€Einsteinã€Maggieã€Malbersã€Roseã€Winnieã€Stellaã€Miltonã€Rothmanã€Niallã€Marinã€Allisonã€Katieã€Dawnã€Kattã€Dustyã€Kalpanaã€Judyã€Andreaã€Ambroffã€Infinityã€Gailã€Ricoã€Raymondã€Yiã€Williamã€Christaã€Mã€Teaganã€Scoutã€Mollyã€Danteã€Corrã€Dynamikeã€Usiã€Kayleeã€Vidtutsã€Lilã€Danicaã€Saschaã€Kelvã€Jacobã€Nyaã€Rodneyã€Brandonã€Elsieã€Blondinã€Grantã€Katrinã€Nyxã€Gabrielã€Locklainnã€Claireã€Devinã€Minervaã€Montyã€Austinã€Bradfordã€Siã€Keiraã€Hã€Caitlinã€Ditaã€Makaiã€Jennã€Annã€Meredithã€Clareã€Joyã€Praveenã€Codyã€Edmundã€Rutheã€Sirenaã€Gayathriã€Spiderã€FJã€Davidoffã€Tianã€Jennieã€Louiseã€Oskarã€Landonã€Noelleã€Jarvã€Ingridã€Alã€Sommerã€Docã€Ariaã€Huinã€Grayã€Liliã€Virã€DJã€Yangã€Tã€Simoneã€Maestroã€Scottã€Charleneã€Quixoteã€Amandaã€Susanã€Zedã€Anneã€Enkiduã€Esbeeã€Joroanã€Katelinã€Roxieã€Tayã€Scarletã€Kevinã€Johnnyã€Wolfgangã€Andrenã€Bobã€Howardã€Merovã€Randã€Rayã€Michonã€Newellã€Galenã€Dessieã€Lesã¨ã€ãã®ä»–多数ã®äººé”ã«ã‚ˆã£ã¦ä½œæˆã•ã‚Œã¾ã—ãŸã€‚ - ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ã“ã‚Œã¾ã§ã§æœ€é«˜ã®ã‚‚ã®ã«ãªã‚‹ã‚ˆã†ã”å”力をã„ãŸã ã„ãŸä»¥ä¸‹ã®ä½äººã®çš†æ§˜ã«æ·±ãæ„Ÿè¬ã„ãŸã—ã¾ã™ã€‚ Aminom Marvinã€ava ganacheã€Balthazar Fourouxã€CrystalShard Fooã€Davec Horsforthã€Drew Dwiã€Ellla McMahonã€Gellan Glenelgã€Harleen Gretzkyã€istephanija munroã€Iustinian Tomsenã€JC Glimmerã€Joeseph Albaneseã€kelly youngã€Latif Khalifaã€Lex Nevaã€McCabe Maxstedã€Michi Luminã€moni duettmannã€Moon Mettyã€motor loonã€Opensource Obscureã€Sky Hyeã€Soap Clawtoothã€velveeta biedermannã€zeebster colasanti + ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ã“ã‚Œã¾ã§ã§æœ€é«˜ã®ã‚‚ã®ã«ãªã‚‹ã‚ˆã†ã”å”力をã„ãŸã ã„ãŸä»¥ä¸‹ã®ä½äººã®çš†æ§˜ã«æ·±ãæ„Ÿè¬ã„ãŸã—ã¾ã™ã€‚ afon shepherdã€Aimee Trescothickã€Alexandrea Frideã€Alissa Sabreã€Amber DeCuirã€Asuka Neelyã€Auron Forcellaã€Blue Revolutionã€Bocan Undercroftã€Boroondas Gupteã€Brandon Shinobuã€Bri Guflerã€Buckaroo Muã€Celierra Darlingã€Christos Atlantisã€Coder Kasã€Cummere Mayoã€dakota schwadeã€Dirk Talamascaã€Dizzy Banjoã€Drew Dwiã€Duckling Kwakã€Ellla McMahonã€Erikah Jamesonã€Erinyse Planerã€Eyana Yohkohã€Ezian Ecksolã€Faron Karuã€Fenoe Loweyã€Fox Hwasungã€Francisca Biedermannã€Gally Youngã€Gellan Glenelgã€Geneko Nemethã€Glenn Rotaruã€Hagar Qinanã€Harleen Gretzkyã€Holger Gilruthã€hotrodjohnny gearsã€IAm Zabelinã€Inigo Catteneoã€Iustinian Tomsenã€Jacek Antonellã€James Benedekã€Jim Kupferbergã€Joeseph Albaneseã€JPT62089 Agnonã€Kardargo Adamczykã€Kirstenlee Cinquettiã€Latif Khalifaã€lea Parnallã€Lex Nevaã€Lillith Anatineã€Lilly Zenovkaã€Lim Catteneoã€Lindal Kiddã€Mark Rosenbaumã€MasterJ Chaplinã€McCabe Maxstedã€Melvin Starbrookã€Meni Kaiouseiã€Mero Collasã€Minakothegothicgeisha Kamachiã€Moon Mettyã€neofilo aabyeã€Neutron Chesnokovã€Nomad Ingwerã€norritt Xiã€Opensource Obscureã€Oracle Weatherwaxã€Ourasi Ferrarisã€Pabl0 Roffoã€Peyton Aleixandreã€Phli Foxchaseã€Psi Merlinã€r2d2 Wunderlichã€Regi Yifuã€Saijanai Kuhnã€Sandor Balczoã€Sarkan Dreamscapeã€Scree Raymakerã€Sedona Millsã€Selena Bealeã€Sheet Spotterã€Shibari Twineã€Silver Keyã€Simon Klineã€SLB Wireflyã€Stacy Wombatã€Sugarcult Daggerã€Tayra Dagostinoã€Tetsuryu Vlodovicã€ThaBiGGDoGG Richezã€Timo Guflerã€tx Ohã€wayfinder wishbringerã€Wizzytoe McCulloughã€Wundur Primbeeã€Yann Dufauxã€Yuu Nakamichi 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion APR Copyright (C) 2000-2004 The Apache Software Foundation 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 c6f6e125bfb..eda8fe88066 100644 --- a/indra/newview/skins/default/xui/ja/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml @@ -92,7 +92,7 @@ プãƒãƒ•ã‚£ãƒ¼ãƒ«... </string> <string name="info_text"> - インフォ... + æƒ…å ±... </string> <string name="public_text"> (公共) diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml index 3079d45e732..a532640d91d 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml @@ -35,13 +35,13 @@ データをå–å¾—ã—ã¦ã„ã¾ã™... </text> <text name="balance_label"> - ç¾åœ¨æ‰€æœ‰ã—ã¦ã„ã‚‹é¡ + ç¾åœ¨æ‰€æœ‰ã—ã¦ã„ã‚‹é‡‘é¡ </text> <text name="balance_amount"> L$ [AMT] </text> <text name="buying_label"> - 購入ã™ã‚‹é¡ + 購入ã™ã‚‹é‡‘é¡ </text> <text name="buying_amount"> L$ [AMT] diff --git a/indra/newview/skins/default/xui/ja/floater_inspect.xml b/indra/newview/skins/default/xui/ja/floater_inspect.xml index fe2f0753e4a..c831201d93d 100644 --- a/indra/newview/skins/default/xui/ja/floater_inspect.xml +++ b/indra/newview/skins/default/xui/ja/floater_inspect.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater name="inspect" title="オブジェクト検査"> +<floater name="inspect" title="オブジェクト検査" min_width="450" > <scroll_list name="object_list" tool_tip="ã“ã®ãƒªã‚¹ãƒˆã‹ã‚‰ã‚ªãƒ–ジェクトをé¸æŠžã—ã€ã“ã®ä¸–ç•Œã§å¼·èª¿è¡¨ç¤ºã—ã¾ã™ã€‚"> <column label="オブジェクトå" name="object_name" /> diff --git a/indra/newview/skins/default/xui/ja/floater_inventory.xml b/indra/newview/skins/default/xui/ja/floater_inventory.xml index db90c4e968f..680496839a9 100644 --- a/indra/newview/skins/default/xui/ja/floater_inventory.xml +++ b/indra/newview/skins/default/xui/ja/floater_inventory.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="Inventory" title="æŒã¡ç‰©"> - <search_editor label="ã“ã“ã«ã‚¿ã‚¤ãƒ—ã—ã¦æ¤œç´¢" name="inventory search editor" /> + <search_editor label="ã“ã“ã«å…¥åŠ›ã—ã¦æ¤œç´¢" name="inventory search editor" /> <tab_container name="inventory filter tabs"> <inventory_panel label="ã™ã¹ã¦" name="All Items" /> <inventory_panel label="最近ã®å…¥æ‰‹ã‚¢ã‚¤ãƒ†ãƒ " name="Recent Items" /> @@ -37,7 +37,7 @@ <menu_item_call label="æ–°ã—ã„眼" name="New Eyes" /> </menu> </menu> - <menu label="振り分ã‘" name="Sort"> + <menu label="並ã¹æ›¿ãˆ" name="Sort"> <menu_item_check label="åå‰" name="By Name" /> <menu_item_check label="日付" name="By Date" /> <menu_item_check label="フォルダã¯å¸¸ã«åå‰é †" name="Folders Always By Name" /> diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml index 7ec92e40358..be2710c4be6 100644 --- a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml @@ -49,7 +49,7 @@ </text> <check_box label="グループ分担" name="CheckShareWithGroup" /> <check_box label="誰ã«å¯¾ã—ã¦ã‚‚コピーを許å¯" name="CheckEveryoneCopy" /> - <text name="NextOwnerLabel"> + <text name="NextOwnerLabel" width="158"> 次ã®ã‚ªãƒ¼ãƒŠãƒ¼ãŒã§ãã‚‹ã“ã¨ï¼š </text> <check_box label="ä¿®æ£" name="CheckNextOwnerModify" /> 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 49d7f167398..949031db9a6 100644 --- a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="land holdings floater" title="自分ã®åœŸåœ°"> <scroll_list name="parcel list"> - <column label="Name" name="name" /> - <column label="Location" name="location" /> - <column label="Area" name="area" /> + <column name="name" /> + <column name="location" /> + <column name="area" /> <column label="" name="hidden" /> </scroll_list> <button label="テレãƒãƒ¼ãƒˆ" label_selected="テレãƒãƒ¼ãƒˆ" name="Teleport" @@ -15,28 +15,28 @@ ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®è²¢çŒ®ï¼š </text> <scroll_list name="grant list"> - <column label="Group" name="group" /> - <column label="Area" name="area" /> + <column name="group" /> + <column name="area" /> </scroll_list> <text name="allowed_label"> ç¾åœ¨ã®æ”¯æ‰•ã„プランã§ã®è¨±å¯ã•ã‚ŒãŸä¿æœ‰åœ°ï¼š </text> <text name="allowed_text"> - ï¼»AREA]平方メートル + [AREA]平方メートル </text> <text name="current_label"> ç¾åœ¨ã®ä¿æœ‰åœ°ï¼š </text> <text name="current_text"> - ï¼»AREA]平方メートル + [AREA]平方メートル </text> <text name="available_label"> 土地購入å¯ï¼š </text> <text name="available_text"> - ï¼»AREA]平方メートル + [AREA]平方メートル </text> <string name="area_string"> - ï¼»AREA]平方メートル + [AREA]平方メートル </string> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_media_browser.xml b/indra/newview/skins/default/xui/ja/floater_media_browser.xml index a0029912f59..3870ae19896 100644 --- a/indra/newview/skins/default/xui/ja/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/ja/floater_media_browser.xml @@ -4,15 +4,15 @@ <layout_panel name="nav_controls"> <button label="戻る" name="back" /> <button label="進む" name="forward" /> - <button label="å†ãƒãƒ¼ãƒ‰" name="reload" /> - <button label="è¡Œã" name="go" /> + <button label="æ›´æ–°" name="reload" /> + <button label="閲覧" name="go" /> </layout_panel> <layout_panel name="parcel_owner_controls"> <button label="ç¾åœ¨ã® URL を区画ã«é€ä¿¡" name="assign" /> </layout_panel> <layout_panel name="external_controls"> <button label="自分㮠Web ブラウザーã§é–‹ã" name="open_browser" /> - <check_box label="常ã«ãƒžã‚¤ãƒ–ラウザーã§é–‹ã" name="open_always" /> + <check_box label="常ã«è‡ªåˆ†ã® Web ブラウザーã§é–‹ã" name="open_always" /> <button label="é–‰ã˜ã‚‹" name="close" /> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index b8880517f01..79688477f55 100644 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -114,10 +114,10 @@ <menu_item_call label="アニメーションをã™ã¹ã¦åœæ¢" name="Stop All Animations"/> <menu_item_call label="ã‚ー制御を解除" name="Release Keys"/> <menu_item_separator label="-----------" name="separator4"/> - <menu_item_call label="å£åº§å±¥æ´..." name="Account History..."> + <menu_item_call label="アカウントã®å±¥æ´..." name="Account History..."> <on_click name="AccountHistory_url" userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php?lang=ja" /> </menu_item_call> - <menu_item_call label="自分ã®å£åº§ã®ç®¡ç†..." name="Manage My Account..."> + <menu_item_call label="マイアカウントã®ç®¡ç†..." name="Manage My Account..."> <on_click name="ManageMyAccount_url" userdata="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=ja" /> </menu_item_call> <menu_item_call label="L$(リンデン・ドル)を購入" name="Buy and Sell L$..."/> diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml index bed2bed29b2..ee2d0938125 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml @@ -11,11 +11,8 @@ グループè¨å®šãŒå¤‰æ›´ã•ã‚Œã¾ã—ãŸã€‚ </string> <button label="?" label_selected="?" name="help_button" /> - <line_editor label="ã‚ãªãŸã®æ–°ã—ã„グループåを記入ã—ã¦ãã ã•ã„" - name="group_name_editor"> - æ–°ã—ã„グループåã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。 - </line_editor> - <text name="group_name"> + <line_editor label="æ–°ã—ã„グループåã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。" name="group_name_editor" width="330"/> + <text name="group_name" width="330"> æ–°ã—ã„グループåã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。 </text> <text name="prepend_founded_by"> @@ -25,12 +22,12 @@ (待機ä¸ï¼‰ </text> <text name="group_charter_label"> - グループ特権 + ã‚°ãƒ«ãƒ¼ãƒ—æ†²ç« </text> <texture_picker label="ã‚°ãƒ«ãƒ¼ãƒ—è¨˜ç« " name="insignia" tool_tip="写真をクリックã—ã¦é¸æŠž" /> <text_editor name="charter"> - グループ特権 + ã‚°ãƒ«ãƒ¼ãƒ—æ†²ç« </text_editor> <button label="å‚åŠ ã™ã‚‹ï¼ˆL$0)" label_selected="å‚åŠ ã™ã‚‹ï¼ˆL$0)" name="join_button" /> @@ -48,9 +45,9 @@ (オーナーã¯å¤ªå—ã§è¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ï¼‰ </text> <name_list name="visible_members"> - <column label="Member Name" name="name" /> - <column label="Title" name="title" /> - <column label="Last Login" name="online" /> + <column name="name" /> + <column name="title" /> + <column name="online" /> </name_list> <text name="text_group_preferences"> グループ環境è¨å®š @@ -61,26 +58,26 @@ <text name="confirm_group_create_str"> ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ä½œæˆã«ã¯L$100ã‹ã‹ã‚Šã¾ã™ã€‚ ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ä½œæˆã«L$100ã‚‚ã®ãŠé‡‘ã‚’ã‹ã‘ã¦ã‚‚ã‹ã¾ã„ã¾ã›ã‚“ã‹ï¼Ÿ æ…Žé‡ã«åˆ¤æ–ã—ã¦ãã ã•ã„。 -48 時間以内ã«èª°ã‚‚ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã—ãªã‹ã£ãŸå ´åˆã€ã‚°ãƒ«ãƒ¼ãƒ—ã¯è§£ä½“ã•ã‚Œã€ã‚°ãƒ«ãƒ¼ãƒ—ã®åå‰ã¯ä»Šå¾Œä½¿ç”¨ã§ããªããªã‚Šã¾ã™ã€‚ +48時間以内ã«èª°ã‚‚ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚åŠ ã—ãªã‹ã£ãŸå ´åˆã€ã‚°ãƒ«ãƒ¼ãƒ—ã¯è§£ä½“ã•ã‚Œã€ã‚°ãƒ«ãƒ¼ãƒ—ã®åå‰ã¯ä»Šå¾Œä½¿ç”¨ã§ããªããªã‚Šã¾ã™ã€‚ </text> <text> グループã®ç’°å¢ƒè¨å®š </text> <panel name="preferences_container"> <check_box label="検索ã«è¡¨ç¤º" name="show_in_group_list" - tool_tip="検索çµæžœã§ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—を人ã«è¦‹ã›ã‚‹" /> + tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—を検索çµæžœã«è¡¨ç¤ºã•ã›ã¾ã™" /> <check_box label="ウェブ上ã§å…¬é–‹" name="publish_on_web" - tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®æƒ…å ±ã‚’ã‚¦ã‚§ãƒ–ä¸Šã§å…¬é–‹ã§ãるよã†ã«ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" /> + tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®æƒ…å ±ã‚’ã‚¦ã‚§ãƒ–ä¸Šã§å…¬é–‹ã§ãるよã†ã«ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™" /> <check_box label="会員募集" name="open_enrollement" - tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«æ‹›å¾…状ãªã—ã§æ–°ã—ã„メンãƒãƒ¼ã‚’å—ã‘入れるã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" /> + tool_tip="招待状ãªã—ã«è‡ªç”±ã«ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«åŠ å…¥ã™ã‚‹ã“ã¨ã‚’許å¯ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™" /> <check_box label="入会費:L$" name="check_enrollment_fee" - tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®å‚åŠ ã«å…¥ä¼šè²»ã‚’å¿…é ˆã¨ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" /> + tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®å‚åŠ ã«å…¥ä¼šè²»ã‚’å¿…é ˆã¨ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™" /> <spinner name="spin_enrollment_fee" - tool_tip="「入会費ã€ãŒãƒã‚§ãƒƒã‚¯ã•ã‚Œã¦ã„ã‚‹å ´åˆã€æ–°è¦ä¼šå“¡ã¯å…¥ä¼šæ™‚ã«ã“ã®è²»ç”¨ã‚’支払ã†å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" /> + tool_tip="「入会費ã€ãŒãƒã‚§ãƒƒã‚¯ã•ã‚Œã¦ã„ã‚‹å ´åˆã€æ–°è¦ä¼šå“¡ã¯å…¥ä¼šæ™‚ã«ã“ã“ã«æŒ‡å®šã•ã‚ŒãŸé‡‘é¡ã‚’支払ã†å¿…è¦ãŒã‚ã‚Šã¾ã™" /> <check_box label="æˆäººå‘ã‘グループ" name="mature" - tool_tip="ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—æƒ…å ±ãŒæˆäººå‘ã‘ã¨ã¿ãªã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" /> + tool_tip="ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—æƒ…å ±ãŒæˆäººå‘ã‘ã¨ã¿ãªã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™" /> <combo_box name="group_mature_check" - tool_tip="ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—æƒ…å ±ãŒæˆäººå‘ã‘ã¨ã¿ãªã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚"> + tool_tip="ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—æƒ…å ±ãŒæˆäººå‘ã‘ã¨ã¿ãªã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™"> <combo_item name="select_mature"> -æˆç†Ÿåº¦ã‚’é¸æŠž- </combo_item> @@ -95,13 +92,12 @@ <text name="active_title_label"> ç§ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–・タイトル </text> - <combo_box name="active_title" - tool_tip="Sets the title that appears in your avatar's name tag when this group is active." /> + <combo_box name="active_title" /> </panel> <check_box label="グループ通知をå—ä¿¡" name="receive_notices" - tool_tip="グループã‹ã‚‰ã®é€šçŸ¥ã‚’ã‚ãªãŸãŒå—ä¿¡ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚ ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ãŒã‚¹ãƒ‘ム行為をã—ã¦ã„ã‚‹å ´åˆã¯ã€ã“ã®ãƒœãƒƒã‚¯ã‚¹ã®ãƒã‚§ãƒƒã‚¯ã‚’外ã—ã¦ãã ã•ã„。" /> - <check_box label="プロフィールã«ï½¸ï¾žï¾™ï½°ï¾Œï¾Ÿã‚’リストã™ã‚‹" + tool_tip="グループã‹ã‚‰ã®é€šçŸ¥ã‚’å—ä¿¡ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚ ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ãŒã‚¹ãƒ‘ム行為をã—ã¦ã„ã‚‹å ´åˆã¯ã€ã“ã®ãƒœãƒƒã‚¯ã‚¹ã®ãƒã‚§ãƒƒã‚¯ã‚’外ã—ã¦ãã ã•ã„" /> + <check_box label="プロフィールã«ï½¸ï¾žï¾™ï½°ï¾Œï¾Ÿã‚’表示" name="list_groups_in_profile" - tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚’ã‚ãªãŸã®ãƒ—ãƒãƒ•ã‚£ãƒ¼ãƒ«ã«ãƒªã‚¹ãƒˆã™ã‚‹ã‹ã©ã†ã‹ã‚’è¨å®šã—ã¾ã™ã€‚" /> + tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚’ã‚ãªãŸã®ãƒ—ãƒãƒ•ã‚£ãƒ¼ãƒ«ã«è¡¨ç¤ºã™ã‚‹ã‹ã©ã†ã‹ã‚’è¨å®šã—ã¾ã™" /> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml index 53ea61a52de..9d7693542e3 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml @@ -21,9 +21,9 @@ グループã®ä¿æœ‰åœ° </text> <scroll_list name="group_parcel_list"> - <column label="Parcel Name" name="name" /> - <column label="Region" name="location" /> - <column label="Area" name="area" /> + <column name="name" /> + <column name="location" /> + <column name="area" /> <column label="" name="hidden" /> </scroll_list> <button label="地図上ã«è¡¨ç¤º" label_selected="地図上ã«è¡¨ç¤º" @@ -31,20 +31,20 @@ <text name="total_contributed_land_label"> 寄付ç·é¡ï¼š </text> - <text name="total_contributed_land_value"> - ï¼»AREA]平方メートル + <text name="total_contributed_land_value" width="150"> + [AREA]平方メートル </text> <text name="total_land_in_use_label"> 土地利用ã®åˆè¨ˆï¼š </text> - <text name="total_land_in_use_value"> - ï¼»AREA]平方メートル + <text name="total_land_in_use_value" width="150"> + [AREA]平方メートル </text> <text name="land_available_label"> 利用å¯ã®åœŸåœ°ï¼š </text> - <text name="land_available_value"> - ï¼»AREA]平方メートル + <text name="land_available_value" width="150"> + [AREA]平方メートル </text> <text name="your_contribution_label"> ã‚ãªãŸã®è²¢çŒ®ï¼š @@ -74,19 +74,19 @@ <text_editor name="group_money_details_text"> 計算ä¸â€¦ </text_editor> - <button label="<å‰" label_selected="<å‰" name="earlier_details_button" - tool_tip="時間を戻ã™" /> - <button label="ã‚ã¨ã§ï¼ž" label_selected="ã‚ã¨ã§ï¼ž" name="later_details_button" - tool_tip="時間を進ã‚ã‚‹" /> + <button label="å‰ã®é€±" label_selected="å‰ã®é€±" name="earlier_details_button" + tool_tip="å‰ã®é€±ã®å±¥æ´" /> + <button label="次ã®é€±" label_selected="次ã®é€±" name="later_details_button" + tool_tip="次ã®é€±ã®å±¥æ´" /> </panel> <panel label="販売" name="group_money_sales_tab"> <text_editor name="group_money_sales_text"> 計算ä¸â€¦ </text_editor> - <button label="<å‰" label_selected="<å‰" name="earlier_sales_button" - tool_tip="時間を戻ã™" /> - <button label="ã‚ã¨ã§ï¼ž" label_selected="ã‚ã¨ã§ï¼ž" name="later_sales_button" - tool_tip="時間を進ã‚ã‚‹" /> + <button label="å‰ã®é€±" label_selected="å‰ã®é€±" name="earlier_sales_button" + tool_tip="å‰ã®é€±ã®å±¥æ´" /> + <button label="次ã®é€±" label_selected="次ã®é€±" name="later_sales_button" + tool_tip="次ã®é€±ã®å±¥æ´" /> </panel> </tab_container> </panel> 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 2bdc45ff031..66ef7896e64 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml @@ -21,9 +21,9 @@ </text> <scroll_list name="notice_list"> <column label="" name="icon" /> - <column label="Subject" name="subject" /> - <column label="From" name="from" /> - <column label="Date" name="date" /> + <column name="subject" /> + <column name="from" /> + <column name="date" /> </scroll_list> <text name="notice_list_none_found"> 何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ @@ -53,8 +53,7 @@ <button label="添付物を削除" label_selected="添付物を削除" name="remove_attachment" /> <button label="通知をé€ä¿¡" label_selected="通知をé€ä¿¡" name="send_notice" /> - <panel name="drop_target" - tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice." /> + <panel name="drop_target" /> </panel> <panel label="éŽåŽ»ã®é€šçŸ¥ã‚’表示" name="panel_view_past_notice"> <text name="lbl"> 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 4640600b009..0208331dbce 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_roles.xml @@ -51,7 +51,7 @@ <button label="å…¨ã¦ã‚’表示" name="show_all_button" /> <name_list name="member_list"> <column label="メンãƒãƒ¼å" name="name" /> - <column label="Donated Tier" name="donated" /> + <column name="donated" /> <column label="å‰å›žã®ãƒã‚°ã‚¤ãƒ³" name="online" /> </name_list> <button label="æ–°ã—ã„人を招待..." name="member_invite" /> @@ -67,7 +67,7 @@ Ctrl ã‚ーを押ã—ãªãŒã‚‰ãƒ¡ãƒ³ãƒãƒ¼åをクリックã™ã‚‹ã¨ <button label="ã™ã¹ã¦ã‚’表示" name="show_all_button" /> <scroll_list name="role_list"> <column label="役割å" name="name" /> - <column label="Title" name="title" /> + <column label="肩書ã" name="title" /> <column label="メンãƒãƒ¼" name="members" /> </scroll_list> <button label="æ–°ã—ã„役割を作æˆ..." name="role_create" /> 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 7b987d58a28..167bc2a1ce0 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml @@ -69,7 +69,7 @@ </text> <check_box label="解åƒåº¦å˜ç‹¬ã‚¹ã‚±ãƒ¼ãƒ«ã‚’使用" name="ui_auto_scale" /> <spinner label="æç”»è·é›¢ï¼š" name="draw_distance" /> - <check_box label="ã‚¢ãƒã‚¿ãƒ¼ã‚’マウスルックã§è¡¨ç¤º" name="avfp" /> + <check_box label="ã‚¢ãƒã‚¿ãƒ¼ã‚’一人称視点(マウスルック)ã§è¡¨ç¤º" name="avfp" /> <text name="HigherText"> å“質ãŠã‚ˆã³ </text> 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 eb06ad7eee2..08c66182c4b 100644 --- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="status"> - <text length="1" name="ParcelNameText" tool_tip="ã‚ãªãŸãŒç«‹ã£ã¦ã„る土地区画ã®åå‰ã€‚Â ã€ŒåœŸåœ°æƒ…å ±ã€ã‚’クリックã—ã¦ãã ã•ã„。" type="string"> + <text length="1" name="ParcelNameText" tool_tip="ã‚ãªãŸãŒç«‹ã£ã¦ã„る土地区画ã®å å‰ã€‚クリックã™ã‚‹ã¨ã€ŒåœŸåœ°æƒ…å ±ã€ãŒé–‹ãã¾ã™ã€‚" type="string"> 区画åã¯ã“ã“ã§ã™ </text> <text length="1" name="BalanceText" tool_tip="å£åº§æ®‹é«˜" type="string"> @@ -25,7 +25,7 @@ <button label="" label_selected="" name="build" tool_tip="作æˆç¦æ¢"/> <button label="" label_selected="" name="scripts" tool_tip="スクリプトãªã—"/> <button name="no_fly" tool_tip="飛行ç¦æ¢"/> - <button name="no_build" tool_tip="制作/REZç¦æ¢"/> + <button name="no_build" tool_tip="制作ï¼Rezç¦æ¢"/> <button name="no_scripts" tool_tip="スクリプトç¦æ¢"/> <button label="" label_selected="" name="restrictpush" tool_tip="プッシングを制é™"/> <button name="status_voice" tool_tip="ボイス有効"/> diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml index 2eb3455e0e5..004b6abc2e8 100755 --- a/indra/newview/skins/default/xui/pl/floater_about.xml +++ b/indra/newview/skins/default/xui/pl/floater_about.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater name="floater_about" title="O Second Life"> <text_editor name="credits_editor"> - Second Life zostaÅ‚o stworzone dla Was przez: Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ i wielu innych. + Second Life zostaÅ‚o stworzone dla Was przez: Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les i wielu innych. - PodziÄ™kowania dla nastÄ™pujÄ…cych rezydentów za pomoc w pracy nad obecnÄ… wersjÄ… Second Life: Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti + PodziÄ™kowania dla nastÄ™pujÄ…cych rezydentów za pomoc w pracy nad obecnÄ… wersjÄ… Second Life: afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion APR Copyright (C) 2000-2004 The Apache Software Foundation @@ -29,7 +29,7 @@ Polska wersja klienta: Maciek Marksman, Malwina Dollinger, Magnus Balczo IMy z sugestiami, komentarzami i poprawkami mile widziane - We can only see a short distance ahead, but we can see plenty there that needs to be done. --Alan Turing + I get by with a little help from my friends. --Richard Starkey </text_editor> <string name="you_are_at"> PoÅ‚ożenie: [POSITION] diff --git a/indra/newview/skins/default/xui/pl/panel_region_terrain.xml b/indra/newview/skins/default/xui/pl/panel_region_terrain.xml index 400d703670d..b206616e348 100755 --- a/indra/newview/skins/default/xui/pl/panel_region_terrain.xml +++ b/indra/newview/skins/default/xui/pl/panel_region_terrain.xml @@ -18,10 +18,10 @@ <button label="?" name="fixed_sun_help" /> <slider label="Pora Doby" name="sun_hour_slider" /> <button label="Zastosuj" name="apply_btn" /> - <button label="ZaÅ‚aduj Surowy Teren..." name="download_raw_btn" + <button label="Zapisz Surowy Teren..." name="download_raw_btn" tool_tip="DostÄ™pne tylko dla WÅ‚aÅ›cicieli MajÄ…tku, nie dla ZarzÄ…dców" /> <button label="?" name="download_raw_help" /> - <button label="Zapisz Surowy Teren..." name="upload_raw_btn" + <button label="ZaÅ‚aduj Surowy Teren..." name="upload_raw_btn" tool_tip="DostÄ™pne tylko dla WÅ‚aÅ›cicieli MajÄ…tku, nie dla ZarzÄ…dców" /> <button label="?" name="upload_raw_help" /> <button label="Ustal Teren" name="bake_terrain_btn" diff --git a/indra/newview/skins/default/xui/pt/mime_types.xml b/indra/newview/skins/default/xui/pt/mime_types.xml index de3d9581d97..be20865c46d 100644 --- a/indra/newview/skins/default/xui/pt/mime_types.xml +++ b/indra/newview/skins/default/xui/pt/mime_types.xml @@ -49,7 +49,7 @@ Há um audio neste local </tooltip> <playtip name="audio_playtip"> - Iniciar audio disponÃpivel nest local + Iniciar audio disponÃvel nest local </playtip> </widgetset> <scheme name="rtsp"> -- GitLab