diff --git a/qbs/pluginspec/pluginspec.qbs b/qbs/pluginspec/pluginspec.qbs
index d9e10be634b3cc90cefc650d7ea630331df53bcf..c8c0908485251b64784615a6f10fdc16c961dc72 100644
--- a/qbs/pluginspec/pluginspec.qbs
+++ b/qbs/pluginspec/pluginspec.qbs
@@ -18,11 +18,6 @@ Module {
             var cmd = new JavaScriptCommand();
             cmd.description = "prepare " + FileInfo.fileName(output.fileName);
             cmd.highlight = "codegen";
-            cmd.ide_version_major = project.ide_version_major;
-            cmd.ide_version_minor = project.ide_version_minor;
-            cmd.ide_version_release = project.ide_version_release;
-            cmd.qtcreator_version = cmd.ide_version_major + '.' + cmd.ide_version_minor + '.' + cmd.ide_version_release;
-
             cmd.pluginspecreplacements = product.pluginspecreplacements;
             cmd.plugin_depends = [];
             var deps = product.dependencies;
@@ -45,16 +40,16 @@ Module {
                 // replace quoted quotes
                 all = all.replace(/\\\"/g, '"');
                 // replace config vars
-                vars['QTCREATOR_VERSION'] = qtcreator_version;
-                vars['IDE_VERSION_MAJOR'] = ide_version_major;
-                vars['IDE_VERSION_MINOR'] = ide_version_minor;
-                vars['IDE_VERSION_RELEASE'] = ide_version_release;
+                vars['QTCREATOR_VERSION'] = project.qtcreator_version;
+                vars['IDE_VERSION_MAJOR'] = project.ide_version_major;
+                vars['IDE_VERSION_MINOR'] = project.ide_version_minor;
+                vars['IDE_VERSION_RELEASE'] = project.ide_version_release;
                 var deplist = ["<dependencyList>"];
                 for (i in plugin_depends) {
-                    deplist.push("        <dependency name=\"" + plugin_depends[i] + "\" version=\"" + qtcreator_version + "\"/>");
+                    deplist.push("        <dependency name=\"" + plugin_depends[i] + "\" version=\"" + project.qtcreator_version + "\"/>");
                 }
                 for (i in plugin_recommends) {
-                    deplist.push("        <dependency name=\"" + plugin_recommends[i] + "\" version=\"" + qtcreator_version + "\" type=\"optional\"/>");
+                    deplist.push("        <dependency name=\"" + plugin_recommends[i] + "\" version=\"" + project.qtcreator_version + "\" type=\"optional\"/>");
                 }
                 deplist.push("    </dependencyList>");
                 vars['dependencyList'] = deplist.join("\n");
diff --git a/share/qtcreator/dumper/gbridge.py b/share/qtcreator/dumper/gbridge.py
index 1754af35ef3b3e430477f807af4ae7052c1b24ee..3995453ec9cec33bfe37075aa2f32e5d4bc712eb 100644
--- a/share/qtcreator/dumper/gbridge.py
+++ b/share/qtcreator/dumper/gbridge.py
@@ -1777,6 +1777,12 @@ class Dumper:
         self.put('",')
         return True
 
+    def isReferenceType(self, typeobj):
+        return typeobj.code == gdb.TYPE_CODE_REF
+
+    def isStructType(self, typeobj):
+        return typeobj.code == gdb.TYPE_CODE_STRUCT
+
     def putPlotData(self, type, base, n, plotFormat):
         if self.isExpanded():
             self.putArrayData(type, base, n)
diff --git a/share/qtcreator/dumper/lbridge.py b/share/qtcreator/dumper/lbridge.py
index f1d49e8e0d868038a45feacfc1eb764e002e263a..1dcb490fde141e9a3ee5d397e557bd38050403fe 100644
--- a/share/qtcreator/dumper/lbridge.py
+++ b/share/qtcreator/dumper/lbridge.py
@@ -73,9 +73,6 @@ DisplayLatin1String, \
 DisplayUtf8String \
     = range(7)
 
-def lookupType(name):
-    return None
-
 def isSimpleType(typeobj):
     typeClass = typeobj.GetTypeClass()
     #warn("TYPECLASS: %s" % typeClass)
@@ -179,36 +176,7 @@ def fileName(file):
     return str(file) if file.IsValid() else ''
 
 
-PointerCode = None
-ArrayCode = None
-StructCode = None
-UnionCode = None
-EnumCode = None
-FlagsCode = None
-FunctionCode = None
-IntCode = None
-FloatCode = None
-VoidCode = None
-SetCode = None
-RangeCode = None
-StringCode = None
-BitStringCode = None
-ErrorTypeCode = None
-MethodCode = None
-MethodPointerCode = None
-MemberPointerCode = None
-ReferenceCode = None
-CharCode = None
-BoolCode = None
-ComplexCode = None
-TypedefCode = None
-NamespaceCode = None
-SimpleValueCode = None # LLDB only
-
-
 # Data members
-SimpleValueCode = 100
-StructCode = 101
 PointerCode = 102
 
 # Breakpoints. Keep synchronized with BreakpointType in breakpoint.h
@@ -245,7 +213,7 @@ def checkPointer(p, align = 1):
         p.Dereference()
 
 def isNull(p):
-    return long(p) == 0
+    return p.GetValueAsUnsigned() == 0
 
 Value = lldb.SBValue
 
@@ -290,7 +258,16 @@ def impl_SBValue__le__(self, other):
 
 def impl_SBValue__int__(self):
     return self.GetValueAsSigned()
-    #return int(self.GetValue(), 0)
+
+def impl_SBValue__float__(self):
+    error = lldb.SBError()
+    if self.GetType().GetByteSize() == 4:
+        result = self.GetData().GetFloat(error, 0)
+    else:
+        result = self.GetData().GetDouble(error, 0)
+    if error.Success():
+        return result
+    return NotImplemented
 
 def impl_SBValue__long__(self):
     return int(self.GetValue(), 0)
@@ -318,6 +295,7 @@ lldb.SBValue.__le__ = impl_SBValue__le__
 
 lldb.SBValue.__getitem__ = impl_SBValue__getitem__
 lldb.SBValue.__int__ = impl_SBValue__int__
+lldb.SBValue.__float__ = impl_SBValue__float__
 lldb.SBValue.__long__ = lambda self: long(self.GetValue(), 0)
 
 lldb.SBValue.code = lambda self: self.GetTypeClass()
@@ -325,12 +303,13 @@ lldb.SBValue.cast = lambda self, typeObj: self.Cast(typeObj)
 lldb.SBValue.dereference = lambda self: self.Dereference()
 lldb.SBValue.address = property(lambda self: self.GetAddress())
 
-lldb.SBType.unqualified = lambda self: self.GetUnqualifiedType()
 lldb.SBType.pointer = lambda self: self.GetPointerType()
 lldb.SBType.code = lambda self: self.GetTypeClass()
 lldb.SBType.sizeof = property(lambda self: self.GetByteSize())
 
 
+lldb.SBType.unqualified = \
+    lambda self: self.GetUnqualifiedType() if hasattr(self, 'GetUnqualifiedType') else self
 lldb.SBType.strip_typedefs = \
     lambda self: self.GetCanonicalType() if hasattr(self, 'GetCanonicalType') else self
 
@@ -340,9 +319,6 @@ lldb.SBType.__str__ = lldb.SBType.GetName
 def simpleEncoding(typeobj):
     code = typeobj.GetTypeClass()
     size = typeobj.sizeof
-    #if code == BoolCode or code == CharCode:
-    #    return Hex2EncodedInt1
-    #if code == IntCode:
     if code == lldb.eTypeClassBuiltin:
         name = str(typeobj)
         if name == "float":
@@ -390,7 +366,7 @@ class Children:
                 #if isSimpleType(childType):
                 #    self.d.put('childnumchild="0",')
                 #    self.childNumChild = 0
-                #elif childType.code == PointerCode:
+                #elif childType.code == lldb.eTypeClassPointer:
                 #    self.d.put('childnumchild="1",')
                 #    self.childNumChild = 1
             else:
@@ -469,6 +445,8 @@ class SubItem:
         self.d.put('{')
         #if not self.name is None:
         if isinstance(self.name, str):
+            if self.name == '**&':
+                self.name = '*'
             self.d.put('name="%s",' % self.name)
         self.savedIName = self.d.currentIName
         self.savedCurrentAddress = self.d.currentAddress
@@ -597,7 +575,7 @@ class Dumper:
 
     def templateArgument(self, typeobj, index):
         type = typeobj.GetTemplateArgumentType(index)
-        if len(type.GetName()):
+        if type.IsValid():
             return type
         inner = self.extractTemplateArgument(typeobj.GetName(), index)
         return self.lookupType(inner)
@@ -606,6 +584,12 @@ class Dumper:
         inner = self.extractTemplateArgument(typeobj.GetName(), index)
         return int(inner)
 
+    def isReferenceType(self, typeobj):
+        return typeobj.IsReferenceType()
+
+    def isStructType(self, typeobj):
+        return typeobj.GetTypeClass() in (lldb.eTypeClassStruct, lldb.eTypeClassClass)
+
     def qtVersion(self):
         return 0x050000
 
@@ -678,9 +662,8 @@ class Dumper:
         return format
 
     def isMovableType(self, type):
-        if type.code == PointerCode:
-            return True
-        if isSimpleType(type):
+        if type.GetTypeClass() in (lldb.eTypeClassBuiltin,
+                lldb.eTypeClassPointer):
             return True
         return self.stripNamespaceFromType(type.GetName()) in movableTypes
 
@@ -745,7 +728,7 @@ class Dumper:
         return True
 
     def putPlotData(self, type, base, n, plotFormat):
-        warn("PLOTDATA: %s %s" % (type, n))
+        #warn("PLOTDATA: %s %s" % (type, n))
         if self.isExpanded():
             self.putArrayData(type, base, n)
         self.putValue(self.currentValue)
@@ -754,7 +737,7 @@ class Dumper:
     def putArrayData(self, type, base, n,
             childNumChild = None, maxNumChild = 10000):
         if not self.tryPutArrayContents(type, base, n):
-            base = base.cast(type.pointer())
+            base = self.createPointerValue(base, type)
             with Children(self, n, type, childNumChild, maxNumChild,
                     base, type.GetByteSize()):
                 for i in self.childRange():
@@ -789,9 +772,14 @@ class Dumper:
                self.putFields(value)
 
     def lookupType(self, name):
+        if name.endswith('*'):
+            type = self.lookupType(name[:-1].strip())
+            return type.GetPointerType() if type.IsValid() else None
         #warn("LOOKUP TYPE NAME: %s" % name)
         #warn("LOOKUP RESULT: %s" % self.target.FindFirstType(name))
-        return self.target.FindFirstType(name)
+        #warn("LOOKUP RESULT: %s" % self.target.FindFirstType(name))
+        type = self.target.FindFirstType(name)
+        return type if type.IsValid() else None
 
     def setupInferior(self, args):
         executable = args['executable']
@@ -942,6 +930,17 @@ class Dumper:
         contents = self.process.ReadMemory(base, size, error)
         return binascii.hexlify(contents)
 
+    def isQObject(self, value):
+        try:
+            vtable = value.Cast(self.voidPtrType().GetPointerType())
+            metaObjectEntry = vtable.Dereference()
+            addr = lldb.SBAddress(long(metaObjectEntry), self.target)
+            symbol = addr.GetSymbol()
+            name = symbol.GetMangledName()
+            return name.find("10metaObjectEv") > 0
+        except:
+            return False
+
     def computeLimit(self, size, limit):
         if limit is None:
             return size
@@ -967,6 +966,10 @@ class Dumper:
             pos1 = type.rfind(">", pos)
             type = type[0:pos] + type[pos1+1:]
             pos = type.find("<")
+        if type.startswith("const "):
+            type = type[6:]
+        if type.startswith("volatile "):
+            type = type[9:]
         return type
 
     def putSubItem(self, component, value, tryDynamic=True):
@@ -987,6 +990,7 @@ class Dumper:
         #value = value.GetDynamicValue(lldb.eDynamicCanRunTarget)
         typeName = value.GetTypeName()
         value.SetPreferDynamicValue(tryDynamic)
+        typeClass = value.GetType().GetTypeClass()
 
         if tryDynamic:
             self.putAddress(value.address)
@@ -1016,42 +1020,72 @@ class Dumper:
                             self.putItem(child)
             return
 
+        # Typedefs
+        if typeClass == lldb.eTypeClassTypedef:
+            if typeName in qqDumpers:
+                self.putType(typeName)
+                self.context = value
+                qqDumpers[typeName](self, value)
+                return
+            realType = value.GetType()
+            if hasattr(realType, 'GetCanonicalType'):
+                realType = realType.GetCanonicalType()
+                value = value.Cast(realType.unqualified())
+                self.putItem(value)
+                self.putBetterType(typeName)
+                return
+
         # Our turf now.
         value.SetPreferSyntheticValue(False)
 
         # Arrays
-        if value.GetType().GetTypeClass() == lldb.eTypeClassArray:
+        if typeClass == lldb.eTypeClassArray:
             qdump____c_style_array__(self, value)
             return
 
         # References
         if value.GetType().IsReferenceType():
             origType = value.GetTypeName();
-            type = value.GetType().GetDereferencedType()
-            addr = int(value.GetAddress()) & 0xFFFFFFFFFFFFFFFF
+            type = value.GetType().GetDereferencedType().unqualified()
+            addr = int(value) & 0xFFFFFFFFFFFFFFFF
             self.putItem(value.CreateValueFromAddress(None, addr, type))
+            #self.putItem(value.CreateValueFromData(None, value.GetData(), type))
             self.putBetterType(origType)
             return
 
         # Pointers
-        if value.GetType().IsPointerType() and self.autoDerefPointers:
-
+        if value.GetType().IsPointerType():
             if isNull(value):
                 self.putType(typeName)
                 self.putValue("0x0")
                 self.putNumChild(0)
                 return
 
-            innerType = value.GetType().GetPointeeType()
-            self.putType(innerType)
-            savedCurrentChildType = self.currentChildType
-            self.currentChildType = str(innerType)
-            inner = value.Dereference()
-            if inner.IsValid():
-                self.putItem(inner)
-                self.currentChildType = savedCurrentChildType
-                self.put('origaddr="%s",' % value.address)
-                return
+            if self.autoDerefPointers:
+                innerType = value.GetType().GetPointeeType().unqualified()
+                self.putType(innerType)
+                savedCurrentChildType = self.currentChildType
+                self.currentChildType = str(innerType)
+                inner = value.Dereference()
+                if inner.IsValid():
+                    self.putItem(inner)
+                    self.currentChildType = savedCurrentChildType
+                    self.put('origaddr="%s",' % value.address)
+                    return
+
+            else:
+                numchild = value.GetNumChildren()
+                self.put('iname="%s",' % self.currentIName)
+                self.putType(typeName)
+                self.putValue('0x%x' % value.GetValueAsUnsigned())
+                self.put('numchild="1",')
+                self.put('addr="0x%x",' % value.GetLoadAddress())
+                if self.currentIName in self.expandedINames:
+                    with Children(self):
+                        child = value.Dereference()
+                        with SubItem(self, child):
+                            self.putItem(child)
+
 
         #warn("VALUE: %s" % value)
         #warn("FANCY: %s" % self.useFancy)
@@ -1066,12 +1100,24 @@ class Dumper:
                 return
 
         # Normal value
-        v = value.GetValue()
         #numchild = 1 if value.MightHaveChildren() else 0
         numchild = value.GetNumChildren()
         self.put('iname="%s",' % self.currentIName)
         self.putType(typeName)
-        self.putValue('' if v is None else v)
+        if typeClass == lldb.eTypeClassStruct or typeClass == lldb.eTypeClassClass:
+            if self.isQObject(value):
+                self.context = value
+                if not self.putQObjectNameValue(value):  # Is this too expensive?
+                    self.putEmptyValue()
+            else:
+                self.putEmptyValue()
+        else:
+            v = value.GetValue()
+            if v:
+                self.putValue(v)
+            else:
+                self.putEmptyValue()
+
         self.put('numchild="%s",' % numchild)
         self.put('addr="0x%x",' % value.GetLoadAddress())
         if self.currentIName in self.expandedINames:
@@ -1079,6 +1125,14 @@ class Dumper:
                 self.putFields(value)
 
     def putFields(self, value):
+        # Suppress printing of 'name' field for arrays.
+        if value.GetType().GetTypeClass() == lldb.eTypeClassArray:
+            for i in xrange(value.GetNumChildren()):
+                child = value.GetChildAtIndex(i)
+                with UnnamedSubItem(self, "%d" % (i + 1)):
+                    self.putItem(child)
+            return
+
         n = value.GetNumChildren()
         m = value.GetType().GetNumberOfDirectBaseClasses()
         if n > 10000:
@@ -1094,8 +1148,9 @@ class Dumper:
                 self.putItem(child)
         for i in xrange(m, n):
             child = value.GetChildAtIndex(i)
-            with SubItem(self, child):
-                self.putItem(child)
+            if child.IsValid():  # FIXME: Anon members?
+                with SubItem(self, child):
+                    self.putItem(child)
 
     def reportVariables(self, _ = None):
         frame = self.currentThread().GetSelectedFrame()
diff --git a/share/qtcreator/dumper/qttypes.py b/share/qtcreator/dumper/qttypes.py
index 0b101ead969ac7afad9cc04538d33f9ebf59830e..5e04e4f727de2523175334b0d12b5fa3996d8520 100644
--- a/share/qtcreator/dumper/qttypes.py
+++ b/share/qtcreator/dumper/qttypes.py
@@ -161,7 +161,7 @@ def qPutQObjectNameValue(d, value):
             #   - QDynamicMetaObjectData *metaObject;
             extra = d.dereference(dd + 5 * ptrSize + 2 * intSize)
             if extra == 0:
-                return
+                return False
 
             # Offset of objectName in ExtraData: 6 pointer
             #   - QVector<QObjectUserData *> userData; only #ifndef QT_NO_USERDATA
@@ -174,9 +174,12 @@ def qPutQObjectNameValue(d, value):
 
         data, size, alloc = qByteArrayData(d, objectName)
 
-        if size > 0:
-            str = d.readRawMemory(data, 2 * size)
-            d.putValue(str, Hex4EncodedLittleEndian, 1)
+        if size == 0:
+            return False
+
+        str = d.readRawMemory(data, 2 * size)
+        d.putValue(str, Hex4EncodedLittleEndian, 1)
+        return True
 
     except:
         pass
@@ -187,24 +190,24 @@ Dumper.putQObjectNameValue = qPutQObjectNameValue
 
 
 def qdump__QAtomicInt(d, value):
-    d.putValue(value["_q_value"])
+    d.putValue(int(value["_q_value"]))
     d.putNumChild(0)
 
 
 def qdump__QBasicAtomicInt(d, value):
-    d.putValue(value["_q_value"])
+    d.putValue(int(value["_q_value"]))
     d.putNumChild(0)
 
 
-def qdump__QBasicAtomicPointer(d, value):
+def qdump__QAtomicPointer(d, value):
     d.putType(value.type)
-    p = cleanAddress(value["_q_value"])
-    d.putValue(p)
-    d.putPointerValue(value.address)
-    d.putNumChild(p)
+    q = value["_q_value"]
+    p = int(q)
+    d.putValue("@0x%x" % p)
+    d.putNumChild(1 if p else 0)
     if d.isExpanded():
         with Children(d):
-           d.putItem(value["_q_value"])
+           d.putSubItem("_q_value", q.dereference())
 
 def qform__QByteArray():
     return "Inline,As Latin1 in Separate Window,As UTF-8 in Separate Window"
@@ -370,16 +373,15 @@ def qdump__QDate(d, value):
 
 
 def qdump__QTime(d, value):
-    mds = value["mds"]
-    if int(mds) >= 0:
-        d.putValue(value["mds"], MillisecondsSinceMidnight)
+    mds = int(value["mds"])
+    if mds >= 0:
+        d.putValue(mds, MillisecondsSinceMidnight)
         d.putNumChild(1)
         if d.isExpanded():
             qtdate = d.ns + "Qt::"
             qttime = d.ns + "Qt::"
             if lldbLoaded:
                 qtdate += "DateFormat::" # FIXME: Bug?...
-                qttime += "TimeSpec::"
             # FIXME: This improperly uses complex return values.
             with Children(d):
                 d.putCallItem("toString", value, "toString", qtdate + "TextDate")
@@ -387,7 +389,6 @@ def qdump__QTime(d, value):
                 d.putCallItem("(SystemLocale)", value, "toString",
                      qtdate + "SystemLocaleDate")
                 d.putCallItem("(Locale)", value, "toString", qtdate + "LocaleDate")
-                d.putCallItem("toUTC", value, "toTimeSpec", qttime + "UTC")
     else:
         d.putValue("(invalid)")
         d.putNumChild(0)
@@ -621,42 +622,41 @@ def qform__QHash():
 
 def qdump__QHash(d, value):
 
-    def hashDataFirstNode(value):
-        val = value.cast(hashDataType)
-        bucket = val["buckets"]
-        e = val.cast(hashNodeType)
-        for n in xrange(int(val["numBuckets"]) - 1, -1, -1):
+    def hashDataFirstNode(dPtr, numBuckets):
+        ePtr = dPtr.cast(nodeTypePtr)
+        bucket = dPtr.dereference()["buckets"]
+        for n in xrange(numBuckets - 1, -1, -1):
             n = n - 1
             if n < 0:
                 break
-            if bucket.dereference() != e:
+            if pointerValue(bucket.dereference()) != pointerValue(ePtr):
                 return bucket.dereference()
             bucket = bucket + 1
-        return e;
-
-    def hashDataNextNode(node):
-        next = node["next"]
-        if next["next"]:
-            return next
-        d = node.cast(hashDataType.pointer()).dereference()
-        numBuckets = int(d["numBuckets"])
-        start = (int(node["h"]) % numBuckets) + 1
-        bucket = d["buckets"] + start
+        return ePtr;
+
+    def hashDataNextNode(nodePtr, numBuckets):
+        nextPtr = nodePtr.dereference()["next"]
+        if pointerValue(nextPtr.dereference()["next"]):
+            return nextPtr
+        start = (int(nodePtr.dereference()["h"]) % numBuckets) + 1
+        dPtr = nextPtr.cast(dataTypePtr)
+        bucket = dPtr.dereference()["buckets"] + start
         for n in xrange(numBuckets - start):
-            if bucket.dereference() != next:
+            if pointerValue(bucket.dereference()) != pointerValue(nextPtr):
                 return bucket.dereference()
             bucket += 1
-        return node
+        return nextPtr
 
     keyType = d.templateArgument(value.type, 0)
     valueType = d.templateArgument(value.type, 1)
 
-    d_ptr = value["d"]
-    e_ptr = value["e"]
+    anon = childAt(value, 0)
+    d_ptr = anon["d"]
+    e_ptr = anon["e"]
     size = int(d_ptr["size"])
 
-    hashDataType = d_ptr.type
-    hashNodeType = e_ptr.type
+    dataTypePtr = d_ptr.type    # QHashData *  = { Node *fakeNext, Node *buckets }
+    nodeTypePtr = d_ptr.dereference()["fakeNext"].type    # QHashData::Node
 
     check(0 <= size and size <= 100 * 1000 * 1000)
     checkRef(d_ptr["ref"])
@@ -664,15 +664,14 @@ def qdump__QHash(d, value):
     d.putItemCount(size)
     d.putNumChild(size)
     if d.isExpanded():
-        isCompact = d.isMapCompact(keyType, valueType)
-        node = hashDataFirstNode(value)
+        numBuckets = int(d_ptr.dereference()["numBuckets"])
+        nodePtr = hashDataFirstNode(d_ptr, numBuckets)
         innerType = e_ptr.dereference().type
-        childType = innerType
-        if isCompact:
-            childType = valueType
+        isCompact = d.isMapCompact(keyType, valueType)
+        childType = valueType if isCompact else innerType
         with Children(d, size, maxNumChild=1000, childType=childType):
             for i in d.childRange():
-                it = node.dereference().cast(innerType)
+                it = nodePtr.dereference().cast(innerType)
                 with SubItem(d, i):
                     if isCompact:
                         d.putMapName(it["key"])
@@ -680,7 +679,7 @@ def qdump__QHash(d, value):
                         d.putType(valueType)
                     else:
                         d.putItem(it)
-                node = hashDataNextNode(node)
+                nodePtr = hashDataNextNode(nodePtr, numBuckets)
 
 
 def qdump__QHashNode(d, value):
@@ -844,20 +843,21 @@ def qdump__QImage(d, value):
 
 
 def qdump__QLinkedList(d, value):
-    d_ptr = value["d"]
-    e_ptr = value["e"]
-    n = int(d_ptr["size"])
+    dd = d.dereferenceValue(value)
+    ptrSize = d.ptrSize()
+    n = d.extractInt(dd + 4 + 2 * ptrSize);
+    ref = d.extractInt(dd + 2 * ptrSize);
     check(0 <= n and n <= 100*1000*1000)
-    checkRef(d_ptr["ref"])
+    check(-1 <= ref and ref <= 1000)
     d.putItemCount(n)
     d.putNumChild(n)
     if d.isExpanded():
         innerType = d.templateArgument(value.type, 0)
         with Children(d, n, maxNumChild=1000, childType=innerType):
-            p = e_ptr["n"]
+            pp = d.dereference(dd)
             for i in d.childRange():
-                d.putSubItem(i, p["t"])
-                p = p["n"]
+                d.putSubItem(i, d.createValue(pp + 2 * ptrSize, innerType))
+                pp = d.dereference(pp)
 
 qqLocalesCount = None
 
@@ -934,7 +934,7 @@ def qdumpHelper__Qt4_QMap(d, value, forceLong):
         # QMapPayloadNode is QMapNode except for the 'forward' member, so
         # its size is most likely the offset of the 'forward' member therein.
         # Or possibly 2 * sizeof(void *)
-        nodeType = d.lookupType(d.ns + "QMapNode<%s, %s>" % (keyType, valueType))
+        nodeType = d.lookupType(d.ns + "QMapNode<%s,%s>" % (keyType, valueType))
         nodePointerType = nodeType.pointer()
         payloadSize = nodeType.sizeof - 2 * nodePointerType.sizeof
 
@@ -976,6 +976,8 @@ def qdumpHelper__Qt5_QMap(d, value, forceLong):
         keyType = d.templateArgument(value.type, 0)
         valueType = d.templateArgument(value.type, 1)
         isCompact = d.isMapCompact(keyType, valueType)
+        # Note: The space in the QMapNode lookup below is
+        # important for LLDB.
         nodeType = d.lookupType(d.ns + "QMapNode<%s, %s>" % (keyType, valueType))
         if isCompact:
             innerType = valueType
@@ -1479,8 +1481,8 @@ def qdump__QObject(d, value):
 def qdump__QPixmap(d, value):
     offset = (3 if d.qtVersion() >= 0x050000 else 2) * d.ptrSize()
     base = d.dereference(d.addressOf(value) + offset)
-    width = d.extractInt(base + 4)
-    height = d.extractInt(base + 8)
+    width = d.extractInt(base + d.ptrSize())
+    height = d.extractInt(base + d.ptrSize() + 4)
     d.putValue("(%dx%d)" % (width, height))
     d.putNumChild(0)
 
@@ -1509,10 +1511,10 @@ def qdump__QRect(d, value):
     def pp(l):
         if l >= 0: return "+%s" % l
         return l
-    x1 = value["x1"]
-    y1 = value["y1"]
-    x2 = value["x2"]
-    y2 = value["y2"]
+    x1 = int(value["x1"])
+    y1 = int(value["y1"])
+    x2 = int(value["x2"])
+    y2 = int(value["y2"])
     w = x2 - x1 + 1
     h = y2 - y1 + 1
     d.putValue("%sx%s%s%s" % (w, h, pp(x1), pp(y1)))
@@ -1526,15 +1528,10 @@ def qdump__QRectF(d, value):
     def pp(l):
         if l >= 0: return "+%s" % l
         return l
-    x = value["xp"]
-    y = value["yp"]
-    w = value["w"]
-    h = value["h"]
-    # FIXME: workaround, see QPoint
-    x = x.cast(x.type.strip_typedefs())
-    y = y.cast(y.type.strip_typedefs())
-    w = w.cast(w.type.strip_typedefs())
-    h = h.cast(h.type.strip_typedefs())
+    x = float(value["xp"])
+    y = float(value["yp"])
+    w = float(value["w"])
+    h = float(value["h"])
     d.putValue("%sx%s%s%s" % (w, h, pp(x), pp(y)))
     d.putNumChild(4)
     if d.isExpanded():
@@ -1603,41 +1600,37 @@ def qdump__QScopedPointer(d, value):
 
 def qdump__QSet(d, value):
 
-    def hashDataFirstNode(value):
-        val = value.cast(hashDataType)
-        bucket = val["buckets"]
-        e = value.cast(hashNodeType)
-        for n in xrange(val["numBuckets"] - 1, -1, -1):
+    def hashDataFirstNode(dPtr, numBuckets):
+        ePtr = dPtr.cast(nodeTypePtr)
+        bucket = dPtr["buckets"]
+        for n in xrange(numBuckets - 1, -1, -1):
             n = n - 1
             if n < 0:
                 break
-            if bucket.dereference() != e:
+            if pointerValue(bucket.dereference()) != pointerValue(ePtr):
                 return bucket.dereference()
             bucket = bucket + 1
-        return e
-
-    def hashDataNextNode(node):
-        next = node["next"]
-        if next["next"]:
-            return next
-        d = node.cast(hashDataType.pointer()).dereference()
-        numBuckets = d["numBuckets"]
-        start = (node["h"] % numBuckets) + 1
-        bucket = d["buckets"] + start
+        return ePtr
+
+    def hashDataNextNode(nodePtr, numBuckets):
+        nextPtr = nodePtr.dereference()["next"]
+        if pointerValue(nextPtr.dereference()["next"]):
+            return nextPtr
+        dPtr = nodePtr.cast(hashDataType.pointer()).dereference()
+        start = (int(nodePtr.dereference()["h"]) % numBuckets) + 1
+        bucket = dPtr.dereference()["buckets"] + start
         for n in xrange(numBuckets - start):
-            if bucket.dereference() != next:
+            if pointerValue(bucket.dereference()) != pointerValue(nextPtr):
                 return bucket.dereference()
             bucket += 1
-        return node
-
-    keyType = d.templateArgument(value.type, 0)
-
-    d_ptr = value["q_hash"]["d"]
-    e_ptr = value["q_hash"]["e"]
-    size = int(d_ptr["size"])
+        return nodePtr
 
-    hashDataType = d_ptr.type
-    hashNodeType = e_ptr.type
+    anon = childAt(value, 0)
+    if lldbLoaded: # Skip the inheritance level.
+        anon = childAt(anon, 0)
+    d_ptr = anon["d"]
+    e_ptr = anon["e"]
+    size = int(d_ptr.dereference()["size"])
 
     check(0 <= size and size <= 100 * 1000 * 1000)
     checkRef(d_ptr["ref"])
@@ -1645,21 +1638,17 @@ def qdump__QSet(d, value):
     d.putItemCount(size)
     d.putNumChild(size)
     if d.isExpanded():
-        isSimpleKey = isSimpleType(keyType)
-        node = hashDataFirstNode(value)
+        hashDataType = d_ptr.type
+        nodeTypePtr = d_ptr.dereference()["fakeNext"].type
+        numBuckets = int(d_ptr.dereference()["numBuckets"])
+        node = hashDataFirstNode(d_ptr, numBuckets)
         innerType = e_ptr.dereference().type
         with Children(d, size, maxNumChild=1000, childType=innerType):
-            for i in xrange(size):
+            for i in d.childRange():
                 it = node.dereference().cast(innerType)
                 with SubItem(d, i):
-                    key = it["key"]
-                    if isSimpleKey:
-                        d.putType(keyType)
-                        d.putItem(key)
-                        d.putName(key)
-                    else:
-                        d.putItem(key)
-                node = hashDataNextNode(node)
+                    d.putItem(it["key"])
+                node = hashDataNextNode(node, numBuckets)
 
 
 def qdump__QSharedData(d, value):
@@ -1691,8 +1680,8 @@ def qdump__QSharedPointer(d, value):
 
 
 def qdump__QSize(d, value):
-    w = value["wd"]
-    h = value["ht"]
+    w = int(value["wd"])
+    h = int(value["ht"])
     d.putValue("(%s, %s)" % (w, h))
     d.putNumChild(2)
     if d.isExpanded():
@@ -1701,7 +1690,13 @@ def qdump__QSize(d, value):
 
 
 def qdump__QSizeF(d, value):
-    qdump__QSize(d, value)
+    w = float(value["wd"])
+    h = float(value["ht"])
+    d.putValue("(%s, %s)" % (w, h))
+    d.putNumChild(2)
+    if d.isExpanded():
+        with Children(d):
+            d.putFields(value)
 
 
 def qdump__QStack(d, value):
@@ -1852,27 +1847,27 @@ def qdumpHelper_QVariant_1(d, data):
 def qdumpHelper_QVariant_2(d, data):
     # QVariant::Int
     d.putBetterType("%sQVariant (int)" % d.ns)
-    d.putValue(data["i"])
+    d.putValue(int(data["i"]))
 
 def qdumpHelper_QVariant_3(d, data):
     # uint
     d.putBetterType("%sQVariant (uint)" % d.ns)
-    d.putValue(data["u"])
+    d.putValue(int(data["u"]))
 
 def qdumpHelper_QVariant_4(d, data):
     # qlonglong
     d.putBetterType("%sQVariant (qlonglong)" % d.ns)
-    d.putValue(data["ll"])
+    d.putValue(int(data["ll"]))
 
 def qdumpHelper_QVariant_5(d, data):
     # qulonglong
     d.putBetterType("%sQVariant (qulonglong)" % d.ns)
-    d.putValue(data["ull"])
+    d.putValue(int(data["ull"]))
 
 def qdumpHelper_QVariant_6(d, data):
     # QVariant::Double
     d.putBetterType("%sQVariant (double)" % d.ns)
-    d.putValue(data["d"])
+    d.putValue(float(data["d"]))
 
 qdumpHelper_QVariants_A = [
     qdumpHelper_QVariant_0,
@@ -1955,13 +1950,13 @@ def qdumpHelper__QVariant(d, value):
         if not inner is None:
             innert = inner
         elif variantType == 8:  # QVariant::VariantMap
-            inner = d.ns + "QMap<" + d.ns + "QString, " + d.ns + "QVariant>"
+            inner = d.ns + "QMap<" + d.ns + "QString," + d.ns + "QVariant>"
             innert = d.ns + "QVariantMap"
         elif variantType == 9:  # QVariant::VariantList
             inner = d.ns + "QList<" + d.ns + "QVariant>"
             innert = d.ns + "QVariantList"
         elif variantType == 28: # QVariant::VariantHash
-            inner = d.ns + "QHash<" + d.ns + "QString, " + d.ns + "QVariant>"
+            inner = d.ns + "QHash<" + d.ns + "QString," + d.ns + "QVariant>"
             innert = d.ns + "QVariantHash"
 
     elif variantType <= 86:
@@ -1970,10 +1965,10 @@ def qdumpHelper__QVariant(d, value):
 
     if len(inner):
         innerType = d.lookupType(inner)
-        sizePD = d.lookupType(d.ns + 'QVariant::Private::Data').sizeof
+        sizePD = 8 # sizeof(QVariant::Private::Data)
         if innerType.sizeof > sizePD:
-            sizePS = d.lookupType(d.ns + 'QVariant::PrivateShared').sizeof
-            val = (sizePS + data.cast(d.charPtrType())) \
+            sizePS = 2 * d.ptrSize() # sizeof(QVariant::PrivateShared)
+            val = (data.cast(d.charPtrType()) + sizePS) \
                 .cast(innerType.pointer()).dereference()
         else:
             val = data.cast(innerType)
@@ -1992,9 +1987,14 @@ def qdump__QVariant(d, value):
 
     if len(inner):
         innerType = d.lookupType(inner)
-        # FIXME: Why "shared"?
         if innerType.sizeof > d_data.type.sizeof:
-            v = d_data["shared"]["ptr"].cast(innerType.pointer()).dereference()
+            # FIXME:
+            #if int(d_ptr["is_shared"]):
+            #    v = d_data["ptr"].cast(innerType.pointer().pointer().pointer()) \
+            #        .dereference().dereference().dereference()
+            #else:
+                v = d_data["ptr"].cast(innerType.pointer().pointer()) \
+                    .dereference().dereference()
         else:
             v = d_data.cast(innerType)
         d.putEmptyValue(-99)
@@ -2003,12 +2003,13 @@ def qdump__QVariant(d, value):
         return innert
 
     # User types.
+    typeCode = int(d_ptr["type"])
     if gdbLoaded:
         type = str(call(value, "typeToName",
-            "('%sQVariant::Type')%d" % (d.ns, d_ptr["type"])))
+            "('%sQVariant::Type')%d" % (d.ns, typeCode)))
     if lldbLoaded:
         type = str(call(value, "typeToName",
-            "(%sQVariant::Type)%d" % (d.ns, d_ptr["type"])))
+            "(%sQVariant::Type)%d" % (d.ns, typeCode)))
     type = type[type.find('"') + 1 : type.rfind('"')]
     type = type.replace("Q", d.ns + "Q") # HACK!
     type = type.replace("uint", "unsigned int") # HACK!
@@ -2147,7 +2148,11 @@ def qdump__std__array(d, value):
     d.putNumChild(size)
     if d.isExpanded():
         innerType = d.templateArgument(value.type, 0)
-        d.putArrayData(innerType, value.address, size)
+        d.putArrayData(innerType, d.addressOf(value), size)
+
+
+def qdump__std____1__array(d, value):
+    qdump__std__array(d, value)
 
 
 def qdump__std__complex(d, value):
@@ -2201,14 +2206,14 @@ def qdump__std____debug__deque(d, value):
 
 
 def qdump__std__list(d, value):
+    head = d.dereferenceValue(value)
     impl = value["_M_impl"]
     node = impl["_M_node"]
-    head = node.address
     size = 0
-    p = node["_M_next"]
-    while p != head and size <= 1001:
+    pp = d.dereference(head)
+    while head != pp and size <= 1001:
         size += 1
-        p = p["_M_next"]
+        pp = d.dereference(pp)
 
     d.putItemCount(size, 1000)
     d.putNumChild(size)
@@ -2381,9 +2386,11 @@ def qdump__std__string(d, value):
     refcount = int(sizePtr[-1])
     check(refcount >= -1) # Can be -1 accoring to docs.
     check(0 <= size and size <= alloc and alloc <= 100*1000*1000)
+    qdump_stringHelper(d, sizePtr, size * charSize, charSize)
 
-    n = min(size, qqStringCutOff)
-    mem = d.readRawMemory(data, n * charSize)
+def qdump_stringHelper(d, data, size, charSize):
+    cutoff = min(size, qqStringCutOff)
+    mem = d.readRawMemory(data, cutoff)
     if charSize == 1:
         encodingType = Hex2EncodedLatin1
         displayType = DisplayLatin1String
@@ -2403,15 +2410,26 @@ def qdump__std__string(d, value):
     elif format == 2:
         d.putField("editformat", displayType)
         if n != size:
-            mem = d.readRawMemory(p, size * charType.sizeof)
+            mem = d.readRawMemory(p, size)
         d.putField("editvalue", mem)
 
-#def qdump__std__string(d, value):
-#    data = value["__r_"]
-#    d.putValue("SSSS")
-#    d.putType("std::string")
-#    d.putNumChild(1)
-#    d.putPlainChildren(value)
+
+def qdump__std____1__string(d, value):
+    inner = childAt(childAt(value["__r_"]["__first_"], 0), 0)
+    size = int(inner["__size_"])
+    alloc = int(inner["__cap_"])
+    data = pointerValue(inner["__data_"])
+    qdump_stringHelper(d, data, size, 1)
+    d.putType("std::string")
+
+
+def qdump__std____1__wstring(d, value):
+    inner = childAt(childAt(value["__r_"]["__first_"], 0), 0)
+    size = int(inner["__size_"]) * 4
+    alloc = int(inner["__cap_"])
+    data = pointerValue(inner["__data_"])
+    qdump_stringHelper(d, data, size, 4)
+    d.putType("std::wstring")
 
 
 def qdump__std__shared_ptr(d, value):
@@ -2501,6 +2519,24 @@ def qdump__std__vector(d, value):
         else:
             d.putArrayData(type, start, size)
 
+def qdump__std____1__vector(d, value):
+    innerType = d.templateArgument(value.type, 0)
+    if lldbLoaded and childAt(value, 0).type == innerType:
+        # That's old lldb automatically formatting
+        begin = d.dereferenceValue(value)
+        size = value.GetNumChildren()
+    else:
+        # Normal case
+        begin = pointerValue(value['__begin_'])
+        end = pointerValue(value['__end_'])
+        size = (end - begin) / innerType.sizeof
+
+    d.putItemCount(size)
+    d.putNumChild(size)
+    if d.isExpanded():
+        d.putArrayData(innerType, begin, size)
+
+
 def qdump__std____debug__vector(d, value):
     qdump__std__vector(d, value)
 
@@ -2557,13 +2593,13 @@ def qdump____gnu_cxx__hash_set(d, value):
 #######################################################################
 
 def qdump__boost__bimaps__bimap(d, value):
-    leftType = d.templateArgument(value.type, 0)
-    rightType = d.templateArgument(value.type, 1)
-    size = value["core"]["node_count"]
+    #leftType = d.templateArgument(value.type, 0)
+    #rightType = d.templateArgument(value.type, 1)
+    size = int(value["core"]["node_count"])
     d.putItemCount(size)
     d.putNumChild(size)
-    #if d.isExpanded():
-    d.putPlainChildren(value)
+    if d.isExpanded():
+        d.putPlainChildren(value)
 
 
 def qdump__boost__optional(d, value):
@@ -2573,7 +2609,7 @@ def qdump__boost__optional(d, value):
     else:
         type = d.templateArgument(value.type, 0)
         storage = value["m_storage"]
-        if type.code == ReferenceCode:
+        if d.isReferenceType(type):
             d.putItem(storage.cast(type.target().pointer()).dereference())
         else:
             d.putItem(storage.cast(type))
@@ -2925,7 +2961,7 @@ def qdump__Eigen__Matrix(d, value):
     nrows = value["m_storage"]["m_rows"] if argRow == -1 else int(argRow)
     ncols = value["m_storage"]["m_cols"] if argCol == -1 else int(argCol)
     p = storage["m_data"]
-    if p.type.code == StructCode: # Static
+    if d.isStructType(p.type): # Static
         p = p["array"].cast(innerType.pointer())
     d.putValue("(%s x %s), %s" % (nrows, ncols, ["ColumnMajor", "RowMajor"][rowMajor]))
     d.putField("keeporder", "1")
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp
index 5d2886a161eccba388e1bf58b67c6b0fbdf040ad..e772ac32269f83555254e4f262090b71ee4fdd4a 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp
@@ -50,6 +50,9 @@ int main(int argc, char *argv[])
     // Since we always render text into an FBO, we need to globally disable
     // subpixel antialiasing and instead use gray.
     qputenv("QSG_DISTANCEFIELD_ANTIALIASING", "gray");
+#ifdef Q_OS_MAC //This keeps qml2puppet from stealing focus
+    qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true");
+#endif
 
     QApplication application(argc, argv);
 
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppetmain.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppetmain.cpp
index fef87177b7d4db681b24130b881a24a193dda22c..4f712d0f862fe5580e1506bafe4a43c7b332812d 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppetmain.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppetmain.cpp
@@ -51,6 +51,10 @@ int main(int argc, char *argv[])
     QtSimulatorPrivate::SimulatorConnection::createStubInstance();
 #endif
 
+#ifdef Q_OS_MAC //This keeps qml2puppet from stealing focus
+    qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true");
+#endif
+
     QApplication application(argc, argv);
 
     QCoreApplication::setOrganizationName("QtProject");
diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts
index e7fbb1e8de9773e0ec8e7d492074bfceab3058d1..df5348e7bbea4383018b349a9b7cd27d667ed542 100644
--- a/share/qtcreator/translations/qtcreator_ru.ts
+++ b/share/qtcreator/translations/qtcreator_ru.ts
@@ -139,10 +139,6 @@
 </context>
 <context>
     <name>Analyzer::Internal::AnalyzerRunControlFactory</name>
-    <message>
-        <source>Analyzer</source>
-        <translation>Анализатор</translation>
-    </message>
     <message>
         <source>No analyzer tool selected</source>
         <translation>Инструмент анализа не выбран</translation>
@@ -220,6 +216,24 @@
         <translation>Android</translation>
     </message>
 </context>
+<context>
+    <name>Android::AndroidPlugin</name>
+    <message>
+        <source>Android Manifest file</source>
+        <translation>Файл Android Manifest</translation>
+    </message>
+    <message>
+        <source>Could not add mime-type for AndroidManifest.xml editor.</source>
+        <translation>Не удалось добавить MIME-тип для редактора AndroidManifest.xml.</translation>
+    </message>
+</context>
+<context>
+    <name>Android::Internal::AndroidAnalyzeSupport</name>
+    <message>
+        <source>No analyzer tool selected.</source>
+        <translation>Инструмент анализа не выбран.</translation>
+    </message>
+</context>
 <context>
     <name>Android::Internal::AndroidConfigurations</name>
     <message>
@@ -333,10 +347,6 @@ Please install an SDK of at least API version %1.</source>
         <source>Pulling files necessary for debugging.</source>
         <translation>Загрузка файлов, необходимых для отладки.</translation>
     </message>
-    <message>
-        <source>Qt Android smart installer installation failed</source>
-        <translation>Не удалось установить Qt Android smart installer</translation>
-    </message>
     <message>
         <source>No Android toolchain selected.</source>
         <translation>Не выбран инструментарий для Android.</translation>
@@ -457,6 +467,127 @@ Please install at least one SDK.</source>
         <translation>Не удалось открыть «%1»</translation>
     </message>
 </context>
+<context>
+    <name>Android::Internal::AndroidManifestEditor</name>
+    <message>
+        <source>General</source>
+        <translation>Основное</translation>
+    </message>
+    <message>
+        <source>XML Source</source>
+        <translation>Исходник XML</translation>
+    </message>
+</context>
+<context>
+    <name>Android::Internal::AndroidManifestEditorFactory</name>
+    <message>
+        <source>Android Manifest editor</source>
+        <translation>Редактор Android Manifest</translation>
+    </message>
+</context>
+<context>
+    <name>Android::Internal::AndroidManifestEditorWidget</name>
+    <message>
+        <source>Package</source>
+        <translation>Пакет</translation>
+    </message>
+    <message>
+        <source>&lt;p align=&quot;justify&quot;&gt;Please choose a valid package name for your application (e.g. &quot;org.example.myapplication&quot;).&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced &quot;dot&quot;).&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;In general, a package name begins with the top level domain name of the organization and then the organization&apos;s domain and then any subdomains listedin reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Complete conventions for disambiguating package names and rules for naming packages when the Internet domain name cannot be directly used as a package name are described in section 7.7 of the Java Language Specification.&lt;/p&gt;</source>
+        <translation>&lt;p align=&quot;justify&quot;&gt;Выберите корректное имя для приложения (например: «org.example.myapplication»).&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Имена пакетам принято давать в виде иерархии, уровни которой разделяются точками.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Обычно название пакета начинается с доменного имени выше уровня организации, затем доменного имени организации и её поддоменов в обратном порядке. В самом конце может идти уникальное название пакета. Названия пакетов по возможности должны содержать только символы нижнего регистра.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Полностью соглашение о разрешении конфликтов имён пакетов и правила именования пакетов в случае невозможности использования доменных имён Internet описаны в разделе 7.7 спецификации языка Java.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>Package name:</source>
+        <translation>Имя пакета:</translation>
+    </message>
+    <message>
+        <source>The package name is not valid.</source>
+        <translation>Имя пакета недопустимо.</translation>
+    </message>
+    <message>
+        <source>Version code:</source>
+        <translation>Код версии:</translation>
+    </message>
+    <message>
+        <source>Version name:</source>
+        <translation>Название версии:</translation>
+    </message>
+    <message>
+        <source>Application</source>
+        <translation>Приложение</translation>
+    </message>
+    <message>
+        <source>Application name:</source>
+        <translation>Имя приложения:</translation>
+    </message>
+    <message>
+        <source>Run:</source>
+        <translation>Запуск:</translation>
+    </message>
+    <message>
+        <source>Select low dpi icon</source>
+        <translation>Выбрать значок низкого разрешения</translation>
+    </message>
+    <message>
+        <source>Select medium dpi icon</source>
+        <translation>Выбрать значок среднего разрешения</translation>
+    </message>
+    <message>
+        <source>Select high dpi icon</source>
+        <translation>Выбрать значок высокого разрешения</translation>
+    </message>
+    <message>
+        <source>Application icon:</source>
+        <translation>Значок приложения:</translation>
+    </message>
+    <message>
+        <source>Permissions</source>
+        <translation>Разрешения</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Удалить</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Добавить</translation>
+    </message>
+    <message>
+        <source>The structure of the android manifest file is corrupt. Expected a top level &apos;manifest&apos; node.</source>
+        <translation>Повреждена структура файла Android Manifest. Требуется элемент верхнего уровня «manifest».</translation>
+    </message>
+    <message>
+        <source>The structure of the android manifest file is corrupt. Expected a &apos;application&apos; and &apos;activity&apos; sub node.</source>
+        <translation>Повреждена структура файла Android Manifest. Требуются дочерние элементы «application» и «activity».</translation>
+    </message>
+    <message>
+        <source>Could not parse file: &apos;%1&apos;</source>
+        <translation>Не удалось разобрать файл: «%1»</translation>
+    </message>
+    <message>
+        <source>%2: Could not parse file: &apos;%1&apos;</source>
+        <translation>%2: Не удалось разобрать файл: «%1»</translation>
+    </message>
+    <message>
+        <source>Goto error</source>
+        <translation>Перейти к ошибке</translation>
+    </message>
+    <message>
+        <source>Choose Low DPI Icon</source>
+        <translation>Выбор значка низкого разрешения</translation>
+    </message>
+    <message>
+        <source>PNG images (*.png)</source>
+        <translation>Изображения PNG (*.png)</translation>
+    </message>
+    <message>
+        <source>Choose Medium DPI Icon</source>
+        <translation>Выбор значка среднего разрешения</translation>
+    </message>
+    <message>
+        <source>Choose High DPI Icon</source>
+        <translation>Выбор значка высокого разрешения</translation>
+    </message>
+</context>
 <context>
     <name>Android::Internal::AndroidPackageCreationFactory</name>
     <message>
@@ -571,36 +702,6 @@ Please make sure your application is built successfully and is selected in Appli
 </context>
 <context>
     <name>Android::Internal::AndroidPackageCreationWidget</name>
-    <message>
-        <source>Invalid Package Name</source>
-        <translation>Неверное имя пакета</translation>
-    </message>
-    <message>
-        <source>The package name &apos;%1&apos; is not valid.
-Please choose a valid package name for your application (e.g. &quot;org.example.myapplication&quot;).</source>
-        <translation>Имя пакета «%1» недопустимо.
-Выберите корректное имя для приложения (например: «org.example.myapplication»).</translation>
-    </message>
-    <message>
-        <source>Choose High DPI Icon</source>
-        <translation>Выбор значка высокого разрешения</translation>
-    </message>
-    <message>
-        <source>PNG images (*.png)</source>
-        <translation>Изображения PNG (*.png)</translation>
-    </message>
-    <message>
-        <source>&lt; Type or choose a permission &gt;</source>
-        <translation>&lt; Введите или выберите разрешения &gt;</translation>
-    </message>
-    <message>
-        <source>Choose Medium DPI Icon</source>
-        <translation>Выбор значка среднего разрешения</translation>
-    </message>
-    <message>
-        <source>Choose Low DPI Icon</source>
-        <translation>Выбор значка низкого разрешения</translation>
-    </message>
     <message>
         <source>&lt;b&gt;Package configurations&lt;/b&gt;</source>
         <translation>&lt;b&gt;Конфигурации создания пакетов&lt;/b&gt;</translation>
@@ -655,14 +756,11 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
     </message>
 </context>
 <context>
-    <name>Android::Internal::AndroidRunControlFactory</name>
+    <name>Android::Internal::AndroidRunner</name>
     <message>
-        <source>Run on Android device or emulator.</source>
-        <translation>Запустить на устройстве/эмуляторе Android.</translation>
+        <source>No free ports available on host for QML debugging.</source>
+        <translation>Нет свободных портов на компьютере для отладки QML.</translation>
     </message>
-</context>
-<context>
-    <name>Android::Internal::AndroidRunner</name>
     <message>
         <source>
 
@@ -878,100 +976,54 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
         <translation>Форма</translation>
     </message>
     <message>
-        <source>Use Qt libraries from device</source>
-        <translation>Использовать библиотеки Qt устройства</translation>
+        <source>Qt Deployment</source>
+        <translation>Установка Qt</translation>
     </message>
     <message>
-        <source>Push local Qt libraries to device.
-You must have Qt libraries compiled for that platform</source>
-        <translation>Устанавливать локальные библиотеки Qt на устройство.
-Необходимы библиотеки Qt, собранные под эту платформу</translation>
+        <source>Use the external Ministro application to download and maintain Qt libraries.</source>
+        <translation>Использовать внешнее приложение Ministro для загрузки и обслуживания библиотек Qt.</translation>
     </message>
     <message>
-        <source>Deploy local Qt libraries</source>
-        <translation>Устанавливать локальные
-библиотеки Qt</translation>
+        <source>Use Ministro service to install Qt</source>
+        <translation>Использовать Ministro для установки Qt</translation>
     </message>
     <message>
-        <source>Check this option to force the application to use local Qt libraries instead of system libraries.</source>
-        <translation>Принудительное использование приложением локальных библиотек Qt вместо системных.</translation>
+        <source>Push local Qt libraries to device. You must have Qt libraries compiled for that platform.
+The APK will not be usable on any other device.</source>
+        <translation>Отправлять локальные библиотеки Qt на устройство. Необходимо иметь библиотеки,
+собранные под эту платформу. Файл APK не будет работать на других устройствах.</translation>
     </message>
     <message>
-        <source>Use local Qt libraries</source>
-        <translation>Использовать локальные
-библиотеки Qt</translation>
+        <source>Deploy local Qt libraries to temporary directory</source>
+        <translation>Устанавливать Qt во временный каталог</translation>
     </message>
     <message>
-        <source>Choose and install Ministro system wide Qt shared libraries.
-This option is useful when you want to try your application on devices which don&apos;t have Android Market (e.g. Android Emulator).</source>
-        <translation>Выбор и установка Ministro - общесистемных динамических библиотек Qt.
-Может потребоваться при установке приложений на устройства, которые
-не имеют доступа к Android Market (например, эмулятор Android).</translation>
+        <source>Creates a standalone APK.</source>
+        <translation>Создавать автономный APK.</translation>
     </message>
     <message>
-        <source>Install Ministro, system-wide Qt shared libraries installer</source>
-        <translation>Развёртывать Ministro - установщик общесистемных библиотек Qt</translation>
+        <source>Bundle Qt libraries in APK</source>
+        <translation>Внедрять библиотеки Qt в APK</translation>
     </message>
     <message>
-        <source>Choose APK</source>
-        <translation>Выбрать APK</translation>
+        <source>Advanced Actions</source>
+        <translation>Дополнительно</translation>
     </message>
     <message>
-        <source>Clean Libs on Device</source>
-        <translation>Удалить библиотеки
-с устройства</translation>
+        <source>Clean Temporary Libraries Directory on Device</source>
+        <translation>Создать временный каталог на устройстве</translation>
+    </message>
+    <message>
+        <source>Install Ministro from APK</source>
+        <translation>Установить Ministro из APK</translation>
     </message>
 </context>
 <context>
     <name>AndroidPackageCreationWidget</name>
-    <message>
-        <source>Manifest</source>
-        <translation>Манифест</translation>
-    </message>
-    <message>
-        <source>1.0.0</source>
-        <translation>1.0.0</translation>
-    </message>
     <message>
         <source>Application</source>
         <translation>Приложение</translation>
     </message>
-    <message>
-        <source>Select low dpi icon</source>
-        <translation>Выбрать значок низкого разрешения</translation>
-    </message>
-    <message>
-        <source>Select medium dpi icon</source>
-        <translation>Выбрать значок среднего разрешения</translation>
-    </message>
-    <message>
-        <source>Select high dpi icon</source>
-        <translation>Выбрать значок высокого разрешения</translation>
-    </message>
-    <message>
-        <source>Permissions</source>
-        <translation>Разрешения</translation>
-    </message>
-    <message>
-        <source>Add</source>
-        <translation>Добавить</translation>
-    </message>
-    <message>
-        <source>Remove</source>
-        <translation>Удалить</translation>
-    </message>
-    <message>
-        <source>Save</source>
-        <translation>Сохранить</translation>
-    </message>
-    <message>
-        <source>Discard</source>
-        <translation>Отмена</translation>
-    </message>
-    <message>
-        <source>Name:</source>
-        <translation>Название:</translation>
-    </message>
     <message>
         <source>Libraries</source>
         <translation>Библиотеки</translation>
@@ -1024,40 +1076,6 @@ This option is useful when you want to try your application on devices which don
         <source>&lt;b&gt;Android target SDK:&lt;/b&gt;</source>
         <translation>&lt;b&gt;SDK для Android:&lt;/b&gt;</translation>
     </message>
-    <message>
-        <source>&lt;b&gt;Package name:&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Имя пакета:&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;p align=&quot;justify&quot;&gt;Please choose a valid package name for your application (e.g. &quot;org.example.myapplication&quot;).&lt;/p&gt;
-&lt;p align=&quot;justify&quot;&gt;Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced &quot;dot&quot;).&lt;/p&gt;
-&lt;p align=&quot;justify&quot;&gt;In general, a package name begins with the top level domain name of the organization and then the organization&apos;s domain and then any subdomains listed in reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible.&lt;/p&gt;
-&lt;p align=&quot;justify&quot;&gt;Complete conventions for disambiguating package names and rules for naming packages when the Internet domain name cannot be directly used as a package name are described in section 7.7 of the Java Language Specification.&lt;/p&gt;</source>
-        <translation>&lt;p align=&quot;justify&quot;&gt;Выберите корректное имя для приложения (например: «org.example.myapplication»). &lt;/p&gt;
-&lt;p align=&quot;justify&quot;&gt;Имена пакетам принято давать в виде иерархии, уровни которой разделяются точками.&lt;/p&gt;
-&lt;p align=&quot;justify&quot;&gt;Обычно название пакета начинается с доменного имени выше уровня организации, затем доменного имени организации и её поддоменов в обратном порядке. В самом конце может идти уникальное название пакета. Названия пакетов по возможности должны содержать только символы нижнего регистра.&lt;/p&gt;
-&lt;p align=&quot;justify&quot;&gt;Полностью соглашение о разрешении конфликтов имён пакетов и правила именования пакетов в случае невозможности использования доменных имён Internet описаны в разделе 7.7 спецификации языка Java.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;b&gt;Version code:&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Код версии:&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;b&gt;Version name:&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Имя версии:&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;b&gt;Application name:&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Имя приложения:&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;b&gt;Run:&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Запуск:&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;b&gt;Application icon:&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Значок приложения:&lt;/b&gt;</translation>
-    </message>
     <message>
         <source>&lt;center&gt;Prebundled libraries&lt;/center&gt;
 &lt;p align=&quot;justify&quot;&gt;Please be aware that the order is very important: If library &lt;i&gt;A&lt;/i&gt; depends on library &lt;i&gt;B&lt;/i&gt;, &lt;i&gt;B&lt;/i&gt; &lt;b&gt;must&lt;/b&gt; go before &lt;i&gt;A&lt;/i&gt;.&lt;/p&gt;</source>
@@ -1087,10 +1105,6 @@ This option is useful when you want to try your application on devices which don
         <source>Ant location:</source>
         <translation>Размещение Ant:</translation>
     </message>
-    <message>
-        <source>OpenJDK location:</source>
-        <translation>Размещение OpenJDK:</translation>
-    </message>
     <message>
         <source>Start</source>
         <translation>Запустить</translation>
@@ -1123,6 +1137,10 @@ This option is useful when you want to try your application on devices which don
         <source>Automatically create kits for Android tool chains</source>
         <translation>Автоматически создавать комплекты для инструментариев Android</translation>
     </message>
+    <message>
+        <source>JDK location:</source>
+        <translation>Размещение JDK:</translation>
+    </message>
 </context>
 <context>
     <name>Application</name>
@@ -1234,12 +1252,8 @@ This option is useful when you want to try your application on devices which don
 <context>
     <name>AutotoolsProjectManager::Internal::AutotoolsManager</name>
     <message>
-        <source>Failed opening project &apos;%1&apos;: Project file does not exist</source>
-        <translation>Не удалось открыть проект «%1»: файл проекта отсутствует</translation>
-    </message>
-    <message>
-        <source>Failed opening project &apos;%1&apos;: Project already open</source>
-        <translation>Не удалось открыть проект «%1»: проект уже открыт</translation>
+        <source>Failed opening project &apos;%1&apos;: Project is not a file</source>
+        <translation>Не удалось открыть проект «%1»: проект не является файлом</translation>
     </message>
 </context>
 <context>
@@ -1342,7 +1356,7 @@ This option is useful when you want to try your application on devices which don
     </message>
 </context>
 <context>
-    <name>BINEditor::BinEditor</name>
+    <name>BINEditor::BinEditorWidget</name>
     <message>
         <source>Memory at 0x%1</source>
         <translation>Память с 0x%1</translation>
@@ -1369,11 +1383,11 @@ This option is useful when you want to try your application on devices which don
     </message>
     <message>
         <source>Little Endian</source>
-        <translation></translation>
+        <translation>Little Endian</translation>
     </message>
     <message>
         <source>Big Endian</source>
-        <translation></translation>
+        <translation>Big Endian</translation>
     </message>
     <message>
         <source>Binary&amp;nbsp;value:</source>
@@ -1504,6 +1518,26 @@ This option is useful when you want to try your application on devices which don
         <source>Version:</source>
         <translation>Версия:</translation>
     </message>
+    <message>
+        <source>No Qt version.</source>
+        <translation>Профиль Qt не задан.</translation>
+    </message>
+    <message>
+        <source>Invalid Qt version.</source>
+        <translation>Некорректный профиль Qt.</translation>
+    </message>
+    <message>
+        <source>Requires Qt 4.7.1 or newer.</source>
+        <translation>Требуется Qt версии не ниже 4.7.1.</translation>
+    </message>
+    <message>
+        <source>Library not available. &lt;a href=&apos;compile&apos;&gt;Compile...&lt;/a&gt;</source>
+        <translation>Библиотека отсутствует. &lt;a href=&apos;compile&apos;&gt;Собрать...&lt;/a&gt;</translation>
+    </message>
+    <message>
+        <source>Building helpers</source>
+        <translation>Сборка помощников</translation>
+    </message>
 </context>
 <context>
     <name>Bazaar::Internal::BazaarCommitPanel</name>
@@ -2208,6 +2242,18 @@ Local pulls are not applied to the master branch.</source>
         <source>Remove All</source>
         <translation>Удалить всё</translation>
     </message>
+    <message>
+        <source>Remove All Bookmarks</source>
+        <translation>Удаление всех закладок</translation>
+    </message>
+    <message>
+        <source>Are you sure you want to remove all bookmarks from all files in the current session?</source>
+        <translation>Желаете удалить все закладки из всех файлов текущей сессии?</translation>
+    </message>
+    <message>
+        <source>Do not &amp;ask again.</source>
+        <translation>&amp;Больше не спрашивать.</translation>
+    </message>
     <message>
         <source>Edit Note</source>
         <translation>Изменить заметку</translation>
@@ -2350,6 +2396,14 @@ Local pulls are not applied to the master branch.</source>
         <source>Determines whether the button is checkable or not.</source>
         <translation>Определяет, является ли кнопка включаемой или нет.</translation>
     </message>
+    <message>
+        <source>Enabled</source>
+        <translation>Включена</translation>
+    </message>
+    <message>
+        <source>Determines whether the button is enabled or not.</source>
+        <translation>Определяет, включена ли кнопка или нет.</translation>
+    </message>
     <message>
         <source>Default button</source>
         <translation>Кнопка по умолчанию</translation>
@@ -2366,10 +2420,6 @@ Local pulls are not applied to the master branch.</source>
         <source>The tool tip shown for the button.</source>
         <translation>Подсказка, отображаемая для кнопки.</translation>
     </message>
-    <message>
-        <source>Text color</source>
-        <translation>Цвет текста</translation>
-    </message>
     <message>
         <source>Focus on press</source>
         <translation>Фокус при нажатии</translation>
@@ -2445,6 +2495,10 @@ Local pulls are not applied to the master branch.</source>
         <source>Run CMake</source>
         <translation>Запустить CMake</translation>
     </message>
+    <message>
+        <source>Failed opening project &apos;%1&apos;: Project is not a file</source>
+        <translation>Не удалось открыть проект «%1»: проект не является файлом</translation>
+    </message>
 </context>
 <context>
     <name>CMakeProjectManager::Internal::CMakeOpenProjectWizard</name>
@@ -2459,18 +2513,6 @@ Local pulls are not applied to the master branch.</source>
         <source>Run CMake kit</source>
         <translation>Запуск комплекта CMake</translation>
     </message>
-    <message>
-        <source>Clean Environment</source>
-        <translation>Чистая среда</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
-    <message>
-        <source>Build Environment</source>
-        <translation>Среда сборки</translation>
-    </message>
     <message>
         <source>The executable is not built by the current build configuration</source>
         <translation>Приложение собрано не текущей конфигурацией сборки</translation>
@@ -2502,26 +2544,6 @@ Local pulls are not applied to the master branch.</source>
         <source>Run in Terminal</source>
         <translation>Запускать в терминале</translation>
     </message>
-    <message>
-        <source>Run Environment</source>
-        <translation>Среда выполнения</translation>
-    </message>
-    <message>
-        <source>Clean Environment</source>
-        <translation>Чистая среда</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
-    <message>
-        <source>Build Environment</source>
-        <translation>Среда сборки</translation>
-    </message>
-    <message>
-        <source>Base environment for this runconfiguration:</source>
-        <translation>Базовая среда данной конфигурации выполнения:</translation>
-    </message>
 </context>
 <context>
     <name>CMakeProjectManager::Internal::CMakeRunPage</name>
@@ -2860,7 +2882,7 @@ Local pulls are not applied to the master branch.</source>
 <context>
     <name>ClearCase::Internal::ClearCaseControl</name>
     <message>
-        <source>&amp;Check Out</source>
+        <source>Check &amp;Out</source>
         <translation>&amp;Извлечь</translation>
     </message>
     <message>
@@ -3517,6 +3539,14 @@ Local pulls are not applied to the master branch.</source>
         <source>Default protocol:</source>
         <translation>Протокол по умолчанию:</translation>
     </message>
+    <message>
+        <source>&amp;Expires after:</source>
+        <translation>&amp;Истекает через:</translation>
+    </message>
+    <message>
+        <source>Days</source>
+        <translation> дней</translation>
+    </message>
 </context>
 <context>
     <name>CodePaster::Internal::ViewDialog</name>
@@ -3566,6 +3596,14 @@ p, li { white-space: pre-wrap; }
         <source>Patch 2</source>
         <translation></translation>
     </message>
+    <message>
+        <source>Days</source>
+        <translation> дней</translation>
+    </message>
+    <message>
+        <source>&amp;Expires after:</source>
+        <translation>&amp;Истекает через:</translation>
+    </message>
 </context>
 <context>
     <name>CodePaster::NetworkProtocol</name>
@@ -3895,6 +3933,11 @@ p, li { white-space: pre-wrap; }
 </context>
 <context>
     <name>Core::DocumentManager</name>
+    <message>
+        <source>Could not save the files.</source>
+        <comment>error message</comment>
+        <translation>Не удалось сохранить файлы.</translation>
+    </message>
     <message>
         <source>File Error</source>
         <translation>Ошибка файла</translation>
@@ -3919,22 +3962,6 @@ p, li { white-space: pre-wrap; }
         <source>Open File</source>
         <translation>Открытие файла</translation>
     </message>
-    <message>
-        <source>File Is Read Only</source>
-        <translation>Файл только для чтения</translation>
-    </message>
-    <message>
-        <source>The file &lt;i&gt;%1&lt;/i&gt; is read only.</source>
-        <translation>Файл &lt;i&gt;%1&lt;/i&gt; только для чтения.</translation>
-    </message>
-    <message>
-        <source>Make &amp;Writable</source>
-        <translation>Сделать &amp;записываемым</translation>
-    </message>
-    <message>
-        <source>&amp;Save As...</source>
-        <translation>Сохранить &amp;как...</translation>
-    </message>
     <message>
         <source>Cannot reload %1</source>
         <translation>Не удалось перезагрузить %1</translation>
@@ -4050,6 +4077,18 @@ p, li { white-space: pre-wrap; }
         <source>Ctrl+E,3</source>
         <translation>Ctrl+E,3</translation>
     </message>
+    <message>
+        <source>Open in New Window</source>
+        <translation>Открыть в новом окне</translation>
+    </message>
+    <message>
+        <source>Meta+E,4</source>
+        <translation>Meta+E,4</translation>
+    </message>
+    <message>
+        <source>Ctrl+E,4</source>
+        <translation>Ctrl+E,4</translation>
+    </message>
     <message>
         <source>Remove Current Split</source>
         <translation>Удалить текущее разделение</translation>
@@ -4074,6 +4113,10 @@ p, li { white-space: pre-wrap; }
         <source>Ctrl+E,1</source>
         <translation>Ctrl+E,1</translation>
     </message>
+    <message>
+        <source>Go to Next Split or Window</source>
+        <translation>Перейти к следующему разделению или окну</translation>
+    </message>
     <message>
         <source>Meta+E,o</source>
         <translation>Meta+E,o</translation>
@@ -4086,14 +4129,6 @@ p, li { white-space: pre-wrap; }
         <source>Ad&amp;vanced</source>
         <translation>&amp;Дополнительно</translation>
     </message>
-    <message>
-        <source>Full path of the current document including file name.</source>
-        <translation>Полный путь с именем файла к текущему документу.</translation>
-    </message>
-    <message>
-        <source>Full path of the current document excluding file name.</source>
-        <translation>Полный путь без имени файла к текущему документу.</translation>
-    </message>
     <message>
         <source>X-coordinate of the current editor&apos;s upper left corner, relative to screen.</source>
         <translation>Координата X левого верхнего угла окна редактора относительно экрана.</translation>
@@ -4126,18 +4161,6 @@ p, li { white-space: pre-wrap; }
         <source>Cannot Open File</source>
         <translation>Не удалось открыть файл</translation>
     </message>
-    <message>
-        <source>Cannot open the file for editing with SCC.</source>
-        <translation>Не удалось открыть файл для правки с помощью SCC.</translation>
-    </message>
-    <message>
-        <source>Cannot Set Permissions</source>
-        <translation>Не удалось задать права доступа</translation>
-    </message>
-    <message>
-        <source>Cannot set permissions to writable.</source>
-        <translation>Не удалось задать права доступа на запись.</translation>
-    </message>
     <message>
         <source>Cannot open the file for editing with VCS.</source>
         <translation>Не удалось открыть файл для правки с помощью VCS.</translation>
@@ -4163,8 +4186,8 @@ p, li { white-space: pre-wrap; }
         <translation></translation>
     </message>
     <message>
-        <source>Go to Next Split</source>
-        <translation>Перейти к следующему разделению</translation>
+        <source>Current document</source>
+        <translation>Текущий документ</translation>
     </message>
     <message>
         <source>Opening File</source>
@@ -4256,6 +4279,21 @@ p, li { white-space: pre-wrap; }
         <translation>Вся</translation>
     </message>
 </context>
+<context>
+    <name>Core::ICore</name>
+    <message>
+        <source> (%1)</source>
+        <translation> (%1)</translation>
+    </message>
+    <message>
+        <source>Qt Creator %1%2</source>
+        <translation>Qt Creator %1%2</translation>
+    </message>
+    <message>
+        <source>Based on Qt %1 (%2, %3 bit)</source>
+        <translation>Основан на Qt %1 (%2, %3 бита)</translation>
+    </message>
+</context>
 <context>
     <name>Core::IDocument</name>
     <message>
@@ -4910,6 +4948,10 @@ p, li { white-space: pre-wrap; }
         <source>Alt+0</source>
         <translation>Alt+0</translation>
     </message>
+    <message>
+        <source>Show Mode Selector</source>
+        <translation>Показать выбор режимов</translation>
+    </message>
     <message>
         <source>Full Screen</source>
         <translation>Полный экран</translation>
@@ -5102,6 +5144,10 @@ p, li { white-space: pre-wrap; }
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
+    <message>
+        <source>Filter</source>
+        <translation>Фильтр</translation>
+    </message>
 </context>
 <context>
     <name>Core::Internal::MimeTypeSettingsPrivate</name>
@@ -5295,6 +5341,21 @@ p, li { white-space: pre-wrap; }
         <translation>Ошибки модуля %1</translation>
     </message>
 </context>
+<context>
+    <name>Core::Internal::ProgressManagerPrivate</name>
+    <message>
+        <source>Toggle Progress Details</source>
+        <translation>Переключить подробности выполнения</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+0</source>
+        <translation>Ctrl+Shift+0</translation>
+    </message>
+    <message>
+        <source>Alt+Shift+0</source>
+        <translation>Alt+Shift+0</translation>
+    </message>
+</context>
 <context>
     <name>Core::Internal::ProgressView</name>
     <message>
@@ -5317,6 +5378,103 @@ Would you like to overwrite them?</source>
 Желаете перезаписать их?</translation>
     </message>
 </context>
+<context>
+    <name>Core::Internal::ReadOnlyFilesDialog</name>
+    <message>
+        <source>Files Without Write Permissions</source>
+        <translation>Файлы без права записи</translation>
+    </message>
+    <message>
+        <source>The following files have no write permissions. Do you want to change the permissions?</source>
+        <translation>Для следующих файлов отсутствует право записи. Сменить права?</translation>
+    </message>
+    <message>
+        <source>Make Writable</source>
+        <translation>Сделать записываемым</translation>
+    </message>
+    <message>
+        <source>Open with VCS</source>
+        <translation>Открыть в VCS</translation>
+    </message>
+    <message>
+        <source>Save As</source>
+        <translation>Сохранить как</translation>
+    </message>
+    <message>
+        <source>Path</source>
+        <translation>Путь</translation>
+    </message>
+    <message>
+        <source>Select all, if possible: </source>
+        <translation>Выбрать все, если возможно:</translation>
+    </message>
+    <message>
+        <source>Mixed</source>
+        <translation>Смешанно</translation>
+    </message>
+    <message>
+        <source>Failed to %1 File</source>
+        <translation>Не удалось %1 файл</translation>
+    </message>
+    <message>
+        <source>%1 file %2 from version control system %3 failed.
+</source>
+        <translation>Не удалось %1 файл %2 из системы контроля версий %3.</translation>
+    </message>
+    <message>
+        <source>No Version Control System Found</source>
+        <translation>Не обнаружена система контроля версий</translation>
+    </message>
+    <message>
+        <source>Cannot open file %1 from version control system.
+No version control system found.
+</source>
+        <translation>Не удалось открыть файл %1 из системы контроля версий.
+Она не обнаружена.</translation>
+    </message>
+    <message>
+        <source>Cannot Set Permissions</source>
+        <translation>Не удалось задать права доступа</translation>
+    </message>
+    <message>
+        <source>Cannot set permissions for %1 to writable.
+</source>
+        <translation>Не удалось задать %1 права доступа на запись.</translation>
+    </message>
+    <message>
+        <source>Cannot Save File</source>
+        <translation>Не удалось сохранить файл</translation>
+    </message>
+    <message>
+        <source>Cannot save file %1
+</source>
+        <translation>Не удалось сохранить файл %1</translation>
+    </message>
+    <message>
+        <source>Canceled Changing Permissions</source>
+        <translation>Смена прав доступа отменена</translation>
+    </message>
+    <message>
+        <source>Could Not Change Permissions on Some Files</source>
+        <translation>Не удалось сменить некоторым файлам права доступа</translation>
+    </message>
+    <message>
+        <source>
+See details for a complete list of files.</source>
+        <translation>
+Полный список файлов приведён в подробностях.</translation>
+    </message>
+    <message>
+        <source>&amp;Change Permission</source>
+        <translation>&amp;Сменить права</translation>
+    </message>
+    <message>
+        <source>The following files are not checked out yet.
+Do you want to check them out now?</source>
+        <translation>Следующие файлы ещё не были получены.
+Получить их сейчас?</translation>
+    </message>
+</context>
 <context>
     <name>Core::Internal::SaveItemsDialog</name>
     <message>
@@ -5377,6 +5535,10 @@ Would you like to overwrite them?</source>
         <source>Shortcut</source>
         <translation>Сочетание клавиш</translation>
     </message>
+    <message>
+        <source>Type to set shortcut</source>
+        <translation>Задайте сочетание</translation>
+    </message>
     <message>
         <source>Import Keyboard Mapping Scheme</source>
         <translation>Импорт схемы разметки клавиатуры</translation>
@@ -5433,18 +5595,14 @@ Would you like to overwrite them?</source>
         <translation>О Qt Creator</translation>
     </message>
     <message>
-        <source>(%1)</source>
-        <translation></translation>
+        <source>&lt;h3&gt;%1&lt;/h3&gt;%2&lt;br/&gt;&lt;br/&gt;Built on %3 at %4&lt;br /&gt;&lt;br/&gt;%5&lt;br/&gt;Copyright 2008-%6 %7. All rights reserved.&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;</source>
+        <translation>&lt;h3&gt;%1&lt;/h3&gt;%2&lt;br/&gt;&lt;br/&gt;Собран %4 на %3&lt;br/&gt;&lt;br/&gt;%5&lt;br/&gt;© 2008-%6 %7. Все права защищены.&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;</translation>
     </message>
     <message>
         <source>From revision %1&lt;br/&gt;</source>
         <extracomment>This gets conditionally inserted as argument %8 into the description string.</extracomment>
         <translation>Ревизия %1&lt;br/&gt;</translation>
     </message>
-    <message>
-        <source>&lt;h3&gt;Qt Creator %1 %8&lt;/h3&gt;Based on Qt %2 (%3 bit)&lt;br/&gt;&lt;br/&gt;Built on %4 at %5&lt;br /&gt;&lt;br/&gt;%9&lt;br/&gt;Copyright 2008-%6 %7. All rights reserved.&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;</source>
-        <translation>&lt;h3&gt;Qt Creator %1 %8&lt;/h3&gt;Основан на Qt %2 (%3-х битной)&lt;br/&gt;&lt;br/&gt;Собран %4 в %5&lt;br /&gt;&lt;br/&gt;%9&lt;br/&gt;© 2008-%6 %7. Все права защищены.&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;</translation>
-    </message>
 </context>
 <context>
     <name>Core::ModeManager</name>
@@ -5523,8 +5681,35 @@ Would you like to overwrite them?</source>
         <translation>Вставить переменную</translation>
     </message>
 </context>
+<context>
+    <name>Core::VariableManager</name>
+    <message>
+        <source>%1: Full path including file name.</source>
+        <translation>%1: полный путь с именем файла.</translation>
+    </message>
+    <message>
+        <source>%1: Full path excluding file name.</source>
+        <translation>%1: полный путь без имени файла.</translation>
+    </message>
+    <message>
+        <source>%1: File name without path.</source>
+        <translation>%1: имя файла без пути.</translation>
+    </message>
+    <message>
+        <source>%1: File base name without path and suffix.</source>
+        <translation>%1: имя файла без пути и расширения.</translation>
+    </message>
+</context>
 <context>
     <name>Core::VcsManager</name>
+    <message>
+        <source>%1 repository was detected but %1 is not configured.</source>
+        <translation>Обнаружено хранилище %1, но %1 не настроен.</translation>
+    </message>
+    <message>
+        <source>Configure</source>
+        <translation>Настроить</translation>
+    </message>
     <message>
         <source>Version Control</source>
         <translation>Контроль версий</translation>
@@ -5602,6 +5787,18 @@ to version control (%2)
         <source>Add Definition in %1</source>
         <translation>Добавить реализацию в %1</translation>
     </message>
+    <message>
+        <source>Add Definition Here</source>
+        <translation>Добавить сюда реализацию</translation>
+    </message>
+    <message>
+        <source>Add Definition Inside Class</source>
+        <translation>Добавить реализацию внутрь класса</translation>
+    </message>
+    <message>
+        <source>Add Definition Outside Class</source>
+        <translation>Добавить реализацию вне класса</translation>
+    </message>
 </context>
 <context>
     <name>CppEditor::Internal::CPPEditorWidget</name>
@@ -5648,18 +5845,11 @@ to version control (%2)
     </message>
 </context>
 <context>
-    <name>CppEditor::Internal::CppOutlineTreeView</name>
-    <message>
-        <source>Expand All</source>
-        <translation>Развернуть всё</translation>
-    </message>
+    <name>CppEditor::Internal::CppEditorPlugin</name>
     <message>
-        <source>Collapse All</source>
-        <translation>Свернуть всё</translation>
+        <source>C++ Class</source>
+        <translation>Класс C++</translation>
     </message>
-</context>
-<context>
-    <name>CppEditor::Internal::CppPlugin</name>
     <message>
         <source>Creates a C++ header and a source file for a new class that you can add to a C++ project.</source>
         <translation>Создание заголовочного и исходного файлов C++ под новый класс для добавления в проект C++.</translation>
@@ -5668,6 +5858,10 @@ to version control (%2)
         <source>Creates a C++ source file that you can add to a C++ project.</source>
         <translation>Создание исходного файла C++ для добавления в проект C++.</translation>
     </message>
+    <message>
+        <source>C++ Source File</source>
+        <translation>Файл исходных текстов C++</translation>
+    </message>
     <message>
         <source>Creates a C++ header file that you can add to a C++ project.</source>
         <translation>Создание заголовочного файл C++ для добавления в проект C++.</translation>
@@ -5688,25 +5882,37 @@ to version control (%2)
         <source>Open Method Declaration/Definition in Next Split</source>
         <translation>Открыть объявления/определения в следующей панели</translation>
     </message>
+    <message>
+        <source>Meta+E, Shift+F2</source>
+        <translation>Meta+E, Shift+F2</translation>
+    </message>
     <message>
         <source>Ctrl+E, Shift+F2</source>
         <translation>Ctrl+E, Shift+F2</translation>
     </message>
     <message>
-        <source>Rename Symbol Under Cursor</source>
-        <translation>Переименовать символ под курсором</translation>
+        <source>Find Usages</source>
+        <translation>Найти использование</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+U</source>
+        <translation>Ctrl+Shift+U</translation>
     </message>
     <message>
         <source>Open Type Hierarchy</source>
         <translation>Открыть иерархию типов</translation>
     </message>
+    <message>
+        <source>Meta+Shift+T</source>
+        <translation>Meta+Shift+T</translation>
+    </message>
     <message>
         <source>Ctrl+Shift+T</source>
-        <translation></translation>
+        <translation>Ctrl+Shift+T</translation>
     </message>
     <message>
-        <source>Meta+Shift+T</source>
-        <translation>Meta+Shift+T</translation>
+        <source>Rename Symbol Under Cursor</source>
+        <translation>Переименовать символ под курсором</translation>
     </message>
     <message>
         <source>CTRL+SHIFT+R</source>
@@ -5716,21 +5922,16 @@ to version control (%2)
         <source>Update Code Model</source>
         <translation>Обновить модель кода</translation>
     </message>
+</context>
+<context>
+    <name>CppEditor::Internal::CppOutlineTreeView</name>
     <message>
-        <source>C++ Source File</source>
-        <translation>Файл исходных текстов C++</translation>
-    </message>
-    <message>
-        <source>C++ Class</source>
-        <translation>Класс C++</translation>
-    </message>
-    <message>
-        <source>Find Usages</source>
-        <translation>Найти использование</translation>
+        <source>Expand All</source>
+        <translation>Развернуть всё</translation>
     </message>
     <message>
-        <source>Ctrl+Shift+U</source>
-        <translation>Ctrl+Shift+U</translation>
+        <source>Collapse All</source>
+        <translation>Свернуть всё</translation>
     </message>
 </context>
 <context>
@@ -5782,10 +5983,61 @@ to version control (%2)
     </message>
 </context>
 <context>
-    <name>CppEditor::Internal::InsertQtPropertyMembers</name>
+    <name>CppEditor::Internal::InsertVirtualMethodsDialog</name>
     <message>
-        <source>Generate Missing Q_PROPERTY Members...</source>
-        <translation>Создание отсутствующих членов Q_PROPERTY...</translation>
+        <source>Insert Virtual Functions</source>
+        <translation>Вставка виртуальных методов</translation>
+    </message>
+    <message>
+        <source>&amp;Functions to insert:</source>
+        <translation>&amp;Вставляемые методы:</translation>
+    </message>
+    <message>
+        <source>&amp;Hide already implemented functions of current class</source>
+        <translation>&amp;Скрывать уже реализованные методы текущего класса</translation>
+    </message>
+    <message>
+        <source>&amp;Insertion options:</source>
+        <translation>&amp;Параметры вставки:</translation>
+    </message>
+    <message>
+        <source>Insert only declarations</source>
+        <translation>Вставить только объявления</translation>
+    </message>
+    <message>
+        <source>Insert definitions inside class</source>
+        <translation>Вставить реализацию внутри класса</translation>
+    </message>
+    <message>
+        <source>Insert definitions outside class</source>
+        <translation>Вставить реализацию вне класса</translation>
+    </message>
+    <message>
+        <source>Insert definitions in implementation file</source>
+        <translation>Вставить реализацию в файл реализации</translation>
+    </message>
+    <message>
+        <source>&amp;Add keyword &apos;virtual&apos; to function declaration</source>
+        <translation>&amp;Добавлять «virtual» к объявлениям методов</translation>
+    </message>
+</context>
+<context>
+    <name>CppEditor::QuickFix</name>
+    <message>
+        <source>Move Definition Outside Class</source>
+        <translation>Вынести реализацию из класса</translation>
+    </message>
+    <message>
+        <source>Move Definition to %1</source>
+        <translation>Переместить реализацию в %1</translation>
+    </message>
+    <message>
+        <source>Move Definition to Class</source>
+        <translation>Перенести реализацию в класс</translation>
+    </message>
+    <message>
+        <source>Insert Virtual Functions of Base Classes</source>
+        <translation>Вставить виртуальные методы базовых классов</translation>
     </message>
 </context>
 <context>
@@ -5795,6 +6047,13 @@ to version control (%2)
         <translation>%1: Нет такого файла или каталога</translation>
     </message>
 </context>
+<context>
+    <name>CppQmlTypesLoader</name>
+    <message>
+        <source>%1 seems not to be encoded in UTF8 or has a BOM.</source>
+        <translation>Похоже, %1 не в кодировке UTF8 или содержит BOM.</translation>
+    </message>
+</context>
 <context>
     <name>CppTools</name>
     <message>
@@ -6270,6 +6529,14 @@ if (a &amp;&amp;
         <source>Open Corresponding Header/Source in Next Split</source>
         <translation>Открыть заголовочный/исходный файл в следующей панели</translation>
     </message>
+    <message>
+        <source>Meta+E, F4</source>
+        <translation>Meta+E, F4</translation>
+    </message>
+    <message>
+        <source>Ctrl+E, F4</source>
+        <translation>Ctrl+E, F4</translation>
+    </message>
 </context>
 <context>
     <name>CppTools::Internal::SymbolsFindFilter</name>
@@ -6431,6 +6698,10 @@ Flags: %3</source>
         <source>Reformat Pointers or References</source>
         <translation>Переформатировать указатели или ссылки</translation>
     </message>
+    <message>
+        <source>Assign to Local Variable</source>
+        <translation>Назначить локальной переменной</translation>
+    </message>
     <message>
         <source>Convert to Objective-C String Literal</source>
         <translation>Преобразовать в строковый литерал Objective-C</translation>
@@ -6493,6 +6764,13 @@ Flags: %3</source>
         <translation>Хранилище:</translation>
     </message>
 </context>
+<context>
+    <name>Cvs::Internal::CvsControl</name>
+    <message>
+        <source>&amp;Edit</source>
+        <translation>&amp;Изменить</translation>
+    </message>
+</context>
 <context>
     <name>Cvs::Internal::CvsDiffParameterWidget</name>
     <message>
@@ -6964,6 +7242,31 @@ Flags: %3</source>
         <source>Stopped at internal breakpoint %1 in thread %2.</source>
         <translation>Остановлено на внутренней точке останова %1, поток %2.</translation>
     </message>
+    <message>
+        <source>Found.</source>
+        <translation>Найдена.</translation>
+    </message>
+    <message>
+        <source>Not found.</source>
+        <translation>Не найдена.</translation>
+    </message>
+    <message>
+        <source>
+Section %1: %2</source>
+        <translation>
+Секция %1: %2</translation>
+    </message>
+    <message>
+        <source>Warning</source>
+        <translation>Предупреждение</translation>
+    </message>
+    <message>
+        <source>This does not seem to be a &quot;Debug&quot; build.
+Setting breakpoints by file name and line number may fail.
+</source>
+        <translation>Это не похоже на сборку для отладки.
+Установка точек останова по имени файла и строке может не работать.</translation>
+    </message>
     <message>
         <source>Stopped.</source>
         <translation>Остановлено.</translation>
@@ -7123,6 +7426,10 @@ Flags: %3</source>
         <source>Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored.</source>
         <translation>Будут пропущены точки останова, не поддерживаемые доступными отладчику языками.</translation>
     </message>
+    <message>
+        <source>Not enough free ports for QML debugging. </source>
+        <translation>Недостаточно свободных портов для отладки QML.</translation>
+    </message>
     <message>
         <source>Install &amp;Debug Information</source>
         <translation>Установить &amp;отладочную информацию</translation>
@@ -7132,6 +7439,13 @@ Flags: %3</source>
         <translation>Попытка установить отсутствующую информацию для отладки.</translation>
     </message>
 </context>
+<context>
+    <name>Debugger::DebuggerRunConfigurationAspect</name>
+    <message>
+        <source>Debugger settings</source>
+        <translation>Настройки отладчика</translation>
+    </message>
+</context>
 <context>
     <name>Debugger::DebuggerRunControl</name>
     <message>
@@ -7542,6 +7856,14 @@ Flags: %3</source>
         <source>Add Breakpoint...</source>
         <translation>Установить точку останова...</translation>
     </message>
+    <message>
+        <source>Remove All Breakpoints</source>
+        <translation>Удаление всех точек останова</translation>
+    </message>
+    <message>
+        <source>Are you sure you want to remove all breakpoints from all files in the current session?</source>
+        <translation>Желаете удалить все точки останова из всех файлов текущей сессии?</translation>
+    </message>
     <message>
         <source>Add Breakpoint</source>
         <translation>Установить точку останова</translation>
@@ -7879,10 +8201,6 @@ This feature is only available for GDB.</source>
         <source>Use CDB &amp;console</source>
         <translation>Использовать &amp;консоль CDB</translation>
     </message>
-    <message>
-        <source>Breakpoints</source>
-        <translation>Точки останова</translation>
-    </message>
     <message>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Attempt to correct the location of a breakpoint based on file and line number should it be in a comment or in a line for which no code is generated. The correction is based on the code model.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Пытаться исправить положение точки останова, если она установлена на строке файла, для которой код не создаётся (комментарий, например). Коррекция производится согласно модели кода.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
@@ -7891,34 +8209,10 @@ This feature is only available for GDB.</source>
         <source>Correct breakpoint location</source>
         <translation>Исправлять положение точек останова</translation>
     </message>
-    <message>
-        <source>Break on functions:</source>
-        <translation>Останавливаться на функциях:</translation>
-    </message>
     <message>
         <source>This is useful to catch runtime error messages, for example caused by assert().</source>
         <translation>Полезно для отлова сообщений об ошибках создаваемых, например, assert().</translation>
     </message>
-    <message>
-        <source>Symbol paths: %1</source>
-        <translation>Пути к символам: %1</translation>
-    </message>
-    <message>
-        <source>&lt;none&gt;</source>
-        <translation>&lt;нет&gt;</translation>
-    </message>
-    <message>
-        <source>Source paths: %1</source>
-        <translation>Пути к исходникам: %1</translation>
-    </message>
-    <message>
-        <source>Paths</source>
-        <translation>Пути</translation>
-    </message>
-    <message>
-        <source>Edit...</source>
-        <translation>Изменить...</translation>
-    </message>
     <message>
         <source>Various</source>
         <translation>Разное</translation>
@@ -7929,14 +8223,21 @@ This feature is only available for GDB.</source>
     </message>
 </context>
 <context>
-    <name>Debugger::Internal::CdbPathDialog</name>
+    <name>Debugger::Internal::CdbPathsPage</name>
     <message>
-        <source>CDB Symbol Paths</source>
-        <translation>Пути к символам для CDB</translation>
+        <source>CDB Paths</source>
+        <translation>Пути CDB</translation>
+    </message>
+</context>
+<context>
+    <name>Debugger::Internal::CdbPathsPageWidget</name>
+    <message>
+        <source>Symbol Paths</source>
+        <translation>Пути к символам</translation>
     </message>
     <message>
-        <source>CDB Source Paths</source>
-        <translation>Пути к исходникам для CDB</translation>
+        <source>Source Paths</source>
+        <translation>Пути к исходникам</translation>
     </message>
 </context>
 <context>
@@ -7950,16 +8251,12 @@ This feature is only available for GDB.</source>
         <translation>Добавляет сервер символов Microsoft, который предоставляет символы для файлов операционной системы. Требует указания каталога локального кэша.</translation>
     </message>
     <message>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The debugger is not configured to use the public &lt;a href=&quot;%1&quot;&gt;Microsoft Symbol Server&lt;/a&gt;. This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Note:&lt;/i&gt; A fast internet connection is required for this to work smoothly. Also, a delay might occur when connecting for the first time.&lt;/p&gt;&lt;p&gt;Would you like to set it up?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Отладчик не настроен на использование публичного &lt;a href=&quot;%1&quot;&gt;сервера символов Microsoft&lt;/a&gt;. Рекомендуется настроить для получения символов системных библиотек.&lt;/p&gt;&lt;p&gt;Для комфортной работы необходимо быстрое соединение с Internet. Также возможна задержка при первом подключении.&lt;/p&gt;&lt;p&gt;Желаете настроить?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <source>Symbol Server</source>
-        <translation>Сервер символов</translation>
+        <source>Symbol Cache...</source>
+        <translation>Кэш символов...</translation>
     </message>
     <message>
-        <source>Do not ask again</source>
-        <translation>Больше не спрашивать</translation>
+        <source>Uses a directory to cache symbols used by the debugger.</source>
+        <translation>Использует каталог для кэширования символов используемых отладчиком.</translation>
     </message>
 </context>
 <context>
@@ -8004,8 +8301,12 @@ This feature is only available for GDB.</source>
         <translation>Автоматически заполнять представление исходных текстов</translation>
     </message>
     <message>
-        <source>Close temporary buffers on debugger exit</source>
-        <translation>Закрывать временные буфера при завершении отладчика</translation>
+        <source>Close temporary views on debugger exit</source>
+        <translation>Закрывать временные обзоры при завершении отладчика</translation>
+    </message>
+    <message>
+        <source>Stopping and stepping in the debugger will automatically open source or disassembler views associated with the current location. Select this option to automatically close them when the debugger exits.</source>
+        <translation>Остановка и пошаговая отладка автоматически открывают обзор исходников или дизассемблера соответствующий текущему положению. Включение этого параметра приведёт к их автоматическому закрытию при завершении отладки.</translation>
     </message>
     <message>
         <source>Switch to previous mode on debugger exit</source>
@@ -8039,6 +8340,14 @@ This feature is only available for GDB.</source>
         <source>Use Qt Creator for post-mortem debugging</source>
         <translation>Назначить Qt Creator системным отладчиком</translation>
     </message>
+    <message>
+        <source>Warn when debugging &quot;Release&quot; builds</source>
+        <translation>Предупреждать при отладке «выпускаемых» сборок</translation>
+    </message>
+    <message>
+        <source>Show a warning when starting the debugger on a binary with insufficient debug information.</source>
+        <translation>Показывать предупреждение при запуске отладчика на программе без отладочной информации.</translation>
+    </message>
     <message>
         <source>Maximum stack depth:</source>
         <translation>Максимальная глубина стека:</translation>
@@ -8765,7 +9074,7 @@ Qt Creator не может подключиться к нему.</translation>
     <name>Debugger::Internal::DebuggerSourcePathMappingWidget</name>
     <message>
         <source>&lt;new source&gt;</source>
-        <translation>&lt;исходный путь&gt;</translation>
+        <translation>&lt;новый путь к исходникам&gt;</translation>
     </message>
     <message>
         <source>&lt;new target&gt;</source>
@@ -8773,7 +9082,7 @@ Qt Creator не может подключиться к нему.</translation>
     </message>
     <message>
         <source>Source path</source>
-        <translation>Исходный путь</translation>
+        <translation>Путь к исходникам</translation>
     </message>
     <message>
         <source>Target path</source>
@@ -8809,7 +9118,7 @@ Qt Creator не может подключиться к нему.</translation>
     </message>
     <message>
         <source>&amp;Source path:</source>
-        <translation>&amp;Исходный путь:</translation>
+        <translation>Путь к &amp;исходникам:</translation>
     </message>
     <message>
         <source>The actual location of the source tree on the local machine</source>
@@ -8817,7 +9126,7 @@ Qt Creator не может подключиться к нему.</translation>
     </message>
     <message>
         <source>&amp;Target path:</source>
-        <translation>Путь &amp;назначения:</translation>
+        <translation>Путь к &amp;программе:</translation>
     </message>
     <message>
         <source>Qt Sources</source>
@@ -8962,15 +9271,15 @@ Qt Creator не может подключиться к нему.</translation>
     </message>
     <message>
         <source>An error occurred when attempting to write to the gdb process. For example, the process may not be running, or it may have closed its input channel.</source>
-        <translation>Ошибка при отправке данных процессу gdb. Например, процесс может уже не работать или он мог закрыть свой входной канал.</translation>
+        <translation>Ошибка при отправке данных процессу gdb. Например, процесс уже перестал работать или закрыл свой входной канал.</translation>
     </message>
     <message>
         <source>An error occurred when attempting to read from the gdb process. For example, the process may not be running.</source>
-        <translation>Ошибка при получении данных от процесса gdb. Например, процесс может уже не работать.</translation>
+        <translation>Ошибка при получении данных от процесса gdb. Например, процесс уже перестал работать.</translation>
     </message>
     <message>
         <source>An unknown error in the gdb process occurred. </source>
-        <translation>У процесса gdb возникла неизвестная ошибка. </translation>
+        <translation>У процесса gdb возникла неопознанная ошибка. </translation>
     </message>
     <message>
         <source>Library %1 unloaded</source>
@@ -9038,31 +9347,6 @@ Try: %2</source>
         <source>Application exited normally</source>
         <translation>Приложение завершилось успешно</translation>
     </message>
-    <message>
-        <source>This does not seem to be a &quot;Debug&quot; build.
-Setting breakpoints by file name and line number may fail.
-</source>
-        <translation>Это не выглядит, как отладочная сборка.
-Установка точек останова по имени файла и строке может не работать.</translation>
-    </message>
-    <message>
-        <source>Found.</source>
-        <translation>Найдена.</translation>
-    </message>
-    <message>
-        <source>Not Found.</source>
-        <translation>Не найдена.</translation>
-    </message>
-    <message>
-        <source>
-Section %1: %2</source>
-        <translation>
-Секция %1: %2</translation>
-    </message>
-    <message>
-        <source>Warning</source>
-        <translation>Предупреждение</translation>
-    </message>
     <message>
         <source>The gdb process could not be stopped:
 %1</source>
@@ -9457,12 +9741,20 @@ markers in the source code editor.</source>
         <translation>Загружать файл .gdbinit при запуске</translation>
     </message>
     <message>
-        <source>Warn when debugging &quot;Release&quot; builds</source>
-        <translation>Предупреждать при отладке «выпускаемых» сборок</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Attempts to identify missing debug info packages and lists them in the Issues output pane.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature needs special support from the Linux distribution and GDB build and is not available everywhere.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Qt Creator пытается определить пакеты с отсутствующей отладочной информацией и отобразить в окне проблем.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Внимание:&lt;/b&gt;Эта особенность требует специальной поддержки со стороны дистрибутива Linux и сборки GDB, поэтому она не везде доступна.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <source>Show a warning when starting the debugger on a binary with insufficient debug information.</source>
-        <translation>Показывать предупреждение при запуске отладчика на программе без отладочной информации.</translation>
+        <source>&lt;p&gt;To execute simple Python commands, prefix them with &quot;python&quot;.&lt;/p&gt;&lt;p&gt;To execute sequences of Python commands spanning multiple lines prepend the block with &quot;python&quot; on a separate line, and append &quot;end&quot; on a separate line.&lt;/p&gt;&lt;p&gt;To execute arbitrary Python scripts, use &lt;i&gt;python execfile(&apos;/path/to/script.py&apos;)&lt;/i&gt;.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Для выполнения простой команды Python достаточно указать перед ней слово «python».&lt;/p&gt;&lt;p&gt;Для блока, размещённого на нескольких строках, необходимо поставить слова «python» и «end» на отдельных строках, соответственно, в начале и конце.&lt;/p&gt;&lt;p&gt;Для запуска сценария Python следует написать: &lt;i&gt;python execfile(&apos;/path/to/script.py&apos;)&lt;/i&gt;.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>Debugging Helper Customization</source>
+        <translation>Настройка помощников отладчика</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;GDB commands entered here will be executed after Qt Creator&apos;s debugging helpers have been loaded and fully initialized. You can load additional debugging helpers or modify existing ones here.&lt;/p&gt;%1&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Введённые здесь команды будут выполняться при запуске GDB после загрузки и полной инициализации помощников отладчика. Здесь вы можете указать загрузку дополнительных помощников или изменить существующие.&lt;/p&gt;%1&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
         <source>The options below should be used with care.</source>
@@ -9480,10 +9772,6 @@ markers in the source code editor.</source>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enable stepping backwards.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Включение обратной отладки.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Внимание!&lt;/b&gt; Эта функция очень медлительна и нестабильна со стороны GDB. Она может привести к непредсказуемому поведению при обратном проходе через системный вызов и краху отладочной сессии.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</translation>
     </message>
-    <message>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;GDB commands entered here will be executed after GDB has been started and the debugging helpers have been initialized.&lt;/p&gt;&lt;p&gt;You can add commands to load further debugging helpers here, or modify existing ones.&lt;/p&gt;&lt;p&gt;To execute simple Python commands, prefix them with &quot;python&quot;.&lt;/p&gt;&lt;p&gt;To execute sequences of Python commands spanning multiple lines prepend the block with &quot;python&quot; on a separate line, and append &quot;end&quot; on a separate line.&lt;/p&gt;&lt;p&gt;To execute arbitrary Python scripts, use &lt;i&gt;python execfile(&apos;/path/to/script.py&apos;)&lt;/i&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Введённые здесь команды будут выполняться при запуске GDB сразу после инициализации помощников отладчика.&lt;/p&gt;&lt;p&gt;Можно добавить команды для загрузки дополнительных помощников или изменить существующие.&lt;/p&gt;&lt;p&gt;Для выполнения простых команд Python, достаточно добавить перед ними слово «python».&lt;/p&gt;&lt;p&gt;Для выполнения последовательности команд Python, необходимо  разделить их по разным строкам, при этом первая строка должна содержать только «python», а последняя ― «end».&lt;/p&gt;&lt;p&gt;Для запуска сценариев Python используйте &lt;i&gt;python execfile(&apos;/путь/к/script.py&apos;)&lt;/i&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
     <message>
         <source>Additional Attach Commands</source>
         <translation>Команды при подключении</translation>
@@ -9517,6 +9805,27 @@ receives a signal like SIGSEGV during debugging.</source>
         <translation>Позволяет или запрещает загрузку файла
 «.gdbinit» при старте отладчика.</translation>
     </message>
+    <message>
+        <source>Load system GDB pretty printers</source>
+        <translation>Загружать системные фильтры GDB</translation>
+    </message>
+    <message>
+        <source>Uses the default GDB pretty printers installed in your system or linked to the libraries your application uses.
+</source>
+        <translation>Использовать фильтры GDB, установленные в системе или встроенные в библиотеки, используемые приложением.</translation>
+    </message>
+    <message>
+        <source>Create tasks from missing packages</source>
+        <translation>Создавать задачи из отсутствующих пакетов</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;GDB commands entered here will be executed after GDB has been started, but before the debugged program is started or attached, and before the debugging helpers are initialized.&lt;/p&gt;%1&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Введённые здесь команды будут выполняться при запуске GDB, но до подключения или запуска отлаживаемой программы и инициализации помощников отладчика.&lt;/p&gt;%1&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>Extended</source>
+        <translation>Расширенные</translation>
+    </message>
     <message>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;The options below give access to advanced or experimental functions of GDB. Enabling them may negatively impact your debugging experience.&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Настройки ниже позволяют получить доступ к продвинутым и экспериментальными функциям GDB. Их включение может негативно сказаться на качестве отладки.&lt;/body&gt;&lt;/html&gt;</translation>
@@ -9562,6 +9871,13 @@ receives a signal like SIGSEGV during debugging.</source>
         <translation></translation>
     </message>
 </context>
+<context>
+    <name>Debugger::Internal::GdbOptionsPage2</name>
+    <message>
+        <source>GDB Extended</source>
+        <translation type="unfinished">GDB, расширенные</translation>
+    </message>
+</context>
 <context>
     <name>Debugger::Internal::GdbRemoteServerEngine</name>
     <message>
@@ -9683,6 +9999,65 @@ receives a signal like SIGSEGV during debugging.</source>
         <translation>Нажмите Ctrl-&lt;Ввод&gt; для выполнения строки.</translation>
     </message>
 </context>
+<context>
+    <name>Debugger::Internal::LldbEngine</name>
+    <message>
+        <source>Unable to start lldb &apos;%1&apos;: %2</source>
+        <translation>Не удалось запустить lldb «%1»: %2</translation>
+    </message>
+    <message>
+        <source>Adapter start failed.</source>
+        <translation>Не удалось запустить адаптер.</translation>
+    </message>
+    <message>
+        <source>Running requested...</source>
+        <translation>Потребован запуск...</translation>
+    </message>
+    <message>
+        <source>Interrupt requested...</source>
+        <translation>Потребовано прерывание...</translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos; contains no identifier.</source>
+        <translation>«%1» не содержит идентификатора.</translation>
+    </message>
+    <message>
+        <source>String literal %1</source>
+        <translation>Строковый литерал %1</translation>
+    </message>
+    <message>
+        <source>Cowardly refusing to evaluate expression &apos;%1&apos; with potential side effects.</source>
+        <translation>Робкий отказ вычислить выражение «%1» с возможными побочными эффектами.</translation>
+    </message>
+    <message>
+        <source>Lldb I/O Error</source>
+        <translation>Ошибка ввода/вывода Lldb</translation>
+    </message>
+    <message>
+        <source>The Lldb process failed to start. Either the invoked program &apos;%1&apos; is missing, or you may have insufficient permissions to invoke the program.</source>
+        <translation>Не удалось запустить процесс Lldb. Либо программа «%1» отсутствует, либо недостаточно прав для её запуска.</translation>
+    </message>
+    <message>
+        <source>The Lldb process crashed some time after starting successfully.</source>
+        <translation>Процесс Lldb завершился крахом через некоторое время после успешного старта.</translation>
+    </message>
+    <message>
+        <source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source>
+        <translation>У последней функции waitFor...() истекло время ожидания. Состояние QProcess не изменилось, и вы можете попробовать вызвать waitFor...() снова.</translation>
+    </message>
+    <message>
+        <source>An error occurred when attempting to write to the Lldb process. For example, the process may not be running, or it may have closed its input channel.</source>
+        <translation>Ошибка при отправке данных процессу Lldb. Например, процесс уже перестал работать или закрыл свой входной канал.</translation>
+    </message>
+    <message>
+        <source>An error occurred when attempting to read from the Lldb process. For example, the process may not be running.</source>
+        <translation>Ошибка при получении данных от процесса Lldb. Например, процесс уже перестал работать.</translation>
+    </message>
+    <message>
+        <source>An unknown error in the Lldb process occurred. </source>
+        <translation>У процесса Lldb возникла неопознанная ошибка. </translation>
+    </message>
+</context>
 <context>
     <name>Debugger::Internal::LldbEngineHost</name>
     <message>
@@ -9982,15 +10357,15 @@ Stepping into the module or setting breakpoints by file and is expected to work.
     </message>
     <message>
         <source>An error occurred when attempting to write to the Pdb process. For example, the process may not be running, or it may have closed its input channel.</source>
-        <translation>Ошибка при отправке данных процессу Pdb. Например, процесс может уже не работать или он мог закрыть свой входной канал.</translation>
+        <translation>Ошибка при отправке данных процессу Pdb. Например, процесс уже перестал работать или закрыл свой входной канал.</translation>
     </message>
     <message>
         <source>An error occurred when attempting to read from the Pdb process. For example, the process may not be running.</source>
-        <translation>Ошибка при получении данных от процесса Pdb. Например, процесс может уже не работать.</translation>
+        <translation>Ошибка при получении данных от процесса Pdb. Например, процесс уже перестал работать.</translation>
     </message>
     <message>
         <source>An unknown error in the Pdb process occurred. </source>
-        <translation>У процесса Pdb возникла неизвестная ошибка. </translation>
+        <translation>У процесса Pdb возникла неопознанная ошибка. </translation>
     </message>
 </context>
 <context>
@@ -10111,6 +10486,10 @@ Do you want to retry?</source>
         <source>Application startup failed: %1</source>
         <translation>Запуск приложения не удался: %1</translation>
     </message>
+    <message>
+        <source>QML debugging port not set: Unable to convert %1 to unsigned int.</source>
+        <translation>Порт отладки QML не задан: невозможно преобразовать %1 к unsigned int.</translation>
+    </message>
     <message>
         <source>Run to line %1 (%2) requested...</source>
         <translation>Потребовано выполнение до строки %1 (%2)...</translation>
@@ -10626,6 +11005,29 @@ Do you want to retry?</source>
         <translation>Путь к п&amp;рограмме:</translation>
     </message>
 </context>
+<context>
+    <name>Debugger::Internal::SymbolPathsDialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation>Диалог</translation>
+    </message>
+    <message>
+        <source>Use Local Symbol Cache</source>
+        <translation>Использовать локальный кэш символов</translation>
+    </message>
+    <message>
+        <source>Use Microsoft Symbol Server</source>
+        <translation>Использовать сервер символов Microsoft</translation>
+    </message>
+    <message>
+        <source>Do not ask again</source>
+        <translation>Больше не спрашивать</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The debugger is not configured to use the public Microsoft Symbol Server.&lt;br/&gt;This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Note:&lt;/span&gt; It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.&lt;br/&gt;A fast internet connection is required for this to work smoothly,&lt;br/&gt;and a delay might occur when connecting for the first time and caching the symbols.&lt;/p&gt;&lt;p&gt;What would you like to set up?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Отладчик не настроен на использование публичного сервера символов Microsoft.&lt;br&gt;Рекомендуется его настроить для получения символов системных библиотек.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Внимание:&lt;/span&gt; Рекомендуется сервер символов Microsoft использовать совместно с локальным кэшем.&lt;br&gt;Также для комфортной работы необходимо быстрое соединение с Интернет, при этом возможна задержка при первом подключении для кэширования символов.&lt;/p&gt;&lt;p&gt;Желаете настроить?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
 <context>
     <name>Debugger::Internal::ThreadsHandler</name>
     <message>
@@ -10767,8 +11169,8 @@ Do you want to retry?</source>
         <translation>Адрес объекта</translation>
     </message>
     <message>
-        <source>Referencing Address</source>
-        <translation>Соответствующий адрес</translation>
+        <source>Pointer Address</source>
+        <translation>Адрес указателя</translation>
     </message>
     <message>
         <source>Static Object Size</source>
@@ -10909,6 +11311,14 @@ Do you want to retry?</source>
         <source>UCS4 string</source>
         <translation>Строка в кодировке UCS4</translation>
     </message>
+    <message>
+        <source>Array of 10 items</source>
+        <translation>Массив из 10 элементов</translation>
+    </message>
+    <message>
+        <source>Array of 1000 items</source>
+        <translation>Массив из 1000 элементов</translation>
+    </message>
     <message>
         <source>Decimal</source>
         <translation>Десятичный</translation>
@@ -10943,12 +11353,12 @@ Do you want to retry?</source>
         <translation>Регистр &lt;i&gt;%1&lt;/i&gt;</translation>
     </message>
     <message>
-        <source>Memory Referenced by Pointer &quot;%1&quot; (0x%2)</source>
-        <translation>Память соответствующая указателю «%1» (0x%2)</translation>
+        <source>Memory at Pointer&apos;s Address &quot;%1&quot; (0x%2)</source>
+        <translation>Память по адресу указателя «%1» (0x%2)</translation>
     </message>
     <message>
-        <source>Memory at Variable &quot;%1&quot; (0x%2)</source>
-        <translation>Память переменной «%1» (0x%2)</translation>
+        <source>Memory at Object&apos;s Address &quot;%1&quot; (0x%2)</source>
+        <translation>Память на адрес объекта «%1» (0x%2)</translation>
     </message>
     <message>
         <source>Cannot Display Stack Layout</source>
@@ -11035,8 +11445,24 @@ Do you want to retry?</source>
         <translation>Добавить контрольную точку на адрес объекта (0x%1)</translation>
     </message>
     <message>
-        <source>Add Data Breakpoint at Referenced Address (0x%1)</source>
-        <translation>Добавить контрольную точку по косвенному адресу (0x%1)</translation>
+        <source>Add Data Breakpoint at Pointer&apos;s Address (0x%1)</source>
+        <translation>Добавить контрольную точку по адресу указателя (0x%1)</translation>
+    </message>
+    <message>
+        <source>Open Memory Editor at Pointer&apos;s Address (0x%1)</source>
+        <translation>Открыть редактор памяти по адресу указателя (0x%1)</translation>
+    </message>
+    <message>
+        <source>Open Memory View at Pointer&apos;s Address (0x%1)</source>
+        <translation>Открыть обозреватель памяти по адресу указателя (0x%1)</translation>
+    </message>
+    <message>
+        <source>Open Memory Editor at Pointer&apos;s Address</source>
+        <translation>Открыть редактор памяти по адресу указателя</translation>
+    </message>
+    <message>
+        <source>Open Memory View at Pointer&apos;s Address</source>
+        <translation>Открыть обозреватель памяти по адресу указателя</translation>
     </message>
     <message>
         <source>Add Data Breakpoint</source>
@@ -11076,35 +11502,19 @@ Do you want to retry?</source>
     </message>
     <message>
         <source>Open Memory Editor at Object&apos;s Address (0x%1)</source>
-        <translation>Открыть редактор памяти по адресу объекта (0x%1)</translation>
+        <translation>Открыть редактор памяти на адрес объекта (0x%1)</translation>
     </message>
     <message>
         <source>Open Memory View at Object&apos;s Address (0x%1)</source>
-        <translation>Открыть обозреватель памяти по адресу объекта (0x%1)</translation>
+        <translation>Открыть обозреватель памяти на адрес объекта (0x%1)</translation>
     </message>
     <message>
         <source>Open Memory Editor at Object&apos;s Address</source>
-        <translation>Открыть редактор памяти по адресу объекта</translation>
+        <translation>Открыть редактор памяти на адрес объекта</translation>
     </message>
     <message>
         <source>Open Memory View at Object&apos;s Address</source>
-        <translation>Открыть обозреватель памяти по адресу объекта</translation>
-    </message>
-    <message>
-        <source>Open Memory Editor at Referenced Address (0x%1)</source>
-        <translation>Открыть редактор памяти по косвенному адресу (0x%1)</translation>
-    </message>
-    <message>
-        <source>Open Memory View at Referenced Address (0x%1)</source>
-        <translation>Открыть обозреватель памяти по соответствующему адресу (0x%1)</translation>
-    </message>
-    <message>
-        <source>Open Memory Editor at Referenced Address</source>
-        <translation>Открыть редактор памяти по соответствующему адресу</translation>
-    </message>
-    <message>
-        <source>Open Memory View at Referenced Address</source>
-        <translation>Открыть обозреватель памяти по соответствующему адресу</translation>
+        <translation>Открыть обозреватель памяти на адрес объекта</translation>
     </message>
     <message>
         <source>Open Memory Editor Showing Stack Layout</source>
@@ -11155,10 +11565,6 @@ Do you want to retry?</source>
 </context>
 <context>
     <name>DebuggerPlugin</name>
-    <message>
-        <source>Debug</source>
-        <translation>Отладка</translation>
-    </message>
     <message>
         <source>Unable to create a debugger engine of the type &apos;%1&apos;</source>
         <translation>Не удалось создать отладчик типа «%1»</translation>
@@ -11399,10 +11805,6 @@ Rebuilding the project might help.</source>
         <source>Alt+Shift+R</source>
         <translation></translation>
     </message>
-    <message>
-        <source>About Qt Designer plugins...</source>
-        <translation>О модулях Qt Designer...</translation>
-    </message>
     <message>
         <source>Signals &amp;&amp; Slots Editor</source>
         <translation>Редактор сигналов и слотов</translation>
@@ -11439,6 +11841,10 @@ Rebuilding the project might help.</source>
         <source>Shift+F4</source>
         <translation></translation>
     </message>
+    <message>
+        <source>About Qt Designer Plugins...</source>
+        <translation>О модулях Qt Designer...</translation>
+    </message>
     <message>
         <source>Preview in</source>
         <translation>Предпросмотр в</translation>
@@ -11509,10 +11915,18 @@ Rebuilding the project might help.</source>
     </message>
 </context>
 <context>
-    <name>DeviceProcessesDialog</name>
+    <name>Diff</name>
     <message>
-        <source>&amp;Attach to Process</source>
-        <translation>&amp;Подключиться к процессу</translation>
+        <source>Delete</source>
+        <translation>Удалено</translation>
+    </message>
+    <message>
+        <source>Insert</source>
+        <translation>Вставлено</translation>
+    </message>
+    <message>
+        <source>Equal</source>
+        <translation>Равно</translation>
     </message>
 </context>
 <context>
@@ -11522,8 +11936,50 @@ Rebuilding the project might help.</source>
         <translation>Редактор изменений</translation>
     </message>
 </context>
+<context>
+    <name>DiffEditor::DiffEditor</name>
+    <message>
+        <source>Ignore Whitespace</source>
+        <translation>Пропускать пробелы</translation>
+    </message>
+    <message>
+        <source>Context Lines:</source>
+        <translation>Контекстные строки:</translation>
+    </message>
+    <message>
+        <source>Synchronize Horizontal Scroll Bars</source>
+        <translation>Согласовать горизонтальные полосы прокрутки</translation>
+    </message>
+    <message>
+        <source>[%1] vs. [%2] %3</source>
+        <translation type="unfinished">[%1] против [%2] %3</translation>
+    </message>
+    <message>
+        <source>%1 vs. %2</source>
+        <translation type="unfinished">%1 против %2</translation>
+    </message>
+    <message>
+        <source>[%1] %2 vs. [%3] %4</source>
+        <translation type="unfinished">[%1] %2 против [%3] %4</translation>
+    </message>
+</context>
+<context>
+    <name>DiffEditor::DiffShowEditor</name>
+    <message>
+        <source>Hide Change Description</source>
+        <translation>Скрыть описание изменения</translation>
+    </message>
+    <message>
+        <source>Show Change Description</source>
+        <translation>Показать описание изменения</translation>
+    </message>
+</context>
 <context>
     <name>DiffEditor::DiffViewEditorWidget</name>
+    <message>
+        <source>No difference</source>
+        <translation>Различий нет</translation>
+    </message>
     <message numerus="yes">
         <source>Skipped %n lines...</source>
         <translation>
@@ -11532,16 +11988,9 @@ Rebuilding the project might help.</source>
             <numerusform>Пропущено %n строк...</numerusform>
         </translation>
     </message>
-</context>
-<context>
-    <name>DiffEditor::Internal::DiffEditorEditable</name>
-    <message>
-        <source>Ignore Whitespaces</source>
-        <translation>Пропускать пробелы</translation>
-    </message>
     <message>
-        <source>Context Lines:</source>
-        <translation>Контекстные строки:</translation>
+        <source>[%1] %2</source>
+        <translation>[%1] %2</translation>
     </message>
 </context>
 <context>
@@ -11657,6 +12106,10 @@ Rebuilding the project might help.</source>
         <source>Split Side by Side</source>
         <translation>Разделить вертикально</translation>
     </message>
+    <message>
+        <source>Open in New Window</source>
+        <translation>Открыть в новом окне</translation>
+    </message>
     <message>
         <source>Close Document</source>
         <translation>Закрыть документ</translation>
@@ -11948,6 +12401,10 @@ Reason: %3</source>
         <source>Read .vimrc</source>
         <translation>Загрузить .vimrc</translation>
     </message>
+    <message>
+        <source>Path to .vimrc</source>
+        <translation>Путь к .vimrc</translation>
+    </message>
 </context>
 <context>
     <name>FakeVim::Internal::FakeVimExCommandsPage</name>
@@ -12137,12 +12594,12 @@ Reason: %3</source>
         <translation>FakeVim</translation>
     </message>
     <message>
-        <source>Use FakeVim</source>
-        <translation>Использовать FakeVim</translation>
+        <source>Default: %1</source>
+        <translation>По умолчанию: %1</translation>
     </message>
     <message>
-        <source>Read .vimrc</source>
-        <translation>Загрузить .vimrc</translation>
+        <source>Use FakeVim</source>
+        <translation>Использовать FakeVim</translation>
     </message>
     <message>
         <source>Vim Behavior</source>
@@ -12194,7 +12651,7 @@ Reason: %3</source>
     </message>
     <message>
         <source>Shift width:</source>
-        <translation>Ширина смещения:</translation>
+        <translation>Ширина сдвига:</translation>
     </message>
     <message>
         <source>Vim tabstop option</source>
@@ -12236,6 +12693,34 @@ Reason: %3</source>
         <source>Show partial command</source>
         <translation>Показывать неполные команды</translation>
     </message>
+    <message>
+        <source>Use ignorecase</source>
+        <translation>Использовать регистронезависимый поиск (ic)</translation>
+    </message>
+    <message>
+        <source>Let Qt Creator handle some key presses in insert mode so that code can be properly completed and expanded.</source>
+        <translation>Позволяет Qt Creator обрабатывать некоторые нажатия клавиш в режиме вставки, что позволяет корректно завершать и дополнять код.</translation>
+    </message>
+    <message>
+        <source>Pass keys in insert mode</source>
+        <translation>Пропускать клавиши при вставке</translation>
+    </message>
+    <message>
+        <source>Scroll offset:</source>
+        <translation>Отступ прокрутки:</translation>
+    </message>
+    <message>
+        <source>Keep empty to use the default path, i.e. %USERPROFILE%\_vimrc on Windows, ~/.vimrc otherwise.</source>
+        <translation>Оставьте пустым, чтобы использовать путь по умолчанию (%USERPROFILE%\_vimrc в Windows или ~/.vimrc в остальных ОС).</translation>
+    </message>
+    <message>
+        <source>Browse...</source>
+        <translation>Обзор...</translation>
+    </message>
+    <message>
+        <source>Read .vimrc from location:</source>
+        <translation>Размещение .vimrc:</translation>
+    </message>
 </context>
 <context>
     <name>FakeVim::Internal::FakeVimPluginPrivate</name>
@@ -12758,6 +13243,10 @@ Reason: %3</source>
         <source>Hide files matching:</source>
         <translation>Скрыть файлы соответствующие:</translation>
     </message>
+    <message>
+        <source>Show files matching:</source>
+        <translation>Показывать совпадения файлов:</translation>
+    </message>
     <message>
         <source>Apply Filter</source>
         <translation>Применить фильтр</translation>
@@ -12888,8 +13377,8 @@ Reason: %3</source>
 <context>
     <name>GenericProjectManager::Internal::Manager</name>
     <message>
-        <source>Failed opening project &apos;%1&apos;: Project already open</source>
-        <translation>Не удалось открыть проект «%1»: проект уже открыт</translation>
+        <source>Failed opening project &apos;%1&apos;: Project is not a file</source>
+        <translation>Не удалось открыть проект «%1»: проект не является файлом</translation>
     </message>
 </context>
 <context>
@@ -12902,6 +13391,10 @@ Reason: %3</source>
         <source>Hide files matching:</source>
         <translation>Скрыть файлы соответствующие:</translation>
     </message>
+    <message>
+        <source>Show files matching:</source>
+        <translation>Показывать совпадения файлов:</translation>
+    </message>
     <message>
         <source>Apply Filter</source>
         <translation>Применить фильтр</translation>
@@ -12972,18 +13465,6 @@ These files are preserved.</source>
         <source>Error running %1: %2</source>
         <translation>Ошибка выполнения %1: %2</translation>
     </message>
-    <message>
-        <source>Error writing to temporary file.</source>
-        <translation>Ошибка записи во временный файл.</translation>
-    </message>
-    <message>
-        <source>Writing %1...</source>
-        <translation>Запись %1...</translation>
-    </message>
-    <message>
-        <source>Cherry-picking %1...</source>
-        <translation>Избирательное внесение изменений %1...</translation>
-    </message>
 </context>
 <context>
     <name>Gerrit::Internal::GerritDialog</name>
@@ -13008,20 +13489,36 @@ These files are preserved.</source>
         <translation>Подробнее</translation>
     </message>
     <message>
-        <source>Diff...</source>
-        <translation>Сравнить...</translation>
+        <source>&amp;Refresh</source>
+        <translation>&amp;Обновить</translation>
     </message>
     <message>
-        <source>Apply...</source>
-        <translation>Применить...</translation>
+        <source>&amp;Show...</source>
+        <translation>&amp;Показать...</translation>
     </message>
     <message>
-        <source>Checkout...</source>
-        <translation>Сменить ветку...</translation>
+        <source>Cherry &amp;Pick...</source>
+        <translation>Перенести &amp;изменения...</translation>
     </message>
     <message>
-        <source>Refresh</source>
-        <translation>Обновить</translation>
+        <source>&amp;Checkout...</source>
+        <translation>&amp;Перейти...</translation>
+    </message>
+    <message>
+        <source>&amp;Show</source>
+        <translation>&amp;Показать</translation>
+    </message>
+    <message>
+        <source>Cherry &amp;Pick</source>
+        <translation>Перенести &amp;изменения</translation>
+    </message>
+    <message>
+        <source>&amp;Checkout</source>
+        <translation>&amp;Перейти</translation>
+    </message>
+    <message>
+        <source>Apply in: </source>
+        <translation>Применить в: </translation>
     </message>
     <message>
         <source>Fetching &quot;%1&quot;...</source>
@@ -13084,6 +13581,10 @@ These files are preserved.</source>
         <source>HTTPS</source>
         <translation>HTTPS</translation>
     </message>
+    <message>
+        <source>Always prompt for repository folder</source>
+        <translation>Всегда спрашивать каталог хранилища</translation>
+    </message>
     <message>
         <source>&amp;Host:</source>
         <translation>&amp;Сервер:</translation>
@@ -13096,6 +13597,24 @@ These files are preserved.</source>
         <source>&amp;ssh:</source>
         <translation>&amp;ssh: </translation>
     </message>
+    <message>
+        <source>&amp;Repository:</source>
+        <translation>&amp;Хранилище:</translation>
+    </message>
+    <message>
+        <source>Default repository where patches will be applied.</source>
+        <translation>По умолчанию заплатки будут применяться к этому хранилищу.</translation>
+    </message>
+    <message>
+        <source>Pr&amp;ompt:</source>
+        <translation>С&amp;прашивать путь:</translation>
+    </message>
+    <message>
+        <source>If checked, user will always be
+asked to confirm the repository path.</source>
+        <translation>Если включено, то пользователь должен будет
+всегда подтверждать каталог хранилища.</translation>
+    </message>
     <message>
         <source>&amp;Port:</source>
         <translation>&amp;Порт:</translation>
@@ -13119,15 +13638,104 @@ These files are preserved.</source>
         <source>Gerrit...</source>
         <translation>Gerrit...</translation>
     </message>
+    <message>
+        <source>Push to Gerrit...</source>
+        <translation>Отправить в Gerrit...</translation>
+    </message>
+    <message>
+        <source>Initialization Failed</source>
+        <translation>Не удалось инициализировать</translation>
+    </message>
+    <message>
+        <source>Failed to initialize dialog. Aborting.</source>
+        <translation>Не удалось инициализировать диалог. Прервано.</translation>
+    </message>
     <message>
         <source>Git is not available.</source>
         <translation>Git не доступен.</translation>
     </message>
+    <message>
+        <source>Remote Not Verified</source>
+        <translation>Внешнее хранилище не проверено</translation>
+    </message>
+    <message>
+        <source>Change host %1
+and project %2
+
+were not verified among remotes in %3. Select different folder?</source>
+        <translation>Сервер изменений %1
+и проект %2
+
+не прошли проверку подлинности для хранилищ в %3. Выбрать другой каталог?</translation>
+    </message>
     <message>
         <source>Enter Local Repository for &apos;%1&apos; (%2)</source>
         <translation>Ввод локального хранилища для «%1» (%2)</translation>
     </message>
 </context>
+<context>
+    <name>Gerrit::Internal::GerritPushDialog</name>
+    <message>
+        <source>Push to Gerrit</source>
+        <translation>Отправка в Gerrit</translation>
+    </message>
+    <message>
+        <source>&lt;b&gt;Local repository:&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Локальное хранилище:&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <source>Destination:</source>
+        <translation>Назначение:</translation>
+    </message>
+    <message>
+        <source>R&amp;emote:</source>
+        <translation>С&amp;ервер:</translation>
+    </message>
+    <message>
+        <source>&amp;Branch:</source>
+        <translation>&amp;Ветка:</translation>
+    </message>
+    <message>
+        <source>&amp;Topic:</source>
+        <translation>&amp;Тема:</translation>
+    </message>
+    <message>
+        <source>&amp;Draft</source>
+        <translation>&amp;Черновик</translation>
+    </message>
+    <message>
+        <source>Number of commits</source>
+        <translation>Число фиксаций</translation>
+    </message>
+    <message>
+        <source>&amp;Push up to commit:</source>
+        <translation>От&amp;править до фиксации:</translation>
+    </message>
+    <message>
+        <source>Pushes the selected commit and all dependent commits.</source>
+        <translation>Будут отправлены выбранная фиксация и все её зависимости.</translation>
+    </message>
+    <message>
+        <source>&amp;Reviewers:</source>
+        <translation>&amp;Рецензенты:</translation>
+    </message>
+    <message>
+        <source>Comma-separated list of reviewers.
+
+Partial names can be used if they are unambiguous.</source>
+        <translation>Список рецензентов, разделённый запятыми.
+
+Можно использовать неполные имена, если они однозначны.</translation>
+    </message>
+    <message>
+        <source>&lt;b&gt;Local repository:&lt;/b&gt; %1</source>
+        <translation>&lt;b&gt;Локальное хранилище:&lt;/b&gt; %1</translation>
+    </message>
+    <message>
+        <source>Number of commits between HEAD and %1: %2</source>
+        <translation>Число фиксаций между HEAD и %1: %2</translation>
+    </message>
+</context>
 <context>
     <name>Gerrit::Internal::QueryContext</name>
     <message>
@@ -13203,10 +13811,6 @@ Would you like to terminate it?</source>
 </context>
 <context>
     <name>Git::Internal::BranchAddDialog</name>
-    <message>
-        <source>Dialog</source>
-        <translation></translation>
-    </message>
     <message>
         <source>Branch Name:</source>
         <translation>Название ветки:</translation>
@@ -13215,6 +13819,14 @@ Would you like to terminate it?</source>
         <source>CheckBox</source>
         <translation></translation>
     </message>
+    <message>
+        <source>Add Branch</source>
+        <translation>Добавить ветку</translation>
+    </message>
+    <message>
+        <source>Rename Branch</source>
+        <translation>Переименовать ветку</translation>
+    </message>
     <message>
         <source>Track remote branch &apos;%1&apos;</source>
         <translation>Следить за внешней веткой «%1»</translation>
@@ -13226,10 +13838,6 @@ Would you like to terminate it?</source>
 </context>
 <context>
     <name>Git::Internal::BranchCheckoutDialog</name>
-    <message>
-        <source>Dialog</source>
-        <translation></translation>
-    </message>
     <message>
         <source>Local Changes Found. Choose Action:</source>
         <translation>Имеются локальные изменения. Следует:</translation>
@@ -13285,6 +13893,14 @@ Would you like to terminate it?</source>
         <source>Delete Branch</source>
         <translation>Удалить ветку</translation>
     </message>
+    <message>
+        <source>Branch Exists</source>
+        <translation>Ветка уже существует</translation>
+    </message>
+    <message>
+        <source>Local branch &apos;%1&apos; already exists.</source>
+        <translation>Локальная ветка «%1» уже существует.</translation>
+    </message>
     <message>
         <source>Would you like to delete the branch &apos;%1&apos;?</source>
         <translation>Удалить ветку «%1»?</translation>
@@ -13325,6 +13941,10 @@ Would you like to terminate it?</source>
         <source>Re&amp;base</source>
         <translation>Переба&amp;зировать</translation>
     </message>
+    <message>
+        <source>Re&amp;name</source>
+        <translation>Пере&amp;именовать</translation>
+    </message>
 </context>
 <context>
     <name>Git::Internal::BranchModel</name>
@@ -13340,21 +13960,49 @@ Would you like to terminate it?</source>
         <translation>Выбор фиксации Git</translation>
     </message>
     <message>
-        <source>Select Working Directory</source>
-        <translation>Выбор рабочего каталога</translation>
+        <source>Browse &amp;Directory...</source>
+        <translation>Открыть &amp;каталог...</translation>
     </message>
     <message>
-        <source>Error</source>
-        <translation>Ошибка</translation>
+        <source>Browse &amp;History...</source>
+        <translation>Открыть &amp;историю...</translation>
     </message>
     <message>
-        <source>Selected directory is not a Git repository.</source>
-        <translation>Выбранный каталог не является хранилищем Git.</translation>
+        <source>&amp;Show</source>
+        <translation>&amp;Показать</translation>
+    </message>
+    <message>
+        <source>Cherry &amp;Pick</source>
+        <translation>Перенести &amp;изменения</translation>
+    </message>
+    <message>
+        <source>&amp;Revert</source>
+        <translation>&amp;Откатить</translation>
+    </message>
+    <message>
+        <source>Check&amp;out</source>
+        <translation>С&amp;менить ветку</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>&amp;Закрыть</translation>
+    </message>
+    <message>
+        <source>Select Commit</source>
+        <translation>Выбрать фиксацию</translation>
+    </message>
+    <message>
+        <source>Select Git Directory</source>
+        <translation>Выбрать каталог Git</translation>
     </message>
     <message>
         <source>Error: Unknown reference</source>
         <translation>Ошибка: Неизвестная ссылка</translation>
     </message>
+    <message>
+        <source>Error: Bad working directory.</source>
+        <translation>Ошибка: неверный рабочий каталог.</translation>
+    </message>
     <message>
         <source>Error: Could not start Git.</source>
         <translation>Ошибка: Не удалось запустить Git.</translation>
@@ -13363,10 +14011,6 @@ Would you like to terminate it?</source>
         <source>Fetching commit data...</source>
         <translation>Загрузка данных фиксации...</translation>
     </message>
-    <message>
-        <source>Select</source>
-        <translation>Выбрать</translation>
-    </message>
     <message>
         <source>Change:</source>
         <translation>Фиксация:</translation>
@@ -13459,10 +14103,6 @@ Would you like to terminate it?</source>
         <source>Git Diff</source>
         <translation>Git - Сравнение</translation>
     </message>
-    <message>
-        <source>Git Log</source>
-        <translation>Git - история</translation>
-    </message>
     <message>
         <source>Invalid revision</source>
         <translation>Некорректная ревизия</translation>
@@ -13475,6 +14115,18 @@ Would you like to terminate it?</source>
         <source>Stash Description</source>
         <translation>Описание спрятанного</translation>
     </message>
+    <message>
+        <source>Submodules Found</source>
+        <translation>Найдены подмодули</translation>
+    </message>
+    <message>
+        <source>Would you like to update submodules?</source>
+        <translation>Желаете обновить подмодули?</translation>
+    </message>
+    <message>
+        <source>Rebase is in progress. What do you want to do?</source>
+        <translation>Выполняется перебазирование. Что сделать?</translation>
+    </message>
     <message>
         <source>Conflicts detected</source>
         <translation>Обнаружены конфликты</translation>
@@ -13483,10 +14135,6 @@ Would you like to terminate it?</source>
         <source>Git SVN Log</source>
         <translation>Git - история SVN</translation>
     </message>
-    <message>
-        <source>Changes</source>
-        <translation>Изменения</translation>
-    </message>
     <message numerus="yes">
         <source>Committed %n file(s).
 </source>
@@ -13582,10 +14230,34 @@ Would you like to terminate it?</source>
         <extracomment>Failed to find parent revisions of a SHA1 for &quot;annotate previous&quot;</extracomment>
         <translation>Не удалось найти родительские ревизии для «%1» в «%2»: %3</translation>
     </message>
+    <message>
+        <source>Cannot execute &quot;git %1&quot; in &quot;%2&quot;: %3</source>
+        <translation>Не удалось выполнить «git %1» в «%2»: %3</translation>
+    </message>
     <message>
         <source>Cannot retrieve branch of &quot;%1&quot;: %2</source>
         <translation>Не удалось получить ветку для «%1»: %2</translation>
     </message>
+    <message>
+        <source>Cannot run &quot;%1&quot; in &quot;%2&quot;: %3</source>
+        <translation>Не удалось выполнить «%1» в «%2»: %3</translation>
+    </message>
+    <message>
+        <source>REBASING</source>
+        <translation>ПЕРЕБАЗИРОВАНИЕ</translation>
+    </message>
+    <message>
+        <source>REVERTING</source>
+        <translation>ОТКАТ</translation>
+    </message>
+    <message>
+        <source>CHERRY-PICKING</source>
+        <translation>ВНЕСЕНИЕ ИЗМЕНЕНИЙ</translation>
+    </message>
+    <message>
+        <source>MERGING</source>
+        <translation>ОБЪЕДИНЕНИЕ</translation>
+    </message>
     <message>
         <source>Detached HEAD</source>
         <translation>Отцеплённая HEAD</translation>
@@ -13608,20 +14280,8 @@ Would you like to terminate it?</source>
         <translation>Не удалось найти спрятанное по сообщению «%1» в «%2».</translation>
     </message>
     <message>
-        <source>Cannot run &quot;git branch&quot; in &quot;%1&quot;: %2</source>
-        <translation>Не удалось выполнить «git branch» в «%1»: %2</translation>
-    </message>
-    <message>
-        <source>Cannot run &quot;git remote&quot; in &quot;%1&quot;: %2</source>
-        <translation>Не удалось выполнить «git remote» в «%1»: %2</translation>
-    </message>
-    <message>
-        <source>Cannot run &quot;git show&quot; in &quot;%1&quot;: %2</source>
-        <translation>Не удалось выполнить «git show» в «%1»: %2</translation>
-    </message>
-    <message>
-        <source>Cannot run &quot;git clean&quot; in &quot;%1&quot;: %2</source>
-        <translation>Не удалось выполнить «git clean» в «%1»: %2</translation>
+        <source>Cannot retrieve submodule status of &quot;%1&quot;: %2</source>
+        <translation>Не удалось получить состояние модуля в «%1»: %2</translation>
     </message>
     <message>
         <source>There were warnings while applying &quot;%1&quot; to &quot;%2&quot;:
@@ -13633,14 +14293,50 @@ Would you like to terminate it?</source>
         <source>Cannot apply patch &quot;%1&quot; to &quot;%2&quot;: %3</source>
         <translation>Не удалось наложить патч «%1» на «%2»: %3</translation>
     </message>
-    <message>
-        <source>Would you like to stash your changes?</source>
-        <translation>Желаете спрятать свои изменения?</translation>
-    </message>
     <message>
         <source>Cannot obtain status: %1</source>
         <translation>Не удалось получить состояние: %1</translation>
     </message>
+    <message>
+        <source>Continue Rebase</source>
+        <translation>Продолжение перебазирования</translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation>Продолжить</translation>
+    </message>
+    <message>
+        <source>Continue Revert</source>
+        <translation>Продолжить откат</translation>
+    </message>
+    <message>
+        <source>You need to commit changes to finish revert.
+Commit now?</source>
+        <translation>Необходимо зафиксировать изменения для завершения отката.
+Зафиксировать?</translation>
+    </message>
+    <message>
+        <source>Commit</source>
+        <translation>Фиксировать</translation>
+    </message>
+    <message>
+        <source>Continue Cherry-Picking</source>
+        <translation>Продолжение внесения изменений</translation>
+    </message>
+    <message>
+        <source>You need to commit changes to finish cherry-picking.
+Commit now?</source>
+        <translation>Необходимо зафиксировать изменения для завершения переноса изменений.
+Фиксировать?</translation>
+    </message>
+    <message>
+        <source>No changes found. </source>
+        <translation>Изменений не найдено.</translation>
+    </message>
+    <message>
+        <source>Skip</source>
+        <translation>Пропустить</translation>
+    </message>
     <message>
         <source>&lt;Detached HEAD&gt;</source>
         <translation>&lt;Отцеплённая HEAD&gt;</translation>
@@ -13713,10 +14409,22 @@ Would you like to terminate it?</source>
         <source>&amp;Skip</source>
         <translation>&amp;Пропустить</translation>
     </message>
+    <message>
+        <source>Rebase, merge or am is in progress. Finish or abort it and then try again.</source>
+        <translation>Уже выполняется перебазирование или объединение. Завершите или отмените эту операцию и попробуйте снова.</translation>
+    </message>
     <message>
         <source>There are no modified files.</source>
         <translation>Нет изменённых файлов.</translation>
     </message>
+    <message>
+        <source>No commits were found</source>
+        <translation>Фиксации не обнаружены</translation>
+    </message>
+    <message>
+        <source>No local commits were found</source>
+        <translation>Локальные фиксации не обнаружены</translation>
+    </message>
     <message>
         <source>Cannot restore stash &quot;%1&quot;: %2</source>
         <translation>Не удалось восстановить спрятанное в «%1»: %2</translation>
@@ -13741,6 +14449,53 @@ Would you like to terminate it?</source>
         <source>Cannot determine git version: %1</source>
         <translation>Не удалось определить версию git: %1</translation>
     </message>
+    <message>
+        <source>Uncommitted Changes Found</source>
+        <translation>Обнаружены незафиксированные изменения</translation>
+    </message>
+    <message>
+        <source>What would you like to do with local changes in:</source>
+        <translation>Что необходимо сделать с локальными изменениями в:</translation>
+    </message>
+    <message>
+        <source>Stash</source>
+        <translation>Спрятать</translation>
+    </message>
+    <message>
+        <source>Stash local changes and continue.</source>
+        <translation>Спрятать локальные изменения и продолжить.</translation>
+    </message>
+    <message>
+        <source>Discard</source>
+        <translation>Отменить</translation>
+    </message>
+    <message>
+        <source>Discard (reset) local changes and continue.</source>
+        <translation>Отменить (сбросить) локальные изменения и продолжить.</translation>
+    </message>
+    <message>
+        <source>Continue with local changes in working directory.</source>
+        <translation>Продолжить с локальными изменениями в рабочем каталоге.</translation>
+    </message>
+    <message>
+        <source>Cancel current command.</source>
+        <translation>Отменить текущую команду.</translation>
+    </message>
+</context>
+<context>
+    <name>Git::Internal::GitDiffHandler</name>
+    <message>
+        <source>Waiting for data...</source>
+        <translation>Ожидание данных...</translation>
+    </message>
+    <message>
+        <source>Index</source>
+        <translation>Готовое к фиксации</translation>
+    </message>
+    <message>
+        <source>Working tree</source>
+        <translation>Рабочая копия</translation>
+    </message>
 </context>
 <context>
     <name>Git::Internal::GitEditor</name>
@@ -13771,6 +14526,14 @@ Would you like to terminate it?</source>
         <source>Show difference.</source>
         <translation>Показать изменения.</translation>
     </message>
+    <message>
+        <source>Graph</source>
+        <translation>Граф</translation>
+    </message>
+    <message>
+        <source>Show textual graph log.</source>
+        <translation>Показать граф журнала в ASCII графике.</translation>
+    </message>
 </context>
 <context>
     <name>Git::Internal::GitPlugin</name>
@@ -13891,12 +14654,12 @@ Would you like to terminate it?</source>
         <translation>&amp;Локальное хранилище</translation>
     </message>
     <message>
-        <source>Reset...</source>
-        <translation>Откатить (reset)...</translation>
+        <source>Fixup Previous Commit...</source>
+        <translation>Исправить предыдущую фиксацию...</translation>
     </message>
     <message>
-        <source>Show...</source>
-        <translation>Показать...</translation>
+        <source>Reset...</source>
+        <translation>Откатить (reset)...</translation>
     </message>
     <message>
         <source>Stashes...</source>
@@ -13978,6 +14741,42 @@ Would you like to terminate it?</source>
         <source>Clean Project &quot;%1&quot;...</source>
         <translation>Очистить проект «%1»...</translation>
     </message>
+    <message>
+        <source>Interactive Rebase...</source>
+        <translation>Перебазировать интерактивно...</translation>
+    </message>
+    <message>
+        <source>Update Submodules</source>
+        <translation>Обновить подмодули</translation>
+    </message>
+    <message>
+        <source>Abort Merge</source>
+        <translation>Прервать объединение</translation>
+    </message>
+    <message>
+        <source>Abort Rebase</source>
+        <translation>Прервать перебазирование</translation>
+    </message>
+    <message>
+        <source>Abort Cherry Pick</source>
+        <translation>Прервать перенос изменений</translation>
+    </message>
+    <message>
+        <source>Abort Revert</source>
+        <translation>Прервать откат</translation>
+    </message>
+    <message>
+        <source>Continue Rebase</source>
+        <translation>Продолжение перебазирования</translation>
+    </message>
+    <message>
+        <source>Continue Cherry Pick</source>
+        <translation>Продолжение перенос изменений</translation>
+    </message>
+    <message>
+        <source>Continue Revert</source>
+        <translation>Продолжить откат</translation>
+    </message>
     <message>
         <source>Apply &quot;%1&quot;</source>
         <translation>Наложить «%1»</translation>
@@ -14046,14 +14845,6 @@ Would you like to terminate it?</source>
         <source>Fetch</source>
         <translation>Загрузить (fetch)</translation>
     </message>
-    <message>
-        <source>Revert Single Commit...</source>
-        <translation>Откатить одну фиксацию...</translation>
-    </message>
-    <message>
-        <source>Cherry-Pick Commit...</source>
-        <translation>Избирательно применить фиксацию...</translation>
-    </message>
     <message>
         <source>&amp;Patch</source>
         <translation>&amp;Изменение</translation>
@@ -14074,6 +14865,30 @@ Would you like to terminate it?</source>
         <source>Manage Remotes...</source>
         <translation>Управление хранилищами...</translation>
     </message>
+    <message>
+        <source>Show...</source>
+        <translation>Показать...</translation>
+    </message>
+    <message>
+        <source>Revert...</source>
+        <translation>Откатить...</translation>
+    </message>
+    <message>
+        <source>Cherry Pick...</source>
+        <translation>Перенести изменения...</translation>
+    </message>
+    <message>
+        <source>Checkout...</source>
+        <translation>Перейти...</translation>
+    </message>
+    <message>
+        <source>Rebase...</source>
+        <translation>Перебазировать...</translation>
+    </message>
+    <message>
+        <source>Merge...</source>
+        <translation>Объединить...</translation>
+    </message>
     <message>
         <source>Git &amp;Tools</source>
         <translation>Сре&amp;дства Git</translation>
@@ -14106,6 +14921,10 @@ Would you like to terminate it?</source>
         <source>Merge Tool</source>
         <translation>Программа объединения</translation>
     </message>
+    <message>
+        <source>Actions on Commits...</source>
+        <translation>Действия при фиксации...</translation>
+    </message>
     <message>
         <source>Commit</source>
         <translation>Фиксировать</translation>
@@ -14118,6 +14937,14 @@ Would you like to terminate it?</source>
         <source>&amp;Redo</source>
         <translation>&amp;Повторить</translation>
     </message>
+    <message>
+        <source>Undo Changes to %1</source>
+        <translation>Отменить изменения до %1</translation>
+    </message>
+    <message>
+        <source>Interactive Rebase</source>
+        <translation>Интерактивное перебазирование</translation>
+    </message>
     <message>
         <source>Another submit is currently being executed.</source>
         <translation>В данный момент уже идёт другая фиксация.</translation>
@@ -14130,6 +14957,10 @@ Would you like to terminate it?</source>
         <source>Amend %1</source>
         <translation>Исправить %1</translation>
     </message>
+    <message>
+        <source>Git Fixup Commit</source>
+        <translation>Фиксация исправления Git</translation>
+    </message>
     <message>
         <source>Git Commit</source>
         <translation>Фиксация Git</translation>
@@ -14199,6 +15030,10 @@ Would you like to terminate it?</source>
         <source>Detached HEAD</source>
         <translation>Отцепленная HEAD</translation>
     </message>
+    <message>
+        <source>Select Change</source>
+        <translation>Выбор изменения</translation>
+    </message>
 </context>
 <context>
     <name>Git::Internal::GitSubmitPanel</name>
@@ -14239,6 +15074,44 @@ Would you like to terminate it?</source>
         <translation>&amp;Пропустить хуки</translation>
     </message>
 </context>
+<context>
+    <name>Git::Internal::LogChangeDialog</name>
+    <message>
+        <source>Reset to:</source>
+        <translation>Сбросить до:</translation>
+    </message>
+    <message>
+        <source>Select change:</source>
+        <translation>Выбор изменения:</translation>
+    </message>
+    <message>
+        <source>Reset type:</source>
+        <translation>Тип сброса:</translation>
+    </message>
+    <message>
+        <source>Mixed</source>
+        <translation>Смешанный</translation>
+    </message>
+    <message>
+        <source>Hard</source>
+        <translation>Жёсткий (--hard)</translation>
+    </message>
+    <message>
+        <source>Soft</source>
+        <translation>Мягкий (--soft)</translation>
+    </message>
+</context>
+<context>
+    <name>Git::Internal::LogChangeWidget</name>
+    <message>
+        <source>Sha1</source>
+        <translation>Sha1</translation>
+    </message>
+    <message>
+        <source>Subject</source>
+        <translation>Описание</translation>
+    </message>
+</context>
 <context>
     <name>Git::Internal::MergeTool</name>
     <message>
@@ -14321,54 +15194,10 @@ Remote: %4</source>
         <source>Continue merging other unresolved paths?</source>
         <translation>Продолжить объединение при неразрешённых путях?</translation>
     </message>
-    <message>
-        <source>No changes found. </source>
-        <translation>Изменений не найдено.</translation>
-    </message>
-    <message>
-        <source>Skip</source>
-        <translation>Пропустить</translation>
-    </message>
     <message>
         <source>Merge tool process finished successully.</source>
         <translation>Программа объединения успешно завершилась.</translation>
     </message>
-    <message>
-        <source>Continue Cherry-Picking</source>
-        <translation>Продолжение внесения изменений</translation>
-    </message>
-    <message>
-        <source>You need to commit changes to finish cherry-picking.
-Commit now?</source>
-        <translation>Необходимо зафиксировать изменения для завершения выборочного слияния.
-Фиксировать?</translation>
-    </message>
-    <message>
-        <source>Continue Rebase</source>
-        <translation>Продолжение перебазирования</translation>
-    </message>
-    <message>
-        <source>Continue rebase?</source>
-        <translation>Продолжить перебазирование?</translation>
-    </message>
-    <message>
-        <source>Continue</source>
-        <translation>Продолжить</translation>
-    </message>
-    <message>
-        <source>Continue Revert</source>
-        <translation>Продолжить откат</translation>
-    </message>
-    <message>
-        <source>You need to commit changes to finish revert.
-Commit now?</source>
-        <translation>Необходимо зафиксировать изменения для завершения отката.
-Зафиксировать?</translation>
-    </message>
-    <message>
-        <source>Commit</source>
-        <translation>Зафиксировать</translation>
-    </message>
     <message>
         <source>Merge tool process terminated with exit code %1</source>
         <translation>Процесс объединения завершился с кодом %1</translation>
@@ -14424,37 +15253,6 @@ Commit now?</source>
         <translation>О&amp;тправить</translation>
     </message>
 </context>
-<context>
-    <name>Git::Internal::ResetDialog</name>
-    <message>
-        <source>Sha1</source>
-        <translation>Sha1</translation>
-    </message>
-    <message>
-        <source>Subject</source>
-        <translation>Описание</translation>
-    </message>
-    <message>
-        <source>Reset to:</source>
-        <translation>Сбросить до:</translation>
-    </message>
-    <message>
-        <source>Reset type:</source>
-        <translation>Тип сброса:</translation>
-    </message>
-    <message>
-        <source>Hard Reset</source>
-        <translation>Жёсткий</translation>
-    </message>
-    <message>
-        <source>Soft Reset</source>
-        <translation>Мягкий</translation>
-    </message>
-    <message>
-        <source>Undo Changes to %1</source>
-        <translation>Отменить изменения до %1</translation>
-    </message>
-</context>
 <context>
     <name>Git::Internal::SettingsPage</name>
     <message>
@@ -14523,12 +15321,20 @@ Perl через переменные среды окружения.</translation
         <translation>Добавить в начало PATH:</translation>
     </message>
     <message>
-        <source>Repository browser</source>
+        <source>Command:</source>
+        <translation>Команда:</translation>
+    </message>
+    <message>
+        <source>Show tags in Branches dialog</source>
+        <translation>Показывать теги в диалоге веток</translation>
+    </message>
+    <message>
+        <source>Repository Browser</source>
         <translation>Обозреватель хранилища</translation>
     </message>
     <message>
-        <source>Command:</source>
-        <translation>Команда:</translation>
+        <source>Show diff side-by-side</source>
+        <translation>Двустороннее сравнение</translation>
     </message>
 </context>
 <context>
@@ -14574,22 +15380,6 @@ instead of its installation directory when run outside git bash.</source>
         <source>Message</source>
         <translation>Сообщение</translation>
     </message>
-    <message>
-        <source>Delete...</source>
-        <translation>Удалить...</translation>
-    </message>
-    <message>
-        <source>Show</source>
-        <translation>Показать</translation>
-    </message>
-    <message>
-        <source>Restore...</source>
-        <translation>Восстановить...</translation>
-    </message>
-    <message>
-        <source>Refresh</source>
-        <translation>Обновить</translation>
-    </message>
     <message>
         <source>&lt;No repository&gt;</source>
         <translation>&lt;Нет хранилища&gt;</translation>
@@ -14611,13 +15401,29 @@ instead of its installation directory when run outside git bash.</source>
         </translation>
     </message>
     <message>
-        <source>Delete All...</source>
-        <translation>Удалить всё...</translation>
+        <source>Delete &amp;All...</source>
+        <translation>Удалить &amp;всё...</translation>
+    </message>
+    <message>
+        <source>&amp;Delete...</source>
+        <translation>&amp;Удалить...</translation>
     </message>
     <message>
-        <source>Restore to Branch...</source>
+        <source>&amp;Show</source>
+        <translation>&amp;Показать</translation>
+    </message>
+    <message>
+        <source>R&amp;estore...</source>
+        <translation>&amp;Восстановить...</translation>
+    </message>
+    <message>
+        <source>Restore to &amp;Branch...</source>
         <extracomment>Restore a git stash to new branch to be created</extracomment>
-        <translation>Восстановить в ветке...</translation>
+        <translation>Восстановить в в&amp;етку...</translation>
+    </message>
+    <message>
+        <source>Re&amp;fresh</source>
+        <translation>&amp;Обновить</translation>
     </message>
     <message>
         <source>Delete Stashes</source>
@@ -16396,14 +17202,6 @@ Do you want to kill it?</source>
 </context>
 <context>
     <name>Madde::Internal::MaddeDevice</name>
-    <message>
-        <source>Test</source>
-        <translation>Тест</translation>
-    </message>
-    <message>
-        <source>Deploy Public Key...</source>
-        <translation>Установить ключ...</translation>
-    </message>
     <message>
         <source>Maemo5/Fremantle</source>
         <translation>Maemo5/Fremantle</translation>
@@ -17198,7 +17996,7 @@ We will try to work around that, but you may experience problems.</source>
         <translation>Настройки отправки</translation>
     </message>
     <message>
-        <source>Choose a private key file</source>
+        <source>Choose a Private Key File</source>
         <translation>Выберите секретный ключ</translation>
     </message>
     <message>
@@ -17502,8 +18300,12 @@ stderr was: %1</source>
 <context>
     <name>Madde::Internal::MaemoRunControlFactory</name>
     <message>
-        <source>Run on device</source>
-        <translation>Запустить на устройстве</translation>
+        <source>Cannot debug: Kit has no device.</source>
+        <translation>Отладка невозможна: у комплекта нет устройства.</translation>
+    </message>
+    <message>
+        <source>Cannot debug: Not enough free ports available.</source>
+        <translation>Отладка невозможна: недостаточно свободных портов.</translation>
     </message>
 </context>
 <context>
@@ -17570,6 +18372,21 @@ Do you want to add them to the project?&lt;/html&gt;</source>
         <translation>Обработка сигнала</translation>
     </message>
 </context>
+<context>
+    <name>Mercurial::Internal::AuthenticationDialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>User name:</source>
+        <translation>Имя пользователя:</translation>
+    </message>
+    <message>
+        <source>Password:</source>
+        <translation>Пароль:</translation>
+    </message>
+</context>
 <context>
     <name>Mercurial::Internal::CloneWizard</name>
     <message>
@@ -17689,8 +18506,8 @@ Do you want to add them to the project?&lt;/html&gt;</source>
 <context>
     <name>Mercurial::Internal::MercurialPlugin</name>
     <message>
-        <source>Mercurial</source>
-        <translation>Mercurial</translation>
+        <source>Me&amp;rcurial</source>
+        <translation>Me&amp;rcurial</translation>
     </message>
     <message>
         <source>Annotate Current File</source>
@@ -17993,6 +18810,10 @@ Do you want to add them to the project?&lt;/html&gt;</source>
         <source>Specify URL:</source>
         <translation>Особый URL:</translation>
     </message>
+    <message>
+        <source>Prompt for credentials</source>
+        <translation>Спрашивать имя пользователя и пароль</translation>
+    </message>
 </context>
 <context>
     <name>MimeType</name>
@@ -18036,6 +18857,10 @@ Do you want to add them to the project?&lt;/html&gt;</source>
         <source>Qt Designer file</source>
         <translation>Файл Qt Designer</translation>
     </message>
+    <message>
+        <source>Git Commit File</source>
+        <translation>Файл фиксации Git</translation>
+    </message>
     <message>
         <source>GLSL Shader file</source>
         <translation>Файл шейдера GLSL</translation>
@@ -18060,6 +18885,10 @@ Do you want to add them to the project?&lt;/html&gt;</source>
         <source>GLSL/ES Geometry Shader file</source>
         <translation>Файл геометрического шейдера GLSL/ES</translation>
     </message>
+    <message>
+        <source>Python Source File</source>
+        <translation>Файл исходных текстов Python</translation>
+    </message>
     <message>
         <source>QML file</source>
         <translation>Файл QML</translation>
@@ -18213,21 +19042,6 @@ Do you want to add them to the project?&lt;/html&gt;</source>
         <translation>Разница между файлами</translation>
     </message>
 </context>
-<context>
-    <name>MobileAppWizard</name>
-    <message>
-        <source>Mobile Qt Application</source>
-        <translation>Мобильное приложение Qt</translation>
-    </message>
-    <message>
-        <source>Creates a Qt application optimized for mobile devices with a Qt Designer-based main window.
-
-Preselects Qt for Simulator and mobile targets if available.</source>
-        <translation>Создание приложения Qt для мобильных устройств. Включает основное окно в виде формы дизайнера Qt.
-
-Выбирается профиль Qt для эмулятора и мобильных целей, если он доступен.</translation>
-    </message>
-</context>
 <context>
     <name>Modifiers</name>
     <message>
@@ -18319,6 +19133,10 @@ Preselects Qt for Simulator and mobile targets if available.</source>
         <source>GLSL Editor</source>
         <translation>Редактор GLSL</translation>
     </message>
+    <message>
+        <source>Python Editor</source>
+        <translation>Редактор Python</translation>
+    </message>
 </context>
 <context>
     <name>PathViewSpecifics</name>
@@ -18826,8 +19644,8 @@ Preselects Qt for Simulator and mobile targets if available.</source>
 <context>
     <name>Perforce::Internal::PerforceVersionControl</name>
     <message>
-        <source>&amp;Edit (%1)</source>
-        <translation>И&amp;зменить «%1»</translation>
+        <source>&amp;Edit</source>
+        <translation>&amp;Изменить</translation>
     </message>
     <message>
         <source>&amp;Hijack</source>
@@ -18963,6 +19781,10 @@ Preselects Qt for Simulator and mobile targets if available.</source>
 </context>
 <context>
     <name>PluginManager</name>
+    <message>
+        <source>The plugin &apos;%1&apos; is specified twice for testing.</source>
+        <translation>Модуль «%1» указан для тестирования дважды.</translation>
+    </message>
     <message>
         <source>The plugin &apos;%1&apos; does not exist.</source>
         <translation>Модуль «%1» не существует.</translation>
@@ -19287,12 +20109,12 @@ Preselects Qt for Simulator and mobile targets if available.</source>
         <translation>Создание простого проекта под управлением qmake на языке C++, но без использования библиотеки Qt.</translation>
     </message>
     <message>
-        <source>Custom QML Extension  Plugin Parameters</source>
-        <translation>Параметры особого модуля расширяющего QML</translation>
+        <source>Creates a C++ plugin to load extensions dynamically into applications using the QDeclarativeEngine class. Requires Qt 4.7.0 or newer.</source>
+        <translation>Создание C++ модуля для динамической загрузки расширений в приложение, использующее класс QDeclarativeEngine. Требуется Qt версии 4.7.0 или выше.</translation>
     </message>
     <message>
-        <source>Object Class-name:</source>
-        <translation>Имя класса объекта:</translation>
+        <source>Custom QML Extension  Plugin Parameters</source>
+        <translation>Параметры особого модуля расширяющего QML</translation>
     </message>
     <message>
         <source>URI:</source>
@@ -19374,6 +20196,10 @@ Preselects Qt for Simulator and mobile targets if available.</source>
         <source>Qt Quick 1 Extension Plugin</source>
         <translation>Модуль, расширяющий Qt Quick 1</translation>
     </message>
+    <message>
+        <source>Object class-name:</source>
+        <translation>Имя класса объекта:</translation>
+    </message>
     <message>
         <source>Qt Quick 2 Extension Plugin</source>
         <translation>Модуль, расширяющий Qt Quick 2</translation>
@@ -19482,12 +20308,9 @@ Preselects Qt for Simulator and mobile targets if available.</source>
         <source>Local user settings</source>
         <translation>Локальные настройки пользователя</translation>
     </message>
-</context>
-<context>
-    <name>ProjectExplorer::DebuggerRunConfigurationAspect</name>
     <message>
-        <source>Debugger settings</source>
-        <translation>Настройки отладчика</translation>
+        <source>Creates a C++ plugin to load extensions dynamically into applications using the QQmlEngine class. Requires Qt 5.0 or newer.</source>
+        <translation>Создание C++ модуля для динамической загрузки расширений в приложение, использующее класс QQmlEngine. Требуется Qt версии 5.0 или выше.</translation>
     </message>
 </context>
 <context>
@@ -19548,13 +20371,40 @@ Reason: %2</source>
 </context>
 <context>
     <name>ProjectExplorer::DesktopDevice</name>
+    <message>
+        <source>Local PC</source>
+        <translation>Локальный ПК</translation>
+    </message>
     <message>
         <source>Desktop</source>
         <translation>Desktop</translation>
     </message>
+</context>
+<context>
+    <name>ProjectExplorer::DesktopDeviceConfigurationWidget</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Machine type:</source>
+        <translation>Тип машины:</translation>
+    </message>
+    <message>
+        <source>TextLabel</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Free ports:</source>
+        <translation>Свободные порты:</translation>
+    </message>
     <message>
-        <source>Run locally</source>
-        <translation>Локальный запуск</translation>
+        <source>Physical Device</source>
+        <translation>Физическое устройство</translation>
+    </message>
+    <message>
+        <source>You will need at least one port for QML debugging.</source>
+        <translation>Необходим как минимум один порт для отладки QML.</translation>
     </message>
 </context>
 <context>
@@ -19592,6 +20442,25 @@ Reason: %2</source>
         <translation>Внешнее приложение завершилось с кодом 0.</translation>
     </message>
 </context>
+<context>
+    <name>ProjectExplorer::DeviceCheckBuildStep</name>
+    <message>
+        <source>No device configured.</source>
+        <translation>Устройство не настроено.</translation>
+    </message>
+    <message>
+        <source>Set Up Device</source>
+        <translation>Настройка устройства</translation>
+    </message>
+    <message>
+        <source>There is no device set up for this kit. Do you want to add a device?</source>
+        <translation>У комплекта не задано устройство. Желаете его добавить?</translation>
+    </message>
+    <message>
+        <source>Check for a configured device</source>
+        <translation>Проверка настроек устройства</translation>
+    </message>
+</context>
 <context>
     <name>ProjectExplorer::DeviceKitInformation</name>
     <message>
@@ -19655,6 +20524,10 @@ Reason: %2</source>
         <source>List of Processes</source>
         <translation>Список процессов</translation>
     </message>
+    <message>
+        <source>&amp;Attach to Process</source>
+        <translation>&amp;Подключиться к процессу</translation>
+    </message>
 </context>
 <context>
     <name>ProjectExplorer::DeviceTypeKitInformation</name>
@@ -19705,6 +20578,20 @@ Remote error output was: %1</source>
         <translation>Проект %1</translation>
     </message>
 </context>
+<context>
+    <name>ProjectExplorer::EnvironmentAspect</name>
+    <message>
+        <source>Run Environment</source>
+        <translation>Среда выполнения</translation>
+    </message>
+</context>
+<context>
+    <name>ProjectExplorer::EnvironmentAspectWidget</name>
+    <message>
+        <source>Base environment for this run configuration:</source>
+        <translation>Базовая среда данной конфигурации выполнения:</translation>
+    </message>
+</context>
 <context>
     <name>ProjectExplorer::EnvironmentItemsDialog</name>
     <message>
@@ -20187,8 +21074,8 @@ Remote error output was: %1</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <source>Remote Processes</source>
-        <translation>Внешние процессы</translation>
+        <source>Show Running Processes</source>
+        <translation>Запущенные процессы</translation>
     </message>
 </context>
 <context>
@@ -20292,6 +21179,14 @@ Remote error output was: %1</source>
         <source>&amp;Compiler path:</source>
         <translation>Путь к &amp;компилятору:</translation>
     </message>
+    <message>
+        <source>Platform codegen flags:</source>
+        <translation>Флаги генерации кода для платформы:</translation>
+    </message>
+    <message>
+        <source>Platform linker flags:</source>
+        <translation>Флаги компоновки для платформы:</translation>
+    </message>
     <message>
         <source>&amp;ABI:</source>
         <translation></translation>
@@ -20362,6 +21257,11 @@ Remote error output was: %1</source>
         <translation>Программа не указана.
 </translation>
     </message>
+    <message>
+        <source>Executable %1 does not exist.
+</source>
+        <translation>Программа %1 отсутствует.</translation>
+    </message>
     <message>
         <source>Starting %1...
 </source>
@@ -20375,13 +21275,6 @@ Remote error output was: %1</source>
 </translation>
     </message>
 </context>
-<context>
-    <name>ProjectExplorer::Internal::LocalApplicationRunControlFactory</name>
-    <message>
-        <source>Run</source>
-        <translation>Запустить</translation>
-    </message>
-</context>
 <context>
     <name>ProjectExplorer::Internal::LocalProcessList</name>
     <message>
@@ -20589,14 +21482,6 @@ Remote error output was: %1</source>
         <source>Always ask before stopping applications</source>
         <translation>Всегда спрашивать перед остановкой приложений</translation>
     </message>
-    <message>
-        <source>Open compiler output pane when building</source>
-        <translation>Показывать вывод компилятора при сборке</translation>
-    </message>
-    <message>
-        <source>Open application output pane when running</source>
-        <translation>Показывать вывод приложения при запуске</translation>
-    </message>
     <message>
         <source>Limit application output to </source>
         <translation>Ограничить вывод приложения</translation>
@@ -20613,10 +21498,6 @@ Remote error output was: %1</source>
         <source>Merge stderr and stdout</source>
         <translation>Объединить stderr и stdout</translation>
     </message>
-    <message>
-        <source>Open application output pane when debugging</source>
-        <translation>Показывать вывод приложения при отладке</translation>
-    </message>
     <message>
         <source>&lt;i&gt;jom&lt;/i&gt; is a drop-in replacement for &lt;i&gt;nmake&lt;/i&gt; which distributes the compilation process to multiple CPU cores. The latest binary is available at &lt;a href=&quot;http://releases.qt-project.org/jom/&quot;&gt;http://releases.qt-project.org/jom/&lt;/a&gt;. Disable it if you experience problems with your builds.</source>
         <translation>&lt;i&gt;jom&lt;/i&gt; - это замена &lt;i&gt;nmake&lt;/i&gt;, распределяющая процесс компиляции на несколько ядер процессора. Свежайшая сборка доступна на &lt;a href=&quot;http://releases.qt-project.org/jom/&quot;&gt;http://releases.qt-project.org/jom/&lt;/a&gt;. Отключите использование jom вместо nmake в случае проблем со сборкой.</translation>
@@ -20629,6 +21510,18 @@ Remote error output was: %1</source>
         <source>Default build directory:</source>
         <translation>Каталог сборки по умолчанию:</translation>
     </message>
+    <message>
+        <source>Open Compile Output pane when building</source>
+        <translation>Открывать консоль сборки при сборке</translation>
+    </message>
+    <message>
+        <source>Open Application Output pane on output when running</source>
+        <translation>Открывать вывод приложения при выполнении</translation>
+    </message>
+    <message>
+        <source>Open Application Output pane on output when debugging</source>
+        <translation>Открывать вывод приложения при отладке</translation>
+    </message>
 </context>
 <context>
     <name>ProjectExplorer::Internal::ProjectFileFactory</name>
@@ -20663,6 +21556,14 @@ Remote error output was: %1</source>
         <extracomment>No project selected</extracomment>
         <translation>&lt;Нет&gt;</translation>
     </message>
+    <message>
+        <source>Open project anyway?</source>
+        <translation>Открыть проект?</translation>
+    </message>
+    <message>
+        <source>Version Control Failure</source>
+        <translation>Ошибка контроля версий</translation>
+    </message>
     <message>
         <source>Failed to add subproject &apos;%1&apos;
 to project &apos;%2&apos;.</source>
@@ -20731,6 +21632,10 @@ to project &apos;%2&apos;.</source>
         <source>Develop</source>
         <translation>Разработка</translation>
     </message>
+    <message>
+        <source>New Project</source>
+        <translation>Новый проект</translation>
+    </message>
 </context>
 <context>
     <name>ProjectExplorer::Internal::ProjectWizardPage</name>
@@ -21298,6 +22203,21 @@ to project &apos;%2&apos;.</source>
         <translation>Сделать по умолчанию</translation>
     </message>
 </context>
+<context>
+    <name>ProjectExplorer::LocalEnvironmentAspect</name>
+    <message>
+        <source>Build Environment</source>
+        <translation>Среда сборки</translation>
+    </message>
+    <message>
+        <source>System Environment</source>
+        <translation>Системная среда</translation>
+    </message>
+    <message>
+        <source>Clean Environment</source>
+        <translation>Чистая среда</translation>
+    </message>
+</context>
 <context>
     <name>ProjectExplorer::ProjectConfiguration</name>
     <message>
@@ -21484,14 +22404,6 @@ to project &apos;%2&apos;.</source>
         <source>Collapse All</source>
         <translation>Свернуть всё</translation>
     </message>
-    <message>
-        <source>Full path of the current project&apos;s main file, including file name.</source>
-        <translation>Полный путь с именем файла к основному файлу проекта.</translation>
-    </message>
-    <message>
-        <source>Full path of the current project&apos;s main file, excluding file name.</source>
-        <translation>Полный путь без имени файла к основному файлу проекта.</translation>
-    </message>
     <message>
         <source>Failed to open project</source>
         <translation>Не удалось открыть проект</translation>
@@ -21642,6 +22554,10 @@ Do you want to ignore them?</source>
         <source>Quick Switch Kit Selector</source>
         <translation>Выбор быстрого переключения комплектов</translation>
     </message>
+    <message>
+        <source>Current project&apos;s main file</source>
+        <translation>Главный файл текущего проекта</translation>
+    </message>
     <message>
         <source>Full build path of the current project&apos;s active build configuration.</source>
         <translation>Полный путь к каталогу сборки активной конфигурации текущего проекта.</translation>
@@ -21686,6 +22602,10 @@ Do you want to ignore them?</source>
         <source>Failed to Open Project</source>
         <translation>Не удалось открыть проект</translation>
     </message>
+    <message>
+        <source>Failed opening project &apos;%1&apos;: Project already open</source>
+        <translation>Не удалось открыть проект «%1»: проект уже открыт</translation>
+    </message>
     <message>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
@@ -21882,6 +22802,14 @@ Reason: %2</source>
         <source>Failed to restore project files</source>
         <translation>Не удалось восстановить файлы проекта</translation>
     </message>
+    <message>
+        <source>Delete Session</source>
+        <translation>Удаление сессии</translation>
+    </message>
+    <message>
+        <source>Delete session %1?</source>
+        <translation>Удалить сессию %1?</translation>
+    </message>
     <message>
         <source>Could not restore the following project files:&lt;br&gt;&lt;b&gt;%1&lt;/b&gt;</source>
         <translation>Невозможно восстановить следующие файлы проекта:&lt;br&gt;&lt;b&gt;%1&lt;/b&gt;</translation>
@@ -21918,40 +22846,36 @@ Reason: %2</source>
 <context>
     <name>ProjectExplorer::SettingsAccessor</name>
     <message>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;A versioned backup of the .user settings file will be used, because the non-versioned file was created by an incompatible newer version of Qt Creator.&lt;/p&gt;&lt;p&gt;Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will &lt;b&gt;not&lt;/b&gt; be propagated to the newer version.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Будет использоваться резервная копия файла настроек .user более старой версии, так как текущий файл создан несовместимой версией Qt Creator.&lt;/p&gt;&lt;p&gt;Изменения настроек проекта сделанные с момента последнего запуска этой версии Qt Creator не учитываются, а изменения вносимые сейчас &lt;b&gt;не будут&lt;/b&gt; сохранены в новую версию файла проекта.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+        <source>No valid .user file found for &apos;%1&apos;</source>
+        <translation>Не найден корректный файл .user для «%1»</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;No valid settings file could be found for this installation of Qt Creator.&lt;/p&gt;&lt;p&gt;All settings files were either too new or too old to be read.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Не удалось найти подходящий для этой версии Qt Creator файл настроек.&lt;/p&gt;&lt;p&gt;Все файлы настроек или слишком старые, или слишком новые.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;No .user settings file created by this instance of Qt Creator was found.&lt;/p&gt;&lt;p&gt;Did you work with this project on another machine or using a different settings path before?&lt;/p&gt;&lt;p&gt;Do you still want to load the settings file &apos;%1&apos;?&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Не удалось найти файл настроек от этого Qt Creator.&lt;/p&gt;&lt;p&gt;Не работали ли вы ранее с этим проектом на другой машине или не использовали ли вы другой путь к настройкам?&lt;/p&gt;&lt;p&gt;Продолжить загрузку файла настроек «%1»?&lt;/p&gt;</translation>
     </message>
     <message>
         <source>Using Old Settings File for &apos;%1&apos;</source>
         <translation>Используется старый файл настроек для проекта «%1»</translation>
     </message>
     <message>
-        <source>Settings File for &apos;%1&apos; from a different Environment?</source>
-        <translation>Настройки проекта «%1» с другого компьютера?</translation>
+        <source>&lt;p&gt;The versioned backup &apos;%1&apos; of the .user settings file is used, because the non-versioned file was created by an incompatible version of Qt Creator.&lt;/p&gt;&lt;p&gt;Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will &lt;b&gt;not&lt;/b&gt; be propagated to the newer version.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Будет использоваться резервная копия файла настроек .user более старой версии («%1»), так как текущий файл создан несовместимой версией Qt Creator.&lt;/p&gt;&lt;p&gt;Изменения настроек проекта, сделанные с момента последнего запуска этой версии Qt Creator, не будут учтены, а изменения, вносимые сейчас, &lt;b&gt;не будут&lt;/b&gt; сохранены в новую версию файла проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <source>Qt Creator has found a .user settings file which was created for another development setup, maybe originating from another machine.
-
-The .user settings files contain environment specific settings. They should not be copied to a different environment. 
-
-Do you still want to load the settings file?</source>
-        <translation>Qt Creator обнаружил, что файл настроек (*.user), созданный под другую среду, возможно, перенесён с другого компьютера.
-
-Файлы настроек *.user содержат уникальные для среды параметры. Они не должны копироваться на другие машины.
-
-Продолжить загрузку файла настроек?</translation>
+        <source>The version of your .shared file is not supported by Qt Creator. Do you want to try loading it anyway?</source>
+        <translation>Версия вашего файла .shared не поддерживается этой версией Qt Creator. Попробовать загрузить файл?</translation>
     </message>
     <message>
-        <source>Unsupported Shared Settings File</source>
-        <translation>Неподдерживаемый файл общих настроек</translation>
+        <source>Settings File for &apos;%1&apos; from a different Environment?</source>
+        <translation>Настройки проекта «%1» с другого компьютера?</translation>
     </message>
     <message>
-        <source>The version of your .shared file is not supported by this Qt Creator version. Only settings that are still compatible will be taken into account.
-
-Do you want to try loading it?</source>
-        <translation>Версия вашего файла .shared не поддерживается этой версией Qt Creator. Будут загружены только совместимые настройки.
-
-Попробовать загрузить файл?</translation>
+        <source>Unsupported Shared Settings File</source>
+        <translation>Неподдерживаемый файл общих настроек</translation>
     </message>
 </context>
 <context>
@@ -22049,6 +22973,62 @@ Remote stderr was: %1</source>
         <translation>Установить на устройство Maemo</translation>
     </message>
 </context>
+<context>
+    <name>PythonEditor::ClassNamePage</name>
+    <message>
+        <source>Enter Class Name</source>
+        <translation>Введите имя класса</translation>
+    </message>
+    <message>
+        <source>The source file name will be derived from the class name</source>
+        <translation>Имя исходного файла будет получено из имени класса</translation>
+    </message>
+</context>
+<context>
+    <name>PythonEditor::ClassWizard</name>
+    <message>
+        <source>Python class</source>
+        <translation>Класс Python</translation>
+    </message>
+    <message>
+        <source>Creates new Python class</source>
+        <translation>Создание нового класса Python</translation>
+    </message>
+    <message>
+        <source>C++ module for Python</source>
+        <translation>Модуль C++ для Python</translation>
+    </message>
+    <message>
+        <source>Creates C++/Boost file with bindings for Python</source>
+        <translation>Создание файла C++/Boost с привязками для Python</translation>
+    </message>
+</context>
+<context>
+    <name>PythonEditor::ClassWizardDialog</name>
+    <message>
+        <source>Python Class Wizard</source>
+        <translation>Создание класса Python</translation>
+    </message>
+    <message>
+        <source>Details</source>
+        <translation>Подробнее</translation>
+    </message>
+</context>
+<context>
+    <name>PythonEditor::FileWizard</name>
+    <message>
+        <source>New %1</source>
+        <translation>Новый %1</translation>
+    </message>
+    <message>
+        <source>Python source file</source>
+        <translation>Файл исходных текстов Python</translation>
+    </message>
+    <message>
+        <source>Creates an empty Python script with UTF-8 charset</source>
+        <translation>Создание пустого сценария Python в кодировке UTF-8</translation>
+    </message>
+</context>
 <context>
     <name>QSsh::Internal::SftpChannelPrivate</name>
     <message>
@@ -22329,6 +23309,14 @@ Remote stderr was: %1</source>
         <source>Cannot Save Public Key File</source>
         <translation>Не удалось сохранить открытый ключ</translation>
     </message>
+    <message>
+        <source>File Exists</source>
+        <translation>Файл уже существует</translation>
+    </message>
+    <message>
+        <source>There already is a file of that name. Do you want to overwrite it?</source>
+        <translation>Уже существует файл с таким именем. Перезаписать его?</translation>
+    </message>
     <message>
         <source>Failed to create directory: &apos;%1&apos;.</source>
         <translation>Не удалось создать каталог: «%1».</translation>
@@ -22342,6 +23330,20 @@ Remote stderr was: %1</source>
         <translation>Не удалось сохранить открытый ключ: %1</translation>
     </message>
 </context>
+<context>
+    <name>Qbs</name>
+    <message>
+        <source>Qbs Install</source>
+        <translation>Установка с Qbs</translation>
+    </message>
+</context>
+<context>
+    <name>Qbs::QbsProjectNode</name>
+    <message>
+        <source>%1 in %2</source>
+        <translation>%1 в %2</translation>
+    </message>
+</context>
 <context>
     <name>QbsProjectManager::Internal::QbsBuildConfiguration</name>
     <message>
@@ -22388,7 +23390,7 @@ Remote stderr was: %1</source>
 <context>
     <name>QbsProjectManager::Internal::QbsBuildStep</name>
     <message>
-        <source>Qbs build</source>
+        <source>Qbs Build</source>
         <translation>Qbs (сборка)</translation>
     </message>
 </context>
@@ -22398,10 +23400,6 @@ Remote stderr was: %1</source>
         <source>Dry run</source>
         <translation>Тестовое выполнение</translation>
     </message>
-    <message>
-        <source>Keep Going</source>
-        <translation>Выполнять в</translation>
-    </message>
     <message>
         <source>jobs</source>
         <translation>потоках</translation>
@@ -22422,18 +23420,34 @@ Remote stderr was: %1</source>
         <source>&lt;b&gt;Qbs:&lt;/b&gt; %1</source>
         <translation>&lt;b&gt;Qbs:&lt;/b&gt; %1</translation>
     </message>
+    <message>
+        <source>Might make your application vulnerable. Only use in a safe environment.</source>
+        <translation>Может сделать приложение уязвимым. Используйте только в безопасном окружении.</translation>
+    </message>
+    <message>
+        <source>Keep going</source>
+        <translation>Выполнять в</translation>
+    </message>
+    <message>
+        <source>Properties:</source>
+        <translation>Свойства:</translation>
+    </message>
+    <message>
+        <source>Enable QML debugging:</source>
+        <translation>Включить отладку QML:</translation>
+    </message>
 </context>
 <context>
     <name>QbsProjectManager::Internal::QbsBuildStepFactory</name>
     <message>
-        <source>Qbs</source>
-        <translation>Qbs</translation>
+        <source>Qbs Build</source>
+        <translation>Сборка Qbs</translation>
     </message>
 </context>
 <context>
     <name>QbsProjectManager::Internal::QbsCleanStep</name>
     <message>
-        <source>Qbs clean</source>
+        <source>Qbs Clean</source>
         <translation>Qbs (очистка)</translation>
     </message>
 </context>
@@ -22448,12 +23462,49 @@ Remote stderr was: %1</source>
         <translation>Тестовое выполнение</translation>
     </message>
     <message>
-        <source>Keep Going</source>
+        <source>&lt;b&gt;Qbs:&lt;/b&gt; %1</source>
+        <translation>&lt;b&gt;Qbs:&lt;/b&gt; %1</translation>
+    </message>
+    <message>
+        <source>Keep going</source>
         <translation>Выполнять в</translation>
     </message>
+</context>
+<context>
+    <name>QbsProjectManager::Internal::QbsCleanStepFactory</name>
+    <message>
+        <source>Qbs Clean</source>
+        <translation>Очистка Qbs</translation>
+    </message>
+</context>
+<context>
+    <name>QbsProjectManager::Internal::QbsInstallStep</name>
     <message>
-        <source>jobs</source>
-        <translation>потоках</translation>
+        <source>Qbs Install</source>
+        <translation>Qbs (установка)</translation>
+    </message>
+</context>
+<context>
+    <name>QbsProjectManager::Internal::QbsInstallStepConfigWidget</name>
+    <message>
+        <source>Install root:</source>
+        <translation>Корень установки:</translation>
+    </message>
+    <message>
+        <source>Remove first</source>
+        <translation>Сначала удалить</translation>
+    </message>
+    <message>
+        <source>Dry run</source>
+        <translation>Тестовое выполнение</translation>
+    </message>
+    <message>
+        <source>Keep going</source>
+        <translation>Выполнять в</translation>
+    </message>
+    <message>
+        <source>Qbs Install Prefix</source>
+        <translation>Префикс установки с Qbs</translation>
     </message>
     <message>
         <source>&lt;b&gt;Qbs:&lt;/b&gt; %1</source>
@@ -22461,10 +23512,10 @@ Remote stderr was: %1</source>
     </message>
 </context>
 <context>
-    <name>QbsProjectManager::Internal::QbsCleanStepFactory</name>
+    <name>QbsProjectManager::Internal::QbsInstallStepFactory</name>
     <message>
-        <source>Qbs</source>
-        <translation>Qbs</translation>
+        <source>Qbs Install</source>
+        <translation>Установка с Qbs</translation>
     </message>
 </context>
 <context>
@@ -22484,24 +23535,89 @@ Remote stderr was: %1</source>
         <source>Build</source>
         <translation>Собрать</translation>
     </message>
+    <message>
+        <source>Build File</source>
+        <translation>Собрать файл</translation>
+    </message>
+    <message>
+        <source>Build File &quot;%1&quot;</source>
+        <translation>Собрать файл «%1»</translation>
+    </message>
+    <message>
+        <source>Ctrl+Alt+B</source>
+        <translation>Ctrl+Alt+B</translation>
+    </message>
+    <message>
+        <source>Build Product</source>
+        <translation>Собрать продукт</translation>
+    </message>
+    <message>
+        <source>Build Product &quot;%1&quot;</source>
+        <translation>Собрать продукт «%1»</translation>
+    </message>
+    <message>
+        <source>Ctrl+Alt+Shift+B</source>
+        <translation>Ctrl+Alt+Shift+B</translation>
+    </message>
 </context>
 <context>
-    <name>QbsProjectManager::Internal::QbsStepConfigWidget</name>
+    <name>QbsProjectManager::Internal::QbsPropertyLineEdit</name>
     <message>
-        <source>Dry run</source>
-        <translation>Тестовое выполнение</translation>
+        <source>Could not split properties.</source>
+        <translation>Невозможно разделить свойства.</translation>
     </message>
     <message>
-        <source>Keep Going</source>
-        <translation>Выполнять в</translation>
+        <source>No &apos;:&apos; found in property definition.</source>
+        <translation>Не найдено двоеточие в определении свойства.</translation>
     </message>
+</context>
+<context>
+    <name>QbsProjectManager::Internal::QbsRunConfiguration</name>
     <message>
-        <source>jobs</source>
-        <translation>потоках</translation>
+        <source>The .qbs files are currently being parsed.</source>
+        <translation>Обрабатываются файлы .qbs.</translation>
     </message>
     <message>
-        <source>&lt;b&gt;Qbs:&lt;/b&gt; %1</source>
-        <translation>&lt;b&gt;Qbs:&lt;/b&gt; %1</translation>
+        <source>Parsing of .qbs files has failed.</source>
+        <translation>Не удалось обработать файлы .qbs.</translation>
+    </message>
+    <message>
+        <source>Qbs Run Configuration</source>
+        <translation>Конфигурация выполнения Qbs</translation>
+    </message>
+</context>
+<context>
+    <name>QbsProjectManager::Internal::QbsRunConfigurationWidget</name>
+    <message>
+        <source>Executable:</source>
+        <translation>Программа:</translation>
+    </message>
+    <message>
+        <source>Arguments:</source>
+        <translation>Параметры:</translation>
+    </message>
+    <message>
+        <source>Select Working Directory</source>
+        <translation>Выбор рабочего каталога</translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation>По умолчанию</translation>
+    </message>
+    <message>
+        <source>Working directory:</source>
+        <translation>Рабочий каталог:</translation>
+    </message>
+    <message>
+        <source>Run in terminal</source>
+        <translation>Запускать в терминале</translation>
+    </message>
+</context>
+<context>
+    <name>QbsProjectManager::QbsManager</name>
+    <message>
+        <source>Failed opening project &apos;%1&apos;: Project is not a file</source>
+        <translation>Не удалось открыть проект «%1»: проект не является файлом</translation>
     </message>
 </context>
 <context>
@@ -22552,16 +23668,16 @@ Remote stderr was: %1</source>
 <context>
     <name>QmlDesigner::FormEditorWidget</name>
     <message>
-        <source>Transform Tool (Q).</source>
-        <translation>Инструмент преобразования (Q).</translation>
+        <source>No snapping (T).</source>
+        <translation>Не выравнивать (T).</translation>
     </message>
     <message>
-        <source>Snap to guides (E).</source>
-        <translation>Прилипать к направляющим (E).</translation>
+        <source>Snap to parent or sibling items and generate anchors (W).</source>
+        <translation>Притягиваться к родительским или соседним элементам и создавать привязки (W).</translation>
     </message>
     <message>
-        <source>Toggle snapping and anchoring (R).</source>
-        <translation>Переключение выравнивания и прилипания (R).</translation>
+        <source>Snap to parent or sibling items but do not generate anchors (E).</source>
+        <translation>Притягиваться к родительским или соседним элементам, но не создавать привязки (E).</translation>
     </message>
     <message>
         <source>Show bounding rectangles and stripes for empty items (A).</source>
@@ -22855,14 +23971,6 @@ Remote stderr was: %1</source>
         <source>Qt Quick Designer</source>
         <translation>Дизайнер Qt Quick</translation>
     </message>
-    <message>
-        <source>Snap margin:</source>
-        <translation>Отступ от края:</translation>
-    </message>
-    <message>
-        <source>Item spacing:</source>
-        <translation>Межэлементное расстояние:</translation>
-    </message>
     <message>
         <source>Canvas</source>
         <translation>Холст</translation>
@@ -22907,6 +24015,14 @@ Remote stderr was: %1</source>
         <source>Enable the debugging view</source>
         <translation>Включить интерфейс отладки</translation>
     </message>
+    <message>
+        <source>Parent item padding:</source>
+        <translation>Отступ родительского элемента:</translation>
+    </message>
+    <message>
+        <source>Sibling item spacing:</source>
+        <translation>Отступ между соседними элементами:</translation>
+    </message>
 </context>
 <context>
     <name>QmlDesigner::InvalidArgumentException</name>
@@ -22923,9 +24039,9 @@ Remote stderr was: %1</source>
         <translation>Библиотека</translation>
     </message>
     <message>
-        <source>Items</source>
-        <comment>Title of library items view</comment>
-        <translation>Элементы</translation>
+        <source>QML Types</source>
+        <comment>Title of library QML types view</comment>
+        <translation>Типы QML</translation>
     </message>
     <message>
         <source>Resources</source>
@@ -23487,6 +24603,17 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
         <translation>Модуль QML содержит расширения на C++, идёт чтение информации о типах...</translation>
     </message>
 </context>
+<context>
+    <name>QmlJS::QrcParser</name>
+    <message>
+        <source>XML error on line %1, col %2: %3</source>
+        <translation>Ошибка XML в строке %1, поз. %2: %3</translation>
+    </message>
+    <message>
+        <source>The &lt;RCC&gt; root element is missing.</source>
+        <translation>Отсутствует корневой элемент &lt;RCC&gt;.</translation>
+    </message>
+</context>
 <context>
     <name>QmlJS::SimpleAbstractStreamReader</name>
     <message>
@@ -24301,6 +25428,30 @@ Check &apos;General Messages&apos; output pane for details.</source>
         <translation>Возникли следующие предупреждения при разборе информации о типах QML библиотеки %1:
 %2</translation>
     </message>
+    <message>
+        <source>&quot;%1&quot; failed to start: %2</source>
+        <translation>Не удалось запустить «%1»: %2</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; crashed.</source>
+        <translation>«%1» завершилась аварийно.</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; timed out.</source>
+        <translation>У «%1» вышло время.</translation>
+    </message>
+    <message>
+        <source>I/O error running &quot;%1&quot;.</source>
+        <translation>При работе «%1» возникла ошибка ввода/вывода.</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; returned exit code %2.</source>
+        <translation>«%1» возвратила код завершения: %2.</translation>
+    </message>
+    <message>
+        <source>Arguments: %1</source>
+        <translation>Аргументы: %1</translation>
+    </message>
     <message>
         <source>Errors while reading typeinfo files:</source>
         <translation>Ошибки при чтении файлов typeinfo:</translation>
@@ -24473,6 +25624,14 @@ Error: %2</source>
         <source>Sys&amp;root:</source>
         <translation>Sys&amp;root:</translation>
     </message>
+    <message>
+        <source>Start QML Profiler</source>
+        <translation>Запуск профайлера QML</translation>
+    </message>
+    <message>
+        <source>Kit:</source>
+        <translation>Комплект:</translation>
+    </message>
 </context>
 <context>
     <name>QmlProfiler::Internal::QmlProfilerClientManager</name>
@@ -24861,37 +26020,11 @@ Please use the stop button instead.</source>
         <translation>JavaScript</translation>
     </message>
 </context>
-<context>
-    <name>QmlProfiler::Internal::RemoteLinuxQmlProfilerRunner</name>
-    <message>
-        <source>Gathering ports failed: %1</source>
-        <translation>Не удалось зарезервировать порты: %1</translation>
-    </message>
-    <message>
-        <source>Not enough free ports on device for analyzing.
-</source>
-        <translation>Недостаточно свободных портов на устройстве для анализа.
-</translation>
-    </message>
-    <message>
-        <source>Starting remote process...
-</source>
-        <translation>Запуск внешнего процесса...</translation>
-    </message>
-    <message>
-        <source>Failure running remote process.</source>
-        <translation>Ошибка работы внешнего процесса.</translation>
-    </message>
-</context>
 <context>
     <name>QmlProjectManager::Internal::Manager</name>
     <message>
-        <source>Failed opening project &apos;%1&apos;: Project already open</source>
-        <translation>Не удалось открыть проект «%1»: проект уже открыт</translation>
-    </message>
-    <message>
-        <source>Failed opening project &apos;%1&apos;: Project file is not a file</source>
-        <translation>Не удалось открыть проект «%1»: файл проекта не является файлом</translation>
+        <source>Failed opening project &apos;%1&apos;: Project is not a file</source>
+        <translation>Не удалось открыть проект «%1»: проект не является файлом</translation>
     </message>
 </context>
 <context>
@@ -24937,14 +26070,6 @@ Please use the stop button instead.</source>
         <source>Main QML file:</source>
         <translation>Основной файл QML:</translation>
     </message>
-    <message>
-        <source>Run Environment</source>
-        <translation>Среда выполнения</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
 </context>
 <context>
     <name>QmlProjectManager::Internal::QmlProjectRunControl</name>
@@ -24964,23 +26089,35 @@ Please use the stop button instead.</source>
 <context>
     <name>QmlProjectManager::Internal::QmlProjectRunControlFactory</name>
     <message>
-        <source>Run</source>
-        <translation>Запустить</translation>
+        <source>Not enough free ports for QML debugging. </source>
+        <translation>Недостаточно свободных портов для отладки QML. </translation>
     </message>
 </context>
 <context>
-    <name>QmlProjectManager::QmlApplicationWizardDialog</name>
+    <name>QmlProjectManager::QmlApplicationWizard</name>
+    <message>
+        <source>Creates a Qt Quick 1 UI project with a single QML file that contains the main view. You can review Qt Quick 1 UI projects in the QML Viewer and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects. Requires Qt 4.8 or newer.</source>
+        <translation>Создание проекта Qt Quick 1 с одним файлом QML, содержащим главный интерфейс. Проверять проекты Qt Quick 1 можно без пересборки в QML Viewer. Для создания и запуска этого типа проектов не требуется интегрированная среда разработки. Требуется Qt версии 4.8 или выше.</translation>
+    </message>
+    <message>
+        <source>Qt Quick 1 UI</source>
+        <translation>Проект с интерфейсом Qt Quick 1</translation>
+    </message>
+    <message>
+        <source>Creates a Qt Quick 2 UI project with a single QML file that contains the main view. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects. Requires Qt 5.0 or newer.</source>
+        <translation>Создание проекта Qt Quick 2 с одним файлом QML, содержащим главный интерфейс. Проверять проекты Qt Quick 2 можно без пересборки в QML Scene. Для создания и запуска этого типа проектов не требуется интегрированная среда разработки. Требуется Qt версии 5.0 или выше.</translation>
+    </message>
     <message>
-        <source>Creates a Qt Quick 1 UI project with a single QML file that contains the main view.&amp;lt;br/&amp;gt;You can review Qt Quick 1 UI projects in the QML Viewer and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Requires &amp;lt;b&amp;gt;Qt 4.8&amp;lt;/b&amp;gt; or newer.</source>
-        <translation>Создание проекта Qt Quick 1 с одним файлом QML, содержащим главный интерфейс.&amp;lt;br/&amp;gt; Проверять проекты Qt Quick 1 можно без пересборки в QML Viewer. Для создания и запуска этого типа проектов не требуется интегрированная среда разработки. &amp;lt;b/r&amp;gt;&amp;lt;br/&amp;gt;Требуется &amp;lt;b&amp;gt;Qt 4.8&amp;lt;/b&amp;gt; или выше.</translation>
+        <source>Qt Quick 2 UI</source>
+        <translation>Проект с интерфейсом Qt Quick 2</translation>
     </message>
     <message>
-        <source>Creates a Qt Quick 2 UI project with a single QML file that contains the main view.&amp;lt;br/&amp;gt;You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Requires &amp;lt;b&amp;gt;Qt 5.0&amp;lt;/b&amp;gt; or newer.</source>
-        <translation>Создание проекта Qt Quick 2 с одним файлом QML, содержащим главный интерфейс.&amp;lt;br/&amp;gt; Проверять проекты Qt Quick 2 можно без пересборки в QML Scene. Для создания и запуска этого типа проектов не требуется интегрированная среда разработки. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Требуется &amp;lt;b&amp;gt;Qt 5.0&amp;lt;/b&amp;gt; или выше.</translation>
+        <source>Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.1 or newer.</source>
+        <translation>Создание проекта Qt Quick 2 с одним файлом QML, содержащим главный интерфейс и использующим Qt Quick Controls. Проверять проекты Qt Quick 2 можно без пересборки в QML Scene. Проекту необходимо, чтобы для вашего профиля Qt были установлены Qt Quick Controls. Требуется Qt версии 5.1 или выше.</translation>
     </message>
     <message>
-        <source>Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls.&amp;lt;br/&amp;gt;You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Requires &amp;lt;b&amp;gt;Qt 5.1&amp;lt;/b&amp;gt; or newer.</source>
-        <translation>Создание проекта Qt Quick 2 с одним файлом QML, содержащим главный интерфейс и использующим Qt Quick Controls.&amp;lt;br/&amp;gt; Проверять проекты Qt Quick 2 можно без пересборки в QML Scene. Проекту необходимо, чтобы для вашего профиля Qt были установлены Qt Quick Controls. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Требуется &amp;lt;b&amp;gt;Qt 5.1&amp;lt;/b&amp;gt; или выше.</translation>
+        <source>Qt Quick 2 UI with Controls</source>
+        <translation>Проект с интерфейсом Qt Quick 2 с элементами управления</translation>
     </message>
 </context>
 <context>
@@ -25010,6 +26147,13 @@ Please use the stop button instead.</source>
         <translation>Для комплекта не задан профиль Qt.</translation>
     </message>
 </context>
+<context>
+    <name>QmlProjectManager::QmlProjectEnvironmentAspect</name>
+    <message>
+        <source>System Environment</source>
+        <translation>Системная среда</translation>
+    </message>
+</context>
 <context>
     <name>QmlProjectManager::QmlProjectPlugin</name>
     <message>
@@ -25098,35 +26242,43 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <source>XML Source</source>
         <translation>Исходник XML</translation>
     </message>
-    <message>
-        <source>Bar Descriptor</source>
-        <translation>Описание панели</translation>
-    </message>
 </context>
 <context>
-    <name>Qnx::Internal::BarDescriptorEditorFactory</name>
+    <name>Qnx::Internal::BarDescriptorEditorAssetsWidget</name>
     <message>
-        <source>Bar descriptor editor</source>
-        <translation>Редактор описания панели</translation>
+        <source>Form</source>
+        <translation></translation>
     </message>
-</context>
-<context>
-    <name>Qnx::Internal::BarDescriptorEditorWidget</name>
     <message>
-        <source>StackedWidget</source>
-        <translation></translation>
+        <source>Add...</source>
+        <translation>Добавить...</translation>
     </message>
     <message>
-        <source>Package Information</source>
-        <translation>Информация о пакете</translation>
+        <source>Remove</source>
+        <translation>Удалить</translation>
     </message>
     <message>
-        <source>Package ID:</source>
-        <translation>ID пакета:</translation>
+        <source>Path</source>
+        <translation>Путь</translation>
     </message>
     <message>
-        <source>Author Information</source>
-        <translation>Информация об авторе</translation>
+        <source>Destination</source>
+        <translation>Назначение</translation>
+    </message>
+    <message>
+        <source>Entry-Point</source>
+        <translation>Точка входа</translation>
+    </message>
+    <message>
+        <source>Select File to Add</source>
+        <translation>Выберите файл для добавления</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BarDescriptorEditorAuthorInformationWidget</name>
+    <message>
+        <source>Form</source>
+        <translation></translation>
     </message>
     <message>
         <source>Author:</source>
@@ -25137,8 +26289,43 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <translation>ID автора:</translation>
     </message>
     <message>
-        <source>Entry-Point Text and Images</source>
-        <translation>Текст и изображения при запуске</translation>
+        <source>Set from debug token...</source>
+        <translation>Извлечь из токена отладки...</translation>
+    </message>
+    <message>
+        <source>Select Debug Token</source>
+        <translation>Выбор токена отладки</translation>
+    </message>
+    <message>
+        <source>Debug token:</source>
+        <translation>Токен отладки:</translation>
+    </message>
+    <message>
+        <source>Error Reading Debug Token</source>
+        <translation>Ошибка чтения токена отладки</translation>
+    </message>
+    <message>
+        <source>There was a problem reading debug token.</source>
+        <translation>Возникла ошибка при чтении токена отладки.</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BarDescriptorEditorEntryPointWidget</name>
+    <message>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Name:</source>
+        <translation>Имя:</translation>
+    </message>
+    <message>
+        <source>Description:</source>
+        <translation>Описание:</translation>
+    </message>
+    <message>
+        <source>Icon:</source>
+        <translation>Значок:</translation>
     </message>
     <message>
         <source>Clear</source>
@@ -25157,52 +26344,61 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <translation>Удалить</translation>
     </message>
     <message>
-        <source>Icon:</source>
-        <translation>Значок:</translation>
+        <source>Images (*.jpg *.png)</source>
+        <translation>Изображения (*.jpg *.png)</translation>
     </message>
     <message>
-        <source>Description:</source>
-        <translation>Описание:</translation>
+        <source>Select Splash Screen</source>
+        <translation>Выберите заставку</translation>
     </message>
     <message>
-        <source>Name:</source>
-        <translation>Название:</translation>
+        <source>&lt;font color=&quot;red&quot;&gt;Could not open &apos;%1&apos; for reading.&lt;/font&gt;</source>
+        <translation>&lt;font color=&quot;red&quot;&gt;Не удалось открыть «%1» для чтения.&lt;/font&gt;</translation>
     </message>
     <message>
-        <source>General</source>
-        <translation>Основное</translation>
+        <source>&lt;font color=&quot;red&quot;&gt;The selected image is too big (%1x%2). The maximum size is %3x%4 pixels.&lt;/font&gt;</source>
+        <translation>&lt;font color=&quot;red&quot;&gt;Выбранное изображение слишком велико (%1x%2). Максимальный размер %3x%4 точек.&lt;/font&gt;</translation>
     </message>
+</context>
+<context>
+    <name>Qnx::Internal::BarDescriptorEditorEnvironmentWidget</name>
     <message>
-        <source>Orientation:</source>
-        <translation>Ориентация:</translation>
+        <source>Form</source>
+        <translation></translation>
     </message>
     <message>
-        <source>Chrome:</source>
-        <translation>Декорации окна:</translation>
+        <source>Device Environment</source>
+        <translation>Среда устройства</translation>
     </message>
+</context>
+<context>
+    <name>Qnx::Internal::BarDescriptorEditorFactory</name>
     <message>
-        <source>Transparent main window</source>
-        <translation>Прозрачное главное окно</translation>
+        <source>Bar descriptor editor</source>
+        <translation>Редактор описания панели</translation>
     </message>
+</context>
+<context>
+    <name>Qnx::Internal::BarDescriptorEditorGeneralWidget</name>
     <message>
-        <source>Application Arguments:</source>
-        <translation>Параметры приложения:</translation>
+        <source>Form</source>
+        <translation></translation>
     </message>
     <message>
-        <source>Permissions</source>
-        <translation>Разрешения</translation>
+        <source>Orientation:</source>
+        <translation>Ориентация:</translation>
     </message>
     <message>
-        <source>Select All</source>
-        <translation>Выбрать все</translation>
+        <source>Chrome:</source>
+        <translation>Декорации окна:</translation>
     </message>
     <message>
-        <source>Deselect All</source>
-        <translation>Снять выделение</translation>
+        <source>Transparent main window</source>
+        <translation>Прозрачное главное окно</translation>
     </message>
     <message>
-        <source>Environment</source>
-        <translation>Среда</translation>
+        <source>Application Arguments:</source>
+        <translation>Параметры приложения:</translation>
     </message>
     <message>
         <source>Default</source>
@@ -25226,63 +26422,72 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
     </message>
     <message>
         <source>None</source>
-        <translation>Нет</translation>
+        <translation>Отсутствует</translation>
     </message>
+</context>
+<context>
+    <name>Qnx::Internal::BarDescriptorEditorPackageInformationWidget</name>
     <message>
-        <source>Device Environment</source>
-        <translation>Среда устройства</translation>
+        <source>Form</source>
+        <translation></translation>
     </message>
     <message>
-        <source>Images (*.jpg *.png)</source>
-        <translation>Изображения (*.jpg *.png)</translation>
+        <source>Package ID:</source>
+        <translation>ID пакета:</translation>
     </message>
     <message>
-        <source>Path</source>
-        <translation>Путь</translation>
+        <source>Package version:</source>
+        <translation>Версия пакета:</translation>
     </message>
     <message>
-        <source>Destination</source>
-        <translation>Назначение</translation>
+        <source>Package build ID:</source>
+        <translation>ID сборки пакета:</translation>
     </message>
+</context>
+<context>
+    <name>Qnx::Internal::BarDescriptorEditorPermissionsWidget</name>
     <message>
-        <source>Entry-Point</source>
-        <translation>Точка входа</translation>
+        <source>Form</source>
+        <translation></translation>
     </message>
     <message>
-        <source>Select Splash Screen</source>
-        <translation>Выберите заставку</translation>
+        <source>Select All</source>
+        <translation>Выделить всё</translation>
     </message>
     <message>
-        <source>Select File to Add</source>
-        <translation>Выберите файл для добавления</translation>
+        <source>Deselect All</source>
+        <translation>Снять выделение</translation>
     </message>
+</context>
+<context>
+    <name>Qnx::Internal::BarDescriptorEditorWidget</name>
     <message>
-        <source>Select Debug Token</source>
-        <translation>Выбор токена отладки</translation>
+        <source>Package Information</source>
+        <translation>Информация о пакете</translation>
     </message>
     <message>
-        <source>Debug token:</source>
-        <translation>Токен отладки:</translation>
+        <source>Assets</source>
+        <translation>Ресурсы</translation>
     </message>
     <message>
-        <source>Error Reading Debug Token</source>
-        <translation>Ошибка чтения токена отладки</translation>
+        <source>Author Information</source>
+        <translation>Информация об авторе</translation>
     </message>
     <message>
-        <source>There was a problem reading debug token</source>
-        <translation>Возникла ошибка при чтении токена отладки</translation>
+        <source>Entry-Point Text and Images</source>
+        <translation>Текст и изображения при запуске</translation>
     </message>
     <message>
-        <source>Package version:</source>
-        <translation>Версия пакета:</translation>
+        <source>General</source>
+        <translation>Основное</translation>
     </message>
     <message>
-        <source>Package build ID:</source>
-        <translation>ID сборки пакета:</translation>
+        <source>Permissions</source>
+        <translation>Разрешения</translation>
     </message>
     <message>
-        <source>Set from debug token...</source>
-        <translation>Извлечь из токена отладки...</translation>
+        <source>Environment</source>
+        <translation>Среда</translation>
     </message>
 </context>
 <context>
@@ -25292,77 +26497,133 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <translation>Разрешение</translation>
     </message>
     <message>
-        <source>Files</source>
-        <translation>Файлы</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to connect to the BBM Social Platform to access BBM contact lists and user profiles, invite BBM contacts to download your app, initiate BBM chats and share content from within your app, or stream data between apps in real time.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению подключаться к социальной платформе BBM для доступа к списку контактов и профилей пользователей, приглашать контакты загружать ваше приложение, начинать обсуждения и делиться данными из вашего приложения или потоковыми данными между приложениями в реальном времени.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <source>Read and write files that are shared between all applications run by the current user.</source>
-        <translation>Читать и записывать файлы, общие для всех приложений текущего пользователя.</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access the calendar on the device. This access includes viewing, adding, and deleting calendar appointments.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению доступ к календарю устройства, включая чтение, добавление и удаление событий.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <source>Microphone</source>
-        <translation>Микрофон</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to take pictures, record video, and use the flash.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению захват изображений, запись видео и использование flash.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <source>Access the audio stream from the microphone.</source>
-        <translation>Иметь доступ к аудио-потоку с микрофона.</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access the contacts stored on the device. This access includes viewing, creating, and deleting the contacts.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению доступ к списку контактов, сохранённому на устройстве, включая чтение, добавление и удаление контактов.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <source>GPS Location</source>
-        <translation>Позиционирование GPS</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access device identifiers such as serial number and PIN.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению получать идентификаторы устройства (такие как серийный номер и PIN).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <source>Read the current location of the device.</source>
-        <translation>Читать текущее положение устройсва.</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access the email and PIN messages stored on the device. This access includes viewing, creating, sending, and deleting the messages.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению доступ к сообщениям электронной почты и PIN, сохранённым на устройстве, включая чтение, создание, отправку и удаление сообщений.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <source>Camera</source>
-        <translation>Камера</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access the current GPS location of the device.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет приложению доступ к координатам GPS устройства.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to use Wi-fi, wired, or other connections to a destination that is not local on the user&apos;s device.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет приложению использовать Wi-Fi, проводное и прочие подключения к ресурсам, находящимся вне устройства.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access the device&apos;s current or saved locations.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет приложению доступ к текущим или сохранённым координатам устройства.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to record sound using the microphone.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению запись звука через микрофон.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <source>Capture images and video using the cameras.</source>
-        <translation>Захватывать изображения и видео используя камеры.</translation>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access the content stored in the notebooks on the device. This access includes adding and deleting entries and content.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению доступ к содержимому заметок, хранимых на устройстве, включая добавление и удаление записей и содержимого.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Post a notification to the notifications area of the screen.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Отправлять уведомления в соответствующую область экрана.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to use the Push Service with the BlackBerry Internet Service. This access allows the app to receive and request push messages. To use the Push Service with the BlackBerry Internet Service, you must register with BlackBerry. When you register, you receive a confirmation email message that contains information that your application needs to receive and request push messages. For more information about registering, visit https://developer.blackberry.com/services/push/. If you&apos;re using the Push Service with the BlackBerry Enterprise Server or the BlackBerry Device Service, you don&apos;t need to register with BlackBerry.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому устройству использовать сервис Push совместно с BlackBerry Internet Service. Он позволяет отправлять и получать Push-уведомления. Для использования сервиса необходимо зарегистрироваться в BlackBerry. При регистрации будет отправлено письмо подтверждения, которое содержит информацию, что ваше приложение требует приёма и отправки push сообщений. Подробнее о регистрации можно прочитать на сайте https://developer.blackberry.com/services/push/. Если вы используете сервис Push совместно с BlackBerry Enterprise Server или BlackBerry Device Service, то регистрация в BlackBerry не требуется.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows background processing. Without this permission, the app is stopped when the user switches focus to another app. Apps that use this permission are rigorously reviewed for acceptance to BlackBerry App World storefront for their use of power.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет работать в фоновом режиме. Без этого разрешения приложение будет останавливаться при смене фокуса. Приложения с этим разрешением очень тщательно проверяются на предмет энергопотребления для приёма в BlackBerry App World.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access pictures, music, documents, and other files stored on the user&apos;s device, at a remote storage provider, on a media card, or in the cloud.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению доступ к изображениям, музыке, документам и другим файлам, сохранённым на устройстве, во внешнем хранилище, на карточке и в облаке.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows this app to access the text messages stored on the device. The access includes viewing, creating, sending, and deleting text messages.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Позволяет этому приложению доступ к текстовым сообщениям, сохранённым на устройстве. Что даст ему право просматривать, создавать, отправлять и удалять их.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>Microphone</source>
+        <translation>Микрофон</translation>
+    </message>
+    <message>
+        <source>GPS Location</source>
+        <translation>Позиционирование GPS</translation>
+    </message>
+    <message>
+        <source>Camera</source>
+        <translation>Камера</translation>
     </message>
     <message>
         <source>Internet</source>
         <translation>Интернет</translation>
     </message>
     <message>
-        <source>Use a Wi-Fi, wired, or other connection to a destination that is not local.</source>
-        <translation>Использовать Wi-Fi, проводное или другие подключения к нелокальным ресурсам.</translation>
+        <source>BlackBerry Messenger</source>
+        <translation type="unfinished">BlackBerry Messenger</translation>
     </message>
     <message>
-        <source>Play Sounds</source>
-        <translation>Воспроизведение звуков</translation>
+        <source>Calendar</source>
+        <translation>Календарь</translation>
     </message>
     <message>
-        <source>Play an audio stream.</source>
-        <translation>Воспроизведение аудио-потоков.</translation>
+        <source>Contacts</source>
+        <translation>Контакты</translation>
+    </message>
+    <message>
+        <source>Email and PIN Messages</source>
+        <translation>Сообщения почты и PIN</translation>
+    </message>
+    <message>
+        <source>Location</source>
+        <translation>Координаты</translation>
+    </message>
+    <message>
+        <source>Notebooks</source>
+        <translation>Заметки</translation>
     </message>
     <message>
         <source>Post Notifications</source>
         <translation>Создание уведомлений</translation>
     </message>
     <message>
-        <source>Post a notification to the notifications area of the screen.</source>
-        <translation>Создавать уведомления в области уведомлений экрана.</translation>
+        <source>Push</source>
+        <translation>Push</translation>
+    </message>
+    <message>
+        <source>Run When Backgrounded</source>
+        <translation>Работать в фоне</translation>
     </message>
     <message>
-        <source>Set Audio Volume</source>
-        <translation>Установка громкости</translation>
+        <source>Shared Files</source>
+        <translation>Общие файлы</translation>
     </message>
     <message>
-        <source>Change the volume of an audio stream being played.</source>
-        <translation>Изменение громкости проигрываемого аудио-потока.</translation>
+        <source>Text Messages</source>
+        <translation>Текстовые сообщения</translation>
     </message>
     <message>
         <source>Device Identifying Information</source>
         <translation>Идентификационная информация устройства</translation>
     </message>
-    <message>
-        <source>Access unique device identifying information (e.g. PIN).</source>
-        <translation>Получать доступ к уникальной идентификационной информации устройства (например, PIN).</translation>
-    </message>
 </context>
 <context>
     <name>Qnx::Internal::BlackBerryAbstractDeployStep</name>
@@ -25397,6 +26658,35 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <translation>Активный</translation>
     </message>
 </context>
+<context>
+    <name>Qnx::Internal::BlackBerryCheckDevModeStep</name>
+    <message>
+        <source>Check Development Mode</source>
+        <translation>Проверить режим разработки</translation>
+    </message>
+    <message>
+        <source>Could not find command &apos;%1&apos; in the build environment</source>
+        <translation>Не удалось найти в среде сборки команду «%1»</translation>
+    </message>
+    <message>
+        <source>No hostname specified for device</source>
+        <translation>Имя узла не задано для устройства</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerryCheckDevModeStepConfigWidget</name>
+    <message>
+        <source>&lt;b&gt;Check development mode&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Проверка режима разработки&lt;/b&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerryCheckDevModeStepFactory</name>
+    <message>
+        <source>Check Development Mode</source>
+        <translation>Проверка режима разработки</translation>
+    </message>
+</context>
 <context>
     <name>Qnx::Internal::BlackBerryConfiguration</name>
     <message>
@@ -25420,40 +26710,40 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <translation>- Не найден отладчик GDB для эмулятора BB10.</translation>
     </message>
     <message>
-        <source>Cannot Setup BB10 Configuration</source>
+        <source>Cannot Set up BB10 Configuration</source>
         <translation>Не удалось настроить конфигурацию BB10</translation>
     </message>
     <message>
-        <source>Qt Version Already Known</source>
-        <translation>Профиль Qt уже известен</translation>
+        <source>This Qt version was already registered.</source>
+        <translation>Этот профиль Qt уже зарегистрирован.</translation>
     </message>
     <message>
-        <source>This Qt version was already registered</source>
-        <translation>Этот профиль Qt уже зарегистрирован</translation>
+        <source>Invalid Qt Version</source>
+        <translation>Неверный профиль Qt</translation>
     </message>
     <message>
-        <source>Invalid Qt version</source>
-        <translation>Неверный профиль Qt</translation>
+        <source>Unable to add BlackBerry Qt version.</source>
+        <translation>Невозможно добавить профиль Qt для BlackBerry.</translation>
     </message>
     <message>
-        <source>Unable to add BlackBerry Qt version</source>
-        <translation>Невозможно добавить профиль Qt для BlackBerry</translation>
+        <source>This compiler was already registered.</source>
+        <translation>Этот компилятор уже зарегистрирован.</translation>
     </message>
     <message>
-        <source>Compiler Already Known</source>
-        <translation>Компилятор уже известен</translation>
+        <source>This kit was already registered.</source>
+        <translation>Этот комплект уже зарегистрирован.</translation>
     </message>
     <message>
-        <source>This Compiler was already registered</source>
-        <translation>Этот компилятор уже зарегистрирован</translation>
+        <source>Qt Version Already Known</source>
+        <translation>Профиль Qt уже известен</translation>
     </message>
     <message>
-        <source>Kit Already Known</source>
-        <translation>Комплект уже известен</translation>
+        <source>Compiler Already Known</source>
+        <translation>Компилятор уже известен</translation>
     </message>
     <message>
-        <source>This Kit was already registered</source>
-        <translation>Этот комплект уже зарегистрирован</translation>
+        <source>Kit Already Known</source>
+        <translation>Комплект уже известен</translation>
     </message>
     <message>
         <source>BlackBerry 10 (%1) - Simulator</source>
@@ -25530,8 +26820,8 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
 <context>
     <name>Qnx::Internal::BlackBerryCreatePackageStep</name>
     <message>
-        <source>Create BAR packages</source>
-        <translation>Создание пакетов BAR</translation>
+        <source>Create packages</source>
+        <translation>Создание пакетов</translation>
     </message>
     <message>
         <source>Could not find packager command &apos;%1&apos; in the build environment</source>
@@ -25553,6 +26843,10 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <source>Could not create build directory &apos;%1&apos;</source>
         <translation>Невозможно создать каталог сборки «%1»</translation>
     </message>
+    <message>
+        <source>Missing passwords for signing packages</source>
+        <translation>Отсутствуют пароли для подписывания пакетов</translation>
+    </message>
     <message>
         <source>Error preparing application descriptor file</source>
         <translation>Ошибка подготовки файла описания приложения</translation>
@@ -25572,6 +26866,38 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <source>&lt;b&gt;Create packages&lt;/b&gt;</source>
         <translation>&lt;b&gt;Создание пакетов:&lt;/b&gt; </translation>
     </message>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Sign packages</source>
+        <translation>Подписывать пакеты</translation>
+    </message>
+    <message>
+        <source>CSK password:</source>
+        <translation>Пароль CSK:</translation>
+    </message>
+    <message>
+        <source>Keystore password:</source>
+        <translation>Пароль хранилища:</translation>
+    </message>
+    <message>
+        <source>Note: This will store the passwords in a world-readable file.</source>
+        <translation>Внимание: пароли будут храниться в свободно читаемом файле.</translation>
+    </message>
+    <message>
+        <source>Save passwords</source>
+        <translation>Сохранить пароли</translation>
+    </message>
+    <message>
+        <source>Show passwords</source>
+        <translation>Показывать пароли</translation>
+    </message>
+    <message>
+        <source>Package in development mode</source>
+        <translation>Пакет в режиме разработчика</translation>
+    </message>
 </context>
 <context>
     <name>Qnx::Internal::BlackBerryCreatePackageStepFactory</name>
@@ -25641,6 +26967,10 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <source>BAR Files (*.bar)</source>
         <translation>Файлы BAR (*.bar)</translation>
     </message>
+    <message>
+        <source>Requesting Device PIN...</source>
+        <translation>Запрос PIN устройства...</translation>
+    </message>
     <message>
         <source>Base directory does not exist.</source>
         <translation>Родительский каталог не существует.</translation>
@@ -25689,6 +27019,10 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <source>Failed to communicate with the inferior process.</source>
         <translation>Не удалось связаться с дочерним процессом.</translation>
     </message>
+    <message>
+        <source>Not yet registered to request debug tokens.</source>
+        <translation>Ещё не зарегистрирован для получения токенов отладки.</translation>
+    </message>
     <message>
         <source>An unknwon error has occurred.</source>
         <translation>Возникла неизвестная ошибка.</translation>
@@ -25708,6 +27042,20 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <source>Deploy to BlackBerry Device</source>
         <translation>Установка на устройство BlackBerry</translation>
     </message>
+    <message>
+        <source>Setup Application Descriptor File</source>
+        <translation>Задать файл описания приложения</translation>
+    </message>
+    <message>
+        <source>You need to set up a bar descriptor file to enable packaging.
+Do you want Qt Creator to generate it for your project?</source>
+        <translation>Для создания пакета необходимо настроить файл описания панели.
+Желаете, чтобы Qt Creator создал его?</translation>
+    </message>
+    <message>
+        <source>Don&apos;t ask again for this project</source>
+        <translation>Больше не спрашивать для этого проекта</translation>
+    </message>
     <message>
         <source>Cannot Set up Application Descriptor File</source>
         <translation>Не удалось настроить файл описания приложения</translation>
@@ -25720,16 +27068,6 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
         <source>Writing the bar descriptor file failed.</source>
         <translation>Не удалось записать файл описания панели.</translation>
     </message>
-    <message>
-        <source>Add bar-descriptor.xml File to Project</source>
-        <translation>Добавление файла bar-descriptor.xml в проект</translation>
-    </message>
-    <message>
-        <source>Qt Creator has set up a bar descriptor file to enable packaging.
-Do you want to add it to the project?</source>
-        <translation>Для создания пакета Qt Creator настроил файл описания панели.
-Включить его в проект?</translation>
-    </message>
 </context>
 <context>
     <name>Qnx::Internal::BlackBerryDeployConfigurationFactory</name>
@@ -25803,6 +27141,14 @@ Do you want to add it to the project?</source>
         <source>BlackBerry</source>
         <translation>BlackBerry</translation>
     </message>
+    <message>
+        <source>Connect to device</source>
+        <translation>Подключение к устройству</translation>
+    </message>
+    <message>
+        <source>Disconnect from device</source>
+        <translation>Отключение от устройства</translation>
+    </message>
 </context>
 <context>
     <name>Qnx::Internal::BlackBerryDeviceConfigurationFactory</name>
@@ -25901,6 +27247,10 @@ Do you want to add it to the project?</source>
         <source>Uploading debug token</source>
         <translation>Отправка токена отладки</translation>
     </message>
+    <message>
+        <source>Connection log:</source>
+        <translation>Журнал подключения:</translation>
+    </message>
 </context>
 <context>
     <name>Qnx::Internal::BlackBerryDeviceConfigurationWizard</name>
@@ -25908,22 +27258,6 @@ Do you want to add it to the project?</source>
         <source>New BlackBerry Device Configuration Setup</source>
         <translation>Настройка новой конфигурации устройства BlackBerry</translation>
     </message>
-    <message>
-        <source>Failure to Save Key File</source>
-        <translation>Ошибка сохранения файла ключа</translation>
-    </message>
-    <message>
-        <source>Failed to create directory: &apos;%1&apos;.</source>
-        <translation>Не удалось создать каталог: «%1».</translation>
-    </message>
-    <message>
-        <source>Private key file already exists: &apos;%1&apos;</source>
-        <translation>Файл закрытого ключа уже существует: «%1»</translation>
-    </message>
-    <message>
-        <source>Public key file already exists: &apos;%1&apos;</source>
-        <translation>Файл открытого ключа уже существует: «%1»</translation>
-    </message>
 </context>
 <context>
     <name>Qnx::Internal::BlackBerryDeviceConfigurationWizardFinalPage</name>
@@ -25997,10 +27331,6 @@ Do you want to add it to the project?</source>
         <source>Public key file:</source>
         <translation>Файл открытого ключа:</translation>
     </message>
-    <message>
-        <source>Generate</source>
-        <translation>Создать</translation>
-    </message>
     <message>
         <source>SSH Key Setup</source>
         <translation>Настройка ключа SSH</translation>
@@ -26013,6 +27343,21 @@ Do you want to add it to the project?</source>
         <source>Key Generation Failed</source>
         <translation>Не удалось создать ключ</translation>
     </message>
+    <message>
+        <source>Choose Private Key File Name</source>
+        <translation>Выберите имя файла секретного ключа</translation>
+    </message>
+    <message>
+        <source>Generate...</source>
+        <translation>Создать...</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerryDeviceConnection</name>
+    <message>
+        <source>Error connecting to device: java could not be found in the environment.</source>
+        <translation>Ошибка подключения к устройству: не удалось найти java.</translation>
+    </message>
 </context>
 <context>
     <name>Qnx::Internal::BlackBerryImportCertificateDialog</name>
@@ -26032,6 +27377,10 @@ Do you want to add it to the project?</source>
         <source>PKCS 12 Archives (*.p12)</source>
         <translation>Архивы PKCS 12 (*.p12)</translation>
     </message>
+    <message>
+        <source>Error parsing inferior process output.</source>
+        <translation>Ошибка разбора вывода дочернего процесса.</translation>
+    </message>
     <message>
         <source>Error</source>
         <translation>Ошибка</translation>
@@ -26148,6 +27497,14 @@ Do you want to add it to the project?</source>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
+    <message>
+        <source>Qt Creator</source>
+        <translation>Qt Creator</translation>
+    </message>
+    <message>
+        <source>It appears that your BlackBerry environment has already been configured.</source>
+        <translation>Похоже, что среда BlackBerry уже настроена.</translation>
+    </message>
     <message>
         <source>Clean BlackBerry 10 Configuration</source>
         <translation>Очистка конфигурации BlackBerry 10</translation>
@@ -26156,6 +27513,21 @@ Do you want to add it to the project?</source>
         <source>Are you sure you want to remove the current BlackBerry configuration?</source>
         <translation>Желаете удалить текущую конфигурацию BlackBerry?</translation>
     </message>
+    <message>
+        <source>Get started and configure your environment:</source>
+        <translation>Начните с настройки среды:</translation>
+    </message>
+    <message>
+        <source>environment setup wizard</source>
+        <translation>мастер настройки среды</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerryProcessParser</name>
+    <message>
+        <source>Authentication failed. Please make sure the password for the device is correct.</source>
+        <translation>Авторизация не прошла. Проверьте корректность пароля к устройству.</translation>
+    </message>
 </context>
 <context>
     <name>Qnx::Internal::BlackBerryQtVersion</name>
@@ -26191,14 +27563,6 @@ Do you want to add it to the project?</source>
         <source>CSJ PIN:</source>
         <translation>CSJ PIN:</translation>
     </message>
-    <message>
-        <source>CSK PIN:</source>
-        <translation>CSK PIN:</translation>
-    </message>
-    <message>
-        <source>Confirm CSK PIN:</source>
-        <translation>Повтор CSK PIN:</translation>
-    </message>
     <message>
         <source>Keystore password:</source>
         <translation>Пароль хранилища:</translation>
@@ -26224,8 +27588,8 @@ Do you want to add it to the project?</source>
         <translation>Состояние</translation>
     </message>
     <message>
-        <source>CSK PINs do not match.</source>
-        <translation>PIN&apos;ы CSK не совпадают.</translation>
+        <source>CSK passwords do not match.</source>
+        <translation>Пароли CSK не совпадают.</translation>
     </message>
     <message>
         <source>Keystore password does not match.</source>
@@ -26248,26 +27612,23 @@ Do you want to add it to the project?</source>
         <translation>Файлы CSJ (*.csj)</translation>
     </message>
     <message>
-        <source>Create Key</source>
-        <translation>Создание ключа</translation>
+        <source>Register Key</source>
+        <translation>Регистрация ключа</translation>
     </message>
-</context>
-<context>
-    <name>Qnx::Internal::BlackBerryRunConfiguration</name>
     <message>
-        <source>%1 on BlackBerry device</source>
-        <translation>%1 на устройстве BlackBerry</translation>
+        <source>CSK password:</source>
+        <translation>Пароль CSK:</translation>
     </message>
     <message>
-        <source>Run on BlackBerry device</source>
-        <translation>Запуск на устройстве BlackBerry</translation>
+        <source>Confirm CSK password:</source>
+        <translation>Повтор пароля CSK:</translation>
     </message>
 </context>
 <context>
-    <name>Qnx::Internal::BlackBerryRunConfigurationFactory</name>
+    <name>Qnx::Internal::BlackBerryRunConfiguration</name>
     <message>
-        <source>%1 on BlackBerry Device</source>
-        <translation>%1 на устройстве BlackBerry</translation>
+        <source>Run on BlackBerry device</source>
+        <translation>Запуск на устройстве BlackBerry</translation>
     </message>
 </context>
 <context>
@@ -26288,8 +27649,295 @@ Do you want to add it to the project?</source>
         <translation>Не выбрана активная конфигурация установки</translation>
     </message>
     <message>
-        <source>Run on BlackBerry Device</source>
-        <translation>Запуск на устройстве BlackBerry</translation>
+        <source>Device not connected</source>
+        <translation>Устройство не подключено</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerrySetupWizard</name>
+    <message>
+        <source>BlackBerry Development Environment Setup Wizard</source>
+        <translation>Мастер настройки среды разработки BlackBerry</translation>
+    </message>
+    <message>
+        <source>Reading device PIN...</source>
+        <translation>Чтение PIN устройства...</translation>
+    </message>
+    <message>
+        <source>Registering CSJ keys...</source>
+        <translation>Регистрация ключей CSJ...</translation>
+    </message>
+    <message>
+        <source>Generating developer certificate...</source>
+        <translation>Создание сертификата разработчика...</translation>
+    </message>
+    <message>
+        <source>Generating SSH keys...</source>
+        <translation>Создание ключей SSH...</translation>
+    </message>
+    <message>
+        <source>Requesting a debug token for the device...</source>
+        <translation>Запрос токена отладки для устройства...</translation>
+    </message>
+    <message>
+        <source>Now uploading the debug token...</source>
+        <translation>Отправка токена отладки...</translation>
+    </message>
+    <message>
+        <source>Writing device information...</source>
+        <translation>Запись информации об устройстве...</translation>
+    </message>
+    <message>
+        <source>Error reading device PIN. Please make sure that the specified device IP address is correct.</source>
+        <translation>Ошибка чтения PIN устройства. Убедитесь, что указанный IP адрес устройства верен.</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation>Ошибка</translation>
+    </message>
+    <message>
+        <source>Error creating developer certificate.</source>
+        <translation>Ошибка создания сертификата разработчика.</translation>
+    </message>
+    <message>
+        <source>Failed to request debug token: </source>
+        <translation>Не удалось получить токен отладки: </translation>
+    </message>
+    <message>
+        <source>Wrong CSK password.</source>
+        <translation>Неверный пароль CSK.</translation>
+    </message>
+    <message>
+        <source>Wrong keystore password.</source>
+        <translation>Неверный пароль хранилища ключей.</translation>
+    </message>
+    <message>
+        <source>Network unreachable.</source>
+        <translation>Сеть недоступна.</translation>
+    </message>
+    <message>
+        <source>Illegal device PIN.</source>
+        <translation>Неверный PIN устройства.</translation>
+    </message>
+    <message>
+        <source>Failed to start inferior process.</source>
+        <translation>Не удалось запустить дочерний процесс.</translation>
+    </message>
+    <message>
+        <source>Inferior processes timed out.</source>
+        <translation>Время дочернего процесса истекло.</translation>
+    </message>
+    <message>
+        <source>Inferior process has crashed.</source>
+        <translation>Дочерний процесс завершился крахом.</translation>
+    </message>
+    <message>
+        <source>Failed to communicate with the inferior process.</source>
+        <translation>Не удалось связаться с дочерним процессом.</translation>
+    </message>
+    <message>
+        <source>An unknwon error has occurred.</source>
+        <translation>Возникла неизвестная ошибка.</translation>
+    </message>
+    <message>
+        <source>Failed to upload debug token: </source>
+        <translation>Не удалось отправить токен отладки: </translation>
+    </message>
+    <message>
+        <source>No route to host.</source>
+        <translation>Отсутствует маршрут к узлу.</translation>
+    </message>
+    <message>
+        <source>Authentication failed.</source>
+        <translation>Не удалось авторизоваться.</translation>
+    </message>
+    <message>
+        <source>Development mode is disabled on the device.</source>
+        <translation>На устройстве выключен режим разработки.</translation>
+    </message>
+    <message>
+        <source>An unknwon error has happened.</source>
+        <translation>Возникла неизвестная ошибка.</translation>
+    </message>
+    <message>
+        <source>Key Generation Failed</source>
+        <translation>Не удалось создать ключ</translation>
+    </message>
+    <message>
+        <source>Failure to Save Key File</source>
+        <translation>Ошибка сохранения файла ключа</translation>
+    </message>
+    <message>
+        <source>Failed to create directory: &apos;%1&apos;.</source>
+        <translation>Не удалось создать каталог: «%1».</translation>
+    </message>
+    <message>
+        <source>Private key file already exists: &apos;%1&apos;</source>
+        <translation>Файл закрытого ключа уже существует: «%1»</translation>
+    </message>
+    <message>
+        <source>Public key file already exists: &apos;%1&apos;</source>
+        <translation>Файл открытого ключа уже существует: «%1»</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerrySetupWizardDevicePage</name>
+    <message>
+        <source>WizardPage</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Device name:</source>
+        <translation>Название устройства:</translation>
+    </message>
+    <message>
+        <source>IP or host name of the device</source>
+        <translation>IP или имя узла устройства</translation>
+    </message>
+    <message>
+        <source>Device IP address:</source>
+        <translation>IP адрес устройства:</translation>
+    </message>
+    <message>
+        <source>Device password:</source>
+        <translation>Пароль устройства:</translation>
+    </message>
+    <message>
+        <source>The password you use to unlock your device</source>
+        <translation>Пароль, используемый для разблокировки устройства</translation>
+    </message>
+    <message>
+        <source>Physical device</source>
+        <translation>Физическое устройство</translation>
+    </message>
+    <message>
+        <source>Simulator</source>
+        <translation>Эмулятор</translation>
+    </message>
+    <message>
+        <source>Configure BlackBerry Device Connection</source>
+        <translation>Настроить подключение устройства BlackBerry</translation>
+    </message>
+    <message>
+        <source>BlackBerry Device</source>
+        <translation>Устройство BlackBerry</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerrySetupWizardFinishPage</name>
+    <message>
+        <source>WizardPage</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Status</source>
+        <translation>Состояние</translation>
+    </message>
+    <message>
+        <source>Your environment is ready to be configured.</source>
+        <translation>Ваша среда готова для настройки.</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerrySetupWizardKeysPage</name>
+    <message>
+        <source>WizardPage</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Obtaining keys&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You will need to order a pair of CSJ files from BlackBerry, by &lt;a href=&quot;https://www.blackberry.com/SignedKeys/codesigning.html&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#004f69;&quot;&gt;visiting this page.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Получение ключей&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Вам необходимо заказать пару файлов CSJ у BlackBerry путём &lt;a href=&quot;https://www.blackberry.com/SignedKeys/codesigning.html&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#004f69;&quot;&gt;посещения этой страницы.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>PBDT CSJ file:</source>
+        <translation>Файл PBDT CSJ:</translation>
+    </message>
+    <message>
+        <source>RDK CSJ file:</source>
+        <translation>Файл RDK CSJ:</translation>
+    </message>
+    <message>
+        <source>CSJ PIN:</source>
+        <translation>CSJ PIN:</translation>
+    </message>
+    <message>
+        <source>The PIN you provided on the key request website</source>
+        <translation>PIN, указанный на сайте запроса ключа</translation>
+    </message>
+    <message>
+        <source>Password:</source>
+        <translation>Пароль:</translation>
+    </message>
+    <message>
+        <source>The password that will be used to access your keys and CSK files</source>
+        <translation>Пароль для доступа к ключам и файлам CSK</translation>
+    </message>
+    <message>
+        <source>Confirm password:</source>
+        <translation>Повтор пароля:</translation>
+    </message>
+    <message>
+        <source>Status</source>
+        <translation>Состояние</translation>
+    </message>
+    <message>
+        <source>Register Signing Keys</source>
+        <translation>Регистрация цифровой подписи</translation>
+    </message>
+    <message>
+        <source>Passwords do not match.</source>
+        <translation>Пароли не совпадают.</translation>
+    </message>
+    <message>
+        <source>Qt Creator</source>
+        <translation>Qt Creator</translation>
+    </message>
+    <message>
+        <source>This wizard will be closed and you will be taken to the BlackBerry key request web page. Do you want to continue?</source>
+        <translation>После закрытия мастера, вы будете перенаправлены на сайт запроса ключей BlackBerry. Продолжить?</translation>
+    </message>
+    <message>
+        <source>Browse CSJ File</source>
+        <translation>Выбор файла CSJ</translation>
+    </message>
+    <message>
+        <source>CSJ files (*.csj)</source>
+        <translation>Файлы CSJ (*.csj)</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerrySetupWizardNdkPage</name>
+    <message>
+        <source>Configure the NDK Path</source>
+        <translation>Настройка пути к NDK</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerrySetupWizardWelcomePage</name>
+    <message>
+        <source>Welcome to the BlackBerry Development Environment Setup Wizard.
+This wizard will guide you through the essential steps to deploy a ready-to-go development environment for BlackBerry 10 devices.</source>
+        <translation>Добро пожаловать в мастер настройки среды разработки BlackBerry.
+Этот мастер проведёт через все этапы настройки полностью готовой для работы среды разработки для устройств на BlackBerry 10.</translation>
+    </message>
+    <message>
+        <source>BlackBerry Development Environment Setup</source>
+        <translation>Настройка среды разработки BlackBerry</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::BlackBerrySigningPasswordsDialog</name>
+    <message>
+        <source>Package signing passwords</source>
+        <translation>Пароли подписывания пакета</translation>
+    </message>
+    <message>
+        <source>CSK password:</source>
+        <translation>Пароль CSK:</translation>
+    </message>
+    <message>
+        <source>Keystore password:</source>
+        <translation>Пароль хранилища:</translation>
     </message>
 </context>
 <context>
@@ -26299,8 +27947,12 @@ Do you want to add it to the project?</source>
         <translation>Файл описания панели (BlackBerry)</translation>
     </message>
     <message>
-        <source>Could not add mime-type for bar-descriptor.xml editor</source>
-        <translation>Не удалось добавить MIME-тип для редактора bar-descriptor.xml</translation>
+        <source>Could not add mime-type for bar-descriptor.xml editor.</source>
+        <translation>Не удалось добавить MIME-тип для редактора bar-descriptor.xml.</translation>
+    </message>
+    <message>
+        <source>Bar Descriptor</source>
+        <translation>Описание панели</translation>
     </message>
 </context>
 <context>
@@ -26310,6 +27962,30 @@ Do you want to add it to the project?</source>
         <translation>Путь к SDK не указан</translation>
     </message>
 </context>
+<context>
+    <name>Qnx::Internal::QnxAbstractRunSupport</name>
+    <message>
+        <source>Not enough free ports on device for debugging.</source>
+        <translation>Недостаточно свободных портов на устройстве для отладки.</translation>
+    </message>
+</context>
+<context>
+    <name>Qnx::Internal::QnxAnalyzeSupport</name>
+    <message>
+        <source>Preparing remote side...
+</source>
+        <translation>Подготовка удалённой стороны...
+</translation>
+    </message>
+    <message>
+        <source>The %1 process closed unexpectedly.</source>
+        <translation>Процесс %1 неожиданно завершился.</translation>
+    </message>
+    <message>
+        <source>Initial setup failed: %1</source>
+        <translation>Не удалось выполнить начальную настройку: %1</translation>
+    </message>
+</context>
 <context>
     <name>Qnx::Internal::QnxBaseQtConfigWidget</name>
     <message>
@@ -26369,6 +28045,34 @@ Do you want to add it to the project?</source>
         <translation>Устройство QNX</translation>
     </message>
 </context>
+<context>
+    <name>Qnx::Internal::QnxDeviceTester</name>
+    <message>
+        <source>%1 found.
+</source>
+        <translation>Найдено: %1.</translation>
+    </message>
+    <message>
+        <source>%1 not found.
+</source>
+        <translation>Не найдено: %1.</translation>
+    </message>
+    <message>
+        <source>An error occurred checking for %1.
+</source>
+        <translation>Возникла ошибка при проверке %1.</translation>
+    </message>
+    <message>
+        <source>SSH connection error: %1
+</source>
+        <translation>Ошибка SSH подключения: %1
+</translation>
+    </message>
+    <message>
+        <source>Checking for %1...</source>
+        <translation>Проверяется %1...</translation>
+    </message>
+</context>
 <context>
     <name>Qnx::Internal::QnxQtVersion</name>
     <message>
@@ -26402,8 +28106,8 @@ Do you want to add it to the project?</source>
 <context>
     <name>Qnx::Internal::QnxRunControlFactory</name>
     <message>
-        <source>Run on remote QNX device</source>
-        <translation>Запуск на удалённом QNX-устройстве</translation>
+        <source>No analyzer tool selected.</source>
+        <translation>Инструмент анализа не выбран.</translation>
     </message>
 </context>
 <context>
@@ -27406,18 +29110,6 @@ Adds the library and include paths to the .pro file.</source>
         <source>The .pro file &apos;%1&apos; is currently being parsed.</source>
         <translation>Идёт обработка файла .pro: «%1».</translation>
     </message>
-    <message>
-        <source>Clean Environment</source>
-        <translation>Чистая среда</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
-    <message>
-        <source>Build Environment</source>
-        <translation>Среда сборки</translation>
-    </message>
     <message>
         <source>Qt Run Configuration</source>
         <translation>Конфигурация выполнения Qt</translation>
@@ -27445,26 +29137,6 @@ Adds the library and include paths to the .pro file.</source>
         <source>Check this option to run the application on a Qt Virtual Framebuffer.</source>
         <translation>Включите, для запуска приложения в Qt Virtual Framebuffer.</translation>
     </message>
-    <message>
-        <source>Run Environment</source>
-        <translation>Среда выполнения</translation>
-    </message>
-    <message>
-        <source>Base environment for this run configuration:</source>
-        <translation>Базовая среда данной конфигурации выполнения:</translation>
-    </message>
-    <message>
-        <source>Clean Environment</source>
-        <translation>Чистая среда</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
-    <message>
-        <source>Build Environment</source>
-        <translation>Среда сборки</translation>
-    </message>
     <message>
         <source>Arguments:</source>
         <translation>Параметры:</translation>
@@ -27510,34 +29182,6 @@ Adds the library and include paths to the .pro file.</source>
         <translation>Создание проекта приложения Qt Quick 1, который может содержать код как QML, так и на С++, а так же включает QDeclarativeView.
 
 </translation>
-    </message>
-    <message>
-        <source>Qt Quick 1 Application (Built-in Elements)</source>
-        <translation>Приложение Qt Quick 1 (встроенные элементы)</translation>
-    </message>
-    <message>
-        <source>The built-in elements in the QtQuick 1 namespace allow you to write cross-platform applications with a custom look and feel.
-
-Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
-        <translation>Встроенные элементы пространства имён QtQuick 1 позволяют создавать кросс-платформенные приложения с особым внешним видом и эргономикой.
-&lt;br/&gt;
-Требуется &lt;b&gt;Qt&lt;/b&gt; версии &lt;b&gt;4.7.0&lt;/b&gt; и выше.</translation>
-    </message>
-    <message>
-        <source>Qt Quick 2 Application (Built-in Elements)</source>
-        <translation>Приложение Qt Quick 2 (встроенные элементы)</translation>
-    </message>
-    <message>
-        <source>Creates a Qt Quick 2 application project that can contain both QML and C++ code and includes a QQuickView.
-
-The built-in elements in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel.
-
-Requires &lt;b&gt;Qt 5.0&lt;/b&gt; or newer.</source>
-        <translation>Создание проекта приложения Qt Quick 2, который может одновременно содержать код С++ и QML, а также включать QQuickView.
-
-Встроенные элементы пространства имён QtQuick 2 позволяют создавать кросс-платформенные приложения с особым внешним видом и эргономикой.
-
-Требуется &lt;b&gt;Qt&lt;/b&gt; версии &lt;b&gt;5.0&lt;/b&gt; и выше.</translation>
     </message>
     <message>
         <source>Qt Quick 1 Application for MeeGo Harmattan</source>
@@ -27566,6 +29210,38 @@ Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer, and the component set installed f
         <translation>Элементы Qt Quick для MeeGo Harmattan - это набор готовых элементов разработанных с учётом особенностей внешнего вида приложений для платформы MeeGo/Harmattan.
 &lt;br/&gt;
 Требуется &lt;b&gt;Qt&lt;/b&gt; версии не ниже &lt;b&gt;4.7.4&lt;/b&gt; и установленный набор элементов для выбранного профиля Qt.</translation>
+    </message>
+    <message>
+        <source>Creates a Qt Quick 2 application project that can contain both QML and C++ code and includes a QQuickView.
+
+</source>
+        <translation>Создание проекта приложения Qt Quick 2, который может содержать код как QML, так и на С++, а так же включает QQuickView.
+
+</translation>
+    </message>
+    <message>
+        <source>Qt Quick 1 Application (Built-in Types)</source>
+        <translation>Приложение Qt Quick 1 (встроенные типы)</translation>
+    </message>
+    <message>
+        <source>The built-in QML types in the QtQuick 1 namespace allow you to write cross-platform applications with a custom look and feel.
+
+Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
+        <translation>Встроенные типы QML из пространства имён QtQuick 1 позволяют создавать кросс-платформенные приложения с особым внешним видом и эргономикой.
+&lt;br/&gt;
+Требуется &lt;b&gt;Qt&lt;/b&gt; версии &lt;b&gt;4.7.0&lt;/b&gt; и выше.</translation>
+    </message>
+    <message>
+        <source>Qt Quick 2 Application (Built-in Types)</source>
+        <translation>Приложение Qt Quick 2 (встроенные типы)</translation>
+    </message>
+    <message>
+        <source>The built-in QML types in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel.
+
+Requires &lt;b&gt;Qt 5.0&lt;/b&gt; or newer.</source>
+        <translation>Встроенные типы QML из пространства имён QtQuick 2 позволяют создавать кросс-платформенные приложения с особым внешним видом и эргономикой.
+&lt;br/&gt;
+Требуется &lt;b&gt;Qt&lt;/b&gt; версии &lt;b&gt;5.0&lt;/b&gt; и выше.</translation>
     </message>
     <message>
         <source>Creates a deployable Qt Quick application from existing QML files. All files and directories that reside in the same directory as the main .qml file are deployed. You can modify the contents of the directory any time before deploying.
@@ -27809,22 +29485,6 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
         <source>Configuration unchanged, skipping qmake step.</source>
         <translation>Настройки не изменились, этап qmake пропускается.</translation>
     </message>
-    <message>
-        <source>No Qt version.</source>
-        <translation>Профиль Qt не задан.</translation>
-    </message>
-    <message>
-        <source>Invalid Qt version.</source>
-        <translation>Некорректный профиль Qt.</translation>
-    </message>
-    <message>
-        <source>Requires Qt 4.7.1 or newer.</source>
-        <translation>Требуется Qt версии не ниже 4.7.1.</translation>
-    </message>
-    <message>
-        <source>Library not available. &lt;a href=&apos;compile&apos;&gt;Compile...&lt;/a&gt;</source>
-        <translation>Библиотека отсутствует. &lt;a href=&apos;compile&apos;&gt;Собрать...&lt;/a&gt;</translation>
-    </message>
 </context>
 <context>
     <name>Qt4ProjectManager::QMakeStepConfigWidget</name>
@@ -27836,10 +29496,6 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
         <source>The option will only take effect if the project is recompiled. Do you want to recompile now?</source>
         <translation>Этот параметр вступит в силу только после перекомпиляции проекта. Перекомпилировать его?</translation>
     </message>
-    <message>
-        <source>Building helpers</source>
-        <translation>Сборка помощников</translation>
-    </message>
     <message>
         <source>&lt;b&gt;qmake:&lt;/b&gt; No Qt version set. Cannot run qmake.</source>
         <translation>&lt;b&gt;qmake:&lt;/b&gt; Профиль Qt не выбран. Невозможно запустить qmake.</translation>
@@ -27996,16 +29652,12 @@ Reason: %2</source>
         <translation>Обновление созданных файлов</translation>
     </message>
     <message>
-        <source>The following files are either outdated or have been modified:&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Do you want Qt Creator to update the files? Any changes will be lost.</source>
-        <translation>Следующие файлы устарели или были изменены:&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Желаете, чтобы Qt Creator обновил их? При этом все изменения будут потеряны.</translation>
-    </message>
-    <message>
-        <source>Failed opening project &apos;%1&apos;: Project file does not exist</source>
-        <translation>Не удалось открыть проект «%1»: файл проекта отсутствует</translation>
+        <source>In project&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;The following files are either outdated or have been modified:&lt;br&gt;&lt;br&gt;%2&lt;br&gt;&lt;br&gt;Do you want Qt Creator to update the files? Any changes will be lost.</source>
+        <translation>В проекте&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Следующие файлы или устарели, или были изменены:&lt;br&gt;&lt;br&gt;%2&lt;br&gt;&lt;br&gt;Желаете, чтобы Qt Creator обновил их? Все изменения будут утеряны.</translation>
     </message>
     <message>
-        <source>Failed opening project &apos;%1&apos;: Project already open</source>
-        <translation>Не удалось открыть проект «%1»: проект уже открыт</translation>
+        <source>Failed opening project &apos;%1&apos;: Project is not a file</source>
+        <translation>Не удалось открыть проект «%1»: проект не является файлом</translation>
     </message>
     <message>
         <source>QMake</source>
@@ -28038,22 +29690,6 @@ Reason: %2</source>
         <source>Other files</source>
         <translation>Другие файлы</translation>
     </message>
-    <message>
-        <source>Cannot Open File</source>
-        <translation>Не удалось открыть файл</translation>
-    </message>
-    <message>
-        <source>Cannot open the file for editing with VCS.</source>
-        <translation>Не удалось открыть файл для правки с помощью VCS.</translation>
-    </message>
-    <message>
-        <source>Cannot Set Permissions</source>
-        <translation>Не удалось задать права доступа</translation>
-    </message>
-    <message>
-        <source>Cannot set permissions to writable.</source>
-        <translation>Не удалось задать права доступа на запись.</translation>
-    </message>
     <message>
         <source>There are unsaved changes for project file %1.</source>
         <translation>Имеются несохранённые изменения в файле проекта %1.</translation>
@@ -28370,18 +30006,6 @@ cannot be found in the path.</source>
 %1
 в стандартных путях.</translation>
     </message>
-    <message>
-        <source>Clean Environment</source>
-        <translation>Чистая среда</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
-    <message>
-        <source>Build Environment</source>
-        <translation>Среда сборки</translation>
-    </message>
     <message>
         <source>Custom Executable</source>
         <translation>Особая программа</translation>
@@ -28401,8 +30025,8 @@ cannot be found in the path.</source>
 <context>
     <name>QtSupport::Internal::CustomExecutableConfigurationWidget</name>
     <message>
-        <source>Command:</source>
-        <translation>Команда:</translation>
+        <source>Executable:</source>
+        <translation>Программа:</translation>
     </message>
     <message>
         <source>Arguments:</source>
@@ -28416,26 +30040,6 @@ cannot be found in the path.</source>
         <source>Run in &amp;terminal</source>
         <translation>Запускать в &amp;терминале</translation>
     </message>
-    <message>
-        <source>Run Environment</source>
-        <translation>Среда выполнения</translation>
-    </message>
-    <message>
-        <source>Base environment for this run configuration:</source>
-        <translation>Базовая среда данной конфигурации выполнения:</translation>
-    </message>
-    <message>
-        <source>Clean Environment</source>
-        <translation>Чистая среда</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
-    <message>
-        <source>Build Environment</source>
-        <translation>Среда сборки</translation>
-    </message>
 </context>
 <context>
     <name>QtSupport::Internal::DebuggingHelper</name>
@@ -28710,13 +30314,6 @@ cannot be found in the path.</source>
         <translation>Добавить...</translation>
     </message>
 </context>
-<context>
-    <name>QtSupport::Internal::QtVersionsModel</name>
-    <message>
-        <source>All Versions</source>
-        <translation>Все версии</translation>
-    </message>
-</context>
 <context>
     <name>QtSupport::Internal::ShowBuildLog</name>
     <message>
@@ -28972,6 +30569,13 @@ cannot be found in the path.</source>
         <translation>Рамка</translation>
     </message>
 </context>
+<context>
+    <name>RefactoringFile::apply</name>
+    <message>
+        <source>Refactoring cannot be applied.</source>
+        <translation>Невозможно применить рефакторинг.</translation>
+    </message>
+</context>
 <context>
     <name>RemoteLinux</name>
     <message>
@@ -29044,6 +30648,13 @@ Is the device connected and set up for network access?</source>
         <translation>Не удалось установить пакет.</translation>
     </message>
 </context>
+<context>
+    <name>RemoteLinux::AbstractRemoteLinuxRunSupport</name>
+    <message>
+        <source>Not enough free ports on device for debugging.</source>
+        <translation>Недостаточно свободных портов на устройстве для отладки.</translation>
+    </message>
+</context>
 <context>
     <name>RemoteLinux::AbstractUploadAndInstallPackageService</name>
     <message>
@@ -29232,6 +30843,10 @@ In addition, device connectivity will be tested.</source>
         <source>Connection Data</source>
         <translation>Данные соединения</translation>
     </message>
+    <message>
+        <source>Choose a Private Key File</source>
+        <translation>Выберите секретный ключ</translation>
+    </message>
     <message>
         <source>Generic Linux Device</source>
         <translation>Обычное Linux-устройство</translation>
@@ -29451,8 +31066,16 @@ Remote stderr was: &apos;%1&apos;</source>
 <context>
     <name>RemoteLinux::Internal::RemoteLinuxRunControlFactory</name>
     <message>
-        <source>Run on remote Linux device</source>
-        <translation>Запуск на удалённом Linux-устройстве</translation>
+        <source>Cannot debug: Kit has no device.</source>
+        <translation>Отладка невозможна: у комплекта нет устройства.</translation>
+    </message>
+    <message>
+        <source>Cannot debug: Not enough free ports available.</source>
+        <translation>Отладка невозможна: недостаточно свободных портов.</translation>
+    </message>
+    <message>
+        <source>No analyzer tool selected.</source>
+        <translation>Инструмент анализа не выбран.</translation>
     </message>
 </context>
 <context>
@@ -29477,10 +31100,6 @@ Remote stderr was: &apos;%1&apos;</source>
         <source>Initial setup failed: %1</source>
         <translation>Не удалось выполнить начальную настройку: %1</translation>
     </message>
-    <message>
-        <source>Not enough free ports on device for debugging.</source>
-        <translation>Недостаточно свободных портов на устройстве для отладки.</translation>
-    </message>
 </context>
 <context>
     <name>RemoteLinux::LinuxDeviceTestDialog</name>
@@ -29520,6 +31139,22 @@ Remote stderr was: &apos;%1&apos;</source>
         <translation>Закрыть</translation>
     </message>
 </context>
+<context>
+    <name>RemoteLinux::RemoteLinuxAnalyzeSupport</name>
+    <message>
+        <source>Checking available ports...
+</source>
+        <translation>Проверка доступных портов...</translation>
+    </message>
+    <message>
+        <source>Failure running remote process.</source>
+        <translation>Ошибка работы внешнего процесса.</translation>
+    </message>
+    <message>
+        <source>Initial setup failed: %1</source>
+        <translation>Не удалось выполнить начальную настройку: %1</translation>
+    </message>
+</context>
 <context>
     <name>RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceService</name>
     <message>
@@ -29600,6 +31235,36 @@ Remote stderr was: &apos;%1&apos;</source>
         <translation>Внешний каталог</translation>
     </message>
 </context>
+<context>
+    <name>RemoteLinux::RemoteLinuxEnvironmentAspect</name>
+    <message>
+        <source>Clean Environment</source>
+        <translation>Чистая среда</translation>
+    </message>
+    <message>
+        <source>System Environment</source>
+        <translation>Системная среда</translation>
+    </message>
+</context>
+<context>
+    <name>RemoteLinux::RemoteLinuxEnvironmentAspectWidget</name>
+    <message>
+        <source>Fetch Device Environment</source>
+        <translation>Загрузить среду устройства</translation>
+    </message>
+    <message>
+        <source>Cancel Fetch Operation</source>
+        <translation>Прервать операцию загрузки</translation>
+    </message>
+    <message>
+        <source>Device Error</source>
+        <translation>Ошибка устройства</translation>
+    </message>
+    <message>
+        <source>Fetching environment failed: %1</source>
+        <translation>Не удалось загрузить окружение: %1</translation>
+    </message>
+</context>
 <context>
     <name>RemoteLinux::RemoteLinuxRunConfiguration</name>
     <message>
@@ -29616,21 +31281,9 @@ Remote stderr was: &apos;%1&apos;</source>
         <extracomment>Remote Linux run configuration default display name</extracomment>
         <translation>Запуск на внешнем устройстве</translation>
     </message>
-    <message>
-        <source>Clean Environment</source>
-        <translation>Чистая среда</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
 </context>
 <context>
     <name>RemoteLinux::RemoteLinuxRunConfigurationWidget</name>
-    <message>
-        <source>Fetch Device Environment</source>
-        <translation>Загрузить среду устройства</translation>
-    </message>
     <message>
         <source>Executable on host:</source>
         <translation>Программа на машине:</translation>
@@ -29659,18 +31312,6 @@ Remote stderr was: &apos;%1&apos;</source>
         <source>Working directory:</source>
         <translation>Рабочий каталог:</translation>
     </message>
-    <message>
-        <source>Base environment for this run configuration:</source>
-        <translation>Базовая среда данной конфигурации выполнения:</translation>
-    </message>
-    <message>
-        <source>Clean Environment</source>
-        <translation>Чистая среда</translation>
-    </message>
-    <message>
-        <source>System Environment</source>
-        <translation>Системная среда</translation>
-    </message>
     <message>
         <source>Unknown</source>
         <translation>Неизвестная</translation>
@@ -29679,18 +31320,6 @@ Remote stderr was: &apos;%1&apos;</source>
         <source>Remote path not set</source>
         <translation>Не задан внешний путь</translation>
     </message>
-    <message>
-        <source>Cancel Fetch Operation</source>
-        <translation>Прервать операцию загрузки</translation>
-    </message>
-    <message>
-        <source>Device Error</source>
-        <translation>Ошибка устройства</translation>
-    </message>
-    <message>
-        <source>Fetching environment failed: %1</source>
-        <translation>Не удалось загрузить окружение: %1</translation>
-    </message>
 </context>
 <context>
     <name>RemoteLinux::SshKeyDeployer</name>
@@ -29974,6 +31603,13 @@ Remote stderr was: &apos;%1&apos;</source>
         <translation>%1 (текущая сессия)</translation>
     </message>
 </context>
+<context>
+    <name>ShowEditor</name>
+    <message>
+        <source>Show Editor</source>
+        <translation>Открыть редактор</translation>
+    </message>
+</context>
 <context>
     <name>SshConnection</name>
     <message>
@@ -30560,6 +32196,10 @@ with a password, which you can enter below.</source>
         <source>List of comma separated wildcard filters</source>
         <translation>Список масок, разделённых запятой</translation>
     </message>
+    <message>
+        <source>Aborting replace.</source>
+        <translation>Прерывание замены.</translation>
+    </message>
 </context>
 <context>
     <name>TextEditor::BaseTextDocument</name>
@@ -31201,6 +32841,10 @@ The following encodings are likely to fit:</source>
         <source>Always open links in another split</source>
         <translation>Всегда открывать ссылки в отдельной панели</translation>
     </message>
+    <message>
+        <source>Display file encoding</source>
+        <translation>Показывать кодировку файла</translation>
+    </message>
 </context>
 <context>
     <name>TextEditor::Internal::FindInCurrentFile</name>
@@ -31317,10 +32961,18 @@ The following encodings are likely to fit:</source>
 </context>
 <context>
     <name>TextEditor::Internal::LineNumberFilter</name>
+    <message>
+        <source>Line %1, Column %2</source>
+        <translation>Строка %1, столбец %2</translation>
+    </message>
     <message>
         <source>Line %1</source>
         <translation>Строка %1</translation>
     </message>
+    <message>
+        <source>Column %1</source>
+        <translation>Столбец %1</translation>
+    </message>
     <message>
         <source>Line in Current Document</source>
         <translation>Строка в текущем документе</translation>
@@ -31628,6 +33280,14 @@ Influences the indentation of continuation lines.
         <source>With Regular Indent</source>
         <translation>Отступами</translation>
     </message>
+    <message>
+        <source>The text editor indentation setting is used for non-code files only. See the C++ and Qt Quick coding style settings to configure indentation for code files.</source>
+        <translation>Настройки отступов текстового редактора не используются для кода программ. Откройте настройки стилей C++ и Qt Quick для задания отступов в исходных текстах.</translation>
+    </message>
+    <message>
+        <source>&lt;i&gt;Code indentation is configured in &lt;a href=&quot;C++&quot;&gt;C++&lt;/a&gt; and &lt;a href=&quot;QtQuick&quot;&gt;Qt Quick&lt;/a&gt; settings.&lt;/i&gt;</source>
+        <translation>&lt;i&gt;Отступы в коде задаются в настройках &lt;a href=&quot;C++&quot;&gt;C++&lt;/a&gt; и &lt;a href=&quot;QtQuick&quot;&gt;Qt Quick&lt;/a&gt;.&lt;/i&gt;</translation>
+    </message>
 </context>
 <context>
     <name>TextEditor::Internal::TextEditorPlugin</name>
@@ -31702,6 +33362,10 @@ Influences the indentation of continuation lines.
         <source>Create Getter and Setter Member Functions</source>
         <translation>Создать методы получения и установки значения</translation>
     </message>
+    <message>
+        <source>Generate Missing Q_PROPERTY Members...</source>
+        <translation>Создание отсутствующих членов Q_PROPERTY...</translation>
+    </message>
 </context>
 <context>
     <name>TextEditor::TextEditorActionHandler</name>
@@ -32006,6 +33670,14 @@ Influences the indentation of continuation lines.
         <source>Follow Symbol Under Cursor in Next Split</source>
         <translation>Перейти к символу под курсором в следующей панели</translation>
     </message>
+    <message>
+        <source>Meta+E, F2</source>
+        <translation>Meta+E, F2</translation>
+    </message>
+    <message>
+        <source>Ctrl+E, F2</source>
+        <translation>Ctrl+E, F2</translation>
+    </message>
     <message>
         <source>Jump To File Under Cursor</source>
         <translation>Перейти к файлу под курсором</translation>
@@ -32095,8 +33767,8 @@ Influences the indentation of continuation lines.
         <translation>Перейти к следующему слову с выделением с учётом Верблюжего Регистра</translation>
     </message>
     <message>
-        <source>&lt;line number&gt;</source>
-        <translation>&lt;номер строки&gt;</translation>
+        <source>&lt;line&gt;:&lt;column&gt;</source>
+        <translation>&lt;строка&gt;:&lt;столбец&gt;</translation>
     </message>
 </context>
 <context>
@@ -32459,6 +34131,54 @@ Will not be applied to whitespace in comments and strings.</source>
         <source>Location in the files where the difference is (in diff editor).</source>
         <translation>Расположение в файлах, где есть изменения (в редакторе изменений).</translation>
     </message>
+    <message>
+        <source>Diff File Line</source>
+        <translation>Сравнение: строка файла</translation>
+    </message>
+    <message>
+        <source>Applied to lines with file information in differences (in side-by-side diff editor).</source>
+        <translation>Применяется к строкам с информацией о сравниваемых файлах (при двустороннем сравнении).</translation>
+    </message>
+    <message>
+        <source>Diff Context Line</source>
+        <translation>Сравнение: контекстная строка</translation>
+    </message>
+    <message>
+        <source>Applied to lines describing hidden context in differences (in side-by-side diff editor).</source>
+        <translation>Применяется к строкам с описанием контекста отличий (при двустороннем сравнении).</translation>
+    </message>
+    <message>
+        <source>Diff Source Line</source>
+        <translation>Сравнение: исходная строка</translation>
+    </message>
+    <message>
+        <source>Applied to source lines with changes in differences (in side-by-side diff editor).</source>
+        <translation>Применяется к изменённым строкам исходного файла (при двустороннем сравнении).</translation>
+    </message>
+    <message>
+        <source>Diff Source Character</source>
+        <translation>Сравнение: исходный символ</translation>
+    </message>
+    <message>
+        <source>Applied to removed characters in differences (in side-by-side diff editor).</source>
+        <translation>Применяется к удалённым символам (при двустороннем сравнении).</translation>
+    </message>
+    <message>
+        <source>Diff Destination Line</source>
+        <translation>Сравнение: итоговая строка</translation>
+    </message>
+    <message>
+        <source>Applied to destination lines with changes in differences (in side-by-side diff editor).</source>
+        <translation>Применяется к изменённым строкам итогового файла (при двустороннем сравнении).</translation>
+    </message>
+    <message>
+        <source>Diff Destination Character</source>
+        <translation>Сравнение: итоговый символ</translation>
+    </message>
+    <message>
+        <source>Applied to added characters in differences (in side-by-side diff editor).</source>
+        <translation>Применяется к добавленным символам (при двустороннем сравнении).</translation>
+    </message>
     <message>
         <source>Behavior</source>
         <translation>Поведение</translation>
@@ -32660,10 +34380,18 @@ Will not be applied to whitespace in comments and strings.</source>
         <source>To-Do Entries</source>
         <translation>Записи To-Do</translation>
     </message>
+    <message>
+        <source>Current File</source>
+        <translation>Текущий файл</translation>
+    </message>
     <message>
         <source>Scan in the current opened file</source>
         <translation>Поиск по текущему открытому файлу</translation>
     </message>
+    <message>
+        <source>Whole Project</source>
+        <translation>Весь проект</translation>
+    </message>
     <message>
         <source>Scan in the whole project</source>
         <translation>Поиск по всему проекту</translation>
@@ -32861,8 +34589,8 @@ Will not be applied to whitespace in comments and strings.</source>
         <translation>Терминальная команда, возможно, не является командой оболочки.</translation>
     </message>
     <message>
-        <source>Cannot start the terminal emulator &apos;%1&apos;.</source>
-        <translation>Не удалось запустить эмулятор терминала «%1».</translation>
+        <source>Cannot start the terminal emulator &apos;%1&apos;, change the setting in the Environment options.</source>
+        <translation>Не удалось запустить эмулятор терминала «%1», смените настройки в параметрах среды.</translation>
     </message>
     <message>
         <source>Cannot create socket &apos;%1&apos;: %2</source>
@@ -33510,12 +35238,16 @@ Will not be applied to whitespace in comments and strings.</source>
         <translation>Редактор изменений Git</translation>
     </message>
     <message>
-        <source>Git Submit Editor</source>
+        <source>Git Commit Editor</source>
         <translation>Редактор фиксаций Git</translation>
     </message>
     <message>
-        <source>Mercurial Command Log Editor</source>
-        <translation>Редактор журнала команд Mercurial</translation>
+        <source>Git Rebase Editor</source>
+        <translation>Редактор перебазирований Git</translation>
+    </message>
+    <message>
+        <source>Git Submit Editor</source>
+        <translation>Редактор фиксаций Git</translation>
     </message>
     <message>
         <source>Mercurial File Log Editor</source>
@@ -33537,10 +35269,6 @@ Will not be applied to whitespace in comments and strings.</source>
         <source>Perforce.SubmitEditor</source>
         <translation>Редактор фиксаций Perforce</translation>
     </message>
-    <message>
-        <source>Perforce CommandLog Editor</source>
-        <translation>Редактор журнала команд Perforce</translation>
-    </message>
     <message>
         <source>Perforce Log Editor</source>
         <translation>Редактор журнала Perforce</translation>
@@ -33557,10 +35285,6 @@ Will not be applied to whitespace in comments and strings.</source>
         <source>Subversion Commit Editor</source>
         <translation>Редактор фиксаций Subversion</translation>
     </message>
-    <message>
-        <source>Subversion Command Log Editor</source>
-        <translation>Редактор журнала команд Subversion</translation>
-    </message>
     <message>
         <source>Subversion File Log Editor</source>
         <translation>Редактор журнала файлов Subversion</translation>
@@ -33573,10 +35297,6 @@ Will not be applied to whitespace in comments and strings.</source>
         <source>Subversion Diff Editor</source>
         <translation>Редактор изменений Subversion</translation>
     </message>
-    <message>
-        <source>Bazaar Command Log Editor</source>
-        <translation>Редактор журнала команд Bazaar</translation>
-    </message>
     <message>
         <source>Bazaar File Log Editor</source>
         <translation>Редактор журнала файлов Bazaar</translation>
@@ -33597,10 +35317,6 @@ Will not be applied to whitespace in comments and strings.</source>
         <source>ClearCase Check In Editor</source>
         <translation>Редактор регистраций ClearCase</translation>
     </message>
-    <message>
-        <source>ClearCase Command Log Editor</source>
-        <translation>Редактор журнала команд ClearCase</translation>
-    </message>
     <message>
         <source>ClearCase File Log Editor</source>
         <translation>Редактор журнала файлов ClearCase</translation>
@@ -34610,6 +36326,10 @@ With cache simulation, further event counters are enabled:
         <source>Clean Repository</source>
         <translation>Очистить хранилище</translation>
     </message>
+    <message>
+        <source>Select All</source>
+        <translation>Выбрать все</translation>
+    </message>
 </context>
 <context>
     <name>VcsBase::Internal::CommonSettingsPage</name>
@@ -35101,10 +36821,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
         <source>Welcome</source>
         <translation>Начало</translation>
     </message>
-    <message>
-        <source>New Project</source>
-        <translation>Новый проект</translation>
-    </message>
 </context>
 <context>
     <name>WidgetPluginManager</name>
@@ -35129,6 +36845,17 @@ should a repository require SSH-authentication (see documentation on SSH and the
         <translation>Файл «%1» не является модулем QmlDesigner.</translation>
     </message>
 </context>
+<context>
+    <name>WindowPane</name>
+    <message>
+        <source>Window</source>
+        <translation>Окно</translation>
+    </message>
+    <message>
+        <source>Title</source>
+        <translation>Заголовок</translation>
+    </message>
+</context>
 <context>
     <name>ZeroConf</name>
     <message>
diff --git a/src/libs/cplusplus/CppRewriter.cpp b/src/libs/cplusplus/CppRewriter.cpp
index 008249344c2c65be573b04a7eb53280556f5b50b..65191194e2636bb03e72c2e7259ae817e4b88f4c 100644
--- a/src/libs/cplusplus/CppRewriter.cpp
+++ b/src/libs/cplusplus/CppRewriter.cpp
@@ -527,6 +527,7 @@ CPLUSPLUS_EXPORT QString simplifySTLType(const QString &typeIn)
     if (type.startsWith(QLatin1String("struct ")))
         type.remove(0, 7);
 
+    type.replace(QLatin1String("std::__1::"), QLatin1String("std::"));
     type.replace(QLatin1Char('*'), QLatin1Char('@'));
 
     for (int i = 0; i < 10; ++i) {
diff --git a/src/libs/ssh/sshkeygenerator.cpp b/src/libs/ssh/sshkeygenerator.cpp
index 736cc04ff7d81689b6ae7b8cb813078d6fec181a..992cef16071745bdb2387b0971ccd45ba50ac209 100644
--- a/src/libs/ssh/sshkeygenerator.cpp
+++ b/src/libs/ssh/sshkeygenerator.cpp
@@ -151,6 +151,10 @@ void SshKeyGenerator::generateOpenSslPrivateKeyString(const KeyPtr &key)
             = key.dynamicCast<RSA_PrivateKey>();
         params << rsaKey->get_n() << rsaKey->get_e() << rsaKey->get_d() << rsaKey->get_p()
             << rsaKey->get_q();
+        const BigInt dmp1 = rsaKey->get_d() % (rsaKey->get_p() - 1);
+        const BigInt dmq1 = rsaKey->get_d() % (rsaKey->get_q() - 1);
+        const BigInt iqmp = inverse_mod(rsaKey->get_q(), rsaKey->get_p());
+        params << dmp1 << dmq1 << iqmp;
         keyId = SshCapabilities::PubKeyRsa;
         label = "RSA PRIVATE KEY";
     } else {
diff --git a/src/libs/utils/persistentsettings.cpp b/src/libs/utils/persistentsettings.cpp
index 406088032483b04bcf98e167eb43200adb5e3e1d..42b04169d76cb4aacbc649d0b397e875f86a4556 100644
--- a/src/libs/utils/persistentsettings.cpp
+++ b/src/libs/utils/persistentsettings.cpp
@@ -36,9 +36,29 @@
 #include <QXmlStreamReader>
 #include <QXmlStreamWriter>
 #include <QDateTime>
+#include <QTextStream>
+#include <QRegExp>
+#include <QRect>
 
 #include <utils/qtcassert.h>
 
+// Read and write rectangle in X11 resource syntax "12x12+4+3"
+static QString rectangleToString(const QRect &r)
+{
+    QString result;
+    QTextStream(&result) << r.width() << 'x' << r.height() << forcesign << r.x() << r.y();
+    return result;
+}
+
+static QRect stringToRectangle(const QString &v)
+{
+    static QRegExp pattern(QLatin1String("(\\d+)x(\\d+)([-+]\\d+)([-+]\\d+)"));
+    Q_ASSERT(pattern.isValid());
+    return pattern.exactMatch(v) ?
+        QRect(QPoint(pattern.cap(3).toInt(), pattern.cap(4).toInt()),
+              QSize(pattern.cap(1).toInt(), pattern.cap(2).toInt())) :
+        QRect();
+}
 
 /*!
     \class Utils::PersistentSettingsReader
@@ -174,6 +194,8 @@ private:
     bool handleStartElement(QXmlStreamReader &r);
     bool handleEndElement(const QStringRef &name);
 
+    static QString formatWarning(const QXmlStreamReader &r, const QString &message);
+
     QStack<ParseValueStackEntry> m_valueStack;
     QVariantMap m_result;
     QString m_currentVariableName;
@@ -223,10 +245,16 @@ bool ParseContext::handleStartElement(QXmlStreamReader &r)
     const QString key = attributes.hasAttribute(keyAttribute) ?
                 attributes.value(keyAttribute).toString() : QString();
     switch (e) {
-    case SimpleValueElement:
+    case SimpleValueElement: {
         // This reads away the end element, so, handle end element right here.
-        m_valueStack.push_back(ParseValueStackEntry(readSimpleValue(r, attributes), key));
+        const QVariant v = readSimpleValue(r, attributes);
+        if (!v.isValid()) {
+            qWarning() << ParseContext::formatWarning(r, QString::fromLatin1("Failed to read element \"%1\".").arg(name.toString()));
+            return false;
+        }
+        m_valueStack.push_back(ParseValueStackEntry(v, key));
         return handleEndElement(name);
+    }
     case ListValueElement:
         m_valueStack.push_back(ParseValueStackEntry(QVariant::List, key));
         break;
@@ -256,6 +284,18 @@ bool ParseContext::handleEndElement(const QStringRef &name)
     return e == QtCreatorElement;
 }
 
+QString ParseContext::formatWarning(const QXmlStreamReader &r, const QString &message)
+{
+    QString result = QLatin1String("Warning reading ");
+    if (const QIODevice *device = r.device())
+        if (const QFile *file = qobject_cast<const QFile *>(device))
+            result += QDir::toNativeSeparators(file->fileName()) + QLatin1Char(':');
+    result += QString::number(r.lineNumber());
+    result += QLatin1String(": ");
+    result += message;
+    return result;
+}
+
 ParseContext::Element ParseContext::element(const QStringRef &r) const
 {
     if (r == valueElement)
@@ -282,6 +322,10 @@ QVariant ParseContext::readSimpleValue(QXmlStreamReader &r, const QXmlStreamAttr
         QTC_ASSERT(text.size() == 1, return QVariant());
         return QVariant(QChar(text.at(0)));
     }
+    if (type == QLatin1String("QRect")) {
+        const QRect rectangle = stringToRectangle(text);
+        return rectangle.isValid() ? QVariant(rectangle) : QVariant();
+    }
     QVariant value;
     value.setValue(text);
     value.convert(QVariant::nameToType(type.toLatin1().data()));
@@ -361,7 +405,14 @@ static void writeVariantValue(QXmlStreamWriter &w, const Context &ctx,
         w.writeAttribute(ctx.typeAttribute, QLatin1String(variant.typeName()));
         if (!key.isEmpty())
             w.writeAttribute(ctx.keyAttribute, key);
-        w.writeCharacters(variant.toString());
+        switch (variant.type()) {
+        case QVariant::Rect:
+            w.writeCharacters(rectangleToString(variant.toRect()));
+            break;
+        default:
+            w.writeCharacters(variant.toString());
+            break;
+        }
         w.writeEndElement();
         break;
     }
diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp
index 513001de0a7b897be737df1aec1ebcc47ad4fe89..d62aa1bbb79f0e52563fdfc5abfd3b892430819a 100644
--- a/src/plugins/android/androidsettingswidget.cpp
+++ b/src/plugins/android/androidsettingswidget.cpp
@@ -186,8 +186,13 @@ bool AndroidSettingsWidget::checkSDK(const Utils::FileName &location)
             || (!androidExe.appendPath(QLatin1String("/tools/android" QTC_HOST_EXE_SUFFIX)).toFileInfo().exists()
                 && !androidBat.appendPath(QLatin1String("/tools/android" ANDROID_BAT_SUFFIX)).toFileInfo().exists())
             || !emulator.appendPath(QLatin1String("/tools/emulator" QTC_HOST_EXE_SUFFIX)).toFileInfo().exists()) {
-        QMessageBox::critical(this, tr("Android SDK Folder"), tr("\"%1\" does not seem to be an Android SDK top folder.").arg(location.toUserOutput()));
+        m_ui->sdkWarningIconLabel->setVisible(true);
+        m_ui->sdkWarningLabel->setVisible(true);
+        m_ui->sdkWarningLabel->setText(tr("\"%1\" does not seem to be an Android SDK top folder.").arg(location.toUserOutput()));
         return false;
+    } else {
+        m_ui->sdkWarningIconLabel->setVisible(false);
+        m_ui->sdkWarningLabel->setVisible(false);
     }
     return true;
 }
diff --git a/src/plugins/android/androidsettingswidget.ui b/src/plugins/android/androidsettingswidget.ui
index d1fb9f07273be639990e7ce0eabd94fd3a06d31b..4c4c1d8bd0747988d80bfc97a1a9207bf8aa78a5 100644
--- a/src/plugins/android/androidsettingswidget.ui
+++ b/src/plugins/android/androidsettingswidget.ui
@@ -33,7 +33,11 @@
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="QLineEdit" name="SDKLocationLineEdit"/>
+      <widget class="QLineEdit" name="SDKLocationLineEdit">
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
      </item>
      <item row="0" column="2">
       <widget class="QPushButton" name="SDKLocationPushButton">
@@ -48,7 +52,43 @@
        </property>
       </widget>
      </item>
-     <item row="1" column="0">
+     <item row="1" column="1">
+      <layout class="QHBoxLayout" name="horizontalLayout_4">
+       <item>
+        <widget class="QLabel" name="sdkWarningIconLabel">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+         <property name="pixmap">
+          <pixmap resource="../projectexplorer/projectexplorer.qrc">:/projectexplorer/images/compile_warning.png</pixmap>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="sdkWarningLabel">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+         <property name="wordWrap">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="2" column="0">
       <widget class="QLabel" name="NDKLocationLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
@@ -64,17 +104,17 @@
        </property>
       </widget>
      </item>
-     <item row="1" column="1">
+     <item row="2" column="1">
       <widget class="QLineEdit" name="NDKLocationLineEdit"/>
      </item>
-     <item row="1" column="2">
+     <item row="2" column="2">
       <widget class="QPushButton" name="NDKLocationPushButton">
        <property name="text">
         <string>Browse</string>
        </property>
       </widget>
      </item>
-     <item row="2" column="1">
+     <item row="3" column="1">
       <layout class="QHBoxLayout" name="horizontalLayout_3">
        <property name="spacing">
         <number>2</number>
@@ -110,7 +150,7 @@
        </item>
       </layout>
      </item>
-     <item row="3" column="1">
+     <item row="4" column="1">
       <widget class="QCheckBox" name="CreateKitCheckBox">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
@@ -126,7 +166,46 @@
        </property>
       </widget>
      </item>
-     <item row="5" column="0">
+     <item row="5" column="1">
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <property name="spacing">
+        <number>2</number>
+       </property>
+       <item>
+        <widget class="QLabel" name="kitWarningIconLabel">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+         <property name="pixmap">
+          <pixmap resource="../projectexplorer/projectexplorer.qrc">:/projectexplorer/images/compile_warning.png</pixmap>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="kitWarningLabel">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+         <property name="wordWrap">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="6" column="0">
       <widget class="QLabel" name="AntLocationLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
@@ -142,17 +221,17 @@
        </property>
       </widget>
      </item>
-     <item row="5" column="1">
+     <item row="6" column="1">
       <widget class="QLineEdit" name="AntLocationLineEdit"/>
      </item>
-     <item row="5" column="2">
+     <item row="6" column="2">
       <widget class="QPushButton" name="AntLocationPushButton">
        <property name="text">
         <string>Browse</string>
        </property>
       </widget>
      </item>
-     <item row="6" column="0">
+     <item row="7" column="0">
       <widget class="QLabel" name="OpenJDKLocationLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
@@ -168,55 +247,16 @@
        </property>
       </widget>
      </item>
-     <item row="6" column="1">
+     <item row="7" column="1">
       <widget class="QLineEdit" name="OpenJDKLocationLineEdit"/>
      </item>
-     <item row="6" column="2">
+     <item row="7" column="2">
       <widget class="QPushButton" name="OpenJDKLocationPushButton">
        <property name="text">
         <string>Browse</string>
        </property>
       </widget>
      </item>
-     <item row="4" column="1">
-      <layout class="QHBoxLayout" name="horizontalLayout_2">
-       <property name="spacing">
-        <number>2</number>
-       </property>
-       <item>
-        <widget class="QLabel" name="kitWarningIconLabel">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="text">
-          <string/>
-         </property>
-         <property name="pixmap">
-          <pixmap resource="../projectexplorer/projectexplorer.qrc">:/projectexplorer/images/compile_warning.png</pixmap>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLabel" name="kitWarningLabel">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="text">
-          <string/>
-         </property>
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
     </layout>
    </item>
    <item>
diff --git a/src/plugins/coreplugin/progressmanager/progressbar.cpp b/src/plugins/coreplugin/progressmanager/progressbar.cpp
index 6a2c72be471dc798743f645fc684c545f0c0c484..114224190cb59648020a13dbcfd45a0175cda467 100644
--- a/src/plugins/coreplugin/progressmanager/progressbar.cpp
+++ b/src/plugins/coreplugin/progressmanager/progressbar.cpp
@@ -44,7 +44,8 @@ using namespace Core::Internal;
 #define CANCELBUTTON_SIZE 15
 
 ProgressBar::ProgressBar(QWidget *parent)
-    : QWidget(parent), m_titleVisible(true), m_separatorVisible(true), m_progressHeight(0),
+    : QWidget(parent), m_titleVisible(true), m_separatorVisible(true), m_cancelEnabled(true),
+      m_progressHeight(0),
       m_minimum(1), m_maximum(100), m_value(1), m_cancelButtonFader(0), m_finished(false),
       m_error(false)
 {
diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp
index b155834317bebb89fe198937c713483bf13c35a0..fc15be7944f2e4ccb95b48603b770486268d2ede 100644
--- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp
+++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp
@@ -46,6 +46,7 @@
 #include <QAction>
 #include <QEvent>
 #include <QHBoxLayout>
+#include <QMouseEvent>
 #include <QPainter>
 #include <QPropertyAnimation>
 #include <QStyle>
@@ -379,6 +380,19 @@ bool ProgressManagerPrivate::eventFilter(QObject *obj, QEvent *event)
         m_hovered = false;
         // give the progress view the chance to get the mouse enter event
         updateVisibilityWithDelay();
+    } else if (obj == m_statusBarWidget && event->type() == QEvent::MouseButtonPress
+               && !m_taskList.isEmpty()) {
+        QMouseEvent *me = static_cast<QMouseEvent *>(event);
+        if (me->button() == Qt::LeftButton && !me->modifiers()) {
+            FutureProgress *progress = m_currentStatusDetailsProgress;
+            if (!progress)
+                progress = m_taskList.last();
+            // don't send signal directly from an event filter, event filters should
+            // do as little a possible
+            QTimer::singleShot(0, progress, SIGNAL(clicked()));
+            event->accept();
+            return true;
+        }
     }
     return false;
 }
@@ -643,8 +657,10 @@ void ProgressManagerPrivate::updateStatusDetailsWidget()
     while (i != m_taskList.begin()) {
         --i;
         candidateWidget = (*i)->statusBarWidget();
-        if (candidateWidget)
+        if (candidateWidget) {
+            m_currentStatusDetailsProgress = *i;
             break;
+        }
     }
 
     if (candidateWidget == m_currentStatusDetailsWidget)
diff --git a/src/plugins/coreplugin/progressmanager/progressmanager_p.h b/src/plugins/coreplugin/progressmanager/progressmanager_p.h
index dabd525a792d3e988d17aef1878288d7a465b3c6..ac99df10332ee47f8046c5c9214dce4a04f8bf12 100644
--- a/src/plugins/coreplugin/progressmanager/progressmanager_p.h
+++ b/src/plugins/coreplugin/progressmanager/progressmanager_p.h
@@ -108,6 +108,7 @@ private:
     QWidget *m_summaryProgressWidget;
     QHBoxLayout *m_summaryProgressLayout;
     QWidget *m_currentStatusDetailsWidget;
+    QPointer<FutureProgress> m_currentStatusDetailsProgress;
     ProgressBar *m_summaryProgressBar;
     QGraphicsOpacityEffect *m_opacityEffect;
     QPointer<QPropertyAnimation> m_opacityAnimation;
diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp
index 5c86b865d0cea211a26aeb4b7b8b9c0524d125ca..5478e735c7fe9f11cdbb895ea5e0932c7ea9ef27 100644
--- a/src/plugins/debugger/watchdata.cpp
+++ b/src/plugins/debugger/watchdata.cpp
@@ -355,8 +355,16 @@ QString WatchData::toToolTip() const
     formatToolTipRow(str, tr("Name"), name);
     formatToolTipRow(str, tr("Expression"), QLatin1String(exp));
     formatToolTipRow(str, tr("Internal Type"), QLatin1String(type));
-    formatToolTipRow(str, tr("Displayed Type"), displayedType);
-    QString val = valuetooltip.isEmpty() ? valuetooltip : value;
+    if (!displayedType.isEmpty())
+        formatToolTipRow(str, tr("Displayed Type"), displayedType);
+    QString val = valuetooltip.isEmpty() ? value : valuetooltip;
+    // Automatically display hex value for unsigned integers.
+    if (!val.isEmpty() && val.at(0).isDigit() && isIntType(type)) {
+        bool ok;
+        const quint64 intValue = val.toULongLong(&ok);
+        if (ok && intValue)
+            val += QLatin1String(" (hex) ") + QString::number(intValue, 16);
+    }
     if (val.size() > 1000) {
         val.truncate(1000);
         val += tr(" ... <cut off>");
diff --git a/src/plugins/diffeditor/diffeditorwidget.cpp b/src/plugins/diffeditor/diffeditorwidget.cpp
index 48c30433fbad721ddb5e4aaa1cc06a555cf8fe0f..1c80c97881623824e35e182d2844564e8a4c298d 100644
--- a/src/plugins/diffeditor/diffeditorwidget.cpp
+++ b/src/plugins/diffeditor/diffeditorwidget.cpp
@@ -139,7 +139,6 @@ public:
     QMap<int, int> skippedLines() const { return m_skippedLines; }
     QMap<int, DiffEditorWidget::DiffFileInfo> fileInfo() const { return m_fileInfo; }
 
-    void setWorkingDirectory(const QString &workingDirectory) { m_workingDirectory = workingDirectory; }
     void setLineNumber(int blockNumber, int lineNumber);
     void setFileInfo(int blockNumber, const DiffEditorWidget::DiffFileInfo &fileInfo) { m_fileInfo[blockNumber] = fileInfo; setSeparator(blockNumber, true); }
     void setSkippedLines(int blockNumber, int skippedLines) { m_skippedLines[blockNumber] = skippedLines; setSeparator(blockNumber, true); }
@@ -157,6 +156,11 @@ public slots:
     void setDisplaySettings(const DisplaySettings &ds);
     void setFontSettings(const TextEditor::FontSettings &fs);
 
+signals:
+    void jumpToOriginalFileRequested(int diffFileIndex,
+                                     int lineNumber,
+                                     int columnNumber);
+
 protected:
     virtual int extraAreaWidth(int *markWidthPtr = 0) const { return BaseTextEditorWidget::extraAreaWidth(markWidthPtr); }
     BaseTextEditor *createEditor() { return new DiffViewEditorEditable(this); }
@@ -180,7 +184,6 @@ private:
                         const QTextBlock &block, int top);
     void jumpToOriginalFile(const QTextCursor &cursor);
 
-    QString m_workingDirectory;
     QMap<int, int> m_lineNumbers;
     int m_lineNumberDigits;
     // block number, fileInfo
@@ -430,20 +433,13 @@ void DiffViewEditorWidget::jumpToOriginalFile(const QTextCursor &cursor)
         return;
 
     const int blockNumber = cursor.blockNumber();
-    const int position = cursor.positionInBlock();
+    const int columnNumber = cursor.positionInBlock();
     if (!m_lineNumbers.contains(blockNumber))
         return;
 
-    const int lineNr = m_lineNumbers.value(blockNumber);
-    QMap<int, DiffEditorWidget::DiffFileInfo>::const_iterator it = m_fileInfo.upperBound(blockNumber);
-    if (it != m_fileInfo.constBegin())
-        --it;
-    const QDir dir(m_workingDirectory);
-    const QString fileName = dir.absoluteFilePath(it.value().fileName);
+    const int lineNumber = m_lineNumbers.value(blockNumber);
 
-    Core::IEditor *ed = Core::EditorManager::openEditor(fileName);
-    if (TextEditor::ITextEditor *editor = qobject_cast<TextEditor::ITextEditor *>(ed))
-        editor->gotoLine(lineNr, position);
+    emit jumpToOriginalFileRequested(fileIndexForBlockNumber(blockNumber), lineNumber, columnNumber);
 }
 
 void DiffViewEditorWidget::paintEvent(QPaintEvent *e)
@@ -609,6 +605,8 @@ DiffEditorWidget::DiffEditorWidget(QWidget *parent)
             m_leftEditor, SLOT(setDisplaySettings(TextEditor::DisplaySettings)));
     m_leftEditor->setDisplaySettings(settings->displaySettings());
     m_leftEditor->setCodeStyle(settings->codeStyle());
+    connect(m_leftEditor, SIGNAL(jumpToOriginalFileRequested(int,int,int)),
+            this, SLOT(slotLeftJumpToOriginalFileRequested(int,int,int)));
 
     m_rightEditor = new DiffViewEditorWidget(this);
     m_rightEditor->setReadOnly(true);
@@ -616,6 +614,8 @@ DiffEditorWidget::DiffEditorWidget(QWidget *parent)
             m_rightEditor, SLOT(setDisplaySettings(TextEditor::DisplaySettings)));
     m_rightEditor->setDisplaySettings(settings->displaySettings());
     m_rightEditor->setCodeStyle(settings->codeStyle());
+    connect(m_rightEditor, SIGNAL(jumpToOriginalFileRequested(int,int,int)),
+            this, SLOT(slotRightJumpToOriginalFileRequested(int,int,int)));
 
     connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
             this, SLOT(setFontSettings(TextEditor::FontSettings)));
@@ -680,8 +680,7 @@ void DiffEditorWidget::clear(const QString &message)
 
 void DiffEditorWidget::setDiff(const QList<DiffFilesContents> &diffFileList, const QString &workingDirectory)
 {
-    m_leftEditor->setWorkingDirectory(workingDirectory);
-    m_rightEditor->setWorkingDirectory(workingDirectory);
+    m_workingDirectory = workingDirectory;
     Differ differ;
     QList<DiffList> diffList;
     for (int i = 0; i < diffFileList.count(); i++) {
@@ -1440,6 +1439,63 @@ void DiffEditorWidget::setFontSettings(const TextEditor::FontSettings &fontSetti
     colorDiff(m_contextFileData);
 }
 
+void DiffEditorWidget::slotLeftJumpToOriginalFileRequested(int diffFileIndex,
+                                                           int lineNumber,
+                                                           int columnNumber)
+{
+    if (diffFileIndex < 0 || diffFileIndex >= m_contextFileData.count())
+        return;
+
+    const FileData fileData = m_contextFileData.at(diffFileIndex);
+    const QString leftFileName = fileData.leftFileInfo.fileName;
+    const QString rightFileName = fileData.rightFileInfo.fileName;
+    if (leftFileName == rightFileName) {
+        // The same file (e.g. in git diff), jump to the line number taken from the right editor.
+        // Warning: git show SHA^ vs SHA or git diff HEAD vs Index
+        // (when Working tree has changed in meantime) will not work properly.
+        int leftLineNumber = 0;
+        int rightLineNumber = 0;
+
+        for (int i = 0; i < fileData.chunks.count(); i++) {
+            const ChunkData chunkData = fileData.chunks.at(i);
+            for (int j = 0; j < chunkData.rows.count(); j++) {
+                const RowData rowData = chunkData.rows.at(j);
+                if (rowData.leftLine.textLineType == TextLineData::TextLine)
+                    leftLineNumber++;
+                if (rowData.rightLine.textLineType == TextLineData::TextLine)
+                    rightLineNumber++;
+                if (leftLineNumber == lineNumber) {
+                    int colNr = rowData.equal ? columnNumber : 0;
+                    jumpToOriginalFile(leftFileName, rightLineNumber, colNr);
+                    return;
+                }
+            }
+        }
+    } else {
+        // different file (e.g. in Tools | Diff...)
+        jumpToOriginalFile(leftFileName, lineNumber, columnNumber);
+    }
+}
+
+void DiffEditorWidget::slotRightJumpToOriginalFileRequested(int diffFileIndex,
+                                                            int lineNumber, int columnNumber)
+{
+    if (diffFileIndex < 0 || diffFileIndex >= m_contextFileData.count())
+        return;
+
+    const FileData fileData = m_contextFileData.at(diffFileIndex);
+    const QString fileName = fileData.rightFileInfo.fileName;
+    jumpToOriginalFile(fileName, lineNumber, columnNumber);
+}
+
+void DiffEditorWidget::jumpToOriginalFile(const QString &fileName,
+                                          int lineNumber, int columnNumber)
+{
+    const QDir dir(m_workingDirectory);
+    const QString absoluteFileName = dir.absoluteFilePath(fileName);
+    Core::EditorManager::openEditorAt(absoluteFileName, lineNumber, columnNumber);
+}
+
 void DiffEditorWidget::leftVSliderChanged()
 {
     m_rightEditor->verticalScrollBar()->setValue(m_leftEditor->verticalScrollBar()->value());
diff --git a/src/plugins/diffeditor/diffeditorwidget.h b/src/plugins/diffeditor/diffeditorwidget.h
index 5bb4e1cb7f3880d1d2a75d72bffa6809e3897ef2..3b82a4ccba5d2fc8cf758fe04c4612f68a14dd20 100644
--- a/src/plugins/diffeditor/diffeditorwidget.h
+++ b/src/plugins/diffeditor/diffeditorwidget.h
@@ -103,6 +103,8 @@ protected:
 
 private slots:
     void setFontSettings(const TextEditor::FontSettings &fontSettings);
+    void slotLeftJumpToOriginalFileRequested(int diffFileIndex, int lineNumber, int columnNumber);
+    void slotRightJumpToOriginalFileRequested(int diffFileIndex, int lineNumber, int columnNumber);
     void leftVSliderChanged();
     void rightVSliderChanged();
     void leftHSliderChanged();
@@ -135,6 +137,7 @@ private:
     FileData calculateContextData(const ChunkData &originalData) const;
     void showDiff();
     void synchronizeFoldings(DiffViewEditorWidget *source, DiffViewEditorWidget *destination);
+    void jumpToOriginalFile(const QString &fileName, int lineNumber, int columnNumber);
 
     DiffViewEditorWidget *m_leftEditor;
     DiffViewEditorWidget *m_rightEditor;
@@ -143,6 +146,7 @@ private:
     QList<DiffList> m_diffList; // list of original outputs from differ
     QList<ChunkData> m_originalChunkData; // one big chunk for every file, ignoreWhitespaces taken into account
     QList<FileData> m_contextFileData; // ultimate data to be shown, contextLinesNumber taken into account
+    QString m_workingDirectory;
     int m_contextLinesNumber;
     bool m_ignoreWhitespaces;
     bool m_syncScrollBars;
diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp
index 1f9ce03bdb183c00c989cdff50d00c3a9f54d704..9b97eae4fbdd93030bb501b2cef0b5bbbf412d18 100644
--- a/src/plugins/git/branchdialog.cpp
+++ b/src/plugins/git/branchdialog.cpp
@@ -97,6 +97,12 @@ void BranchDialog::refresh(const QString &repository, bool force)
     m_ui->branchView->expandAll();
 }
 
+void BranchDialog::refreshIfSame(const QString &repository)
+{
+    if (m_repository == repository)
+        refresh();
+}
+
 void BranchDialog::enableButtons()
 {
     QModelIndex idx = selectedIndex();
@@ -306,8 +312,7 @@ void BranchDialog::log()
 void BranchDialog::merge()
 {
     QModelIndex idx = selectedIndex();
-    QTC_CHECK(m_model->isLocal(m_model->currentBranch())); // otherwise the button would not be enabled!
-    QTC_CHECK(idx != m_model->currentBranch());            // otherwise the button would not be enabled!
+    QTC_CHECK(idx != m_model->currentBranch()); // otherwise the button would not be enabled!
 
     const QString branch = m_model->fullName(idx, true);
     GitClient *client = GitPlugin::instance()->gitClient();
@@ -318,8 +323,7 @@ void BranchDialog::merge()
 void BranchDialog::rebase()
 {
     QModelIndex idx = selectedIndex();
-    QTC_CHECK(m_model->isLocal(m_model->currentBranch())); // otherwise the button would not be enabled!
-    QTC_CHECK(idx != m_model->currentBranch());            // otherwise the button would not be enabled!
+    QTC_CHECK(idx != m_model->currentBranch()); // otherwise the button would not be enabled!
 
     const QString baseBranch = m_model->fullName(idx, true);
     GitClient *client = GitPlugin::instance()->gitClient();
diff --git a/src/plugins/git/branchdialog.h b/src/plugins/git/branchdialog.h
index c1b38ac6195ac1ce49b672b0fd69946b8c12dd99..aac316d1c8dfa1b76d0c5ebab334f5d2e226bbd1 100644
--- a/src/plugins/git/branchdialog.h
+++ b/src/plugins/git/branchdialog.h
@@ -61,6 +61,7 @@ public:
 
 public slots:
     void refresh(const QString &repository, bool force);
+    void refreshIfSame(const QString &repository);
 
 private slots:
     void enableButtons();
diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp
index feee651ed8ae43d139ff7b7215eb623656e5cbc7..1a07e15692d3967ff470f804c97d564667735ec9 100644
--- a/src/plugins/git/branchmodel.cpp
+++ b/src/plugins/git/branchmodel.cpp
@@ -80,7 +80,7 @@ public:
 
     bool isLeaf() const
     {
-        return children.isEmpty();
+        return children.isEmpty() && parent && parent->parent;
     }
 
     bool childOf(BranchNode *node) const
@@ -339,8 +339,12 @@ void BranchModel::clear()
 
 bool BranchModel::refresh(const QString &workingDirectory, QString *errorMessage)
 {
-    if (workingDirectory.isEmpty())
+    beginResetModel();
+    clear();
+    if (workingDirectory.isEmpty()) {
+        endResetModel();
         return false;
+    }
 
     m_currentSha = m_client->synchronousTopRevision(workingDirectory);
     QStringList args;
@@ -349,9 +353,6 @@ bool BranchModel::refresh(const QString &workingDirectory, QString *errorMessage
     if (!m_client->synchronousForEachRefCmd(workingDirectory, args, &output, errorMessage))
         VcsBase::VcsBaseOutputWindow::instance()->appendError(*errorMessage);
 
-    beginResetModel();
-    clear();
-
     m_workingDirectory = workingDirectory;
     const QStringList lines = output.split(QLatin1Char('\n'));
     foreach (const QString &l, lines)
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 2d7672bb6149223d6d1f55f7abd88db2ca017f81..6c2afdc6c5802408f6ed000d8c4305f1c229d547 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -2362,6 +2362,11 @@ void GitClient::finishSubmoduleUpdate()
     m_updatedSubmodules.clear();
 }
 
+void GitClient::fetchFinished(const QVariant &cookie)
+{
+    GitPlugin::instance()->updateBranches(cookie.toString());
+}
+
 // Trim a git status file spec: "modified:    foo .cpp" -> "modified: foo .cpp"
 static inline QString trimFileSpecification(QString fileSpec)
 {
@@ -2974,7 +2979,9 @@ void GitClient::fetch(const QString &workingDirectory, const QString &remote)
 {
     QStringList arguments(QLatin1String("fetch"));
     arguments << (remote.isEmpty() ? QLatin1String("--all") : remote);
-    executeGit(workingDirectory, arguments, 0, true);
+    VcsBase::Command *command = executeGit(workingDirectory, arguments, 0, true);
+    command->setCookie(workingDirectory);
+    connect(command, SIGNAL(success(QVariant)), this, SLOT(fetchFinished(QVariant)));
 }
 
 bool GitClient::executeAndHandleConflicts(const QString &workingDirectory,
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index 749b2ac038b8e21768112edba0603f5b399bb52b..a51735eca66af17afeafe748e81f11aef8fa871c 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -327,6 +327,7 @@ private slots:
     void appendOutputData(const QByteArray &data) const;
     void appendOutputDataSilently(const QByteArray &data) const;
     void finishSubmoduleUpdate();
+    void fetchFinished(const QVariant &cookie);
 
 private:
     QTextCodec *getSourceCodec(const QString &file) const;
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 450a0ddf94cd60170e9f8989a1d8887d2f9fa257..ff7ccd8ed2ceb23717d4edcb481d4ef439b0f2eb 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -695,6 +695,8 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
 
     connect(Core::ICore::vcsManager(), SIGNAL(repositoryChanged(QString)),
             this, SLOT(updateContinueAndAbortCommands()));
+    connect(Core::ICore::vcsManager(), SIGNAL(repositoryChanged(QString)),
+            this, SLOT(updateBranches(QString)), Qt::QueuedConnection);
 
     if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(RC_GIT_MIME_XML), errorMessage))
         return false;
@@ -1435,6 +1437,12 @@ void GitPlugin::updateContinueAndAbortCommands()
     }
 }
 
+void GitPlugin::updateBranches(const QString &repository)
+{
+    if (m_branchDialog && m_branchDialog->isVisible())
+        m_branchDialog->refreshIfSame(repository);
+}
+
 void GitPlugin::updateRepositoryBrowserAction()
 {
     const bool repositoryEnabled = currentState().hasTopLevel();
diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h
index 5a4663dfdcf92788665a29c36b3381feaf0b22f0..6d795fb57341a4e77c0469d06688ffd97e483c3c 100644
--- a/src/plugins/git/gitplugin.h
+++ b/src/plugins/git/gitplugin.h
@@ -102,6 +102,7 @@ public:
 
 public slots:
     void startCommit();
+    void updateBranches(const QString &repository);
 
 private slots:
     void diffCurrentFile();
diff --git a/src/plugins/git/logchangedialog.cpp b/src/plugins/git/logchangedialog.cpp
index bb8f444c9e1fa1442b574fac26f2ff116d618115..3dba3eb3a73df17465f5e1fca80f750bd8ae3057 100644
--- a/src/plugins/git/logchangedialog.cpp
+++ b/src/plugins/git/logchangedialog.cpp
@@ -76,8 +76,6 @@ bool LogChangeWidget::init(const QString &repository, const QString &commit, boo
                     GitPlugin::instance()->gitClient()->msgNoCommits(includeRemote));
         return false;
     }
-    selectionModel()->select(m_model->index(0, 0),
-                             QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
     return true;
 }
 
@@ -117,6 +115,8 @@ void LogChangeWidget::emitDoubleClicked(const QModelIndex &index)
 
 bool LogChangeWidget::populateLog(const QString &repository, const QString &commit, bool includeRemote)
 {
+    const QString currentCommit = this->commit();
+    int selected = currentCommit.isEmpty() ? 0 : -1;
     if (const int rowCount = m_model->rowCount())
         m_model->removeRows(0, rowCount);
 
@@ -144,12 +144,15 @@ bool LogChangeWidget::populateLog(const QString &repository, const QString &comm
                 }
                 row.push_back(item);
             }
-            row[Sha1Column]->setText(line.left(colonPos));
+            const QString sha1 = line.left(colonPos);
+            row[Sha1Column]->setText(sha1);
             row[SubjectColumn]->setText(line.right(line.size() - colonPos - 1));
             m_model->appendRow(row);
+            if (selected == -1 && currentCommit == sha1)
+                selected = m_model->rowCount() - 1;
         }
     }
-    setCurrentIndex(m_model->index(0, 0));
+    setCurrentIndex(m_model->index(selected, 0));
     return true;
 }
 
@@ -174,8 +177,8 @@ LogChangeDialog::LogChangeDialog(bool isReset, QWidget *parent) :
     if (isReset) {
         popUpLayout->addWidget(new QLabel(tr("Reset type:"), this));
         m_resetTypeComboBox = new QComboBox(this);
-        m_resetTypeComboBox->addItem(tr("Mixed"), QLatin1String("--mixed"));
         m_resetTypeComboBox->addItem(tr("Hard"), QLatin1String("--hard"));
+        m_resetTypeComboBox->addItem(tr("Mixed"), QLatin1String("--mixed"));
         m_resetTypeComboBox->addItem(tr("Soft"), QLatin1String("--soft"));
         popUpLayout->addWidget(m_resetTypeComboBox);
         popUpLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored));
diff --git a/src/plugins/projectexplorer/environmentaspectwidget.cpp b/src/plugins/projectexplorer/environmentaspectwidget.cpp
index 4836af785123c9c38878a6cd9eda7428eda4bf40..79ff5d61273709c5e7f065f55899b93deca941b4 100644
--- a/src/plugins/projectexplorer/environmentaspectwidget.cpp
+++ b/src/plugins/projectexplorer/environmentaspectwidget.cpp
@@ -97,6 +97,8 @@ EnvironmentAspectWidget::EnvironmentAspectWidget(EnvironmentAspect *aspect, QWid
     connect(m_aspect, SIGNAL(baseEnvironmentChanged()), this, SLOT(changeBaseEnvironment()));
     connect(m_aspect, SIGNAL(userEnvironmentChangesChanged(QList<Utils::EnvironmentItem>)),
             this, SLOT(changeUserChanges(QList<Utils::EnvironmentItem>)));
+    connect(m_aspect, SIGNAL(environmentChanged()),
+            this, SLOT(environmentChanged()));
 }
 
 QString EnvironmentAspectWidget::displayName() const
@@ -118,6 +120,7 @@ void EnvironmentAspectWidget::baseEnvironmentSelected(int idx)
 {
     m_ignoreChange = true;
     m_aspect->setBaseEnvironmentBase(m_baseEnvironmentComboBox->itemData(idx).toInt());
+    m_environmentWidget->setBaseEnvironment(m_aspect->baseEnvironment());
     m_ignoreChange = false;
 }
 
@@ -132,6 +135,7 @@ void EnvironmentAspectWidget::changeBaseEnvironment()
             m_baseEnvironmentComboBox->setCurrentIndex(i);
     }
     m_environmentWidget->setBaseEnvironmentText(m_aspect->baseEnvironmentDisplayName(base));
+    m_environmentWidget->setBaseEnvironment(m_aspect->baseEnvironment());
 }
 
 void EnvironmentAspectWidget::userChangesEdited()
@@ -148,4 +152,11 @@ void EnvironmentAspectWidget::changeUserChanges(QList<Utils::EnvironmentItem> ch
     m_environmentWidget->setUserChanges(changes);
 }
 
+void EnvironmentAspectWidget::environmentChanged()
+{
+    if (m_ignoreChange)
+        return;
+    m_environmentWidget->setBaseEnvironment(m_aspect->baseEnvironment());
+}
+
 } // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/environmentaspectwidget.h b/src/plugins/projectexplorer/environmentaspectwidget.h
index 2093eac8a78a0aad2072c4688fba819e43de2232..465b802640a06997bf0d9e11034a355ec32dc10d 100644
--- a/src/plugins/projectexplorer/environmentaspectwidget.h
+++ b/src/plugins/projectexplorer/environmentaspectwidget.h
@@ -67,6 +67,7 @@ private slots:
     void changeBaseEnvironment();
     void userChangesEdited();
     void changeUserChanges(QList<Utils::EnvironmentItem> changes);
+    void environmentChanged();
 
 private:
     EnvironmentAspect *m_aspect;
diff --git a/src/plugins/projectexplorer/localenvironmentaspect.cpp b/src/plugins/projectexplorer/localenvironmentaspect.cpp
index 8e84bc3b4704ec01c4f27f41f097ca3b91f64f5e..1ec0d7f48952dd6e1ada0e42b6b95406cb540e4e 100644
--- a/src/plugins/projectexplorer/localenvironmentaspect.cpp
+++ b/src/plugins/projectexplorer/localenvironmentaspect.cpp
@@ -84,10 +84,8 @@ Utils::Environment LocalEnvironmentAspect::baseEnvironment() const
 
 void LocalEnvironmentAspect::buildEnvironmentHasChanged()
 {
-    if (baseEnvironmentBase() == static_cast<int>(BuildEnvironmentBase)) {
-        emit baseEnvironmentChanged();
+    if (baseEnvironmentBase() == static_cast<int>(BuildEnvironmentBase))
         emit environmentChanged();
-    }
 }
 
 LocalEnvironmentAspect::LocalEnvironmentAspect(RunConfiguration *rc) :
diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
index 22b9ca979108ee997035731edf730e386b54e4ca..70b3da4884506ecf9b87f30ef294c04ea0e400eb 100644
--- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
+++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
@@ -87,11 +87,8 @@ void RemoteLinuxEnvironmentAspect::setRemoteEnvironment(const Utils::Environment
 {
     if (env != m_remoteEnvironment) {
         m_remoteEnvironment = env;
-        emit remoteEnvironmentChanged();
-        if (baseEnvironmentBase() == static_cast<int>(RemoteBaseEnvironment)) {
-            emit baseEnvironmentChanged();
+        if (baseEnvironmentBase() == static_cast<int>(RemoteBaseEnvironment))
             emit environmentChanged();
-        }
     }
 }
 
diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
index 44313727314af955bd2be28bc3f650d40dad76b4..c17703436005ad32c11a3fc9d8d15c9245b05f24 100644
--- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
+++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
@@ -60,9 +60,6 @@ public:
 
     QString userEnvironmentChangesAsString() const;
 
-signals:
-    void remoteEnvironmentChanged();
-
 private:
     enum BaseEnvironmentBase {
         CleanBaseEnvironment = 0,
diff --git a/src/plugins/texteditor/linenumberfilter.cpp b/src/plugins/texteditor/linenumberfilter.cpp
index a199ea1741a942eae587e660a484db0f16a476c4..d5f44e7cd76d89f54150d673074a4b2e508fa2ef 100644
--- a/src/plugins/texteditor/linenumberfilter.cpp
+++ b/src/plugins/texteditor/linenumberfilter.cpp
@@ -64,7 +64,7 @@ QList<FilterEntry> LineNumberFilter::matchesFor(QFutureInterface<Locator::Filter
     int sectionCount = lineAndColumn.size();
     int line = 0;
     int column = 0;
-    bool ok;
+    bool ok = false;
     if (sectionCount > 0)
         line = lineAndColumn.at(0).toInt(&ok);
     if (ok && sectionCount > 1)
diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp
index 5e34dd285deaa064e0787669cbbaed8a83690821..2fdb6ae6b0ab0f97433cae2d5ae27bad9c75c658 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.cpp
+++ b/src/plugins/vcsbase/vcsbaseplugin.cpp
@@ -1037,7 +1037,12 @@ bool VcsBasePlugin::runFullySynchronous(const QString &workingDirectory,
     // if (flags & ExpectRepoChanges)
     //    Core::DocumentManager::unexpectDirectoryChange(workingDirectory);
 
-    return process.exitStatus() == QProcess::NormalExit && process.exitCode() == 0;
+    if (process.exitStatus() == QProcess::NormalExit && process.exitCode() == 0) {
+        if (flags & ExpectRepoChanges)
+            Core::ICore::vcsManager()->emitRepositoryChanged(workingDirectory);
+        return true;
+    }
+    return false;
 }
 
 bool VcsBasePlugin::runPatch(const QByteArray &input, const QString &workingDirectory,
diff --git a/src/tools/sdktool/addkeysoperation.cpp b/src/tools/sdktool/addkeysoperation.cpp
index 41fc91ba69323102b6fb2d29cdb9089dd7a93381..c10b53870b003d2a0afe846c44e708c1c0670c8f 100644
--- a/src/tools/sdktool/addkeysoperation.cpp
+++ b/src/tools/sdktool/addkeysoperation.cpp
@@ -83,10 +83,10 @@ int AddKeysOperation::execute() const
 
     QVariantMap result = addKeys(map, m_data);
     if (result.isEmpty() || map == result)
-        return -4;
+        return 4;
 
     // Write data again:
-    return save(result, m_file) ? 0 : -5;
+    return save(result, m_file) ? 0 : 5;
 }
 
 #ifdef WITH_TESTS
diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp
index 93ea8b6fcb641a4aa872c2539ad40e2c9102a695..05b68cb12436a065f5cb517752c77524f3f49339 100644
--- a/src/tools/sdktool/addkitoperation.cpp
+++ b/src/tools/sdktool/addkitoperation.cpp
@@ -219,9 +219,9 @@ int AddKitOperation::execute() const
                                 m_deviceType.toUtf8(), m_sysRoot, m_tc, m_qt, m_mkspec, m_extra);
 
     if (result.isEmpty() || map == result)
-        return -2;
+        return 2;
 
-    return save(result, QLatin1String("profiles")) ? 0 : -3;
+    return save(result, QLatin1String("profiles")) ? 0 : 3;
 }
 
 #ifdef WITH_TESTS
diff --git a/src/tools/sdktool/addqtoperation.cpp b/src/tools/sdktool/addqtoperation.cpp
index d86291ee855672341170224a7cb6b3264ca2347f..43dfd534f02616caa1fab25e9e1be117baa874f1 100644
--- a/src/tools/sdktool/addqtoperation.cpp
+++ b/src/tools/sdktool/addqtoperation.cpp
@@ -155,9 +155,9 @@ int AddQtOperation::execute() const
     QVariantMap result = addQt(map, m_id, m_displayName, m_type, m_qmake, m_extra);
 
     if (result.isEmpty() || result == map)
-        return -2;
+        return 2;
 
-    return save(result, QLatin1String("qtversions")) ? 0 : -3;
+    return save(result, QLatin1String("qtversions")) ? 0 : 3;
 }
 
 #ifdef WITH_TESTS
diff --git a/src/tools/sdktool/addtoolchainoperation.cpp b/src/tools/sdktool/addtoolchainoperation.cpp
index 3506b1ae69693814c4a6bbbee74db90a8f03f184..7279169660cfd1969120a0c0fb19593421973d70 100644
--- a/src/tools/sdktool/addtoolchainoperation.cpp
+++ b/src/tools/sdktool/addtoolchainoperation.cpp
@@ -151,9 +151,9 @@ int AddToolChainOperation::execute() const
 
     QVariantMap result = addToolChain(map, m_id, m_displayName, m_path, m_targetAbi, m_supportedAbis, m_extra);
     if (result.isEmpty() || map == result)
-        return -2;
+        return 2;
 
-    return save(result, QLatin1String("toolchains")) ? 0 : -3;
+    return save(result, QLatin1String("toolchains")) ? 0 : 3;
 }
 
 #ifdef WITH_TESTS
diff --git a/src/tools/sdktool/getoperation.cpp b/src/tools/sdktool/getoperation.cpp
index ea8f995bdf7f2dcc715cf5f1b06efcee80e58a27..e4ffd8c777d92825482247bef413cb8d0d7e2832 100644
--- a/src/tools/sdktool/getoperation.cpp
+++ b/src/tools/sdktool/getoperation.cpp
@@ -70,7 +70,7 @@ int GetOperation::execute() const
     foreach (const QString &key, m_keys) {
         const QVariant result = get(map, key);
         if (result.isValid())
-            return -2;
+            return 2;
         std::cout << qPrintable(result.toString()) << std::endl;
     }
 
diff --git a/src/tools/sdktool/main.cpp b/src/tools/sdktool/main.cpp
index d94ca984b90ec2c6db82f9bfa601d7fd0e24cf0c..18d1e12fbef1d37dbad8218e8adeb149ac084d69 100644
--- a/src/tools/sdktool/main.cpp
+++ b/src/tools/sdktool/main.cpp
@@ -111,7 +111,7 @@ int parseArguments(const QStringList &args, Settings *s, const QList<Operation *
                 if (next.isNull()) {
                     std::cerr << "Missing argument to '-s'." << std::endl << std::endl;
                     printHelp(operations);
-                    return -1;
+                    return 1;
                 }
                 s->sdkPath = Utils::FileName::fromString(next);
                 ++i; // skip next;
@@ -135,19 +135,19 @@ int parseArguments(const QStringList &args, Settings *s, const QList<Operation *
 
         std::cerr << "Unknown parameter given." << std::endl << std::endl;
         printHelp(operations);
-        return -1;
+        return 1;
     }
 
     if (!s->operation) {
         std::cerr << "No operation requested." << std::endl << std::endl;
         printHelp(operations);
-        return -1;
+        return 1;
     }
     if (!s->operation->setArguments(opArgs)) {
         std::cerr << "Argument parsing failed." << std::endl << std::endl;
         printHelp(s->operation);
         s->operation = 0;
-        return -1;
+        return 1;
     }
 
     return 0;
diff --git a/src/tools/sdktool/rmkitoperation.cpp b/src/tools/sdktool/rmkitoperation.cpp
index fe677ea4330d63e2bc33e4331c844760bc935208..c5e6c793343818e107ba1edf95279eb6c85eddfd 100644
--- a/src/tools/sdktool/rmkitoperation.cpp
+++ b/src/tools/sdktool/rmkitoperation.cpp
@@ -90,9 +90,9 @@ int RmKitOperation::execute() const
     QVariantMap result = rmKit(map, m_id);
 
     if (result == map)
-        return -2;
+        return 2;
 
-    return save(result, QLatin1String("profiles")) ? 0 : -3;
+    return save(result, QLatin1String("profiles")) ? 0 : 3;
 }
 
 #ifdef WITH_TESTS
diff --git a/src/tools/sdktool/rmqtoperation.cpp b/src/tools/sdktool/rmqtoperation.cpp
index b1fae23cbb0c0a2b31fca08d94afc24f7caf7a97..d1293003412128cbf621547e4b69ad95c851edc7 100644
--- a/src/tools/sdktool/rmqtoperation.cpp
+++ b/src/tools/sdktool/rmqtoperation.cpp
@@ -90,9 +90,9 @@ int RmQtOperation::execute() const
 
     QVariantMap result = rmQt(map, m_id);
     if (result == map)
-        return -2;
+        return 2;
 
-    return save(result, QLatin1String("qtversion")) ? 0 : -3;
+    return save(result, QLatin1String("qtversion")) ? 0 : 3;
 }
 
 #ifdef WITH_TESTS
diff --git a/src/tools/sdktool/rmtoolchainoperation.cpp b/src/tools/sdktool/rmtoolchainoperation.cpp
index 0224e94f550699f1b50861d1129639d5087bbb6a..72481990ca08874eede3cc00230bf094c1637062 100644
--- a/src/tools/sdktool/rmtoolchainoperation.cpp
+++ b/src/tools/sdktool/rmtoolchainoperation.cpp
@@ -91,9 +91,9 @@ int RmToolChainOperation::execute() const
 
     QVariantMap result = rmToolChain(map, m_id);
     if (result == map)
-        return -2;
+        return 2;
 
-    return save(result, QLatin1String("toolchains")) ? 0 : -3;
+    return save(result, QLatin1String("toolchains")) ? 0 : 3;
 }
 
 #ifdef WITH_TESTS
diff --git a/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp b/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
index e13a1ba8410599053fbc1d63bc00ba95e3ab8ed0..5f8349b54fb4a44472eb9e81ce248b5924f5c090 100644
--- a/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
+++ b/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp
@@ -42,6 +42,7 @@ const char *description[] =
     "g++_stringset",
     "g++_stringvector",
     "g++_wstringvector",
+    "libc++_stringvector",
     "msvc_stdstring",
     "msvc_stdwstring",
     "msvc_stringmap",
@@ -63,6 +64,8 @@ const char *input[] =
 "std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >",
 "std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >",
 "std::vector<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >",
+// libc++
+"std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >",
 // MSVC
 "class std::basic_string<char,std::char_traits<char>,std::allocator<char> >",
 "class std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >",
@@ -76,6 +79,7 @@ const char *input[] =
 
 const char *output[] =
 {
+    // Gcc
     "std::string",
     "std::wstring",
     "std::map<std::string, std::string>",
@@ -84,6 +88,9 @@ const char *output[] =
     "std::set<std::string>",
     "std::vector<std::string>",
     "std::vector<std::wstring>",
+    // libc++
+    "std::vector<std::string>",
+    // MSVC
     "std::string",
     "std::wstring",
     "std::map<std::string, std::string>",
diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp
index 3a02c6d3065eb63b658fb374d3f924757a300941..46f73b5d8da2492b62e410c857943e9a6ad50f0e 100644
--- a/tests/auto/debugger/tst_dumpers.cpp
+++ b/tests/auto/debugger/tst_dumpers.cpp
@@ -268,8 +268,10 @@ struct Type
         QByteArray actualType =
             CPlusPlus::simplifySTLType(QString::fromLatin1(actualType0)).toLatin1();
         actualType.replace(' ', "");
+        actualType.replace("const", "");
         QByteArray expectedType = type;
         expectedType.replace(' ', "");
+        expectedType.replace("const", "");
         expectedType.replace('@', context.nameSpace);
         return actualType == expectedType;
     }
@@ -328,8 +330,30 @@ struct Profile
 
 struct Cxx11Profile : public Profile
 {
-    //Cxx11Profile() : Profile("CONFIG += c++11") {}
-    Cxx11Profile() : Profile("QMAKE_CXXFLAGS += -std=c++0x") {}
+    Cxx11Profile()
+      : Profile("greaterThan(QT_MAJOR_VERSION,4): CONFIG += c++11\n"
+                "else: QMAKE_CXXFLAGS += -std=c++0x\n")
+    {}
+};
+
+struct MacLibStdCppProfile : public Profile
+{
+    MacLibStdCppProfile()
+      : Profile("macx {\n"
+                "QMAKE_CXXFLAGS += -stdlib=libc++\n"
+                "LIBS += -stdlib=libc++\n"
+                "QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7\n"
+                "QMAKE_IOS_DEPLOYMENT_TARGET = 10.7\n"
+                "QMAKE_CFLAGS -= -mmacosx-version-min=10.6\n"
+                "QMAKE_CFLAGS += -mmacosx-version-min=10.7\n"
+                "QMAKE_CXXFLAGS -= -mmacosx-version-min=10.6\n"
+                "QMAKE_CXXFLAGS += -mmacosx-version-min=10.7\n"
+                "QMAKE_OBJECTIVE_CFLAGS -= -mmacosx-version-min=10.6\n"
+                "QMAKE_OBJECTIVE_CFLAGS += -mmacosx-version-min=10.7\n"
+                "QMAKE_LFLAGS -= -mmacosx-version-min=10.6\n"
+                "QMAKE_LFLAGS += -mmacosx-version-min=10.7\n"
+                "}")
+    {}
 };
 
 struct GdbOnly {};
@@ -957,6 +981,7 @@ void tst_Dumpers::dumper()
         qDebug() << "CONTENTS     : " << contents;
         qDebug() << "Qt VERSION   : "
             << qPrintable(QString::number(context.qtVersion, 16));
+        qDebug() << "BUILD DIR    : " << qPrintable(t->buildPath);
     }
     QVERIFY(ok);
     t->buildTemp.setAutoRemove(m_keepTemp);
@@ -2058,10 +2083,10 @@ void tst_Dumpers::dumper_data()
                     "#include <QString> // Dummy for namespace\n",
                     "QString dummy;\n"
                     "QPointF s0, s;\n"
-                    "s = QPointF(100, 200);\n")
+                    "s = QPointF(100.5, 200.5);\n")
                % CoreProfile()
                % Check("s0", "(0.0, 0.0)", "@QPointF")
-               % Check("s", "(100.0, 200.0)", "@QPointF");
+               % Check("s", "(100.5, 200.5)", "@QPointF");
 
     QTest::newRow("QRect")
             << Data("#include <QRect>\n"
@@ -2077,9 +2102,9 @@ void tst_Dumpers::dumper_data()
                     "#include <QString> // Dummy for namespace\n",
                     "QString dummy;\n"
                     "QRectF rect0, rect;\n"
-                    "rect = QRectF(100, 100, 200, 200);\n")
+                    "rect = QRectF(100.25, 100.25, 200.5, 200.5);\n")
                % Check("rect", "0x0+0+0", "@QRectF")
-               % Check("rect", "200x200+100+100", "@QRectF");
+               % Check("rect", "200.5x200.5+100.25+100.25", "@QRectF");
 
     QTest::newRow("QSize")
             << Data("#include <QSize>\n"
@@ -2096,10 +2121,10 @@ void tst_Dumpers::dumper_data()
                     "#include <QString> // Dummy for namespace\n",
                     "QString dummy;\n"
                     "QSizeF s0, s;\n"
-                    "s = QSizeF(100, 200);\n")
+                    "s = QSizeF(100.5, 200.5);\n")
                % CoreProfile()
-               % Check("s0", "(-1, -1)", "@QSizeF")
-               % Check("s", "(100, 200)", "@QSizeF");
+               % Check("s0", "(-1.0, -1.0)", "@QSizeF")
+               % Check("s", "(100.5, 200.5)", "@QSizeF");
 
     QTest::newRow("QRegion")
             << Data("#include <QRegion>\n"
@@ -2149,8 +2174,8 @@ void tst_Dumpers::dumper_data()
                     "s.insert(22);\n")
                % CoreProfile()
                % Check("s", "<2 items>", "@QSet<int>")
-               % Check("s.22", "[22]", "22", "int")
-               % Check("s.11", "[11]", "11", "int");
+               % Check("s.0", "[0]", "22", "int")
+               % Check("s.1", "[1]", "11", "int");
 
     QTest::newRow("QSet2")
             << Data("#include <QSet>\n"
@@ -2322,6 +2347,7 @@ void tst_Dumpers::dumper_data()
                     "unused(&a, &b);\n")
                % CoreProfile()
                % Cxx11Profile()
+               % MacLibStdCppProfile()
                % Check("a", "<4 items>", "std::array<int, 4u>")
                % Check("b", "<4 items>", "std::array<@QString, 4u>");
 
@@ -3145,36 +3171,52 @@ void tst_Dumpers::dumper_data()
                % Check("this.@1", "[@QThread]", "\"This is thread #3\"", "@QThread")
                % Check("this.@1.@1", "[@QObject]", "\"This is thread #3\"", "@QObject");
 
-    QTest::newRow("QVariant1")
+    QTest::newRow("QVariant0")
             << Data("#include <QVariant>\n",
                     "QVariant value;\n"
                     "QVariant::Type t = QVariant::String;\n"
                     "value = QVariant(t, (void*)0);\n"
                     "*(QString*)value.data() = QString(\"Some string\");\n")
                % CoreProfile()
+               % GdbOnly()
                % Check("t", "@QVariant::String (10)", "@QVariant::Type")
                % Check("value", "\"Some string\"", "@QVariant (QString)");
 
+    QTest::newRow("QVariant1")
+            << Data("#include <QVariant>\n",
+                    "QVariant value;\n"
+                    "QVariant::Type t = QVariant::String;\n"
+                    "value = QVariant(t, (void*)0);\n"
+                    "*(QString*)value.data() = QString(\"Some string\");\n")
+               % CoreProfile()
+               % LldbOnly()
+               % Check("t", "String", "@QVariant::Type")
+               % Check("value", "\"Some string\"", "@QVariant (QString)");
+
     QTest::newRow("QVariant2")
             << Data("#include <QVariant>\n"
                     "#include <QRect>\n"
                     "#include <QRectF>\n"
                     "#include <QStringList>\n"
                     "#include <QString>\n",
+                    "QRect r(100, 200, 300, 400);\n"
+                    "QRectF rf(100.5, 200.5, 300.5, 400.5);\n"
                     "QVariant var;                               // Type 0, invalid\n"
                     "QVariant var1(true);                        // 1, bool\n"
                     "QVariant var2(2);                           // 2, int\n"
                     "QVariant var3(3u);                          // 3, uint\n"
                     "QVariant var4(qlonglong(4));                // 4, qlonglong\n"
                     "QVariant var5(qulonglong(5));               // 5, qulonglong\n"
-                    "QVariant var6(double(6));                   // 6, double\n"
+                    "QVariant var6(double(6.0));                 // 6, double\n"
                     "QVariant var7(QChar(7));                    // 7, QChar\n"
                     //None,          # 8, QVariantMap
                     // None,          # 9, QVariantList
                     "QVariant var10(QString(\"Hello 10\"));      // 10, QString\n"
                     "QVariant var11(QStringList() << \"Hello\" << \"World\"); // 11, QStringList\n"
-                    "QVariant var19(QRect(100, 200, 300, 400));  // 19 QRect\n"
-                    "QVariant var20(QRectF(100, 200, 300, 400)); // 20 QRectF\n"
+                    "QVariant var19(r);                          // 19 QRect\n"
+                    "QVariant var20(rf);                         // 20 QRectF\n"
+                    "unused(&var, &var1, &var2, &var3, &var4, &var5, &var6);\n"
+                    "unused(&var, &var7, &var10, &var11, &var19, &var20);\n"
                     )
                % CoreProfile()
                % Check("var", "(invalid)", "@QVariant (invalid)")
@@ -3183,13 +3225,13 @@ void tst_Dumpers::dumper_data()
                % Check("var3", "3", "@QVariant (uint)")
                % Check("var4", "4", "@QVariant (qlonglong)")
                % Check("var5", "5", "@QVariant (qulonglong)")
-               % Check("var6", "6", "@QVariant (double)")
+               % Check("var6", "6.0", "@QVariant (double)")
                % Check("var7", "'?' (7)", "@QVariant (QChar)")
                % Check("var10", "\"Hello 10\"", "@QVariant (QString)")
                % Check("var11", "<2 items>", "@QVariant (QStringList)")
                % Check("var11.1", "[1]", "\"World\"", "@QString")
                % Check("var19", "300x400+100+200", "@QVariant (QRect)")
-               % Check("var20", "300x400+100+200", "@QVariant (QRectF)");
+               % Check("var20", "300.5x400.5+100.5+200.5", "@QVariant (QRectF)");
 
         /*
          "QByteArray",  # 12
diff --git a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
index 10f89ace888101ef8b63e4715f7d14083943ed52..b0d52e833d866a1c68ec95863584bc1995af0e39 100644
--- a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
@@ -2772,7 +2772,7 @@ void tst_TestCore::testRewriterTransactionRewriter()
 
 void tst_TestCore::testRewriterPropertyDeclarations()
 {
-    // Work in progress. See task https://qtrequirements.europe.nokia.com/browse/BAUHAUS-170"
+    // Work in progress.
 
     //
     // test properties defined in qml
diff --git a/tests/system/shared/hook_utils.py b/tests/system/shared/hook_utils.py
index ba8b31df298e43b6a8e0f3b07ef04b95e33cac88..27e92a14e1e3df77f5d998e65271f5da0993c464 100644
--- a/tests/system/shared/hook_utils.py
+++ b/tests/system/shared/hook_utils.py
@@ -369,6 +369,11 @@ def __isWinFirewallRunning__():
             return __isWinFirewallRunning__.fireWallState
     return None
 
+def __fixQuotes__(string):
+    if platform.system() in ('Windows', 'Microsoft'):
+        string = '"' + string + '"'
+    return string
+
 # this function adds the given executable as an attachable AUT
 # Bad: executable/port could be empty strings - you should be aware of this
 def addExecutableAsAttachableAUT(executable, port, host=None):
@@ -379,7 +384,8 @@ def addExecutableAsAttachableAUT(executable, port, host=None):
     squishSrv = __getSquishServer__()
     if (squishSrv == None):
         return False
-    result = subprocess.call('%s --config addAttachableAUT "%s" %s:%s' % (squishSrv, executable, host, port), shell=True)
+    result = subprocess.call(__fixQuotes__('"%s" --config addAttachableAUT "%s" %s:%s')
+                             % (squishSrv, executable, host, port), shell=True)
     if result == 0:
         test.passes("Added %s as attachable AUT" % executable)
     else:
@@ -396,7 +402,8 @@ def removeExecutableAsAttachableAUT(executable, port, host=None):
     squishSrv = __getSquishServer__()
     if (squishSrv == None):
         return False
-    result = subprocess.call('%s --config removeAttachableAUT "%s" %s:%s' % (squishSrv, executable, host, port), shell=True)
+    result = subprocess.call(__fixQuotes__('"%s" --config removeAttachableAUT "%s" %s:%s')
+                             % (squishSrv, executable, host, port), shell=True)
     if result == 0:
         test.passes("Removed %s as attachable AUT" % executable)
     else:
diff --git a/tests/system/suite_WELP/tst_WELP02/test.py b/tests/system/suite_WELP/tst_WELP02/test.py
index 88fc48832549cec0b96cac4ea3af9a04f440c068..c63f2864dbd367f29bac933338aa66d26eb87ea1 100644
--- a/tests/system/suite_WELP/tst_WELP02/test.py
+++ b/tests/system/suite_WELP/tst_WELP02/test.py
@@ -57,7 +57,6 @@ def main():
     # select "Create Project" and try to create a new project.
     # create Qt Quick application from "Welcome" page -> "Develop" tab
     createNewQtQuickApplication(tempDir(), "SampleApp", fromWelcome = True)
-    progressBarWait(30000)
     test.verify(checkIfObjectExists("{column='0' container=':Qt Creator_Utils::NavigationTreeView'"
                                     " text~='SampleApp( \(.*\))?' type='QModelIndex'}"),
                 "Verifying: The project is opened in 'Edit' mode after configuring.")
diff --git a/tests/system/suite_debugger/tst_simple_analyze/test.py b/tests/system/suite_debugger/tst_simple_analyze/test.py
index 27ad61f7d63e97e89b970bfe8ca4bd3e955809ec..58fdb3c7319571abd857723479a2477b18abfacb 100644
--- a/tests/system/suite_debugger/tst_simple_analyze/test.py
+++ b/tests/system/suite_debugger/tst_simple_analyze/test.py
@@ -91,7 +91,10 @@ def main():
                 if qtVersion.startswith("5."):
                     compareEventsTab(model, "events_qt50.tsv")
                 else:
-                    compareEventsTab(model, "events_qt47.tsv")
+                    if qtVersion.startswith("4.8"):
+                        compareEventsTab(model, "events_qt48.tsv")
+                    else:
+                        compareEventsTab(model, "events_qt47.tsv")
                     test.verify(str(model.index(0, 8).data()).endswith(' ms'))
                     test.xverify(str(model.index(1, 8).data()).endswith(' ms')) # QTCREATORBUG-8996
                 test.compare(dumpItems(model, column=2)[0], '100.00 %')
diff --git a/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt48.tsv b/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt48.tsv
new file mode 100644
index 0000000000000000000000000000000000000000..94615d85d07428f80e781d34f518445f20a0f467
--- /dev/null
+++ b/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt48.tsv
@@ -0,0 +1,7 @@
+"0"	"1"	"4"	"9"
+"<program>"	"Binding"	"1"	"Main Program"
+"main.qml:14"	"Signal"	"2"	"triggered(): { var i; for (i = 1; i < 2500; ++i) { var j = i * i; console.log(j); } }"
+"main.qml:1"	"Create"	"1"	"main.qml"
+"main.qml:1"	"Compile"	"1"	"main.qml"
+"main.qml:7"	"Binding"	"1"	"text: qsTr(""Hello World"")"
+"<bytecode>"	"Binding"	"2"	"Source code not available."