VirLinden avatar VirLinden committed 56364db Merge

merge

Comments (0)

Files changed (291)

 0c4d0c24278074f219e5a32e72b449e78301d11b DRTVWR-61_2.7.1-beta1
 0c4d0c24278074f219e5a32e72b449e78301d11b 2.7.1-beta1
 9f79a6ed8fdcd2f3dac33ea6b3236eeb278dccfe 2.7.2-start
+6a3e7e403bd19e45fdfc2fcc716867af3ab80861 2.7.3-start
 oz_project-1.build_debug_release_separately = true
 oz_project-2.build_debug_release_separately = true
 oz-project-3.build_debug_release_separately = true
+oz_viewer-beta-review.build_debug_release_separately = true
+oz_viewer-poreview.build_debug_release_separately = true
+oz_viewer-poreview.codeticket_add_context = false
 
-
-oz_viewer-beta-review.build_debug_release_separately = true
 # ========================================
 # enus
 # ========================================

indra/llcommon/llversionviewer.h

 
 const S32 LL_VERSION_MAJOR = 2;
 const S32 LL_VERSION_MINOR = 7;
-const S32 LL_VERSION_PATCH = 3;
+const S32 LL_VERSION_PATCH = 4;
 const S32 LL_VERSION_BUILD = 0;
 
 const char * const LL_CHANNEL = "Second Life Developer";

indra/llmessage/tests/commtest.h

 #include "llsd.h"
 #include "llhost.h"
 #include "stringize.h"
+#include <map>
 #include <string>
 #include <stdexcept>
 #include <boost/lexical_cast.hpp>
     CommtestError(const std::string& what): std::runtime_error(what) {}
 };
 
+static bool query_verbose()
+{
+    const char* cbose = getenv("INTEGRATION_TEST_VERBOSE");
+    if (! cbose)
+    {
+        cbose = "1";
+    }
+    std::string strbose(cbose);
+    return (! (strbose == "0" || strbose == "off" ||
+               strbose == "false" || strbose == "quiet"));
+}
+
+bool verbose()
+{
+    // This should only be initialized once.
+    static bool vflag = query_verbose();
+    return vflag;
+}
+
+static int query_port(const std::string& var)
+{
+    const char* cport = getenv(var.c_str());
+    if (! cport)
+    {
+        throw CommtestError(STRINGIZE("missing environment variable" << var));
+    }
+    // This will throw, too, if the value of PORT isn't numeric.
+    int port(boost::lexical_cast<int>(cport));
+    if (verbose())
+    {
+        std::cout << "getport('" << var << "') = " << port << std::endl;
+    }
+    return port;
+}
+
+static int getport(const std::string& var)
+{
+    typedef std::map<std::string, int> portsmap;
+    static portsmap ports;
+    // We can do this with a single map lookup with map::insert(). Either it
+    // returns an existing entry and 'false' (not newly inserted), or it
+    // inserts the specified value and 'true'.
+    std::pair<portsmap::iterator, bool> inserted(ports.insert(portsmap::value_type(var, 0)));
+    if (inserted.second)
+    {
+        // We haven't yet seen this var. Remember its value.
+        inserted.first->second = query_port(var);
+    }
+    // Return the (existing or new) iterator's value.
+    return inserted.first->second;
+}
+
 /**
  * This struct is shared by a couple of standalone comm tests (ADD_COMM_BUILD_TEST).
  */
 
     static int getport(const std::string& var)
     {
-        const char* port = getenv(var.c_str());
-        if (! port)
-        {
-            throw CommtestError("missing $PORT environment variable");
-        }
-        // This will throw, too, if the value of PORT isn't numeric.
-        return boost::lexical_cast<int>(port);
+        // We have a couple consumers of commtest_data::getport(). But we've
+        // since moved it out to the global namespace. So this is just a
+        // facade.
+        return ::getport(var);
     }
 
     bool outcome(const LLSD& _result, bool _success)

indra/llmessage/tests/test_llsdmessage_peer.py

 sys.path.insert(0, os.path.join(mydir, os.pardir, os.pardir, "lib", "python"))
 from indra.util.fastest_elementtree import parse as xml_parse
 from indra.base import llsd
-from testrunner import freeport, run, debug
+from testrunner import freeport, run, debug, VERBOSE
 
 class TestHTTPRequestHandler(BaseHTTPRequestHandler):
     """This subclass of BaseHTTPRequestHandler is to receive and echo
 ##         # assuming that the underlying XML parser reads its input file
 ##         # incrementally. Unfortunately I haven't been able to make it work.
 ##         tree = xml_parse(self.rfile)
-##         debug("Finished raw parse\n")
-##         debug("parsed XML tree %s\n" % tree)
-##         debug("parsed root node %s\n" % tree.getroot())
-##         debug("root node tag %s\n" % tree.getroot().tag)
+##         debug("Finished raw parse")
+##         debug("parsed XML tree %s", tree)
+##         debug("parsed root node %s", tree.getroot())
+##         debug("root node tag %s", tree.getroot().tag)
 ##         return llsd.to_python(tree.getroot())
 
     def do_GET(self):
         self.answer(self.read_xml())
 
     def answer(self, data):
+        debug("%s.answer(%s): self.path = %r", self.__class__.__name__, data, self.path)
         if "fail" not in self.path:
             response = llsd.format_xml(data.get("reply", llsd.LLSD("success")))
+            debug("success: %s", response)
             self.send_response(200)
             self.send_header("Content-type", "application/llsd+xml")
             self.send_header("Content-Length", str(len(response)))
                                                   ("fail requested",
                                                    "Your request specified failure status %s "
                                                    "without providing a reason" % status))[1])
+            debug("fail requested: %s: %r", status, reason)
             self.send_error(status, reason)
 
-    def log_request(self, code, size=None):
-        # For present purposes, we don't want the request splattered onto
-        # stderr, as it would upset devs watching the test run
-        pass
+    if not VERBOSE:
+        # When VERBOSE is set, skip both these overrides because they exist to
+        # suppress output.
 
-    def log_error(self, format, *args):
-        # Suppress error output as well
-        pass
+        def log_request(self, code, size=None):
+            # For present purposes, we don't want the request splattered onto
+            # stderr, as it would upset devs watching the test run
+            pass
+
+        def log_error(self, format, *args):
+            # Suppress error output as well
+            pass
 
 if __name__ == "__main__":
     # Instantiate an HTTPServer(TestHTTPRequestHandler) on the first free port
     # command-line parsing -- and anyway, for C++ integration tests, that's
     # performed in TUT code rather than our own.
     os.environ["PORT"] = str(port)
+    debug("$PORT = %s", port)
     sys.exit(run(server=Thread(name="httpd", target=httpd.serve_forever), *sys.argv[1:]))

indra/llmessage/tests/testrunner.py

 
 import os
 import sys
+import re
 import errno
 import socket
 
-def debug(*args):
-    sys.stdout.writelines(args)
-    sys.stdout.flush()
-# comment out the line below to enable debug output
-debug = lambda *args: None
+VERBOSE = os.environ.get("INTEGRATION_TEST_VERBOSE", "1") # default to verbose
+# Support usage such as INTEGRATION_TEST_VERBOSE=off -- distressing to user if
+# that construct actually turns on verbosity...
+VERBOSE = not re.match(r"(0|off|false|quiet)$", VERBOSE, re.IGNORECASE)
+
+if VERBOSE:
+    def debug(fmt, *args):
+        print fmt % args
+        sys.stdout.flush()
+else:
+    debug = lambda *args: None
 
 def freeport(portlist, expr):
     """
     # pass 'port' to client code
     # call server.serve_forever()
     """
-    # If portlist is completely empty, let StopIteration propagate: that's an
-    # error because we can't return meaningful values. We have no 'port',
-    # therefore no 'expr(port)'.
-    portiter = iter(portlist)
-    port = portiter.next()
+    try:
+        # If portlist is completely empty, let StopIteration propagate: that's an
+        # error because we can't return meaningful values. We have no 'port',
+        # therefore no 'expr(port)'.
+        portiter = iter(portlist)
+        port = portiter.next()
 
-    while True:
-        try:
-            # If this value of port works, return as promised.
-            return expr(port), port
+        while True:
+            try:
+                # If this value of port works, return as promised.
+                value = expr(port)
 
-        except socket.error, err:
-            # Anything other than 'Address already in use', propagate
-            if err.args[0] != errno.EADDRINUSE:
-                raise
+            except socket.error, err:
+                # Anything other than 'Address already in use', propagate
+                if err.args[0] != errno.EADDRINUSE:
+                    raise
 
-            # Here we want the next port from portiter. But on StopIteration,
-            # we want to raise the original exception rather than
-            # StopIteration. So save the original exc_info().
-            type, value, tb = sys.exc_info()
-            try:
+                # Here we want the next port from portiter. But on StopIteration,
+                # we want to raise the original exception rather than
+                # StopIteration. So save the original exc_info().
+                type, value, tb = sys.exc_info()
                 try:
-                    port = portiter.next()
-                except StopIteration:
-                    raise type, value, tb
-            finally:
-                # Clean up local traceback, see docs for sys.exc_info()
-                del tb
+                    try:
+                        port = portiter.next()
+                    except StopIteration:
+                        raise type, value, tb
+                finally:
+                    # Clean up local traceback, see docs for sys.exc_info()
+                    del tb
 
-        # Recap of the control flow above:
-        # If expr(port) doesn't raise, return as promised.
-        # If expr(port) raises anything but EADDRINUSE, propagate that
-        # exception.
-        # If portiter.next() raises StopIteration -- that is, if the port
-        # value we just passed to expr(port) was the last available -- reraise
-        # the EADDRINUSE exception.
-        # If we've actually arrived at this point, portiter.next() delivered a
-        # new port value. Loop back to pass that to expr(port).
+            else:
+                debug("freeport() returning %s on port %s", value, port)
+                return value, port
+
+            # Recap of the control flow above:
+            # If expr(port) doesn't raise, return as promised.
+            # If expr(port) raises anything but EADDRINUSE, propagate that
+            # exception.
+            # If portiter.next() raises StopIteration -- that is, if the port
+            # value we just passed to expr(port) was the last available -- reraise
+            # the EADDRINUSE exception.
+            # If we've actually arrived at this point, portiter.next() delivered a
+            # new port value. Loop back to pass that to expr(port).
+
+    except Exception, err:
+        debug("*** freeport() raising %s: %s", err.__class__.__name__, err)
+        raise
 
 def run(*args, **kwds):
     """All positional arguments collectively form a command line, executed as
     # - [no p] don't use the PATH because we specifically want to invoke the
     #   executable passed as our first arg,
     # - [no e] child should inherit this process's environment.
-    debug("Running %s...\n" % (" ".join(args)))
-    sys.stdout.flush()
+    debug("Running %s...", " ".join(args))
     rc = os.spawnv(os.P_WAIT, args[0], args)
-    debug("%s returned %s\n" % (args[0], rc))
+    debug("%s returned %s", args[0], rc)
     return rc

indra/newview/skins/default/xui/da/floater_about_land.xml

 			</text>
 			<check_box label="Redigere terræn" name="edit land check" tool_tip="Hvis dette er valg, kan enhver redigere dit land. Det er bedst ikke at vælge her, da det altid er muligt for dig som ejer at ændre terræn på dit eget land."/>
 			<check_box label="Flyve" name="check fly" tool_tip="Hvis valgt, kan beboere flyve på dit land. Hvis ikke valgt kan beboere kun flyve ind på dit land og over dit land."/>
-			<text left="194" name="allow_label2">
+			<text name="allow_label2">
 				Lave objekter:
 			</text>
 			<check_box label="Alle beboere" name="edit objects check"/>
 			<check_box label="Gruppe" name="edit group objects check"/>
-			<text left="170" name="allow_label3">
+			<text name="allow_label3">
 				Anbringe objekter:
 			</text>
 			<check_box label="Alle beboere" name="all object entry check"/>
 			<check_box label="Gruppe" name="group object entry check"/>
-			<text left="200" name="allow_label4">
+			<text name="allow_label4">
 				Køre scripts:
 			</text>
 			<check_box label="Alle beboere" name="check other scripts"/>

indra/newview/skins/default/xui/da/floater_env_settings.xml

 		[hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
 	</floater.string>
 	<text name="EnvTimeText">
-		Tid på dagen
+		Tid på 
+dagen
 	</text>
 	<text name="EnvTimeText2">
 		00:00
 	</text>
 	<slider label="" name="EnvCloudSlider"/>
 	<text name="EnvWaterColorText">
-		Farve på vand
+		Farve på 
+vand
 	</text>
 	<color_swatch label="" name="EnvWaterColor" tool_tip="Klik for at åbne farvevælger"/>
 	<text name="EnvWaterFogText">
-		Tåge på vand
+		Tåge på 
+vand
 	</text>
 	<slider label="" name="EnvWaterFogSlider"/>
 	<button label="Benyt tid fra estate" name="EnvUseEstateTimeButton"/>

indra/newview/skins/default/xui/de/floater_about_land.xml

 				Preis: [PRICE] L$ ([PRICE_PER_SQM]L$/m²)
 			</text>
 			<text name="SalePending"/>
-			<button bottom="-222" label="Land verkaufen" label_selected="Land verkaufen..." name="Sell Land..."/>
+			<button label="Land verkaufen" label_selected="Land verkaufen..." name="Sell Land..."/>
 			<text name="For sale to">
 				Zum Verkauf an: [BUYER]
 			</text>
-			<text left_delta="-50" name="Sell with landowners objects in parcel." width="240">
+			<text name="Sell with landowners objects in parcel.">
 				Objekte sind im Verkauf eingeschlossen
 			</text>
-			<text name="Selling with no objects in parcel." width="260">
+			<text name="Selling with no objects in parcel.">
 				Objekte sind im Verkauf nicht eingeschlossen
 			</text>
-			<button bottom="-222" label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale"/>
+			<button label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale"/>
 			<text name="Claimed:">
 				Gekauft am:
 			</text>

indra/newview/skins/default/xui/en/floater_sell_land.xml

      font="SansSerif"
      height="16"
      left="30"
-     name="sell_objects_label">
+     name="sell_objects_label"
+     width="266">
         3. Sell the objects with the land?
     </text>
     <text

indra/newview/skins/default/xui/es/floater_about.xml

 		<panel label="Licencias" name="licenses_panel">
 			<text_editor name="credits_editor">
 				3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
-  APR Copyright (C) 2000-2004 The Apache Software Foundation
-  cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
-  DBus/dbus-glib Copyright (C) 2002, 2003  CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
-  expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
-  FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
-  GL Copyright (C) 1999-2004 Brian Paul.
-  Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
-  jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
-  jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
-  ogg/vorbis Copyright (C) 2001, Xiphophorus
-  OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
-  SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
-  SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
-  xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
-  zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
-  google-perftools Copyright (c) 2005, Google Inc.
-  
-  All rights reserved.  See licenses.txt for details.
+APR Copyright (C) 2000-2004 The Apache Software Foundation
+Collada DOM Copyright 2005 Sony Computer Entertainment Inc.
+cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
+DBus/dbus-glib Copyright (C) 2002, 2003  CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
+expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
+FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
+GL Copyright (C) 1999-2004 Brian Paul.
+GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University y David Luebke, Brenden Schubert, University of Virginia.
+google-perftools Copyright (c) 2005, Google Inc.
+Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
+jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
+jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ogg/vorbis Copyright (C) 2001, Xiphophorus
+OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
+PCRE Copyright (c) 1997-2008 University of Cambridge
+SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+zlib Copyright (C) 1995-2002 Jean-loup Gailly y Mark Adler.
+google-perftools Copyright (c) 2005, Google Inc.
 
-  Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
+El visor de Second Life utiliza Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (y los propietarios de las licencias). Reservados todos los derechos. Consulta www.havok.com si deseas obtener más información.
+
+Reservados todos los derechos.  Consulta las licencias en .txt si deseas obtener más información.
+
+Codificación de sonido del chat de voz: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
 			</text_editor>
 		</panel>
 	</tab_container>

indra/newview/skins/default/xui/es/floater_about_land.xml

 			<text name="For sale to">
 				En venta a: [BUYER]
 			</text>
-			<text name="Sell with landowners objects in parcel." width="216">
-				Los objetos se incluyen en la venta.
+			<text name="Sell with landowners objects in parcel.">
+				Objetos incluidos en la venta
 			</text>
-			<text name="Selling with no objects in parcel." width="216">
+			<text name="Selling with no objects in parcel.">
 				Los objetos no se incluyen en la venta.
 			</text>
-			<button bottom="-245" font="SansSerifSmall" label="Cancelar la venta del terreno" label_selected="Cancelar la venta del terreno" left="275" name="Cancel Land Sale"/>
+			<button label="Cancelar la venta del terreno" label_selected="Cancelar la venta del terreno" name="Cancel Land Sale"/>
 			<text name="Claimed:">
 				Reclamada:
 			</text>
 				0
 			</text>
 			<button label="Comprar terreno" left="130" name="Buy Land..." width="125"/>
-			<button label="Información del script" name="Scripts..."/>
+			<button label="Información de scripts" name="Scripts..."/>
 			<button label="Comprar para el grupo" name="Buy For Group..."/>
 			<button label="Comprar un pase" left="130" name="Buy Pass..." tool_tip="Un pase le da acceso temporal a este terreno." width="125"/>
 			<button label="Abandonar el terreno" name="Abandon Land..."/>

indra/newview/skins/default/xui/es/floater_buy_contents.xml

 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="floater_buy_contents" title="COMPRAR LOS CONTENIDOS">
 	<text name="contains_text">
-		[NAME] contiene:
+		&lt;nolink&gt;[NOMBRE]&lt;/nolink&gt; contiene:
 	</text>
 	<text name="buy_text">
 		¿Comprar por [AMOUNT] L$ a [NAME]?

indra/newview/skins/default/xui/es/floater_import_collada.xml

+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Import Collada" title="Importar escena">
+	<text name="mesh count">
+		Redes: [RECUENTO]
+	</text>
+	<text name="texture count">
+		Texturas: [RECUENTO]
+	</text>
+	<text name="status">
+		Estado: [ESTADO]
+	</text>
+	<button label="Cancelar" name="cancel"/>
+	<button label="OK" name="ok"/>
+	<string name="status_idle">
+		Inactivo
+	</string>
+	<string name="status_uploading">
+		Cargando [NOMBRE]
+	</string>
+	<string name="status_creating">
+		Creando objeto [NOMBRE]
+	</string>
+</floater>

indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml

 	<check_box label="Ropa" name="check_clothing"/>
 	<check_box label="Gestos" name="check_gesture"/>
 	<check_box label="Hitos" name="check_landmark"/>
+	<check_box label="Redes" name="check_mesh"/>
 	<check_box label="Notas" name="check_notecard"/>
 	<check_box label="Objetos" name="check_object"/>
 	<check_box label="Scripts" name="check_script"/>
 	<button label="Todos" label_selected="Todo" name="All"/>
 	<button label="Ninguno" label_selected="Nada" name="None"/>
 	<check_box label="Mostrar siempre las carpetas" name="check_show_empty"/>
-	<check_box label="Desde el fin de sesión" name="check_since_logoff" bottom_delta="-36"/>
+	<check_box bottom_delta="-36" label="Desde el fin de sesión" name="check_since_logoff"/>
 	<text name="- OR -">
 		- o -
 	</text>
 	<spinner label="horas atrás" name="spin_hours_ago"/>
 	<spinner label="días atrás" name="spin_days_ago"/>
-	<button label="Cerrar" label_selected="Cerrar" name="Close" bottom_delta="-30"/>
+	<button bottom_delta="-30" label="Cerrar" label_selected="Cerrar" name="Close"/>
 </floater>

indra/newview/skins/default/xui/es/floater_model_preview.xml

+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Model Preview" title="Cargar modelo">
+	<string name="status_idle">
+		Inactivo
+	</string>
+	<string name="status_reading_file">
+		Cargando...
+	</string>
+	<string name="status_generating_meshes">
+		Generando redes...
+	</string>
+	<string name="status_vertex_number_overflow">
+		Error: El número de intersección es superior a 65534. Cancelado.
+	</string>
+	<string name="high">
+		Alto
+	</string>
+	<string name="medium">
+		Media
+	</string>
+	<string name="low">
+		Bajo
+	</string>
+	<string name="lowest">
+		Mínimo
+	</string>
+	<string name="mesh_status_good">
+		Factúralo.
+	</string>
+	<string name="mesh_status_na">
+		N/A
+	</string>
+	<string name="mesh_status_none">
+		Ninguno
+	</string>
+	<string name="mesh_status_submesh_mismatch">
+		Los niveles de detalle poseen un número distinto de caras a las que se pueden aplicar texturas.
+	</string>
+	<string name="mesh_status_mesh_mismatch">
+		Los niveles de detalle poseen un número distinto de ejemplos de red.
+	</string>
+	<string name="mesh_status_too_many_vertices">
+		El nivel de detalle posee demasiadas intersecciones.
+	</string>
+	<string name="mesh_status_missing_lod">
+		Falta un nivel de detalle requerido.
+	</string>
+	<string name="layer_all">
+		Todo
+	</string>
+	<string name="decomposing">
+		Analizando...
+	</string>
+	<string name="simplifying">
+		Simplificando...
+	</string>
+	<text name="name_label">
+		Nombre:
+	</text>
+	<text name="lod_label">
+		Vista previa:
+	</text>
+	<combo_box name="preview_lod_combo" tool_tip="Nivel de detalle disponible en la vista previa">
+		<combo_item name="high">
+			Nivel de detalle: Alto
+		</combo_item>
+		<combo_item name="medium">
+			Nivel de detalle: Media
+		</combo_item>
+		<combo_item name="low">
+			Nivel de detalle: Bajo
+		</combo_item>
+		<combo_item name="lowest">
+			Nivel de detalle: Mínimo
+		</combo_item>
+	</combo_box>
+	<panel>
+		<text name="streaming cost">
+			Coste de recursos: [COSTE]
+		</text>
+		<text name="physics cost">
+			Coste físico: [COSTE]
+		</text>
+		<text name="upload fee">
+			Cuota de carga: N/A
+		</text>
+	</panel>
+	<text name="status">
+		[ESTADO]
+	</text>
+	<button label="Valores predeterminados" name="reset_btn" tool_tip="Restablecer valores predeterminados"/>
+	<button label="Subir" name="ok_btn" tool_tip="Cargar al simulador"/>
+	<button label="Cancelar" name="cancel_btn"/>
+	<tab_container name="import_tab">
+		<panel label="Nivel de detalle" name="lod_panel">
+			<text name="lod_table_header">
+				Seleccionar nivel de detalle:
+			</text>
+			<text name="high_label" value="Alto"/>
+			<text name="high_triangles" value="0"/>
+			<text name="high_vertices" value="0"/>
+			<text name="medium_label" value="Media"/>
+			<text name="medium_triangles" value="0"/>
+			<text name="medium_vertices" value="0"/>
+			<text name="low_label" value="Bajo"/>
+			<text name="low_triangles" value="0"/>
+			<text name="low_vertices" value="0"/>
+			<text name="lowest_label" value="Mínimo"/>
+			<text name="lowest_triangles" value="0"/>
+			<text name="lowest_vertices" value="0"/>
+			<text name="lod_table_footer">
+				Nivel de detalle: [DETALLE]
+			</text>
+			<radio_group name="lod_file_or_limit" value="lod_from_file">
+				<radio_item label="Cargar desde el archivo" name="lod_from_file"/>
+				<radio_item label="Generar automáticamente" name="lod_auto_generate"/>
+				<radio_item label="Ninguno" name="lod_none"/>
+			</radio_group>
+			<button label="Examinar..." name="lod_browse"/>
+			<combo_box name="lod_mode">
+				<combo_item name="triangle_limit">
+					Límite de triángulo
+				</combo_item>
+				<combo_item name="error_threshold">
+					Margen de error
+				</combo_item>
+			</combo_box>
+			<text name="build_operator_text">
+				Crear operador:
+			</text>
+			<text name="queue_mode_text">
+				Modo de cola:
+			</text>
+			<combo_box name="build_operator">
+				<combo_item name="edge_collapse">
+					Cerrar bordes
+				</combo_item>
+				<combo_item name="half_edge_collapse">
+					Cerrar la mitad de los bordes
+				</combo_item>
+			</combo_box>
+			<combo_box name="queue_mode">
+				<combo_item name="greedy">
+					Egoísta
+				</combo_item>
+				<combo_item name="lazy">
+					Vago
+				</combo_item>
+				<combo_item name="independent">
+					Independiente
+				</combo_item>
+			</combo_box>
+			<text name="border_mode_text">
+				Modo de borde:
+			</text>
+			<text name="share_tolderance_text">
+				Tolerancia de uso compartido:
+			</text>
+			<combo_box name="border_mode">
+				<combo_item name="border_unlock">
+					Desbloquear
+				</combo_item>
+				<combo_item name="border_lock">
+					Lock
+				</combo_item>
+			</combo_box>
+			<text name="crease_label">
+				Ángulo de marca:
+			</text>
+			<spinner name="crease_angle" value="75"/>
+		</panel>
+		<panel label="Física" name="physics_panel">
+			<panel name="physics geometry">
+				<radio_group name="physics_load_radio" value="physics_load_from_file">
+					<radio_item label="Archivo:" name="physics_load_from_file"/>
+					<radio_item label="Utilizar nivel de detalle:" name="physics_use_lod"/>
+				</radio_group>
+				<combo_box name="physics_lod_combo" tool_tip="Nivel de detalle para forma física">
+					<combo_item name="physics_lowest">
+						Mínimo
+					</combo_item>
+					<combo_item name="physics_low">
+						Bajo
+					</combo_item>
+					<combo_item name="physics_medium">
+						Media
+					</combo_item>
+					<combo_item name="physics_high">
+						Alto
+					</combo_item>
+				</combo_box>
+				<button label="Examinar..." name="physics_browse"/>
+			</panel>
+			<panel name="physics analysis">
+				<slider label="Leve:" name="Smooth"/>
+				<check_box label="Cerrar agujeros (lento)" name="Close Holes (Slow)"/>
+				<button label="Analizar" name="Decompose"/>
+				<button label="Cancelar" name="decompose_cancel"/>
+			</panel>
+			<panel name="physics simplification">
+				<slider label="Pases:" name="Combine Quality"/>
+				<slider label="Escala de detalle:" name="Detail Scale"/>
+				<slider label="Retener:" name="Retain%"/>
+				<button label="Simplificar" name="Simplify"/>
+				<button label="Cancelar" name="simplify_cancel"/>
+			</panel>
+			<panel name="physics info">
+				<slider label="Ampliación de vista previa:" name="physics_explode"/>
+				<text name="physics_triangles">
+					Triángulos: [TRIÁNGULOS]
+				</text>
+				<text name="physics_points">
+					Intersecciones: [PUNTOS]
+				</text>
+				<text name="physics_hulls">
+					Aspecto exterior: [ASPECTO EXTERIOR]
+				</text>
+			</panel>
+		</panel>
+		<panel label="Modificadores" name="modifiers_panel">
+			<spinner name="import_scale" value="1.0"/>
+			<text name="import_dimensions">
+				[X] x [Y] x [Z] m
+			</text>
+			<check_box label="Texturas" name="upload_textures"/>
+			<check_box label="Peso de la piel" name="upload_skin"/>
+			<check_box label="Posturas de las articulaciones" name="upload_joints"/>
+			<spinner name="pelvis_offset" value="0.0"/>
+		</panel>
+	</tab_container>
+</floater>

indra/newview/skins/default/xui/es/floater_model_wizard.xml

+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Model Wizard" title="CARGAR ASISTENTE DE MODELO">
+	<button label="5. Subir" name="upload_btn"/>
+	<button label="4. Revisar" name="review_btn"/>
+	<button label="3. Física" name="physics2_btn"/>
+	<button label="3. Física" name="physics_btn"/>
+	<button label="2. Optimizar" name="optimize_btn"/>
+	<button label="1. Seleccionar archivo" name="choose_file_btn"/>
+	<panel name="choose_file_panel">
+		<panel name="header_panel">
+			<text name="header_text">
+				Cargar modelo
+			</text>
+		</panel>
+		<text name="description">
+			Este asistente te ayudará a importar modelos de redes en Second Life.  En primer lugar, especifica un archivo que contenga el modelo que desees importar.  Second Life es compatible con los archivos de COLLADA (.dae).
+		</text>
+		<panel name="content">
+			<text name="Cache location">
+				Nombre del archivo:
+			</text>
+			<button label="Examinar..." label_selected="Examinar..." name="browse"/>
+			<text name="dimensions">
+				X:         Y:         Z:
+			</text>
+			<text name="dimension_dividers">
+				|               |
+			</text>
+		</panel>
+	</panel>
+	<panel name="optimize_panel">
+		<panel name="header_panel">
+			<text name="header_text">
+				Optimizar
+			</text>
+		</panel>
+		<text name="description">
+			Este asistente ha optimizado tu modelo con el fin de mejorar el rendimiento. Puedes ajustar los resultados del proceso de optimización a continuación o hacer clic en Siguiente para continuar.
+		</text>
+		<panel name="content">
+			<text name="high_detail_text">
+				Generar nivel de detalle: Alto
+			</text>
+			<text name="medium_detail_text">
+				Generar nivel de detalle: Media
+			</text>
+			<text name="low_detail_text">
+				Generar nivel de detalle: Bajo
+			</text>
+			<text name="lowest_detail_text">
+				Generar nivel de detalle: Mínimo
+			</text>
+		</panel>
+		<panel name="content2">
+			<text name="lod_label">
+				Vista previa de modelo:
+			</text>
+			<combo_box name="preview_lod_combo2" tool_tip="Nivel de detalle disponible en la vista previa">
+				<combo_item name="high">
+					Alto
+				</combo_item>
+				<combo_item name="medium">
+					Media
+				</combo_item>
+				<combo_item name="low">
+					Bajo
+				</combo_item>
+				<combo_item name="lowest">
+					Mínimo
+				</combo_item>
+			</combo_box>
+			<text name="streaming cost">
+				Coste de recursos:    [COSTE]
+			</text>
+			<text name="dimensions">
+				X:         Y:         Z:
+			</text>
+			<text name="dimension_dividers">
+				|               |
+			</text>
+		</panel>
+	</panel>
+	<panel name="physics_panel">
+		<panel name="header_panel">
+			<text name="header_text">
+				Física
+			</text>
+		</panel>
+		<text name="description">
+			El asistente creará una forma física, que determinará la manera en la que el objeto interactúa con otros objetos y avatares. Selecciona con el controlador deslizante el nivel de detalle más adecuado en función del uso del objeto:
+		</text>
+		<panel name="content">
+			<text name="streaming cost">
+				Coste de recursos:       [COSTE]
+			</text>
+		</panel>
+	</panel>
+	<panel name="physics2_panel">
+		<panel name="header_panel">
+			<text name="header_text">
+				Física
+			</text>
+		</panel>
+		<text name="description">
+			Obtén una vista previa de la forma física a continuación y haz clic en Siguiente para continuar.  Para modificar la forma física, haz clic en el botón Atrás.
+		</text>
+		<panel name="content">
+			<text name="lod_label">
+				Vista previa de modelo:
+			</text>
+			<combo_box name="preview_lod_combo3" tool_tip="Nivel de detalle disponible en la vista previa">
+				<combo_item name="high">
+					Alto
+				</combo_item>
+				<combo_item name="medium">
+					Media
+				</combo_item>
+				<combo_item name="low">
+					Bajo
+				</combo_item>
+				<combo_item name="lowest">
+					Mínimo
+				</combo_item>
+			</combo_box>
+			<text name="dimensions">
+				X:         Y:         Z:
+			</text>
+			<text name="dimension_dividers">
+				|               |
+			</text>
+			<text name="streaming cost">
+				Coste de recursos:       [COSTE]
+			</text>
+		</panel>
+	</panel>
+	<panel name="review_panel">
+		<panel name="header_panel">
+			<text name="header_text">
+				Revisar
+			</text>
+		</panel>
+		<text name="description">
+			Revisa los detalles que aparecen más abajo y, a continuación, haz clic. Selecciona la opción de carga para cargar el modelo. Se realizará el cargo en tu saldo de L$ cuando hagas clic en Cargar.
+		</text>
+		<panel name="content">
+			<text name="lod_label">
+				Vista previa de modelo:
+			</text>
+			<combo_box name="preview_lod_combo" tool_tip="Nivel de detalle disponible en la vista previa">
+				<combo_item name="high">
+					Alto
+				</combo_item>
+				<combo_item name="medium">
+					Media
+				</combo_item>
+				<combo_item name="low">
+					Bajo
+				</combo_item>
+				<combo_item name="lowest">
+					Mínimo
+				</combo_item>
+			</combo_box>
+			<text name="dimensions">
+				X:         Y:         Z:
+			</text>
+			<text name="dimension_dividers">
+				|               |
+			</text>
+		</panel>
+		<text name="streaming cost">
+			Coste de recursos:         [COSTE]
+		</text>
+		<text name="physics cost">
+			Coste físico:        [COSTE]
+		</text>
+	</panel>
+	<panel name="upload_panel">
+		<panel name="header_panel">
+			<text name="header_text">
+				Carga completa.
+			</text>
+		</panel>
+		<text name="description">
+			¡Felicidades! Tu modelo se ha cargado correctamente.  Encontrarás el modelo en la carpeta Objetos del inventario.
+		</text>
+	</panel>
+	<button label="&lt;&lt; Atrás" name="back"/>
+	<button label="Siguiente &gt;&gt;" name="next"/>
+	<button label="Subir" name="upload" tool_tip="Cargar al simulador"/>
+	<button label="Cancelar" name="cancel"/>
+	<button label="Cerrar" name="close"/>
+	<spinner name="import_scale" value="1.0"/>
+	<string name="status_idle">
+		Inactivo
+	</string>
+	<string name="status_reading_file">
+		Cargando...
+	</string>
+	<string name="status_generating_meshes">
+		Generando redes...
+	</string>
+	<string name="status_vertex_number_overflow">
+		Error: El número de intersección es superior a 65534. Cancelado.
+	</string>
+	<string name="high">
+		Alto
+	</string>
+	<string name="medium">
+		Media
+	</string>
+	<string name="low">
+		Bajo
+	</string>
+	<string name="lowest">
+		Mínimo
+	</string>
+	<string name="mesh_status_good">
+		Factúralo.
+	</string>
+	<string name="mesh_status_na">
+		N/A
+	</string>
+	<string name="mesh_status_none">
+		Ninguno
+	</string>
+	<string name="mesh_status_submesh_mismatch">
+		Los niveles de detalle poseen un número distinto de caras a las que se pueden aplicar texturas.
+	</string>
+	<string name="mesh_status_mesh_mismatch">
+		Los niveles de detalle poseen un número distinto de ejemplos de red.
+	</string>
+	<string name="mesh_status_too_many_vertices">
+		El nivel de detalle posee demasiadas intersecciones.
+	</string>
+	<string name="mesh_status_missing_lod">
+		Falta un nivel de detalle requerido.
+	</string>
+	<string name="layer_all">
+		Todo
+	</string>
+</floater>

indra/newview/skins/default/xui/es/floater_price_for_listing.xml

+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="price_for_listing" title="PUBLICAR UN ANUNCIO CLASIFICADO">
+	<text name="explanation_text">
+		Tu anuncio clasificado se mostrará durante una semana a partir del día en que se publicó.
+
+La posición de tu anuncio en la lista de clasificados depende de cuánto elijas pagar.
+
+Los anuncios mejor pagados van al principio de la lista, y aparecen más arriba en las búsquedas.
+	</text>
+	<text name="price_text">
+		Precio por el anuncio:
+	</text>
+	<text name="price_symbol">
+		L$
+	</text>
+	<button label="OK" name="set_price_btn"/>
+	<button label="Cancelar" name="cancel_btn"/>
+</floater>

indra/newview/skins/default/xui/es/floater_sound_devices.xml

+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_sound_devices" title="Dispositivos de sonido">
+	<text name="voice_label">
+		Chat de voz
+	</text>
+	<check_box label="Activados" name="enable_voice"/>
+</floater>

indra/newview/skins/default/xui/es/floater_tools.xml

 	<text left="134" name="prim_count">
 		Primitivas: [COUNT]
 	</text>
+	<text name="linked_set_count">
+		Conjuntos con enlaces: [RECUENTO]
+	</text>
+	<text name="linked_set_cost" tool_tip="Coste de los conjuntos con enlaces actualmente seleccionados como [prims], [complejidad física]">
+		Coste: [COSTE] / [FÍSICO]
+	</text>
+	<text name="object_count">
+		Objetos: [RECUENTO]
+	</text>
+	<text name="object_cost" tool_tip="Coste de los objetos actualmente seleccionados como [prims] / [complejidad física]">
+		Coste: [COSTE] / [FÍSICO]
+	</text>
 	<tab_container name="Object Info Tabs" tab_max_width="62" tab_min_width="30" width="288">
 		<panel label="General" name="General">
 			<panel.string name="text deed continued">
 				<combo_box.item label="Cono truncado" name="Ring"/>
 				<combo_box.item label="Sculpted" name="Sculpted"/>
 			</combo_box>
-			<combo_box name="material">
-				<combo_box.item label="Piedra" name="Stone"/>
-				<combo_box.item label="Metal" name="Metal"/>
-				<combo_box.item label="Vidrio" name="Glass"/>
-				<combo_box.item label="Madera" name="Wood"/>
-				<combo_box.item label="Carne" name="Flesh"/>
-				<combo_box.item label="Plástico" name="Plastic"/>
-				<combo_box.item label="Goma" name="Rubber"/>
-			</combo_box>
 			<text name="text cut">
 				Corte (inicio/fin)
 			</text>
 				<combo_box.item label="Toroide" name="Torus"/>
 				<combo_box.item label="Plano" name="Plane"/>
 				<combo_box.item label="Cilindro" name="Cylinder"/>
+				<combo_box.item label="Red" name="Mesh"/>
 			</combo_box>
 		</panel>
 		<panel label="Caracter." name="Features">
+			<panel.string name="None">
+				Ninguno
+			</panel.string>
+			<panel.string name="Prim">
+				Prim
+			</panel.string>
+			<panel.string name="Convex Hull">
+				Apariencia convexa
+			</panel.string>
 			<text name="select_single">
 				Selecciona un sólo prim para editarlo.
 			</text>
 			<spinner label="Visión" name="Light Focus"/>
 			<spinner label="Atenuación" name="Light Falloff"/>
 			<spinner label="Ambiental" name="Light Ambiance"/>
+			<text name="label physicsshapetype">
+				Tipo de forma física:
+			</text>
+			<combo_box name="Physics Shape Type Combo Ctrl" tool_tip="Selecciona el tipo de forma física"/>
+			<combo_box name="material">
+				<combo_box.item label="Piedra" name="Stone"/>
+				<combo_box.item label="Metal" name="Metal"/>
+				<combo_box.item label="Cristal" name="Glass"/>
+				<combo_box.item label="Madera" name="Wood"/>
+				<combo_box.item label="Carne" name="Flesh"/>
+				<combo_box.item label="Plástico" name="Plastic"/>
+				<combo_box.item label="Goma" name="Rubber"/>
+			</combo_box>
+			<spinner label="Gravedad" name="Physics Gravity"/>
+			<spinner label="Fricción" name="Physics Friction"/>
+			<spinner label="Densidad" name="Physics Density"/>
+			<spinner label="Reemplazo" name="Physics Restitution"/>
 		</panel>
 		<panel label="Textura" name="Texture">
 			<panel.string name="string repeats per meter">

indra/newview/skins/default/xui/es/menu_inventory_add.xml

 		<menu_item_call label="Imagen ([COST] L$)..." name="Upload Image"/>
 		<menu_item_call label="Sonido ([COST] L$)..." name="Upload Sound"/>
 		<menu_item_call label="Animación ([COST] L$)..." name="Upload Animation"/>
+		<menu_item_call label="Modelo..." name="Upload Model"/>
+		<menu_item_call label="Asistente de modelo..." name="Upload Model Wizard"/>
 		<menu_item_call label="Masivo ([COST] L$ por archivo)..." name="Bulk Upload"/>
 		<menu_item_call label="Configurar los permisos por defecto de subida" name="perm prefs"/>
 	</menu>

indra/newview/skins/default/xui/es/menu_model_import_gear_default.xml

+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="model_menu_gear_default">
+	<menu_item_check label="Mostrar bordes" name="show_edges"/>
+	<menu_item_check label="Mostrar aspectos físicos" name="show_physics"/>
+	<menu_item_check label="Mostrar texturas" name="show_textures"/>
+	<menu_item_check label="Mostrar peso de la piel" name="show_skin_weight"/>
+	<menu_item_check label="Mostrar posturas de las articulaciones" name="show_joint_positions"/>
+</toggleable_menu>

indra/newview/skins/default/xui/es/menu_viewer.xml

 			<menu_item_call label="Imagen ([COST] L$)..." name="Upload Image"/>
 			<menu_item_call label="Sonido ([COST] L$)..." name="Upload Sound"/>
 			<menu_item_call label="Animación ([COST] L$)..." name="Upload Animation"/>
+			<menu_item_call label="Modelo..." name="Upload Model"/>
+			<menu_item_call label="Asistente de modelo..." name="Upload Model Wizard"/>
 			<menu_item_call label="Masivo ([COST] L$ por archivo)..." name="Bulk Upload"/>
 		</menu>
 		<menu_item_call label="Deshacer" name="Undo"/>
 			<menu_item_check label="Alfa" name="Alpha"/>
 			<menu_item_check label="Árbol" name="Tree"/>
 			<menu_item_check label="Avatares" name="Character"/>
-			<menu_item_check label="Superficie del terreno" name="SurfacePath"/>
+			<menu_item_check label="Parche de superficie" name="Surface Patch"/>
 			<menu_item_check label="Cielo" name="Sky"/>
 			<menu_item_check label="Agua" name="Water"/>
 			<menu_item_check label="Terreno" name="Ground"/>
 			<menu_item_check label="Texture Category Console" name="Texture Category"/>
 			<menu_item_check label="Fast Timers" name="Fast Timers"/>
 			<menu_item_check label="Memory" name="Memory"/>
+			<menu_item_check label="Datos de la escena" name="Scene Statistics"/>
 			<menu_item_call label="Region Info to Debug Console" name="Region Info to Debug Console"/>
 			<menu_item_check label="Camera" name="Camera"/>
 			<menu_item_check label="Wind" name="Wind"/>
 		</menu>
 		<menu label="Show Info" name="Display Info">
 			<menu_item_check label="Show Time" name="Show Time"/>
+			<menu_item_check label="Mostrar coste de carga" name="Show Upload Cost"/>
 			<menu_item_check label="Show Render Info" name="Show Render Info"/>
 			<menu_item_check label="Mostrar información de textura" name="Show Texture Info"/>
 			<menu_item_check label="Show Color Under Cursor" name="Show Color Under Cursor"/>
 			<menu_item_check label="Frame Test" name="Frame Test"/>
 		</menu>
 		<menu label="Render Metadata" name="Render Metadata">
+			<menu_item_check label="Normales" name="Normals"/>
+			<menu_item_check label="Formas del físico" name="Physics Shapes"/>
 			<menu_item_check label="Actualizar el tipo" name="Update Type"/>
+			<menu_item_check label="Información sobre el nivel de detalle" name="LOD Info"/>
+			<menu_item_check label="Crear cola" name="Build Queue"/>
+			<menu_item_check label="Esculpir" name="Sculpt"/>
 		</menu>
 		<menu label="Rendering" name="Rendering">
 			<menu_item_check label="Axes" name="Axes"/>
 			<menu_item_call label="Debug Avatar Textures" name="Debug Avatar Textures"/>
 		</menu>
 		<menu_item_check label="HTTP Textures" name="HTTP Textures"/>
+		<menu_item_check label="Inventario HTTP" name="HTTP Inventory"/>
 		<menu_item_check label="Console Window on next Run" name="Console Window"/>
 		<menu_item_call label="Request Admin Status" name="Request Admin Options"/>
 		<menu_item_call label="Leave Admin Status" name="Leave Admin Options"/>

indra/newview/skins/default/xui/es/notifications.xml

 	<notification name="RezItemNoPermissions">
 		No tienes permisos suficientes para renderizar el objeto.
 	</notification>
+	<notification name="IMAcrossParentEstates">
+		No se pueden enviar mensajes instantáneos entre propiedades principales.
+	</notification>
+	<notification name="TransferInventoryAcrossParentEstates">
+		No se puede transferir el inventario entre propiedades principales.
+	</notification>
 	<notification name="UnableToLoadNotecard">
 		En este momento no se puede cargar la nota.
 	</notification>
 		Un moderador ha silenciado tu voz.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
+	<notification name="UploadCostConfirmation">
+		Esta carga te costará [PRECIO] L$. ¿Deseas continuar?
+		<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Subir"/>
+	</notification>
 	<notification name="ConfirmClearTeleportHistory">
 		¿Estás seguro de que quieres borrar tu historial de teleportes?
 		<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
 	<notification name="ShareNotification">
 		Selecciona los residentes con quienes deseas compartir.
 	</notification>
+	<notification name="MeshUploadError">
+		No se ha cargado [ETIQUETA]: [MENSAJE] [IDENTIFICADOR] [IDENTIFICADOR_FALTA_VALIDEZ]
+	</notification>
 	<notification name="ShareItemsConfirmation">
 		¿Estás seguro de que quieres compartir los elementos siguientes?
 
 	<notification name="DeedToGroupFail">
 		Error de transferencia a grupo.
 	</notification>
+	<notification name="ReleaseLandThrottled">
+		La parcela [NOMBRE_PARCELA] no se puede abandonar en este momento.
+	</notification>
+	<notification name="ReleasedLandWithReclaim">
+		Ya está disponible la parcela [NOMBRE_PARCELA] de [ÁREA] m².
+
+Dispondrás de [PERÍODO_DE_RECLAMACIÓN] horas para reclamar la cantidad de 0 L$ antes de que se ponga en venta.
+	</notification>
+	<notification name="ReleasedLandNoReclaim">
+		Ya está disponible la parcela [NOMBRE_PARCELA] de [ÁREA] m².
+
+Ya está en venta.
+	</notification>
 	<notification name="AvatarRezNotification">
 		( [EXISTENCE] segundos vivo)
 El avatar &apos;[NAME]&apos; tardó [TIME] segundos en dejar de aparecer como nube.
 		La creación y edición de grupos sólo está disponible en el modo Avanzado. ¿Quieres salir y cambiar de modo? El selector de modo se encuentra en la pantalla de inicio de sesión.
 		<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
 	</notification>
+	<notification label="" name="NoPlaceInfo">
+		La opción de consulta del perfil del lugar solo está disponible en el modo Avanzado. ¿Quieres salir y cambiar de modo? El selector de modo se encuentra en la pantalla de inicio de sesión.
+		<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
+	</notification>
 	<notification label="" name="NoPicks">
 		La creación y edición de Destacados sólo está disponible en el modo Avanzado. ¿Quieres salir y cambiar de modo? El selector de modo se encuentra en la pantalla de inicio de sesión.
 		<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
 		El pago a otros residentes sólo está disponible en el modo Avanzado. ¿Quieres cerrar sesión y cambiar de modo?
 		<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
 	</notification>
-	<global name="UnsupportedCPU">
-		- La velocidad de tu CPU no cumple los requerimientos mínimos.
-	</global>
+	<notification label="" name="NoInventory">
+		La opción de consulta del inventario solo está disponible en el modo Avanzado. ¿Quieres cerrar sesión y cambiar de modo?
+		<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
+	</notification>
+	<notification label="" name="NoAppearance">
+		El editor de apariencia solo está disponible en el modo Avanzado. ¿Quieres cerrar sesión y cambiar de modo?
+		<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
+	</notification>
+	<notification label="" name="NoSearch">
+		Las búsquedas solo están disponibles en el modo Avanzado. ¿Quieres cerrar sesión y cambiar de modo?
+		<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
+	</notification>
 	<global name="UnsupportedGLRequirements">
 		Parece que no tienes el hardware apropiado para [APP_NAME]. [APP_NAME] requiere una tarjeta gráfica OpenGL que admita texturas múltiples (&apos;multitexture support&apos;). Si la tienes, comprueba que tienes los últimos &apos;drivers&apos; para tu tarjeta gráfica, así como los últimos parches y &apos;service packs&apos; para tu sistema operativo.
 

indra/newview/skins/default/xui/es/panel_preferences_advanced.xml

 	<check_box label="Permitir el acceso de varios usuarios" name="allow_multiple_viewer_check"/>
 	<check_box label="Mostrar la selección de cuadrícula al iniciar sesión" name="show_grid_selection_check"/>
 	<check_box label="Mostrar el menú Avanzado" name="show_advanced_menu_check"/>
-	<check_box label="Mostrar el menú Desarrollador" name="show_develop_menu_check"/>
+	<check_box label="Mostrar el menú Develop" name="show_develop_menu_check"/>
 </panel>

indra/newview/skins/default/xui/es/panel_preferences_chat.xml

 	<spinner label="Tiempo de los otros interlocutores:" name="nearby_toasts_fadingtime"/>
 	<check_box name="translate_chat_checkbox"/>
 	<text name="translate_chb_label">
-		Utiliza la herramienta de traducción automática mientras utilizas el chat (mediante Google)
+		Usar en el chat el traductor automático de Google
 	</text>
 	<text name="translate_language_text">
 		Traducir el chat al:

indra/newview/skins/default/xui/es/panel_preferences_colors.xml

 	<text name="text_box5">
 		Errores
 	</text>
+	<text name="text_box10">
+		Directo
+	</text>
 	<text name="text_box7">
 		Propietario
 	</text>
 		URLs
 	</text>
 	<text name="bubble_chat">
-		Color de fondo de las etiquetas de nombre (también se aplica a los bocadillos del chat):
+		Color de fondo de la etiqueta del nombre (afectará también a los bocadillos del chat):
 	</text>
 	<color_swatch name="background" tool_tip="Elige el color de las etiquetas de nombre"/>
 	<slider label="Opacidad:" name="bubble_chat_opacity" tool_tip="Elige la opacidad de las etiquetas de nombre"/>

indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml

 		</text>
 		<check_box initial_value="verdadero" label="Agua transparente" name="TransparentWater"/>
 		<check_box initial_value="true" label="Efecto de relieve y brillo" name="BumpShiny"/>
+		<check_box initial_value="verdadero" label="Luces locales" name="LocalLights"/>
 		<check_box initial_value="true" label="Shaders básicos" name="BasicShaders" tool_tip="Desactivando esta opción puede prevenir fallos en algunos controladores de la tarjeta gráfica."/>
 		<check_box initial_value="true" label="Shaders de la atmósfera" name="WindLightUseAtmosShaders"/>
+		<check_box initial_value="verdadero" label="Luces y sombras" name="UseLightShaders"/>
+		<check_box initial_value="verdadero" label="Oclusión del ambiente" name="UseSSAO"/>
+		<check_box initial_value="verdadero" label="Profundidad del campo" name="UseDoF"/>
+		<text name="shadows_label">
+			Sombras:
+		</text>
+		<combo_box name="ShadowDetail">
+			<combo_box.item label="Ninguno" name="0"/>
+			<combo_box.item label="Sol/luna" name="1"/>
+			<combo_box.item label="Sol/luna + proyectores" name="2"/>
+		</combo_box>
 		<text name="reflection_label">
 			Reflejos en el agua:
 		</text>
 		<check_box initial_value="true" label="Avatares simulados" name="AvatarImpostors"/>
 		<check_box initial_value="true" label="Renderizado por hardware" name="AvatarVertexProgram"/>
 		<check_box initial_value="true" label="Ropas del avatar" name="AvatarCloth"/>
-		<text name="TerrainDetailText" left="402">
+		<text left="402" name="TerrainDetailText">
 			Detalle del terreno:
 		</text>
 		<radio_group name="TerrainDetailRadio">

indra/newview/skins/default/xui/es/panel_region_general.xml

 	<check_box label="Permitir la reventa del terreno" name="allow_land_resell_check"/>
 	<check_box label="Permitir unir/dividir el terreno" name="allow_parcel_changes_check"/>
 	<check_box label="Bloquear el mostrar el terreno en la búsqueda" name="block_parcel_search_check" tool_tip="Permitir que la gente vea esta región y sus parcelas en los resultados de la búsqueda."/>
+	<check_box label="Permitir objetos de red" name="mesh_rez_enabled_check" tool_tip="Permitir que los usuarios creen objetos de red en esta región"/>
 	<spinner label="Nº máximo de avatares" label_width="120" name="agent_limit_spin" width="180"/>
 	<spinner label="Plus de objetos" label_width="120" name="object_bonus_spin" width="180"/>
 	<text label="Calificación" name="access_text">

indra/newview/skins/default/xui/es/panel_sound_devices.xml

+<?xml version="1.0" encoding="utf-8"?>
+<panel label="Configuración del dispositivo" name="device_settings_panel">
+	<panel.string name="default_text">
+		Por defecto
+	</panel.string>
+	<text name="Input">
+		Entrada
+	</text>
+	<text name="My volume label">
+		Mi volumen:
+	</text>
+	<slider_bar initial_value="1.0" name="mic_volume_slider" tool_tip="Cambia el volumen usando este deslizable"/>
+	<text name="wait_text">
+		Por favor, espera
+	</text>
+	<text name="Output">
+		Salida
+	</text>
+</panel>

indra/newview/skins/default/xui/es/strings.xml

 	<string name="create_account_url">
 		http://join.secondlife.com/index.php?lang=es-ES
 	</string>
+	<string name="LoginFailedViewerNotPermitted">
+		Ya no puedes acceder a Second Life con el visor que estás utilizando. Visita la siguiente página para descargar un nuevo visor:
+http://secondlife.com/download.
+
+Si deseas obtener más información, consulta las preguntas frecuentes que aparecen a continuación:
+http://secondlife.com/viewer-access-faq
+	</string>
+	<string name="LoginIntermediateOptionalUpdateAvailable">
+		Actualización opcional del visor disponible: [VERSIÓN]
+	</string>
+	<string name="LoginFailedRequiredUpdate">
+		Actualización necesaria del visor: [VERSIÓN]
+	</string>
+	<string name="LoginFailedAlreadyLoggedIn">
+		El agente ya ha iniciado sesión.
+	</string>
+	<string name="LoginFailedAuthenticationFailed">
+		Lo sentimos. No ha sido posible iniciar sesión.
+Comprueba si has introducido correctamente
+    * El nombre de usuario (como juangarcia12 o estrella.polar)
+    * Contraseña
+Asimismo, asegúrate de que la tecla Mayús esté desactivada.
+	</string>
+	<string name="LoginFailedPasswordChanged">
+		Como precaución de seguridad, se ha modificado tu contraseña.
+Dirígete a la página de tu cuenta en http://secondlife.com/password
+y responde a la pregunta de seguridad para restablecer la contraseña.
+Lamentamos las molestias.
+	</string>
+	<string name="LoginFailedPasswordReset">
+		Hemos realizado unos cambios en nuestro sistema, por lo que deberás restablecer la contraseña.
+Dirígete a la página de tu cuenta en http://secondlife.com/password
+y responde a la pregunta de seguridad para restablecer la contraseña.
+Lamentamos las molestias.
+	</string>
+	<string name="LoginFailedEmployeesOnly">
+		Second Life no está disponible temporalmente debido a tareas de mantenimiento.
+Actualmente, solo se permite iniciar sesión a los empleados.
+Consulta www.secondlife.com/status si deseas obtener actualizaciones.
+	</string>
+	<string name="LoginFailedPremiumOnly">
+		Se ha restringido de manera temporal el inicio de sesión en Second Life con el fin de garantizar una experiencia óptima a nuestros residentes.
+	 	
+Aquellos usuarios que dispongan de cuentas gratuitas no podrán acceder a Second Life durante este período de tiempo, ya que el propósito de esta medida es obtener espacio suficiente para los residentes que hayan pagado por acceder a Second Life.
+	</string>
+	<string name="LoginFailedComputerProhibited">
+		No se puede acceder a Second Life desde este ordenador.
+Si crees que se trata de un error, ponte en contacto con
+support@secondlife.com.
+	</string>
+	<string name="LoginFailedAcountSuspended">
+		No se podrá acceder a tu cuenta hasta las
+[HORA] (horario de la costa del Pacífico).
+	</string>
+	<string name="LoginFailedAccountDisabled">
+		En este momento no podemos completar la solicitud.
+Si deseas obtener asistencia, ponte en contacto con el departamento de soporte de Second Life a través de la página http://secondlife.com/support.
+Si no puedes cambiar la contraseña, llama al número (866) 476-9763.
+	</string>
+	<string name="LoginFailedTransformError">
+		Se han detectado datos incorrectos en el inicio de sesión.
+Ponte en contacto con support@secondlife.com.
+	</string>
+	<string name="LoginFailedAccountMaintenance">
+		Se están realizando tareas rutinarias de mantenimiento en tu cuenta.
+No se podrá acceder a tu cuenta hasta las
+[HORA] (horario de la costa del Pacífico).
+Si crees que se trata de un error, ponte en contacto con support@secondlife.com.