From d13b0a299e595d76c9db9ff4d625d959f9eb33b2 Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Tue, 20 May 2014 14:07:23 -0700
Subject: [PATCH] MAINT-3950 FIXED can't open lag meter brought back
 llfloaterlagmeter from the dead, and ported to lltrace

---
 indra/newview/CMakeLists.txt                  |   2 +
 indra/newview/llfloaterlagmeter.cpp           | 378 ++++++++++++++++++
 indra/newview/llfloaterlagmeter.h             |  80 ++++
 indra/newview/lltextureview.cpp               |   2 +-
 indra/newview/llviewerfloaterreg.cpp          |   2 +
 indra/newview/llviewertexture.cpp             |  12 +-
 indra/newview/llviewertexture.h               |   2 +-
 .../skins/default/xui/da/floater_lagmeter.xml | 151 +++++++
 .../skins/default/xui/de/floater_lagmeter.xml | 151 +++++++
 .../skins/default/xui/en/floater_lagmeter.xml | 336 ++++++++++++++++
 .../skins/default/xui/es/floater_lagmeter.xml | 154 +++++++
 .../skins/default/xui/fr/floater_lagmeter.xml | 151 +++++++
 .../skins/default/xui/it/floater_lagmeter.xml | 154 +++++++
 .../skins/default/xui/ja/floater_lagmeter.xml | 151 +++++++
 .../skins/default/xui/pl/floater_lagmeter.xml | 151 +++++++
 .../skins/default/xui/pt/floater_lagmeter.xml | 154 +++++++
 .../skins/default/xui/ru/floater_lagmeter.xml | 151 +++++++
 .../skins/default/xui/tr/floater_lagmeter.xml | 151 +++++++
 .../skins/default/xui/zh/floater_lagmeter.xml | 151 +++++++
 19 files changed, 2476 insertions(+), 8 deletions(-)
 create mode 100644 indra/newview/llfloaterlagmeter.cpp
 create mode 100644 indra/newview/llfloaterlagmeter.h
 create mode 100644 indra/newview/skins/default/xui/da/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/de/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/en/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/es/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/fr/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/it/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/ja/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/pl/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/pt/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/ru/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/tr/floater_lagmeter.xml
 create mode 100644 indra/newview/skins/default/xui/zh/floater_lagmeter.xml

diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index c94969435b..cf584048f9 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -245,6 +245,7 @@ set(viewer_SOURCE_FILES
     llfloaterinspect.cpp
     llfloaterinventory.cpp
     llfloaterjoystick.cpp
+    llfloaterlagmeter.cpp
     llfloaterland.cpp
     llfloaterlandholdings.cpp
     llfloatermap.cpp
@@ -839,6 +840,7 @@ set(viewer_HEADER_FILES
     llfloaterinspect.h
     llfloaterinventory.h
     llfloaterjoystick.h
+    llfloaterlagmeter.h
     llfloaterland.h
     llfloaterlandholdings.h
     llfloatermap.h
diff --git a/indra/newview/llfloaterlagmeter.cpp b/indra/newview/llfloaterlagmeter.cpp
new file mode 100644
index 0000000000..f72f2631a1
--- /dev/null
+++ b/indra/newview/llfloaterlagmeter.cpp
@@ -0,0 +1,378 @@
+/** 
+ * @file llfloaterlagmeter.cpp
+ * @brief The "Lag-o-Meter" floater used to tell users what is causing lag.
+ *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterlagmeter.h"
+
+#include "lluictrlfactory.h"
+#include "llviewerstats.h"
+#include "llviewertexture.h"
+#include "llviewercontrol.h"
+#include "llappviewer.h"
+
+#include "lltexturefetch.h"
+
+#include "llbutton.h"
+#include "llfocusmgr.h"
+#include "lltextbox.h"
+
+const std::string LAG_CRITICAL_IMAGE_NAME = "lag_status_critical.tga";
+const std::string LAG_WARNING_IMAGE_NAME  = "lag_status_warning.tga";
+const std::string LAG_GOOD_IMAGE_NAME     = "lag_status_good.tga";
+
+LLFloaterLagMeter::LLFloaterLagMeter(const LLSD& key)
+	:	LLFloater(key)
+{
+	mCommitCallbackRegistrar.add("LagMeter.ClickShrink",  boost::bind(&LLFloaterLagMeter::onClickShrink, this));	
+}
+
+BOOL LLFloaterLagMeter::postBuild()
+{
+	// Don't let this window take keyboard focus -- it's confusing to
+	// lose arrow-key driving when testing lag.
+	setIsChrome(TRUE);
+	
+	// were we shrunk last time?
+	if (isShrunk())
+	{
+		onClickShrink();
+	}
+	
+	mClientButton = getChild<LLButton>("client_lagmeter");
+	mClientText = getChild<LLTextBox>("client_text");
+	mClientCause = getChild<LLTextBox>("client_lag_cause");
+
+	mNetworkButton = getChild<LLButton>("network_lagmeter");
+	mNetworkText = getChild<LLTextBox>("network_text");
+	mNetworkCause = getChild<LLTextBox>("network_lag_cause");
+
+	mServerButton = getChild<LLButton>("server_lagmeter");
+	mServerText = getChild<LLTextBox>("server_text");
+	mServerCause = getChild<LLTextBox>("server_lag_cause");
+
+	std::string config_string = getString("client_frame_rate_critical_fps", mStringArgs);
+	mClientFrameTimeCritical = F32Seconds(1.0f / (float)atof( config_string.c_str() ));
+	config_string = getString("client_frame_rate_warning_fps", mStringArgs);
+	mClientFrameTimeWarning = F32Seconds(1.0f / (float)atof( config_string.c_str() ));
+
+	config_string = getString("network_packet_loss_critical_pct", mStringArgs);
+	mNetworkPacketLossCritical = F32Percent((float)atof( config_string.c_str() ));
+	config_string = getString("network_packet_loss_warning_pct", mStringArgs);
+	mNetworkPacketLossWarning = F32Percent((float)atof( config_string.c_str() ));
+
+	config_string = getString("network_ping_critical_ms", mStringArgs);
+	mNetworkPingCritical = F32Milliseconds((float)atof( config_string.c_str() ));
+	config_string = getString("network_ping_warning_ms", mStringArgs);
+	mNetworkPingWarning = F32Milliseconds((float)atof( config_string.c_str() ));
+	config_string = getString("server_frame_rate_critical_fps", mStringArgs);
+
+	mServerFrameTimeCritical = F32Seconds(1.0f / (float)atof( config_string.c_str() ));
+	config_string = getString("server_frame_rate_warning_fps", mStringArgs);
+	mServerFrameTimeWarning = F32Seconds(1.0f / (float)atof( config_string.c_str() ));
+	config_string = getString("server_single_process_max_time_ms", mStringArgs);
+	mServerSingleProcessMaxTime = F32Seconds((float)atof( config_string.c_str() ));
+
+//	mShrunk = false;
+	config_string = getString("max_width_px", mStringArgs);
+	mMaxWidth = atoi( config_string.c_str() );
+	config_string = getString("min_width_px", mStringArgs);
+	mMinWidth = atoi( config_string.c_str() );
+
+	mStringArgs["[CLIENT_FRAME_RATE_CRITICAL]"] = getString("client_frame_rate_critical_fps");
+	mStringArgs["[CLIENT_FRAME_RATE_WARNING]"] = getString("client_frame_rate_warning_fps");
+
+	mStringArgs["[NETWORK_PACKET_LOSS_CRITICAL]"] = getString("network_packet_loss_critical_pct");
+	mStringArgs["[NETWORK_PACKET_LOSS_WARNING]"] = getString("network_packet_loss_warning_pct");
+
+	mStringArgs["[NETWORK_PING_CRITICAL]"] = getString("network_ping_critical_ms");
+	mStringArgs["[NETWORK_PING_WARNING]"] = getString("network_ping_warning_ms");
+
+	mStringArgs["[SERVER_FRAME_RATE_CRITICAL]"] = getString("server_frame_rate_critical_fps");
+	mStringArgs["[SERVER_FRAME_RATE_WARNING]"] = getString("server_frame_rate_warning_fps");
+
+//	childSetAction("minimize", onClickShrink, this);
+	updateControls(isShrunk()); // if expanded append colon to the labels (EXT-4079)
+
+	return TRUE;
+}
+LLFloaterLagMeter::~LLFloaterLagMeter()
+{
+	// save shrunk status for next time
+//	gSavedSettings.setBOOL("LagMeterShrunk", mShrunk);
+	// expand so we save the large window rectangle
+	if (isShrunk())
+	{
+		onClickShrink();
+	}
+}
+
+void LLFloaterLagMeter::draw()
+{
+	determineClient();
+	determineNetwork();
+	determineServer();
+
+	LLFloater::draw();
+}
+
+void LLFloaterLagMeter::determineClient()
+{
+	F32Milliseconds client_frame_time = LLTrace::get_frame_recording().getPeriodMean(LLStatViewer::FRAME_STACKTIME);
+	bool find_cause = false;
+
+	if (!gFocusMgr.getAppHasFocus())
+	{
+		mClientButton->setImageUnselected(LLUI::getUIImage(LAG_GOOD_IMAGE_NAME));
+		mClientText->setText( getString("client_frame_time_window_bg_msg", mStringArgs) );
+		mClientCause->setText( LLStringUtil::null );
+	}
+	else if(client_frame_time >= mClientFrameTimeCritical)
+	{
+		mClientButton->setImageUnselected(LLUI::getUIImage(LAG_CRITICAL_IMAGE_NAME));
+		mClientText->setText( getString("client_frame_time_critical_msg", mStringArgs) );
+		find_cause = true;
+	}
+	else if(client_frame_time >= mClientFrameTimeWarning)
+	{
+		mClientButton->setImageUnselected(LLUI::getUIImage(LAG_WARNING_IMAGE_NAME));
+		mClientText->setText( getString("client_frame_time_warning_msg", mStringArgs) );
+		find_cause = true;
+	}
+	else
+	{
+		mClientButton->setImageUnselected(LLUI::getUIImage(LAG_GOOD_IMAGE_NAME));
+		mClientText->setText( getString("client_frame_time_normal_msg", mStringArgs) );
+		mClientCause->setText( LLStringUtil::null );
+	}	
+
+	if(find_cause)
+	{
+		if(gSavedSettings.getF32("RenderFarClip") > 128)
+		{
+			mClientCause->setText( getString("client_draw_distance_cause_msg", mStringArgs) );
+		}
+		else if(LLAppViewer::instance()->getTextureFetch()->getNumRequests() > 2)
+		{
+			mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) );
+		}
+		else if(LLViewerTexture::sBoundTextureMemory > LLViewerTexture::sMaxBoundTextureMemory)
+		{
+			mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) );
+		}
+		else 
+		{
+			mClientCause->setText( getString("client_complex_objects_cause_msg", mStringArgs) );
+		}
+	}
+}
+
+void LLFloaterLagMeter::determineNetwork()
+{
+	LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording();
+	F32Percent packet_loss = frame_recording.getPeriodMean(LLStatViewer::PACKETS_LOST_PERCENT);
+	F32Milliseconds ping_time = frame_recording.getPeriodMean(LLStatViewer::SIM_PING);
+	bool find_cause_loss = false;
+	bool find_cause_ping = false;
+
+	// *FIXME: We can't blame a large ping time on anything in
+	// particular if the frame rate is low, because a low frame
+	// rate is a sure recipe for bad ping times right now until
+	// the network handlers are de-synched from the rendering.
+	F32Milliseconds client_frame_time = frame_recording.getPeriodMean(LLStatViewer::FRAME_STACKTIME);
+	
+	if(packet_loss >= mNetworkPacketLossCritical)
+	{
+		mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_CRITICAL_IMAGE_NAME));
+		mNetworkText->setText( getString("network_packet_loss_critical_msg", mStringArgs) );
+		find_cause_loss = true;
+	}
+	else if(ping_time >= mNetworkPingCritical)
+	{
+		mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_CRITICAL_IMAGE_NAME));
+		if (client_frame_time < mNetworkPingCritical)
+		{
+			mNetworkText->setText( getString("network_ping_critical_msg", mStringArgs) );
+			find_cause_ping = true;
+		}
+	}
+	else if(packet_loss >= mNetworkPacketLossWarning)
+	{
+		mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_WARNING_IMAGE_NAME));
+		mNetworkText->setText( getString("network_packet_loss_warning_msg", mStringArgs) );
+		find_cause_loss = true;
+	}
+	else if(ping_time >= mNetworkPingWarning)
+	{
+		mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_WARNING_IMAGE_NAME));
+		if (client_frame_time < mNetworkPingWarning)
+		{
+			mNetworkText->setText( getString("network_ping_warning_msg", mStringArgs) );
+			find_cause_ping = true;
+		}
+	}
+	else
+	{
+		mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_GOOD_IMAGE_NAME));
+		mNetworkText->setText( getString("network_performance_normal_msg", mStringArgs) );
+	}
+
+	if(find_cause_loss)
+ 	{
+		mNetworkCause->setText( getString("network_packet_loss_cause_msg", mStringArgs) );
+ 	}
+	else if(find_cause_ping)
+	{
+		mNetworkCause->setText( getString("network_ping_cause_msg", mStringArgs) );
+	}
+	else
+	{
+		mNetworkCause->setText( LLStringUtil::null );
+	}
+}
+
+void LLFloaterLagMeter::determineServer()
+{
+	F32Milliseconds sim_frame_time = LLTrace::get_frame_recording().getLastRecording().getLastValue(LLStatViewer::SIM_FRAME_TIME);
+	bool find_cause = false;
+
+	if(sim_frame_time >= mServerFrameTimeCritical)
+	{
+		mServerButton->setImageUnselected(LLUI::getUIImage(LAG_CRITICAL_IMAGE_NAME));
+		mServerText->setText( getString("server_frame_time_critical_msg", mStringArgs) );
+		find_cause = true;
+	}
+	else if(sim_frame_time >= mServerFrameTimeWarning)
+	{
+		mServerButton->setImageUnselected(LLUI::getUIImage(LAG_WARNING_IMAGE_NAME));
+		mServerText->setText( getString("server_frame_time_warning_msg", mStringArgs) );
+		find_cause = true;
+	}
+	else
+	{
+		mServerButton->setImageUnselected(LLUI::getUIImage(LAG_GOOD_IMAGE_NAME));
+		mServerText->setText( getString("server_frame_time_normal_msg", mStringArgs) );
+		mServerCause->setText( LLStringUtil::null );
+	}	
+
+	if(find_cause)
+	{
+		LLTrace::Recording& last_recording = LLTrace::get_frame_recording().getLastRecording();
+
+		if(last_recording.getLastValue(LLStatViewer::SIM_PHYSICS_TIME) > mServerSingleProcessMaxTime)
+		{
+			mServerCause->setText( getString("server_physics_cause_msg", mStringArgs) );
+		}
+		else if(last_recording.getLastValue(LLStatViewer::SIM_SCRIPTS_TIME) > mServerSingleProcessMaxTime)
+		{
+			mServerCause->setText( getString("server_scripts_cause_msg", mStringArgs) );
+		}
+		else if(last_recording.getLastValue(LLStatViewer::SIM_NET_TIME) > mServerSingleProcessMaxTime)
+		{
+			mServerCause->setText( getString("server_net_cause_msg", mStringArgs) );
+		}
+		else if(last_recording.getLastValue(LLStatViewer::SIM_AGENTS_TIME) > mServerSingleProcessMaxTime)
+		{
+			mServerCause->setText( getString("server_agent_cause_msg", mStringArgs) );
+		}
+		else if(last_recording.getLastValue(LLStatViewer::SIM_IMAGES_TIME) > mServerSingleProcessMaxTime)
+		{
+			mServerCause->setText( getString("server_images_cause_msg", mStringArgs) );
+		}
+		else
+		{
+			mServerCause->setText( getString("server_generic_cause_msg", mStringArgs) );
+		}
+	}
+}
+
+void LLFloaterLagMeter::updateControls(bool shrink)
+{
+//	LLFloaterLagMeter * self = (LLFloaterLagMeter*)data;
+
+	LLButton * button = getChild<LLButton>("minimize");
+	S32 delta_width = mMaxWidth -mMinWidth;
+	LLRect r = getRect();
+
+	if(!shrink)
+	{
+		setTitle(getString("max_title_msg", mStringArgs) );
+		// make left edge appear to expand
+		r.translate(-delta_width, 0);
+		setRect(r);
+		reshape(mMaxWidth, getRect().getHeight());
+		
+		getChild<LLUICtrl>("client")->setValue(getString("client_text_msg", mStringArgs) + ":");
+		getChild<LLUICtrl>("network")->setValue(getString("network_text_msg",mStringArgs) + ":");
+		getChild<LLUICtrl>("server")->setValue(getString("server_text_msg", mStringArgs) + ":");
+
+		// usually "<<"
+		button->setLabel( getString("smaller_label", mStringArgs) );
+	}
+	else
+	{
+		setTitle( getString("min_title_msg", mStringArgs) );
+		// make left edge appear to collapse
+		r.translate(delta_width, 0);
+		setRect(r);
+		reshape(mMinWidth, getRect().getHeight());
+		
+		getChild<LLUICtrl>("client")->setValue(getString("client_text_msg", mStringArgs) );
+		getChild<LLUICtrl>("network")->setValue(getString("network_text_msg",mStringArgs) );
+		getChild<LLUICtrl>("server")->setValue(getString("server_text_msg", mStringArgs) );
+
+		// usually ">>"
+		button->setLabel( getString("bigger_label", mStringArgs) );
+	}
+	// Don't put keyboard focus on the button
+	button->setFocus(FALSE);
+
+//	self->mClientText->setVisible(self->mShrunk);
+//	self->mClientCause->setVisible(self->mShrunk);
+//	self->getChildView("client_help")->setVisible( self->mShrunk);
+
+//	self->mNetworkText->setVisible(self->mShrunk);
+//	self->mNetworkCause->setVisible(self->mShrunk);
+//	self->getChildView("network_help")->setVisible( self->mShrunk);
+
+//	self->mServerText->setVisible(self->mShrunk);
+//	self->mServerCause->setVisible(self->mShrunk);
+//	self->getChildView("server_help")->setVisible( self->mShrunk);
+
+//	self->mShrunk = !self->mShrunk;
+}
+
+BOOL LLFloaterLagMeter::isShrunk()
+{
+	return gSavedSettings.getBOOL("LagMeterShrunk");
+}
+
+void LLFloaterLagMeter::onClickShrink()  // toggle "LagMeterShrunk"
+{
+	bool shrunk = isShrunk();
+	updateControls(!shrunk);
+	gSavedSettings.setBOOL("LagMeterShrunk", !shrunk);
+}
diff --git a/indra/newview/llfloaterlagmeter.h b/indra/newview/llfloaterlagmeter.h
new file mode 100644
index 0000000000..929ea40629
--- /dev/null
+++ b/indra/newview/llfloaterlagmeter.h
@@ -0,0 +1,80 @@
+/** 
+ * @file llfloaterlagmeter.h
+ * @brief The "Lag-o-Meter" floater used to tell users what is causing lag.
+ *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LLFLOATERLAGMETER_H
+#define LLFLOATERLAGMETER_H
+
+#include "llfloater.h"
+
+class LLTextBox;
+
+class LLFloaterLagMeter : public LLFloater
+{
+	friend class LLFloaterReg;
+	
+public:
+	/*virtual*/ void draw();
+	/*virtual*/ BOOL postBuild();	
+private:
+	
+	LLFloaterLagMeter(const LLSD& key);
+	/*virtual*/ ~LLFloaterLagMeter();
+	void determineClient();
+	void determineNetwork();
+	void determineServer();
+	void updateControls(bool shrink);
+	BOOL isShrunk();
+
+	void onClickShrink();
+
+	bool mShrunk;
+	S32 mMaxWidth, mMinWidth;
+
+	F32Milliseconds mClientFrameTimeCritical;
+	F32Milliseconds mClientFrameTimeWarning;
+	LLButton*		mClientButton;
+	LLTextBox*		mClientText;
+	LLTextBox*		mClientCause;
+
+	F32Percent		mNetworkPacketLossCritical;
+	F32Percent		mNetworkPacketLossWarning;
+	F32Milliseconds mNetworkPingCritical;
+	F32Milliseconds mNetworkPingWarning;
+	LLButton*       mNetworkButton;
+	LLTextBox*      mNetworkText;
+	LLTextBox*      mNetworkCause;
+
+	F32Milliseconds mServerFrameTimeCritical;
+	F32Milliseconds mServerFrameTimeWarning;
+	F32Milliseconds mServerSingleProcessMaxTime;
+	LLButton*       mServerButton;
+	LLTextBox*      mServerText;
+	LLTextBox*      mServerCause;
+
+	LLStringUtil::format_map_t mStringArgs;
+};
+
+#endif
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index 8ee83b5df0..d464b57b4a 100755
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -509,7 +509,7 @@ private:
 void LLGLTexMemBar::draw()
 {
 	S32Megabytes bound_mem = LLViewerTexture::sBoundTextureMemory;
- 	S32Megabytes max_bound_mem = LLViewerTexture::sMaxBoundTextureMem;
+ 	S32Megabytes max_bound_mem = LLViewerTexture::sMaxBoundTextureMemory;
 	S32Megabytes total_mem = LLViewerTexture::sTotalTextureMemory;
 	S32Megabytes max_total_mem = LLViewerTexture::sMaxTotalTextureMem;
 	F32 discard_bias = LLViewerTexture::sDesiredDiscardBias;
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index e427bb1735..55aeed68cc 100755
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -73,6 +73,7 @@
 #include "llfloaterinspect.h"
 #include "llfloaterinventory.h"
 #include "llfloaterjoystick.h"
+#include "llfloaterlagmeter.h"
 #include "llfloaterland.h"
 #include "llfloaterlandholdings.h"
 #include "llfloatermap.h"
@@ -233,6 +234,7 @@ void LLViewerFloaterReg::registerFloaters()
 	LLNotificationsUI::registerFloater();
 	LLFloaterDisplayNameUtil::registerFloater();
 	
+	LLFloaterReg::add("lagmeter", "floater_lagmeter.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLagMeter>);
 	LLFloaterReg::add("land_holdings", "floater_land_holdings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLandHoldings>);
 	
 	LLFloaterReg::add("mem_leaking", "floater_mem_leaking.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMemLeak>);
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 3be82a5531..b83697b2f1 100755
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -88,7 +88,7 @@ F32 LLViewerTexture::sDesiredDiscardBias = 0.f;
 F32 LLViewerTexture::sDesiredDiscardScale = 1.1f;
 S32Bytes LLViewerTexture::sBoundTextureMemory;
 S32Bytes LLViewerTexture::sTotalTextureMemory;
-S32Megabytes LLViewerTexture::sMaxBoundTextureMem;
+S32Megabytes LLViewerTexture::sMaxBoundTextureMemory;
 S32Megabytes LLViewerTexture::sMaxTotalTextureMem;
 S32Bytes LLViewerTexture::sMaxDesiredTextureMem;
 S8  LLViewerTexture::sCameraMovingDiscardBias = 0;
@@ -534,11 +534,11 @@ void LLViewerTexture::updateClass(const F32 velocity, const F32 angular_velocity
 
 	sBoundTextureMemory = LLImageGL::sBoundTextureMemory;
 	sTotalTextureMemory = LLImageGL::sGlobalTextureMemory;
-	sMaxBoundTextureMem = gTextureList.getMaxResidentTexMem();
+	sMaxBoundTextureMemory = gTextureList.getMaxResidentTexMem();
 	sMaxTotalTextureMem = gTextureList.getMaxTotalTextureMem();
 	sMaxDesiredTextureMem = sMaxTotalTextureMem; //in Bytes, by default and when total used texture memory is small.
 
-	if (sBoundTextureMemory >= sMaxBoundTextureMem ||
+	if (sBoundTextureMemory >= sMaxBoundTextureMemory ||
 		sTotalTextureMemory >= sMaxTotalTextureMem)
 	{
 		//when texture memory overflows, lower down the threshold to release the textures more aggressively.
@@ -558,7 +558,7 @@ void LLViewerTexture::updateClass(const F32 velocity, const F32 angular_velocity
 		sEvaluationTimer.reset();
 	}
 	else if (sDesiredDiscardBias > 0.0f &&
-			 sBoundTextureMemory < sMaxBoundTextureMem * texmem_lower_bound_scale &&
+			 sBoundTextureMemory < sMaxBoundTextureMemory * texmem_lower_bound_scale &&
 			 sTotalTextureMemory < sMaxTotalTextureMem * texmem_lower_bound_scale)
 	{			 
 		// If we are using less texture memory than we should,
@@ -576,7 +576,7 @@ void LLViewerTexture::updateClass(const F32 velocity, const F32 angular_velocity
 	sCameraMovingBias = llmax(0.2f * camera_moving_speed, 2.0f * camera_angular_speed - 1);
 	sCameraMovingDiscardBias = (S8)(sCameraMovingBias);
 
-	LLViewerTexture::sFreezeImageScalingDown = (sBoundTextureMemory < 0.75f * sMaxBoundTextureMem * texmem_middle_bound_scale) &&
+	LLViewerTexture::sFreezeImageScalingDown = (sBoundTextureMemory < 0.75f * sMaxBoundTextureMemory * texmem_middle_bound_scale) &&
 				(sTotalTextureMemory < 0.75f * sMaxTotalTextureMem * texmem_middle_bound_scale);
 }
 
@@ -2962,7 +2962,7 @@ void LLViewerLODTexture::processTextureStats()
 				scaleDown();
 			}
 			// Limit the amount of GL memory bound each frame
-			else if ( sBoundTextureMemory > sMaxBoundTextureMem * texmem_middle_bound_scale &&
+			else if ( sBoundTextureMemory > sMaxBoundTextureMemory * texmem_middle_bound_scale &&
 				(!getBoundRecently() || mDesiredDiscardLevel >= mCachedRawDiscardLevel))
 			{
 				scaleDown();
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index b12b988513..302cc8302a 100755
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -207,7 +207,7 @@ public:
 	static F32 sDesiredDiscardScale;
 	static S32Bytes sBoundTextureMemory;
 	static S32Bytes sTotalTextureMemory;
-	static S32Megabytes sMaxBoundTextureMem;
+	static S32Megabytes sMaxBoundTextureMemory;
 	static S32Megabytes sMaxTotalTextureMem;
 	static S32Bytes sMaxDesiredTextureMem ;
 	static S8  sCameraMovingDiscardBias;
diff --git a/indra/newview/skins/default/xui/da/floater_lagmeter.xml b/indra/newview/skins/default/xui/da/floater_lagmeter.xml
new file mode 100644
index 0000000000..149d174c34
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="LAG METER">
+	<floater.string name="max_title_msg">
+		Lag måler
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Lag
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Klient
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Normal, vindue i baggrund
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Klients billeder/sek under [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Klients billeder/sek mellem [CLIENT_FRAME_RATE_CRITICAL] og [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Mulig årsag: &apos;Vis afstand&apos; sat for højt i grafik indstillinger
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Mulig årsag: Billeder hentes
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Mulig årsag: For mange billeder i hukommelse
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Mulig årsag: For mange komplekse objekter i scenariet
+	</floater.string>
+	<floater.string name="network_text_msg">
+		Netværk
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		Forbindelsen mister over [NETWORK_PACKET_LOSS_CRITICAL]% pakker
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		Forbindelsen mister [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% pakker
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Forbindelsens ping tider er over [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Forbindelsens ping tider er [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Muligvis dårlig forbindelse eller &apos;båndbredde&apos; sat for højt i netværksopsætning.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Muligvis dårlig forbindelse eller fil delings program.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Server
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Simulator framerate er under [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Simulator framerate er mellem [SERVER_FRAME_RATE_CRITICAL] og [SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Mulig årsag: For mange fysiske objekter
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Mulig årsag: For mange objekter med script
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Mulig årsag: For meget netværks trafik
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Mulig årsag: For mange avatarer i bevægelse i regionen
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Mulig årsag: For mange billed udregninger
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Mulig årsag: Simulator belastning for stor
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button label="" label_selected="" name="client_lagmeter" tool_tip="Status for klient lag"/>
+	<text name="client">
+		Klient
+	</text>
+	<text name="client_text">
+		Normal
+	</text>
+	<button label="" label_selected="" name="network_lagmeter" tool_tip="Network lag status"/>
+	<text name="network">
+		Netværk
+	</text>
+	<text name="network_text">
+		Normal
+	</text>
+	<button label="" label_selected="" name="server_lagmeter" tool_tip="Status for server lag"/>
+	<text name="server">
+		Server
+	</text>
+	<text name="server_text">
+		Normal
+	</text>
+	<button label="&gt;&gt;" name="minimize" tool_tip="Ændre størrelse"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_lagmeter.xml b/indra/newview/skins/default/xui/de/floater_lagmeter.xml
new file mode 100644
index 0000000000..45ff37c147
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="LAG METER">
+	<floater.string name="max_title_msg">
+		Lag-Anzeige
+	</floater.string>
+	<floater.string name="max_width_px">
+		350
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Lag
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Client
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Normal, Fenster im Hintergrund
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Client-Frame-Rate unter [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Client-Frame-Rate zwischen [CLIENT_FRAME_RATE_CRITICAL] und [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Mögliche Ursache: Sichtweite zu groß
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Mögliche Ursache: Bilder werden geladen
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Mögliche Ursache: Zu viele Bilder im Speicher
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Mögliche Ursache: Zu viele komplexe Objekte in der Szene
+	</floater.string>
+	<floater.string name="network_text_msg">
+		Netzwerk
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		Paketverlust der Verbindung übersteigt [NETWORK_PACKET_LOSS_CRITICAL]%
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		Paketverlust der Verbindung liegt bei [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]%
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Ping-Zeit der Verbindung übersteigt [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Ping-Zeit der Verbindung liegt bei [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Möglicherweise schlechte Verbindung oder zu hoher Wert für „Bandbreite“.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Möglicherweise schlechte Verbindung oder File-Sharing-Anwendung.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Server
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Simulator-Frame-Rate liegt unter [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Simulator-Frame-Rate liegt zwischen [SERVER_FRAME_RATE_CRITICAL] und [SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Mögliche Ursache: Zu viele physische Objekte
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Mögliche Ursache: Zu viele geskriptete Objekte
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Mögliche Ursache: Zu viel Netzwerktraffic
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Mögliche Ursache: Zu viele Personen in Bewegung in der Region
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Mögliche Ursache: Zu viele Bildberechnungen
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Mögliche Ursache: Zu hohe Simulator-Last
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button name="client_lagmeter" tool_tip="Client-Lag-Status"/>
+	<text name="client">
+		Client
+	</text>
+	<text name="client_text">
+		Normal
+	</text>
+	<button name="network_lagmeter" tool_tip="Netzwerk-Lag-Status"/>
+	<text name="network">
+		Netzwerk
+	</text>
+	<text name="network_text">
+		Normal
+	</text>
+	<button name="server_lagmeter" tool_tip="Server-Lag-Status"/>
+	<text name="server">
+		Server
+	</text>
+	<text name="server_text">
+		Normal
+	</text>
+	<button label="&gt;&gt; " name="minimize" tool_tip="Fenstergröße ändern"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_lagmeter.xml b/indra/newview/skins/default/xui/en/floater_lagmeter.xml
new file mode 100644
index 0000000000..b24c745bdd
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_lagmeter.xml
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ height="170"
+ layout="topleft"
+ name="floater_lagmeter"
+ help_topic="floater_lagmeter"
+ save_rect="true"
+ title="LAG METER"
+ width="350">
+    <floater.string
+     name="max_title_msg">
+        Lag Meter
+    </floater.string>
+    <floater.string
+     name="max_width_px">
+        360
+    </floater.string>
+    <floater.string
+     name="min_title_msg">
+        Lag
+    </floater.string>
+    <floater.string
+     name="min_width_px">
+        90
+    </floater.string>
+    <floater.string
+     name="client_text_msg">
+        Client
+    </floater.string>
+    <floater.string
+     name="client_frame_rate_critical_fps">
+        10
+    </floater.string>
+    <floater.string
+     name="client_frame_rate_warning_fps">
+        15
+    </floater.string>
+    <floater.string
+     name="client_frame_time_window_bg_msg">
+        Normal, window in background
+    </floater.string>
+    <floater.string
+     name="client_frame_time_critical_msg">
+        Client frame rate below [CLIENT_FRAME_RATE_CRITICAL]
+    </floater.string>
+    <floater.string
+     name="client_frame_time_warning_msg">
+        Client frame rate between [CLIENT_FRAME_RATE_CRITICAL] and [CLIENT_FRAME_RATE_WARNING]
+    </floater.string>
+    <floater.string
+     name="client_frame_time_normal_msg">
+        Normal
+    </floater.string>
+    <floater.string
+     name="client_draw_distance_cause_msg">
+        Possible cause: Draw distance set too high
+    </floater.string>
+    <floater.string
+     name="client_texture_loading_cause_msg">
+        Possible cause: Images loading
+    </floater.string>
+    <floater.string
+     name="client_texture_memory_cause_msg">
+        Possible cause: Too many images in memory
+    </floater.string>
+    <floater.string
+     name="client_complex_objects_cause_msg">
+        Possible cause: Too many complex objects in scene
+    </floater.string>
+    <floater.string
+     name="network_text_msg">
+        Network
+    </floater.string>
+    <floater.string
+     name="network_packet_loss_critical_pct">
+        10
+    </floater.string>
+    <floater.string
+     name="network_packet_loss_warning_pct">
+        5
+    </floater.string>
+    <floater.string
+     name="network_packet_loss_critical_msg">
+        Connection is dropping over [NETWORK_PACKET_LOSS_CRITICAL]% of packets
+    </floater.string>
+    <floater.string
+     name="network_packet_loss_warning_msg">
+        Connection is dropping [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% of packets
+    </floater.string>
+    <floater.string
+     name="network_performance_normal_msg">
+        Normal
+    </floater.string>
+    <floater.string
+     name="network_ping_critical_ms">
+        600
+    </floater.string>
+    <floater.string
+     name="network_ping_warning_ms">
+        300
+    </floater.string>
+    <floater.string
+     name="network_ping_critical_msg">
+        Connection ping time is over [NETWORK_PING_CRITICAL] ms
+    </floater.string>
+    <floater.string
+     name="network_ping_warning_msg">
+        Connection ping time is [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+    </floater.string>
+    <floater.string
+     name="network_packet_loss_cause_msg">
+        Possible bad connection or &apos;Bandwidth&apos; pref too high.
+    </floater.string>
+    <floater.string
+     name="network_ping_cause_msg">
+        Possible bad connection or file-sharing app.
+    </floater.string>
+    <floater.string
+     name="server_text_msg">
+        Server
+    </floater.string>
+    <floater.string
+     name="server_frame_rate_critical_fps">
+        20
+    </floater.string>
+    <floater.string
+     name="server_frame_rate_warning_fps">
+        30
+    </floater.string>
+    <floater.string
+     name="server_single_process_max_time_ms">
+        20
+    </floater.string>
+    <floater.string
+     name="server_frame_time_critical_msg">
+        Simulator framerate below [SERVER_FRAME_RATE_CRITICAL]
+    </floater.string>
+    <floater.string
+     name="server_frame_time_warning_msg">
+        Simulator framerate between [SERVER_FRAME_RATE_CRITICAL] and [SERVER_FRAME_RATE_WARNING]
+    </floater.string>
+    <floater.string
+     name="server_frame_time_normal_msg">
+        Normal
+    </floater.string>
+    <floater.string
+     name="server_physics_cause_msg">
+        Possible Cause: Too many physical objects
+    </floater.string>
+    <floater.string
+     name="server_scripts_cause_msg">
+        Possible Cause: Too many scripted objects
+    </floater.string>
+    <floater.string
+     name="server_net_cause_msg">
+        Possible Cause: Too much network traffic
+    </floater.string>
+    <floater.string
+     name="server_agent_cause_msg">
+        Possible Cause: Too many moving people in region
+    </floater.string>
+    <floater.string
+     name="server_images_cause_msg">
+        Possible Cause: Too many image calculations
+    </floater.string>
+    <floater.string
+     name="server_generic_cause_msg">
+        Possible Cause: Simulator load too heavy
+    </floater.string>
+    <floater.string
+     name="smaller_label">
+        &gt;&gt;
+    </floater.string>
+    <floater.string
+     name="bigger_label">
+        &lt;&lt;
+    </floater.string>
+    <button
+     follows="top|left"
+     height="16"
+     image_selected="lag_status_good.tga"
+     image_unselected="lag_status_good.tga"
+     layout="topleft"
+     left="8"
+     name="client_lagmeter"
+     tab_stop="false"
+     tool_tip="Client lag status"
+     top="24"
+     width="16" />
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     font="SansSerif"
+     height="16"
+     layout="topleft"
+     left_pad="3"
+     name="client"
+     top_delta="0"
+     width="128">
+        Client
+    </text>
+    <text
+     invisiblity_control="LagMeterShrunk"
+     type="string"
+     length="1"
+     bottom="40"
+     follows="left|top"
+     font="SansSerif"
+     height="16"
+     layout="topleft"
+     left="110"
+     name="client_text"
+     right="-10">
+        Normal
+    </text>
+    <text
+     invisiblity_control="LagMeterShrunk"
+     bottom="56"
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="40"
+     name="client_lag_cause"
+     right="-32" />
+    <button
+     follows="top|left"
+     height="16"
+     image_selected="lag_status_good.tga"
+     image_unselected="lag_status_good.tga"
+     layout="topleft"
+     left="8"
+     name="network_lagmeter"
+     tab_stop="false"
+     tool_tip="Network lag status"
+     top="64"
+     width="16" />
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     font="SansSerif"
+     height="16"
+     layout="topleft"
+     left_pad="3"
+     name="network"
+     top_delta="0"
+     width="128">
+        Network
+    </text>
+    <text
+     invisiblity_control="LagMeterShrunk"
+     type="string"
+     length="1"
+     bottom="80"
+     follows="left|top"
+     font="SansSerif"
+     height="16"
+     layout="topleft"
+     left="110"
+     name="network_text"
+     right="-10">
+        Normal
+    </text>
+    <text
+     invisiblity_control="LagMeterShrunk"
+     bottom="96"
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="40"
+     name="network_lag_cause"
+     right="-32" />
+    <button
+     follows="top|left"
+     height="16"
+     image_selected="lag_status_good.tga"
+     image_unselected="lag_status_good.tga"
+     layout="topleft"
+     left="8"
+     name="server_lagmeter"
+     tab_stop="false"
+     tool_tip="Server lag status"
+     top="104"
+     width="16" />
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     font="SansSerif"
+     height="16"
+     layout="topleft"
+     left_pad="3"
+     name="server"
+     top_delta="0"
+     width="60">
+        Server
+    </text>
+    <text
+     invisiblity_control="LagMeterShrunk"
+     type="string"
+     length="1"
+     bottom="120"
+     follows="left|top"
+     font="SansSerif"
+     height="16"
+     layout="topleft"
+     left="110"
+     name="server_text"
+     right="-10">
+        Normal
+    </text>
+    <text
+     invisiblity_control="LagMeterShrunk"
+     bottom="136"
+     follows="left|top"
+     height="16"
+     layout="topleft"
+     left="40"
+     name="server_lag_cause"
+     right="-32" />
+    <button
+     follows="left|top"
+     height="20"
+     label="&gt;&gt;"
+     layout="topleft"
+     left="10"
+     name="minimize"
+	 tool_tip="Toggle floater size"
+     top_delta="24"
+     width="40">
+        <button.commit_callback
+         function="LagMeter.ClickShrink" />
+    </button>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_lagmeter.xml b/indra/newview/skins/default/xui/es/floater_lagmeter.xml
new file mode 100644
index 0000000000..227689a194
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_lagmeter.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="MEDIDOR DEL LAG">
+	<floater.string name="max_title_msg">
+		Medidor del lag
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Lag
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Cliente
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Normal, ventana en segundo plano
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Frames del cliente valorados por debajo de [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Frames del cliente valorados entre [CLIENT_FRAME_RATE_CRITICAL] y [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Posible causa: distancia de dibujo fijada muy alta
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Posible causa: imágenes cargándose
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Posible causa: demasiadas imágenes en la memoria
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Posible causa: demasiados objetos complejos en la escena
+	</floater.string>
+	<floater.string name="network_text_msg">
+		Red
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		La conexión deja caer más del [NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		La conexión deja caer [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		El tiempo de conexión -ping- supera los [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		El tiempo de conexión -ping- es de [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Quizá una mala conexión o un ancho de banda fijado demasiado alto.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Quizá una mala conexión o una aplicación de archivos compartidos.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Servidor
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Frecuencia (framerate) por debajo de [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Frecuencia (framerate) entre [SERVER_FRAME_RATE_CRITICAL] y [SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Posible causa: demasiados objetos físicos
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Posible causa: demasiados objetos con script
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Posible causa: demasiado tráfico en la red
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Posible causa: demasiada gente moviéndose en la región
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Posible causa: demasiados cálculos de imáganes
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Posible causa: carga del simulador muy pesada
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button label="" label_selected="" name="client_lagmeter" tool_tip="Estado del lag del cliente"/>
+	<text name="client">
+		Cliente
+	</text>
+	<text font="SansSerifSmall" name="client_text">
+		Normal
+	</text>
+	<text left="30" name="client_lag_cause" right="-10"/>
+	<button label="" label_selected="" name="network_lagmeter" tool_tip="Estado del lag de la red"/>
+	<text name="network">
+		Red
+	</text>
+	<text font="SansSerifSmall" name="network_text">
+		Normal
+	</text>
+	<text left="30" name="network_lag_cause" right="-10"/>
+	<button label="" label_selected="" name="server_lagmeter" tool_tip="Estado del lag del servidor"/>
+	<text name="server">
+		Servidor
+	</text>
+	<text font="SansSerifSmall" name="server_text">
+		Normal
+	</text>
+	<text left="30" name="server_lag_cause" right="-32"/>
+	<button label="&gt;&gt;" name="minimize" tool_tip="Cambia el tamaño de la ventana"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_lagmeter.xml b/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
new file mode 100644
index 0000000000..39a861d8bd
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="MESURE DU LAG">
+	<floater.string name="max_title_msg">
+		Mesure du lag
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Lag
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Client
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Normal, fenêtre en arrière-plan
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Taux de défilement [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Taux de défilement entre [CLIENT_FRAME_RATE_CRITICAL] et [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Cause possible : limite d&apos;affichage trop élevée
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Cause possible : images en cours de chargement
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Cause possible : trop d&apos;images en mémoire
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Cause possible : trop d&apos;objets complexes
+	</floater.string>
+	<floater.string name="network_text_msg">
+		Réseau
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		La connexion perd plus de [NETWORK_PACKET_LOSS_CRITICAL] % de paquets
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		La connexion perd entre [NETWORK_PACKET_LOSS_WARNING] % et [NETWORK_PACKET_LOSS_CRITICAL] % de paquets
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Connexion ping > [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Connexion ping entre [NETWORK_PING_WARNING] et [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Mauvaise connexion possible ou réglage de la bande passante trop élevé.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Mauvaise connexion possible ou app. de partage des fichiers
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Serveur
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Défilement du simulateur &lt; [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Défilement simulateur entre [SERVER_FRAME_RATE_CRITICAL] et [SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Cause possible : trop d&apos;objets physiques
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Cause possible : trop d&apos;objets scriptés
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Cause possible : trop de trafic réseau
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Cause possible : trop de personnes en mouvement
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Cause possible : trop de calculs d&apos;images
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Cause possible : charge simulateur trop lourde
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button name="client_lagmeter" tool_tip="Statut du lag client"/>
+	<text name="client">
+		Client
+	</text>
+	<text name="client_text">
+		Normal
+	</text>
+	<button name="network_lagmeter" tool_tip="Statut du lag réseau"/>
+	<text name="network">
+		Réseau
+	</text>
+	<text name="network_text">
+		Normal
+	</text>
+	<button name="server_lagmeter" tool_tip="Statut du lag serveur"/>
+	<text name="server">
+		Serveur
+	</text>
+	<text name="server_text">
+		Normal
+	</text>
+	<button label="&gt;&gt;" name="minimize" tool_tip="Activer/désactiver la taille du floater"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_lagmeter.xml b/indra/newview/skins/default/xui/it/floater_lagmeter.xml
new file mode 100644
index 0000000000..f7b2b1ab4a
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_lagmeter.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="MISURATORE LAG">
+	<floater.string name="max_title_msg">
+		Misuratore del lag
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Lag
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Programma in locale
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Normale, finestra sullo sfondo
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Velocità dei frame al di sotto di [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Velocità dei frame tra [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		Normale
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Possibile causa: Campo visivo impostato troppo alto
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Possibile causa: Caricamento immagini
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Possibile causa: Troppe immagini in memoria
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Possibile causa: Troppi oggetti complessi intorno
+	</floater.string>
+	<floater.string name="network_text_msg">
+		Network
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		La connessione sta calando al di sotto del [NETWORK_PACKET_LOSS_CRITICAL]% di pacchetti
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		La connessione sta calando tra il [NETWORK_PACKET_LOSS_WARNING]% e il [NETWORK_PACKET_LOSS_CRITICAL]% di pacchetti
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		Normale
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Il tempo di ping della connessione è al di sopra di [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Il tempo di ping della connessione è tra [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Possibile cattiva connessione o la larghezza di banda impostata nelle preferenze troppo alta.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Possibile cattiva connessione o l&apos;apertura di un programma di scambio files.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Server
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Velocità dei frame al di sotto di [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Velocità dei frame tra [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		Normale
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Possibile causa: troppi oggetti fisici
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Possibile causa: troppi oggetti scriptati
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Possibile causa: eccessivo traffico sulla rete
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Possibile causa: troppi residenti in movimento nella regione
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Possibile causa: troppe elaborazioni di immagini
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Possibile causa: carico eccessivo del simulatore
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button label="" label_selected="" name="client_lagmeter" tool_tip="Stato del lag del programma in locale"/>
+	<text name="client">
+		Client
+	</text>
+	<text font="SansSerifSmall" left="145" name="client_text">
+		Normale
+	</text>
+	<text left="30" name="client_lag_cause" right="-10"/>
+	<button label="" label_selected="" name="network_lagmeter" tool_tip="Stato del lag del network"/>
+	<text name="network">
+		Rete
+	</text>
+	<text font="SansSerifSmall" name="network_text">
+		Normale
+	</text>
+	<text left="30" name="network_lag_cause" right="-10"/>
+	<button label="" label_selected="" name="server_lagmeter" tool_tip="Stato del lag del server"/>
+	<text name="server">
+		Server
+	</text>
+	<text font="SansSerifSmall" name="server_text">
+		Normale
+	</text>
+	<text left="30" name="server_lag_cause" right="-32"/>
+	<button label="&gt;&gt;" name="minimize" tool_tip="Cambia dimensioni floater"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_lagmeter.xml b/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
new file mode 100644
index 0000000000..e3546cd837
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="ラグメーター">
+	<floater.string name="max_title_msg">
+		ラグ メーター
+	</floater.string>
+	<floater.string name="max_width_px">
+		350
+	</floater.string>
+	<floater.string name="min_title_msg">
+		ラグ
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		クライアント
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		ノーマル、ウィンドウは背景に
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		クライアント フレームレート < [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		クライアント フレームレート: [CLIENT_FRAME_RATE_CRITICAL] ~ [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		ノーマル
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		考えられる原因: 描画距離の設定が大きすぎる
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		考えられる原因: 画像のロード中
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		考えられる原因: メモリ内の画像数が多すぎる
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		考えられる原因: 画面に含まれる複雑なオブジェクトが多すぎる
+	</floater.string>
+	<floater.string name="network_text_msg">
+		ネットワーク
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		接続でドロップされるパケットの割合: > [NETWORK_PACKET_LOSS_CRITICAL]
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		接続でドロップされるパケットの割合:[NETWORK_PACKET_LOSS_WARNING] ~ [NETWORK_PACKET_LOSS_CRITICAL]
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		ノーマル
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		接続の ping 時間: > [NETWORK_PING_CRITICAL] ミリ秒
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		接続の ping 時間: [NETWORK_PING_WARNING] ~ [NETWORK_PING_CRITICAL] ミリ秒
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		接続不良になっているか、帯域幅設定が高すぎます。
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		接続不良になっているか、ファイル共有アプリケーションに問題があります。
+	</floater.string>
+	<floater.string name="server_text_msg">
+		サーバー
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		シミュレーターのフレームレート: < [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		シミュレーターのフレームレート: [SERVER_FRAME_RATE_CRITICAL] ~ [SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		ノーマル
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		考えられる原因: 物理的オブジェクトが多すぎる
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		考えられる原因: スクリプトを含むオブジェクトが多すぎる
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		考えられる原因: ネットワーク トラフィック過大
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		考えられる原因: 地域内にて動いているアバターが多すぎる
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		考えられる原因: 画像計算が多すぎる
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		考えられる原因: シミュレーターの過負荷
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button name="client_lagmeter" tool_tip="クライアント ラグ ステータス"/>
+	<text name="client">
+		クライアント
+	</text>
+	<text name="client_text">
+		ノーマル
+	</text>
+	<button name="network_lagmeter" tool_tip="ネットワーク ラグ ステータス"/>
+	<text name="network">
+		ネットワーク
+	</text>
+	<text name="network_text">
+		ノーマル
+	</text>
+	<button name="server_lagmeter" tool_tip="サーバー ラグ ステータス"/>
+	<text name="server">
+		サーバー
+	</text>
+	<text name="server_text">
+		ノーマル
+	</text>
+	<button label="&gt;&gt; " name="minimize" tool_tip="フローターのサイズをトグル"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_lagmeter.xml b/indra/newview/skins/default/xui/pl/floater_lagmeter.xml
new file mode 100644
index 0000000000..8038550bcb
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="POMIAR LAGÓW">
+	<floater.string name="max_title_msg">
+		Pomiar lagów
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Lag
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Klient
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		W normie, okno w tle
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Ilość klatek na sekundę klienta poniżej [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Ilość klatek na sekundę pomiędzy [CLIENT_FRAME_RATE_CRITICAL] i [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		W normie
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Przyczyna: dystans rysowania jest za wysoki
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Przyczyna: Å‚adowanie obrazu
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Przyczyna: za dużo obrazów w pamięci
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Przyczyna: za dużo złożonych obiektów
+	</floater.string>
+	<floater.string name="network_text_msg">
+		Sieć
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		Utrata pakietów przekracza [NETWORK_PACKET_LOSS_CRITICAL]%
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		Utrata pakietów przekracza [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]%
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		W normie
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Fatalny ping - [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Wolny ping - [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Złe połączenie lub przepustowość.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Złe połączenie lub aplikacja współdzieląca pliki.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Serwer
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Ilość klatek na sekundę poniżej [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Ilość klatek na sekundę pomiędzy [SERVER_FRAME_RATE_CRITICAL] i [SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		W normie
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Przyczyna: za dużo obiektów fizycznych
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Przyczyna: za dużo obieków skryptowanych
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Przyczyna: za duży ruch w sieci
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Przyczyna: za dużo poruszających się awatarów w regionie
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Przyczyna: za dużo kalkulacji obrazu
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Przyczyna: symulator Å‚aduje siÄ™ zbyt powoli
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button label="" label_selected="" name="client_lagmeter" tool_tip="Status lagów klienta"/>
+	<text name="client">
+		Klient
+	</text>
+	<text name="client_text">
+		W normie
+	</text>
+	<button label="" label_selected="" name="network_lagmeter" tool_tip="Network lag status"/>
+	<text name="network">
+		Sieć
+	</text>
+	<text name="network_text">
+		W normie
+	</text>
+	<button label="" label_selected="" name="server_lagmeter" tool_tip="Server lag status"/>
+	<text name="server">
+		Serwer
+	</text>
+	<text name="server_text">
+		W normie
+	</text>
+	<button label="&gt;&gt;" name="minimize" tool_tip="ZÅ‚Ä…cz rozmiar pliku xml"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_lagmeter.xml b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
new file mode 100644
index 0000000000..9932318293
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="LAG - Índice">
+	<floater.string name="max_title_msg">
+		Medidor de Atraso
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Atraso
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Cliente
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Normal, janela por baixo
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Taxa de quadros do Cliente abaixo de [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Taxa de quadros do Cliente entre [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Causa possível: Distância de desenho ajustada muito alta
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Causa possível: Carregamento de Imagens
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Causa possível: Muitas imagens na memória
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Causa possível: Muitos objetos complexos na cena
+	</floater.string>
+	<floater.string name="network_text_msg">
+		Rede
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		Conexão está caindo para cerca de [NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		Conexão está caindo [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Tempo de conexão de ping é cerca de  [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Tempo de conexão de ping é [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Possível conexão ruim ou &apos;Largura de Banda&apos; escolhida muito alta.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Possível conexão ruim ou aplicativos compartilhando arquivos.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Servidor
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Taxa de quadros abaixo de [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Taxa de quadros entre [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Causa possível: Muitos objetos físicos
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Causa possível: Muitos objetos com scripts
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Causa possível: Muito tráfego na rede
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Causa possível: Muitas pessoas se movendo na região
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Causa possível: Muitos cálculos de imagem
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Causa possível: Carga no simulador muito pesada
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button label="" label_selected="" name="client_lagmeter" tool_tip="Status de atraso no Cliente"/>
+	<text name="client">
+		Cliente
+	</text>
+	<text font="SansSerifSmall" name="client_text">
+		Normal
+	</text>
+	<text left="30" name="client_lag_cause" right="-10"/>
+	<button label="" label_selected="" name="network_lagmeter" tool_tip="Status de atraso na rede"/>
+	<text name="network">
+		Rede
+	</text>
+	<text font="SansSerifSmall" name="network_text">
+		Normal
+	</text>
+	<text left="30" name="network_lag_cause" right="-10"/>
+	<button label="" label_selected="" name="server_lagmeter" tool_tip="Status de atraso no servidor"/>
+	<text name="server">
+		Servidor
+	</text>
+	<text font="SansSerifSmall" name="server_text">
+		Normal
+	</text>
+	<text left="30" name="server_lag_cause" right="-32"/>
+	<button label="&gt;&gt;" name="minimize" tool_tip="Alternar o tamanho da janela"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_lagmeter.xml b/indra/newview/skins/default/xui/ru/floater_lagmeter.xml
new file mode 100644
index 0000000000..c420006a03
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="УРОВЕНЬ ЛАГОВ">
+	<floater.string name="max_title_msg">
+		Уровень лагов
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Лаг
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Клиент
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Нормально, окно в фоне
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Частота кадров клиента ниже [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Частота кадров клиента от [CLIENT_FRAME_RATE_CRITICAL] до [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		Нормально
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Возможная причина: дальность отрисовки слишком велика
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Возможная причина: загрузка изображений
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Возможная причина: слишком много изображений в памяти
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Возможная причина: слишком много сложных объектов в сцене
+	</floater.string>
+	<floater.string name="network_text_msg">
+		Сеть
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		Сеть теряет более [NETWORK_PACKET_LOSS_CRITICAL]% пакетов
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		Сеть теряет [NETWORK_PACKET_LOSS_WARNING]–[NETWORK_PACKET_LOSS_CRITICAL]% пакетов
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		Нормально
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Пинг соединения более [NETWORK_PING_CRITICAL] мс
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Пинг соединения [NETWORK_PING_WARNING]–[NETWORK_PING_CRITICAL] мс
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Возможно, плохое соединение, или параметр «Ширина канала» слишком велик.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Возможно, плохое соединение или есть работающие файлообменные программы.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Сервер
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Частота кадров сервера ниже [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Частота кадров сервера [SERVER_FRAME_RATE_CRITICAL]–[SERVER_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		Нормально
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Возможная причина: слишком много физических объектов
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Возможная причина: слишком много скриптовых объектов
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Возможная причина: слишком большой сетевой трафик
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Возможная причина: слишком много людей в регионе
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Возможная причина: слишком много изображений
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Возможная причина: сервер сильно загружен
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button name="client_lagmeter" tool_tip="Уровень лагов клиента"/>
+	<text name="client">
+		Клиент
+	</text>
+	<text name="client_text">
+		Нормально
+	</text>
+	<button name="network_lagmeter" tool_tip="Уровень лагов сети"/>
+	<text name="network">
+		Сеть
+	</text>
+	<text name="network_text">
+		Нормально
+	</text>
+	<button name="server_lagmeter" tool_tip="Уровень лагов сервера"/>
+	<text name="server">
+		Сервер
+	</text>
+	<text name="server_text">
+		Нормально
+	</text>
+	<button label="&gt;&gt;" name="minimize" tool_tip="Переключение размера"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_lagmeter.xml b/indra/newview/skins/default/xui/tr/floater_lagmeter.xml
new file mode 100644
index 0000000000..736c50be90
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="GECİKME ÖLÇER">
+	<floater.string name="max_title_msg">
+		Gecikme Ölçer
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Gecikme
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		Ä°stemci
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Normal, pencere alt zeminde
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		İstemci kare hızı [CLIENT_FRAME_RATE_CRITICAL] altında
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		İstemci kare hızı [CLIENT_FRAME_RATE_CRITICAL] ile [CLIENT_FRAME_RATE_WARNING] arasınad
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Muhtemel neden: Çizme mesafesi çok yüksek
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Muhtemel neden: Görüntüler yükleniyor
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Muhtemel neden: Bellekte çok fazla görüntü
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Muhtemel neden: Sahnede çok fazla karmaşık nesne
+	</floater.string>
+	<floater.string name="network_text_msg">
+		AÄŸ
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		Bağlantı paketlerin % [NETWORK_PACKET_LOSS_CRITICAL]&apos;sinden fazlasını bırakıyor
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		Bağlantı paketlerin % [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]&apos;sini bırakıyor
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Bağlantı ping süresi [NETWORK_PING_CRITICAL] ms.den fazla
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Bağlantı ping süresi [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Muhtemel yetersiz bağlantı veya &apos;Bant Genişliği&apos; tercihi çok yüksek.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Muhtemel yetersiz bağlantı veya dosya paylaşım uygulaması.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		Sunucu
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		Simülatör kare hızı [SERVER_FRAME_RATE_CRITICAL] altında
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		Simülatör kare hızı [SERVER_FRAME_RATE_CRITICAL] ve [SERVER_FRAME_RATE_WARNING] arasında
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		Normal
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		Muhtemel Neden: Çok fazla fiziki nesne
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		Muhtemel Neden: Çok fazla komut dosyalı nesne
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		Muhtemel Neden: Çok fazla ağ trafiği
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		Muhtemel Neden: Bölgede hareket eden çok fazla insan var
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		Muhtemel Neden: Çok fazla görüntü hesabı
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		Muhtemel Neden: Simülatör yükü çok ağır
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button name="client_lagmeter" tool_tip="Ä°stemci gecikme durumu"/>
+	<text name="client">
+		Ä°stemci
+	</text>
+	<text name="client_text">
+		Normal
+	</text>
+	<button name="network_lagmeter" tool_tip="AÄŸ gecikme durumu"/>
+	<text name="network">
+		AÄŸ
+	</text>
+	<text name="network_text">
+		Normal
+	</text>
+	<button name="server_lagmeter" tool_tip="Sunucu gecikme durumu"/>
+	<text name="server">
+		Sunucu
+	</text>
+	<text name="server_text">
+		Normal
+	</text>
+	<button label="&gt;&gt;" name="minimize" tool_tip="Gezdirici büyüklüğünü değiştir"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_lagmeter.xml b/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
new file mode 100644
index 0000000000..6e58e7332f
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="LAG 測量器">
+	<floater.string name="max_title_msg">
+		Lag 測量器
+	</floater.string>
+	<floater.string name="max_width_px">
+		360
+	</floater.string>
+	<floater.string name="min_title_msg">
+		Lag
+	</floater.string>
+	<floater.string name="min_width_px">
+		90
+	</floater.string>
+	<floater.string name="client_text_msg">
+		客戶端
+	</floater.string>
+	<floater.string name="client_frame_rate_critical_fps">
+		10
+	</floater.string>
+	<floater.string name="client_frame_rate_warning_fps">
+		15
+	</floater.string>
+	<floater.string name="client_frame_time_window_bg_msg">
+		Normal, window in background
+	</floater.string>
+	<floater.string name="client_frame_time_critical_msg">
+		Client frame rate below [CLIENT_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="client_frame_time_warning_msg">
+		Client frame rate between [CLIENT_FRAME_RATE_CRITICAL] and [CLIENT_FRAME_RATE_WARNING]
+	</floater.string>
+	<floater.string name="client_frame_time_normal_msg">
+		正常
+	</floater.string>
+	<floater.string name="client_draw_distance_cause_msg">
+		Possible cause: Draw distance set too high
+	</floater.string>
+	<floater.string name="client_texture_loading_cause_msg">
+		Possible cause: Images loading
+	</floater.string>
+	<floater.string name="client_texture_memory_cause_msg">
+		Possible cause: Too many images in memory
+	</floater.string>
+	<floater.string name="client_complex_objects_cause_msg">
+		Possible cause: Too many complex objects in scene
+	</floater.string>
+	<floater.string name="network_text_msg">
+		網路
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_pct">
+		10
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_pct">
+		5
+	</floater.string>
+	<floater.string name="network_packet_loss_critical_msg">
+		Connection is dropping over [NETWORK_PACKET_LOSS_CRITICAL]% of packets
+	</floater.string>
+	<floater.string name="network_packet_loss_warning_msg">
+		Connection is dropping [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% of packets
+	</floater.string>
+	<floater.string name="network_performance_normal_msg">
+		正常
+	</floater.string>
+	<floater.string name="network_ping_critical_ms">
+		600
+	</floater.string>
+	<floater.string name="network_ping_warning_ms">
+		300
+	</floater.string>
+	<floater.string name="network_ping_critical_msg">
+		Connection ping time is over [NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_ping_warning_msg">
+		Connection ping time is [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+	</floater.string>
+	<floater.string name="network_packet_loss_cause_msg">
+		Possible bad connection or &apos;Bandwidth&apos; pref too high.
+	</floater.string>
+	<floater.string name="network_ping_cause_msg">
+		Possible bad connection or file-sharing app.
+	</floater.string>
+	<floater.string name="server_text_msg">
+		伺服器
+	</floater.string>
+	<floater.string name="server_frame_rate_critical_fps">
+		20
+	</floater.string>
+	<floater.string name="server_frame_rate_warning_fps">
+		30
+	</floater.string>
+	<floater.string name="server_single_process_max_time_ms">
+		20
+	</floater.string>
+	<floater.string name="server_frame_time_critical_msg">
+		模擬器 framerate 低於 [SERVER_FRAME_RATE_CRITICAL]
+	</floater.string>
+	<floater.string name="server_frame_time_warning_msg">
+		模擬器 framerate 介於 [SERVER_FRAME_RATE_CRITICAL] 與 [SERVER_FRAME_RATE_WARNING] 之間
+	</floater.string>
+	<floater.string name="server_frame_time_normal_msg">
+		正常
+	</floater.string>
+	<floater.string name="server_physics_cause_msg">
+		可能原因:太多物理物件
+	</floater.string>
+	<floater.string name="server_scripts_cause_msg">
+		可能原因:太多腳本物件
+	</floater.string>
+	<floater.string name="server_net_cause_msg">
+		可能原因:太多網路流量
+	</floater.string>
+	<floater.string name="server_agent_cause_msg">
+		可能原因:地區有太多移動的人
+	</floater.string>
+	<floater.string name="server_images_cause_msg">
+		可能原因:太多圖像計算
+	</floater.string>
+	<floater.string name="server_generic_cause_msg">
+		可能原因:模擬器負載過重
+	</floater.string>
+	<floater.string name="smaller_label">
+		&gt;&gt;
+	</floater.string>
+	<floater.string name="bigger_label">
+		&lt;&lt;
+	</floater.string>
+	<button name="client_lagmeter" tool_tip="客戶端 lag 狀態"/>
+	<text name="client">
+		客戶端
+	</text>
+	<text name="client_text">
+		正常
+	</text>
+	<button name="network_lagmeter" tool_tip="網路 lag 狀態"/>
+	<text name="network">
+		網路
+	</text>
+	<text name="network_text">
+		正常
+	</text>
+	<button name="server_lagmeter" tool_tip="伺服器 lag 狀態"/>
+	<text name="server">
+		伺服器
+	</text>
+	<text name="server_text">
+		正常
+	</text>
+	<button label="&gt;&gt;" name="minimize" tool_tip="切換浮動視窗尺寸"/>
+</floater>
-- 
GitLab